diff -Nru postgresql-13-13.4/aclocal.m4 postgresql-13-13.7/aclocal.m4 --- postgresql-13-13.4/aclocal.m4 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/aclocal.m4 2022-05-09 21:16:30.000000000 +0000 @@ -1,6 +1,5 @@ dnl aclocal.m4 m4_include([config/ac_func_accept_argtypes.m4]) -m4_include([config/ax_prog_perl_modules.m4]) m4_include([config/ax_pthread.m4]) m4_include([config/c-compiler.m4]) m4_include([config/c-library.m4]) diff -Nru postgresql-13-13.4/config/ax_prog_perl_modules.m4 postgresql-13-13.7/config/ax_prog_perl_modules.m4 --- postgresql-13-13.4/config/ax_prog_perl_modules.m4 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/config/ax_prog_perl_modules.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_prog_perl_modules.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_PROG_PERL_MODULES([MODULES], [ACTION-IF-TRUE], [ACTION-IF-FALSE]) -# -# DESCRIPTION -# -# Checks to see if the given perl modules are available. If true the shell -# commands in ACTION-IF-TRUE are executed. If not the shell commands in -# ACTION-IF-FALSE are run. Note if $PERL is not set (for example by -# calling AC_CHECK_PROG, or AC_PATH_PROG), AC_CHECK_PROG(PERL, perl, perl) -# will be run. -# -# MODULES is a space separated list of module names. To check for a -# minimum version of a module, append the version number to the module -# name, separated by an equals sign. -# -# Example: -# -# AX_PROG_PERL_MODULES( Text::Wrap Net::LDAP=1.0.3, , -# AC_MSG_WARN(Need some Perl modules) -# -# LICENSE -# -# Copyright (c) 2009 Dean Povey -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 8 - -AU_ALIAS([AC_PROG_PERL_MODULES], [AX_PROG_PERL_MODULES]) -AC_DEFUN([AX_PROG_PERL_MODULES],[dnl - -m4_define([ax_perl_modules]) -m4_foreach([ax_perl_module], m4_split(m4_normalize([$1])), - [ - m4_append([ax_perl_modules], - [']m4_bpatsubst(ax_perl_module,=,[ ])[' ]) - ]) - -# Make sure we have perl -if test -z "$PERL"; then -AC_CHECK_PROG(PERL,perl,perl) -fi - -if test "x$PERL" != x; then - ax_perl_modules_failed=0 - for ax_perl_module in ax_perl_modules; do - AC_MSG_CHECKING(for perl module $ax_perl_module) - - # Would be nice to log result here, but can't rely on autoconf internals - $PERL -e "use $ax_perl_module; exit" > /dev/null 2>&1 - if test $? -ne 0; then - AC_MSG_RESULT(no); - ax_perl_modules_failed=1 - else - AC_MSG_RESULT(ok); - fi - done - - # Run optional shell commands - if test "$ax_perl_modules_failed" = 0; then - : - $2 - else - : - $3 - fi -else - AC_MSG_WARN(could not find perl) -fi])dnl diff -Nru postgresql-13-13.4/config/c-compiler.m4 postgresql-13-13.7/config/c-compiler.m4 --- postgresql-13-13.4/config/c-compiler.m4 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/config/c-compiler.m4 2022-05-09 21:16:30.000000000 +0000 @@ -381,6 +381,28 @@ +# PGAC_CHECK_BUILTIN_FUNC_PTR +# ----------------------- +# Like PGAC_CHECK_BUILTIN_FUNC, except that the function is assumed to +# return a pointer type, and the argument(s) should be given literally. +# This handles some cases that PGAC_CHECK_BUILTIN_FUNC doesn't. +AC_DEFUN([PGAC_CHECK_BUILTIN_FUNC_PTR], +[AC_CACHE_CHECK(for $1, pgac_cv$1, +[AC_LINK_IFELSE([AC_LANG_PROGRAM([ +void * +call$1(void) +{ + return $1($2); +}], [])], +[pgac_cv$1=yes], +[pgac_cv$1=no])]) +if test x"${pgac_cv$1}" = xyes ; then +AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE$1]), 1, + [Define to 1 if your compiler understands $1.]) +fi])# PGAC_CHECK_BUILTIN_FUNC_PTR + + + # PGAC_PROG_VARCC_VARFLAGS_OPT # ---------------------------- # Given a compiler, variable name and a string, check if the compiler diff -Nru postgresql-13-13.4/config/check_modules.pl postgresql-13-13.7/config/check_modules.pl --- postgresql-13-13.4/config/check_modules.pl 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/config/check_modules.pl 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,23 @@ +# +# Verify that required Perl modules are available, +# in at least the required minimum versions. +# (The required minimum versions are all quite ancient now, +# but specify them anyway for documentation's sake.) +# +use strict; +use warnings; + +use IPC::Run 0.79; + +# Test::More and Time::HiRes are supposed to be part of core Perl, +# but some distros omit them in a minimal installation. +use Test::More 0.87; +use Time::HiRes 1.52; + +# While here, we might as well report exactly what versions we found. +diag("IPC::Run::VERSION: $IPC::Run::VERSION"); +diag("Test::More::VERSION: $Test::More::VERSION"); +diag("Time::HiRes::VERSION: $Time::HiRes::VERSION"); + +ok(1); +done_testing(); diff -Nru postgresql-13-13.4/config/python.m4 postgresql-13-13.7/config/python.m4 --- postgresql-13-13.4/config/python.m4 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/config/python.m4 2022-05-09 21:16:30.000000000 +0000 @@ -37,32 +37,25 @@ python_minorversion=`echo "$python_fullversion" | sed '[s/^[0-9]*\.\([0-9]*\).*/\1/]'` python_version=`echo "$python_fullversion" | sed '[s/^\([0-9]*\.[0-9]*\).*/\1/]'` # Reject unsupported Python versions as soon as practical. -if test "$python_majorversion" -lt 3 -a "$python_minorversion" -lt 6; then - AC_MSG_ERROR([Python version $python_version is too old (version 2.6 or later is required)]) +if test "$python_majorversion" -lt 3 -a "$python_minorversion" -lt 7; then + AC_MSG_ERROR([Python version $python_version is too old (version 2.7 or later is required)]) fi -AC_MSG_CHECKING([for Python distutils module]) -if "${PYTHON}" -c 'import distutils' 2>&AS_MESSAGE_LOG_FD +AC_MSG_CHECKING([for Python sysconfig module]) +if "${PYTHON}" -c 'import sysconfig' 2>&AS_MESSAGE_LOG_FD then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) - AC_MSG_ERROR([distutils module not found]) + AC_MSG_ERROR([sysconfig module not found]) fi AC_MSG_CHECKING([Python configuration directory]) -python_configdir=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBPL'))))"` +python_configdir=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LIBPL'))))"` AC_MSG_RESULT([$python_configdir]) -AC_MSG_CHECKING([Python include directories]) -python_includespec=`${PYTHON} -c " -import distutils.sysconfig -a = '-I' + distutils.sysconfig.get_python_inc(False) -b = '-I' + distutils.sysconfig.get_python_inc(True) -if a == b: - print(a) -else: - print(a + ' ' + b)"` +AC_MSG_CHECKING([Python include directory]) +python_includespec=`${PYTHON} -c "import sysconfig; print('-I' + sysconfig.get_config_var('INCLUDEPY'))"` if test "$PORTNAME" = win32 ; then python_includespec=`echo $python_includespec | sed 's,[[\]],/,g'` fi @@ -96,8 +89,8 @@ [AC_REQUIRE([_PGAC_CHECK_PYTHON_DIRS]) AC_MSG_CHECKING([how to link an embedded Python application]) -python_libdir=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBDIR'))))"` -python_ldlibrary=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDLIBRARY'))))"` +python_libdir=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LIBDIR'))))"` +python_ldlibrary=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LDLIBRARY'))))"` # If LDLIBRARY exists and has a shlib extension, use it verbatim. ldlibrary=`echo "${python_ldlibrary}" | sed -e 's/\.so$//' -e 's/\.dll$//' -e 's/\.dylib$//' -e 's/\.sl$//'` @@ -109,11 +102,11 @@ # Otherwise, guess the base name of the shlib. # LDVERSION was added in Python 3.2, before that use VERSION, # or failing that, $python_version from _PGAC_CHECK_PYTHON_DIRS. - python_ldversion=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDVERSION'))))"` + python_ldversion=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LDVERSION'))))"` if test x"${python_ldversion}" != x""; then ldlibrary="python${python_ldversion}" else - python_version_var=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('VERSION'))))"` + python_version_var=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('VERSION'))))"` if test x"${python_version_var}" != x""; then ldlibrary="python${python_version_var}" else @@ -173,7 +166,7 @@ fi python_libspec="-L${python_libdir} -l${ldlibrary}" -python_additional_libs=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBS','LIBC','LIBM','BASEMODLIBS'))))"` +python_additional_libs=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LIBS','LIBC','LIBM','BASEMODLIBS'))))"` AC_MSG_RESULT([${python_libspec} ${python_additional_libs}]) diff -Nru postgresql-13-13.4/configure postgresql-13-13.7/configure --- postgresql-13-13.4/configure 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/configure 2022-05-09 21:16:30.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 13.4. +# Generated by GNU Autoconf 2.69 for PostgreSQL 13.7. # # Report bugs to . # @@ -582,8 +582,8 @@ # Identity of this package. PACKAGE_NAME='PostgreSQL' PACKAGE_TARNAME='postgresql' -PACKAGE_VERSION='13.4' -PACKAGE_STRING='PostgreSQL 13.4' +PACKAGE_VERSION='13.7' +PACKAGE_STRING='PostgreSQL 13.7' PACKAGE_BUGREPORT='pgsql-bugs@lists.postgresql.org' PACKAGE_URL='https://www.postgresql.org/' @@ -1436,7 +1436,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 13.4 to adapt to many kinds of systems. +\`configure' configures PostgreSQL 13.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1501,7 +1501,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of PostgreSQL 13.4:";; + short | recursive ) echo "Configuration of PostgreSQL 13.7:";; esac cat <<\_ACEOF @@ -1668,7 +1668,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -PostgreSQL configure 13.4 +PostgreSQL configure 13.7 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2421,7 +2421,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 13.4, which was +It was created by PostgreSQL $as_me 13.7, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -5240,7 +5240,7 @@ fi # When generating bitcode (for inlining) we always want to use -O2 -# even when --enable-debug is specified. The bitcode it's not going to +# even when --enable-debug is specified. The bitcode is not going to # be used for line-by-line debugging, and JIT inlining doesn't work # without at least -O1 (otherwise clang will emit 'noinline' # attributes everywhere), which is bad for testing. Still allow the @@ -6090,9 +6090,14 @@ fi - # We want to suppress clang's unhelpful unused-command-line-argument warnings - # but gcc won't complain about unrecognized -Wno-foo switches, so we have to - # test for the positive form and if that works, add the negative form + # + # The following tests want to suppress various unhelpful warnings by adding + # -Wno-foo switches. But gcc won't complain about unrecognized -Wno-foo + # switches, so we have to test for the positive form and if that works, + # add the negative form. Note that tests of this form typically need to + # be duplicated in the BITCODE_CFLAGS setup stanza below. + # + # Suppress clang's unhelpful unused-command-line-argument warnings. NOT_THE_CFLAGS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} supports -Wunused-command-line-argument, for NOT_THE_CFLAGS" >&5 $as_echo_n "checking whether ${CC} supports -Wunused-command-line-argument, for NOT_THE_CFLAGS... " >&6; } @@ -6136,6 +6141,51 @@ if test -n "$NOT_THE_CFLAGS"; then CFLAGS="$CFLAGS -Wno-unused-command-line-argument" fi + # Remove clang 12+'s compound-token-split-by-macro, as this causes a lot + # of warnings when building plperl because of usages in the Perl headers. + NOT_THE_CFLAGS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} supports -Wcompound-token-split-by-macro, for NOT_THE_CFLAGS" >&5 +$as_echo_n "checking whether ${CC} supports -Wcompound-token-split-by-macro, for NOT_THE_CFLAGS... " >&6; } +if ${pgac_cv_prog_CC_cflags__Wcompound_token_split_by_macro+:} false; then : + $as_echo_n "(cached) " >&6 +else + pgac_save_CFLAGS=$CFLAGS +pgac_save_CC=$CC +CC=${CC} +CFLAGS="${NOT_THE_CFLAGS} -Wcompound-token-split-by-macro" +ac_save_c_werror_flag=$ac_c_werror_flag +ac_c_werror_flag=yes +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + pgac_cv_prog_CC_cflags__Wcompound_token_split_by_macro=yes +else + pgac_cv_prog_CC_cflags__Wcompound_token_split_by_macro=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_c_werror_flag=$ac_save_c_werror_flag +CFLAGS="$pgac_save_CFLAGS" +CC="$pgac_save_CC" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CC_cflags__Wcompound_token_split_by_macro" >&5 +$as_echo "$pgac_cv_prog_CC_cflags__Wcompound_token_split_by_macro" >&6; } +if test x"$pgac_cv_prog_CC_cflags__Wcompound_token_split_by_macro" = x"yes"; then + NOT_THE_CFLAGS="${NOT_THE_CFLAGS} -Wcompound-token-split-by-macro" +fi + + + if test -n "$NOT_THE_CFLAGS"; then + CFLAGS="$CFLAGS -Wno-compound-token-split-by-macro" + fi # Similarly disable useless truncation warnings from gcc 8+ NOT_THE_CFLAGS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} supports -Wformat-truncation, for NOT_THE_CFLAGS" >&5 @@ -6691,9 +6741,12 @@ -# Determine flags used to emit bitcode for JIT inlining. Need to test -# for behaviour changing compiler flags, to keep compatibility with -# compiler used for normal postgres code. +# Determine flags used to emit bitcode for JIT inlining. +# 1. We must duplicate any behaviour-changing compiler flags used above, +# to keep compatibility with the compiler used for normal Postgres code. +# 2. We don't bother to duplicate extra-warnings switches --- seeing a +# warning in the main build is enough. +# 3. But we must duplicate -Wno-warning flags, else we'll see those anyway. if test "$with_llvm" = yes ; then CLANGXX="$CLANG -xc++" @@ -6961,6 +7014,175 @@ BITCODE_CXXFLAGS="${BITCODE_CXXFLAGS} -fexcess-precision=standard" fi + + NOT_THE_CFLAGS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CLANG} supports -Wunused-command-line-argument, for NOT_THE_CFLAGS" >&5 +$as_echo_n "checking whether ${CLANG} supports -Wunused-command-line-argument, for NOT_THE_CFLAGS... " >&6; } +if ${pgac_cv_prog_CLANG_cflags__Wunused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + pgac_save_CFLAGS=$CFLAGS +pgac_save_CC=$CC +CC=${CLANG} +CFLAGS="${NOT_THE_CFLAGS} -Wunused-command-line-argument" +ac_save_c_werror_flag=$ac_c_werror_flag +ac_c_werror_flag=yes +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + pgac_cv_prog_CLANG_cflags__Wunused_command_line_argument=yes +else + pgac_cv_prog_CLANG_cflags__Wunused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_c_werror_flag=$ac_save_c_werror_flag +CFLAGS="$pgac_save_CFLAGS" +CC="$pgac_save_CC" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CLANG_cflags__Wunused_command_line_argument" >&5 +$as_echo "$pgac_cv_prog_CLANG_cflags__Wunused_command_line_argument" >&6; } +if test x"$pgac_cv_prog_CLANG_cflags__Wunused_command_line_argument" = x"yes"; then + NOT_THE_CFLAGS="${NOT_THE_CFLAGS} -Wunused-command-line-argument" +fi + + if test -n "$NOT_THE_CFLAGS"; then + BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-unused-command-line-argument" + fi + NOT_THE_CFLAGS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CLANG} supports -Wcompound-token-split-by-macro, for NOT_THE_CFLAGS" >&5 +$as_echo_n "checking whether ${CLANG} supports -Wcompound-token-split-by-macro, for NOT_THE_CFLAGS... " >&6; } +if ${pgac_cv_prog_CLANG_cflags__Wcompound_token_split_by_macro+:} false; then : + $as_echo_n "(cached) " >&6 +else + pgac_save_CFLAGS=$CFLAGS +pgac_save_CC=$CC +CC=${CLANG} +CFLAGS="${NOT_THE_CFLAGS} -Wcompound-token-split-by-macro" +ac_save_c_werror_flag=$ac_c_werror_flag +ac_c_werror_flag=yes +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + pgac_cv_prog_CLANG_cflags__Wcompound_token_split_by_macro=yes +else + pgac_cv_prog_CLANG_cflags__Wcompound_token_split_by_macro=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_c_werror_flag=$ac_save_c_werror_flag +CFLAGS="$pgac_save_CFLAGS" +CC="$pgac_save_CC" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CLANG_cflags__Wcompound_token_split_by_macro" >&5 +$as_echo "$pgac_cv_prog_CLANG_cflags__Wcompound_token_split_by_macro" >&6; } +if test x"$pgac_cv_prog_CLANG_cflags__Wcompound_token_split_by_macro" = x"yes"; then + NOT_THE_CFLAGS="${NOT_THE_CFLAGS} -Wcompound-token-split-by-macro" +fi + + if test -n "$NOT_THE_CFLAGS"; then + BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-compound-token-split-by-macro" + fi + NOT_THE_CFLAGS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CLANG} supports -Wformat-truncation, for NOT_THE_CFLAGS" >&5 +$as_echo_n "checking whether ${CLANG} supports -Wformat-truncation, for NOT_THE_CFLAGS... " >&6; } +if ${pgac_cv_prog_CLANG_cflags__Wformat_truncation+:} false; then : + $as_echo_n "(cached) " >&6 +else + pgac_save_CFLAGS=$CFLAGS +pgac_save_CC=$CC +CC=${CLANG} +CFLAGS="${NOT_THE_CFLAGS} -Wformat-truncation" +ac_save_c_werror_flag=$ac_c_werror_flag +ac_c_werror_flag=yes +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + pgac_cv_prog_CLANG_cflags__Wformat_truncation=yes +else + pgac_cv_prog_CLANG_cflags__Wformat_truncation=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_c_werror_flag=$ac_save_c_werror_flag +CFLAGS="$pgac_save_CFLAGS" +CC="$pgac_save_CC" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CLANG_cflags__Wformat_truncation" >&5 +$as_echo "$pgac_cv_prog_CLANG_cflags__Wformat_truncation" >&6; } +if test x"$pgac_cv_prog_CLANG_cflags__Wformat_truncation" = x"yes"; then + NOT_THE_CFLAGS="${NOT_THE_CFLAGS} -Wformat-truncation" +fi + + if test -n "$NOT_THE_CFLAGS"; then + BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-format-truncation" + fi + NOT_THE_CFLAGS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CLANG} supports -Wstringop-truncation, for NOT_THE_CFLAGS" >&5 +$as_echo_n "checking whether ${CLANG} supports -Wstringop-truncation, for NOT_THE_CFLAGS... " >&6; } +if ${pgac_cv_prog_CLANG_cflags__Wstringop_truncation+:} false; then : + $as_echo_n "(cached) " >&6 +else + pgac_save_CFLAGS=$CFLAGS +pgac_save_CC=$CC +CC=${CLANG} +CFLAGS="${NOT_THE_CFLAGS} -Wstringop-truncation" +ac_save_c_werror_flag=$ac_c_werror_flag +ac_c_werror_flag=yes +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + pgac_cv_prog_CLANG_cflags__Wstringop_truncation=yes +else + pgac_cv_prog_CLANG_cflags__Wstringop_truncation=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_c_werror_flag=$ac_save_c_werror_flag +CFLAGS="$pgac_save_CFLAGS" +CC="$pgac_save_CC" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CLANG_cflags__Wstringop_truncation" >&5 +$as_echo "$pgac_cv_prog_CLANG_cflags__Wstringop_truncation" >&6; } +if test x"$pgac_cv_prog_CLANG_cflags__Wstringop_truncation" = x"yes"; then + NOT_THE_CFLAGS="${NOT_THE_CFLAGS} -Wstringop-truncation" +fi + + if test -n "$NOT_THE_CFLAGS"; then + BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-stringop-truncation" + fi fi # supply -g if --enable-debug @@ -9816,38 +10038,31 @@ python_minorversion=`echo "$python_fullversion" | sed 's/^[0-9]*\.\([0-9]*\).*/\1/'` python_version=`echo "$python_fullversion" | sed 's/^\([0-9]*\.[0-9]*\).*/\1/'` # Reject unsupported Python versions as soon as practical. -if test "$python_majorversion" -lt 3 -a "$python_minorversion" -lt 6; then - as_fn_error $? "Python version $python_version is too old (version 2.6 or later is required)" "$LINENO" 5 +if test "$python_majorversion" -lt 3 -a "$python_minorversion" -lt 7; then + as_fn_error $? "Python version $python_version is too old (version 2.7 or later is required)" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python distutils module" >&5 -$as_echo_n "checking for Python distutils module... " >&6; } -if "${PYTHON}" -c 'import distutils' 2>&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python sysconfig module" >&5 +$as_echo_n "checking for Python sysconfig module... " >&6; } +if "${PYTHON}" -c 'import sysconfig' 2>&5 then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "distutils module not found" "$LINENO" 5 + as_fn_error $? "sysconfig module not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python configuration directory" >&5 $as_echo_n "checking Python configuration directory... " >&6; } -python_configdir=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBPL'))))"` +python_configdir=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LIBPL'))))"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_configdir" >&5 $as_echo "$python_configdir" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Python include directories" >&5 -$as_echo_n "checking Python include directories... " >&6; } -python_includespec=`${PYTHON} -c " -import distutils.sysconfig -a = '-I' + distutils.sysconfig.get_python_inc(False) -b = '-I' + distutils.sysconfig.get_python_inc(True) -if a == b: - print(a) -else: - print(a + ' ' + b)"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Python include directory" >&5 +$as_echo_n "checking Python include directory... " >&6; } +python_includespec=`${PYTHON} -c "import sysconfig; print('-I' + sysconfig.get_config_var('INCLUDEPY'))"` if test "$PORTNAME" = win32 ; then python_includespec=`echo $python_includespec | sed 's,[\],/,g'` fi @@ -9859,8 +10074,8 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link an embedded Python application" >&5 $as_echo_n "checking how to link an embedded Python application... " >&6; } -python_libdir=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBDIR'))))"` -python_ldlibrary=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDLIBRARY'))))"` +python_libdir=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LIBDIR'))))"` +python_ldlibrary=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LDLIBRARY'))))"` # If LDLIBRARY exists and has a shlib extension, use it verbatim. ldlibrary=`echo "${python_ldlibrary}" | sed -e 's/\.so$//' -e 's/\.dll$//' -e 's/\.dylib$//' -e 's/\.sl$//'` @@ -9872,11 +10087,11 @@ # Otherwise, guess the base name of the shlib. # LDVERSION was added in Python 3.2, before that use VERSION, # or failing that, $python_version from _PGAC_CHECK_PYTHON_DIRS. - python_ldversion=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDVERSION'))))"` + python_ldversion=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LDVERSION'))))"` if test x"${python_ldversion}" != x""; then ldlibrary="python${python_ldversion}" else - python_version_var=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('VERSION'))))"` + python_version_var=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('VERSION'))))"` if test x"${python_version_var}" != x""; then ldlibrary="python${python_version_var}" else @@ -9936,7 +10151,7 @@ fi python_libspec="-L${python_libdir} -l${ldlibrary}" -python_additional_libs=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBS','LIBC','LIBM','BASEMODLIBS'))))"` +python_additional_libs=`${PYTHON} -c "import sysconfig; print(' '.join(filter(None,sysconfig.get_config_vars('LIBS','LIBC','LIBM','BASEMODLIBS'))))"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${python_libspec} ${python_additional_libs}" >&5 $as_echo "${python_libspec} ${python_additional_libs}" >&6; } @@ -11184,9 +11399,12 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : +# gcc/clang's sanitizer helper library provides dlopen but not dlsym, thus +# when enabling asan the dlopen check doesn't notice that -ldl is actually +# required. Just checking for dlsym() ought to suffice. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5 +$as_echo_n "checking for library containing dlsym... " >&6; } +if ${ac_cv_search_dlsym+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -11199,11 +11417,11 @@ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char dlsym (); int main () { -return dlopen (); +return dlsym (); ; return 0; } @@ -11216,25 +11434,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res + ac_cv_search_dlsym=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : + if ${ac_cv_search_dlsym+:} false; then : break fi done -if ${ac_cv_search_dlopen+:} false; then : +if ${ac_cv_search_dlsym+:} false; then : else - ac_cv_search_dlopen=no + ac_cv_search_dlsym=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlsym" >&5 +$as_echo "$ac_cv_search_dlsym" >&6; } +ac_res=$ac_cv_search_dlsym if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" @@ -15295,6 +15513,46 @@ _ACEOF fi +# __builtin_frame_address may draw a diagnostic for non-constant argument, +# so it needs a different test function. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_frame_address" >&5 +$as_echo_n "checking for __builtin_frame_address... " >&6; } +if ${pgac_cv__builtin_frame_address+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +void * +call__builtin_frame_address(void) +{ + return __builtin_frame_address(0); +} +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + pgac_cv__builtin_frame_address=yes +else + pgac_cv__builtin_frame_address=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__builtin_frame_address" >&5 +$as_echo "$pgac_cv__builtin_frame_address" >&6; } +if test x"${pgac_cv__builtin_frame_address}" = xyes ; then + +cat >>confdefs.h <<_ACEOF +#define HAVE__BUILTIN_FRAME_ADDRESS 1 +_ACEOF + +fi # We require 64-bit fseeko() to be available, but run this check anyway # in case it finds that _LARGEFILE_SOURCE has to be #define'd for that. @@ -18702,96 +18960,7 @@ # Check for test tools # if test "$enable_tap_tests" = yes; then - # Check for necessary modules, unless user has specified the "prove" to use; - # in that case it's her responsibility to have a working configuration. - # (prove might be part of a different Perl installation than perl, eg on - # MSys, so the result of AX_PROG_PERL_MODULES could be irrelevant anyway.) - if test -z "$PROVE"; then - # Test::More and Time::HiRes are supposed to be part of core Perl, - # but some distros omit them in a minimal installation. - - - - - - - - - - -# Make sure we have perl -if test -z "$PERL"; then -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PERL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$PERL"; then - ac_cv_prog_PERL="$PERL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PERL="perl" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -PERL=$ac_cv_prog_PERL -if test -n "$PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 -$as_echo "$PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi - -if test "x$PERL" != x; then - ax_perl_modules_failed=0 - for ax_perl_module in 'IPC::Run' 'Test::More 0.87' 'Time::HiRes' ; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl module $ax_perl_module" >&5 -$as_echo_n "checking for perl module $ax_perl_module... " >&6; } - - # Would be nice to log result here, but can't rely on autoconf internals - $PERL -e "use $ax_perl_module; exit" > /dev/null 2>&1 - if test $? -ne 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; - ax_perl_modules_failed=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; }; - fi - done - - # Run optional shell commands - if test "$ax_perl_modules_failed" = 0; then - : - - else - : - as_fn_error $? "Additional Perl modules are required to run TAP tests" "$LINENO" 5 - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find perl" >&5 -$as_echo "$as_me: WARNING: could not find perl" >&2;} -fi - fi - # Now make sure we know where prove is + # Make sure we know where prove is. if test -z "$PROVE"; then for ac_prog in prove do @@ -18849,6 +19018,23 @@ if test -z "$PROVE"; then as_fn_error $? "prove not found" "$LINENO" 5 fi + # Check for necessary Perl modules. You might think we should use + # AX_PROG_PERL_MODULES here, but prove might be part of a different Perl + # installation than perl, eg on MSys, so we have to check using prove. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Perl modules required for TAP tests" >&5 +$as_echo_n "checking for Perl modules required for TAP tests... " >&6; } + modulestderr=`"$PROVE" "$srcdir/config/check_modules.pl" 2>&1 >/dev/null` + if test $? -eq 0; then + # log the module version details, but don't show them interactively + echo "$modulestderr" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + # on failure, though, show the results to the user + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $modulestderr" >&5 +$as_echo "$modulestderr" >&6; } + as_fn_error $? "Additional Perl modules are required to run TAP tests" "$LINENO" 5 + fi fi # Thread testing @@ -19646,7 +19832,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 13.4, which was +This file was extended by PostgreSQL $as_me 13.7, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19717,7 +19903,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 13.4 +PostgreSQL config.status 13.7 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru postgresql-13-13.4/configure.in postgresql-13-13.7/configure.in --- postgresql-13-13.4/configure.in 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/configure.in 2022-05-09 21:16:30.000000000 +0000 @@ -17,7 +17,7 @@ dnl m4_pattern_forbid(^PGAC_)dnl to catch undefined macros -AC_INIT([PostgreSQL], [13.4], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) +AC_INIT([PostgreSQL], [13.7], [pgsql-bugs@lists.postgresql.org], [], [https://www.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 @@ -440,7 +440,7 @@ fi # When generating bitcode (for inlining) we always want to use -O2 -# even when --enable-debug is specified. The bitcode it's not going to +# even when --enable-debug is specified. The bitcode is not going to # be used for line-by-line debugging, and JIT inlining doesn't work # without at least -O1 (otherwise clang will emit 'noinline' # attributes everywhere), which is bad for testing. Still allow the @@ -513,14 +513,26 @@ # Optimization flags for specific files that benefit from vectorization PGAC_PROG_CC_VAR_OPT(CFLAGS_VECTOR, [-funroll-loops]) PGAC_PROG_CC_VAR_OPT(CFLAGS_VECTOR, [-ftree-vectorize]) - # We want to suppress clang's unhelpful unused-command-line-argument warnings - # but gcc won't complain about unrecognized -Wno-foo switches, so we have to - # test for the positive form and if that works, add the negative form + # + # The following tests want to suppress various unhelpful warnings by adding + # -Wno-foo switches. But gcc won't complain about unrecognized -Wno-foo + # switches, so we have to test for the positive form and if that works, + # add the negative form. Note that tests of this form typically need to + # be duplicated in the BITCODE_CFLAGS setup stanza below. + # + # Suppress clang's unhelpful unused-command-line-argument warnings. NOT_THE_CFLAGS="" PGAC_PROG_CC_VAR_OPT(NOT_THE_CFLAGS, [-Wunused-command-line-argument]) if test -n "$NOT_THE_CFLAGS"; then CFLAGS="$CFLAGS -Wno-unused-command-line-argument" fi + # Remove clang 12+'s compound-token-split-by-macro, as this causes a lot + # of warnings when building plperl because of usages in the Perl headers. + NOT_THE_CFLAGS="" + PGAC_PROG_CC_VAR_OPT(NOT_THE_CFLAGS, [-Wcompound-token-split-by-macro]) + if test -n "$NOT_THE_CFLAGS"; then + CFLAGS="$CFLAGS -Wno-compound-token-split-by-macro" + fi # Similarly disable useless truncation warnings from gcc 8+ NOT_THE_CFLAGS="" PGAC_PROG_CC_VAR_OPT(NOT_THE_CFLAGS, [-Wformat-truncation]) @@ -555,9 +567,12 @@ AC_SUBST(CFLAGS_VECTOR) -# Determine flags used to emit bitcode for JIT inlining. Need to test -# for behaviour changing compiler flags, to keep compatibility with -# compiler used for normal postgres code. +# Determine flags used to emit bitcode for JIT inlining. +# 1. We must duplicate any behaviour-changing compiler flags used above, +# to keep compatibility with the compiler used for normal Postgres code. +# 2. We don't bother to duplicate extra-warnings switches --- seeing a +# warning in the main build is enough. +# 3. But we must duplicate -Wno-warning flags, else we'll see those anyway. if test "$with_llvm" = yes ; then CLANGXX="$CLANG -xc++" @@ -567,6 +582,27 @@ PGAC_PROG_VARCXX_VARFLAGS_OPT(CLANGXX, BITCODE_CXXFLAGS, [-fwrapv]) PGAC_PROG_VARCC_VARFLAGS_OPT(CLANG, BITCODE_CFLAGS, [-fexcess-precision=standard]) PGAC_PROG_VARCXX_VARFLAGS_OPT(CLANGXX, BITCODE_CXXFLAGS, [-fexcess-precision=standard]) + + NOT_THE_CFLAGS="" + PGAC_PROG_VARCC_VARFLAGS_OPT(CLANG, NOT_THE_CFLAGS, [-Wunused-command-line-argument]) + if test -n "$NOT_THE_CFLAGS"; then + BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-unused-command-line-argument" + fi + NOT_THE_CFLAGS="" + PGAC_PROG_VARCC_VARFLAGS_OPT(CLANG, NOT_THE_CFLAGS, [-Wcompound-token-split-by-macro]) + if test -n "$NOT_THE_CFLAGS"; then + BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-compound-token-split-by-macro" + fi + NOT_THE_CFLAGS="" + PGAC_PROG_VARCC_VARFLAGS_OPT(CLANG, NOT_THE_CFLAGS, [-Wformat-truncation]) + if test -n "$NOT_THE_CFLAGS"; then + BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-format-truncation" + fi + NOT_THE_CFLAGS="" + PGAC_PROG_VARCC_VARFLAGS_OPT(CLANG, NOT_THE_CFLAGS, [-Wstringop-truncation]) + if test -n "$NOT_THE_CFLAGS"; then + BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-stringop-truncation" + fi fi # supply -g if --enable-debug @@ -1142,7 +1178,10 @@ AC_CHECK_LIB(m, main) AC_SEARCH_LIBS(setproctitle, util) -AC_SEARCH_LIBS(dlopen, dl) +# gcc/clang's sanitizer helper library provides dlopen but not dlsym, thus +# when enabling asan the dlopen check doesn't notice that -ldl is actually +# required. Just checking for dlsym() ought to suffice. +AC_SEARCH_LIBS(dlsym, dl) AC_SEARCH_LIBS(socket, [socket ws2_32]) AC_SEARCH_LIBS(shl_load, dld) AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt]) @@ -1677,6 +1716,9 @@ PGAC_CHECK_BUILTIN_FUNC([__builtin_clz], [unsigned int x]) PGAC_CHECK_BUILTIN_FUNC([__builtin_ctz], [unsigned int x]) PGAC_CHECK_BUILTIN_FUNC([__builtin_popcount], [unsigned int x]) +# __builtin_frame_address may draw a diagnostic for non-constant argument, +# so it needs a different test function. +PGAC_CHECK_BUILTIN_FUNC_PTR([__builtin_frame_address], [0]) # We require 64-bit fseeko() to be available, but run this check anyway # in case it finds that _LARGEFILE_SOURCE has to be #define'd for that. @@ -2260,21 +2302,25 @@ # Check for test tools # if test "$enable_tap_tests" = yes; then - # Check for necessary modules, unless user has specified the "prove" to use; - # in that case it's her responsibility to have a working configuration. - # (prove might be part of a different Perl installation than perl, eg on - # MSys, so the result of AX_PROG_PERL_MODULES could be irrelevant anyway.) - if test -z "$PROVE"; then - # Test::More and Time::HiRes are supposed to be part of core Perl, - # but some distros omit them in a minimal installation. - AX_PROG_PERL_MODULES([IPC::Run Test::More=0.87 Time::HiRes], , - [AC_MSG_ERROR([Additional Perl modules are required to run TAP tests])]) - fi - # Now make sure we know where prove is + # Make sure we know where prove is. PGAC_PATH_PROGS(PROVE, prove) if test -z "$PROVE"; then AC_MSG_ERROR([prove not found]) fi + # Check for necessary Perl modules. You might think we should use + # AX_PROG_PERL_MODULES here, but prove might be part of a different Perl + # installation than perl, eg on MSys, so we have to check using prove. + AC_MSG_CHECKING(for Perl modules required for TAP tests) + [modulestderr=`"$PROVE" "$srcdir/config/check_modules.pl" 2>&1 >/dev/null`] + if test $? -eq 0; then + # log the module version details, but don't show them interactively + echo "$modulestderr" >&AS_MESSAGE_LOG_FD + AC_MSG_RESULT(yes) + else + # on failure, though, show the results to the user + AC_MSG_RESULT([$modulestderr]) + AC_MSG_ERROR([Additional Perl modules are required to run TAP tests]) + fi fi # Thread testing diff -Nru postgresql-13-13.4/contrib/amcheck/expected/check_btree.out postgresql-13-13.7/contrib/amcheck/expected/check_btree.out --- postgresql-13-13.4/contrib/amcheck/expected/check_btree.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/amcheck/expected/check_btree.out 2022-05-09 21:16:30.000000000 +0000 @@ -177,11 +177,34 @@ (1 row) +-- +-- Check that index expressions and predicates are run as the table's owner +-- +TRUNCATE bttest_a; +INSERT INTO bttest_a SELECT * FROM generate_series(1, 1000); +ALTER TABLE bttest_a OWNER TO regress_bttest_role; +-- A dummy index function checking current_user +CREATE FUNCTION ifun(int8) RETURNS int8 AS $$ +BEGIN + ASSERT current_user = 'regress_bttest_role', + format('ifun(%s) called by %s', $1, current_user); + RETURN $1; +END; +$$ LANGUAGE plpgsql IMMUTABLE; +CREATE INDEX bttest_a_expr_idx ON bttest_a ((ifun(id) + ifun(0))) + WHERE ifun(id + 10) > ifun(10); +SELECT bt_index_check('bttest_a_expr_idx', true); + bt_index_check +---------------- + +(1 row) + -- cleanup DROP TABLE bttest_a; DROP TABLE bttest_b; DROP TABLE bttest_multi; DROP TABLE delete_test_table; DROP TABLE toast_bug; +DROP FUNCTION ifun(int8); DROP OWNED BY regress_bttest_role; -- permissions DROP ROLE regress_bttest_role; diff -Nru postgresql-13-13.4/contrib/amcheck/Makefile postgresql-13-13.7/contrib/amcheck/Makefile --- postgresql-13-13.4/contrib/amcheck/Makefile 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/amcheck/Makefile 2022-05-09 21:16:30.000000000 +0000 @@ -11,6 +11,8 @@ REGRESS = check check_btree +TAP_TESTS = 1 + ifdef USE_PGXS PG_CONFIG = pg_config PGXS := $(shell $(PG_CONFIG) --pgxs) diff -Nru postgresql-13-13.4/contrib/amcheck/sql/check_btree.sql postgresql-13-13.7/contrib/amcheck/sql/check_btree.sql --- postgresql-13-13.4/contrib/amcheck/sql/check_btree.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/amcheck/sql/check_btree.sql 2022-05-09 21:16:30.000000000 +0000 @@ -115,11 +115,32 @@ -- Should not get false positive report of corruption: SELECT bt_index_check('toasty', true); +-- +-- Check that index expressions and predicates are run as the table's owner +-- +TRUNCATE bttest_a; +INSERT INTO bttest_a SELECT * FROM generate_series(1, 1000); +ALTER TABLE bttest_a OWNER TO regress_bttest_role; +-- A dummy index function checking current_user +CREATE FUNCTION ifun(int8) RETURNS int8 AS $$ +BEGIN + ASSERT current_user = 'regress_bttest_role', + format('ifun(%s) called by %s', $1, current_user); + RETURN $1; +END; +$$ LANGUAGE plpgsql IMMUTABLE; + +CREATE INDEX bttest_a_expr_idx ON bttest_a ((ifun(id) + ifun(0))) + WHERE ifun(id + 10) > ifun(10); + +SELECT bt_index_check('bttest_a_expr_idx', true); + -- cleanup DROP TABLE bttest_a; DROP TABLE bttest_b; DROP TABLE bttest_multi; DROP TABLE delete_test_table; DROP TABLE toast_bug; +DROP FUNCTION ifun(int8); DROP OWNED BY regress_bttest_role; -- permissions DROP ROLE regress_bttest_role; diff -Nru postgresql-13-13.4/contrib/amcheck/t/002_cic.pl postgresql-13-13.7/contrib/amcheck/t/002_cic.pl --- postgresql-13-13.4/contrib/amcheck/t/002_cic.pl 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/contrib/amcheck/t/002_cic.pl 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,65 @@ + +# Copyright (c) 2021, PostgreSQL Global Development Group + +# Test CREATE INDEX CONCURRENTLY with concurrent modifications +use strict; +use warnings; + +use Config; +use PostgresNode; +use TestLib; + +use Test::More tests => 3; + +my ($node, $result); + +# +# Test set-up +# +$node = get_new_node('CIC_test'); +$node->init; +$node->append_conf('postgresql.conf', + 'lock_timeout = ' . (1000 * $TestLib::timeout_default)); +$node->start; +$node->safe_psql('postgres', q(CREATE EXTENSION amcheck)); +$node->safe_psql('postgres', q(CREATE TABLE tbl(i int))); +$node->safe_psql('postgres', q(CREATE INDEX idx ON tbl(i))); + +# +# Stress CIC with pgbench. +# +# pgbench might try to launch more than one instance of the CIC +# transaction concurrently. That would deadlock, so use an advisory +# lock to ensure only one CIC runs at a time. +# +$node->pgbench( + '--no-vacuum --client=5 --transactions=100', + 0, + [qr{actually processed}], + [qr{^$}], + 'concurrent INSERTs and CIC', + { + '002_pgbench_concurrent_transaction' => q( + BEGIN; + INSERT INTO tbl VALUES(0); + COMMIT; + ), + '002_pgbench_concurrent_transaction_savepoints' => q( + BEGIN; + SAVEPOINT s1; + INSERT INTO tbl VALUES(0); + COMMIT; + ), + '002_pgbench_concurrent_cic' => q( + SELECT pg_try_advisory_lock(42)::integer AS gotlock \gset + \if :gotlock + DROP INDEX CONCURRENTLY idx; + CREATE INDEX CONCURRENTLY idx ON tbl(i); + SELECT bt_index_check('idx',true); + SELECT pg_advisory_unlock(42); + \endif + ) + }); + +$node->stop; +done_testing(); diff -Nru postgresql-13-13.4/contrib/amcheck/t/003_cic_2pc.pl postgresql-13-13.7/contrib/amcheck/t/003_cic_2pc.pl --- postgresql-13-13.4/contrib/amcheck/t/003_cic_2pc.pl 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/contrib/amcheck/t/003_cic_2pc.pl 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,188 @@ + +# Copyright (c) 2021, PostgreSQL Global Development Group + +# Test CREATE INDEX CONCURRENTLY with concurrent prepared-xact modifications +use strict; +use warnings; + +use Config; +use PostgresNode; +use TestLib; + +use Test::More tests => 5; + +Test::More->builder->todo_start('filesystem bug') + if TestLib::has_wal_read_bug; + +my ($node, $result); + +# +# Test set-up +# +$node = get_new_node('CIC_2PC_test'); +$node->init; +$node->append_conf('postgresql.conf', 'max_prepared_transactions = 10'); +$node->append_conf('postgresql.conf', + 'lock_timeout = ' . (1000 * $TestLib::timeout_default)); +$node->start; +$node->safe_psql('postgres', q(CREATE EXTENSION amcheck)); +$node->safe_psql('postgres', q(CREATE TABLE tbl(i int))); + + +# +# Run 3 overlapping 2PC transactions with CIC +# +# We have two concurrent background psql processes: $main_h for INSERTs and +# $cic_h for CIC. Also, we use non-background psql for some COMMIT PREPARED +# statements. +# + +my $main_in = ''; +my $main_out = ''; +my $main_timer = IPC::Run::timeout($TestLib::timeout_default); + +my $main_h = + $node->background_psql('postgres', \$main_in, \$main_out, + $main_timer, on_error_stop => 1); +$main_in .= q( +BEGIN; +INSERT INTO tbl VALUES(0); +\echo syncpoint1 +); +pump $main_h until $main_out =~ /syncpoint1/ || $main_timer->is_expired; + +my $cic_in = ''; +my $cic_out = ''; +my $cic_timer = IPC::Run::timeout($TestLib::timeout_default); +my $cic_h = + $node->background_psql('postgres', \$cic_in, \$cic_out, + $cic_timer, on_error_stop => 1); +$cic_in .= q( +\echo start +CREATE INDEX CONCURRENTLY idx ON tbl(i); +); +pump $cic_h until $cic_out =~ /start/ || $cic_timer->is_expired; + +$main_in .= q( +PREPARE TRANSACTION 'a'; +); + +$main_in .= q( +BEGIN; +INSERT INTO tbl VALUES(0); +\echo syncpoint2 +); +pump $main_h until $main_out =~ /syncpoint2/ || $main_timer->is_expired; + +$node->safe_psql('postgres', q(COMMIT PREPARED 'a';)); + +$main_in .= q( +PREPARE TRANSACTION 'b'; +BEGIN; +INSERT INTO tbl VALUES(0); +\echo syncpoint3 +); +pump $main_h until $main_out =~ /syncpoint3/ || $main_timer->is_expired; + +$node->safe_psql('postgres', q(COMMIT PREPARED 'b';)); + +$main_in .= q( +PREPARE TRANSACTION 'c'; +COMMIT PREPARED 'c'; +); +$main_h->pump_nb; + +$main_h->finish; +$cic_h->finish; + +$result = $node->psql('postgres', q(SELECT bt_index_check('idx',true))); +is($result, '0', 'bt_index_check after overlapping 2PC'); + + +# +# Server restart shall not change whether prepared xact blocks CIC +# + +$node->safe_psql( + 'postgres', q( +BEGIN; +INSERT INTO tbl VALUES(0); +PREPARE TRANSACTION 'spans_restart'; +BEGIN; +CREATE TABLE unused (); +PREPARE TRANSACTION 'persists_forever'; +)); +$node->restart; + +my $reindex_in = ''; +my $reindex_out = ''; +my $reindex_timer = + IPC::Run::timeout($TestLib::timeout_default); +my $reindex_h = + $node->background_psql('postgres', \$reindex_in, \$reindex_out, + $reindex_timer, on_error_stop => 1); +$reindex_in .= q( +\echo start +DROP INDEX CONCURRENTLY idx; +CREATE INDEX CONCURRENTLY idx ON tbl(i); +); +pump $reindex_h until $reindex_out =~ /start/ || $reindex_timer->is_expired; + +$node->safe_psql('postgres', "COMMIT PREPARED 'spans_restart'"); +$reindex_h->finish; +$result = $node->psql('postgres', q(SELECT bt_index_check('idx',true))); +is($result, '0', 'bt_index_check after 2PC and restart'); + + +# +# Stress CIC+2PC with pgbench +# +# pgbench might try to launch more than one instance of the CIC +# transaction concurrently. That would deadlock, so use an advisory +# lock to ensure only one CIC runs at a time. + +# Fix broken index first +$node->safe_psql('postgres', q(REINDEX TABLE tbl;)); + +# Run pgbench. +$node->pgbench( + '--no-vacuum --client=5 --transactions=100', + 0, + [qr{actually processed}], + [qr{^$}], + 'concurrent INSERTs w/ 2PC and CIC', + { + '003_pgbench_concurrent_2pc' => q( + BEGIN; + INSERT INTO tbl VALUES(0); + PREPARE TRANSACTION 'c:client_id'; + COMMIT PREPARED 'c:client_id'; + ), + '003_pgbench_concurrent_2pc_savepoint' => q( + BEGIN; + SAVEPOINT s1; + INSERT INTO tbl VALUES(0); + PREPARE TRANSACTION 'c:client_id'; + COMMIT PREPARED 'c:client_id'; + ), + '003_pgbench_concurrent_cic' => q( + SELECT pg_try_advisory_lock(42)::integer AS gotlock \gset + \if :gotlock + DROP INDEX CONCURRENTLY idx; + CREATE INDEX CONCURRENTLY idx ON tbl(i); + SELECT bt_index_check('idx',true); + SELECT pg_advisory_unlock(42); + \endif + ), + '004_pgbench_concurrent_ric' => q( + SELECT pg_try_advisory_lock(42)::integer AS gotlock \gset + \if :gotlock + REINDEX INDEX CONCURRENTLY idx; + SELECT bt_index_check('idx',true); + SELECT pg_advisory_unlock(42); + \endif + ) + }); + +$node->stop; +done_testing(); diff -Nru postgresql-13-13.4/contrib/amcheck/verify_nbtree.c postgresql-13-13.7/contrib/amcheck/verify_nbtree.c --- postgresql-13-13.4/contrib/amcheck/verify_nbtree.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/amcheck/verify_nbtree.c 2022-05-09 21:16:30.000000000 +0000 @@ -245,6 +245,9 @@ Relation indrel; Relation heaprel; LOCKMODE lockmode; + Oid save_userid; + int save_sec_context; + int save_nestlevel; if (parentcheck) lockmode = ShareLock; @@ -261,9 +264,27 @@ */ heapid = IndexGetRelation(indrelid, true); if (OidIsValid(heapid)) + { heaprel = table_open(heapid, lockmode); + + /* + * Switch to the table owner's userid, so that any index functions are + * run as that user. Also lock down security-restricted operations + * and arrange to make GUC variable changes local to this command. + */ + GetUserIdAndSecContext(&save_userid, &save_sec_context); + SetUserIdAndSecContext(heaprel->rd_rel->relowner, + save_sec_context | SECURITY_RESTRICTED_OPERATION); + save_nestlevel = NewGUCNestLevel(); + } else + { heaprel = NULL; + /* for "gcc -Og" https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78394 */ + save_userid = InvalidOid; + save_sec_context = -1; + save_nestlevel = -1; + } /* * Open the target index relations separately (like relation_openrv(), but @@ -323,6 +344,12 @@ heapallindexed, rootdescend); } + /* Roll back any GUC changes executed by index functions */ + AtEOXact_GUC(false, save_nestlevel); + + /* Restore userid and security context */ + SetUserIdAndSecContext(save_userid, save_sec_context); + /* * Release locks early. That's ok here because nothing in the called * routines will trigger shared cache invalidations to be sent, so we can diff -Nru postgresql-13-13.4/contrib/bloom/Makefile postgresql-13-13.7/contrib/bloom/Makefile --- postgresql-13-13.4/contrib/bloom/Makefile 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/bloom/Makefile 2022-05-09 21:16:30.000000000 +0000 @@ -16,9 +16,7 @@ REGRESS = bloom -# Disable TAP tests for this module for now, as these are unstable on several -# buildfarm environments. -# TAP_TESTS = 1 +TAP_TESTS = 1 ifdef USE_PGXS PG_CONFIG = pg_config diff -Nru postgresql-13-13.4/contrib/bloom/t/001_wal.pl postgresql-13-13.7/contrib/bloom/t/001_wal.pl --- postgresql-13-13.4/contrib/bloom/t/001_wal.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/bloom/t/001_wal.pl 2022-05-09 21:16:30.000000000 +0000 @@ -3,7 +3,18 @@ use warnings; use PostgresNode; use TestLib; -use Test::More tests => 31; +use Test::More; + +if (TestLib::has_wal_read_bug) +{ + # We'd prefer to use Test::More->builder->todo_start, but the bug causes + # this test file to die(), not merely to fail. + plan skip_all => 'filesystem bug'; +} +else +{ + plan tests => 31; +} my $node_master; my $node_standby; @@ -13,12 +24,10 @@ { my ($test_name) = @_; + local $Test::Builder::Level = $Test::Builder::Level + 1; + # Wait for standby to catch up - my $applname = $node_standby->name; - my $caughtup_query = - "SELECT pg_current_wal_lsn() <= write_lsn FROM pg_stat_replication WHERE application_name = '$applname';"; - $node_master->poll_query_until('postgres', $caughtup_query) - or die "Timed out while waiting for standby 1 to catch up"; + $node_master->wait_for_catchup($node_standby); my $queries = qq(SET enable_seqscan=off; SET enable_bitmapscan=on; diff -Nru postgresql-13-13.4/contrib/btree_gin/btree_gin.c postgresql-13-13.7/contrib/btree_gin/btree_gin.c --- postgresql-13-13.4/contrib/btree_gin/btree_gin.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/btree_gin/btree_gin.c 2022-05-09 21:16:30.000000000 +0000 @@ -357,7 +357,7 @@ static Datum leftmostvalue_char(void) { - return CharGetDatum(SCHAR_MIN); + return CharGetDatum(0); } GIN_SUPPORT(char, false, leftmostvalue_char, btcharcmp) diff -Nru postgresql-13-13.4/contrib/btree_gin/expected/char.out postgresql-13-13.7/contrib/btree_gin/expected/char.out --- postgresql-13-13.4/contrib/btree_gin/expected/char.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/btree_gin/expected/char.out 2022-05-09 21:16:30.000000000 +0000 @@ -7,12 +7,19 @@ SELECT * FROM test_char WHERE i<'d'::"char" ORDER BY i; i --- -(0 rows) + a + b + c +(3 rows) SELECT * FROM test_char WHERE i<='d'::"char" ORDER BY i; i --- -(0 rows) + a + b + c + d +(4 rows) SELECT * FROM test_char WHERE i='d'::"char" ORDER BY i; i diff -Nru postgresql-13-13.4/contrib/btree_gist/btree_text.c postgresql-13-13.7/contrib/btree_gist/btree_text.c --- postgresql-13-13.4/contrib/btree_gist/btree_text.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/btree_gist/btree_text.c 2022-05-09 21:16:30.000000000 +0000 @@ -90,6 +90,76 @@ NULL }; +/* bpchar needs its own comparison rules */ + +static bool +gbt_bpchargt(const void *a, const void *b, Oid collation, FmgrInfo *flinfo) +{ + return DatumGetBool(DirectFunctionCall2Coll(bpchargt, + collation, + PointerGetDatum(a), + PointerGetDatum(b))); +} + +static bool +gbt_bpcharge(const void *a, const void *b, Oid collation, FmgrInfo *flinfo) +{ + return DatumGetBool(DirectFunctionCall2Coll(bpcharge, + collation, + PointerGetDatum(a), + PointerGetDatum(b))); +} + +static bool +gbt_bpchareq(const void *a, const void *b, Oid collation, FmgrInfo *flinfo) +{ + return DatumGetBool(DirectFunctionCall2Coll(bpchareq, + collation, + PointerGetDatum(a), + PointerGetDatum(b))); +} + +static bool +gbt_bpcharle(const void *a, const void *b, Oid collation, FmgrInfo *flinfo) +{ + return DatumGetBool(DirectFunctionCall2Coll(bpcharle, + collation, + PointerGetDatum(a), + PointerGetDatum(b))); +} + +static bool +gbt_bpcharlt(const void *a, const void *b, Oid collation, FmgrInfo *flinfo) +{ + return DatumGetBool(DirectFunctionCall2Coll(bpcharlt, + collation, + PointerGetDatum(a), + PointerGetDatum(b))); +} + +static int32 +gbt_bpcharcmp(const void *a, const void *b, Oid collation, FmgrInfo *flinfo) +{ + return DatumGetInt32(DirectFunctionCall2Coll(bpcharcmp, + collation, + PointerGetDatum(a), + PointerGetDatum(b))); +} + +static gbtree_vinfo bptinfo = +{ + gbt_t_bpchar, + 0, + false, + gbt_bpchargt, + gbt_bpcharge, + gbt_bpchareq, + gbt_bpcharle, + gbt_bpcharlt, + gbt_bpcharcmp, + NULL +}; + /************************************************** * Text ops @@ -112,29 +182,8 @@ Datum gbt_bpchar_compress(PG_FUNCTION_ARGS) { - GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - GISTENTRY *retval; - - if (tinfo.eml == 0) - { - tinfo.eml = pg_database_encoding_max_length(); - } - - if (entry->leafkey) - { - - Datum d = DirectFunctionCall1(rtrim1, entry->key); - GISTENTRY trim; - - gistentryinit(trim, d, - entry->rel, entry->page, - entry->offset, true); - retval = gbt_var_compress(&trim, &tinfo); - } - else - retval = entry; - - PG_RETURN_POINTER(retval); + /* This should never have been distinct from gbt_text_compress */ + return gbt_text_compress(fcinfo); } @@ -179,18 +228,17 @@ bool retval; GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); GBT_VARKEY_R r = gbt_var_key_readable(key); - void *trim = (void *) DatumGetPointer(DirectFunctionCall1(rtrim1, PointerGetDatum(query))); /* All cases served by this function are exact */ *recheck = false; - if (tinfo.eml == 0) + if (bptinfo.eml == 0) { - tinfo.eml = pg_database_encoding_max_length(); + bptinfo.eml = pg_database_encoding_max_length(); } - retval = gbt_var_consistent(&r, trim, strategy, PG_GET_COLLATION(), - GIST_LEAF(entry), &tinfo, fcinfo->flinfo); + retval = gbt_var_consistent(&r, query, strategy, PG_GET_COLLATION(), + GIST_LEAF(entry), &bptinfo, fcinfo->flinfo); PG_RETURN_BOOL(retval); } diff -Nru postgresql-13-13.4/contrib/btree_gist/expected/char_1.out postgresql-13-13.7/contrib/btree_gist/expected/char_1.out --- postgresql-13-13.4/contrib/btree_gist/expected/char_1.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/btree_gist/expected/char_1.out 2022-05-09 21:16:30.000000000 +0000 @@ -75,8 +75,8 @@ (2 rows) SELECT * FROM chartmp WHERE a BETWEEN '31a' AND '31c'; - a ------- - 31b0 + a +---------------------------------- + 31b0 (1 row) diff -Nru postgresql-13-13.4/contrib/btree_gist/expected/char.out postgresql-13-13.7/contrib/btree_gist/expected/char.out --- postgresql-13-13.4/contrib/btree_gist/expected/char.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/btree_gist/expected/char.out 2022-05-09 21:16:30.000000000 +0000 @@ -75,8 +75,8 @@ (2 rows) SELECT * FROM chartmp WHERE a BETWEEN '31a' AND '31c'; - a ------- - 31b0 + a +---------------------------------- + 31b0 (1 row) diff -Nru postgresql-13-13.4/contrib/cube/cubeparse.c postgresql-13-13.7/contrib/cube/cubeparse.c --- postgresql-13-13.4/contrib/cube/cubeparse.c 2021-08-09 21:03:35.000000000 +0000 +++ postgresql-13-13.7/contrib/cube/cubeparse.c 2022-05-09 21:29:49.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,12 +70,11 @@ #define yyerror cube_yyerror #define yydebug cube_yydebug #define yynerrs cube_yynerrs - #define yylval cube_yylval #define yychar cube_yychar /* First part of user prologue. */ -#line 1 "cubeparse.y" /* yacc.c:337 */ +#line 1 "cubeparse.y" /* contrib/cube/cubeparse.y */ @@ -108,7 +108,17 @@ static NDBOX *write_point_as_box(int dim, char *str); -#line 112 "cubeparse.c" /* yacc.c:337 */ +#line 112 "cubeparse.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -121,14 +131,6 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - /* Debug traces. */ #ifndef YYDEBUG @@ -138,18 +140,23 @@ extern int cube_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - CUBEFLOAT = 258, - O_PAREN = 259, - C_PAREN = 260, - O_BRACKET = 261, - C_BRACKET = 262, - COMMA = 263 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + CUBEFLOAT = 258, /* CUBEFLOAT */ + O_PAREN = 259, /* O_PAREN */ + C_PAREN = 260, /* C_PAREN */ + O_BRACKET = 261, /* O_BRACKET */ + C_BRACKET = 262, /* C_BRACKET */ + COMMA = 263 /* COMMA */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ @@ -165,6 +172,26 @@ int cube_yyparse (NDBOX **result); +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_CUBEFLOAT = 3, /* CUBEFLOAT */ + YYSYMBOL_O_PAREN = 4, /* O_PAREN */ + YYSYMBOL_C_PAREN = 5, /* C_PAREN */ + YYSYMBOL_O_BRACKET = 6, /* O_BRACKET */ + YYSYMBOL_C_BRACKET = 7, /* C_BRACKET */ + YYSYMBOL_COMMA = 8, /* COMMA */ + YYSYMBOL_YYACCEPT = 9, /* $accept */ + YYSYMBOL_box = 10, /* box */ + YYSYMBOL_paren_list = 11, /* paren_list */ + YYSYMBOL_list = 12 /* list */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + @@ -172,28 +199,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -201,7 +287,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -209,7 +295,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -223,38 +322,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -267,8 +365,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + -#if ! defined yyoverflow || YYERROR_VERBOSE +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -333,8 +445,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -343,17 +454,17 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -366,11 +477,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -382,12 +493,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -410,17 +521,20 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 19 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #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) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint8 yytranslate[] = +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -459,34 +573,47 @@ }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "CUBEFLOAT", "O_PAREN", "C_PAREN", - "O_BRACKET", "C_BRACKET", "COMMA", "$accept", "box", "paren_list", - "list", YY_NULLPTR + "\"end of file\"", "error", "\"invalid token\"", "CUBEFLOAT", "O_PAREN", + "C_PAREN", "O_BRACKET", "C_BRACKET", "COMMA", "$accept", "box", + "paren_list", "list", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263 }; -# endif +#endif -#define YYPACT_NINF -4 +#define YYPACT_NINF (-4) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-4))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -1 +#define YYTABLE_NINF (-1) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -500,7 +627,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint8 yydefact[] = +static const yytype_int8 yydefact[] = { 0, 8, 0, 0, 0, 4, 5, 7, 0, 0, 1, 0, 0, 6, 0, 3, 9, 0, 2 @@ -515,19 +642,19 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 4, 5, 6 + 0, 4, 5, 6 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_uint8 yytable[] = +static const yytype_int8 yytable[] = { 9, 1, 2, 1, 3, 7, 13, 2, 15, 12, 10, 17, 11, 12, 14, 16, 18, 8 }; -static const yytype_uint8 yycheck[] = +static const yytype_int8 yycheck[] = { 3, 3, 4, 3, 6, 5, 5, 4, 11, 8, 0, 14, 8, 8, 8, 3, 7, 2 @@ -535,29 +662,29 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_int8 yystos[] = { 0, 3, 4, 6, 10, 11, 12, 5, 12, 11, 0, 8, 8, 5, 8, 11, 3, 11, 7 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_int8 yyr1[] = { 0, 9, 10, 10, 10, 10, 11, 11, 12, 12 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 5, 3, 1, 1, 3, 2, 1, 3 }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -583,10 +710,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* Enable debugging if requested. */ @@ -604,18 +730,18 @@ } while (0) /* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value, result); \ + Kind, Value, result); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -626,18 +752,21 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, NDBOX **result) { FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (result); + YY_USE (yyoutput); + YY_USE (result); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -646,12 +775,13 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, NDBOX **result) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyo, yytype, yyvaluep, result); + yy_symbol_value_print (yyo, yykind, yyvaluep, result); YYFPRINTF (yyo, ")"); } @@ -661,7 +791,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -684,21 +814,21 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, NDBOX **result) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule, NDBOX **result) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - , result); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], result); YYFPRINTF (stderr, "\n"); } } @@ -713,8 +843,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -737,255 +867,31 @@ #endif -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, NDBOX **result) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, NDBOX **result) { - YYUSE (yyvaluep); - YYUSE (result); + YY_USE (yyvaluep); + YY_USE (result); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -994,6 +900,8 @@ int yynerrs; + + /*----------. | yyparse. | `----------*/ @@ -1001,43 +909,36 @@ int yyparse (NDBOX **result) { - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - YYSIZE_T yystacksize; + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -1045,15 +946,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; @@ -1068,10 +962,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1079,23 +978,23 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -1109,14 +1008,15 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1125,16 +1025,16 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -1155,18 +1055,29 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1194,15 +1105,13 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1237,9 +1146,9 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 47 "cubeparse.y" /* yacc.c:1652 */ - { + case 2: /* box: O_BRACKET paren_list COMMA paren_list C_BRACKET */ +#line 47 "cubeparse.y" + { int dim; dim = item_count(yyvsp[-3], ','); @@ -1264,12 +1173,12 @@ *result = write_box( dim, yyvsp[-3], yyvsp[-1] ); } -#line 1268 "cubeparse.c" /* yacc.c:1652 */ +#line 1177 "cubeparse.c" break; - case 3: -#line 74 "cubeparse.y" /* yacc.c:1652 */ - { + case 3: /* box: paren_list COMMA paren_list */ +#line 74 "cubeparse.y" + { int dim; dim = item_count(yyvsp[-2], ','); @@ -1294,12 +1203,12 @@ *result = write_box( dim, yyvsp[-2], yyvsp[0] ); } -#line 1298 "cubeparse.c" /* yacc.c:1652 */ +#line 1207 "cubeparse.c" break; - case 4: -#line 101 "cubeparse.y" /* yacc.c:1652 */ - { + case 4: /* box: paren_list */ +#line 101 "cubeparse.y" + { int dim; dim = item_count(yyvsp[0], ','); @@ -1315,12 +1224,12 @@ *result = write_point_as_box(dim, yyvsp[0]); } -#line 1319 "cubeparse.c" /* yacc.c:1652 */ +#line 1228 "cubeparse.c" break; - case 5: -#line 119 "cubeparse.y" /* yacc.c:1652 */ - { + case 5: /* box: list */ +#line 119 "cubeparse.y" + { int dim; dim = item_count(yyvsp[0], ','); @@ -1336,47 +1245,48 @@ *result = write_point_as_box(dim, yyvsp[0]); } -#line 1340 "cubeparse.c" /* yacc.c:1652 */ +#line 1249 "cubeparse.c" break; - case 6: -#line 138 "cubeparse.y" /* yacc.c:1652 */ - { + case 6: /* paren_list: O_PAREN list C_PAREN */ +#line 138 "cubeparse.y" + { yyval = yyvsp[-1]; } -#line 1348 "cubeparse.c" /* yacc.c:1652 */ +#line 1257 "cubeparse.c" break; - case 7: -#line 142 "cubeparse.y" /* yacc.c:1652 */ - { + case 7: /* paren_list: O_PAREN C_PAREN */ +#line 142 "cubeparse.y" + { yyval = pstrdup(""); } -#line 1356 "cubeparse.c" /* yacc.c:1652 */ +#line 1265 "cubeparse.c" break; - case 8: -#line 148 "cubeparse.y" /* yacc.c:1652 */ - { + case 8: /* list: CUBEFLOAT */ +#line 148 "cubeparse.y" + { /* alloc enough space to be sure whole list will fit */ yyval = palloc(scanbuflen + 1); strcpy(yyval, yyvsp[0]); } -#line 1366 "cubeparse.c" /* yacc.c:1652 */ +#line 1275 "cubeparse.c" break; - case 9: -#line 154 "cubeparse.y" /* yacc.c:1652 */ - { + case 9: /* list: list COMMA CUBEFLOAT */ +#line 154 "cubeparse.y" + { yyval = yyvsp[-2]; strcat(yyval, ","); strcat(yyval, yyvsp[0]); } -#line 1376 "cubeparse.c" /* yacc.c:1652 */ +#line 1285 "cubeparse.c" break; -#line 1380 "cubeparse.c" /* yacc.c:1652 */ +#line 1289 "cubeparse.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1390,11 +1300,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1418,50 +1327,14 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (result, YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (result, yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } - - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -1510,13 +1383,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -1530,7 +1404,7 @@ yydestruct ("Error: popping", - yystos[yystate], yyvsp, result); + YY_ACCESSING_SYMBOL (yystate), yyvsp, result); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -1542,7 +1416,7 @@ /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1564,20 +1438,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (result, YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -1594,20 +1468,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, result); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, result); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 161 "cubeparse.y" /* yacc.c:1918 */ + +#line 161 "cubeparse.y" /* This assumes the string has been normalized by productions above */ diff -Nru postgresql-13-13.4/contrib/dblink/dblink.c postgresql-13-13.7/contrib/dblink/dblink.c --- postgresql-13-13.4/contrib/dblink/dblink.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/dblink/dblink.c 2022-05-09 21:16:30.000000000 +0000 @@ -2799,7 +2799,8 @@ ereport(level, (errcode(sqlstate), - message_primary ? errmsg_internal("%s", message_primary) : + (message_primary != NULL && message_primary[0] != '\0') ? + errmsg_internal("%s", message_primary) : errmsg("could not obtain message string for remote error"), message_detail ? errdetail_internal("%s", message_detail) : 0, message_hint ? errhint("%s", message_hint) : 0, diff -Nru postgresql-13-13.4/contrib/ltree/ltree_gist.c postgresql-13-13.7/contrib/ltree/ltree_gist.c --- postgresql-13-13.4/contrib/ltree/ltree_gist.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/ltree/ltree_gist.c 2022-05-09 21:16:30.000000000 +0000 @@ -130,7 +130,7 @@ ltree_gist *a = (ltree_gist *) PG_GETARG_POINTER(0); ltree_gist *b = (ltree_gist *) PG_GETARG_POINTER(1); bool *result = (bool *) PG_GETARG_POINTER(2); - int siglen = LTREE_GET_ASIGLEN(); + int siglen = LTREE_GET_SIGLEN(); *result = false; if (LTG_ISONENODE(a) != LTG_ISONENODE(b)) @@ -190,7 +190,7 @@ { GistEntryVector *entryvec = (GistEntryVector *) PG_GETARG_POINTER(0); int *size = (int *) PG_GETARG_POINTER(1); - int siglen = LTREE_GET_ASIGLEN(); + int siglen = LTREE_GET_SIGLEN(); BITVECP base = palloc0(siglen); int32 i, j; @@ -260,7 +260,7 @@ ltree_gist *origval = (ltree_gist *) DatumGetPointer(((GISTENTRY *) PG_GETARG_POINTER(0))->key); ltree_gist *newval = (ltree_gist *) DatumGetPointer(((GISTENTRY *) PG_GETARG_POINTER(1))->key); float *penalty = (float *) PG_GETARG_POINTER(2); - int siglen = LTREE_GET_ASIGLEN(); + int siglen = LTREE_GET_SIGLEN(); int32 cmpr, cmpl; @@ -292,7 +292,7 @@ { GistEntryVector *entryvec = (GistEntryVector *) PG_GETARG_POINTER(0); GIST_SPLITVEC *v = (GIST_SPLITVEC *) PG_GETARG_POINTER(1); - int siglen = LTREE_GET_ASIGLEN(); + int siglen = LTREE_GET_SIGLEN(); OffsetNumber j; int32 i; RIX *array; @@ -618,7 +618,7 @@ /* Oid subtype = PG_GETARG_OID(3); */ bool *recheck = (bool *) PG_GETARG_POINTER(4); - int siglen = LTREE_GET_ASIGLEN(); + int siglen = LTREE_GET_SIGLEN(); ltree_gist *key = (ltree_gist *) DatumGetPointer(entry->key); void *query = NULL; bool res = false; @@ -724,7 +724,7 @@ init_local_reloptions(relopts, sizeof(LtreeGistOptions)); add_local_int_reloption(relopts, "siglen", "signature length in bytes", - SIGLEN_DEFAULT, 1, SIGLEN_MAX, + LTREE_SIGLEN_DEFAULT, 1, LTREE_SIGLEN_MAX, offsetof(LtreeGistOptions, siglen)); PG_RETURN_VOID(); diff -Nru postgresql-13-13.4/contrib/ltree/ltree.h postgresql-13-13.7/contrib/ltree/ltree.h --- postgresql-13-13.4/contrib/ltree/ltree.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/ltree/ltree.h 2022-05-09 21:16:30.000000000 +0000 @@ -216,11 +216,13 @@ /* GiST support for ltree */ -#define SIGLEN_MAX GISTMaxIndexKeySize -#define SIGLEN_DEFAULT (2 * sizeof(int32)) #define BITBYTE 8 -#define SIGLEN (sizeof(int32) * SIGLENINT) #define SIGLENBIT(siglen) ((siglen) * BITBYTE) +#define LTREE_SIGLEN_DEFAULT (2 * sizeof(int32)) +#define LTREE_SIGLEN_MAX GISTMaxIndexKeySize +#define LTREE_GET_SIGLEN() (PG_HAS_OPCLASS_OPTIONS() ? \ + ((LtreeGistOptions *) PG_GET_OPCLASS_OPTIONS())->siglen : \ + LTREE_SIGLEN_DEFAULT) typedef unsigned char *BITVECP; diff -Nru postgresql-13-13.4/contrib/pageinspect/brinfuncs.c postgresql-13-13.7/contrib/pageinspect/brinfuncs.c --- postgresql-13-13.4/contrib/pageinspect/brinfuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/brinfuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -16,6 +16,7 @@ #include "access/brin_tuple.h" #include "access/htup_details.h" #include "catalog/index.h" +#include "catalog/pg_am_d.h" #include "catalog/pg_type.h" #include "funcapi.h" #include "lib/stringinfo.h" @@ -31,6 +32,8 @@ PG_FUNCTION_INFO_V1(brin_metapage_info); PG_FUNCTION_INFO_V1(brin_revmap_data); +#define IS_BRIN(r) ((r)->rd_rel->relam == BRIN_AM_OID) + typedef struct brin_column_state { int nstored; @@ -45,8 +48,7 @@ brin_page_type(PG_FUNCTION_ARGS) { bytea *raw_page = PG_GETARG_BYTEA_P(0); - Page page = VARDATA(raw_page); - int raw_page_size; + Page page; char *type; if (!superuser()) @@ -54,14 +56,19 @@ (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to use raw page functions"))); - raw_page_size = VARSIZE(raw_page) - VARHDRSZ; + page = get_page_from_raw(raw_page); - if (raw_page_size != BLCKSZ) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("input page too small"), - errdetail("Expected size %d, got %d", - BLCKSZ, raw_page_size))); + if (PageIsNew(page)) + PG_RETURN_NULL(); + + /* verify the special space has the expected size */ + if (PageGetSpecialSize(page) != MAXALIGN(sizeof(BrinSpecialSpace))) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("input page is not a valid %s page", "BRIN"), + errdetail("Expected special size %d, got %d.", + (int) MAXALIGN(sizeof(BrinSpecialSpace)), + (int) PageGetSpecialSize(page)))); switch (BrinPageType(page)) { @@ -89,19 +96,19 @@ static Page verify_brin_page(bytea *raw_page, uint16 type, const char *strtype) { - Page page; - int raw_page_size; + Page page = get_page_from_raw(raw_page); - raw_page_size = VARSIZE(raw_page) - VARHDRSZ; + if (PageIsNew(page)) + return page; - if (raw_page_size != BLCKSZ) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("input page too small"), - errdetail("Expected size %d, got %d", - BLCKSZ, raw_page_size))); - - page = VARDATA(raw_page); + /* verify the special space has the expected size */ + if (PageGetSpecialSize(page) != MAXALIGN(sizeof(BrinSpecialSpace))) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("input page is not a valid %s page", "BRIN"), + errdetail("Expected special size %d, got %d.", + (int) MAXALIGN(sizeof(BrinSpecialSpace)), + (int) PageGetSpecialSize(page)))); /* verify the special space says this page is what we want */ if (BrinPageType(page) != type) @@ -169,11 +176,25 @@ MemoryContextSwitchTo(oldcontext); indexRel = index_open(indexRelid, AccessShareLock); + + if (!IS_BRIN(indexRel)) + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s\" is not a %s index", + RelationGetRelationName(indexRel), "BRIN"))); + bdesc = brin_build_desc(indexRel); /* minimally verify the page we got */ page = verify_brin_page(raw_page, BRIN_PAGETYPE_REGULAR, "regular"); + if (PageIsNew(page)) + { + brin_free_desc(bdesc); + index_close(indexRel, AccessShareLock); + PG_RETURN_NULL(); + } + /* * Initialize output functions for all indexed datatypes; simplifies * calling them later. @@ -340,6 +361,9 @@ page = verify_brin_page(raw_page, BRIN_PAGETYPE_META, "metapage"); + if (PageIsNew(page)) + PG_RETURN_NULL(); + /* Build a tuple descriptor for our result type */ if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) elog(ERROR, "return type must be a row type"); @@ -382,15 +406,21 @@ MemoryContext mctx; Page page; - /* minimally verify the page we got */ - page = verify_brin_page(raw_page, BRIN_PAGETYPE_REVMAP, "revmap"); - /* create a function context for cross-call persistence */ fctx = SRF_FIRSTCALL_INIT(); /* switch to memory context appropriate for multiple function calls */ mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx); + /* minimally verify the page we got */ + page = verify_brin_page(raw_page, BRIN_PAGETYPE_REVMAP, "revmap"); + + if (PageIsNew(page)) + { + MemoryContextSwitchTo(mctx); + PG_RETURN_NULL(); + } + state = palloc(sizeof(*state)); state->tids = ((RevmapContents *) PageGetContents(page))->rm_tids; state->idx = 0; diff -Nru postgresql-13-13.4/contrib/pageinspect/btreefuncs.c postgresql-13-13.7/contrib/pageinspect/btreefuncs.c --- postgresql-13-13.4/contrib/pageinspect/btreefuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/btreefuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -184,8 +184,10 @@ rel = relation_openrv(relrv, AccessShareLock); if (!IS_INDEX(rel) || !IS_BTREE(rel)) - elog(ERROR, "relation \"%s\" is not a btree index", - RelationGetRelationName(rel)); + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s\" is not a %s index", + RelationGetRelationName(rel), "btree"))); /* * Reject attempts to read non-local temporary relations; we would be @@ -434,8 +436,10 @@ rel = relation_openrv(relrv, AccessShareLock); if (!IS_INDEX(rel) || !IS_BTREE(rel)) - elog(ERROR, "relation \"%s\" is not a btree index", - RelationGetRelationName(rel)); + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s\" is not a %s index", + RelationGetRelationName(rel), "btree"))); /* * Reject attempts to read non-local temporary relations; we would be @@ -522,7 +526,6 @@ Datum result; FuncCallContext *fctx; struct user_args *uargs; - int raw_page_size; if (!superuser()) ereport(ERROR, @@ -535,22 +538,30 @@ MemoryContext mctx; TupleDesc tupleDesc; - raw_page_size = VARSIZE(raw_page) - VARHDRSZ; - - if (raw_page_size < SizeOfPageHeaderData) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("input page too small (%d bytes)", raw_page_size))); - fctx = SRF_FIRSTCALL_INIT(); mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx); uargs = palloc(sizeof(struct user_args)); - uargs->page = VARDATA(raw_page); + uargs->page = get_page_from_raw(raw_page); + + if (PageIsNew(uargs->page)) + { + MemoryContextSwitchTo(mctx); + PG_RETURN_NULL(); + } uargs->offset = FirstOffsetNumber; + /* verify the special space has the expected size */ + if (PageGetSpecialSize(uargs->page) != MAXALIGN(sizeof(BTPageOpaqueData))) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("input page is not a valid %s page", "btree"), + errdetail("Expected special size %d, got %d.", + (int) MAXALIGN(sizeof(BTPageOpaqueData)), + (int) PageGetSpecialSize(uargs->page)))); + opaque = (BTPageOpaque) PageGetSpecialPointer(uargs->page); if (P_ISMETA(opaque)) @@ -558,6 +569,11 @@ (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("block is a meta page"))); + if (P_ISLEAF(opaque) && opaque->btpo.level != 0) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("block is not a valid btree leaf page"))); + if (P_ISDELETED(opaque)) elog(NOTICE, "page is deleted"); @@ -625,8 +641,10 @@ rel = relation_openrv(relrv, AccessShareLock); if (!IS_INDEX(rel) || !IS_BTREE(rel)) - elog(ERROR, "relation \"%s\" is not a btree index", - RelationGetRelationName(rel)); + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s\" is not a %s index", + RelationGetRelationName(rel), "btree"))); /* * Reject attempts to read non-local temporary relations; we would be diff -Nru postgresql-13-13.4/contrib/pageinspect/expected/brin.out postgresql-13-13.7/contrib/pageinspect/expected/brin.out --- postgresql-13-13.4/contrib/pageinspect/expected/brin.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/expected/brin.out 2022-05-09 21:16:30.000000000 +0000 @@ -48,4 +48,43 @@ 1 | 0 | 1 | f | f | f | {1 .. 1} (1 row) +-- Failure for non-BRIN index. +CREATE INDEX test1_a_btree ON test1 (a); +SELECT brin_page_items(get_raw_page('test1_a_btree', 0), 'test1_a_btree'); +ERROR: "test1_a_btree" is not a BRIN index +-- Mask DETAIL messages as these are not portable across architectures. +\set VERBOSITY terse +-- Invalid special area size +SELECT brin_page_type(get_raw_page('test1', 0)); +ERROR: input page is not a valid BRIN page +SELECT * FROM brin_metapage_info(get_raw_page('test1', 0)); +ERROR: input page is not a valid BRIN page +SELECT * FROM brin_revmap_data(get_raw_page('test1', 0)); +ERROR: input page is not a valid BRIN page +\set VERBOSITY default +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT brin_page_type(decode(repeat('00', :block_size), 'hex')); + brin_page_type +---------------- + +(1 row) + +SELECT brin_page_items(decode(repeat('00', :block_size), 'hex'), 'test1_a_idx'); + brin_page_items +----------------- +(0 rows) + +SELECT brin_metapage_info(decode(repeat('00', :block_size), 'hex')); + brin_metapage_info +-------------------- + +(1 row) + +SELECT brin_revmap_data(decode(repeat('00', :block_size), 'hex')); + brin_revmap_data +------------------ + +(1 row) + DROP TABLE test1; diff -Nru postgresql-13-13.4/contrib/pageinspect/expected/btree.out postgresql-13-13.7/contrib/pageinspect/expected/btree.out --- postgresql-13-13.4/contrib/pageinspect/expected/btree.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/expected/btree.out 2022-05-09 21:16:30.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TABLE test1 (a int8, b text); -INSERT INTO test1 VALUES (72057594037927937, 'text'); +CREATE TABLE test1 (a int8, b int4range); +INSERT INTO test1 VALUES (72057594037927937, '[0,1)'); CREATE INDEX test1_a_idx ON test1 USING btree (a); \x SELECT * FROM bt_metap('test1_a_idx'); @@ -64,4 +64,39 @@ SELECT * FROM bt_page_items(get_raw_page('test1_a_idx', 2)); ERROR: block number 2 is out of range for relation "test1_a_idx" +-- Failure when using a non-btree index. +CREATE INDEX test1_a_hash ON test1 USING hash(a); +SELECT bt_metap('test1_a_hash'); +ERROR: "test1_a_hash" is not a btree index +SELECT bt_page_stats('test1_a_hash', 0); +ERROR: "test1_a_hash" is not a btree index +SELECT bt_page_items('test1_a_hash', 0); +ERROR: "test1_a_hash" is not a btree index +SELECT bt_page_items(get_raw_page('test1_a_hash', 0)); +ERROR: block is a meta page +CREATE INDEX test1_b_gist ON test1 USING gist(b); +-- Special area of GiST is the same as btree, this complains about inconsistent +-- leaf data on the page. +SELECT bt_page_items(get_raw_page('test1_b_gist', 0)); +ERROR: block is not a valid btree leaf page +-- Several failure modes. +-- Suppress the DETAIL message, to allow the tests to work across various +-- page sizes and architectures. +\set VERBOSITY terse +-- invalid page size +SELECT bt_page_items('aaa'::bytea); +ERROR: invalid page size +-- invalid special area size +CREATE INDEX test1_a_brin ON test1 USING brin(a); +SELECT bt_page_items(get_raw_page('test1', 0)); +ERROR: input page is not a valid btree page +SELECT bt_page_items(get_raw_page('test1_a_brin', 0)); +ERROR: input page is not a valid btree page +\set VERBOSITY default +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT bt_page_items(decode(repeat('00', :block_size), 'hex')); +-[ RECORD 1 ]-+- +bt_page_items | + DROP TABLE test1; diff -Nru postgresql-13-13.4/contrib/pageinspect/expected/gin.out postgresql-13-13.7/contrib/pageinspect/expected/gin.out --- postgresql-13-13.4/contrib/pageinspect/expected/gin.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/expected/gin.out 2022-05-09 21:16:30.000000000 +0000 @@ -35,3 +35,36 @@ -[ RECORD 1 ] ?column? | t +-- Failure with various modes. +-- Suppress the DETAIL message, to allow the tests to work across various +-- page sizes and architectures. +\set VERBOSITY terse +-- invalid page size +SELECT gin_leafpage_items('aaa'::bytea); +ERROR: invalid page size +SELECT gin_metapage_info('bbb'::bytea); +ERROR: invalid page size +SELECT gin_page_opaque_info('ccc'::bytea); +ERROR: invalid page size +-- invalid special area size +SELECT * FROM gin_metapage_info(get_raw_page('test1', 0)); +ERROR: input page is not a valid GIN metapage +SELECT * FROM gin_page_opaque_info(get_raw_page('test1', 0)); +ERROR: input page is not a valid GIN data leaf page +SELECT * FROM gin_leafpage_items(get_raw_page('test1', 0)); +ERROR: input page is not a valid GIN data leaf page +\set VERBOSITY default +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT gin_leafpage_items(decode(repeat('00', :block_size), 'hex')); +-[ RECORD 1 ]------+- +gin_leafpage_items | + +SELECT gin_metapage_info(decode(repeat('00', :block_size), 'hex')); +-[ RECORD 1 ]-----+- +gin_metapage_info | + +SELECT gin_page_opaque_info(decode(repeat('00', :block_size), 'hex')); +-[ RECORD 1 ]--------+- +gin_page_opaque_info | + diff -Nru postgresql-13-13.4/contrib/pageinspect/expected/hash.out postgresql-13-13.7/contrib/pageinspect/expected/hash.out --- postgresql-13-13.4/contrib/pageinspect/expected/hash.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/expected/hash.out 2022-05-09 21:16:30.000000000 +0000 @@ -159,4 +159,43 @@ SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 5)); ERROR: page is not a hash bucket or overflow page +-- Failure with non-hash index +CREATE INDEX test_hash_a_btree ON test_hash USING btree (a); +SELECT hash_bitmap_info('test_hash_a_btree', 0); +ERROR: "test_hash_a_btree" is not a hash index +-- Failure with various modes. +-- Suppress the DETAIL message, to allow the tests to work across various +-- page sizes and architectures. +\set VERBOSITY terse +-- invalid page size +SELECT hash_metapage_info('aaa'::bytea); +ERROR: invalid page size +SELECT hash_page_items('bbb'::bytea); +ERROR: invalid page size +SELECT hash_page_stats('ccc'::bytea); +ERROR: invalid page size +SELECT hash_page_type('ddd'::bytea); +ERROR: invalid page size +-- invalid special area size +SELECT hash_metapage_info(get_raw_page('test_hash', 0)); +ERROR: input page is not a valid hash page +SELECT hash_page_items(get_raw_page('test_hash', 0)); +ERROR: input page is not a valid hash page +SELECT hash_page_stats(get_raw_page('test_hash', 0)); +ERROR: input page is not a valid hash page +SELECT hash_page_type(get_raw_page('test_hash', 0)); +ERROR: input page is not a valid hash page +\set VERBOSITY default +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT hash_metapage_info(decode(repeat('00', :block_size), 'hex')); +ERROR: page is not a hash meta page +SELECT hash_page_items(decode(repeat('00', :block_size), 'hex')); +ERROR: page is not a hash bucket or overflow page +SELECT hash_page_stats(decode(repeat('00', :block_size), 'hex')); +ERROR: page is not a hash bucket or overflow page +SELECT hash_page_type(decode(repeat('00', :block_size), 'hex')); +-[ RECORD 1 ]--+------- +hash_page_type | unused + DROP TABLE test_hash; diff -Nru postgresql-13-13.4/contrib/pageinspect/expected/page.out postgresql-13-13.7/contrib/pageinspect/expected/page.out --- postgresql-13-13.4/contrib/pageinspect/expected/page.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/expected/page.out 2022-05-09 21:16:30.000000000 +0000 @@ -201,3 +201,34 @@ (1 row) drop table test8; +-- Failure with incorrect page size +-- Suppress the DETAIL message, to allow the tests to work across various +-- page sizes. +\set VERBOSITY terse +SELECT fsm_page_contents('aaa'::bytea); +ERROR: invalid page size +SELECT page_checksum('bbb'::bytea, 0); +ERROR: invalid page size +SELECT page_header('ccc'::bytea); +ERROR: invalid page size +\set VERBOSITY default +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT fsm_page_contents(decode(repeat('00', :block_size), 'hex')); + fsm_page_contents +------------------- + +(1 row) + +SELECT page_header(decode(repeat('00', :block_size), 'hex')); + page_header +----------------------- + (0/0,0,0,0,0,0,0,0,0) +(1 row) + +SELECT page_checksum(decode(repeat('00', :block_size), 'hex'), 1); + page_checksum +--------------- + +(1 row) + diff -Nru postgresql-13-13.4/contrib/pageinspect/fsmfuncs.c postgresql-13-13.7/contrib/pageinspect/fsmfuncs.c --- postgresql-13-13.4/contrib/pageinspect/fsmfuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/fsmfuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -36,6 +36,7 @@ { bytea *raw_page = PG_GETARG_BYTEA_P(0); StringInfoData sinfo; + Page page; FSMPage fsmpage; int i; @@ -44,7 +45,12 @@ (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to use raw page functions"))); - fsmpage = (FSMPage) PageGetContents(VARDATA(raw_page)); + page = get_page_from_raw(raw_page); + + if (PageIsNew(page)) + PG_RETURN_NULL(); + + fsmpage = (FSMPage) PageGetContents(page); initStringInfo(&sinfo); diff -Nru postgresql-13-13.4/contrib/pageinspect/ginfuncs.c postgresql-13-13.7/contrib/pageinspect/ginfuncs.c --- postgresql-13-13.4/contrib/pageinspect/ginfuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/ginfuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -49,6 +49,17 @@ page = get_page_from_raw(raw_page); + if (PageIsNew(page)) + PG_RETURN_NULL(); + + if (PageGetSpecialSize(page) != MAXALIGN(sizeof(GinPageOpaqueData))) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("input page is not a valid GIN metapage"), + errdetail("Expected special size %d, got %d.", + (int) MAXALIGN(sizeof(GinPageOpaqueData)), + (int) PageGetSpecialSize(page)))); + opaq = (GinPageOpaque) PageGetSpecialPointer(page); if (opaq->flags != GIN_META) ereport(ERROR, @@ -107,6 +118,17 @@ page = get_page_from_raw(raw_page); + if (PageIsNew(page)) + PG_RETURN_NULL(); + + if (PageGetSpecialSize(page) != MAXALIGN(sizeof(GinPageOpaqueData))) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("input page is not a valid GIN data leaf page"), + errdetail("Expected special size %d, got %d.", + (int) MAXALIGN(sizeof(GinPageOpaqueData)), + (int) PageGetSpecialSize(page)))); + opaq = (GinPageOpaque) PageGetSpecialPointer(page); /* Build a tuple descriptor for our result type */ @@ -184,13 +206,19 @@ page = get_page_from_raw(raw_page); + if (PageIsNew(page)) + { + MemoryContextSwitchTo(mctx); + PG_RETURN_NULL(); + } + if (PageGetSpecialSize(page) != MAXALIGN(sizeof(GinPageOpaqueData))) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("input page is not a valid GIN data leaf page"), - errdetail("Special size %d, expected %d", - (int) PageGetSpecialSize(page), - (int) MAXALIGN(sizeof(GinPageOpaqueData))))); + errdetail("Expected special size %d, got %d.", + (int) MAXALIGN(sizeof(GinPageOpaqueData)), + (int) PageGetSpecialSize(page)))); opaq = (GinPageOpaque) PageGetSpecialPointer(page); if (opaq->flags != (GIN_DATA | GIN_LEAF | GIN_COMPRESSED)) diff -Nru postgresql-13-13.4/contrib/pageinspect/hashfuncs.c postgresql-13-13.7/contrib/pageinspect/hashfuncs.c --- postgresql-13-13.4/contrib/pageinspect/hashfuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/hashfuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -66,14 +66,17 @@ if (PageGetSpecialSize(page) != MAXALIGN(sizeof(HashPageOpaqueData))) ereport(ERROR, - (errcode(ERRCODE_INDEX_CORRUPTED), - errmsg("index table contains corrupted page"))); + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("input page is not a valid %s page", "hash"), + errdetail("Expected special size %d, got %d.", + (int) MAXALIGN(sizeof(HashPageOpaqueData)), + (int) PageGetSpecialSize(page)))); pageopaque = (HashPageOpaque) PageGetSpecialPointer(page); if (pageopaque->hasho_page_id != HASHO_PAGE_ID) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("page is not a hash page"), + errmsg("input page is not a valid %s page", "hash"), errdetail("Expected %08x, got %08x.", HASHO_PAGE_ID, pageopaque->hasho_page_id))); @@ -134,7 +137,7 @@ ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), errmsg("invalid version for metadata"), - errdetail("Expected %d, got %d", + errdetail("Expected %d, got %d.", HASH_VERSION, metap->hashm_version))); } @@ -417,8 +420,10 @@ indexRel = index_open(indexRelid, AccessShareLock); if (!IS_HASH(indexRel)) - elog(ERROR, "relation \"%s\" is not a hash index", - RelationGetRelationName(indexRel)); + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s\" is not a %s index", + RelationGetRelationName(indexRel), "hash"))); if (RELATION_IS_OTHER_TEMP(indexRel)) ereport(ERROR, diff -Nru postgresql-13-13.4/contrib/pageinspect/rawpage.c postgresql-13-13.7/contrib/pageinspect/rawpage.c --- postgresql-13-13.4/contrib/pageinspect/rawpage.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/rawpage.c 2022-05-09 21:16:30.000000000 +0000 @@ -218,7 +218,6 @@ page_header(PG_FUNCTION_ARGS) { bytea *raw_page = PG_GETARG_BYTEA_P(0); - int raw_page_size; TupleDesc tupdesc; @@ -235,18 +234,7 @@ (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to use raw page functions"))); - raw_page_size = VARSIZE(raw_page) - VARHDRSZ; - - /* - * Check that enough data was supplied, so that we don't try to access - * fields outside the supplied buffer. - */ - if (raw_page_size < SizeOfPageHeaderData) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("input page too small (%d bytes)", raw_page_size))); - - page = (PageHeader) VARDATA(raw_page); + page = (PageHeader) get_page_from_raw(raw_page); /* Build a tuple descriptor for our result type */ if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) @@ -299,25 +287,17 @@ { bytea *raw_page = PG_GETARG_BYTEA_P(0); uint32 blkno = PG_GETARG_INT32(1); - int raw_page_size; - PageHeader page; + Page page; if (!superuser()) ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to use raw page functions"))); - raw_page_size = VARSIZE(raw_page) - VARHDRSZ; - - /* - * Check that the supplied page is of the right size. - */ - if (raw_page_size != BLCKSZ) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("incorrect size of input page (%d bytes)", raw_page_size))); + page = get_page_from_raw(raw_page); - page = (PageHeader) VARDATA(raw_page); + if (PageIsNew(page)) + PG_RETURN_NULL(); PG_RETURN_INT16(pg_checksum_page((char *) page, blkno)); } diff -Nru postgresql-13-13.4/contrib/pageinspect/sql/brin.sql postgresql-13-13.7/contrib/pageinspect/sql/brin.sql --- postgresql-13-13.4/contrib/pageinspect/sql/brin.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/sql/brin.sql 2022-05-09 21:16:30.000000000 +0000 @@ -15,4 +15,23 @@ SELECT * FROM brin_page_items(get_raw_page('test1_a_idx', 2), 'test1_a_idx') ORDER BY blknum, attnum LIMIT 5; +-- Failure for non-BRIN index. +CREATE INDEX test1_a_btree ON test1 (a); +SELECT brin_page_items(get_raw_page('test1_a_btree', 0), 'test1_a_btree'); + +-- Mask DETAIL messages as these are not portable across architectures. +\set VERBOSITY terse +-- Invalid special area size +SELECT brin_page_type(get_raw_page('test1', 0)); +SELECT * FROM brin_metapage_info(get_raw_page('test1', 0)); +SELECT * FROM brin_revmap_data(get_raw_page('test1', 0)); +\set VERBOSITY default + +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT brin_page_type(decode(repeat('00', :block_size), 'hex')); +SELECT brin_page_items(decode(repeat('00', :block_size), 'hex'), 'test1_a_idx'); +SELECT brin_metapage_info(decode(repeat('00', :block_size), 'hex')); +SELECT brin_revmap_data(decode(repeat('00', :block_size), 'hex')); + DROP TABLE test1; diff -Nru postgresql-13-13.4/contrib/pageinspect/sql/btree.sql postgresql-13-13.7/contrib/pageinspect/sql/btree.sql --- postgresql-13-13.4/contrib/pageinspect/sql/btree.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/sql/btree.sql 2022-05-09 21:16:30.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TABLE test1 (a int8, b text); -INSERT INTO test1 VALUES (72057594037927937, 'text'); +CREATE TABLE test1 (a int8, b int4range); +INSERT INTO test1 VALUES (72057594037927937, '[0,1)'); CREATE INDEX test1_a_idx ON test1 USING btree (a); \x @@ -18,4 +18,31 @@ SELECT * FROM bt_page_items(get_raw_page('test1_a_idx', 1)); SELECT * FROM bt_page_items(get_raw_page('test1_a_idx', 2)); +-- Failure when using a non-btree index. +CREATE INDEX test1_a_hash ON test1 USING hash(a); +SELECT bt_metap('test1_a_hash'); +SELECT bt_page_stats('test1_a_hash', 0); +SELECT bt_page_items('test1_a_hash', 0); +SELECT bt_page_items(get_raw_page('test1_a_hash', 0)); +CREATE INDEX test1_b_gist ON test1 USING gist(b); +-- Special area of GiST is the same as btree, this complains about inconsistent +-- leaf data on the page. +SELECT bt_page_items(get_raw_page('test1_b_gist', 0)); + +-- Several failure modes. +-- Suppress the DETAIL message, to allow the tests to work across various +-- page sizes and architectures. +\set VERBOSITY terse +-- invalid page size +SELECT bt_page_items('aaa'::bytea); +-- invalid special area size +CREATE INDEX test1_a_brin ON test1 USING brin(a); +SELECT bt_page_items(get_raw_page('test1', 0)); +SELECT bt_page_items(get_raw_page('test1_a_brin', 0)); +\set VERBOSITY default + +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT bt_page_items(decode(repeat('00', :block_size), 'hex')); + DROP TABLE test1; diff -Nru postgresql-13-13.4/contrib/pageinspect/sql/gin.sql postgresql-13-13.7/contrib/pageinspect/sql/gin.sql --- postgresql-13-13.4/contrib/pageinspect/sql/gin.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/sql/gin.sql 2022-05-09 21:16:30.000000000 +0000 @@ -17,3 +17,23 @@ FROM gin_leafpage_items(get_raw_page('test1_y_idx', (pg_relation_size('test1_y_idx') / current_setting('block_size')::bigint)::int - 1)); + +-- Failure with various modes. +-- Suppress the DETAIL message, to allow the tests to work across various +-- page sizes and architectures. +\set VERBOSITY terse +-- invalid page size +SELECT gin_leafpage_items('aaa'::bytea); +SELECT gin_metapage_info('bbb'::bytea); +SELECT gin_page_opaque_info('ccc'::bytea); +-- invalid special area size +SELECT * FROM gin_metapage_info(get_raw_page('test1', 0)); +SELECT * FROM gin_page_opaque_info(get_raw_page('test1', 0)); +SELECT * FROM gin_leafpage_items(get_raw_page('test1', 0)); +\set VERBOSITY default + +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT gin_leafpage_items(decode(repeat('00', :block_size), 'hex')); +SELECT gin_metapage_info(decode(repeat('00', :block_size), 'hex')); +SELECT gin_page_opaque_info(decode(repeat('00', :block_size), 'hex')); diff -Nru postgresql-13-13.4/contrib/pageinspect/sql/hash.sql postgresql-13-13.7/contrib/pageinspect/sql/hash.sql --- postgresql-13-13.4/contrib/pageinspect/sql/hash.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/sql/hash.sql 2022-05-09 21:16:30.000000000 +0000 @@ -76,5 +76,31 @@ SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 4)); SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 5)); +-- Failure with non-hash index +CREATE INDEX test_hash_a_btree ON test_hash USING btree (a); +SELECT hash_bitmap_info('test_hash_a_btree', 0); + +-- Failure with various modes. +-- Suppress the DETAIL message, to allow the tests to work across various +-- page sizes and architectures. +\set VERBOSITY terse +-- invalid page size +SELECT hash_metapage_info('aaa'::bytea); +SELECT hash_page_items('bbb'::bytea); +SELECT hash_page_stats('ccc'::bytea); +SELECT hash_page_type('ddd'::bytea); +-- invalid special area size +SELECT hash_metapage_info(get_raw_page('test_hash', 0)); +SELECT hash_page_items(get_raw_page('test_hash', 0)); +SELECT hash_page_stats(get_raw_page('test_hash', 0)); +SELECT hash_page_type(get_raw_page('test_hash', 0)); +\set VERBOSITY default + +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT hash_metapage_info(decode(repeat('00', :block_size), 'hex')); +SELECT hash_page_items(decode(repeat('00', :block_size), 'hex')); +SELECT hash_page_stats(decode(repeat('00', :block_size), 'hex')); +SELECT hash_page_type(decode(repeat('00', :block_size), 'hex')); DROP TABLE test_hash; diff -Nru postgresql-13-13.4/contrib/pageinspect/sql/page.sql postgresql-13-13.7/contrib/pageinspect/sql/page.sql --- postgresql-13-13.4/contrib/pageinspect/sql/page.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pageinspect/sql/page.sql 2022-05-09 21:16:30.000000000 +0000 @@ -80,3 +80,18 @@ select tuple_data_split('test8'::regclass, t_data, t_infomask, t_infomask2, t_bits) from heap_page_items(get_raw_page('test8', 0)); drop table test8; + +-- Failure with incorrect page size +-- Suppress the DETAIL message, to allow the tests to work across various +-- page sizes. +\set VERBOSITY terse +SELECT fsm_page_contents('aaa'::bytea); +SELECT page_checksum('bbb'::bytea, 0); +SELECT page_header('ccc'::bytea); +\set VERBOSITY default + +-- Tests with all-zero pages. +SHOW block_size \gset +SELECT fsm_page_contents(decode(repeat('00', :block_size), 'hex')); +SELECT page_header(decode(repeat('00', :block_size), 'hex')); +SELECT page_checksum(decode(repeat('00', :block_size), 'hex'), 1); diff -Nru postgresql-13-13.4/contrib/pgcrypto/expected/blowfish_1.out postgresql-13-13.7/contrib/pgcrypto/expected/blowfish_1.out --- postgresql-13-13.4/contrib/pgcrypto/expected/blowfish_1.out 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/contrib/pgcrypto/expected/blowfish_1.out 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,95 @@ +-- +-- Blowfish cipher +-- +-- ensure consistent test output regardless of the default bytea format +SET bytea_output TO escape; +-- some standard Blowfish testvalues +SELECT encode(encrypt( +decode('0000000000000000', 'hex'), +decode('0000000000000000', 'hex'), +'bf-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +SELECT encode(encrypt( +decode('ffffffffffffffff', 'hex'), +decode('ffffffffffffffff', 'hex'), +'bf-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +SELECT encode(encrypt( +decode('1000000000000001', 'hex'), +decode('3000000000000000', 'hex'), +'bf-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +SELECT encode(encrypt( +decode('1111111111111111', 'hex'), +decode('1111111111111111', 'hex'), +'bf-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +SELECT encode(encrypt( +decode('0123456789abcdef', 'hex'), +decode('fedcba9876543210', 'hex'), +'bf-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +SELECT encode(encrypt( +decode('01a1d6d039776742', 'hex'), +decode('fedcba9876543210', 'hex'), +'bf-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +SELECT encode(encrypt( +decode('ffffffffffffffff', 'hex'), +decode('0000000000000000', 'hex'), +'bf-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- setkey +SELECT encode(encrypt( +decode('fedcba9876543210', 'hex'), +decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'), +'bf-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- with padding +SELECT encode(encrypt( +decode('01234567890123456789', 'hex'), +decode('33443344334433443344334433443344', 'hex'), +'bf-ecb'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- cbc +-- 28 bytes key +SELECT encode(encrypt( +decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'), +decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'), +'bf-cbc'), 'hex'); +ERROR: encrypt error: Key was too big +-- 29 bytes key +SELECT encode(encrypt( +decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'), +decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'), +'bf-cbc'), 'hex'); +ERROR: encrypt error: Key was too big +-- blowfish-448 +SELECT encode(encrypt( +decode('fedcba9876543210', 'hex'), +decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'), +'bf-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Key was too big +-- result: c04504012e4e1f53 +-- empty data +select encode(encrypt('', 'foo', 'bf'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- 10 bytes key +select encode(encrypt('foo', '0123456789', 'bf'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- 22 bytes key +select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex'); +ERROR: encrypt error: Key was too big +-- decrypt +select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- iv +select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex'); +ERROR: encrypt_iv error: Cipher cannot be initialized ? +select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf'); +ERROR: decrypt_iv error: Cipher cannot be initialized ? +-- long message +select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'); +ERROR: encrypt error: Cipher cannot be initialized ? diff -Nru postgresql-13-13.4/contrib/pgcrypto/expected/cast5_1.out postgresql-13-13.7/contrib/pgcrypto/expected/cast5_1.out --- postgresql-13-13.4/contrib/pgcrypto/expected/cast5_1.out 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/contrib/pgcrypto/expected/cast5_1.out 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,48 @@ +-- +-- Cast5 cipher +-- +-- ensure consistent test output regardless of the default bytea format +SET bytea_output TO escape; +-- test vectors from RFC2144 +-- 128 bit key +SELECT encode(encrypt( +decode('01 23 45 67 89 AB CD EF', 'hex'), +decode('01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A', 'hex'), +'cast5-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- result: 23 8B 4F E5 84 7E 44 B2 +-- 80 bit key +SELECT encode(encrypt( +decode('01 23 45 67 89 AB CD EF', 'hex'), +decode('01 23 45 67 12 34 56 78 23 45', 'hex'), +'cast5-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- result: EB 6A 71 1A 2C 02 27 1B +-- 40 bit key +SELECT encode(encrypt( +decode('01 23 45 67 89 AB CD EF', 'hex'), +decode('01 23 45 67 12', 'hex'), +'cast5-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- result: 7A C8 16 D1 6E 9B 30 2E +-- cbc +-- empty data +select encode( encrypt('', 'foo', 'cast5'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- 10 bytes key +select encode( encrypt('foo', '0123456789', 'cast5'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- decrypt +select decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- iv +select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex'); +ERROR: encrypt_iv error: Cipher cannot be initialized ? +select decrypt_iv(decode('384a970695ce016a', 'hex'), + '0123456', 'abcd', 'cast5'); +ERROR: decrypt_iv error: Cipher cannot be initialized ? +-- long message +select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +select decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'); +ERROR: encrypt error: Cipher cannot be initialized ? diff -Nru postgresql-13-13.4/contrib/pgcrypto/expected/des_1.out postgresql-13-13.7/contrib/pgcrypto/expected/des_1.out --- postgresql-13-13.4/contrib/pgcrypto/expected/des_1.out 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/contrib/pgcrypto/expected/des_1.out 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,31 @@ +-- +-- DES cipher +-- +-- ensure consistent test output regardless of the default bytea format +SET bytea_output TO escape; +-- no official test vectors atm +-- from blowfish.sql +SELECT encode(encrypt( +decode('0123456789abcdef', 'hex'), +decode('fedcba9876543210', 'hex'), +'des-ecb/pad:none'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- empty data +select encode( encrypt('', 'foo', 'des'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- 8 bytes key +select encode( encrypt('foo', '01234589', 'des'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- decrypt +select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'); +ERROR: encrypt error: Cipher cannot be initialized ? +-- iv +select encode(encrypt_iv('foo', '0123456', 'abcd', 'des'), 'hex'); +ERROR: encrypt_iv error: Cipher cannot be initialized ? +select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des'); +ERROR: decrypt_iv error: Cipher cannot be initialized ? +-- long message +select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex'); +ERROR: encrypt error: Cipher cannot be initialized ? +select decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'); +ERROR: encrypt error: Cipher cannot be initialized ? diff -Nru postgresql-13-13.4/contrib/pgcrypto/expected/pgp-decrypt_1.out postgresql-13-13.7/contrib/pgcrypto/expected/pgp-decrypt_1.out --- postgresql-13-13.4/contrib/pgcrypto/expected/pgp-decrypt_1.out 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/contrib/pgcrypto/expected/pgp-decrypt_1.out 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,421 @@ +-- +-- pgp decrypt tests +-- +-- Checking ciphers +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.blowfish.sha1.mdc.s2k3.z0 + +jA0EBAMCfFNwxnvodX9g0jwB4n4s26/g5VmKzVab1bX1SmwY7gvgvlWdF3jKisvS +yA6Ce1QTMK3KdL2MPfamsTUSAML8huCJMwYQFfE= +=JcP+ +-----END PGP MESSAGE----- +'), 'foobar'); +ERROR: Wrong key or corrupt data +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCci97v0Q6Z0Zg0kQBsVf5Oe3iC+FBzUmuMV9KxmAyOMyjCc/5i8f1Eest +UTAsG35A1vYs02VARKzGz6xI2UHwFUirP+brPBg3Ee7muOx8pA== +=XtrP +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes192.sha1.mdc.s2k3.z0 + +jA0ECAMCI7YQpWqp3D1g0kQBCjB7GlX7+SQeXNleXeXQ78ZAPNliquGDq9u378zI +5FPTqAhIB2/2fjY8QEIs1ai00qphjX2NitxV/3Wn+6dufB4Q4g== +=rCZt +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes256.sha1.mdc.s2k3.z0 + +jA0ECQMC4f/5djqCC1Rg0kQBTHEPsD+Sw7biBsM2er3vKyGPAQkuTBGKC5ie7hT/ +lceMfQdbAg6oTFyJpk/wH18GzRDphCofg0X8uLgkAKMrpcmgog== +=fB6S +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +-- Checking MDC modes +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.nomdc.s2k3.z0 + +jA0EBwMCnv07rlXqWctgyS2Dm2JfOKCRL4sLSLJUC8RS2cH7cIhKSuLitOtyquB+ +u9YkgfJfsuRJmgQ9tmo= +=60ui +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCEeP3idNjQ1Bg0kQBf4G0wX+2QNzLh2YNwYkQgQkfYhn/hLXjV4nK9nsE +8Ex1Dsdt5UPvOz8W8VKQRS6loOfOe+yyXil8W3IYFwUpdDUi+Q== +=moGf +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +-- Checking hashes +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.md5.mdc.s2k3.z0 + +jA0EBwMClrXXtOXetohg0kQBn0Kl1ymevQZRHkdoYRHgzCwSQEiss7zYff2UNzgO +KyRrHf7zEBuZiZ2AG34jNVMOLToj1jJUg5zTSdecUzQVCykWTA== +=NyLk +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCApbdlrURoWJg0kQBzHM/E0o7djY82bNuspjxjAcPFrrtp0uvDdMQ4z2m +/PM8jhgI5vxFYfNQjLl8y3fHYIomk9YflN9K/Q13iq8A8sjeTw== +=FxbQ +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +-- Checking S2K modes +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k0.z0 + +jAQEBwAC0kQBKTaLAKE3xzps+QIZowqRNb2eAdzBw2LxEW2YD5PgNlbhJdGg+dvw +Ah9GXjGS1TVALzTImJbz1uHUZRfhJlFbc5yGQw== +=YvkV +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k1.z0 + +jAwEBwEC/QTByBLI3b/SRAHPxKzI6SZBo5lAEOD+EsvKQWO4adL9tDY+++Iqy1xK +4IaWXVKEj9R2Lr2xntWWMGZtcKtjD2lFFRXXd9dZp1ZThNDz +=dbXm +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCEq4Su3ZqNEJg0kQB4QG5jBTKF0i04xtH+avzmLhstBNRxvV3nsmB3cwl +z+9ZaA/XdSx5ZiFnMym8P6r8uY9rLjjNptvvRHlxIReF+p9MNg== +=VJKg +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes192.sha1.mdc.s2k0.z0 + +jAQECAAC0kQBBDnQWkgsx9YFaqDfWmpsiyAJ6y2xG/sBvap1dySYEMuZ+wJTXQ9E +Cr3i2M7TgVZ0M4jp4QL0adG1lpN5iK7aQeOwMw== +=cg+i +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes192.sha1.mdc.s2k1.z0 + +jAwECAECruOfyNDFiTnSRAEVoGXm4A9UZKkWljdzjEO/iaE7mIraltIpQMkiqCh9 +7h8uZ2u9uRBOv222fZodGvc6bvq/4R4hAa/6qSHtm8mdmvGt +=aHmC +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes192.sha1.mdc.s2k3.z0 + +jA0ECAMCjFn6SRi3SONg0kQBqtSHPaD0m7rXfDAhCWU/ypAsI93GuHGRyM99cvMv +q6eF6859ZVnli3BFSDSk3a4e/pXhglxmDYCfjAXkozKNYLo6yw== +=K0LS +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes256.sha1.mdc.s2k0.z0 + +jAQECQAC0kQB4L1eMbani07XF2ZYiXNK9LW3v8w41oUPl7dStmrJPQFwsdxmrDHu +rQr3WbdKdY9ufjOE5+mXI+EFkSPrF9rL9NCq6w== +=RGts +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes256.sha1.mdc.s2k1.z0 + +jAwECQECKHhrou7ZOIXSRAHWIVP+xjVQcjAVBTt+qh9SNzYe248xFTwozkwev3mO ++KVJW0qhk0An+Y2KF99/bYFl9cL5D3Tl43fC8fXGl3x3m7pR +=SUrU +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes256.sha1.mdc.s2k3.z0 + +jA0ECQMCjc8lwZu8Fz1g0kQBkEzjImi21liep5jj+3dAJ2aZFfUkohi8b3n9z+7+ +4+NRzL7cMW2RLAFnJbiqXDlRHMwleeuLN1up2WIxsxtYYuaBjA== +=XZrG +-----END PGP MESSAGE----- +'), 'foobar'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +-- Checking longer passwords +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCx6dBiuqrYNRg0kQBEo63AvA1SCslxP7ayanLf1H0/hlk2nONVhTwVEWi +tTGup1mMz6Cfh1uDRErUuXpx9A0gdMu7zX0o5XjrL7WGDAZdSw== +=XKKG +-----END PGP MESSAGE----- +'), '0123456789abcdefghij'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCBDvYuS990iFg0kQBW31UK5OiCjWf5x6KJ8qNNT2HZWQCjCBZMU0XsOC6 +CMxFKadf144H/vpoV9GA0f22keQgCl0EsTE4V4lweVOPTKCMJg== +=gWDh +-----END PGP MESSAGE----- +'), '0123456789abcdefghij2jk4h5g2j54khg23h54g2kh54g2khj54g23hj54'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCqXbFafC+ofVg0kQBejyiPqH0QMERVGfmPOjtAxvyG5KDIJPYojTgVSDt +FwsDabdQUz5O7bgNSnxfmyw1OifGF+W2bIn/8W+0rDf8u3+O+Q== +=OxOF +-----END PGP MESSAGE----- +'), 'x'); + pgp_sym_decrypt +----------------- + Secret message. +(1 row) + +-- Checking various data +select encode(digest(pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat1.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCGJ+SpuOysINg0kQBJfSjzsW0x4OVcAyr17O7FBvMTwIGeGcJd99oTQU8 +Xtx3kDqnhUq9Z1fS3qPbi5iNP2A9NxOBxPWz2JzxhydANlgbxg== +=W/ik +-----END PGP MESSAGE----- +'), '0123456789abcdefghij'), 'sha1'), 'hex'); + encode +------------------------------------------ + 0225e3ede6f2587b076d021a189ff60aad67e066 +(1 row) + +-- expected: 0225e3ede6f2587b076d021a189ff60aad67e066 +select encode(digest(pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat2.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCvdpDvidNzMxg0jUBvj8eS2+1t/9/zgemxvhtc0fvdKGGbjH7dleaTJRB +SaV9L04ky1qECNDx3XjnoKLC+H7IOQ== +=Fxen +-----END PGP MESSAGE----- +'), '0123456789abcdefghij'), 'sha1'), 'hex'); + encode +------------------------------------------ + da39a3ee5e6b4b0d3255bfef95601890afd80709 +(1 row) + +-- expected: da39a3ee5e6b4b0d3255bfef95601890afd80709 +select encode(digest(pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: dat3.aes.sha1.mdc.s2k3.z0 + +jA0EBwMCxQvxJZ3G/HRg0lgBeYmTa7/uDAjPyFwSX4CYBgpZWVn/JS8JzILrcWF8 +gFnkUKIE0PSaYFp+Yi1VlRfUtRQ/X/LYNGa7tWZS+4VQajz2Xtz4vUeAEiYFYPXk +73Hb8m1yRhQK +=ivrD +-----END PGP MESSAGE----- +'), '0123456789abcdefghij'), 'sha1'), 'hex'); + encode +------------------------------------------ + 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c +(1 row) + +-- expected: 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c +-- Checking CRLF +select encode(digest(pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: crlf mess + +ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms +a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs +=mBP9 +-----END PGP MESSAGE----- +'), 'key', 'convert-crlf=0'), 'sha1'), 'hex'); + encode +------------------------------------------ + 9353062be7720f1446d30b9e75573a4833886784 +(1 row) + +-- expected: 9353062be7720f1446d30b9e75573a4833886784 +select encode(digest(pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- +Comment: crlf mess + +ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms +a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs +=mBP9 +-----END PGP MESSAGE----- +'), 'key', 'convert-crlf=1'), 'sha1'), 'hex'); + encode +------------------------------------------ + 7efefcab38467f7484d6fa43dc86cf5281bd78e2 +(1 row) + +-- expected: 7efefcab38467f7484d6fa43dc86cf5281bd78e2 +-- check BUG #11905, problem with messages 6 less than a power of 2. +select pgp_sym_decrypt(pgp_sym_encrypt(repeat('x',65530),'1'),'1') = repeat('x',65530); + ?column? +---------- + t +(1 row) + +-- expected: true +-- Negative tests +-- Decryption with a certain incorrect key yields an apparent Literal Data +-- packet reporting its content to be binary data. Ciphertext source: +-- iterative pgp_sym_encrypt('secret', 'key') until the random prefix gave +-- rise to that property. +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- + +ww0EBwMCxf8PTrQBmJdl0jcB6y2joE7GSLKRv7trbNsF5Z8ou5NISLUg31llVH/S0B2wl4bvzZjV +VsxxqLSPzNLAeIspJk5G +=mSd/ +-----END PGP MESSAGE----- +'), 'wrong-key', 'debug=1'); +NOTICE: dbg: prefix_init: corrupt prefix +NOTICE: dbg: parse_literal_data: data type=b +NOTICE: dbg: mdcbuf_finish: bad MDC pkt hdr +ERROR: Wrong key or corrupt data +-- Routine text/binary mismatch. +select pgp_sym_decrypt(pgp_sym_encrypt_bytea('P', 'key'), 'key', 'debug=1'); +NOTICE: dbg: parse_literal_data: data type=b +ERROR: Not text data +-- Decryption with a certain incorrect key yields an apparent BZip2-compressed +-- plaintext. Ciphertext source: iterative pgp_sym_encrypt('secret', 'key') +-- until the random prefix gave rise to that property. +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- + +ww0EBwMC9rK/dMkF5Zlt0jcBlzAQ1mQY2qYbKYbw8h3EZ5Jk0K2IiY92R82TRhWzBIF/8cmXDPtP +GXsd65oYJZp3Khz0qfyn +=Nmpq +-----END PGP MESSAGE----- +'), 'wrong-key', 'debug=1'); +NOTICE: dbg: prefix_init: corrupt prefix +NOTICE: dbg: parse_compressed_data: bzip2 unsupported +NOTICE: dbg: mdcbuf_finish: bad MDC pkt hdr +ERROR: Wrong key or corrupt data +-- Routine use of BZip2 compression. Ciphertext source: +-- echo x | gpg --homedir /nonexistent --personal-compress-preferences bzip2 \ +-- --personal-cipher-preferences aes --no-emit-version --batch \ +-- --symmetric --passphrase key --armor +select pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- + +jA0EBwMCRhFrAKNcLVJg0mMBLJG1cCASNk/x/3dt1zJ+2eo7jHfjgg3N6wpB3XIe +QCwkWJwlBG5pzbO5gu7xuPQN+TbPJ7aQ2sLx3bAHhtYb0i3vV9RO10Gw++yUyd4R +UCAAw2JRIISttRHMfDpDuZJpvYo= +=AZ9M +-----END PGP MESSAGE----- +'), 'key', 'debug=1'); +NOTICE: dbg: parse_compressed_data: bzip2 unsupported +ERROR: Unsupported compression algorithm diff -Nru postgresql-13-13.4/contrib/pgcrypto/expected/pgp-pubkey-decrypt_1.out postgresql-13-13.7/contrib/pgcrypto/expected/pgp-pubkey-decrypt_1.out --- postgresql-13-13.4/contrib/pgcrypto/expected/pgp-pubkey-decrypt_1.out 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/contrib/pgcrypto/expected/pgp-pubkey-decrypt_1.out 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,652 @@ +-- +-- PGP Public Key Encryption +-- +-- As most of the low-level stuff is tested in symmetric key +-- tests, here's only public-key specific tests +create table keytbl ( + id int4, + name text, + pubkey text, + seckey text +); +create table encdata ( + id int4, + data text +); +insert into keytbl (id, name, pubkey, seckey) +values (1, 'elg1024', ' +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +mQGiBELIIUgRBACp401L6jXrLB28c3YA4sM3OJKnxM1GT9YTkWyE3Vyte65H8WU9 +tGPBX7OMuaX5eGZ84LFUGvaP0k7anfmXcDkCO3P9GgL+ro/dS2Ps/vChQPZqHaxE +xpKDUt47B7DGdRJrC8DRnIR4wbSyQA6ma3S1yFqC5pJhSs+mqf9eExOjiwCgntth +klRxIYw352ZX9Ov9oht/p/ED/1Xi4PS+tkXVvyIw5aZfa61bT6XvDkoPI0Aj3GE5 +YmCHJlKA/IhEr8QJOLV++5VEv4l6KQ1/DFoJzoNdr1AGJukgTc6X/WcQRzfQtUic +PHQme5oAWoHa6bVQZOwvbJh3mOXDq/Tk/KF22go8maM44vMn4bvv+SBbslviYLiL +jZJ1A/9JXF1esNq+X9HehJyqHHU7LEEf/ck6zC7o2erM3/LZlZuLNPD2cv3oL3Nv +saEgcTSZl+8XmO8pLmzjKIb+hi70qVx3t2IhMqbb4B/dMY1Ck62gPBKa81/Wwi7v +IsEBQLEtyBmGmI64YpzoRNFeaaF9JY+sAKqROqe6dLjJ7vebQLQfRWxnYW1hbCAx +MDI0IDx0ZXN0QGV4YW1wbGUub3JnPoheBBMRAgAeBQJCyCFIAhsDBgsJCAcDAgMV +AgMDFgIBAh4BAheAAAoJEBwpvA0YF3NkOtsAniI9W2bC3CxARTpYrev7ihreDzFc +AJ9WYLQxDQAi5Ec9AQoodPkIagzZ4LkBDQRCyCFKEAQAh5SNbbJMAsJ+sQbcWEzd +ku8AdYB5zY7Qyf9EOvn0g39bzANhxmmb6gbRlQN0ioymlDwraTKUAfuCZgNcg/0P +sxFGb9nDcvjIV8qdVpnq1PuzMFuBbmGI6weg7Pj01dlPiO0wt1lLX+SubktqbYxI ++h31c3RDZqxj+KAgxR8YNGMAAwYD+wQs2He1Z5+p4OSgMERiNzF0acZUYmc0e+/9 +6gfL0ft3IP+SSFo6hEBrkKVhZKoPSSRr5KpNaEobhdxsnKjUaw/qyoaFcNMzb4sF +k8wq5UlCkR+h72u6hv8FuleCV8SJUT1U2JjtlXJR2Pey9ifh8rZfu57UbdwdHa0v +iWc4DilhiEkEGBECAAkFAkLIIUoCGwwACgkQHCm8DRgXc2TtrwCfdPom+HlNVE9F +ig3hGY1Rb4NEk1gAn1u9IuQB+BgDP40YHHz6bKWS/x80 +=RWci +-----END PGP PUBLIC KEY BLOCK----- +', ' +-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +lQG7BELIIUgRBACp401L6jXrLB28c3YA4sM3OJKnxM1GT9YTkWyE3Vyte65H8WU9 +tGPBX7OMuaX5eGZ84LFUGvaP0k7anfmXcDkCO3P9GgL+ro/dS2Ps/vChQPZqHaxE +xpKDUt47B7DGdRJrC8DRnIR4wbSyQA6ma3S1yFqC5pJhSs+mqf9eExOjiwCgntth +klRxIYw352ZX9Ov9oht/p/ED/1Xi4PS+tkXVvyIw5aZfa61bT6XvDkoPI0Aj3GE5 +YmCHJlKA/IhEr8QJOLV++5VEv4l6KQ1/DFoJzoNdr1AGJukgTc6X/WcQRzfQtUic +PHQme5oAWoHa6bVQZOwvbJh3mOXDq/Tk/KF22go8maM44vMn4bvv+SBbslviYLiL +jZJ1A/9JXF1esNq+X9HehJyqHHU7LEEf/ck6zC7o2erM3/LZlZuLNPD2cv3oL3Nv +saEgcTSZl+8XmO8pLmzjKIb+hi70qVx3t2IhMqbb4B/dMY1Ck62gPBKa81/Wwi7v +IsEBQLEtyBmGmI64YpzoRNFeaaF9JY+sAKqROqe6dLjJ7vebQAAAnj4i4st+s+C6 +WKTIDcL1Iy0Saq8lCp60H0VsZ2FtYWwgMTAyNCA8dGVzdEBleGFtcGxlLm9yZz6I +XgQTEQIAHgUCQsghSAIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRAcKbwNGBdz +ZDrbAJ9cp6AsjOhiLxwznsMJheGf4xkH8wCfUPjMCLm4tAEnyYn2hDNt7CB8B6Kd +ATEEQsghShAEAIeUjW2yTALCfrEG3FhM3ZLvAHWAec2O0Mn/RDr59IN/W8wDYcZp +m+oG0ZUDdIqMppQ8K2kylAH7gmYDXIP9D7MRRm/Zw3L4yFfKnVaZ6tT7szBbgW5h +iOsHoOz49NXZT4jtMLdZS1/krm5Lam2MSPod9XN0Q2asY/igIMUfGDRjAAMGA/sE +LNh3tWefqeDkoDBEYjcxdGnGVGJnNHvv/eoHy9H7dyD/kkhaOoRAa5ClYWSqD0kk +a+SqTWhKG4XcbJyo1GsP6sqGhXDTM2+LBZPMKuVJQpEfoe9ruob/BbpXglfEiVE9 +VNiY7ZVyUdj3svYn4fK2X7ue1G3cHR2tL4lnOA4pYQAA9030E4u2ZKOfJBpUM+EM +m9VmsGjaQZV4teB0R/q3W8sRIYhJBBgRAgAJBQJCyCFKAhsMAAoJEBwpvA0YF3Nk +7a8AniFFotw1x2X+oryu3Q3nNtmxoKHpAJ9HU7jw7ydg33dI9J8gVkrmsSZ2/w== +=nvqq +-----END PGP PRIVATE KEY BLOCK----- +'); +insert into keytbl (id, name, pubkey, seckey) +values (2, 'elg2048', ' +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +mQGiBELIIgoRBAC1onBpxKYgDvrgCaUWPY34947X3ogxGOfCN0p6Eqrx+2PUhm4n +vFvmczpMT4iDc0mUO+iwnwsEkXQI1eC99g8c0jnZAvzJZ5miAHL8hukMAMfDkYke +5aVvcPPc8uPDlItpszGmH0rM0V9TIt/i9QEXetpyNWhk4jj5qnohYhLeZwCgkOdO +RFAdNi4vfFPivvtAp2ffjU8D/R3x/UJCvkzi7i9rQHGo313xxmQu5BuqIjANBUij +8IE7LRPI/Qhg2hYy3sTJwImDi7VkS+fuvNVk0d6MTWplAXYU96bn12JaD21R9sKl +Fzcc+0iZI1wYA1PczisUkoTISE+dQFUsoGHfpDLhoBuesXQrhBavI8t8VPd+nkdt +J+oKA/9iRQ87FzxdYTkh2drrv69FZHc3Frsjw9nPcBq/voAvXH0MRilqyCg7HpW/ +T9naeOERksa+Rj4R57IF1l4e5oiiGJo9QmaKZcsCsXrREJCycrlEtMqXfSPy+bi5 +0yDZE/Qm1dwu13+OXOsRvkoNYjO8Mzo9K8wU12hMqN0a2bu6a7QjRWxnYW1hbCAy +MDQ4IDx0ZXN0MjA0OEBleGFtcGxlLm9yZz6IXgQTEQIAHgUCQsgiCgIbAwYLCQgH +AwIDFQIDAxYCAQIeAQIXgAAKCRBI6c1W/qZo29PDAKCG724enIxRog1j+aeCp/uq +or6mbwCePuKy2/1kD1FvnhkZ/R5fpm+pdm25Ag0EQsgiIhAIAJI3Gb2Ehtz1taQ9 +AhPY4Avad2BsqD3S5X/R11Cm0KBE/04D29dxn3f8QfxDsexYvNIZjoJPBqqZ7iMX +MhoWyw8ZF5Zs1mLIjFGVorePrm94N3MNPWM7x9M36bHUjx0vCZKFIhcGY1g+htE/ +QweaJzNVeA5z4qZmik41FbQyQSyHa3bOkTZu++/U6ghP+iDp5UDBjMTkVyqITUVN +gC+MR+da/I60irBVhue7younh4ovF+CrVDQJC06HZl6CAJJyA81SmRfi+dmKbbjZ +LF6rhz0norPjISJvkIqvdtM4VPBKI5wpgwCzpEqjuiKrAVujRT68zvBvJ4aVqb11 +k5QdJscAAwUH/jVJh0HbWAoiFTe+NvohfrA8vPcD0rtU3Y+siiqrabotnxJd2NuC +bxghJYGfNtnx0KDjFbCRKJVeTFok4UnuVYhXdH/c6i0/rCTNdeW2D6pmR4GfBozR +Pw/ARf+jONawGLyUj7uq13iquwMSE7VyNuF3ycL2OxXjgOWMjkH8c+zfHHpjaZ0R +QsetMq/iNBWraayKZnWUd+eQqNzE+NUo7w1jAu7oDpy+8a1eipxzK+O0HfU5LTiF +Z1Oe4Um0P2l3Xtx8nEgj4vSeoEkl2qunfGW00ZMMTCWabg0ZgxPzMfMeIcm6525A +Yn2qL+X/qBJTInAl7/hgPz2D1Yd7d5/RdWaISQQYEQIACQUCQsgiIgIbDAAKCRBI +6c1W/qZo25ZSAJ98WTrtl2HiX8ZqZq95v1+9cHtZPQCfZDoWQPybkNescLmXC7q5 +1kNTmEU= +=8QM5 +-----END PGP PUBLIC KEY BLOCK----- +', ' +-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +lQG7BELIIgoRBAC1onBpxKYgDvrgCaUWPY34947X3ogxGOfCN0p6Eqrx+2PUhm4n +vFvmczpMT4iDc0mUO+iwnwsEkXQI1eC99g8c0jnZAvzJZ5miAHL8hukMAMfDkYke +5aVvcPPc8uPDlItpszGmH0rM0V9TIt/i9QEXetpyNWhk4jj5qnohYhLeZwCgkOdO +RFAdNi4vfFPivvtAp2ffjU8D/R3x/UJCvkzi7i9rQHGo313xxmQu5BuqIjANBUij +8IE7LRPI/Qhg2hYy3sTJwImDi7VkS+fuvNVk0d6MTWplAXYU96bn12JaD21R9sKl +Fzcc+0iZI1wYA1PczisUkoTISE+dQFUsoGHfpDLhoBuesXQrhBavI8t8VPd+nkdt +J+oKA/9iRQ87FzxdYTkh2drrv69FZHc3Frsjw9nPcBq/voAvXH0MRilqyCg7HpW/ +T9naeOERksa+Rj4R57IF1l4e5oiiGJo9QmaKZcsCsXrREJCycrlEtMqXfSPy+bi5 +0yDZE/Qm1dwu13+OXOsRvkoNYjO8Mzo9K8wU12hMqN0a2bu6awAAn2F+iNBElfJS +8azqO/kEiIfpqu6/DQG0I0VsZ2FtYWwgMjA0OCA8dGVzdDIwNDhAZXhhbXBsZS5v +cmc+iF0EExECAB4FAkLIIgoCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQSOnN +Vv6maNvTwwCYkpcJmpl3aHCQdGomz7dFohDgjgCgiThZt2xTEi6GhBB1vuhk+f55 +n3+dAj0EQsgiIhAIAJI3Gb2Ehtz1taQ9AhPY4Avad2BsqD3S5X/R11Cm0KBE/04D +29dxn3f8QfxDsexYvNIZjoJPBqqZ7iMXMhoWyw8ZF5Zs1mLIjFGVorePrm94N3MN +PWM7x9M36bHUjx0vCZKFIhcGY1g+htE/QweaJzNVeA5z4qZmik41FbQyQSyHa3bO +kTZu++/U6ghP+iDp5UDBjMTkVyqITUVNgC+MR+da/I60irBVhue7younh4ovF+Cr +VDQJC06HZl6CAJJyA81SmRfi+dmKbbjZLF6rhz0norPjISJvkIqvdtM4VPBKI5wp +gwCzpEqjuiKrAVujRT68zvBvJ4aVqb11k5QdJscAAwUH/jVJh0HbWAoiFTe+Nvoh +frA8vPcD0rtU3Y+siiqrabotnxJd2NuCbxghJYGfNtnx0KDjFbCRKJVeTFok4Unu +VYhXdH/c6i0/rCTNdeW2D6pmR4GfBozRPw/ARf+jONawGLyUj7uq13iquwMSE7Vy +NuF3ycL2OxXjgOWMjkH8c+zfHHpjaZ0RQsetMq/iNBWraayKZnWUd+eQqNzE+NUo +7w1jAu7oDpy+8a1eipxzK+O0HfU5LTiFZ1Oe4Um0P2l3Xtx8nEgj4vSeoEkl2qun +fGW00ZMMTCWabg0ZgxPzMfMeIcm6525AYn2qL+X/qBJTInAl7/hgPz2D1Yd7d5/R +dWYAAVQKFPXbRaxbdArwRVXMzSD3qj/+VwwhwEDt8zmBGnlBfwVdkjQQrDUMmV1S +EwyISQQYEQIACQUCQsgiIgIbDAAKCRBI6c1W/qZo25ZSAJ4sgUfHTVsG/x3p3fcM +3b5R86qKEACggYKSwPWCs0YVRHOWqZY0pnHtLH8= +=3Dgk +-----END PGP PRIVATE KEY BLOCK----- +'); +insert into keytbl (id, name, pubkey, seckey) +values (3, 'elg4096', ' +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +mQGiBELII7wRBACFuaAvb11cIvjJK9LkZr4cYuYhLWh3DJdojNNnLNiym5OEksvY +05cw8OgqKtPzICU7o/mHXTWhzJYUt3i50/AeYygI8Q0uATS6RnDAKNlES1EMoHKz +2a5iFbYs4bm4IwlkvYd8uWjcu+U0YLbxir39u+anIc6eT+q3WiH/q3zDRwCgkT98 +cnIG8iO8PdwDSP8G4Lt6TYED/R45GvCzJ4onQALLE92KkLUz8aFWSl05r84kczEN +SxiP9Ss6m465RmwWHfwYAu4b+c4GeNyU8fIU2EM8cezchC+edEi3xu1s+pCV0Dk4 +18DGC8WKCICO30vBynuNmYg7W/7Zd4wtjss454fMW7+idVDNM701mmXBtI1nsBtG +7Z4tA/9FxjFbJK9jh24RewfjHpLYqcfCo2SsUjOwsnMZ5yg2yv9KyVVQhRqwmrqt +q8MRyjGmfoD9PPdCgvqgzy0hHvAHUtTm2zUczGTG+0g4hNIklxC/Mv6J4KE+NWTh +uB4acqofHyaw2WnKOuRUsoDi6rG5AyjNMyAK/vVcEGj7J1tk27QjRWxnYW1hbCA0 +MDk2IDx0ZXN0NDA5NkBleGFtcGxlLm9yZz6IXgQTEQIAHgUCQsgjvAIbAwYLCQgH +AwIDFQIDAxYCAQIeAQIXgAAKCRBj+HX2P2d0oAEDAJ9lI+CNmb42z3+a6TnVusM6 +FI7oLwCfUwA1zEcRdsT3nIkoYh0iKxFSDFW5BA0EQsgkdhAQAJQbLXlgcJ/jq+Xh +Eujb77/eeftFJObNIRYD9fmJ7HFIXbUcknEpbs+cRH/nrj5dGSY3OT3jCXOUtvec +sCoX/CpZWL0oqDjAiZtNSFiulw5Gav4gHYkWKgKdSo+2rkavEPqKIVHvMeXaJtGT +d7v/AmL/P8T7gls93o5WFBOLtPbDvWqaKRy2U5TAhl1laiM0vGALRVjvSCgnGw9g +FpSnXbO3AfenUSjDzZujfGLHtU44ixHSS/D4DepiF3YaYLsN4CBqZRv6FbMZD5W3 +DnJY4kS1kH0MzdcF19TlcZ3itTCcGIt1tMKf84mccPoqdMzH7vumBGTeFEly5Afp +9berJcirqh2fzlunN0GS02z6SGWnjTbDlkNDxuxPSBbpcpNyD3jpYAUqSwRsZ/+5 +zkzcbGtDmvy9sJ5lAXkxGoIoQ1tEVX/LOHnh2NQHK8ourVOnr7MS0nozssITZJ5E +XqtHiREjiYEuPyZiVZKJHLWuYYaF+n40znnz3sJuXFRreHhHbbvRdlYUU5mJV+XZ +BLgKuS33NdpGeMIngnCc/9IQ6OZb6ixc94kbkd3w2PVr8CbKlu/IHTjWOO2mAo+D ++OydlYl23FiM3KOyMP1HcEOJMB/nwkMtrvd+522Lu9n77ktKfot9IPrQDIQTyXjR +3pCOFtCOBnk2tJHMPoG9jn9ah/LHAAMHEACDZ5I/MHGfmiKg2hrmqBu2J2j/deC8 +CpwcyDH1ovQ0gHvb9ESa+CVRU2Wdy2CD7Q9SmtMverB5eneL418iPVRcQdwRmQ2y +IH4udlBa6ce9HTUCaecAZ4/tYBnaC0Av/9l9tz14eYcwRMDpB+bnkhgF+PZ1KAfD +9wcY2aHbtsf3lZBc5h4owPJkxpe/BNzuJxW3q4VpSbLsZhwnCZ2wg7DRwP44wFIk +00ptmoBY59gsU6I40XtzrF8JDr0cA57xND5RY21Z8lnnYRE1Tc8h5REps9ZIxW3/ +yl91404bPLqxczpUHQAMSTAmBaStPYX1nS51uofOhLs5SKPCUmxfGKIOhsD0oLUn +78DnkONVGeXzBibSwwtbgfMzee4G8wSUfJ7w8WXz1TyanaGLnJ+DuKASSOrFoBCD +HEDuWZWgSL74NOQupFRk0gxOPmqU94Y8HziQWma/cETbmD83q8rxN+GM2oBxQkQG +xcbqMTHE7aVhV3tymbSWVaYhww3oIwsZS9oUIi1DnPEowS6CpVRrwdvLjLJnJzzV +O3AFPn9eZ1Q7R1tNx+zZ4OOfhvI/OlRJ3HBx2L53embkbdY9gFYCCdTjPyjKoDIx +kALgCajjCYMNUsAKNSd6mMCQ8TtvukSzkZS1RGKP27ohsdnzIVsiEAbxDMMcI4k1 +ul0LExUTCXSjeIhJBBgRAgAJBQJCyCR2AhsMAAoJEGP4dfY/Z3Sg19sAn0NDS8pb +qrMpQAxSb7zRTmcXEFd9AJ435H0ttP/NhLHXC9ezgbCMmpXMOQ== +=kRxT +-----END PGP PUBLIC KEY BLOCK----- +', ' +-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +lQG7BELII7wRBACFuaAvb11cIvjJK9LkZr4cYuYhLWh3DJdojNNnLNiym5OEksvY +05cw8OgqKtPzICU7o/mHXTWhzJYUt3i50/AeYygI8Q0uATS6RnDAKNlES1EMoHKz +2a5iFbYs4bm4IwlkvYd8uWjcu+U0YLbxir39u+anIc6eT+q3WiH/q3zDRwCgkT98 +cnIG8iO8PdwDSP8G4Lt6TYED/R45GvCzJ4onQALLE92KkLUz8aFWSl05r84kczEN +SxiP9Ss6m465RmwWHfwYAu4b+c4GeNyU8fIU2EM8cezchC+edEi3xu1s+pCV0Dk4 +18DGC8WKCICO30vBynuNmYg7W/7Zd4wtjss454fMW7+idVDNM701mmXBtI1nsBtG +7Z4tA/9FxjFbJK9jh24RewfjHpLYqcfCo2SsUjOwsnMZ5yg2yv9KyVVQhRqwmrqt +q8MRyjGmfoD9PPdCgvqgzy0hHvAHUtTm2zUczGTG+0g4hNIklxC/Mv6J4KE+NWTh +uB4acqofHyaw2WnKOuRUsoDi6rG5AyjNMyAK/vVcEGj7J1tk2wAAoJCUNy6awTkw +XfbLbpqh0fvDst7jDLa0I0VsZ2FtYWwgNDA5NiA8dGVzdDQwOTZAZXhhbXBsZS5v +cmc+iF4EExECAB4FAkLII7wCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQY/h1 +9j9ndKABAwCeNEOVK87EzXYbtxYBsnjrUI948NIAn2+f3BXiBFDV5NvqPwIZ0m77 +Fwy4nQRMBELIJHYQEACUGy15YHCf46vl4RLo2++/3nn7RSTmzSEWA/X5iexxSF21 +HJJxKW7PnER/564+XRkmNzk94wlzlLb3nLAqF/wqWVi9KKg4wImbTUhYrpcORmr+ +IB2JFioCnUqPtq5GrxD6iiFR7zHl2ibRk3e7/wJi/z/E+4JbPd6OVhQTi7T2w71q +mikctlOUwIZdZWojNLxgC0VY70goJxsPYBaUp12ztwH3p1Eow82bo3xix7VOOIsR +0kvw+A3qYhd2GmC7DeAgamUb+hWzGQ+Vtw5yWOJEtZB9DM3XBdfU5XGd4rUwnBiL +dbTCn/OJnHD6KnTMx+77pgRk3hRJcuQH6fW3qyXIq6odn85bpzdBktNs+khlp402 +w5ZDQ8bsT0gW6XKTcg946WAFKksEbGf/uc5M3GxrQ5r8vbCeZQF5MRqCKENbRFV/ +yzh54djUByvKLq1Tp6+zEtJ6M7LCE2SeRF6rR4kRI4mBLj8mYlWSiRy1rmGGhfp+ +NM55897CblxUa3h4R2270XZWFFOZiVfl2QS4Crkt9zXaRnjCJ4JwnP/SEOjmW+os +XPeJG5Hd8Nj1a/AmypbvyB041jjtpgKPg/jsnZWJdtxYjNyjsjD9R3BDiTAf58JD +La73fudti7vZ++5LSn6LfSD60AyEE8l40d6QjhbQjgZ5NrSRzD6BvY5/WofyxwAD +BxAAg2eSPzBxn5oioNoa5qgbtido/3XgvAqcHMgx9aL0NIB72/REmvglUVNlnctg +g+0PUprTL3qweXp3i+NfIj1UXEHcEZkNsiB+LnZQWunHvR01AmnnAGeP7WAZ2gtA +L//Zfbc9eHmHMETA6Qfm55IYBfj2dSgHw/cHGNmh27bH95WQXOYeKMDyZMaXvwTc +7icVt6uFaUmy7GYcJwmdsIOw0cD+OMBSJNNKbZqAWOfYLFOiONF7c6xfCQ69HAOe +8TQ+UWNtWfJZ52ERNU3PIeURKbPWSMVt/8pfdeNOGzy6sXM6VB0ADEkwJgWkrT2F +9Z0udbqHzoS7OUijwlJsXxiiDobA9KC1J+/A55DjVRnl8wYm0sMLW4HzM3nuBvME +lHye8PFl89U8mp2hi5yfg7igEkjqxaAQgxxA7lmVoEi++DTkLqRUZNIMTj5qlPeG +PB84kFpmv3BE25g/N6vK8TfhjNqAcUJEBsXG6jExxO2lYVd7cpm0llWmIcMN6CML +GUvaFCItQ5zxKMEugqVUa8Hby4yyZyc81TtwBT5/XmdUO0dbTcfs2eDjn4byPzpU +Sdxwcdi+d3pm5G3WPYBWAgnU4z8oyqAyMZAC4Amo4wmDDVLACjUnepjAkPE7b7pE +s5GUtURij9u6IbHZ8yFbIhAG8QzDHCOJNbpdCxMVEwl0o3gAAckBdfKuasiNUn5G +L5XRnSvaOFzftr8zteOlZChCSNvzH5k+i1j7RJbWq06OeKRywPzjfjgM2MvRzI43 +ICeISQQYEQIACQUCQsgkdgIbDAAKCRBj+HX2P2d0oNfbAJ9+G3SeXrk+dWwo9EGi +hqMi2GVTsgCfeoQJPsc8FLYUgfymc/3xqAVLUtg= +=Gjq6 +-----END PGP PRIVATE KEY BLOCK----- +'); +insert into keytbl (id, name, pubkey, seckey) +values (4, 'rsa2048', ' +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +mQELBELIJbEBCADAIdtcoLAmQfl8pb73pPRuEYx8qW9klLfCGG5A4OUOi00JHNwP +ZaABe1PGzjoeXrgM1MTQZhoZu1Vdg+KDI6XAtiy9P6bLg7ntsXksD4wBoIKtQKc2 +55pdukxTiu+xeJJG2q8ZZPOp97CV9fbQ9vPCwgnuSsDCoQlibZikDVPAyVTvp7Jx +5rz8yXsl4sxvaeMZPqqFPtA/ENeQ3cpsyR1BQXSvoZpH1Fq0b8GcZTEdWWD/w6/K +MCRC8TmgEd+z3e8kIsCwFQ+TSHbCcxRWdgZE7gE31sJHHVkrZlXtLU8MPXWqslVz +R0cX+yC8j6bXI6/BqZ2SvRndJwuunRAr4um7AAYptB5SU0EgMjA0OCA8cnNhMjA0 +OEBleGFtcGxlLm9yZz6JATQEEwECAB4FAkLIJbECGwMGCwkIBwMCAxUCAwMWAgEC +HgECF4AACgkQnc+OnJvTHyQqHwf8DtzuAGmObfe3ggtn14x2wnU1Nigebe1K5liR +nrLuVlLBpdO6CWmMUzfKRvyZlx54GlA9uUQSjW+RlgejdOTQqesDrcTEukYd4yzw +bLZyM5Gb3lsE/FEmE7Dxw/0Utf59uACqzG8LACQn9J6sEgZWKxAupuYTHXd12lDP +D3dnU4uzKPhMcjnSN00pzjusP7C9NZd3OLkAx2vw/dmb4Q+/QxeZhVYYsAUuR2hv +9bgGWopumlOkt8Zu5YG6+CtTbJXprPI7pJ1jHbeE+q/29hWJQtS8Abx82AcOkzhv +S3NZKoJ/1DrGgoDAu1mGkM4KvLAxfDs/qQ9dZhtEmDbKPLTVEA== +=lR4n +-----END PGP PUBLIC KEY BLOCK----- +', ' +-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +lQOWBELIJbEBCADAIdtcoLAmQfl8pb73pPRuEYx8qW9klLfCGG5A4OUOi00JHNwP +ZaABe1PGzjoeXrgM1MTQZhoZu1Vdg+KDI6XAtiy9P6bLg7ntsXksD4wBoIKtQKc2 +55pdukxTiu+xeJJG2q8ZZPOp97CV9fbQ9vPCwgnuSsDCoQlibZikDVPAyVTvp7Jx +5rz8yXsl4sxvaeMZPqqFPtA/ENeQ3cpsyR1BQXSvoZpH1Fq0b8GcZTEdWWD/w6/K +MCRC8TmgEd+z3e8kIsCwFQ+TSHbCcxRWdgZE7gE31sJHHVkrZlXtLU8MPXWqslVz +R0cX+yC8j6bXI6/BqZ2SvRndJwuunRAr4um7AAYpAAf/QZsrrz0c7dgWwGqMIpw6 +fP+/lLa74+fa2CFRWtYowEiKsfDg/wN7Ua07036dNhPa8aZPsU6SRzm5PybKOURe +D9pNt0FxJkX0j5pCWfjSJgTbc1rCdqZ/oyBk/U6pQtf//zfw3PbDl7I8TC6GOt2w +5NgcXdsWHP7LAmPctOVUyzFsenevR0MFTHkMbmKI1HpFm8XN/e1Fl+qIAD+OagTF +5B32VvpoJtkh5nxnIuToNJsa9Iy7F9MM2CeFOyTMihMcjXKBBUaAYoF115irBvqu +7N/qWmzqLg8yxBZ56mh6meCF3+67VA2y7fL8rhw2QuqgLg1JFlKAVL+9crCSrn// +GQQA1kT7FytW6BNOffblFYZkrJer3icoRDqa/ljgH/yVaWoVT1igy0E9XzYO7MwP +2usj/resLy0NC1qCthk51cZ/wthooMl88e5Wb4l5FYwBEac7muSBTo4W8cAH1hFj +TWL6XAGvEzGX3Mt9pn8uYGlQLZAhJoNCAU2EOCbN1PchDvsEAOWNKYesuUVk8+sQ +St0NDNhd9BWtTWTHkCZb1dKC3JTfr9PqkTBLrWFbYjkOtvdPAW7FDaXXXZfdH1jH +WfwP3Q+I6sqgSaWpCS4dBAns3/RVtO7czVgyIwma04iIvJqderYrfvkUq95KfwP2 +V8wXkhrPPPxyrg5y3wQlpY2jb5RBBAC17SK1ms+DBtck4vpdjp3SJ32SbyC/DU30 +89Q12j74S7Zdu1qZlKnvy3kWPYX/hMuSzGZ+mLVJNFEqH2X01aFzppYz0hdI9PGB +9tTFEqZWQL9ZkXfjc79Cgnt12pNukRbtw0N/kyutOdIFHVT79wVAd+powqziXJsC +Kc+4xjwSCkZitB5SU0EgMjA0OCA8cnNhMjA0OEBleGFtcGxlLm9yZz6JATQEEwEC +AB4FAkLIJbECGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQnc+OnJvTHyQqHwf8 +DtzuAGmObfe3ggtn14x2wnU1Nigebe1K5liRnrLuVlLBpdO6CWmMUzfKRvyZlx54 +GlA9uUQSjW+RlgejdOTQqesDrcTEukYd4yzwbLZyM5Gb3lsE/FEmE7Dxw/0Utf59 +uACqzG8LACQn9J6sEgZWKxAupuYTHXd12lDPD3dnU4uzKPhMcjnSN00pzjusP7C9 +NZd3OLkAx2vw/dmb4Q+/QxeZhVYYsAUuR2hv9bgGWopumlOkt8Zu5YG6+CtTbJXp +rPI7pJ1jHbeE+q/29hWJQtS8Abx82AcOkzhvS3NZKoJ/1DrGgoDAu1mGkM4KvLAx +fDs/qQ9dZhtEmDbKPLTVEA== +=WKAv +-----END PGP PRIVATE KEY BLOCK----- +'); +insert into keytbl (id, name, pubkey, seckey) +values (5, 'psw-elg1024', ' +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +mQGiBELIIUgRBACp401L6jXrLB28c3YA4sM3OJKnxM1GT9YTkWyE3Vyte65H8WU9 +tGPBX7OMuaX5eGZ84LFUGvaP0k7anfmXcDkCO3P9GgL+ro/dS2Ps/vChQPZqHaxE +xpKDUt47B7DGdRJrC8DRnIR4wbSyQA6ma3S1yFqC5pJhSs+mqf9eExOjiwCgntth +klRxIYw352ZX9Ov9oht/p/ED/1Xi4PS+tkXVvyIw5aZfa61bT6XvDkoPI0Aj3GE5 +YmCHJlKA/IhEr8QJOLV++5VEv4l6KQ1/DFoJzoNdr1AGJukgTc6X/WcQRzfQtUic +PHQme5oAWoHa6bVQZOwvbJh3mOXDq/Tk/KF22go8maM44vMn4bvv+SBbslviYLiL +jZJ1A/9JXF1esNq+X9HehJyqHHU7LEEf/ck6zC7o2erM3/LZlZuLNPD2cv3oL3Nv +saEgcTSZl+8XmO8pLmzjKIb+hi70qVx3t2IhMqbb4B/dMY1Ck62gPBKa81/Wwi7v +IsEBQLEtyBmGmI64YpzoRNFeaaF9JY+sAKqROqe6dLjJ7vebQLQfRWxnYW1hbCAx +MDI0IDx0ZXN0QGV4YW1wbGUub3JnPoheBBMRAgAeBQJCyCFIAhsDBgsJCAcDAgMV +AgMDFgIBAh4BAheAAAoJEBwpvA0YF3NkOtsAniI9W2bC3CxARTpYrev7ihreDzFc +AJ9WYLQxDQAi5Ec9AQoodPkIagzZ4LkBDQRCyCFKEAQAh5SNbbJMAsJ+sQbcWEzd +ku8AdYB5zY7Qyf9EOvn0g39bzANhxmmb6gbRlQN0ioymlDwraTKUAfuCZgNcg/0P +sxFGb9nDcvjIV8qdVpnq1PuzMFuBbmGI6weg7Pj01dlPiO0wt1lLX+SubktqbYxI ++h31c3RDZqxj+KAgxR8YNGMAAwYD+wQs2He1Z5+p4OSgMERiNzF0acZUYmc0e+/9 +6gfL0ft3IP+SSFo6hEBrkKVhZKoPSSRr5KpNaEobhdxsnKjUaw/qyoaFcNMzb4sF +k8wq5UlCkR+h72u6hv8FuleCV8SJUT1U2JjtlXJR2Pey9ifh8rZfu57UbdwdHa0v +iWc4DilhiEkEGBECAAkFAkLIIUoCGwwACgkQHCm8DRgXc2TtrwCfdPom+HlNVE9F +ig3hGY1Rb4NEk1gAn1u9IuQB+BgDP40YHHz6bKWS/x80 +=RWci +-----END PGP PUBLIC KEY BLOCK----- +', ' +-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +lQHpBELIIUgRBACp401L6jXrLB28c3YA4sM3OJKnxM1GT9YTkWyE3Vyte65H8WU9 +tGPBX7OMuaX5eGZ84LFUGvaP0k7anfmXcDkCO3P9GgL+ro/dS2Ps/vChQPZqHaxE +xpKDUt47B7DGdRJrC8DRnIR4wbSyQA6ma3S1yFqC5pJhSs+mqf9eExOjiwCgntth +klRxIYw352ZX9Ov9oht/p/ED/1Xi4PS+tkXVvyIw5aZfa61bT6XvDkoPI0Aj3GE5 +YmCHJlKA/IhEr8QJOLV++5VEv4l6KQ1/DFoJzoNdr1AGJukgTc6X/WcQRzfQtUic +PHQme5oAWoHa6bVQZOwvbJh3mOXDq/Tk/KF22go8maM44vMn4bvv+SBbslviYLiL +jZJ1A/9JXF1esNq+X9HehJyqHHU7LEEf/ck6zC7o2erM3/LZlZuLNPD2cv3oL3Nv +saEgcTSZl+8XmO8pLmzjKIb+hi70qVx3t2IhMqbb4B/dMY1Ck62gPBKa81/Wwi7v +IsEBQLEtyBmGmI64YpzoRNFeaaF9JY+sAKqROqe6dLjJ7vebQP4HAwImKZ5q2QwT +D2DDAY/IQBjes7WgqZeacfLPDoB8ecD/KLoSCH6Z3etvbPHSOKiazxoJ962Ix74H +ZAE6ZbMTtl5dZW1ptB9FbGdhbWFsIDEwMjQgPHRlc3RAZXhhbXBsZS5vcmc+iF4E +ExECAB4FAkLIIUgCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQHCm8DRgXc2Q6 +2wCfXKegLIzoYi8cM57DCYXhn+MZB/MAn1D4zAi5uLQBJ8mJ9oQzbewgfAeinQFf +BELIIUoQBACHlI1tskwCwn6xBtxYTN2S7wB1gHnNjtDJ/0Q6+fSDf1vMA2HGaZvq +BtGVA3SKjKaUPCtpMpQB+4JmA1yD/Q+zEUZv2cNy+MhXyp1WmerU+7MwW4FuYYjr +B6Ds+PTV2U+I7TC3WUtf5K5uS2ptjEj6HfVzdENmrGP4oCDFHxg0YwADBgP7BCzY +d7Vnn6ng5KAwRGI3MXRpxlRiZzR77/3qB8vR+3cg/5JIWjqEQGuQpWFkqg9JJGvk +qk1oShuF3GycqNRrD+rKhoVw0zNviwWTzCrlSUKRH6Hva7qG/wW6V4JXxIlRPVTY +mO2VclHY97L2J+Hytl+7ntRt3B0drS+JZzgOKWH+BwMCJimeatkMEw9gRkFjt4Xa +9rX8awMBE5+vVcGKv/DNiCvJnlYvSdCj8VfuHsYFliiJo6u17NJon+K43e3yvDNk +f631VOVanGEz7TyqOkWQiEkEGBECAAkFAkLIIUoCGwwACgkQHCm8DRgXc2TtrwCe +IUWi3DXHZf6ivK7dDec22bGgoekAn0dTuPDvJ2Dfd0j0nyBWSuaxJnb/ +=SNvr +-----END PGP PRIVATE KEY BLOCK----- +'); +insert into keytbl (id, name, pubkey, seckey) +values (6, 'rsaenc2048', ' +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +mQELBELr2m0BCADOrnknlnXI0EzRExf/TgoHvK7Xx/E0keWqV3KrOyC3/tY2KOrj +UVxaAX5pkFX9wdQObGPIJm06u6D16CH6CildX/vxG7YgvvKzK8JGAbwrXAfk7OIW +czO2zRaZGDynoK3mAxHRBReyTKtNv8rDQhuZs6AOozJNARdbyUO/yqUnqNNygWuT +4htFDEuLPIJwAbMSD0BvFW6YQaPdxzaAZm3EWVNbwDzjgbBUdBiUUwRdZIFUhsjJ +dirFdy5+uuZru6y6CNC1OERkJ7P8EyoFiZckAIE5gshVZzNuyLOZjc5DhWBvLbX4 +NZElAnfiv+4nA6y8wQLSIbmHA3nqJaBklj85AAYptCVSU0EgMjA0OCBFbmMgPHJz +YTIwNDhlbmNAZXhhbXBsZS5vcmc+iQE0BBMBAgAeBQJC69ptAhsDBgsJCAcDAgMV +AgMDFgIBAh4BAheAAAoJEMiZ6pNEGVVZHMkIAJtGHHZ9iM8Yq1rr0zl1L6SvlQP8 +JCaxHa31wH3PKqGtq2M+cpb2rXf7gAY/doHJPXggfVzkyFrysmQ1gPbDGYLyOutw ++IkhihEb5bWxQBNj+3zAFs1YX6v2HXWbSUSmyY1V9/+NTtKk03olDc/swd3lXzku +UOhcgfpBgIt3Q+MpT6M2+OIF7lVfSb1rWdpwTfGhZzW9szQOeoS4gPvxCCRyuabQ +RJ6DWH61F8fFIDJg1z+A/Obx4fqX6GOA69RzgZ3oukFBIXxNwV9PZNnAmHtZVYO8 +0g/oVYBbuvOYedffDBeQarhERZ5W2TnIE+nqY61YOLBqosliygdZTXULzNi5AQsE +QuvaugEIAOuCJZdkzORA6e1lr81Lnr4JzMsVBFA+X/yIkBbV6qX/A4nVSLAZKNPX +z1YIrMTu+1rMIiy10IWbA6zgMTpzPhJRfgePONgdnCYyK5Ksh5/C5ntzKwwGwxfK +lAXIxJurCHXTbEa+YvPdn76vJ3HsXOXVEL+fLb4U3l3Ng87YM202Lh1Ha2MeS2zE +FZcAoKbFqAAjDLEai64SoOFh0W3CsD1DL4zmfp+YZrUPHTtZadsi53i4KKW/ws9U +rHlolqYNhYze/uRLyfnUx9PN4r/GhEzauyDMV0smo91uB3aewPft+eCpmeWnu0PF +JVK4xyRmhIq2rVCw16a1pBJirvGM+y0ABimJAR8EGAECAAkFAkLr2roCGwwACgkQ +yJnqk0QZVVku1wgAg1bLSjPkhw+ldG5HzumpqR84+JKyozdJaJzefu2+1iqYE0B0 +WLz2PJVIiK41xiEkKhBvTOQYuXmtWqAWXptD91P5SoXoNJWLQO3TNwarANhHxkWg +w/TOUxQqoctlRUej5NDD+4eW5G9lcS1FEGuKDWtX096u80vO+TbyJjvx2eVM1k+X +dmeYsGOiNgDimCreJGYc14G7eY9jt24gw10n1sMAKI1qm6lcoHqZ9OOyla+wJdro +PYZGO7R8+1O9R22WrK6BYDT5j/1JwMZqbOESjNvDEVT0yOHClCHRN4CChbt6LhKh +CLUNdz/udIt0JAC6c/HdPLSW3HnmM3+iNj+Kug== +=pwU2 +-----END PGP PUBLIC KEY BLOCK----- +', ' +-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.1 (GNU/Linux) + +lQOWBELr2m0BCADOrnknlnXI0EzRExf/TgoHvK7Xx/E0keWqV3KrOyC3/tY2KOrj +UVxaAX5pkFX9wdQObGPIJm06u6D16CH6CildX/vxG7YgvvKzK8JGAbwrXAfk7OIW +czO2zRaZGDynoK3mAxHRBReyTKtNv8rDQhuZs6AOozJNARdbyUO/yqUnqNNygWuT +4htFDEuLPIJwAbMSD0BvFW6YQaPdxzaAZm3EWVNbwDzjgbBUdBiUUwRdZIFUhsjJ +dirFdy5+uuZru6y6CNC1OERkJ7P8EyoFiZckAIE5gshVZzNuyLOZjc5DhWBvLbX4 +NZElAnfiv+4nA6y8wQLSIbmHA3nqJaBklj85AAYpAAf9GuKpxrXp267eSPw9ZeSw +Ik6ob1I0MHbhhHeaXQnF0SuOViJ1+Bs74hUB3/F5fqrnjVLIS/ysYzegYpbpXOIa +MZwYcp2e+dpmVb7tkGQgzXH0igGtBQBqoSUVq9mG2XKPVh2JmiYgOH6GrHSGmnCq +GCgEK4ezSomB/3OtPFSjAxOlSw6dXSkapSxW3pEGvCdaWd9p8yl4rSpGsZEErPPL +uSbZZrHtWfgq5UXdPeE1UnMlBcvSruvpN4qgWMgSMs4d2lXvzXJLcht/nryP+atT +H1gwnRmlDCVv5BeJepKo3ORJDvcPlXkJPhqS9If3BhTqt6QgQEFI4aIYYZOZpZoi +2QQA2Zckzktmsc1MS04zS9gm1CbxM9d2KK8EOlh7fycRQhYYqqavhTBH2MgEp+Dd +ZtuEN5saNDe9x/fwi2ok1Bq6luGMWPZU/nZe7fxadzwfliy/qPzStWFW3vY9mMLu +6uEqgjin/lf4YrAswXDZaEc5e4GuNgGfwr27hpjxE1jg3PsEAPMqXEOMT2yh+yRu +DlLRbFhYOI4aUHY2CGoQQONnwv2O5gFvmOcPlg3J5lvnwlOYCx0c3bDxAtHyjPJq +FAZqcJBaB9RDhKHwlWDrbx/6FPH2SuKE+u4msIhPFin4V3FAP+yTem/TKrdnaWy6 +EUrhCWTXVRTijBaCudfjFd/ipHZbA/0dv7UAcoWK6kiVLzyE+jOvtN+ZxTzxq7CW +mlFPgAC966hgJmz9IXqadtMgPAoL3PK9q1DbPM3JhsQcJrNzTJqZrdN1/kPU0HHa ++aof1BVy3wSvp2mXgaRUULStyhUIyBRM6hAYp3/MoWEYn/bwr+zQkIU8Zsk6OsZ6 +q1xE3cowrUWFtCVSU0EgMjA0OCBFbmMgPHJzYTIwNDhlbmNAZXhhbXBsZS5vcmc+ +iQE0BBMBAgAeBQJC69ptAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEMiZ6pNE +GVVZHMkIAJtGHHZ9iM8Yq1rr0zl1L6SvlQP8JCaxHa31wH3PKqGtq2M+cpb2rXf7 +gAY/doHJPXggfVzkyFrysmQ1gPbDGYLyOutw+IkhihEb5bWxQBNj+3zAFs1YX6v2 +HXWbSUSmyY1V9/+NTtKk03olDc/swd3lXzkuUOhcgfpBgIt3Q+MpT6M2+OIF7lVf +Sb1rWdpwTfGhZzW9szQOeoS4gPvxCCRyuabQRJ6DWH61F8fFIDJg1z+A/Obx4fqX +6GOA69RzgZ3oukFBIXxNwV9PZNnAmHtZVYO80g/oVYBbuvOYedffDBeQarhERZ5W +2TnIE+nqY61YOLBqosliygdZTXULzNidA5YEQuvaugEIAOuCJZdkzORA6e1lr81L +nr4JzMsVBFA+X/yIkBbV6qX/A4nVSLAZKNPXz1YIrMTu+1rMIiy10IWbA6zgMTpz +PhJRfgePONgdnCYyK5Ksh5/C5ntzKwwGwxfKlAXIxJurCHXTbEa+YvPdn76vJ3Hs +XOXVEL+fLb4U3l3Ng87YM202Lh1Ha2MeS2zEFZcAoKbFqAAjDLEai64SoOFh0W3C +sD1DL4zmfp+YZrUPHTtZadsi53i4KKW/ws9UrHlolqYNhYze/uRLyfnUx9PN4r/G +hEzauyDMV0smo91uB3aewPft+eCpmeWnu0PFJVK4xyRmhIq2rVCw16a1pBJirvGM ++y0ABikAB/oC3z7lv6sVg+ngjbpWy9lZu2/ECZ9FqViVz7bUkjfvSuowgpncryLW +4EpVV4U6mMSgU6kAi5VGT/BvYGSAtnqDWGiPs7Kk+h4Adz74bEAXzU280pNBtSfX +tGvzlS4a376KzYFSCJDRBdMebEhJMbY0wQmR8lTZu5JSUI4YYEuN0c7ckdsw8w42 +QWTLonG8HC6h8UPKS0EAcaCo7tFubMIesU6cWuTYucsHE+wjbADjuSNX968qczNe +NoL2BUznXOQoPu6HQO4/8cr7ib+VQkB2bHQcMoZazPUStIID1e4CL4XcxfuAmT8o +3XDvMLgVqNp5W2f8Mzmk3/DbtsLXLOv5BADsCzQpseC8ikSYJC72hcon1wlUmGeH +3qgGiiHhYXFa18xgI5juoO8DaWno0rPPlgr36Y8mSB5qjYHMXwjKnKyUmt11H+hU ++6uk4hq3Rjd8l+vfuOSr1xoTrtBUg9Rwfw6JVo0DC+8CWg4oBWsLXVM6KQXPFdJs +8kyFQplR/iP1XQQA/2tbDANjAYGNNDjJO9/0kEnSAUyYMasFJDrA2q17J5CroVQw +QpMmWwdDkRANUVPKnWHS5sS65BRc7UytKe2f3A3ZInGXJIK2Hl+TzapWYcYxql+4 +ol5mEDDMDbhEE8Wmj9KyB6iifdLI0K+yxNb9T4Jpj3J18+St+G8+9AcFcBEEAM1b +M9C+/05cnV8gjcByqH9M9ypo8fzPvMKVXWwCLQXpaL50QIkzLURkiMoEWrCdELaA +sVPotRzePTIQ1ooLeDxd1gRnDqjZiIR0kwmv6vq8tfzY96O2ZbGWFI5eth89aWEJ +WB8AR3zYcXpwJLwPuhXW2/NlZF0bclJ3jNzAfTIeQmeJAR8EGAECAAkFAkLr2roC +GwwACgkQyJnqk0QZVVku1wgAg1bLSjPkhw+ldG5HzumpqR84+JKyozdJaJzefu2+ +1iqYE0B0WLz2PJVIiK41xiEkKhBvTOQYuXmtWqAWXptD91P5SoXoNJWLQO3TNwar +ANhHxkWgw/TOUxQqoctlRUej5NDD+4eW5G9lcS1FEGuKDWtX096u80vO+TbyJjvx +2eVM1k+XdmeYsGOiNgDimCreJGYc14G7eY9jt24gw10n1sMAKI1qm6lcoHqZ9OOy +la+wJdroPYZGO7R8+1O9R22WrK6BYDT5j/1JwMZqbOESjNvDEVT0yOHClCHRN4CC +hbt6LhKhCLUNdz/udIt0JAC6c/HdPLSW3HnmM3+iNj+Kug== +=UKh3 +-----END PGP PRIVATE KEY BLOCK----- +'); +insert into keytbl (id, name, pubkey, seckey) +values (7, 'rsaenc2048-psw', ' +same key with password +', ' +-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.11 (GNU/Linux) + +lQPEBELr2m0BCADOrnknlnXI0EzRExf/TgoHvK7Xx/E0keWqV3KrOyC3/tY2KOrj +UVxaAX5pkFX9wdQObGPIJm06u6D16CH6CildX/vxG7YgvvKzK8JGAbwrXAfk7OIW +czO2zRaZGDynoK3mAxHRBReyTKtNv8rDQhuZs6AOozJNARdbyUO/yqUnqNNygWuT +4htFDEuLPIJwAbMSD0BvFW6YQaPdxzaAZm3EWVNbwDzjgbBUdBiUUwRdZIFUhsjJ +dirFdy5+uuZru6y6CNC1OERkJ7P8EyoFiZckAIE5gshVZzNuyLOZjc5DhWBvLbX4 +NZElAnfiv+4nA6y8wQLSIbmHA3nqJaBklj85AAYp/gcDCNnoEKwFo86JYCE1J92R +HRQ7DoyAZpW1O0dTXL8Epk0sKsKDrCJOrIkDymsjfyBexADIeqOkioy/50wD2Mku +CVHKWO2duAiJN5t/FoRgpR1/Q11K6QdfqOG0HxwfIXLcPv7eSIso8kWorj+I01BP +Fn/atGEbIjdWaz/q2XHbu0Q3x6Et2gIsbLRVMhiYz1UG9uzGJ0TYCdBa2SFhs184 +52akMpD+XVdM0Sq9/Cx40Seo8hzERB96+GXnQ48q2OhlvcEXiFyD6M6wYCWbEV+6 +XQVMymbl22FPP/bD9ReQX2kjrkQlFAtmhr+0y8reMCbcxwLuQfA3173lSPo7jrbH +oLrGhkRpqd2bYCelqdy/XMmRFso0+7uytHfTFrUNfDWfmHVrygoVrNnarCbxMMI0 +I8Q+tKHMThWgf0rIOSh0+w38kOXFCEqEWF8YkAqCrMZIlJIed78rOCFgG4aHajZR +D8rpXdUOIr/WeUddK25Tu8IuNJb0kFf12IMgNh0nS+mzlqWiofS5kA0TeB8wBV6t +RotaeyDNSsMoowfN8cf1yHMTxli+K1Tasg003WVUoWgUc+EsJ5+KTNwaX5uGv0Cs +j6dg6/FVeVRL9UsyF+2kt7euX3mABuUtcVGx/ZKTq/MNGEh6/r3B5U37qt+FDRbw +ppKPc2AP+yBUWsQskyrxFgv4eSpcLEg+lgdz/zLyG4qW4lrFUoO790Cm/J6C7/WQ +Z+E8kcS8aINJkg1skahH31d59ZkbW9PVeJMFGzNb0Z2LowngNP/BMrJ0LT2CQyLs +UxbT16S/gwAyUpJnbhWYr3nDdlwtC0rVopVTPD7khPRppcsq1f8D70rdIxI4Ouuw +vbjNZ1EWRJ9f2Ywb++k/xgSXwJkGodUlrUr+3i8cv8mPx+fWvif9q7Y5Ex1wCRa8 +8FAj/o+hEbQlUlNBIDIwNDggRW5jIDxyc2EyMDQ4ZW5jQGV4YW1wbGUub3JnPokB +NAQTAQIAHgUCQuvabQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRDImeqTRBlV +WRzJCACbRhx2fYjPGKta69M5dS+kr5UD/CQmsR2t9cB9zyqhratjPnKW9q13+4AG +P3aByT14IH1c5Mha8rJkNYD2wxmC8jrrcPiJIYoRG+W1sUATY/t8wBbNWF+r9h11 +m0lEpsmNVff/jU7SpNN6JQ3P7MHd5V85LlDoXIH6QYCLd0PjKU+jNvjiBe5VX0m9 +a1nacE3xoWc1vbM0DnqEuID78Qgkcrmm0ESeg1h+tRfHxSAyYNc/gPzm8eH6l+hj +gOvUc4Gd6LpBQSF8TcFfT2TZwJh7WVWDvNIP6FWAW7rzmHnX3wwXkGq4REWeVtk5 +yBPp6mOtWDiwaqLJYsoHWU11C8zYnQPEBELr2roBCADrgiWXZMzkQOntZa/NS56+ +CczLFQRQPl/8iJAW1eql/wOJ1UiwGSjT189WCKzE7vtazCIstdCFmwOs4DE6cz4S +UX4HjzjYHZwmMiuSrIefwuZ7cysMBsMXypQFyMSbqwh102xGvmLz3Z++rydx7Fzl +1RC/ny2+FN5dzYPO2DNtNi4dR2tjHktsxBWXAKCmxagAIwyxGouuEqDhYdFtwrA9 +Qy+M5n6fmGa1Dx07WWnbIud4uCilv8LPVKx5aJamDYWM3v7kS8n51MfTzeK/xoRM +2rsgzFdLJqPdbgd2nsD37fngqZnlp7tDxSVSuMckZoSKtq1QsNemtaQSYq7xjPst +AAYp/gcDCNnoEKwFo86JYAsxoD+wQ0zBi5RBM5EphXTpM1qKxmigsKOvBSaMmr0y +VjHtGY3poyV3t6VboOGCsFcaKm0tIdDL7vrxxwyYESETpF29b7QrYcoaLKMG7fsy +t9SUI3UV2H9uUquHgqHtsqz0jYOgm9tYnpesgQ/kOAWI/tej1ZJXUIWEmZMH/W6d +ATNvZ3ivwApfC0qF5G3oPgBSoIuQ/8I+pN/kmuyNAnJWNgagFhA/2VFBvh5XgztV +NW7G//KpR1scsn140SO/wpGBM3Kr4m8ztl9w9U6a7NlQZ2ub3/pIUTpSzyLBxJZ/ +RfuZI7ROdgDMKmEgCYrN2kfp0LIxnYL6ZJu3FDcS4V098lyf5rHvB3PAEdL6Zyhd +qYp3Sx68r0F4vzk5iAIWf6pG2YdfoP2Z48Pmq9xW8qD9iwFcoz9oAzDEMENn6dfq +6MzfoaXEoYp8cR/o+aeEaGUtYBHiaxQcJYx35B9IhsXXA49yRORK8qdwhSHxB3NQ +H3pUWkfw368f/A207hQVs9yYXlEvMZikxl58gldCd3BAPqHm/XzgknRRNQZBPPKJ +BMZebZ22Dm0qDuIqW4GXLB4sLf0+UXydVINIUOlzg+S4jrwx7eZqb6UkRXTIWVo5 +psTsD14wzWBRdUQHZOZD33+M8ugmewvLY/0Uix+2RorkmB7/jqoZvx/MehDwmCZd +VH8sb2wpZ55sj7gCXxvrfieQD/VeH54OwjjbtK56iYq56RVD0h1az8xDY2GZXeT7 +J0c3BGpuoca5xOFWr1SylAr/miEPxOBfnfk8oZQJvZrjSBGjsTbALep2vDJk8ROD +sdQCJuU1RHDrwKHlbUL0NbGRO2juJGsatdWnuVKsFbaFW2pHHkezKuwOcaAJv7Xt +8LRF17czAJ1uaLKwV8Paqx6UIv+089GbWZi7HIkBHwQYAQIACQUCQuvaugIbDAAK +CRDImeqTRBlVWS7XCACDVstKM+SHD6V0bkfO6ampHzj4krKjN0lonN5+7b7WKpgT +QHRYvPY8lUiIrjXGISQqEG9M5Bi5ea1aoBZem0P3U/lKheg0lYtA7dM3BqsA2EfG +RaDD9M5TFCqhy2VFR6Pk0MP7h5bkb2VxLUUQa4oNa1fT3q7zS875NvImO/HZ5UzW +T5d2Z5iwY6I2AOKYKt4kZhzXgbt5j2O3biDDXSfWwwAojWqbqVygepn047KVr7Al +2ug9hkY7tHz7U71HbZasroFgNPmP/UnAxmps4RKM28MRVPTI4cKUIdE3gIKFu3ou +EqEItQ13P+50i3QkALpz8d08tJbceeYzf6I2P4q6 +=QFm5 +-----END PGP PRIVATE KEY BLOCK----- +'); +-- elg1024 / aes128 +insert into encdata (id, data) values (1, ' +-----BEGIN PGP MESSAGE----- +Version: GnuPG v1.4.1 (GNU/Linux) + +hQEOA9k2z2S7c/RmEAQAgVWW0DeLrZ+1thWJGBPp2WRFL9HeNqqWHbKJCXJbz1Uy +faUY7yxVvG5Eutmo+JMiY3mg23/DgVVXHQZsTWpGvGM6djgUNGKUjZDbW6Nog7Mr +e78IywattCOmgUP9vIwwg3OVjuDCN/nVirGQFnXpJBc8DzWqDMWRWDy1M0ZsK7AD +/2JTosSFxUdpON0DKtIY3GLzmh6Nk3iV0g8VgJKUBT1rhCXuMDj3snm//EMm7hTY +PlnObq4mIhgz8NqprmhooxnU0Kapofb3P3wCHPpU14zxhXY8iKO/3JhBq2uFcx4X +uBMwkW4AdNxY/mzJZELteTL8Tr0s7PISk+owb4URpG3n0jsBc0CVULxrjh5Ejkdw +wCM195J6+KbQxOOFQ0b3uOVvv4dEgd/hRERCOq5EPaFhlHegyYJ7YO842vnSDA== +=PABx +-----END PGP MESSAGE----- +'); +-- elg2048 / blowfish +insert into encdata (id, data) values (2, ' +-----BEGIN PGP MESSAGE----- +Version: GnuPG v1.4.1 (GNU/Linux) + +hQIOAywibh/+XMfUEAf+OINhBngEsw4a/IJIeJvUgv1gTQzBwOdQEuc/runr4Oa8 +Skw/Bj0X/zgABVZLem1a35NHaNwaQaCFwMQ41YyWCu+jTdsiyX/Nw0w8LKKz0rNC +vVpG6YuV7Turtsf8a5lXy1K0SHkLlgxQ6c76GS4gtSl5+bsL2+5R1gSRJ9NXqCQP +OHRipEiYwBPqr5R21ZG0FXXNKGOGkj6jt/M/wh3WVtAhYuBI+HPKRfAEjd/Pu/eD +e1zYtkH1dKKFmp44+nF0tTI274xpuso7ShfKYrOK3saFWrl0DWiWteUinjSA1YBY +m7dG7NZ8PW+g1SZWhEoPjEEEHz3kWMvlKheMRDudnQf/dDyX6kZVIAQF/5B012hq +QyVewgTGysowFIDn01uIewoEA9cASw699jw9IoJp+k5WZXnU+INllBLzQxniQCSu +iEcr0x3fYqNtj9QBfbIqyRcY6HTWcmzyOUeGaSyX76j+tRAvtVtXpraFFFnaHB70 +YpXTjLkp8EBafzMghFaKDeXlr2TG/T7rbwcwWrFIwPqEAUKWN5m97Q3eyo8/ioMd +YoFD64J9ovSsgbuU5IpIGAsjxK+NKzg/2STH7zZFEVCtgcIXsTHTZfiwS98/+1H9 +p1DIDaXIcUFV2ztmcKxh9gt2sXRz1W+x6D8O0k3nanU5yGG4miLKaq18fbcA0BD1 ++NIzAfelq6nvvxYKcGcamBMgLo5JkZOBHvyr6RsAKIT5QYc0QTjysTk9l0Am3gYc +G2pAE+3k +=TBHV +-----END PGP MESSAGE----- +'); +-- elg4096 / aes256 +insert into encdata (id, data) values (3, ' +-----BEGIN PGP MESSAGE----- +Version: GnuPG v1.4.1 (GNU/Linux) + +hQQOA7aFBP0Sjh/5EA/+JCgncc8IZmmRjPStWnGf9tVJhgHTn+smIclibGzs0deS +SPSCitzpblwbUDvu964+/5e5Q1l7rRuNN+AgETlEd4eppv7Swn2ChdgOXxRwukcT +Nh3G+PTFvD4ayi7w1db3qvXIt0MwN4Alt436wJmK1oz2Ka9IcyO+wHWrDy1nSGSx +z5x7YEj+EZPgWc/YAvudqE8Jpzd/OT5zSHN09UFkIAk6NxisKaIstbEGFgpqtoDZ +1SJM84XAdL2IcaJ3YY7k/yzwlawhsakKd4GSd5vWmAwvyzzbSiBMfKsDE16ePLNU +ZBF7CzmlCBPZ7YrFAHLpXBXXkCQvzD2BEYOjse50ZEfJ036T7950Ozcdy1EQbGon +nyQ4Gh0PBpnMcBuiXOceWuYzhlzFOzDtlVKdNTxFRDcbEyW2jo9xQYvCCLnYy8EH +2M7S8jCtVYJBbn63a82ELv+3+kWYcsvBJv2ZVBh4ncrBu9o0P+OYS7ApoOU+j6p2 ++t0RXHksqXS1YiUwYF5KSw09EbYMgNZ9G04Px/PxLU6fSC9iDrGX7Xt3kOUP0mku +C518fPckT0zzRXqfFruJNRzDytW50KxkOQZzU1/Az1YlYN9QzWeU4EtLPb2fftZo +D0qH/ln+f9Op5t6sD2fcxZVECU1b/bFtZsxvwH406YL+UQ7hU/XnZrzVVzODal8P +/j1hg7v7BdJqu1DTp9nFWUuwMFcYAczuXn29IG183NZ7Ts4whDeYEhS8eNoLPX4j +txY12ILD/w/3Q4LoW/hPa6OdfEzsn0U5GLf1WiGmJE1H6ft2U/xUnerc/u0kt+FU +WAisArd4MuKtf7B5Vu/VF3kUdrR0hTniUKUivmC4o1jSId31Dufxj4aadVyldXAr +6TNBcdyragZjxEZ6hsBCYzA0Rd1a8atd6OaQoIEEfAzCu5Ks29pydHErStYGjWJ1 +KA5KPLVvjbHpDmRhlCcm8vgpYQsBYEB5gE9fx5yCTlsVhCB6y23h7hfdMqerDqkO +ZOPsO5h+tiHCdIrQ36sMjuINy1/K2rYcXd+Crh2iHcfidpU9fvDz2ihTRNQlhjuT +0cQZM5JhctEx4VXF4LDctRhit7Hn0iqsk604woQfJVvP8O673xSXT/kBY0A/v9C0 +3C4YoFNeSaKwbfZQ/4u1ZFPJxK2IIJa8UGpyAUewLMlzGVVagljybv/f4Z9ERAhy +huq5sMmw8UPsrJF2TUGHz5WSIwoh0J/qovoQI09I9sdEnFczDvRavMO2Mldy3E5i +exz9oewtel6GOmsZQSYWT/vJzbYMmvHNmNpVwwoKrLV6oI3kyQ80GHBwI1WlwHoK +2iRB0w8q4VVvJeYAz8ZIp380cqC3pfO0uZsrOx4g3k4X0jsB5y7rF5xXcZfnVbvG +DYKcOy60/OHMWVvpw6trAoA+iP+cVWPtrbRvLglTVTfYmi1ToZDDipkALBhndQ== +=L/M/ +-----END PGP MESSAGE----- +'); +-- rsaenc2048 / aes128 +insert into encdata (id, data) values (4, ' +-----BEGIN PGP MESSAGE----- +Version: GnuPG v1.4.1 (GNU/Linux) + +hQEMA/0CBsQJt0h1AQf+JyYnCiortj26P11zk28MKOGfWpWyAhuIgwbJXsdQ+e6r +pEyyqs9GC6gI7SNF6+J8B/gsMwvkAL4FHAQCvA4ZZ6eeXR1Of4YG22JQGmpWVWZg +DTyfhA2vkczuqfAD2tgUpMT6sdyGkQ/fnQ0lknlfHgC5GRx7aavOoAKtMqiZW5PR +yae/qR48mjX7Mb+mLvbagv9mHEgQSmHwFpaq2k456BbcZ23bvCmBnCvqV/90Ggfb +VP6gkSoFVsJ19RHsOhW1dk9ehbl51WB3zUOO5FZWwUTY9DJvKblRK/frF0+CXjE4 +HfcZXHSpSjx4haGGTsMvEJ85qFjZpr0eTGOdY5cFhNJAAVP8MZfji7OhPRAoOOIK +eRGOCkao12pvPyFTFnPd5vqmyBbdNpK4Q0hS82ljugMJvM0p3vJZVzW402Kz6iBL +GQ== +=XHkF +-----END PGP MESSAGE----- +'); +-- rsaenc2048 / aes128 (not from gnupg) +insert into encdata (id, data) values (5, ' +-----BEGIN PGP MESSAGE----- + +wcBMA/0CBsQJt0h1AQgAzxZ8j+OTeZ8IlLxfZ/mVd28/gUsCY+xigWBk/anZlK3T +p2tNU2idHzKdAttH2Hu/PWbZp4kwjl9spezYxMqCeBZqtfGED88Y+rqK0n/ul30A +7jjFHaw0XUOqFNlST1v6H2i7UXndnp+kcLfHPhnO5BIYWxB2CYBehItqtrn75eqr +C7trGzU/cr74efcWagbCDSNjiAV7GlEptlzmgVMmNikyI6w0ojEUx8lCLc/OsFz9 +pJUAX8xuwjxDVv+W7xk6c96grQiQlm+FLDYGiGNXoAzx3Wi/howu3uV40dXfY+jx +3WBrhEew5Pkpt1SsWoFnJWOfJ8GLd0ec8vfRCqAIVdLgAeS7NyawQYtd6wuVrEAj +5SMg4Thb4d+g45RksuGLHUUr4qO9tiXglODa4InhmJfgNuLk+RGz4LXjq8wepEmW +vRbgFOG54+Cf4C/gC+HkreDm5JKSKjvvw4B/jC6CDxq+JoziEe2Z1uEjCuEcr+Es +/eGzeOi36BejXPMHeKxXejj5qBBHKV0pHVhZSgffR0TtlXdB967Yl/5agV0R89hI +7Gw52emfnH4Z0Y4V0au2H0k1dR/2IxXdJEWSTG7Be1JHT59p9ei2gSEOrdBMIOjP +tbYYUlmmbvD49bHfThkDiC+oc9947LgQsk3kOOLbNHcjkbrjH8R5kjII4m/SEZA1 +g09T+338SzevBcVXh/cFrQ6/Et+lyyO2LJRUMs69g/HyzJOVWT2Iu8E0eS9MWevY +Qtrkrhrpkl3Y02qEp/j6M03Yu2t6ZF7dp51aJ5VhO2mmmtHaTnCyCc8Fcf72LmD8 +blH2nKZC9d6fi4YzSYMepZpMOFR65M80MCMiDUGnZBB8sEADu2/iVtqDUeG8mAA= +=PHJ1 +-----END PGP MESSAGE----- +'); +-- successful decrypt +select pgp_pub_decrypt(dearmor(data), dearmor(seckey)) +from keytbl, encdata where keytbl.id=1 and encdata.id=1; + pgp_pub_decrypt +----------------- + Secret msg +(1 row) + +select pgp_pub_decrypt(dearmor(data), dearmor(seckey)) +from keytbl, encdata where keytbl.id=2 and encdata.id=2; +ERROR: Wrong key or corrupt data +select pgp_pub_decrypt(dearmor(data), dearmor(seckey)) +from keytbl, encdata where keytbl.id=3 and encdata.id=3; + pgp_pub_decrypt +----------------- + Secret msg +(1 row) + +select pgp_pub_decrypt(dearmor(data), dearmor(seckey)) +from keytbl, encdata where keytbl.id=6 and encdata.id=4; + pgp_pub_decrypt +----------------- + Secret message. +(1 row) + +-- wrong key +select pgp_pub_decrypt(dearmor(data), dearmor(seckey)) +from keytbl, encdata where keytbl.id=2 and encdata.id=1; +ERROR: Wrong key +-- sign-only key +select pgp_pub_decrypt(dearmor(data), dearmor(seckey)) +from keytbl, encdata where keytbl.id=4 and encdata.id=1; +ERROR: No encryption key found +-- rsa: password-protected secret key, wrong password +select pgp_pub_decrypt(dearmor(data), dearmor(seckey), '123') +from keytbl, encdata where keytbl.id=7 and encdata.id=4; +ERROR: Wrong key or corrupt data +-- rsa: password-protected secret key, right password +select pgp_pub_decrypt(dearmor(data), dearmor(seckey), 'parool') +from keytbl, encdata where keytbl.id=7 and encdata.id=4; + pgp_pub_decrypt +----------------- + Secret message. +(1 row) + +-- password-protected secret key, no password +select pgp_pub_decrypt(dearmor(data), dearmor(seckey)) +from keytbl, encdata where keytbl.id=5 and encdata.id=1; +ERROR: Need password for secret key +-- password-protected secret key, wrong password +select pgp_pub_decrypt(dearmor(data), dearmor(seckey), 'foo') +from keytbl, encdata where keytbl.id=5 and encdata.id=1; +ERROR: Wrong key or corrupt data +-- password-protected secret key, right password +select pgp_pub_decrypt(dearmor(data), dearmor(seckey), 'parool') +from keytbl, encdata where keytbl.id=5 and encdata.id=1; + pgp_pub_decrypt +----------------- + Secret msg +(1 row) + +-- test for a short read from prefix_init +select pgp_pub_decrypt(dearmor(data), dearmor(seckey)) +from keytbl, encdata where keytbl.id=6 and encdata.id=5; +ERROR: Wrong key or corrupt data diff -Nru postgresql-13-13.4/contrib/pgcrypto/openssl.c postgresql-13-13.7/contrib/pgcrypto/openssl.c --- postgresql-13-13.4/contrib/pgcrypto/openssl.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pgcrypto/openssl.c 2022-05-09 21:16:30.000000000 +0000 @@ -379,6 +379,8 @@ { if (!EVP_DecryptInit_ex(od->evp_ctx, od->evp_ciph, NULL, NULL, NULL)) return PXE_CIPHER_INIT; + if (!EVP_CIPHER_CTX_set_padding(od->evp_ctx, 0)) + return PXE_CIPHER_INIT; if (!EVP_CIPHER_CTX_set_key_length(od->evp_ctx, od->klen)) return PXE_CIPHER_INIT; if (!EVP_DecryptInit_ex(od->evp_ctx, NULL, NULL, od->key, od->iv)) @@ -403,6 +405,8 @@ { if (!EVP_EncryptInit_ex(od->evp_ctx, od->evp_ciph, NULL, NULL, NULL)) return PXE_CIPHER_INIT; + if (!EVP_CIPHER_CTX_set_padding(od->evp_ctx, 0)) + return PXE_CIPHER_INIT; if (!EVP_CIPHER_CTX_set_key_length(od->evp_ctx, od->klen)) return PXE_CIPHER_INIT; if (!EVP_EncryptInit_ex(od->evp_ctx, NULL, NULL, od->key, od->iv)) diff -Nru postgresql-13-13.4/contrib/pgcrypto/px.c postgresql-13-13.7/contrib/pgcrypto/px.c --- postgresql-13-13.4/contrib/pgcrypto/px.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pgcrypto/px.c 2022-05-09 21:16:30.000000000 +0000 @@ -200,7 +200,7 @@ memset(ivbuf, 0, ivs); if (ivlen > ivs) memcpy(ivbuf, iv, ivs); - else + else if (ivlen > 0) memcpy(ivbuf, iv, ivlen); } @@ -292,6 +292,7 @@ combo_decrypt(PX_Combo *cx, const uint8 *data, unsigned dlen, uint8 *res, unsigned *rlen) { + int err = 0; unsigned bs, i, pad; @@ -317,7 +318,9 @@ /* decrypt */ *rlen = dlen; - px_cipher_decrypt(c, data, dlen, res); + err = px_cipher_decrypt(c, data, dlen, res); + if (err) + return err; /* unpad */ if (bs > 1 && cx->padding) diff -Nru postgresql-13-13.4/contrib/pg_stat_statements/pg_stat_statements.c postgresql-13-13.7/contrib/pg_stat_statements/pg_stat_statements.c --- postgresql-13-13.4/contrib/pg_stat_statements/pg_stat_statements.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pg_stat_statements/pg_stat_statements.c 2022-05-09 21:16:30.000000000 +0000 @@ -2114,6 +2114,7 @@ char *buf; int fd; struct stat stat; + Size nread; fd = OpenTransientFile(PGSS_TEXT_FILE, O_RDONLY | PG_BINARY); if (fd < 0) @@ -2154,23 +2155,35 @@ } /* - * OK, slurp in the file. If we get a short read and errno doesn't get - * set, the reason is probably that garbage collection truncated the file - * since we did the fstat(), so we don't log a complaint --- but we don't - * return the data, either, since it's most likely corrupt due to - * concurrent writes from garbage collection. + * OK, slurp in the file. Windows fails if we try to read more than + * INT_MAX bytes at once, and other platforms might not like that either, + * so read a very large file in 1GB segments. */ - errno = 0; - if (read(fd, buf, stat.st_size) != stat.st_size) + nread = 0; + while (nread < stat.st_size) { - if (errno) - ereport(LOG, - (errcode_for_file_access(), - errmsg("could not read file \"%s\": %m", - PGSS_TEXT_FILE))); - free(buf); - CloseTransientFile(fd); - return NULL; + int toread = Min(1024 * 1024 * 1024, stat.st_size - nread); + + /* + * If we get a short read and errno doesn't get set, the reason is + * probably that garbage collection truncated the file since we did + * the fstat(), so we don't log a complaint --- but we don't return + * the data, either, since it's most likely corrupt due to concurrent + * writes from garbage collection. + */ + errno = 0; + if (read(fd, buf + nread, toread) != toread) + { + if (errno) + ereport(LOG, + (errcode_for_file_access(), + errmsg("could not read file \"%s\": %m", + PGSS_TEXT_FILE))); + free(buf); + CloseTransientFile(fd); + return NULL; + } + nread += toread; } if (CloseTransientFile(fd) != 0) @@ -2178,7 +2191,7 @@ (errcode_for_file_access(), errmsg("could not close file \"%s\": %m", PGSS_TEXT_FILE))); - *buffer_size = stat.st_size; + *buffer_size = nread; return buf; } diff -Nru postgresql-13-13.4/contrib/pg_trgm/trgm_regexp.c postgresql-13-13.7/contrib/pg_trgm/trgm_regexp.c --- postgresql-13-13.4/contrib/pg_trgm/trgm_regexp.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/pg_trgm/trgm_regexp.c 2022-05-09 21:16:30.000000000 +0000 @@ -904,6 +904,7 @@ HASHCTL hashCtl; TrgmStateKey initkey; TrgmState *initstate; + ListCell *lc; /* Initialize this stage's workspace in trgmNFA struct */ trgmNFA->queue = NIL; @@ -934,12 +935,13 @@ /* * Recursively build the expanded graph by processing queue of states * (breadth-first search). getState already put initstate in the queue. + * Note that getState will append new states to the queue within the loop, + * too; this works as long as we don't do repeat fetches using the "lc" + * pointer. */ - while (trgmNFA->queue != NIL) + foreach(lc, trgmNFA->queue) { - TrgmState *state = (TrgmState *) linitial(trgmNFA->queue); - - trgmNFA->queue = list_delete_first(trgmNFA->queue); + TrgmState *state = (TrgmState *) lfirst(lc); /* * If we overflowed then just mark state as final. Otherwise do @@ -963,22 +965,29 @@ static void processState(TrgmNFA *trgmNFA, TrgmState *state) { + ListCell *lc; + /* keysQueue should be NIL already, but make sure */ trgmNFA->keysQueue = NIL; /* * Add state's own key, and then process all keys added to keysQueue until - * queue is empty. But we can quit if the state gets marked final. + * queue is finished. But we can quit if the state gets marked final. */ addKey(trgmNFA, state, &state->stateKey); - while (trgmNFA->keysQueue != NIL && !(state->flags & TSTATE_FIN)) + foreach(lc, trgmNFA->keysQueue) { - TrgmStateKey *key = (TrgmStateKey *) linitial(trgmNFA->keysQueue); + TrgmStateKey *key = (TrgmStateKey *) lfirst(lc); - trgmNFA->keysQueue = list_delete_first(trgmNFA->keysQueue); + if (state->flags & TSTATE_FIN) + break; addKey(trgmNFA, state, key); } + /* Release keysQueue to clean up for next cycle */ + list_free(trgmNFA->keysQueue); + trgmNFA->keysQueue = NIL; + /* * Add outgoing arcs only if state isn't final (we have no interest in * outgoing arcs if we already match) diff -Nru postgresql-13-13.4/contrib/postgres_fdw/connection.c postgresql-13-13.7/contrib/postgres_fdw/connection.c --- postgresql-13-13.4/contrib/postgres_fdw/connection.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/postgres_fdw/connection.c 2022-05-09 21:16:30.000000000 +0000 @@ -685,7 +685,8 @@ ereport(elevel, (errcode(sqlstate), - message_primary ? errmsg_internal("%s", message_primary) : + (message_primary != NULL && message_primary[0] != '\0') ? + errmsg_internal("%s", message_primary) : errmsg("could not obtain message string for remote error"), message_detail ? errdetail_internal("%s", message_detail) : 0, message_hint ? errhint("%s", message_hint) : 0, @@ -1096,6 +1097,11 @@ * Cancel the currently-in-progress query (whose query text we do not have) * and ignore the result. Returns true if we successfully cancel the query * and discard any pending result, and false if not. + * + * It's not a huge problem if we throw an ERROR here, but if we get into error + * recursion trouble, we'll end up slamming the connection shut, which will + * necessitate failing the entire toplevel transaction even if subtransactions + * were used. Try to use WARNING where we can. */ static bool pgfdw_cancel_query(PGconn *conn) @@ -1143,6 +1149,11 @@ * If the query is executed successfully but returns an error, the return * value is true if and only if ignore_errors is set. If the query can't be * sent or times out, the return value is false. + * + * It's not a huge problem if we throw an ERROR here, but if we get into error + * recursion trouble, we'll end up slamming the connection shut, which will + * necessitate failing the entire toplevel transaction even if subtransactions + * were used. Try to use WARNING where we can. */ static bool pgfdw_exec_cleanup_query(PGconn *conn, const char *query, bool ignore_errors) @@ -1189,11 +1200,6 @@ * be a query that was initiated as part of transaction abort to get the remote * side back to the appropriate state. * - * It's not a huge problem if we throw an ERROR here, but if we get into error - * recursion trouble, we'll end up slamming the connection shut, which will - * necessitate failing the entire toplevel transaction even if subtransactions - * were used. Try to use WARNING where we can. - * * endtime is the time at which we should give up and assume the remote * side is dead. Returns true if the timeout expired, otherwise false. * Sets *result except in case of a timeout. diff -Nru postgresql-13-13.4/contrib/postgres_fdw/deparse.c postgresql-13-13.7/contrib/postgres_fdw/deparse.c --- postgresql-13-13.4/contrib/postgres_fdw/deparse.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/postgres_fdw/deparse.c 2022-05-09 21:16:30.000000000 +0000 @@ -40,6 +40,7 @@ #include "catalog/pg_collation.h" #include "catalog/pg_namespace.h" #include "catalog/pg_operator.h" +#include "catalog/pg_opfamily.h" #include "catalog/pg_proc.h" #include "catalog/pg_type.h" #include "commands/defrem.h" @@ -179,6 +180,8 @@ Index ignore_rel, List **ignore_conds, List **params_list); static void deparseAggref(Aggref *node, deparse_expr_cxt *context); static void appendGroupByClause(List *tlist, deparse_expr_cxt *context); +static void appendOrderBySuffix(Oid sortop, Oid sortcoltype, bool nulls_first, + deparse_expr_cxt *context); static void appendAggOrderBy(List *orderList, List *targetList, deparse_expr_cxt *context); static void appendFunctionName(Oid funcid, deparse_expr_cxt *context); @@ -905,6 +908,33 @@ } /* + * Returns true if it's safe to push down the sort expression described by + * 'pathkey' to the foreign server. + */ +bool +is_foreign_pathkey(PlannerInfo *root, + RelOptInfo *baserel, + PathKey *pathkey) +{ + EquivalenceClass *pathkey_ec = pathkey->pk_eclass; + PgFdwRelationInfo *fpinfo = (PgFdwRelationInfo *) baserel->fdw_private; + + /* + * is_foreign_expr would detect volatile expressions as well, but checking + * ec_has_volatile here saves some cycles. + */ + if (pathkey_ec->ec_has_volatile) + return false; + + /* can't push down the sort if the pathkey's opfamily is not shippable */ + if (!is_shippable(pathkey->pk_opfamily, OperatorFamilyRelationId, fpinfo)) + return false; + + /* can push if a suitable EC member exists */ + return (find_em_for_rel(root, pathkey_ec, baserel) != NULL); +} + +/* * Convert type OID + typmod info into a type name we can ship to the remote * server. Someplace else had better have verified that this type name is * expected to be known on the remote end. @@ -3070,44 +3100,59 @@ { SortGroupClause *srt = (SortGroupClause *) lfirst(lc); Node *sortexpr; - Oid sortcoltype; - TypeCacheEntry *typentry; if (!first) appendStringInfoString(buf, ", "); first = false; + /* Deparse the sort expression proper. */ sortexpr = deparseSortGroupClause(srt->tleSortGroupRef, targetList, false, context); - sortcoltype = exprType(sortexpr); - /* See whether operator is default < or > for datatype */ - typentry = lookup_type_cache(sortcoltype, - TYPECACHE_LT_OPR | TYPECACHE_GT_OPR); - if (srt->sortop == typentry->lt_opr) - appendStringInfoString(buf, " ASC"); - else if (srt->sortop == typentry->gt_opr) - appendStringInfoString(buf, " DESC"); - else - { - HeapTuple opertup; - Form_pg_operator operform; + /* Add decoration as needed. */ + appendOrderBySuffix(srt->sortop, exprType(sortexpr), srt->nulls_first, + context); + } +} - appendStringInfoString(buf, " USING "); +/* + * Append the ASC, DESC, USING and NULLS FIRST / NULLS LAST parts + * of an ORDER BY clause. + */ +static void +appendOrderBySuffix(Oid sortop, Oid sortcoltype, bool nulls_first, + deparse_expr_cxt *context) +{ + StringInfo buf = context->buf; + TypeCacheEntry *typentry; - /* Append operator name. */ - opertup = SearchSysCache1(OPEROID, ObjectIdGetDatum(srt->sortop)); - if (!HeapTupleIsValid(opertup)) - elog(ERROR, "cache lookup failed for operator %u", srt->sortop); - operform = (Form_pg_operator) GETSTRUCT(opertup); - deparseOperatorName(buf, operform); - ReleaseSysCache(opertup); - } + /* See whether operator is default < or > for sort expr's datatype. */ + typentry = lookup_type_cache(sortcoltype, + TYPECACHE_LT_OPR | TYPECACHE_GT_OPR); + + if (sortop == typentry->lt_opr) + appendStringInfoString(buf, " ASC"); + else if (sortop == typentry->gt_opr) + appendStringInfoString(buf, " DESC"); + else + { + HeapTuple opertup; + Form_pg_operator operform; - if (srt->nulls_first) - appendStringInfoString(buf, " NULLS FIRST"); - else - appendStringInfoString(buf, " NULLS LAST"); + appendStringInfoString(buf, " USING "); + + /* Append operator name. */ + opertup = SearchSysCache1(OPEROID, ObjectIdGetDatum(sortop)); + if (!HeapTupleIsValid(opertup)) + elog(ERROR, "cache lookup failed for operator %u", sortop); + operform = (Form_pg_operator) GETSTRUCT(opertup); + deparseOperatorName(buf, operform); + ReleaseSysCache(opertup); } + + if (nulls_first) + appendStringInfoString(buf, " NULLS FIRST"); + else + appendStringInfoString(buf, " NULLS LAST"); } /* @@ -3190,9 +3235,13 @@ } /* - * Deparse ORDER BY clause according to the given pathkeys for given base - * relation. From given pathkeys expressions belonging entirely to the given - * base relation are obtained and deparsed. + * Deparse ORDER BY clause defined by the given pathkeys. + * + * The clause should use Vars from context->scanrel if !has_final_sort, + * or from context->foreignrel's targetlist if has_final_sort. + * + * We find a suitable pathkey expression (some earlier step + * should have verified that there is one) and deparse it. */ static void appendOrderByClause(List *pathkeys, bool has_final_sort, @@ -3200,8 +3249,7 @@ { ListCell *lcell; int nestlevel; - char *delim = " "; - RelOptInfo *baserel = context->scanrel; + const char *delim = " "; StringInfo buf = context->buf; /* Make sure any constants in the exprs are printed portably */ @@ -3211,7 +3259,9 @@ foreach(lcell, pathkeys) { PathKey *pathkey = lfirst(lcell); + EquivalenceMember *em; Expr *em_expr; + Oid oprid; if (has_final_sort) { @@ -3219,26 +3269,48 @@ * By construction, context->foreignrel is the input relation to * the final sort. */ - em_expr = find_em_expr_for_input_target(context->root, - pathkey->pk_eclass, - context->foreignrel->reltarget); + em = find_em_for_rel_target(context->root, + pathkey->pk_eclass, + context->foreignrel); } else - em_expr = find_em_expr_for_rel(pathkey->pk_eclass, baserel); + em = find_em_for_rel(context->root, + pathkey->pk_eclass, + context->scanrel); + + /* + * We don't expect any error here; it would mean that shippability + * wasn't verified earlier. For the same reason, we don't recheck + * shippability of the sort operator. + */ + if (em == NULL) + elog(ERROR, "could not find pathkey item to sort"); - Assert(em_expr != NULL); + em_expr = em->em_expr; + + /* + * Lookup the operator corresponding to the strategy in the opclass. + * The datatype used by the opfamily is not necessarily the same as + * the expression type (for array types for example). + */ + oprid = get_opfamily_member(pathkey->pk_opfamily, + em->em_datatype, + em->em_datatype, + pathkey->pk_strategy); + if (!OidIsValid(oprid)) + elog(ERROR, "missing operator %d(%u,%u) in opfamily %u", + pathkey->pk_strategy, em->em_datatype, em->em_datatype, + pathkey->pk_opfamily); appendStringInfoString(buf, delim); deparseExpr(em_expr, context); - if (pathkey->pk_strategy == BTLessStrategyNumber) - appendStringInfoString(buf, " ASC"); - else - appendStringInfoString(buf, " DESC"); - if (pathkey->pk_nulls_first) - appendStringInfoString(buf, " NULLS FIRST"); - else - appendStringInfoString(buf, " NULLS LAST"); + /* + * Here we need to use the expression's actual type to discover + * whether the desired operator will be the default or not. + */ + appendOrderBySuffix(oprid, exprType((Node *) em_expr), + pathkey->pk_nulls_first, context); delim = ", "; } diff -Nru postgresql-13-13.4/contrib/postgres_fdw/expected/postgres_fdw.out postgresql-13-13.7/contrib/postgres_fdw/expected/postgres_fdw.out --- postgresql-13-13.4/contrib/postgres_fdw/expected/postgres_fdw.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/postgres_fdw/expected/postgres_fdw.out 2022-05-09 21:16:30.000000000 +0000 @@ -3160,6 +3160,19 @@ Remote SQL: SELECT "C 1", c2 FROM "S 1"."T 1" WHERE (("C 1" < 100)) AND ((c2 = 6)) (6 rows) +-- This should not be pushed either. +explain (verbose, costs off) +select * from ft2 order by c1 using operator(public.<^); + QUERY PLAN +------------------------------------------------------------------------------- + Sort + Output: c1, c2, c3, c4, c5, c6, c7, c8 + Sort Key: ft2.c1 USING <^ + -> Foreign Scan on public.ft2 + Output: c1, c2, c3, c4, c5, c6, c7, c8 + Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" +(6 rows) + -- Update local stats on ft2 ANALYZE ft2; -- Add into extension @@ -3187,6 +3200,16 @@ {6,16,26,36,46,56,66,76,86,96} (1 row) +-- This should be pushed too. +explain (verbose, costs off) +select * from ft2 order by c1 using operator(public.<^); + QUERY PLAN +----------------------------------------------------------------------------------------------------------------------------- + Foreign Scan on public.ft2 + Output: c1, c2, c3, c4, c5, c6, c7, c8 + Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" ORDER BY "C 1" USING OPERATOR(public.<^) NULLS LAST +(3 rows) + -- Remove from extension alter extension postgres_fdw drop operator class my_op_class using btree; alter extension postgres_fdw drop function my_op_cmp(a int, b int); @@ -4079,6 +4102,9 @@ SELECT sum(c2), array_agg(c8) FROM ft1 GROUP BY c8; -- ERROR ERROR: invalid input syntax for type integer: "foo" CONTEXT: processing expression at position 2 in select list +ANALYZE ft1; -- ERROR +ERROR: invalid input syntax for type integer: "foo" +CONTEXT: column "c8" of foreign table "ft1" ALTER FOREIGN TABLE ft1 ALTER COLUMN c8 TYPE user_enum; -- =================================================================== -- subtransaction diff -Nru postgresql-13-13.4/contrib/postgres_fdw/postgres_fdw.c postgresql-13-13.7/contrib/postgres_fdw/postgres_fdw.c --- postgresql-13-13.4/contrib/postgres_fdw/postgres_fdw.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/postgres_fdw/postgres_fdw.c 2022-05-09 21:16:30.000000000 +0000 @@ -18,6 +18,7 @@ #include "access/sysattr.h" #include "access/table.h" #include "catalog/pg_class.h" +#include "catalog/pg_opfamily.h" #include "commands/defrem.h" #include "commands/explain.h" #include "commands/vacuum.h" @@ -286,7 +287,8 @@ typedef struct ConversionLocation { AttrNumber cur_attno; /* attribute number being processed, or 0 */ - ForeignScanState *fsstate; /* plan node being processed */ + Relation rel; /* foreign table being processed, or NULL */ + ForeignScanState *fsstate; /* plan node being processed, or NULL */ } ConversionLocation; /* Callback argument for ec_member_matches_foreign */ @@ -865,8 +867,6 @@ foreach(lc, root->query_pathkeys) { PathKey *pathkey = (PathKey *) lfirst(lc); - EquivalenceClass *pathkey_ec = pathkey->pk_eclass; - Expr *em_expr; /* * The planner and executor don't have any clever strategy for @@ -874,13 +874,8 @@ * getting it to be sorted by all of those pathkeys. We'll just * end up resorting the entire data set. So, unless we can push * down all of the query pathkeys, forget it. - * - * is_foreign_expr would detect volatile expressions as well, but - * checking ec_has_volatile here saves some cycles. */ - if (pathkey_ec->ec_has_volatile || - !(em_expr = find_em_expr_for_rel(pathkey_ec, rel)) || - !is_foreign_expr(root, rel, em_expr)) + if (!is_foreign_pathkey(root, rel, pathkey)) { query_pathkeys_ok = false; break; @@ -927,16 +922,19 @@ foreach(lc, useful_eclass_list) { EquivalenceClass *cur_ec = lfirst(lc); - Expr *em_expr; PathKey *pathkey; /* If redundant with what we did above, skip it. */ if (cur_ec == query_ec) continue; + /* Can't push down the sort if the EC's opfamily is not shippable. */ + if (!is_shippable(linitial_oid(cur_ec->ec_opfamilies), + OperatorFamilyRelationId, fpinfo)) + continue; + /* If no pushable expression for this rel, skip it. */ - em_expr = find_em_expr_for_rel(cur_ec, rel); - if (em_expr == NULL || !is_foreign_expr(root, rel, em_expr)) + if (find_em_for_rel(root, cur_ec, rel) == NULL) continue; /* Looks like we can generate a pathkey, so let's do it. */ @@ -6052,7 +6050,6 @@ { PathKey *pathkey = (PathKey *) lfirst(lc); EquivalenceClass *pathkey_ec = pathkey->pk_eclass; - Expr *sort_expr; /* * is_foreign_expr would detect volatile expressions as well, but @@ -6061,13 +6058,20 @@ if (pathkey_ec->ec_has_volatile) return; - /* Get the sort expression for the pathkey_ec */ - sort_expr = find_em_expr_for_input_target(root, - pathkey_ec, - input_rel->reltarget); + /* + * Can't push down the sort if pathkey's opfamily is not shippable. + */ + if (!is_shippable(pathkey->pk_opfamily, OperatorFamilyRelationId, + fpinfo)) + return; - /* If it's unsafe to remote, we cannot push down the final sort */ - if (!is_foreign_expr(root, input_rel, sort_expr)) + /* + * The EC must contain a shippable EM that is computed in input_rel's + * reltarget, else we can't push down the sort. + */ + if (find_em_for_rel_target(root, + pathkey_ec, + input_rel) == NULL) return; } @@ -6345,7 +6349,12 @@ * rel is the local representation of the foreign table, attinmeta is * conversion data for the rel's tupdesc, and retrieved_attrs is an * integer list of the table column numbers present in the PGresult. + * fsstate is the ForeignScan plan node's execution state. * temp_context is a working context that can be reset after each tuple. + * + * Note: either rel or fsstate, but not both, can be NULL. rel is NULL + * if we're processing a remote join, while fsstate is NULL in a non-query + * context such as ANALYZE, or if we're processing a non-scan query node. */ static HeapTuple make_tuple_from_result_row(PGresult *res, @@ -6376,6 +6385,10 @@ */ oldcontext = MemoryContextSwitchTo(temp_context); + /* + * Get the tuple descriptor for the row. Use the rel's tupdesc if rel is + * provided, otherwise look to the scan node's ScanTupleSlot. + */ if (rel) tupdesc = RelationGetDescr(rel); else @@ -6393,6 +6406,7 @@ * Set up and install callback to report where conversion error occurs. */ errpos.cur_attno = 0; + errpos.rel = rel; errpos.fsstate = fsstate; errcallback.callback = conversion_error_callback; errcallback.arg = (void *) &errpos; @@ -6497,60 +6511,87 @@ * * Note that this function mustn't do any catalog lookups, since we are in * an already-failed transaction. Fortunately, we can get the needed info - * from the query's rangetable instead. + * from the relation or the query's rangetable instead. */ static void conversion_error_callback(void *arg) { ConversionLocation *errpos = (ConversionLocation *) arg; + Relation rel = errpos->rel; ForeignScanState *fsstate = errpos->fsstate; - ForeignScan *fsplan = castNode(ForeignScan, fsstate->ss.ps.plan); - int varno = 0; - AttrNumber colno = 0; const char *attname = NULL; const char *relname = NULL; bool is_wholerow = false; - if (fsplan->scan.scanrelid > 0) - { - /* error occurred in a scan against a foreign table */ - varno = fsplan->scan.scanrelid; - colno = errpos->cur_attno; - } - else - { - /* error occurred in a scan against a foreign join */ - TargetEntry *tle; + /* + * If we're in a scan node, always use aliases from the rangetable, for + * consistency between the simple-relation and remote-join cases. Look at + * the relation's tupdesc only if we're not in a scan node. + */ + if (fsstate) + { + /* ForeignScan case */ + ForeignScan *fsplan = castNode(ForeignScan, fsstate->ss.ps.plan); + int varno = 0; + AttrNumber colno = 0; + + if (fsplan->scan.scanrelid > 0) + { + /* error occurred in a scan against a foreign table */ + varno = fsplan->scan.scanrelid; + colno = errpos->cur_attno; + } + else + { + /* error occurred in a scan against a foreign join */ + TargetEntry *tle; - tle = list_nth_node(TargetEntry, fsplan->fdw_scan_tlist, - errpos->cur_attno - 1); + tle = list_nth_node(TargetEntry, fsplan->fdw_scan_tlist, + errpos->cur_attno - 1); - /* - * Target list can have Vars and expressions. For Vars, we can get - * some information, however for expressions we can't. Thus for - * expressions, just show generic context message. - */ - if (IsA(tle->expr, Var)) + /* + * Target list can have Vars and expressions. For Vars, we can + * get some information, however for expressions we can't. Thus + * for expressions, just show generic context message. + */ + if (IsA(tle->expr, Var)) + { + Var *var = (Var *) tle->expr; + + varno = var->varno; + colno = var->varattno; + } + } + + if (varno > 0) { - Var *var = (Var *) tle->expr; + EState *estate = fsstate->ss.ps.state; + RangeTblEntry *rte = exec_rt_fetch(varno, estate); - varno = var->varno; - colno = var->varattno; + relname = rte->eref->aliasname; + + if (colno == 0) + is_wholerow = true; + else if (colno > 0 && colno <= list_length(rte->eref->colnames)) + attname = strVal(list_nth(rte->eref->colnames, colno - 1)); + else if (colno == SelfItemPointerAttributeNumber) + attname = "ctid"; } } - - if (varno > 0) + else if (rel) { - EState *estate = fsstate->ss.ps.state; - RangeTblEntry *rte = exec_rt_fetch(varno, estate); + /* Non-ForeignScan case (we should always have a rel here) */ + TupleDesc tupdesc = RelationGetDescr(rel); - relname = rte->eref->aliasname; + relname = RelationGetRelationName(rel); + if (errpos->cur_attno > 0 && errpos->cur_attno <= tupdesc->natts) + { + Form_pg_attribute attr = TupleDescAttr(tupdesc, + errpos->cur_attno - 1); - if (colno == 0) - is_wholerow = true; - else if (colno > 0 && colno <= list_length(rte->eref->colnames)) - attname = strVal(list_nth(rte->eref->colnames, colno - 1)); - else if (colno == SelfItemPointerAttributeNumber) + attname = NameStr(attr->attname); + } + else if (errpos->cur_attno == SelfItemPointerAttributeNumber) attname = "ctid"; } @@ -6564,14 +6605,55 @@ } /* - * Find an equivalence class member expression to be computed as a sort column - * in the given target. + * Given an EquivalenceClass and a foreign relation, find an EC member + * that can be used to sort the relation remotely according to a pathkey + * using this EC. + * + * If there is more than one suitable candidate, return an arbitrary + * one of them. If there is none, return NULL. + * + * This checks that the EC member expression uses only Vars from the given + * rel and is shippable. Caller must separately verify that the pathkey's + * ordering operator is shippable. */ -Expr * -find_em_expr_for_input_target(PlannerInfo *root, - EquivalenceClass *ec, - PathTarget *target) +EquivalenceMember * +find_em_for_rel(PlannerInfo *root, EquivalenceClass *ec, RelOptInfo *rel) { + ListCell *lc; + + foreach(lc, ec->ec_members) + { + EquivalenceMember *em = (EquivalenceMember *) lfirst(lc); + + /* + * Note we require !bms_is_empty, else we'd accept constant + * expressions which are not suitable for the purpose. + */ + if (bms_is_subset(em->em_relids, rel->relids) && + !bms_is_empty(em->em_relids) && + is_foreign_expr(root, rel, em->em_expr)) + return em; + } + + return NULL; +} + +/* + * Find an EquivalenceClass member that is to be computed as a sort column + * in the given rel's reltarget, and is shippable. + * + * If there is more than one suitable candidate, return an arbitrary + * one of them. If there is none, return NULL. + * + * This checks that the EC member expression uses only Vars from the given + * rel and is shippable. Caller must separately verify that the pathkey's + * ordering operator is shippable. + */ +EquivalenceMember * +find_em_for_rel_target(PlannerInfo *root, EquivalenceClass *ec, + RelOptInfo *rel) +{ + PathTarget *target = rel->reltarget; ListCell *lc1; int i; @@ -6614,13 +6696,16 @@ while (em_expr && IsA(em_expr, RelabelType)) em_expr = ((RelabelType *) em_expr)->arg; - if (equal(em_expr, expr)) - return em->em_expr; + if (!equal(em_expr, expr)) + continue; + + /* Check that expression (including relabels!) is shippable */ + if (is_foreign_expr(root, rel, em->em_expr)) + return em; } i++; } - elog(ERROR, "could not find pathkey item to sort"); - return NULL; /* keep compiler quiet */ + return NULL; } diff -Nru postgresql-13-13.4/contrib/postgres_fdw/postgres_fdw.h postgresql-13-13.7/contrib/postgres_fdw/postgres_fdw.h --- postgresql-13-13.4/contrib/postgres_fdw/postgres_fdw.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/postgres_fdw/postgres_fdw.h 2022-05-09 21:16:30.000000000 +0000 @@ -157,6 +157,9 @@ extern bool is_foreign_param(PlannerInfo *root, RelOptInfo *baserel, Expr *expr); +extern bool is_foreign_pathkey(PlannerInfo *root, + RelOptInfo *baserel, + PathKey *pathkey); extern void deparseInsertSql(StringInfo buf, RangeTblEntry *rte, Index rtindex, Relation rel, List *targetAttrs, bool doNothing, @@ -191,10 +194,12 @@ extern void deparseAnalyzeSql(StringInfo buf, Relation rel, List **retrieved_attrs); extern void deparseStringLiteral(StringInfo buf, const char *val); -extern Expr *find_em_expr_for_rel(EquivalenceClass *ec, RelOptInfo *rel); -extern Expr *find_em_expr_for_input_target(PlannerInfo *root, - EquivalenceClass *ec, - PathTarget *target); +extern EquivalenceMember *find_em_for_rel(PlannerInfo *root, + EquivalenceClass *ec, + RelOptInfo *rel); +extern EquivalenceMember *find_em_for_rel_target(PlannerInfo *root, + EquivalenceClass *ec, + RelOptInfo *rel); extern List *build_tlist_to_deparse(RelOptInfo *foreignrel); extern void deparseSelectStmtForRel(StringInfo buf, PlannerInfo *root, RelOptInfo *foreignrel, List *tlist, diff -Nru postgresql-13-13.4/contrib/postgres_fdw/sql/postgres_fdw.sql postgresql-13-13.7/contrib/postgres_fdw/sql/postgres_fdw.sql --- postgresql-13-13.4/contrib/postgres_fdw/sql/postgres_fdw.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/postgres_fdw/sql/postgres_fdw.sql 2022-05-09 21:16:30.000000000 +0000 @@ -861,6 +861,10 @@ explain (verbose, costs off) select array_agg(c1 order by c1 using operator(public.<^)) from ft2 where c2 = 6 and c1 < 100 group by c2; +-- This should not be pushed either. +explain (verbose, costs off) +select * from ft2 order by c1 using operator(public.<^); + -- Update local stats on ft2 ANALYZE ft2; @@ -878,6 +882,10 @@ select array_agg(c1 order by c1 using operator(public.<^)) from ft2 where c2 = 6 and c1 < 100 group by c2; select array_agg(c1 order by c1 using operator(public.<^)) from ft2 where c2 = 6 and c1 < 100 group by c2; +-- This should be pushed too. +explain (verbose, costs off) +select * from ft2 order by c1 using operator(public.<^); + -- Remove from extension alter extension postgres_fdw drop operator class my_op_class using btree; alter extension postgres_fdw drop function my_op_cmp(a int, b int); @@ -1103,6 +1111,7 @@ SELECT ftx.x1, ft2.c2, ftx FROM ft1 ftx(x1,x2,x3,x4,x5,x6,x7,x8), ft2 WHERE ftx.x1 = ft2.c1 AND ftx.x1 = 1; -- ERROR SELECT sum(c2), array_agg(c8) FROM ft1 GROUP BY c8; -- ERROR +ANALYZE ft1; -- ERROR ALTER FOREIGN TABLE ft1 ALTER COLUMN c8 TYPE user_enum; -- =================================================================== diff -Nru postgresql-13-13.4/contrib/seg/segparse.c postgresql-13-13.7/contrib/seg/segparse.c --- postgresql-13-13.4/contrib/seg/segparse.c 2021-08-09 21:03:35.000000000 +0000 +++ postgresql-13-13.7/contrib/seg/segparse.c 2022-05-09 21:29:50.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,12 +70,11 @@ #define yyerror seg_yyerror #define yydebug seg_yydebug #define yynerrs seg_yynerrs - #define yylval seg_yylval #define yychar seg_yychar /* First part of user prologue. */ -#line 1 "segparse.y" /* yacc.c:337 */ +#line 1 "segparse.y" /* contrib/seg/segparse.y */ @@ -109,7 +109,17 @@ }; -#line 113 "segparse.c" /* yacc.c:337 */ +#line 113 "segparse.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -122,14 +132,6 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - /* Debug traces. */ #ifndef YYDEBUG @@ -139,24 +141,28 @@ extern int seg_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - SEGFLOAT = 258, - RANGE = 259, - PLUMIN = 260, - EXTENSION = 261 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + SEGFLOAT = 258, /* SEGFLOAT */ + RANGE = 259, /* RANGE */ + PLUMIN = 260, /* PLUMIN */ + EXTENSION = 261 /* EXTENSION */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 41 "segparse.y" /* yacc.c:352 */ +#line 41 "segparse.y" struct BND { float val; @@ -165,9 +171,9 @@ } bnd; char * text; -#line 169 "segparse.c" /* yacc.c:352 */ -}; +#line 175 "segparse.c" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -179,6 +185,24 @@ int seg_yyparse (SEG *result); +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_SEGFLOAT = 3, /* SEGFLOAT */ + YYSYMBOL_RANGE = 4, /* RANGE */ + YYSYMBOL_PLUMIN = 5, /* PLUMIN */ + YYSYMBOL_EXTENSION = 6, /* EXTENSION */ + YYSYMBOL_YYACCEPT = 7, /* $accept */ + YYSYMBOL_range = 8, /* range */ + YYSYMBOL_boundary = 9, /* boundary */ + YYSYMBOL_deviation = 10 /* deviation */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + @@ -186,28 +210,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -215,7 +298,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -223,7 +306,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -237,38 +333,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -281,8 +376,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) -#if ! defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -347,8 +456,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -357,17 +465,17 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -380,11 +488,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -396,12 +504,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -424,17 +532,20 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 14 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #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) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint8 yytranslate[] = +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -473,33 +584,46 @@ }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "SEGFLOAT", "RANGE", "PLUMIN", - "EXTENSION", "$accept", "range", "boundary", "deviation", YY_NULLPTR + "\"end of file\"", "error", "\"invalid token\"", "SEGFLOAT", "RANGE", + "PLUMIN", "EXTENSION", "$accept", "range", "boundary", "deviation", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261 }; -# endif +#endif -#define YYPACT_NINF -3 +#define YYPACT_NINF (-3) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-3))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -1 +#define YYTABLE_NINF (-1) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -513,7 +637,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint8 yydefact[] = +static const yytype_int8 yydefact[] = { 0, 7, 0, 0, 0, 6, 5, 8, 1, 4, 0, 3, 9, 2 @@ -528,13 +652,13 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 4, 5, 13 + 0, 4, 5, 13 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_uint8 yytable[] = +static const yytype_int8 yytable[] = { 6, 0, 1, 2, 7, 3, 1, 11, 8, 3, 9, 10, 12 @@ -548,29 +672,29 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_int8 yystos[] = { 0, 3, 4, 6, 8, 9, 9, 3, 0, 4, 5, 9, 3, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_int8 yyr1[] = { 0, 7, 8, 8, 8, 8, 8, 9, 9, 10 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 3, 3, 2, 2, 1, 1, 2, 1 }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -596,10 +720,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* Enable debugging if requested. */ @@ -617,18 +740,18 @@ } while (0) /* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value, result); \ + Kind, Value, result); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -639,18 +762,21 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SEG *result) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, SEG *result) { FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (result); + YY_USE (yyoutput); + YY_USE (result); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -659,12 +785,13 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SEG *result) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, SEG *result) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyo, yytype, yyvaluep, result); + yy_symbol_value_print (yyo, yykind, yyvaluep, result); YYFPRINTF (yyo, ")"); } @@ -674,7 +801,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -697,21 +824,21 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, SEG *result) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule, SEG *result) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - , result); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], result); YYFPRINTF (stderr, "\n"); } } @@ -726,8 +853,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -750,255 +877,31 @@ #endif -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - if (! yyres) - return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, SEG *result) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, SEG *result) { - YYUSE (yyvaluep); - YYUSE (result); + YY_USE (yyvaluep); + YY_USE (result); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -1007,6 +910,8 @@ int yynerrs; + + /*----------. | yyparse. | `----------*/ @@ -1014,43 +919,36 @@ int yyparse (SEG *result) { - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. + int yyerrstatus = 0; - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - YYSIZE_T yystacksize; + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -1058,15 +956,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; @@ -1081,10 +972,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1092,23 +988,23 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -1122,14 +1018,15 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1138,16 +1035,16 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -1168,18 +1065,29 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1207,15 +1115,13 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1250,9 +1156,9 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 62 "segparse.y" /* yacc.c:1652 */ - { + case 2: /* range: boundary PLUMIN deviation */ +#line 62 "segparse.y" + { result->lower = (yyvsp[-2].bnd).val - (yyvsp[0].bnd).val; result->upper = (yyvsp[-2].bnd).val + (yyvsp[0].bnd).val; sprintf(strbuf, "%g", result->lower); @@ -1262,12 +1168,12 @@ result->l_ext = '\0'; result->u_ext = '\0'; } -#line 1266 "segparse.c" /* yacc.c:1652 */ +#line 1172 "segparse.c" break; - case 3: -#line 74 "segparse.y" /* yacc.c:1652 */ - { + case 3: /* range: boundary RANGE boundary */ +#line 74 "segparse.y" + { result->lower = (yyvsp[-2].bnd).val; result->upper = (yyvsp[0].bnd).val; if ( result->lower > result->upper ) { @@ -1283,12 +1189,12 @@ 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 1287 "segparse.c" /* yacc.c:1652 */ +#line 1193 "segparse.c" break; - case 4: -#line 92 "segparse.y" /* yacc.c:1652 */ - { + case 4: /* range: boundary RANGE */ +#line 92 "segparse.y" + { result->lower = (yyvsp[-1].bnd).val; result->upper = HUGE_VAL; result->l_sigd = (yyvsp[-1].bnd).sigd; @@ -1296,12 +1202,12 @@ result->l_ext = ( (yyvsp[-1].bnd).ext ? (yyvsp[-1].bnd).ext : '\0' ); result->u_ext = '-'; } -#line 1300 "segparse.c" /* yacc.c:1652 */ +#line 1206 "segparse.c" break; - case 5: -#line 102 "segparse.y" /* yacc.c:1652 */ - { + case 5: /* range: RANGE boundary */ +#line 102 "segparse.y" + { result->lower = -HUGE_VAL; result->upper = (yyvsp[0].bnd).val; result->l_sigd = 0; @@ -1309,22 +1215,22 @@ result->l_ext = '-'; result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' ); } -#line 1313 "segparse.c" /* yacc.c:1652 */ +#line 1219 "segparse.c" break; - case 6: -#line 112 "segparse.y" /* yacc.c:1652 */ - { + case 6: /* range: boundary */ +#line 112 "segparse.y" + { 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 1323 "segparse.c" /* yacc.c:1652 */ +#line 1229 "segparse.c" break; - case 7: -#line 120 "segparse.y" /* yacc.c:1652 */ - { + case 7: /* boundary: SEGFLOAT */ +#line 120 "segparse.y" + { /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ float val = seg_atof((yyvsp[0].text)); @@ -1332,12 +1238,12 @@ (yyval.bnd).sigd = significant_digits((yyvsp[0].text)); (yyval.bnd).val = val; } -#line 1336 "segparse.c" /* yacc.c:1652 */ +#line 1242 "segparse.c" break; - case 8: -#line 129 "segparse.y" /* yacc.c:1652 */ - { + case 8: /* boundary: EXTENSION SEGFLOAT */ +#line 129 "segparse.y" + { /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ float val = seg_atof((yyvsp[0].text)); @@ -1345,12 +1251,12 @@ (yyval.bnd).sigd = significant_digits((yyvsp[0].text)); (yyval.bnd).val = val; } -#line 1349 "segparse.c" /* yacc.c:1652 */ +#line 1255 "segparse.c" break; - case 9: -#line 140 "segparse.y" /* yacc.c:1652 */ - { + case 9: /* deviation: SEGFLOAT */ +#line 140 "segparse.y" + { /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ float val = seg_atof((yyvsp[0].text)); @@ -1358,11 +1264,12 @@ (yyval.bnd).sigd = significant_digits((yyvsp[0].text)); (yyval.bnd).val = val; } -#line 1362 "segparse.c" /* yacc.c:1652 */ +#line 1268 "segparse.c" break; -#line 1366 "segparse.c" /* yacc.c:1652 */ +#line 1272 "segparse.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1376,11 +1283,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1404,50 +1310,14 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (result, YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (result, yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } - - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -1496,13 +1366,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -1516,7 +1387,7 @@ yydestruct ("Error: popping", - yystos[yystate], yyvsp, result); + YY_ACCESSING_SYMBOL (yystate), yyvsp, result); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -1528,7 +1399,7 @@ /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1550,20 +1421,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (result, YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -1580,20 +1451,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, result); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, result); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 150 "segparse.y" /* yacc.c:1918 */ + +#line 150 "segparse.y" diff -Nru postgresql-13-13.4/contrib/test_decoding/expected/replorigin.out postgresql-13-13.7/contrib/test_decoding/expected/replorigin.out --- postgresql-13-13.4/contrib/test_decoding/expected/replorigin.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/test_decoding/expected/replorigin.out 2022-05-09 21:16:30.000000000 +0000 @@ -152,3 +152,79 @@ (1 row) +-- Set of transactions with no origin LSNs and commit timestamps set for +-- this session. +SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot_no_lsn', 'test_decoding'); + ?column? +---------- + init +(1 row) + +SELECT pg_replication_origin_create('regress_test_decoding: regression_slot_no_lsn'); + pg_replication_origin_create +------------------------------ + 1 +(1 row) + +-- mark session as replaying +SELECT pg_replication_origin_session_setup('regress_test_decoding: regression_slot_no_lsn'); + pg_replication_origin_session_setup +------------------------------------- + +(1 row) + +-- Simple transactions +BEGIN; +INSERT INTO origin_tbl(data) VALUES ('no_lsn, commit'); +COMMIT; +BEGIN; +INSERT INTO origin_tbl(data) VALUES ('no_lsn, rollback'); +ROLLBACK; +-- 2PC transactions +BEGIN; +INSERT INTO origin_tbl(data) VALUES ('no_lsn, commit prepared'); +PREPARE TRANSACTION 'replorigin_prepared'; +COMMIT PREPARED 'replorigin_prepared'; +BEGIN; +INSERT INTO origin_tbl(data) VALUES ('no_lsn, rollback prepared'); +PREPARE TRANSACTION 'replorigin_prepared'; +ROLLBACK PREPARED 'replorigin_prepared'; +SELECT local_id, external_id, + remote_lsn <> '0/0' AS valid_remote_lsn, + local_lsn <> '0/0' AS valid_local_lsn + FROM pg_replication_origin_status; + local_id | external_id | valid_remote_lsn | valid_local_lsn +----------+-----------------------------------------------+------------------+----------------- + 1 | regress_test_decoding: regression_slot_no_lsn | f | t +(1 row) + +SELECT data FROM pg_logical_slot_get_changes('regression_slot_no_lsn', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0'); + data +------------------------------------------------------------------------------------- + BEGIN + table public.origin_tbl: INSERT: id[integer]:4 data[text]:'no_lsn, commit' + COMMIT + BEGIN + table public.origin_tbl: INSERT: id[integer]:6 data[text]:'no_lsn, commit prepared' + COMMIT +(6 rows) + +-- Clean up +SELECT pg_replication_origin_session_reset(); + pg_replication_origin_session_reset +------------------------------------- + +(1 row) + +SELECT pg_drop_replication_slot('regression_slot_no_lsn'); + pg_drop_replication_slot +-------------------------- + +(1 row) + +SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot_no_lsn'); + pg_replication_origin_drop +---------------------------- + +(1 row) + diff -Nru postgresql-13-13.4/contrib/test_decoding/expected/toast.out postgresql-13-13.7/contrib/test_decoding/expected/toast.out --- postgresql-13-13.4/contrib/test_decoding/expected/toast.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/test_decoding/expected/toast.out 2022-05-09 21:16:30.000000000 +0000 @@ -77,7 +77,7 @@ table public.toasted_key: INSERT: id[integer]:1 toasted_key[text]:'1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123 COMMIT BEGIN - table public.toasted_key: UPDATE: id[integer]:1 toasted_key[text]:unchanged-toast-datum toasted_col1[text]:unchanged-toast-datum toasted_col2[text]:'987654321098765432109876543210987654321098765432109 + table public.toasted_key: UPDATE: old-key: toasted_key[text]:'123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 COMMIT BEGIN table public.toasted_key: UPDATE: old-key: toasted_key[text]:'123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 @@ -360,6 +360,28 @@ COMMIT (4 rows) +/* + * Test decoding relation rewrite with toast. The insert into tbl2 within the + * same transaction is there to check that there is no remaining toast_hash not + * being reset. + */ +CREATE TABLE tbl1 (a INT, b TEXT); +CREATE TABLE tbl2 (a INT); +ALTER TABLE tbl1 ALTER COLUMN b SET STORAGE EXTERNAL; +BEGIN; +INSERT INTO tbl1 VALUES(1, repeat('a', 4000)) ; +ALTER TABLE tbl1 ADD COLUMN id serial primary key; +INSERT INTO tbl2 VALUES(1); +commit; +SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); + substr +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + BEGIN + table public.tbl1: INSERT: a[integer]:1 b[text]:'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + table public.tbl2: INSERT: a[integer]:1 + COMMIT +(4 rows) + SELECT pg_drop_replication_slot('regression_slot'); pg_drop_replication_slot -------------------------- diff -Nru postgresql-13-13.4/contrib/test_decoding/sql/replorigin.sql postgresql-13-13.7/contrib/test_decoding/sql/replorigin.sql --- postgresql-13-13.4/contrib/test_decoding/sql/replorigin.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/test_decoding/sql/replorigin.sql 2022-05-09 21:16:30.000000000 +0000 @@ -69,3 +69,35 @@ SELECT pg_drop_replication_slot('regression_slot'); SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot'); + +-- Set of transactions with no origin LSNs and commit timestamps set for +-- this session. +SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot_no_lsn', 'test_decoding'); +SELECT pg_replication_origin_create('regress_test_decoding: regression_slot_no_lsn'); +-- mark session as replaying +SELECT pg_replication_origin_session_setup('regress_test_decoding: regression_slot_no_lsn'); +-- Simple transactions +BEGIN; +INSERT INTO origin_tbl(data) VALUES ('no_lsn, commit'); +COMMIT; +BEGIN; +INSERT INTO origin_tbl(data) VALUES ('no_lsn, rollback'); +ROLLBACK; +-- 2PC transactions +BEGIN; +INSERT INTO origin_tbl(data) VALUES ('no_lsn, commit prepared'); +PREPARE TRANSACTION 'replorigin_prepared'; +COMMIT PREPARED 'replorigin_prepared'; +BEGIN; +INSERT INTO origin_tbl(data) VALUES ('no_lsn, rollback prepared'); +PREPARE TRANSACTION 'replorigin_prepared'; +ROLLBACK PREPARED 'replorigin_prepared'; +SELECT local_id, external_id, + remote_lsn <> '0/0' AS valid_remote_lsn, + local_lsn <> '0/0' AS valid_local_lsn + FROM pg_replication_origin_status; +SELECT data FROM pg_logical_slot_get_changes('regression_slot_no_lsn', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0'); +-- Clean up +SELECT pg_replication_origin_session_reset(); +SELECT pg_drop_replication_slot('regression_slot_no_lsn'); +SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot_no_lsn'); diff -Nru postgresql-13-13.4/contrib/test_decoding/sql/toast.sql postgresql-13-13.7/contrib/test_decoding/sql/toast.sql --- postgresql-13-13.4/contrib/test_decoding/sql/toast.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/contrib/test_decoding/sql/toast.sql 2022-05-09 21:16:30.000000000 +0000 @@ -308,4 +308,20 @@ SELECT regexp_replace(data, '^(.{100}).*(.{100})$', '\1..\2') FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1') WHERE data NOT LIKE '%INSERT: %'; + +/* + * Test decoding relation rewrite with toast. The insert into tbl2 within the + * same transaction is there to check that there is no remaining toast_hash not + * being reset. + */ +CREATE TABLE tbl1 (a INT, b TEXT); +CREATE TABLE tbl2 (a INT); +ALTER TABLE tbl1 ALTER COLUMN b SET STORAGE EXTERNAL; +BEGIN; +INSERT INTO tbl1 VALUES(1, repeat('a', 4000)) ; +ALTER TABLE tbl1 ADD COLUMN id serial primary key; +INSERT INTO tbl2 VALUES(1); +commit; +SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); + SELECT pg_drop_replication_slot('regression_slot'); diff -Nru postgresql-13-13.4/COPYRIGHT postgresql-13-13.7/COPYRIGHT --- postgresql-13-13.4/COPYRIGHT 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/COPYRIGHT 2022-05-09 21:16:30.000000000 +0000 @@ -1,7 +1,7 @@ PostgreSQL Database Management System (formerly known as Postgres, then as Postgres95) -Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group +Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group Portions Copyright (c) 1994, The Regents of the University of California diff -Nru postgresql-13-13.4/debian/changelog postgresql-13-13.7/debian/changelog --- postgresql-13-13.4/debian/changelog 2021-05-18 11:56:18.000000000 +0000 +++ postgresql-13-13.7/debian/changelog 2022-05-17 13:58:43.000000000 +0000 @@ -1,3 +1,86 @@ +postgresql-13 (13.7-0ubuntu0.21.10.1) impish; urgency=medium + + * New upstream version (LP: #1973627). + + + A dump/restore is not required for those running 13.X. + + + However, if you have any GiST indexes on columns of type ltree (supplied + by the contrib/ltree extension), you should re-index them after updating. + See the upstream changelog linked below for further information. + + + Also, if you are upgrading from a version earlier than 13.6, see + those release notes as well please. + + + Confine additional operations within "security restricted operation" + sandboxes (Sergey Shinderuk, Noah Misch). + + Autovacuum, CLUSTER, CREATE INDEX, REINDEX, REFRESH MATERIALIZED VIEW, + and pg_amcheck activated the "security restricted operation" protection + mechanism too late, or even not at all in some code paths. A user having + permission to create non-temporary objects within a database could + define an object that would execute arbitrary SQL code with superuser + permissions the next time that autovacuum processed the object, or that + some superuser ran one of the affected commands against it. + + The PostgreSQL Project thanks Alexander Lakhin for reporting this + problem. + (CVE-2022-1552) + + + Details about these and many further changes can be found at: + https://www.postgresql.org/docs/13/release-13-7.html + + -- Athos Ribeiro Tue, 17 May 2022 10:58:43 -0300 + +postgresql-13 (13.6-0ubuntu0.21.10.1) impish; urgency=medium + + * New upstream version (LP: #1961127). + + + A dump/restore is not required for those running 13.X. + + + However, if you have applied REINDEX CONCURRENTLY to a TOAST table's + index, or observe failures to access TOAST datums, there has been a + fix for this problem. Any existing corrupted indexes can be repaired + by reindexing again. + + + Also, if you are upgrading from a version earlier than 13.5, + see those release notes as well please. + + + Details about these and many further changes can be found at: + https://www.postgresql.org/docs/13/release-13-6.html + + -- Sergio Durigan Junior Wed, 16 Feb 2022 21:17:27 -0500 + +postgresql-13 (13.5-0ubuntu0.21.10.1) impish-security; urgency=medium + + * New upstream version (LP: #1950268). + + + Make the server reject extraneous data after an SSL or GSS + encryption handshake + CVE-2021-23214 + + + Make libpq reject extraneous data after an SSL or GSS + encryption handshake + CVE-2021-23222 + + + A dump/restore is not required for those running 13.X. + + + However, note that installations using physical replication should + update standby servers before the primary server, details in the + release notes linked below. + + + Also, several bugs have been found that may have resulted in corrupted + indexes, explained in detail in the release notes linked below. If any + of those cases apply to you, it's recommended to reindex + possibly-affected indexes after updating. + + + Also, if you are upgrading from a version earlier than 13.2, + see those release notes as well please. + + + Details about these and many further changes can be found at: + https://www.postgresql.org/docs/13/release-13-5.html + + -- Christian Ehrhardt Tue, 09 Nov 2021 09:46:55 +0100 + postgresql-13 (13.4-1) unstable; urgency=medium * New upstream version. diff -Nru postgresql-13-13.4/debian/control postgresql-13-13.7/debian/control --- postgresql-13-13.4/debian/control 2021-05-18 11:56:18.000000000 +0000 +++ postgresql-13-13.7/debian/control 2022-05-17 13:58:43.000000000 +0000 @@ -1,7 +1,8 @@ Source: postgresql-13 Section: database Priority: optional -Maintainer: Debian PostgreSQL Maintainers +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian PostgreSQL Maintainers Uploaders: Martin Pitt , Peter Eisentraut , diff -Nru postgresql-13-13.4/doc/src/sgml/arch-dev.sgml postgresql-13-13.7/doc/src/sgml/arch-dev.sgml --- postgresql-13-13.4/doc/src/sgml/arch-dev.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/arch-dev.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -557,7 +557,7 @@ A simple INSERT ... VALUES command creates a trivial plan tree consisting of a single Result node, which computes just one result row, feeding that up - toModifyTable to perform the insertion. + to ModifyTable to perform the insertion. diff -Nru postgresql-13-13.4/doc/src/sgml/bgworker.sgml postgresql-13-13.7/doc/src/sgml/bgworker.sgml --- postgresql-13-13.4/doc/src/sgml/bgworker.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/bgworker.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -134,8 +134,8 @@ bgw_restart_time is the interval, in seconds, that - postgres should wait before restarting the process, in - case it crashes. It can be any positive value, + postgres should wait before restarting the process in + the event that it crashes. It can be any positive value, or BGW_NEVER_RESTART, indicating not to restart the process in case of a crash. @@ -284,15 +284,13 @@ - If a background worker sends asynchronous notifications with the - NOTIFY command via the Server Programming Interface - (SPI), it should call - ProcessCompletedNotifies explicitly after committing - the enclosing transaction so that any notifications can be delivered. If a - background worker registers to receive asynchronous notifications with - the LISTEN through SPI, the worker - will log those notifications, but there is no programmatic way for the - worker to intercept and respond to those notifications. + Background workers can send asynchronous notification messages, either by + using the NOTIFY command via SPI, + or directly via Async_Notify(). Such notifications + will be sent at transaction commit. + Background workers should not register to receive asynchronous + notifications with the LISTEN command, as there is no + infrastructure for a worker to consume such notifications. diff -Nru postgresql-13-13.4/doc/src/sgml/biblio.sgml postgresql-13-13.7/doc/src/sgml/biblio.sgml --- postgresql-13-13.4/doc/src/sgml/biblio.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/biblio.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -137,7 +137,7 @@ - <ulink url="https://standards.iso.org/ittf/PubliclyAvailableStandards/c067367_ISO_IEC_TR_19075-6_2017.zip">SQL Technical Report</ulink> + SQL Technical Report Part 6: SQL support for JavaScript Object Notation (JSON) First Edition diff -Nru postgresql-13-13.4/doc/src/sgml/catalogs.sgml postgresql-13-13.7/doc/src/sgml/catalogs.sgml --- postgresql-13-13.4/doc/src/sgml/catalogs.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/catalogs.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -5255,7 +5255,7 @@ - Unused column contain zeroes. For example, oprleft + Unused columns contain zeroes. For example, oprleft is zero for a prefix operator. diff -Nru postgresql-13-13.4/doc/src/sgml/charset.sgml postgresql-13-13.7/doc/src/sgml/charset.sgml --- postgresql-13-13.4/doc/src/sgml/charset.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/charset.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -746,8 +746,8 @@ set that is preloaded by initdb. Users are encouraged to define their own collation objects that make use of these facilities to suit the sorting behavior to their requirements. - See - and for + See + and for information on ICU locale naming. The set of acceptable names and attributes depends on the particular ICU version. @@ -841,10 +841,6 @@ subtag) can be found in the CLDR repository. - The ICU Locale - Explorer can be used to check the details of a particular locale - definition. The examples using the k* subtags require - at least ICU version 54. diff -Nru postgresql-13-13.4/doc/src/sgml/config.sgml postgresql-13-13.7/doc/src/sgml/config.sgml --- postgresql-13-13.4/doc/src/sgml/config.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/config.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1189,7 +1189,7 @@ - Specifies the name of the file containing the SSL server certificate + Specifies the name of the file containing the SSL client certificate revocation list (CRL). Relative paths are relative to the data directory. This parameter can only be set in the postgresql.conf @@ -1568,7 +1568,9 @@ At present, this setting is supported only on Linux and Windows. The setting is ignored on other systems when set to - try. + try. On Linux, it is only supported when + shared_memory_type is set to mmap + (the default). @@ -3986,6 +3988,9 @@ to continue replication due to removal of required WAL files. You can see the WAL availability of replication slots in pg_replication_slots. + If this value is specified without units, it is taken as megabytes. + This parameter can only be set in the postgresql.conf + file or on the server command line. @@ -7948,8 +7953,8 @@ This parameter specifies the default table access method to use when creating tables or materialized views if the CREATE command does not explicitly specify an access method, or when - SELECT ... INTO is used, which does not allow to - specify a table access method. The default is heap. + SELECT ... INTO is used, which does not allow + specifying a table access method. The default is heap. diff -Nru postgresql-13-13.4/doc/src/sgml/datatype.sgml postgresql-13-13.7/doc/src/sgml/datatype.sgml --- postgresql-13-13.4/doc/src/sgml/datatype.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/datatype.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -2760,7 +2760,7 @@ weeks' or '01:02:03.45'. However, because interval internally stores only three integer units (months, days, microseconds), fractional units must be spilled to smaller - units. Fractional parts of units greater than months is truncated to + units. Fractional parts of units greater than months are truncated to be an integer number of months, e.g. '1.5 years' becomes '1 year 6 mons'. Fractional parts of weeks and days are computed to be an integer number of days and diff -Nru postgresql-13-13.4/doc/src/sgml/datetime.sgml postgresql-13-13.7/doc/src/sgml/datetime.sgml --- postgresql-13-13.4/doc/src/sgml/datetime.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/datetime.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -210,27 +210,25 @@ Conversely, consider the behavior during a fall-back transition: -=> SELECT '2018-11-04 02:30'::timestamptz; +=> SELECT '2018-11-04 01:30'::timestamptz; timestamptz ------------------------ - 2018-11-04 02:30:00-05 + 2018-11-04 01:30:00-05 (1 row) - On that date, there were two possible interpretations of 2:30AM; there - was 2:30AM EDT, and then an hour later after the reversion to standard - time, there was 2:30AM EST. + On that date, there were two possible interpretations of 1:30AM; there + was 1:30AM EDT, and then an hour later after clocks jumped back from + 2AM EDT to 1AM EST, there was 1:30AM EST. Again, PostgreSQL interprets the given time - as if it were standard time (UTC-5). We can force the matter by - specifying daylight-savings time: + as if it were standard time (UTC-5). We can force the other + interpretation by specifying daylight-savings time: -=> SELECT '2018-11-04 02:30 EDT'::timestamptz; +=> SELECT '2018-11-04 01:30 EDT'::timestamptz; timestamptz ------------------------ - 2018-11-04 01:30:00-05 + 2018-11-04 01:30:00-04 (1 row) - This timestamp could validly be rendered as either 2:30 UTC-4 or - 1:30 UTC-5; the timestamp output code chooses the latter. diff -Nru postgresql-13-13.4/doc/src/sgml/ddl.sgml postgresql-13-13.7/doc/src/sgml/ddl.sgml --- postgresql-13-13.4/doc/src/sgml/ddl.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ddl.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -3719,9 +3719,12 @@ - Partitions can also be foreign tables, although they have some limitations - that normal tables do not; see for - more information. + Partitions can also be foreign + tables, although considerable care is needed because it is then + the user's responsibility that the contents of the foreign table + satisfy the partitioning rule. There are some other restrictions as + well. See for more + information. @@ -3984,7 +3987,7 @@ holding an ACCESS EXCLUSIVE lock on that partition. It is recommended to drop the now-redundant CHECK constraint after the ATTACH PARTITION is complete. If - the table being attached is itself a partitioned table then each of its + the table being attached is itself a partitioned table, then each of its sub-partitions will be recursively locked and scanned until either a suitable CHECK constraint is encountered or the leaf partitions are reached. @@ -3999,7 +4002,7 @@ the partition being attached. This operation will be performed whilst holding an ACCESS EXCLUSIVE lock on the DEFAULT partition. If the DEFAULT partition - is itself a partitioned table then each of its partitions will be + is itself a partitioned table, then each of its partitions will be recursively checked in the same way as the table being attached, as mentioned above. diff -Nru postgresql-13-13.4/doc/src/sgml/event-trigger.sgml postgresql-13-13.7/doc/src/sgml/event-trigger.sgml --- postgresql-13-13.4/doc/src/sgml/event-trigger.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/event-trigger.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -294,6 +294,14 @@ + ALTER ROUTINE + X + X + - + - + + + ALTER SCHEMA X X @@ -850,6 +858,14 @@ X X X + - + + + + DROP ROUTINE + X + X + X - diff -Nru postgresql-13-13.4/doc/src/sgml/func.sgml postgresql-13-13.7/doc/src/sgml/func.sgml --- postgresql-13-13.4/doc/src/sgml/func.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/func.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -10430,7 +10430,7 @@ Computes the center point. - Available for box, lseg, path, + Available for box, lseg, polygon, circle. @@ -10496,8 +10496,6 @@ (point, line), (lseg, box), (lseg, lseg), - (lseg, line), - (line, box), (line, lseg). @@ -10513,11 +10511,11 @@ Computes the distance between the objects. - Available for all seven geometric types, for all combinations + Available for all geometric types except polygon, + for all combinations of point with another geometric type, and for these additional pairs of types: (box, lseg), - (box, line), (lseg, line), (polygon, circle) (and the commutator cases). @@ -17115,24 +17113,37 @@ To avoid blocking concurrent transactions that obtain numbers from - the same sequence, a nextval operation is never - rolled back; that is, once a value has been fetched it is considered - used and will not be returned again. This is true even if the - surrounding transaction later aborts, or if the calling query ends - up not using the value. For example an INSERT with + the same sequence, the value obtained by nextval + is not reclaimed for re-use if the calling transaction later aborts. + This means that transaction aborts or database crashes can result in + gaps in the sequence of assigned values. That can happen without a + transaction abort, too. For example an INSERT with an ON CONFLICT clause will compute the to-be-inserted tuple, including doing any required nextval calls, before detecting any conflict that would cause it to follow - the ON CONFLICT rule instead. Such cases will leave - unused holes in the sequence of assigned values. + the ON CONFLICT rule instead. Thus, PostgreSQL sequence objects cannot be used to obtain gapless sequences. - Likewise, any sequence state changes made by setval - are not undone if the transaction rolls back. + Likewise, sequence state changes made by setval + are immediately visible to other transactions, and are not undone if + the calling transaction rolls back. + + + + If the database cluster crashes before committing a transaction + containing a nextval + or setval call, the sequence state change might + not have made its way to persistent storage, so that it is uncertain + whether the sequence will have its original or updated state after the + cluster restarts. This is harmless for usage of the sequence within + the database, since other effects of uncommitted transactions will not + be visible either. However, if you wish to use a sequence value for + persistent outside-the-database purposes, make sure that the + nextval call has been committed before doing so. @@ -25080,7 +25091,8 @@ Looks up a replication origin by name and returns the internal ID. If - no such replication origin is found an error is thrown. + no such replication origin is found, NULL is + returned. diff -Nru postgresql-13-13.4/doc/src/sgml/high-availability.sgml postgresql-13-13.7/doc/src/sgml/high-availability.sgml --- postgresql-13-13.4/doc/src/sgml/high-availability.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/high-availability.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1094,7 +1094,7 @@ servers. Waiting for confirmation increases the user's confidence that the changes will not be lost in the event of server crashes but it also necessarily increases the response time for the requesting transaction. - The minimum wait time is the round-trip time between primary to standby. + The minimum wait time is the round-trip time between primary and standby. diff -Nru postgresql-13-13.4/doc/src/sgml/html/acronyms.html postgresql-13-13.7/doc/src/sgml/html/acronyms.html --- postgresql-13-13.4/doc/src/sgml/html/acronyms.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/acronyms.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix L. Acronyms

Appendix L. Acronyms

+Appendix L. Acronyms

Appendix L. Acronyms

This is a list of acronyms commonly used in the PostgreSQL documentation and in discussions about PostgreSQL. @@ -135,7 +135,7 @@ Pluggable Authentication Modules

PGSQL

- PostgreSQL + PostgreSQL

PGXS

PostgreSQL Extension System

PID

@@ -210,4 +210,4 @@ Extensible Markup Language

-

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/admin.html postgresql-13-13.7/doc/src/sgml/html/admin.html --- postgresql-13-13.4/doc/src/sgml/html/admin.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/admin.html 2022-05-09 21:29:12.000000000 +0000 @@ -1,5 +1,5 @@ -Part III. Server Administration

Part III. Server Administration

+Part III. Server Administration

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 @@ -23,4 +23,4 @@ the PostgreSQL database system. Readers are encouraged to look at Part I and Part II for additional information.

Table of Contents

16. Installation from Source Code
16.1. Short Version
16.2. Requirements
16.3. Getting the Source
16.4. Installation Procedure
16.5. Post-Installation Setup
16.6. Supported Platforms
16.7. Platform-Specific Notes
17. Installation from Source Code on Windows
17.1. Building with Visual C++ or the - Microsoft Windows SDK
18. Server Setup and Operation
18.1. The PostgreSQL User Account
18.2. Creating a Database Cluster
18.3. Starting the Database Server
18.4. Managing Kernel Resources
18.5. Shutting Down the Server
18.6. Upgrading a PostgreSQL Cluster
18.7. Preventing Server Spoofing
18.8. Encryption Options
18.9. Secure TCP/IP Connections with SSL
18.10. Secure TCP/IP Connections with GSSAPI Encryption
18.11. Secure TCP/IP Connections with SSH Tunnels
18.12. Registering Event Log on Windows
19. Server Configuration
19.1. Setting Parameters
19.2. File Locations
19.3. Connections and Authentication
19.4. Resource Consumption
19.5. Write Ahead Log
19.6. Replication
19.7. Query Planning
19.8. Error Reporting and Logging
19.9. Run-time Statistics
19.10. Automatic Vacuuming
19.11. Client Connection Defaults
19.12. Lock Management
19.13. Version and Platform Compatibility
19.14. Error Handling
19.15. Preset Options
19.16. Customized Options
19.17. Developer Options
19.18. Short Options
20. Client Authentication
20.1. The pg_hba.conf File
20.2. User Name Maps
20.3. Authentication Methods
20.4. Trust Authentication
20.5. Password Authentication
20.6. GSSAPI Authentication
20.7. SSPI Authentication
20.8. Ident Authentication
20.9. Peer Authentication
20.10. LDAP Authentication
20.11. RADIUS Authentication
20.12. Certificate Authentication
20.13. PAM Authentication
20.14. BSD Authentication
20.15. Authentication Problems
21. Database Roles
21.1. Database Roles
21.2. Role Attributes
21.3. Role Membership
21.4. Dropping Roles
21.5. Default Roles
21.6. Function Security
22. Managing Databases
22.1. Overview
22.2. Creating a Database
22.3. Template Databases
22.4. Database Configuration
22.5. Destroying a Database
22.6. Tablespaces
23. Localization
23.1. Locale Support
23.2. Collation Support
23.3. Character Set Support
24. Routine Database Maintenance Tasks
24.1. Routine Vacuuming
24.2. Routine Reindexing
24.3. Log File Maintenance
25. Backup and Restore
25.1. SQL Dump
25.2. File System Level Backup
25.3. Continuous Archiving and Point-in-Time Recovery (PITR)
26. High Availability, Load Balancing, and Replication
26.1. Comparison of Different Solutions
26.2. Log-Shipping Standby Servers
26.3. Failover
26.4. Alternative Method for Log Shipping
26.5. Hot Standby
27. Monitoring Database Activity
27.1. Standard Unix Tools
27.2. The Statistics Collector
27.3. Viewing Locks
27.4. Progress Reporting
27.5. Dynamic Tracing
28. Monitoring Disk Usage
28.1. Determining Disk Usage
28.2. Disk Full Failure
29. Reliability and the Write-Ahead Log
29.1. Reliability
29.2. Write-Ahead Logging (WAL)
29.3. Asynchronous Commit
29.4. WAL Configuration
29.5. WAL Internals
30. Logical Replication
30.1. Publication
30.2. Subscription
30.3. Conflicts
30.4. Restrictions
30.5. Architecture
30.6. Monitoring
30.7. Security
30.8. Configuration Settings
30.9. Quick Setup
31. Just-in-Time Compilation (JIT)
31.1. What Is JIT compilation?
31.2. When to JIT?
31.3. Configuration
31.4. Extensibility
32. Regression Tests
32.1. Running the Tests
32.2. Test Evaluation
32.3. Variant Comparison Files
32.4. TAP Tests
32.5. Test Coverage Examination
\ No newline at end of file + Microsoft Windows SDK
18. Server Setup and Operation
18.1. The PostgreSQL User Account
18.2. Creating a Database Cluster
18.3. Starting the Database Server
18.4. Managing Kernel Resources
18.5. Shutting Down the Server
18.6. Upgrading a PostgreSQL Cluster
18.7. Preventing Server Spoofing
18.8. Encryption Options
18.9. Secure TCP/IP Connections with SSL
18.10. Secure TCP/IP Connections with GSSAPI Encryption
18.11. Secure TCP/IP Connections with SSH Tunnels
18.12. Registering Event Log on Windows
19. Server Configuration
19.1. Setting Parameters
19.2. File Locations
19.3. Connections and Authentication
19.4. Resource Consumption
19.5. Write Ahead Log
19.6. Replication
19.7. Query Planning
19.8. Error Reporting and Logging
19.9. Run-time Statistics
19.10. Automatic Vacuuming
19.11. Client Connection Defaults
19.12. Lock Management
19.13. Version and Platform Compatibility
19.14. Error Handling
19.15. Preset Options
19.16. Customized Options
19.17. Developer Options
19.18. Short Options
20. Client Authentication
20.1. The pg_hba.conf File
20.2. User Name Maps
20.3. Authentication Methods
20.4. Trust Authentication
20.5. Password Authentication
20.6. GSSAPI Authentication
20.7. SSPI Authentication
20.8. Ident Authentication
20.9. Peer Authentication
20.10. LDAP Authentication
20.11. RADIUS Authentication
20.12. Certificate Authentication
20.13. PAM Authentication
20.14. BSD Authentication
20.15. Authentication Problems
21. Database Roles
21.1. Database Roles
21.2. Role Attributes
21.3. Role Membership
21.4. Dropping Roles
21.5. Default Roles
21.6. Function Security
22. Managing Databases
22.1. Overview
22.2. Creating a Database
22.3. Template Databases
22.4. Database Configuration
22.5. Destroying a Database
22.6. Tablespaces
23. Localization
23.1. Locale Support
23.2. Collation Support
23.3. Character Set Support
24. Routine Database Maintenance Tasks
24.1. Routine Vacuuming
24.2. Routine Reindexing
24.3. Log File Maintenance
25. Backup and Restore
25.1. SQL Dump
25.2. File System Level Backup
25.3. Continuous Archiving and Point-in-Time Recovery (PITR)
26. High Availability, Load Balancing, and Replication
26.1. Comparison of Different Solutions
26.2. Log-Shipping Standby Servers
26.3. Failover
26.4. Alternative Method for Log Shipping
26.5. Hot Standby
27. Monitoring Database Activity
27.1. Standard Unix Tools
27.2. The Statistics Collector
27.3. Viewing Locks
27.4. Progress Reporting
27.5. Dynamic Tracing
28. Monitoring Disk Usage
28.1. Determining Disk Usage
28.2. Disk Full Failure
29. Reliability and the Write-Ahead Log
29.1. Reliability
29.2. Write-Ahead Logging (WAL)
29.3. Asynchronous Commit
29.4. WAL Configuration
29.5. WAL Internals
30. Logical Replication
30.1. Publication
30.2. Subscription
30.3. Conflicts
30.4. Restrictions
30.5. Architecture
30.6. Monitoring
30.7. Security
30.8. Configuration Settings
30.9. Quick Setup
31. Just-in-Time Compilation (JIT)
31.1. What Is JIT compilation?
31.2. When to JIT?
31.3. Configuration
31.4. Extensibility
32. Regression Tests
32.1. Running the Tests
32.2. Test Evaluation
32.3. Variant Comparison Files
32.4. TAP Tests
32.5. Test Coverage Examination
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/adminpack.html postgresql-13-13.7/doc/src/sgml/html/adminpack.html --- postgresql-13-13.4/doc/src/sgml/html/adminpack.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/adminpack.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.1. adminpack

F.1. adminpack

+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 @@ -85,4 +85,4 @@ directory. The log_filename parameter must have its default setting (postgresql-%Y-%m-%d_%H%M%S.log) to use this function. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/amcheck.html postgresql-13-13.7/doc/src/sgml/html/amcheck.html --- postgresql-13-13.4/doc/src/sgml/html/amcheck.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/amcheck.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.2. amcheck

F.2. amcheck

+F.2. amcheck

F.2. amcheck

The amcheck module provides functions that allow you to verify the logical consistency of the structure of relations. If the structure appears to be valid, no error is raised. @@ -264,4 +264,4 @@ an invariant violation should be sought. pageinspect may play a useful role in diagnosing corruption that amcheck detects. A REINDEX may not be effective in repairing corruption. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-clusterdb.html postgresql-13-13.7/doc/src/sgml/html/app-clusterdb.html --- postgresql-13-13.4/doc/src/sgml/html/app-clusterdb.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-clusterdb.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -clusterdb

clusterdb

clusterdb — cluster a PostgreSQL database

Synopsis

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

clusterdb

clusterdb — cluster a PostgreSQL database

Synopsis

clusterdb [connection-option...] [ --verbose | -v ] [ --table | -t table @@ -119,4 +119,4 @@ xyzzy:

 $ clusterdb --table=foo xyzzy
-

See Also

CLUSTER
\ No newline at end of file +

See Also

CLUSTER
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-createdb.html postgresql-13-13.7/doc/src/sgml/html/app-createdb.html --- postgresql-13-13.4/doc/src/sgml/html/app-createdb.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-createdb.html 2022-05-09 21:29:22.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. @@ -138,4 +138,4 @@

 $ createdb -p 5000 -h eden -T template0 -e demo
 CREATE DATABASE demo TEMPLATE template0;
-
\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-createuser.html postgresql-13-13.7/doc/src/sgml/html/app-createuser.html --- postgresql-13-13.4/doc/src/sgml/html/app-createuser.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-createuser.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -createuser

createuser

createuser — define a new PostgreSQL user account

Synopsis

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

Description

+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 @@ -179,4 +179,4 @@ In the above example, the new password isn't actually echoed when typed, but we show what was typed for clarity. As you see, the password is encrypted before it is sent to the client. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-dropdb.html postgresql-13-13.7/doc/src/sgml/html/app-dropdb.html --- postgresql-13-13.4/doc/src/sgml/html/app-dropdb.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-dropdb.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -dropdb

dropdb

dropdb — remove a PostgreSQL database

Synopsis

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

Description

+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 @@ -108,4 +108,4 @@ Database "demo" will be permanently deleted. Are you sure? (y/n) y DROP DATABASE demo; -

\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-dropuser.html postgresql-13-13.7/doc/src/sgml/html/app-dropuser.html --- postgresql-13-13.4/doc/src/sgml/html/app-dropuser.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-dropuser.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -dropuser

dropuser

dropuser — remove a PostgreSQL user account

Synopsis

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

Description

+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 @@ -100,4 +100,4 @@ Role "joe" will be permanently removed. Are you sure? (y/n) y DROP ROLE joe; -

\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-ecpg.html postgresql-13-13.7/doc/src/sgml/html/app-ecpg.html --- postgresql-13-13.4/doc/src/sgml/html/app-ecpg.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-ecpg.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -ecpg

ecpg

ecpg — embedded SQL C preprocessor

Synopsis

ecpg [option...] file...

Description

+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 @@ -103,4 +103,4 @@ ecpg prog1.pgc cc -I/usr/local/pgsql/include -c prog1.c cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg -

\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/appendixes.html postgresql-13-13.7/doc/src/sgml/html/appendixes.html --- postgresql-13-13.4/doc/src/sgml/html/appendixes.html 2021-08-09 21:03:14.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/appendixes.html 2022-05-09 21:29:32.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. POSIX Time Zone Specifications
B.6. History of Units
B.7. Julian Dates
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 13.4
E.2. Release 13.3
E.3. Release 13.2
E.4. Release 13.1
E.5. Release 13
E.6. 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. citext
F.9. cube
F.10. dblink
F.11. dict_int
F.12. dict_xsyn
F.13. earthdistance
F.14. file_fdw
F.15. fuzzystrmatch
F.16. hstore
F.17. intagg
F.18. intarray
F.19. isn
F.20. lo
F.21. ltree
F.22. pageinspect
F.23. passwordcheck
F.24. pg_buffercache
F.25. pgcrypto
F.26. pg_freespacemap
F.27. pg_prewarm
F.28. pgrowlocks
F.29. pg_stat_statements
F.30. pgstattuple
F.31. pg_trgm
F.32. pg_visibility
F.33. postgres_fdw
F.34. seg
F.35. sepgsql
F.36. spi
F.37. sslinfo
F.38. tablefunc
F.39. tcn
F.40. test_decoding
F.41. tsm_system_rows
F.42. tsm_system_time
F.43. unaccent
F.44. uuid-ossp
F.45. 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. PostgreSQL Limits
L. Acronyms
M. Glossary
N. Color Support
N.1. When Color is Used
N.2. Configuring the Colors
O. Obsolete or Renamed Features
O.1. recovery.conf file merged into postgresql.conf
O.2. pg_xlogdump renamed to pg_waldump
O.3. pg_resetxlog renamed to pg_resetwal
O.4. pg_receivexlog renamed to pg_receivewal
\ 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. POSIX Time Zone Specifications
B.6. History of Units
B.7. Julian Dates
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 13.7
E.2. Release 13.6
E.3. Release 13.5
E.4. Release 13.4
E.5. Release 13.3
E.6. Release 13.2
E.7. Release 13.1
E.8. Release 13
E.9. 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. citext
F.9. cube
F.10. dblink
F.11. dict_int
F.12. dict_xsyn
F.13. earthdistance
F.14. file_fdw
F.15. fuzzystrmatch
F.16. hstore
F.17. intagg
F.18. intarray
F.19. isn
F.20. lo
F.21. ltree
F.22. pageinspect
F.23. passwordcheck
F.24. pg_buffercache
F.25. pgcrypto
F.26. pg_freespacemap
F.27. pg_prewarm
F.28. pgrowlocks
F.29. pg_stat_statements
F.30. pgstattuple
F.31. pg_trgm
F.32. pg_visibility
F.33. postgres_fdw
F.34. seg
F.35. sepgsql
F.36. spi
F.37. sslinfo
F.38. tablefunc
F.39. tcn
F.40. test_decoding
F.41. tsm_system_rows
F.42. tsm_system_time
F.43. unaccent
F.44. uuid-ossp
F.45. 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. PostgreSQL Limits
L. Acronyms
M. Glossary
N. Color Support
N.1. When Color is Used
N.2. Configuring the Colors
O. Obsolete or Renamed Features
O.1. recovery.conf file merged into postgresql.conf
O.2. pg_xlogdump renamed to pg_waldump
O.3. pg_resetxlog renamed to pg_resetwal
O.4. pg_receivexlog renamed to pg_receivewal
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/appendix-obsolete.html postgresql-13-13.7/doc/src/sgml/html/appendix-obsolete.html --- postgresql-13-13.4/doc/src/sgml/html/appendix-obsolete.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/appendix-obsolete.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,8 +1,8 @@ -Appendix O. Obsolete or Renamed Features

Appendix O. Obsolete or Renamed Features

+Appendix O. Obsolete or Renamed Features

Appendix O. Obsolete or Renamed Features

Functionality is sometimes removed from PostgreSQL, feature, setting and file names sometimes change, or documentation moves to different places. This section directs users coming from old versions of the documentation or from external links to the appropriate new location for the information they need. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-initdb.html postgresql-13-13.7/doc/src/sgml/html/app-initdb.html --- postgresql-13-13.4/doc/src/sgml/html/app-initdb.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-initdb.html 2022-05-09 21:29:24.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 @@ -210,4 +210,4 @@

Notes

initdb can also be invoked via pg_ctl initdb. -

See Also

pg_ctl, postgres
\ No newline at end of file +

See Also

pg_ctl, postgres
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/applevel-consistency.html postgresql-13-13.7/doc/src/sgml/html/applevel-consistency.html --- postgresql-13-13.4/doc/src/sgml/html/applevel-consistency.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/applevel-consistency.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -13.4. Data Consistency Checks at the Application Level

13.4. Data Consistency Checks at the Application Level

+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 @@ -111,4 +111,4 @@ UPDATE, or DELETE), so it is possible to obtain locks explicitly before the snapshot is frozen. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgbasebackup.html postgresql-13-13.7/doc/src/sgml/html/app-pgbasebackup.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgbasebackup.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgbasebackup.html 2022-05-09 21:29:22.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 a base backup of a running PostgreSQL database cluster. The backup is taken without affecting other clients of the database, and can be used @@ -486,4 +486,4 @@ to ./backup/ts:

 $ pg_basebackup -D backup/data -T /opt/ts=$(pwd)/backup/ts
-

See Also

pg_dump
\ No newline at end of file +

See Also

pg_dump
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgchecksums.html postgresql-13-13.7/doc/src/sgml/html/app-pgchecksums.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgchecksums.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgchecksums.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -pg_checksums

pg_checksums

pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster

Synopsis

pg_checksums [option...] [[ -D | --pgdata ]datadir]

Description

+pg_checksums

pg_checksums

pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster

Synopsis

pg_checksums [option...] [[ -D | --pgdata ]datadir]

Description

pg_checksums checks, enables or disables data checksums in a PostgreSQL cluster. The server must be shut down cleanly before running @@ -71,4 +71,4 @@ enabling or disabling checksums, the cluster's data checksum configuration remains unchanged, and pg_checksums can be re-run to perform the same operation. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgconfig.html postgresql-13-13.7/doc/src/sgml/html/app-pgconfig.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgconfig.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgconfig.html 2022-05-09 21:29:23.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

+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 @@ -107,4 +107,4 @@ shell quotation marks so arguments with spaces are represented correctly. Therefore, using eval is required for proper results. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgcontroldata.html postgresql-13-13.7/doc/src/sgml/html/app-pgcontroldata.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgcontroldata.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgcontroldata.html 2022-05-09 21:29:24.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 | --pgdata ]datadir]

Description

+pg_controldata

pg_controldata

pg_controldata — display control information of a PostgreSQL database cluster

Synopsis

pg_controldata [option] [[ -D | --pgdata ]datadir]

Description

pg_controldata prints information initialized during initdb, such as the catalog version. It also shows information about write-ahead logging and checkpoint @@ -20,4 +20,4 @@ Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pg-ctl.html postgresql-13-13.7/doc/src/sgml/html/app-pg-ctl.html --- postgresql-13-13.4/doc/src/sgml/html/app-pg-ctl.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pg-ctl.html 2022-05-09 21:29:24.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] @@ -285,4 +285,4 @@ /usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128"

The second line is the command that would be invoked in restart mode. -

See Also

initdb, postgres
\ No newline at end of file +

See Also

initdb, postgres
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pg-dumpall.html postgresql-13-13.7/doc/src/sgml/html/app-pg-dumpall.html --- postgresql-13-13.4/doc/src/sgml/html/app-pg-dumpall.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pg-dumpall.html 2022-05-09 21:29:23.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

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 @@ -347,4 +347,4 @@

See Also

Check pg_dump for details on possible error conditions. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgdump.html postgresql-13-13.7/doc/src/sgml/html/app-pgdump.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgdump.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgdump.html 2022-05-09 21:29:23.000000000 +0000 @@ -1,5 +1,5 @@ -pg_dump

pg_dump

pg_dump — +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 @@ -803,4 +803,4 @@

 $ pg_dump -t "\"MixedCaseName\"" mydb > mytab.sql
-
\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pg-isready.html postgresql-13-13.7/doc/src/sgml/html/app-pg-isready.html --- postgresql-13-13.4/doc/src/sgml/html/app-pg-isready.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pg-isready.html 2022-05-09 21:29:23.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

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. @@ -76,4 +76,4 @@ $ echo $? 2

-

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgreceivewal.html postgresql-13-13.7/doc/src/sgml/html/app-pgreceivewal.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgreceivewal.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgreceivewal.html 2022-05-09 21:29:23.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 @@ -39,6 +39,18 @@ max_wal_senders set high enough to leave at least one session available for the stream.

+ The starting point of the write-ahead log streaming is calculated when + pg_receivewal starts: +

  1. + First, scan the directory where the WAL segment files are written and + find the newest completed segment file, using as the starting point the + beginning of the next WAL segment file. +

  2. + If a starting point cannot be calculated with the previous method, + the latest WAL flush location is used as reported by the server from + an IDENTIFY_SYSTEM command. +

+

If the connection is lost, or if it cannot be initially established, with a non-fatal error, pg_receivewal will retry the connection indefinitely, and reestablish streaming as soon @@ -207,4 +219,4 @@ /usr/local/pgsql/archive:

 $ pg_receivewal -h mydbserver -D /usr/local/pgsql/archive
-
\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgreceivexlog.html postgresql-13-13.7/doc/src/sgml/html/app-pgreceivexlog.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgreceivexlog.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgreceivexlog.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,10 +1,10 @@ -O.4. pg_receivexlog renamed to pg_receivewal

O.4. pg_receivexlog renamed to pg_receivewal

+O.4. pg_receivexlog renamed to pg_receivewal

O.4. pg_receivexlog renamed to pg_receivewal

PostgreSQL 9.6 and below provided a command named pg_receivexlog to fetch write-ahead-log (WAL) files. This command was renamed to pg_receivewal, see pg_receivewal for documentation of pg_receivewal and see - the release notes for PostgreSQL 10 for details + the release notes for PostgreSQL 10 for details on this change. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgrecvlogical.html postgresql-13-13.7/doc/src/sgml/html/app-pgrecvlogical.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgrecvlogical.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgrecvlogical.html 2022-05-09 21:29:23.000000000 +0000 @@ -1,5 +1,5 @@ -pg_recvlogical

pg_recvlogical

pg_recvlogical — control PostgreSQL logical decoding streams

Synopsis

pg_recvlogical [option...]

Description

+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.

@@ -168,4 +168,4 @@ cluster.

Examples

See Section 48.1 for an example. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgresetwal.html postgresql-13-13.7/doc/src/sgml/html/app-pgresetwal.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgresetwal.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgresetwal.html 2022-05-09 21:29:24.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 | --force ] [ -n | --dry-run ] [option...] [ -D | --pgdata ]datadir

Description

+pg_resetwal

pg_resetwal

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

Synopsis

pg_resetwal [ -f | --force ] [ -n | --dry-run ] [option...] [ -D | --pgdata ]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 @@ -166,4 +166,4 @@

pg_resetwal works only with servers of the same major version. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgresetxlog.html postgresql-13-13.7/doc/src/sgml/html/app-pgresetxlog.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgresetxlog.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgresetxlog.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,10 +1,10 @@ -O.3. pg_resetxlog renamed to pg_resetwal

O.3. pg_resetxlog renamed to pg_resetwal

+O.3. pg_resetxlog renamed to pg_resetwal

O.3. pg_resetxlog renamed to pg_resetwal

PostgreSQL 9.6 and below provided a command named pg_resetxlog to reset the write-ahead-log (WAL) files. This command was renamed to pg_resetwal, see pg_resetwal for documentation of pg_resetwal and see - the release notes for PostgreSQL 10 for details + the release notes for PostgreSQL 10 for details on this change. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgrestore.html postgresql-13-13.7/doc/src/sgml/html/app-pgrestore.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgrestore.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgrestore.html 2022-05-09 21:29:23.000000000 +0000 @@ -1,5 +1,5 @@ -pg_restore

pg_restore

pg_restore — +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

@@ -488,4 +488,4 @@ items 10 and 6, in that order:

 $ pg_restore -L db.list db.dump
-
\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgrewind.html postgresql-13-13.7/doc/src/sgml/html/app-pgrewind.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgrewind.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgrewind.html 2022-05-09 21:29:24.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

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 @@ -104,8 +104,8 @@ to be written safely to disk. This option causes pg_rewind to return without waiting, which is faster, but means that a subsequent operating system crash can leave - the synchronized data directory corrupt. Generally, this option is - useful for testing but should not be used on a production + the data directory corrupt. Generally, this option is useful for + testing but should not be used on a production installation.

-P
--progress

Enables progress reporting. Turning this on will deliver an approximate @@ -205,4 +205,4 @@ When starting the target, PostgreSQL replays all the required WAL, resulting in a data directory in a consistent state. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-pgverifybackup.html postgresql-13-13.7/doc/src/sgml/html/app-pgverifybackup.html --- postgresql-13-13.4/doc/src/sgml/html/app-pgverifybackup.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-pgverifybackup.html 2022-05-09 21:29:23.000000000 +0000 @@ -1,5 +1,5 @@ -pg_verifybackup

pg_verifybackup

pg_verifybackup — verify the integrity of a base backup of a +pg_verifybackup

pg_verifybackup

pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster

Synopsis

pg_verifybackup [option...]

Description

pg_verifybackup is used to check the integrity of a database cluster backup taken using @@ -141,4 +141,4 @@ $ pg_basebackup -h mydbserver -D /usr/local/pgsql/data $ edit /usr/local/pgsql/data/note.to.self $ pg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data -

\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-postgres.html postgresql-13-13.7/doc/src/sgml/html/app-postgres.html --- postgresql-13-13.4/doc/src/sgml/html/app-postgres.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-postgres.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -postgres

postgres

postgres — PostgreSQL database server

Synopsis

postgres [option...]

Description

+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 @@ -437,4 +437,4 @@

See Also

initdb, pg_ctl -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-postmaster.html postgresql-13-13.7/doc/src/sgml/html/app-postmaster.html --- postgresql-13-13.4/doc/src/sgml/html/app-postmaster.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-postmaster.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,6 +1,6 @@ -postmaster

postmaster

postmaster — PostgreSQL database server

Synopsis

postmaster [option...]

Description

+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 +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-psql.html postgresql-13-13.7/doc/src/sgml/html/app-psql.html --- postgresql-13-13.4/doc/src/sgml/html/app-psql.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-psql.html 2022-05-09 21:29:23.000000000 +0000 @@ -1,5 +1,5 @@ -psql

psql

psql — +psql

psql

psqlPostgreSQL interactive terminal

Synopsis

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

Description

@@ -349,7 +349,7 @@ the string =>. For example:

 $ psql testdb
-psql (13.4)
+psql (13.7)
 Type "help" for help.
 
 testdb=>
@@ -2815,4 +2815,4 @@
  2 | 202 | 204 | 206 | 208
  1 | 101 | 102 | 103 | 104
 (4 rows)
-
\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-reindexdb.html postgresql-13-13.7/doc/src/sgml/html/app-reindexdb.html --- postgresql-13-13.4/doc/src/sgml/html/app-reindexdb.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-reindexdb.html 2022-05-09 21:29:23.000000000 +0000 @@ -1,5 +1,5 @@ -reindexdb

reindexdb

reindexdb — reindex a PostgreSQL database

Synopsis

reindexdb [connection-option...] [option...] +reindexdb

reindexdb

reindexdb — reindex a PostgreSQL database

Synopsis

reindexdb [connection-option...] [option...] [ -S | --schema schema @@ -63,7 +63,7 @@

-q
--quiet

Do not display progress messages.

-s
--system

- Reindex database's system catalogs. + Reindex database's system catalogs only.

-S schema
--schema=schema

Reindex schema only. Multiple schemas can be reindexed by writing multiple @@ -158,4 +158,4 @@ bar in a database named abcd:

 $ reindexdb --table=foo --index=bar abcd
-

See Also

REINDEX
\ No newline at end of file +

See Also

REINDEX
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/app-vacuumdb.html postgresql-13-13.7/doc/src/sgml/html/app-vacuumdb.html --- postgresql-13-13.4/doc/src/sgml/html/app-vacuumdb.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/app-vacuumdb.html 2022-05-09 21:29:23.000000000 +0000 @@ -1,5 +1,5 @@ -vacuumdb

vacuumdb

vacuumdb — garbage-collect and analyze a PostgreSQL database

Synopsis

vacuumdb [connection-option...] [option...] +vacuumdb

vacuumdb

vacuumdb — garbage-collect and analyze a PostgreSQL database

Synopsis

vacuumdb [connection-option...] [option...] [ -t | --table table @@ -217,4 +217,4 @@ bar of the table for the optimizer:

 $ vacuumdb --analyze --verbose --table='foo(bar)' xyzzy
-

See Also

VACUUM
\ No newline at end of file +

See Also

VACUUM
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/arrays.html postgresql-13-13.7/doc/src/sgml/html/arrays.html --- postgresql-13-13.4/doc/src/sgml/html/arrays.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/arrays.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.15. Arrays

8.15. Arrays

+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, composite type, range type, @@ -644,4 +644,4 @@ with than the array-literal syntax when writing array values in SQL commands. In ARRAY, individual element values are written the same way they would be written when not members of an array. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-bsd.html postgresql-13-13.7/doc/src/sgml/html/auth-bsd.html --- postgresql-13-13.4/doc/src/sgml/html/auth-bsd.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-bsd.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.14. BSD Authentication

20.14. BSD Authentication

+20.14. BSD Authentication

20.14. BSD Authentication

This authentication method operates similarly to password except that it uses BSD Authentication to verify the password. BSD Authentication is used only @@ -18,4 +18,4 @@ operating system user running the server) must first be added to the auth group. The auth group exists by default on OpenBSD systems. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-cert.html postgresql-13-13.7/doc/src/sgml/html/auth-cert.html --- postgresql-13-13.4/doc/src/sgml/html/auth-cert.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-cert.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.12. Certificate Authentication

20.12. Certificate Authentication

+20.12. Certificate Authentication

20.12. 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 @@ -21,4 +21,4 @@ cert authentication because cert authentication is effectively trust authentication with clientcert=verify-full. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-delay.html postgresql-13-13.7/doc/src/sgml/html/auth-delay.html --- postgresql-13-13.4/doc/src/sgml/html/auth-delay.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-delay.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.3. auth_delay

F.3. auth_delay

+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 @@ -25,4 +25,4 @@ auth_delay.milliseconds = '500'

F.3.2. Author

KaiGai Kohei -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-ident.html postgresql-13-13.7/doc/src/sgml/html/auth-ident.html --- postgresql-13-13.4/doc/src/sgml/html/auth-ident.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-ident.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.8. Ident Authentication

20.8. Ident Authentication

+20.8. Ident Authentication

20.8. Ident Authentication

The ident authentication method works by obtaining the client's operating system user name from an ident server and using it as the allowed database user name (with an optional user name mapping). @@ -48,4 +48,4 @@ used when using the ident server with PostgreSQL, since PostgreSQL does not have any way to decrypt the returned string to determine the actual user name. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-ldap.html postgresql-13-13.7/doc/src/sgml/html/auth-ldap.html --- postgresql-13-13.4/doc/src/sgml/html/auth-ldap.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-ldap.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.10. LDAP Authentication

20.10. LDAP Authentication

+20.10. LDAP Authentication

20.10. LDAP Authentication

This authentication method operates similarly to password except that it uses LDAP as the password verification method. LDAP is used only to validate @@ -185,4 +185,4 @@ Since LDAP often uses commas and spaces to separate the different parts of a DN, it is often necessary to use double-quoted parameter values when configuring LDAP options, as shown in the examples. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-methods.html postgresql-13-13.7/doc/src/sgml/html/auth-methods.html --- postgresql-13-13.4/doc/src/sgml/html/auth-methods.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-methods.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.3. Authentication Methods

20.3. Authentication Methods

+20.3. Authentication Methods

20.3. Authentication Methods

PostgreSQL provides various methods for authenticating users: @@ -55,4 +55,4 @@

The following sections describe each of these authentication methods in more detail. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-pam.html postgresql-13-13.7/doc/src/sgml/html/auth-pam.html --- postgresql-13-13.4/doc/src/sgml/html/auth-pam.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-pam.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.13. PAM Authentication

20.13. PAM Authentication

+20.13. PAM Authentication

20.13. PAM Authentication

This authentication method operates similarly to password except that it uses PAM (Pluggable Authentication Modules) as the authentication mechanism. The @@ -28,4 +28,4 @@ will fail because the PostgreSQL server is started by a non-root user. However, this is not an issue when PAM is configured to use LDAP or other authentication methods. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-password.html postgresql-13-13.7/doc/src/sgml/html/auth-password.html --- postgresql-13-13.4/doc/src/sgml/html/auth-password.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-password.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.5. Password Authentication

20.5. Password Authentication

+20.5. Password Authentication

20.5. Password Authentication

There are several password-based authentication methods. These methods operate similarly but differ in how the users' passwords are stored on the server and how the password provided by a client is sent across the @@ -77,4 +77,4 @@ in postgresql.conf, make all users set new passwords, and change the authentication method specifications in pg_hba.conf to scram-sha-256. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-peer.html postgresql-13-13.7/doc/src/sgml/html/auth-peer.html --- postgresql-13-13.4/doc/src/sgml/html/auth-peer.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-peer.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.9. Peer Authentication

20.9. Peer Authentication

+20.9. Peer Authentication

20.9. Peer Authentication

The peer authentication method works by obtaining the client's operating system user name from the kernel and using it as the allowed database user name (with optional user name mapping). This @@ -18,4 +18,4 @@ most flavors of BSD including macOS, and Solaris. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-pg-hba-conf.html postgresql-13-13.7/doc/src/sgml/html/auth-pg-hba-conf.html --- postgresql-13-13.4/doc/src/sgml/html/auth-pg-hba-conf.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-pg-hba-conf.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.1. The pg_hba.conf File

20.1. The pg_hba.conf 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 @@ -462,4 +462,4 @@ # The database column can also use lists and file names: local db1,db2,@demodbs all md5 -


\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-radius.html postgresql-13-13.7/doc/src/sgml/html/auth-radius.html --- postgresql-13-13.4/doc/src/sgml/html/auth-radius.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-radius.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.11. RADIUS Authentication

20.11. RADIUS Authentication

+20.11. RADIUS Authentication

20.11. RADIUS Authentication

This authentication method operates similarly to password except that it uses RADIUS as the password verification method. RADIUS is used only to validate @@ -62,4 +62,4 @@

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

-

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-trust.html postgresql-13-13.7/doc/src/sgml/html/auth-trust.html --- postgresql-13-13.4/doc/src/sgml/html/auth-trust.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-trust.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.4. Trust Authentication

20.4. Trust Authentication

+20.4. Trust Authentication

20.4. Trust Authentication

When trust authentication is specified, PostgreSQL assumes that anyone who can connect to the server is authorized to access the database with @@ -34,4 +34,4 @@ to the server by the pg_hba.conf lines that specify trust. It is seldom reasonable to use trust for any TCP/IP connections other than those from localhost (127.0.0.1). -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auth-username-maps.html postgresql-13-13.7/doc/src/sgml/html/auth-username-maps.html --- postgresql-13-13.4/doc/src/sgml/html/auth-username-maps.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auth-username-maps.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.2. User Name Maps

20.2. User Name Maps

+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. @@ -91,4 +91,4 @@ omicron robert bob # bryanh can also connect as guest1 omicron bryanh guest1 -


\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/auto-explain.html postgresql-13-13.7/doc/src/sgml/html/auto-explain.html --- postgresql-13-13.4/doc/src/sgml/html/auto-explain.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/auto-explain.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.4. auto_explain

F.4. auto_explain

+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 @@ -186,4 +186,4 @@ Filter: indisunique

F.4.3. Author

Takahiro Itagaki -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/backup-dump.html postgresql-13-13.7/doc/src/sgml/html/backup-dump.html --- postgresql-13-13.4/doc/src/sgml/html/backup-dump.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/backup-dump.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -25.1. SQL Dump

25.1. SQL Dump

+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. @@ -244,4 +244,4 @@ You can use pg_restore -j to restore a dump in parallel. This will work for any archive of either the "custom" or the "directory" archive mode, whether or not it has been created with pg_dump -j. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/backup-file.html postgresql-13-13.7/doc/src/sgml/html/backup-file.html --- postgresql-13-13.4/doc/src/sgml/html/backup-file.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/backup-file.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -25.2. File System Level Backup

25.2. File System Level Backup

+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 @@ -88,4 +88,4 @@ than an SQL dump. (pg_dump does not need to dump the contents of indexes for example, just the commands to recreate them.) However, taking a file system backup might be faster. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/backup.html postgresql-13-13.7/doc/src/sgml/html/backup.html --- postgresql-13-13.4/doc/src/sgml/html/backup.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/backup.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 25. Backup and Restore

Chapter 25. Backup and Restore

+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 @@ -10,4 +10,4 @@

  • SQL dump

  • File system level backup

  • Continuous archiving

Each has its own strengths and weaknesses; each is discussed in turn in the following sections. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/backup-manifest-files.html postgresql-13-13.7/doc/src/sgml/html/backup-manifest-files.html --- postgresql-13-13.4/doc/src/sgml/html/backup-manifest-files.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/backup-manifest-files.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -72.2. Backup Manifest File Object

72.2. Backup Manifest File Object

+72.2. Backup Manifest File Object

72.2. Backup Manifest File Object

The object which describes a single file contains either a Path key or an Encoded-Path key. Normally, the Path key will be present. The @@ -36,4 +36,4 @@

Checksum

The checksum computed for this file, stored as a series of hexadecimal characters, two for each byte of the checksum. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/backup-manifest-format.html postgresql-13-13.7/doc/src/sgml/html/backup-manifest-format.html --- postgresql-13-13.4/doc/src/sgml/html/backup-manifest-format.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/backup-manifest-format.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 72. Backup Manifest Format

Chapter 72. Backup Manifest Format

+Chapter 72. Backup Manifest Format

Chapter 72. Backup Manifest Format

The backup manifest generated by pg_basebackup is primarily intended to permit the backup to be verified using pg_verifybackup. However, it is @@ -13,4 +13,4 @@ supported server encoding. There is no similar exception for backup manifests.) The JSON document is always an object; the keys that are present in this object are described in the next section. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/backup-manifest-toplevel.html postgresql-13-13.7/doc/src/sgml/html/backup-manifest-toplevel.html --- postgresql-13-13.4/doc/src/sgml/html/backup-manifest-toplevel.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/backup-manifest-toplevel.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -72.1. Backup Manifest Top-level Object

72.1. Backup Manifest Top-level Object

+72.1. Backup Manifest Top-level Object

72.1. Backup Manifest Top-level Object

The backup manifest JSON document contains the following keys.

PostgreSQL-Backup-Manifest-Version

The associated value is always the integer 1. @@ -22,4 +22,4 @@ is significantly more expensive than a CRC32C checksum, the manifest should normally be small enough that the extra computation won't matter very much. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/backup-manifest-wal-ranges.html postgresql-13-13.7/doc/src/sgml/html/backup-manifest-wal-ranges.html --- postgresql-13-13.4/doc/src/sgml/html/backup-manifest-wal-ranges.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/backup-manifest-wal-ranges.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -72.3. Backup Manifest WAL Range Object

72.3. Backup Manifest WAL Range Object

+72.3. Backup Manifest WAL Range Object

72.3. Backup Manifest WAL Range Object

The object which describes a WAL range always has three keys:

Timeline

The timeline for this range of WAL records, as an integer. @@ -19,4 +19,4 @@ upstream promotion, it is possible for multiple ranges to be present, each with a different timeline. There will never be multiple WAL ranges present for the same timeline. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/bgworker.html postgresql-13-13.7/doc/src/sgml/html/bgworker.html --- postgresql-13-13.4/doc/src/sgml/html/bgworker.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/bgworker.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 47. Background Worker Processes

Chapter 47. Background Worker 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. @@ -94,8 +94,8 @@ is reached.

bgw_restart_time is the interval, in seconds, that - postgres should wait before restarting the process, in - case it crashes. It can be any positive value, + postgres should wait before restarting the process in + the event that it crashes. It can be any positive value, or BGW_NEVER_RESTART, indicating not to restart the process in case of a crash.

@@ -218,15 +218,13 @@ BGWH_STOPPED, if postmaster dies it will return BGWH_POSTMASTER_DIED.

- If a background worker sends asynchronous notifications with the - NOTIFY command via the Server Programming Interface - (SPI), it should call - ProcessCompletedNotifies explicitly after committing - the enclosing transaction so that any notifications can be delivered. If a - background worker registers to receive asynchronous notifications with - the LISTEN through SPI, the worker - will log those notifications, but there is no programmatic way for the - worker to intercept and respond to those notifications. + Background workers can send asynchronous notification messages, either by + using the NOTIFY command via SPI, + or directly via Async_Notify(). Such notifications + will be sent at transaction commit. + Background workers should not register to receive asynchronous + notifications with the LISTEN command, as there is no + infrastructure for a worker to consume such notifications.

The src/test/modules/worker_spi module contains a working example, @@ -234,4 +232,4 @@

The maximum number of registered background workers is limited by max_worker_processes. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/biblio.html postgresql-13-13.7/doc/src/sgml/html/biblio.html --- postgresql-13-13.4/doc/src/sgml/html/biblio.html 2021-08-09 21:03:14.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/biblio.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,5 +1,5 @@ -Bibliography

Bibliography

+Bibliography

Bibliography

Selected references and readings for SQL and PostgreSQL.

@@ -7,7 +7,7 @@ POSTGRES development team are available at the University of California, Berkeley, Computer Science Department web site. -

SQL Reference Books

[bowman01] The Practical SQL Handbook. Using SQL Variants. Fourth Edition. Judith Bowman, Sandra Emerson, and Marcy Darnovsky. ISBN 0-201-70309-2. Addison-Wesley Professional. 2001.

[date97] A Guide to the SQL Standard. A user's guide to the standard database language SQL. Fourth Edition. C. J. Date and Hugh Darwen. ISBN 0-201-96426-0. Addison-Wesley. 1997.

[date04] An Introduction to Database Systems. Eighth Edition. C. J. Date. ISBN 0-321-19784-4. Addison-Wesley. 2003.

[elma04] Fundamentals of Database Systems. Fourth Edition. Ramez Elmasri and Shamkant Navathe. ISBN 0-321-12226-7. Addison-Wesley. 2003.

[melt93] Understanding the New SQL. A complete guide. Jim Melton and Alan R. Simon. ISBN 1-55860-245-3. Morgan Kaufmann. 1993.

[ull88] Principles of Database and Knowledge-Base Systems. Classical Database Systems. Jeffrey D. Ullman. Volume 1. Computer Science Press. 1988.

[sqltr-19075-6] SQL Technical Report. Part 6: SQL support for JavaScript Object +

SQL Reference Books

[bowman01] The Practical SQL Handbook. Using SQL Variants. Fourth Edition. Judith Bowman, Sandra Emerson, and Marcy Darnovsky. ISBN 0-201-70309-2. Addison-Wesley Professional. 2001.

[date97] A Guide to the SQL Standard. A user's guide to the standard database language SQL. Fourth Edition. C. J. Date and Hugh Darwen. ISBN 0-201-96426-0. Addison-Wesley. 1997.

[date04] An Introduction to Database Systems. Eighth Edition. C. J. Date. ISBN 0-321-19784-4. Addison-Wesley. 2003.

[elma04] Fundamentals of Database Systems. Fourth Edition. Ramez Elmasri and Shamkant Navathe. ISBN 0-321-12226-7. Addison-Wesley. 2003.

[melt93] Understanding the New SQL. A complete guide. Jim Melton and Alan R. Simon. ISBN 1-55860-245-3. Morgan Kaufmann. 1993.

[ull88] Principles of Database and Knowledge-Base Systems. Classical Database Systems. Jeffrey D. Ullman. Volume 1. Computer Science Press. 1988.

[sqltr-19075-6] SQL Technical Report. Part 6: SQL support for JavaScript Object Notation (JSON). First Edition. 2017.

PostgreSQL-specific Documentation

[sim98] Enhancement of the ANSI SQL Implementation of PostgreSQL. Stefan Simkovics. Department of Information Systems, Vienna University of Technology. Vienna, Austria. November 29, 1998.

[yu95] The Postgres95. User Manual. A. Yu and J. Chen. University of California. Berkeley, California. Sept. 5, 1995.

[fong] The design and implementation of the POSTGRES query optimizer. Zelaine Fong. University of California, Berkeley, Computer Science Department.

Proceedings and Articles

[ports12] Serializable Snapshot Isolation in PostgreSQL”. D. Ports and K. Grittner. VLDB Conference, August 2012.

[berenson95] A Critique of ANSI SQL Isolation Levels”. H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O'Neil, and P. O'Neil. ACM-SIGMOD Conference on Management of Data, June 1995.

[olson93] Partial indexing in POSTGRES: research project. Nels Olson. UCB Engin T7.49.1993 O676. University of California. Berkeley, California. 1993.

[ong90] “A Unified Framework for Version Modeling Using Production Rules in a Database System”. L. Ong and J. Goh. ERL Technical Memorandum M90/33. University of California. Berkeley, California. April, 1990.

[rowe87] The POSTGRES @@ -20,4 +20,4 @@ system”. M. Stonebraker, M. Hearst, and S. Potamianos. SIGMOD Record 18(3). Sept. 1989.

[ston89b] The case for partial indexes”. M. Stonebraker. SIGMOD Record 18(4). Dec. 1989. 4–11.

[ston90a] The implementation of POSTGRES”. M. Stonebraker, L. A. Rowe, and M. Hirohama. Transactions on Knowledge and Data Engineering 2(1). IEEE. March 1990.

[ston90b] On - Rules, Procedures, Caching and Views in Database Systems”. M. Stonebraker, A. Jhingran, J. Goh, and S. Potamianos. ACM-SIGMOD Conference on Management of Data, June 1990.

\ No newline at end of file + Rules, Procedures, Caching and Views in Database Systems”. M. Stonebraker, A. Jhingran, J. Goh, and S. Potamianos. ACM-SIGMOD Conference on Management of Data, June 1990.

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/bki-commands.html postgresql-13-13.7/doc/src/sgml/html/bki-commands.html --- postgresql-13-13.4/doc/src/sgml/html/bki-commands.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/bki-commands.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -70.4. BKI Commands

70.4. BKI Commands

+70.4. BKI Commands

70.4. BKI Commands

create tablename tableoid @@ -106,4 +106,4 @@ is postponed.

build indices

Fill in the indices that have previously been declared. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/bki-example.html postgresql-13-13.7/doc/src/sgml/html/bki-example.html --- postgresql-13-13.4/doc/src/sgml/html/bki-example.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/bki-example.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -70.6. BKI Example

70.6. BKI Example

+70.6. BKI Example

70.6. BKI Example

The following sequence of commands will create the table test_table with OID 420, having three columns oid, cola and colb @@ -12,4 +12,4 @@ insert ( 422 2 _null_ ) close test_table

-

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/bki-format.html postgresql-13-13.7/doc/src/sgml/html/bki-format.html --- postgresql-13-13.4/doc/src/sgml/html/bki-format.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/bki-format.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -70.3. BKI File Format

70.3. BKI File Format

+70.3. BKI File Format

70.3. BKI File Format

This section describes how the PostgreSQL backend interprets BKI files. This description will be easier to understand if the postgres.bki @@ -16,4 +16,4 @@ strings. Everything is case sensitive.

Lines starting with # are ignored. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/bki.html postgresql-13-13.7/doc/src/sgml/html/bki.html --- postgresql-13-13.4/doc/src/sgml/html/bki.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/bki.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 70. System Catalog Declarations and Initial Contents

Chapter 70. System Catalog Declarations and Initial Contents

+Chapter 70. System Catalog Declarations and Initial Contents

Chapter 70. System Catalog Declarations and Initial Contents

PostgreSQL uses many different system catalogs to keep track of the existence and properties of database objects, such as tables and functions. Physically there is no difference between a system @@ -57,4 +57,4 @@ and/or initial data files. The rest of this chapter gives some information about that, and for completeness describes the BKI file format. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/bki-structure.html postgresql-13-13.7/doc/src/sgml/html/bki-structure.html --- postgresql-13-13.4/doc/src/sgml/html/bki-structure.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/bki-structure.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -70.5. Structure of the Bootstrap BKI File

70.5. Structure of the Bootstrap BKI File

+70.5. Structure of the Bootstrap BKI File

70.5. 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, @@ -39,4 +39,4 @@

There are doubtless other, undocumented ordering dependencies. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/bloom.html postgresql-13-13.7/doc/src/sgml/html/bloom.html --- postgresql-13-13.4/doc/src/sgml/html/bloom.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/bloom.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.5. bloom

F.5. bloom

+F.5. bloom

F.5. bloom

bloom provides an index access method based on Bloom filters.

@@ -187,4 +187,4 @@

Oleg Bartunov , Postgres Professional, Moscow, Russia -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/bookindex.html postgresql-13-13.7/doc/src/sgml/html/bookindex.html --- postgresql-13-13.4/doc/src/sgml/html/bookindex.html 2021-08-09 21:03:15.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/bookindex.html 2022-05-09 21:29:33.000000000 +0000 @@ -1,5 +1,5 @@ -Index

Index

Index

A

abbrev, Network Address Functions and Operators
ABORT, ABORT
abs, Mathematical Functions and Operators
ACL, Privileges
aclcontains, System Information Functions and Operators
acldefault, System Information Functions and Operators
aclexplode, System Information Functions and Operators
aclitem, Privileges
aclitemeq, System Information Functions and Operators
acos, Mathematical Functions and Operators
acosd, Mathematical Functions and Operators
acosh, 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 PROCEDURE, ALTER PROCEDURE
ALTER PUBLICATION, ALTER PUBLICATION
ALTER ROLE, Role Attributes, ALTER ROLE
ALTER ROUTINE, ALTER ROUTINE
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
anycompatible, Pseudo-Types
anycompatiblearray, Pseudo-Types
anycompatiblenonarray, Pseudo-Types
anycompatiblerange, 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 configuration parameter, Archive Recovery
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, Processing and Creating JSON Data
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
asinh, 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
atanh, Mathematical Functions and Operators
authentication_timeout configuration parameter, Authentication
auth_delay, auth_delay
auth_delay.milliseconds configuration parameter, Configuration Parameters
auto-increment (see serial)
autocommit
bulk-loading data, Disable Autocommit
psql, Variables
autosummarize storage parameter, Index Storage Parameters
autovacuum
configuration parameters, Automatic Vacuuming
general information, The Autovacuum Daemon
autovacuum configuration parameter, Automatic Vacuuming
autovacuum_analyze_scale_factor
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_analyze_threshold
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_enabled storage parameter, Storage Parameters
autovacuum_freeze_max_age
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_freeze_min_age storage parameter, Storage Parameters
autovacuum_freeze_table_age storage parameter, Storage Parameters
autovacuum_max_workers configuration parameter, Automatic Vacuuming
autovacuum_multixact_freeze_max_age
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_multixact_freeze_min_age storage parameter, Storage Parameters
autovacuum_multixact_freeze_table_age storage parameter, Storage Parameters
autovacuum_naptime configuration parameter, Automatic Vacuuming
autovacuum_vacuum_cost_delay
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_cost_limit
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_insert_scale_factor
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_insert_threshold
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_scale_factor
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_threshold
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
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_level 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_settings 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.log_wal 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
backtrace_functions configuration parameter, Developer Options
backup, Backup Control Functions, Backup and Restore
Backup Manifest, Backup Manifest Format
base type, The PostgreSQL Type System
base64 format, Binary String Functions and Operators
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
converting to character string, 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
length, Bit String Functions and Operators
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, Binary String Functions and Operators, Bit 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
bound_box, Geometric Functions and Operators
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
buffering storage parameter, Index Storage Parameters
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
CALL, CALL
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
chained transactions, Transaction Management, Parameters, Parameters
in PL/pgSQL, Transaction Management
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
converting to binary string, Binary String Functions and Operators
data types, Character Types
length, String Functions and Operators
character varying, Character Types
character_length, String Functions and Operators
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
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, 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 and Operators
color, Color Support
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 and Operators
comment, Comments
about database objects, System Information Functions and Operators
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, Archive Recovery
of the server, Server Configuration
of the server
functions, Configuration Settings Functions
configure, Installation Procedure
configure environment variables, configure Environment Variables
configure options, configure Options
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
container type, The PostgreSQL Type System
CONTINUE
in PL/pgSQL, CONTINUE
continuous archiving, Backup and Restore
in standby, Continuous Archiving in Standby
control file, Extension Files
convert, Binary String Functions and Operators
convert_from, Binary String Functions and Operators
convert_to, Binary 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
cosh, 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
covering index, Index-Only Scans and Covering Indexes
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 PROCEDURE, CREATE PROCEDURE
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, Build Process Details
cross join, Joined Tables
crosstab, crosstab(text), crosstabN(text), crosstab(text, text)
crypt, crypt()
cstring, Pseudo-Types
CSV (Comma-Separated Values) format
in psql, Meta-Commands
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 and Operators
current_database, System Information Functions and Operators
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 and Operators
current_query, System Information Functions and Operators
current_role, System Information Functions and Operators
current_schema, System Information Functions and Operators
current_schemas, System Information Functions and Operators
current_setting, Configuration Settings Functions
current_time, Date/Time Functions and Operators
current_timestamp, Date/Time Functions and Operators
current_user, System Information Functions and Operators
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, Domain Types, Type Conversion, The PostgreSQL Type System, The PostgreSQL Type System, The PostgreSQL Type System, Polymorphic Types, 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
container, The PostgreSQL Type System
conversion, Type Conversion
domain, Domain Types
enumerated (enum), Enumerated Types
internal organization, Base Types in C-Language Functions
numeric, Numeric Types
polymorphic, Polymorphic 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_directory_mode configuration parameter, Preset Options
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, 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, Binary String Functions and Operators
decode_bytea
in PL/Perl, Utility Functions in PL/Perl
decrypt, Raw Encryption Functions
decrypt_iv, Raw Encryption Functions
deduplicate_items storage parameter, Index Storage Parameters
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_table_access_method 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
deferrable transaction, Statement Behavior
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
diagonal, Geometric Functions and Operators
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
domain, Domain Types
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 PROCEDURE, DROP PROCEDURE
DROP PUBLICATION, DROP PUBLICATION
DROP ROLE, Database Roles, DROP ROLE
DROP ROUTINE, DROP ROUTINE
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, Developer Options, 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_incremental_sort 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_parallel_append configuration parameter, Planner Method Configuration
enable_parallel_hash configuration parameter, Planner Method Configuration
enable_partitionwise_aggregate configuration parameter, Planner Method Configuration
enable_partitionwise_join configuration parameter, Planner Method Configuration
enable_partition_pruning 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, 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 format, Binary String Functions and Operators
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 Functions 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

factorial, Mathematical Functions and Operators
failover, High Availability, Load Balancing, and Replication
false, Boolean Type
family, Network Address Functions and Operators
fast path, The Fast-Path Interface
fastupdate storage parameter, Index Storage Parameters
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
fillfactor storage parameter, Index Storage Parameters, Storage Parameters
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
self-referential, 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 and Operators
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, Statistics Information Functions, 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
statistics, Statistics Information Functions
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

gcd, Mathematical Functions and Operators
gc_to_sec, Cube-Based Earth Distances
generated column, Generated Columns, Parameters, Parameters
in - triggers, Overview of Trigger Behavior
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, UUID Functions, 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, Bit 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
storage parameter, Index Storage Parameters
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, Secure TCP/IP Connections with GSSAPI Encryption
GSSAPI, GSSAPI Authentication
with - libpq, Parameter Key Words
GUID, UUID Type

H

hash (see index)
hash_bitmap_info, Hash Functions
hash_mem_multiplier configuration parameter, Memory
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 and Operators
has_column_privilege, System Information Functions and Operators
has_database_privilege, System Information Functions and Operators
has_foreign_data_wrapper_privilege, System Information Functions and Operators
has_function_privilege, System Information Functions and Operators
has_language_privilege, System Information Functions and Operators
has_schema_privilege, System Information Functions and Operators
has_sequence_privilege, System Information Functions and Operators
has_server_privilege, System Information Functions and Operators
has_tablespace_privilege, System Information Functions and Operators
has_table_privilege, System Information Functions and Operators
has_type_privilege, System Information Functions and Operators
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
heap_tuple_infomask_flags, Heap Functions
height, Geometric Functions and Operators
hex format, Binary String 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
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, PostgreSQL Features, 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_invalid_pages 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 index definitions, Index-Only Scans and Covering Indexes
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 and Covering Indexes, Index-Only Scans and Covering Indexes, Examining Index Usage, GIN and GiST Index Types, GIN and GiST Index Types, Locking and Indexes, Interfacing Extensions to Indexes, Building Indexes Concurrently, Rebuilding Indexes Concurrently, Operators and Functions
and ORDER BY, Indexes and ORDER BY
B-tree, Index Types
B-Tree, B-Tree Indexes
BRIN, Index Types, BRIN Indexes
building concurrently, Building Indexes Concurrently
combining multiple indexes, Combining Multiple Indexes
covering, Index-Only Scans and Covering 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
Hash, Hash Indexes
index-only scans, Index-Only Scans and Covering Indexes
locks, Locking and Indexes
multicolumn, Multicolumn Indexes
partial, Partial Indexes
rebuilding concurrently, Rebuilding Indexes Concurrently
SP-GiST, Index Types, SP-GiST Indexes
unique, Unique Indexes
Index Access Method, Index Access Method Interface Definition
index scan, Planner Method Configuration
index-only scan, Index-Only Scans and Covering Indexes
indexam
Index Access Method, Index Access Method Interface Definition
index_am_handler, Pseudo-Types
inet (data type), inet
inet_client_addr, System Information Functions and Operators
inet_client_port, System Information Functions and Operators
inet_merge, Network Address Functions and Operators
inet_same_family, Network Address Functions and Operators
inet_server_addr, System Information Functions and Operators
inet_server_port, System Information Functions and Operators
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
in_range support functions, B-Tree Support 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

JIT, Just-in-Time Compilation (JIT)
jit configuration parameter, Other Planner Options
jit_above_cost configuration parameter, Planner Cost Constants
jit_debugging_support configuration parameter, Developer Options
jit_dump_bitcode configuration parameter, Developer Options
jit_expressions configuration parameter, Developer Options
jit_inline_above_cost configuration parameter, Planner Cost Constants
jit_optimize_above_cost configuration parameter, Planner Cost Constants
jit_profiling_support configuration parameter, Developer Options
jit_provider configuration parameter, Shared Library Preloading
jit_tuple_deforming configuration parameter, Developer Options
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, Processing and Creating JSON Data
jsonb_array_elements_text, Processing and Creating JSON Data
jsonb_array_length, Processing and Creating JSON Data
jsonb_build_array, Processing and Creating JSON Data
jsonb_build_object, Processing and Creating JSON Data
jsonb_each, Processing and Creating JSON Data
jsonb_each_text, Processing and Creating JSON Data
jsonb_extract_path, Processing and Creating JSON Data
jsonb_extract_path_text, Processing and Creating JSON Data
jsonb_insert, Processing and Creating JSON Data
jsonb_object, Processing and Creating JSON Data
jsonb_object_agg, Aggregate Functions
jsonb_object_keys, Processing and Creating JSON Data
jsonb_path_exists, Processing and Creating JSON Data
jsonb_path_exists_tz, Processing and Creating JSON Data
jsonb_path_match, Processing and Creating JSON Data
jsonb_path_match_tz, Processing and Creating JSON Data
jsonb_path_query, Processing and Creating JSON Data
jsonb_path_query_array, Processing and Creating JSON Data
jsonb_path_query_array_tz, Processing and Creating JSON Data
jsonb_path_query_first, Processing and Creating JSON Data
jsonb_path_query_first_tz, Processing and Creating JSON Data
jsonb_path_query_tz, Processing and Creating JSON Data
jsonb_populate_record, Processing and Creating JSON Data
jsonb_populate_recordset, Processing and Creating JSON Data
jsonb_pretty, Processing and Creating JSON Data
jsonb_set, Processing and Creating JSON Data
jsonb_set_lax, Processing and Creating JSON Data
jsonb_strip_nulls, Processing and Creating JSON Data
jsonb_to_record, Processing and Creating JSON Data
jsonb_to_recordset, Processing and Creating JSON Data
jsonb_to_tsvector, Text Search Functions and Operators
jsonb_typeof, Processing and Creating JSON Data
jsonpath, jsonpath Type
json_agg, Aggregate Functions
json_array_elements, Processing and Creating JSON Data
json_array_elements_text, Processing and Creating JSON Data
json_array_length, Processing and Creating JSON Data
json_build_array, Processing and Creating JSON Data
json_build_object, Processing and Creating JSON Data
json_each, Processing and Creating JSON Data
json_each_text, Processing and Creating JSON Data
json_extract_path, Processing and Creating JSON Data
json_extract_path_text, Processing and Creating JSON Data
json_object, Processing and Creating JSON Data
json_object_agg, Aggregate Functions
json_object_keys, Processing and Creating JSON Data
json_populate_record, Processing and Creating JSON Data
json_populate_recordset, Processing and Creating JSON Data
json_strip_nulls, Processing and Creating JSON Data
json_to_record, Processing and Creating JSON Data
json_to_recordset, Processing and Creating JSON Data
json_to_tsvector, Text Search Functions and Operators
json_typeof, Processing and Creating JSON Data
Julian date, Julian Dates
Just-In-Time compilation (see JIT)
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, Authentication
krb_server_keyfile configuration parameter, 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
lcm, Mathematical Functions and Operators
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, PostgreSQL Features, 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, Bit 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
LIKE_REGEX, Differences from XQuery (LIKE_REGEX), SQL/JSON Regular Expressions
in SQL/JSON, SQL/JSON Regular Expressions
LIMIT, LIMIT and OFFSET
line, Lines, Geometric Functions and Operators
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
llvm-config, PostgreSQL Features
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
log10, Mathematical Functions and Operators
Logging
current_logfiles file and the pg_current_logfile - function, System Information Functions and Operators
pg_current_logfile function, System Information Functions and Operators
logging_collector configuration parameter, Where to Log
Logical Decoding, Logical Decoding, Logical Decoding
logical_decoding_work_mem configuration parameter, Memory
login privilege, Role Attributes
log_autovacuum_min_duration
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
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_sample configuration parameter, When 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_parameter_max_length configuration parameter, What to Log
log_parameter_max_length_on_error configuration parameter, What 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_sample_rate configuration parameter, When 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_transaction_sample_rate configuration parameter, When 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_io_concurrency configuration parameter, Asynchronous Behavior
maintenance_work_mem configuration parameter, Memory
make, Requirements
makeaclitem, System Information Functions and Operators
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_maintenance_workers configuration parameter, Asynchronous Behavior
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 Servers
max_slot_wal_keep_size configuration parameter, Sending Servers
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 Servers
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_scale, Mathematical Functions and Operators
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
nextval, Sequence Manipulation Functions
NFS, NFS
nlevel, Operators and Functions
non-durable, Non-Durable Settings
nonblocking connection, Database Connection Control Functions, Asynchronous Command Processing
nonrepeatable read, Transaction Isolation
normalize, String Functions and Operators
normalized, String Functions and Operators
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 and Operators
octet_length, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
OFFSET, LIMIT and OFFSET
oid, Object Identifier Types
OID
in libpq, Retrieving Other Result Information
oid2name, oid2name
old_snapshot_threshold configuration parameter, Asynchronous Behavior
ON CONFLICT, INSERT
ONLY, The FROM Clause
OOM, Linux Memory Overcommit
OpenBSD
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-Loaded Functions
start script, Starting the Database Server
OpenSSL, PostgreSQL Features
(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
optimization information, Function Optimization Information, Operator Optimization Information
for functions, Function Optimization Information
for operators, Operator Optimization Information
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, Bit String Functions and Operators
overloading, Function Overloading
functions, Function Overloading
operators, User-Defined Operators
owner, Privileges

P

pageinspect, pageinspect
pages_per_range storage parameter, Index Storage Parameters
page_checksum, General Functions
page_header, General Functions
palloc, Writing Code
PAM, PostgreSQL Features, PAM Authentication
parallel query, Parallel Query
+ Z

A

abbrev, Network Address Functions and Operators
ABORT, ABORT
abs, Mathematical Functions and Operators
ACL, Privileges
aclcontains, System Information Functions and Operators
acldefault, System Information Functions and Operators
aclexplode, System Information Functions and Operators
aclitem, Privileges
aclitemeq, System Information Functions and Operators
acos, Mathematical Functions and Operators
acosd, Mathematical Functions and Operators
acosh, 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 PROCEDURE, ALTER PROCEDURE
ALTER PUBLICATION, ALTER PUBLICATION
ALTER ROLE, Role Attributes, ALTER ROLE
ALTER ROUTINE, ALTER ROUTINE
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
anycompatible, Pseudo-Types
anycompatiblearray, Pseudo-Types
anycompatiblenonarray, Pseudo-Types
anycompatiblerange, 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 configuration parameter, Archive Recovery
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, Processing and Creating JSON Data
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
asinh, 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
atanh, Mathematical Functions and Operators
authentication_timeout configuration parameter, Authentication
auth_delay, auth_delay
auth_delay.milliseconds configuration parameter, Configuration Parameters
auto-increment (see serial)
autocommit
bulk-loading data, Disable Autocommit
psql, Variables
autosummarize storage parameter, Index Storage Parameters
autovacuum
configuration parameters, Automatic Vacuuming
general information, The Autovacuum Daemon
autovacuum configuration parameter, Automatic Vacuuming
autovacuum_analyze_scale_factor
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_analyze_threshold
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_enabled storage parameter, Storage Parameters
autovacuum_freeze_max_age
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_freeze_min_age storage parameter, Storage Parameters
autovacuum_freeze_table_age storage parameter, Storage Parameters
autovacuum_max_workers configuration parameter, Automatic Vacuuming
autovacuum_multixact_freeze_max_age
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_multixact_freeze_min_age storage parameter, Storage Parameters
autovacuum_multixact_freeze_table_age storage parameter, Storage Parameters
autovacuum_naptime configuration parameter, Automatic Vacuuming
autovacuum_vacuum_cost_delay
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_cost_limit
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_insert_scale_factor
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_insert_threshold
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_scale_factor
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
autovacuum_vacuum_threshold
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
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_level 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_settings 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.log_wal 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
backtrace_functions configuration parameter, Developer Options
backup, Backup Control Functions, Backup and Restore
Backup Manifest, Backup Manifest Format
base type, The PostgreSQL Type System
base64 format, Binary String Functions and Operators
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
converting to character string, 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
length, Bit String Functions and Operators
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, Binary String Functions and Operators, Bit 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
bound_box, Geometric Functions and Operators
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
buffering storage parameter, Index Storage Parameters
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
CALL, CALL
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
chained transactions, Transaction Management, Parameters, Parameters
in PL/pgSQL, Transaction Management
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
converting to binary string, Binary String Functions and Operators
data types, Character Types
length, String Functions and Operators
character varying, Character Types
character_length, String Functions and Operators
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
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, 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 and Operators
color, Color Support
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 and Operators
comment, Comments
about database objects, System Information Functions and Operators
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, Archive Recovery
of the server, Server Configuration
of the server
functions, Configuration Settings Functions
configure, Installation Procedure
configure environment variables, configure Environment Variables
configure options, configure Options
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
container type, The PostgreSQL Type System
CONTINUE
in PL/pgSQL, CONTINUE
continuous archiving, Backup and Restore
in standby, Continuous Archiving in Standby
control file, Extension Files
convert, Binary String Functions and Operators
convert_from, Binary String Functions and Operators
convert_to, Binary 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
cosh, 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
covering index, Index-Only Scans and Covering Indexes
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 PROCEDURE, CREATE PROCEDURE
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, Build Process Details
cross join, Joined Tables
crosstab, crosstab(text), crosstabN(text), crosstab(text, text)
crypt, crypt()
cstring, Pseudo-Types
CSV (Comma-Separated Values) format
in psql, Meta-Commands
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 and Operators
current_database, System Information Functions and Operators
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 and Operators
current_query, System Information Functions and Operators
current_role, System Information Functions and Operators
current_schema, System Information Functions and Operators
current_schemas, System Information Functions and Operators
current_setting, Configuration Settings Functions
current_time, Date/Time Functions and Operators
current_timestamp, Date/Time Functions and Operators
current_user, System Information Functions and Operators
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, Domain Types, Type Conversion, The PostgreSQL Type System, The PostgreSQL Type System, The PostgreSQL Type System, Polymorphic Types, 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
container, The PostgreSQL Type System
conversion, Type Conversion
domain, Domain Types
enumerated (enum), Enumerated Types
internal organization, Base Types in C-Language Functions
numeric, Numeric Types
polymorphic, Polymorphic 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_directory_mode configuration parameter, Preset Options
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, 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, Binary String Functions and Operators
decode_bytea
in PL/Perl, Utility Functions in PL/Perl
decrypt, Raw Encryption Functions
decrypt_iv, Raw Encryption Functions
deduplicate_items storage parameter, Index Storage Parameters
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_table_access_method 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
deferrable transaction, Statement Behavior
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
diagonal, Geometric Functions and Operators
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
domain, Domain Types
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 PROCEDURE, DROP PROCEDURE
DROP PUBLICATION, DROP PUBLICATION
DROP ROLE, Database Roles, DROP ROLE
DROP ROUTINE, DROP ROUTINE
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, Developer Options, 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_incremental_sort 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_parallel_append configuration parameter, Planner Method Configuration
enable_parallel_hash configuration parameter, Planner Method Configuration
enable_partitionwise_aggregate configuration parameter, Planner Method Configuration
enable_partitionwise_join configuration parameter, Planner Method Configuration
enable_partition_pruning 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, 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 format, Binary String Functions and Operators
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 Functions 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

factorial, Mathematical Functions and Operators
failover, High Availability, Load Balancing, and Replication
false, Boolean Type
family, Network Address Functions and Operators
fast path, The Fast-Path Interface
fastupdate storage parameter, Index Storage Parameters
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
fillfactor storage parameter, Index Storage Parameters, Storage Parameters
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
self-referential, 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 and Operators
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, Statistics Information Functions, 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
statistics, Statistics Information Functions
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

gcd, Mathematical Functions and Operators
gc_to_sec, Cube-Based Earth Distances
generated column, Generated Columns, Parameters, Parameters
in + triggers, Overview of Trigger Behavior
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, UUID Functions, 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, Bit 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
storage parameter, Index Storage Parameters
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, Secure TCP/IP Connections with GSSAPI Encryption
GSSAPI, GSSAPI Authentication
with + libpq, Parameter Key Words
GUID, UUID Type

H

hash (see index)
hash_bitmap_info, Hash Functions
hash_mem_multiplier configuration parameter, Memory
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 and Operators
has_column_privilege, System Information Functions and Operators
has_database_privilege, System Information Functions and Operators
has_foreign_data_wrapper_privilege, System Information Functions and Operators
has_function_privilege, System Information Functions and Operators
has_language_privilege, System Information Functions and Operators
has_schema_privilege, System Information Functions and Operators
has_sequence_privilege, System Information Functions and Operators
has_server_privilege, System Information Functions and Operators
has_tablespace_privilege, System Information Functions and Operators
has_table_privilege, System Information Functions and Operators
has_type_privilege, System Information Functions and Operators
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
heap_tuple_infomask_flags, Heap Functions
height, Geometric Functions and Operators
hex format, Binary String 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
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, PostgreSQL Features, 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_invalid_pages 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 index definitions, Index-Only Scans and Covering Indexes
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 and Covering Indexes, Index-Only Scans and Covering Indexes, Examining Index Usage, Preferred Index Types for Text Search, Preferred Index Types for Text Search, Locking and Indexes, Interfacing Extensions to Indexes, Building Indexes Concurrently, Rebuilding Indexes Concurrently, Operators and Functions
and ORDER BY, Indexes and ORDER BY
B-tree, Index Types
B-Tree, B-Tree Indexes
BRIN, Index Types, BRIN Indexes
building concurrently, Building Indexes Concurrently
combining multiple indexes, Combining Multiple Indexes
covering, Index-Only Scans and Covering Indexes
examining usage, Examining Index Usage
on expressions, Indexes on Expressions
for user-defined data type, Interfacing Extensions to Indexes
GIN, Index Types, Preferred Index Types for Text Search, GIN Indexes
text search, Preferred Index Types for Text Search
GiST, Index Types, Preferred Index Types for Text Search, GiST Indexes
text search, Preferred Index Types for Text Search
hash, Index Types
Hash, Hash Indexes
index-only scans, Index-Only Scans and Covering Indexes
locks, Locking and Indexes
multicolumn, Multicolumn Indexes
partial, Partial Indexes
rebuilding concurrently, Rebuilding Indexes Concurrently
SP-GiST, Index Types, SP-GiST Indexes
unique, Unique Indexes
Index Access Method, Index Access Method Interface Definition
index scan, Planner Method Configuration
index-only scan, Index-Only Scans and Covering Indexes
indexam
Index Access Method, Index Access Method Interface Definition
index_am_handler, Pseudo-Types
inet (data type), inet
inet_client_addr, System Information Functions and Operators
inet_client_port, System Information Functions and Operators
inet_merge, Network Address Functions and Operators
inet_same_family, Network Address Functions and Operators
inet_server_addr, System Information Functions and Operators
inet_server_port, System Information Functions and Operators
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
in_range support functions, B-Tree Support 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

JIT, Just-in-Time Compilation (JIT)
jit configuration parameter, Other Planner Options
jit_above_cost configuration parameter, Planner Cost Constants
jit_debugging_support configuration parameter, Developer Options
jit_dump_bitcode configuration parameter, Developer Options
jit_expressions configuration parameter, Developer Options
jit_inline_above_cost configuration parameter, Planner Cost Constants
jit_optimize_above_cost configuration parameter, Planner Cost Constants
jit_profiling_support configuration parameter, Developer Options
jit_provider configuration parameter, Shared Library Preloading
jit_tuple_deforming configuration parameter, Developer Options
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, Processing and Creating JSON Data
jsonb_array_elements_text, Processing and Creating JSON Data
jsonb_array_length, Processing and Creating JSON Data
jsonb_build_array, Processing and Creating JSON Data
jsonb_build_object, Processing and Creating JSON Data
jsonb_each, Processing and Creating JSON Data
jsonb_each_text, Processing and Creating JSON Data
jsonb_extract_path, Processing and Creating JSON Data
jsonb_extract_path_text, Processing and Creating JSON Data
jsonb_insert, Processing and Creating JSON Data
jsonb_object, Processing and Creating JSON Data
jsonb_object_agg, Aggregate Functions
jsonb_object_keys, Processing and Creating JSON Data
jsonb_path_exists, Processing and Creating JSON Data
jsonb_path_exists_tz, Processing and Creating JSON Data
jsonb_path_match, Processing and Creating JSON Data
jsonb_path_match_tz, Processing and Creating JSON Data
jsonb_path_query, Processing and Creating JSON Data
jsonb_path_query_array, Processing and Creating JSON Data
jsonb_path_query_array_tz, Processing and Creating JSON Data
jsonb_path_query_first, Processing and Creating JSON Data
jsonb_path_query_first_tz, Processing and Creating JSON Data
jsonb_path_query_tz, Processing and Creating JSON Data
jsonb_populate_record, Processing and Creating JSON Data
jsonb_populate_recordset, Processing and Creating JSON Data
jsonb_pretty, Processing and Creating JSON Data
jsonb_set, Processing and Creating JSON Data
jsonb_set_lax, Processing and Creating JSON Data
jsonb_strip_nulls, Processing and Creating JSON Data
jsonb_to_record, Processing and Creating JSON Data
jsonb_to_recordset, Processing and Creating JSON Data
jsonb_to_tsvector, Text Search Functions and Operators
jsonb_typeof, Processing and Creating JSON Data
jsonpath, jsonpath Type
json_agg, Aggregate Functions
json_array_elements, Processing and Creating JSON Data
json_array_elements_text, Processing and Creating JSON Data
json_array_length, Processing and Creating JSON Data
json_build_array, Processing and Creating JSON Data
json_build_object, Processing and Creating JSON Data
json_each, Processing and Creating JSON Data
json_each_text, Processing and Creating JSON Data
json_extract_path, Processing and Creating JSON Data
json_extract_path_text, Processing and Creating JSON Data
json_object, Processing and Creating JSON Data
json_object_agg, Aggregate Functions
json_object_keys, Processing and Creating JSON Data
json_populate_record, Processing and Creating JSON Data
json_populate_recordset, Processing and Creating JSON Data
json_strip_nulls, Processing and Creating JSON Data
json_to_record, Processing and Creating JSON Data
json_to_recordset, Processing and Creating JSON Data
json_to_tsvector, Text Search Functions and Operators
json_typeof, Processing and Creating JSON Data
Julian date, Julian Dates
Just-In-Time compilation (see JIT)
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, Authentication
krb_server_keyfile configuration parameter, 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
lcm, Mathematical Functions and Operators
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, PostgreSQL Features, 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, Bit 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
LIKE_REGEX, Differences from XQuery (LIKE_REGEX), SQL/JSON Regular Expressions
in SQL/JSON, SQL/JSON Regular Expressions
LIMIT, LIMIT and OFFSET
line, Lines, Geometric Functions and Operators
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
llvm-config, PostgreSQL Features
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
log10, Mathematical Functions and Operators
Logging
current_logfiles file and the pg_current_logfile + function, System Information Functions and Operators
pg_current_logfile function, System Information Functions and Operators
logging_collector configuration parameter, Where to Log
Logical Decoding, Logical Decoding, Logical Decoding
logical_decoding_work_mem configuration parameter, Memory
login privilege, Role Attributes
log_autovacuum_min_duration
configuration parameter, Automatic Vacuuming
storage parameter, Storage Parameters
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_sample configuration parameter, When 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_parameter_max_length configuration parameter, What to Log
log_parameter_max_length_on_error configuration parameter, What 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_sample_rate configuration parameter, When 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_transaction_sample_rate configuration parameter, When 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_io_concurrency configuration parameter, Asynchronous Behavior
maintenance_work_mem configuration parameter, Memory
make, Requirements
makeaclitem, System Information Functions and Operators
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_maintenance_workers configuration parameter, Asynchronous Behavior
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 Servers
max_slot_wal_keep_size configuration parameter, Sending Servers
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 Servers
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_scale, Mathematical Functions and Operators
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
nextval, Sequence Manipulation Functions
NFS, NFS
nlevel, Operators and Functions
non-durable, Non-Durable Settings
nonblocking connection, Database Connection Control Functions, Asynchronous Command Processing
nonrepeatable read, Transaction Isolation
normalize, String Functions and Operators
normalized, String Functions and Operators
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 and Operators
octet_length, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
OFFSET, LIMIT and OFFSET
oid, Object Identifier Types
OID
in libpq, Retrieving Other Result Information
oid2name, oid2name
old_snapshot_threshold configuration parameter, Asynchronous Behavior
ON CONFLICT, INSERT
ONLY, The FROM Clause
OOM, Linux Memory Overcommit
OpenBSD
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-Loaded Functions
start script, Starting the Database Server
OpenSSL, PostgreSQL Features
(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
optimization information, Function Optimization Information, Operator Optimization Information
for functions, Function Optimization Information
for operators, Operator Optimization Information
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, Bit String Functions and Operators
overloading, Function Overloading
functions, Function Overloading
operators, User-Defined Operators
owner, Privileges

P

pageinspect, pageinspect
pages_per_range storage parameter, Index Storage Parameters
page_checksum, General Functions
page_header, General Functions
palloc, Writing Code
PAM, PostgreSQL Features, PAM Authentication
parallel query, Parallel Query
parallel_leader_participation configuration parameter - , Other Planner Options
parallel_setup_cost configuration parameter, Planner Cost Constants
parallel_tuple_cost configuration parameter, Planner Cost Constants
parallel_workers storage parameter, Storage Parameters
parameter
syntax, Positional Parameters
parenthesis, Value Expressions
parse_ident, String Functions and Operators
partition pruning, Partition Pruning
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, 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
PGCHANNELBINDING, Environment Variables
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
PGGSSENCMODE, 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
PGSSLMAXPROTOCOLVERSION, Environment Variables
PGSSLMINPROTOCOLVERSION, 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 and Operators
pg_backup_start_time, Backup Control Functions
pg_basebackup, pg_basebackup
pg_blocking_pids, System Information Functions and Operators
pg_buffercache, pg_buffercache
pg_buffercache_pages, pg_buffercache
pg_cancel_backend, Server Signaling Functions
pg_cast, pg_cast
pg_checksums, pg_checksums
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 and Operators
PG_COLOR, When Color is Used
PG_COLORS, Configuring the Colors
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 and Operators
pg_constraint, pg_constraint
pg_controldata, pg_controldata
pg_control_checkpoint, System Information Functions and Operators
pg_control_init, System Information Functions and Operators
pg_control_recovery, System Information Functions and Operators
pg_control_system, System Information Functions and Operators
pg_conversion, pg_conversion
pg_conversion_is_visible, System Information Functions and Operators
pg_copy_logical_replication_slot, Replication Management Functions
pg_copy_physical_replication_slot, Replication Management Functions
pg_create_logical_replication_slot, Replication Management Functions
pg_create_physical_replication_slot, Replication Management 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 and Operators
pg_current_snapshot, System Information Functions and Operators
pg_current_wal_flush_lsn, Backup Control Functions
pg_current_wal_insert_lsn, Backup Control Functions
pg_current_wal_lsn, Backup Control Functions
pg_current_xact_id, System Information Functions and Operators
pg_current_xact_id_if_assigned, System Information Functions and Operators
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 and Operators
pg_description, pg_description
pg_drop_replication_slot, Replication Management 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_sync, adminpack
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 and Operators
pg_get_constraintdef, System Information Functions and Operators
pg_get_expr, System Information Functions and Operators
pg_get_functiondef, System Information Functions and Operators
pg_get_function_arguments, System Information Functions and Operators
pg_get_function_identity_arguments, System Information Functions and Operators
pg_get_function_result, System Information Functions and Operators
pg_get_indexdef, System Information Functions and Operators
pg_get_keywords, System Information Functions and Operators
pg_get_object_address, System Information Functions and Operators
pg_get_ruledef, System Information Functions and Operators
pg_get_serial_sequence, System Information Functions and Operators
pg_get_statisticsobjdef, System Information Functions and Operators
pg_get_triggerdef, System Information Functions and Operators
pg_get_userbyid, System Information Functions and Operators
pg_get_viewdef, System Information Functions and Operators
pg_group, pg_group
pg_has_role, System Information Functions and Operators
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 and Operators
pg_identify_object_as_address, System Information Functions and Operators
pg_import_system_collations, Database Object Management Functions
pg_index, pg_index
pg_indexam_has_property, System Information Functions and Operators
pg_indexes, pg_indexes
pg_indexes_size, Database Object Management Functions
pg_index_column_has_property, System Information Functions and Operators
pg_index_has_property, System Information Functions and Operators
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 and Operators
pg_is_wal_replay_paused, Recovery Control Functions
pg_jit_available, System Information Functions and Operators
pg_language, pg_language
pg_largeobject, pg_largeobject
pg_largeobject_metadata, pg_largeobject_metadata
pg_last_committed_xact, System Information Functions and Operators
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 and Operators
pg_locks, pg_locks
pg_logdir_ls, adminpack
pg_logical_emit_message, Replication Management Functions
pg_logical_slot_get_binary_changes, Replication Management Functions
pg_logical_slot_get_changes, Replication Management Functions
pg_logical_slot_peek_binary_changes, Replication Management Functions
pg_logical_slot_peek_changes, Replication Management Functions
pg_lsn, pg_lsn Type
pg_ls_archive_statusdir, Generic File Access Functions
pg_ls_dir, Generic File Access Functions
pg_ls_logdir, Generic File Access Functions
pg_ls_tmpdir, Generic File Access Functions
pg_ls_waldir, Generic File Access Functions
pg_matviews, pg_matviews
pg_mcv_list_items, Inspecting MCV Lists
pg_my_temp_schema, System Information Functions and Operators
pg_namespace, pg_namespace
pg_notification_queue_usage, System Information Functions and Operators
pg_notify, pg_notify
pg_opclass, pg_opclass
pg_opclass_is_visible, System Information Functions and Operators
pg_operator, pg_operator
pg_operator_is_visible, System Information Functions and Operators
pg_opfamily, pg_opfamily
pg_opfamily_is_visible, System Information Functions and Operators
pg_options_to_table, System Information Functions and Operators
pg_partitioned_table, pg_partitioned_table
pg_partition_ancestors, Database Object Management Functions
pg_partition_root, Database Object Management Functions
pg_partition_tree, Database Object Management Functions
pg_policies, pg_policies
pg_policy, pg_policy
pg_postmaster_start_time, System Information Functions and Operators
pg_prepared_statements, pg_prepared_statements
pg_prepared_xacts, pg_prepared_xacts
pg_prewarm, pg_prewarm
pg_prewarm.autoprewarm configuration parameter, Configuration Parameters
pg_prewarm.autoprewarm_interval configuration parameter, Configuration Parameters
pg_proc, pg_proc
pg_promote, Recovery Control Functions
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_receivexlog, pg_receivexlog renamed to pg_receivewal (see 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 Management Functions
pg_replication_origin_create, Replication Management Functions
pg_replication_origin_drop, Replication Management Functions
pg_replication_origin_oid, Replication Management Functions
pg_replication_origin_progress, Replication Management Functions
pg_replication_origin_session_is_setup, Replication Management Functions
pg_replication_origin_session_progress, Replication Management Functions
pg_replication_origin_session_reset, Replication Management Functions
pg_replication_origin_session_setup, Replication Management Functions
pg_replication_origin_status, pg_replication_origin_status
pg_replication_origin_xact_reset, Replication Management Functions
pg_replication_origin_xact_setup, Replication Management Functions
pg_replication_slots, pg_replication_slots
pg_replication_slot_advance, Replication Management Functions
pg_resetwal, pg_resetwal
pg_resetxlog, pg_resetxlog renamed to pg_resetwal (see 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 and Operators
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_shmem_allocations, pg_shmem_allocations
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_snapshot_xip, System Information Functions and Operators
pg_snapshot_xmax, System Information Functions and Operators
pg_snapshot_xmin, System Information Functions and Operators
pg_standby, pg_standby
pg_start_backup, Backup Control Functions
pg_statio_all_indexes, Viewing Statistics, pg_statio_all_indexes
pg_statio_all_sequences, Viewing Statistics, pg_statio_all_sequences
pg_statio_all_tables, Viewing Statistics, pg_statio_all_tables
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 and Operators
pg_statistic_ext, Extended Statistics, pg_statistic_ext
pg_statistic_ext_data, Extended Statistics, pg_statistic_ext
pg_stats, Single-Column Statistics, pg_stats
pg_stats_ext, pg_stats_ext
pg_stat_activity, Viewing Statistics, pg_stat_activity
pg_stat_all_indexes, Viewing Statistics, pg_stat_all_indexes
pg_stat_all_tables, Viewing Statistics, pg_stat_all_tables
pg_stat_archiver, Viewing Statistics, pg_stat_archiver
pg_stat_bgwriter, Viewing Statistics, pg_stat_bgwriter
pg_stat_clear_snapshot, Statistics Functions
pg_stat_database, Viewing Statistics, pg_stat_database
pg_stat_database_conflicts, Viewing Statistics, pg_stat_database_conflicts
pg_stat_file, Generic File Access Functions
pg_stat_get_activity, Statistics Functions
pg_stat_get_backend_activity, Statistics Functions
pg_stat_get_backend_activity_start, Statistics Functions
pg_stat_get_backend_client_addr, Statistics Functions
pg_stat_get_backend_client_port, Statistics Functions
pg_stat_get_backend_dbid, Statistics Functions
pg_stat_get_backend_idset, Statistics Functions
pg_stat_get_backend_pid, Statistics Functions
pg_stat_get_backend_start, Statistics Functions
pg_stat_get_backend_userid, Statistics Functions
pg_stat_get_backend_wait_event, Statistics Functions
pg_stat_get_backend_wait_event_type, Statistics Functions
pg_stat_get_backend_xact_start, Statistics Functions
pg_stat_get_snapshot_timestamp, Statistics Functions
pg_stat_gssapi, Viewing Statistics, pg_stat_gssapi
pg_stat_progress_analyze, Viewing Statistics
pg_stat_progress_basebackup, Viewing Statistics
pg_stat_progress_cluster, Viewing Statistics
pg_stat_progress_create_index, Viewing Statistics
pg_stat_progress_vacuum, Viewing Statistics
pg_stat_replication, Viewing Statistics, pg_stat_replication
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_reset_slru, Statistics Functions
pg_stat_slru, Viewing Statistics, pg_stat_slru
pg_stat_ssl, Viewing Statistics, pg_stat_ssl
pg_stat_statements, pg_stat_statements
function, Functions
pg_stat_statements_reset, Functions
pg_stat_subscription, Viewing Statistics, pg_stat_subscription
pg_stat_sys_indexes, Viewing Statistics
pg_stat_sys_tables, Viewing Statistics
pg_stat_user_functions, Viewing Statistics, pg_stat_user_functions
pg_stat_user_indexes, Viewing Statistics
pg_stat_user_tables, Viewing Statistics
pg_stat_wal_receiver, Viewing Statistics, pg_stat_wal_receiver
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 and Operators
pg_tablespace_location, System Information Functions and Operators
pg_tablespace_size, Database Object Management Functions
pg_table_is_visible, System Information Functions and Operators
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
+ , Other Planner Options
parallel_setup_cost configuration parameter, Planner Cost Constants
parallel_tuple_cost configuration parameter, Planner Cost Constants
parallel_workers storage parameter, Storage Parameters
parameter
syntax, Positional Parameters
parenthesis, Value Expressions
parse_ident, String Functions and Operators
partition pruning, Partition Pruning
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, 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
PGCHANNELBINDING, Environment Variables
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
PGGSSENCMODE, 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
PGSSLMAXPROTOCOLVERSION, Environment Variables
PGSSLMINPROTOCOLVERSION, 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 and Operators
pg_backup_start_time, Backup Control Functions
pg_basebackup, pg_basebackup
pg_blocking_pids, System Information Functions and Operators
pg_buffercache, pg_buffercache
pg_buffercache_pages, pg_buffercache
pg_cancel_backend, Server Signaling Functions
pg_cast, pg_cast
pg_checksums, pg_checksums
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 and Operators
PG_COLOR, When Color is Used
PG_COLORS, Configuring the Colors
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 and Operators
pg_constraint, pg_constraint
pg_controldata, pg_controldata
pg_control_checkpoint, System Information Functions and Operators
pg_control_init, System Information Functions and Operators
pg_control_recovery, System Information Functions and Operators
pg_control_system, System Information Functions and Operators
pg_conversion, pg_conversion
pg_conversion_is_visible, System Information Functions and Operators
pg_copy_logical_replication_slot, Replication Management Functions
pg_copy_physical_replication_slot, Replication Management Functions
pg_create_logical_replication_slot, Replication Management Functions
pg_create_physical_replication_slot, Replication Management 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 and Operators
pg_current_snapshot, System Information Functions and Operators
pg_current_wal_flush_lsn, Backup Control Functions
pg_current_wal_insert_lsn, Backup Control Functions
pg_current_wal_lsn, Backup Control Functions
pg_current_xact_id, System Information Functions and Operators
pg_current_xact_id_if_assigned, System Information Functions and Operators
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 and Operators
pg_description, pg_description
pg_drop_replication_slot, Replication Management 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_sync, adminpack
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 and Operators
pg_get_constraintdef, System Information Functions and Operators
pg_get_expr, System Information Functions and Operators
pg_get_functiondef, System Information Functions and Operators
pg_get_function_arguments, System Information Functions and Operators
pg_get_function_identity_arguments, System Information Functions and Operators
pg_get_function_result, System Information Functions and Operators
pg_get_indexdef, System Information Functions and Operators
pg_get_keywords, System Information Functions and Operators
pg_get_object_address, System Information Functions and Operators
pg_get_ruledef, System Information Functions and Operators
pg_get_serial_sequence, System Information Functions and Operators
pg_get_statisticsobjdef, System Information Functions and Operators
pg_get_triggerdef, System Information Functions and Operators
pg_get_userbyid, System Information Functions and Operators
pg_get_viewdef, System Information Functions and Operators
pg_group, pg_group
pg_has_role, System Information Functions and Operators
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 and Operators
pg_identify_object_as_address, System Information Functions and Operators
pg_import_system_collations, Database Object Management Functions
pg_index, pg_index
pg_indexam_has_property, System Information Functions and Operators
pg_indexes, pg_indexes
pg_indexes_size, Database Object Management Functions
pg_index_column_has_property, System Information Functions and Operators
pg_index_has_property, System Information Functions and Operators
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 and Operators
pg_is_wal_replay_paused, Recovery Control Functions
pg_jit_available, System Information Functions and Operators
pg_language, pg_language
pg_largeobject, pg_largeobject
pg_largeobject_metadata, pg_largeobject_metadata
pg_last_committed_xact, System Information Functions and Operators
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 and Operators
pg_locks, pg_locks
pg_logdir_ls, adminpack
pg_logical_emit_message, Replication Management Functions
pg_logical_slot_get_binary_changes, Replication Management Functions
pg_logical_slot_get_changes, Replication Management Functions
pg_logical_slot_peek_binary_changes, Replication Management Functions
pg_logical_slot_peek_changes, Replication Management Functions
pg_lsn, pg_lsn Type
pg_ls_archive_statusdir, Generic File Access Functions
pg_ls_dir, Generic File Access Functions
pg_ls_logdir, Generic File Access Functions
pg_ls_tmpdir, Generic File Access Functions
pg_ls_waldir, Generic File Access Functions
pg_matviews, pg_matviews
pg_mcv_list_items, Inspecting MCV Lists
pg_my_temp_schema, System Information Functions and Operators
pg_namespace, pg_namespace
pg_notification_queue_usage, System Information Functions and Operators
pg_notify, pg_notify
pg_opclass, pg_opclass
pg_opclass_is_visible, System Information Functions and Operators
pg_operator, pg_operator
pg_operator_is_visible, System Information Functions and Operators
pg_opfamily, pg_opfamily
pg_opfamily_is_visible, System Information Functions and Operators
pg_options_to_table, System Information Functions and Operators
pg_partitioned_table, pg_partitioned_table
pg_partition_ancestors, Database Object Management Functions
pg_partition_root, Database Object Management Functions
pg_partition_tree, Database Object Management Functions
pg_policies, pg_policies
pg_policy, pg_policy
pg_postmaster_start_time, System Information Functions and Operators
pg_prepared_statements, pg_prepared_statements
pg_prepared_xacts, pg_prepared_xacts
pg_prewarm, pg_prewarm
pg_prewarm.autoprewarm configuration parameter, Configuration Parameters
pg_prewarm.autoprewarm_interval configuration parameter, Configuration Parameters
pg_proc, pg_proc
pg_promote, Recovery Control Functions
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_receivexlog, pg_receivexlog renamed to pg_receivewal (see 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 Management Functions
pg_replication_origin_create, Replication Management Functions
pg_replication_origin_drop, Replication Management Functions
pg_replication_origin_oid, Replication Management Functions
pg_replication_origin_progress, Replication Management Functions
pg_replication_origin_session_is_setup, Replication Management Functions
pg_replication_origin_session_progress, Replication Management Functions
pg_replication_origin_session_reset, Replication Management Functions
pg_replication_origin_session_setup, Replication Management Functions
pg_replication_origin_status, pg_replication_origin_status
pg_replication_origin_xact_reset, Replication Management Functions
pg_replication_origin_xact_setup, Replication Management Functions
pg_replication_slots, pg_replication_slots
pg_replication_slot_advance, Replication Management Functions
pg_resetwal, pg_resetwal
pg_resetxlog, pg_resetxlog renamed to pg_resetwal (see 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 and Operators
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_shmem_allocations, pg_shmem_allocations
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_snapshot_xip, System Information Functions and Operators
pg_snapshot_xmax, System Information Functions and Operators
pg_snapshot_xmin, System Information Functions and Operators
pg_standby, pg_standby
pg_start_backup, Backup Control Functions
pg_statio_all_indexes, Viewing Statistics, pg_statio_all_indexes
pg_statio_all_sequences, Viewing Statistics, pg_statio_all_sequences
pg_statio_all_tables, Viewing Statistics, pg_statio_all_tables
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 and Operators
pg_statistic_ext, Extended Statistics, pg_statistic_ext
pg_statistic_ext_data, Extended Statistics, pg_statistic_ext
pg_stats, Single-Column Statistics, pg_stats
pg_stats_ext, pg_stats_ext
pg_stat_activity, Viewing Statistics, pg_stat_activity
pg_stat_all_indexes, Viewing Statistics, pg_stat_all_indexes
pg_stat_all_tables, Viewing Statistics, pg_stat_all_tables
pg_stat_archiver, Viewing Statistics, pg_stat_archiver
pg_stat_bgwriter, Viewing Statistics, pg_stat_bgwriter
pg_stat_clear_snapshot, Statistics Functions
pg_stat_database, Viewing Statistics, pg_stat_database
pg_stat_database_conflicts, Viewing Statistics, pg_stat_database_conflicts
pg_stat_file, Generic File Access Functions
pg_stat_get_activity, Statistics Functions
pg_stat_get_backend_activity, Statistics Functions
pg_stat_get_backend_activity_start, Statistics Functions
pg_stat_get_backend_client_addr, Statistics Functions
pg_stat_get_backend_client_port, Statistics Functions
pg_stat_get_backend_dbid, Statistics Functions
pg_stat_get_backend_idset, Statistics Functions
pg_stat_get_backend_pid, Statistics Functions
pg_stat_get_backend_start, Statistics Functions
pg_stat_get_backend_userid, Statistics Functions
pg_stat_get_backend_wait_event, Statistics Functions
pg_stat_get_backend_wait_event_type, Statistics Functions
pg_stat_get_backend_xact_start, Statistics Functions
pg_stat_get_snapshot_timestamp, Statistics Functions
pg_stat_gssapi, Viewing Statistics, pg_stat_gssapi
pg_stat_progress_analyze, Viewing Statistics
pg_stat_progress_basebackup, Viewing Statistics
pg_stat_progress_cluster, Viewing Statistics
pg_stat_progress_create_index, Viewing Statistics
pg_stat_progress_vacuum, Viewing Statistics
pg_stat_replication, Viewing Statistics, pg_stat_replication
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_reset_slru, Statistics Functions
pg_stat_slru, Viewing Statistics, pg_stat_slru
pg_stat_ssl, Viewing Statistics, pg_stat_ssl
pg_stat_statements, pg_stat_statements
function, Functions
pg_stat_statements_reset, Functions
pg_stat_subscription, Viewing Statistics, pg_stat_subscription
pg_stat_sys_indexes, Viewing Statistics
pg_stat_sys_tables, Viewing Statistics
pg_stat_user_functions, Viewing Statistics, pg_stat_user_functions
pg_stat_user_indexes, Viewing Statistics
pg_stat_user_tables, Viewing Statistics
pg_stat_wal_receiver, Viewing Statistics, pg_stat_wal_receiver
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 and Operators
pg_tablespace_location, System Information Functions and Operators
pg_tablespace_size, Database Object Management Functions
pg_table_is_visible, System Information Functions and Operators
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
+ , GUC Parameters
pg_trgm.word_similarity_threshold configuration parameter - , GUC Parameters
pg_trigger, pg_trigger
pg_trigger_depth, System Information Functions and Operators
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 and Operators
pg_ts_config_map, pg_ts_config_map
pg_ts_dict, pg_ts_dict
pg_ts_dict_is_visible, System Information Functions and Operators
pg_ts_parser, pg_ts_parser
pg_ts_parser_is_visible, System Information Functions and Operators
pg_ts_template, pg_ts_template
pg_ts_template_is_visible, System Information Functions and Operators
pg_type, pg_type
pg_typeof, System Information Functions and Operators
pg_type_is_visible, System Information Functions and Operators
pg_upgrade, pg_upgrade
pg_user, pg_user
pg_user_mapping, pg_user_mapping
pg_user_mappings, pg_user_mappings
pg_verifybackup, pg_verifybackup
pg_views, pg_views
pg_visibility, pg_visibility
pg_visible_in_snapshot, System Information Functions and Operators
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 and Operators
pg_xact_status, System Information Functions and Operators
pg_xlogdump, pg_xlogdump renamed to pg_waldump (see pg_waldump)
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, PostgreSQL Features
with + , GUC Parameters
pg_trigger, pg_trigger
pg_trigger_depth, System Information Functions and Operators
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 and Operators
pg_ts_config_map, pg_ts_config_map
pg_ts_dict, pg_ts_dict
pg_ts_dict_is_visible, System Information Functions and Operators
pg_ts_parser, pg_ts_parser
pg_ts_parser_is_visible, System Information Functions and Operators
pg_ts_template, pg_ts_template
pg_ts_template_is_visible, System Information Functions and Operators
pg_type, pg_type
pg_typeof, System Information Functions and Operators
pg_type_is_visible, System Information Functions and Operators
pg_upgrade, pg_upgrade
pg_user, pg_user
pg_user_mapping, pg_user_mapping
pg_user_mappings, pg_user_mappings
pg_verifybackup, pg_verifybackup
pg_views, pg_views
pg_visibility, pg_visibility
pg_visible_in_snapshot, System Information Functions and Operators
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 and Operators
pg_xact_status, System Information Functions and Operators
pg_xlogdump, pg_xlogdump renamed to pg_waldump (see pg_waldump)
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, PostgreSQL Features
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
plan_cache_mode configuration parameter, Other Planner Options
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, Bit 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
PQgetSSLKeyPassHook_OpenSSL, Database Connection Control Functions
PQgetvalue, Retrieving Query Result Information
PQhost, Connection Status Functions
PQhostaddr, 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
PQresultMemorySize, Miscellaneous 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
PQsetSSLKeyPassHook_OpenSSL, Database Connection Control Functions
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 configuration parameter, Standby Servers
primary_slot_name configuration parameter, Standby Servers
privilege, Privileges, Schemas and Privileges, Rules and Privileges, Rules and Privileges
querying, System Information Functions and Operators
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
procedure, User-Defined Procedures
user-defined, User-Defined Procedures
promote_trigger_file configuration parameter, Standby Servers
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
range_merge, Range Functions and Operators
rank, Window Functions
hypothetical, Aggregate Functions
read committed, Read Committed Isolation Level
read-only transaction, Statement Behavior
setting, SET TRANSACTION
setting default, Statement Behavior
readline, Requirements
real, Floating-Point Types
REASSIGN OWNED, REASSIGN OWNED
record, Pseudo-Types
recovery.conf, recovery.conf file merged into postgresql.conf
recovery.signal, Archive Recovery
recovery_end_command configuration parameter, Archive Recovery
recovery_min_apply_delay configuration parameter, Standby Servers
recovery_target configuration parameter, Recovery Target
recovery_target_action configuration parameter, Recovery Target
recovery_target_inclusive configuration parameter, Recovery Target
recovery_target_lsn configuration parameter, Recovery Target
recovery_target_name configuration parameter, Recovery Target
recovery_target_time configuration parameter, Recovery Target
recovery_target_timeline configuration parameter, Recovery Target
recovery_target_xid configuration parameter, Recovery Target
rectangle, Boxes
RECURSIVE, CREATE VIEW
in common table expressions, SELECT in WITH
in views, CREATE VIEW
referential integrity, Foreign Keys, Foreign Keys
REFRESH MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW
regclass, Object Identifier Types
regcollation, 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
regnamespace, Object Identifier Types
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
regrole, Object Identifier Types
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
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 configuration parameter, Archive Recovery
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, User-Defined Procedures
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 and Operators
row_to_json, Processing and Creating JSON Data
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 and Operators
public, The Public Schema
removing, Creating a Schema
SCRAM, Password Authentication
search path, The Schema Search Path
current, System Information Functions and Operators
object visibility, System Information Functions and Operators
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 and Operators
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, Bit 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
sha224, Binary String Functions and Operators
sha256, Binary String Functions and Operators
sha384, Binary String Functions and Operators
sha512, Binary String 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_memory_type configuration parameter, Memory
shared_preload_libraries, Shared Memory and LWLocks
shared_preload_libraries configuration parameter, Shared Library Preloading
shobj_description, System Information Functions and Operators
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
sinh, Mathematical Functions and Operators
skeys, hstore Operators and Functions
sleep, Delaying Execution
slice, hstore Operators and Functions
sliced bread (see TOAST)
slope, Geometric Functions and Operators
SLRU, pg_stat_slru
smallint, Integer Types
smallserial, Serial Types
Solaris, Solaris
installation on, Solaris
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_commit
in PL/Perl, Database Access from PL/Perl
SPI_commit, SPI_commit
SPI_commit_and_chain, SPI_commit
SPI_connect, SPI_connect
SPI_connect_ext, 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_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_result_code_string, SPI_result_code_string
SPI_returntuple, SPI_returntuple
spi_rollback
in PL/Perl, Database Access from PL/Perl
SPI_rollback, SPI_rollback
SPI_rollback_and_chain, SPI_rollback
SPI_saveplan, SPI_saveplan
SPI_scroll_cursor_fetch, SPI_scroll_cursor_fetch
SPI_scroll_cursor_move, SPI_scroll_cursor_move
SPI_start_transaction, SPI_start_transaction
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/JSON path language, The SQL/JSON Path Language
SQL/MDA, 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, SSL
sslinfo, sslinfo
ssl_ca_file configuration parameter, SSL
ssl_cert_file configuration parameter, SSL
ssl_cipher, Functions Provided
ssl_ciphers configuration parameter, SSL
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, SSL
ssl_dh_params_file configuration parameter, SSL
ssl_ecdh_curve configuration parameter, SSL
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, SSL
ssl_library configuration parameter, Preset Options
ssl_max_protocol_version configuration parameter, SSL
ssl_min_protocol_version configuration parameter, SSL
ssl_passphrase_command configuration parameter, SSL
ssl_passphrase_command_supports_reload configuration parameter, SSL
ssl_prefer_server_ciphers configuration parameter, SSL
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.signal, Archive Recovery, Standby Server Operation, Setting Up a Standby Server
for hot standby, Administrator's Overview
pg_basebackup --write-recovery-conf, Options
standby_mode (see standby.signal)
START TRANSACTION, START TRANSACTION
starts_with, String Functions and Operators
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
strict_word_similarity, Functions and Operators
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, Binary String Functions and Operators
substring, String Functions and Operators, Binary String Functions and Operators, Bit 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
support functions
in_range, B-Tree Support Functions
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, PostgreSQL Features, 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 Access Method, Table Access Method Interface Definition
TABLE command, SELECT
table expression, Table Expressions
table function, Table Functions, xmltable
XMLTABLE, xmltable
table sampling method, Writing a Table Sampling Method
tableam
Table Access Method, Table Access Method Interface Definition
tablefunc, tablefunc
tableoid, System Columns
TABLESAMPLE method, Writing a Table Sampling Method
tablespace, Tablespaces
default, Statement Behavior
temporary, Statement Behavior
table_am_handler, Pseudo-Types
tan, Mathematical Functions and Operators
tand, Mathematical Functions and Operators
tanh, 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
tcp_user_timeout 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, POSIX Time Zone Specifications
conversion, AT TIME ZONE
input abbreviations, Date/Time Configuration Files
POSIX-style specification, POSIX Time Zone Specifications
time zone data, Build Process Details
time zone names, Locale and Formatting
timelines, Backup and Restore
TIMELINE_HISTORY, Streaming Replication Protocol
timeofday, Date/Time Functions and Operators
timeout
client authentication, 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
per-type storage settings, Description
versus large objects, Introduction
toast_tuple_target storage parameter, Storage Parameters
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, Processing and Creating JSON Data
to_jsonb, Processing and Creating JSON Data
to_number, Data Type Formatting Functions
to_regclass, System Information Functions and Operators
to_regcollation, System Information Functions and Operators
to_regnamespace, System Information Functions and Operators
to_regoper, System Information Functions and Operators
to_regoperator, System Information Functions and Operators
to_regproc, System Information Functions and Operators
to_regprocedure, System Information Functions and Operators
to_regrole, System Information Functions and Operators
to_regtype, System Information Functions and Operators
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 Servers
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, Statement Behavior
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_deferrable configuration parameter, Statement Behavior
transaction_isolation configuration parameter, Statement Behavior
transaction_read_only configuration parameter, Statement Behavior
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
transparent - huge pages, Memory
trigger, Pseudo-Types, Triggers, Writing Trigger Functions in C, Rules Versus Triggers, Trigger Functions, 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 Functions
in PL/Python, Trigger Functions
in PL/Tcl, Trigger Functions in PL/Tcl
compared with rules, Rules Versus Triggers
triggered_change_notification, tcn
trigger_file (see promote_trigger_file)
trim, String Functions and Operators, Binary String Functions and Operators
trim_scale, Mathematical 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, Trigger Functions
tsvector_update_trigger_column, Trigger Functions
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 and Operators
txid_current_if_assigned, System Information Functions and Operators
txid_current_snapshot, System Information Functions and Operators
txid_snapshot_xip, System Information Functions and Operators
txid_snapshot_xmax, System Information Functions and Operators
txid_snapshot_xmin, System Information Functions and Operators
txid_status, System Information Functions and Operators
txid_visible_in_snapshot, System Information Functions and Operators
type (see data type)
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
Unicode normalization, String Functions and Operators
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 and Operators, Database Roles
current, System Information Functions and Operators
user mapping, Foreign Data
User name maps, User Name Maps
user_catalog_table storage parameter, Storage Parameters
UUID, UUID Type, UUID Type, PostgreSQL Features
generating, UUID Type
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_index_cleanup storage parameter, Storage Parameters
vacuum_multixact_freeze_min_age configuration parameter, Statement Behavior
vacuum_multixact_freeze_table_age configuration parameter, Statement Behavior
vacuum_truncate storage parameter, Storage Parameters
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 and Operators, 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_init_zero configuration parameter, Settings
wal_keep_size configuration parameter, Sending Servers
wal_level configuration parameter, Settings
wal_log_hints configuration parameter, Settings
wal_receiver_create_temp_slot configuration parameter, Standby Servers
wal_receiver_status_interval configuration parameter, Standby Servers
wal_receiver_timeout configuration parameter, Standby Servers
wal_recycle configuration parameter, Settings
wal_retrieve_retry_interval configuration parameter, Standby Servers
wal_segment_size configuration parameter, Preset Options
wal_sender_timeout configuration parameter, Sending Servers
wal_skip_threshold configuration parameter, Settings
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
websearch_to_tsquery, Text Search Functions and Operators
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
xid8, 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
XQuery regular expressions, Differences from XQuery (LIKE_REGEX)
xslt_process, xslt_process

Z

zero_damaged_pages configuration parameter, Developer Options
zlib, Requirements, Anti-Features
\ 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
plan_cache_mode configuration parameter, Other Planner Options
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, Bit 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
PQgetSSLKeyPassHook_OpenSSL, Database Connection Control Functions
PQgetvalue, Retrieving Query Result Information
PQhost, Connection Status Functions
PQhostaddr, 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
PQresultMemorySize, Miscellaneous 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
PQsetSSLKeyPassHook_OpenSSL, Database Connection Control Functions
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 configuration parameter, Standby Servers
primary_slot_name configuration parameter, Standby Servers
privilege, Privileges, Schemas and Privileges, Rules and Privileges, Rules and Privileges
querying, System Information Functions and Operators
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
procedure, User-Defined Procedures
user-defined, User-Defined Procedures
promote_trigger_file configuration parameter, Standby Servers
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
range_merge, Range Functions and Operators
rank, Window Functions
hypothetical, Aggregate Functions
read committed, Read Committed Isolation Level
read-only transaction, Statement Behavior
setting, SET TRANSACTION
setting default, Statement Behavior
readline, Requirements
real, Floating-Point Types
REASSIGN OWNED, REASSIGN OWNED
record, Pseudo-Types
recovery.conf, recovery.conf file merged into postgresql.conf
recovery.signal, Archive Recovery
recovery_end_command configuration parameter, Archive Recovery
recovery_min_apply_delay configuration parameter, Standby Servers
recovery_target configuration parameter, Recovery Target
recovery_target_action configuration parameter, Recovery Target
recovery_target_inclusive configuration parameter, Recovery Target
recovery_target_lsn configuration parameter, Recovery Target
recovery_target_name configuration parameter, Recovery Target
recovery_target_time configuration parameter, Recovery Target
recovery_target_timeline configuration parameter, Recovery Target
recovery_target_xid configuration parameter, Recovery Target
rectangle, Boxes
RECURSIVE, CREATE VIEW
in common table expressions, SELECT in WITH
in views, CREATE VIEW
referential integrity, Foreign Keys, Foreign Keys
REFRESH MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW
regclass, Object Identifier Types
regcollation, 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
regnamespace, Object Identifier Types
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
regrole, Object Identifier Types
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
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 configuration parameter, Archive Recovery
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, User-Defined Procedures
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 and Operators
row_to_json, Processing and Creating JSON Data
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 and Operators
public, The Public Schema
removing, Creating a Schema
SCRAM, Password Authentication
search path, The Schema Search Path
current, System Information Functions and Operators
object visibility, System Information Functions and Operators
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 and Operators
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, Bit 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
sha224, Binary String Functions and Operators
sha256, Binary String Functions and Operators
sha384, Binary String Functions and Operators
sha512, Binary String 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_memory_type configuration parameter, Memory
shared_preload_libraries, Shared Memory and LWLocks
shared_preload_libraries configuration parameter, Shared Library Preloading
shobj_description, System Information Functions and Operators
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
sinh, Mathematical Functions and Operators
skeys, hstore Operators and Functions
sleep, Delaying Execution
slice, hstore Operators and Functions
sliced bread (see TOAST)
slope, Geometric Functions and Operators
SLRU, pg_stat_slru
smallint, Integer Types
smallserial, Serial Types
Solaris, Solaris
installation on, Solaris
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_commit
in PL/Perl, Database Access from PL/Perl
SPI_commit, SPI_commit
SPI_commit_and_chain, SPI_commit
SPI_connect, SPI_connect
SPI_connect_ext, 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_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_result_code_string, SPI_result_code_string
SPI_returntuple, SPI_returntuple
spi_rollback
in PL/Perl, Database Access from PL/Perl
SPI_rollback, SPI_rollback
SPI_rollback_and_chain, SPI_rollback
SPI_saveplan, SPI_saveplan
SPI_scroll_cursor_fetch, SPI_scroll_cursor_fetch
SPI_scroll_cursor_move, SPI_scroll_cursor_move
SPI_start_transaction, SPI_start_transaction
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/JSON path language, The SQL/JSON Path Language
SQL/MDA, 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, SSL
sslinfo, sslinfo
ssl_ca_file configuration parameter, SSL
ssl_cert_file configuration parameter, SSL
ssl_cipher, Functions Provided
ssl_ciphers configuration parameter, SSL
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, SSL
ssl_dh_params_file configuration parameter, SSL
ssl_ecdh_curve configuration parameter, SSL
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, SSL
ssl_library configuration parameter, Preset Options
ssl_max_protocol_version configuration parameter, SSL
ssl_min_protocol_version configuration parameter, SSL
ssl_passphrase_command configuration parameter, SSL
ssl_passphrase_command_supports_reload configuration parameter, SSL
ssl_prefer_server_ciphers configuration parameter, SSL
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.signal, Archive Recovery, Standby Server Operation, Setting Up a Standby Server
for hot standby, Administrator's Overview
pg_basebackup --write-recovery-conf, Options
standby_mode (see standby.signal)
START TRANSACTION, START TRANSACTION
starts_with, String Functions and Operators
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
strict_word_similarity, Functions and Operators
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, Binary String Functions and Operators
substring, String Functions and Operators, Binary String Functions and Operators, Bit 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
support functions
in_range, B-Tree Support Functions
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, PostgreSQL Features, 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 Access Method, Table Access Method Interface Definition
TABLE command, SELECT
table expression, Table Expressions
table function, Table Functions, xmltable
XMLTABLE, xmltable
table sampling method, Writing a Table Sampling Method
tableam
Table Access Method, Table Access Method Interface Definition
tablefunc, tablefunc
tableoid, System Columns
TABLESAMPLE method, Writing a Table Sampling Method
tablespace, Tablespaces
default, Statement Behavior
temporary, Statement Behavior
table_am_handler, Pseudo-Types
tan, Mathematical Functions and Operators
tand, Mathematical Functions and Operators
tanh, 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
tcp_user_timeout 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, Preferred Index Types for Text Search
data types, Text Search Types
functions and operators, Text Search Types
indexes, Preferred Index Types for Text Search
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, POSIX Time Zone Specifications
conversion, AT TIME ZONE
input abbreviations, Date/Time Configuration Files
POSIX-style specification, POSIX Time Zone Specifications
time zone data, Build Process Details
time zone names, Locale and Formatting
timelines, Backup and Restore
TIMELINE_HISTORY, Streaming Replication Protocol
timeofday, Date/Time Functions and Operators
timeout
client authentication, 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
per-type storage settings, Description
versus large objects, Introduction
toast_tuple_target storage parameter, Storage Parameters
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, Processing and Creating JSON Data
to_jsonb, Processing and Creating JSON Data
to_number, Data Type Formatting Functions
to_regclass, System Information Functions and Operators
to_regcollation, System Information Functions and Operators
to_regnamespace, System Information Functions and Operators
to_regoper, System Information Functions and Operators
to_regoperator, System Information Functions and Operators
to_regproc, System Information Functions and Operators
to_regprocedure, System Information Functions and Operators
to_regrole, System Information Functions and Operators
to_regtype, System Information Functions and Operators
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 Servers
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, Statement Behavior
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_deferrable configuration parameter, Statement Behavior
transaction_isolation configuration parameter, Statement Behavior
transaction_read_only configuration parameter, Statement Behavior
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
transparent + huge pages, Memory
trigger, Pseudo-Types, Triggers, Writing Trigger Functions in C, Rules Versus Triggers, Trigger Functions, 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 Functions
in PL/Python, Trigger Functions
in PL/Tcl, Trigger Functions in PL/Tcl
compared with rules, Rules Versus Triggers
triggered_change_notification, tcn
trigger_file (see promote_trigger_file)
trim, String Functions and Operators, Binary String Functions and Operators
trim_scale, Mathematical 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, Trigger Functions
tsvector_update_trigger_column, Trigger Functions
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 and Operators
txid_current_if_assigned, System Information Functions and Operators
txid_current_snapshot, System Information Functions and Operators
txid_snapshot_xip, System Information Functions and Operators
txid_snapshot_xmax, System Information Functions and Operators
txid_snapshot_xmin, System Information Functions and Operators
txid_status, System Information Functions and Operators
txid_visible_in_snapshot, System Information Functions and Operators
type (see data type)
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
Unicode normalization, String Functions and Operators
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 and Operators, Database Roles
current, System Information Functions and Operators
user mapping, Foreign Data
User name maps, User Name Maps
user_catalog_table storage parameter, Storage Parameters
UUID, UUID Type, UUID Type, PostgreSQL Features
generating, UUID Type
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_index_cleanup storage parameter, Storage Parameters
vacuum_multixact_freeze_min_age configuration parameter, Statement Behavior
vacuum_multixact_freeze_table_age configuration parameter, Statement Behavior
vacuum_truncate storage parameter, Storage Parameters
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 and Operators, 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_init_zero configuration parameter, Settings
wal_keep_size configuration parameter, Sending Servers
wal_level configuration parameter, Settings
wal_log_hints configuration parameter, Settings
wal_receiver_create_temp_slot configuration parameter, Standby Servers
wal_receiver_status_interval configuration parameter, Standby Servers
wal_receiver_timeout configuration parameter, Standby Servers
wal_recycle configuration parameter, Settings
wal_retrieve_retry_interval configuration parameter, Standby Servers
wal_segment_size configuration parameter, Preset Options
wal_sender_timeout configuration parameter, Sending Servers
wal_skip_threshold configuration parameter, Settings
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
websearch_to_tsquery, Text Search Functions and Operators
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
xid8, 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
XQuery regular expressions, Differences from XQuery (LIKE_REGEX)
xslt_process, xslt_process

Z

zero_damaged_pages configuration parameter, Developer Options
zlib, Requirements, Anti-Features
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/brin-builtin-opclasses.html postgresql-13-13.7/doc/src/sgml/html/brin-builtin-opclasses.html --- postgresql-13-13.4/doc/src/sgml/html/brin-builtin-opclasses.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/brin-builtin-opclasses.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -67.2. Built-in Operator Classes

67.2. Built-in Operator Classes

+67.2. Built-in Operator Classes

67.2. Built-in Operator Classes

The core PostgreSQL distribution includes the BRIN operator classes shown in Table 67.1. @@ -200,4 +200,4 @@ = >= > -


\ No newline at end of file +
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/brin-extensibility.html postgresql-13-13.7/doc/src/sgml/html/brin-extensibility.html --- postgresql-13-13.4/doc/src/sgml/html/brin-extensibility.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/brin-extensibility.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -67.3. Extensibility

67.3. Extensibility

+67.3. Extensibility

67.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 @@ -134,4 +134,4 @@ right-hand-side argument of the supported operator. See float4_minmax_ops as an example of minmax, and box_inclusion_ops as an example of inclusion. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/brin.html postgresql-13-13.7/doc/src/sgml/html/brin.html --- postgresql-13-13.4/doc/src/sgml/html/brin.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/brin.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 67. BRIN Indexes \ No newline at end of file +Chapter 67. BRIN Indexes \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/brin-intro.html postgresql-13-13.7/doc/src/sgml/html/brin-intro.html --- postgresql-13-13.4/doc/src/sgml/html/brin-intro.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/brin-intro.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -67.1. Introduction

67.1. Introduction

+67.1. Introduction

67.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 @@ -72,4 +72,4 @@

When this happens, the range will be summarized normally during the next regular vacuum of the table. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/btree-behavior.html postgresql-13-13.7/doc/src/sgml/html/btree-behavior.html --- postgresql-13-13.4/doc/src/sgml/html/btree-behavior.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/btree-behavior.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -63.2. Behavior of B-Tree Operator Classes

63.2. Behavior of B-Tree Operator Classes

+63.2. Behavior of B-Tree Operator Classes

63.2. Behavior of B-Tree Operator Classes

As shown in Table 37.3, a btree operator class must provide five comparison operators, <, @@ -115,4 +115,4 @@ data types. The extensions to three or more data types within a family are not strictly required by the btree index mechanism itself, but the planner relies on them for optimization purposes. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/btree-gin.html postgresql-13-13.7/doc/src/sgml/html/btree-gin.html --- postgresql-13-13.4/doc/src/sgml/html/btree-gin.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/btree-gin.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.6. btree_gin

F.6. btree_gin

+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, @@ -35,4 +35,4 @@ Oleg Bartunov (). See http://www.sai.msu.su/~megera/oddmuse/index.cgi/Gin for additional information. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/btree-gist.html postgresql-13-13.7/doc/src/sgml/html/btree-gist.html --- postgresql-13-13.4/doc/src/sgml/html/btree-gist.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/btree-gist.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.7. btree_gist

F.7. btree_gist

+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, @@ -77,4 +77,4 @@ Paul Jungwirth (). See http://www.sai.msu.su/~megera/postgres/gist/ for additional information. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/btree.html postgresql-13-13.7/doc/src/sgml/html/btree.html --- postgresql-13-13.4/doc/src/sgml/html/btree.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/btree.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 63. B-Tree Indexes \ No newline at end of file +Chapter 63. B-Tree Indexes \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/btree-implementation.html postgresql-13-13.7/doc/src/sgml/html/btree-implementation.html --- postgresql-13-13.4/doc/src/sgml/html/btree-implementation.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/btree-implementation.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -63.4. Implementation

63.4. Implementation

+63.4. Implementation

63.4. Implementation

This section covers B-Tree index implementation details that may be of use to advanced users. See src/backend/access/nbtree/README in the source @@ -166,4 +166,4 @@

  • INCLUDE indexes can never use deduplication.

-

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/btree-intro.html postgresql-13-13.7/doc/src/sgml/html/btree-intro.html --- postgresql-13-13.4/doc/src/sgml/html/btree-intro.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/btree-intro.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -63.1. Introduction

63.1. Introduction

+63.1. Introduction

63.1. Introduction

PostgreSQL includes an implementation of the standard btree (multi-way balanced tree) index data structure. Any data type that can be sorted into a well-defined linear @@ -14,4 +14,4 @@ some features that go beyond what would be needed just to support btree indexes, and parts of the system that are quite distant from the btree AM make use of them. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/btree-support-funcs.html postgresql-13-13.7/doc/src/sgml/html/btree-support-funcs.html --- postgresql-13-13.4/doc/src/sgml/html/btree-support-funcs.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/btree-support-funcs.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -63.3. B-Tree Support Functions

63.3. B-Tree Support Functions

+63.3. B-Tree Support Functions

63.3. B-Tree Support Functions

As shown in Table 37.9, btree defines one required and four optional support functions. The five user-defined methods are: @@ -288,4 +288,4 @@ access method. Nevertheless, this support function was added to B-tree for uniformity, and will probably find uses during further evolution of B-tree in PostgreSQL. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/bug-reporting.html postgresql-13-13.7/doc/src/sgml/html/bug-reporting.html --- postgresql-13-13.4/doc/src/sgml/html/bug-reporting.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/bug-reporting.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -5. Bug Reporting Guidelines

5. Bug Reporting Guidelines

+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 @@ -154,7 +154,7 @@ 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 13.4 we will almost certainly + If your version is older than 13.7 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 @@ -245,4 +245,4 @@ will be some delay before the email is delivered. If you wish to subscribe to the lists, please visit https://lists.postgresql.org/ for instructions. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-aggregate.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-aggregate.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-aggregate.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-aggregate.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.2. pg_aggregate

51.2. pg_aggregate

+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 @@ -166,4 +166,4 @@ command. See Section 37.12 for more information about writing aggregate functions and the meaning of the transition functions, etc. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-am.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-am.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-am.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-am.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.3. pg_am

51.3. pg_am

+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. @@ -41,4 +41,4 @@ However, pg_index_column_has_property() and related functions have been added to allow SQL queries to inspect index access method properties; see Table 9.68. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-amop.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-amop.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-amop.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-amop.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.4. pg_amop

51.4. pg_amop

+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 @@ -101,4 +101,4 @@ amoplefttype and amoprighttype must match the oprleft and oprright fields of the referenced pg_operator entry. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-amproc.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-amproc.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-amproc.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-amproc.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.5. pg_amproc

51.5. pg_amproc

+51.5. pg_amproc

51.5. pg_amproc

The catalog pg_amproc stores information about support functions associated with access method operator families. There is one row for each support function belonging to an operator family. @@ -52,4 +52,4 @@ an index, which are those with amproclefttype and amprocrighttype both equal to the index operator class's opcintype. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-attrdef.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-attrdef.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-attrdef.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-attrdef.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.6. pg_attrdef

51.6. pg_attrdef

+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. @@ -34,4 +34,4 @@ The column default value, in nodeToString() representation. Use pg_get_expr(adbin, adrelid) to convert it to an SQL expression. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-attribute.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-attribute.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-attribute.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-attribute.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.7. pg_attribute

51.7. pg_attribute

+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 @@ -195,4 +195,4 @@ later dropped, and so there is no pg_type row anymore. attlen and the other fields can be used to interpret the contents of a row of the table. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-authid.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-authid.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-authid.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-authid.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.8. pg_authid

51.8. pg_authid

+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 @@ -110,4 +110,4 @@

A password that does not follow either of those formats is assumed to be unencrypted. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-auth-members.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-auth-members.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-auth-members.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-auth-members.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.9. pg_auth_members

51.9. pg_auth_members

+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.

@@ -37,4 +37,4 @@

True if member can grant membership in roleid to others -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-cast.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-cast.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-cast.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-cast.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.10. pg_cast

51.10. pg_cast

+51.10. pg_cast

51.10. pg_cast

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

@@ -83,4 +83,4 @@ coercion in a single step. When no such entry is available, coercion to a type that uses a type modifier involves two steps, one to convert between data types and a second to apply the modifier. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-class.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-class.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-class.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-class.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.11. pg_class

51.11. pg_class

+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 @@ -255,4 +255,4 @@ DROP INDEX. Instead, VACUUM clears relhasindex if it finds the table has no indexes. This arrangement avoids race conditions and improves concurrency. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-collation.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-collation.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-collation.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-collation.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.12. pg_collation

51.12. pg_collation

+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. @@ -85,4 +85,4 @@ collations whose encoding does not match the database encoding, since they could match the encodings of databases later cloned from template0. This would currently have to be done manually. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-constraint.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-constraint.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-constraint.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-constraint.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.13. pg_constraint

51.13. pg_constraint

+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 @@ -194,4 +194,4 @@ pg_class.relchecks needs to agree with the number of check-constraint entries found in this table for each relation. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-conversion.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-conversion.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-conversion.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-conversion.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.14. pg_conversion

51.14. pg_conversion

+51.14. pg_conversion

51.14. pg_conversion

The catalog pg_conversion describes encoding conversion functions. See CREATE CONVERSION for more information. @@ -51,4 +51,4 @@

True if this is the default conversion -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-database.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-database.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-database.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-database.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.15. pg_database

51.15. pg_database

+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 @@ -108,4 +108,4 @@

Access privileges; see Section 5.7 for details -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-db-role-setting.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-db-role-setting.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-db-role-setting.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-db-role-setting.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.16. pg_db_role_setting

51.16. pg_db_role_setting

+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. @@ -30,4 +30,4 @@

Defaults for run-time configuration variables -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-default-acl.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-default-acl.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-default-acl.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-default-acl.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.17. pg_default_acl

51.17. pg_default_acl

+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

@@ -55,4 +55,4 @@ not whatever might be in pg_default_acl at the moment. pg_default_acl is only consulted during object creation. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-depend.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-depend.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-depend.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-depend.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.18. pg_depend

51.18. pg_depend

+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 @@ -167,4 +167,4 @@ its condition for automatic dropping. Conversely, all the dependencies' restrictions about which objects must be dropped together must be satisfied. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-description.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-description.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-description.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-description.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.19. pg_description

51.19. pg_description

+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 @@ -40,4 +40,4 @@

Arbitrary text that serves as the description of this object -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-enum.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-enum.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-enum.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-enum.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.20. pg_enum

51.20. pg_enum

+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 @@ -46,4 +46,4 @@ negative or fractional values of enumsortorder. The only requirement on these values is that they be correctly ordered and unique within each enum type. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-event-trigger.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-event-trigger.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-event-trigger.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-event-trigger.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.21. pg_event_trigger

51.21. pg_event_trigger

+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

@@ -50,4 +50,4 @@

Command tags for which this trigger will fire. If NULL, the firing of this trigger is not restricted on the basis of the command tag. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-extension.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-extension.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-extension.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-extension.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.22. pg_extension

51.22. pg_extension

+51.22. pg_extension

51.22. pg_extension

The catalog pg_extension stores information about the installed extensions. See Section 37.17 for details about extensions. @@ -62,4 +62,4 @@ objects. If extrelocatable is true, then this schema must in fact contain all schema-qualifiable objects belonging to the extension. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.23. pg_foreign_data_wrapper

51.23. pg_foreign_data_wrapper

+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 @@ -53,4 +53,4 @@

Foreign-data wrapper specific options, as keyword=value strings -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-foreign-server.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-foreign-server.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-foreign-server.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-foreign-server.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.24. pg_foreign_server

51.24. pg_foreign_server

+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 @@ -51,4 +51,4 @@

Foreign server specific options, as keyword=value strings -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-foreign-table.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-foreign-table.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-foreign-table.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-foreign-table.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.25. pg_foreign_table

51.25. pg_foreign_table

+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, @@ -28,4 +28,4 @@

Foreign table options, as keyword=value strings -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-index.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-index.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-index.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-index.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.26. pg_index

51.26. pg_index

+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. @@ -151,4 +151,4 @@ Expression tree (in nodeToString() representation) for partial index predicate. Null if not a partial index. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-inherits.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-inherits.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-inherits.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-inherits.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.27. pg_inherits

51.27. pg_inherits

+51.27. pg_inherits

51.27. pg_inherits

The catalog pg_inherits records information about table and index inheritance hierarchies. There is one entry for each direct parent-child table or index relationship in the database. (Indirect @@ -32,4 +32,4 @@

Indexes cannot have multiple inheritance, since they can only inherit when using declarative partitioning. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-init-privs.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-init-privs.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-init-privs.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-init-privs.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.28. pg_init_privs

51.28. pg_init_privs

+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) @@ -58,4 +58,4 @@

The initial access privileges; see Section 5.7 for details -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-language.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-language.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-language.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-language.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.29. pg_language

51.29. pg_language

+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 @@ -73,4 +73,4 @@

Access privileges; see Section 5.7 for details -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-largeobject.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-largeobject.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-largeobject.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-largeobject.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.30. pg_largeobject

51.30. pg_largeobject

+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 @@ -45,4 +45,4 @@ allows sparse storage: pages might be missing, and might be shorter than LOBLKSIZE bytes even if they are not the last page of the object. Missing regions within a large object read as zeroes. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-largeobject-metadata.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-largeobject-metadata.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-largeobject-metadata.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-largeobject-metadata.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.31. pg_largeobject_metadata

51.31. 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 @@ -25,4 +25,4 @@

Access privileges; see Section 5.7 for details -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-namespace.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-namespace.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-namespace.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-namespace.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.32. pg_namespace

51.32. pg_namespace

+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 @@ -30,4 +30,4 @@

Access privileges; see Section 5.7 for details -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-opclass.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-opclass.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-opclass.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-opclass.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.33. pg_opclass

51.33. pg_opclass

+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 @@ -72,4 +72,4 @@ Also, there must be no more than one pg_opclass row having opcdefault true for any given combination of opcmethod and opcintype. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-operator.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-operator.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-operator.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-operator.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.34. pg_operator

51.34. pg_operator

+51.34. pg_operator

51.34. pg_operator

The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 37.14 for more information. @@ -95,6 +95,6 @@

Join selectivity estimation function for this operator


- Unused column contain zeroes. For example, oprleft + Unused columns contain zeroes. For example, oprleft is zero for a prefix operator. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-opfamily.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-opfamily.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-opfamily.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-opfamily.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.35. pg_opfamily

51.35. pg_opfamily

+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 @@ -50,4 +50,4 @@ pg_amproc, and pg_opclass. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-partitioned-table.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-partitioned-table.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-partitioned-table.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-partitioned-table.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.36. pg_partitioned_table

51.36. pg_partitioned_table

+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

@@ -68,4 +68,4 @@ references. This is a list with one element for each zero entry in partattrs. Null if all partition key columns are simple references. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-policy.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-policy.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-policy.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-policy.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.37. pg_policy

51.37. pg_policy

+51.37. pg_policy

51.37. 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 @@ -63,4 +63,4 @@ Policies stored in pg_policy are applied only when pg_class.relrowsecurity is set for their table. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-proc.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-proc.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-proc.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-proc.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.38. pg_proc

51.38. pg_proc

+51.38. pg_proc

51.38. pg_proc

The catalog pg_proc stores information about functions, procedures, aggregate functions, and window functions (collectively also known as routines). See CREATE FUNCTION, CREATE PROCEDURE, and @@ -239,4 +239,4 @@ text. probin is unused except for dynamically-loaded C functions, for which it gives the name of the shared library file containing the function. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-publication.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-publication.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-publication.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-publication.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.39. pg_publication

51.39. pg_publication

+51.39. pg_publication

51.39. pg_publication

The catalog pg_publication contains all publications created in the database. For more on publications see Section 30.1. @@ -61,4 +61,4 @@ If true, operations on a leaf partition are replicated using the identity and schema of its topmost partitioned ancestor mentioned in the publication instead of its own. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-publication-rel.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-publication-rel.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-publication-rel.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-publication-rel.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.40. pg_publication_rel

51.40. pg_publication_rel

+51.40. pg_publication_rel

51.40. 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 @@ -26,4 +26,4 @@

Reference to relation -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-range.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-range.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-range.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-range.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.41. pg_range

51.41. pg_range

+51.41. pg_range

51.41. pg_range

The catalog pg_range stores information about range types. This is in addition to the types' entries in pg_type. @@ -52,4 +52,4 @@ type. rngcanonical is used when the element type is discrete. rngsubdiff is optional but should be supplied to improve performance of GiST indexes on the range type. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-replication-origin.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-replication-origin.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-replication-origin.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-replication-origin.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.42. pg_replication_origin

51.42. pg_replication_origin

+51.42. pg_replication_origin

51.42. pg_replication_origin

The pg_replication_origin catalog contains all replication origins created. For more on replication origins see Chapter 49. @@ -25,4 +25,4 @@

The external, user defined, name of a replication origin. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-rewrite.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-rewrite.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-rewrite.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-rewrite.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.43. pg_rewrite

51.43. pg_rewrite

+51.43. pg_rewrite

51.43. pg_rewrite

The catalog pg_rewrite stores rewrite rules for tables and views.

Table 51.43. pg_rewrite Columns

Column Type @@ -61,4 +61,4 @@


Note

pg_class.relhasrules must be true if a table has any rules in this catalog. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-seclabel.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-seclabel.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-seclabel.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-seclabel.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.44. pg_seclabel

51.44. pg_seclabel

+51.44. pg_seclabel

51.44. 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 @@ -43,4 +43,4 @@

The security label applied to this object. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-sequence.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-sequence.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-sequence.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-sequence.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.45. pg_sequence

51.45. pg_sequence

+51.45. pg_sequence

51.45. 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. @@ -50,4 +50,4 @@

Whether the sequence cycles -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-shdepend.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-shdepend.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-shdepend.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-shdepend.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.46. pg_shdepend

51.46. pg_shdepend

+51.46. pg_shdepend

51.46. pg_shdepend

The catalog pg_shdepend records the dependency relationships between database objects and shared objects, such as roles. This information allows @@ -95,4 +95,4 @@ Other dependency flavors might be needed in future. Note in particular that the current definition only supports roles and tablespaces as referenced objects. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-shdescription.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-shdescription.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-shdescription.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-shdescription.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.47. pg_shdescription

51.47. pg_shdescription

+51.47. pg_shdescription

51.47. 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 @@ -35,4 +35,4 @@

Arbitrary text that serves as the description of this object -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-shseclabel.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-shseclabel.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-shseclabel.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-shseclabel.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.48. pg_shseclabel

51.48. pg_shseclabel

+51.48. pg_shseclabel

51.48. 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 @@ -40,4 +40,4 @@

The security label applied to this object. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-statistic-ext-data.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-statistic-ext-data.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-statistic-ext-data.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-statistic-ext-data.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.51. pg_statistic_ext_data

51.51. pg_statistic_ext_data

+51.51. pg_statistic_ext_data

51.51. pg_statistic_ext_data

The catalog pg_statistic_ext_data holds data for extended planner statistics defined in pg_statistic_ext. Each row in this catalog corresponds to a statistics object @@ -44,4 +44,4 @@

MCV (most-common values) list statistics, serialized as pg_mcv_list type -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-statistic-ext.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-statistic-ext.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-statistic-ext.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-statistic-ext.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.50. pg_statistic_ext

51.50. pg_statistic_ext

+51.50. pg_statistic_ext

51.50. pg_statistic_ext

The catalog pg_statistic_ext holds definitions of extended planner statistics. Each row in this catalog corresponds to a statistics object @@ -76,4 +76,4 @@ and populate an entry in the pg_statistic_ext_data catalog. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-statistic.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-statistic.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-statistic.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-statistic.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.49. pg_statistic

51.49. pg_statistic

+51.49. pg_statistic

51.49. pg_statistic

The catalog pg_statistic stores statistical data about the contents of the database. Entries are created by ANALYZE @@ -130,4 +130,4 @@ values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-subscription.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-subscription.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-subscription.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-subscription.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.52. pg_subscription

51.52. pg_subscription

+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 30. @@ -68,4 +68,4 @@ Array of subscribed publication names. These reference the publications on the publisher server. For more on publications see Section 30.1. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-subscription-rel.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-subscription-rel.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-subscription-rel.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-subscription-rel.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.53. pg_subscription_rel

51.53. pg_subscription_rel

+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. @@ -40,4 +40,4 @@ Remote LSN of the state change used for synchronization coordination when in s or r states, otherwise null -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-tablespace.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-tablespace.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-tablespace.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-tablespace.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.54. pg_tablespace

51.54. pg_tablespace

+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. @@ -39,4 +39,4 @@

Tablespace-level options, as keyword=value strings -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-transform.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-transform.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-transform.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-transform.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.55. pg_transform

51.55. pg_transform

+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. @@ -41,4 +41,4 @@ The OID of the function to use when converting output from the procedural language (e.g., return values) to the data type. Zero is stored if this operation is not supported. -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-trigger.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-trigger.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-trigger.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-trigger.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.56. pg_trigger

51.56. pg_trigger

+51.56. pg_trigger

51.56. pg_trigger

The catalog pg_trigger stores triggers on tables and views. See CREATE TRIGGER @@ -142,4 +142,4 @@

Note

pg_class.relhastriggers must be true if a relation has any triggers in this catalog. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-config.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-config.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-config.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-config.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.57. pg_ts_config

51.57. pg_ts_config

+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 @@ -42,4 +42,4 @@

The OID of the text search parser for this configuration -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-config-map.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-config-map.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-config-map.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-config-map.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.58. pg_ts_config_map

51.58. pg_ts_config_map

+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 @@ -35,4 +35,4 @@

The OID of the text search dictionary to consult -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-dict.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-dict.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-dict.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-dict.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.59. pg_ts_dict

51.59. pg_ts_dict

+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 @@ -49,4 +49,4 @@

Initialization option string for the template -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-parser.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-parser.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-parser.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-parser.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.60. pg_ts_parser

51.60. pg_ts_parser

+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. @@ -59,4 +59,4 @@

OID of the parser's lextype function -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-template.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-template.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-ts-template.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-ts-template.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.61. pg_ts_template

51.61. pg_ts_template

+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. @@ -41,4 +41,4 @@

OID of the template's lexize function -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-type.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-type.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-type.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-type.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.62. pg_type

51.62. pg_type

+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 @@ -297,4 +297,4 @@ of typcategory. Any future additions to this list will also be upper-case ASCII letters. All other ASCII characters are reserved for user-defined categories. -

Table 51.63. typcategory Codes

CodeCategory
AArray types
BBoolean types
CComposite types
DDate/time types
EEnum types
GGeometric types
INetwork address types
NNumeric types
PPseudo-types
RRange types
SString types
TTimespan types
UUser-defined types
VBit-string types
Xunknown type

\ No newline at end of file +

Table 51.63. typcategory Codes

CodeCategory
AArray types
BBoolean types
CComposite types
DDate/time types
EEnum types
GGeometric types
INetwork address types
NNumeric types
PPseudo-types
RRange types
SString types
TTimespan types
UUser-defined types
VBit-string types
Xunknown type

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalog-pg-user-mapping.html postgresql-13-13.7/doc/src/sgml/html/catalog-pg-user-mapping.html --- postgresql-13-13.4/doc/src/sgml/html/catalog-pg-user-mapping.html 2021-08-09 21:03:06.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalog-pg-user-mapping.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.63. pg_user_mapping

51.63. pg_user_mapping

+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 @@ -32,4 +32,4 @@

User mapping specific options, as keyword=value strings -


\ No newline at end of file +


\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalogs.html postgresql-13-13.7/doc/src/sgml/html/catalogs.html --- postgresql-13-13.4/doc/src/sgml/html/catalogs.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalogs.html 2022-05-09 21:29:26.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_policy
51.38. pg_proc
51.39. pg_publication
51.40. pg_publication_rel
51.41. pg_range
51.42. pg_replication_origin
51.43. pg_rewrite
51.44. pg_seclabel
51.45. pg_sequence
51.46. pg_shdepend
51.47. pg_shdescription
51.48. pg_shseclabel
51.49. pg_statistic
51.50. pg_statistic_ext
51.51. pg_statistic_ext_data
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_shmem_allocations
51.88. pg_stats
51.89. pg_stats_ext
51.90. pg_tables
51.91. pg_timezone_abbrevs
51.92. pg_timezone_names
51.93. pg_user
51.94. pg_user_mappings
51.95. pg_views

+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_policy
51.38. pg_proc
51.39. pg_publication
51.40. pg_publication_rel
51.41. pg_range
51.42. pg_replication_origin
51.43. pg_rewrite
51.44. pg_seclabel
51.45. pg_sequence
51.46. pg_shdepend
51.47. pg_shdescription
51.48. pg_shseclabel
51.49. pg_statistic
51.50. pg_statistic_ext
51.51. pg_statistic_ext_data
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_shmem_allocations
51.88. pg_stats
51.89. pg_stats_ext
51.90. pg_tables
51.91. pg_timezone_abbrevs
51.92. pg_timezone_names
51.93. pg_user
51.94. pg_user_mappings
51.95. 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. @@ -14,4 +14,4 @@ particularly esoteric operations, but many of those have been made available as SQL commands over time, and so the need for direct manipulation of the system catalogs is ever decreasing. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/catalogs-overview.html postgresql-13-13.7/doc/src/sgml/html/catalogs-overview.html --- postgresql-13-13.4/doc/src/sgml/html/catalogs-overview.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/catalogs-overview.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -51.1. Overview

51.1. Overview

+51.1. Overview

51.1. Overview

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

@@ -7,4 +7,4 @@ database creation and are thereafter database-specific. A few catalogs are physically shared across all databases in a cluster; these are noted in the descriptions of the individual catalogs. -

Table 51.1. System Catalogs

Catalog NamePurpose
pg_aggregateaggregate functions
pg_amrelation access methods
pg_amopaccess method operators
pg_amprocaccess method support functions
pg_attrdefcolumn default values
pg_attributetable columns (attributes)
pg_authidauthorization identifiers (roles)
pg_auth_membersauthorization identifier membership relationships
pg_castcasts (data type conversions)
pg_classtables, indexes, sequences, views (relations)
pg_collationcollations (locale information)
pg_constraintcheck constraints, unique constraints, primary key constraints, foreign key constraints
pg_conversionencoding conversion information
pg_databasedatabases within this database cluster
pg_db_role_settingper-role and per-database settings
pg_default_acldefault privileges for object types
pg_dependdependencies between database objects
pg_descriptiondescriptions or comments on database objects
pg_enumenum label and value definitions
pg_event_triggerevent triggers
pg_extensioninstalled extensions
pg_foreign_data_wrapperforeign-data wrapper definitions
pg_foreign_serverforeign server definitions
pg_foreign_tableadditional foreign table information
pg_indexadditional index information
pg_inheritstable inheritance hierarchy
pg_init_privsobject initial privileges
pg_languagelanguages for writing functions
pg_largeobjectdata pages for large objects
pg_largeobject_metadatametadata for large objects
pg_namespaceschemas
pg_opclassaccess method operator classes
pg_operatoroperators
pg_opfamilyaccess method operator families
pg_partitioned_tableinformation about partition key of tables
pg_policyrow-security policies
pg_procfunctions and procedures
pg_publicationpublications for logical replication
pg_publication_relrelation to publication mapping
pg_rangeinformation about range types
pg_replication_originregistered replication origins
pg_rewritequery rewrite rules
pg_seclabelsecurity labels on database objects
pg_sequenceinformation about sequences
pg_shdependdependencies on shared objects
pg_shdescriptioncomments on shared objects
pg_shseclabelsecurity labels on shared database objects
pg_statisticplanner statistics
pg_statistic_extextended planner statistics (definition)
pg_statistic_ext_dataextended planner statistics (built statistics)
pg_subscriptionlogical replication subscriptions
pg_subscription_relrelation state for subscriptions
pg_tablespacetablespaces within this database cluster
pg_transformtransforms (data type to procedural language conversions)
pg_triggertriggers
pg_ts_configtext search configurations
pg_ts_config_maptext search configurations' token mappings
pg_ts_dicttext search dictionaries
pg_ts_parsertext search parsers
pg_ts_templatetext search templates
pg_typedata types
pg_user_mappingmappings of users to foreign servers

\ No newline at end of file +

Table 51.1. System Catalogs

Catalog NamePurpose
pg_aggregateaggregate functions
pg_amrelation access methods
pg_amopaccess method operators
pg_amprocaccess method support functions
pg_attrdefcolumn default values
pg_attributetable columns (attributes)
pg_authidauthorization identifiers (roles)
pg_auth_membersauthorization identifier membership relationships
pg_castcasts (data type conversions)
pg_classtables, indexes, sequences, views (relations)
pg_collationcollations (locale information)
pg_constraintcheck constraints, unique constraints, primary key constraints, foreign key constraints
pg_conversionencoding conversion information
pg_databasedatabases within this database cluster
pg_db_role_settingper-role and per-database settings
pg_default_acldefault privileges for object types
pg_dependdependencies between database objects
pg_descriptiondescriptions or comments on database objects
pg_enumenum label and value definitions
pg_event_triggerevent triggers
pg_extensioninstalled extensions
pg_foreign_data_wrapperforeign-data wrapper definitions
pg_foreign_serverforeign server definitions
pg_foreign_tableadditional foreign table information
pg_indexadditional index information
pg_inheritstable inheritance hierarchy
pg_init_privsobject initial privileges
pg_languagelanguages for writing functions
pg_largeobjectdata pages for large objects
pg_largeobject_metadatametadata for large objects
pg_namespaceschemas
pg_opclassaccess method operator classes
pg_operatoroperators
pg_opfamilyaccess method operator families
pg_partitioned_tableinformation about partition key of tables
pg_policyrow-security policies
pg_procfunctions and procedures
pg_publicationpublications for logical replication
pg_publication_relrelation to publication mapping
pg_rangeinformation about range types
pg_replication_originregistered replication origins
pg_rewritequery rewrite rules
pg_seclabelsecurity labels on database objects
pg_sequenceinformation about sequences
pg_shdependdependencies on shared objects
pg_shdescriptioncomments on shared objects
pg_shseclabelsecurity labels on shared database objects
pg_statisticplanner statistics
pg_statistic_extextended planner statistics (definition)
pg_statistic_ext_dataextended planner statistics (built statistics)
pg_subscriptionlogical replication subscriptions
pg_subscription_relrelation state for subscriptions
pg_tablespacetablespaces within this database cluster
pg_transformtransforms (data type to procedural language conversions)
pg_triggertriggers
pg_ts_configtext search configurations
pg_ts_config_maptext search configurations' token mappings
pg_ts_dicttext search dictionaries
pg_ts_parsertext search parsers
pg_ts_templatetext search templates
pg_typedata types
pg_user_mappingmappings of users to foreign servers

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/charset.html postgresql-13-13.7/doc/src/sgml/html/charset.html --- postgresql-13-13.4/doc/src/sgml/html/charset.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/charset.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 23. Localization \ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/citext.html postgresql-13-13.7/doc/src/sgml/html/citext.html --- postgresql-13-13.4/doc/src/sgml/html/citext.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/citext.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.8. citext

F.8. citext

+F.8. citext

F.8. citext

The citext module provides a case-insensitive character string type, citext. Essentially, it internally calls lower when comparing values. Otherwise, it behaves almost @@ -163,4 +163,4 @@ David E. Wheeler

Inspired by the original citext module by Donald Fraser. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/client-authentication.html postgresql-13-13.7/doc/src/sgml/html/client-authentication.html --- postgresql-13-13.4/doc/src/sgml/html/client-authentication.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/client-authentication.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 20. Client Authentication

Chapter 20. Client Authentication

+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 @@ -34,4 +34,4 @@ operating system account, and in such cases there need be no connection between database user names and OS user names. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/client-authentication-problems.html postgresql-13-13.7/doc/src/sgml/html/client-authentication-problems.html --- postgresql-13-13.4/doc/src/sgml/html/client-authentication-problems.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/client-authentication-problems.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.15. Authentication Problems

20.15. Authentication Problems

+20.15. Authentication Problems

20.15. Authentication Problems

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

@@ -37,4 +37,4 @@ The server log might contain more information about an authentication failure than is reported to the client. If you are confused about the reason for a failure, check the server log. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/client-interfaces.html postgresql-13-13.7/doc/src/sgml/html/client-interfaces.html --- postgresql-13-13.4/doc/src/sgml/html/client-interfaces.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/client-interfaces.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -Part IV. Client Interfaces

Part IV. Client Interfaces

+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 @@ -9,4 +9,4 @@ familiar with using SQL commands to manipulate and query the database (see Part II) and of course with the programming language that the interface uses. -

Table of Contents

33. libpq — C Library
33.1. Database Connection Control Functions
33.2. Connection Status Functions
33.3. Command Execution Functions
33.4. Asynchronous Command Processing
33.5. Retrieving Query Results Row-by-Row
33.6. Canceling Queries in Progress
33.7. The Fast-Path Interface
33.8. Asynchronous Notification
33.9. Functions Associated with the COPY Command
33.10. Control Functions
33.11. Miscellaneous Functions
33.12. Notice Processing
33.13. Event System
33.14. Environment Variables
33.15. The Password File
33.16. The Connection Service File
33.17. LDAP Lookup of Connection Parameters
33.18. SSL Support
33.19. Behavior in Threaded Programs
33.20. Building libpq Programs
33.21. Example Programs
34. Large Objects
34.1. Introduction
34.2. Implementation Features
34.3. Client Interfaces
34.4. Server-Side Functions
34.5. Example Program
35. ECPG — Embedded SQL in C
35.1. The Concept
35.2. Managing Database Connections
35.3. Running SQL Commands
35.4. Using Host Variables
35.5. Dynamic SQL
35.6. pgtypes Library
35.7. Using Descriptor Areas
35.8. Error Handling
35.9. Preprocessor Directives
35.10. Processing Embedded SQL Programs
35.11. Library Functions
35.12. Large Objects
35.13. C++ Applications
35.14. Embedded SQL Commands
35.15. Informix Compatibility Mode
35.16. Internals
36. The Information Schema
36.1. The Schema
36.2. Data Types
36.3. information_schema_catalog_name
36.4. administrable_role_​authorizations
36.5. applicable_roles
36.6. attributes
36.7. character_sets
36.8. check_constraint_routine_usage
36.9. check_constraints
36.10. collations
36.11. collation_character_set_​applicability
36.12. column_column_usage
36.13. column_domain_usage
36.14. column_options
36.15. column_privileges
36.16. column_udt_usage
36.17. columns
36.18. constraint_column_usage
36.19. constraint_table_usage
36.20. data_type_privileges
36.21. domain_constraints
36.22. domain_udt_usage
36.23. domains
36.24. element_types
36.25. enabled_roles
36.26. foreign_data_wrapper_options
36.27. foreign_data_wrappers
36.28. foreign_server_options
36.29. foreign_servers
36.30. foreign_table_options
36.31. foreign_tables
36.32. key_column_usage
36.33. parameters
36.34. referential_constraints
36.35. role_column_grants
36.36. role_routine_grants
36.37. role_table_grants
36.38. role_udt_grants
36.39. role_usage_grants
36.40. routine_privileges
36.41. routines
36.42. schemata
36.43. sequences
36.44. sql_features
36.45. sql_implementation_info
36.46. sql_parts
36.47. sql_sizing
36.48. table_constraints
36.49. table_privileges
36.50. tables
36.51. transforms
36.52. triggered_update_columns
36.53. triggers
36.54. udt_privileges
36.55. usage_privileges
36.56. user_defined_types
36.57. user_mapping_options
36.58. user_mappings
36.59. view_column_usage
36.60. view_routine_usage
36.61. view_table_usage
36.62. views
\ No newline at end of file +

Table of Contents

33. libpq — C Library
33.1. Database Connection Control Functions
33.2. Connection Status Functions
33.3. Command Execution Functions
33.4. Asynchronous Command Processing
33.5. Retrieving Query Results Row-by-Row
33.6. Canceling Queries in Progress
33.7. The Fast-Path Interface
33.8. Asynchronous Notification
33.9. Functions Associated with the COPY Command
33.10. Control Functions
33.11. Miscellaneous Functions
33.12. Notice Processing
33.13. Event System
33.14. Environment Variables
33.15. The Password File
33.16. The Connection Service File
33.17. LDAP Lookup of Connection Parameters
33.18. SSL Support
33.19. Behavior in Threaded Programs
33.20. Building libpq Programs
33.21. Example Programs
34. Large Objects
34.1. Introduction
34.2. Implementation Features
34.3. Client Interfaces
34.4. Server-Side Functions
34.5. Example Program
35. ECPG — Embedded SQL in C
35.1. The Concept
35.2. Managing Database Connections
35.3. Running SQL Commands
35.4. Using Host Variables
35.5. Dynamic SQL
35.6. pgtypes Library
35.7. Using Descriptor Areas
35.8. Error Handling
35.9. Preprocessor Directives
35.10. Processing Embedded SQL Programs
35.11. Library Functions
35.12. Large Objects
35.13. C++ Applications
35.14. Embedded SQL Commands
35.15. Informix Compatibility Mode
35.16. Internals
36. The Information Schema
36.1. The Schema
36.2. Data Types
36.3. information_schema_catalog_name
36.4. administrable_role_​authorizations
36.5. applicable_roles
36.6. attributes
36.7. character_sets
36.8. check_constraint_routine_usage
36.9. check_constraints
36.10. collations
36.11. collation_character_set_​applicability
36.12. column_column_usage
36.13. column_domain_usage
36.14. column_options
36.15. column_privileges
36.16. column_udt_usage
36.17. columns
36.18. constraint_column_usage
36.19. constraint_table_usage
36.20. data_type_privileges
36.21. domain_constraints
36.22. domain_udt_usage
36.23. domains
36.24. element_types
36.25. enabled_roles
36.26. foreign_data_wrapper_options
36.27. foreign_data_wrappers
36.28. foreign_server_options
36.29. foreign_servers
36.30. foreign_table_options
36.31. foreign_tables
36.32. key_column_usage
36.33. parameters
36.34. referential_constraints
36.35. role_column_grants
36.36. role_routine_grants
36.37. role_table_grants
36.38. role_udt_grants
36.39. role_usage_grants
36.40. routine_privileges
36.41. routines
36.42. schemata
36.43. sequences
36.44. sql_features
36.45. sql_implementation_info
36.46. sql_parts
36.47. sql_sizing
36.48. table_constraints
36.49. table_privileges
36.50. tables
36.51. transforms
36.52. triggered_update_columns
36.53. triggers
36.54. udt_privileges
36.55. usage_privileges
36.56. user_defined_types
36.57. user_mapping_options
36.58. user_mappings
36.59. view_column_usage
36.60. view_routine_usage
36.61. view_table_usage
36.62. views
\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/collation.html postgresql-13-13.7/doc/src/sgml/html/collation.html --- postgresql-13-13.4/doc/src/sgml/html/collation.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/collation.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -23.2. Collation Support

23.2. Collation Support

+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 @@ -298,8 +298,8 @@ set that is preloaded by initdb. Users are encouraged to define their own collation objects that make use of these facilities to suit the sorting behavior to their requirements. - See http://userguide.icu-project.org/locale - and http://userguide.icu-project.org/collation/api for + See https://unicode-org.github.io/icu/userguide/locale/ + and https://unicode-org.github.io/icu/userguide/collation/api.html for information on ICU locale naming. The set of acceptable names and attributes depends on the particular ICU version.

@@ -340,10 +340,6 @@ subtag) can be found in the CLDR repository. - The ICU Locale - Explorer can be used to check the details of a particular locale - definition. The examples using the k* subtags require - at least ICU version 54.

Note that while this system allows creating collations that ignore case or ignore accents or similar (using the @@ -417,4 +413,4 @@ normalize and is normalized to preprocess or check the strings, instead of using nondeterministic collations. There are different trade-offs for each approach. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/color.html postgresql-13-13.7/doc/src/sgml/html/color.html --- postgresql-13-13.4/doc/src/sgml/html/color.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/color.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix N. Color Support

Appendix N. Color Support

+Appendix N. Color Support

Appendix N. Color Support

Most programs in the PostgreSQL package can produce colorized console output. This appendix describes how that is configured. -

\ No newline at end of file +

\ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/color-when.html postgresql-13-13.7/doc/src/sgml/html/color-when.html --- postgresql-13-13.4/doc/src/sgml/html/color-when.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/color-when.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,5 +1,5 @@ -N.1. When Color is Used

N.1. When Color is Used

+N.1. When Color is Used

N.1. When Color is Used

To use colorized output, set the environment variable PG_COLOR as follows: @@ -12,4 +12,4 @@

  • Otherwise, color is not used.

  • -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/color-which.html postgresql-13-13.7/doc/src/sgml/html/color-which.html --- postgresql-13-13.4/doc/src/sgml/html/color-which.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/color-which.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,5 +1,5 @@ -N.2. Configuring the Colors

    N.2. Configuring the Colors

    +N.2. Configuring the Colors

    N.2. Configuring the Colors

    The actual colors to be used are configured using the environment variable PG_COLORS (note plural). The value is a colon-separated list of @@ -20,4 +20,4 @@ This color specification format is also used by other software packages such as GCC, GNU coreutils, and GNU grep. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/config-setting.html postgresql-13-13.7/doc/src/sgml/html/config-setting.html --- postgresql-13-13.4/doc/src/sgml/html/config-setting.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/config-setting.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -19.1. Setting Parameters

    19.1. Setting Parameters

    19.1.1. Parameter Names and Values

    +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 @@ -330,4 +330,4 @@ their configurations all stored in one place, such as in a version control repository. (Storing database configuration files under version control is another good practice to consider.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/connect-estab.html postgresql-13-13.7/doc/src/sgml/html/connect-estab.html --- postgresql-13-13.4/doc/src/sgml/html/connect-estab.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/connect-estab.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -50.2. How Connections Are Established

    50.2. How Connections Are Established

    +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 @@ -28,4 +28,4 @@ server parses the query, creates an execution plan, executes the plan and returns the retrieved rows to the client by transmitting them over the established connection. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/continuous-archiving.html postgresql-13-13.7/doc/src/sgml/html/continuous-archiving.html --- postgresql-13-13.4/doc/src/sgml/html/continuous-archiving.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/continuous-archiving.html 2022-05-09 21:29:11.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)

    +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 @@ -880,4 +880,4 @@ on. In the meantime, administrators might wish to reduce the number of page snapshots included in WAL by increasing the checkpoint interval parameters as much as feasible. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-build-sql-delete.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-build-sql-delete.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-build-sql-delete.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-build-sql-delete.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_build_sql_delete \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-build-sql-insert.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-build-sql-insert.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-build-sql-insert.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-build-sql-insert.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_build_sql_insert \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-build-sql-update.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-build-sql-update.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-build-sql-update.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-build-sql-update.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_build_sql_update \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-cancel-query.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-cancel-query.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-cancel-query.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-cancel-query.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_cancel_query \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-close.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-close.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-close.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-close.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_close \ No newline at end of file + \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-connect.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-connect.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-connect.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-connect.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_connect \ No newline at end of file + \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-connect-u.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-connect-u.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-connect-u.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-connect-u.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_connect_u \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-disconnect.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-disconnect.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-disconnect.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-disconnect.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_disconnect \ No newline at end of file + \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-error-message.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-error-message.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-error-message.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-error-message.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_error_message \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-exec.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-exec.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-exec.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-exec.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_exec \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-fetch.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-fetch.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-fetch.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-fetch.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_fetch \ No newline at end of file + \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-function.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-function.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-function.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-function.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-get-connections.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-get-connections.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-get-connections.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-get-connections.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,9 +1,9 @@ -dblink_get_connections \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-get-notify.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-get-notify.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-get-notify.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-get-notify.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_get_notify \ No newline at end of file + \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-get-pkey.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-get-pkey.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-get-pkey.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-get-pkey.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_get_pkey \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-get-result.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-get-result.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-get-result.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-get-result.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_get_result \ No newline at end of file + \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-is-busy.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-is-busy.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-is-busy.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-is-busy.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_is_busy \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-open.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-open.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-open.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-open.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_open \ No newline at end of file + \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-send-query.html postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-send-query.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-dblink-send-query.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-dblink-send-query.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_send_query \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib.html postgresql-13-13.7/doc/src/sgml/html/contrib.html --- postgresql-13-13.4/doc/src/sgml/html/contrib.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix F. Additional Supplied Modules

    Appendix F. Additional Supplied Modules

    Table of Contents

    F.1. adminpack
    F.2. amcheck
    F.2.1. Functions
    F.2.2. Optional heapallindexed Verification
    F.2.3. Using amcheck Effectively
    F.2.4. Repairing Corruption
    F.3. auth_delay
    F.3.1. Configuration Parameters
    F.3.2. Author
    F.4. auto_explain
    F.4.1. Configuration Parameters
    F.4.2. Example
    F.4.3. Author
    F.5. bloom
    F.5.1. Parameters
    F.5.2. Examples
    F.5.3. Operator Class Interface
    F.5.4. Limitations
    F.5.5. Authors
    F.6. btree_gin
    F.6.1. Example Usage
    F.6.2. Authors
    F.7. btree_gist
    F.7.1. Example Usage
    F.7.2. Authors
    F.8. citext
    F.8.1. Rationale
    F.8.2. How to Use It
    F.8.3. String Comparison Behavior
    F.8.4. Limitations
    F.8.5. Author
    F.9. cube
    F.9.1. Syntax
    F.9.2. Precision
    F.9.3. Usage
    F.9.4. Defaults
    F.9.5. Notes
    F.9.6. Credits
    F.10. dblink
    dblink_connect — opens a persistent connection to a remote database
    dblink_connect_u — opens a persistent connection to a remote database, insecurely
    dblink_disconnect — closes a persistent connection to a remote database
    dblink — executes a query in a remote database
    dblink_exec — executes a command in a remote database
    dblink_open — opens a cursor in a remote database
    dblink_fetch — returns rows from an open cursor in a remote database
    dblink_close — closes a cursor in a remote database
    dblink_get_connections — returns the names of all open named dblink connections
    dblink_error_message — gets last error message on the named connection
    dblink_send_query — sends an async query to a remote database
    dblink_is_busy — checks if connection is busy with an async query
    dblink_get_notify — retrieve async notifications on a connection
    dblink_get_result — gets an async query result
    dblink_cancel_query — cancels any active query on the named connection
    dblink_get_pkey — returns the positions and field names of a relation's +Appendix F. Additional Supplied Modules

    Appendix F. Additional Supplied Modules

    Table of Contents

    F.1. adminpack
    F.2. amcheck
    F.2.1. Functions
    F.2.2. Optional heapallindexed Verification
    F.2.3. Using amcheck Effectively
    F.2.4. Repairing Corruption
    F.3. auth_delay
    F.3.1. Configuration Parameters
    F.3.2. Author
    F.4. auto_explain
    F.4.1. Configuration Parameters
    F.4.2. Example
    F.4.3. Author
    F.5. bloom
    F.5.1. Parameters
    F.5.2. Examples
    F.5.3. Operator Class Interface
    F.5.4. Limitations
    F.5.5. Authors
    F.6. btree_gin
    F.6.1. Example Usage
    F.6.2. Authors
    F.7. btree_gist
    F.7.1. Example Usage
    F.7.2. Authors
    F.8. citext
    F.8.1. Rationale
    F.8.2. How to Use It
    F.8.3. String Comparison Behavior
    F.8.4. Limitations
    F.8.5. Author
    F.9. cube
    F.9.1. Syntax
    F.9.2. Precision
    F.9.3. Usage
    F.9.4. Defaults
    F.9.5. Notes
    F.9.6. Credits
    F.10. dblink
    dblink_connect — opens a persistent connection to a remote database
    dblink_connect_u — opens a persistent connection to a remote database, insecurely
    dblink_disconnect — closes a persistent connection to a remote database
    dblink — executes a query in a remote database
    dblink_exec — executes a command in a remote database
    dblink_open — opens a cursor in a remote database
    dblink_fetch — returns rows from an open cursor in a remote database
    dblink_close — closes a cursor in a remote database
    dblink_get_connections — returns the names of all open named dblink connections
    dblink_error_message — gets last error message on the named connection
    dblink_send_query — sends an async query to a remote database
    dblink_is_busy — checks if connection is busy with an async query
    dblink_get_notify — retrieve async notifications on a connection
    dblink_get_result — gets an async query result
    dblink_cancel_query — cancels any active query on the named connection
    dblink_get_pkey — returns the positions and field names of a relation's primary key fields
    dblink_build_sql_insert — builds an INSERT statement using a local tuple, replacing the @@ -84,4 +84,4 @@ by way of shared_preload_libraries. See the documentation of each module for details. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-prog-client.html postgresql-13-13.7/doc/src/sgml/html/contrib-prog-client.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-prog-client.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-prog-client.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,9 +1,9 @@ -G.1. Client Applications

    G.1. Client Applications

    oid2name — resolve OIDs and file nodes in a PostgreSQL data directory
    vacuumlo — remove orphaned large objects from a PostgreSQL database

    +G.1. Client Applications

    G.1. Client Applications

    oid2name — resolve OIDs and file nodes in a PostgreSQL data directory
    vacuumlo — remove orphaned large objects from a PostgreSQL database

    This section covers PostgreSQL client applications in contrib. They can be run from anywhere, independent of where the database server resides. See also PostgreSQL Client Applications for information about client applications that are part of the core PostgreSQL distribution. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-prog.html postgresql-13-13.7/doc/src/sgml/html/contrib-prog.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-prog.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-prog.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix G. Additional Supplied Programs

    Appendix G. Additional Supplied Programs

    Table of Contents

    G.1. Client Applications
    oid2name — resolve OIDs and file nodes in a PostgreSQL data directory
    vacuumlo — remove orphaned large objects from a PostgreSQL database
    G.2. Server Applications
    pg_standby — supports the creation of a PostgreSQL warm standby server

    +Appendix G. Additional Supplied Programs

    Appendix G. Additional Supplied Programs

    Table of Contents

    G.1. Client Applications
    oid2name — resolve OIDs and file nodes in a PostgreSQL data directory
    vacuumlo — remove orphaned large objects from a PostgreSQL database
    G.2. Server Applications
    pg_standby — supports the creation of a PostgreSQL warm standby server

    This appendix and the previous one contain information regarding the modules that can be found in the contrib directory of the PostgreSQL distribution. See Appendix F for @@ -12,4 +12,4 @@ the bin directory of the PostgreSQL installation and can be used like any other program. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-prog-server.html postgresql-13-13.7/doc/src/sgml/html/contrib-prog-server.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-prog-server.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-prog-server.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,7 +1,7 @@ -G.2. Server Applications

    G.2. Server Applications

    pg_standby — supports the creation of a PostgreSQL warm standby server

    +G.2. Server Applications

    G.2. Server Applications

    pg_standby — supports the creation of a PostgreSQL warm standby server

    This section covers PostgreSQL server-related applications in contrib. They are typically run on the host where the database server resides. See also PostgreSQL Server Applications for information about server applications that are part of the core PostgreSQL distribution. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/contrib-spi.html postgresql-13-13.7/doc/src/sgml/html/contrib-spi.html --- postgresql-13-13.4/doc/src/sgml/html/contrib-spi.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/contrib-spi.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.36. spi \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/creating-cluster.html postgresql-13-13.7/doc/src/sgml/html/creating-cluster.html --- postgresql-13-13.4/doc/src/sgml/html/creating-cluster.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/creating-cluster.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.2. Creating a Database Cluster

    18.2. Creating a Database Cluster

    +18.2. Creating a Database Cluster

    18.2. Creating a Database Cluster

    Before you can do anything, you must initialize a database storage area on disk. We call this a database cluster. (The SQL standard uses the term catalog cluster.) A @@ -200,4 +200,4 @@ it. That approach might relieve the DBA from having to deal with some of the idiosyncrasies of NFS, but of course the complexity of managing remote storage then happens at other levels. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/cube.html postgresql-13-13.7/doc/src/sgml/html/cube.html --- postgresql-13-13.4/doc/src/sgml/html/cube.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/cube.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.9. cube

    F.9. cube

    +F.9. cube

    F.9. cube

    This module implements a data type cube for representing multidimensional cubes.

    @@ -394,4 +394,4 @@ July 2006. These include cube(float8[], float8[]) and cleaning up the code to use the V1 call protocol instead of the deprecated V0 protocol. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/custom-scan-execution.html postgresql-13-13.7/doc/src/sgml/html/custom-scan-execution.html --- postgresql-13-13.4/doc/src/sgml/html/custom-scan-execution.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/custom-scan-execution.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -58.3. Executing Custom Scans

    58.3. Executing Custom Scans

    +58.3. Executing Custom Scans

    58.3. Executing Custom Scans

    When a CustomScan is executed, its execution state is represented by a CustomScanState, which is declared as follows: @@ -136,4 +136,4 @@ ScanState, such as the target list and scan relation, will be shown even without this callback, but the callback allows the display of additional, private state. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/custom-scan.html postgresql-13-13.7/doc/src/sgml/html/custom-scan.html --- postgresql-13-13.4/doc/src/sgml/html/custom-scan.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/custom-scan.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 58. Writing a Custom Scan Provider

    Chapter 58. Writing a Custom Scan Provider

    +Chapter 58. Writing a Custom Scan Provider

    Chapter 58. Writing a Custom Scan Provider

    PostgreSQL supports a set of experimental facilities which are intended to allow extension modules to add new scan types to the system. Unlike a foreign data wrapper, which is only @@ -18,4 +18,4 @@ Finally, it must be possible to execute the plan and generate the same results that would have been generated for any other access path targeting the same relation. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/custom-scan-path.html postgresql-13-13.7/doc/src/sgml/html/custom-scan-path.html --- postgresql-13-13.4/doc/src/sgml/html/custom-scan-path.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/custom-scan-path.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -58.1. Creating Custom Scan Paths

    58.1. Creating Custom Scan Paths

    +58.1. Creating Custom Scan Paths

    58.1. Creating Custom Scan Paths

    A custom scan provider will typically add paths for a base relation by setting the following hook, which is called after the core code has generated all the access paths it can for the relation (except for @@ -76,4 +76,4 @@ Convert a custom path to a finished plan. The return value will generally be a CustomScan object, which the callback must allocate and initialize. See Section 58.2 for more details. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/custom-scan-plan.html postgresql-13-13.7/doc/src/sgml/html/custom-scan-plan.html --- postgresql-13-13.4/doc/src/sgml/html/custom-scan-plan.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/custom-scan-plan.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -58.2. Creating Custom Scan Plans

    58.2. Creating Custom Scan Plans

    +58.2. Creating Custom Scan Plans

    58.2. Creating Custom Scan Plans

    A custom scan is represented in a finished plan tree using the following structure:

    @@ -64,4 +64,4 @@
         stage; after ExecInitCustomScan performs basic initialization,
         the BeginCustomScan callback will be invoked to give the
         custom scan provider a chance to do whatever else is needed.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/database-roles.html postgresql-13-13.7/doc/src/sgml/html/database-roles.html --- postgresql-13-13.4/doc/src/sgml/html/database-roles.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/database-roles.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -21.1. Database Roles

    21.1. Database Roles

    +21.1. Database Roles

    21.1. Database Roles

    Database roles are conceptually completely separate from operating system users. In practice it might be convenient to maintain a correspondence, but this is not required. Database roles @@ -67,4 +67,4 @@ identity determines the set of privileges available to a connected client, it is important to carefully configure privileges when setting up a multiuser environment. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-binary.html postgresql-13-13.7/doc/src/sgml/html/datatype-binary.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-binary.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-binary.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.4. Binary Data Types

    8.4. Binary Data Types

    +8.4. Binary Data Types

    8.4. Binary Data Types

    The bytea data type allows storage of binary strings; see Table 8.6.

    Table 8.6. Binary Data Types

    NameStorage SizeDescription
    bytea1 or 4 bytes plus the actual binary stringvariable-length binary string

    @@ -124,4 +124,4 @@ unescaping bytea strings. For example, you might also have to escape line feeds and carriage returns if your interface automatically translates these. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-bit.html postgresql-13-13.7/doc/src/sgml/html/datatype-bit.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-bit.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-bit.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.10. Bit String Types

    8.10. Bit String Types

    +8.10. Bit String Types

    8.10. Bit String Types

    Bit strings are strings of 1's and 0's. They can be used to store or visualize bit masks. There are two SQL bit types: bit(n) and bit @@ -46,4 +46,4 @@ 5 or 8 bytes overhead depending on the length of the string (but long values may be compressed or moved out-of-line, as explained in Section 8.3 for character strings). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-boolean.html postgresql-13-13.7/doc/src/sgml/html/datatype-boolean.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-boolean.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-boolean.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.6. Boolean Type

    8.6. Boolean Type

    +8.6. Boolean Type

    8.6. Boolean Type

    PostgreSQL provides the standard SQL type boolean; see Table 8.19. @@ -55,4 +55,4 @@ example NULL::boolean. Conversely, the cast can be omitted from a string-literal Boolean value in contexts where the parser can deduce that the literal must be of type boolean. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-character.html postgresql-13-13.7/doc/src/sgml/html/datatype-character.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-character.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-character.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.3. Character Types

    8.3. Character Types

    Table 8.4. Character Types

    NameDescription
    character varying(n), varchar(n)variable-length with limit
    character(n), char(n)fixed-length, blank padded
    textvariable unlimited length

    +8.3. Character Types

    8.3. Character Types

    Table 8.4. Character Types

    NameDescription
    character varying(n), varchar(n)variable-length with limit
    character(n), char(n)fixed-length, blank padded
    textvariable unlimited length

    Table 8.4 shows the general-purpose character types available in PostgreSQL. @@ -135,4 +135,4 @@ (note the quotes) is different from char(1) in that it only uses one byte of storage. It is internally used in the system catalogs as a simplistic enumeration type. -

    Table 8.5. Special Character Types

    NameStorage SizeDescription
    "char"1 bytesingle-byte internal type
    name64 bytesinternal type for object names

    \ No newline at end of file +

    Table 8.5. Special Character Types

    NameStorage SizeDescription
    "char"1 bytesingle-byte internal type
    name64 bytesinternal type for object names

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-datetime.html postgresql-13-13.7/doc/src/sgml/html/datatype-datetime.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-datetime.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-datetime.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.5. Date/Time Types

    8.5. Date/Time Types

    +8.5. Date/Time Types

    8.5. Date/Time Types

    PostgreSQL supports the full set of SQL date and time types, shown in Table 8.9. The operations available on these data types are described in @@ -481,7 +481,7 @@ weeks' or '01:02:03.45'. However, because interval internally stores only three integer units (months, days, microseconds), fractional units must be spilled to smaller - units. Fractional parts of units greater than months is truncated to + units. Fractional parts of units greater than months are truncated to be an integer number of months, e.g. '1.5 years' becomes '1 year 6 mons'. Fractional parts of weeks and days are computed to be an integer number of days and @@ -545,4 +545,4 @@ The output of the iso_8601 style matches the format with designators described in section 4.4.3.2 of the ISO 8601 standard. -

    Table 8.18. Interval Output Style Examples

    Style SpecificationYear-Month IntervalDay-Time IntervalMixed Interval
    sql_standard1-23 4:05:06-1-2 +3 -4:05:06
    postgres1 year 2 mons3 days 04:05:06-1 year -2 mons +3 days -04:05:06
    postgres_verbose@ 1 year 2 mons@ 3 days 4 hours 5 mins 6 secs@ 1 year 2 mons -3 days 4 hours 5 mins 6 secs ago
    iso_8601P1Y2MP3DT4H5M6SP-1Y-2M3D​T-4H-5M-6S

    \ No newline at end of file +

    Table 8.18. Interval Output Style Examples

    Style SpecificationYear-Month IntervalDay-Time IntervalMixed Interval
    sql_standard1-23 4:05:06-1-2 +3 -4:05:06
    postgres1 year 2 mons3 days 04:05:06-1 year -2 mons +3 days -04:05:06
    postgres_verbose@ 1 year 2 mons@ 3 days 4 hours 5 mins 6 secs@ 1 year 2 mons -3 days 4 hours 5 mins 6 secs ago
    iso_8601P1Y2MP3DT4H5M6SP-1Y-2M3D​T-4H-5M-6S

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-enum.html postgresql-13-13.7/doc/src/sgml/html/datatype-enum.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-enum.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-enum.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.7. Enumerated Types

    8.7. Enumerated Types

    +8.7. Enumerated Types

    8.7. Enumerated Types

    Enumerated (enum) types are data types that comprise a static, ordered set of values. They are equivalent to the enum @@ -112,4 +112,4 @@ kept in the system catalog pg_enum. Querying this catalog directly can be useful. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-geometric.html postgresql-13-13.7/doc/src/sgml/html/datatype-geometric.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-geometric.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-geometric.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.8. Geometric Types

    8.8. Geometric Types

    +8.8. Geometric Types

    8.8. Geometric Types

    Geometric data types represent two-dimensional spatial objects. Table 8.20 shows the geometric types available in PostgreSQL. @@ -148,4 +148,4 @@ circle.

    Circles are output using the first syntax. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype.html postgresql-13-13.7/doc/src/sgml/html/datatype.html --- postgresql-13-13.4/doc/src/sgml/html/datatype.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 8. Data Types

    Chapter 8. Data Types

    Table of Contents

    8.1. Numeric Types
    8.1.1. Integer Types
    8.1.2. Arbitrary Precision Numbers
    8.1.3. Floating-Point Types
    8.1.4. Serial Types
    8.2. Monetary Types
    8.3. Character Types
    8.4. Binary Data Types
    8.4.1. bytea Hex Format
    8.4.2. bytea Escape Format
    8.5. Date/Time Types
    8.5.1. Date/Time Input
    8.5.2. Date/Time Output
    8.5.3. Time Zones
    8.5.4. Interval Input
    8.5.5. Interval Output
    8.6. Boolean Type
    8.7. Enumerated Types
    8.7.1. Declaration of Enumerated Types
    8.7.2. Ordering
    8.7.3. Type Safety
    8.7.4. Implementation Details
    8.8. Geometric Types
    8.8.1. Points
    8.8.2. Lines
    8.8.3. Line Segments
    8.8.4. Boxes
    8.8.5. Paths
    8.8.6. Polygons
    8.8.7. Circles
    8.9. Network Address Types
    8.9.1. inet
    8.9.2. cidr
    8.9.3. inet vs. cidr
    8.9.4. macaddr
    8.9.5. macaddr8
    8.10. Bit String Types
    8.11. Text Search Types
    8.11.1. tsvector
    8.11.2. tsquery
    8.12. UUID Type
    8.13. XML Type
    8.13.1. Creating XML Values
    8.13.2. Encoding Handling
    8.13.3. Accessing XML Values
    8.14. JSON Types
    8.14.1. JSON Input and Output Syntax
    8.14.2. Designing JSON Documents
    8.14.3. jsonb Containment and Existence
    8.14.4. jsonb Indexing
    8.14.5. Transforms
    8.14.6. jsonpath Type
    8.15. Arrays
    8.15.1. Declaration of Array Types
    8.15.2. Array Value Input
    8.15.3. Accessing Arrays
    8.15.4. Modifying Arrays
    8.15.5. Searching in Arrays
    8.15.6. Array Input and Output Syntax
    8.16. Composite Types
    8.16.1. Declaration of Composite Types
    8.16.2. Constructing Composite Values
    8.16.3. Accessing Composite Types
    8.16.4. Modifying Composite Types
    8.16.5. Using Composite Types in Queries
    8.16.6. Composite Type Input and Output Syntax
    8.17. Range Types
    8.17.1. Built-in Range Types
    8.17.2. Examples
    8.17.3. Inclusive and Exclusive Bounds
    8.17.4. Infinite (Unbounded) Ranges
    8.17.5. Range Input/Output
    8.17.6. Constructing Ranges
    8.17.7. Discrete Range Types
    8.17.8. Defining New Range Types
    8.17.9. Indexing
    8.17.10. Constraints on Ranges
    8.18. Domain Types
    8.19. Object Identifier Types
    8.20. pg_lsn Type
    8.21. Pseudo-Types

    +Chapter 8. Data Types

    Chapter 8. Data Types

    Table of Contents

    8.1. Numeric Types
    8.1.1. Integer Types
    8.1.2. Arbitrary Precision Numbers
    8.1.3. Floating-Point Types
    8.1.4. Serial Types
    8.2. Monetary Types
    8.3. Character Types
    8.4. Binary Data Types
    8.4.1. bytea Hex Format
    8.4.2. bytea Escape Format
    8.5. Date/Time Types
    8.5.1. Date/Time Input
    8.5.2. Date/Time Output
    8.5.3. Time Zones
    8.5.4. Interval Input
    8.5.5. Interval Output
    8.6. Boolean Type
    8.7. Enumerated Types
    8.7.1. Declaration of Enumerated Types
    8.7.2. Ordering
    8.7.3. Type Safety
    8.7.4. Implementation Details
    8.8. Geometric Types
    8.8.1. Points
    8.8.2. Lines
    8.8.3. Line Segments
    8.8.4. Boxes
    8.8.5. Paths
    8.8.6. Polygons
    8.8.7. Circles
    8.9. Network Address Types
    8.9.1. inet
    8.9.2. cidr
    8.9.3. inet vs. cidr
    8.9.4. macaddr
    8.9.5. macaddr8
    8.10. Bit String Types
    8.11. Text Search Types
    8.11.1. tsvector
    8.11.2. tsquery
    8.12. UUID Type
    8.13. XML Type
    8.13.1. Creating XML Values
    8.13.2. Encoding Handling
    8.13.3. Accessing XML Values
    8.14. JSON Types
    8.14.1. JSON Input and Output Syntax
    8.14.2. Designing JSON Documents
    8.14.3. jsonb Containment and Existence
    8.14.4. jsonb Indexing
    8.14.5. Transforms
    8.14.6. jsonpath Type
    8.15. Arrays
    8.15.1. Declaration of Array Types
    8.15.2. Array Value Input
    8.15.3. Accessing Arrays
    8.15.4. Modifying Arrays
    8.15.5. Searching in Arrays
    8.15.6. Array Input and Output Syntax
    8.16. Composite Types
    8.16.1. Declaration of Composite Types
    8.16.2. Constructing Composite Values
    8.16.3. Accessing Composite Types
    8.16.4. Modifying Composite Types
    8.16.5. Using Composite Types in Queries
    8.16.6. Composite Type Input and Output Syntax
    8.17. Range Types
    8.17.1. Built-in Range Types
    8.17.2. Examples
    8.17.3. Inclusive and Exclusive Bounds
    8.17.4. Infinite (Unbounded) Ranges
    8.17.5. Range Input/Output
    8.17.6. Constructing Ranges
    8.17.7. Discrete Range Types
    8.17.8. Defining New Range Types
    8.17.9. Indexing
    8.17.10. Constraints on Ranges
    8.18. Domain Types
    8.19. Object Identifier Types
    8.20. pg_lsn Type
    8.21. Pseudo-Types

    PostgreSQL has a rich set of native data types available to users. Users can add new types to PostgreSQL using the CREATE TYPE command. @@ -33,4 +33,4 @@ Some of the input and output functions are not invertible, i.e., the result of an output function might lose accuracy when compared to the original input. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-json.html postgresql-13-13.7/doc/src/sgml/html/datatype-json.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-json.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-json.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.14. JSON Types

    8.14. JSON Types

    +8.14. JSON Types

    8.14. JSON Types

    JSON data types are for storing JSON (JavaScript Object Notation) data, as specified in RFC 7159. Such data can also be stored as text, but @@ -631,4 +631,4 @@ For this purpose, the term value includes array elements, though JSON terminology sometimes considers array elements distinct from values within objects. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-money.html postgresql-13-13.7/doc/src/sgml/html/datatype-money.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-money.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-money.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.2. Monetary Types

    8.2. Monetary Types

    +8.2. Monetary Types

    8.2. Monetary Types

    The money type stores a currency amount with a fixed fractional precision; see Table 8.3. The fractional precision is determined by the database's lc_monetary setting. @@ -41,4 +41,4 @@ When a money value is divided by another money value, the result is double precision (i.e., a pure number, not money); the currency units cancel each other out in the division. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-net-types.html postgresql-13-13.7/doc/src/sgml/html/datatype-net-types.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-net-types.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-net-types.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.9. Network Address Types

    8.9. Network Address Types

    +8.9. Network Address Types

    8.9. Network Address Types

    PostgreSQL offers data types to store IPv4, IPv6, and MAC addresses, as shown in Table 8.21. It is better to use these types instead of plain text types to store @@ -129,4 +129,4 @@

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-numeric.html postgresql-13-13.7/doc/src/sgml/html/datatype-numeric.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-numeric.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-numeric.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.1. Numeric Types

    8.1. Numeric Types

    +8.1. Numeric Types

    8.1. Numeric Types

    Numeric types consist of two-, four-, and eight-byte integers, four- and eight-byte floating-point numbers, and selectable-precision decimals. Table 8.2 lists the @@ -303,4 +303,4 @@ automatically dropped when the owning column is dropped. You can drop the sequence without dropping the column, but this will force removal of the column default expression. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-oid.html postgresql-13-13.7/doc/src/sgml/html/datatype-oid.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-oid.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-oid.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -8.19. Object Identifier Types

    8.19. Object Identifier Types

    +8.19. Object Identifier Types

    8.19. Object Identifier Types

    Object identifiers (OIDs) are used internally by PostgreSQL as primary keys for various system tables. @@ -89,4 +89,4 @@ physical location of the row within its table.

    (The system columns are further explained in Section 5.5.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-pg-lsn.html postgresql-13-13.7/doc/src/sgml/html/datatype-pg-lsn.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-pg-lsn.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-pg-lsn.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -8.20. pg_lsn Type

    8.20. pg_lsn Type

    +8.20. pg_lsn Type

    8.20. pg_lsn Type

    The pg_lsn data type can be used to store LSN (Log Sequence Number) data which is a pointer to a location in the WAL. This type is a representation of XLogRecPtr and an internal system type of @@ -13,4 +13,4 @@ >. Two LSNs can be subtracted using the - operator; the result is the number of bytes separating those write-ahead log locations. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-pseudo.html postgresql-13-13.7/doc/src/sgml/html/datatype-pseudo.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-pseudo.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-pseudo.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -8.21. Pseudo-Types

    8.21. Pseudo-Types

    +8.21. Pseudo-Types

    8.21. Pseudo-Types

    The PostgreSQL type system contains a number of special-purpose entries that are collectively called pseudo-types. A pseudo-type cannot be used as a @@ -51,4 +51,4 @@ follow this coding rule: do not create any function that is declared to return internal unless it has at least one internal argument. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-textsearch.html postgresql-13-13.7/doc/src/sgml/html/datatype-textsearch.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-textsearch.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-textsearch.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.11. Text Search Types

    8.11. Text Search Types

    +8.11. Text Search Types

    8.11. Text Search Types

    PostgreSQL provides two data types that are designed to support full text search, which is the activity of searching through a collection of natural-language documents @@ -193,4 +193,4 @@ 'postgradu':1 | 'postgr':*

    which will match the stemmed form of postgraduate. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-uuid.html postgresql-13-13.7/doc/src/sgml/html/datatype-uuid.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-uuid.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-uuid.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.12. UUID Type

    8.12. UUID Type

    +8.12. UUID Type

    8.12. UUID Type

    The data type uuid stores Universally Unique Identifiers (UUID) as defined by RFC 4122, ISO/IEC 9834-8:2005, and related standards. (Some systems refer to this data type as a globally unique identifier, or @@ -35,4 +35,4 @@

    See Section 9.14 for how to generate a UUID in PostgreSQL. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datatype-xml.html postgresql-13-13.7/doc/src/sgml/html/datatype-xml.html --- postgresql-13-13.4/doc/src/sgml/html/datatype-xml.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datatype-xml.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.13. XML Type

    8.13. XML Type

    +8.13. XML Type

    8.13. XML Type

    The xml data type can be used to store XML data. Its advantage over storing XML data in a text field is that it checks the input values for well-formedness, and there are support @@ -148,4 +148,4 @@ up full-document searches of XML data. The necessary preprocessing support is, however, not yet available in the PostgreSQL distribution. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datetime-appendix.html postgresql-13-13.7/doc/src/sgml/html/datetime-appendix.html --- postgresql-13-13.4/doc/src/sgml/html/datetime-appendix.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datetime-appendix.html 2022-05-09 21:29:28.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix B. Date/Time Support

    Appendix B. Date/Time Support

    +Appendix B. Date/Time Support

    Appendix B. Date/Time Support

    PostgreSQL uses an internal heuristic parser for all date/time input support. Dates and times are input as strings, and are broken up into distinct fields with a preliminary @@ -12,4 +12,4 @@ This appendix includes information on the content of these lookup tables and describes the steps used by the parser to decode dates and times. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datetime-config-files.html postgresql-13-13.7/doc/src/sgml/html/datetime-config-files.html --- postgresql-13-13.4/doc/src/sgml/html/datetime-config-files.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datetime-config-files.html 2022-05-09 21:29:28.000000000 +0000 @@ -1,5 +1,5 @@ -B.4. Date/Time Configuration Files

    B.4. Date/Time Configuration Files

    +B.4. Date/Time Configuration Files

    B.4. Date/Time Configuration Files

    Since timezone abbreviations are not well standardized, PostgreSQL provides a means to customize the set of abbreviations accepted by the server. The @@ -95,4 +95,4 @@ If you modify files in .../share/timezonesets/, it is up to you to make backups — a normal database dump will not include this directory. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datetime-input-rules.html postgresql-13-13.7/doc/src/sgml/html/datetime-input-rules.html --- postgresql-13-13.4/doc/src/sgml/html/datetime-input-rules.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datetime-input-rules.html 2022-05-09 21:29:28.000000000 +0000 @@ -1,5 +1,5 @@ -B.1. Date/Time Input Interpretation

    B.1. Date/Time Input Interpretation

    +B.1. Date/Time Input Interpretation

    B.1. Date/Time Input Interpretation

    Date/time input strings are decoded using the following procedure.

    1. Break the input string into tokens and categorize each token as @@ -71,4 +71,4 @@ Gregorian years AD 1–99 can be entered by using 4 digits with leading zeros (e.g., 0099 is AD 99).

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datetime-invalid-input.html postgresql-13-13.7/doc/src/sgml/html/datetime-invalid-input.html --- postgresql-13-13.4/doc/src/sgml/html/datetime-invalid-input.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datetime-invalid-input.html 2022-05-09 21:29:28.000000000 +0000 @@ -1,5 +1,5 @@ -B.2. Handling of Invalid or Ambiguous Timestamps

    B.2. Handling of Invalid or Ambiguous Timestamps

    +B.2. Handling of Invalid or Ambiguous Timestamps

    B.2. Handling of Invalid or Ambiguous Timestamps

    Ordinarily, if a date/time string is syntactically valid but contains out-of-range field values, an error will be thrown. For example, input specifying the 31st of February will be rejected. @@ -25,27 +25,25 @@

    Conversely, consider the behavior during a fall-back transition:

    -=> SELECT '2018-11-04 02:30'::timestamptz;
    +=> SELECT '2018-11-04 01:30'::timestamptz;
           timestamptz
     ------------------------
    - 2018-11-04 02:30:00-05
    + 2018-11-04 01:30:00-05
     (1 row)
     

    - On that date, there were two possible interpretations of 2:30AM; there - was 2:30AM EDT, and then an hour later after the reversion to standard - time, there was 2:30AM EST. + On that date, there were two possible interpretations of 1:30AM; there + was 1:30AM EDT, and then an hour later after clocks jumped back from + 2AM EDT to 1AM EST, there was 1:30AM EST. Again, PostgreSQL interprets the given time - as if it were standard time (UTC-5). We can force the matter by - specifying daylight-savings time: + as if it were standard time (UTC-5). We can force the other + interpretation by specifying daylight-savings time:

    -=> SELECT '2018-11-04 02:30 EDT'::timestamptz;
    +=> SELECT '2018-11-04 01:30 EDT'::timestamptz;
           timestamptz
     ------------------------
    - 2018-11-04 01:30:00-05
    + 2018-11-04 01:30:00-04
     (1 row)
     

    - This timestamp could validly be rendered as either 2:30 UTC-4 or - 1:30 UTC-5; the timestamp output code chooses the latter.

    The precise rule that is applied in such cases is that an invalid timestamp that appears to fall within a jump-forward daylight savings @@ -61,4 +59,4 @@ abbreviation that corresponds to a fixed UTC offset. The rule just given applies only when it is necessary to infer a UTC offset for a time zone in which the offset varies. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datetime-julian-dates.html postgresql-13-13.7/doc/src/sgml/html/datetime-julian-dates.html --- postgresql-13-13.4/doc/src/sgml/html/datetime-julian-dates.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datetime-julian-dates.html 2022-05-09 21:29:28.000000000 +0000 @@ -1,5 +1,5 @@ -B.7. Julian Dates

    B.7. Julian Dates

    +B.7. Julian Dates

    B.7. Julian Dates

    The Julian Date system is a method for numbering days. It is unrelated to the Julian calendar, though it is confusingly @@ -45,4 +45,4 @@ 2459389 (1 row)

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datetime-keywords.html postgresql-13-13.7/doc/src/sgml/html/datetime-keywords.html --- postgresql-13-13.4/doc/src/sgml/html/datetime-keywords.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datetime-keywords.html 2022-05-09 21:29:28.000000000 +0000 @@ -1,5 +1,5 @@ -B.3. Date/Time Key Words

    B.3. Date/Time Key Words

    +B.3. Date/Time Key Words

    B.3. Date/Time Key Words

    Table B.1 shows the tokens that are recognized as names of months.

    Table B.1. Month Names

    MonthAbbreviations
    JanuaryJan
    FebruaryFeb
    MarchMar
    AprilApr
    May 
    JuneJun
    JulyJul
    AugustAug
    SeptemberSep, Sept
    OctoberOct
    NovemberNov
    DecemberDec

    @@ -8,4 +8,4 @@

    Table B.2. Day of the Week Names

    DayAbbreviations
    SundaySun
    MondayMon
    TuesdayTue, Tues
    WednesdayWed, Weds
    ThursdayThu, Thur, Thurs
    FridayFri
    SaturdaySat

    Table B.3 shows the tokens that serve various modifier purposes. -

    Table B.3. Date/Time Field Modifiers

    IdentifierDescription
    AMTime is before 12:00
    ATIgnored
    JULIAN, JD, JNext field is Julian Date
    ONIgnored
    PMTime is on or after 12:00
    TNext field is time

    \ No newline at end of file +

    Table B.3. Date/Time Field Modifiers

    IdentifierDescription
    AMTime is before 12:00
    ATIgnored
    JULIAN, JD, JNext field is Julian Date
    ONIgnored
    PMTime is on or after 12:00
    TNext field is time

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datetime-posix-timezone-specs.html postgresql-13-13.7/doc/src/sgml/html/datetime-posix-timezone-specs.html --- postgresql-13-13.4/doc/src/sgml/html/datetime-posix-timezone-specs.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datetime-posix-timezone-specs.html 2022-05-09 21:29:28.000000000 +0000 @@ -1,5 +1,5 @@ -B.5. POSIX Time Zone Specifications

    B.5. POSIX Time Zone Specifications

    +B.5. POSIX Time Zone Specifications

    B.5. POSIX Time Zone Specifications

    PostgreSQL can accept time zone specifications that are written according to the POSIX standard's rules for the TZ environment @@ -132,4 +132,4 @@ zone abbreviation(s). For example, SET TIMEZONE TO FOOBAR0 will work, leaving the system effectively using a rather peculiar abbreviation for UTC. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/datetime-units-history.html postgresql-13-13.7/doc/src/sgml/html/datetime-units-history.html --- postgresql-13-13.4/doc/src/sgml/html/datetime-units-history.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/datetime-units-history.html 2022-05-09 21:29:28.000000000 +0000 @@ -1,5 +1,5 @@ -B.6. History of Units

    B.6. History of Units

    +B.6. History of Units

    B.6. History of Units

    The SQL standard states that Within the definition of a datetime literal, the datetime values are constrained by the natural rules for dates and @@ -84,4 +84,4 @@ The People's Republic of China uses the Gregorian calendar for civil purposes. The Chinese calendar is used for determining festivals. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/dblink.html postgresql-13-13.7/doc/src/sgml/html/dblink.html --- postgresql-13-13.4/doc/src/sgml/html/dblink.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/dblink.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.10. dblink \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-basics.html postgresql-13-13.7/doc/src/sgml/html/ddl-basics.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-basics.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-basics.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -5.1. Table Basics

    5.1. Table Basics

    +5.1. Table Basics

    5.1. Table Basics

    A table in a relational database is much like a table on paper: It consists of rows and columns. The number and order of the columns is fixed, and each column has a name. The number of rows is @@ -98,4 +98,4 @@ security, or convenience. If you are eager to fill your tables with data now you can skip ahead to Chapter 6 and read the rest of this chapter later. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-constraints.html postgresql-13-13.7/doc/src/sgml/html/ddl-constraints.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-constraints.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-constraints.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -5.4. Constraints

    5.4. Constraints

    +5.4. Constraints

    5.4. Constraints

    Data types are a way to limit the kind of data that can be stored in a table. For many applications, however, the constraint they provide is too coarse. For example, a column containing a product @@ -537,4 +537,4 @@

    Adding an exclusion constraint will automatically create an index of the type specified in the constraint declaration. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-default.html postgresql-13-13.7/doc/src/sgml/html/ddl-default.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-default.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-default.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -5.2. Default Values

    5.2. Default Values

    +5.2. Default Values

    5.2. Default Values

    A column can be assigned a default value. When a new row is created and no values are specified for some of the columns, those columns will be filled with their respective default values. A @@ -46,4 +46,4 @@ );

    The SERIAL shorthand is discussed further in Section 8.1.4. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-depend.html postgresql-13-13.7/doc/src/sgml/html/ddl-depend.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-depend.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-depend.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -5.14. Dependency Tracking

    5.14. Dependency Tracking

    +5.14. Dependency Tracking

    5.14. Dependency Tracking

    When you create complex database structures involving many tables with foreign key constraints, views, triggers, functions, etc. you implicitly create a net of dependencies between the objects. @@ -80,4 +80,4 @@ there are also benefits. The function is still valid in some sense if the table is missing, though executing it would cause an error; creating a new table of the same name would allow the function to work again. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-foreign-data.html postgresql-13-13.7/doc/src/sgml/html/ddl-foreign-data.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-foreign-data.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-foreign-data.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -5.12. Foreign Data

    5.12. Foreign Data

    +5.12. Foreign Data

    5.12. Foreign Data

    PostgreSQL implements portions of the SQL/MED specification, allowing you to access data that resides outside PostgreSQL using regular SQL queries. Such data is referred to as @@ -38,4 +38,4 @@ CREATE USER MAPPING, CREATE FOREIGN TABLE, and IMPORT FOREIGN SCHEMA. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-generated-columns.html postgresql-13-13.7/doc/src/sgml/html/ddl-generated-columns.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-generated-columns.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-generated-columns.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -5.3. Generated Columns

    5.3. Generated Columns

    +5.3. Generated Columns

    5.3. Generated Columns

    A generated column is a special column that is always computed from other columns. Thus, it is for columns what a view is for tables. There are two kinds of generated columns: stored and virtual. A stored generated column @@ -82,4 +82,4 @@ generated columns. But conversely, it is not allowed to access generated columns in BEFORE triggers.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl.html postgresql-13-13.7/doc/src/sgml/html/ddl.html --- postgresql-13-13.4/doc/src/sgml/html/ddl.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 5. Data Definition

    Chapter 5. Data Definition

    +Chapter 5. Data Definition

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-inherit.html postgresql-13-13.7/doc/src/sgml/html/ddl-inherit.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-inherit.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-inherit.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -5.10. Inheritance

    5.10. Inheritance

    +5.10. Inheritance

    5.10. Inheritance

    PostgreSQL implements table inheritance, which can be a useful tool for database designers. (SQL:1999 and later define a type inheritance feature, which differs in many @@ -286,4 +286,4 @@ implemented for declarative partitioning. Considerable care is needed in deciding whether partitioning with legacy inheritance is useful for your application. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-others.html postgresql-13-13.7/doc/src/sgml/html/ddl-others.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-others.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-others.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -5.13. Other Database Objects

    5.13. Other Database Objects

    +5.13. Other Database Objects

    5.13. Other Database Objects

    Tables are the central objects in a relational database structure, because they hold your data. But they are not the only objects that exist in a database. Many other kinds of objects can be @@ -17,4 +17,4 @@

    Detailed information on these topics appears in Part V. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-partitioning.html postgresql-13-13.7/doc/src/sgml/html/ddl-partitioning.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-partitioning.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-partitioning.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -5.11. Table Partitioning

    5.11. Table Partitioning

    +5.11. Table Partitioning

    5.11. Table Partitioning

    PostgreSQL supports basic table partitioning. This section describes why and how to implement partitioning as part of your database design. @@ -106,9 +106,12 @@ ATTACH PARTITION and DETACH PARTITION sub-commands.

    - Partitions can also be foreign tables, although they have some limitations - that normal tables do not; see CREATE FOREIGN TABLE for - more information. + Partitions can also be foreign + tables, although considerable care is needed because it is then + the user's responsibility that the contents of the foreign table + satisfy the partitioning rule. There are some other restrictions as + well. See CREATE FOREIGN TABLE for more + information.

    5.11.2.1. Example

    Suppose we are constructing a database for a large ice cream company. The company measures peak temperatures every day as well as ice cream @@ -320,7 +323,7 @@ holding an ACCESS EXCLUSIVE lock on that partition. It is recommended to drop the now-redundant CHECK constraint after the ATTACH PARTITION is complete. If - the table being attached is itself a partitioned table then each of its + the table being attached is itself a partitioned table, then each of its sub-partitions will be recursively locked and scanned until either a suitable CHECK constraint is encountered or the leaf partitions are reached. @@ -333,7 +336,7 @@ the partition being attached. This operation will be performed whilst holding an ACCESS EXCLUSIVE lock on the DEFAULT partition. If the DEFAULT partition - is itself a partitioned table then each of its partitions will be + is itself a partitioned table, then each of its partitions will be recursively checked in the same way as the table being attached, as mentioned above.

    @@ -989,4 +992,4 @@ painfully slow. Simulations of the intended workload are often beneficial for optimizing the partitioning strategy. Never just assume that more partitions are better than fewer partitions, nor vice-versa. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-priv.html postgresql-13-13.7/doc/src/sgml/html/ddl-priv.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-priv.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-priv.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -5.7. Privileges

    5.7. Privileges

    +5.7. Privileges

    5.7. Privileges

    When an object is created, it is assigned an owner. The owner is normally the role that executed the creation statement. For most kinds of objects, the initial state is that only the owner @@ -293,4 +293,4 @@ Notice that the owner's implicit grant options are not marked in the access privileges display. A * will appear only when grant options have been explicitly granted to someone. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-rowsecurity.html postgresql-13-13.7/doc/src/sgml/html/ddl-rowsecurity.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-rowsecurity.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-rowsecurity.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -5.8. Row Security Policies

    5.8. Row Security Policies

    +5.8. Row Security Policies

    5.8. Row Security Policies

    In addition to the SQL-standard privilege system available through GRANT, tables can have row security policies that restrict, @@ -385,4 +385,4 @@

    For additional details see CREATE POLICY and ALTER TABLE. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-schemas.html postgresql-13-13.7/doc/src/sgml/html/ddl-schemas.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-schemas.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-schemas.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -5.9. Schemas

    5.9. Schemas

    +5.9. Schemas

    5.9. Schemas

    A PostgreSQL database cluster contains one or more named databases. Roles and a few other object types are shared across the entire cluster. A client connection to the server @@ -317,4 +317,4 @@ limited) cross-database access. If you need to work with those systems, then maximum portability would be achieved by not using schemas at all. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ddl-system-columns.html postgresql-13-13.7/doc/src/sgml/html/ddl-system-columns.html --- postgresql-13-13.4/doc/src/sgml/html/ddl-system-columns.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ddl-system-columns.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -5.5. System Columns

    5.5. System Columns

    +5.5. System Columns

    5.5. System Columns

    Every table has several system columns that are implicitly defined by the system. Therefore, these names cannot be used as names of user-defined columns. (Note that these @@ -54,4 +54,4 @@ SQL commands, not the number of rows processed. Also, only commands that actually modify the database contents will consume a command identifier. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/default-roles.html postgresql-13-13.7/doc/src/sgml/html/default-roles.html --- postgresql-13-13.4/doc/src/sgml/html/default-roles.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/default-roles.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -21.5. Default Roles

    21.5. Default Roles

    +21.5. Default Roles

    21.5. Default Roles

    PostgreSQL provides a set of default roles which provide access to certain, commonly needed, privileged capabilities and information. Administrators can GRANT these roles to users and/or @@ -52,4 +52,4 @@

     GRANT pg_signal_backend TO admin_user;
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/dict-int.html postgresql-13-13.7/doc/src/sgml/html/dict-int.html --- postgresql-13-13.4/doc/src/sgml/html/dict-int.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/dict-int.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.11. dict_int

    F.11. dict_int

    +F.11. dict_int

    F.11. 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 @@ -59,4 +59,4 @@ ALTER MAPPING FOR int, uint WITH intdict;

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/dict-xsyn.html postgresql-13-13.7/doc/src/sgml/html/dict-xsyn.html --- postgresql-13-13.4/doc/src/sgml/html/dict-xsyn.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/dict-xsyn.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.12. dict_xsyn

    F.12. dict_xsyn

    +F.12. dict_xsyn

    F.12. 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 @@ -94,4 +94,4 @@ ALTER MAPPING FOR word, asciiword WITH xsyn, english_stem;

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/different-replication-solutions.html postgresql-13-13.7/doc/src/sgml/html/different-replication-solutions.html --- postgresql-13-13.4/doc/src/sgml/html/different-replication-solutions.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/different-replication-solutions.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -26.1. Comparison of Different Solutions

    26.1. Comparison of Different Solutions

    Shared Disk Failover

    +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 @@ -136,4 +136,4 @@ taken PostgreSQL and created commercial closed-source solutions with unique failover, replication, and load balancing capabilities. These are not discussed here. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/disk-full.html postgresql-13-13.7/doc/src/sgml/html/disk-full.html --- postgresql-13-13.4/doc/src/sgml/html/disk-full.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/disk-full.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -28.2. Disk Full Failure

    28.2. Disk Full Failure

    +28.2. Disk Full Failure

    28.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 @@ -17,4 +17,4 @@ will naturally be subject to whatever quota is placed on the user the server runs as. Exceeding the quota will have the same bad effects as running out of disk space entirely. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/disk-usage.html postgresql-13-13.7/doc/src/sgml/html/disk-usage.html --- postgresql-13-13.4/doc/src/sgml/html/disk-usage.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/disk-usage.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -28.1. Determining Disk Usage

    28.1. Determining Disk Usage

    +28.1. Determining Disk Usage

    28.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, @@ -80,4 +80,4 @@ bigtable | 3290 customer | 3144

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/diskusage.html postgresql-13-13.7/doc/src/sgml/html/diskusage.html --- postgresql-13-13.4/doc/src/sgml/html/diskusage.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/diskusage.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 28. Monitoring Disk Usage

    Chapter 28. Monitoring Disk Usage

    +Chapter 28. Monitoring Disk Usage

    Chapter 28. Monitoring Disk Usage

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

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/dml-delete.html postgresql-13-13.7/doc/src/sgml/html/dml-delete.html --- postgresql-13-13.4/doc/src/sgml/html/dml-delete.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/dml-delete.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -6.3. Deleting Data

    6.3. Deleting Data

    +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 @@ -25,4 +25,4 @@ DELETE FROM products;

    then all rows in the table will be deleted! Caveat programmer. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/dml.html postgresql-13-13.7/doc/src/sgml/html/dml.html --- postgresql-13-13.4/doc/src/sgml/html/dml.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/dml.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,9 +1,9 @@ -Chapter 6. Data Manipulation

    Chapter 6. Data Manipulation

    +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 after this will finally explain how to extract your long-lost data from the database. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/dml-insert.html postgresql-13-13.7/doc/src/sgml/html/dml-insert.html --- postgresql-13-13.4/doc/src/sgml/html/dml-insert.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/dml-insert.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -6.1. Inserting Data

    6.1. Inserting Data

    +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 @@ -78,4 +78,4 @@ command, but is more efficient. Refer to Section 14.4 for more information on improving bulk loading performance. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/dml-returning.html postgresql-13-13.7/doc/src/sgml/html/dml-returning.html --- postgresql-13-13.4/doc/src/sgml/html/dml-returning.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/dml-returning.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -6.4. Returning Data from Modified Rows

    6.4. Returning Data from Modified Rows

    +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 @@ -50,4 +50,4 @@ the data available to RETURNING is the row as modified by the triggers. Thus, inspecting columns computed by triggers is another common use-case for RETURNING. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/dml-update.html postgresql-13-13.7/doc/src/sgml/html/dml-update.html --- postgresql-13-13.4/doc/src/sgml/html/dml-update.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/dml-update.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -6.2. Updating Data

    6.2. Updating Data

    +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 @@ -58,4 +58,4 @@

     UPDATE mytable SET a = 5, b = 3, c = 1 WHERE a > 0;
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/docguide-authoring.html postgresql-13-13.7/doc/src/sgml/html/docguide-authoring.html --- postgresql-13-13.4/doc/src/sgml/html/docguide-authoring.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/docguide-authoring.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -J.4. Documentation Authoring

    J.4. Documentation Authoring

    +J.4. Documentation Authoring

    J.4. Documentation Authoring

    The documentation sources are most conveniently modified with an editor that has a mode for editing XML, and even more so if it has some awareness of XML schema languages so that it can know about @@ -20,4 +20,4 @@

    src/tools/editors/emacs.samples contains recommended settings for this mode. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/docguide-build.html postgresql-13-13.7/doc/src/sgml/html/docguide-build.html --- postgresql-13-13.4/doc/src/sgml/html/docguide-build.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/docguide-build.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -J.3. Building the Documentation

    J.3. Building the Documentation

    +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 @@ -88,4 +88,4 @@

     doc/src/sgml$ make check
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/docguide-docbook.html postgresql-13-13.7/doc/src/sgml/html/docguide-docbook.html --- postgresql-13-13.4/doc/src/sgml/html/docguide-docbook.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/docguide-docbook.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -J.1. DocBook

    J.1. DocBook

    +J.1. DocBook

    J.1. DocBook

    The documentation sources are written in DocBook, which is a markup language defined in XML. In what @@ -20,4 +20,4 @@ FreeBSD Documentation Project also uses DocBook and has some good information, including a number of style guidelines that might be worth considering. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/docguide.html postgresql-13-13.7/doc/src/sgml/html/docguide.html --- postgresql-13-13.4/doc/src/sgml/html/docguide.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/docguide.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix J. Documentation \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/docguide-style.html postgresql-13-13.7/doc/src/sgml/html/docguide-style.html --- postgresql-13-13.4/doc/src/sgml/html/docguide-style.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/docguide-style.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -J.5. Style Guide

    J.5. Style Guide

    J.5.1. Reference Pages

    +J.5. Style Guide

    J.5. Style Guide

    J.5.1. Reference Pages

    Reference pages should follow a standard layout. This allows users to find the desired information more quickly, and it also encourages writers to document all relevant aspects of a command. @@ -86,4 +86,4 @@ database system it is compatible. The See Also section of SQL commands should list SQL commands before cross-references to programs. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/docguide-toolsets.html postgresql-13-13.7/doc/src/sgml/html/docguide-toolsets.html --- postgresql-13-13.4/doc/src/sgml/html/docguide-toolsets.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/docguide-toolsets.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -J.2. Tool Sets

    J.2. Tool Sets

    +J.2. Tool Sets

    J.2. Tool Sets

    The following tools are used to process the documentation. Some might be optional, as noted. @@ -109,4 +109,4 @@

     ./configure ... XMLLINT="xmllint --nonet" XSLTPROC="xsltproc --nonet" ...
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/domains.html postgresql-13-13.7/doc/src/sgml/html/domains.html --- postgresql-13-13.4/doc/src/sgml/html/domains.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/domains.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.18. Domain Types

    8.18. Domain Types

    +8.18. Domain Types

    8.18. Domain Types

    A domain is a user-defined data type that is based on another underlying type. Optionally, it can have constraints that restrict its valid values to a subset of @@ -31,4 +31,4 @@ domain's constraints will be checked.

    For additional information see CREATE DOMAIN. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/dynamic-trace.html postgresql-13-13.7/doc/src/sgml/html/dynamic-trace.html --- postgresql-13-13.4/doc/src/sgml/html/dynamic-trace.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/dynamic-trace.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -27.5. Dynamic Tracing

    27.5. Dynamic Tracing

    +27.5. Dynamic Tracing

    27.5. Dynamic Tracing

    PostgreSQL provides facilities to support dynamic tracing of the database server. This allows an external utility to be called at specific points in the code and thereby trace @@ -298,4 +298,4 @@ Each trace macro has a corresponding ENABLED macro.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/earthdistance.html postgresql-13-13.7/doc/src/sgml/html/earthdistance.html --- postgresql-13-13.4/doc/src/sgml/html/earthdistance.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/earthdistance.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.13. earthdistance

    F.13. earthdistance

    +F.13. earthdistance

    F.13. earthdistance

    The earthdistance module provides two different approaches to calculating great circle distances on the surface of the Earth. The one described first depends on the cube module. @@ -154,4 +154,4 @@ you need to be careful about the edge conditions near the poles and near +/- 180 degrees of longitude. The cube-based representation avoids these discontinuities. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-commands.html postgresql-13-13.7/doc/src/sgml/html/ecpg-commands.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-commands.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-commands.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.3. Running SQL Commands

    35.3. Running SQL Commands

    +35.3. Running SQL Commands

    35.3. Running SQL Commands

    Any SQL command can be run from within an embedded SQL application. Below are some examples of how to do that.

    35.3.1. Executing SQL Statements

    @@ -162,4 +162,4 @@ see PREPARE. Also see Section 35.5 for more details about using placeholders and input parameters. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-concept.html postgresql-13-13.7/doc/src/sgml/html/ecpg-concept.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-concept.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-concept.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.1. The Concept

    35.1. The Concept

    +35.1. The Concept

    35.1. The Concept

    An embedded SQL program consists of code written in an ordinary programming language, in this case C, mixed with SQL commands in specially marked sections. To build the program, the source code (*.pgc) @@ -40,4 +40,4 @@ program, however, follows the C standard of not accepting nested comments.

    The following sections explain all the embedded SQL statements. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-connect.html postgresql-13-13.7/doc/src/sgml/html/ecpg-connect.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-connect.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-connect.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.2. Managing Database Connections

    35.2. Managing Database Connections

    +35.2. Managing Database Connections

    35.2. Managing Database Connections

    This section describes how to open, close, and switch database connections.

    35.2.1. Connecting to the Database Server

    @@ -195,4 +195,4 @@

    It is good style that an application always explicitly disconnect from every connection it opened. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-cpp.html postgresql-13-13.7/doc/src/sgml/html/ecpg-cpp.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-cpp.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-cpp.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.13. C++ Applications

    35.13. C++ Applications

    +35.13. C++ Applications

    35.13. C++ Applications

    ECPG has some limited support for C++ applications. This section describes some caveats.

    @@ -225,4 +225,4 @@

     c++ test_cpp.o test_mod.o -lecpg -o test_cpp
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-descriptors.html postgresql-13-13.7/doc/src/sgml/html/ecpg-descriptors.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-descriptors.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-descriptors.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.7. Using Descriptor Areas

    35.7. Using Descriptor Areas

    +35.7. Using Descriptor Areas

    35.7. Using Descriptor Areas

    An SQL descriptor area is a more sophisticated method for processing the result of a SELECT, FETCH or a DESCRIBE statement. An SQL descriptor area groups @@ -709,4 +709,4 @@ tup_inserted = 0 (type: 9) tup_updated = 0 (type: 9) tup_deleted = 0 (type: 9) -


    \ No newline at end of file +
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-develop.html postgresql-13-13.7/doc/src/sgml/html/ecpg-develop.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-develop.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-develop.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.16. Internals

    35.16. Internals

    +35.16. Internals

    35.16. Internals

    This section explains how ECPG works internally. This information can occasionally be useful to help users understand how to use ECPG. @@ -121,4 +121,4 @@

    (The indentation here is added for readability and not something the preprocessor does.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-dynamic.html postgresql-13-13.7/doc/src/sgml/html/ecpg-dynamic.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-dynamic.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-dynamic.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.5. Dynamic SQL

    35.5. Dynamic SQL

    +35.5. Dynamic SQL

    35.5. Dynamic SQL

    In many cases, the particular SQL statements that an application has to execute are known at the time the application is written. In some cases, however, the SQL statements are composed at run time @@ -100,4 +100,4 @@ EXEC SQL COMMIT; EXEC SQL DISCONNECT ALL;

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-errors.html postgresql-13-13.7/doc/src/sgml/html/ecpg-errors.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-errors.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-errors.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.8. Error Handling

    35.8. Error Handling

    +35.8. Error Handling

    35.8. Error Handling

    This section describes how you can handle exceptional conditions and warnings in an embedded SQL program. There are two nonexclusive facilities for this. @@ -438,4 +438,4 @@

    -605 (ECPG_WARNING_PORTAL_EXISTS)

    An existing cursor name was specified. (SQLSTATE 42P03)

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg.html postgresql-13-13.7/doc/src/sgml/html/ecpg.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 35. ECPG — Embedded SQL in C

    Chapter 35. ECPG — Embedded SQL in C

    Table of Contents

    35.1. The Concept
    35.2. Managing Database Connections
    35.2.1. Connecting to the Database Server
    35.2.2. Choosing a Connection
    35.2.3. Closing a Connection
    35.3. Running SQL Commands
    35.3.1. Executing SQL Statements
    35.3.2. Using Cursors
    35.3.3. Managing Transactions
    35.3.4. Prepared Statements
    35.4. Using Host Variables
    35.4.1. Overview
    35.4.2. Declare Sections
    35.4.3. Retrieving Query Results
    35.4.4. Type Mapping
    35.4.5. Handling Nonprimitive SQL Data Types
    35.4.6. Indicators
    35.5. Dynamic SQL
    35.5.1. Executing Statements without a Result Set
    35.5.2. Executing a Statement with Input Parameters
    35.5.3. Executing a Statement with a Result Set
    35.6. pgtypes Library
    35.6.1. Character Strings
    35.6.2. The numeric Type
    35.6.3. The date Type
    35.6.4. The timestamp Type
    35.6.5. The interval Type
    35.6.6. The decimal Type
    35.6.7. errno Values of pgtypeslib
    35.6.8. Special Constants of pgtypeslib
    35.7. Using Descriptor Areas
    35.7.1. Named SQL Descriptor Areas
    35.7.2. SQLDA Descriptor Areas
    35.8. Error Handling
    35.8.1. Setting Callbacks
    35.8.2. sqlca
    35.8.3. SQLSTATE vs. SQLCODE
    35.9. Preprocessor Directives
    35.9.1. Including Files
    35.9.2. The define and undef Directives
    35.9.3. ifdef, ifndef, elif, else, and endif Directives
    35.10. Processing Embedded SQL Programs
    35.11. Library Functions
    35.12. Large Objects
    35.13. C++ Applications
    35.13.1. Scope for Host Variables
    35.13.2. C++ Application Development with External C Module
    35.14. Embedded SQL Commands
    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area
    CONNECT — establish a database connection
    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area
    DECLARE — define a cursor
    DESCRIBE — obtain information about a prepared statement or result set
    DISCONNECT — terminate a database connection
    EXECUTE IMMEDIATE — dynamically prepare and execute a statement
    GET DESCRIPTOR — get information from an SQL descriptor area
    OPEN — open a dynamic cursor
    PREPARE — prepare a statement for execution
    SET AUTOCOMMIT — set the autocommit behavior of the current session
    SET CONNECTION — select a database connection
    SET DESCRIPTOR — set information in an SQL descriptor area
    TYPE — define a new data type
    VAR — define a variable
    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised
    35.15. Informix Compatibility Mode
    35.15.1. Additional Types
    35.15.2. Additional/Missing Embedded SQL Statements
    35.15.3. Informix-compatible SQLDA Descriptor Areas
    35.15.4. Additional Functions
    35.15.5. Additional Constants
    35.16. Internals

    +Chapter 35. ECPG — Embedded SQL in C

    Chapter 35. ECPG — Embedded SQL in C

    Table of Contents

    35.1. The Concept
    35.2. Managing Database Connections
    35.2.1. Connecting to the Database Server
    35.2.2. Choosing a Connection
    35.2.3. Closing a Connection
    35.3. Running SQL Commands
    35.3.1. Executing SQL Statements
    35.3.2. Using Cursors
    35.3.3. Managing Transactions
    35.3.4. Prepared Statements
    35.4. Using Host Variables
    35.4.1. Overview
    35.4.2. Declare Sections
    35.4.3. Retrieving Query Results
    35.4.4. Type Mapping
    35.4.5. Handling Nonprimitive SQL Data Types
    35.4.6. Indicators
    35.5. Dynamic SQL
    35.5.1. Executing Statements without a Result Set
    35.5.2. Executing a Statement with Input Parameters
    35.5.3. Executing a Statement with a Result Set
    35.6. pgtypes Library
    35.6.1. Character Strings
    35.6.2. The numeric Type
    35.6.3. The date Type
    35.6.4. The timestamp Type
    35.6.5. The interval Type
    35.6.6. The decimal Type
    35.6.7. errno Values of pgtypeslib
    35.6.8. Special Constants of pgtypeslib
    35.7. Using Descriptor Areas
    35.7.1. Named SQL Descriptor Areas
    35.7.2. SQLDA Descriptor Areas
    35.8. Error Handling
    35.8.1. Setting Callbacks
    35.8.2. sqlca
    35.8.3. SQLSTATE vs. SQLCODE
    35.9. Preprocessor Directives
    35.9.1. Including Files
    35.9.2. The define and undef Directives
    35.9.3. ifdef, ifndef, elif, else, and endif Directives
    35.10. Processing Embedded SQL Programs
    35.11. Library Functions
    35.12. Large Objects
    35.13. C++ Applications
    35.13.1. Scope for Host Variables
    35.13.2. C++ Application Development with External C Module
    35.14. Embedded SQL Commands
    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area
    CONNECT — establish a database connection
    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area
    DECLARE — define a cursor
    DESCRIBE — obtain information about a prepared statement or result set
    DISCONNECT — terminate a database connection
    EXECUTE IMMEDIATE — dynamically prepare and execute a statement
    GET DESCRIPTOR — get information from an SQL descriptor area
    OPEN — open a dynamic cursor
    PREPARE — prepare a statement for execution
    SET AUTOCOMMIT — set the autocommit behavior of the current session
    SET CONNECTION — select a database connection
    SET DESCRIPTOR — set information in an SQL descriptor area
    TYPE — define a new data type
    VAR — define a variable
    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised
    35.15. Informix Compatibility Mode
    35.15.1. Additional Types
    35.15.2. Additional/Missing Embedded SQL Statements
    35.15.3. Informix-compatible SQLDA Descriptor Areas
    35.15.4. Additional Functions
    35.15.5. Additional Constants
    35.16. Internals

    This chapter describes the embedded SQL package for PostgreSQL. It was written by Linus Tolke () and Michael Meskes @@ -10,4 +10,4 @@ This documentation is quite incomplete. But since this interface is standardized, additional information can be found in many resources about SQL. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-informix-compat.html postgresql-13-13.7/doc/src/sgml/html/ecpg-informix-compat.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-informix-compat.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-informix-compat.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.15. Informix Compatibility Mode

    35.15. Informix Compatibility Mode

    +35.15. Informix Compatibility Mode

    35.15. Informix Compatibility Mode

    ecpg can be run in a so-called Informix compatibility mode. If this mode is active, it tries to behave as if it were the Informix precompiler for Informix E/SQL. Generally spoken this will allow you to use @@ -889,4 +889,4 @@ characters it cannot parse. Internally it is defined as -1264 (the Informix definition).

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-library.html postgresql-13-13.7/doc/src/sgml/html/ecpg-library.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-library.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-library.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.11. Library Functions

    35.11. Library Functions

    +35.11. Library Functions

    35.11. Library Functions

    The libecpg library primarily contains hidden functions that are used to implement the functionality expressed by the embedded SQL commands. But there @@ -43,4 +43,4 @@ returns true if you are connected to a database and false if not. connection_name can be NULL if a single connection is being used. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-lo.html postgresql-13-13.7/doc/src/sgml/html/ecpg-lo.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-lo.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-lo.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.12. Large Objects

    35.12. Large Objects

    +35.12. Large Objects

    35.12. Large Objects

    Large objects are not directly supported by ECPG, but ECPG application can manipulate large objects through the libpq large object functions, obtaining the necessary PGconn @@ -97,4 +97,4 @@ EXEC SQL DISCONNECT ALL; return 0; } -


    \ No newline at end of file +
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-pgtypes.html postgresql-13-13.7/doc/src/sgml/html/ecpg-pgtypes.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-pgtypes.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-pgtypes.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.6. pgtypes Library

    35.6. pgtypes Library

    +35.6. pgtypes Library

    35.6. pgtypes Library

    The pgtypes library maps PostgreSQL database types to C equivalents that can be used in C programs. It also offers functions to do basic calculations with those types within C, i.e., without @@ -762,4 +762,4 @@ errno != 0 after each call to PGTYPEStimestamp_from_asc.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-preproc.html postgresql-13-13.7/doc/src/sgml/html/ecpg-preproc.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-preproc.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-preproc.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.9. Preprocessor Directives

    35.9. Preprocessor Directives

    +35.9. Preprocessor Directives

    35.9. Preprocessor Directives

    Several preprocessor directives are available that modify how the ecpg preprocessor parses and processes a file. @@ -126,4 +126,4 @@ EXEC SQL SET TIMEZONE TO 'GMT'; EXEC SQL endif;

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-process.html postgresql-13-13.7/doc/src/sgml/html/ecpg-process.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-process.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-process.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.10. Processing Embedded SQL Programs

    35.10. Processing Embedded SQL Programs

    +35.10. Processing Embedded SQL Programs

    35.10. Processing Embedded SQL Programs

    Now that you have an idea how to form embedded SQL C programs, you probably want to know how to compile them. Before compiling you run the file through the embedded SQL @@ -65,4 +65,4 @@ The ecpg library is thread-safe by default. However, you might need to use some threading command-line options to compile your client code. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-allocate-descriptor.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-allocate-descriptor.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-allocate-descriptor.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-allocate-descriptor.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -ALLOCATE DESCRIPTOR

    ALLOCATE DESCRIPTOR

    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area

    Synopsis

    +ALLOCATE DESCRIPTOR

    ALLOCATE DESCRIPTOR

    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area

    Synopsis

     ALLOCATE DESCRIPTOR name
     

    Description

    ALLOCATE DESCRIPTOR allocates a new named SQL @@ -16,4 +16,4 @@

    Compatibility

    ALLOCATE DESCRIPTOR is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-commands.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-commands.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-commands.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-commands.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,7 +1,7 @@ -35.14. Embedded SQL Commands

    35.14. Embedded SQL Commands

    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area
    CONNECT — establish a database connection
    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area
    DECLARE — define a cursor
    DESCRIBE — obtain information about a prepared statement or result set
    DISCONNECT — terminate a database connection
    EXECUTE IMMEDIATE — dynamically prepare and execute a statement
    GET DESCRIPTOR — get information from an SQL descriptor area
    OPEN — open a dynamic cursor
    PREPARE — prepare a statement for execution
    SET AUTOCOMMIT — set the autocommit behavior of the current session
    SET CONNECTION — select a database connection
    SET DESCRIPTOR — set information in an SQL descriptor area
    TYPE — define a new data type
    VAR — define a variable
    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised

    +35.14. Embedded SQL Commands

    35.14. Embedded SQL Commands

    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area
    CONNECT — establish a database connection
    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area
    DECLARE — define a cursor
    DESCRIBE — obtain information about a prepared statement or result set
    DISCONNECT — terminate a database connection
    EXECUTE IMMEDIATE — dynamically prepare and execute a statement
    GET DESCRIPTOR — get information from an SQL descriptor area
    OPEN — open a dynamic cursor
    PREPARE — prepare a statement for execution
    SET AUTOCOMMIT — set the autocommit behavior of the current session
    SET CONNECTION — select a database connection
    SET DESCRIPTOR — set information in an SQL descriptor area
    TYPE — define a new data type
    VAR — define a variable
    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised

    This section describes all SQL commands that are specific to embedded SQL. Also refer to the SQL commands listed in SQL Commands, which can also be used in embedded SQL, unless stated otherwise. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-connect.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-connect.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-connect.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-connect.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -CONNECT

    CONNECT

    CONNECT — establish a database connection

    Synopsis

    +CONNECT

    CONNECT

    CONNECT — establish a database connection

    Synopsis

     CONNECT TO connection_target [ AS connection_name ] [ USER connection_user ]
     CONNECT TO DEFAULT
     CONNECT connection_user
    @@ -106,4 +106,4 @@
          CONNECT is specified in the SQL standard, but
          the format of the connection parameters is
          implementation-specific.
    -    

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -DEALLOCATE DESCRIPTOR

    DEALLOCATE DESCRIPTOR

    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area

    Synopsis

    +DEALLOCATE DESCRIPTOR

    DEALLOCATE DESCRIPTOR

    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area

    Synopsis

     DEALLOCATE DESCRIPTOR name
     

    Description

    DEALLOCATE DESCRIPTOR deallocates a named SQL @@ -13,4 +13,4 @@

    Compatibility

    DEALLOCATE DESCRIPTOR is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-declare.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-declare.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-declare.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-declare.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -DECLARE

    DECLARE

    DECLARE — define a cursor

    Synopsis

    +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

    @@ -40,4 +40,4 @@

    Compatibility

    DECLARE is specified in the SQL standard. -

    See Also

    OPEN, CLOSE, DECLARE
    \ No newline at end of file +

    See Also

    OPEN, CLOSE, DECLARE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-describe.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-describe.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-describe.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-describe.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -DESCRIBE

    DESCRIBE

    DESCRIBE — obtain information about a prepared statement or result set

    Synopsis

    +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
    @@ -23,4 +23,4 @@
     EXEC SQL DEALLOCATE DESCRIPTOR mydesc;
     

    Compatibility

    DESCRIBE is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-disconnect.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-disconnect.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-disconnect.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-disconnect.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -DISCONNECT

    DISCONNECT

    DISCONNECT — terminate a database connection

    Synopsis

    +DISCONNECT

    DISCONNECT

    DISCONNECT — terminate a database connection

    Synopsis

     DISCONNECT connection_name
     DISCONNECT [ CURRENT ]
     DISCONNECT DEFAULT
    @@ -37,4 +37,4 @@
     }
     

    Compatibility

    DISCONNECT is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-execute-immediate.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-execute-immediate.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-execute-immediate.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-execute-immediate.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -EXECUTE IMMEDIATE

    EXECUTE IMMEDIATE

    EXECUTE IMMEDIATE — dynamically prepare and execute a statement

    Synopsis

    +EXECUTE IMMEDIATE

    EXECUTE IMMEDIATE

    EXECUTE IMMEDIATE — dynamically prepare and execute a statement

    Synopsis

     EXECUTE IMMEDIATE string
     

    Description

    EXECUTE IMMEDIATE immediately prepares and @@ -18,4 +18,4 @@

    Compatibility

    EXECUTE IMMEDIATE is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-get-descriptor.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-get-descriptor.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-get-descriptor.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-get-descriptor.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -GET DESCRIPTOR

    GET DESCRIPTOR

    GET DESCRIPTOR — get information from an SQL descriptor area

    Synopsis

    +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

    @@ -101,4 +101,4 @@

    Compatibility

    GET DESCRIPTOR is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-open.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-open.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-open.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-open.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -OPEN

    OPEN

    OPEN — open a dynamic cursor

    Synopsis

    +OPEN

    OPEN

    OPEN — open a dynamic cursor

    Synopsis

     OPEN cursor_name
     OPEN cursor_name USING value [, ... ]
     OPEN cursor_name USING SQL DESCRIPTOR descriptor_name
    @@ -28,4 +28,4 @@
     EXEC SQL OPEN :curname1;
     

    Compatibility

    OPEN is specified in the SQL standard. -

    See Also

    DECLARE, CLOSE
    \ No newline at end of file +

    See Also

    DECLARE, CLOSE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-prepare.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-prepare.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-prepare.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-prepare.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

    +PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

     PREPARE name FROM string
     

    Description

    PREPARE prepares a statement dynamically @@ -22,4 +22,4 @@ EXEC SQL EXECUTE foo USING SQL DESCRIPTOR indesc INTO SQL DESCRIPTOR outdesc;

    Compatibility

    PREPARE is specified in the SQL standard. -

    See Also

    EXECUTE
    \ No newline at end of file +

    See Also

    EXECUTE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-set-autocommit.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-set-autocommit.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-set-autocommit.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-set-autocommit.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -SET AUTOCOMMIT

    SET AUTOCOMMIT

    SET AUTOCOMMIT — set the autocommit behavior of the current session

    Synopsis

    +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 @@ -10,4 +10,4 @@ where each individual statement is committed implicitly.

    Compatibility

    SET AUTOCOMMIT is an extension of PostgreSQL ECPG. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-set-connection.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-set-connection.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-set-connection.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-set-connection.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -SET CONNECTION

    SET CONNECTION

    SET CONNECTION — select a database connection

    Synopsis

    +SET CONNECTION

    SET CONNECTION

    SET CONNECTION — select a database connection

    Synopsis

     SET CONNECTION [ TO | = ] connection_name
     

    Description

    SET CONNECTION sets the current @@ -15,4 +15,4 @@ EXEC SQL SET CONNECTION = con1;

    Compatibility

    SET CONNECTION is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-set-descriptor.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-set-descriptor.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-set-descriptor.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-set-descriptor.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -SET DESCRIPTOR

    SET DESCRIPTOR

    SET DESCRIPTOR — set information in an SQL descriptor area

    Synopsis

    +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

    @@ -35,4 +35,4 @@ EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val2null, DATA = :val2;

    Compatibility

    SET DESCRIPTOR is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-type.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-type.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-type.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-type.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -TYPE

    TYPE

    TYPE — define a new data type

    Synopsis

    +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 @@ -85,4 +85,4 @@

    Compatibility

    The TYPE command is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-var.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-var.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-var.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-var.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -VAR

    VAR

    VAR — define a variable

    Synopsis

    +VAR

    VAR

    VAR — define a variable

    Synopsis

     VAR varname IS ctype
     

    Description

    The VAR command assigns a new C data type @@ -16,4 +16,4 @@ EXEC SQL VAR a IS int;

    Compatibility

    The VAR command is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-whenever.html postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-whenever.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-sql-whenever.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-sql-whenever.html 2022-05-09 21:29:13.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

    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 @@ -54,4 +54,4 @@

    Compatibility

    WHENEVER is specified in the SQL standard, but most of the actions are PostgreSQL extensions. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ecpg-variables.html postgresql-13-13.7/doc/src/sgml/html/ecpg-variables.html --- postgresql-13-13.4/doc/src/sgml/html/ecpg-variables.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ecpg-variables.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -35.4. Using Host Variables

    35.4. Using Host Variables

    +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 @@ -877,4 +877,4 @@ input and output) for character string types as empty string and for integer types as the lowest possible value for type (for example, INT_MIN for int). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/encryption-options.html postgresql-13-13.7/doc/src/sgml/html/encryption-options.html --- postgresql-13-13.4/doc/src/sgml/html/encryption-options.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/encryption-options.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.8. Encryption Options

    18.8. Encryption Options

    +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 @@ -81,4 +81,4 @@ never appears on the database server. Data is encrypted on the client before being sent to the server, and database results have to be decrypted on the client before being used. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/errcodes-appendix.html postgresql-13-13.7/doc/src/sgml/html/errcodes-appendix.html --- postgresql-13-13.4/doc/src/sgml/html/errcodes-appendix.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/errcodes-appendix.html 2022-05-09 21:29:28.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix A. PostgreSQL Error Codes

    Appendix A. PostgreSQL Error Codes

    +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 @@ -20,7 +20,7 @@ what to do from the error class.

    Table A.1 lists all the error codes defined in - PostgreSQL 13.4. (Some are not actually + PostgreSQL 13.7. (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 @@ -42,4 +42,4 @@ As of PostgreSQL 9.3, complete coverage for this feature exists only for errors in SQLSTATE class 23 (integrity constraint violation), but this is likely to be expanded in future. -

    Table A.1. PostgreSQL Error Codes

    Error CodeCondition Name
    Class 00 — Successful Completion
    00000successful_completion
    Class 01 — Warning
    01000warning
    0100Cdynamic_result_sets_returned
    01008implicit_zero_bit_padding
    01003null_value_eliminated_in_set_function
    01007privilege_not_granted
    01006privilege_not_revoked
    01004string_data_right_truncation
    01P01deprecated_feature
    Class 02 — No Data (this is also a warning class per the SQL standard)
    02000no_data
    02001no_additional_dynamic_result_sets_returned
    Class 03 — SQL Statement Not Yet Complete
    03000sql_statement_not_yet_complete
    Class 08 — Connection Exception
    08000connection_exception
    08003connection_does_not_exist
    08006connection_failure
    08001sqlclient_unable_to_establish_sqlconnection
    08004sqlserver_rejected_establishment_of_sqlconnection
    08007transaction_resolution_unknown
    08P01protocol_violation
    Class 09 — Triggered Action Exception
    09000triggered_action_exception
    Class 0A — Feature Not Supported
    0A000feature_not_supported
    Class 0B — Invalid Transaction Initiation
    0B000invalid_transaction_initiation
    Class 0F — Locator Exception
    0F000locator_exception
    0F001invalid_locator_specification
    Class 0L — Invalid Grantor
    0L000invalid_grantor
    0LP01invalid_grant_operation
    Class 0P — Invalid Role Specification
    0P000invalid_role_specification
    Class 0Z — Diagnostics Exception
    0Z000diagnostics_exception
    0Z002stacked_diagnostics_accessed_without_active_handler
    Class 20 — Case Not Found
    20000case_not_found
    Class 21 — Cardinality Violation
    21000cardinality_violation
    Class 22 — Data Exception
    22000data_exception
    2202Earray_subscript_error
    22021character_not_in_repertoire
    22008datetime_field_overflow
    22012division_by_zero
    22005error_in_assignment
    2200Bescape_character_conflict
    22022indicator_overflow
    22015interval_field_overflow
    2201Einvalid_argument_for_logarithm
    22014invalid_argument_for_ntile_function
    22016invalid_argument_for_nth_value_function
    2201Finvalid_argument_for_power_function
    2201Ginvalid_argument_for_width_bucket_function
    22018invalid_character_value_for_cast
    22007invalid_datetime_format
    22019invalid_escape_character
    2200Dinvalid_escape_octet
    22025invalid_escape_sequence
    22P06nonstandard_use_of_escape_character
    22010invalid_indicator_parameter_value
    22023invalid_parameter_value
    22013invalid_preceding_or_following_size
    2201Binvalid_regular_expression
    2201Winvalid_row_count_in_limit_clause
    2201Xinvalid_row_count_in_result_offset_clause
    2202Hinvalid_tablesample_argument
    2202Ginvalid_tablesample_repeat
    22009invalid_time_zone_displacement_value
    2200Cinvalid_use_of_escape_character
    2200Gmost_specific_type_mismatch
    22004null_value_not_allowed
    22002null_value_no_indicator_parameter
    22003numeric_value_out_of_range
    2200Hsequence_generator_limit_exceeded
    22026string_data_length_mismatch
    22001string_data_right_truncation
    22011substring_error
    22027trim_error
    22024unterminated_c_string
    2200Fzero_length_character_string
    22P01floating_point_exception
    22P02invalid_text_representation
    22P03invalid_binary_representation
    22P04bad_copy_file_format
    22P05untranslatable_character
    2200Lnot_an_xml_document
    2200Minvalid_xml_document
    2200Ninvalid_xml_content
    2200Sinvalid_xml_comment
    2200Tinvalid_xml_processing_instruction
    22030duplicate_json_object_key_value
    22031invalid_argument_for_sql_json_datetime_function
    22032invalid_json_text
    22033invalid_sql_json_subscript
    22034more_than_one_sql_json_item
    22035no_sql_json_item
    22036non_numeric_sql_json_item
    22037non_unique_keys_in_a_json_object
    22038singleton_sql_json_item_required
    22039sql_json_array_not_found
    2203Asql_json_member_not_found
    2203Bsql_json_number_not_found
    2203Csql_json_object_not_found
    2203Dtoo_many_json_array_elements
    2203Etoo_many_json_object_members
    2203Fsql_json_scalar_required
    Class 23 — Integrity Constraint Violation
    23000integrity_constraint_violation
    23001restrict_violation
    23502not_null_violation
    23503foreign_key_violation
    23505unique_violation
    23514check_violation
    23P01exclusion_violation
    Class 24 — Invalid Cursor State
    24000invalid_cursor_state
    Class 25 — Invalid Transaction State
    25000invalid_transaction_state
    25001active_sql_transaction
    25002branch_transaction_already_active
    25008held_cursor_requires_same_isolation_level
    25003inappropriate_access_mode_for_branch_transaction
    25004inappropriate_isolation_level_for_branch_transaction
    25005no_active_sql_transaction_for_branch_transaction
    25006read_only_sql_transaction
    25007schema_and_data_statement_mixing_not_supported
    25P01no_active_sql_transaction
    25P02in_failed_sql_transaction
    25P03idle_in_transaction_session_timeout
    Class 26 — Invalid SQL Statement Name
    26000invalid_sql_statement_name
    Class 27 — Triggered Data Change Violation
    27000triggered_data_change_violation
    Class 28 — Invalid Authorization Specification
    28000invalid_authorization_specification
    28P01invalid_password
    Class 2B — Dependent Privilege Descriptors Still Exist
    2B000dependent_privilege_descriptors_still_exist
    2BP01dependent_objects_still_exist
    Class 2D — Invalid Transaction Termination
    2D000invalid_transaction_termination
    Class 2F — SQL Routine Exception
    2F000sql_routine_exception
    2F005function_executed_no_return_statement
    2F002modifying_sql_data_not_permitted
    2F003prohibited_sql_statement_attempted
    2F004reading_sql_data_not_permitted
    Class 34 — Invalid Cursor Name
    34000invalid_cursor_name
    Class 38 — External Routine Exception
    38000external_routine_exception
    38001containing_sql_not_permitted
    38002modifying_sql_data_not_permitted
    38003prohibited_sql_statement_attempted
    38004reading_sql_data_not_permitted
    Class 39 — External Routine Invocation Exception
    39000external_routine_invocation_exception
    39001invalid_sqlstate_returned
    39004null_value_not_allowed
    39P01trigger_protocol_violated
    39P02srf_protocol_violated
    39P03event_trigger_protocol_violated
    Class 3B — Savepoint Exception
    3B000savepoint_exception
    3B001invalid_savepoint_specification
    Class 3D — Invalid Catalog Name
    3D000invalid_catalog_name
    Class 3F — Invalid Schema Name
    3F000invalid_schema_name
    Class 40 — Transaction Rollback
    40000transaction_rollback
    40002transaction_integrity_constraint_violation
    40001serialization_failure
    40003statement_completion_unknown
    40P01deadlock_detected
    Class 42 — Syntax Error or Access Rule Violation
    42000syntax_error_or_access_rule_violation
    42601syntax_error
    42501insufficient_privilege
    42846cannot_coerce
    42803grouping_error
    42P20windowing_error
    42P19invalid_recursion
    42830invalid_foreign_key
    42602invalid_name
    42622name_too_long
    42939reserved_name
    42804datatype_mismatch
    42P18indeterminate_datatype
    42P21collation_mismatch
    42P22indeterminate_collation
    42809wrong_object_type
    428C9generated_always
    42703undefined_column
    42883undefined_function
    42P01undefined_table
    42P02undefined_parameter
    42704undefined_object
    42701duplicate_column
    42P03duplicate_cursor
    42P04duplicate_database
    42723duplicate_function
    42P05duplicate_prepared_statement
    42P06duplicate_schema
    42P07duplicate_table
    42712duplicate_alias
    42710duplicate_object
    42702ambiguous_column
    42725ambiguous_function
    42P08ambiguous_parameter
    42P09ambiguous_alias
    42P10invalid_column_reference
    42611invalid_column_definition
    42P11invalid_cursor_definition
    42P12invalid_database_definition
    42P13invalid_function_definition
    42P14invalid_prepared_statement_definition
    42P15invalid_schema_definition
    42P16invalid_table_definition
    42P17invalid_object_definition
    Class 44 — WITH CHECK OPTION Violation
    44000with_check_option_violation
    Class 53 — Insufficient Resources
    53000insufficient_resources
    53100disk_full
    53200out_of_memory
    53300too_many_connections
    53400configuration_limit_exceeded
    Class 54 — Program Limit Exceeded
    54000program_limit_exceeded
    54001statement_too_complex
    54011too_many_columns
    54023too_many_arguments
    Class 55 — Object Not In Prerequisite State
    55000object_not_in_prerequisite_state
    55006object_in_use
    55P02cant_change_runtime_param
    55P03lock_not_available
    55P04unsafe_new_enum_value_usage
    Class 57 — Operator Intervention
    57000operator_intervention
    57014query_canceled
    57P01admin_shutdown
    57P02crash_shutdown
    57P03cannot_connect_now
    57P04database_dropped
    Class 58 — System Error (errors external to PostgreSQL itself)
    58000system_error
    58030io_error
    58P01undefined_file
    58P02duplicate_file
    Class 72 — Snapshot Failure
    72000snapshot_too_old
    Class F0 — Configuration File Error
    F0000config_file_error
    F0001lock_file_exists
    Class HV — Foreign Data Wrapper Error (SQL/MED)
    HV000fdw_error
    HV005fdw_column_name_not_found
    HV002fdw_dynamic_parameter_value_needed
    HV010fdw_function_sequence_error
    HV021fdw_inconsistent_descriptor_information
    HV024fdw_invalid_attribute_value
    HV007fdw_invalid_column_name
    HV008fdw_invalid_column_number
    HV004fdw_invalid_data_type
    HV006fdw_invalid_data_type_descriptors
    HV091fdw_invalid_descriptor_field_identifier
    HV00Bfdw_invalid_handle
    HV00Cfdw_invalid_option_index
    HV00Dfdw_invalid_option_name
    HV090fdw_invalid_string_length_or_buffer_length
    HV00Afdw_invalid_string_format
    HV009fdw_invalid_use_of_null_pointer
    HV014fdw_too_many_handles
    HV001fdw_out_of_memory
    HV00Pfdw_no_schemas
    HV00Jfdw_option_name_not_found
    HV00Kfdw_reply_handle
    HV00Qfdw_schema_not_found
    HV00Rfdw_table_not_found
    HV00Lfdw_unable_to_create_execution
    HV00Mfdw_unable_to_create_reply
    HV00Nfdw_unable_to_establish_connection
    Class P0 — PL/pgSQL Error
    P0000plpgsql_error
    P0001raise_exception
    P0002no_data_found
    P0003too_many_rows
    P0004assert_failure
    Class XX — Internal Error
    XX000internal_error
    XX001data_corrupted
    XX002index_corrupted

    \ No newline at end of file +

    Table A.1. PostgreSQL Error Codes

    Error CodeCondition Name
    Class 00 — Successful Completion
    00000successful_completion
    Class 01 — Warning
    01000warning
    0100Cdynamic_result_sets_returned
    01008implicit_zero_bit_padding
    01003null_value_eliminated_in_set_function
    01007privilege_not_granted
    01006privilege_not_revoked
    01004string_data_right_truncation
    01P01deprecated_feature
    Class 02 — No Data (this is also a warning class per the SQL standard)
    02000no_data
    02001no_additional_dynamic_result_sets_returned
    Class 03 — SQL Statement Not Yet Complete
    03000sql_statement_not_yet_complete
    Class 08 — Connection Exception
    08000connection_exception
    08003connection_does_not_exist
    08006connection_failure
    08001sqlclient_unable_to_establish_sqlconnection
    08004sqlserver_rejected_establishment_of_sqlconnection
    08007transaction_resolution_unknown
    08P01protocol_violation
    Class 09 — Triggered Action Exception
    09000triggered_action_exception
    Class 0A — Feature Not Supported
    0A000feature_not_supported
    Class 0B — Invalid Transaction Initiation
    0B000invalid_transaction_initiation
    Class 0F — Locator Exception
    0F000locator_exception
    0F001invalid_locator_specification
    Class 0L — Invalid Grantor
    0L000invalid_grantor
    0LP01invalid_grant_operation
    Class 0P — Invalid Role Specification
    0P000invalid_role_specification
    Class 0Z — Diagnostics Exception
    0Z000diagnostics_exception
    0Z002stacked_diagnostics_accessed_without_active_handler
    Class 20 — Case Not Found
    20000case_not_found
    Class 21 — Cardinality Violation
    21000cardinality_violation
    Class 22 — Data Exception
    22000data_exception
    2202Earray_subscript_error
    22021character_not_in_repertoire
    22008datetime_field_overflow
    22012division_by_zero
    22005error_in_assignment
    2200Bescape_character_conflict
    22022indicator_overflow
    22015interval_field_overflow
    2201Einvalid_argument_for_logarithm
    22014invalid_argument_for_ntile_function
    22016invalid_argument_for_nth_value_function
    2201Finvalid_argument_for_power_function
    2201Ginvalid_argument_for_width_bucket_function
    22018invalid_character_value_for_cast
    22007invalid_datetime_format
    22019invalid_escape_character
    2200Dinvalid_escape_octet
    22025invalid_escape_sequence
    22P06nonstandard_use_of_escape_character
    22010invalid_indicator_parameter_value
    22023invalid_parameter_value
    22013invalid_preceding_or_following_size
    2201Binvalid_regular_expression
    2201Winvalid_row_count_in_limit_clause
    2201Xinvalid_row_count_in_result_offset_clause
    2202Hinvalid_tablesample_argument
    2202Ginvalid_tablesample_repeat
    22009invalid_time_zone_displacement_value
    2200Cinvalid_use_of_escape_character
    2200Gmost_specific_type_mismatch
    22004null_value_not_allowed
    22002null_value_no_indicator_parameter
    22003numeric_value_out_of_range
    2200Hsequence_generator_limit_exceeded
    22026string_data_length_mismatch
    22001string_data_right_truncation
    22011substring_error
    22027trim_error
    22024unterminated_c_string
    2200Fzero_length_character_string
    22P01floating_point_exception
    22P02invalid_text_representation
    22P03invalid_binary_representation
    22P04bad_copy_file_format
    22P05untranslatable_character
    2200Lnot_an_xml_document
    2200Minvalid_xml_document
    2200Ninvalid_xml_content
    2200Sinvalid_xml_comment
    2200Tinvalid_xml_processing_instruction
    22030duplicate_json_object_key_value
    22031invalid_argument_for_sql_json_datetime_function
    22032invalid_json_text
    22033invalid_sql_json_subscript
    22034more_than_one_sql_json_item
    22035no_sql_json_item
    22036non_numeric_sql_json_item
    22037non_unique_keys_in_a_json_object
    22038singleton_sql_json_item_required
    22039sql_json_array_not_found
    2203Asql_json_member_not_found
    2203Bsql_json_number_not_found
    2203Csql_json_object_not_found
    2203Dtoo_many_json_array_elements
    2203Etoo_many_json_object_members
    2203Fsql_json_scalar_required
    Class 23 — Integrity Constraint Violation
    23000integrity_constraint_violation
    23001restrict_violation
    23502not_null_violation
    23503foreign_key_violation
    23505unique_violation
    23514check_violation
    23P01exclusion_violation
    Class 24 — Invalid Cursor State
    24000invalid_cursor_state
    Class 25 — Invalid Transaction State
    25000invalid_transaction_state
    25001active_sql_transaction
    25002branch_transaction_already_active
    25008held_cursor_requires_same_isolation_level
    25003inappropriate_access_mode_for_branch_transaction
    25004inappropriate_isolation_level_for_branch_transaction
    25005no_active_sql_transaction_for_branch_transaction
    25006read_only_sql_transaction
    25007schema_and_data_statement_mixing_not_supported
    25P01no_active_sql_transaction
    25P02in_failed_sql_transaction
    25P03idle_in_transaction_session_timeout
    Class 26 — Invalid SQL Statement Name
    26000invalid_sql_statement_name
    Class 27 — Triggered Data Change Violation
    27000triggered_data_change_violation
    Class 28 — Invalid Authorization Specification
    28000invalid_authorization_specification
    28P01invalid_password
    Class 2B — Dependent Privilege Descriptors Still Exist
    2B000dependent_privilege_descriptors_still_exist
    2BP01dependent_objects_still_exist
    Class 2D — Invalid Transaction Termination
    2D000invalid_transaction_termination
    Class 2F — SQL Routine Exception
    2F000sql_routine_exception
    2F005function_executed_no_return_statement
    2F002modifying_sql_data_not_permitted
    2F003prohibited_sql_statement_attempted
    2F004reading_sql_data_not_permitted
    Class 34 — Invalid Cursor Name
    34000invalid_cursor_name
    Class 38 — External Routine Exception
    38000external_routine_exception
    38001containing_sql_not_permitted
    38002modifying_sql_data_not_permitted
    38003prohibited_sql_statement_attempted
    38004reading_sql_data_not_permitted
    Class 39 — External Routine Invocation Exception
    39000external_routine_invocation_exception
    39001invalid_sqlstate_returned
    39004null_value_not_allowed
    39P01trigger_protocol_violated
    39P02srf_protocol_violated
    39P03event_trigger_protocol_violated
    Class 3B — Savepoint Exception
    3B000savepoint_exception
    3B001invalid_savepoint_specification
    Class 3D — Invalid Catalog Name
    3D000invalid_catalog_name
    Class 3F — Invalid Schema Name
    3F000invalid_schema_name
    Class 40 — Transaction Rollback
    40000transaction_rollback
    40002transaction_integrity_constraint_violation
    40001serialization_failure
    40003statement_completion_unknown
    40P01deadlock_detected
    Class 42 — Syntax Error or Access Rule Violation
    42000syntax_error_or_access_rule_violation
    42601syntax_error
    42501insufficient_privilege
    42846cannot_coerce
    42803grouping_error
    42P20windowing_error
    42P19invalid_recursion
    42830invalid_foreign_key
    42602invalid_name
    42622name_too_long
    42939reserved_name
    42804datatype_mismatch
    42P18indeterminate_datatype
    42P21collation_mismatch
    42P22indeterminate_collation
    42809wrong_object_type
    428C9generated_always
    42703undefined_column
    42883undefined_function
    42P01undefined_table
    42P02undefined_parameter
    42704undefined_object
    42701duplicate_column
    42P03duplicate_cursor
    42P04duplicate_database
    42723duplicate_function
    42P05duplicate_prepared_statement
    42P06duplicate_schema
    42P07duplicate_table
    42712duplicate_alias
    42710duplicate_object
    42702ambiguous_column
    42725ambiguous_function
    42P08ambiguous_parameter
    42P09ambiguous_alias
    42P10invalid_column_reference
    42611invalid_column_definition
    42P11invalid_cursor_definition
    42P12invalid_database_definition
    42P13invalid_function_definition
    42P14invalid_prepared_statement_definition
    42P15invalid_schema_definition
    42P16invalid_table_definition
    42P17invalid_object_definition
    Class 44 — WITH CHECK OPTION Violation
    44000with_check_option_violation
    Class 53 — Insufficient Resources
    53000insufficient_resources
    53100disk_full
    53200out_of_memory
    53300too_many_connections
    53400configuration_limit_exceeded
    Class 54 — Program Limit Exceeded
    54000program_limit_exceeded
    54001statement_too_complex
    54011too_many_columns
    54023too_many_arguments
    Class 55 — Object Not In Prerequisite State
    55000object_not_in_prerequisite_state
    55006object_in_use
    55P02cant_change_runtime_param
    55P03lock_not_available
    55P04unsafe_new_enum_value_usage
    Class 57 — Operator Intervention
    57000operator_intervention
    57014query_canceled
    57P01admin_shutdown
    57P02crash_shutdown
    57P03cannot_connect_now
    57P04database_dropped
    Class 58 — System Error (errors external to PostgreSQL itself)
    58000system_error
    58030io_error
    58P01undefined_file
    58P02duplicate_file
    Class 72 — Snapshot Failure
    72000snapshot_too_old
    Class F0 — Configuration File Error
    F0000config_file_error
    F0001lock_file_exists
    Class HV — Foreign Data Wrapper Error (SQL/MED)
    HV000fdw_error
    HV005fdw_column_name_not_found
    HV002fdw_dynamic_parameter_value_needed
    HV010fdw_function_sequence_error
    HV021fdw_inconsistent_descriptor_information
    HV024fdw_invalid_attribute_value
    HV007fdw_invalid_column_name
    HV008fdw_invalid_column_number
    HV004fdw_invalid_data_type
    HV006fdw_invalid_data_type_descriptors
    HV091fdw_invalid_descriptor_field_identifier
    HV00Bfdw_invalid_handle
    HV00Cfdw_invalid_option_index
    HV00Dfdw_invalid_option_name
    HV090fdw_invalid_string_length_or_buffer_length
    HV00Afdw_invalid_string_format
    HV009fdw_invalid_use_of_null_pointer
    HV014fdw_too_many_handles
    HV001fdw_out_of_memory
    HV00Pfdw_no_schemas
    HV00Jfdw_option_name_not_found
    HV00Kfdw_reply_handle
    HV00Qfdw_schema_not_found
    HV00Rfdw_table_not_found
    HV00Lfdw_unable_to_create_execution
    HV00Mfdw_unable_to_create_reply
    HV00Nfdw_unable_to_establish_connection
    Class P0 — PL/pgSQL Error
    P0000plpgsql_error
    P0001raise_exception
    P0002no_data_found
    P0003too_many_rows
    P0004assert_failure
    Class XX — Internal Error
    XX000internal_error
    XX001data_corrupted
    XX002index_corrupted

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/error-message-reporting.html postgresql-13-13.7/doc/src/sgml/html/error-message-reporting.html --- postgresql-13-13.4/doc/src/sgml/html/error-message-reporting.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/error-message-reporting.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -53.2. Reporting Errors Within the Server

    53.2. Reporting Errors Within the Server

    +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 @@ -242,4 +242,4 @@ routines will not affect it. That would not be true if you were to write strerror(errno) explicitly in errmsg's parameter list; accordingly, do not do so. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/error-style-guide.html postgresql-13-13.7/doc/src/sgml/html/error-style-guide.html --- postgresql-13-13.4/doc/src/sgml/html/error-style-guide.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/error-style-guide.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -53.3. Error Message Style Guide

    53.3. Error Message Style Guide

    +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. @@ -247,4 +247,4 @@ Keep in mind that error message texts need to be translated into other languages. Follow the guidelines in Section 54.2.2 to avoid making life difficult for translators. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/event-log-registration.html postgresql-13-13.7/doc/src/sgml/html/event-log-registration.html --- postgresql-13-13.4/doc/src/sgml/html/event-log-registration.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/event-log-registration.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.12. Registering Event Log on Windows

    18.12. Registering Event Log on Windows

    +18.12. Registering Event Log on Windows

    18.12. Registering Event Log on Windows

    To register a Windows event log library with the operating system, issue this command: @@ -25,4 +25,4 @@ To enable event logging in the database server, modify log_destination to include eventlog in postgresql.conf. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/event-trigger-definition.html postgresql-13-13.7/doc/src/sgml/html/event-trigger-definition.html --- postgresql-13-13.4/doc/src/sgml/html/event-trigger-definition.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/event-trigger-definition.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -39.1. Overview of Event Trigger Behavior

    39.1. Overview of Event Trigger Behavior

    +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 @@ -75,4 +75,4 @@ trigger can be fired only for particular commands which the user wishes to intercept. A common use of such triggers is to restrict the range of DDL operations which users may perform. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/event-trigger-example.html postgresql-13-13.7/doc/src/sgml/html/event-trigger-example.html --- postgresql-13-13.4/doc/src/sgml/html/event-trigger-example.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/event-trigger-example.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -39.4. A Complete Event Trigger Example

    39.4. A Complete Event Trigger Example

    +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.) @@ -74,4 +74,4 @@

    (Recall that DDL commands on event triggers themselves are not affected by event triggers.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/event-trigger-interface.html postgresql-13-13.7/doc/src/sgml/html/event-trigger-interface.html --- postgresql-13-13.4/doc/src/sgml/html/event-trigger-interface.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/event-trigger-interface.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -39.3. Writing Event Trigger Functions in C

    39.3. Writing Event Trigger Functions in C

    +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 @@ -65,4 +65,4 @@ An event trigger function must return a NULL pointer (not an SQL null value, that is, do not set isNull true). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/event-trigger-matrix.html postgresql-13-13.7/doc/src/sgml/html/event-trigger-matrix.html --- postgresql-13-13.4/doc/src/sgml/html/event-trigger-matrix.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/event-trigger-matrix.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -39.2. Event Trigger Firing Matrix

    39.2. Event Trigger Firing Matrix

    +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 PROCEDUREXX-- 
    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 PROCEDUREXX-- 
    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 PROCEDUREXXX- 
    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 +

    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 PROCEDUREXX-- 
    ALTER PUBLICATIONXX-- 
    ALTER ROUTINEXX-- 
    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 PROCEDUREXX-- 
    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 PROCEDUREXXX- 
    DROP PUBLICATIONXXX- 
    DROP ROUTINEXXX- 
    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-13-13.4/doc/src/sgml/html/event-triggers.html postgresql-13-13.7/doc/src/sgml/html/event-triggers.html --- postgresql-13-13.4/doc/src/sgml/html/event-triggers.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/event-triggers.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 39. Event Triggers

    Chapter 39. Event Triggers

    +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, @@ -9,4 +9,4 @@ Like regular triggers, event triggers can be written in any procedural language that includes event trigger support, or in C, but not in plain SQL. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/event-trigger-table-rewrite-example.html postgresql-13-13.7/doc/src/sgml/html/event-trigger-table-rewrite-example.html --- postgresql-13-13.4/doc/src/sgml/html/event-trigger-table-rewrite-example.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/event-trigger-table-rewrite-example.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -39.5. A Table Rewrite Event Trigger Example

    39.5. A Table Rewrite Event Trigger Example

    +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.

    @@ -45,4 +45,4 @@ ON table_rewrite EXECUTE FUNCTION no_rewrite();

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/executor.html postgresql-13-13.7/doc/src/sgml/html/executor.html --- postgresql-13-13.4/doc/src/sgml/html/executor.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/executor.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -50.6. Executor

    50.6. Executor

    +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. @@ -66,5 +66,5 @@ A simple INSERT ... VALUES command creates a trivial plan tree consisting of a single Result node, which computes just one result row, feeding that up - toModifyTable to perform the insertion. -

    \ No newline at end of file + to ModifyTable to perform the insertion. +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/explicit-joins.html postgresql-13-13.7/doc/src/sgml/html/explicit-joins.html --- postgresql-13-13.4/doc/src/sgml/html/explicit-joins.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/explicit-joins.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -14.3. Controlling the Planner with Explicit JOIN Clauses

    14.3. Controlling the Planner with Explicit JOIN Clauses

    +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. @@ -141,4 +141,4 @@ to control join order with explicit joins). But you might set them differently if you are trying to fine-tune the trade-off between planning time and run time. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/explicit-locking.html postgresql-13-13.7/doc/src/sgml/html/explicit-locking.html --- postgresql-13-13.4/doc/src/sgml/html/explicit-locking.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/explicit-locking.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -13.3. Explicit Locking

    13.3. Explicit Locking

    +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 @@ -85,10 +85,12 @@

    Acquired by VACUUM (without FULL), ANALYZE, CREATE INDEX CONCURRENTLY, + CREATE STATISTICS, COMMENT ON, REINDEX CONCURRENTLY, - CREATE STATISTICS, and certain ALTER - INDEX and ALTER TABLE variants (for full - details see ALTER INDEX and ALTER TABLE). + and certain ALTER INDEX and + ALTER TABLE variants + (for full details see ALTER INDEX and + ALTER TABLE).

    SHARE

    @@ -389,4 +391,4 @@

    The functions provided to manipulate advisory locks are described in Section 9.27.10. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/extend-extensions.html postgresql-13-13.7/doc/src/sgml/html/extend-extensions.html --- postgresql-13-13.4/doc/src/sgml/html/extend-extensions.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/extend-extensions.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -37.17. Packaging Related Objects into an Extension

    37.17. Packaging Related Objects into an Extension

    +37.17. Packaging Related Objects into an Extension

    37.17. 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. @@ -632,4 +632,4 @@ Once the files are installed, use the CREATE EXTENSION command to load the objects into any particular database. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/extend-how.html postgresql-13-13.7/doc/src/sgml/html/extend-how.html --- postgresql-13-13.4/doc/src/sgml/html/extend-how.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/extend-how.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.1. How Extensibility Works

    37.1. How Extensibility Works

    +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 @@ -30,4 +30,4 @@ fly” makes PostgreSQL uniquely suited for rapid prototyping of new applications and storage structures. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/extend.html postgresql-13-13.7/doc/src/sgml/html/extend.html --- postgresql-13-13.4/doc/src/sgml/html/extend.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/extend.html 2022-05-09 21:29:15.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. Container Types
    37.2.3. Domains
    37.2.4. Pseudo-Types
    37.2.5. Polymorphic Types
    37.3. User-Defined Functions
    37.4. User-Defined Procedures
    37.5. Query Language (SQL) Functions
    37.5.1. Arguments for SQL Functions
    37.5.2. SQL Functions on Base Types
    37.5.3. SQL Functions on Composite Types
    37.5.4. SQL Functions with Output Parameters
    37.5.5. SQL Functions with Variable Numbers of Arguments
    37.5.6. SQL Functions with Default Values for Arguments
    37.5.7. SQL Functions as Table Sources
    37.5.8. SQL Functions Returning Sets
    37.5.9. SQL Functions Returning TABLE
    37.5.10. Polymorphic SQL Functions
    37.5.11. SQL Functions with Collations
    37.6. Function Overloading
    37.7. Function Volatility Categories
    37.8. Procedural Language Functions
    37.9. Internal Functions
    37.10. C-Language Functions
    37.10.1. Dynamic Loading
    37.10.2. Base Types in C-Language Functions
    37.10.3. Version 1 Calling Conventions
    37.10.4. Writing Code
    37.10.5. Compiling and Linking Dynamically-Loaded Functions
    37.10.6. Composite-Type Arguments
    37.10.7. Returning Rows (Composite Types)
    37.10.8. Returning Sets
    37.10.9. Polymorphic Arguments and Return Types
    37.10.10. Shared Memory and LWLocks
    37.10.11. Using C++ for Extensibility
    37.11. Function Optimization Information
    37.12. User-Defined Aggregates
    37.12.1. Moving-Aggregate Mode
    37.12.2. Polymorphic and Variadic Aggregates
    37.12.3. Ordered-Set Aggregates
    37.12.4. Partial Aggregation
    37.12.5. Support Functions for Aggregates
    37.13. User-Defined Types
    37.13.1. TOAST Considerations
    37.14. User-Defined Operators
    37.15. Operator Optimization Information
    37.15.1. COMMUTATOR
    37.15.2. NEGATOR
    37.15.3. RESTRICT
    37.15.4. JOIN
    37.15.5. HASHES
    37.15.6. MERGES
    37.16. Interfacing Extensions to Indexes
    37.16.1. Index Methods and Operator Classes
    37.16.2. Index Method Strategies
    37.16.3. Index Method Support Routines
    37.16.4. An Example
    37.16.5. Operator Classes and Operator Families
    37.16.6. System Dependencies on Operator Classes
    37.16.7. Ordering Operators
    37.16.8. Special Features of Operator Classes
    37.17. Packaging Related Objects into an Extension
    37.17.1. Extension Files
    37.17.2. Extension Relocatability
    37.17.3. Extension Configuration Tables
    37.17.4. Extension Updates
    37.17.5. Installing Extensions Using Update Scripts
    37.17.6. Security Considerations for Extensions
    37.17.7. Extension Example
    37.18. Extension Building Infrastructure

    +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. Container Types
    37.2.3. Domains
    37.2.4. Pseudo-Types
    37.2.5. Polymorphic Types
    37.3. User-Defined Functions
    37.4. User-Defined Procedures
    37.5. Query Language (SQL) Functions
    37.5.1. Arguments for SQL Functions
    37.5.2. SQL Functions on Base Types
    37.5.3. SQL Functions on Composite Types
    37.5.4. SQL Functions with Output Parameters
    37.5.5. SQL Functions with Variable Numbers of Arguments
    37.5.6. SQL Functions with Default Values for Arguments
    37.5.7. SQL Functions as Table Sources
    37.5.8. SQL Functions Returning Sets
    37.5.9. SQL Functions Returning TABLE
    37.5.10. Polymorphic SQL Functions
    37.5.11. SQL Functions with Collations
    37.6. Function Overloading
    37.7. Function Volatility Categories
    37.8. Procedural Language Functions
    37.9. Internal Functions
    37.10. C-Language Functions
    37.10.1. Dynamic Loading
    37.10.2. Base Types in C-Language Functions
    37.10.3. Version 1 Calling Conventions
    37.10.4. Writing Code
    37.10.5. Compiling and Linking Dynamically-Loaded Functions
    37.10.6. Composite-Type Arguments
    37.10.7. Returning Rows (Composite Types)
    37.10.8. Returning Sets
    37.10.9. Polymorphic Arguments and Return Types
    37.10.10. Shared Memory and LWLocks
    37.10.11. Using C++ for Extensibility
    37.11. Function Optimization Information
    37.12. User-Defined Aggregates
    37.12.1. Moving-Aggregate Mode
    37.12.2. Polymorphic and Variadic Aggregates
    37.12.3. Ordered-Set Aggregates
    37.12.4. Partial Aggregation
    37.12.5. Support Functions for Aggregates
    37.13. User-Defined Types
    37.13.1. TOAST Considerations
    37.14. User-Defined Operators
    37.15. Operator Optimization Information
    37.15.1. COMMUTATOR
    37.15.2. NEGATOR
    37.15.3. RESTRICT
    37.15.4. JOIN
    37.15.5. HASHES
    37.15.6. MERGES
    37.16. Interfacing Extensions to Indexes
    37.16.1. Index Methods and Operator Classes
    37.16.2. Index Method Strategies
    37.16.3. Index Method Support Routines
    37.16.4. An Example
    37.16.5. Operator Classes and Operator Families
    37.16.6. System Dependencies on Operator Classes
    37.16.7. Ordering Operators
    37.16.8. Special Features of Operator Classes
    37.17. Packaging Related Objects into an Extension
    37.17.1. Extension Files
    37.17.2. Extension Relocatability
    37.17.3. Extension Configuration Tables
    37.17.4. Extension Updates
    37.17.5. Installing Extensions Using Update Scripts
    37.17.6. Security Considerations for Extensions
    37.17.7. Extension Example
    37.18. Extension Building Infrastructure

    In the sections that follow, we will discuss how you can extend the PostgreSQL SQL query language by adding: @@ -17,4 +17,4 @@

  • packages of related objects (starting in Section 37.17)

  • -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/extend-pgxs.html postgresql-13-13.7/doc/src/sgml/html/extend-pgxs.html --- postgresql-13-13.4/doc/src/sgml/html/extend-pgxs.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/extend-pgxs.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -37.18. Extension Building Infrastructure

    37.18. Extension Building Infrastructure

    +37.18. Extension Building Infrastructure

    37.18. 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 @@ -224,4 +224,4 @@ output_iso/results/ directory (for tests in ISOLATION), then copy them to expected/ if they match what you expect from the test. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/extend-type-system.html postgresql-13-13.7/doc/src/sgml/html/extend-type-system.html --- postgresql-13-13.4/doc/src/sgml/html/extend-type-system.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/extend-type-system.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.2. The PostgreSQL Type System

    37.2. The PostgreSQL Type System

    +37.2. The PostgreSQL Type System

    37.2. The PostgreSQL Type System

    PostgreSQL data types can be divided into base types, container types, domains, and pseudo-types.

    37.2.1. Base Types

    @@ -204,4 +204,4 @@ the same as if you had written the appropriate number of anynonarray or anycompatiblenonarray parameters. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/external-admin-tools.html postgresql-13-13.7/doc/src/sgml/html/external-admin-tools.html --- postgresql-13-13.4/doc/src/sgml/html/external-admin-tools.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/external-admin-tools.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,7 +1,7 @@ -H.2. Administration Tools

    H.2. Administration Tools

    +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. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/external-extensions.html postgresql-13-13.7/doc/src/sgml/html/external-extensions.html --- postgresql-13-13.4/doc/src/sgml/html/external-extensions.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/external-extensions.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -H.4. Extensions

    H.4. Extensions

    +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 @@ -11,4 +11,4 @@ externally. For example, Slony-I is a popular master/standby replication solution that is developed independently from the core project. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/external-interfaces.html postgresql-13-13.7/doc/src/sgml/html/external-interfaces.html --- postgresql-13-13.4/doc/src/sgml/html/external-interfaces.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/external-interfaces.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -H.1. Client Interfaces

    H.1. Client Interfaces

    +H.1. Client Interfaces

    H.1. Client Interfaces

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

    \ No newline at end of file +

    Table H.1. Externally Maintained Client Interfaces

    NameLanguageCommentsWebsite
    DBD::PgPerlPerl DBI driverhttps://metacpan.org/release/DBD-Pg
    JDBCJavaType 4 JDBC driverhttps://jdbc.postgresql.org/
    libpqxxC++C++ interfacehttps://pqxx.org/
    node-postgresJavaScriptNode.js driverhttps://node-postgres.com/
    Npgsql.NET.NET data providerhttps://www.npgsql.org/
    pgtclTcl https://github.com/flightaware/Pgtcl
    pgtclngTcl https://sourceforge.net/projects/pgtclng/
    pqGoPure Go driver for Go's database/sqlhttps://github.com/lib/pq
    psqlODBCODBCODBC driverhttps://odbc.postgresql.org/
    psycopgPythonDB API 2.0-complianthttps://www.psycopg.org/

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/external-pl.html postgresql-13-13.7/doc/src/sgml/html/external-pl.html --- postgresql-13-13.4/doc/src/sgml/html/external-pl.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/external-pl.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -H.3. Procedural Languages

    H.3. Procedural Languages

    +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. @@ -11,4 +11,4 @@ license as PostgreSQL. For more information on each procedural language, including licensing information, refer to its website and documentation. -

    Table H.2. Externally Maintained Procedural Languages


    \ No newline at end of file +

    Table H.2. Externally Maintained Procedural Languages


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/external-projects.html postgresql-13-13.7/doc/src/sgml/html/external-projects.html --- postgresql-13-13.4/doc/src/sgml/html/external-projects.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/external-projects.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,7 +1,7 @@ -Appendix H. External Projects

    Appendix H. External Projects

    +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. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/fdw-callbacks.html postgresql-13-13.7/doc/src/sgml/html/fdw-callbacks.html --- postgresql-13-13.4/doc/src/sgml/html/fdw-callbacks.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/fdw-callbacks.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -56.2. Foreign Data Wrapper Callback Routines \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/fdw-functions.html postgresql-13-13.7/doc/src/sgml/html/fdw-functions.html --- postgresql-13-13.4/doc/src/sgml/html/fdw-functions.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/fdw-functions.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -56.1. Foreign Data Wrapper Functions

    56.1. Foreign Data Wrapper Functions

    +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. @@ -33,4 +33,4 @@ or ForeignTableRelationId). If no validator function is supplied, options are not checked at object creation time or object alteration time. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/fdwhandler.html postgresql-13-13.7/doc/src/sgml/html/fdwhandler.html --- postgresql-13-13.4/doc/src/sgml/html/fdwhandler.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/fdwhandler.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 56. Writing a Foreign Data Wrapper

    Chapter 56. Writing a Foreign Data Wrapper

    +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 @@ -18,4 +18,4 @@ However, PostgreSQL does not implement that API, because the effort to accommodate it into PostgreSQL would be large, and the standard API hasn't gained wide adoption anyway. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/fdw-helpers.html postgresql-13-13.7/doc/src/sgml/html/fdw-helpers.html --- postgresql-13-13.4/doc/src/sgml/html/fdw-helpers.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/fdw-helpers.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -56.3. Foreign Data Wrapper Helper Functions

    56.3. Foreign Data Wrapper Helper Functions

    +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. @@ -111,4 +111,4 @@ This function returns a ForeignServer object for the foreign server with the given name. If the server is not found, return NULL if missing_ok is true, otherwise raise an error. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/fdw-planning.html postgresql-13-13.7/doc/src/sgml/html/fdw-planning.html --- postgresql-13-13.4/doc/src/sgml/html/fdw-planning.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/fdw-planning.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -56.4. Foreign Data Wrapper Query Planning

    56.4. Foreign Data Wrapper Query Planning

    +56.4. Foreign Data Wrapper Query Planning

    56.4. Foreign Data Wrapper Query Planning

    The FDW callback functions GetForeignRelSize, GetForeignPaths, GetForeignPlan, PlanForeignModify, GetForeignJoinPaths, @@ -188,4 +188,4 @@ exclusion constraints on remote tables are not locally known. This in turn implies that ON CONFLICT DO UPDATE is not supported, since the specification is mandatory there. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/fdw-row-locking.html postgresql-13-13.7/doc/src/sgml/html/fdw-row-locking.html --- postgresql-13-13.4/doc/src/sgml/html/fdw-row-locking.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/fdw-row-locking.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -56.5. Row Locking in Foreign Data Wrappers

    56.5. Row Locking in Foreign Data Wrappers

    +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 @@ -90,4 +90,4 @@ in src/include/nodes/plannodes.h, and the comments for ExecRowMark in src/include/nodes/execnodes.h for additional information. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/features.html postgresql-13-13.7/doc/src/sgml/html/features.html --- postgresql-13-13.4/doc/src/sgml/html/features.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/features.html 2022-05-09 21:29:29.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix D. SQL Conformance

    Appendix D. SQL Conformance

    +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 @@ -70,4 +70,4 @@ Feature codes containing a hyphen are subfeatures. Therefore, if a particular subfeature is not supported, the main feature is listed as unsupported even if some other subfeatures are supported. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/features-sql-standard.html postgresql-13-13.7/doc/src/sgml/html/features-sql-standard.html --- postgresql-13-13.4/doc/src/sgml/html/features-sql-standard.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/features-sql-standard.html 2022-05-09 21:29:29.000000000 +0000 @@ -1,4 +1,4 @@ -D.1. Supported Features

    D.1. Supported Features

    +D.1. Supported Features

    D.1. Supported Features

    IdentifierCore?DescriptionComment
    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 
    E182CoreHost language binding 
    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 
    F052 Intervals 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 
    F181CoreMultiple module support 
    F191 Referential 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 
    F311CoreSchema definition statement 
    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 
    F385 Drop column generation expression clause 
    F386 Set identity column generation clause 
    F391 Long identifiers 
    F392 Unicode escapes in identifiers 
    F393 Unicode escapes in literals 
    F394 Optional normal form specification 
    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 
    F411 Time 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 
    F491 Constraint management 
    F501CoreFeatures and conformance views 
    F501-01CoreSQL_FEATURES view 
    F501-02CoreSQL_SIZING view 
    F502 Enhanced documentation tables 
    F531 Temporary tables 
    F555 Enhanced 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 
    F701 Referential 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> 
    F867 FETCH FIRST clause: WITH TIES option 
    S071 SQL 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 
    S111 ONLY in query expressions 
    S201 SQL-invoked routines on arrays 
    S201-01 Array parameters 
    S201-02 Array as result type of functions 
    S211 User-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 
    T191 Referential action RESTRICT 
    T201 Comparable data types for referential constraints 
    T211-01 Triggers activated on UPDATE, INSERT, or DELETE of one base table 
    T211-02 BEFORE triggers 
    T211-03 AFTER triggers 
    T211-04 FOR EACH ROW triggers 
    T211-05 Ability to specify a search condition that must be true before the trigger is invoked 
    T211-07 TRIGGER privilege 
    T212 Enhanced trigger capability 
    T213 INSTEAD OF triggers 
    T231 Sensitive cursors 
    T241 START TRANSACTION statement 
    T261 Chained transactions 
    T271 Savepoints 
    T281 SELECT privilege with column granularity 
    T285 Enhanced derived column names 
    T312 OVERLAY function 
    T321-01CoreUser-defined functions with no overloading 
    T321-02CoreUser-defined stored procedures with no overloading 
    T321-03CoreFunction invocation 
    T321-04CoreCALL statement 
    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) 
    T431 Extended 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 
    T521 Named arguments in CALL statement 
    T523 Default values for INOUT parameters of SQL-invoked procedures 
    T524 Named arguments in routine invocations other than a CALL statement 
    T525 Default values for parameters of SQL-invoked functions 
    T551 Optional key words for default syntax 
    T581 Regular expression substring function 
    T591 UNIQUE constraints of possibly null columns 
    T611 Elementary OLAP operations 
    T612 Advanced OLAP operations 
    T613 Sampling 
    T614 NTILE function 
    T615 LEAD and LAG functions 
    T617 FIRST_VALUE and LAST_VALUE function 
    T620 WINDOW clause: GROUPS option 
    T621 Enhanced numeric functions 
    T622 Trigonometric functions 
    T623 General logarithm functions 
    T624 Common logarithm functions 
    T631CoreIN predicate with one list element 
    T651 SQL-schema statements in SQL routines 
    T653 SQL-schema statements in external routines 
    T655 Cyclically dependent routines 
    T831 SQL/JSON path language: strict mode 
    T832 SQL/JSON path language: item method 
    T833 SQL/JSON path language: multiple subscripts 
    T834 SQL/JSON path language: wildcard member accessor 
    T835 SQL/JSON path language: filter expressions 
    T836 SQL/JSON path language: starts with predicate 
    T837 SQL/JSON path language: regex_like predicate 
    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 
    X221 XML passing mechanism BY VALUE 
    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 +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/file-fdw.html postgresql-13-13.7/doc/src/sgml/html/file-fdw.html --- postgresql-13-13.4/doc/src/sgml/html/file-fdw.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/file-fdw.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.14. file_fdw

    F.14. file_fdw

    +F.14. file_fdw

    F.14. 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 @@ -140,4 +140,4 @@

    That's it — now you can query your log directly. In production, of course, you would need to define some way to deal with log rotation. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-admin.html postgresql-13-13.7/doc/src/sgml/html/functions-admin.html --- postgresql-13-13.4/doc/src/sgml/html/functions-admin.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-admin.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -9.27. System Administration Functions

    9.27. System Administration Functions

    +9.27. System Administration Functions

    9.27. System Administration Functions

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

    9.27.1. Configuration Settings Functions

    @@ -747,7 +747,8 @@

    Looks up a replication origin by name and returns the internal ID. If - no such replication origin is found an error is thrown. + no such replication origin is found, NULL is + returned.

    pg_replication_origin_session_setup ( node_name text ) @@ -1524,4 +1525,4 @@ This will either obtain the lock immediately and return true, or return false without waiting if the lock cannot be acquired immediately. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-aggregate.html postgresql-13-13.7/doc/src/sgml/html/functions-aggregate.html --- postgresql-13-13.4/doc/src/sgml/html/functions-aggregate.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-aggregate.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.21. Aggregate Functions

    9.21. Aggregate Functions

    +9.21. Aggregate Functions

    9.21. 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.55 @@ -680,4 +680,4 @@ neither make nor model was grouped by in the last row (which therefore is an aggregate over all the input rows). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-array.html postgresql-13-13.7/doc/src/sgml/html/functions-array.html --- postgresql-13-13.4/doc/src/sgml/html/functions-array.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-array.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.19. Array Functions and Operators

    9.19. Array Functions and Operators

    +9.19. Array Functions and Operators

    9.19. Array Functions and Operators

    Table 9.51 shows the specialized operators available for array types. In addition to those, the usual comparison operators shown in Table 9.1 are available for @@ -390,4 +390,4 @@

    See also Section 9.21 about the aggregate function array_agg for use with arrays. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-binarystring.html postgresql-13-13.7/doc/src/sgml/html/functions-binarystring.html --- postgresql-13-13.4/doc/src/sgml/html/functions-binarystring.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-binarystring.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.5. Binary String Functions and Operators

    9.5. Binary String Functions and Operators

    +9.5. Binary String Functions and Operators

    9.5. Binary String Functions and Operators

    This section describes functions and operators for examining and manipulating binary strings, that is values of type bytea. Many of these are equivalent, in purpose and syntax, to the @@ -465,4 +465,4 @@ See also the aggregate function string_agg in Section 9.21 and the large object functions in Section 34.4. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-bitstring.html postgresql-13-13.7/doc/src/sgml/html/functions-bitstring.html --- postgresql-13-13.4/doc/src/sgml/html/functions-bitstring.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-bitstring.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.6. Bit String Functions and Operators

    9.6. Bit String Functions and Operators

    +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. (While only @@ -220,4 +220,4 @@ Note that casting to just bit means casting to bit(1), and so will deliver only the least significant bit of the integer. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-comparison.html postgresql-13-13.7/doc/src/sgml/html/functions-comparison.html --- postgresql-13-13.4/doc/src/sgml/html/functions-comparison.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-comparison.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.2. Comparison Functions and Operators

    9.2. Comparison Functions and Operators

    +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
    datatype < datatype @@ -397,4 +397,4 @@

    num_nulls(1, NULL, 2)1 -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-comparisons.html postgresql-13-13.7/doc/src/sgml/html/functions-comparisons.html --- postgresql-13-13.4/doc/src/sgml/html/functions-comparisons.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-comparisons.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.24. Row and Array Comparisons

    9.24. Row and Array Comparisons

    +9.24. Row and Array Comparisons

    9.24. 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, @@ -210,4 +210,4 @@ for materialized views and might be useful for other specialized purposes such as replication and B-Tree deduplication (see Section 63.4.2). They are not intended to be generally useful for writing queries, though. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-conditional.html postgresql-13-13.7/doc/src/sgml/html/functions-conditional.html --- postgresql-13-13.4/doc/src/sgml/html/functions-conditional.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-conditional.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.18. Conditional Expressions

    9.18. Conditional Expressions

    +9.18. Conditional Expressions

    9.18. Conditional Expressions

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

    Tip

    @@ -184,4 +184,4 @@ the SQL standard, but are a common extension. Some other databases make them return NULL if any argument is NULL, rather than only when all are NULL. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-datetime.html postgresql-13-13.7/doc/src/sgml/html/functions-datetime.html --- postgresql-13-13.4/doc/src/sgml/html/functions-datetime.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-datetime.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.9. Date/Time Functions and Operators

    9.9. Date/Time Functions and Operators

    +9.9. Date/Time Functions and Operators

    9.9. Date/Time Functions and Operators

    Table 9.32 shows the available functions for date/time value processing, with details appearing in the following subsections. Table 9.31 illustrates the behaviors of @@ -1259,4 +1259,4 @@ when calling pg_sleep or its variants. Otherwise other sessions might have to wait for your sleeping process, slowing down the entire system. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-enum.html postgresql-13-13.7/doc/src/sgml/html/functions-enum.html --- postgresql-13-13.4/doc/src/sgml/html/functions-enum.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-enum.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.10. Enum Support Functions

    9.10. Enum Support Functions

    +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. @@ -81,4 +81,4 @@ the type can be passed, with the same result. It is more common to apply these functions to a table column or function argument than to a hardwired type name as used in the examples. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-event-triggers.html postgresql-13-13.7/doc/src/sgml/html/functions-event-triggers.html --- postgresql-13-13.4/doc/src/sgml/html/functions-event-triggers.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-event-triggers.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -9.29. Event Trigger Functions

    9.29. Event Trigger Functions

    +9.29. Event Trigger Functions

    9.29. Event Trigger Functions

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

    @@ -130,4 +130,4 @@ ON table_rewrite EXECUTE FUNCTION test_event_trigger_table_rewrite_oid();

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-formatting.html postgresql-13-13.7/doc/src/sgml/html/functions-formatting.html --- postgresql-13-13.4/doc/src/sgml/html/functions-formatting.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-formatting.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.8. Data Type Formatting Functions

    9.8. Data Type 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 @@ -403,4 +403,4 @@

    Table 9.29. Template Pattern Modifiers for Numeric Formatting

    ModifierDescriptionExample
    FM prefixfill mode (suppress trailing zeroes and padding blanks)FM99.99
    TH suffixupper case ordinal number suffix999TH
    th suffixlower case ordinal number suffix999th

    Table 9.30 shows some examples of the use of the to_char function. -

    Table 9.30. to_char Examples

    ExpressionResult
    to_char(current_timestamp, 'Day, DD  HH12:MI:SS')'Tuesday  , 06  05:39:18'
    to_char(current_timestamp, 'FMDay, FMDD  HH12:MI:SS')'Tuesday, 6  05:39:18'
    to_char(-0.1, '99.99')'  -.10'
    to_char(-0.1, 'FM9.99')'-.1'
    to_char(-0.1, 'FM90.99')'-0.1'
    to_char(0.1, '0.9')' 0.1'
    to_char(12, '9990999.9')'    0012.0'
    to_char(12, 'FM9990999.9')'0012.'
    to_char(485, '999')' 485'
    to_char(-485, '999')'-485'
    to_char(485, '9 9 9')' 4 8 5'
    to_char(1485, '9,999')' 1,485'
    to_char(1485, '9G999')' 1 485'
    to_char(148.5, '999.999')' 148.500'
    to_char(148.5, 'FM999.999')'148.5'
    to_char(148.5, 'FM999.990')'148.500'
    to_char(148.5, '999D999')' 148,500'
    to_char(3148.5, '9G999D999')' 3 148,500'
    to_char(-485, '999S')'485-'
    to_char(-485, '999MI')'485-'
    to_char(485, '999MI')'485 '
    to_char(485, 'FM999MI')'485'
    to_char(485, 'PL999')'+485'
    to_char(485, 'SG999')'+485'
    to_char(-485, 'SG999')'-485'
    to_char(-485, '9SG99')'4-85'
    to_char(-485, '999PR')'<485>'
    to_char(485, 'L999')'DM 485'
    to_char(485, 'RN')'        CDLXXXV'
    to_char(485, 'FMRN')'CDLXXXV'
    to_char(5.2, 'FMRN')'V'
    to_char(482, '999th')' 482nd'
    to_char(485, '"Good number:"999')'Good number: 485'
    to_char(485.8, '"Pre:"999" Post:" .999')'Pre: 485 Post: .800'
    to_char(12, '99V999')' 12000'
    to_char(12.4, '99V999')' 12400'
    to_char(12.45, '99V9')' 125'
    to_char(0.0004859, '9.99EEEE')' 4.86e-04'

    \ No newline at end of file +

    Table 9.30. to_char Examples

    ExpressionResult
    to_char(current_timestamp, 'Day, DD  HH12:MI:SS')'Tuesday  , 06  05:39:18'
    to_char(current_timestamp, 'FMDay, FMDD  HH12:MI:SS')'Tuesday, 6  05:39:18'
    to_char(-0.1, '99.99')'  -.10'
    to_char(-0.1, 'FM9.99')'-.1'
    to_char(-0.1, 'FM90.99')'-0.1'
    to_char(0.1, '0.9')' 0.1'
    to_char(12, '9990999.9')'    0012.0'
    to_char(12, 'FM9990999.9')'0012.'
    to_char(485, '999')' 485'
    to_char(-485, '999')'-485'
    to_char(485, '9 9 9')' 4 8 5'
    to_char(1485, '9,999')' 1,485'
    to_char(1485, '9G999')' 1 485'
    to_char(148.5, '999.999')' 148.500'
    to_char(148.5, 'FM999.999')'148.5'
    to_char(148.5, 'FM999.990')'148.500'
    to_char(148.5, '999D999')' 148,500'
    to_char(3148.5, '9G999D999')' 3 148,500'
    to_char(-485, '999S')'485-'
    to_char(-485, '999MI')'485-'
    to_char(485, '999MI')'485 '
    to_char(485, 'FM999MI')'485'
    to_char(485, 'PL999')'+485'
    to_char(485, 'SG999')'+485'
    to_char(-485, 'SG999')'-485'
    to_char(-485, '9SG99')'4-85'
    to_char(-485, '999PR')'<485>'
    to_char(485, 'L999')'DM 485'
    to_char(485, 'RN')'        CDLXXXV'
    to_char(485, 'FMRN')'CDLXXXV'
    to_char(5.2, 'FMRN')'V'
    to_char(482, '999th')' 482nd'
    to_char(485, '"Good number:"999')'Good number: 485'
    to_char(485.8, '"Pre:"999" Post:" .999')'Pre: 485 Post: .800'
    to_char(12, '99V999')' 12000'
    to_char(12.4, '99V999')' 12400'
    to_char(12.45, '99V9')' 125'
    to_char(0.0004859, '9.99EEEE')' 4.86e-04'

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-geometry.html postgresql-13-13.7/doc/src/sgml/html/functions-geometry.html --- postgresql-13-13.4/doc/src/sgml/html/functions-geometry.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-geometry.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.11. Geometric Functions and Operators

    9.11. Geometric Functions and Operators

    +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 @@ -111,7 +111,7 @@

    Computes the center point. - Available for box, lseg, path, + Available for box, lseg, polygon, circle.

    @@ -161,8 +161,6 @@ (point, line), (lseg, box), (lseg, lseg), - (lseg, line), - (line, box), (line, lseg).

    @@ -174,11 +172,11 @@

    Computes the distance between the objects. - Available for all seven geometric types, for all combinations + Available for all geometric types except polygon, + for all combinations of point with another geometric type, and for these additional pairs of types: (box, lseg), - (box, line), (lseg, line), (polygon, circle) (and the commutator cases). @@ -905,4 +903,4 @@ UPDATE t SET p[1] = ... changes the Y coordinate. In the same way, a value of type box or lseg can be treated as an array of two point values. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions.html postgresql-13-13.7/doc/src/sgml/html/functions.html --- postgresql-13-13.4/doc/src/sgml/html/functions.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions.html 2022-05-09 21:29:08.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. UUID Functions
    9.15. XML Functions
    9.15.1. Producing XML Content
    9.15.2. XML Predicates
    9.15.3. Processing XML
    9.15.4. Mapping Tables to XML
    9.16. JSON Functions and Operators
    9.16.1. Processing and Creating JSON Data
    9.16.2. The SQL/JSON Path Language
    9.17. Sequence Manipulation Functions
    9.18. Conditional Expressions
    9.18.1. CASE
    9.18.2. COALESCE
    9.18.3. NULLIF
    9.18.4. GREATEST and LEAST
    9.19. Array Functions and Operators
    9.20. Range Functions and Operators
    9.21. Aggregate Functions
    9.22. Window Functions
    9.23. Subquery Expressions
    9.23.1. EXISTS
    9.23.2. IN
    9.23.3. NOT IN
    9.23.4. ANY/SOME
    9.23.5. ALL
    9.23.6. Single-Row Comparison
    9.24. Row and Array Comparisons
    9.24.1. IN
    9.24.2. NOT IN
    9.24.3. ANY/SOME (array)
    9.24.4. ALL (array)
    9.24.5. Row Constructor Comparison
    9.24.6. Composite Type Comparison
    9.25. Set Returning Functions
    9.26. System Information Functions and Operators
    9.27. System Administration Functions
    9.27.1. Configuration Settings Functions
    9.27.2. Server Signaling Functions
    9.27.3. Backup Control Functions
    9.27.4. Recovery Control Functions
    9.27.5. Snapshot Synchronization Functions
    9.27.6. Replication Management Functions
    9.27.7. Database Object Management Functions
    9.27.8. Index Maintenance Functions
    9.27.9. Generic File Access Functions
    9.27.10. Advisory Lock Functions
    9.28. Trigger Functions
    9.29. Event Trigger Functions
    9.29.1. Capturing Changes at Command End
    9.29.2. Processing Objects Dropped by a DDL Command
    9.29.3. Handling a Table Rewrite Event
    9.30. Statistics Information Functions
    9.30.1. Inspecting MCV Lists

    +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. UUID Functions
    9.15. XML Functions
    9.15.1. Producing XML Content
    9.15.2. XML Predicates
    9.15.3. Processing XML
    9.15.4. Mapping Tables to XML
    9.16. JSON Functions and Operators
    9.16.1. Processing and Creating JSON Data
    9.16.2. The SQL/JSON Path Language
    9.17. Sequence Manipulation Functions
    9.18. Conditional Expressions
    9.18.1. CASE
    9.18.2. COALESCE
    9.18.3. NULLIF
    9.18.4. GREATEST and LEAST
    9.19. Array Functions and Operators
    9.20. Range Functions and Operators
    9.21. Aggregate Functions
    9.22. Window Functions
    9.23. Subquery Expressions
    9.23.1. EXISTS
    9.23.2. IN
    9.23.3. NOT IN
    9.23.4. ANY/SOME
    9.23.5. ALL
    9.23.6. Single-Row Comparison
    9.24. Row and Array Comparisons
    9.24.1. IN
    9.24.2. NOT IN
    9.24.3. ANY/SOME (array)
    9.24.4. ALL (array)
    9.24.5. Row Constructor Comparison
    9.24.6. Composite Type Comparison
    9.25. Set Returning Functions
    9.26. System Information Functions and Operators
    9.27. System Administration Functions
    9.27.1. Configuration Settings Functions
    9.27.2. Server Signaling Functions
    9.27.3. Backup Control Functions
    9.27.4. Recovery Control Functions
    9.27.5. Snapshot Synchronization Functions
    9.27.6. Replication Management Functions
    9.27.7. Database Object Management Functions
    9.27.8. Index Maintenance Functions
    9.27.9. Generic File Access Functions
    9.27.10. Advisory Lock Functions
    9.28. Trigger Functions
    9.29. Event Trigger Functions
    9.29.1. Capturing Changes at Command End
    9.29.2. Processing Objects Dropped by a DDL Command
    9.29.3. Handling a Table Rewrite Event
    9.30. Statistics Information Functions
    9.30.1. Inspecting MCV Lists

    PostgreSQL provides a large number of functions and operators for the built-in data types. This chapter describes most of them, although additional special-purpose functions @@ -30,4 +30,4 @@ is present in other SQL database management systems, and in many cases this functionality is compatible and consistent between the various implementations. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-info.html postgresql-13-13.7/doc/src/sgml/html/functions-info.html --- postgresql-13-13.4/doc/src/sgml/html/functions-info.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-info.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.26. System Information Functions and Operators

    9.26. System Information Functions and Operators

    +9.26. System Information Functions and Operators

    9.26. System Information Functions and Operators

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

    @@ -1669,4 +1669,4 @@

    Returns information about recovery state, as shown in Table 9.82. -


    Table 9.79. pg_control_checkpoint Output Columns

    Column NameData Type
    checkpoint_lsnpg_lsn
    redo_lsnpg_lsn
    redo_wal_filetext
    timeline_idinteger
    prev_timeline_idinteger
    full_page_writesboolean
    next_xidtext
    next_oidoid
    next_multixact_idxid
    next_multi_offsetxid
    oldest_xidxid
    oldest_xid_dbidoid
    oldest_active_xidxid
    oldest_multi_xidxid
    oldest_multi_dbidoid
    oldest_commit_ts_xidxid
    newest_commit_ts_xidxid
    checkpoint_timetimestamp with time zone

    Table 9.80. pg_control_system Output Columns

    Column NameData Type
    pg_control_versioninteger
    catalog_version_nointeger
    system_identifierbigint
    pg_control_last_modifiedtimestamp with time zone

    Table 9.81. pg_control_init Output Columns

    Column NameData Type
    max_data_alignmentinteger
    database_block_sizeinteger
    blocks_per_segmentinteger
    wal_block_sizeinteger
    bytes_per_wal_segmentinteger
    max_identifier_lengthinteger
    max_index_columnsinteger
    max_toast_chunk_sizeinteger
    large_object_chunk_sizeinteger
    float8_pass_by_valueboolean
    data_page_checksum_versioninteger

    Table 9.82. pg_control_recovery Output Columns

    Column NameData Type
    min_recovery_end_lsnpg_lsn
    min_recovery_end_timelineinteger
    backup_start_lsnpg_lsn
    backup_end_lsnpg_lsn
    end_of_backup_record_requiredboolean

    \ No newline at end of file +


    Table 9.79. pg_control_checkpoint Output Columns

    Column NameData Type
    checkpoint_lsnpg_lsn
    redo_lsnpg_lsn
    redo_wal_filetext
    timeline_idinteger
    prev_timeline_idinteger
    full_page_writesboolean
    next_xidtext
    next_oidoid
    next_multixact_idxid
    next_multi_offsetxid
    oldest_xidxid
    oldest_xid_dbidoid
    oldest_active_xidxid
    oldest_multi_xidxid
    oldest_multi_dbidoid
    oldest_commit_ts_xidxid
    newest_commit_ts_xidxid
    checkpoint_timetimestamp with time zone

    Table 9.80. pg_control_system Output Columns

    Column NameData Type
    pg_control_versioninteger
    catalog_version_nointeger
    system_identifierbigint
    pg_control_last_modifiedtimestamp with time zone

    Table 9.81. pg_control_init Output Columns

    Column NameData Type
    max_data_alignmentinteger
    database_block_sizeinteger
    blocks_per_segmentinteger
    wal_block_sizeinteger
    bytes_per_wal_segmentinteger
    max_identifier_lengthinteger
    max_index_columnsinteger
    max_toast_chunk_sizeinteger
    large_object_chunk_sizeinteger
    float8_pass_by_valueboolean
    data_page_checksum_versioninteger

    Table 9.82. pg_control_recovery Output Columns

    Column NameData Type
    min_recovery_end_lsnpg_lsn
    min_recovery_end_timelineinteger
    backup_start_lsnpg_lsn
    backup_end_lsnpg_lsn
    end_of_backup_record_requiredboolean

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-json.html postgresql-13-13.7/doc/src/sgml/html/functions-json.html --- postgresql-13-13.4/doc/src/sgml/html/functions-json.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-json.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.16. JSON Functions and Operators

    9.16. JSON Functions and Operators

    +9.16. JSON Functions and Operators

    9.16. JSON Functions and Operators

    This section describes:

    • @@ -1775,4 +1775,4 @@

       $.* ? (@ like_regex "^\\d+$")
       

      -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-logical.html postgresql-13-13.7/doc/src/sgml/html/functions-logical.html --- postgresql-13-13.4/doc/src/sgml/html/functions-logical.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-logical.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.1. Logical Operators

    9.1. Logical Operators

    +9.1. Logical Operators

    9.1. Logical Operators

    The usual logical operators are available: @@ -33,4 +33,4 @@ without affecting the result. (However, it is not guaranteed that the left operand is evaluated before the right operand. See Section 4.2.14 for more information about the order of evaluation of subexpressions.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-matching.html postgresql-13-13.7/doc/src/sgml/html/functions-matching.html --- postgresql-13-13.4/doc/src/sgml/html/functions-matching.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-matching.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.7. Pattern Matching

    9.7. Pattern Matching

    +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 @@ -1245,4 +1245,4 @@ backslash.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-math.html postgresql-13-13.7/doc/src/sgml/html/functions-math.html --- postgresql-13-13.4/doc/src/sgml/html/functions-math.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-math.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.3. Mathematical Functions and Operators

    9.3. Mathematical Functions and Operators

    +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 @@ -1012,4 +1012,4 @@

    atanh(0.5)0.5493061443340548 -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-net.html postgresql-13-13.7/doc/src/sgml/html/functions-net.html --- postgresql-13-13.4/doc/src/sgml/html/functions-net.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-net.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.12. Network Address Functions and Operators

    9.12. Network Address Functions and Operators

    +9.12. Network Address Functions and Operators

    9.12. Network Address Functions and Operators

    The IP network address types, cidr and inet, support the usual comparison operators shown in Table 9.1 @@ -394,4 +394,4 @@

    macaddr8_set7bit(macaddr8 '00:34:56:ab:cd:ef')02:34:56:ff:fe:ab:cd:ef -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-range.html postgresql-13-13.7/doc/src/sgml/html/functions-range.html --- postgresql-13-13.4/doc/src/sgml/html/functions-range.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-range.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.20. Range Functions and Operators

    9.20. Range Functions and Operators

    +9.20. Range Functions and Operators

    9.20. Range Functions and Operators

    See Section 8.17 for an overview of range types.

    Table 9.53 shows the specialized operators @@ -261,4 +261,4 @@ The lower_inc, upper_inc, lower_inf, and upper_inf functions all return false for an empty range. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-sequence.html postgresql-13-13.7/doc/src/sgml/html/functions-sequence.html --- postgresql-13-13.4/doc/src/sgml/html/functions-sequence.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-sequence.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.17. Sequence Manipulation Functions

    9.17. Sequence Manipulation Functions

    +9.17. Sequence Manipulation Functions

    9.17. 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. @@ -102,22 +102,33 @@ or SELECT privilege on the last used sequence.


    Caution

    To avoid blocking concurrent transactions that obtain numbers from - the same sequence, a nextval operation is never - rolled back; that is, once a value has been fetched it is considered - used and will not be returned again. This is true even if the - surrounding transaction later aborts, or if the calling query ends - up not using the value. For example an INSERT with + the same sequence, the value obtained by nextval + is not reclaimed for re-use if the calling transaction later aborts. + This means that transaction aborts or database crashes can result in + gaps in the sequence of assigned values. That can happen without a + transaction abort, too. For example an INSERT with an ON CONFLICT clause will compute the to-be-inserted tuple, including doing any required nextval calls, before detecting any conflict that would cause it to follow - the ON CONFLICT rule instead. Such cases will leave - unused holes in the sequence of assigned values. + the ON CONFLICT rule instead. Thus, PostgreSQL sequence objects cannot be used to obtain gapless sequences.

    - Likewise, any sequence state changes made by setval - are not undone if the transaction rolls back. + Likewise, sequence state changes made by setval + are immediately visible to other transactions, and are not undone if + the calling transaction rolls back. +

    + If the database cluster crashes before committing a transaction + containing a nextval + or setval call, the sequence state change might + not have made its way to persistent storage, so that it is uncertain + whether the sequence will have its original or updated state after the + cluster restarts. This is harmless for usage of the sequence within + the database, since other effects of uncommitted transactions will not + be visible either. However, if you wish to use a sequence value for + persistent outside-the-database purposes, make sure that the + nextval call has been committed before doing so.

    The sequence to be operated on by a sequence function is specified by a regclass argument, which is simply the OID of the sequence in the @@ -169,4 +180,4 @@ Of course, the argument of a sequence function can be an expression as well as a constant. If it is a text expression then the implicit coercion will result in a run-time lookup. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-srf.html postgresql-13-13.7/doc/src/sgml/html/functions-srf.html --- postgresql-13-13.4/doc/src/sgml/html/functions-srf.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-srf.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.25. Set Returning Functions

    9.25. Set Returning Functions

    +9.25. Set Returning Functions

    9.25. 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.61 and @@ -215,4 +215,4 @@ pg_subtrans | 19 (19 rows)

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-statistics.html postgresql-13-13.7/doc/src/sgml/html/functions-statistics.html --- postgresql-13-13.4/doc/src/sgml/html/functions-statistics.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-statistics.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -9.30. Statistics Information Functions

    9.30. Statistics Information Functions

    +9.30. Statistics Information Functions

    9.30. Statistics Information Functions

    PostgreSQL provides a function to inspect complex statistics defined using the CREATE STATISTICS command.

    9.30.1. Inspecting MCV Lists

    @@ -21,4 +21,4 @@
         Values of the pg_mcv_list type can be obtained only from the
         pg_statistic_ext_data.stxdmcv
         column.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-string.html postgresql-13-13.7/doc/src/sgml/html/functions-string.html --- postgresql-13-13.4/doc/src/sgml/html/functions-string.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-string.html 2022-05-09 21:29:06.000000000 +0000 @@ -1,5 +1,5 @@ -9.4. String Functions and Operators

    9.4. String Functions and Operators

    +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, @@ -998,4 +998,4 @@ The %I and %L format specifiers are particularly useful for safely constructing dynamic SQL statements. See Example 42.1. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-subquery.html postgresql-13-13.7/doc/src/sgml/html/functions-subquery.html --- postgresql-13-13.4/doc/src/sgml/html/functions-subquery.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-subquery.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.23. Subquery Expressions

    9.23. Subquery Expressions

    +9.23. Subquery Expressions

    9.23. Subquery Expressions

    This section describes the SQL-compliant subquery expressions available in PostgreSQL. All of the expression forms documented in this section return @@ -210,4 +210,4 @@

    See Section 9.24.5 for details about the meaning of a row constructor comparison. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-textsearch.html postgresql-13-13.7/doc/src/sgml/html/functions-textsearch.html --- postgresql-13-13.4/doc/src/sgml/html/functions-textsearch.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-textsearch.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.13. Text Search Functions and Operators

    9.13. Text Search Functions and Operators

    +9.13. Text Search Functions and Operators

    9.13. Text Search Functions and Operators

    Table 9.41, Table 9.42 and Table 9.43 @@ -750,4 +750,4 @@

    ts_stat('SELECT vector FROM apod')(foo,10,15) ... -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-trigger.html postgresql-13-13.7/doc/src/sgml/html/functions-trigger.html --- postgresql-13-13.4/doc/src/sgml/html/functions-trigger.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-trigger.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -9.28. Trigger Functions

    9.28. Trigger Functions

    +9.28. Trigger Functions

    9.28. Trigger Functions

    While many uses of triggers involve user-written trigger functions, PostgreSQL provides a few built-in trigger functions that can be used directly in user-defined triggers. These @@ -90,4 +90,4 @@ choose a trigger name that comes after the name of any other trigger you might have on the table. (Hence the z prefix in the example.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-uuid.html postgresql-13-13.7/doc/src/sgml/html/functions-uuid.html --- postgresql-13-13.4/doc/src/sgml/html/functions-uuid.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-uuid.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.14. UUID Functions

    9.14. UUID Functions

    +9.14. UUID Functions

    9.14. UUID Functions

    PostgreSQL includes one function to generate a UUID:

     gen_random_uuid () → uuid
    @@ -13,4 +13,4 @@
        PostgreSQL also provides the usual comparison
        operators shown in Table 9.1 for
        UUIDs.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-window.html postgresql-13-13.7/doc/src/sgml/html/functions-window.html --- postgresql-13-13.4/doc/src/sgml/html/functions-window.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-window.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.22. Window Functions

    9.22. Window Functions

    +9.22. Window Functions

    9.22. 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 @@ -179,4 +179,4 @@ default FROM FIRST behavior is supported. (You can achieve the result of FROM LAST by reversing the ORDER BY ordering.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/functions-xml.html postgresql-13-13.7/doc/src/sgml/html/functions-xml.html --- postgresql-13-13.4/doc/src/sgml/html/functions-xml.html 2021-08-09 21:02:48.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/functions-xml.html 2022-05-09 21:29:07.000000000 +0000 @@ -1,5 +1,5 @@ -9.15. XML Functions

    9.15. XML Functions

    +9.15. XML Functions

    9.15. 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 @@ -908,4 +908,4 @@ will be put into content form with each such disallowed node replaced by its string value, as defined for the XPath 1.0 string function. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/fuzzystrmatch.html postgresql-13-13.7/doc/src/sgml/html/fuzzystrmatch.html --- postgresql-13-13.4/doc/src/sgml/html/fuzzystrmatch.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/fuzzystrmatch.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.15. fuzzystrmatch

    F.15. fuzzystrmatch

    +F.15. fuzzystrmatch

    F.15. fuzzystrmatch

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

    Caution

    @@ -135,4 +135,4 @@ ------------ KMP (1 row) -

    \ No newline at end of file +
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/generic-wal.html postgresql-13-13.7/doc/src/sgml/html/generic-wal.html --- postgresql-13-13.4/doc/src/sgml/html/generic-wal.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/generic-wal.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 62. Generic WAL Records

    Chapter 62. Generic WAL Records

    +Chapter 62. Generic WAL Records

    Chapter 62. 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 @@ -92,4 +92,4 @@ comparison. This is not very compact for the case of moving data within a page, and might be improved in the future.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/geqo-biblio.html postgresql-13-13.7/doc/src/sgml/html/geqo-biblio.html --- postgresql-13-13.4/doc/src/sgml/html/geqo-biblio.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/geqo-biblio.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -59.4. Further Reading

    59.4. Further Reading

    +59.4. Further Reading

    59.4. Further Reading

    The following resources contain additional information about genetic algorithms: @@ -15,4 +15,4 @@

  • [fong]

  • -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/geqo.html postgresql-13-13.7/doc/src/sgml/html/geqo.html --- postgresql-13-13.4/doc/src/sgml/html/geqo.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/geqo.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,8 +1,8 @@ -Chapter 59. Genetic Query Optimizer

    Chapter 59. Genetic Query Optimizer

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/geqo-intro2.html postgresql-13-13.7/doc/src/sgml/html/geqo-intro2.html --- postgresql-13-13.4/doc/src/sgml/html/geqo-intro2.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/geqo-intro2.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -59.2. Genetic Algorithms

    59.2. Genetic Algorithms

    +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 @@ -24,4 +24,4 @@ strongly that a GA is not a pure random search for a solution to a problem. A GA uses stochastic processes, but the result is distinctly non-random (better than random). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/geqo-intro.html postgresql-13-13.7/doc/src/sgml/html/geqo-intro.html --- postgresql-13-13.4/doc/src/sgml/html/geqo-intro.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/geqo-intro.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -59.1. Query Handling as a Complex Optimization Problem

    59.1. Query Handling as a Complex Optimization Problem

    +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 @@ -33,4 +33,4 @@ genetic algorithm to solve the join ordering problem in a manner that is efficient for queries involving large numbers of joins. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/geqo-pg-intro.html postgresql-13-13.7/doc/src/sgml/html/geqo-pg-intro.html --- postgresql-13-13.4/doc/src/sgml/html/geqo-pg-intro.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/geqo-pg-intro.html 2022-05-09 21:29:26.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 @@ -104,4 +104,4 @@ of the rest of the tour, but this is certainly not true for query optimization. Thus it is questionable whether edge recombination crossover is the most effective mutation procedure. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gin-builtin-opclasses.html postgresql-13-13.7/doc/src/sgml/html/gin-builtin-opclasses.html --- postgresql-13-13.4/doc/src/sgml/html/gin-builtin-opclasses.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gin-builtin-opclasses.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -66.2. Built-in Operator Classes

    66.2. Built-in Operator Classes

    +66.2. Built-in Operator Classes

    66.2. Built-in Operator Classes

    The core PostgreSQL distribution includes the GIN operator classes shown in Table 66.1. @@ -29,4 +29,4 @@ is the default. jsonb_path_ops supports fewer operators but offers better performance for those operators. See Section 8.14.4 for details. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gin-examples.html postgresql-13-13.7/doc/src/sgml/html/gin-examples.html --- postgresql-13-13.4/doc/src/sgml/html/gin-examples.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gin-examples.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -66.7. Examples

    66.7. Examples

    +66.7. Examples

    66.7. Examples

    The core PostgreSQL distribution includes the GIN operator classes previously shown in Table 66.1. @@ -7,4 +7,4 @@ GIN operator classes:

    btree_gin

    B-tree equivalent functionality for several data types

    hstore

    Module for storing (key, value) pairs

    intarray

    Enhanced support for int[]

    pg_trgm

    Text similarity using trigram matching

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gin-extensibility.html postgresql-13-13.7/doc/src/sgml/html/gin-extensibility.html --- postgresql-13-13.4/doc/src/sgml/html/gin-extensibility.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gin-extensibility.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -66.3. Extensibility

    66.3. Extensibility

    +66.3. Extensibility

    66.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 @@ -234,4 +234,4 @@ recommended that the SQL declarations of these three support functions use the opclass's indexed data type for the query argument, even though the actual type might be something else depending on the operator. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gin.html postgresql-13-13.7/doc/src/sgml/html/gin.html --- postgresql-13-13.4/doc/src/sgml/html/gin.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gin.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 66. GIN Indexes \ No newline at end of file +Chapter 66. GIN Indexes \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gin-implementation.html postgresql-13-13.7/doc/src/sgml/html/gin-implementation.html --- postgresql-13-13.4/doc/src/sgml/html/gin-implementation.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gin-implementation.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -66.4. Implementation

    66.4. Implementation

    +66.4. Implementation

    66.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 @@ -61,4 +61,4 @@ index key, less than zero for a non-match that is still within the range to be searched, or greater than zero if the index key is past the range that could match. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gin-intro.html postgresql-13-13.7/doc/src/sgml/html/gin-intro.html --- postgresql-13-13.4/doc/src/sgml/html/gin-intro.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gin-intro.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -66.1. Introduction

    66.1. Introduction

    +66.1. Introduction

    66.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 @@ -37,4 +37,4 @@ maintained by Teodor Sigaev and Oleg Bartunov. There is more information about GIN on their website. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gin-limit.html postgresql-13-13.7/doc/src/sgml/html/gin-limit.html --- postgresql-13-13.4/doc/src/sgml/html/gin-limit.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gin-limit.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -66.6. Limitations

    66.6. Limitations

    +66.6. Limitations

    66.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), @@ -7,4 +7,4 @@ value either (instead, the query is presumed to be unsatisfiable). Note however that null key values contained within a non-null composite item or query value are supported. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gin-tips.html postgresql-13-13.7/doc/src/sgml/html/gin-tips.html --- postgresql-13-13.4/doc/src/sgml/html/gin-tips.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gin-tips.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -66.5. GIN Tips and Tricks

    66.5. GIN Tips and Tricks

    Create vs. insert

    +66.5. GIN Tips and Tricks

    66.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 @@ -54,4 +54,4 @@

    From experience, values in the thousands (e.g., 5000 — 20000) work well. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gist-builtin-opclasses.html postgresql-13-13.7/doc/src/sgml/html/gist-builtin-opclasses.html --- postgresql-13-13.4/doc/src/sgml/html/gist-builtin-opclasses.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gist-builtin-opclasses.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -64.2. Built-in Operator Classes

    64.2. Built-in Operator Classes

    +64.2. Built-in Operator Classes

    64.2. Built-in Operator Classes

    The core PostgreSQL distribution includes the GiST operator classes shown in Table 64.1. @@ -107,4 +107,4 @@

     CREATE INDEX ON my_table USING GIST (my_inet_column inet_ops);
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gist-examples.html postgresql-13-13.7/doc/src/sgml/html/gist-examples.html --- postgresql-13-13.4/doc/src/sgml/html/gist-examples.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gist-examples.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -64.5. Examples

    64.5. Examples

    +64.5. Examples

    64.5. Examples

    The PostgreSQL source distribution includes several examples of index methods implemented using GiST. The core system currently provides text search @@ -10,4 +10,4 @@ operator classes:

    btree_gist

    B-tree equivalent functionality for several data types

    cube

    Indexing for multidimensional cubes

    hstore

    Module for storing (key, value) pairs

    intarray

    RD-Tree for one-dimensional array of int4 values

    ltree

    Indexing for tree-like structures

    pg_trgm

    Text similarity using trigram matching

    seg

    Indexing for float ranges

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gist-extensibility.html postgresql-13-13.7/doc/src/sgml/html/gist-extensibility.html --- postgresql-13-13.4/doc/src/sgml/html/gist-extensibility.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gist-extensibility.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -64.3. Extensibility

    64.3. Extensibility

    +64.3. Extensibility

    64.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 @@ -752,4 +752,4 @@ index scan, index build, or index tuple insertion). Be careful to pfree the previous value when replacing a fn_extra value, or the leak will accumulate for the duration of the operation. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gist.html postgresql-13-13.7/doc/src/sgml/html/gist.html --- postgresql-13-13.4/doc/src/sgml/html/gist.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gist.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 64. GiST Indexes \ No newline at end of file +Chapter 64. GiST Indexes \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gist-implementation.html postgresql-13-13.7/doc/src/sgml/html/gist-implementation.html --- postgresql-13-13.4/doc/src/sgml/html/gist-implementation.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gist-implementation.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -64.4. Implementation

    64.4. Implementation

    64.4.1. GiST Buffering Build

    +64.4. Implementation

    64.4. Implementation

    64.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 @@ -24,4 +24,4 @@ to the CREATE INDEX command. The default behavior is good for most cases, but turning buffering off might speed up the build somewhat if the input data is ordered. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gist-intro.html postgresql-13-13.7/doc/src/sgml/html/gist-intro.html --- postgresql-13-13.4/doc/src/sgml/html/gist-intro.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gist-intro.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -64.1. Introduction

    64.1. Introduction

    +64.1. Introduction

    64.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 @@ -20,4 +20,4 @@ maintained by Teodor Sigaev and Oleg Bartunov, and there is more information on their web site. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/git.html postgresql-13-13.7/doc/src/sgml/html/git.html --- postgresql-13-13.4/doc/src/sgml/html/git.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/git.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -I.1. Getting the Source via Git

    I.1. Getting the Source via Git

    +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 @@ -39,4 +39,4 @@ Git can do a lot more things than just fetch the source. For more information, consult the Git man pages, or see the website at https://git-scm.com. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/glossary.html postgresql-13-13.7/doc/src/sgml/html/glossary.html --- postgresql-13-13.4/doc/src/sgml/html/glossary.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/glossary.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix M. Glossary

    Appendix M. Glossary

    +Appendix M. Glossary

    Appendix M. Glossary

    This is a list of terms and their meaning in the context of PostgreSQL and relational database systems in general. @@ -995,4 +995,4 @@ It comprises many individual WAL records written sequentially to WAL files. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gssapi-auth.html postgresql-13-13.7/doc/src/sgml/html/gssapi-auth.html --- postgresql-13-13.4/doc/src/sgml/html/gssapi-auth.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gssapi-auth.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.6. GSSAPI Authentication

    20.6. GSSAPI Authentication

    +20.6. GSSAPI Authentication

    20.6. GSSAPI Authentication

    GSSAPI is an industry-standard protocol for secure authentication defined in RFC 2743. @@ -115,4 +115,4 @@ parameter. If that is set to true, client principals are matched to user map entries case-insensitively. krb_realm, if set, is also matched case-insensitively. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/gssapi-enc.html postgresql-13-13.7/doc/src/sgml/html/gssapi-enc.html --- postgresql-13-13.4/doc/src/sgml/html/gssapi-enc.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/gssapi-enc.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.10. Secure TCP/IP Connections with GSSAPI Encryption

    18.10. Secure TCP/IP Connections with GSSAPI Encryption

    +18.10. Secure TCP/IP Connections with GSSAPI Encryption

    18.10. Secure TCP/IP Connections with GSSAPI Encryption

    PostgreSQL also has native support for using GSSAPI to encrypt client/server communications for increased security. Support requires that a GSSAPI @@ -28,4 +28,4 @@ behavior, GSSAPI encryption requires no setup beyond that which is necessary for GSSAPI authentication. (For more information on configuring that, see Section 20.6.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/hash-implementation.html postgresql-13-13.7/doc/src/sgml/html/hash-implementation.html --- postgresql-13-13.4/doc/src/sgml/html/hash-implementation.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/hash-implementation.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -68.2. Implementation

    68.2. Implementation

    +68.2. Implementation

    68.2. Implementation

    There are four kinds of pages in a hash index: the meta page (page zero), which contains statically allocated control information; primary bucket pages; overflow pages; and bitmap pages, which keep track of overflow @@ -33,4 +33,4 @@ src/backend/access/hash/README. The split algorithm is crash safe and can be restarted if not completed successfully. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/hash-index.html postgresql-13-13.7/doc/src/sgml/html/hash-index.html --- postgresql-13-13.4/doc/src/sgml/html/hash-index.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/hash-index.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 68. Hash Indexes

    Chapter 68. Hash Indexes

    \ No newline at end of file +Chapter 68. Hash Indexes

    Chapter 68. Hash Indexes

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/hash-intro.html postgresql-13-13.7/doc/src/sgml/html/hash-intro.html --- postgresql-13-13.4/doc/src/sgml/html/hash-intro.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/hash-intro.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -68.1. Overview

    68.1. Overview

    +68.1. Overview

    68.1. Overview

    PostgreSQL includes an implementation of persistent on-disk hash indexes, which are fully crash recoverable. Any data type can be indexed by a @@ -74,4 +74,4 @@ The expansion occurs in the foreground, which could increase execution time for user inserts. Thus, hash indexes may not be suitable for tables with rapidly increasing number of rows. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/high-availability.html postgresql-13-13.7/doc/src/sgml/html/high-availability.html --- postgresql-13-13.4/doc/src/sgml/html/high-availability.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/high-availability.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 26. High Availability, Load Balancing, and Replication

    Chapter 26. High Availability, Load Balancing, and Replication

    +Chapter 26. High Availability, Load Balancing, and Replication

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/history.html postgresql-13-13.7/doc/src/sgml/html/history.html --- postgresql-13-13.4/doc/src/sgml/html/history.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/history.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2. A Brief History of PostgreSQL

    2. A Brief History of PostgreSQL

    +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 @@ -137,4 +137,4 @@

    Details about what has happened in PostgreSQL since then can be found in Appendix E. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/hot-standby.html postgresql-13-13.7/doc/src/sgml/html/hot-standby.html --- postgresql-13-13.4/doc/src/sgml/html/hot-standby.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/hot-standby.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -26.5. Hot Standby

    26.5. Hot Standby

    +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 @@ -538,4 +538,4 @@ hot standby mode will generate an error.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/how-parallel-query-works.html postgresql-13-13.7/doc/src/sgml/html/how-parallel-query-works.html --- postgresql-13-13.4/doc/src/sgml/html/how-parallel-query-works.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/how-parallel-query-works.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,7 +1,7 @@ -15.1. How Parallel Query Works

    15.1. How Parallel Query Works

    +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 + strategy for a particular query, it will create a query plan that includes a Gather or Gather Merge node. Here is a simple example: @@ -29,7 +29,7 @@

    Using EXPLAIN, you can see the number of workers chosen by the planner. When the Gather node is reached - during query execution, the process which is implementing the user's + during query execution, the process that is implementing the user's session will request a number of background worker processes equal to the number of workers chosen by the planner. The number of background workers that @@ -47,7 +47,7 @@ max_parallel_workers_per_gather so that the planner requests fewer workers.

    - Every background worker process which is successfully started for a given + Every background worker process that is successfully started for a given parallel query will execute the parallel portion of the plan. The leader will also execute that portion of the plan, but it has an additional responsibility: it must also read all of the tuples generated by the @@ -56,7 +56,7 @@ worker, speeding up query execution. Conversely, when the parallel portion of the plan generates a large number of tuples, the leader may be almost entirely occupied with reading the tuples generated by the workers and - performing any further processing steps which are required by plan nodes + performing any further processing steps that are required by plan nodes above the level of the Gather node or Gather Merge node. In such cases, the leader will do very little of the work of executing the parallel portion of the plan. @@ -68,4 +68,4 @@ order-preserving merge. In contrast, Gather reads tuples from the workers in whatever order is convenient, destroying any sort order that may have existed. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/hstore.html postgresql-13-13.7/doc/src/sgml/html/hstore.html --- postgresql-13-13.4/doc/src/sgml/html/hstore.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/hstore.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -F.16. hstore

    F.16. hstore

    +F.16. hstore

    F.16. 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 @@ -666,4 +666,4 @@

    Additional enhancements by Andrew Gierth , United Kingdom -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexam.html postgresql-13-13.7/doc/src/sgml/html/indexam.html --- postgresql-13-13.4/doc/src/sgml/html/indexam.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexam.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 61. Index Access Method Interface Definition

    Chapter 61. Index Access Method Interface Definition

    +Chapter 61. Index Access Method Interface Definition

    Chapter 61. 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 @@ -31,4 +31,4 @@ statement; but indexes do not deal with those, either.) Index entries for dead tuples are reclaimed (by vacuuming) when the dead tuples themselves are reclaimed. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/index-api.html postgresql-13-13.7/doc/src/sgml/html/index-api.html --- postgresql-13-13.4/doc/src/sgml/html/index-api.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/index-api.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -61.1. Basic API Structure for Indexes

    61.1. Basic API Structure for Indexes

    +61.1. Basic API Structure for Indexes

    61.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 @@ -176,4 +176,4 @@ sensible: it means that there can only be one key column, but there can also be included column(s). Also, included columns must be allowed to be null, independently of amoptionalkey. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/index-cost-estimation.html postgresql-13-13.7/doc/src/sgml/html/index-cost-estimation.html --- postgresql-13-13.4/doc/src/sgml/html/index-cost-estimation.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/index-cost-estimation.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -61.6. Index Cost Estimation Functions

    61.6. Index Cost Estimation Functions

    +61.6. Index Cost Estimation Functions

    61.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 @@ -139,4 +139,4 @@

    Examples of cost estimator functions can be found in src/backend/utils/adt/selfuncs.c. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-bitmap-scans.html postgresql-13-13.7/doc/src/sgml/html/indexes-bitmap-scans.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-bitmap-scans.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-bitmap-scans.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.5. Combining Multiple Indexes

    11.5. Combining Multiple Indexes

    +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) @@ -58,4 +58,4 @@ common. If one of the types of query is much less common than the others, you'd probably settle for creating just the two indexes that best match the common types. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-collations.html postgresql-13-13.7/doc/src/sgml/html/indexes-collations.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-collations.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-collations.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.11. Indexes and Collations

    11.11. Indexes and Collations

    +11.11. Indexes and Collations

    11.11. Indexes and Collations

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

    @@ -28,4 +28,4 @@

     CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-examine.html postgresql-13-13.7/doc/src/sgml/html/indexes-examine.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-examine.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-examine.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.12. Examining Index Usage

    11.12. Examining Index Usage

    +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. @@ -79,4 +79,4 @@ appropriate, then you might have to resort to forcing index usage explicitly. You might also want to contact the PostgreSQL developers to examine the issue. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-expressional.html postgresql-13-13.7/doc/src/sgml/html/indexes-expressional.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-expressional.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-expressional.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.7. Indexes on Expressions

    11.7. Indexes on Expressions

    +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 @@ -38,12 +38,12 @@ a function call, as in the first example.

    Index expressions are relatively expensive to maintain, because the - derived expression(s) must be computed for each row upon insertion - and whenever it is updated. However, the index expressions are + derived expression(s) must be computed for each row insertion + and non-HOT update. However, the index expressions are not recomputed during an indexed search, since they are already stored in the index. In both examples above, the system sees the query as just WHERE indexedcolumn = 'constant' and so the speed of the search is equivalent to any other simple index query. Thus, indexes on expressions are useful when retrieval speed is more important than insertion and update speed. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes.html postgresql-13-13.7/doc/src/sgml/html/indexes.html --- postgresql-13-13.4/doc/src/sgml/html/indexes.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,8 +1,8 @@ -Chapter 11. Indexes

    Chapter 11. Indexes

    +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 sensibly. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-index-only-scans.html postgresql-13-13.7/doc/src/sgml/html/indexes-index-only-scans.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-index-only-scans.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-index-only-scans.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.9. Index-Only Scans and Covering Indexes

    11.9. Index-Only Scans and Covering Indexes

    +11.9. Index-Only Scans and Covering Indexes

    11.9. Index-Only Scans and Covering Indexes

    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 @@ -206,4 +206,4 @@ checked in the plan. PostgreSQL versions 9.6 and later will recognize such cases and allow index-only scans to be generated, but older versions will not. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-intro.html postgresql-13-13.7/doc/src/sgml/html/indexes-intro.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-intro.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-intro.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.1. Introduction

    11.1. Introduction

    +11.1. Introduction

    11.1. Introduction

    Suppose we have a table similar to this:

     CREATE TABLE test1 (
    @@ -72,4 +72,4 @@
        table.  This adds overhead to data manipulation operations.
        Therefore indexes that are seldom or never used in queries
        should be removed.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-multicolumn.html postgresql-13-13.7/doc/src/sgml/html/indexes-multicolumn.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-multicolumn.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-multicolumn.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.3. Multicolumn Indexes

    11.3. Multicolumn Indexes

    +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:

    @@ -77,4 +77,4 @@
        Section 11.5 and
        Section 11.9 for some discussion of the
        merits of different index configurations.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-opclass.html postgresql-13-13.7/doc/src/sgml/html/indexes-opclass.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-opclass.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-opclass.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.10. Operator Classes and Operator Families

    11.10. Operator Classes and Operator Families

    +11.10. Operator Classes and Operator Families

    11.10. Operator Classes and Operator Families

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

    @@ -104,4 +104,4 @@
         commands \dAc, \dAf,
         and \dAo, which provide slightly more sophisticated
         versions of these queries.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-ordering.html postgresql-13-13.7/doc/src/sgml/html/indexes-ordering.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-ordering.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-ordering.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.4. Indexes and ORDER BY

    11.4. Indexes and ORDER BY

    +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 @@ -61,4 +61,4 @@ speedups for certain queries. Whether it's worth maintaining such an index depends on how often you use queries that require a special sort ordering. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-partial.html postgresql-13-13.7/doc/src/sgml/html/indexes-partial.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-partial.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-partial.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.8. Partial Indexes

    11.8. Partial Indexes

    +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 @@ -209,4 +209,4 @@ far better performance is possible.


    More information about partial indexes can be found in [ston89b], [olson93], and [seshadri95]. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-types.html postgresql-13-13.7/doc/src/sgml/html/indexes-types.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-types.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-types.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.2. Index Types

    11.2. 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 @@ -150,4 +150,4 @@ The BRIN operator classes included in the standard distribution are documented in Table 67.1. For more information see Chapter 67. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/indexes-unique.html postgresql-13-13.7/doc/src/sgml/html/indexes-unique.html --- postgresql-13-13.4/doc/src/sgml/html/indexes-unique.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/indexes-unique.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -11.6. Unique Indexes

    11.6. Unique Indexes

    +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.

    @@ -21,4 +21,4 @@
         There's no need to manually
         create indexes on unique columns; doing so would just duplicate
         the automatically-created index.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/index-functions.html postgresql-13-13.7/doc/src/sgml/html/index-functions.html --- postgresql-13-13.4/doc/src/sgml/html/index-functions.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/index-functions.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -61.2. Index Access Method Functions

    61.2. Index Access Method Functions

    +61.2. Index Access Method Functions

    61.2. Index Access Method Functions

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

    @@ -429,4 +429,4 @@ must be restarted. It should reset any shared state set up by aminitparallelscan such that the scan will be restarted from the beginning. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/index.html postgresql-13-13.7/doc/src/sgml/html/index.html --- postgresql-13-13.4/doc/src/sgml/html/index.html 2021-08-09 21:03:15.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/index.html 2022-05-09 21:29:33.000000000 +0000 @@ -1,2 +1,2 @@ -PostgreSQL 13.4 Documentation

    PostgreSQL 13.4 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. Monitoring Database Activity
    28. Monitoring Disk Usage
    29. Reliability and the Write-Ahead Log
    30. Logical Replication
    31. Just-in-Time Compilation (JIT)
    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/pgSQLSQL 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. Table Access Method Interface Definition
    61. Index Access Method Interface Definition
    62. Generic WAL Records
    63. B-Tree Indexes
    64. GiST Indexes
    65. SP-GiST Indexes
    66. GIN Indexes
    67. BRIN Indexes
    68. Hash Indexes
    69. Database Physical Storage
    70. System Catalog Declarations and Initial Contents
    71. How the Planner Uses Statistics
    72. Backup Manifest Format
    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. PostgreSQL Limits
    L. Acronyms
    M. Glossary
    N. Color Support
    O. Obsolete or Renamed Features
    Bibliography
    Index
    \ No newline at end of file +PostgreSQL 13.7 Documentation

    PostgreSQL 13.7 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. Monitoring Database Activity
    28. Monitoring Disk Usage
    29. Reliability and the Write-Ahead Log
    30. Logical Replication
    31. Just-in-Time Compilation (JIT)
    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/pgSQLSQL 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. Table Access Method Interface Definition
    61. Index Access Method Interface Definition
    62. Generic WAL Records
    63. B-Tree Indexes
    64. GiST Indexes
    65. SP-GiST Indexes
    66. GIN Indexes
    67. BRIN Indexes
    68. Hash Indexes
    69. Database Physical Storage
    70. System Catalog Declarations and Initial Contents
    71. How the Planner Uses Statistics
    72. Backup Manifest Format
    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. PostgreSQL Limits
    L. Acronyms
    M. Glossary
    N. Color Support
    O. Obsolete or Renamed Features
    Bibliography
    Index
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/index-locking.html postgresql-13-13.7/doc/src/sgml/html/index-locking.html --- postgresql-13-13.4/doc/src/sgml/html/index-locking.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/index-locking.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -61.4. Index Locking Considerations

    61.4. Index Locking Considerations

    +61.4. Index Locking Considerations

    61.4. Index Locking Considerations

    Index access methods must handle concurrent updates of the index by multiple processes. The core PostgreSQL system obtains @@ -88,4 +88,4 @@ integrity. When the flag is set, it indicates that the index access method implements finer-grained predicate locking, which will tend to reduce the frequency of such transaction cancellations. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/index-scanning.html postgresql-13-13.7/doc/src/sgml/html/index-scanning.html --- postgresql-13-13.4/doc/src/sgml/html/index-scanning.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/index-scanning.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -61.3. Index Scanning

    61.3. Index Scanning

    +61.3. Index Scanning

    61.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 @@ -120,4 +120,4 @@ Note that it is permitted for an access method to implement only amgetbitmap and not amgettuple, or vice versa, if its internal implementation is unsuited to one API or the other. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/index-unique-checks.html postgresql-13-13.7/doc/src/sgml/html/index-unique-checks.html --- postgresql-13-13.4/doc/src/sgml/html/index-unique-checks.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/index-unique-checks.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -61.5. Index Uniqueness Checks

    61.5. Index Uniqueness Checks

    +61.5. Index Uniqueness Checks

    61.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 @@ -106,4 +106,4 @@ target row is found in the recheck verifies that we are scanning for the same tuple values as were used in the original insertion.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/information-schema.html postgresql-13-13.7/doc/src/sgml/html/information-schema.html --- postgresql-13-13.4/doc/src/sgml/html/information-schema.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/information-schema.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 36. The Information Schema

    Chapter 36. The Information Schema

    +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 @@ -28,4 +28,4 @@ issues but contain the table name to help distinguish duplicate rows, e.g., constraint_column_usage, constraint_table_usage, table_constraints. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-administrable-role-authorizations.html postgresql-13-13.7/doc/src/sgml/html/infoschema-administrable-role-authorizations.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-administrable-role-authorizations.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-administrable-role-authorizations.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.4. administrable_role_​authorizations

    36.4. 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. @@ -25,4 +25,4 @@

    Always YES -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-applicable-roles.html postgresql-13-13.7/doc/src/sgml/html/infoschema-applicable-roles.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-applicable-roles.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-applicable-roles.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.5. applicable_roles

    36.5. applicable_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 @@ -30,4 +30,4 @@

    YES if the grantee has the admin option on the role, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-attributes.html postgresql-13-13.7/doc/src/sgml/html/infoschema-attributes.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-attributes.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-attributes.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.6. attributes

    36.6. attributes

    +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, @@ -223,4 +223,4 @@


    See also under Section 36.17, a similarly structured view, for further information on some of the columns. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-character-sets.html postgresql-13-13.7/doc/src/sgml/html/infoschema-character-sets.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-character-sets.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-character-sets.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.7. character_sets

    36.7. character_sets

    +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 @@ -83,4 +83,4 @@ settings of the current database. If there is no such collation, then this column and the associated schema and catalog columns are null. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.8. check_constraint_routine_usage

    36.8. 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 @@ -39,4 +39,4 @@

    The specific name of the function. See Section 36.41 for more information. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-check-constraints.html postgresql-13-13.7/doc/src/sgml/html/infoschema-check-constraints.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-check-constraints.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-check-constraints.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.9. check_constraints

    36.9. check_constraints

    +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 @@ -29,4 +29,4 @@

    The check expression of the check constraint -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-collation-character-set-applicab.html postgresql-13-13.7/doc/src/sgml/html/infoschema-collation-character-set-applicab.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-collation-character-set-applicab.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-collation-character-set-applicab.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.11. collation_character_set_​applicability

    36.11. 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 @@ -41,4 +41,4 @@

    Name of the character set -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-collations.html postgresql-13-13.7/doc/src/sgml/html/infoschema-collations.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-collations.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-collations.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.10. collations

    36.10. collations

    +36.10. collations

    36.10. collations

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

    Table 36.8. collations Columns

    @@ -28,4 +28,4 @@

    Always NO PAD (The alternative PAD SPACE is not supported by PostgreSQL.) -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-column-column-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-column-column-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-column-column-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-column-column-usage.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.12. column_column_usage

    36.12. column_column_usage

    +36.12. column_column_usage

    36.12. column_column_usage

    The view column_column_usage identifies all generated columns that depend on another base column in the same table. Only tables owned by a currently enabled role are included. @@ -33,4 +33,4 @@

    Name of the generated column -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-column-domain-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-column-domain-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-column-domain-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-column-domain-usage.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.13. column_domain_usage

    36.13. column_domain_usage

    +36.13. column_domain_usage

    36.13. 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. @@ -43,4 +43,4 @@

    Name of the column -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-column-options.html postgresql-13-13.7/doc/src/sgml/html/infoschema-column-options.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-column-options.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-column-options.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.14. column_options

    36.14. column_options

    +36.14. column_options

    36.14. 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 @@ -39,4 +39,4 @@

    Value of the option -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-column-privileges.html postgresql-13-13.7/doc/src/sgml/html/infoschema-column-privileges.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-column-privileges.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-column-privileges.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.15. column_privileges

    36.15. column_privileges

    +36.15. column_privileges

    36.15. 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 @@ -57,4 +57,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-columns.html postgresql-13-13.7/doc/src/sgml/html/infoschema-columns.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-columns.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-columns.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.17. columns

    36.17. columns

    +36.17. columns

    36.17. columns

    The view columns contains information about all table columns (or view columns) in the database. System columns (ctid, etc.) are not included. Only those columns are @@ -334,4 +334,4 @@ columns with their associated data types and treat domains as separate types, you could write coalesce(domain_name, udt_name), etc. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-column-udt-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-column-udt-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-column-udt-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-column-udt-usage.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.16. column_udt_usage

    36.16. column_udt_usage

    +36.16. column_udt_usage

    36.16. 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 @@ -49,4 +49,4 @@

    Name of the column -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-constraint-column-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-constraint-column-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-constraint-column-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-constraint-column-usage.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.18. constraint_column_usage

    36.18. constraint_column_usage

    +36.18. constraint_column_usage

    36.18. 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 @@ -52,4 +52,4 @@

    Name of the constraint -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-constraint-table-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-constraint-table-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-constraint-table-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-constraint-table-usage.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.19. constraint_table_usage

    36.19. constraint_table_usage

    +36.19. constraint_table_usage

    36.19. 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 @@ -47,4 +47,4 @@

    Name of the constraint -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-data-type-privileges.html postgresql-13-13.7/doc/src/sgml/html/infoschema-data-type-privileges.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-data-type-privileges.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-data-type-privileges.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.20. data_type_privileges

    36.20. data_type_privileges

    +36.20. data_type_privileges

    36.20. 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 @@ -49,4 +49,4 @@

    The identifier of the data type descriptor, which is unique among the data type descriptors for that same object. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-datatypes.html postgresql-13-13.7/doc/src/sgml/html/infoschema-datatypes.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-datatypes.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-datatypes.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.2. Data Types

    36.2. 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 @@ -30,4 +30,4 @@

    Every column in the information schema has one of these five types. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-domain-constraints.html postgresql-13-13.7/doc/src/sgml/html/infoschema-domain-constraints.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-domain-constraints.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-domain-constraints.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.21. domain_constraints

    36.21. domain_constraints

    +36.21. domain_constraints

    36.21. 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 @@ -49,4 +49,4 @@

    YES if the constraint is deferrable and initially deferred, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-domains.html postgresql-13-13.7/doc/src/sgml/html/infoschema-domains.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-domains.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-domains.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.23. domains

    36.23. domains

    +36.23. domains

    36.23. 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). @@ -193,4 +193,4 @@ instances of such identifiers. (The specific format of the identifier is not defined and not guaranteed to remain the same in future versions.) -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-domain-udt-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-domain-udt-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-domain-udt-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-domain-udt-usage.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.22. domain_udt_usage

    36.22. domain_udt_usage

    +36.22. domain_udt_usage

    36.22. 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 @@ -40,4 +40,4 @@

    Name of the domain -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-element-types.html postgresql-13-13.7/doc/src/sgml/html/infoschema-element-types.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-element-types.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-element-types.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.24. element_types

    36.24. element_types

    +36.24. element_types

    36.24. 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 @@ -191,4 +191,4 @@

    An identifier of the data type descriptor of the element. This is currently not useful. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-enabled-roles.html postgresql-13-13.7/doc/src/sgml/html/infoschema-enabled-roles.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-enabled-roles.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-enabled-roles.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.25. enabled_roles

    36.25. enabled_roles

    +36.25. enabled_roles

    36.25. 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 @@ -25,4 +25,4 @@

    Name of a role -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.26. foreign_data_wrapper_options

    36.26. foreign_data_wrapper_options

    +36.26. foreign_data_wrapper_options

    36.26. 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 @@ -30,4 +30,4 @@

    Value of the option -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-data-wrappers.html postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-data-wrappers.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-data-wrappers.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-data-wrappers.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.27. foreign_data_wrappers

    36.27. foreign_data_wrappers

    +36.27. foreign_data_wrappers

    36.27. 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 @@ -35,4 +35,4 @@

    Language used to implement this foreign-data wrapper -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-server-options.html postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-server-options.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-server-options.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-server-options.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.28. foreign_server_options

    36.28. foreign_server_options

    +36.28. foreign_server_options

    36.28. 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 @@ -29,4 +29,4 @@

    Value of the option -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-servers.html postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-servers.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-servers.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-servers.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.29. foreign_servers

    36.29. foreign_servers

    +36.29. foreign_servers

    36.29. 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 @@ -45,4 +45,4 @@

    Name of the owner of the foreign server -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-table-options.html postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-table-options.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-table-options.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-table-options.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.30. foreign_table_options

    36.30. foreign_table_options

    +36.30. foreign_table_options

    36.30. 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 @@ -34,4 +34,4 @@

    Value of the option -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-tables.html postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-tables.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-foreign-tables.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-foreign-tables.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.31. foreign_tables

    36.31. foreign_tables

    +36.31. foreign_tables

    36.31. 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 @@ -34,4 +34,4 @@

    Name of the foreign server -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-information-schema-catalog-name.html postgresql-13-13.7/doc/src/sgml/html/infoschema-information-schema-catalog-name.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-information-schema-catalog-name.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-information-schema-catalog-name.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.3. information_schema_catalog_name

    36.3. information_schema_catalog_name

    +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). @@ -13,4 +13,4 @@

    Name of the database that contains this information schema -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-key-column-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-key-column-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-key-column-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-key-column-usage.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.32. key_column_usage

    36.32. key_column_usage

    +36.32. key_column_usage

    36.32. 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 @@ -62,4 +62,4 @@ For a foreign-key constraint, ordinal position of the referenced column within its unique constraint (count starts at 1); otherwise null -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-parameters.html postgresql-13-13.7/doc/src/sgml/html/infoschema-parameters.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-parameters.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-parameters.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.33. parameters

    36.33. parameters

    +36.33. parameters

    36.33. 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 @@ -185,4 +185,4 @@

    The default expression of the parameter, or null if none or if the function is not owned by a currently enabled role. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-referential-constraints.html postgresql-13-13.7/doc/src/sgml/html/infoschema-referential-constraints.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-referential-constraints.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-referential-constraints.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.34. referential_constraints

    36.34. referential_constraints

    +36.34. referential_constraints

    36.34. 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 @@ -67,4 +67,4 @@ CASCADE, SET NULL, SET DEFAULT, RESTRICT, or NO ACTION. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-role-column-grants.html postgresql-13-13.7/doc/src/sgml/html/infoschema-role-column-grants.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-role-column-grants.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-role-column-grants.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.35. role_column_grants

    36.35. role_column_grants

    +36.35. role_column_grants

    36.35. 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 @@ -55,4 +55,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-role-routine-grants.html postgresql-13-13.7/doc/src/sgml/html/infoschema-role-routine-grants.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-role-routine-grants.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-role-routine-grants.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.36. role_routine_grants

    36.36. role_routine_grants

    +36.36. role_routine_grants

    36.36. 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 @@ -63,4 +63,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-role-table-grants.html postgresql-13-13.7/doc/src/sgml/html/infoschema-role-table-grants.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-role-table-grants.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-role-table-grants.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.37. role_table_grants

    36.37. role_table_grants

    +36.37. role_table_grants

    36.37. 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 @@ -61,4 +61,4 @@ in the SELECT privilege, so this column shows YES if the privilege is SELECT, else NO. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-role-udt-grants.html postgresql-13-13.7/doc/src/sgml/html/infoschema-role-udt-grants.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-role-udt-grants.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-role-udt-grants.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.38. role_udt_grants

    36.38. role_udt_grants

    +36.38. role_udt_grants

    36.38. 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 @@ -50,4 +50,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-role-usage-grants.html postgresql-13-13.7/doc/src/sgml/html/infoschema-role-usage-grants.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-role-usage-grants.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-role-usage-grants.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.39. role_usage_grants

    36.39. role_usage_grants

    +36.39. role_usage_grants

    36.39. 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. @@ -54,4 +54,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-routine-privileges.html postgresql-13-13.7/doc/src/sgml/html/infoschema-routine-privileges.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-routine-privileges.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-routine-privileges.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.40. routine_privileges

    36.40. routine_privileges

    +36.40. routine_privileges

    36.40. 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, @@ -59,4 +59,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-routines.html postgresql-13-13.7/doc/src/sgml/html/infoschema-routines.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-routines.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-routines.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.41. routines

    36.41. routines

    +36.41. routines

    36.41. routines

    The view routines contains all functions and procedures in the current database. Only those functions and procedures are shown that the current user has access to (by way of being the owner or having some @@ -461,4 +461,4 @@

    Applies to a feature not available in PostgreSQL -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-schema.html postgresql-13-13.7/doc/src/sgml/html/infoschema-schema.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-schema.html 2021-08-09 21:02:54.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-schema.html 2022-05-09 21:29:13.000000000 +0000 @@ -1,5 +1,5 @@ -36.1. The Schema

    36.1. The Schema

    +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 @@ -13,4 +13,4 @@ schema are generic names that might occur in user applications, you should be careful if you want to put the information schema in the path. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-schemata.html postgresql-13-13.7/doc/src/sgml/html/infoschema-schemata.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-schemata.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-schemata.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.42. schemata

    36.42. schemata

    +36.42. schemata

    36.42. 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). @@ -43,4 +43,4 @@

    Applies to a feature not available in PostgreSQL -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-sequences.html postgresql-13-13.7/doc/src/sgml/html/infoschema-sequences.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-sequences.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-sequences.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.43. sequences

    36.43. sequences

    +36.43. sequences

    36.43. 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 @@ -84,4 +84,4 @@


    Note that in accordance with the SQL standard, the start, minimum, maximum, and increment values are returned as character strings. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-sql-features.html postgresql-13-13.7/doc/src/sgml/html/infoschema-sql-features.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-sql-features.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-sql-features.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.44. sql_features

    36.44. sql_features

    +36.44. sql_features

    36.44. sql_features

    The table sql_features contains information about which formal features defined in the SQL standard are supported by PostgreSQL. This is the @@ -47,4 +47,4 @@

    Possibly a comment about the supported status of the feature -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-sql-implementation-info.html postgresql-13-13.7/doc/src/sgml/html/infoschema-sql-implementation-info.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-sql-implementation-info.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-sql-implementation-info.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.45. sql_implementation_info

    36.45. sql_implementation_info

    +36.45. sql_implementation_info

    36.45. 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 @@ -42,4 +42,4 @@

    Possibly a comment pertaining to the implementation information item -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-sql-parts.html postgresql-13-13.7/doc/src/sgml/html/infoschema-sql-parts.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-sql-parts.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-sql-parts.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.46. sql_parts

    36.46. sql_parts

    +36.46. sql_parts

    36.46. sql_parts

    The table sql_parts contains information about which of the several parts of the SQL standard are supported by PostgreSQL. @@ -36,4 +36,4 @@

    Possibly a comment about the supported status of the part -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-sql-sizing.html postgresql-13-13.7/doc/src/sgml/html/infoschema-sql-sizing.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-sql-sizing.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-sql-sizing.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.47. sql_sizing

    36.47. sql_sizing

    +36.47. sql_sizing

    36.47. sql_sizing

    The table sql_sizing contains information about various size limits and maximum values in PostgreSQL. This information is @@ -35,4 +35,4 @@

    Possibly a comment pertaining to the sizing item -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-table-constraints.html postgresql-13-13.7/doc/src/sgml/html/infoschema-table-constraints.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-table-constraints.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-table-constraints.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.48. table_constraints

    36.48. table_constraints

    +36.48. table_constraints

    36.48. 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. @@ -62,4 +62,4 @@ Applies to a feature not available in PostgreSQL (currently always YES) -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-table-privileges.html postgresql-13-13.7/doc/src/sgml/html/infoschema-table-privileges.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-table-privileges.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-table-privileges.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.49. table_privileges

    36.49. table_privileges

    +36.49. table_privileges

    36.49. 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 @@ -57,4 +57,4 @@ in the SELECT privilege, so this column shows YES if the privilege is SELECT, else NO. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-tables.html postgresql-13-13.7/doc/src/sgml/html/infoschema-tables.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-tables.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-tables.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.50. tables

    36.50. tables

    +36.50. tables

    36.50. 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 @@ -79,4 +79,4 @@

    Not yet implemented -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-transforms.html postgresql-13-13.7/doc/src/sgml/html/infoschema-transforms.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-transforms.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-transforms.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.51. transforms

    36.51. transforms

    +36.51. transforms

    36.51. 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 @@ -52,4 +52,4 @@

    FROM SQL or TO SQL -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-triggered-update-columns.html postgresql-13-13.7/doc/src/sgml/html/infoschema-triggered-update-columns.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-triggered-update-columns.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-triggered-update-columns.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.52. triggered_update_columns

    36.52. triggered_update_columns

    +36.52. triggered_update_columns

    36.52. 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 @@ -48,4 +48,4 @@

    Name of the column that the trigger is defined on -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-triggers.html postgresql-13-13.7/doc/src/sgml/html/infoschema-triggers.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-triggers.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-triggers.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.53. triggers

    36.53. triggers

    +36.53. triggers

    36.53. 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. @@ -147,4 +147,4 @@ respectively. That was how they were named in the SQL:1999 standard. The new naming conforms to SQL:2003 and later. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-udt-privileges.html postgresql-13-13.7/doc/src/sgml/html/infoschema-udt-privileges.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-udt-privileges.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-udt-privileges.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.54. udt_privileges

    36.54. udt_privileges

    +36.54. udt_privileges

    36.54. 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 @@ -47,4 +47,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-usage-privileges.html postgresql-13-13.7/doc/src/sgml/html/infoschema-usage-privileges.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-usage-privileges.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-usage-privileges.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.55. usage_privileges

    36.55. usage_privileges

    +36.55. usage_privileges

    36.55. 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. @@ -63,4 +63,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-user-defined-types.html postgresql-13-13.7/doc/src/sgml/html/infoschema-user-defined-types.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-user-defined-types.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-user-defined-types.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.56. user_defined_types

    36.56. user_defined_types

    +36.56. user_defined_types

    36.56. 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 @@ -165,4 +165,4 @@

    Applies to a feature not available in PostgreSQL -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-user-mapping-options.html postgresql-13-13.7/doc/src/sgml/html/infoschema-user-mapping-options.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-user-mapping-options.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-user-mapping-options.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.57. user_mapping_options

    36.57. user_mapping_options

    +36.57. user_mapping_options

    36.57. 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 @@ -42,4 +42,4 @@ server owner, or the current user is a superuser. The intent is to protect password information stored as user mapping option. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-user-mappings.html postgresql-13-13.7/doc/src/sgml/html/infoschema-user-mappings.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-user-mappings.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-user-mappings.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.58. user_mappings

    36.58. user_mappings

    +36.58. user_mappings

    36.58. 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 @@ -27,4 +27,4 @@

    Name of the foreign server used by this mapping -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-view-column-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-view-column-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-view-column-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-view-column-usage.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.59. view_column_usage

    36.59. view_column_usage

    +36.59. view_column_usage

    36.59. 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 @@ -51,4 +51,4 @@

    Name of the column that is used by the view -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-view-routine-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-view-routine-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-view-routine-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-view-routine-usage.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.60. view_routine_usage

    36.60. view_routine_usage

    +36.60. view_routine_usage

    36.60. 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 @@ -40,4 +40,4 @@

    The specific name of the function. See Section 36.41 for more information. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-views.html postgresql-13-13.7/doc/src/sgml/html/infoschema-views.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-views.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-views.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.62. views

    36.62. views

    +36.62. views

    36.62. 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). @@ -67,4 +67,4 @@

    YES if the view has an INSTEAD OF INSERT trigger defined on it, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/infoschema-view-table-usage.html postgresql-13-13.7/doc/src/sgml/html/infoschema-view-table-usage.html --- postgresql-13-13.4/doc/src/sgml/html/infoschema-view-table-usage.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/infoschema-view-table-usage.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -36.61. view_table_usage

    36.61. view_table_usage

    +36.61. view_table_usage

    36.61. 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 @@ -44,4 +44,4 @@

    Name of the table that is used by the view -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/installation.html postgresql-13-13.7/doc/src/sgml/html/installation.html --- postgresql-13-13.4/doc/src/sgml/html/installation.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/installation.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 16. Installation from Source Code

    Chapter 16. Installation from Source Code

    +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, @@ -10,4 +10,4 @@ Windows, read this chapter if you intend to build with MinGW or Cygwin; but if you intend to build with Microsoft's Visual C++, see Chapter 17 instead. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/installation-platform-notes.html postgresql-13-13.7/doc/src/sgml/html/installation-platform-notes.html --- postgresql-13-13.4/doc/src/sgml/html/installation-platform-notes.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/installation-platform-notes.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -16.7. Platform-Specific Notes

    16.7. Platform-Specific Notes

    +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 @@ -307,4 +307,4 @@

    your DTrace installation is too old to handle probes in static functions. You need Solaris 10u4 or newer to use DTrace. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/install-getsource.html postgresql-13-13.7/doc/src/sgml/html/install-getsource.html --- postgresql-13-13.4/doc/src/sgml/html/install-getsource.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/install-getsource.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,14 +1,14 @@ -16.3. Getting the Source

    16.3. Getting the Source

    - The PostgreSQL 13.4 sources can be obtained from the +16.3. Getting the Source

    16.3. Getting the Source

    + The PostgreSQL 13.7 sources can be obtained from the download section of our website: https://www.postgresql.org/download/. You - should get a file named postgresql-13.4.tar.gz - or postgresql-13.4.tar.bz2. After + should get a file named postgresql-13.7.tar.gz + or postgresql-13.7.tar.bz2. After you have obtained the file, unpack it:

    -gunzip postgresql-13.4.tar.gz
    -tar xf postgresql-13.4.tar
    +gunzip postgresql-13.7.tar.gz
    +tar xf postgresql-13.7.tar
     

    (Use bunzip2 instead of gunzip if you have the .bz2 file. Also, note that most @@ -16,11 +16,11 @@ directly, so you don't really need the separate gunzip or bunzip2 step.) This will create a directory - postgresql-13.4 under the current directory + postgresql-13.7 under the current directory with the PostgreSQL sources. Change into that directory for the rest of the installation procedure.

    You can also get the source directly from the version control repository, see Appendix I. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/install-post.html postgresql-13-13.7/doc/src/sgml/html/install-post.html --- postgresql-13-13.4/doc/src/sgml/html/install-post.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/install-post.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -16.5. Post-Installation Setup

    16.5. Post-Installation Setup

    16.5.1. 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 @@ -100,4 +100,4 @@ user that plans to use the database sets PGHOST. This is not required, however; the settings can be communicated via command line options to most client programs. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/install-procedure.html postgresql-13-13.7/doc/src/sgml/html/install-procedure.html --- postgresql-13-13.4/doc/src/sgml/html/install-procedure.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/install-procedure.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -16.4. Installation Procedure

    16.4. Installation Procedure

    1. Configuration

      +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 @@ -814,4 +814,4 @@ makefiles. Which to use is a matter of preference, but a common habit among developers is to use PROFILE for one-time flag adjustments, while COPT might be kept set all the time. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/install-requirements.html postgresql-13-13.7/doc/src/sgml/html/install-requirements.html --- postgresql-13-13.4/doc/src/sgml/html/install-requirements.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/install-requirements.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -16.2. Requirements

    16.2. Requirements

    +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 @@ -96,10 +96,10 @@ To build the PL/Python server programming language, you need a Python installation with the header files and - the distutils module. The minimum - required version is Python 2.6. + the sysconfig module. The minimum + required version is Python 2.7. Python 3 is supported if it's - version 3.1 or later; but see + version 3.2 or later; but see Section 45.1 when using Python 3.

    @@ -188,4 +188,4 @@ run the regression tests you will temporarily need up to an extra 300 MB. Use the df command to check free disk space. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/install-short.html postgresql-13-13.7/doc/src/sgml/html/install-short.html --- postgresql-13-13.4/doc/src/sgml/html/install-short.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/install-short.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -16.1. Short Version

    16.1. Short Version

    +16.1. Short Version

    16.1. Short Version

     ./configure
     make
    @@ -16,4 +16,4 @@
     

    The long version is the rest of this chapter. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/install-windows-full.html postgresql-13-13.7/doc/src/sgml/html/install-windows-full.html --- postgresql-13-13.4/doc/src/sgml/html/install-windows-full.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/install-windows-full.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,6 +1,6 @@ -17.1. Building with Visual C++ or the Microsoft Windows SDK

    17.1. Building with Visual C++ or the +17.1. Building with Visual C++ or the Microsoft Windows SDK

    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, @@ -8,14 +8,14 @@ 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 2019 or those in the + Visual Studio 2022 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 2013 to - Visual Studio 2019, + Visual Studio 2022, as well as standalone Windows SDK releases 8.1a to 10. 64-bit PostgreSQL builds are supported with Microsoft Windows SDK version 8.1a to 10 or @@ -23,7 +23,7 @@ is supported down to Windows 7 and Windows Server 2008 R2 SP1 when building with Visual Studio 2013 to - Visual Studio 2019. + Visual Studio 2022.

    The tools for building using Visual C++ or @@ -291,4 +291,21 @@ $ENV{PERL5LIB}=$ENV{PERL5LIB} . ';c:\IPC-Run-0.94\lib';

    -

    \ No newline at end of file +

    + Some of the TAP tests depend on a set of external commands that would + optionally trigger tests related to them. Each one of those variables + can be set or unset in buildenv.pl: +

    GZIP_PROGRAM

    + Path to a gzip command. The default is + gzip, that would be the command found in + PATH. +

    LZ4

    + Path to a lz4 command. The default is + lz4, that would be the command found in + PATH. +

    TAR

    + Path to a tar command. The default is + tar, that would be the command found in + PATH. +

    +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/install-windows.html postgresql-13-13.7/doc/src/sgml/html/install-windows.html --- postgresql-13-13.4/doc/src/sgml/html/install-windows.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/install-windows.html 2022-05-09 21:29:09.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 @@ -9,9 +9,9 @@

    There are several different ways of building PostgreSQL on Windows. The simplest way to build with - Microsoft tools is to install Visual Studio 2019 + Microsoft tools is to install Visual Studio 2022 and use the included compiler. It is also possible to build with the full - Microsoft Visual C++ 2013 to 2019. + Microsoft Visual C++ 2013 to 2022. In some cases that requires the installation of the Windows SDK in addition to the compiler.

    @@ -39,5 +39,5 @@ line editing. The Cygwin build does support command line editing, so it should be used where psql is needed for interactive use on Windows. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/multibyte.html postgresql-13-13.7/doc/src/sgml/html/multibyte.html --- postgresql-13-13.4/doc/src/sgml/html/multibyte.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/multibyte.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -23.3. Character Set Support

    23.3. Character Set Support

    +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 @@ -348,4 +348,4 @@ UTF-8 (8-bit UCS/Unicode Transformation Format) is defined here.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/multivariate-statistics-examples.html postgresql-13-13.7/doc/src/sgml/html/multivariate-statistics-examples.html --- postgresql-13-13.4/doc/src/sgml/html/multivariate-statistics-examples.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/multivariate-statistics-examples.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -71.2. Multivariate Statistics Examples

    71.2. Multivariate Statistics Examples

    71.2.1. Functional Dependencies

    +71.2. Multivariate Statistics Examples

    71.2. Multivariate Statistics Examples

    71.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: @@ -207,4 +207,4 @@ Rows Removed by Filter: 10000

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/mvcc-caveats.html postgresql-13-13.7/doc/src/sgml/html/mvcc-caveats.html --- postgresql-13-13.4/doc/src/sgml/html/mvcc-caveats.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/mvcc-caveats.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -13.5. Caveats

    13.5. Caveats

    +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 @@ -31,4 +31,4 @@ contrast, queries that explicitly examine the system catalogs don't see rows representing concurrently created database objects, in the higher isolation levels. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/mvcc.html postgresql-13-13.7/doc/src/sgml/html/mvcc.html --- postgresql-13-13.4/doc/src/sgml/html/mvcc.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/mvcc.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 13. Concurrency Control

    Chapter 13. Concurrency Control

    +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 @@ -7,4 +7,4 @@ sessions while maintaining strict data integrity. Every developer of database applications should be familiar with the topics covered in this chapter. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/mvcc-intro.html postgresql-13-13.7/doc/src/sgml/html/mvcc-intro.html --- postgresql-13-13.4/doc/src/sgml/html/mvcc-intro.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/mvcc-intro.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -13.1. Introduction

    13.1. Introduction

    +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 @@ -34,4 +34,4 @@ performance than locks. In addition, application-defined advisory locks provide a mechanism for acquiring locks that are not tied to a single transaction. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/nls.html postgresql-13-13.7/doc/src/sgml/html/nls.html --- postgresql-13-13.4/doc/src/sgml/html/nls.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/nls.html 2022-05-09 21:29:26.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-13-13.4/doc/src/sgml/html/nls-programmer.html postgresql-13-13.7/doc/src/sgml/html/nls-programmer.html --- postgresql-13-13.4/doc/src/sgml/html/nls-programmer.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/nls-programmer.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -54.2. For the Programmer

    54.2. For the Programmer

    54.2.1. Mechanics

    +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. @@ -151,4 +151,4 @@ These comments are copied to the message catalog files so that the translators can see them.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/nls-translator.html postgresql-13-13.7/doc/src/sgml/html/nls-translator.html --- postgresql-13-13.4/doc/src/sgml/html/nls-translator.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/nls-translator.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -54.1. For the Translator

    54.1. For the Translator

    +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. @@ -215,4 +215,4 @@ speaking end users might also not understand it or find it ambiguous, so it's best to improve the message.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/non-durability.html postgresql-13-13.7/doc/src/sgml/html/non-durability.html --- postgresql-13-13.4/doc/src/sgml/html/non-durability.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/non-durability.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -14.5. Non-Durable Settings

    14.5. Non-Durable Settings

    +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, @@ -36,4 +36,4 @@ tables to avoid WAL writes, though it makes the tables non-crash-safe.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/notation.html postgresql-13-13.7/doc/src/sgml/html/notation.html --- postgresql-13-13.4/doc/src/sgml/html/notation.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/notation.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,13 +1,13 @@ -3. Conventions

    3. Conventions

    +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 + optional parts. Braces ({ and }) and vertical lines (|) indicate that you must choose one alternative. Dots (...) mean that the preceding element - can be repeated. + can be repeated. All other symbols, including parentheses, should be + taken literally.

    Where it enhances the clarity, SQL commands are preceded by the prompt =>, and shell commands are preceded by the @@ -19,4 +19,4 @@ PostgreSQL system. These terms should not be interpreted too narrowly; this book does not have fixed presumptions about system administration procedures. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/oid2name.html postgresql-13-13.7/doc/src/sgml/html/oid2name.html --- postgresql-13-13.4/doc/src/sgml/html/oid2name.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/oid2name.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -oid2name

    oid2name

    oid2name — resolve OIDs and file nodes in a PostgreSQL data directory

    Synopsis

    oid2name [option...]

    Description

    +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 @@ -189,4 +189,4 @@ 155156 foo

    Author

    B. Palmer -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/overview.html postgresql-13-13.7/doc/src/sgml/html/overview.html --- postgresql-13-13.4/doc/src/sgml/html/overview.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/overview.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 50. Overview of PostgreSQL Internals

    Chapter 50. Overview of PostgreSQL Internals

    Author

    +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 @@ -15,4 +15,4 @@ understand the general sequence of operations that occur within the backend from the point at which a query is received, to the point at which the results are returned to the client. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pageinspect.html postgresql-13-13.7/doc/src/sgml/html/pageinspect.html --- postgresql-13-13.4/doc/src/sgml/html/pageinspect.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pageinspect.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.22. pageinspect

    F.22. pageinspect

    +F.22. pageinspect

    F.22. 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. @@ -508,4 +508,4 @@ spares | {0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,4,4,4,45,55,58,59,​508,567,628,704,1193,1202,1204} mapp | {65}

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/parallel-plans.html postgresql-13-13.7/doc/src/sgml/html/parallel-plans.html --- postgresql-13-13.4/doc/src/sgml/html/parallel-plans.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/parallel-plans.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -15.3. Parallel Plans

    15.3. Parallel Plans

    +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 @@ -7,7 +7,7 @@ than normal but would produce incorrect results. Instead, the parallel portion of the plan must be what is known internally to the query optimizer as a partial plan; that is, it must be constructed - so that each process which executes the plan will generate only a + so that each process that executes the plan will generate only a subset of the output rows in such a way that each required output row is guaranteed to be generated by exactly one of the cooperating processes. Generally, this means that the scan on the driving table of the query @@ -77,11 +77,11 @@ plan as a Finalize Aggregate node.

    Because the Finalize Aggregate node runs on the leader - process, queries which produce a relatively large number of groups in + process, queries that produce a relatively large number of groups in comparison to the number of input rows will appear less favorable to the query planner. For example, in the worst-case scenario the number of groups seen by the Finalize Aggregate node could be as many as - the number of input rows which were seen by all worker processes in the + the number of input rows that were seen by all worker processes in the Partial Aggregate stage. For such cases, there is clearly going to be no performance benefit to using parallel aggregation. The query planner takes this into account during the planning process and is @@ -124,7 +124,7 @@ involve appending multiple results sets can therefore achieve coarse-grained parallelism even when efficient partial plans are not available. For example, consider a query against a partitioned table - which can only be implemented efficiently by using an index that does + that can only be implemented efficiently by using an index that does not support parallel scans. The planner might choose a Parallel Append of regular Index Scan plans; each individual index scan would have to be executed to completion by a single @@ -137,7 +137,7 @@ If a query that is expected to do so does not produce a parallel plan, you can try reducing parallel_setup_cost or parallel_tuple_cost. Of course, this plan may turn - out to be slower than the serial plan which the planner preferred, but + out to be slower than the serial plan that the planner preferred, but this will not always be the case. If you don't get a parallel plan even with very small values of these settings (e.g., after setting them both to zero), there may be some reason why the query planner is @@ -151,4 +151,4 @@ This may be useful in determining whether the work is being evenly distributed between all plan nodes and more generally in understanding the performance characteristics of the plan. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/parallel-query.html postgresql-13-13.7/doc/src/sgml/html/parallel-query.html --- postgresql-13-13.4/doc/src/sgml/html/parallel-query.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/parallel-query.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,10 +1,10 @@ -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 that 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 - imaginable query plan which is any faster than the serial query plan. + imaginable query plan that is any faster than the serial query plan. However, for queries that can benefit, the speedup from parallel query is often very significant. Many queries can run more than twice as fast when using parallel query, and some queries can run four times faster or @@ -12,4 +12,4 @@ few rows to the user will typically benefit most. This chapter explains some details of how parallel query works and in which situations it can be used so that users who wish to make use of it can understand what to expect. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/parallel-safety.html postgresql-13-13.7/doc/src/sgml/html/parallel-safety.html --- postgresql-13-13.4/doc/src/sgml/html/parallel-safety.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/parallel-safety.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,16 +1,16 @@ -15.4. Parallel Safety

    15.4. Parallel Safety

    +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 + or parallel unsafe. A parallel safe operation is one that does not conflict with the use of parallel query. A parallel restricted - operation is one which cannot be performed in a parallel worker, but which + operation is one that cannot be performed in a parallel worker, but that can be performed in the leader while parallel query is in use. Therefore, parallel restricted operations can never occur below a Gather - or Gather Merge node, but can occur elsewhere in a plan which - contains such a node. A parallel unsafe operation is one which cannot + or Gather Merge node, but can occur elsewhere in a plan that + contains such a node. A parallel unsafe operation is one that cannot be performed while parallel query is in use, not even in the leader. - When a query contains anything which is parallel unsafe, parallel query + When a query contains anything that is parallel unsafe, parallel query is completely disabled for that query.

    The following operations are always parallel restricted: @@ -20,15 +20,15 @@ Scans of temporary tables.

  • Scans of foreign tables, unless the foreign data wrapper has - an IsForeignScanParallelSafe API which indicates otherwise. + an IsForeignScanParallelSafe API that indicates otherwise.

  • Plan nodes to which an InitPlan is attached.

  • - Plan nodes which reference a correlated SubPlan. + Plan nodes that reference a correlated SubPlan.

  • 15.4.1. Parallel Labeling for Functions and Aggregates

    The planner cannot automatically determine whether a user-defined function or aggregate is parallel safe, parallel restricted, or parallel - unsafe, because this would require predicting every operation which the + unsafe, because this would require predicting every operation that the function could possibly perform. In general, this is equivalent to the Halting Problem and therefore impossible. Even for simple functions where it could conceivably be done, we do not try, since this would be expensive @@ -44,11 +44,11 @@

    Functions and aggregates must be marked PARALLEL UNSAFE if they write to the database, access sequences, change the transaction state - even temporarily (e.g., a PL/pgSQL function which establishes an + even temporarily (e.g., a PL/pgSQL function that establishes an EXCEPTION block to catch errors), or make persistent changes to settings. Similarly, functions must be marked PARALLEL RESTRICTED if they access temporary tables, client connection state, - cursors, prepared statements, or miscellaneous backend-local state which + cursors, prepared statements, or miscellaneous backend-local state that the system cannot synchronize across workers. For example, setseed and random are parallel restricted for this last reason. @@ -62,10 +62,10 @@ for any other function. If in doubt, it is probably best to label functions as UNSAFE.

    - If a function executed within a parallel worker acquires locks which are + If a function executed within a parallel worker acquires locks that are not held by the leader, for example by querying a table not referenced in the query, those locks will be released at worker exit, not end of - transaction. If you write a function which does this, and this behavior + transaction. If you write a function that does this, and this behavior difference is important to you, mark such functions as PARALLEL RESTRICTED to ensure that they execute only in the leader. @@ -80,4 +80,4 @@ the parallel portion of the query and defer the evaluation of the WHERE clause so that it happens above the Gather node. However, the planner does not do this. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/parser-stage.html postgresql-13-13.7/doc/src/sgml/html/parser-stage.html --- postgresql-13-13.4/doc/src/sgml/html/parser-stage.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/parser-stage.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -50.3. The Parser Stage

    50.3. The Parser Stage

    +50.3. The Parser Stage

    50.3. The Parser Stage

    The parser stage consists of two parts:

    • @@ -88,4 +88,4 @@ name turns out to be an ordinary function or an aggregate function. Also, information about the actual data types of columns and expression results is added to the query tree. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/passwordcheck.html postgresql-13-13.7/doc/src/sgml/html/passwordcheck.html --- postgresql-13-13.4/doc/src/sgml/html/passwordcheck.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/passwordcheck.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.23. passwordcheck

    F.23. passwordcheck

    +F.23. passwordcheck

    F.23. passwordcheck

    The passwordcheck module checks users' passwords whenever they are set with CREATE ROLE or @@ -39,4 +39,4 @@ Alternatively, you could modify passwordcheck to reject pre-encrypted passwords, but forcing users to set their passwords in clear text carries its own security risks. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/performance-tips.html postgresql-13-13.7/doc/src/sgml/html/performance-tips.html --- postgresql-13-13.4/doc/src/sgml/html/performance-tips.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/performance-tips.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,7 +1,7 @@ -Chapter 14. Performance Tips

    Chapter 14. Performance Tips

    +Chapter 14. Performance Tips

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/perm-functions.html postgresql-13-13.7/doc/src/sgml/html/perm-functions.html --- postgresql-13-13.4/doc/src/sgml/html/perm-functions.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/perm-functions.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -21.6. Function Security

    21.6. Function Security

    +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 @@ -19,4 +19,4 @@ are considered untrusted, and PostgreSQL allows only superusers to create functions written in those languages. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgarchivecleanup.html postgresql-13-13.7/doc/src/sgml/html/pgarchivecleanup.html --- postgresql-13-13.4/doc/src/sgml/html/pgarchivecleanup.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgarchivecleanup.html 2022-05-09 21:29:24.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

    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). @@ -91,4 +91,4 @@ produce debugging output in cleanup.log

  • remove no-longer-needed files from the archive directory -

  • See Also

    pg_standby
    \ No newline at end of file +

    See Also

    pg_standby
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgbench.html postgresql-13-13.7/doc/src/sgml/html/pgbench.html --- postgresql-13-13.4/doc/src/sgml/html/pgbench.html 2021-08-09 21:03:04.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgbench.html 2022-05-09 21:29:23.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

    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, @@ -1399,4 +1399,4 @@ do not run pgbench in that database. pgbench uses unqualified names and does not manipulate the search path. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgbuffercache.html postgresql-13-13.7/doc/src/sgml/html/pgbuffercache.html --- postgresql-13-13.4/doc/src/sgml/html/pgbuffercache.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgbuffercache.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.24. pg_buffercache

    F.24. pg_buffercache

    +F.24. pg_buffercache

    F.24. pg_buffercache

    The pg_buffercache module provides a means for examining what's happening in the shared buffer cache in real time.

    @@ -115,4 +115,4 @@ Design suggestions: Neil Conway

    Debugging advice: Tom Lane -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgcrypto.html postgresql-13-13.7/doc/src/sgml/html/pgcrypto.html --- postgresql-13-13.4/doc/src/sgml/html/pgcrypto.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgcrypto.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.25. pgcrypto

    F.25. pgcrypto

    +F.25. pgcrypto

    F.25. pgcrypto

    The pgcrypto module provides cryptographic functions for PostgreSQL.

    @@ -506,6 +506,11 @@ Also public-key encryption functions will be faster as OpenSSL has more optimized BIGNUM functions.

    Table F.19. Summary of Functionality with and without OpenSSL

    FunctionalityBuilt-inWith OpenSSL
    MD5yesyes
    SHA1yesyes
    SHA224/256/384/512yesyes
    Other digest algorithmsnoyes (Note 1)
    Blowfishyesyes
    AESyesyes
    DES/3DES/CAST5noyes
    Raw encryptionyesyes
    PGP Symmetric encryptionyesyes
    PGP Public-Key encryptionyesyes

    + When compiled against OpenSSL 3.0.0 and later + versions, the legacy provider must be activated in the + openssl.cnf configuration file in order to use older + ciphers like DES or Blowfish. +

    Notes:

    1. Any digest algorithm OpenSSL supports is automatically picked up. @@ -539,4 +544,4 @@ Marko Kreen

      pgcrypto uses code from the following sources: -

      AlgorithmAuthorSource origin
      DES cryptDavid Burren and othersFreeBSD libcrypt
      MD5 cryptPoul-Henning KampFreeBSD libcrypt
      Blowfish cryptSolar Designerwww.openwall.com
      Blowfish cipherSimon TathamPuTTY
      Rijndael cipherBrian GladmanOpenBSD sys/crypto
      MD5 hash and SHA1WIDE ProjectKAME kame/sys/crypto
      SHA256/384/512 Aaron D. GiffordOpenBSD sys/crypto
      BIGNUM mathMichael J. Frombergerdartmouth.edu/~sting/sw/imath
    \ No newline at end of file +

    AlgorithmAuthorSource origin
    DES cryptDavid Burren and othersFreeBSD libcrypt
    MD5 cryptPoul-Henning KampFreeBSD libcrypt
    Blowfish cryptSolar Designerwww.openwall.com
    Blowfish cipherSimon TathamPuTTY
    Rijndael cipherBrian GladmanOpenBSD sys/crypto
    MD5 hash and SHA1WIDE ProjectKAME kame/sys/crypto
    SHA256/384/512 Aaron D. GiffordOpenBSD sys/crypto
    BIGNUM mathMichael J. Frombergerdartmouth.edu/~sting/sw/imath
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgfreespacemap.html postgresql-13-13.7/doc/src/sgml/html/pgfreespacemap.html --- postgresql-13-13.4/doc/src/sgml/html/pgfreespacemap.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgfreespacemap.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.26. pg_freespacemap

    F.26. pg_freespacemap

    +F.26. pg_freespacemap

    F.26. 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 @@ -67,4 +67,4 @@ Original version by Mark Kirkwood . Rewritten in version 8.4 to suit new FSM implementation by Heikki Linnakangas -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgprewarm.html postgresql-13-13.7/doc/src/sgml/html/pgprewarm.html --- postgresql-13-13.4/doc/src/sgml/html/pgprewarm.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgprewarm.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.27. pg_prewarm

    F.27. pg_prewarm

    +F.27. pg_prewarm

    F.27. 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. Prewarming @@ -69,4 +69,4 @@ dumped at regular intervals, but only when the server is shut down.

    F.27.3. Author

    Robert Haas -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgrowlocks.html postgresql-13-13.7/doc/src/sgml/html/pgrowlocks.html --- postgresql-13-13.4/doc/src/sgml/html/pgrowlocks.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgrowlocks.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.28. pgrowlocks

    F.28. pgrowlocks

    +F.28. pgrowlocks

    F.28. pgrowlocks

    The pgrowlocks module provides a function to show row locking information for a specified table.

    @@ -48,4 +48,4 @@ (4 rows)

    F.28.3. Author

    Tatsuo Ishii -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgstandby.html postgresql-13-13.7/doc/src/sgml/html/pgstandby.html --- postgresql-13-13.4/doc/src/sgml/html/pgstandby.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgstandby.html 2022-05-09 21:29:31.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

    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. @@ -192,4 +192,4 @@ network.

    Author

    Simon Riggs -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgstatstatements.html postgresql-13-13.7/doc/src/sgml/html/pgstatstatements.html --- postgresql-13-13.4/doc/src/sgml/html/pgstatstatements.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgstatstatements.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.29. pg_stat_statements

    F.29. pg_stat_statements

    +F.29. pg_stat_statements

    F.29. pg_stat_statements

    The pg_stat_statements module provides a means for tracking planning and execution statistics of all SQL statements executed by a server. @@ -501,4 +501,4 @@

    F.29.5. Authors

    Takahiro Itagaki . Query normalization added by Peter Geoghegan . -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgstattuple.html postgresql-13-13.7/doc/src/sgml/html/pgstattuple.html --- postgresql-13-13.4/doc/src/sgml/html/pgstattuple.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgstattuple.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.30. pgstattuple

    F.30. pgstattuple

    +F.30. pgstattuple

    F.30. pgstattuple

    The pgstattuple module provides various functions to obtain tuple-level statistics.

    @@ -196,4 +196,4 @@ accurate to the byte.

    F.30.2. Authors

    Tatsuo Ishii, Satoshi Nagayasu and Abhijit Menon-Sen -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgtestfsync.html postgresql-13-13.7/doc/src/sgml/html/pgtestfsync.html --- postgresql-13-13.4/doc/src/sgml/html/pgtestfsync.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgtestfsync.html 2022-05-09 21:29:24.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

    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, @@ -38,4 +38,4 @@ color in diagnostic messages. Possible values are always, auto and never. -

    See Also

    postgres
    \ No newline at end of file +

    See Also

    postgres
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgtesttiming.html postgresql-13-13.7/doc/src/sgml/html/pgtesttiming.html --- postgresql-13-13.4/doc/src/sgml/html/pgtesttiming.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgtesttiming.html 2022-05-09 21:29:24.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

    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 @@ -176,4 +176,4 @@ Timer (PIT), the real-time clock (RTC), the Advanced Programmable Interrupt Controller (APIC) timer, and the Cyclone timer. These timers aim for millisecond resolution. -

    See Also

    EXPLAIN
    \ No newline at end of file +

    See Also

    EXPLAIN
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgtrgm.html postgresql-13-13.7/doc/src/sgml/html/pgtrgm.html --- postgresql-13-13.4/doc/src/sgml/html/pgtrgm.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgtrgm.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.31. pg_trgm

    F.31. pg_trgm

    +F.31. pg_trgm

    F.31. pg_trgm

    The pg_trgm module provides functions and operators for determining the similarity of alphanumeric text based on trigram matching, as @@ -420,4 +420,4 @@ Documentation: Christopher Kings-Lynne

    This module is sponsored by Delta-Soft Ltd., Moscow, Russia. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgupgrade.html postgresql-13-13.7/doc/src/sgml/html/pgupgrade.html --- postgresql-13-13.4/doc/src/sgml/html/pgupgrade.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgupgrade.html 2022-05-09 21:29:24.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

    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 @@ -426,4 +426,4 @@ to make a backup of the old cluster and tablespaces, though the snapshot and copies must be created simultaneously or while the database server is down. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgvisibility.html postgresql-13-13.7/doc/src/sgml/html/pgvisibility.html --- postgresql-13-13.4/doc/src/sgml/html/pgvisibility.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgvisibility.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.32. pg_visibility

    F.32. pg_visibility

    +F.32. pg_visibility

    F.32. 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 @@ -66,4 +66,4 @@ be executed by superusers.

    F.32.2. Author

    Robert Haas -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgwaldump.html postgresql-13-13.7/doc/src/sgml/html/pgwaldump.html --- postgresql-13-13.4/doc/src/sgml/html/pgwaldump.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgwaldump.html 2022-05-09 21:29:24.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 [endseg]]

    Description

    +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.

    @@ -73,4 +73,4 @@ pg_waldump cannot read WAL files with suffix .partial. If those files need to be read, .partial suffix needs to be removed from the file name. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pgxlogdump.html postgresql-13-13.7/doc/src/sgml/html/pgxlogdump.html --- postgresql-13-13.4/doc/src/sgml/html/pgxlogdump.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pgxlogdump.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,10 +1,10 @@ -O.2. pg_xlogdump renamed to pg_waldump

    O.2. pg_xlogdump renamed to pg_waldump

    +O.2. pg_xlogdump renamed to pg_waldump

    O.2. pg_xlogdump renamed to pg_waldump

    PostgreSQL 9.6 and below provided a command named pg_xlogdump to read write-ahead-log (WAL) files. This command was renamed to pg_waldump, see pg_waldump for documentation of pg_waldump and see - the release notes for PostgreSQL 10 for details + the release notes for PostgreSQL 10 for details on this change. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/planner-optimizer.html postgresql-13-13.7/doc/src/sgml/html/planner-optimizer.html --- postgresql-13-13.4/doc/src/sgml/html/planner-optimizer.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/planner-optimizer.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -50.5. Planner/Optimizer

    50.5. Planner/Optimizer

    +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 @@ -108,4 +108,4 @@ WHERE clause and computation of required output expressions to the most appropriate nodes of the plan tree. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/planner-stats-details.html postgresql-13-13.7/doc/src/sgml/html/planner-stats-details.html --- postgresql-13-13.4/doc/src/sgml/html/planner-stats-details.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/planner-stats-details.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 71. How the Planner Uses Statistics

    Chapter 71. How the Planner Uses Statistics

    +Chapter 71. How the Planner Uses Statistics

    Chapter 71. 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 @@ -10,4 +10,4 @@ but to present an overview of how it works. This will perhaps ease the learning curve for someone who subsequently wishes to read the code. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/planner-stats.html postgresql-13-13.7/doc/src/sgml/html/planner-stats.html --- postgresql-13-13.4/doc/src/sgml/html/planner-stats.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/planner-stats.html 2022-05-09 21:29:08.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

    +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 @@ -281,7 +281,7 @@ for which misestimation of the number of groups is resulting in bad plans. Otherwise, the ANALYZE cycles are just wasted.

    14.2.2.3. Multivariate MCV Lists

    - Another type of statistics stored for each column are most-common value + Another type of statistic stored for each column are most-common value lists. This allows very accurate estimates for individual columns, but may result in significant misestimates for queries with conditions on multiple columns. @@ -333,4 +333,4 @@ and for which misestimation of the number of groups is resulting in bad plans. Otherwise, the ANALYZE and planning cycles are just wasted. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/planner-stats-security.html postgresql-13-13.7/doc/src/sgml/html/planner-stats-security.html --- postgresql-13-13.4/doc/src/sgml/html/planner-stats-security.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/planner-stats-security.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -71.3. Planner Statistics and Security

    71.3. Planner Statistics and Security

    +71.3. Planner Statistics and Security

    71.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 @@ -46,4 +46,4 @@ Selectivity estimation functions contained in third-party extensions that potentially operate on statistics with user-defined operators should follow the same security rules. Consult the PostgreSQL source code for guidance. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plhandler.html postgresql-13-13.7/doc/src/sgml/html/plhandler.html --- postgresql-13-13.4/doc/src/sgml/html/plhandler.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plhandler.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 55. Writing a Procedural Language Handler

    Chapter 55. Writing a Procedural Language Handler

    +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 @@ -203,4 +203,4 @@ Look into the src/pl subdirectory of the source tree. The CREATE LANGUAGE reference page also has some useful details. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plperl-builtins.html postgresql-13-13.7/doc/src/sgml/html/plperl-builtins.html --- postgresql-13-13.4/doc/src/sgml/html/plperl-builtins.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plperl-builtins.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -44.3. Built-in Functions

    44.3. Built-in Functions

    44.3.1. Database Access from PL/Perl

    +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:

    @@ -348,4 +348,4 @@ Returns a true value if the given argument may be treated as an array reference, that is, if ref of the argument is ARRAY or PostgreSQL::InServer::ARRAY. Returns false otherwise. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plperl-data.html postgresql-13-13.7/doc/src/sgml/html/plperl-data.html --- postgresql-13-13.4/doc/src/sgml/html/plperl-data.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plperl-data.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -44.2. Data Values in PL/Perl

    44.2. Data Values in PL/Perl

    +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). @@ -11,4 +11,4 @@ improved by using a transform, as already illustrated for bool values. Several examples of transform modules are included in the PostgreSQL distribution. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plperl-event-triggers.html postgresql-13-13.7/doc/src/sgml/html/plperl-event-triggers.html --- postgresql-13-13.4/doc/src/sgml/html/plperl-event-triggers.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plperl-event-triggers.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -44.7. PL/Perl Event Triggers

    44.7. PL/Perl Event Triggers

    +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, @@ -25,4 +25,4 @@ ON ddl_command_start EXECUTE FUNCTION perlsnitch();

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plperl-funcs.html postgresql-13-13.7/doc/src/sgml/html/plperl-funcs.html --- postgresql-13-13.4/doc/src/sgml/html/plperl-funcs.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plperl-funcs.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -44.1. PL/Perl Functions and Arguments

    44.1. PL/Perl Functions and Arguments

    +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: @@ -305,4 +305,4 @@ at the top of the function body.

    The feature pragma is also available to use if your Perl is version 5.10.0 or higher. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plperl-global.html postgresql-13-13.7/doc/src/sgml/html/plperl-global.html --- postgresql-13-13.4/doc/src/sgml/html/plperl-global.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plperl-global.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -44.4. Global Values in PL/Perl

    44.4. Global Values in PL/Perl

    +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. @@ -62,4 +62,4 @@ functions that should communicate are owned by the same user, and mark them SECURITY DEFINER. You must of course take care that such functions can't be used to do anything unintended. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plperl.html postgresql-13-13.7/doc/src/sgml/html/plperl.html --- postgresql-13-13.4/doc/src/sgml/html/plperl.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plperl.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 44. PL/Perl — Perl Procedural Language

    Chapter 44. PL/Perl — Perl Procedural Language

    +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 and procedures in the Perl programming language. @@ -19,4 +19,4 @@ Users of source packages must specially enable the build of PL/Perl during the installation process. (Refer to Chapter 16 for more information.) Users of binary packages might find PL/Perl in a separate subpackage. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plperl-triggers.html postgresql-13-13.7/doc/src/sgml/html/plperl-triggers.html --- postgresql-13-13.4/doc/src/sgml/html/plperl-triggers.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plperl-triggers.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -44.6. PL/Perl Triggers

    44.6. PL/Perl Triggers

    +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, @@ -71,4 +71,4 @@ BEFORE INSERT OR UPDATE ON test FOR EACH ROW EXECUTE FUNCTION valid_id();

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plperl-trusted.html postgresql-13-13.7/doc/src/sgml/html/plperl-trusted.html --- postgresql-13-13.4/doc/src/sgml/html/plperl-trusted.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plperl-trusted.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -44.5. Trusted and Untrusted PL/Perl

    44.5. Trusted and Untrusted PL/Perl

    +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 @@ -69,4 +69,4 @@ session, and so any one session can only execute either PL/PerlU functions, or PL/Perl functions that are all called by the same SQL role. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plperl-under-the-hood.html postgresql-13-13.7/doc/src/sgml/html/plperl-under-the-hood.html --- postgresql-13-13.4/doc/src/sgml/html/plperl-under-the-hood.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plperl-under-the-hood.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -44.8. PL/Perl Under the Hood

    44.8. PL/Perl Under the Hood

    44.8.1. Configuration

    +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) @@ -108,4 +108,4 @@ file handles are not automatically flushed and objects are not automatically destroyed.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-control-structures.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-control-structures.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-control-structures.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-control-structures.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.6. Control Structures

    42.6. Control Structures

    +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, @@ -936,4 +936,4 @@ GET STACKED DIAGNOSTICS ... PG_EXCEPTION_CONTEXT returns the same sort of stack trace, but describing the location at which an error was detected, rather than the current location. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-cursors.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-cursors.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-cursors.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-cursors.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.7. Cursors

    42.7. Cursors

    +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 @@ -383,4 +383,4 @@ existing definition of the variable name is ignored within the loop). Each row returned by the cursor is successively assigned to this record variable and the loop body is executed. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-declarations.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-declarations.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-declarations.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-declarations.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.3. Declarations

    42.3. Declarations

    +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 @@ -415,4 +415,4 @@ This overrides the collations associated with the table columns, parameters, or local variables used in the expression, just as would happen in a plain SQL command. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-development-tips.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-development-tips.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-development-tips.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-development-tips.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.12. Tips for Developing in PL/pgSQL

    42.12. Tips for Developing in PL/pgSQL

    +42.12. Tips for Developing in PL/pgSQL

    42.12. 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 @@ -225,4 +225,4 @@ (1 row)

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-errors-and-messages.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-errors-and-messages.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-errors-and-messages.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-errors-and-messages.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.9. Errors and Messages

    42.9. Errors and Messages

    42.9.1. Reporting Errors and Messages

    +42.9. Errors and Messages

    42.9. Errors and Messages

    42.9.1. Reporting Errors and Messages

    Use the RAISE statement to report messages and raise errors. @@ -145,4 +145,4 @@ Note that ASSERT is meant for detecting program bugs, not for reporting ordinary error conditions. Use the RAISE statement, described above, for that. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-expressions.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-expressions.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-expressions.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-expressions.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.4. Expressions

    42.4. Expressions

    +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 @@ -36,4 +36,4 @@ not important to a PL/pgSQL user, but they are useful to know when trying to diagnose a problem. More information appears in Section 42.11.2. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql.html postgresql-13-13.7/doc/src/sgml/html/plpgsql.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 42. PL/pgSQL — SQL Procedural Language

    Chapter 42. PL/pgSQLSQL Procedural Language

    \ No newline at end of file +Chapter 42. PL/pgSQL — SQL Procedural Language

    Chapter 42. PL/pgSQLSQL Procedural Language

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-implementation.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-implementation.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-implementation.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-implementation.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.11. PL/pgSQL under the Hood

    42.11. PL/pgSQL under the Hood

    +42.11. PL/pgSQL under the Hood

    42.11. PL/pgSQL under the Hood

    This section discusses some implementation details that are frequently important for PL/pgSQL users to know.

    42.11.1. Variable Substitution

    @@ -265,4 +265,4 @@ on each execution as the programmer expects. Even though this happens to work as expected, it's not terribly efficient, so use of the now() function would still be a better idea. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-overview.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-overview.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-overview.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-overview.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.1. Overview

    42.1. Overview

    +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 @@ -100,4 +100,4 @@ Specific examples appear in Section 42.3.1 and Section 42.6.1. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-porting.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-porting.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-porting.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-porting.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.13. Porting from Oracle PL/SQL

    42.13. Porting from Oracle PL/SQL

    +42.13. Porting from Oracle PL/SQL

    42.13. Porting from Oracle PL/SQL

    This section explains differences between PostgreSQL's PL/pgSQL language and Oracle's PL/SQL language, @@ -556,4 +556,4 @@ END; $$ LANGUAGE plpgsql STRICT IMMUTABLE; -

    \ No newline at end of file + \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-statements.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-statements.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-statements.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-statements.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.5. Basic Statements

    42.5. Basic Statements

    +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. @@ -549,4 +549,4 @@ NULL statements are required for situations such as this. PL/pgSQL allows you to just write nothing, instead. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-structure.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-structure.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-structure.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-structure.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.2. Structure of PL/pgSQL

    42.2. Structure of PL/pgSQL

    +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, @@ -105,4 +105,4 @@ Also, a block containing an EXCEPTION clause effectively forms a subtransaction that can be rolled back without affecting the outer transaction. For more about that see Section 42.6.8. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-transactions.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-transactions.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-transactions.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-transactions.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.8. Transaction Management

    42.8. Transaction Management

    +42.8. Transaction Management

    42.8. Transaction Management

    In procedures invoked by the CALL command as well as in anonymous code blocks (DO command), it is possible to end transactions using the @@ -79,4 +79,4 @@ ... RETURNING).

    A transaction cannot be ended inside a block with exception handlers. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpgsql-trigger.html postgresql-13-13.7/doc/src/sgml/html/plpgsql-trigger.html --- postgresql-13-13.4/doc/src/sgml/html/plpgsql-trigger.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpgsql-trigger.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -42.10. Trigger Functions

    42.10. Trigger Functions

    +42.10. Trigger Functions

    42.10. Trigger Functions

    PL/pgSQL can be used to define trigger functions on data changes or database events. A trigger function is created with the CREATE FUNCTION @@ -513,4 +513,4 @@ $$ LANGUAGE plpgsql; CREATE EVENT TRIGGER snitch ON ddl_command_start EXECUTE FUNCTION snitch(); -


    \ No newline at end of file +
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-database.html postgresql-13-13.7/doc/src/sgml/html/plpython-database.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-database.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-database.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.7. Database Access

    45.7. Database Access

    +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 @@ -228,4 +228,4 @@ the exception object. This attribute is a string value containing the SQLSTATE error code. This approach provides approximately the same functionality -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-data.html postgresql-13-13.7/doc/src/sgml/html/plpython-data.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-data.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-data.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.3. Data Values

    45.3. Data Values

    +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 @@ -216,7 +216,7 @@ RETURNS named_value AS $$ return ( name, value ) - # or alternatively, as tuple: return [ name, value ] + # or alternatively, as list: return [ name, value ] $$ LANGUAGE plpythonu;

    @@ -353,4 +353,4 @@ SELECT * FROM multiout_simple_setof(3);

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-do.html postgresql-13-13.7/doc/src/sgml/html/plpython-do.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-do.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-do.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.5. Anonymous Code Blocks

    45.5. Anonymous Code Blocks

    +45.5. Anonymous Code Blocks

    45.5. Anonymous Code Blocks

    PL/Python also supports anonymous code blocks called with the DO statement: @@ -11,4 +11,4 @@ An anonymous code block receives no arguments, and whatever value it might return is discarded. Otherwise it behaves just like a function. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-envar.html postgresql-13-13.7/doc/src/sgml/html/plpython-envar.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-envar.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-envar.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.11. Environment Variables

    45.11. Environment Variables

    +45.11. Environment Variables

    45.11. 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 @@ -14,4 +14,4 @@ of PL/Python that some of the environment variables listed on the python man page are only effective in a command-line interpreter and not an embedded Python interpreter.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-funcs.html postgresql-13-13.7/doc/src/sgml/html/plpython-funcs.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-funcs.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-funcs.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.2. PL/Python Functions

    45.2. PL/Python Functions

    +45.2. PL/Python Functions

    45.2. PL/Python Functions

    Functions in PL/Python are declared via the standard CREATE FUNCTION syntax: @@ -85,4 +85,4 @@ But it is advisable not to rely on this implementation detail of PL/Python. It is better to treat the function parameters as read-only. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython.html postgresql-13-13.7/doc/src/sgml/html/plpython.html --- postgresql-13-13.4/doc/src/sgml/html/plpython.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 45. PL/Python — Python Procedural Language

    Chapter 45. PL/Python — Python Procedural Language

    +Chapter 45. PL/Python — Python Procedural Language

    Chapter 45. PL/Python — Python Procedural Language

    The PL/Python procedural language allows PostgreSQL functions and procedures to be written in the Python language. @@ -26,4 +26,4 @@ PL/Python during the installation process. (Refer to the installation instructions for more information.) Users of binary packages might find PL/Python in a separate subpackage. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-python23.html postgresql-13-13.7/doc/src/sgml/html/plpython-python23.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-python23.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-python23.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.1. Python 2 vs. Python 3

    45.1. Python 2 vs. Python 3

    +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 @@ -84,4 +84,4 @@ Python major versions in a session, which will abort the session if a mismatch is detected. It is possible, however, to use both PL/Python variants in the same database, from separate sessions. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-sharing.html postgresql-13-13.7/doc/src/sgml/html/plpython-sharing.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-sharing.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-sharing.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.4. Sharing Data

    45.4. Sharing Data

    +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, @@ -11,4 +11,4 @@ myfunc are not available to myfunc2. The exception is the data in the GD dictionary, as mentioned above. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-subtransaction.html postgresql-13-13.7/doc/src/sgml/html/plpython-subtransaction.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-subtransaction.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-subtransaction.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.8. Explicit Subtransactions

    45.8. Explicit Subtransactions

    +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, @@ -97,4 +97,4 @@ plpy.execute(plan, [result]) $$ LANGUAGE plpythonu;

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-transactions.html postgresql-13-13.7/doc/src/sgml/html/plpython-transactions.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-transactions.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-transactions.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.9. Transaction Management

    45.9. Transaction Management

    +45.9. Transaction Management

    45.9. Transaction Management

    In a procedure called from the top level or an anonymous code block (DO command) called from the top level it is possible to control transactions. To commit the current transaction, call @@ -28,4 +28,4 @@

    Transactions cannot be ended when an explicit subtransaction is active. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-trigger.html postgresql-13-13.7/doc/src/sgml/html/plpython-trigger.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-trigger.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-trigger.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.6. Trigger Functions

    45.6. Trigger Functions

    +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"]

    @@ -37,4 +37,4 @@ is INSERT or UPDATE you can return "MODIFY" to indicate you've modified the new row. Otherwise the return value is ignored. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/plpython-util.html postgresql-13-13.7/doc/src/sgml/html/plpython-util.html --- postgresql-13-13.4/doc/src/sgml/html/plpython-util.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/plpython-util.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -45.10. Utility Functions

    45.10. Utility Functions

    +45.10. Utility Functions

    45.10. 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)

    @@ -57,4 +57,4 @@ plpy.quote_nullable(newvalue), plpy.quote_literal(keyvalue)))

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-config.html postgresql-13-13.7/doc/src/sgml/html/pltcl-config.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-config.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-config.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -43.11. PL/Tcl Configuration

    43.11. PL/Tcl Configuration

    +43.11. PL/Tcl Configuration

    43.11. PL/Tcl Configuration

    This section lists configuration parameters that affect PL/Tcl.

    @@ -39,4 +39,4 @@ This parameter is exactly like pltcl.start_proc, except that it applies to PL/TclU. The referenced function must be written in the pltclu language. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-data.html postgresql-13-13.7/doc/src/sgml/html/pltcl-data.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-data.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-data.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,9 +1,9 @@ -43.3. Data Values in PL/Tcl

    43.3. Data Values in PL/Tcl

    +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 any string that is acceptable input format for the function's declared result type, or for the specified column of a composite result type. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-dbaccess.html postgresql-13-13.7/doc/src/sgml/html/pltcl-dbaccess.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-dbaccess.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-dbaccess.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,7 +1,9 @@ -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: +43.5. Database Access from PL/Tcl

    43.5. Database Access from PL/Tcl

    + In this section, we follow the usual Tcl convention of using question + marks, rather than brackets, to indicate an optional element in a + syntax synopsis. 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 @@ -186,4 +188,4 @@ and Section 43.8 for more information.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-error-handling.html postgresql-13-13.7/doc/src/sgml/html/pltcl-error-handling.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-error-handling.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-error-handling.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -43.8. Error Handling in PL/Tcl

    43.8. Error Handling in PL/Tcl

    +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 @@ -57,4 +57,4 @@

    (The double colons explicitly specify that errorCode is a global variable.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-event-trigger.html postgresql-13-13.7/doc/src/sgml/html/pltcl-event-trigger.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-event-trigger.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-event-trigger.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -43.7. Event Trigger Functions in PL/Tcl

    43.7. Event Trigger Functions in PL/Tcl

    +43.7. Event Trigger Functions in PL/Tcl

    43.7. Event Trigger Functions in PL/Tcl

    Event trigger functions can be written in PL/Tcl. PostgreSQL requires that a function that is to be called as an event trigger must be declared as a function with no @@ -27,4 +27,4 @@ CREATE EVENT TRIGGER tcl_a_snitch ON ddl_command_start EXECUTE FUNCTION tclsnitch();

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-functions.html postgresql-13-13.7/doc/src/sgml/html/pltcl-functions.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-functions.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-functions.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -43.2. PL/Tcl Functions and Arguments

    43.2. PL/Tcl Functions and Arguments

    +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: @@ -138,4 +138,4 @@ } $$ LANGUAGE pltcl;

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-global.html postgresql-13-13.7/doc/src/sgml/html/pltcl-global.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-global.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-global.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -43.4. Global Data in PL/Tcl

    43.4. Global Data in PL/Tcl

    +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. @@ -42,4 +42,4 @@

    An example of using GD appears in the spi_execp example below. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl.html postgresql-13-13.7/doc/src/sgml/html/pltcl.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,8 +1,8 @@ -Chapter 43. PL/Tcl — Tcl Procedural Language \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-overview.html postgresql-13-13.7/doc/src/sgml/html/pltcl-overview.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-overview.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-overview.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -43.1. Overview

    43.1. Overview

    +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 @@ -40,4 +40,4 @@ CREATE EXTENSION command, for example CREATE EXTENSION pltcl or CREATE EXTENSION pltclu. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-procnames.html postgresql-13-13.7/doc/src/sgml/html/pltcl-procnames.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-procnames.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-procnames.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -43.12. Tcl Procedure Names

    43.12. Tcl Procedure Names

    +43.12. Tcl Procedure Names

    43.12. 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. @@ -10,4 +10,4 @@ and different argument types will be different Tcl procedures, too. This is not normally a concern for a PL/Tcl programmer, but it might be visible when debugging. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-subtransactions.html postgresql-13-13.7/doc/src/sgml/html/pltcl-subtransactions.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-subtransactions.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-subtransactions.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -43.9. Explicit Subtransactions in PL/Tcl

    43.9. Explicit Subtransactions in PL/Tcl

    +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, @@ -64,4 +64,4 @@ subtransaction to be rolled back. However, non-error exits out of the contained Tcl code (for instance, due to return) do not cause a rollback. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-transactions.html postgresql-13-13.7/doc/src/sgml/html/pltcl-transactions.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-transactions.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-transactions.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -43.10. Transaction Management

    43.10. Transaction Management

    +43.10. Transaction Management

    43.10. Transaction Management

    In a procedure called from the top level or an anonymous code block (DO command) called from the top level it is possible to control transactions. To commit the current transaction, call the @@ -30,4 +30,4 @@

    Transactions cannot be ended when an explicit subtransaction is active. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/pltcl-trigger.html postgresql-13-13.7/doc/src/sgml/html/pltcl-trigger.html --- postgresql-13-13.4/doc/src/sgml/html/pltcl-trigger.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/pltcl-trigger.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -43.6. Trigger Functions in PL/Tcl

    43.6. Trigger Functions in PL/Tcl

    +43.6. Trigger Functions in PL/Tcl

    43.6. Trigger Functions in PL/Tcl

    Trigger functions can be written in PL/Tcl. PostgreSQL requires that a function that is to be called as a trigger must be declared as a function with no arguments @@ -112,4 +112,4 @@ Notice that the trigger function itself does not know the column name; that's supplied from the trigger arguments. This lets the trigger function be reused with different tables. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/populate.html postgresql-13-13.7/doc/src/sgml/html/populate.html --- postgresql-13-13.4/doc/src/sgml/html/populate.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/populate.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -14.4. Populating a Database

    14.4. Populating a Database

    +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. @@ -201,4 +201,4 @@ the --disable-triggers option — but realize that that eliminates, rather than just postpones, foreign key validation, and so it is possible to insert bad data if you use it. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/postgres-fdw.html postgresql-13-13.7/doc/src/sgml/html/postgres-fdw.html --- postgresql-13-13.4/doc/src/sgml/html/postgres-fdw.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/postgres-fdw.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.33. postgres_fdw

    F.33. postgres_fdw

    +F.33. postgres_fdw

    F.33. 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. @@ -35,9 +35,10 @@

    Now you need only SELECT from a foreign table to access the data stored in its underlying remote table. You can also modify - the remote table using INSERT, UPDATE, or - DELETE. (Of course, the remote user you have specified - in your user mapping must have privileges to do these things.) + the remote table using INSERT, UPDATE, + DELETE, or COPY. (Of course, the + remote user you have specified in your user mapping must have privileges to + do these things.)

    Note that postgres_fdw currently lacks support for INSERT statements with an ON CONFLICT DO @@ -55,8 +56,8 @@ referenced columns of the remote table. Although postgres_fdw is currently rather forgiving about performing data type conversions at need, surprising semantic anomalies may arise when types or collations do - not match, due to the remote server interpreting WHERE clauses - slightly differently from the local server. + not match, due to the remote server interpreting query conditions + differently from the local server.

    Note that a foreign table can be declared with fewer columns, or with a different column order, than its underlying remote table has. Matching @@ -237,6 +238,15 @@ need to turn this off if the remote server has a different set of collation names than the local server does, which is likely to be the case if it's running on a different operating system. + If you do so, however, there is a very severe risk that the imported + table columns' collations will not match the underlying data, resulting + in anomalous query behavior. +

    + Even when this parameter is set to true, importing + columns whose collation is the remote server's default can be risky. + They will be imported with COLLATE "default", which + will select the local server's default collation, which could be + different.

    import_default

    This option controls whether column DEFAULT expressions are included in the definitions of foreign tables imported @@ -246,7 +256,7 @@ server; nextval() is a common source of problems. The IMPORT will fail altogether if an imported default expression uses a function or operator that does not exist locally. -

    import_generated (boolean)

    +

    import_generated

    This option controls whether column GENERATED expressions are included in the definitions of foreign tables imported from a foreign server. The default is true. @@ -439,4 +449,4 @@ preferable to constructing foreign table definitions manually.

    F.33.8. Author

    Shigeru Hanada -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/postgres-user.html postgresql-13-13.7/doc/src/sgml/html/postgres-user.html --- postgresql-13-13.4/doc/src/sgml/html/postgres-user.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/postgres-user.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.1. The PostgreSQL User Account

    18.1. The PostgreSQL User Account

    +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 @@ -17,4 +17,4 @@ useradd or adduser. The user name postgres is often used, and is assumed throughout this book, but you can use another name if you like. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/preface.html postgresql-13-13.7/doc/src/sgml/html/preface.html --- postgresql-13-13.4/doc/src/sgml/html/preface.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/preface.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -Preface \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/preventing-server-spoofing.html postgresql-13-13.7/doc/src/sgml/html/preventing-server-spoofing.html --- postgresql-13-13.4/doc/src/sgml/html/preventing-server-spoofing.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/preventing-server-spoofing.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.7. Preventing Server Spoofing

    18.7. Preventing Server Spoofing

    +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 @@ -41,4 +41,4 @@ (Section 20.1) and use gss authentication with them. The TCP client must connect using gssencmode=require. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/progress-reporting.html postgresql-13-13.7/doc/src/sgml/html/progress-reporting.html --- postgresql-13-13.4/doc/src/sgml/html/progress-reporting.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/progress-reporting.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -27.4. Progress Reporting

    27.4. Progress Reporting

    +27.4. Progress Reporting

    27.4. Progress Reporting

    PostgreSQL has the ability to report the progress of certain commands during command execution. Currently, the only commands which support progress reporting are ANALYZE, @@ -362,8 +362,9 @@ VACUUM is currently vacuuming the indexes. If a table has any indexes, this will happen at least once per vacuum, after the heap has been completely scanned. It may happen multiple times per vacuum - if maintenance_work_mem is insufficient to - store the number of dead tuples found. + if maintenance_work_mem (or, in the case of autovacuum, + autovacuum_work_mem if set) is insufficient to store + the number of dead tuples found. vacuuming heap VACUUM is currently vacuuming the heap. Vacuuming the heap is distinct from scanning the heap, and occurs after each instance of @@ -573,4 +574,4 @@ --wal-method=fetch is specified in pg_basebackup. The backup will end when this phase is completed. -


    \ No newline at end of file +
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol-changes.html postgresql-13-13.7/doc/src/sgml/html/protocol-changes.html --- postgresql-13-13.4/doc/src/sgml/html/protocol-changes.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol-changes.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.10. Summary of Changes since Protocol 2.0

    52.10. Summary of Changes since Protocol 2.0

    +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.

    @@ -70,4 +70,4 @@

    The EmptyQueryResponse ('I') message used to include an empty string parameter; this has been removed. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol-error-fields.html postgresql-13-13.7/doc/src/sgml/html/protocol-error-fields.html --- postgresql-13-13.4/doc/src/sgml/html/protocol-error-fields.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol-error-fields.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.8. Error and Notice Message Fields

    52.8. Error and Notice Message Fields

    +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 @@ -132,4 +132,4 @@ needs; in particular it should break long lines as needed. Newline characters appearing in the error message fields should be treated as paragraph breaks, not line breaks. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol-flow.html postgresql-13-13.7/doc/src/sgml/html/protocol-flow.html --- postgresql-13-13.4/doc/src/sgml/html/protocol-flow.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol-flow.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.2. Message Flow

    52.2. Message Flow

    +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 @@ -833,6 +833,18 @@ be closed, but the frontend might choose to open a fresh connection and proceed without requesting SSL.

    + When SSL encryption can be performed, the server + is expected to send only the single S byte and then + wait for the frontend to initiate an SSL handshake. + If additional bytes are available to read at this point, it likely + means that a man-in-the-middle is attempting to perform a + buffer-stuffing attack + (CVE-2021-23222). + Frontends should be coded either to read exactly one byte from the + socket before turning the socket over to their SSL library, or to + treat it as a protocol violation if they find they have read additional + bytes. +

    An initial SSLRequest can also be used in a connection that is being opened to send a CancelRequest message.

    @@ -880,6 +892,18 @@ connection and proceed without requesting GSSAPI encryption.

    + When GSSAPI encryption can be performed, the server + is expected to send only the single G byte and then + wait for the frontend to initiate a GSSAPI handshake. + If additional bytes are available to read at this point, it likely + means that a man-in-the-middle is attempting to perform a + buffer-stuffing attack + (CVE-2021-23222). + Frontends should be coded either to read exactly one byte from the + socket before turning the socket over to their GSSAPI library, or to + treat it as a protocol violation if they find they have read additional + bytes. +

    An initial GSSENCRequest can also be used in a connection that is being opened to send a CancelRequest message.

    @@ -901,4 +925,4 @@ force GSSAPI encryption, the administrator can configure the server to reject unencrypted sessions as a byproduct of authentication checking. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol.html postgresql-13-13.7/doc/src/sgml/html/protocol.html --- postgresql-13-13.4/doc/src/sgml/html/protocol.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 52. Frontend/Backend Protocol

    Chapter 52. Frontend/Backend Protocol

    +Chapter 52. Frontend/Backend Protocol

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol-logical-replication.html postgresql-13-13.7/doc/src/sgml/html/protocol-logical-replication.html --- postgresql-13-13.4/doc/src/sgml/html/protocol-logical-replication.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol-logical-replication.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.5. Logical Streaming Replication Protocol

    52.5. Logical Streaming Replication Protocol

    +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 @@ -54,11 +54,21 @@ needed (if needed). The Origin message is always sent before any DML messages in the transaction.

    - Every DML message contains an arbitrary relation ID, which can be mapped to - an ID in the Relation messages. The Relation messages describe the schema of the - given relation. The Relation message is sent for a given relation either - because it is the first time we send a DML message for given relation in the - current session or because the relation definition has changed since the - last Relation message was sent for it. The protocol assumes that the client - is capable of caching the metadata for as many relations as needed. -

    \ No newline at end of file + Every DML message contains a relation OID, identifying the publisher's + relation that was acted on. Before the first DML message for a given + relation OID, a Relation message will be sent, describing the schema of + that relation. Subsequently, a new Relation message will be sent if + the relation's definition has changed since the last Relation message + was sent for it. (The protocol assumes that the client is capable of + remembering this metadata for as many relations as needed.) +

    + Relation messages identify column types by their OIDs. In the case + of a built-in type, it is assumed that the client can look up that + type OID locally, so no additional data is needed. For a non-built-in + type OID, a Type message will be sent before the Relation message, + to provide the type name associated with that OID. Thus, a client that + needs to specifically identify the types of relation columns should + cache the contents of Type messages, and first consult that cache to + see if the type OID is defined there. If not, look up the type OID + locally. +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol-logicalrep-message-formats.html postgresql-13-13.7/doc/src/sgml/html/protocol-logicalrep-message-formats.html --- postgresql-13-13.4/doc/src/sgml/html/protocol-logicalrep-message-formats.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol-logicalrep-message-formats.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.9. Logical Replication Message Formats

    52.9. Logical Replication Message Formats

    +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 @@ -308,4 +308,4 @@ n is the above length.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol-message-formats.html postgresql-13-13.7/doc/src/sgml/html/protocol-message-formats.html --- postgresql-13-13.4/doc/src/sgml/html/protocol-message-formats.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol-message-formats.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.7. Message Formats

    52.7. Message Formats

    +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). @@ -1377,4 +1377,4 @@ Length of message contents in bytes, including self.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol-message-types.html postgresql-13-13.7/doc/src/sgml/html/protocol-message-types.html --- postgresql-13-13.4/doc/src/sgml/html/protocol-message-types.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol-message-types.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.6. Message Data Types

    52.6. Message Data Types

    +52.6. Message Data Types

    52.6. Message Data Types

    This section describes the base data types used in messages.

    @@ -41,4 +41,4 @@ If c is specified it is the exact value. Eg. Byte2, Byte1('\n').

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol-overview.html postgresql-13-13.7/doc/src/sgml/html/protocol-overview.html --- postgresql-13-13.4/doc/src/sgml/html/protocol-overview.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol-overview.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.1. Overview

    52.1. Overview

    +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 @@ -109,4 +109,4 @@ or source code to learn about the binary representation. Keep in mind that binary representations for complex data types might change across server versions; the text format is usually the more portable choice. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/protocol-replication.html postgresql-13-13.7/doc/src/sgml/html/protocol-replication.html --- postgresql-13-13.4/doc/src/sgml/html/protocol-replication.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/protocol-replication.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.4. Streaming Replication Protocol

    52.4. Streaming Replication Protocol

    +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 (or on, @@ -146,7 +146,7 @@ streaming starts on timeline tli; otherwise, the server's current timeline is selected. The server can reply with an error, for example if the requested section of WAL has already - been recycled. On success, server responds with a CopyBothResponse + been recycled. On success, the server responds with a CopyBothResponse message, and then starts to stream WAL to the frontend.

    If a slot's name is provided @@ -497,4 +497,4 @@ the server supports it.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/queries.html postgresql-13-13.7/doc/src/sgml/html/queries.html --- postgresql-13-13.4/doc/src/sgml/html/queries.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/queries.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,6 +1,6 @@ -Chapter 7. Queries \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/queries-limit.html postgresql-13-13.7/doc/src/sgml/html/queries-limit.html --- postgresql-13-13.4/doc/src/sgml/html/queries-limit.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/queries-limit.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -7.6. LIMIT and OFFSET

    7.6. LIMIT and OFFSET

    +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:

    @@ -45,4 +45,4 @@
        The rows skipped by an OFFSET clause still have to be
        computed inside the server; therefore a large OFFSET
        might be inefficient.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/queries-order.html postgresql-13-13.7/doc/src/sgml/html/queries-order.html --- postgresql-13-13.4/doc/src/sgml/html/queries-order.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/queries-order.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -7.5. Sorting Rows

    7.5. Sorting Rows

    +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 @@ -73,4 +73,4 @@ > operators correspond to this sort ordering, but a user-defined data type's designer could choose to do something different. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/queries-overview.html postgresql-13-13.7/doc/src/sgml/html/queries-overview.html --- postgresql-13-13.4/doc/src/sgml/html/queries-overview.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/queries-overview.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -7.1. Overview

    7.1. Overview

    +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 @@ -50,4 +50,4 @@

     SELECT random();
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/queries-select-lists.html postgresql-13-13.7/doc/src/sgml/html/queries-select-lists.html --- postgresql-13-13.4/doc/src/sgml/html/queries-select-lists.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/queries-select-lists.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -7.3. Select Lists

    7.3. Select Lists

    +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 @@ -114,4 +114,4 @@ GROUP BY and subqueries in FROM, this construct can be avoided, but it is often the most convenient alternative. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/queries-table-expressions.html postgresql-13-13.7/doc/src/sgml/html/queries-table-expressions.html --- postgresql-13-13.4/doc/src/sgml/html/queries-table-expressions.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/queries-table-expressions.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -7.2. Table Expressions

    7.2. Table Expressions

    +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 @@ -986,4 +986,4 @@ It is not recommended to rely on this, however. Use an explicit top-level ORDER BY clause if you want to be sure the results are sorted in a particular way. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/queries-union.html postgresql-13-13.7/doc/src/sgml/html/queries-union.html --- postgresql-13-13.4/doc/src/sgml/html/queries-union.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/queries-union.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -7.4. Combining Queries

    7.4. Combining Queries

    +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

    @@ -7,17 +7,9 @@
     query1 INTERSECT [ALL] query2
     query1 EXCEPT [ALL] query2
     

    - query1 and + where query1 and query2 are queries that can use any of - the features discussed up to this point. Set operations can also - be nested and chained, for example -

    -query1 UNION query2 UNION query3
    -

    - which is executed as: -

    -(query1 UNION query2) UNION query3
    -

    + the features discussed up to this point.

    UNION effectively appends the result of query2 to the result of @@ -42,4 +34,43 @@ which means that they return the same number of columns and the corresponding columns have compatible data types, as described in Section 10.5. -

    \ No newline at end of file +

    + Set operations can be combined, for example +

    +query1 UNION query2 EXCEPT query3
    +

    + which is equivalent to +

    +(query1 UNION query2) EXCEPT query3
    +

    + As shown here, you can use parentheses to control the order of + evaluation. Without parentheses, UNION + and EXCEPT associate left-to-right, + but INTERSECT binds more tightly than those two + operators. Thus +

    +query1 UNION query2 INTERSECT query3
    +

    + means +

    +query1 UNION (query2 INTERSECT query3)
    +

    + You can also surround an individual query + with parentheses. This is important if + the query needs to use any of the clauses + discussed in following sections, such as LIMIT. + Without parentheses, you'll get a syntax error, or else the clause will + be understood as applying to the output of the set operation rather + than one of its inputs. For example, +

    +SELECT a FROM b UNION SELECT x FROM y LIMIT 10
    +

    + is accepted, but it means +

    +(SELECT a FROM b UNION SELECT x FROM y) LIMIT 10
    +

    + not +

    +SELECT a FROM b UNION (SELECT x FROM y LIMIT 10)
    +

    +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/queries-values.html postgresql-13-13.7/doc/src/sgml/html/queries-values.html --- postgresql-13-13.4/doc/src/sgml/html/queries-values.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/queries-values.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -7.7. VALUES Lists

    7.7. VALUES Lists

    +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 @@ -57,4 +57,4 @@ and next most commonly as a subquery.

    For more information see VALUES. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/queries-with.html postgresql-13-13.7/doc/src/sgml/html/queries-with.html --- postgresql-13-13.4/doc/src/sgml/html/queries-with.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/queries-with.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -7.8. WITH Queries (Common Table Expressions)

    7.8. WITH Queries (Common Table Expressions)

    +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 @@ -423,4 +423,4 @@ At present, any table used as the target of a data-modifying statement in WITH must not have a conditional rule, nor an ALSO rule, nor an INSTEAD rule that expands to multiple statements. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/query-path.html postgresql-13-13.7/doc/src/sgml/html/query-path.html --- postgresql-13-13.4/doc/src/sgml/html/query-path.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/query-path.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -50.1. The Path of a Query

    50.1. The Path of a Query

    +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. @@ -52,4 +52,4 @@ In the following sections we will cover each of the above listed items in more detail to give a better understanding of PostgreSQL's internal control and data structures. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/querytree.html postgresql-13-13.7/doc/src/sgml/html/querytree.html --- postgresql-13-13.4/doc/src/sgml/html/querytree.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/querytree.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -40.1. The Query Tree

    40.1. The Query Tree

    +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.

    @@ -149,4 +149,4 @@ doesn't have much to do with the fundamentals of the rule system.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rangetypes.html postgresql-13-13.7/doc/src/sgml/html/rangetypes.html --- postgresql-13-13.4/doc/src/sgml/html/rangetypes.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rangetypes.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.17. Range Types \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/recovery-config.html postgresql-13-13.7/doc/src/sgml/html/recovery-config.html --- postgresql-13-13.4/doc/src/sgml/html/recovery-config.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/recovery-config.html 2022-05-09 21:29:32.000000000 +0000 @@ -1,10 +1,10 @@ -O.1. recovery.conf file merged into postgresql.conf

    O.1. recovery.conf file merged into postgresql.conf

    +O.1. recovery.conf file merged into postgresql.conf

    O.1. recovery.conf file merged into postgresql.conf

    PostgreSQL 11 and below used a configuration file named recovery.conf to manage replicas and standbys. Support for this file was removed in PostgreSQL 12. See - the release notes for PostgreSQL 12 for details + the release notes for PostgreSQL 12 for details on this change.

    On PostgreSQL 12 and above, @@ -28,4 +28,4 @@ setting has been removed. A standby.signal file in the data directory is used instead. See Standby Server Operation for details. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/reference-client.html postgresql-13-13.7/doc/src/sgml/html/reference-client.html --- postgresql-13-13.4/doc/src/sgml/html/reference-client.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/reference-client.html 2022-05-09 21:29:23.000000000 +0000 @@ -1,5 +1,5 @@ -PostgreSQL Client Applications

    PostgreSQL Client Applications


    +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 @@ -20,4 +20,4 @@

    pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster
    psqlPostgreSQL interactive terminal -
    reindexdb — reindex a PostgreSQL database
    vacuumdb — garbage-collect and analyze a PostgreSQL database
    \ No newline at end of file +
    reindexdb — reindex a PostgreSQL database
    vacuumdb — garbage-collect and analyze a PostgreSQL database
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/reference.html postgresql-13-13.7/doc/src/sgml/html/reference.html --- postgresql-13-13.4/doc/src/sgml/html/reference.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/reference.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -Part VI. Reference

    Part VI. Reference

    +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 @@ -27,4 +27,4 @@

    pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster
    psqlPostgreSQL interactive terminal -
    reindexdb — reindex a PostgreSQL database
    vacuumdb — garbage-collect and analyze a PostgreSQL database
    III. PostgreSQL Server Applications
    initdb — create a new PostgreSQL database cluster
    pg_archivecleanup — clean up PostgreSQL WAL archive files
    pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster
    pg_controldata — display control information of a PostgreSQL database cluster
    pg_ctl — initialize, start, stop, or control a PostgreSQL server
    pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster
    pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it
    pg_test_fsync — determine fastest wal_sync_method for PostgreSQL
    pg_test_timing — measure timing overhead
    pg_upgrade — upgrade a PostgreSQL server instance
    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster
    postgresPostgreSQL database server
    postmasterPostgreSQL database server
    \ No newline at end of file +
    reindexdb — reindex a PostgreSQL database
    vacuumdb — garbage-collect and analyze a PostgreSQL database
    III. PostgreSQL Server Applications
    initdb — create a new PostgreSQL database cluster
    pg_archivecleanup — clean up PostgreSQL WAL archive files
    pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster
    pg_controldata — display control information of a PostgreSQL database cluster
    pg_ctl — initialize, start, stop, or control a PostgreSQL server
    pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster
    pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it
    pg_test_fsync — determine fastest wal_sync_method for PostgreSQL
    pg_test_timing — measure timing overhead
    pg_upgrade — upgrade a PostgreSQL server instance
    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster
    postgresPostgreSQL database server
    postmasterPostgreSQL database server
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/reference-server.html postgresql-13-13.7/doc/src/sgml/html/reference-server.html --- postgresql-13-13.4/doc/src/sgml/html/reference-server.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/reference-server.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,8 +1,8 @@ -PostgreSQL Server Applications

    PostgreSQL Server Applications


    +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 are listed in PostgreSQL Client Applications. -

    Table of Contents

    initdb — create a new PostgreSQL database cluster
    pg_archivecleanup — clean up PostgreSQL WAL archive files
    pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster
    pg_controldata — display control information of a PostgreSQL database cluster
    pg_ctl — initialize, start, stop, or control a PostgreSQL server
    pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster
    pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it
    pg_test_fsync — determine fastest wal_sync_method for PostgreSQL
    pg_test_timing — measure timing overhead
    pg_upgrade — upgrade a PostgreSQL server instance
    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster
    postgresPostgreSQL database server
    postmasterPostgreSQL database server
    \ No newline at end of file +

    Table of Contents

    initdb — create a new PostgreSQL database cluster
    pg_archivecleanup — clean up PostgreSQL WAL archive files
    pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster
    pg_controldata — display control information of a PostgreSQL database cluster
    pg_ctl — initialize, start, stop, or control a PostgreSQL server
    pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster
    pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it
    pg_test_fsync — determine fastest wal_sync_method for PostgreSQL
    pg_test_timing — measure timing overhead
    pg_upgrade — upgrade a PostgreSQL server instance
    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster
    postgresPostgreSQL database server
    postmasterPostgreSQL database server
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/regress-coverage.html postgresql-13-13.7/doc/src/sgml/html/regress-coverage.html --- postgresql-13-13.4/doc/src/sgml/html/regress-coverage.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/regress-coverage.html 2022-05-09 21:29:12.000000000 +0000 @@ -1,5 +1,5 @@ -32.5. Test Coverage Examination

    32.5. Test Coverage Examination

    +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 @@ -33,4 +33,4 @@

     make coverage-clean
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/regress-evaluation.html postgresql-13-13.7/doc/src/sgml/html/regress-evaluation.html --- postgresql-13-13.4/doc/src/sgml/html/regress-evaluation.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/regress-evaluation.html 2022-05-09 21:29:12.000000000 +0000 @@ -1,5 +1,5 @@ -32.2. Test Evaluation

    32.2. Test Evaluation

    +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 @@ -163,4 +163,4 @@ parameters such as enable_seqscan or enable_indexscan could cause plan changes that would affect the results of tests that use EXPLAIN. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/regress.html postgresql-13-13.7/doc/src/sgml/html/regress.html --- postgresql-13-13.4/doc/src/sgml/html/regress.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/regress.html 2022-05-09 21:29:12.000000000 +0000 @@ -1,7 +1,7 @@ -Chapter 32. Regression Tests

    Chapter 32. Regression Tests

    +Chapter 32. Regression Tests

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/regress-run.html postgresql-13-13.7/doc/src/sgml/html/regress-run.html --- postgresql-13-13.4/doc/src/sgml/html/regress-run.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/regress-run.html 2022-05-09 21:29:12.000000000 +0000 @@ -1,5 +1,5 @@ -32.1. Running the Tests

    32.1. Running the Tests

    +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 @@ -267,4 +267,4 @@ Some extreme behaviors can also be generated on the primary using the script src/test/regress/sql/hs_primary_extremes.sql to allow the behavior of the standby to be tested. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/regress-tap.html postgresql-13-13.7/doc/src/sgml/html/regress-tap.html --- postgresql-13-13.4/doc/src/sgml/html/regress-tap.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/regress-tap.html 2022-05-09 21:29:12.000000000 +0000 @@ -1,5 +1,5 @@ -32.4. TAP Tests

    32.4. TAP 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 @@ -39,4 +39,4 @@ subdirectories contain both traditional-style and TAP-style tests, meaning that make installcheck will produce a mix of results from temporary servers and the already-running test server. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/regress-variant.html postgresql-13-13.7/doc/src/sgml/html/regress-variant.html --- postgresql-13-13.4/doc/src/sgml/html/regress-variant.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/regress-variant.html 2022-05-09 21:29:12.000000000 +0000 @@ -1,5 +1,5 @@ -32.3. Variant Comparison Files

    32.3. Variant Comparison Files

    +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 @@ -74,4 +74,4 @@ the variant that seems to work best. Therefore it is safest to use this mechanism only for variant results that you are willing to consider equally valid in all contexts. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release-13-1.html postgresql-13-13.7/doc/src/sgml/html/release-13-1.html --- postgresql-13-13.4/doc/src/sgml/html/release-13-1.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release-13-1.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,11 +1,11 @@ -E.4. Release 13.1

    E.4. Release 13.1

    Release date: 2020-11-12

    +E.7. Release 13.1

    E.7. Release 13.1

    Release date: 2020-11-12

    This release contains a variety of fixes from 13.0. For information about new features in major release 13, see - Section E.5. -

    E.4.1. Migration to Version 13.1

    + Section E.8. +

    E.7.1. Migration to Version 13.1

    A dump/restore is not required for those running 13.X. -

    E.4.2. Changes

    • +

    E.7.2. Changes

    • Block DECLARE CURSOR ... WITH HOLD and firing of deferred triggers within index expressions and materialized view queries (Noah Misch) @@ -322,4 +322,4 @@ branches. This change also ensures that strftime() does not change errno unless it fails. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release-13-2.html postgresql-13-13.7/doc/src/sgml/html/release-13-2.html --- postgresql-13-13.4/doc/src/sgml/html/release-13-2.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release-13-2.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,16 +1,16 @@ -E.3. Release 13.2

    E.3. Release 13.2

    Release date: 2021-02-11

    +E.6. Release 13.2

    E.6. Release 13.2

    Release date: 2021-02-11

    This release contains a variety of fixes from 13.1. For information about new features in major release 13, see - Section E.5. -

    E.3.1. Migration to Version 13.2

    + Section E.8. +

    E.6.1. Migration to Version 13.2

    A dump/restore is not required for those running 13.X.

    However, see the first changelog item below concerning a possible need to update stored views. Also see the third and fourth changelog items, which describe cases in which reindexing indexes after the upgrade may be advisable. -

    E.3.2. Changes

    • +

    E.6.2. Changes

    • Fix failure to check per-column SELECT privileges in some join queries (Tom Lane)

      @@ -588,4 +588,4 @@

      Notably, the Australia/Currie zone has been corrected to the point where it is identical to Australia/Hobart. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release-13-3.html postgresql-13-13.7/doc/src/sgml/html/release-13-3.html --- postgresql-13-13.4/doc/src/sgml/html/release-13-3.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release-13-3.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,14 +1,14 @@ -E.2. Release 13.3

    E.2. Release 13.3

    Release date: 2021-05-13

    +E.5. Release 13.3

    E.5. Release 13.3

    Release date: 2021-05-13

    This release contains a variety of fixes from 13.2. For information about new features in major release 13, see - Section E.5. -

    E.2.1. Migration to Version 13.3

    + Section E.8. +

    E.5.1. Migration to Version 13.3

    A dump/restore is not required for those running 13.X.

    However, if you are upgrading from a version earlier than 13.2, - see Section E.3. -

    E.2.2. Changes

    E.5.2. Changes

    • Prevent integer overflows in array subscripting calculations (Tom Lane)

      @@ -335,4 +335,4 @@ compiler versions (Noah Misch)

    • Fix testing of PL/Python for Python 3 on Solaris (Noah Misch) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release-13-4.html postgresql-13-13.7/doc/src/sgml/html/release-13-4.html --- postgresql-13-13.4/doc/src/sgml/html/release-13-4.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release-13-4.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,14 +1,14 @@ -E.1. Release 13.4

    E.1. Release 13.4

    Release date: 2021-08-12

    +E.4. Release 13.4

    E.4. Release 13.4

    Release date: 2021-08-12

    This release contains a variety of fixes from 13.3. For information about new features in major release 13, see - Section E.5. -

    E.1.1. Migration to Version 13.4

    + Section E.8. +

    E.4.1. Migration to Version 13.4

    A dump/restore is not required for those running 13.X.

    However, if you are upgrading from a version earlier than 13.2, - see Section E.3. -

    E.1.2. Changes

    E.4.2. Changes

    • Fix mis-planning of repeated application of a projection step (Tom Lane)

      @@ -472,4 +472,4 @@ In MSVC builds, include --with-pgport in the set of configure options reported by pg_config, if it had been specified (Andrew Dunstan) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release-13-5.html postgresql-13-13.7/doc/src/sgml/html/release-13-5.html --- postgresql-13-13.4/doc/src/sgml/html/release-13-5.html 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release-13-5.html 2022-05-09 21:29:30.000000000 +0000 @@ -0,0 +1,624 @@ + +E.3. Release 13.5

    E.3. Release 13.5

    Release date: 2021-11-11

    + This release contains a variety of fixes from 13.4. + For information about new features in major release 13, see + Section E.8. +

    E.3.1. Migration to Version 13.5

    + A dump/restore is not required for those running 13.X. +

    + However, note that installations using physical replication should + update standby servers before the primary server, as explained in + the third changelog entry below. +

    + Also, several bugs have been found that may have resulted in corrupted + indexes, as explained in the next several changelog entries. If any + of those cases apply to you, it's recommended to reindex + possibly-affected indexes after updating. +

    + Also, if you are upgrading from a version earlier than 13.2, + see Section E.6. +

    E.3.2. Changes

    • + Make the server reject extraneous data after an SSL or GSS + encryption handshake (Tom Lane) +

      + A man-in-the-middle with the ability to inject data into the TCP + connection could stuff some cleartext data into the start of a + supposedly encryption-protected database session. + This could be abused to send faked SQL commands to the server, + although that would only work if the server did not demand any + authentication data. (However, a server relying on SSL certificate + authentication might well not do so.) +

      + The PostgreSQL Project thanks + Jacob Champion for reporting this problem. + (CVE-2021-23214) +

    • + Make libpq reject extraneous data after + an SSL or GSS encryption handshake (Tom Lane) +

      + A man-in-the-middle with the ability to inject data into the TCP + connection could stuff some cleartext data into the start of a + supposedly encryption-protected database session. + This could probably be abused to inject faked responses to the + client's first few queries, although other details of libpq's + behavior make that harder than it sounds. A different line of + attack is to exfiltrate the client's password, or other sensitive + data that might be sent early in the session. That has been shown + to be possible with a server vulnerable to CVE-2021-23214. +

      + The PostgreSQL Project thanks + Jacob Champion for reporting this problem. + (CVE-2021-23222) +

    • + Fix physical replication for cases where the primary crashes + after shipping a WAL segment that ends with a partial WAL record + (Álvaro Herrera) +

      + If the primary did not survive long enough to finish writing the + rest of the incomplete WAL record, then the previous crash-recovery + logic had it back up and overwrite WAL starting from the beginning + of the incomplete WAL record. This is problematic since standby + servers may already have copies of that WAL segment. They will then + see an inconsistent next segment, and will not be able to recover + without manual intervention. To fix, do not back up over a WAL + segment boundary when restarting after a crash. Instead write a new + type of WAL record at the start of the next WAL segment, informing + readers that the incomplete WAL record will never be finished and + must be disregarded. +

      + When applying this update, it's best to update standby servers + before the primary, so that they will be ready to handle this new + WAL record type if the primary happens to crash. +

    • + Fix CREATE INDEX CONCURRENTLY to wait for + the latest prepared transactions (Andrey Borodin) +

      + Rows inserted by just-prepared transactions might be omitted from + the new index, causing queries relying on the index to miss such + rows. The previous fix for this type of problem failed to account + for PREPARE TRANSACTION commands that were still + in progress when CREATE INDEX CONCURRENTLY + checked for them. As before, in installations that have enabled + prepared transactions (max_prepared_transactions + > 0), it's recommended to reindex any concurrently-built indexes + in case this problem occurred when they were built. +

    • + Avoid race condition that can cause backends to fail to add entries + for new rows to an index being built concurrently (Noah Misch, + Andrey Borodin) +

      + While it's apparently rare in the field, this case could potentially + affect any index built or reindexed with + the CONCURRENTLY option. It is recommended to + reindex any such indexes to make sure they are correct. +

    • + Fix float4 and float8 hash functions to + produce uniform results for NaNs (Tom Lane) +

      + Since PostgreSQL's floating-point types + deem all NaNs to be equal, it's important for the hash functions to + produce the same hash code for all bit-patterns that are NaNs + according to the IEEE 754 standard. This failed to happen before, + meaning that hash indexes and hash-based query plans might produce + incorrect results for non-canonical NaN values. + ('-NaN'::float8 is one way to produce such a + value on most machines.) It is advisable to reindex hash indexes + on floating-point columns, if there is any possibility that they + might contain such values. +

    • + Fix REINDEX CONCURRENTLY to preserve operator + class parameters that were attached to the target index + (Michael Paquier) +

    • + Prevent data loss during crash recovery of CREATE + TABLESPACE, when wal_level + = minimal (Noah Misch) +

      + If the server crashed between CREATE TABLESPACE + and the next checkpoint, replay would fully remove the contents of + the new tablespace's directory, relying on subsequent WAL replay + to restore everything within that directory. This interacts badly + with optimizations that skip writing WAL (one example + is COPY into a just-created table). Such + optimizations are applied only when wal_level + is minimal, which is not the default in v10 and + later. +

    • + Ensure that the relation cache is invalidated for a table being + attached to or detached from a partitioned table (Amit Langote, + Álvaro Herrera) +

      + This oversight could allow misbehavior of subsequent inserts/updates + addressed directly to the partition, but only in currently-existing + sessions. +

    • + Ensure that the relation cache is invalidated for all partitions + of a partitioned table that is being added to or removed from a + publication (Hou Zhijie, Vignesh C) +

      + This oversight could lead to improper replication behavior until all + currently-existing sessions have exited. +

    • + Ensure that the relation cache is invalidated when creating or + dropping a FOR ALL TABLES publication + (Hou Zhijie, Vignesh C) +

      + This oversight could lead to improper replication behavior until all + currently-existing sessions have exited. +

    • + Don't discard a cast to the same type with unspecified type modifier + (Tom Lane) +

      + For example, if column f1 is of + type numeric(18,3), the parser used to simply + discard a cast like f1::numeric, on the grounds + that it would have no run-time effect. That's true, but the exposed + type of the expression should still be considered to be + plain numeric, + not numeric(18,3). This is important for + correctly resolving the type of larger constructs, such + as recursive UNIONs. +

    • + Fix updates of element fields in arrays of domain over composite + (Tom Lane) +

      + A command such as UPDATE tab SET fld[1].subfld = + val failed if the array's elements were domains rather + than plain composites. +

    • + Disallow the combination of FETCH FIRST WITH TIES + and FOR UPDATE SKIP LOCKED (David Christensen) +

      + FETCH FIRST WITH TIES necessarily fetches one + more row than requested, since it cannot stop until it finds a row + that is not a tie. In our current implementation, + if FOR UPDATE is used then that row will also get + locked even though it is not returned. That results in undesirable + behavior if the SKIP LOCKED option is specified. + It's difficult to change this without introducing a different set of + undesirable behaviors, so for now, forbid the combination. +

    • + Disallow creating an ICU collation if the current database's + encoding won't support it (Tom Lane) +

      + Previously this was allowed, but then the collation could not be + referenced because of the way collation lookup works; you could not + use the collation, nor even drop it. +

    • + Disallow ALTER INDEX index ALTER COLUMN col SET + (options) (Nathan Bossart, Michael Paquier) +

      + While the parser accepted this, it's undocumented and doesn't + actually work. +

    • + Fix corner-case loss of precision in + numeric power() (Dean Rasheed) +

      + The result could be inaccurate when the first argument is very close + to 1. +

    • + Avoid regular expression errors with capturing parentheses + inside {0} (Tom Lane) +

      + Regular expressions like (.){0}...\1 drew + invalid backreference number. Other regexp engines + such as Perl don't complain, though, and for that matter ours + doesn't either in some closely related cases. Worse, it could throw + an assertion failure instead. Fix it so that no error is thrown and + instead the back-reference is silently deemed to never match. +

    • + Prevent regular expression back-references from sometimes matching + when they shouldn't (Tom Lane) +

      + The regexp engine was careless about clearing match data + for capturing parentheses after rejecting a partial match. This + could allow a later back-reference to match in places where it + should fail for lack of a defined referent. +

    • + Fix regular expression performance bug with back-references inside + iteration nodes (Tom Lane) +

      + Incorrect back-tracking logic could result in exponential time spent + looking for a match. Fortunately the problem is masked in most + cases by other optimizations. +

    • + Fix incorrect results from AT TIME ZONE applied + to a time with time zone value (Tom Lane) +

      + The results were incorrect if the target time zone was specified by + a dynamic timezone abbreviation (that is, one that is defined as + equivalent to a full time zone name, rather than a fixed UTC offset). +

    • + Fix planner error with pulling up subquery expressions into function + rangetable entries (Tom Lane) +

      + If a function in FROM laterally references the + output of some sub-SELECT earlier in + the FROM clause, and we are able to flatten that + sub-SELECT into the outer query, the + expression(s) copied into the function expression were not fully + processed. This could lead to crashes at execution. +

    • + Fix mistranslation of PlaceHolderVars to inheritance child relations + (Tom Lane) +

      + This error could result in assertion failures, or in mis-planning of + queries having partitioned or inherited tables on the nullable side + of an outer join. +

    • + Avoid using MCV-only statistics to estimate the range of a column + (Tom Lane) +

      + There are corner cases in which ANALYZE will + build a most-common-values (MCV) list but not a histogram, even + though the MCV list does not account for all the observed values. + In such cases, keep the planner from using the MCV list alone to + estimate the range of column values. +

    • + Fix restoration of a Portal's snapshot inside a subtransaction + (Bertrand Drouvot) +

      + If a procedure commits or rolls back a transaction, and then its + next significant action is inside a new subtransaction, snapshot + management went wrong, leading to a dangling pointer and probable + crash. A typical example in PL/pgSQL is a COMMIT + immediately followed by a BEGIN ... EXCEPTION + block that performs a query. +

    • + Clean up correctly if a transaction fails after exporting its + snapshot (Dilip Kumar) +

      + This oversight would only cause a problem if the same session + attempted to export a snapshot again. The most likely scenario for + that is creation of a replication slot (followed by rollback) + and then creation of another replication slot. +

    • + Prevent wraparound of overflowed-subtransaction tracking on standby + servers (Kyotaro Horiguchi, Alexander Korotkov) +

      + This oversight could cause significant performance degradation + (manifesting as excessive SubtransSLRU traffic) on standby servers. +

    • + Ensure that prepared transactions are properly accounted for during + promotion of a standby server (Michael Paquier, Andres Freund) +

      + There was a narrow window where a prepared transaction could be + omitted from a snapshot taken by a concurrently-running session. + If that session then used the snapshot to perform data updates, + erroneous results or data corruption could occur. +

    • + Disallow LISTEN in background workers (Tom Lane) +

      + There's no infrastructure to support this, so if someone did + it, it would only result in preventing cleanup of + the NOTIFY queue. +

    • + Send NOTIFY signals to other backends during + transaction commit, not in the server's idle loop (Artur Zakirov, + Tom Lane) +

      + This change allows notifications to be delivered immediately after + an intra-procedure COMMIT. It also allows + logical replication workers to send notifications. +

    • + Refuse to rewind a cursor marked NO SCROLL + if it has been held over from a previous transaction due + to the WITH HOLD option (Tom Lane) +

      + We have long forbidden fetching backwards from a NO + SCROLL cursor, but for historical reasons the prohibition + didn't extend to cases in which we rewind the query altogether and + then re-fetch forwards. That exception leads to inconsistencies, + particularly for held-over cursors which may not have stored all the + data necessary to rewind. Disallow rewinding for non-scrollable + held-over cursors to block the worst inconsistencies. (v15 will + remove the exception altogether.) +

    • + Fix possible failure while saving a WITH HOLD + cursor at transaction end, if it had already been read to completion + (Tom Lane) +

    • + Fix detection of a relation that has grown to the maximum allowed + length (Tom Lane) +

      + An attempt to extend a table or index past the limit of 2^32-1 + blocks was rejected, but not soon enough to prevent inconsistent + internal state from being created. +

    • + Correctly track the presence of data-modifying CTEs when expanding + a DO INSTEAD rule (Greg Nancarrow, Tom Lane) +

      + The previous failure to do this could lead to problems such as + unsafely choosing a parallel plan. +

    • + Fix incorrect reporting of permissions failures on extended + statistics objects (Tomas Vondra) +

      + The code typically produced cache lookup error rather + than the intended message. +

    • + Fix incorrect snapshot handling in parallel workers (Greg Nancarrow) +

      + This oversight could lead to misbehavior in parallel queries if the + transaction isolation level is less than REPEATABLE + READ. +

    • + Fix logical decoding to correctly ignore toast-table changes for + transient tables (Bertrand Drouvot) +

      + Logical decoding normally ignores changes in transient tables such + as those created during an ALTER TABLE heap + rewrite. But that filtering wasn't applied to the associated toast + table if any, leading to possible errors when rewriting a table + that's being published. +

    • + Fix logical decoding's memory usage accounting to handle TOAST data + correctly (Bertrand Drouvot) +

    • + Ensure that walreceiver processes create all required archive + notification files before exiting (Fujii Masao) +

      + If a walreceiver exited exactly at a WAL segment boundary, it failed + to make a notification file for the last-received segment, thus + delaying archiving of that segment on the standby. +

    • + Fix computation of the WAL range to include in a backup manifest + when a timeline change is involved (Kyotaro Horiguchi) +

    • + Avoid trying to lock the OLD + and NEW pseudo-relations in a rule + that uses SELECT FOR UPDATE + (Masahiko Sawada, Tom Lane) +

    • + Fix parser's processing of aggregate FILTER + clauses (Tom Lane) +

      + If the FILTER expression is a plain boolean column, + the semantic level of the aggregate could be mis-determined, leading + to not-per-spec behavior. If the FILTER + expression is itself a boolean-returning aggregate, an error should + be thrown but was not, likely resulting in a crash at execution. +

    • + Ensure that the correct lock level is used when renaming a table + (Nathan Bossart, Álvaro Herrera) +

      + For historical reasons, ALTER INDEX ... RENAME + can be applied to any sort of relation. The lock level required to + rename an index is lower than that required to rename a table or + other kind of relation, but the code got this wrong and would use + the weaker lock level whenever the command is spelled ALTER + INDEX. +

    • + Prevent ALTER TYPE/DOMAIN/OPERATOR ... SET + from changing extension membership (Tom Lane) +

      + ALTER ... SET executed by an extension script + would cause the target object to become a member of the extension if + it was not already. In itself this isn't too troubling, since + there's little reason for an extension script to touch an object not + belonging to the extension. But ALTER TYPE SET + will recurse to dependent domains, thus causing them to also become + extension members. This causes unwanted side-effects from + extension upgrade scripts that use that command to adjust the + properties of a base type belonging to the extension. Fix by + redefining these ALTER cases to never change + extension membership. +

    • + Avoid trying to clean up LLVM state after an error within LLVM + (Andres Freund, Justin Pryzby) +

      + This prevents a likely crash during backend exit after a fatal LLVM + error. +

    • + Avoid null-pointer-dereference crash when dropping a role that owns + objects being dropped concurrently (Álvaro Herrera) +

    • + Prevent snapshot reference leak warning + when lo_export() or a related function fails + (Heikki Linnakangas) +

    • + Ensure that scans of SP-GiST indexes are counted in the statistics + views (Tom Lane) +

      + Incrementing the number-of-index-scans counter was overlooked in the + SP-GiST code, although per-tuple counters were advanced correctly. +

    • + Fix inefficient code generation for CoerceToDomain expression nodes + (Ranier Vilela) +

    • + Recalculate relevant wait intervals + if recovery_min_apply_delay is changed during + recovery (Soumyadeep Chakraborty, Ashwin Agrawal) +

    • + Fix infinite loop if a simplehash.h hash table + reaches 2^32 elements (Yura Sokolov) +

      + It seems unlikely that this bug has been hit in practice, as it + would require work_mem settings of hundreds of + gigabytes for existing uses of simplehash.h. +

    • + Avoid O(N^2) behavior in some list-manipulation operations + (Nathan Bossart, Tom Lane) +

      + These changes fix slow processing in several scenarios, including: + when a standby replays a transaction that held many exclusive locks + on the primary; when many files are due to be unlinked after a + checkpoint; when hash aggregation involves many batches; and when + pg_trgm extracts indexable conditions from a + complex regular expression. Only the first of these scenarios has + actually been reported from the field, but they all seem like + plausible consequences of inefficient list deletions. +

    • + Reduce memory consumption during calculation of extended statistics + (Justin Pryzby, Tomas Vondra) +

    • + Add more defensive checks around B-tree posting list splits + (Peter Geoghegan) +

      + This change should help detect index corruption involving duplicate + table TIDs. +

    • + Disallow setting huge_pages + to on when shared_memory_type + is sysv (Thomas Munro) +

      + Previously, this setting was accepted, but it did nothing for lack + of any implementation. +

    • + Fix missing libpq functions on AIX + (Tony Reix) +

      + Code reorganization led to the following documented functions not + being exported from libpq on AIX: + pg_encoding_to_char(), + pg_utf_mblen(), + pg_char_to_encoding(), + pg_valid_server_encoding(), and + pg_valid_server_encoding_id(). + Restore them to visibility. +

    • + Fix ecpg to recover correctly + after malloc() failure while establishing a + connection (Michael Paquier) +

    • + Fix misevaluation of stable functions called in the arguments of a + PL/pgSQL CALL statement (Tom Lane) +

      + They were being called with an out-of-date snapshot, so that they + would not see any database changes made since the start of the + session's top-level command. +

    • + Allow EXIT out of the outermost block in a + PL/pgSQL routine (Tom Lane) +

      + If the routine does not require an explicit RETURN, + this usage should be valid, but it was rejected. +

    • + Remove pg_ctl's hard-coded limits on the + total length of generated commands (Phil Krylov) +

      + For example, this removes a restriction on how many command-line + options can be passed through to the postmaster. Individual path + names that pg_ctl deals with, such as the + postmaster executable's name or the data directory name, are still + limited to MAXPGPATH bytes in most cases. +

    • + Fix pg_dump to dump non-global default + privileges correctly (Neil Chen, Masahiko Sawada) +

      + If a global (unrestricted) ALTER DEFAULT + PRIVILEGES command revoked some present-by-default + privilege, for example EXECUTE for functions, and + then a restricted ALTER DEFAULT PRIVILEGES + command granted that privilege again for a selected role or + schema, pg_dump failed to dump the + restricted privilege grant correctly. +

    • + Make pg_dump acquire shared lock on + partitioned tables that are to be dumped (Tom Lane) +

      + This oversight was usually pretty harmless, since + once pg_dump has locked any of the leaf + partitions, that would suffice to prevent significant DDL on the + partitioned table itself. However problems could ensue when dumping + a childless partitioned table, since no relevant lock would be held. +

    • + Improve pg_dump's performance by avoiding + making per-table queries for RLS policies, and by avoiding repetitive + calls to format_type() (Tom Lane) +

      + These changes provide only marginal improvement when dumping from a + local server, but a dump from a remote server can benefit + substantially due to fewer network round-trips. +

    • + Fix crash in pg_dump when attempting to + dump trigger definitions from a pre-8.3 server (Tom Lane) +

    • + Fix incorrect filename in pg_restore's + error message about an invalid large object TOC file (Daniel + Gustafsson) +

    • + Ensure that pgbench exits with non-zero + status after a socket-level failure (Yugo Nagata, Fabien Coelho) +

      + The desired behavior is to finish out the run but then exit with + status 2. Also, fix the reporting of such errors. +

    • + Fix failure of contrib/btree_gin indexes + on "char" + (not char(n)) columns, + when an indexscan using the < + or <= operator is performed (Tom Lane) +

      + Such an indexscan failed to return all the entries it should. +

    • + Change contrib/pg_stat_statements to read + its query texts file in units of at most 1GB + (Tom Lane) +

      + Such large query text files are very unusual, but if they do occur, + the previous coding would fail on Windows 64 (which rejects + individual read requests of more than 2GB). +

    • + Fix null-pointer crash + when contrib/postgres_fdw tries to report a + data conversion error (Tom Lane) +

    • + Add spinlock support for the RISC-V architecture (Marek Szuba) +

      + This is essential for reasonable performance on that platform. +

    • + Support OpenSSL 3.0.0 + (Peter Eisentraut, Daniel Gustafsson, Michael Paquier) +

    • + Set correct type identifier on OpenSSL BIO (I/O abstraction) + objects created by PostgreSQL + (Itamar Gafni) +

      + This oversight probably only matters for code that is doing + tasks like auditing the OpenSSL installation. But it's + nominally a violation of the OpenSSL API, so fix it. +

    • + Fix our pkg-config files to again support static + linking of libpq (Peter Eisentraut) +

    • + Make pg_regexec() robust against an + out-of-range search_start parameter + (Tom Lane) +

      + Return REG_NOMATCH, instead of possibly crashing, + when search_start is past the end of the + string. This case is probably unreachable within + core PostgreSQL, but extensions might be + more careless about the parameter value. +

    • + Ensure that GetSharedSecurityLabel() can be + used in a newly-started session that has not yet built its critical + relation cache entries (Jeff Davis) +

    • + Use the CLDR project's data to map Windows time zone names to IANA + time zones (Tom Lane) +

      + When running on Windows, initdb attempts + to set the new cluster's timezone parameter to + the IANA time zone matching the system's prevailing time zone. + We were using a mapping table that we'd generated years ago and + updated only fitfully; unsurprisingly, it contained a number of + errors as well as omissions of recently-added zones. It turns out + that CLDR has been tracking the most appropriate mappings, so start + using their data. This change will not affect any existing + installation, only newly-initialized clusters. +

    • + Update time zone data files to tzdata + release 2021e for DST law changes in Fiji, Jordan, Palestine, and + Samoa, plus historical corrections for Barbados, Cook Islands, + Guyana, Niue, Portugal, and Tonga. +

      + Also, the Pacific/Enderbury zone has been renamed to Pacific/Kanton. + Also, the following zones have been merged into nearby, more-populous + zones whose clocks have agreed with them since 1970: Africa/Accra, + America/Atikokan, America/Blanc-Sablon, America/Creston, + America/Curacao, America/Nassau, America/Port_of_Spain, + Antarctica/DumontDUrville, and Antarctica/Syowa. + In all these cases, the previous zone name remains as an alias. +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release-13-6.html postgresql-13-13.7/doc/src/sgml/html/release-13-6.html --- postgresql-13-13.4/doc/src/sgml/html/release-13-6.html 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release-13-6.html 2022-05-09 21:29:30.000000000 +0000 @@ -0,0 +1,304 @@ + +E.2. Release 13.6

    E.2. Release 13.6

    Release date: 2022-02-10

    + This release contains a variety of fixes from 13.5. + For information about new features in major release 13, see + Section E.8. +

    E.2.1. Migration to Version 13.6

    + A dump/restore is not required for those running 13.X. +

    + However, if you have applied REINDEX CONCURRENTLY + to a TOAST table's index, or observe failures to access TOAST datums, + see the first changelog entry below. +

    + Also, if you are upgrading from a version earlier than 13.5, + see Section E.3. +

    E.2.2. Changes

    • + Enforce standard locking protocol for TOAST table updates, to prevent + problems with REINDEX CONCURRENTLY (Michael Paquier) +

      + If applied to a TOAST table or TOAST table's index, REINDEX + CONCURRENTLY tended to produce a corrupted index. This + happened because sessions updating TOAST entries released + their ROW EXCLUSIVE locks immediately, rather + than holding them until transaction commit as all other updates do. + The fix is to make TOAST updates hold the table lock according to the + normal rule. Any existing corrupted indexes can be repaired by + reindexing again. +

    • + Avoid null-pointer crash in ALTER STATISTICS + when the statistics object is dropped concurrently (Tomas Vondra) +

    • + Fix incorrect plan creation for parallel single-child Append nodes + (David Rowley) +

      + In some cases the Append would be simplified away when it should not + be, leading to wrong query results (duplicated rows). +

    • + Fix index-only scan plans for cases where not all index columns can + be returned (Tom Lane) +

      + If an index has both returnable and non-returnable columns, and one + of the non-returnable columns is an expression using a table column + that appears in a returnable index column, then a query using that + expression could result in an index-only scan plan that attempts to + read the non-returnable column, instead of recomputing the + expression from the returnable column as intended. The + non-returnable column would read as NULL, resulting in wrong query + results. +

    • + Ensure that casting to an unspecified typmod generates a RelabelType + node rather than a length-coercion function call (Tom Lane) +

      + While the coercion function should do the right thing (nothing), + this translation is undesirably inefficient. +

    • + Fix checking of anycompatible-family data type matches + (Tom Lane) +

      + In some cases the parser would think that a function or operator + with anycompatible-family polymorphic parameters + matches a set of arguments that it really shouldn't match. In + reported cases, that led to matching more than one operator to a + call, leading to ambiguous-operator errors; but a failure later on + is also possible. +

    • + Fix WAL replay failure when database consistency is reached exactly + at a WAL page boundary (Álvaro Herrera) +

    • + Fix startup of a physical replica to tolerate transaction ID + wraparound (Abhijit Menon-Sen, Tomas Vondra) +

      + If a replica server is started while the set of active transactions + on the primary crosses a wraparound boundary (so that there are some + newer transactions with smaller XIDs than older ones), the replica + would fail with out-of-order XID insertion in + KnownAssignedXids. The replica would retry, but could never + get past that error. +

    • + In logical replication, avoid double transmission of a child table's + data (Hou Zhijie) +

      + If a publication includes both child and parent tables, and has + the publish_via_partition_root option set, + subscribers uselessly initiated synchronization on both child and + parent tables. Ensure that only the parent table is synchronized in + such cases. +

    • + Remove lexical limitations for SQL commands issued on a logical + replication connection (Tom Lane) +

      + The walsender process would fail for a SQL command containing an + unquoted semicolon, or with dollar-quoted literals containing odd + numbers of single or double quote marks, or when the SQL command + starts with a comment. Moreover, faulty error recovery could lead + to unexpected errors in later commands too. +

    • + Fix possible loss of the commit timestamp for the last + subtransaction of a transaction (Alex Kingsborough, Kyotaro Horiguchi) +

    • + Be sure to fsync + the pg_logical/mappings subdirectory during + checkpoints (Nathan Bossart) +

      + On some filesystems this oversight could lead to losing logical + rewrite status files after a system crash. +

    • + Build extended statistics for partitioned tables (Justin Pryzby) +

      + A previous bug fix disabled building of extended statistics for + old-style inheritance trees, but it also prevented building them for + partitioned tables, which was an unnecessary restriction. + This change allows ANALYZE to compute values for + statistics objects for partitioned tables. (But note that + autovacuum does not process partitioned tables as such, so you must + periodically issue manual ANALYZE on the + partitioned table if you want to maintain such statistics.) +

    • + Ignore extended statistics for inheritance trees (Justin Pryzby) +

      + Currently, extended statistics values are only computed locally for + each table, not for entire inheritance trees. However the values + were mistakenly consulted when planning queries across inheritance + trees, possibly resulting in worse-than-default estimates. +

    • + Disallow altering data type of a partitioned table's columns when + the partitioned table's row type is used as a composite type + elsewhere (Tom Lane) +

      + This restriction has long existed for regular tables, but through an + oversight it was not checked for partitioned tables. +

    • + Disallow ALTER TABLE ... DROP NOT NULL for a + column that is part of a replica identity index (Haiying Tang, Hou + Zhijie) +

      + The same prohibition already existed for primary key indexes. +

    • + Correctly update cached table state during ALTER TABLE ADD + PRIMARY KEY USING INDEX (Hou Zhijie) +

      + Concurrent sessions failed to update their opinion of whether the + table has a primary key, possibly causing incorrect logical + replication behavior. +

    • + Correctly update cached table state when switching REPLICA + IDENTITY index (Tang Haiying, Hou Zhijie) +

      + Concurrent sessions failed to update their opinion of which index is + the replica identity one, possibly causing incorrect logical + replication behavior. +

    • + Allow parallel vacuuming and concurrent index building to be ignored + while computing oldest xmin (Masahiko Sawada) +

      + Non-parallelized instances of these operations were already ignored, + but the logic did not work for parallelized cases. Holding back the + xmin horizon has undesirable effects such as delaying vacuum + cleanup. +

    • + Avoid leaking memory during REASSIGN OWNED BY + operations that reassign ownership of many objects (Justin Pryzby) +

    • + Improve performance of walsenders sending logical changes by + avoiding unnecessary cache accesses (Hou Zhijie) +

    • + Fix display of cert authentication method's + options in pg_hba_file_rules view (Magnus + Hagander) +

      + The cert authentication method implies + clientcert=verify-full, but the + pg_hba_file_rules view incorrectly reported + clientcert=verify-ca. +

    • + Fix display of whole-row variables appearing + in INSERT ... VALUES rules (Tom Lane) +

      + A whole-row variable would be printed as var.*, + but that allows it to be expanded to individual columns when + the rule is reloaded, resulting in different semantics. + Attach an explicit cast to prevent that, as we do elsewhere. +

    • + Fix one-byte buffer overrun when applying Unicode string + normalization to an empty string (Michael Paquier) +

      + The practical impact of this is limited thanks to alignment + considerations; but in debug builds, a warning was raised. +

    • + Fix or remove some incorrect assertions (Simon Riggs, Michael + Paquier, Alexander Lakhin) +

      + These errors should affect only debug builds, not production. +

    • + Fix race condition that could lead to failure to localize error + messages that are reported early in multi-threaded use + of libpq + or ecpglib (Tom Lane) +

    • + Avoid calling strerror + from libpq's PQcancel + function (Tom Lane) +

      + PQcancel is supposed to be safe to call from a + signal handler, but strerror is not safe. The + faulty usage only occurred in the unlikely event of failure to + send the cancel message to the server, perhaps explaining the lack + of reports. +

    • + Make psql's \password + command default to setting the password + for CURRENT_USER, not the connection's original + user name (Tom Lane) +

      + This agrees with the documented behavior, and avoids probable + permissions failure if SET ROLE or SET + SESSION AUTHORIZATION has been done since the session began. + To prevent confusion, the role name to be acted on is now + included in the password prompt. +

    • + Fix psql \d command's + query for identifying parent triggers (Justin Pryzby) +

      + The previous coding failed with more than one row returned by + a subquery used as an expression if a partition had triggers + and there were unrelated statement-level triggers of the same name + on some parent partitioned table. +

    • + Fix psql's tab-completion of label values + for enum types (Tom Lane) +

    • + In psql and some other client programs, + avoid trying to invoke gettext() from a + control-C signal handler (Tom Lane) +

      + While no reported failures have been traced to this mistake, it seems + highly unlikely to be a safe thing to do. +

    • + Allow canceling the initial password prompt + in pg_receivewal + and pg_recvlogical (Tom Lane, Nathan + Bossart) +

      + Previously it was impossible to terminate these programs via control-C + while they were prompting for a password. +

    • + Fix pg_dump's dump ordering for + user-defined casts (Tom Lane) +

      + In rare cases, the output script might refer to a user-defined cast + before it had been created. +

    • + Fix pg_dump's --inserts + and --column-inserts modes to handle tables + containing both generated columns and dropped columns (Tom Lane) +

    • + Fix possible mis-reporting of errors + in pg_dump + and pg_basebackup (Tom Lane) +

      + The previous code failed to check for errors from some kernel calls, + and could report the wrong errno values in other cases. +

    • + Fix results of index-only scans + on contrib/btree_gist indexes + on char(N) columns (Tom Lane) +

      + Index-only scans returned column values with trailing spaces + removed, which is not the expected behavior. That happened because + that's how the data was stored in the index. This fix changes the + code to store char(N) values + with the expected amount of space padding. + The behavior of such an index will not change immediately unless + you REINDEX it; otherwise space-stripped values + will be gradually replaced over time during updates. Queries that + do not use index-only scan plans will be unaffected in any case. +

    • + Change configure to use + Python's sysconfig module, rather than + the deprecated distutils module, to + determine how to build PL/Python (Peter Eisentraut, Tom Lane, Andres + Freund) +

      + With Python 3.10, this + avoids configure-time warnings + about distutils being deprecated and + scheduled for removal in Python 3.12. Presumably, once 3.12 is + out, configure --with-python would fail + altogether. This future-proofing does come at a + cost: sysconfig did not exist before + Python 2.7, nor before 3.2 in the Python 3 branch, so it is no + longer possible to build PL/Python against long-dead Python + versions. +

    • + Fix PL/Perl compile failure on Windows with Perl 5.28 and later + (Victor Wagner) +

    • + Fix PL/Python compile failure with Python 3.11 and later (Peter + Eisentraut) +

    • + Add support for building with Visual Studio 2022 (Hans Buschmann) +

    • + Allow the .bat wrapper scripts in our MSVC + build system to be called without first changing into their + directory (Anton Voloshin, Andrew Dunstan) +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release-13-7.html postgresql-13-13.7/doc/src/sgml/html/release-13-7.html --- postgresql-13-13.4/doc/src/sgml/html/release-13-7.html 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release-13-7.html 2022-05-09 21:29:30.000000000 +0000 @@ -0,0 +1,328 @@ + +E.1. Release 13.7

    E.1. Release 13.7

    Release date: 2022-05-12

    + This release contains a variety of fixes from 13.6. + For information about new features in major release 13, see + Section E.8. +

    E.1.1. Migration to Version 13.7

    + A dump/restore is not required for those running 13.X. +

    + However, if you have any GiST indexes on columns of type + ltree (supplied by the contrib/ltree + extension), you should re-index them after updating. + See the second changelog entry below. +

    + Also, if you are upgrading from a version earlier than 13.6, + see Section E.2. +

    E.1.2. Changes

    • + Confine additional operations within security restricted + operation sandboxes (Sergey Shinderuk, Noah Misch) +

      + Autovacuum, CLUSTER, CREATE + INDEX, REINDEX, REFRESH + MATERIALIZED VIEW, + and pg_amcheck activated + the security restricted operation protection + mechanism too late, or even not at all in some code paths. + A user having permission to create non-temporary objects within a + database could define an object that would execute arbitrary SQL + code with superuser permissions the next time that autovacuum + processed the object, or that some superuser ran one of the affected + commands against it. +

      + The PostgreSQL Project thanks + Alexander Lakhin for reporting this problem. + (CVE-2022-1552) +

    • + Fix default signature length for gist_ltree_ops + indexes (Tomas Vondra, Alexander Korotkov) +

      + The default signature length (hash size) for GiST indexes + on ltree columns was accidentally changed while + upgrading that operator class to support operator class parameters. + If any operations had been done on such an index without first + upgrading the ltree extension to version 1.2, + they were done assuming that the signature length was 28 bytes + rather than the intended 8. This means it is very likely that such + indexes are now corrupt. For safety we recommend re-indexing all + GiST indexes on ltree columns after installing this + update. (Note that GiST indexes on ltree[] + columns, that is arrays of ltree, are not affected.) +

    • + Stop using query-provided column aliases for the columns of + whole-row variables that refer to plain tables (Tom Lane) +

      + The column names in tuples produced by a whole-row variable (such + as tbl.* in contexts other than the top level of + a SELECT list) are now always those of the + associated named composite type, if there is one. We'd previously + attempted to make them track any column aliases that had been + applied to the FROM entry the variable refers to. + But that's semantically dubious, because really then the output of + the variable is not at all of the composite type it claims to be. + Previous attempts to deal with that inconsistency had bad results up + to and including storing unreadable data on disk, so just give up on + the whole idea. +

      + In cases where it's important to be able to relabel such columns, + a workaround is to introduce an extra level of + sub-SELECT, so that the whole-row variable is + referring to the sub-SELECT's output and not to a + plain table. Then the variable is of type record + to begin with and there's no issue. +

    • + Fix incorrect output for types timestamptz + and timetz in table_to_xmlschema() + and allied functions (Renan Soares Lopes) +

      + The xmlschema output for these types included a malformed regular + expression. +

    • + Avoid core dump in parser for a VALUES clause with + zero columns (Tom Lane) +

    • + Fix planner errors for GROUPING() constructs + that reference outer query levels (Richard Guo, Tom Lane) +

    • + Fix plan generation for index-only scans on indexes with + both returnable and non-returnable columns (Tom Lane) +

      + The previous coding could try to read non-returnable columns + in addition to the returnable ones. This was fairly harmless + because it didn't actually do anything with the bogus values, + but it fell foul of a recently-added error check that rejected + such a plan. +

    • + Avoid accessing a no-longer-pinned shared buffer while attempting + to lock an outdated tuple during EvalPlanQual (Tom Lane) +

      + The code would touch the buffer a couple more times after releasing + its pin. In theory another process could recycle the buffer (or + more likely, try to defragment its free space) as soon as the pin is + gone, probably leading to failure to find the newer version of the + tuple. +

    • + Fix query-lifespan memory leak in an IndexScan node that is + performing reordering (Aliaksandr Kalenik) +

    • + Fix ALTER FUNCTION to support changing a + function's parallelism property and + its SET-variable list in the same command (Tom + Lane) +

      + The parallelism property change was lost if the same command also + updated the function's SET clause. +

    • + Fix bogus errors from attempts to alter system columns of tables + (Tom Lane) +

      + The system should just tell you that you can't do it, but sometimes + it would report no owned sequence found instead. +

    • + Fix mis-sorting of table rows when CLUSTERing + using an index whose leading key is an expression (Peter Geoghegan, + Thomas Munro) +

      + The table would be rebuilt with the correct data, but in an order + having little to do with the index order. +

    • + Fix risk of deadlock failures while dropping a partitioned index + (Jimmy Yih, Gaurab Dey, Tom Lane) +

      + Ensure that the required table and index locks are taken in the + standard order (parents before children, tables before indexes). + The previous coding for DROP INDEX did it + differently, and so could deadlock against concurrent queries taking + these locks in the standard order. +

    • + Fix race condition between DROP TABLESPACE and + checkpointing (Nathan Bossart) +

      + The checkpoint forced by DROP TABLESPACE could + sometimes fail to remove all dead files from the tablespace's + directory, leading to a bogus tablespace is not empty + error. +

    • + Fix possible trouble in crash recovery after + a TRUNCATE command that overlaps a checkpoint + (Kyotaro Horiguchi, Heikki Linnakangas, Robert Haas) +

      + TRUNCATE must ensure that the table's disk file + is truncated before the checkpoint is allowed to complete. + Otherwise, replay starting from that checkpoint might find + unexpected data in the supposedly-removed pages, possibly causing + replay failure. +

    • + Fix unsafe toast-data accesses during temporary object cleanup + (Andres Freund) +

      + Temporary-object deletion during server process exit could fail + with FATAL: cannot fetch toast data without an active + snapshot. This was usually harmless since the next use of + that temporary schema would clean up successfully. +

    • + Improve wait logic in RegisterSyncRequest (Thomas Munro) +

      + If we run out of space in the checkpointer sync request queue (which + is hopefully rare on real systems, but is common when testing with a + very small buffer pool), we wait for it to drain. While waiting, we + should report that as a wait event so that users know what is going + on, and also watch for postmaster death, since otherwise the loop might + never terminate if the checkpointer has already exited. +

    • + Fix PANIC: xlog flush request is not satisfied + failure during standby promotion when there is a missing WAL + continuation record (Sami Imseih) +

    • + Fix possibility of self-deadlock in hot standby conflict handling + (Andres Freund) +

      + With unlucky timing, the WAL-applying process could get stuck + while waiting for some other process to release a buffer lock. +

    • + Fix possible mis-identification of the correct ancestor relation + to publish logical replication changes through (Tomas Vondra, Hou + zj, Amit Kapila) +

      + If publish_via_partition_root is enabled, and + there are multiple publications naming different ancestors of the + currently-modified relation, the wrong ancestor might be chosen for + reporting the change. +

    • + Ensure that logical replication apply workers can be restarted even + when we're up against + the max_sync_workers_per_subscription limit + (Amit Kapila) +

      + Faulty coding of the limit check caused a restarted worker to exit + immediately, leaving fewer workers than there should be. +

    • + Include unchanged replica identity key columns in the WAL log for an + update, if they are stored out-of-line (Dilip Kumar, Amit Kapila) +

      + Otherwise subscribers cannot see the values and will fail to + replicate the update. +

    • + Cope correctly with platforms that have no support for altering the + server process's display in ps(1) (Andrew + Dunstan) +

      + Few platforms are like this (the only supported one is Cygwin), so + we'd managed not to notice that refactoring introduced a potential + memory clobber. +

    • + Disallow execution of SPI functions during PL/Perl function + compilation (Tom Lane) +

      + Perl can be convinced to execute user-defined code during compilation + of a PL/Perl function. However, it's not okay for such code to try + to invoke SQL operations via SPI. That results in a crash, and if + it didn't crash it would be a security hazard, because we really + don't want code execution during function validation. Put in a + check to give a friendlier error message instead. +

    • + Make libpq accept root-owned SSL private + key files (David Steele) +

      + This change synchronizes libpq's rules + for safe ownership and permissions of SSL key files with the rules + the server has used since release 9.6. Namely, in addition to the + current rules, allow the case where the key file is owned by root + and has permissions rw-r----- or less. This is + helpful for system-wide management of key files. +

    • + Fix behavior of libpq's + PQisBusy() function after a connection failure + (Tom Lane) +

      + If we'd detected a write failure, PQisBusy() + would always return true, which is the wrong thing: we want input + processing to carry on normally until we've read whatever is + available from the server. The practical effect of this error is + that applications using libpq's + async-query API would typically detect connection loss only + when PQconsumeInput() returns a hard failure. + With this fix, a connection loss will normally be reported via an + error PGresult object, which is a much + cleaner behavior for most applications. +

    • + Make pg_ctl recheck postmaster aliveness + while waiting for stop/restart/promote actions (Tom Lane) +

      + pg_ctl would verify that the postmaster + is alive as a side-effect of sending the stop or promote signal, but + then it just naively waited to see the on-disk state change. If the + postmaster died uncleanly without having removed its PID file or + updated the control file, pg_ctl would + wait until timeout. Instead make it recheck every so often that the + postmaster process is still there. +

    • + Fix error handling in pg_waldump (Kyotaro + Horiguchi, Andres Freund) +

      + While trying to read a WAL file to determine the WAL segment size, + pg_waldump would report an incorrect + error for the case of a too-short file. In addition, the file name + reported in this and related error messages could be garbage. +

    • + Ensure that contrib/pageinspect functions cope + with all-zero pages (Michael Paquier) +

      + This is a legitimate edge case, but the module was mostly unprepared + for it. Arrange to return nulls, or no rows, as appropriate; that + seems more useful than raising an error. +

    • + In contrib/pageinspect, add defenses against + incorrect page special space contents, tighten checks + for correct page size, and add some missing checks that an index is + of the expected type (Michael Paquier, Justin Pryzby, Julien + Rouhaud) +

      + These changes make it less likely that the module will crash on bad + data. +

    • + In contrib/postgres_fdw, verify + that ORDER BY clauses are safe to ship before + requesting a remotely-ordered query, and include + a USING clause if necessary (Ronan Dunklau) +

      + This fix prevents situations where the remote server might sort in a + different order than we intend. While sometimes that would be only + cosmetic, it could produce thoroughly wrong results if the remote + data is used as input for a locally-performed merge join. +

    • + Update JIT code to work with LLVM 14 + (Thomas Munro) +

    • + Clean up assorted failures under clang's + -fsanitize=undefined checks (Tom Lane, Andres + Freund, Zhihong Yu) +

      + Most of these changes are just for pro-forma compliance with the + letter of the C and POSIX standards, and are unlikely to have any + effect on production builds. +

    • + Fix PL/Perl so it builds on C compilers that don't support statements + nested within expressions (Tom Lane) +

      +

    • + Fix possible build failure of pg_dumpall + on Windows, when not using MSVC to build (Andres Freund) +

    • + In Windows builds, use gendef instead + of pexports to build DEF files (Andrew + Dunstan) +

      + This adapts the build process to work on recent MSys tool chains. +

    • + Prevent extra expansion of shell wildcard patterns in programs built + under MinGW (Andrew Dunstan) +

      + For some reason the C library provided by MinGW will expand shell + wildcard characters in a program's command-line arguments by + default. This is confusing, not least because it doesn't happen + under MSVC, so turn it off. +

    • + Update time zone data files to tzdata + release 2022a for DST law changes in Palestine, plus historical + corrections for Chile and Ukraine. +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release-13.html postgresql-13-13.7/doc/src/sgml/html/release-13.html --- postgresql-13-13.4/doc/src/sgml/html/release-13.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release-13.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -E.5. Release 13

    E.5. Release 13

    Release date: 2020-09-24

    E.5.1. Overview

    +E.8. Release 13

    E.8. Release 13

    Release date: 2020-09-24

    E.8.1. Overview

    PostgreSQL 13 contains many new features and enhancements, including:

    • @@ -18,7 +18,7 @@ The above items and other new features of PostgreSQL 13 are explained in more detail in the sections below. -

    E.5.2. Migration to Version 13

    +

    E.8.2. Migration to Version 13

    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. @@ -131,11 +131,11 @@ Fix pageinspect's bt_metap() to return more appropriate data types that are less likely to overflow (Peter Geoghegan) -

    E.5.3. Changes

    +

    E.8.3. Changes

    Below you will find a detailed account of the changes between PostgreSQL 13 and the previous major release. -

    E.5.3.1. Server

    E.5.3.1.1. Partitioning
    • +

      E.8.3.1. Server

      E.8.3.1.1. Partitioning
      • Allow pruning of partitions to happen in more cases (Yuzuko Hosoya, Amit Langote, Álvaro Herrera) @@ -174,7 +174,7 @@ Allow whole-row variables (that is, table.*) to be used in partitioning expressions (Amit Langote) -

      E.5.3.1.2. Indexes
      • +

      E.8.3.1.2. Indexes
      • More efficiently store duplicates in B-tree indexes (Anastasia Lubennikova, Peter Geoghegan)

        @@ -210,7 +210,7 @@ The index's collation must match that of the underlying column, but ALTER TABLE previously failed to check this. -

      E.5.3.1.3. Optimizer
      • +

      E.8.3.1.3. Optimizer
      • Improve the optimizer's selectivity estimation for containment/match operators (Tom Lane)

      • @@ -231,7 +231,7 @@ Allow functions in FROM clauses to be pulled up (inlined) if they evaluate to constants (Alexander Kuzmenkov, Aleksandr Parfenov) -

      E.5.3.1.4. General Performance
      • +

      E.8.3.1.4. General Performance
      • Implement incremental sorting (James Coleman, Alexander Korotkov, Tomas Vondra)

        @@ -314,7 +314,7 @@

      • Reduce memory usage for query strings and extension scripts that contain many SQL statements (Amit Langote) -

      E.5.3.1.5. Monitoring
      • +

      E.8.3.1.5. Monitoring
      E.5.3.1.6. System Views
      • +

      E.8.3.1.6. System Views
      • Add leader_pid to pg_stat_activity to report a parallel worker's leader process (Julien Rouhaud)

      • @@ -368,7 +368,7 @@ high as 1MB (Vyacheslav Makarov)

        The previous maximum was 100kB. -

      E.5.3.1.7. Wait Events
      • +

      E.8.3.1.7. Wait Events
      • Report a wait event while creating a DSM segment with posix_fallocate() (Thomas Munro)

      • @@ -386,7 +386,7 @@

      • Improve performance of wait events on BSD-based systems (Thomas Munro) -

      E.5.3.1.8. Authentication
      • +

      E.8.3.1.8. Authentication
      E.5.3.1.9. Server Configuration
      • +

      E.8.3.1.9. Server Configuration
      • Tighten rules on which utility commands are allowed in read-only transaction mode (Robert Haas)

        @@ -416,7 +416,7 @@ Enable support for Unix-domain sockets on Windows (Peter Eisentraut) -

      E.5.3.2. Streaming Replication and Recovery

      • +

    E.8.3.2. Streaming Replication and Recovery

    • Allow streaming replication configuration settings to be changed by reload (Sergei Kornilov)

      @@ -456,7 +456,7 @@ pages are referenced by WAL (Fujii Masao)

      This is enabled using ignore_invalid_pages. -

    E.5.3.3. Utility Commands

    • +

    E.8.3.3. Utility Commands

    • Allow VACUUM to process a table's indexes in parallel (Masahiko Sawada, Amit Kapila)

      @@ -522,7 +522,7 @@ Add structure member tg_updatedcols to allow C-language update triggers to know which column(s) were updated (Peter Eisentraut) -

    E.5.3.4. Data Types

    • +

    E.8.3.4. Data Types

    • Add polymorphic data types for use by functions requiring compatible arguments (Pavel Stehule)

      @@ -553,7 +553,7 @@ notation (Tom Lane)

      For example, (ROW(4, 5.0)).f1 now returns 4. -

    E.5.3.5. Functions

    • +

    E.8.3.5. Functions

    • Add alternate version of jsonb_set() with improved NULL handling (Andrew Dunstan)

      @@ -661,13 +661,13 @@

      The object can be a function, materialized view, index, or trigger. The syntax is ALTER .. NO DEPENDS ON. -

    E.5.3.6. PL/pgSQL

    • +

    E.8.3.6. PL/pgSQL

    • Improve performance of simple PL/pgSQL expressions (Tom Lane, Amit Langote)

    • Improve performance of PL/pgSQL functions that use immutable expressions (Konstantin Knizhnik) -

    E.5.3.7. Client Interfaces

    • +

    E.8.3.7. Client Interfaces

    • Allow libpq clients to require channel binding for encrypted connections (Jeff Davis)

      @@ -700,7 +700,7 @@ of the same if construct did not prevent expansion of the elif branch or following branches. -

    E.5.3.8. Client Applications

    E.5.3.8.1. psql
    • +

    E.8.3.8. Client Applications

    E.8.3.8.1. psql
    • Add transaction status (%x) to psql's default prompts (Vik Fearing) @@ -752,7 +752,7 @@

    • Add the PostgreSQL home page to command-line --help output (Peter Eisentraut) -

    E.5.3.8.2. pgbench
    • +

    E.8.3.8.2. pgbench
    • Allow pgbench to partition its accounts table (Fabien Coelho)

      @@ -767,7 +767,7 @@

    • Allow pgbench to show script contents using option --show-script (Fabien Coelho) -

    E.5.3.9. Server Applications

    • +

    E.8.3.9. Server Applications

    • Generate backup manifests for base backups, and verify them (Robert Haas)

      @@ -839,7 +839,7 @@ Use the directory of the pg_upgrade program as the default --new-bindir setting when running pg_upgrade (Daniel Gustafsson) -

    E.5.3.10. Documentation

    • +

    E.8.3.10. Documentation

    • Add a glossary to the documentation (Corey Huinker, Jürgen Purtz, Roger Harkavy, Álvaro Herrera) @@ -849,7 +849,7 @@

    • Upgrade to use DocBook 4.5 (Peter Eisentraut) -

    E.5.3.11. Source Code

    • +

    E.8.3.11. Source Code

    • Add support for building on Visual Studio 2019 (Haribabu Kommi)

    • Add build support for MSYS2 (Peter Eisentraut) @@ -914,7 +914,7 @@ TS_execute callbacks must now provide ternary (yes/no/maybe) logic. Calculating NOT queries accurately is now the default. -

    E.5.3.12. Additional Modules

    • +

    E.8.3.12. Additional Modules

    • Allow extensions to be specified as trusted (Tom Lane)

      @@ -977,8 +977,8 @@

    • Add B-tree index de-duplication processing columns to pageinspect output (Peter Geoghegan) -

    E.5.4. Acknowledgments

    +

    E.8.4. Acknowledgments

    The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues. -

    Abhijit Menon-Sen
    Adam Lee
    Adam Scott
    Adé Heyward
    Adrien Nayrat
    Ahsan Hadi
    Alastair McKinley
    Aleksandr Parfenov
    Alex Aktsipetrov
    Alex Macy
    Alex Shulgin
    Alexander Korotkov
    Alexander Kukushkin
    Alexander Kuzmenkov
    Alexander Lakhin
    Alexey Bashtanov
    Alexey Kondratov
    Álvaro Herrera
    Amit Kapila
    Amit Khandekar
    Amit Langote
    Amul Sul
    Anastasia Lubennikova
    Andreas Joseph Krogh
    Andreas Karlsson
    Andreas Kunert
    Andreas Seltenreich
    Andrei Zubkov
    Andres Freund
    Andrew Bille
    Andrew Dunstan
    Andrew Gierth
    Andrey Borodin
    Andrey Klychkov
    Andrey Lepikhov
    Anna Akenteva
    Anna Endo
    Anthony Nowocien
    Anton Vlasov
    Antonin Houska
    Ants Aasma
    Arne Roland
    Arnold Müller
    Arseny Sher
    Arthur Nascimento
    Arthur Zakirov
    Ashutosh Bapat
    Ashutosh Sharma
    Ashwin Agrawal
    Asif Rehman
    Asim Praveen
    Atsushi Torikoshi
    Augustinas Jokubauskas
    Austin Drenski
    Basil Bourque
    Beena Emerson
    Ben Cornett
    Benjie Gillam
    Benoît Lobréau
    Bernd Helmle
    Bharath Rupireddy
    Bhargav Kamineni
    Binguo Bao
    Brad DeJong
    Brandur Leach
    Brent Bates
    Brian Williams
    Bruce Momjian
    Cameron Ezell
    Cary Huang
    Chapman Flack
    Charles Offenbacher
    Chen Huajun
    Chenyang Lu
    Chris Bandy
    Chris Travers
    Christoph Berg
    Christophe Courtois
    Corey Huinker
    Craig Ringer
    Cuiping Lin
    Dagfinn Ilmari Mannsåker
    Daniel Fiori
    Daniel Gustafsson
    Daniel Vérité
    Daniel Westermann
    Darafei Praliaskouski
    Daryl Waycott
    Dave Cramer
    David Christensen
    David Fetter
    David G. Johnston
    David Gilman
    David Harper
    David Rowley
    David Steele
    David Zhang
    Davinder Singh
    Dean Rasheed
    Denis Stuchalin
    Dent John
    Didier Gautheron
    Dilip Kumar
    Dmitry Belyavsky
    Dmitry Dolgov
    Dmitry Ivanov
    Dmitry Telpt
    Dmitry Uspenskiy
    Dominik Czarnota
    Dongming Liu
    Ed Morley
    Edmund Horner
    Emre Hasegeli
    Eric Gillum
    Erik Rijkers
    Erwin Brandstetter
    Ethan Waldo
    Etsuro Fujita
    Eugen Konkov
    Euler Taveira
    Fabien Coelho
    Fabrízio de Royes Mello
    Felix Lechner
    Filip Janus
    Filip Rembialkowski
    Frank Gagnepain
    Georgios Kokolatos
    Gilles Darold
    Greg Nancarrow
    Grigory Smolkin
    Guancheng Luo
    Guillaume Lelarge
    Hadi Moshayedi
    Haiying Tang
    Hamid Akhtar
    Hans Buschmann
    Hao Wu
    Haribabu Kommi
    Haruka Takatsuka
    Heath Lord
    Heikki Linnakangas
    Himanshu Upadhyaya
    Hironobu Suzuki
    Hugh McMaster
    Hugh Ranalli
    Hugh Wang
    Ian Barwick
    Ibrar Ahmed
    Ildar Musin
    Insung Moon
    Ireneusz Pluta
    Isaac Morland
    Ivan Kartyshov
    Ivan Panchenko
    Ivan Sergio Borgonovo
    Jaime Casanova
    James Coleman
    James Gray
    James Hunter
    James Inform
    James Lucas
    Jan Mussler
    Jaroslav Sivy
    Jeevan Chalke
    Jeevan Ladhe
    Jeff Davis
    Jeff Janes
    Jehan-Guillaume de Rorthais
    Jeremy Evans
    Jeremy Schneider
    Jeremy Smith
    Jerry Sievers
    Jesper Pedersen
    Jesse Kinkead
    Jesse Zhang
    Jian Zhang
    Jie Zhang
    Jim Nasby
    Jimmy Yih
    Jobin Augustine
    Joe Conway
    John Hsu
    John Naylor
    Jon Jensen
    Jonathan Katz
    Jorge Gustavo Rocha
    Josef Šimánek
    Joseph Nahmias
    Juan José Santamaría Flecha
    Julian Backes
    Julien Rouhaud
    Jürgen Purtz
    Justin King
    Justin Pryzby
    Karl O. Pinc
    Keisuke Kuroda
    Keith Fiske
    Kelly Min
    Ken Tanzer
    Kirill Bychik
    Kirk Jamison
    Konstantin Knizhnik
    Kuntal Ghosh
    Kyle Kingsbury
    Kyotaro Horiguchi
    Lars Kanis
    Laurenz Albe
    Leif Gunnar Erlandsen
    Li Japin
    Liudmila Mantrova
    Lucas Viecelli
    Luis M. Carril
    Lukáš Sobotka
    Maciek Sakrejda
    Magnus Hagander
    Mahadevan Ramachandran
    Mahendra Singh Thalor
    Manuel Rigger
    Marc Munro
    Marcos David
    Marina Polyakova
    Mark Dilger
    Mark Wong
    Marko Tiikkaja
    Markus Winand
    Marti Raudsepp
    Martijn van Oosterhout
    Masahiko Sawada
    Masahiro Ikeda
    Masao Fujii
    Mateusz Guzik
    Matt Jibson
    Matteo Beccati
    Maxence Ahlouche
    Melanie Plageman
    Michael Banck
    Michael Luo
    Michael Meskes
    Michael Paquier
    Michail Nikolaev
    Mike Palmiotto
    Mithun Cy
    Movead Li
    Nathan Bossart
    Nazli Ugur Koyluoglu
    Neha Sharma
    Nicola Contu
    Nicolás Alvarez
    Nikhil Sontakke
    Nikita Glukhov
    Nikolay Shaplov
    Nino Floris
    Noah Misch
    Noriyoshi Shinoda
    Oleg Bartunov
    Oleg Samoilov
    Oleksii Kliukin
    Ondrej Jirman
    Panagiotis Mavrogiorgos
    Pascal Legrand
    Patrick McHardy
    Paul Guo
    Paul Jungwirth
    Paul Ramsey
    Paul Sivash
    Paul Spencer
    Pavan Deolasee
    Pavel Borisov
    Pavel Luzanov
    Pavel Stehule
    Pavel Suderevsky
    Peifeng Qiu
    Pengzhou Tang
    Peter Billen
    Peter Eisentraut
    Peter Geoghegan
    Peter Smith
    Petr Fedorov
    Petr Jelínek
    Phil Bayer
    Philip Semanchuk
    Philippe Beaudoin
    Pierre Ducroquet
    Pierre Giraud
    Piotr Gabriel Kosinski
    Piotr Wlodarczyk
    Prabhat Sahu
    Quan Zongliang
    Quentin Rameau
    Rafael Castro
    Rafia Sabih
    Raj Mohite
    Rajkumar Raghuwanshi
    Ramanarayana M
    Ranier Vilela
    Rares Salcudean
    Raúl Marín Rodríguez
    Raymond Martin
    Reijo Suhonen
    Richard Guo
    Robert Ford
    Robert Haas
    Robert Kahlert
    Robert Treat
    Robin Abbi
    Robins Tharakan
    Roger Harkavy
    Roman Peshkurov
    Rui DeSousa
    Rui Hai Jiang
    Rushabh Lathia
    Ryan Lambert
    Ryohei Takahashi
    Scott Ribe
    Sean Farrell
    Sehrope Sarkuni
    Sergei Agalakov
    Sergei Kornilov
    Sergey Cherkashin
    Shawn Debnath
    Shawn Wang
    Shay Rojansky
    Shenhao Wang
    Simon Riggs
    Slawomir Chodnicki
    Soumyadeep Chakraborty
    Stéphane Lorek
    Stephen Frost
    Steve Rogerson
    Steven Winfield
    Surafel Temesgen
    Suraj Kharage
    Takanori Asaba
    Takao Fujii
    Takayuki Tsunakawa
    Takuma Hoshiai
    Tatsuhito Kasahara
    Tatsuo Ishii
    Tatsuro Yamada
    Taylor Vesely
    Teodor Sigaev
    Tham Nguyen
    Thibaut Madelaine
    Thom Brown
    Thomas Kellerer
    Thomas Munro
    Tiago Anastacio
    Tim Clarke
    Tim Möhlmann
    Tom Ellis
    Tom Gottfried
    Tom Lane
    Tomas Vondra
    Tuomas Leikola
    Tushar Ahuja
    Victor Wagner
    Victor Yegorov
    Vignesh C
    Vik Fearing
    Vinay Banakar
    Vladimir Leskov
    Vladimir Sitnikov
    Vyacheslav Makarov
    Vyacheslav Shablistyy
    Will Leinweber
    William Crowell
    Wyatt Alt
    Yang Xiao
    Yaroslav Schekin
    Yi Huang
    Yigong Hu
    Yoann La Cancellera
    Yoshikazu Imai
    Yu Kimura
    Yugo Nagata
    Yuli Khodorkovskiy
    Yusuke Egashira
    Yuya Watari
    Yuzuko Hosoya
    ZhenHua Cai
    \ No newline at end of file +

    Abhijit Menon-Sen
    Adam Lee
    Adam Scott
    Adé Heyward
    Adrien Nayrat
    Ahsan Hadi
    Alastair McKinley
    Aleksandr Parfenov
    Alex Aktsipetrov
    Alex Macy
    Alex Shulgin
    Alexander Korotkov
    Alexander Kukushkin
    Alexander Kuzmenkov
    Alexander Lakhin
    Alexey Bashtanov
    Alexey Kondratov
    Álvaro Herrera
    Amit Kapila
    Amit Khandekar
    Amit Langote
    Amul Sul
    Anastasia Lubennikova
    Andreas Joseph Krogh
    Andreas Karlsson
    Andreas Kunert
    Andreas Seltenreich
    Andrei Zubkov
    Andres Freund
    Andrew Bille
    Andrew Dunstan
    Andrew Gierth
    Andrey Borodin
    Andrey Klychkov
    Andrey Lepikhov
    Anna Akenteva
    Anna Endo
    Anthony Nowocien
    Anton Vlasov
    Antonin Houska
    Ants Aasma
    Arne Roland
    Arnold Müller
    Arseny Sher
    Arthur Nascimento
    Arthur Zakirov
    Ashutosh Bapat
    Ashutosh Sharma
    Ashwin Agrawal
    Asif Rehman
    Asim Praveen
    Atsushi Torikoshi
    Augustinas Jokubauskas
    Austin Drenski
    Basil Bourque
    Beena Emerson
    Ben Cornett
    Benjie Gillam
    Benoît Lobréau
    Bernd Helmle
    Bharath Rupireddy
    Bhargav Kamineni
    Binguo Bao
    Brad DeJong
    Brandur Leach
    Brent Bates
    Brian Williams
    Bruce Momjian
    Cameron Ezell
    Cary Huang
    Chapman Flack
    Charles Offenbacher
    Chen Huajun
    Chenyang Lu
    Chris Bandy
    Chris Travers
    Christoph Berg
    Christophe Courtois
    Corey Huinker
    Craig Ringer
    Cuiping Lin
    Dagfinn Ilmari Mannsåker
    Daniel Fiori
    Daniel Gustafsson
    Daniel Vérité
    Daniel Westermann
    Darafei Praliaskouski
    Daryl Waycott
    Dave Cramer
    David Christensen
    David Fetter
    David G. Johnston
    David Gilman
    David Harper
    David Rowley
    David Steele
    David Zhang
    Davinder Singh
    Dean Rasheed
    Denis Stuchalin
    Dent John
    Didier Gautheron
    Dilip Kumar
    Dmitry Belyavsky
    Dmitry Dolgov
    Dmitry Ivanov
    Dmitry Telpt
    Dmitry Uspenskiy
    Dominik Czarnota
    Dongming Liu
    Ed Morley
    Edmund Horner
    Emre Hasegeli
    Eric Gillum
    Erik Rijkers
    Erwin Brandstetter
    Ethan Waldo
    Etsuro Fujita
    Eugen Konkov
    Euler Taveira
    Fabien Coelho
    Fabrízio de Royes Mello
    Felix Lechner
    Filip Janus
    Filip Rembialkowski
    Frank Gagnepain
    Georgios Kokolatos
    Gilles Darold
    Greg Nancarrow
    Grigory Smolkin
    Guancheng Luo
    Guillaume Lelarge
    Hadi Moshayedi
    Haiying Tang
    Hamid Akhtar
    Hans Buschmann
    Hao Wu
    Haribabu Kommi
    Haruka Takatsuka
    Heath Lord
    Heikki Linnakangas
    Himanshu Upadhyaya
    Hironobu Suzuki
    Hugh McMaster
    Hugh Ranalli
    Hugh Wang
    Ian Barwick
    Ibrar Ahmed
    Ildar Musin
    Insung Moon
    Ireneusz Pluta
    Isaac Morland
    Ivan Kartyshov
    Ivan Panchenko
    Ivan Sergio Borgonovo
    Jaime Casanova
    James Coleman
    James Gray
    James Hunter
    James Inform
    James Lucas
    Jan Mussler
    Jaroslav Sivy
    Jeevan Chalke
    Jeevan Ladhe
    Jeff Davis
    Jeff Janes
    Jehan-Guillaume de Rorthais
    Jeremy Evans
    Jeremy Schneider
    Jeremy Smith
    Jerry Sievers
    Jesper Pedersen
    Jesse Kinkead
    Jesse Zhang
    Jian Zhang
    Jie Zhang
    Jim Nasby
    Jimmy Yih
    Jobin Augustine
    Joe Conway
    John Hsu
    John Naylor
    Jon Jensen
    Jonathan Katz
    Jorge Gustavo Rocha
    Josef Šimánek
    Joseph Nahmias
    Juan José Santamaría Flecha
    Julian Backes
    Julien Rouhaud
    Jürgen Purtz
    Justin King
    Justin Pryzby
    Karl O. Pinc
    Keisuke Kuroda
    Keith Fiske
    Kelly Min
    Ken Tanzer
    Kirill Bychik
    Kirk Jamison
    Konstantin Knizhnik
    Kuntal Ghosh
    Kyle Kingsbury
    Kyotaro Horiguchi
    Lars Kanis
    Laurenz Albe
    Leif Gunnar Erlandsen
    Li Japin
    Liudmila Mantrova
    Lucas Viecelli
    Luis M. Carril
    Lukáš Sobotka
    Maciek Sakrejda
    Magnus Hagander
    Mahadevan Ramachandran
    Mahendra Singh Thalor
    Manuel Rigger
    Marc Munro
    Marcos David
    Marina Polyakova
    Mark Dilger
    Mark Wong
    Marko Tiikkaja
    Markus Winand
    Marti Raudsepp
    Martijn van Oosterhout
    Masahiko Sawada
    Masahiro Ikeda
    Masao Fujii
    Mateusz Guzik
    Matt Jibson
    Matteo Beccati
    Maxence Ahlouche
    Melanie Plageman
    Michael Banck
    Michael Luo
    Michael Meskes
    Michael Paquier
    Michail Nikolaev
    Mike Palmiotto
    Mithun Cy
    Movead Li
    Nathan Bossart
    Nazli Ugur Koyluoglu
    Neha Sharma
    Nicola Contu
    Nicolás Alvarez
    Nikhil Sontakke
    Nikita Glukhov
    Nikolay Shaplov
    Nino Floris
    Noah Misch
    Noriyoshi Shinoda
    Oleg Bartunov
    Oleg Samoilov
    Oleksii Kliukin
    Ondrej Jirman
    Panagiotis Mavrogiorgos
    Pascal Legrand
    Patrick McHardy
    Paul Guo
    Paul Jungwirth
    Paul Ramsey
    Paul Sivash
    Paul Spencer
    Pavan Deolasee
    Pavel Borisov
    Pavel Luzanov
    Pavel Stehule
    Pavel Suderevsky
    Peifeng Qiu
    Pengzhou Tang
    Peter Billen
    Peter Eisentraut
    Peter Geoghegan
    Peter Smith
    Petr Fedorov
    Petr Jelínek
    Phil Bayer
    Philip Semanchuk
    Philippe Beaudoin
    Pierre Ducroquet
    Pierre Giraud
    Piotr Gabriel Kosinski
    Piotr Wlodarczyk
    Prabhat Sahu
    Quan Zongliang
    Quentin Rameau
    Rafael Castro
    Rafia Sabih
    Raj Mohite
    Rajkumar Raghuwanshi
    Ramanarayana M
    Ranier Vilela
    Rares Salcudean
    Raúl Marín Rodríguez
    Raymond Martin
    Reijo Suhonen
    Richard Guo
    Robert Ford
    Robert Haas
    Robert Kahlert
    Robert Treat
    Robin Abbi
    Robins Tharakan
    Roger Harkavy
    Roman Peshkurov
    Rui DeSousa
    Rui Hai Jiang
    Rushabh Lathia
    Ryan Lambert
    Ryohei Takahashi
    Scott Ribe
    Sean Farrell
    Sehrope Sarkuni
    Sergei Agalakov
    Sergei Kornilov
    Sergey Cherkashin
    Shawn Debnath
    Shawn Wang
    Shay Rojansky
    Shenhao Wang
    Simon Riggs
    Slawomir Chodnicki
    Soumyadeep Chakraborty
    Stéphane Lorek
    Stephen Frost
    Steve Rogerson
    Steven Winfield
    Surafel Temesgen
    Suraj Kharage
    Takanori Asaba
    Takao Fujii
    Takayuki Tsunakawa
    Takuma Hoshiai
    Tatsuhito Kasahara
    Tatsuo Ishii
    Tatsuro Yamada
    Taylor Vesely
    Teodor Sigaev
    Tham Nguyen
    Thibaut Madelaine
    Thom Brown
    Thomas Kellerer
    Thomas Munro
    Tiago Anastacio
    Tim Clarke
    Tim Möhlmann
    Tom Ellis
    Tom Gottfried
    Tom Lane
    Tomas Vondra
    Tuomas Leikola
    Tushar Ahuja
    Victor Wagner
    Victor Yegorov
    Vignesh C
    Vik Fearing
    Vinay Banakar
    Vladimir Leskov
    Vladimir Sitnikov
    Vyacheslav Makarov
    Vyacheslav Shablistyy
    Will Leinweber
    William Crowell
    Wyatt Alt
    Yang Xiao
    Yaroslav Schekin
    Yi Huang
    Yigong Hu
    Yoann La Cancellera
    Yoshikazu Imai
    Yu Kimura
    Yugo Nagata
    Yuli Khodorkovskiy
    Yusuke Egashira
    Yuya Watari
    Yuzuko Hosoya
    ZhenHua Cai
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release.html postgresql-13-13.7/doc/src/sgml/html/release.html --- postgresql-13-13.4/doc/src/sgml/html/release.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix E. Release Notes

    Appendix E. Release Notes

    +Appendix E. Release Notes

    Appendix E. Release Notes

    The release notes contain the significant changes in each PostgreSQL release, with major features and migration issues listed at the top. The release notes do not contain changes @@ -18,4 +18,4 @@ The name appearing next to each item represents the major developer for that item. Of course all changes involve community discussion and patch review, so each item is truly a community effort. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/release-prior.html postgresql-13-13.7/doc/src/sgml/html/release-prior.html --- postgresql-13-13.4/doc/src/sgml/html/release-prior.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/release-prior.html 2022-05-09 21:29:30.000000000 +0000 @@ -1,5 +1,5 @@ -E.6. Prior Releases

    E.6. Prior Releases

    +E.9. Prior Releases

    E.9. 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-13-13.4/doc/src/sgml/html/replication-origins.html postgresql-13-13.7/doc/src/sgml/html/replication-origins.html --- postgresql-13-13.4/doc/src/sgml/html/replication-origins.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/replication-origins.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 49. Replication Progress Tracking

    Chapter 49. Replication Progress Tracking

    +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. @@ -65,4 +65,4 @@ to filter the logical decoding change stream based on the source. While less flexible, filtering via that callback is considerably more efficient than doing it in the output plugin. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/resources.html postgresql-13-13.7/doc/src/sgml/html/resources.html --- postgresql-13-13.4/doc/src/sgml/html/resources.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/resources.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -4. Further Information

    4. Further Information

    +4. Further Information

    4. Further Information

    Besides the documentation, that is, this book, there are other resources about PostgreSQL: @@ -29,4 +29,4 @@ up and contribute it. If you add features to the code, contribute them.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/role-attributes.html postgresql-13-13.7/doc/src/sgml/html/role-attributes.html --- postgresql-13-13.4/doc/src/sgml/html/role-attributes.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/role-attributes.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -21.2. Role Attributes

    21.2. Role Attributes

    +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. @@ -84,4 +84,4 @@ Note that role-specific defaults attached to roles without LOGIN privilege are fairly useless, since they will never be invoked. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/role-membership.html postgresql-13-13.7/doc/src/sgml/html/role-membership.html --- postgresql-13-13.4/doc/src/sgml/html/role-membership.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/role-membership.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -21.3. Role Membership

    21.3. Role Membership

    +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 @@ -104,4 +104,4 @@

    Any memberships in the group role are automatically revoked (but the member roles are not otherwise affected). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/role-removal.html postgresql-13-13.7/doc/src/sgml/html/role-removal.html --- postgresql-13-13.4/doc/src/sgml/html/role-removal.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/role-removal.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -21.4. Dropping Roles

    21.4. Dropping Roles

    +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 @@ -51,4 +51,4 @@ If DROP ROLE is attempted while dependent objects still remain, it will issue messages identifying which objects need to be reassigned or dropped. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/routine-reindex.html postgresql-13-13.7/doc/src/sgml/html/routine-reindex.html --- postgresql-13-13.4/doc/src/sgml/html/routine-reindex.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/routine-reindex.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -24.2. Routine Reindexing

    24.2. Routine Reindexing

    +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. @@ -28,4 +28,4 @@ default, hence it is often preferable to execute it with its CONCURRENTLY option, which requires only a SHARE UPDATE EXCLUSIVE lock. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/routine-vacuuming.html postgresql-13-13.7/doc/src/sgml/html/routine-vacuuming.html --- postgresql-13-13.4/doc/src/sgml/html/routine-vacuuming.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/routine-vacuuming.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -24.1. Routine Vacuuming

    24.1. Routine Vacuuming

    +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 @@ -153,6 +153,13 @@ inserted or updated; it has no knowledge of whether that will lead to meaningful statistical changes.

    + Tuples changed in partitions and inheritance children do not trigger + analyze on the parent table. If the parent table is empty or rarely + changed, it may never be processed by autovacuum, and the statistics for + the inheritance tree as a whole won't be collected. It is necessary to + run ANALYZE on the parent table manually in order to + keep the statistics up to date. +

    As with vacuuming for space recovery, frequent updates of statistics are more useful for heavily-updated tables than for seldom-updated ones. But even for a heavily-updated table, there might be no need for @@ -194,6 +201,14 @@ might be useful. If your queries require statistics on foreign tables for proper planning, it's a good idea to run manually-managed ANALYZE commands on those tables on a suitable schedule. +

    Tip

    + The autovacuum daemon does not issue ANALYZE commands + for partitioned tables. Inheritance parents will only be analyzed if the + parent itself is changed - changes to child tables do not trigger + autoanalyze on the parent table. If your queries require statistics on + parent tables for proper planning, it is necessary to periodically run + a manual ANALYZE on those tables to keep the statistics + up to date.

    24.1.4. Updating the Visibility Map

    Vacuum maintains a visibility map for each table to keep track of which pages contain only tuples that are known to be @@ -572,6 +587,11 @@ is compared to the total number of tuples inserted, updated, or deleted since the last ANALYZE.

    + Partitioned tables are not processed by autovacuum. Statistics + should be collected by running a manual ANALYZE when it is + first populated, and again whenever the distribution of data in its + partitions changes significantly. +

    Temporary tables cannot be accessed by autovacuum. Therefore, appropriate vacuum and analyze operations should be performed via session SQL commands. @@ -607,4 +627,4 @@ 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 +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/row-estimation-examples.html postgresql-13-13.7/doc/src/sgml/html/row-estimation-examples.html --- postgresql-13-13.4/doc/src/sgml/html/row-estimation-examples.html 2021-08-09 21:03:09.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/row-estimation-examples.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -71.1. Row Estimation Examples

    71.1. Row Estimation Examples

    +71.1. Row Estimation Examples

    71.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. @@ -396,4 +396,4 @@ src/backend/optimizer/path/clausesel.c. The operator-specific selectivity functions are mostly found in src/backend/utils/adt/selfuncs.c. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rowtypes.html postgresql-13-13.7/doc/src/sgml/html/rowtypes.html --- postgresql-13-13.4/doc/src/sgml/html/rowtypes.html 2021-08-09 21:02:47.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rowtypes.html 2022-05-09 21:29:05.000000000 +0000 @@ -1,5 +1,5 @@ -8.16. Composite Types

    8.16. Composite Types

    +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 @@ -420,4 +420,4 @@ commands. In ROW, individual field values are written the same way they would be written when not members of a composite. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rules.html postgresql-13-13.7/doc/src/sgml/html/rules.html --- postgresql-13-13.4/doc/src/sgml/html/rules.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rules.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 40. The Rule System

    Chapter 40. The Rule System

    +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 @@ -18,4 +18,4 @@ such as query language procedures, views, and versions. The theoretical foundations and the power of this rule system are also discussed in [ston90b] and [ong90]. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rules-materializedviews.html postgresql-13-13.7/doc/src/sgml/html/rules-materializedviews.html --- postgresql-13-13.4/doc/src/sgml/html/rules-materializedviews.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rules-materializedviews.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -40.3. Materialized Views

    40.3. Materialized Views

    +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: @@ -59,9 +59,6 @@ WHERE invoice_date < CURRENT_DATE GROUP BY seller_no, - invoice_date - ORDER BY - seller_no, invoice_date; CREATE UNIQUE INDEX sales_summary_seller @@ -182,4 +179,4 @@ If you can tolerate periodic update of the remote data to the local database, the performance benefit can be substantial. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rules-privileges.html postgresql-13-13.7/doc/src/sgml/html/rules-privileges.html --- postgresql-13-13.4/doc/src/sgml/html/rules-privileges.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rules-privileges.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -40.5. Rules and Privileges

    40.5. Rules and Privileges

    +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 @@ -154,4 +154,4 @@ the optimizer statistics, the choice of plan). If these types of "covert channel" attacks are of concern, it is probably unwise to grant any access to the data at all. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rules-status.html postgresql-13-13.7/doc/src/sgml/html/rules-status.html --- postgresql-13-13.4/doc/src/sgml/html/rules-status.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rules-status.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -40.6. Rules and Command Status

    40.6. Rules and Command Status

    +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 @@ -32,4 +32,4 @@ that sets the command status in the second case, by giving it the alphabetically last rule name among the active rules, so that it gets applied last. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rules-triggers.html postgresql-13-13.7/doc/src/sgml/html/rules-triggers.html --- postgresql-13-13.4/doc/src/sgml/html/rules-triggers.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rules-triggers.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -40.7. Rules Versus Triggers

    40.7. Rules Versus Triggers

    +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 @@ -175,4 +175,4 @@ The summary is, rules will only be significantly slower than triggers if their actions result in large and badly qualified joins, a situation where the planner fails. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rules-update.html postgresql-13-13.7/doc/src/sgml/html/rules-update.html --- postgresql-13-13.4/doc/src/sgml/html/rules-update.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rules-update.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -40.4. Rules on INSERT, UPDATE, and DELETE

    40.4. Rules on INSERT, UPDATE, and DELETE

    +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 @@ -747,4 +747,4 @@ There are probably only a few situations out in the real world where such a construct is necessary. But it makes you feel comfortable that it works. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rules-views.html postgresql-13-13.7/doc/src/sgml/html/rules-views.html --- postgresql-13-13.4/doc/src/sgml/html/rules-views.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rules-views.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -40.2. Views and the Rule System

    40.2. Views and the Rule System

    +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: @@ -498,4 +498,4 @@ triggers for the view, and the rewriter cannot automatically rewrite the query as an update on the underlying base relation, an error will be thrown because the executor cannot update a view as such. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/rule-system.html postgresql-13-13.7/doc/src/sgml/html/rule-system.html --- postgresql-13-13.4/doc/src/sgml/html/rule-system.html 2021-08-09 21:03:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/rule-system.html 2022-05-09 21:29:24.000000000 +0000 @@ -1,5 +1,5 @@ -50.4. The PostgreSQL Rule System

    50.4. The PostgreSQL Rule System

    +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. @@ -27,4 +27,4 @@ rewriter are query trees, that is, there is no change in the representation or level of semantic detail in the trees. Rewriting can be thought of as a form of macro expansion. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-autovacuum.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-autovacuum.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-autovacuum.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-autovacuum.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -19.10. Automatic Vacuuming

    19.10. Automatic Vacuuming

    +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 @@ -178,4 +178,4 @@ file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-client.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-client.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-client.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-client.html 2022-05-09 21:29:10.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 @@ -100,8 +100,8 @@ This parameter specifies the default table access method to use when creating tables or materialized views if the CREATE command does not explicitly specify an access method, or when - SELECT ... INTO is used, which does not allow to - specify a table access method. The default is heap. + SELECT ... INTO is used, which does not allow + specifying a table access method. The default is heap.

    default_tablespace (string) @@ -768,4 +768,4 @@

    Soft upper limit of the size of the set returned by GIN index scans. For more information see Section 66.5. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-compatible.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-compatible.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-compatible.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-compatible.html 2022-05-09 21:29:10.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 @@ -151,4 +151,4 @@ Thus, this option is not a general fix for bad programming.

    Refer to Section 9.2 for related information. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-connection.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-connection.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-connection.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-connection.html 2022-05-09 21:29:09.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 @@ -301,7 +301,7 @@

    ssl_crl_file (string)

    - Specifies the name of the file containing the SSL server certificate + Specifies the name of the file containing the SSL client certificate revocation list (CRL). Relative paths are relative to the data directory. This parameter can only be set in the postgresql.conf @@ -469,4 +469,4 @@

    This parameter can only be set in the postgresql.conf file or on the server command line. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-custom.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-custom.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-custom.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-custom.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -19.16. Customized Options

    19.16. Customized Options

    +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 @@ -17,4 +17,4 @@ its variable definitions, convert any placeholder values according to those definitions, and issue warnings for any unrecognized placeholders that begin with its extension name. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-developer.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-developer.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-developer.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-developer.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -19.17. Developer Options

    19.17. Developer Options

    +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 @@ -288,4 +288,4 @@ Determines whether tuple deforming is JIT compiled, when JIT compilation is activated (see Section 31.2). The default is on. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-error-handling.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-error-handling.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-error-handling.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-error-handling.html 2022-05-09 21:29:10.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 on, any error will terminate the current session. By default, @@ -40,4 +40,4 @@ operation can be retried in a later checkpoint. Only set it to on after investigating the operating system's treatment of buffered data in case of write-back failure. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-file-locations.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-file-locations.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-file-locations.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-file-locations.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -19.2. File Locations

    19.2. File Locations

    +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 @@ -71,4 +71,4 @@ When setting any of these parameters, a relative path will be interpreted with respect to the directory in which postgres is started. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config.html postgresql-13-13.7/doc/src/sgml/html/runtime-config.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,7 +1,7 @@ -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. Authentication
    19.3.3. SSL
    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.5.4. Archive Recovery
    19.5.5. Recovery Target
    19.6. Replication
    19.6.1. Sending Servers
    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

    +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. Authentication
    19.3.3. SSL
    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.5.4. Archive Recovery
    19.5.5. Recovery Target
    19.6. Replication
    19.6.1. Sending Servers
    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. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-locks.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-locks.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-locks.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-locks.html 2022-05-09 21:29:10.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) @@ -80,4 +80,4 @@ before the lock is promoted to covering the whole page. The default is 2. This parameter can only be set in the postgresql.conf file or on the server command line. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-logging.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-logging.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-logging.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-logging.html 2022-05-09 21:29:10.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 @@ -821,4 +821,4 @@ defaults to off on Windows due to that platform's larger overhead for updating the process title. Only superusers can change this setting. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-preset.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-preset.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-preset.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-preset.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -19.15. Preset Options

    19.15. Preset Options

    +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 @@ -123,4 +123,4 @@

    Reports the size of write ahead log segments. The default value is 16MB. See Section 29.4 for more information. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-query.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-query.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-query.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-query.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -19.7. Query Planning

    19.7. Query Planning

    19.7.1. Planner Method Configuration

    +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 @@ -557,4 +557,4 @@ This setting is considered when a cached plan is to be executed, not when it is prepared. For more information see PREPARE. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-replication.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-replication.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-replication.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-replication.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -19.6. Replication

    19.6. Replication

    +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 @@ -97,6 +97,9 @@ to continue replication due to removal of required WAL files. You can see the WAL availability of replication slots in pg_replication_slots. + If this value is specified without units, it is taken as megabytes. + This parameter can only be set in the postgresql.conf + file or on the server command line.

    wal_sender_timeout (integer)

    @@ -548,4 +551,4 @@ The default value is 2. This parameter can only be set in the postgresql.conf file or on the server command line. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-resource.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-resource.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-resource.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-resource.html 2022-05-09 21:29:09.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 @@ -44,7 +44,9 @@

    At present, this setting is supported only on Linux and Windows. The setting is ignored on other systems when set to - try. + try. On Linux, it is only supported when + shared_memory_type is set to mmap + (the default).

    The use of huge pages results in smaller page tables and less CPU time spent on memory management, increasing performance. For more details about @@ -661,4 +663,4 @@ affected by this setting, such as system catalogs. For such tables this setting will neither reduce bloat nor create a possibility of a snapshot too old error on scanning. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-short.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-short.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-short.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-short.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -19.18. Short Options

    19.18. Short Options

    +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.3. Some of these @@ -21,4 +21,4 @@ enable_tidscan = off -Ffsync = off-h xlisten_addresses = x-ilisten_addresses = '*'-k xunix_socket_directories = x-lssl = on-N xmax_connections = x-Oallow_system_table_mods = on-p xport = x-Pignore_system_indexes = on-slog_statement_stats = on-S xwork_mem = x-tpa, -tpl, -telog_parser_stats = on, log_planner_stats = on, - log_executor_stats = on-W xpost_auth_delay = x


    \ No newline at end of file + log_executor_stats = on-W xpost_auth_delay = x
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-statistics.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-statistics.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-statistics.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-statistics.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -19.9. Run-time Statistics

    19.9. Run-time Statistics

    19.9.1. Query and Index Statistics Collector

    +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 @@ -85,4 +85,4 @@ log_statement_stats cannot be enabled together with any of the per-module options. All of these options are disabled by default. Only superusers can change these settings. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime-config-wal.html postgresql-13-13.7/doc/src/sgml/html/runtime-config-wal.html --- postgresql-13-13.4/doc/src/sgml/html/runtime-config-wal.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime-config-wal.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -19.5. Write Ahead Log

    19.5. Write Ahead Log

    +19.5. Write Ahead Log

    19.5. Write Ahead Log

    For additional information on tuning these settings, see Section 29.4.

    19.5.1. Settings

    wal_level (enum) @@ -757,4 +757,4 @@ In any case, if a recovery target is configured but the archive recovery ends before the target is reached, the server will shut down with a fatal error. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/runtime.html postgresql-13-13.7/doc/src/sgml/html/runtime.html --- postgresql-13-13.4/doc/src/sgml/html/runtime.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/runtime.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 18. Server Setup and Operation

    Chapter 18. Server Setup and Operation

    +Chapter 18. Server Setup and Operation

    \ No newline at end of file + Microsoft Windows SDK Home 18.1. The PostgreSQL User Account
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sasl-authentication.html postgresql-13-13.7/doc/src/sgml/html/sasl-authentication.html --- postgresql-13-13.4/doc/src/sgml/html/sasl-authentication.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sasl-authentication.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -52.3. SASL Authentication

    52.3. SASL Authentication

    +52.3. SASL Authentication

    52.3. SASL Authentication

    SASL is a framework for authentication in connection-oriented protocols. At the moment, PostgreSQL implements two SASL authentication mechanisms, SCRAM-SHA-256 and SCRAM-SHA-256-PLUS. More @@ -100,4 +100,4 @@ Server sends an AuthenticationSASLFinal message, with the SCRAM server-final-message, followed immediately by an AuthenticationOk message. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/seg.html postgresql-13-13.7/doc/src/sgml/html/seg.html --- postgresql-13-13.4/doc/src/sgml/html/seg.html 2021-08-09 21:03:12.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/seg.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.34. seg

    F.34. seg

    +F.34. seg

    F.34. seg

    This module implements a data type seg for representing line segments, or floating point intervals. seg can represent uncertainty in the interval endpoints, @@ -225,4 +225,4 @@ myself to create my own world and live undisturbed in it. And I would like to acknowledge my gratitude to Argonne Lab and to the U.S. Department of Energy for the years of faithful support of my database research. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sepgsql.html postgresql-13-13.7/doc/src/sgml/html/sepgsql.html --- postgresql-13-13.4/doc/src/sgml/html/sepgsql.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sepgsql.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.35. sepgsql

    F.35.8. External Resources

    SE-PostgreSQL Introduction

    This wiki page provides a brief overview, security design, architecture, administration and upcoming features. -

    SELinux User's and Administrator's Guide

    +

    SELinux User's and Administrator's Guide

    This document provides a wide spectrum of knowledge to administer SELinux on your systems. It focuses primarily on Red Hat operating systems, but is not limited to them. @@ -517,4 +517,4 @@ It focuses primarily on Fedora, but is not limited to Fedora.

    F.35.9. Author

    KaiGai Kohei -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/server-programming.html postgresql-13-13.7/doc/src/sgml/html/server-programming.html --- postgresql-13-13.4/doc/src/sgml/html/server-programming.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/server-programming.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -Part V. Server Programming

    Part V. Server Programming

    +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 @@ -10,4 +10,4 @@ general issues concerning server-side programming languages. It is essential to read at least the earlier sections of Chapter 37 (covering functions) before diving into the material about server-side programming languages. -

    Table of Contents

    37. Extending SQL
    37.1. How Extensibility Works
    37.2. The PostgreSQL Type System
    37.3. User-Defined Functions
    37.4. User-Defined Procedures
    37.5. Query Language (SQL) Functions
    37.6. Function Overloading
    37.7. Function Volatility Categories
    37.8. Procedural Language Functions
    37.9. Internal Functions
    37.10. C-Language Functions
    37.11. Function Optimization Information
    37.12. User-Defined Aggregates
    37.13. User-Defined Types
    37.14. User-Defined Operators
    37.15. Operator Optimization Information
    37.16. Interfacing Extensions to Indexes
    37.17. Packaging Related Objects into an Extension
    37.18. Extension Building Infrastructure
    38. Triggers
    38.1. Overview of Trigger Behavior
    38.2. Visibility of Data Changes
    38.3. Writing Trigger Functions in C
    38.4. A Complete Trigger Example
    39. Event Triggers
    39.1. Overview of Event Trigger Behavior
    39.2. Event Trigger Firing Matrix
    39.3. Writing Event Trigger Functions in C
    39.4. A Complete Event Trigger Example
    39.5. A Table Rewrite Event Trigger Example
    40. The Rule System
    40.1. The Query Tree
    40.2. Views and the Rule System
    40.3. Materialized Views
    40.4. Rules on INSERT, UPDATE, and DELETE
    40.5. Rules and Privileges
    40.6. Rules and Command Status
    40.7. Rules Versus Triggers
    41. Procedural Languages
    41.1. Installing Procedural Languages
    42. PL/pgSQLSQL Procedural Language
    42.1. Overview
    42.2. Structure of PL/pgSQL
    42.3. Declarations
    42.4. Expressions
    42.5. Basic Statements
    42.6. Control Structures
    42.7. Cursors
    42.8. Transaction Management
    42.9. Errors and Messages
    42.10. Trigger Functions
    42.11. PL/pgSQL under the Hood
    42.12. Tips for Developing in PL/pgSQL
    42.13. Porting from Oracle PL/SQL
    43. PL/Tcl — Tcl Procedural Language
    43.1. Overview
    43.2. PL/Tcl Functions and Arguments
    43.3. Data Values in PL/Tcl
    43.4. Global Data in PL/Tcl
    43.5. Database Access from PL/Tcl
    43.6. Trigger Functions in PL/Tcl
    43.7. Event Trigger Functions in PL/Tcl
    43.8. Error Handling in PL/Tcl
    43.9. Explicit Subtransactions in PL/Tcl
    43.10. Transaction Management
    43.11. PL/Tcl Configuration
    43.12. Tcl Procedure Names
    44. PL/Perl — Perl Procedural Language
    44.1. PL/Perl Functions and Arguments
    44.2. Data Values in PL/Perl
    44.3. Built-in Functions
    44.4. Global Values in PL/Perl
    44.5. Trusted and Untrusted PL/Perl
    44.6. PL/Perl Triggers
    44.7. PL/Perl Event Triggers
    44.8. PL/Perl Under the Hood
    45. PL/Python — Python Procedural Language
    45.1. Python 2 vs. Python 3
    45.2. PL/Python Functions
    45.3. Data Values
    45.4. Sharing Data
    45.5. Anonymous Code Blocks
    45.6. Trigger Functions
    45.7. Database Access
    45.8. Explicit Subtransactions
    45.9. Transaction Management
    45.10. Utility Functions
    45.11. Environment Variables
    46. Server Programming Interface
    46.1. Interface Functions
    46.2. Interface Support Functions
    46.3. Memory Management
    46.4. Transaction Management
    46.5. Visibility of Data Changes
    46.6. Examples
    47. Background Worker Processes
    48. Logical Decoding
    48.1. Logical Decoding Examples
    48.2. Logical Decoding Concepts
    48.3. Streaming Replication Protocol Interface
    48.4. Logical Decoding SQL Interface
    48.5. System Catalogs Related to Logical Decoding
    48.6. Logical Decoding Output Plugins
    48.7. Logical Decoding Output Writers
    48.8. Synchronous Replication Support for Logical Decoding
    49. Replication Progress Tracking
    \ No newline at end of file +

    Table of Contents

    37. Extending SQL
    37.1. How Extensibility Works
    37.2. The PostgreSQL Type System
    37.3. User-Defined Functions
    37.4. User-Defined Procedures
    37.5. Query Language (SQL) Functions
    37.6. Function Overloading
    37.7. Function Volatility Categories
    37.8. Procedural Language Functions
    37.9. Internal Functions
    37.10. C-Language Functions
    37.11. Function Optimization Information
    37.12. User-Defined Aggregates
    37.13. User-Defined Types
    37.14. User-Defined Operators
    37.15. Operator Optimization Information
    37.16. Interfacing Extensions to Indexes
    37.17. Packaging Related Objects into an Extension
    37.18. Extension Building Infrastructure
    38. Triggers
    38.1. Overview of Trigger Behavior
    38.2. Visibility of Data Changes
    38.3. Writing Trigger Functions in C
    38.4. A Complete Trigger Example
    39. Event Triggers
    39.1. Overview of Event Trigger Behavior
    39.2. Event Trigger Firing Matrix
    39.3. Writing Event Trigger Functions in C
    39.4. A Complete Event Trigger Example
    39.5. A Table Rewrite Event Trigger Example
    40. The Rule System
    40.1. The Query Tree
    40.2. Views and the Rule System
    40.3. Materialized Views
    40.4. Rules on INSERT, UPDATE, and DELETE
    40.5. Rules and Privileges
    40.6. Rules and Command Status
    40.7. Rules Versus Triggers
    41. Procedural Languages
    41.1. Installing Procedural Languages
    42. PL/pgSQLSQL Procedural Language
    42.1. Overview
    42.2. Structure of PL/pgSQL
    42.3. Declarations
    42.4. Expressions
    42.5. Basic Statements
    42.6. Control Structures
    42.7. Cursors
    42.8. Transaction Management
    42.9. Errors and Messages
    42.10. Trigger Functions
    42.11. PL/pgSQL under the Hood
    42.12. Tips for Developing in PL/pgSQL
    42.13. Porting from Oracle PL/SQL
    43. PL/Tcl — Tcl Procedural Language
    43.1. Overview
    43.2. PL/Tcl Functions and Arguments
    43.3. Data Values in PL/Tcl
    43.4. Global Data in PL/Tcl
    43.5. Database Access from PL/Tcl
    43.6. Trigger Functions in PL/Tcl
    43.7. Event Trigger Functions in PL/Tcl
    43.8. Error Handling in PL/Tcl
    43.9. Explicit Subtransactions in PL/Tcl
    43.10. Transaction Management
    43.11. PL/Tcl Configuration
    43.12. Tcl Procedure Names
    44. PL/Perl — Perl Procedural Language
    44.1. PL/Perl Functions and Arguments
    44.2. Data Values in PL/Perl
    44.3. Built-in Functions
    44.4. Global Values in PL/Perl
    44.5. Trusted and Untrusted PL/Perl
    44.6. PL/Perl Triggers
    44.7. PL/Perl Event Triggers
    44.8. PL/Perl Under the Hood
    45. PL/Python — Python Procedural Language
    45.1. Python 2 vs. Python 3
    45.2. PL/Python Functions
    45.3. Data Values
    45.4. Sharing Data
    45.5. Anonymous Code Blocks
    45.6. Trigger Functions
    45.7. Database Access
    45.8. Explicit Subtransactions
    45.9. Transaction Management
    45.10. Utility Functions
    45.11. Environment Variables
    46. Server Programming Interface
    46.1. Interface Functions
    46.2. Interface Support Functions
    46.3. Memory Management
    46.4. Transaction Management
    46.5. Visibility of Data Changes
    46.6. Examples
    47. Background Worker Processes
    48. Logical Decoding
    48.1. Logical Decoding Examples
    48.2. Logical Decoding Concepts
    48.3. Streaming Replication Protocol Interface
    48.4. Logical Decoding SQL Interface
    48.5. System Catalogs Related to Logical Decoding
    48.6. Logical Decoding Output Plugins
    48.7. Logical Decoding Output Writers
    48.8. Synchronous Replication Support for Logical Decoding
    49. Replication Progress Tracking
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/server-shutdown.html postgresql-13-13.7/doc/src/sgml/html/server-shutdown.html --- postgresql-13-13.4/doc/src/sgml/html/server-shutdown.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/server-shutdown.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.5. Shutting Down the Server

    18.5. Shutting Down the Server

    +18.5. Shutting Down the Server

    18.5. Shutting Down the Server

    There are several ways to shut down the database server. Under the hood, they all reduce to sending a signal to the supervisor postgres process. @@ -69,4 +69,4 @@ continue, use pg_terminate_backend() (see Table 9.84) or send a SIGTERM signal to the child process associated with the session. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/server-start.html postgresql-13-13.7/doc/src/sgml/html/server-start.html --- postgresql-13-13.4/doc/src/sgml/html/server-start.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/server-start.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.3. Starting the Database Server

    18.3. Starting the Database Server

    +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. @@ -117,7 +117,7 @@ ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT -TimeoutSec=0 +TimeoutSec=infinity [Install] WantedBy=multi-user.target @@ -127,11 +127,11 @@

    Consider carefully the timeout setting. systemd has a default timeout of 90 - seconds as of this writing and will kill a process that does not notify + seconds as of this writing and will kill a process that does not report readiness within that time. But a PostgreSQL server that might have to perform crash recovery at startup could take - much longer to become ready. The suggested value of 0 disables the - timeout logic. + much longer to become ready. The suggested value + of infinity disables the timeout logic.

  • On NetBSD, use either the FreeBSD or @@ -252,4 +252,4 @@ such as Connection timed out might indicate more fundamental problems, like lack of network connectivity. -

  • \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/source-conventions.html postgresql-13-13.7/doc/src/sgml/html/source-conventions.html --- postgresql-13-13.4/doc/src/sgml/html/source-conventions.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/source-conventions.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -53.4. Miscellaneous Coding Conventions

    53.4. Miscellaneous Coding Conventions

    C Standard

    +53.4. Miscellaneous Coding Conventions

    53.4. Miscellaneous Coding Conventions

    C Standard

    Code in PostgreSQL should only rely on language features available in the C99 standard. That means a conforming C99 compiler has to be able to compile postgres, at least aside @@ -103,4 +103,4 @@

     paramInfo->paramFetch(paramInfo, paramId);
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/source-format.html postgresql-13-13.7/doc/src/sgml/html/source-format.html --- postgresql-13-13.4/doc/src/sgml/html/source-format.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/source-format.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -53.1. Formatting

    53.1. Formatting

    +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. @@ -56,4 +56,4 @@ less -x4

    to make them show tabs appropriately. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/source.html postgresql-13-13.7/doc/src/sgml/html/source.html --- postgresql-13-13.4/doc/src/sgml/html/source.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/source.html 2022-05-09 21:29:26.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-13-13.4/doc/src/sgml/html/sourcerepo.html postgresql-13-13.7/doc/src/sgml/html/sourcerepo.html --- postgresql-13-13.4/doc/src/sgml/html/sourcerepo.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sourcerepo.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix I. The Source Code Repository

    Appendix I. The Source Code Repository

    +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 @@ -14,4 +14,4 @@ to build from a distribution tarball, because the files that these tools are used to build are included in the tarball. Other tool requirements are the same as shown in Section 16.2. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spgist-builtin-opclasses.html postgresql-13-13.7/doc/src/sgml/html/spgist-builtin-opclasses.html --- postgresql-13-13.4/doc/src/sgml/html/spgist-builtin-opclasses.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spgist-builtin-opclasses.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -65.2. Built-in Operator Classes

    65.2. Built-in Operator Classes

    +65.2. Built-in Operator Classes

    65.2. Built-in Operator Classes

    The core PostgreSQL distribution includes the SP-GiST operator classes shown in Table 65.1. @@ -97,4 +97,4 @@ poly_ops operator classes support the <-> ordering operator, which enables the k-nearest neighbor (k-NN) search over indexed point or polygon data sets. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spgist-examples.html postgresql-13-13.7/doc/src/sgml/html/spgist-examples.html --- postgresql-13-13.4/doc/src/sgml/html/spgist-examples.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spgist-examples.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,8 +1,8 @@ -65.5. Examples

    65.5. Examples

    +65.5. Examples

    65.5. Examples

    The PostgreSQL source distribution includes several examples of index operator classes for SP-GiST, as described in Table 65.1. Look into src/backend/access/spgist/ and src/backend/utils/adt/ to see the code. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spgist-extensibility.html postgresql-13-13.7/doc/src/sgml/html/spgist-extensibility.html --- postgresql-13-13.4/doc/src/sgml/html/spgist-extensibility.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spgist-extensibility.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -65.3. Extensibility

    65.3. Extensibility

    +65.3. Extensibility

    65.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 @@ -594,4 +594,4 @@ If the indexed column is of a collatable data type, the index collation will be passed to all the support methods, using the standard PG_GET_COLLATION() mechanism. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spgist.html postgresql-13-13.7/doc/src/sgml/html/spgist.html --- postgresql-13-13.4/doc/src/sgml/html/spgist.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spgist.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 65. SP-GiST Indexes \ No newline at end of file +Chapter 65. SP-GiST Indexes \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spgist-implementation.html postgresql-13-13.7/doc/src/sgml/html/spgist-implementation.html --- postgresql-13-13.4/doc/src/sgml/html/spgist-implementation.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spgist-implementation.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -65.4. Implementation

    65.4. Implementation

    +65.4. Implementation

    65.4. Implementation

    This section covers implementation details and other tricks that are useful for implementers of SP-GiST operator classes to know. @@ -87,4 +87,4 @@ all equivalent. This may or may not require any special-case code, depending on how much the inner_consistent function normally assumes about the meaning of the nodes. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spgist-intro.html postgresql-13-13.7/doc/src/sgml/html/spgist-intro.html --- postgresql-13-13.4/doc/src/sgml/html/spgist-intro.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spgist-intro.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -65.1. Introduction

    65.1. Introduction

    +65.1. Introduction

    65.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 @@ -31,4 +31,4 @@ Sigaev and Oleg Bartunov, and there is more information on their web site. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-examples.html postgresql-13-13.7/doc/src/sgml/html/spi-examples.html --- postgresql-13-13.4/doc/src/sgml/html/spi-examples.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-examples.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -46.6. Examples

    46.6. Examples

    +46.6. Examples

    46.6. Examples

    This section contains a very simple example of SPI usage. The C function execq takes an SQL command as its first argument and a row count as its second, executes the command @@ -149,4 +149,4 @@ (4 rows) ^^^^^^ rows visible to execq() in different invocations

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi.html postgresql-13-13.7/doc/src/sgml/html/spi.html --- postgresql-13-13.4/doc/src/sgml/html/spi.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi.html 2022-05-09 21:29:16.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 C function to the SPI manager
    SPI_finish — disconnect a C function 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 C function to the SPI manager
    SPI_finish — disconnect a C function 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 @@ -35,4 +35,4 @@

    Source code files that use SPI must include the header file executor/spi.h. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-interface.html postgresql-13-13.7/doc/src/sgml/html/spi-interface.html --- postgresql-13-13.4/doc/src/sgml/html/spi-interface.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-interface.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,6 +1,6 @@ -46.1. Interface Functions

    46.1. Interface Functions

    SPI_connect — connect a C function to the SPI manager
    SPI_finish — disconnect a C function 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 C function to the SPI manager
    SPI_finish — disconnect a C function 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 - SPI_cursor_open
    SPI_execute_plan — execute a statement prepared by SPI_prepare
    SPI_execute_plan_with_paramlist — execute a statement prepared by SPI_prepare
    SPI_execp — execute a statement in read/write mode
    SPI_cursor_open — set up a cursor using a statement created with SPI_prepare
    SPI_cursor_open_with_args — set up a cursor using a query and parameters
    SPI_cursor_open_with_paramlist — set up a cursor using parameters
    SPI_cursor_find — find an existing cursor by name
    SPI_cursor_fetch — fetch some rows from a cursor
    SPI_cursor_move — move a cursor
    SPI_scroll_cursor_fetch — fetch some rows from a cursor
    SPI_scroll_cursor_move — move a cursor
    SPI_cursor_close — close a cursor
    SPI_keepplan — save a prepared statement
    SPI_saveplan — save a prepared statement
    SPI_register_relation — make an ephemeral named relation available by name in SPI queries
    SPI_unregister_relation — remove an ephemeral named relation from the registry
    SPI_register_trigger_data — make ephemeral trigger data available in SPI queries
    \ No newline at end of file + SPI_cursor_open
    SPI_execute_plan — execute a statement prepared by SPI_prepare
    SPI_execute_plan_with_paramlist — execute a statement prepared by SPI_prepare
    SPI_execp — execute a statement in read/write mode
    SPI_cursor_open — set up a cursor using a statement created with SPI_prepare
    SPI_cursor_open_with_args — set up a cursor using a query and parameters
    SPI_cursor_open_with_paramlist — set up a cursor using parameters
    SPI_cursor_find — find an existing cursor by name
    SPI_cursor_fetch — fetch some rows from a cursor
    SPI_cursor_move — move a cursor
    SPI_scroll_cursor_fetch — fetch some rows from a cursor
    SPI_scroll_cursor_move — move a cursor
    SPI_cursor_close — close a cursor
    SPI_keepplan — save a prepared statement
    SPI_saveplan — save a prepared statement
    SPI_register_relation — make an ephemeral named relation available by name in SPI queries
    SPI_unregister_relation — remove an ephemeral named relation from the registry
    SPI_register_trigger_data — make ephemeral trigger data available in SPI queries
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-interface-support.html postgresql-13-13.7/doc/src/sgml/html/spi-interface-support.html --- postgresql-13-13.4/doc/src/sgml/html/spi-interface-support.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-interface-support.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,9 +1,9 @@ -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
    SPI_result_code_string — return error code as string

    +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
    SPI_result_code_string — return error code as string

    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 connected and unconnected C functions. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-memory.html postgresql-13-13.7/doc/src/sgml/html/spi-memory.html --- postgresql-13-13.4/doc/src/sgml/html/spi-memory.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-memory.html 2022-05-09 21:29:16.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 @@ -43,4 +43,4 @@ SPI_finish) the current context is restored to the upper executor context, and all allocations made in the C function memory context are freed and cannot be used any more. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-realloc.html postgresql-13-13.7/doc/src/sgml/html/spi-realloc.html --- postgresql-13-13.4/doc/src/sgml/html/spi-realloc.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-realloc.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_repalloc

    SPI_repalloc

    SPI_repalloc — reallocate memory in the upper executor context

    Synopsis

    +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 @@ -15,4 +15,4 @@

    Return Value

    pointer to new storage space of specified size with the contents copied from the existing area -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-commit.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-commit.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-commit.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-commit.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_commit

    SPI_commit

    SPI_commit, SPI_commit_and_chain — commit the current transaction

    Synopsis

    +SPI_commit

    SPI_commit

    SPI_commit, SPI_commit_and_chain — commit the current transaction

    Synopsis

     void SPI_commit(void)
     
     void SPI_commit_and_chain(void)
    @@ -18,4 +18,4 @@
       

    These functions can only be executed if the SPI connection has been set as nonatomic in the call to SPI_connect_ext. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-connect.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-connect.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-connect.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-connect.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_connect

    SPI_connect

    SPI_connect, SPI_connect_ext — connect a C function to the SPI manager

    Synopsis

    +SPI_connect

    SPI_connect

    SPI_connect, SPI_connect_ext — connect a C function to the SPI manager

    Synopsis

     int SPI_connect(void)
     
     int SPI_connect_ext(int options)
    @@ -26,4 +26,4 @@
           on success
          

    SPI_ERROR_CONNECT

    on error -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-copytuple.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-copytuple.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-copytuple.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-copytuple.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_copytuple

    SPI_copytuple

    SPI_copytuple — make a copy of a row in the upper executor context

    Synopsis

    +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 @@ -15,4 +15,4 @@

    Return Value

    the copied row, or NULL on error (see SPI_result for an error indication) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-close.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-close.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-close.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-close.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_close

    SPI_cursor_close

    SPI_cursor_close — close a cursor

    Synopsis

    +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 @@ -10,4 +10,4 @@ invoked if it is desirable to release resources sooner.

    Arguments

    Portal portal

    portal containing the cursor -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-fetch.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-fetch.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-fetch.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-fetch.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_fetch

    SPI_cursor_fetch

    SPI_cursor_fetch — fetch some rows from a cursor

    Synopsis

    +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 @@ -19,4 +19,4 @@

    Notes

    Fetching backward may fail if the cursor's plan was not created with the CURSOR_OPT_SCROLL option. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-find.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-find.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-find.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-find.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_find

    SPI_cursor_find

    SPI_cursor_find — find an existing cursor by name

    Synopsis

    +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 @@ -10,4 +10,4 @@

    Return Value

    pointer to the portal with the specified name, or NULL if none was found -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-move.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-move.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-move.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-move.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_move

    SPI_cursor_move

    SPI_cursor_move — move a cursor

    Synopsis

    +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 @@ -15,4 +15,4 @@

    Notes

    Moving backward may fail if the cursor's plan was not created with the CURSOR_OPT_SCROLL option. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-open.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-open.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-open.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-open.html 2022-05-09 21:29:16.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

    +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)
    @@ -44,4 +44,4 @@
          

    bool read_only

    true for read-only execution

    Return Value

    Pointer to portal containing the cursor. Note there is no error return convention; any error will be reported via elog. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-open-with-args.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-open-with-args.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-open-with-args.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-open-with-args.html 2022-05-09 21:29:16.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

    +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,
    @@ -52,4 +52,4 @@
          

    Return Value

    Pointer to portal containing the cursor. Note there is no error return convention; any error will be reported via elog. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html 2022-05-09 21:29:16.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

    +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,
    @@ -27,4 +27,4 @@
          

    bool read_only

    true for read-only execution

    Return Value

    Pointer to portal containing the cursor. Note there is no error return convention; any error will be reported via elog. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-exec.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-exec.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-exec.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-exec.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_exec

    SPI_exec

    SPI_exec — execute a read/write command

    Synopsis

    +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 @@ -13,4 +13,4 @@ or 0 for no limit

    Return Value

    See SPI_execute. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-execp.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-execp.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-execp.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-execp.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_execp

    SPI_execp

    SPI_execp — execute a statement in read/write mode

    Synopsis

    +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 @@ -33,4 +33,4 @@ SPI_processed and SPI_tuptable are set as in SPI_execute if successful. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-execute.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-execute.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-execute.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-execute.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_execute

    SPI_execute

    SPI_execute — execute a command

    Synopsis

    +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 @@ -174,4 +174,4 @@ C function variables if you need to access the result table of SPI_execute or another query-execution function across later calls. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-execute-plan.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-execute-plan.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-execute-plan.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-execute-plan.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_execute_plan

    SPI_execute_plan

    SPI_execute_plan — execute a statement prepared by SPI_prepare

    Synopsis

    +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

    @@ -44,4 +44,4 @@ SPI_processed and SPI_tuptable are set as in SPI_execute if successful. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html 2022-05-09 21:29:16.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

    +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,
    @@ -26,4 +26,4 @@
        SPI_processed and
        SPI_tuptable are set as in
        SPI_execute_plan if successful.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-execute-with-args.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-execute-with-args.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-execute-with-args.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-execute-with-args.html 2022-05-09 21:29:16.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

    +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,
    @@ -57,4 +57,4 @@
        SPI_processed and
        SPI_tuptable are set as in
        SPI_execute if successful.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-finish.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-finish.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-finish.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-finish.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_finish

    SPI_finish

    SPI_finish — disconnect a C function from the SPI manager

    Synopsis

    +SPI_finish

    SPI_finish

    SPI_finish — disconnect a C function from the SPI manager

    Synopsis

     int SPI_finish(void)
     

    Description

    SPI_finish closes an existing connection to @@ -12,4 +12,4 @@ if properly disconnected

    SPI_ERROR_UNCONNECTED

    if called from an unconnected C function -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-fname.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-fname.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-fname.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-fname.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_fname

    SPI_fname

    SPI_fname — determine the column name for the specified column number

    Synopsis

    +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 @@ -14,4 +14,4 @@ colnumber is out of range. SPI_result set to SPI_ERROR_NOATTRIBUTE on error. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-fnumber.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-fnumber.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-fnumber.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-fnumber.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_fnumber

    SPI_fnumber

    SPI_fnumber — determine the column number for the specified column name

    Synopsis

    +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 @@ -19,4 +19,4 @@ Column number (count starts at 1 for user-defined columns), or SPI_ERROR_NOATTRIBUTE if the named column was not found. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-freeplan.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-freeplan.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-freeplan.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-freeplan.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_freeplan

    SPI_freeplan

    SPI_freeplan — free a previously saved prepared statement

    Synopsis

    +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 @@ -11,4 +11,4 @@ 0 on success; SPI_ERROR_ARGUMENT if plan is NULL or invalid -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-freetuple.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-freetuple.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-freetuple.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-freetuple.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_freetuple

    SPI_freetuple

    SPI_freetuple — free a row allocated in the upper executor context

    Synopsis

    +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 @@ -10,4 +10,4 @@ compatibility of existing code.

    Arguments

    HeapTuple row

    row to free -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-freetupletable.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-freetupletable.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-freetupletable.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-freetupletable.html 2022-05-09 21:29:16.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

    @@ -23,4 +23,4 @@ releases, duplicate deletions would lead to crashes.

    Arguments

    SPITupleTable * tuptable

    pointer to row set to free, or NULL to do nothing -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-getargcount.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-getargcount.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-getargcount.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-getargcount.html 2022-05-09 21:29:16.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

    @@ -12,4 +12,4 @@ If the plan is NULL or invalid, SPI_result is set to SPI_ERROR_ARGUMENT and -1 is returned. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-getargtypeid.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-getargtypeid.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-getargtypeid.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-getargtypeid.html 2022-05-09 21:29:16.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

    @@ -18,4 +18,4 @@ plan, SPI_result is set to SPI_ERROR_ARGUMENT and InvalidOid is returned. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-getbinval.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-getbinval.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-getbinval.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-getbinval.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getbinval

    SPI_getbinval

    SPI_getbinval — return the binary value of the specified column

    Synopsis

    +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

    @@ -24,4 +24,4 @@

    SPI_result is set to SPI_ERROR_NOATTRIBUTE on error. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-getnspname.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-getnspname.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-getnspname.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-getnspname.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getnspname

    SPI_getnspname

    SPI_getnspname — return the namespace of the specified relation

    Synopsis

    +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 @@ -11,4 +11,4 @@ input relation

    Return Value

    The name of the specified relation's namespace. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-getrelname.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-getrelname.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-getrelname.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-getrelname.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getrelname

    SPI_getrelname

    SPI_getrelname — return the name of the specified relation

    Synopsis

    +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 @@ -9,4 +9,4 @@ input relation

    Return Value

    The name of the specified relation. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-gettype.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-gettype.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-gettype.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-gettype.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_gettype

    SPI_gettype

    SPI_gettype — return the data type name of the specified column

    Synopsis

    +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 @@ -13,4 +13,4 @@ The data type name of the specified column, or NULL on error. SPI_result is set to SPI_ERROR_NOATTRIBUTE on error. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-gettypeid.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-gettypeid.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-gettypeid.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-gettypeid.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_gettypeid

    SPI_gettypeid

    SPI_gettypeid — return the data type OID of the specified column

    Synopsis

    +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 @@ -13,4 +13,4 @@ or InvalidOid on error. On error, SPI_result is set to SPI_ERROR_NOATTRIBUTE. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-getvalue.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-getvalue.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-getvalue.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-getvalue.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getvalue

    SPI_getvalue

    SPI_getvalue — return the string value of the specified column

    Synopsis

    +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 @@ -22,4 +22,4 @@ SPI_ERROR_NOATTRIBUTE), or no output function is available (SPI_result is set to SPI_ERROR_NOOUTFUNC). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-is-cursor-plan.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-is-cursor-plan.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-is-cursor-plan.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-is-cursor-plan.html 2022-05-09 21:29:16.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)
    @@ -24,4 +24,4 @@
         or if called when not connected to SPI), then
         SPI_result is set to a suitable error code
         and false is returned.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-keepplan.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-keepplan.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-keepplan.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-keepplan.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_keepplan

    SPI_keepplan

    SPI_keepplan — save a prepared statement

    Synopsis

    +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 @@ -17,4 +17,4 @@ The passed-in statement is relocated to permanent storage by means of pointer adjustment (no data copying is required). If you later wish to delete it, use SPI_freeplan on it. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-modifytuple.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-modifytuple.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-modifytuple.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-modifytuple.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_modifytuple

    SPI_modifytuple

    SPI_modifytuple — create a row by replacing selected fields of a given row

    Synopsis

    +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

    @@ -56,4 +56,4 @@

    SPI_ERROR_UNCONNECTED

    if SPI is not active

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-palloc.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-palloc.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-palloc.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-palloc.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_palloc

    SPI_palloc

    SPI_palloc — allocate memory in the upper executor context

    Synopsis

    +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 @@ -11,4 +11,4 @@ size in bytes of storage to allocate

    Return Value

    pointer to new storage space of the specified size -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-pfree.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-pfree.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-pfree.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-pfree.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_pfree

    SPI_pfree

    SPI_pfree — free memory in the upper executor context

    Synopsis

    +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 @@ -11,4 +11,4 @@ compatibility of existing code.

    Arguments

    void * pointer

    pointer to existing storage to free -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-prepare-cursor.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-prepare-cursor.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-prepare-cursor.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-prepare-cursor.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_prepare_cursor

    SPI_prepare_cursor

    SPI_prepare_cursor — prepare a statement, without executing it yet

    Synopsis

    +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

    @@ -29,4 +29,4 @@ CURSOR_OPT_GENERIC_PLAN, and CURSOR_OPT_CUSTOM_PLAN. Note in particular that CURSOR_OPT_HOLD is ignored. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-prepare.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-prepare.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-prepare.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-prepare.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_prepare

    SPI_prepare

    SPI_prepare — prepare a statement, without executing it yet

    Synopsis

    +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 @@ -81,4 +81,4 @@

    The name SPIPlanPtr is somewhat historical, since the data structure no longer necessarily contains an execution plan. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-prepare-params.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-prepare-params.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-prepare-params.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-prepare-params.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_prepare_params

    SPI_prepare_params

    SPI_prepare_params — prepare a statement, without executing it yet

    Synopsis

    +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,
    @@ -21,4 +21,4 @@
          

    Return Value

    SPI_prepare_params has the same return conventions as SPI_prepare. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-register-relation.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-register-relation.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-register-relation.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-register-relation.html 2022-05-09 21:29:16.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

    +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 @@ -26,4 +26,4 @@ if the name specified in the name field of enr is already registered for this connection

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-register-trigger-data.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-register-trigger-data.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-register-trigger-data.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-register-trigger-data.html 2022-05-09 21:29:16.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

    +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 @@ -29,4 +29,4 @@ if the name of any trigger data transient relation is already registered for this connection

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-result-code-string.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-result-code-string.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-result-code-string.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-result-code-string.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_result_code_string

    SPI_result_code_string

    SPI_result_code_string — return error code as string

    Synopsis

    +SPI_result_code_string

    SPI_result_code_string

    SPI_result_code_string — return error code as string

    Synopsis

     const char * SPI_result_code_string(int code);
     

    Description

    SPI_result_code_string returns a string representation @@ -9,4 +9,4 @@ result code

    Return Value

    A string representation of the result code. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-returntuple.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-returntuple.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-returntuple.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-returntuple.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_returntuple

    SPI_returntuple

    SPI_returntuple — prepare to return a tuple as a Datum

    Synopsis

    +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 @@ -23,4 +23,4 @@ HeapTupleHeader pointing to copied row, or NULL on error (see SPI_result for an error indication) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-rollback.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-rollback.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-rollback.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-rollback.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_rollback

    SPI_rollback

    SPI_rollback, SPI_rollback_and_chain — abort the current transaction

    Synopsis

    +SPI_rollback

    SPI_rollback

    SPI_rollback, SPI_rollback_and_chain — abort the current transaction

    Synopsis

     void SPI_rollback(void)
     
     void SPI_rollback_and_chain(void)
    @@ -18,4 +18,4 @@
       

    These functions can only be executed if the SPI connection has been set as nonatomic in the call to SPI_connect_ext. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-saveplan.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-saveplan.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-saveplan.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-saveplan.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_saveplan

    SPI_saveplan

    SPI_saveplan — save a prepared statement

    Synopsis

    +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 @@ -27,4 +27,4 @@ In most cases, SPI_keepplan is preferred to this function, since it accomplishes largely the same result without needing to physically copy the prepared statement's data structures. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html 2022-05-09 21:29:16.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

    +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

    @@ -31,4 +31,4 @@ Direction values other than FETCH_FORWARD may fail if the cursor's plan was not created with the CURSOR_OPT_SCROLL option. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-scroll-cursor-move.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-scroll-cursor-move.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-scroll-cursor-move.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-scroll-cursor-move.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_scroll_cursor_move

    SPI_scroll_cursor_move

    SPI_scroll_cursor_move — move a cursor

    Synopsis

    +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

    @@ -33,4 +33,4 @@ Direction values other than FETCH_FORWARD may fail if the cursor's plan was not created with the CURSOR_OPT_SCROLL option. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-start-transaction.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-start-transaction.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-start-transaction.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-start-transaction.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_start_transaction

    SPI_start_transaction

    SPI_start_transaction — start a new transaction

    Synopsis

    +SPI_start_transaction

    SPI_start_transaction

    SPI_start_transaction — start a new transaction

    Synopsis

     void SPI_start_transaction(void)
     

    Description

    SPI_start_transaction starts a new transaction. It @@ -11,4 +11,4 @@

    This function can only be executed if the SPI connection has been set as nonatomic in the call to SPI_connect_ext. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-spi-unregister-relation.html postgresql-13-13.7/doc/src/sgml/html/spi-spi-unregister-relation.html --- postgresql-13-13.4/doc/src/sgml/html/spi-spi-unregister-relation.html 2021-08-09 21:02:57.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-spi-unregister-relation.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_unregister_relation

    SPI_unregister_relation

    SPI_unregister_relation — remove an ephemeral named relation from the registry

    Synopsis

    +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 @@ -24,4 +24,4 @@ if name is not found in the registry for the current connection

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-transaction.html postgresql-13-13.7/doc/src/sgml/html/spi-transaction.html --- postgresql-13-13.4/doc/src/sgml/html/spi-transaction.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-transaction.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -46.4. Transaction Management

    46.4. Transaction Management

    SPI_commit — commit the current transaction
    SPI_rollback — abort the current transaction
    SPI_start_transaction — start a new transaction

    +46.4. Transaction Management

    46.4. Transaction Management

    SPI_commit — commit the current transaction
    SPI_rollback — abort the current transaction
    SPI_start_transaction — start a new transaction

    It is not possible to run transaction control commands such as COMMIT and ROLLBACK through SPI functions such as SPI_execute. There are, however, @@ -16,4 +16,4 @@ command, taking the context of the CALL invocation into account. SPI-using procedures implemented in C can implement the same logic, but the details of that are beyond the scope of this documentation. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/spi-visibility.html postgresql-13-13.7/doc/src/sgml/html/spi-visibility.html --- postgresql-13-13.4/doc/src/sgml/html/spi-visibility.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/spi-visibility.html 2022-05-09 21:29:16.000000000 +0000 @@ -1,5 +1,5 @@ -46.5. Visibility of Data Changes

    46.5. Visibility of Data Changes

    +46.5. Visibility of Data Changes

    46.5. Visibility of Data Changes

    The following rules govern the visibility of data changes in functions that use SPI (or any other C function): @@ -35,4 +35,4 @@

    The next section contains an example that illustrates the application of these rules. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-abort.html postgresql-13-13.7/doc/src/sgml/html/sql-abort.html --- postgresql-13-13.4/doc/src/sgml/html/sql-abort.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-abort.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ABORT

    ABORT

    ABORT — abort the current transaction

    Synopsis

    +ABORT

    ABORT

    ABORT — abort the current transaction

    Synopsis

     ABORT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
     

    Description

    ABORT rolls back the current transaction and causes @@ -28,4 +28,4 @@ This command is a PostgreSQL extension present for historical reasons. ROLLBACK is the equivalent standard SQL command. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alteraggregate.html postgresql-13-13.7/doc/src/sgml/html/sql-alteraggregate.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alteraggregate.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alteraggregate.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER AGGREGATE

    ALTER AGGREGATE

    ALTER AGGREGATE — change the definition of an aggregate function

    Synopsis

    +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 }
    @@ -80,4 +80,4 @@
     

    Compatibility

    There is no ALTER AGGREGATE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altercollation.html postgresql-13-13.7/doc/src/sgml/html/sql-altercollation.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altercollation.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altercollation.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER COLLATION

    ALTER COLLATION

    ALTER COLLATION — change the definition of a collation

    Synopsis

    +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
    @@ -83,4 +83,4 @@
     

    Compatibility

    There is no ALTER COLLATION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterconversion.html postgresql-13-13.7/doc/src/sgml/html/sql-alterconversion.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterconversion.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterconversion.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER CONVERSION

    ALTER CONVERSION

    ALTER CONVERSION — change the definition of a conversion

    Synopsis

    +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
    @@ -36,4 +36,4 @@
     

    Compatibility

    There is no ALTER CONVERSION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterdatabase.html postgresql-13-13.7/doc/src/sgml/html/sql-alterdatabase.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterdatabase.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterdatabase.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER DATABASE

    ALTER DATABASE

    ALTER DATABASE — change a database

    Synopsis

    +ALTER DATABASE

    ALTER DATABASE

    ALTER DATABASE — change a database

    Synopsis

     ALTER DATABASE name [ [ WITH ] option [ ... ] ]
     
     where option can be:
    @@ -105,4 +105,4 @@
     

    Compatibility

    The ALTER DATABASE statement is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterdefaultprivileges.html postgresql-13-13.7/doc/src/sgml/html/sql-alterdefaultprivileges.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterdefaultprivileges.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterdefaultprivileges.html 2022-05-09 21:29:17.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 — define default access privileges

    Synopsis

     ALTER DEFAULT PRIVILEGES
         [ FOR { ROLE | USER } target_role [, ...] ]
         [ IN SCHEMA schema_name [, ...] ]
    @@ -156,4 +156,4 @@
       

    Compatibility

    There is no ALTER DEFAULT PRIVILEGES statement in the SQL standard. -

    See Also

    GRANT, REVOKE
    \ No newline at end of file +

    See Also

    GRANT, REVOKE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterdomain.html postgresql-13-13.7/doc/src/sgml/html/sql-alterdomain.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterdomain.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterdomain.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER DOMAIN

    ALTER DOMAIN

    ALTER DOMAIN — +ALTER DOMAIN

    ALTER DOMAIN

    ALTER DOMAIN — change the definition of a domain

    Synopsis

     ALTER DOMAIN name
    @@ -149,4 +149,4 @@
        PostgreSQL extensions.  The NOT VALID
        clause of the ADD CONSTRAINT variant is also a
        PostgreSQL extension.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altereventtrigger.html postgresql-13-13.7/doc/src/sgml/html/sql-altereventtrigger.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altereventtrigger.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altereventtrigger.html 2022-05-09 21:29:17.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

    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 }
    @@ -22,4 +22,4 @@
          

    Compatibility

    There is no ALTER EVENT TRIGGER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterextension.html postgresql-13-13.7/doc/src/sgml/html/sql-alterextension.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterextension.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterextension.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER EXTENSION

    ALTER EXTENSION

    ALTER EXTENSION — +ALTER EXTENSION

    ALTER EXTENSION

    ALTER EXTENSION — change the definition of an extension

    Synopsis

     ALTER EXTENSION name UPDATE [ TO new_version ]
    @@ -138,4 +138,4 @@
     

    Compatibility

    ALTER EXTENSION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterforeigndatawrapper.html postgresql-13-13.7/doc/src/sgml/html/sql-alterforeigndatawrapper.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterforeigndatawrapper.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterforeigndatawrapper.html 2022-05-09 21:29:17.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

    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 ]
    @@ -65,4 +65,4 @@
        9075-9 (SQL/MED), except that the HANDLER,
        VALIDATOR, OWNER TO, and RENAME
        clauses are extensions.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterforeigntable.html postgresql-13-13.7/doc/src/sgml/html/sql-alterforeigntable.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterforeigntable.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterforeigntable.html 2022-05-09 21:29:17.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

    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 [ * ]
    @@ -233,4 +233,4 @@
        ALTER FOREIGN TABLE DROP COLUMN can be used to drop the only
        column of a foreign table, leaving a zero-column table.  This is an
        extension of SQL, which disallows zero-column foreign tables.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterfunction.html postgresql-13-13.7/doc/src/sgml/html/sql-alterfunction.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterfunction.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterfunction.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER FUNCTION

    ALTER FUNCTION

    ALTER FUNCTION — change the definition of a function

    Synopsis

    +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 [, ...] ] ) ]
    @@ -169,4 +169,4 @@
        or change the owner, schema, or volatility of a function. The standard also
        requires the RESTRICT key word, which is optional in
        PostgreSQL.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altergroup.html postgresql-13-13.7/doc/src/sgml/html/sql-altergroup.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altergroup.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altergroup.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER GROUP

    ALTER GROUP

    ALTER GROUP — change role name or membership

    Synopsis

    +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 [, ... ]
     
    @@ -49,4 +49,4 @@
     

    Compatibility

    There is no ALTER GROUP statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterindex.html postgresql-13-13.7/doc/src/sgml/html/sql-alterindex.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterindex.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterindex.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER INDEX

    ALTER INDEX

    ALTER INDEX — change the definition of an index

    Synopsis

    +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 ATTACH PARTITION index_name
    @@ -135,4 +135,4 @@
     

    Compatibility

    ALTER INDEX is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterlanguage.html postgresql-13-13.7/doc/src/sgml/html/sql-alterlanguage.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterlanguage.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterlanguage.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER LANGUAGE

    ALTER LANGUAGE

    ALTER LANGUAGE — change the definition of a procedural language

    Synopsis

    +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

    @@ -16,4 +16,4 @@

    Compatibility

    There is no ALTER LANGUAGE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterlargeobject.html postgresql-13-13.7/doc/src/sgml/html/sql-alterlargeobject.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterlargeobject.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterlargeobject.html 2022-05-09 21:29:17.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

    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 @@ -17,4 +17,4 @@

    Compatibility

    There is no ALTER LARGE OBJECT statement in the SQL standard. -

    See Also

    Chapter 34
    \ No newline at end of file +

    See Also

    Chapter 34
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altermaterializedview.html postgresql-13-13.7/doc/src/sgml/html/sql-altermaterializedview.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altermaterializedview.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altermaterializedview.html 2022-05-09 21:29:17.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

    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
    @@ -21,6 +21,7 @@
         ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
         CLUSTER ON index_name
         SET WITHOUT CLUSTER
    +    SET TABLESPACE new_tablespace
         SET ( storage_parameter [= value] [, ... ] )
         RESET ( storage_parameter [, ... ] )
         OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
    @@ -68,4 +69,4 @@
     

    Compatibility

    ALTER MATERIALIZED VIEW is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alteropclass.html postgresql-13-13.7/doc/src/sgml/html/sql-alteropclass.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alteropclass.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alteropclass.html 2022-05-09 21:29:17.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

    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
     
    @@ -33,4 +33,4 @@
          

    Compatibility

    There is no ALTER OPERATOR CLASS statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alteroperator.html postgresql-13-13.7/doc/src/sgml/html/sql-alteroperator.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alteroperator.html 2021-08-09 21:02:58.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alteroperator.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER OPERATOR

    ALTER OPERATOR

    ALTER OPERATOR — change the definition of an operator

    Synopsis

    +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 }
     
    @@ -47,4 +47,4 @@
     

    Compatibility

    There is no ALTER OPERATOR statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alteropfamily.html postgresql-13-13.7/doc/src/sgml/html/sql-alteropfamily.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alteropfamily.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alteropfamily.html 2022-05-09 21:29:17.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

    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 ]
    @@ -178,4 +178,4 @@
     

    Compatibility

    There is no ALTER OPERATOR FAMILY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterpolicy.html postgresql-13-13.7/doc/src/sgml/html/sql-alterpolicy.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterpolicy.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterpolicy.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER POLICY

    ALTER POLICY

    ALTER POLICY — change the definition of a row level security policy

    Synopsis

    +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
    @@ -42,4 +42,4 @@
           See CREATE POLICY for details.
          

    Compatibility

    ALTER POLICY is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterprocedure.html postgresql-13-13.7/doc/src/sgml/html/sql-alterprocedure.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterprocedure.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterprocedure.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER PROCEDURE

    ALTER PROCEDURE

    ALTER PROCEDURE — change the definition of a procedure

    Synopsis

    +ALTER PROCEDURE

    ALTER PROCEDURE

    ALTER PROCEDURE — change the definition of a procedure

    Synopsis

     ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
         action [ ... ] [ RESTRICT ]
     ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    @@ -122,4 +122,4 @@
        or change the owner, schema, or volatility of a procedure. The standard also
        requires the RESTRICT key word, which is optional in
        PostgreSQL.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterpublication.html postgresql-13-13.7/doc/src/sgml/html/sql-alterpublication.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterpublication.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterpublication.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER PUBLICATION

    ALTER PUBLICATION

    ALTER PUBLICATION — change the definition of a publication

    Synopsis

    +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 [ * ] [, ...]
    @@ -60,4 +60,4 @@
     

    Compatibility

    ALTER PUBLICATION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterrole.html postgresql-13-13.7/doc/src/sgml/html/sql-alterrole.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterrole.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterrole.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER ROLE

    ALTER ROLE

    ALTER ROLE — change a database role

    Synopsis

    +ALTER ROLE

    ALTER ROLE

    ALTER ROLE — change a database role

    Synopsis

     ALTER ROLE role_specification [ WITH ] option [ ... ]
     
     where option can be:
    @@ -185,4 +185,4 @@
     

    Compatibility

    The ALTER ROLE statement is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterroutine.html postgresql-13-13.7/doc/src/sgml/html/sql-alterroutine.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterroutine.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterroutine.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER ROUTINE

    ALTER ROUTINE

    ALTER ROUTINE — change the definition of a routine

    Synopsis

    +ALTER ROUTINE

    ALTER ROUTINE

    ALTER ROUTINE — change the definition of a routine

    Synopsis

     ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
         action [ ... ] [ RESTRICT ]
     ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    @@ -46,4 +46,4 @@
        a PostgreSQL extension.
       

    See Also

    ALTER AGGREGATE, ALTER FUNCTION, ALTER PROCEDURE, DROP ROUTINE

    Note that there is no CREATE ROUTINE command. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterrule.html postgresql-13-13.7/doc/src/sgml/html/sql-alterrule.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterrule.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterrule.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER RULE

    ALTER RULE

    ALTER RULE — change the definition of a rule

    Synopsis

    +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 @@ -22,4 +22,4 @@ ALTER RULE is a PostgreSQL language extension, as is the entire query rewrite system. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterschema.html postgresql-13-13.7/doc/src/sgml/html/sql-alterschema.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterschema.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterschema.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER SCHEMA

    ALTER SCHEMA

    ALTER SCHEMA — change the definition of a schema

    Synopsis

    +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

    @@ -23,4 +23,4 @@

    Compatibility

    There is no ALTER SCHEMA statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altersequence.html postgresql-13-13.7/doc/src/sgml/html/sql-altersequence.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altersequence.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altersequence.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER SEQUENCE

    ALTER SEQUENCE

    ALTER SEQUENCE — +ALTER SEQUENCE

    ALTER SEQUENCE

    ALTER SEQUENCE — change the definition of a sequence generator

    Synopsis

     ALTER SEQUENCE [ IF EXISTS ] name
    @@ -157,4 +157,4 @@
        OWNED BY, OWNER TO, RENAME TO, and
        SET SCHEMA clauses, which are
        PostgreSQL extensions.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterserver.html postgresql-13-13.7/doc/src/sgml/html/sql-alterserver.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterserver.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterserver.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER SERVER

    ALTER SERVER

    ALTER SERVER — change the definition of a foreign server

    Synopsis

    +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 }
    @@ -45,4 +45,4 @@
        ALTER SERVER conforms to ISO/IEC 9075-9 (SQL/MED).
        The OWNER TO and RENAME forms are
        PostgreSQL extensions.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterstatistics.html postgresql-13-13.7/doc/src/sgml/html/sql-alterstatistics.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterstatistics.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterstatistics.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER STATISTICS

    ALTER STATISTICS

    ALTER STATISTICS — +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 }
    @@ -43,4 +43,4 @@
            

    Compatibility

    There is no ALTER STATISTICS command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altersubscription.html postgresql-13-13.7/doc/src/sgml/html/sql-altersubscription.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altersubscription.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altersubscription.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION — change the definition of a subscription

    Synopsis

    +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] [, ... ] ) ]
    @@ -83,4 +83,4 @@
     

    Compatibility

    ALTER SUBSCRIPTION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altersystem.html postgresql-13-13.7/doc/src/sgml/html/sql-altersystem.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altersystem.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altersystem.html 2022-05-09 21:29:17.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER SYSTEM

    ALTER SYSTEM

    ALTER SYSTEM — change a server configuration parameter

    Synopsis

    +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
    @@ -55,4 +55,4 @@
     

    Compatibility

    The ALTER SYSTEM statement is a PostgreSQL extension. -

    See Also

    SET, SHOW
    \ No newline at end of file +

    See Also

    SET, SHOW
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altertable.html postgresql-13-13.7/doc/src/sgml/html/sql-altertable.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altertable.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altertable.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TABLE

    ALTER TABLE

    ALTER TABLE — change the definition of a table

    Synopsis

    +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 [ * ]
    @@ -509,17 +509,25 @@
           or foreign table to the specified user.
          

    REPLICA IDENTITY

    This form changes the information which is written to the write-ahead log - to identify rows which are updated or deleted. This option has no effect - except when logical replication is in use. DEFAULT - (the default for non-system tables) records the - old values of the columns of the primary key, if any. USING INDEX - records the old values of the columns covered by the named index, which - must be unique, not partial, not deferrable, and include only columns marked - NOT NULL. FULL records the old values of all columns - in the row. NOTHING records no information about the old row. - (This is the default for system tables.) - In all cases, no old values are logged unless at least one of the columns - that would be logged differs between the old and new versions of the row. + to identify rows which are updated or deleted. + In most cases, the old value of each column is only logged if it differs + from the new value; however, if the old value is stored externally, it is + always logged regardless of whether it changed. + This option has no effect except when logical replication is in use. +

    DEFAULT

    + Records the old values of the columns of the primary key, if any. + This is the default for non-system tables. +

    USING INDEX index_name

    + Records the old values of the columns covered by the named index, + that must be unique, not partial, not deferrable, and include only + columns marked NOT NULL. If this index is + dropped, the behavior is the same as NOTHING. +

    FULL

    + Records the old values of all columns in the row. +

    NOTHING

    + Records no information about the old row. This is the default for + system tables. +

    RENAME

    The RENAME forms change the name of a table (or an index, sequence, view, materialized view, or foreign table), the @@ -1008,4 +1016,4 @@ ALTER TABLE DROP COLUMN can be used to drop the only column of a table, leaving a zero-column table. This is an extension of SQL, which disallows zero-column tables. -

    See Also

    CREATE TABLE
    \ No newline at end of file +

    See Also

    CREATE TABLE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altertablespace.html postgresql-13-13.7/doc/src/sgml/html/sql-altertablespace.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altertablespace.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altertablespace.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TABLESPACE

    ALTER TABLESPACE

    ALTER TABLESPACE — change the definition of a tablespace

    Synopsis

    +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 [, ... ] )
    @@ -47,4 +47,4 @@
     

    Compatibility

    There is no ALTER TABLESPACE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altertrigger.html postgresql-13-13.7/doc/src/sgml/html/sql-altertrigger.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altertrigger.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altertrigger.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TRIGGER

    ALTER TRIGGER

    ALTER TRIGGER — change the definition of a trigger

    Synopsis

    +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 [ NO ] DEPENDS ON EXTENSION extension_name
     

    Description

    @@ -39,4 +39,4 @@

    Compatibility

    ALTER TRIGGER is a PostgreSQL extension of the SQL standard. -

    See Also

    ALTER TABLE
    \ No newline at end of file +

    See Also

    ALTER TABLE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altertsconfig.html postgresql-13-13.7/doc/src/sgml/html/sql-altertsconfig.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altertsconfig.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altertsconfig.html 2022-05-09 21:29:18.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

    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
    @@ -65,4 +65,4 @@
     

    Compatibility

    There is no ALTER TEXT SEARCH CONFIGURATION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altertsdictionary.html postgresql-13-13.7/doc/src/sgml/html/sql-altertsdictionary.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altertsdictionary.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altertsdictionary.html 2022-05-09 21:29:18.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

    ALTER TEXT SEARCH DICTIONARY

    ALTER TEXT SEARCH DICTIONARY — change the definition of a text search dictionary

    Synopsis

     ALTER TEXT SEARCH DICTIONARY name (
         option [ = value ] [, ... ]
     )
    @@ -57,4 +57,4 @@
       

    Compatibility

    There is no ALTER TEXT SEARCH DICTIONARY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altertsparser.html postgresql-13-13.7/doc/src/sgml/html/sql-altertsparser.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altertsparser.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altertsparser.html 2022-05-09 21:29:18.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

    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

    @@ -17,4 +17,4 @@

    Compatibility

    There is no ALTER TEXT SEARCH PARSER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altertstemplate.html postgresql-13-13.7/doc/src/sgml/html/sql-altertstemplate.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altertstemplate.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altertstemplate.html 2022-05-09 21:29:18.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

    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

    @@ -17,4 +17,4 @@

    Compatibility

    There is no ALTER TEXT SEARCH TEMPLATE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-altertype.html postgresql-13-13.7/doc/src/sgml/html/sql-altertype.html --- postgresql-13-13.4/doc/src/sgml/html/sql-altertype.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-altertype.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TYPE

    ALTER TYPE

    ALTER TYPE — +ALTER TYPE

    ALTER TYPE

    ALTER TYPE — change the definition of a type

    Synopsis

     ALTER TYPE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
    @@ -218,4 +218,4 @@
     

    Compatibility

    The variants to add and drop attributes are part of the SQL standard; the other variants are PostgreSQL extensions. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alteruser.html postgresql-13-13.7/doc/src/sgml/html/sql-alteruser.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alteruser.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alteruser.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER USER

    ALTER USER

    ALTER USER — change a database role

    Synopsis

    +ALTER USER

    ALTER USER

    ALTER USER — change a database role

    Synopsis

     ALTER USER role_specification [ WITH ] option [ ... ]
     
     where option can be:
    @@ -34,4 +34,4 @@
        The ALTER USER statement is a
        PostgreSQL extension.  The SQL standard
        leaves the definition of users to the implementation.
    -  

    See Also

    ALTER ROLE
    \ No newline at end of file +

    See Also

    ALTER ROLE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterusermapping.html postgresql-13-13.7/doc/src/sgml/html/sql-alterusermapping.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterusermapping.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterusermapping.html 2022-05-09 21:29:18.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

    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'] [, ... ] )
    @@ -40,4 +40,4 @@
        for ALTER USER MAPPING, PostgreSQL diverges from
        the standard here in the interest of consistency and
        interoperability.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-alterview.html postgresql-13-13.7/doc/src/sgml/html/sql-alterview.html --- postgresql-13-13.4/doc/src/sgml/html/sql-alterview.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-alterview.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER VIEW

    ALTER VIEW

    ALTER VIEW — change the definition of a view

    Synopsis

    +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 }
    @@ -73,4 +73,4 @@
     

    Compatibility

    ALTER VIEW is a PostgreSQL extension of the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-analyze.html postgresql-13-13.7/doc/src/sgml/html/sql-analyze.html --- postgresql-13-13.4/doc/src/sgml/html/sql-analyze.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-analyze.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -ANALYZE

    ANALYZE

    ANALYZE — collect statistics about a database

    Synopsis

    +ANALYZE

    ANALYZE

    ANALYZE — collect statistics about a database

    Synopsis

     ANALYZE [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
     ANALYZE [ VERBOSE ] [ table_and_columns [, ...] ]
     
    @@ -158,13 +158,33 @@
         or updated, the inheritance statistics will not be up to date unless you
         run ANALYZE manually.
       

    - If any of the child tables are foreign tables whose foreign data wrappers - do not support ANALYZE, those child tables are ignored while - gathering inheritance statistics. + For partitioned tables, ANALYZE gathers statistics by + sampling rows from all partitions; in addition, it will recurse into each + partition and update its statistics. Each leaf partition is analyzed only + once, even with multi-level partitioning. No statistics are collected for + only the parent table (without data from its partitions), because with + partitioning it's guaranteed to be empty. +

    + By contrast, if the table being analyzed has inheritance children, + ANALYZE gathers two sets of statistics: one on the rows + of the parent table only, and a second including rows of both the parent + table and all of its children. This second set of statistics is needed when + planning queries that process the inheritance tree as a whole. The child + tables themselves are not individually analyzed in this case. +

    + The autovacuum daemon does not process partitioned tables, nor does it + process inheritance parents if only the children are ever modified. + It is usually necessary to periodically run a manual + ANALYZE to keep the statistics of the table hierarchy + up to date. +

    + If any child tables or partitions are foreign tables whose foreign + data wrappers do not support ANALYZE, those tables are + ignored while gathering inheritance statistics.

    If the table being analyzed is completely empty, ANALYZE will not record new statistics for that table. Any existing statistics will be retained.

    Compatibility

    There is no ANALYZE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-begin.html postgresql-13-13.7/doc/src/sgml/html/sql-begin.html --- postgresql-13-13.4/doc/src/sgml/html/sql-begin.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-begin.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -BEGIN

    BEGIN

    BEGIN — start a transaction block

    Synopsis

    +BEGIN

    BEGIN

    BEGIN — start a transaction block

    Synopsis

     BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
     
     where transaction_mode is one of:
    @@ -68,4 +68,4 @@
        Incidentally, the BEGIN key word is used for a
        different purpose in embedded SQL. You are advised to be careful
        about the transaction semantics when porting database applications.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-call.html postgresql-13-13.7/doc/src/sgml/html/sql-call.html --- postgresql-13-13.4/doc/src/sgml/html/sql-call.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-call.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CALL

    CALL

    CALL — invoke a procedure

    Synopsis

    +CALL

    CALL

    CALL — invoke a procedure

    Synopsis

     CALL name ( [ argument ] [, ...] )
     

    Description

    CALL executes a procedure. @@ -30,4 +30,4 @@ CALL do_db_maintenance();

    Compatibility

    CALL conforms to the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-checkpoint.html postgresql-13-13.7/doc/src/sgml/html/sql-checkpoint.html --- postgresql-13-13.4/doc/src/sgml/html/sql-checkpoint.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-checkpoint.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CHECKPOINT

    CHECKPOINT

    CHECKPOINT — force a write-ahead log checkpoint

    Synopsis

    +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 @@ -23,4 +23,4 @@

    Compatibility

    The CHECKPOINT command is a PostgreSQL language extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-close.html postgresql-13-13.7/doc/src/sgml/html/sql-close.html --- postgresql-13-13.4/doc/src/sgml/html/sql-close.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-close.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CLOSE

    CLOSE

    CLOSE — close a cursor

    Synopsis

    +CLOSE

    CLOSE

    CLOSE — close a cursor

    Synopsis

     CLOSE { name | ALL }
     

    Description

    CLOSE frees the resources associated with an open cursor. @@ -39,4 +39,4 @@ CLOSE is fully conforming with the SQL standard. CLOSE ALL is a PostgreSQL extension. -

    See Also

    DECLARE, FETCH, MOVE
    \ No newline at end of file +

    See Also

    DECLARE, FETCH, MOVE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-cluster.html postgresql-13-13.7/doc/src/sgml/html/sql-cluster.html --- postgresql-13-13.4/doc/src/sgml/html/sql-cluster.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-cluster.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CLUSTER

    CLUSTER

    CLUSTER — cluster a table according to an index

    Synopsis

    +CLUSTER

    CLUSTER

    CLUSTER — cluster a table according to an index

    Synopsis

     CLUSTER [VERBOSE] table_name [ USING index_name ]
     CLUSTER [VERBOSE]
     

    Description

    @@ -114,4 +114,4 @@

    is also supported for compatibility with pre-8.3 PostgreSQL versions. -

    See Also

    clusterdb
    \ No newline at end of file +

    See Also

    clusterdb
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-commands.html postgresql-13-13.7/doc/src/sgml/html/sql-commands.html --- postgresql-13-13.4/doc/src/sgml/html/sql-commands.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-commands.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -SQL Commands

    SQL Commands


    +SQL Commands

    SQL Commands


    This part contains reference information for the SQL commands supported by PostgreSQL. By SQL the @@ -16,4 +16,4 @@ change the definition of an extended statistics object

    ALTER SUBSCRIPTION — change the definition of a subscription
    ALTER SYSTEM — change a server configuration parameter
    ALTER TABLE — change the definition of a table
    ALTER TABLESPACE — change the definition of a tablespace
    ALTER TEXT SEARCH CONFIGURATION — change the definition of a text search configuration
    ALTER TEXT SEARCH DICTIONARY — change the definition of a text search dictionary
    ALTER TEXT SEARCH PARSER — change the definition of a text search parser
    ALTER TEXT SEARCH TEMPLATE — change the definition of a text search template
    ALTER TRIGGER — change the definition of a trigger
    ALTER TYPE — change the definition of a type -
    ALTER USER — change a database role
    ALTER USER MAPPING — change the definition of a user mapping
    ALTER VIEW — change the definition of a view
    ANALYZE — collect statistics about a database
    BEGIN — start a transaction block
    CALL — invoke a procedure
    CHECKPOINT — force a write-ahead log checkpoint
    CLOSE — close a cursor
    CLUSTER — cluster a table according to an index
    COMMENT — define or change the comment of an object
    COMMIT — commit the current transaction
    COMMIT PREPARED — commit a transaction that was earlier prepared for two-phase commit
    COPY — copy data between a file and a table
    CREATE ACCESS METHOD — define a new access method
    CREATE AGGREGATE — define a new aggregate function
    CREATE CAST — define a new cast
    CREATE COLLATION — define a new collation
    CREATE CONVERSION — define a new encoding conversion
    CREATE DATABASE — create a new database
    CREATE DOMAIN — define a new domain
    CREATE EVENT TRIGGER — define a new event trigger
    CREATE EXTENSION — install an extension
    CREATE FOREIGN DATA WRAPPER — define a new foreign-data wrapper
    CREATE FOREIGN TABLE — define a new foreign table
    CREATE FUNCTION — define a new function
    CREATE GROUP — define a new database role
    CREATE INDEX — define a new index
    CREATE LANGUAGE — define a new procedural language
    CREATE MATERIALIZED VIEW — define a new materialized view
    CREATE OPERATOR — define a new operator
    CREATE OPERATOR CLASS — define a new operator class
    CREATE OPERATOR FAMILY — define a new operator family
    CREATE POLICY — define a new row level security policy for a table
    CREATE PROCEDURE — define a new procedure
    CREATE PUBLICATION — define a new publication
    CREATE ROLE — define a new database role
    CREATE RULE — define a new rewrite rule
    CREATE SCHEMA — define a new schema
    CREATE SEQUENCE — define a new sequence generator
    CREATE SERVER — define a new foreign server
    CREATE STATISTICS — define extended statistics
    CREATE SUBSCRIPTION — define a new subscription
    CREATE TABLE — define a new table
    CREATE TABLE AS — define a new table from the results of a query
    CREATE TABLESPACE — define a new tablespace
    CREATE TEXT SEARCH CONFIGURATION — define a new text search configuration
    CREATE TEXT SEARCH DICTIONARY — define a new text search dictionary
    CREATE TEXT SEARCH PARSER — define a new text search parser
    CREATE TEXT SEARCH TEMPLATE — define a new text search template
    CREATE TRANSFORM — define a new transform
    CREATE TRIGGER — define a new trigger
    CREATE TYPE — define a new data type
    CREATE USER — define a new database role
    CREATE USER MAPPING — define a new mapping of a user to a foreign server
    CREATE VIEW — define a new view
    DEALLOCATE — deallocate a prepared statement
    DECLARE — define a cursor
    DELETE — delete rows of a table
    DISCARD — discard session state
    DO — execute an anonymous code block
    DROP ACCESS METHOD — remove an access method
    DROP AGGREGATE — remove an aggregate function
    DROP CAST — remove a cast
    DROP COLLATION — remove a collation
    DROP CONVERSION — remove a conversion
    DROP DATABASE — remove a database
    DROP DOMAIN — remove a domain
    DROP EVENT TRIGGER — remove an event trigger
    DROP EXTENSION — remove an extension
    DROP FOREIGN DATA WRAPPER — remove a foreign-data wrapper
    DROP FOREIGN TABLE — remove a foreign table
    DROP FUNCTION — remove a function
    DROP GROUP — remove a database role
    DROP INDEX — remove an index
    DROP LANGUAGE — remove a procedural language
    DROP MATERIALIZED VIEW — remove a materialized view
    DROP OPERATOR — remove an operator
    DROP OPERATOR CLASS — remove an operator class
    DROP OPERATOR FAMILY — remove an operator family
    DROP OWNED — remove database objects owned by a database role
    DROP POLICY — remove a row level security policy from a table
    DROP PROCEDURE — remove a procedure
    DROP PUBLICATION — remove a publication
    DROP ROLE — remove a database role
    DROP ROUTINE — remove a routine
    DROP RULE — remove a rewrite rule
    DROP SCHEMA — remove a schema
    DROP SEQUENCE — remove a sequence
    DROP SERVER — remove a foreign server descriptor
    DROP STATISTICS — remove extended statistics
    DROP SUBSCRIPTION — remove a subscription
    DROP TABLE — remove a table
    DROP TABLESPACE — remove a tablespace
    DROP TEXT SEARCH CONFIGURATION — remove a text search configuration
    DROP TEXT SEARCH DICTIONARY — remove a text search dictionary
    DROP TEXT SEARCH PARSER — remove a text search parser
    DROP TEXT SEARCH TEMPLATE — remove a text search template
    DROP TRANSFORM — remove a transform
    DROP TRIGGER — remove a trigger
    DROP TYPE — remove a data type
    DROP USER — remove a database role
    DROP USER MAPPING — remove a user mapping for a foreign server
    DROP VIEW — remove a view
    END — commit the current transaction
    EXECUTE — execute a prepared statement
    EXPLAIN — show the execution plan of a statement
    FETCH — retrieve rows from a query using a cursor
    GRANT — define access privileges
    IMPORT FOREIGN SCHEMA — import table definitions from a foreign server
    INSERT — create new rows in a table
    LISTEN — listen for a notification
    LOAD — load a shared library file
    LOCK — lock a table
    MOVE — position a cursor
    NOTIFY — generate a notification
    PREPARE — prepare a statement for execution
    PREPARE TRANSACTION — prepare the current transaction for two-phase commit
    REASSIGN OWNED — change the ownership of database objects owned by a database role
    REFRESH MATERIALIZED VIEW — replace the contents of a materialized view
    REINDEX — rebuild indexes
    RELEASE SAVEPOINT — destroy a previously defined savepoint
    RESET — restore the value of a run-time parameter to the default value
    REVOKE — remove access privileges
    ROLLBACK — abort the current transaction
    ROLLBACK PREPARED — cancel a transaction that was earlier prepared for two-phase commit
    ROLLBACK TO SAVEPOINT — roll back to a savepoint
    SAVEPOINT — define a new savepoint within the current transaction
    SECURITY LABEL — define or change a security label applied to an object
    SELECT — retrieve rows from a table or view
    SELECT INTO — define a new table from the results of a query
    SET — change a run-time parameter
    SET CONSTRAINTS — set constraint check timing for the current transaction
    SET ROLE — set the current user identifier of the current session
    SET SESSION AUTHORIZATION — set the session user identifier and the current user identifier of the current session
    SET TRANSACTION — set the characteristics of the current transaction
    SHOW — show the value of a run-time parameter
    START TRANSACTION — start a transaction block
    TRUNCATE — empty a table or set of tables
    UNLISTEN — stop listening for a notification
    UPDATE — update rows of a table
    VACUUM — garbage-collect and optionally analyze a database
    VALUES — compute a set of rows
    \ No newline at end of file +
    ALTER USER — change a database role
    ALTER USER MAPPING — change the definition of a user mapping
    ALTER VIEW — change the definition of a view
    ANALYZE — collect statistics about a database
    BEGIN — start a transaction block
    CALL — invoke a procedure
    CHECKPOINT — force a write-ahead log checkpoint
    CLOSE — close a cursor
    CLUSTER — cluster a table according to an index
    COMMENT — define or change the comment of an object
    COMMIT — commit the current transaction
    COMMIT PREPARED — commit a transaction that was earlier prepared for two-phase commit
    COPY — copy data between a file and a table
    CREATE ACCESS METHOD — define a new access method
    CREATE AGGREGATE — define a new aggregate function
    CREATE CAST — define a new cast
    CREATE COLLATION — define a new collation
    CREATE CONVERSION — define a new encoding conversion
    CREATE DATABASE — create a new database
    CREATE DOMAIN — define a new domain
    CREATE EVENT TRIGGER — define a new event trigger
    CREATE EXTENSION — install an extension
    CREATE FOREIGN DATA WRAPPER — define a new foreign-data wrapper
    CREATE FOREIGN TABLE — define a new foreign table
    CREATE FUNCTION — define a new function
    CREATE GROUP — define a new database role
    CREATE INDEX — define a new index
    CREATE LANGUAGE — define a new procedural language
    CREATE MATERIALIZED VIEW — define a new materialized view
    CREATE OPERATOR — define a new operator
    CREATE OPERATOR CLASS — define a new operator class
    CREATE OPERATOR FAMILY — define a new operator family
    CREATE POLICY — define a new row level security policy for a table
    CREATE PROCEDURE — define a new procedure
    CREATE PUBLICATION — define a new publication
    CREATE ROLE — define a new database role
    CREATE RULE — define a new rewrite rule
    CREATE SCHEMA — define a new schema
    CREATE SEQUENCE — define a new sequence generator
    CREATE SERVER — define a new foreign server
    CREATE STATISTICS — define extended statistics
    CREATE SUBSCRIPTION — define a new subscription
    CREATE TABLE — define a new table
    CREATE TABLE AS — define a new table from the results of a query
    CREATE TABLESPACE — define a new tablespace
    CREATE TEXT SEARCH CONFIGURATION — define a new text search configuration
    CREATE TEXT SEARCH DICTIONARY — define a new text search dictionary
    CREATE TEXT SEARCH PARSER — define a new text search parser
    CREATE TEXT SEARCH TEMPLATE — define a new text search template
    CREATE TRANSFORM — define a new transform
    CREATE TRIGGER — define a new trigger
    CREATE TYPE — define a new data type
    CREATE USER — define a new database role
    CREATE USER MAPPING — define a new mapping of a user to a foreign server
    CREATE VIEW — define a new view
    DEALLOCATE — deallocate a prepared statement
    DECLARE — define a cursor
    DELETE — delete rows of a table
    DISCARD — discard session state
    DO — execute an anonymous code block
    DROP ACCESS METHOD — remove an access method
    DROP AGGREGATE — remove an aggregate function
    DROP CAST — remove a cast
    DROP COLLATION — remove a collation
    DROP CONVERSION — remove a conversion
    DROP DATABASE — remove a database
    DROP DOMAIN — remove a domain
    DROP EVENT TRIGGER — remove an event trigger
    DROP EXTENSION — remove an extension
    DROP FOREIGN DATA WRAPPER — remove a foreign-data wrapper
    DROP FOREIGN TABLE — remove a foreign table
    DROP FUNCTION — remove a function
    DROP GROUP — remove a database role
    DROP INDEX — remove an index
    DROP LANGUAGE — remove a procedural language
    DROP MATERIALIZED VIEW — remove a materialized view
    DROP OPERATOR — remove an operator
    DROP OPERATOR CLASS — remove an operator class
    DROP OPERATOR FAMILY — remove an operator family
    DROP OWNED — remove database objects owned by a database role
    DROP POLICY — remove a row level security policy from a table
    DROP PROCEDURE — remove a procedure
    DROP PUBLICATION — remove a publication
    DROP ROLE — remove a database role
    DROP ROUTINE — remove a routine
    DROP RULE — remove a rewrite rule
    DROP SCHEMA — remove a schema
    DROP SEQUENCE — remove a sequence
    DROP SERVER — remove a foreign server descriptor
    DROP STATISTICS — remove extended statistics
    DROP SUBSCRIPTION — remove a subscription
    DROP TABLE — remove a table
    DROP TABLESPACE — remove a tablespace
    DROP TEXT SEARCH CONFIGURATION — remove a text search configuration
    DROP TEXT SEARCH DICTIONARY — remove a text search dictionary
    DROP TEXT SEARCH PARSER — remove a text search parser
    DROP TEXT SEARCH TEMPLATE — remove a text search template
    DROP TRANSFORM — remove a transform
    DROP TRIGGER — remove a trigger
    DROP TYPE — remove a data type
    DROP USER — remove a database role
    DROP USER MAPPING — remove a user mapping for a foreign server
    DROP VIEW — remove a view
    END — commit the current transaction
    EXECUTE — execute a prepared statement
    EXPLAIN — show the execution plan of a statement
    FETCH — retrieve rows from a query using a cursor
    GRANT — define access privileges
    IMPORT FOREIGN SCHEMA — import table definitions from a foreign server
    INSERT — create new rows in a table
    LISTEN — listen for a notification
    LOAD — load a shared library file
    LOCK — lock a table
    MOVE — position a cursor
    NOTIFY — generate a notification
    PREPARE — prepare a statement for execution
    PREPARE TRANSACTION — prepare the current transaction for two-phase commit
    REASSIGN OWNED — change the ownership of database objects owned by a database role
    REFRESH MATERIALIZED VIEW — replace the contents of a materialized view
    REINDEX — rebuild indexes
    RELEASE SAVEPOINT — destroy a previously defined savepoint
    RESET — restore the value of a run-time parameter to the default value
    REVOKE — remove access privileges
    ROLLBACK — abort the current transaction
    ROLLBACK PREPARED — cancel a transaction that was earlier prepared for two-phase commit
    ROLLBACK TO SAVEPOINT — roll back to a savepoint
    SAVEPOINT — define a new savepoint within the current transaction
    SECURITY LABEL — define or change a security label applied to an object
    SELECT — retrieve rows from a table or view
    SELECT INTO — define a new table from the results of a query
    SET — change a run-time parameter
    SET CONSTRAINTS — set constraint check timing for the current transaction
    SET ROLE — set the current user identifier of the current session
    SET SESSION AUTHORIZATION — set the session user identifier and the current user identifier of the current session
    SET TRANSACTION — set the characteristics of the current transaction
    SHOW — show the value of a run-time parameter
    START TRANSACTION — start a transaction block
    TRUNCATE — empty a table or set of tables
    UNLISTEN — stop listening for a notification
    UPDATE — update rows of a table
    VACUUM — garbage-collect and optionally analyze a database
    VALUES — compute a set of rows
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-comment.html postgresql-13-13.7/doc/src/sgml/html/sql-comment.html --- postgresql-13-13.4/doc/src/sgml/html/sql-comment.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-comment.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -COMMENT

    COMMENT

    COMMENT — define or change the comment of an object

    Synopsis

    +COMMENT

    COMMENT

    COMMENT — define or change the comment of an object

    Synopsis

     COMMENT ON
     {
       ACCESS METHOD object_name |
    @@ -60,6 +60,9 @@
        comment, write NULL in place of the text string.
        Comments are automatically dropped when their object is dropped.
       

    + A SHARE UPDATE EXCLUSIVE lock is acquired on the + object to be commented. +

    For most kinds of object, only the object's owner can set the comment. Roles don't have owners, so the rule for COMMENT ON ROLE is that you must be superuser to comment on a superuser role, or have the @@ -193,4 +196,4 @@ COMMENT ON VIEW my_view IS 'View of departmental costs';

    Compatibility

    There is no COMMENT command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-commit.html postgresql-13-13.7/doc/src/sgml/html/sql-commit.html --- postgresql-13-13.4/doc/src/sgml/html/sql-commit.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-commit.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -COMMIT

    COMMIT

    COMMIT — commit the current transaction

    Synopsis

    +COMMIT

    COMMIT

    COMMIT — commit the current transaction

    Synopsis

     COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
     

    Description

    COMMIT commits the current transaction. All @@ -25,4 +25,4 @@

    Compatibility

    The command COMMIT conforms to the SQL standard. The form COMMIT TRANSACTION is a PostgreSQL extension. -

    See Also

    BEGIN, ROLLBACK
    \ No newline at end of file +

    See Also

    BEGIN, ROLLBACK
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-commit-prepared.html postgresql-13-13.7/doc/src/sgml/html/sql-commit-prepared.html --- postgresql-13-13.4/doc/src/sgml/html/sql-commit-prepared.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-commit-prepared.html 2022-05-09 21:29:18.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

    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 @@ -30,4 +30,4 @@ external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-copy.html postgresql-13-13.7/doc/src/sgml/html/sql-copy.html --- postgresql-13-13.4/doc/src/sgml/html/sql-copy.html 2021-08-09 21:02:59.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-copy.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -COPY

    COPY

    COPY — copy data between a file and a table

    Synopsis

    +COPY

    COPY

    COPY — copy data between a file and a table

    Synopsis

     COPY table_name [ ( column_name [, ...] ) ]
         FROM { 'filename' | PROGRAM 'command' | STDIN }
         [ [ WITH ] ( option [, ...] ) ]
    @@ -339,8 +339,8 @@
         COPY FROM:
     
        

    SequenceRepresents
    \bBackspace (ASCII 8)
    \fForm feed (ASCII 12)
    \nNewline (ASCII 10)
    \rCarriage return (ASCII 13)
    \tTab (ASCII 9)
    \vVertical tab (ASCII 11)
    \digitsBackslash followed by one to three octal digits specifies - the character with that numeric code
    \xdigitsBackslash x followed by one or two hex digits specifies - the character with that numeric code

    + the byte with that numeric code\xdigitsBackslash x followed by one or two hex digits specifies + the byte with that numeric code

    Presently, COPY TO will never emit an octal or hex-digits backslash sequence, but it does use the other sequences @@ -363,6 +363,10 @@ transferred across different machines (for example, from Unix to Windows or vice versa).

    + All backslash sequences are interpreted after encoding conversion. + The bytes specified with the octal and hex-digit backslash sequences must + form valid characters in the database encoding. +

    COPY TO will terminate each row with a Unix-style newline (\n). Servers running on Microsoft Windows instead output carriage return/newline (\r\n), but only for @@ -622,4 +626,4 @@ TO { 'filename' | STDOUT } [ [USING] DELIMITERS 'delimiter_character' ] [ WITH NULL AS 'null_string' ] -

    \ No newline at end of file + \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-create-access-method.html postgresql-13-13.7/doc/src/sgml/html/sql-create-access-method.html --- postgresql-13-13.4/doc/src/sgml/html/sql-create-access-method.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-create-access-method.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE ACCESS METHOD

    CREATE ACCESS METHOD

    CREATE ACCESS METHOD — define a new access method

    Synopsis

    +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
    @@ -36,4 +36,4 @@
     

    Compatibility

    CREATE ACCESS METHOD is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createaggregate.html postgresql-13-13.7/doc/src/sgml/html/sql-createaggregate.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createaggregate.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createaggregate.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE AGGREGATE

    CREATE AGGREGATE

    CREATE AGGREGATE — define a new aggregate function

    Synopsis

    +CREATE AGGREGATE

    CREATE AGGREGATE

    CREATE AGGREGATE — define a new aggregate function

    Synopsis

     CREATE [ OR REPLACE ] AGGREGATE name ( [ argmode ] [ argname ] arg_data_type [ , ... ] ) (
         SFUNC = sfunc,
         STYPE = state_data_type
    @@ -507,4 +507,4 @@
        CREATE AGGREGATE is a
        PostgreSQL language extension.  The SQL
        standard does not provide for user-defined aggregate functions.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createcast.html postgresql-13-13.7/doc/src/sgml/html/sql-createcast.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createcast.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createcast.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE CAST

    CREATE CAST

    CREATE CAST — define a new cast

    Synopsis

    +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 ]
    @@ -253,4 +253,4 @@
        CREATE FUNCTION,
        CREATE TYPE,
        DROP CAST
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createcollation.html postgresql-13-13.7/doc/src/sgml/html/sql-createcollation.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createcollation.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createcollation.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE COLLATION

    CREATE COLLATION

    CREATE COLLATION — define a new collation

    Synopsis

    +CREATE COLLATION

    CREATE COLLATION

    CREATE COLLATION — define a new collation

    Synopsis

     CREATE COLLATION [ IF NOT EXISTS ] name (
         [ LOCALE = locale, ]
         [ LC_COLLATE = lc_collate, ]
    @@ -106,4 +106,4 @@
        standard, but it is limited to copying an existing collation.  The
        syntax to create a new collation is
        a PostgreSQL extension.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createconversion.html postgresql-13-13.7/doc/src/sgml/html/sql-createconversion.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createconversion.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createconversion.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE CONVERSION

    CREATE CONVERSION

    CREATE CONVERSION — define a new encoding conversion

    Synopsis

    +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

    @@ -63,4 +63,4 @@ There is no CREATE CONVERSION statement in the SQL standard, but a CREATE TRANSLATION statement that is very similar in purpose and syntax. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createdatabase.html postgresql-13-13.7/doc/src/sgml/html/sql-createdatabase.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createdatabase.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createdatabase.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE DATABASE

    CREATE DATABASE

    CREATE DATABASE — create a new database

    Synopsis

    +CREATE DATABASE

    CREATE DATABASE

    CREATE DATABASE — create a new database

    Synopsis

     CREATE DATABASE name
         [ [ WITH ] [ OWNER [=] user_name ]
                [ TEMPLATE [=] template ]
    @@ -188,4 +188,4 @@
        There is no CREATE DATABASE statement in the SQL
        standard.  Databases are equivalent to catalogs, whose creation is
        implementation-defined.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createdomain.html postgresql-13-13.7/doc/src/sgml/html/sql-createdomain.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createdomain.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createdomain.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE DOMAIN

    CREATE DOMAIN

    CREATE DOMAIN — define a new domain

    Synopsis

    +CREATE DOMAIN

    CREATE DOMAIN

    CREATE DOMAIN — define a new domain

    Synopsis

     CREATE DOMAIN name [ AS ] data_type
         [ COLLATE collation ]
         [ DEFAULT expression ]
    @@ -144,4 +144,4 @@
     

    Compatibility

    The command CREATE DOMAIN conforms to the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createeventtrigger.html postgresql-13-13.7/doc/src/sgml/html/sql-createeventtrigger.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createeventtrigger.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createeventtrigger.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,8 +1,8 @@ -CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER — define a new event trigger

    Synopsis

    +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 ... ] ]
    +    [ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ]
         EXECUTE { FUNCTION | PROCEDURE } function_name()
     

    Description

    CREATE EVENT TRIGGER creates a new event trigger. @@ -62,4 +62,4 @@

    Compatibility

    There is no CREATE EVENT TRIGGER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createextension.html postgresql-13-13.7/doc/src/sgml/html/sql-createextension.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createextension.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createextension.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE EXTENSION

    CREATE EXTENSION

    CREATE EXTENSION — install an extension

    Synopsis

    +CREATE EXTENSION

    CREATE EXTENSION

    CREATE EXTENSION — install an extension

    Synopsis

     CREATE EXTENSION [ IF NOT EXISTS ] extension_name
         [ WITH ] [ SCHEMA schema_name ]
                  [ VERSION version ]
    @@ -126,4 +126,4 @@
       

    Compatibility

    CREATE EXTENSION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createforeigndatawrapper.html postgresql-13-13.7/doc/src/sgml/html/sql-createforeigndatawrapper.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createforeigndatawrapper.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createforeigndatawrapper.html 2022-05-09 21:29:18.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

    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 ]
    @@ -74,4 +74,4 @@
       

    Note, however, that the SQL/MED functionality as a whole is not yet conforming. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createforeigntable.html postgresql-13-13.7/doc/src/sgml/html/sql-createforeigntable.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createforeigntable.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createforeigntable.html 2022-05-09 21:29:18.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE — define a new foreign table

    Synopsis

    +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 }
    @@ -175,9 +175,25 @@
         constraints on foreign tables, it does assume that they are correct
         for purposes of query optimization.  If there are rows visible in the
         foreign table that do not satisfy a declared constraint, queries on
    -    the table might produce incorrect answers.  It is the user's
    +    the table might produce errors or incorrect answers.  It is the user's
         responsibility to ensure that the constraint definition matches
         reality.
    +   

    Caution

    + When a foreign table is used as a partition of a partitioned table, + there is an implicit constraint that its contents must satisfy the + partitioning rule. Again, it is the user's responsibility to ensure + that that is true, which is best done by installing a matching + constraint on the remote server. +

    + Within a partitioned table containing foreign-table partitions, + an UPDATE that changes the partition key value can + cause a row to be moved from a local partition to a foreign-table + partition, provided the foreign data wrapper supports tuple routing. + However it is not currently possible to move a row from a + foreign-table partition to another partition. + An UPDATE that would require doing that will fail + due to the partitioning constraint, assuming that that is properly + enforced by the remote server.

    Similar considerations apply to generated columns. Stored generated columns are computed on insert or update on the local @@ -186,10 +202,6 @@ not enforced that a query of the foreign table returns values for stored generated columns that are consistent with the generation expression. Again, this might result in incorrect query results. -

    - While rows can be moved from local partitions to a foreign-table partition - (provided the foreign data wrapper supports tuple routing), they cannot be - moved from a foreign-table partition to another partition.

    Examples

    Create foreign table films, which will be accessed through the server film_server: @@ -221,4 +233,4 @@ The ability to specify column default values is also a PostgreSQL extension. Table inheritance, in the form defined by PostgreSQL, is nonstandard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createfunction.html postgresql-13-13.7/doc/src/sgml/html/sql-createfunction.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createfunction.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createfunction.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE FUNCTION

    CREATE FUNCTION

    CREATE FUNCTION — define a new function

    Synopsis

    +CREATE FUNCTION

    CREATE FUNCTION

    CREATE FUNCTION — define a new function

    Synopsis

     CREATE [ OR REPLACE ] FUNCTION
         name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
         [ RETURNS rettype
    @@ -490,4 +490,4 @@
        For parameter defaults, the SQL standard specifies only the syntax with
        the DEFAULT key word.  The syntax
        with = is used in T-SQL and Firebird.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-creategroup.html postgresql-13-13.7/doc/src/sgml/html/sql-creategroup.html --- postgresql-13-13.4/doc/src/sgml/html/sql-creategroup.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-creategroup.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE GROUP

    CREATE GROUP

    CREATE GROUP — define a new database role

    Synopsis

    +CREATE GROUP

    CREATE GROUP

    CREATE GROUP — define a new database role

    Synopsis

     CREATE GROUP name [ [ WITH ] option [ ... ] ]
     
     where option can be:
    @@ -26,4 +26,4 @@
       

    Compatibility

    There is no CREATE GROUP statement in the SQL standard. -

    See Also

    CREATE ROLE
    \ No newline at end of file +

    See Also

    CREATE ROLE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createindex.html postgresql-13-13.7/doc/src/sgml/html/sql-createindex.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createindex.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createindex.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE INDEX

    CREATE INDEX

    CREATE INDEX — define a new index

    Synopsis

    +CREATE INDEX

    CREATE INDEX

    CREATE INDEX — define a new index

    Synopsis

     CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
         ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass [ ( opclass_parameter = value [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )
         [ INCLUDE ( column_name [, ...] ) ]
    @@ -533,4 +533,4 @@
        CREATE INDEX is a
        PostgreSQL language extension.  There
        are no provisions for indexes in the SQL standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createlanguage.html postgresql-13-13.7/doc/src/sgml/html/sql-createlanguage.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createlanguage.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createlanguage.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE LANGUAGE

    CREATE LANGUAGE

    CREATE LANGUAGE — define a new procedural language

    Synopsis

    +CREATE LANGUAGE

    CREATE LANGUAGE

    CREATE LANGUAGE — define a new procedural language

    Synopsis

     CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
         HANDLER call_handler [ INLINE inline_handler ] [ VALIDATOR valfunction ]
     CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
    @@ -120,4 +120,4 @@
     

    Compatibility

    CREATE LANGUAGE is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-creatematerializedview.html postgresql-13-13.7/doc/src/sgml/html/sql-creatematerializedview.html --- postgresql-13-13.4/doc/src/sgml/html/sql-creatematerializedview.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-creatematerializedview.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW — define a new materialized view

    Synopsis

    +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 [, ...] ) ]
         [ USING method ]
    @@ -62,4 +62,4 @@
          

    Compatibility

    CREATE MATERIALIZED VIEW is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createopclass.html postgresql-13-13.7/doc/src/sgml/html/sql-createopclass.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createopclass.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createopclass.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS — define a new operator class

    Synopsis

    +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 ]
    @@ -149,4 +149,4 @@
        PostgreSQL extension.  There is no
        CREATE OPERATOR CLASS statement in the SQL
        standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createoperator.html postgresql-13-13.7/doc/src/sgml/html/sql-createoperator.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createoperator.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createoperator.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE OPERATOR

    CREATE OPERATOR

    CREATE OPERATOR — define a new operator

    Synopsis

    +CREATE OPERATOR

    CREATE OPERATOR

    CREATE OPERATOR — define a new operator

    Synopsis

     CREATE OPERATOR name (
         {FUNCTION|PROCEDURE} = function_name
         [, LEFTARG = left_type ] [, RIGHTARG = right_type ]
    @@ -138,4 +138,4 @@
        CREATE OPERATOR is a
        PostgreSQL extension.  There are no
        provisions for user-defined operators in the SQL standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createopfamily.html postgresql-13-13.7/doc/src/sgml/html/sql-createopfamily.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createopfamily.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createopfamily.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY — define a new operator family

    Synopsis

    +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. @@ -40,4 +40,4 @@ PostgreSQL extension. There is no CREATE OPERATOR FAMILY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createpolicy.html postgresql-13-13.7/doc/src/sgml/html/sql-createpolicy.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createpolicy.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createpolicy.html 2022-05-09 21:29:19.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

    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 } ]
    @@ -345,4 +345,4 @@
       

    Compatibility

    CREATE POLICY is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createprocedure.html postgresql-13-13.7/doc/src/sgml/html/sql-createprocedure.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createprocedure.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createprocedure.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE PROCEDURE

    CREATE PROCEDURE

    CREATE PROCEDURE — define a new procedure

    Synopsis

    +CREATE PROCEDURE

    CREATE PROCEDURE

    CREATE PROCEDURE — define a new procedure

    Synopsis

     CREATE [ OR REPLACE ] PROCEDURE
         name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
       { LANGUAGE lang_name
    @@ -169,4 +169,4 @@
        standard.  The PostgreSQL version is similar but
        not fully compatible.  For details see
        also CREATE FUNCTION.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createpublication.html postgresql-13-13.7/doc/src/sgml/html/sql-createpublication.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createpublication.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createpublication.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE PUBLICATION

    CREATE PUBLICATION

    CREATE PUBLICATION — define a new publication

    Synopsis

    +CREATE PUBLICATION

    CREATE PUBLICATION

    CREATE PUBLICATION — define a new publication

    Synopsis

     CREATE PUBLICATION name
         [ FOR TABLE [ ONLY ] table_name [ * ] [, ...]
           | FOR ALL TABLES ]
    @@ -88,6 +88,11 @@
        of the outcome, it may be published as either INSERT or
        UPDATE, or it may not be published at all.
       

    + ATTACHing a table into a partition tree whose root is + published using a publication with publish_via_partition_root + set to true does not result in the table's existing contents + being replicated. +

    COPY ... FROM commands are published as INSERT operations.

    @@ -111,4 +116,4 @@

    Compatibility

    CREATE PUBLICATION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createrole.html postgresql-13-13.7/doc/src/sgml/html/sql-createrole.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createrole.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createrole.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE ROLE

    CREATE ROLE

    CREATE ROLE — define a new database role

    Synopsis

    +CREATE ROLE

    CREATE ROLE

    CREATE ROLE — define a new database role

    Synopsis

     CREATE ROLE name [ [ WITH ] option [ ... ] ]
     
     where option can be:
    @@ -266,4 +266,4 @@
        The behavior specified by the SQL standard is most closely approximated
        by giving users the NOINHERIT attribute, while roles are
        given the INHERIT attribute.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createrule.html postgresql-13-13.7/doc/src/sgml/html/sql-createrule.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createrule.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createrule.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE RULE

    CREATE RULE

    CREATE RULE — define a new rewrite rule

    Synopsis

    +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 ... ) }
    @@ -171,4 +171,4 @@
        CREATE RULE is a
        PostgreSQL language extension, as is the
        entire query rewrite system.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createschema.html postgresql-13-13.7/doc/src/sgml/html/sql-createschema.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createschema.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createschema.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE SCHEMA

    CREATE SCHEMA

    CREATE SCHEMA — define a new schema

    Synopsis

    +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 ]
    @@ -114,4 +114,4 @@
       

    The IF NOT EXISTS option is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createsequence.html postgresql-13-13.7/doc/src/sgml/html/sql-createsequence.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createsequence.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createsequence.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE SEQUENCE

    CREATE SEQUENCE

    CREATE SEQUENCE — define a new sequence generator

    Synopsis

    +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 ]
    @@ -198,4 +198,4 @@
          

  • The OWNED BY clause is a PostgreSQL extension. -

  • \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createserver.html postgresql-13-13.7/doc/src/sgml/html/sql-createserver.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createserver.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createserver.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE SERVER

    CREATE SERVER

    CREATE SERVER — define a new foreign server

    Synopsis

    +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' [, ... ] ) ]
    @@ -50,4 +50,4 @@
        See postgres_fdw for more details.
       

    Compatibility

    CREATE SERVER conforms to ISO/IEC 9075-9 (SQL/MED). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createstatistics.html postgresql-13-13.7/doc/src/sgml/html/sql-createstatistics.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createstatistics.html 2021-08-09 21:03:00.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createstatistics.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE STATISTICS

    CREATE STATISTICS

    CREATE STATISTICS — define extended statistics

    Synopsis

    +CREATE STATISTICS

    CREATE STATISTICS

    CREATE STATISTICS — define extended statistics

    Synopsis

     CREATE STATISTICS [ IF NOT EXISTS ] statistics_name
         [ ( statistics_kind [, ... ] ) ]
         ON column_name, column_name [, ...]
    @@ -109,4 +109,4 @@
        in the table, allowing it to generate better estimates in both cases.
       

    Compatibility

    There is no CREATE STATISTICS command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createsubscription.html postgresql-13-13.7/doc/src/sgml/html/sql-createsubscription.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createsubscription.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createsubscription.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION — define a new subscription

    Synopsis

    +CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION — define a new subscription

    Synopsis

     CREATE SUBSCRIPTION subscription_name
         CONNECTION 'conninfo'
         PUBLICATION publication_name [, ...]
    @@ -129,4 +129,4 @@
     

    Compatibility

    CREATE SUBSCRIPTION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtableas.html postgresql-13-13.7/doc/src/sgml/html/sql-createtableas.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtableas.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtableas.html 2022-05-09 21:29:19.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 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 [, ...] ) ]
         [ USING method ]
    @@ -143,4 +143,4 @@
           The PostgreSQL concept of tablespaces is not
           part of the standard.  Hence, the clause TABLESPACE
           is an extension.
    -     

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtable.html postgresql-13-13.7/doc/src/sgml/html/sql-createtable.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtable.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtable.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TABLE

    CREATE TABLE

    CREATE TABLE — define a new table

    Synopsis

    +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
    @@ -1411,4 +1411,4 @@
        

    PARTITION OF Clause

    The PARTITION OF clause is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtablespace.html postgresql-13-13.7/doc/src/sgml/html/sql-createtablespace.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtablespace.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtablespace.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TABLESPACE

    CREATE TABLESPACE

    CREATE TABLESPACE — define a new tablespace

    Synopsis

    +CREATE TABLESPACE

    CREATE TABLESPACE

    CREATE TABLESPACE — define a new tablespace

    Synopsis

     CREATE TABLESPACE tablespace_name
         [ OWNER { new_owner | CURRENT_USER | SESSION_USER } ]
         LOCATION 'directory'
    @@ -77,4 +77,4 @@
     

    Compatibility

    CREATE TABLESPACE is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtransform.html postgresql-13-13.7/doc/src/sgml/html/sql-createtransform.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtransform.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtransform.html 2022-05-09 21:29:19.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TRANSFORM

    CREATE TRANSFORM

    CREATE TRANSFORM — define a new transform

    Synopsis

    +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 [, ...]) ]
    @@ -103,4 +103,4 @@
        CREATE LANGUAGE,
        CREATE TYPE,
        DROP TRANSFORM
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtrigger.html postgresql-13-13.7/doc/src/sgml/html/sql-createtrigger.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtrigger.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtrigger.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TRIGGER

    CREATE TRIGGER

    CREATE TRIGGER — define a new trigger

    Synopsis

    +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 ]
    @@ -435,4 +435,4 @@
        CREATE CONSTRAINT TRIGGER is a
        PostgreSQL extension of the SQL
        standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtsconfig.html postgresql-13-13.7/doc/src/sgml/html/sql-createtsconfig.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtsconfig.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtsconfig.html 2022-05-09 21:29:19.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

    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
    @@ -37,4 +37,4 @@
       

    Compatibility

    There is no CREATE TEXT SEARCH CONFIGURATION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtsdictionary.html postgresql-13-13.7/doc/src/sgml/html/sql-createtsdictionary.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtsdictionary.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtsdictionary.html 2022-05-09 21:29:19.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

    CREATE TEXT SEARCH DICTIONARY

    CREATE TEXT SEARCH DICTIONARY — define a new text search dictionary

    Synopsis

     CREATE TEXT SEARCH DICTIONARY name (
         TEMPLATE = template
         [, option = value [, ... ]]
    @@ -44,4 +44,4 @@
     

    Compatibility

    There is no CREATE TEXT SEARCH DICTIONARY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtsparser.html postgresql-13-13.7/doc/src/sgml/html/sql-createtsparser.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtsparser.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtsparser.html 2022-05-09 21:29:19.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

    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 ,
    @@ -48,4 +48,4 @@
        There is no
        CREATE TEXT SEARCH PARSER statement in the SQL
        standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtstemplate.html postgresql-13-13.7/doc/src/sgml/html/sql-createtstemplate.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtstemplate.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtstemplate.html 2022-05-09 21:29:19.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

    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
    @@ -42,4 +42,4 @@
        There is no
        CREATE TEXT SEARCH TEMPLATE statement in the SQL
        standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createtype.html postgresql-13-13.7/doc/src/sgml/html/sql-createtype.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createtype.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createtype.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TYPE

    CREATE TYPE

    CREATE TYPE — define a new data type

    Synopsis

    +CREATE TYPE

    CREATE TYPE

    CREATE TYPE — define a new data type

    Synopsis

     CREATE TYPE name AS
         ( [ attribute_name data_type [ COLLATE collation ] [, ... ] ] )
     
    @@ -597,4 +597,4 @@
        The ability to create a composite type with zero attributes is
        a PostgreSQL-specific deviation from the
        standard (analogous to the same case in CREATE TABLE).
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createuser.html postgresql-13-13.7/doc/src/sgml/html/sql-createuser.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createuser.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createuser.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE USER

    CREATE USER

    CREATE USER — define a new database role

    Synopsis

    +CREATE USER

    CREATE USER

    CREATE USER — define a new database role

    Synopsis

     CREATE USER name [ [ WITH ] option [ ... ] ]
     
     where option can be:
    @@ -32,4 +32,4 @@
        The CREATE USER statement is a
        PostgreSQL extension.  The SQL standard
        leaves the definition of users to the implementation.
    -  

    See Also

    CREATE ROLE
    \ No newline at end of file +

    See Also

    CREATE ROLE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createusermapping.html postgresql-13-13.7/doc/src/sgml/html/sql-createusermapping.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createusermapping.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createusermapping.html 2022-05-09 21:29:20.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

    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' [ , ... ] ) ]
    @@ -39,4 +39,4 @@
     CREATE USER MAPPING FOR bob SERVER foo OPTIONS (user 'bob', password 'secret');
     

    Compatibility

    CREATE USER MAPPING conforms to ISO/IEC 9075-9 (SQL/MED). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-createview.html postgresql-13-13.7/doc/src/sgml/html/sql-createview.html --- postgresql-13-13.4/doc/src/sgml/html/sql-createview.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-createview.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE VIEW

    CREATE VIEW

    CREATE VIEW — define a new view

    Synopsis

    +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
    @@ -288,4 +288,4 @@
        PostgreSQL language extension.
        So is the concept of a temporary view.
        The WITH ( ... ) clause is an extension as well.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-deallocate.html postgresql-13-13.7/doc/src/sgml/html/sql-deallocate.html --- postgresql-13-13.4/doc/src/sgml/html/sql-deallocate.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-deallocate.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DEALLOCATE

    DEALLOCATE

    DEALLOCATE — deallocate a prepared statement

    Synopsis

    +DEALLOCATE

    DEALLOCATE

    DEALLOCATE — deallocate a prepared statement

    Synopsis

     DEALLOCATE [ PREPARE ] { name | ALL }
     

    Description

    DEALLOCATE is used to deallocate a previously @@ -16,4 +16,4 @@

    Compatibility

    The SQL standard includes a DEALLOCATE statement, but it is only for use in embedded SQL. -

    See Also

    EXECUTE, PREPARE
    \ No newline at end of file +

    See Also

    EXECUTE, PREPARE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-declare.html postgresql-13-13.7/doc/src/sgml/html/sql-declare.html --- postgresql-13-13.4/doc/src/sgml/html/sql-declare.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-declare.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DECLARE

    DECLARE

    DECLARE — define a cursor

    Synopsis

    +DECLARE

    DECLARE

    DECLARE — define a cursor

    Synopsis

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

    Description

    @@ -191,4 +191,4 @@

    Binary cursors are a PostgreSQL extension. -

    See Also

    CLOSE, FETCH, MOVE
    \ No newline at end of file +

    See Also

    CLOSE, FETCH, MOVE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-delete.html postgresql-13-13.7/doc/src/sgml/html/sql-delete.html --- postgresql-13-13.4/doc/src/sgml/html/sql-delete.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-delete.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DELETE

    DELETE

    DELETE — delete rows of a table

    Synopsis

    +DELETE

    DELETE

    DELETE — delete rows of a table

    Synopsis

     [ WITH [ RECURSIVE ] with_query [, ...] ]
     DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ]
         [ USING from_item [, ...] ]
    @@ -142,4 +142,4 @@
        that the USING and RETURNING clauses
        are PostgreSQL extensions, as is the ability
        to use WITH with DELETE.
    -  

    See Also

    TRUNCATE
    \ No newline at end of file +

    See Also

    TRUNCATE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-discard.html postgresql-13-13.7/doc/src/sgml/html/sql-discard.html --- postgresql-13-13.4/doc/src/sgml/html/sql-discard.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-discard.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DISCARD

    DISCARD

    DISCARD — discard session state

    Synopsis

    +DISCARD

    DISCARD

    DISCARD — discard session state

    Synopsis

     DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }
     

    Description

    DISCARD releases internal resources associated with a @@ -38,4 +38,4 @@ DISCARD ALL cannot be executed inside a transaction block.

    Compatibility

    DISCARD is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-do.html postgresql-13-13.7/doc/src/sgml/html/sql-do.html --- postgresql-13-13.4/doc/src/sgml/html/sql-do.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-do.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DO

    DO

    DO — execute an anonymous code block

    Synopsis

    +DO

    DO

    DO — execute an anonymous code block

    Synopsis

     DO [ LANGUAGE lang_name ] code
     

    Description

    DO executes an anonymous code block, or in other @@ -46,4 +46,4 @@ END$$;

    Compatibility

    There is no DO statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-drop-access-method.html postgresql-13-13.7/doc/src/sgml/html/sql-drop-access-method.html --- postgresql-13-13.4/doc/src/sgml/html/sql-drop-access-method.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-drop-access-method.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP ACCESS METHOD

    DROP ACCESS METHOD

    DROP ACCESS METHOD — remove an access method

    Synopsis

    +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. @@ -24,4 +24,4 @@

    Compatibility

    DROP ACCESS METHOD is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropaggregate.html postgresql-13-13.7/doc/src/sgml/html/sql-dropaggregate.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropaggregate.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropaggregate.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP AGGREGATE

    DROP AGGREGATE

    DROP AGGREGATE — remove an aggregate function

    Synopsis

    +DROP AGGREGATE

    DROP AGGREGATE

    DROP AGGREGATE — remove an aggregate function

    Synopsis

     DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]
     
     where aggregate_signature is:
    @@ -62,4 +62,4 @@
     

    Compatibility

    There is no DROP AGGREGATE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropcast.html postgresql-13-13.7/doc/src/sgml/html/sql-dropcast.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropcast.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropcast.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP CAST

    DROP CAST

    DROP CAST — remove a cast

    Synopsis

    +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. @@ -23,4 +23,4 @@ DROP CAST (text AS int);

    Compatibility

    The DROP CAST command conforms to the SQL standard. -

    See Also

    CREATE CAST
    \ No newline at end of file +

    See Also

    CREATE CAST
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropcollation.html postgresql-13-13.7/doc/src/sgml/html/sql-dropcollation.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropcollation.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropcollation.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP COLLATION

    DROP COLLATION

    DROP COLLATION — remove a collation

    Synopsis

    +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. @@ -25,4 +25,4 @@ The DROP COLLATION command conforms to the SQL standard, apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropconversion.html postgresql-13-13.7/doc/src/sgml/html/sql-dropconversion.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropconversion.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropconversion.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP CONVERSION

    DROP CONVERSION

    DROP CONVERSION — remove a conversion

    Synopsis

    +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. @@ -23,4 +23,4 @@ goes along with the CREATE TRANSLATION statement that is similar to the CREATE CONVERSION statement in PostgreSQL. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropdatabase.html postgresql-13-13.7/doc/src/sgml/html/sql-dropdatabase.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropdatabase.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropdatabase.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP DATABASE

    DROP DATABASE

    DROP DATABASE — remove a database

    Synopsis

    +DROP DATABASE

    DROP DATABASE

    DROP DATABASE — remove a database

    Synopsis

     DROP DATABASE [ IF EXISTS ] name [ [ WITH ] ( option [, ...] ) ]
     
     where option can be:
    @@ -41,4 +41,4 @@
        which is a wrapper around this command.
       

    Compatibility

    There is no DROP DATABASE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropdomain.html postgresql-13-13.7/doc/src/sgml/html/sql-dropdomain.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropdomain.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropdomain.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP DOMAIN

    DROP DOMAIN

    DROP DOMAIN — remove a domain

    Synopsis

    +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 @@ -26,4 +26,4 @@ This command conforms to the SQL standard, except for the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropeventtrigger.html postgresql-13-13.7/doc/src/sgml/html/sql-dropeventtrigger.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropeventtrigger.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropeventtrigger.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP EVENT TRIGGER

    DROP EVENT TRIGGER

    DROP EVENT TRIGGER — remove an event trigger

    Synopsis

    +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. @@ -25,4 +25,4 @@

    Compatibility

    There is no DROP EVENT TRIGGER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropextension.html postgresql-13-13.7/doc/src/sgml/html/sql-dropextension.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropextension.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropextension.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP EXTENSION

    DROP EXTENSION

    DROP EXTENSION — remove an extension

    Synopsis

    +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. @@ -32,4 +32,4 @@

    Compatibility

    DROP EXTENSION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropforeigndatawrapper.html postgresql-13-13.7/doc/src/sgml/html/sql-dropforeigndatawrapper.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropforeigndatawrapper.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropforeigndatawrapper.html 2022-05-09 21:29:20.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

    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 @@ -26,4 +26,4 @@ DROP FOREIGN DATA WRAPPER conforms to ISO/IEC 9075-9 (SQL/MED). The IF EXISTS clause is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropforeigntable.html postgresql-13-13.7/doc/src/sgml/html/sql-dropforeigntable.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropforeigntable.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropforeigntable.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP FOREIGN TABLE

    DROP FOREIGN TABLE

    DROP FOREIGN TABLE — remove a foreign table

    Synopsis

    +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. @@ -27,4 +27,4 @@ standard only allows one foreign table to be dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropfunction.html postgresql-13-13.7/doc/src/sgml/html/sql-dropfunction.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropfunction.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropfunction.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP FUNCTION

    DROP FUNCTION

    DROP FUNCTION — remove a function

    Synopsis

    +DROP FUNCTION

    DROP FUNCTION

    DROP FUNCTION — remove a function

    Synopsis

     DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
         [ CASCADE | RESTRICT ]
     

    Description

    @@ -64,4 +64,4 @@

    Compatibility

    This command conforms to the SQL standard, with these PostgreSQL extensions: -

    • The standard only allows one function to be dropped per command.

    • The IF EXISTS option

    • The ability to specify argument modes and names

    \ No newline at end of file +

    • The standard only allows one function to be dropped per command.

    • The IF EXISTS option

    • The ability to specify argument modes and names

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropgroup.html postgresql-13-13.7/doc/src/sgml/html/sql-dropgroup.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropgroup.html 2021-08-09 21:03:01.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropgroup.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,9 +1,9 @@ -DROP GROUP

    DROP GROUP

    DROP GROUP — remove a database role

    Synopsis

    +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 +

    See Also

    DROP ROLE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropindex.html postgresql-13-13.7/doc/src/sgml/html/sql-dropindex.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropindex.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropindex.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP INDEX

    DROP INDEX

    DROP INDEX — remove an index

    Synopsis

    +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 @@ -47,4 +47,4 @@ DROP INDEX is a PostgreSQL language extension. There are no provisions for indexes in the SQL standard. -

    See Also

    CREATE INDEX
    \ No newline at end of file +

    See Also

    CREATE INDEX
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droplanguage.html postgresql-13-13.7/doc/src/sgml/html/sql-droplanguage.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droplanguage.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droplanguage.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP LANGUAGE

    DROP LANGUAGE

    DROP LANGUAGE — remove a procedural language

    Synopsis

    +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 @@ -33,4 +33,4 @@

    Compatibility

    There is no DROP LANGUAGE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropmaterializedview.html postgresql-13-13.7/doc/src/sgml/html/sql-dropmaterializedview.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropmaterializedview.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropmaterializedview.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW — remove a materialized view

    Synopsis

    +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 @@ -27,4 +27,4 @@

    Compatibility

    DROP MATERIALIZED VIEW is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropopclass.html postgresql-13-13.7/doc/src/sgml/html/sql-dropopclass.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropopclass.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropopclass.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP OPERATOR CLASS

    DROP OPERATOR CLASS

    DROP OPERATOR CLASS — remove an operator class

    Synopsis

    +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. @@ -44,4 +44,4 @@

    Compatibility

    There is no DROP OPERATOR CLASS statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropoperator.html postgresql-13-13.7/doc/src/sgml/html/sql-dropoperator.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropoperator.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropoperator.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP OPERATOR

    DROP OPERATOR

    DROP OPERATOR — remove an operator

    Synopsis

    +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 @@ -45,4 +45,4 @@ DROP OPERATOR ~ (none, bit), ! (bigint, none);

    Compatibility

    There is no DROP OPERATOR statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropopfamily.html postgresql-13-13.7/doc/src/sgml/html/sql-dropopfamily.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropopfamily.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropopfamily.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY — remove an operator family

    Synopsis

    +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. @@ -37,4 +37,4 @@

    Compatibility

    There is no DROP OPERATOR FAMILY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-drop-owned.html postgresql-13-13.7/doc/src/sgml/html/sql-drop-owned.html --- postgresql-13-13.4/doc/src/sgml/html/sql-drop-owned.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-drop-owned.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP OWNED

    DROP OWNED

    DROP OWNED — remove database objects owned by a database role

    Synopsis

    +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 @@ -38,4 +38,4 @@

    Compatibility

    The DROP OWNED command is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droppolicy.html postgresql-13-13.7/doc/src/sgml/html/sql-droppolicy.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droppolicy.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droppolicy.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP POLICY

    DROP POLICY

    DROP POLICY — remove a row level security policy from a table

    Synopsis

    +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. @@ -27,4 +27,4 @@ DROP POLICY p1 ON my_table;

    Compatibility

    DROP POLICY is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropprocedure.html postgresql-13-13.7/doc/src/sgml/html/sql-dropprocedure.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropprocedure.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropprocedure.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP PROCEDURE

    DROP PROCEDURE

    DROP PROCEDURE — remove a procedure

    Synopsis

    +DROP PROCEDURE

    DROP PROCEDURE

    DROP PROCEDURE — remove a procedure

    Synopsis

     DROP PROCEDURE [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
         [ CASCADE | RESTRICT ]
     

    Description

    @@ -37,4 +37,4 @@

    Compatibility

    This command conforms to the SQL standard, with these PostgreSQL extensions: -

    • The standard only allows one procedure to be dropped per command.

    • The IF EXISTS option

    • The ability to specify argument modes and names

    \ No newline at end of file +

    • The standard only allows one procedure to be dropped per command.

    • The IF EXISTS option

    • The ability to specify argument modes and names

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droppublication.html postgresql-13-13.7/doc/src/sgml/html/sql-droppublication.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droppublication.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droppublication.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP PUBLICATION

    DROP PUBLICATION

    DROP PUBLICATION — remove a publication

    Synopsis

    +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 @@ -21,4 +21,4 @@

    Compatibility

    DROP PUBLICATION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droprole.html postgresql-13-13.7/doc/src/sgml/html/sql-droprole.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droprole.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droprole.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP ROLE

    DROP ROLE

    DROP ROLE — remove a database role

    Synopsis

    +DROP ROLE

    DROP ROLE

    DROP ROLE — remove a database role

    Synopsis

     DROP ROLE [ IF EXISTS ] name [, ...]
     

    Description

    DROP ROLE removes the specified role(s). @@ -36,4 +36,4 @@ The SQL standard defines DROP ROLE, but it allows only one role to be dropped at a time, and it specifies different privilege requirements than PostgreSQL uses. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droproutine.html postgresql-13-13.7/doc/src/sgml/html/sql-droproutine.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droproutine.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droproutine.html 2022-05-09 21:29:20.000000000 +0000 @@ -1,5 +1,5 @@ -DROP ROUTINE

    DROP ROUTINE

    DROP ROUTINE — remove a routine

    Synopsis

    +DROP ROUTINE

    DROP ROUTINE

    DROP ROUTINE — remove a routine

    Synopsis

     DROP ROUTINE [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
         [ CASCADE | RESTRICT ]
     

    Description

    @@ -22,4 +22,4 @@ these PostgreSQL extensions:

    • The standard only allows one routine to be dropped per command.

    • The IF EXISTS option

    • The ability to specify argument modes and names

    • Aggregate functions are an extension.

    See Also

    DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINE

    Note that there is no CREATE ROUTINE command. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droprule.html postgresql-13-13.7/doc/src/sgml/html/sql-droprule.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droprule.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droprule.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP RULE

    DROP RULE

    DROP RULE — remove a rewrite rule

    Synopsis

    +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. @@ -27,4 +27,4 @@ DROP RULE is a PostgreSQL language extension, as is the entire query rewrite system. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropschema.html postgresql-13-13.7/doc/src/sgml/html/sql-dropschema.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropschema.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropschema.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP SCHEMA

    DROP SCHEMA

    DROP SCHEMA — remove a schema

    Synopsis

    +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. @@ -35,4 +35,4 @@ dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropsequence.html postgresql-13-13.7/doc/src/sgml/html/sql-dropsequence.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropsequence.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropsequence.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP SEQUENCE

    DROP SEQUENCE

    DROP SEQUENCE — remove a sequence

    Synopsis

    +DROP SEQUENCE

    DROP SEQUENCE

    DROP SEQUENCE — remove a sequence

    Synopsis

     DROP SEQUENCE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP SEQUENCE removes sequence number @@ -27,4 +27,4 @@ sequence to be dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropserver.html postgresql-13-13.7/doc/src/sgml/html/sql-dropserver.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropserver.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropserver.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP SERVER

    DROP SERVER

    DROP SERVER — remove a foreign server descriptor

    Synopsis

    +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 @@ -26,4 +26,4 @@ DROP SERVER conforms to ISO/IEC 9075-9 (SQL/MED). The IF EXISTS clause is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropstatistics.html postgresql-13-13.7/doc/src/sgml/html/sql-dropstatistics.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropstatistics.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropstatistics.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP STATISTICS

    DROP STATISTICS

    DROP STATISTICS — remove extended statistics

    Synopsis

    +DROP STATISTICS

    DROP STATISTICS

    DROP STATISTICS — remove extended statistics

    Synopsis

     DROP STATISTICS [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP STATISTICS removes statistics object(s) from the @@ -23,4 +23,4 @@ public.grants_user_role;

    Compatibility

    There is no DROP STATISTICS command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropsubscription.html postgresql-13-13.7/doc/src/sgml/html/sql-dropsubscription.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropsubscription.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropsubscription.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP SUBSCRIPTION

    DROP SUBSCRIPTION

    DROP SUBSCRIPTION — remove a subscription

    Synopsis

    +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 @@ -42,4 +42,4 @@

    Compatibility

    DROP SUBSCRIPTION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droptable.html postgresql-13-13.7/doc/src/sgml/html/sql-droptable.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droptable.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droptable.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TABLE

    DROP TABLE

    DROP TABLE — remove a table

    Synopsis

    +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. @@ -39,4 +39,4 @@ allows one table to be dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droptablespace.html postgresql-13-13.7/doc/src/sgml/html/sql-droptablespace.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droptablespace.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droptablespace.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TABLESPACE

    DROP TABLESPACE

    DROP TABLESPACE — remove a tablespace

    Synopsis

    +DROP TABLESPACE

    DROP TABLESPACE

    DROP TABLESPACE — remove a tablespace

    Synopsis

     DROP TABLESPACE [ IF EXISTS ] name
     

    Description

    DROP TABLESPACE removes a tablespace from the system. @@ -25,4 +25,4 @@

    Compatibility

    DROP TABLESPACE is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droptransform.html postgresql-13-13.7/doc/src/sgml/html/sql-droptransform.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droptransform.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droptransform.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TRANSFORM

    DROP TRANSFORM

    DROP TRANSFORM — remove a transform

    Synopsis

    +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. @@ -28,4 +28,4 @@

    Compatibility

    This form of DROP TRANSFORM is a PostgreSQL extension. See CREATE TRANSFORM for details. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droptrigger.html postgresql-13-13.7/doc/src/sgml/html/sql-droptrigger.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droptrigger.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droptrigger.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TRIGGER

    DROP TRIGGER

    DROP TRIGGER — remove a trigger

    Synopsis

    +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 @@ -32,4 +32,4 @@ standard. In the SQL standard, trigger names are not local to tables, so the command is simply DROP TRIGGER name. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droptsconfig.html postgresql-13-13.7/doc/src/sgml/html/sql-droptsconfig.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droptsconfig.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droptsconfig.html 2022-05-09 21:29:21.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

    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 @@ -32,4 +32,4 @@

    Compatibility

    There is no DROP TEXT SEARCH CONFIGURATION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droptsdictionary.html postgresql-13-13.7/doc/src/sgml/html/sql-droptsdictionary.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droptsdictionary.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droptsdictionary.html 2022-05-09 21:29:21.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

    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 @@ -31,4 +31,4 @@

    Compatibility

    There is no DROP TEXT SEARCH DICTIONARY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droptsparser.html postgresql-13-13.7/doc/src/sgml/html/sql-droptsparser.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droptsparser.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droptsparser.html 2022-05-09 21:29:21.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

    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 @@ -29,4 +29,4 @@

    Compatibility

    There is no DROP TEXT SEARCH PARSER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droptstemplate.html postgresql-13-13.7/doc/src/sgml/html/sql-droptstemplate.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droptstemplate.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droptstemplate.html 2022-05-09 21:29:21.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

    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 @@ -30,4 +30,4 @@

    Compatibility

    There is no DROP TEXT SEARCH TEMPLATE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-droptype.html postgresql-13-13.7/doc/src/sgml/html/sql-droptype.html --- postgresql-13-13.4/doc/src/sgml/html/sql-droptype.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-droptype.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TYPE

    DROP TYPE

    DROP TYPE — remove a data type

    Synopsis

    +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. @@ -28,4 +28,4 @@ But note that much of the CREATE TYPE command and the data type extension mechanisms in PostgreSQL differ from the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropuser.html postgresql-13-13.7/doc/src/sgml/html/sql-dropuser.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropuser.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropuser.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP USER

    DROP USER

    DROP USER — remove a database role

    Synopsis

    +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 @@ -8,4 +8,4 @@ The DROP USER statement is a PostgreSQL extension. The SQL standard leaves the definition of users to the implementation. -

    See Also

    DROP ROLE
    \ No newline at end of file +

    See Also

    DROP ROLE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropusermapping.html postgresql-13-13.7/doc/src/sgml/html/sql-dropusermapping.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropusermapping.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropusermapping.html 2022-05-09 21:29:21.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

    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 @@ -27,4 +27,4 @@ DROP USER MAPPING conforms to ISO/IEC 9075-9 (SQL/MED). The IF EXISTS clause is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-dropview.html postgresql-13-13.7/doc/src/sgml/html/sql-dropview.html --- postgresql-13-13.4/doc/src/sgml/html/sql-dropview.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-dropview.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -DROP VIEW

    DROP VIEW

    DROP VIEW — remove a view

    Synopsis

    +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 @@ -26,4 +26,4 @@ allows one view to be dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-end.html postgresql-13-13.7/doc/src/sgml/html/sql-end.html --- postgresql-13-13.4/doc/src/sgml/html/sql-end.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-end.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -END

    END

    END — commit the current transaction

    Synopsis

    +END

    END

    END — commit the current transaction

    Synopsis

     END [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
     

    Description

    END commits the current transaction. All changes @@ -27,4 +27,4 @@ END is a PostgreSQL extension that provides functionality equivalent to COMMIT, which is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-execute.html postgresql-13-13.7/doc/src/sgml/html/sql-execute.html --- postgresql-13-13.4/doc/src/sgml/html/sql-execute.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-execute.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -EXECUTE

    EXECUTE

    EXECUTE — execute a prepared statement

    Synopsis

    +EXECUTE

    EXECUTE

    EXECUTE — execute a prepared statement

    Synopsis

     EXECUTE name [ ( parameter [, ...] ) ]
     

    Description

    EXECUTE is used to execute a previously prepared @@ -35,4 +35,4 @@ but it is only for use in embedded SQL. This version of the EXECUTE statement also uses a somewhat different syntax. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-explain.html postgresql-13-13.7/doc/src/sgml/html/sql-explain.html --- postgresql-13-13.4/doc/src/sgml/html/sql-explain.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-explain.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -EXPLAIN

    EXPLAIN

    EXPLAIN — show the execution plan of a statement

    Synopsis

    +EXPLAIN

    EXPLAIN

    EXPLAIN — show the execution plan of a statement

    Synopsis

     EXPLAIN [ ( option [, ...] ) ] statement
     EXPLAIN [ ANALYZE ] [ VERBOSE ] statement
     
    @@ -299,4 +299,4 @@
        in the table has not changed.
       

    Compatibility

    There is no EXPLAIN statement defined in the SQL standard. -

    See Also

    ANALYZE
    \ No newline at end of file +

    See Also

    ANALYZE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-expressions.html postgresql-13-13.7/doc/src/sgml/html/sql-expressions.html --- postgresql-13-13.4/doc/src/sgml/html/sql-expressions.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-expressions.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -4.2. Value Expressions \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-fetch.html postgresql-13-13.7/doc/src/sgml/html/sql-fetch.html --- postgresql-13-13.4/doc/src/sgml/html/sql-fetch.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-fetch.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -FETCH

    FETCH

    FETCH — retrieve rows from a query using a cursor

    Synopsis

    +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:
    @@ -187,4 +187,4 @@
        The SQL standard allows only FROM preceding the cursor
        name; the option to use IN, or to leave them out altogether, is
        an extension.
    -  

    See Also

    CLOSE, DECLARE, MOVE
    \ No newline at end of file +

    See Also

    CLOSE, DECLARE, MOVE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-grant.html postgresql-13-13.7/doc/src/sgml/html/sql-grant.html --- postgresql-13-13.4/doc/src/sgml/html/sql-grant.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-grant.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -GRANT

    GRANT

    GRANT — define access privileges

    Synopsis

    +GRANT

    GRANT

    GRANT — define access privileges

    Synopsis

     GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
         [, ...] | ALL [ PRIVILEGES ] }
         ON { [ TABLE ] table_name [, ...]
    @@ -291,4 +291,4 @@
        

    Privileges on databases, tablespaces, schemas, and languages are PostgreSQL extensions. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql.html postgresql-13-13.7/doc/src/sgml/html/sql.html --- postgresql-13-13.4/doc/src/sgml/html/sql.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -Part II. The SQL Language

    Part II. 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 @@ -27,4 +27,4 @@ using the PostgreSQL interactive terminal psql, but other programs that have similar functionality can be used as well. -

    Table of Contents

    4. SQL Syntax
    4.1. Lexical Structure
    4.2. Value Expressions
    4.3. Calling Functions
    5. Data Definition
    5.1. Table Basics
    5.2. Default Values
    5.3. Generated Columns
    5.4. Constraints
    5.5. System Columns
    5.6. Modifying Tables
    5.7. Privileges
    5.8. Row Security Policies
    5.9. Schemas
    5.10. Inheritance
    5.11. Table Partitioning
    5.12. Foreign Data
    5.13. Other Database Objects
    5.14. Dependency Tracking
    6. Data Manipulation
    6.1. Inserting Data
    6.2. Updating Data
    6.3. Deleting Data
    6.4. Returning Data from Modified Rows
    7. Queries
    7.1. Overview
    7.2. Table Expressions
    7.3. Select Lists
    7.4. Combining Queries
    7.5. Sorting Rows
    7.6. LIMIT and OFFSET
    7.7. VALUES Lists
    7.8. WITH Queries (Common Table Expressions)
    8. Data Types
    8.1. Numeric Types
    8.2. Monetary Types
    8.3. Character Types
    8.4. Binary Data Types
    8.5. Date/Time Types
    8.6. Boolean Type
    8.7. Enumerated Types
    8.8. Geometric Types
    8.9. Network Address Types
    8.10. Bit String Types
    8.11. Text Search Types
    8.12. UUID Type
    8.13. XML Type
    8.14. JSON Types
    8.15. Arrays
    8.16. Composite Types
    8.17. Range Types
    8.18. Domain Types
    8.19. Object Identifier Types
    8.20. pg_lsn Type
    8.21. Pseudo-Types
    9. Functions and Operators
    9.1. Logical Operators
    9.2. Comparison Functions and Operators
    9.3. Mathematical Functions and Operators
    9.4. String Functions and Operators
    9.5. Binary String Functions and Operators
    9.6. Bit String Functions and Operators
    9.7. Pattern Matching
    9.8. Data Type Formatting Functions
    9.9. Date/Time Functions and Operators
    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. UUID Functions
    9.15. XML Functions
    9.16. JSON Functions and Operators
    9.17. Sequence Manipulation Functions
    9.18. Conditional Expressions
    9.19. Array Functions and Operators
    9.20. Range Functions and Operators
    9.21. Aggregate Functions
    9.22. Window Functions
    9.23. Subquery Expressions
    9.24. Row and Array Comparisons
    9.25. Set Returning Functions
    9.26. System Information Functions and Operators
    9.27. System Administration Functions
    9.28. Trigger Functions
    9.29. Event Trigger Functions
    9.30. Statistics Information Functions
    10. Type Conversion
    10.1. Overview
    10.2. Operators
    10.3. Functions
    10.4. Value Storage
    10.5. UNION, CASE, and Related Constructs
    10.6. SELECT Output Columns
    11. Indexes
    11.1. Introduction
    11.2. Index Types
    11.3. Multicolumn Indexes
    11.4. Indexes and ORDER BY
    11.5. Combining Multiple Indexes
    11.6. Unique Indexes
    11.7. Indexes on Expressions
    11.8. Partial Indexes
    11.9. Index-Only Scans and Covering Indexes
    11.10. Operator Classes and Operator Families
    11.11. Indexes and Collations
    11.12. Examining Index Usage
    12. Full Text Search
    12.1. Introduction
    12.2. Tables and Indexes
    12.3. Controlling Text Search
    12.4. Additional Features
    12.5. Parsers
    12.6. Dictionaries
    12.7. Configuration Example
    12.8. Testing and Debugging Text Search
    12.9. GIN and GiST Index Types
    12.10. psql Support
    12.11. Limitations
    13. Concurrency Control
    13.1. Introduction
    13.2. Transaction Isolation
    13.3. Explicit Locking
    13.4. Data Consistency Checks at the Application Level
    13.5. Caveats
    13.6. Locking and Indexes
    14. Performance Tips
    14.1. Using EXPLAIN
    14.2. Statistics Used by the Planner
    14.3. Controlling the Planner with Explicit JOIN Clauses
    14.4. Populating a Database
    14.5. Non-Durable Settings
    15. Parallel Query
    15.1. How Parallel Query Works
    15.2. When Can Parallel Query Be Used?
    15.3. Parallel Plans
    15.4. Parallel Safety
    \ No newline at end of file +

    Table of Contents

    4. SQL Syntax
    4.1. Lexical Structure
    4.2. Value Expressions
    4.3. Calling Functions
    5. Data Definition
    5.1. Table Basics
    5.2. Default Values
    5.3. Generated Columns
    5.4. Constraints
    5.5. System Columns
    5.6. Modifying Tables
    5.7. Privileges
    5.8. Row Security Policies
    5.9. Schemas
    5.10. Inheritance
    5.11. Table Partitioning
    5.12. Foreign Data
    5.13. Other Database Objects
    5.14. Dependency Tracking
    6. Data Manipulation
    6.1. Inserting Data
    6.2. Updating Data
    6.3. Deleting Data
    6.4. Returning Data from Modified Rows
    7. Queries
    7.1. Overview
    7.2. Table Expressions
    7.3. Select Lists
    7.4. Combining Queries
    7.5. Sorting Rows
    7.6. LIMIT and OFFSET
    7.7. VALUES Lists
    7.8. WITH Queries (Common Table Expressions)
    8. Data Types
    8.1. Numeric Types
    8.2. Monetary Types
    8.3. Character Types
    8.4. Binary Data Types
    8.5. Date/Time Types
    8.6. Boolean Type
    8.7. Enumerated Types
    8.8. Geometric Types
    8.9. Network Address Types
    8.10. Bit String Types
    8.11. Text Search Types
    8.12. UUID Type
    8.13. XML Type
    8.14. JSON Types
    8.15. Arrays
    8.16. Composite Types
    8.17. Range Types
    8.18. Domain Types
    8.19. Object Identifier Types
    8.20. pg_lsn Type
    8.21. Pseudo-Types
    9. Functions and Operators
    9.1. Logical Operators
    9.2. Comparison Functions and Operators
    9.3. Mathematical Functions and Operators
    9.4. String Functions and Operators
    9.5. Binary String Functions and Operators
    9.6. Bit String Functions and Operators
    9.7. Pattern Matching
    9.8. Data Type Formatting Functions
    9.9. Date/Time Functions and Operators
    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. UUID Functions
    9.15. XML Functions
    9.16. JSON Functions and Operators
    9.17. Sequence Manipulation Functions
    9.18. Conditional Expressions
    9.19. Array Functions and Operators
    9.20. Range Functions and Operators
    9.21. Aggregate Functions
    9.22. Window Functions
    9.23. Subquery Expressions
    9.24. Row and Array Comparisons
    9.25. Set Returning Functions
    9.26. System Information Functions and Operators
    9.27. System Administration Functions
    9.28. Trigger Functions
    9.29. Event Trigger Functions
    9.30. Statistics Information Functions
    10. Type Conversion
    10.1. Overview
    10.2. Operators
    10.3. Functions
    10.4. Value Storage
    10.5. UNION, CASE, and Related Constructs
    10.6. SELECT Output Columns
    11. Indexes
    11.1. Introduction
    11.2. Index Types
    11.3. Multicolumn Indexes
    11.4. Indexes and ORDER BY
    11.5. Combining Multiple Indexes
    11.6. Unique Indexes
    11.7. Indexes on Expressions
    11.8. Partial Indexes
    11.9. Index-Only Scans and Covering Indexes
    11.10. Operator Classes and Operator Families
    11.11. Indexes and Collations
    11.12. Examining Index Usage
    12. Full Text Search
    12.1. Introduction
    12.2. Tables and Indexes
    12.3. Controlling Text Search
    12.4. Additional Features
    12.5. Parsers
    12.6. Dictionaries
    12.7. Configuration Example
    12.8. Testing and Debugging Text Search
    12.9. Preferred Index Types for Text Search
    12.10. psql Support
    12.11. Limitations
    13. Concurrency Control
    13.1. Introduction
    13.2. Transaction Isolation
    13.3. Explicit Locking
    13.4. Data Consistency Checks at the Application Level
    13.5. Caveats
    13.6. Locking and Indexes
    14. Performance Tips
    14.1. Using EXPLAIN
    14.2. Statistics Used by the Planner
    14.3. Controlling the Planner with Explicit JOIN Clauses
    14.4. Populating a Database
    14.5. Non-Durable Settings
    15. Parallel Query
    15.1. How Parallel Query Works
    15.2. When Can Parallel Query Be Used?
    15.3. Parallel Plans
    15.4. Parallel Safety
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-importforeignschema.html postgresql-13-13.7/doc/src/sgml/html/sql-importforeignschema.html --- postgresql-13-13.4/doc/src/sgml/html/sql-importforeignschema.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-importforeignschema.html 2022-05-09 21:29:21.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

    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
    @@ -57,4 +57,4 @@
        The IMPORT FOREIGN SCHEMA command conforms to the
        SQL standard, except that the OPTIONS
        clause is a PostgreSQL extension.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-insert.html postgresql-13-13.7/doc/src/sgml/html/sql-insert.html --- postgresql-13-13.4/doc/src/sgml/html/sql-insert.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-insert.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -INSERT

    INSERT

    INSERT — create new rows in a table

    Synopsis

    +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 ]
    @@ -473,4 +473,4 @@
       

    Possible limitations of the query clause are documented under SELECT. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-keywords-appendix.html postgresql-13-13.7/doc/src/sgml/html/sql-keywords-appendix.html --- postgresql-13-13.4/doc/src/sgml/html/sql-keywords-appendix.html 2021-08-09 21:03:10.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-keywords-appendix.html 2022-05-09 21:29:29.000000000 +0000 @@ -1,8 +1,8 @@ -Appendix C. SQL Key Words

    Appendix C. SQL 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 - 13.4. Background information can be found in Section 4.1.1. + 13.7. 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.) @@ -52,4 +52,4 @@ reserved in PostgreSQL does not mean that the feature related to the word is not implemented. Conversely, the presence of a key word does not indicate the existence of a feature. -

    Table C.1. SQL Key Words

    Key WordPostgreSQLSQL:2016SQL:2011SQL-92
    A non-reservednon-reserved 
    ABORTnon-reserved   
    ABS reservedreserved 
    ABSENT non-reservednon-reserved 
    ABSOLUTEnon-reservednon-reservednon-reservedreserved
    ACCESSnon-reserved   
    ACCORDING non-reservednon-reserved 
    ACOS reserved  
    ACTIONnon-reservednon-reservednon-reservedreserved
    ADA non-reservednon-reservednon-reserved
    ADDnon-reservednon-reservednon-reservedreserved
    ADMINnon-reservednon-reservednon-reserved 
    AFTERnon-reservednon-reservednon-reserved 
    AGGREGATEnon-reserved   
    ALLreservedreservedreservedreserved
    ALLOCATE reservedreservedreserved
    ALSOnon-reserved   
    ALTERnon-reservedreservedreservedreserved
    ALWAYSnon-reservednon-reservednon-reserved 
    ANALYSEreserved   
    ANALYZEreserved   
    ANDreservedreservedreservedreserved
    ANYreservedreservedreservedreserved
    ARE reservedreservedreserved
    ARRAYreservedreservedreserved 
    ARRAY_AGG reservedreserved 
    ARRAY_​MAX_​CARDINALITY reservedreserved 
    ASreservedreservedreservedreserved
    ASCreservednon-reservednon-reservedreserved
    ASENSITIVE reservedreserved 
    ASIN reserved  
    ASSERTIONnon-reservednon-reservednon-reservedreserved
    ASSIGNMENTnon-reservednon-reservednon-reserved 
    ASYMMETRICreservedreservedreserved 
    ATnon-reservedreservedreservedreserved
    ATAN reserved  
    ATOMIC reservedreserved 
    ATTACHnon-reserved   
    ATTRIBUTEnon-reservednon-reservednon-reserved 
    ATTRIBUTES non-reservednon-reserved 
    AUTHORIZATIONreserved (can be function or type)reservedreservedreserved
    AVG reservedreservedreserved
    BACKWARDnon-reserved   
    BASE64 non-reservednon-reserved 
    BEFOREnon-reservednon-reservednon-reserved 
    BEGINnon-reservedreservedreservedreserved
    BEGIN_FRAME reservedreserved 
    BEGIN_PARTITION reservedreserved 
    BERNOULLI non-reservednon-reserved 
    BETWEENnon-reserved (cannot be function or type)reservedreservedreserved
    BIGINTnon-reserved (cannot be function or type)reservedreserved 
    BINARYreserved (can be function or type)reservedreserved 
    BITnon-reserved (cannot be function or type)  reserved
    BIT_LENGTH   reserved
    BLOB reservedreserved 
    BLOCKED non-reservednon-reserved 
    BOM non-reservednon-reserved 
    BOOLEANnon-reserved (cannot be function or type)reservedreserved 
    BOTHreservedreservedreservedreserved
    BREADTH non-reservednon-reserved 
    BYnon-reservedreservedreservedreserved
    C non-reservednon-reservednon-reserved
    CACHEnon-reserved   
    CALLnon-reservedreservedreserved 
    CALLEDnon-reservedreservedreserved 
    CARDINALITY reservedreserved 
    CASCADEnon-reservednon-reservednon-reservedreserved
    CASCADEDnon-reservedreservedreservedreserved
    CASEreservedreservedreservedreserved
    CASTreservedreservedreservedreserved
    CATALOGnon-reservednon-reservednon-reservedreserved
    CATALOG_NAME non-reservednon-reservednon-reserved
    CEIL reservedreserved 
    CEILING reservedreserved 
    CHAINnon-reservednon-reservednon-reserved 
    CHAINING non-reserved  
    CHARnon-reserved (cannot be function or type)reservedreservedreserved
    CHARACTERnon-reserved (cannot be function or type)reservedreservedreserved
    CHARACTERISTICSnon-reservednon-reservednon-reserved 
    CHARACTERS non-reservednon-reserved 
    CHARACTER_LENGTH reservedreservedreserved
    CHARACTER_​SET_​CATALOG non-reservednon-reservednon-reserved
    CHARACTER_SET_NAME non-reservednon-reservednon-reserved
    CHARACTER_SET_SCHEMA non-reservednon-reservednon-reserved
    CHAR_LENGTH reservedreservedreserved
    CHECKreservedreservedreservedreserved
    CHECKPOINTnon-reserved   
    CLASSnon-reserved   
    CLASSIFIER reserved  
    CLASS_ORIGIN non-reservednon-reservednon-reserved
    CLOB reservedreserved 
    CLOSEnon-reservedreservedreservedreserved
    CLUSTERnon-reserved   
    COALESCEnon-reserved (cannot be function or type)reservedreservedreserved
    COBOL non-reservednon-reservednon-reserved
    COLLATEreservedreservedreservedreserved
    COLLATIONreserved (can be function or type)non-reservednon-reservedreserved
    COLLATION_CATALOG non-reservednon-reservednon-reserved
    COLLATION_NAME non-reservednon-reservednon-reserved
    COLLATION_SCHEMA non-reservednon-reservednon-reserved
    COLLECT reservedreserved 
    COLUMNreservedreservedreservedreserved
    COLUMNSnon-reservednon-reservednon-reserved 
    COLUMN_NAME non-reservednon-reservednon-reserved
    COMMAND_FUNCTION non-reservednon-reservednon-reserved
    COMMAND_​FUNCTION_​CODE non-reservednon-reserved 
    COMMENTnon-reserved   
    COMMENTSnon-reserved   
    COMMITnon-reservedreservedreservedreserved
    COMMITTEDnon-reservednon-reservednon-reservednon-reserved
    CONCURRENTLYreserved (can be function or type)   
    CONDITION reservedreserved 
    CONDITIONAL non-reserved  
    CONDITION_NUMBER non-reservednon-reservednon-reserved
    CONFIGURATIONnon-reserved   
    CONFLICTnon-reserved   
    CONNECT reservedreservedreserved
    CONNECTIONnon-reservednon-reservednon-reservedreserved
    CONNECTION_NAME non-reservednon-reservednon-reserved
    CONSTRAINTreservedreservedreservedreserved
    CONSTRAINTSnon-reservednon-reservednon-reservedreserved
    CONSTRAINT_CATALOG non-reservednon-reservednon-reserved
    CONSTRAINT_NAME non-reservednon-reservednon-reserved
    CONSTRAINT_SCHEMA non-reservednon-reservednon-reserved
    CONSTRUCTOR non-reservednon-reserved 
    CONTAINS reservedreserved 
    CONTENTnon-reservednon-reservednon-reserved 
    CONTINUEnon-reservednon-reservednon-reservedreserved
    CONTROL non-reservednon-reserved 
    CONVERSIONnon-reserved   
    CONVERT reservedreservedreserved
    COPYnon-reservedreserved  
    CORR reservedreserved 
    CORRESPONDING reservedreservedreserved
    COS reserved  
    COSH reserved  
    COSTnon-reserved   
    COUNT reservedreservedreserved
    COVAR_POP reservedreserved 
    COVAR_SAMP reservedreserved 
    CREATEreservedreservedreservedreserved
    CROSSreserved (can be function or type)reservedreservedreserved
    CSVnon-reserved   
    CUBEnon-reservedreservedreserved 
    CUME_DIST reservedreserved 
    CURRENTnon-reservedreservedreservedreserved
    CURRENT_CATALOGreservedreservedreserved 
    CURRENT_DATEreservedreservedreservedreserved
    CURRENT_​DEFAULT_​TRANSFORM_​GROUP reservedreserved 
    CURRENT_PATH reservedreserved 
    CURRENT_ROLEreservedreservedreserved 
    CURRENT_ROW reservedreserved 
    CURRENT_SCHEMAreserved (can be function or type)reservedreserved 
    CURRENT_TIMEreservedreservedreservedreserved
    CURRENT_TIMESTAMPreservedreservedreservedreserved
    CURRENT_​TRANSFORM_​GROUP_​FOR_​TYPE reservedreserved 
    CURRENT_USERreservedreservedreservedreserved
    CURSORnon-reservedreservedreservedreserved
    CURSOR_NAME non-reservednon-reservednon-reserved
    CYCLEnon-reservedreservedreserved 
    DATAnon-reservednon-reservednon-reservednon-reserved
    DATABASEnon-reserved   
    DATALINK reservedreserved 
    DATE reservedreservedreserved
    DATETIME_​INTERVAL_​CODE non-reservednon-reservednon-reserved
    DATETIME_​INTERVAL_​PRECISION non-reservednon-reservednon-reserved
    DAYnon-reservedreservedreservedreserved
    DB non-reservednon-reserved 
    DEALLOCATEnon-reservedreservedreservedreserved
    DECnon-reserved (cannot be function or type)reservedreservedreserved
    DECFLOAT reserved  
    DECIMALnon-reserved (cannot be function or type)reservedreservedreserved
    DECLAREnon-reservedreservedreservedreserved
    DEFAULTreservedreservedreservedreserved
    DEFAULTSnon-reservednon-reservednon-reserved 
    DEFERRABLEreservednon-reservednon-reservedreserved
    DEFERREDnon-reservednon-reservednon-reservedreserved
    DEFINE reserved  
    DEFINED non-reservednon-reserved 
    DEFINERnon-reservednon-reservednon-reserved 
    DEGREE non-reservednon-reserved 
    DELETEnon-reservedreservedreservedreserved
    DELIMITERnon-reserved   
    DELIMITERSnon-reserved   
    DENSE_RANK reservedreserved 
    DEPENDSnon-reserved   
    DEPTH non-reservednon-reserved 
    DEREF reservedreserved 
    DERIVED non-reservednon-reserved 
    DESCreservednon-reservednon-reservedreserved
    DESCRIBE reservedreservedreserved
    DESCRIPTOR non-reservednon-reservedreserved
    DETACHnon-reserved   
    DETERMINISTIC reservedreserved 
    DIAGNOSTICS non-reservednon-reservedreserved
    DICTIONARYnon-reserved   
    DISABLEnon-reserved   
    DISCARDnon-reserved   
    DISCONNECT reservedreservedreserved
    DISPATCH non-reservednon-reserved 
    DISTINCTreservedreservedreservedreserved
    DLNEWCOPY reservedreserved 
    DLPREVIOUSCOPY reservedreserved 
    DLURLCOMPLETE reservedreserved 
    DLURLCOMPLETEONLY reservedreserved 
    DLURLCOMPLETEWRITE reservedreserved 
    DLURLPATH reservedreserved 
    DLURLPATHONLY reservedreserved 
    DLURLPATHWRITE reservedreserved 
    DLURLSCHEME reservedreserved 
    DLURLSERVER reservedreserved 
    DLVALUE reservedreserved 
    DOreserved   
    DOCUMENTnon-reservednon-reservednon-reserved 
    DOMAINnon-reservednon-reservednon-reservedreserved
    DOUBLEnon-reservedreservedreservedreserved
    DROPnon-reservedreservedreservedreserved
    DYNAMIC reservedreserved 
    DYNAMIC_FUNCTION non-reservednon-reservednon-reserved
    DYNAMIC_​FUNCTION_​CODE non-reservednon-reserved 
    EACHnon-reservedreservedreserved 
    ELEMENT reservedreserved 
    ELSEreservedreservedreservedreserved
    EMPTY reservednon-reserved 
    ENABLEnon-reserved   
    ENCODINGnon-reservednon-reservednon-reserved 
    ENCRYPTEDnon-reserved   
    ENDreservedreservedreservedreserved
    END-EXEC reservedreservedreserved
    END_FRAME reservedreserved 
    END_PARTITION reservedreserved 
    ENFORCED non-reservednon-reserved 
    ENUMnon-reserved   
    EQUALS reservedreserved 
    ERROR non-reserved  
    ESCAPEnon-reservedreservedreservedreserved
    EVENTnon-reserved   
    EVERY reservedreserved 
    EXCEPTreservedreservedreservedreserved
    EXCEPTION   reserved
    EXCLUDEnon-reservednon-reservednon-reserved 
    EXCLUDINGnon-reservednon-reservednon-reserved 
    EXCLUSIVEnon-reserved   
    EXEC reservedreservedreserved
    EXECUTEnon-reservedreservedreservedreserved
    EXISTSnon-reserved (cannot be function or type)reservedreservedreserved
    EXP reservedreserved 
    EXPLAINnon-reserved   
    EXPRESSIONnon-reservednon-reservednon-reserved 
    EXTENSIONnon-reserved   
    EXTERNALnon-reservedreservedreservedreserved
    EXTRACTnon-reserved (cannot be function or type)reservedreservedreserved
    FALSEreservedreservedreservedreserved
    FAMILYnon-reserved   
    FETCHreservedreservedreservedreserved
    FILE non-reservednon-reserved 
    FILTERnon-reservedreservedreserved 
    FINAL non-reservednon-reserved 
    FINISH non-reserved  
    FIRSTnon-reservednon-reservednon-reservedreserved
    FIRST_VALUE reservedreserved 
    FLAG non-reservednon-reserved 
    FLOATnon-reserved (cannot be function or type)reservedreservedreserved
    FLOOR reservedreserved 
    FOLLOWINGnon-reservednon-reservednon-reserved 
    FORreservedreservedreservedreserved
    FORCEnon-reserved   
    FOREIGNreservedreservedreservedreserved
    FORMAT non-reserved  
    FORTRAN non-reservednon-reservednon-reserved
    FORWARDnon-reserved   
    FOUND non-reservednon-reservedreserved
    FRAME_ROW reservedreserved 
    FREE reservedreserved 
    FREEZEreserved (can be function or type)   
    FROMreservedreservedreservedreserved
    FS non-reservednon-reserved 
    FULFILL non-reserved  
    FULLreserved (can be function or type)reservedreservedreserved
    FUNCTIONnon-reservedreservedreserved 
    FUNCTIONSnon-reserved   
    FUSION reservedreserved 
    G non-reservednon-reserved 
    GENERAL non-reservednon-reserved 
    GENERATEDnon-reservednon-reservednon-reserved 
    GET reservedreservedreserved
    GLOBALnon-reservedreservedreservedreserved
    GO non-reservednon-reservedreserved
    GOTO non-reservednon-reservedreserved
    GRANTreservedreservedreservedreserved
    GRANTEDnon-reservednon-reservednon-reserved 
    GREATESTnon-reserved (cannot be function or type)   
    GROUPreservedreservedreservedreserved
    GROUPINGnon-reserved (cannot be function or type)reservedreserved 
    GROUPSnon-reservedreservedreserved 
    HANDLERnon-reserved   
    HAVINGreservedreservedreservedreserved
    HEADERnon-reserved   
    HEX non-reservednon-reserved 
    HIERARCHY non-reservednon-reserved 
    HOLDnon-reservedreservedreserved 
    HOURnon-reservedreservedreservedreserved
    ID non-reservednon-reserved 
    IDENTITYnon-reservedreservedreservedreserved
    IFnon-reserved   
    IGNORE non-reservednon-reserved 
    ILIKEreserved (can be function or type)   
    IMMEDIATEnon-reservednon-reservednon-reservedreserved
    IMMEDIATELY non-reservednon-reserved 
    IMMUTABLEnon-reserved   
    IMPLEMENTATION non-reservednon-reserved 
    IMPLICITnon-reserved   
    IMPORTnon-reservedreservedreserved 
    INreservedreservedreservedreserved
    INCLUDEnon-reserved   
    INCLUDINGnon-reservednon-reservednon-reserved 
    INCREMENTnon-reservednon-reservednon-reserved 
    INDENT non-reservednon-reserved 
    INDEXnon-reserved   
    INDEXESnon-reserved   
    INDICATOR reservedreservedreserved
    INHERITnon-reserved   
    INHERITSnon-reserved   
    INITIAL reserved  
    INITIALLYreservednon-reservednon-reservedreserved
    INLINEnon-reserved   
    INNERreserved (can be function or type)reservedreservedreserved
    INOUTnon-reserved (cannot be function or type)reservedreserved 
    INPUTnon-reservednon-reservednon-reservedreserved
    INSENSITIVEnon-reservedreservedreservedreserved
    INSERTnon-reservedreservedreservedreserved
    INSTANCE non-reservednon-reserved 
    INSTANTIABLE non-reservednon-reserved 
    INSTEADnon-reservednon-reservednon-reserved 
    INTnon-reserved (cannot be function or type)reservedreservedreserved
    INTEGERnon-reserved (cannot be function or type)reservedreservedreserved
    INTEGRITY non-reservednon-reserved 
    INTERSECTreservedreservedreservedreserved
    INTERSECTION reservedreserved 
    INTERVALnon-reserved (cannot be function or type)reservedreservedreserved
    INTOreservedreservedreservedreserved
    INVOKERnon-reservednon-reservednon-reserved 
    ISreserved (can be function or type)reservedreservedreserved
    ISNULLreserved (can be function or type)   
    ISOLATIONnon-reservednon-reservednon-reservedreserved
    JOINreserved (can be function or type)reservedreservedreserved
    JSON non-reserved  
    JSON_ARRAY reserved  
    JSON_ARRAYAGG reserved  
    JSON_EXISTS reserved  
    JSON_OBJECT reserved  
    JSON_OBJECTAGG reserved  
    JSON_QUERY reserved  
    JSON_TABLE reserved  
    JSON_TABLE_PRIMITIVE reserved  
    JSON_VALUE reserved  
    K non-reservednon-reserved 
    KEEP non-reserved  
    KEYnon-reservednon-reservednon-reservedreserved
    KEYS non-reserved  
    KEY_MEMBER non-reservednon-reserved 
    KEY_TYPE non-reservednon-reserved 
    LABELnon-reserved   
    LAG reservedreserved 
    LANGUAGEnon-reservedreservedreservedreserved
    LARGEnon-reservedreservedreserved 
    LASTnon-reservednon-reservednon-reservedreserved
    LAST_VALUE reservedreserved 
    LATERALreservedreservedreserved 
    LEAD reservedreserved 
    LEADINGreservedreservedreservedreserved
    LEAKPROOFnon-reserved   
    LEASTnon-reserved (cannot be function or type)   
    LEFTreserved (can be function or type)reservedreservedreserved
    LENGTH non-reservednon-reservednon-reserved
    LEVELnon-reservednon-reservednon-reservedreserved
    LIBRARY non-reservednon-reserved 
    LIKEreserved (can be function or type)reservedreservedreserved
    LIKE_REGEX reservedreserved 
    LIMITreservednon-reservednon-reserved 
    LINK non-reservednon-reserved 
    LISTAGG reserved  
    LISTENnon-reserved   
    LN reservedreserved 
    LOADnon-reserved   
    LOCALnon-reservedreservedreservedreserved
    LOCALTIMEreservedreservedreserved 
    LOCALTIMESTAMPreservedreservedreserved 
    LOCATIONnon-reservednon-reservednon-reserved 
    LOCATOR non-reservednon-reserved 
    LOCKnon-reserved   
    LOCKEDnon-reserved   
    LOG reserved  
    LOG10 reserved  
    LOGGEDnon-reserved   
    LOWER reservedreservedreserved
    M non-reservednon-reserved 
    MAP non-reservednon-reserved 
    MAPPINGnon-reservednon-reservednon-reserved 
    MATCHnon-reservedreservedreservedreserved
    MATCHED non-reservednon-reserved 
    MATCHES reserved  
    MATCH_NUMBER reserved  
    MATCH_RECOGNIZE reserved  
    MATERIALIZEDnon-reserved   
    MAX reservedreservedreserved
    MAXVALUEnon-reservednon-reservednon-reserved 
    MEASURES reserved  
    MEMBER reservedreserved 
    MERGE reservedreserved 
    MESSAGE_LENGTH non-reservednon-reservednon-reserved
    MESSAGE_OCTET_LENGTH non-reservednon-reservednon-reserved
    MESSAGE_TEXT non-reservednon-reservednon-reserved
    METHODnon-reservedreservedreserved 
    MIN reservedreservedreserved
    MINUTEnon-reservedreservedreservedreserved
    MINVALUEnon-reservednon-reservednon-reserved 
    MOD reservedreserved 
    MODEnon-reserved   
    MODIFIES reservedreserved 
    MODULE reservedreservedreserved
    MONTHnon-reservedreservedreservedreserved
    MORE non-reservednon-reservednon-reserved
    MOVEnon-reserved   
    MULTISET reservedreserved 
    MUMPS non-reservednon-reservednon-reserved
    NAMEnon-reservednon-reservednon-reservednon-reserved
    NAMESnon-reservednon-reservednon-reservedreserved
    NAMESPACE non-reservednon-reserved 
    NATIONALnon-reserved (cannot be function or type)reservedreservedreserved
    NATURALreserved (can be function or type)reservedreservedreserved
    NCHARnon-reserved (cannot be function or type)reservedreservedreserved
    NCLOB reservedreserved 
    NESTED non-reserved  
    NESTING non-reservednon-reserved 
    NEWnon-reservedreservedreserved 
    NEXTnon-reservednon-reservednon-reservedreserved
    NFCnon-reservednon-reservednon-reserved 
    NFDnon-reservednon-reservednon-reserved 
    NFKCnon-reservednon-reservednon-reserved 
    NFKDnon-reservednon-reservednon-reserved 
    NIL non-reservednon-reserved 
    NOnon-reservedreservedreservedreserved
    NONEnon-reserved (cannot be function or type)reservedreserved 
    NORMALIZEnon-reserved (cannot be function or type)reservedreserved 
    NORMALIZEDnon-reservednon-reservednon-reserved 
    NOTreservedreservedreservedreserved
    NOTHINGnon-reserved   
    NOTIFYnon-reserved   
    NOTNULLreserved (can be function or type)   
    NOWAITnon-reserved   
    NTH_VALUE reservedreserved 
    NTILE reservedreserved 
    NULLreservedreservedreservedreserved
    NULLABLE non-reservednon-reservednon-reserved
    NULLIFnon-reserved (cannot be function or type)reservedreservedreserved
    NULLSnon-reservednon-reservednon-reserved 
    NUMBER non-reservednon-reservednon-reserved
    NUMERICnon-reserved (cannot be function or type)reservedreservedreserved
    OBJECTnon-reservednon-reservednon-reserved 
    OCCURRENCES_REGEX reservedreserved 
    OCTETS non-reservednon-reserved 
    OCTET_LENGTH reservedreservedreserved
    OFnon-reservedreservedreservedreserved
    OFFnon-reservednon-reservednon-reserved 
    OFFSETreservedreservedreserved 
    OIDSnon-reserved   
    OLDnon-reservedreservedreserved 
    OMIT reserved  
    ONreservedreservedreservedreserved
    ONE reserved  
    ONLYreservedreservedreservedreserved
    OPEN reservedreservedreserved
    OPERATORnon-reserved   
    OPTIONnon-reservednon-reservednon-reservedreserved
    OPTIONSnon-reservednon-reservednon-reserved 
    ORreservedreservedreservedreserved
    ORDERreservedreservedreservedreserved
    ORDERING non-reservednon-reserved 
    ORDINALITYnon-reservednon-reservednon-reserved 
    OTHERSnon-reservednon-reservednon-reserved 
    OUTnon-reserved (cannot be function or type)reservedreserved 
    OUTERreserved (can be function or type)reservedreservedreserved
    OUTPUT non-reservednon-reservedreserved
    OVERnon-reservedreservedreserved 
    OVERFLOW non-reserved  
    OVERLAPSreserved (can be function or type)reservedreservedreserved
    OVERLAYnon-reserved (cannot be function or type)reservedreserved 
    OVERRIDINGnon-reservednon-reservednon-reserved 
    OWNEDnon-reserved   
    OWNERnon-reserved   
    P non-reservednon-reserved 
    PAD non-reservednon-reservedreserved
    PARALLELnon-reserved   
    PARAMETER reservedreserved 
    PARAMETER_MODE non-reservednon-reserved 
    PARAMETER_NAME non-reservednon-reserved 
    PARAMETER_​ORDINAL_​POSITION non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​CATALOG non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​NAME non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​SCHEMA non-reservednon-reserved 
    PARSERnon-reserved   
    PARTIALnon-reservednon-reservednon-reservedreserved
    PARTITIONnon-reservedreservedreserved 
    PASCAL non-reservednon-reservednon-reserved
    PASS non-reserved  
    PASSINGnon-reservednon-reservednon-reserved 
    PASSTHROUGH non-reservednon-reserved 
    PASSWORDnon-reserved   
    PAST non-reserved  
    PATH non-reservednon-reserved 
    PATTERN reserved  
    PER reserved  
    PERCENT reservedreserved 
    PERCENTILE_CONT reservedreserved 
    PERCENTILE_DISC reservedreserved 
    PERCENT_RANK reservedreserved 
    PERIOD reservedreserved 
    PERMISSION non-reservednon-reserved 
    PERMUTE reserved  
    PLACINGreservednon-reservednon-reserved 
    PLAN non-reserved  
    PLANSnon-reserved   
    PLI non-reservednon-reservednon-reserved
    POLICYnon-reserved   
    PORTION reservedreserved 
    POSITIONnon-reserved (cannot be function or type)reservedreservedreserved
    POSITION_REGEX reservedreserved 
    POWER reservedreserved 
    PRECEDES reservedreserved 
    PRECEDINGnon-reservednon-reservednon-reserved 
    PRECISIONnon-reserved (cannot be function or type)reservedreservedreserved
    PREPAREnon-reservedreservedreservedreserved
    PREPAREDnon-reserved   
    PRESERVEnon-reservednon-reservednon-reservedreserved
    PRIMARYreservedreservedreservedreserved
    PRIORnon-reservednon-reservednon-reservedreserved
    PRIVATE non-reserved  
    PRIVILEGESnon-reservednon-reservednon-reservedreserved
    PROCEDURALnon-reserved   
    PROCEDUREnon-reservedreservedreservedreserved
    PROCEDURESnon-reserved   
    PROGRAMnon-reserved   
    PRUNE non-reserved  
    PTF reserved  
    PUBLIC non-reservednon-reservedreserved
    PUBLICATIONnon-reserved   
    QUOTEnon-reserved   
    QUOTES non-reserved  
    RANGEnon-reservedreservedreserved 
    RANK reservedreserved 
    READnon-reservednon-reservednon-reservedreserved
    READS reservedreserved 
    REALnon-reserved (cannot be function or type)reservedreservedreserved
    REASSIGNnon-reserved   
    RECHECKnon-reserved   
    RECOVERY non-reservednon-reserved 
    RECURSIVEnon-reservedreservedreserved 
    REFnon-reservedreservedreserved 
    REFERENCESreservedreservedreservedreserved
    REFERENCINGnon-reservedreservedreserved 
    REFRESHnon-reserved   
    REGR_AVGX reservedreserved 
    REGR_AVGY reservedreserved 
    REGR_COUNT reservedreserved 
    REGR_INTERCEPT reservedreserved 
    REGR_R2 reservedreserved 
    REGR_SLOPE reservedreserved 
    REGR_SXX reservedreserved 
    REGR_SXY reservedreserved 
    REGR_SYY reservedreserved 
    REINDEXnon-reserved   
    RELATIVEnon-reservednon-reservednon-reservedreserved
    RELEASEnon-reservedreservedreserved 
    RENAMEnon-reserved   
    REPEATABLEnon-reservednon-reservednon-reservednon-reserved
    REPLACEnon-reserved   
    REPLICAnon-reserved   
    REQUIRING non-reservednon-reserved 
    RESETnon-reserved   
    RESPECT non-reservednon-reserved 
    RESTARTnon-reservednon-reservednon-reserved 
    RESTORE non-reservednon-reserved 
    RESTRICTnon-reservednon-reservednon-reservedreserved
    RESULT reservedreserved 
    RETURN reservedreserved 
    RETURNED_CARDINALITY non-reservednon-reserved 
    RETURNED_LENGTH non-reservednon-reservednon-reserved
    RETURNED_​OCTET_​LENGTH non-reservednon-reservednon-reserved
    RETURNED_SQLSTATE non-reservednon-reservednon-reserved
    RETURNINGreservednon-reservednon-reserved 
    RETURNSnon-reservedreservedreserved 
    REVOKEnon-reservedreservedreservedreserved
    RIGHTreserved (can be function or type)reservedreservedreserved
    ROLEnon-reservednon-reservednon-reserved 
    ROLLBACKnon-reservedreservedreservedreserved
    ROLLUPnon-reservedreservedreserved 
    ROUTINEnon-reservednon-reservednon-reserved 
    ROUTINESnon-reserved   
    ROUTINE_CATALOG non-reservednon-reserved 
    ROUTINE_NAME non-reservednon-reserved 
    ROUTINE_SCHEMA non-reservednon-reserved 
    ROWnon-reserved (cannot be function or type)reservedreserved 
    ROWSnon-reservedreservedreservedreserved
    ROW_COUNT non-reservednon-reservednon-reserved
    ROW_NUMBER reservedreserved 
    RULEnon-reserved   
    RUNNING reserved  
    SAVEPOINTnon-reservedreservedreserved 
    SCALAR non-reserved  
    SCALE non-reservednon-reservednon-reserved
    SCHEMAnon-reservednon-reservednon-reservedreserved
    SCHEMASnon-reserved   
    SCHEMA_NAME non-reservednon-reservednon-reserved
    SCOPE reservedreserved 
    SCOPE_CATALOG non-reservednon-reserved 
    SCOPE_NAME non-reservednon-reserved 
    SCOPE_SCHEMA non-reservednon-reserved 
    SCROLLnon-reservedreservedreservedreserved
    SEARCHnon-reservedreservedreserved 
    SECONDnon-reservedreservedreservedreserved
    SECTION non-reservednon-reservedreserved
    SECURITYnon-reservednon-reservednon-reserved 
    SEEK reserved  
    SELECTreservedreservedreservedreserved
    SELECTIVE non-reservednon-reserved 
    SELF non-reservednon-reserved 
    SENSITIVE reservedreserved 
    SEQUENCEnon-reservednon-reservednon-reserved 
    SEQUENCESnon-reserved   
    SERIALIZABLEnon-reservednon-reservednon-reservednon-reserved
    SERVERnon-reservednon-reservednon-reserved 
    SERVER_NAME non-reservednon-reservednon-reserved
    SESSIONnon-reservednon-reservednon-reservedreserved
    SESSION_USERreservedreservedreservedreserved
    SETnon-reservedreservedreservedreserved
    SETOFnon-reserved (cannot be function or type)   
    SETSnon-reservednon-reservednon-reserved 
    SHAREnon-reserved   
    SHOWnon-reservedreserved  
    SIMILARreserved (can be function or type)reservedreserved 
    SIMPLEnon-reservednon-reservednon-reserved 
    SIN reserved  
    SINH reserved  
    SIZE non-reservednon-reservedreserved
    SKIPnon-reservedreserved  
    SMALLINTnon-reserved (cannot be function or type)reservedreservedreserved
    SNAPSHOTnon-reserved   
    SOMEreservedreservedreservedreserved
    SOURCE non-reservednon-reserved 
    SPACE non-reservednon-reservedreserved
    SPECIFIC reservedreserved 
    SPECIFICTYPE reservedreserved 
    SPECIFIC_NAME non-reservednon-reserved 
    SQLnon-reservedreservedreservedreserved
    SQLCODE   reserved
    SQLERROR   reserved
    SQLEXCEPTION reservedreserved 
    SQLSTATE reservedreservedreserved
    SQLWARNING reservedreserved 
    SQRT reservedreserved 
    STABLEnon-reserved   
    STANDALONEnon-reservednon-reservednon-reserved 
    STARTnon-reservedreservedreserved 
    STATE non-reservednon-reserved 
    STATEMENTnon-reservednon-reservednon-reserved 
    STATIC reservedreserved 
    STATISTICSnon-reserved   
    STDDEV_POP reservedreserved 
    STDDEV_SAMP reservedreserved 
    STDINnon-reserved   
    STDOUTnon-reserved   
    STORAGEnon-reserved   
    STOREDnon-reserved   
    STRICTnon-reserved   
    STRING non-reserved  
    STRIPnon-reservednon-reservednon-reserved 
    STRUCTURE non-reservednon-reserved 
    STYLE non-reservednon-reserved 
    SUBCLASS_ORIGIN non-reservednon-reservednon-reserved
    SUBMULTISET reservedreserved 
    SUBSCRIPTIONnon-reserved   
    SUBSET reserved  
    SUBSTRINGnon-reserved (cannot be function or type)reservedreservedreserved
    SUBSTRING_REGEX reservedreserved 
    SUCCEEDS reservedreserved 
    SUM reservedreservedreserved
    SUPPORTnon-reserved   
    SYMMETRICreservedreservedreserved 
    SYSIDnon-reserved   
    SYSTEMnon-reservedreservedreserved 
    SYSTEM_TIME reservedreserved 
    SYSTEM_USER reservedreservedreserved
    T non-reservednon-reserved 
    TABLEreservedreservedreservedreserved
    TABLESnon-reserved   
    TABLESAMPLEreserved (can be function or type)reservedreserved 
    TABLESPACEnon-reserved   
    TABLE_NAME non-reservednon-reservednon-reserved
    TAN reserved  
    TANH reserved  
    TEMPnon-reserved   
    TEMPLATEnon-reserved   
    TEMPORARYnon-reservednon-reservednon-reservedreserved
    TEXTnon-reserved   
    THENreservedreservedreservedreserved
    THROUGH non-reserved  
    TIESnon-reservednon-reservednon-reserved 
    TIMEnon-reserved (cannot be function or type)reservedreservedreserved
    TIMESTAMPnon-reserved (cannot be function or type)reservedreservedreserved
    TIMEZONE_HOUR reservedreservedreserved
    TIMEZONE_MINUTE reservedreservedreserved
    TOreservedreservedreservedreserved
    TOKEN non-reservednon-reserved 
    TOP_LEVEL_COUNT non-reservednon-reserved 
    TRAILINGreservedreservedreservedreserved
    TRANSACTIONnon-reservednon-reservednon-reservedreserved
    TRANSACTIONS_​COMMITTED non-reservednon-reserved 
    TRANSACTIONS_​ROLLED_​BACK non-reservednon-reserved 
    TRANSACTION_ACTIVE non-reservednon-reserved 
    TRANSFORMnon-reservednon-reservednon-reserved 
    TRANSFORMS non-reservednon-reserved 
    TRANSLATE reservedreservedreserved
    TRANSLATE_REGEX reservedreserved 
    TRANSLATION reservedreservedreserved
    TREATnon-reserved (cannot be function or type)reservedreserved 
    TRIGGERnon-reservedreservedreserved 
    TRIGGER_CATALOG non-reservednon-reserved 
    TRIGGER_NAME non-reservednon-reserved 
    TRIGGER_SCHEMA non-reservednon-reserved 
    TRIMnon-reserved (cannot be function or type)reservedreservedreserved
    TRIM_ARRAY reservedreserved 
    TRUEreservedreservedreservedreserved
    TRUNCATEnon-reservedreservedreserved 
    TRUSTEDnon-reserved   
    TYPEnon-reservednon-reservednon-reservednon-reserved
    TYPESnon-reserved   
    UESCAPEnon-reservedreservedreserved 
    UNBOUNDEDnon-reservednon-reservednon-reserved 
    UNCOMMITTEDnon-reservednon-reservednon-reservednon-reserved
    UNCONDITIONAL non-reserved  
    UNDER non-reservednon-reserved 
    UNENCRYPTEDnon-reserved   
    UNIONreservedreservedreservedreserved
    UNIQUEreservedreservedreservedreserved
    UNKNOWNnon-reservedreservedreservedreserved
    UNLINK non-reservednon-reserved 
    UNLISTENnon-reserved   
    UNLOGGEDnon-reserved   
    UNMATCHED reserved  
    UNNAMED non-reservednon-reservednon-reserved
    UNNEST reservedreserved 
    UNTILnon-reserved   
    UNTYPED non-reservednon-reserved 
    UPDATEnon-reservedreservedreservedreserved
    UPPER reservedreservedreserved
    URI non-reservednon-reserved 
    USAGE non-reservednon-reservedreserved
    USERreservedreservedreservedreserved
    USER_​DEFINED_​TYPE_​CATALOG non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​CODE non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​NAME non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​SCHEMA non-reservednon-reserved 
    USINGreservedreservedreservedreserved
    UTF16 non-reserved  
    UTF32 non-reserved  
    UTF8 non-reserved  
    VACUUMnon-reserved   
    VALIDnon-reservednon-reservednon-reserved 
    VALIDATEnon-reserved   
    VALIDATORnon-reserved   
    VALUEnon-reservedreservedreservedreserved
    VALUESnon-reserved (cannot be function or type)reservedreservedreserved
    VALUE_OF reservedreserved 
    VARBINARY reservedreserved 
    VARCHARnon-reserved (cannot be function or type)reservedreservedreserved
    VARIADICreserved   
    VARYINGnon-reservedreservedreservedreserved
    VAR_POP reservedreserved 
    VAR_SAMP reservedreserved 
    VERBOSEreserved (can be function or type)   
    VERSIONnon-reservednon-reservednon-reserved 
    VERSIONING reservedreserved 
    VIEWnon-reservednon-reservednon-reservedreserved
    VIEWSnon-reserved   
    VOLATILEnon-reserved   
    WHENreservedreservedreservedreserved
    WHENEVER reservedreservedreserved
    WHEREreservedreservedreservedreserved
    WHITESPACEnon-reservednon-reservednon-reserved 
    WIDTH_BUCKET reservedreserved 
    WINDOWreservedreservedreserved 
    WITHreservedreservedreservedreserved
    WITHINnon-reservedreservedreserved 
    WITHOUTnon-reservedreservedreserved 
    WORKnon-reservednon-reservednon-reservedreserved
    WRAPPERnon-reservednon-reservednon-reserved 
    WRITEnon-reservednon-reservednon-reservedreserved
    XMLnon-reservedreservedreserved 
    XMLAGG reservedreserved 
    XMLATTRIBUTESnon-reserved (cannot be function or type)reservedreserved 
    XMLBINARY reservedreserved 
    XMLCAST reservedreserved 
    XMLCOMMENT reservedreserved 
    XMLCONCATnon-reserved (cannot be function or type)reservedreserved 
    XMLDECLARATION non-reservednon-reserved 
    XMLDOCUMENT reservedreserved 
    XMLELEMENTnon-reserved (cannot be function or type)reservedreserved 
    XMLEXISTSnon-reserved (cannot be function or type)reservedreserved 
    XMLFORESTnon-reserved (cannot be function or type)reservedreserved 
    XMLITERATE reservedreserved 
    XMLNAMESPACESnon-reserved (cannot be function or type)reservedreserved 
    XMLPARSEnon-reserved (cannot be function or type)reservedreserved 
    XMLPInon-reserved (cannot be function or type)reservedreserved 
    XMLQUERY reservedreserved 
    XMLROOTnon-reserved (cannot be function or type)   
    XMLSCHEMA non-reservednon-reserved 
    XMLSERIALIZEnon-reserved (cannot be function or type)reservedreserved 
    XMLTABLEnon-reserved (cannot be function or type)reservedreserved 
    XMLTEXT reservedreserved 
    XMLVALIDATE reservedreserved 
    YEARnon-reservedreservedreservedreserved
    YESnon-reservednon-reservednon-reserved 
    ZONEnon-reservednon-reservednon-reservedreserved

    \ No newline at end of file +

    Table C.1. SQL Key Words

    Key WordPostgreSQLSQL:2016SQL:2011SQL-92
    A non-reservednon-reserved 
    ABORTnon-reserved   
    ABS reservedreserved 
    ABSENT non-reservednon-reserved 
    ABSOLUTEnon-reservednon-reservednon-reservedreserved
    ACCESSnon-reserved   
    ACCORDING non-reservednon-reserved 
    ACOS reserved  
    ACTIONnon-reservednon-reservednon-reservedreserved
    ADA non-reservednon-reservednon-reserved
    ADDnon-reservednon-reservednon-reservedreserved
    ADMINnon-reservednon-reservednon-reserved 
    AFTERnon-reservednon-reservednon-reserved 
    AGGREGATEnon-reserved   
    ALLreservedreservedreservedreserved
    ALLOCATE reservedreservedreserved
    ALSOnon-reserved   
    ALTERnon-reservedreservedreservedreserved
    ALWAYSnon-reservednon-reservednon-reserved 
    ANALYSEreserved   
    ANALYZEreserved   
    ANDreservedreservedreservedreserved
    ANYreservedreservedreservedreserved
    ARE reservedreservedreserved
    ARRAYreservedreservedreserved 
    ARRAY_AGG reservedreserved 
    ARRAY_​MAX_​CARDINALITY reservedreserved 
    ASreservedreservedreservedreserved
    ASCreservednon-reservednon-reservedreserved
    ASENSITIVE reservedreserved 
    ASIN reserved  
    ASSERTIONnon-reservednon-reservednon-reservedreserved
    ASSIGNMENTnon-reservednon-reservednon-reserved 
    ASYMMETRICreservedreservedreserved 
    ATnon-reservedreservedreservedreserved
    ATAN reserved  
    ATOMIC reservedreserved 
    ATTACHnon-reserved   
    ATTRIBUTEnon-reservednon-reservednon-reserved 
    ATTRIBUTES non-reservednon-reserved 
    AUTHORIZATIONreserved (can be function or type)reservedreservedreserved
    AVG reservedreservedreserved
    BACKWARDnon-reserved   
    BASE64 non-reservednon-reserved 
    BEFOREnon-reservednon-reservednon-reserved 
    BEGINnon-reservedreservedreservedreserved
    BEGIN_FRAME reservedreserved 
    BEGIN_PARTITION reservedreserved 
    BERNOULLI non-reservednon-reserved 
    BETWEENnon-reserved (cannot be function or type)reservedreservedreserved
    BIGINTnon-reserved (cannot be function or type)reservedreserved 
    BINARYreserved (can be function or type)reservedreserved 
    BITnon-reserved (cannot be function or type)  reserved
    BIT_LENGTH   reserved
    BLOB reservedreserved 
    BLOCKED non-reservednon-reserved 
    BOM non-reservednon-reserved 
    BOOLEANnon-reserved (cannot be function or type)reservedreserved 
    BOTHreservedreservedreservedreserved
    BREADTH non-reservednon-reserved 
    BYnon-reservedreservedreservedreserved
    C non-reservednon-reservednon-reserved
    CACHEnon-reserved   
    CALLnon-reservedreservedreserved 
    CALLEDnon-reservedreservedreserved 
    CARDINALITY reservedreserved 
    CASCADEnon-reservednon-reservednon-reservedreserved
    CASCADEDnon-reservedreservedreservedreserved
    CASEreservedreservedreservedreserved
    CASTreservedreservedreservedreserved
    CATALOGnon-reservednon-reservednon-reservedreserved
    CATALOG_NAME non-reservednon-reservednon-reserved
    CEIL reservedreserved 
    CEILING reservedreserved 
    CHAINnon-reservednon-reservednon-reserved 
    CHAINING non-reserved  
    CHARnon-reserved (cannot be function or type)reservedreservedreserved
    CHARACTERnon-reserved (cannot be function or type)reservedreservedreserved
    CHARACTERISTICSnon-reservednon-reservednon-reserved 
    CHARACTERS non-reservednon-reserved 
    CHARACTER_LENGTH reservedreservedreserved
    CHARACTER_​SET_​CATALOG non-reservednon-reservednon-reserved
    CHARACTER_SET_NAME non-reservednon-reservednon-reserved
    CHARACTER_SET_SCHEMA non-reservednon-reservednon-reserved
    CHAR_LENGTH reservedreservedreserved
    CHECKreservedreservedreservedreserved
    CHECKPOINTnon-reserved   
    CLASSnon-reserved   
    CLASSIFIER reserved  
    CLASS_ORIGIN non-reservednon-reservednon-reserved
    CLOB reservedreserved 
    CLOSEnon-reservedreservedreservedreserved
    CLUSTERnon-reserved   
    COALESCEnon-reserved (cannot be function or type)reservedreservedreserved
    COBOL non-reservednon-reservednon-reserved
    COLLATEreservedreservedreservedreserved
    COLLATIONreserved (can be function or type)non-reservednon-reservedreserved
    COLLATION_CATALOG non-reservednon-reservednon-reserved
    COLLATION_NAME non-reservednon-reservednon-reserved
    COLLATION_SCHEMA non-reservednon-reservednon-reserved
    COLLECT reservedreserved 
    COLUMNreservedreservedreservedreserved
    COLUMNSnon-reservednon-reservednon-reserved 
    COLUMN_NAME non-reservednon-reservednon-reserved
    COMMAND_FUNCTION non-reservednon-reservednon-reserved
    COMMAND_​FUNCTION_​CODE non-reservednon-reserved 
    COMMENTnon-reserved   
    COMMENTSnon-reserved   
    COMMITnon-reservedreservedreservedreserved
    COMMITTEDnon-reservednon-reservednon-reservednon-reserved
    CONCURRENTLYreserved (can be function or type)   
    CONDITION reservedreserved 
    CONDITIONAL non-reserved  
    CONDITION_NUMBER non-reservednon-reservednon-reserved
    CONFIGURATIONnon-reserved   
    CONFLICTnon-reserved   
    CONNECT reservedreservedreserved
    CONNECTIONnon-reservednon-reservednon-reservedreserved
    CONNECTION_NAME non-reservednon-reservednon-reserved
    CONSTRAINTreservedreservedreservedreserved
    CONSTRAINTSnon-reservednon-reservednon-reservedreserved
    CONSTRAINT_CATALOG non-reservednon-reservednon-reserved
    CONSTRAINT_NAME non-reservednon-reservednon-reserved
    CONSTRAINT_SCHEMA non-reservednon-reservednon-reserved
    CONSTRUCTOR non-reservednon-reserved 
    CONTAINS reservedreserved 
    CONTENTnon-reservednon-reservednon-reserved 
    CONTINUEnon-reservednon-reservednon-reservedreserved
    CONTROL non-reservednon-reserved 
    CONVERSIONnon-reserved   
    CONVERT reservedreservedreserved
    COPYnon-reservedreserved  
    CORR reservedreserved 
    CORRESPONDING reservedreservedreserved
    COS reserved  
    COSH reserved  
    COSTnon-reserved   
    COUNT reservedreservedreserved
    COVAR_POP reservedreserved 
    COVAR_SAMP reservedreserved 
    CREATEreservedreservedreservedreserved
    CROSSreserved (can be function or type)reservedreservedreserved
    CSVnon-reserved   
    CUBEnon-reservedreservedreserved 
    CUME_DIST reservedreserved 
    CURRENTnon-reservedreservedreservedreserved
    CURRENT_CATALOGreservedreservedreserved 
    CURRENT_DATEreservedreservedreservedreserved
    CURRENT_​DEFAULT_​TRANSFORM_​GROUP reservedreserved 
    CURRENT_PATH reservedreserved 
    CURRENT_ROLEreservedreservedreserved 
    CURRENT_ROW reservedreserved 
    CURRENT_SCHEMAreserved (can be function or type)reservedreserved 
    CURRENT_TIMEreservedreservedreservedreserved
    CURRENT_TIMESTAMPreservedreservedreservedreserved
    CURRENT_​TRANSFORM_​GROUP_​FOR_​TYPE reservedreserved 
    CURRENT_USERreservedreservedreservedreserved
    CURSORnon-reservedreservedreservedreserved
    CURSOR_NAME non-reservednon-reservednon-reserved
    CYCLEnon-reservedreservedreserved 
    DATAnon-reservednon-reservednon-reservednon-reserved
    DATABASEnon-reserved   
    DATALINK reservedreserved 
    DATE reservedreservedreserved
    DATETIME_​INTERVAL_​CODE non-reservednon-reservednon-reserved
    DATETIME_​INTERVAL_​PRECISION non-reservednon-reservednon-reserved
    DAYnon-reservedreservedreservedreserved
    DB non-reservednon-reserved 
    DEALLOCATEnon-reservedreservedreservedreserved
    DECnon-reserved (cannot be function or type)reservedreservedreserved
    DECFLOAT reserved  
    DECIMALnon-reserved (cannot be function or type)reservedreservedreserved
    DECLAREnon-reservedreservedreservedreserved
    DEFAULTreservedreservedreservedreserved
    DEFAULTSnon-reservednon-reservednon-reserved 
    DEFERRABLEreservednon-reservednon-reservedreserved
    DEFERREDnon-reservednon-reservednon-reservedreserved
    DEFINE reserved  
    DEFINED non-reservednon-reserved 
    DEFINERnon-reservednon-reservednon-reserved 
    DEGREE non-reservednon-reserved 
    DELETEnon-reservedreservedreservedreserved
    DELIMITERnon-reserved   
    DELIMITERSnon-reserved   
    DENSE_RANK reservedreserved 
    DEPENDSnon-reserved   
    DEPTH non-reservednon-reserved 
    DEREF reservedreserved 
    DERIVED non-reservednon-reserved 
    DESCreservednon-reservednon-reservedreserved
    DESCRIBE reservedreservedreserved
    DESCRIPTOR non-reservednon-reservedreserved
    DETACHnon-reserved   
    DETERMINISTIC reservedreserved 
    DIAGNOSTICS non-reservednon-reservedreserved
    DICTIONARYnon-reserved   
    DISABLEnon-reserved   
    DISCARDnon-reserved   
    DISCONNECT reservedreservedreserved
    DISPATCH non-reservednon-reserved 
    DISTINCTreservedreservedreservedreserved
    DLNEWCOPY reservedreserved 
    DLPREVIOUSCOPY reservedreserved 
    DLURLCOMPLETE reservedreserved 
    DLURLCOMPLETEONLY reservedreserved 
    DLURLCOMPLETEWRITE reservedreserved 
    DLURLPATH reservedreserved 
    DLURLPATHONLY reservedreserved 
    DLURLPATHWRITE reservedreserved 
    DLURLSCHEME reservedreserved 
    DLURLSERVER reservedreserved 
    DLVALUE reservedreserved 
    DOreserved   
    DOCUMENTnon-reservednon-reservednon-reserved 
    DOMAINnon-reservednon-reservednon-reservedreserved
    DOUBLEnon-reservedreservedreservedreserved
    DROPnon-reservedreservedreservedreserved
    DYNAMIC reservedreserved 
    DYNAMIC_FUNCTION non-reservednon-reservednon-reserved
    DYNAMIC_​FUNCTION_​CODE non-reservednon-reserved 
    EACHnon-reservedreservedreserved 
    ELEMENT reservedreserved 
    ELSEreservedreservedreservedreserved
    EMPTY reservednon-reserved 
    ENABLEnon-reserved   
    ENCODINGnon-reservednon-reservednon-reserved 
    ENCRYPTEDnon-reserved   
    ENDreservedreservedreservedreserved
    END-EXEC reservedreservedreserved
    END_FRAME reservedreserved 
    END_PARTITION reservedreserved 
    ENFORCED non-reservednon-reserved 
    ENUMnon-reserved   
    EQUALS reservedreserved 
    ERROR non-reserved  
    ESCAPEnon-reservedreservedreservedreserved
    EVENTnon-reserved   
    EVERY reservedreserved 
    EXCEPTreservedreservedreservedreserved
    EXCEPTION   reserved
    EXCLUDEnon-reservednon-reservednon-reserved 
    EXCLUDINGnon-reservednon-reservednon-reserved 
    EXCLUSIVEnon-reserved   
    EXEC reservedreservedreserved
    EXECUTEnon-reservedreservedreservedreserved
    EXISTSnon-reserved (cannot be function or type)reservedreservedreserved
    EXP reservedreserved 
    EXPLAINnon-reserved   
    EXPRESSIONnon-reservednon-reservednon-reserved 
    EXTENSIONnon-reserved   
    EXTERNALnon-reservedreservedreservedreserved
    EXTRACTnon-reserved (cannot be function or type)reservedreservedreserved
    FALSEreservedreservedreservedreserved
    FAMILYnon-reserved   
    FETCHreservedreservedreservedreserved
    FILE non-reservednon-reserved 
    FILTERnon-reservedreservedreserved 
    FINAL non-reservednon-reserved 
    FINISH non-reserved  
    FIRSTnon-reservednon-reservednon-reservedreserved
    FIRST_VALUE reservedreserved 
    FLAG non-reservednon-reserved 
    FLOATnon-reserved (cannot be function or type)reservedreservedreserved
    FLOOR reservedreserved 
    FOLLOWINGnon-reservednon-reservednon-reserved 
    FORreservedreservedreservedreserved
    FORCEnon-reserved   
    FOREIGNreservedreservedreservedreserved
    FORMAT non-reserved  
    FORTRAN non-reservednon-reservednon-reserved
    FORWARDnon-reserved   
    FOUND non-reservednon-reservedreserved
    FRAME_ROW reservedreserved 
    FREE reservedreserved 
    FREEZEreserved (can be function or type)   
    FROMreservedreservedreservedreserved
    FS non-reservednon-reserved 
    FULFILL non-reserved  
    FULLreserved (can be function or type)reservedreservedreserved
    FUNCTIONnon-reservedreservedreserved 
    FUNCTIONSnon-reserved   
    FUSION reservedreserved 
    G non-reservednon-reserved 
    GENERAL non-reservednon-reserved 
    GENERATEDnon-reservednon-reservednon-reserved 
    GET reservedreservedreserved
    GLOBALnon-reservedreservedreservedreserved
    GO non-reservednon-reservedreserved
    GOTO non-reservednon-reservedreserved
    GRANTreservedreservedreservedreserved
    GRANTEDnon-reservednon-reservednon-reserved 
    GREATESTnon-reserved (cannot be function or type)   
    GROUPreservedreservedreservedreserved
    GROUPINGnon-reserved (cannot be function or type)reservedreserved 
    GROUPSnon-reservedreservedreserved 
    HANDLERnon-reserved   
    HAVINGreservedreservedreservedreserved
    HEADERnon-reserved   
    HEX non-reservednon-reserved 
    HIERARCHY non-reservednon-reserved 
    HOLDnon-reservedreservedreserved 
    HOURnon-reservedreservedreservedreserved
    ID non-reservednon-reserved 
    IDENTITYnon-reservedreservedreservedreserved
    IFnon-reserved   
    IGNORE non-reservednon-reserved 
    ILIKEreserved (can be function or type)   
    IMMEDIATEnon-reservednon-reservednon-reservedreserved
    IMMEDIATELY non-reservednon-reserved 
    IMMUTABLEnon-reserved   
    IMPLEMENTATION non-reservednon-reserved 
    IMPLICITnon-reserved   
    IMPORTnon-reservedreservedreserved 
    INreservedreservedreservedreserved
    INCLUDEnon-reserved   
    INCLUDINGnon-reservednon-reservednon-reserved 
    INCREMENTnon-reservednon-reservednon-reserved 
    INDENT non-reservednon-reserved 
    INDEXnon-reserved   
    INDEXESnon-reserved   
    INDICATOR reservedreservedreserved
    INHERITnon-reserved   
    INHERITSnon-reserved   
    INITIAL reserved  
    INITIALLYreservednon-reservednon-reservedreserved
    INLINEnon-reserved   
    INNERreserved (can be function or type)reservedreservedreserved
    INOUTnon-reserved (cannot be function or type)reservedreserved 
    INPUTnon-reservednon-reservednon-reservedreserved
    INSENSITIVEnon-reservedreservedreservedreserved
    INSERTnon-reservedreservedreservedreserved
    INSTANCE non-reservednon-reserved 
    INSTANTIABLE non-reservednon-reserved 
    INSTEADnon-reservednon-reservednon-reserved 
    INTnon-reserved (cannot be function or type)reservedreservedreserved
    INTEGERnon-reserved (cannot be function or type)reservedreservedreserved
    INTEGRITY non-reservednon-reserved 
    INTERSECTreservedreservedreservedreserved
    INTERSECTION reservedreserved 
    INTERVALnon-reserved (cannot be function or type)reservedreservedreserved
    INTOreservedreservedreservedreserved
    INVOKERnon-reservednon-reservednon-reserved 
    ISreserved (can be function or type)reservedreservedreserved
    ISNULLreserved (can be function or type)   
    ISOLATIONnon-reservednon-reservednon-reservedreserved
    JOINreserved (can be function or type)reservedreservedreserved
    JSON non-reserved  
    JSON_ARRAY reserved  
    JSON_ARRAYAGG reserved  
    JSON_EXISTS reserved  
    JSON_OBJECT reserved  
    JSON_OBJECTAGG reserved  
    JSON_QUERY reserved  
    JSON_TABLE reserved  
    JSON_TABLE_PRIMITIVE reserved  
    JSON_VALUE reserved  
    K non-reservednon-reserved 
    KEEP non-reserved  
    KEYnon-reservednon-reservednon-reservedreserved
    KEYS non-reserved  
    KEY_MEMBER non-reservednon-reserved 
    KEY_TYPE non-reservednon-reserved 
    LABELnon-reserved   
    LAG reservedreserved 
    LANGUAGEnon-reservedreservedreservedreserved
    LARGEnon-reservedreservedreserved 
    LASTnon-reservednon-reservednon-reservedreserved
    LAST_VALUE reservedreserved 
    LATERALreservedreservedreserved 
    LEAD reservedreserved 
    LEADINGreservedreservedreservedreserved
    LEAKPROOFnon-reserved   
    LEASTnon-reserved (cannot be function or type)   
    LEFTreserved (can be function or type)reservedreservedreserved
    LENGTH non-reservednon-reservednon-reserved
    LEVELnon-reservednon-reservednon-reservedreserved
    LIBRARY non-reservednon-reserved 
    LIKEreserved (can be function or type)reservedreservedreserved
    LIKE_REGEX reservedreserved 
    LIMITreservednon-reservednon-reserved 
    LINK non-reservednon-reserved 
    LISTAGG reserved  
    LISTENnon-reserved   
    LN reservedreserved 
    LOADnon-reserved   
    LOCALnon-reservedreservedreservedreserved
    LOCALTIMEreservedreservedreserved 
    LOCALTIMESTAMPreservedreservedreserved 
    LOCATIONnon-reservednon-reservednon-reserved 
    LOCATOR non-reservednon-reserved 
    LOCKnon-reserved   
    LOCKEDnon-reserved   
    LOG reserved  
    LOG10 reserved  
    LOGGEDnon-reserved   
    LOWER reservedreservedreserved
    M non-reservednon-reserved 
    MAP non-reservednon-reserved 
    MAPPINGnon-reservednon-reservednon-reserved 
    MATCHnon-reservedreservedreservedreserved
    MATCHED non-reservednon-reserved 
    MATCHES reserved  
    MATCH_NUMBER reserved  
    MATCH_RECOGNIZE reserved  
    MATERIALIZEDnon-reserved   
    MAX reservedreservedreserved
    MAXVALUEnon-reservednon-reservednon-reserved 
    MEASURES reserved  
    MEMBER reservedreserved 
    MERGE reservedreserved 
    MESSAGE_LENGTH non-reservednon-reservednon-reserved
    MESSAGE_OCTET_LENGTH non-reservednon-reservednon-reserved
    MESSAGE_TEXT non-reservednon-reservednon-reserved
    METHODnon-reservedreservedreserved 
    MIN reservedreservedreserved
    MINUTEnon-reservedreservedreservedreserved
    MINVALUEnon-reservednon-reservednon-reserved 
    MOD reservedreserved 
    MODEnon-reserved   
    MODIFIES reservedreserved 
    MODULE reservedreservedreserved
    MONTHnon-reservedreservedreservedreserved
    MORE non-reservednon-reservednon-reserved
    MOVEnon-reserved   
    MULTISET reservedreserved 
    MUMPS non-reservednon-reservednon-reserved
    NAMEnon-reservednon-reservednon-reservednon-reserved
    NAMESnon-reservednon-reservednon-reservedreserved
    NAMESPACE non-reservednon-reserved 
    NATIONALnon-reserved (cannot be function or type)reservedreservedreserved
    NATURALreserved (can be function or type)reservedreservedreserved
    NCHARnon-reserved (cannot be function or type)reservedreservedreserved
    NCLOB reservedreserved 
    NESTED non-reserved  
    NESTING non-reservednon-reserved 
    NEWnon-reservedreservedreserved 
    NEXTnon-reservednon-reservednon-reservedreserved
    NFCnon-reservednon-reservednon-reserved 
    NFDnon-reservednon-reservednon-reserved 
    NFKCnon-reservednon-reservednon-reserved 
    NFKDnon-reservednon-reservednon-reserved 
    NIL non-reservednon-reserved 
    NOnon-reservedreservedreservedreserved
    NONEnon-reserved (cannot be function or type)reservedreserved 
    NORMALIZEnon-reserved (cannot be function or type)reservedreserved 
    NORMALIZEDnon-reservednon-reservednon-reserved 
    NOTreservedreservedreservedreserved
    NOTHINGnon-reserved   
    NOTIFYnon-reserved   
    NOTNULLreserved (can be function or type)   
    NOWAITnon-reserved   
    NTH_VALUE reservedreserved 
    NTILE reservedreserved 
    NULLreservedreservedreservedreserved
    NULLABLE non-reservednon-reservednon-reserved
    NULLIFnon-reserved (cannot be function or type)reservedreservedreserved
    NULLSnon-reservednon-reservednon-reserved 
    NUMBER non-reservednon-reservednon-reserved
    NUMERICnon-reserved (cannot be function or type)reservedreservedreserved
    OBJECTnon-reservednon-reservednon-reserved 
    OCCURRENCES_REGEX reservedreserved 
    OCTETS non-reservednon-reserved 
    OCTET_LENGTH reservedreservedreserved
    OFnon-reservedreservedreservedreserved
    OFFnon-reservednon-reservednon-reserved 
    OFFSETreservedreservedreserved 
    OIDSnon-reserved   
    OLDnon-reservedreservedreserved 
    OMIT reserved  
    ONreservedreservedreservedreserved
    ONE reserved  
    ONLYreservedreservedreservedreserved
    OPEN reservedreservedreserved
    OPERATORnon-reserved   
    OPTIONnon-reservednon-reservednon-reservedreserved
    OPTIONSnon-reservednon-reservednon-reserved 
    ORreservedreservedreservedreserved
    ORDERreservedreservedreservedreserved
    ORDERING non-reservednon-reserved 
    ORDINALITYnon-reservednon-reservednon-reserved 
    OTHERSnon-reservednon-reservednon-reserved 
    OUTnon-reserved (cannot be function or type)reservedreserved 
    OUTERreserved (can be function or type)reservedreservedreserved
    OUTPUT non-reservednon-reservedreserved
    OVERnon-reservedreservedreserved 
    OVERFLOW non-reserved  
    OVERLAPSreserved (can be function or type)reservedreservedreserved
    OVERLAYnon-reserved (cannot be function or type)reservedreserved 
    OVERRIDINGnon-reservednon-reservednon-reserved 
    OWNEDnon-reserved   
    OWNERnon-reserved   
    P non-reservednon-reserved 
    PAD non-reservednon-reservedreserved
    PARALLELnon-reserved   
    PARAMETER reservedreserved 
    PARAMETER_MODE non-reservednon-reserved 
    PARAMETER_NAME non-reservednon-reserved 
    PARAMETER_​ORDINAL_​POSITION non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​CATALOG non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​NAME non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​SCHEMA non-reservednon-reserved 
    PARSERnon-reserved   
    PARTIALnon-reservednon-reservednon-reservedreserved
    PARTITIONnon-reservedreservedreserved 
    PASCAL non-reservednon-reservednon-reserved
    PASS non-reserved  
    PASSINGnon-reservednon-reservednon-reserved 
    PASSTHROUGH non-reservednon-reserved 
    PASSWORDnon-reserved   
    PAST non-reserved  
    PATH non-reservednon-reserved 
    PATTERN reserved  
    PER reserved  
    PERCENT reservedreserved 
    PERCENTILE_CONT reservedreserved 
    PERCENTILE_DISC reservedreserved 
    PERCENT_RANK reservedreserved 
    PERIOD reservedreserved 
    PERMISSION non-reservednon-reserved 
    PERMUTE reserved  
    PLACINGreservednon-reservednon-reserved 
    PLAN non-reserved  
    PLANSnon-reserved   
    PLI non-reservednon-reservednon-reserved
    POLICYnon-reserved   
    PORTION reservedreserved 
    POSITIONnon-reserved (cannot be function or type)reservedreservedreserved
    POSITION_REGEX reservedreserved 
    POWER reservedreserved 
    PRECEDES reservedreserved 
    PRECEDINGnon-reservednon-reservednon-reserved 
    PRECISIONnon-reserved (cannot be function or type)reservedreservedreserved
    PREPAREnon-reservedreservedreservedreserved
    PREPAREDnon-reserved   
    PRESERVEnon-reservednon-reservednon-reservedreserved
    PRIMARYreservedreservedreservedreserved
    PRIORnon-reservednon-reservednon-reservedreserved
    PRIVATE non-reserved  
    PRIVILEGESnon-reservednon-reservednon-reservedreserved
    PROCEDURALnon-reserved   
    PROCEDUREnon-reservedreservedreservedreserved
    PROCEDURESnon-reserved   
    PROGRAMnon-reserved   
    PRUNE non-reserved  
    PTF reserved  
    PUBLIC non-reservednon-reservedreserved
    PUBLICATIONnon-reserved   
    QUOTEnon-reserved   
    QUOTES non-reserved  
    RANGEnon-reservedreservedreserved 
    RANK reservedreserved 
    READnon-reservednon-reservednon-reservedreserved
    READS reservedreserved 
    REALnon-reserved (cannot be function or type)reservedreservedreserved
    REASSIGNnon-reserved   
    RECHECKnon-reserved   
    RECOVERY non-reservednon-reserved 
    RECURSIVEnon-reservedreservedreserved 
    REFnon-reservedreservedreserved 
    REFERENCESreservedreservedreservedreserved
    REFERENCINGnon-reservedreservedreserved 
    REFRESHnon-reserved   
    REGR_AVGX reservedreserved 
    REGR_AVGY reservedreserved 
    REGR_COUNT reservedreserved 
    REGR_INTERCEPT reservedreserved 
    REGR_R2 reservedreserved 
    REGR_SLOPE reservedreserved 
    REGR_SXX reservedreserved 
    REGR_SXY reservedreserved 
    REGR_SYY reservedreserved 
    REINDEXnon-reserved   
    RELATIVEnon-reservednon-reservednon-reservedreserved
    RELEASEnon-reservedreservedreserved 
    RENAMEnon-reserved   
    REPEATABLEnon-reservednon-reservednon-reservednon-reserved
    REPLACEnon-reserved   
    REPLICAnon-reserved   
    REQUIRING non-reservednon-reserved 
    RESETnon-reserved   
    RESPECT non-reservednon-reserved 
    RESTARTnon-reservednon-reservednon-reserved 
    RESTORE non-reservednon-reserved 
    RESTRICTnon-reservednon-reservednon-reservedreserved
    RESULT reservedreserved 
    RETURN reservedreserved 
    RETURNED_CARDINALITY non-reservednon-reserved 
    RETURNED_LENGTH non-reservednon-reservednon-reserved
    RETURNED_​OCTET_​LENGTH non-reservednon-reservednon-reserved
    RETURNED_SQLSTATE non-reservednon-reservednon-reserved
    RETURNINGreservednon-reservednon-reserved 
    RETURNSnon-reservedreservedreserved 
    REVOKEnon-reservedreservedreservedreserved
    RIGHTreserved (can be function or type)reservedreservedreserved
    ROLEnon-reservednon-reservednon-reserved 
    ROLLBACKnon-reservedreservedreservedreserved
    ROLLUPnon-reservedreservedreserved 
    ROUTINEnon-reservednon-reservednon-reserved 
    ROUTINESnon-reserved   
    ROUTINE_CATALOG non-reservednon-reserved 
    ROUTINE_NAME non-reservednon-reserved 
    ROUTINE_SCHEMA non-reservednon-reserved 
    ROWnon-reserved (cannot be function or type)reservedreserved 
    ROWSnon-reservedreservedreservedreserved
    ROW_COUNT non-reservednon-reservednon-reserved
    ROW_NUMBER reservedreserved 
    RULEnon-reserved   
    RUNNING reserved  
    SAVEPOINTnon-reservedreservedreserved 
    SCALAR non-reserved  
    SCALE non-reservednon-reservednon-reserved
    SCHEMAnon-reservednon-reservednon-reservedreserved
    SCHEMASnon-reserved   
    SCHEMA_NAME non-reservednon-reservednon-reserved
    SCOPE reservedreserved 
    SCOPE_CATALOG non-reservednon-reserved 
    SCOPE_NAME non-reservednon-reserved 
    SCOPE_SCHEMA non-reservednon-reserved 
    SCROLLnon-reservedreservedreservedreserved
    SEARCHnon-reservedreservedreserved 
    SECONDnon-reservedreservedreservedreserved
    SECTION non-reservednon-reservedreserved
    SECURITYnon-reservednon-reservednon-reserved 
    SEEK reserved  
    SELECTreservedreservedreservedreserved
    SELECTIVE non-reservednon-reserved 
    SELF non-reservednon-reserved 
    SENSITIVE reservedreserved 
    SEQUENCEnon-reservednon-reservednon-reserved 
    SEQUENCESnon-reserved   
    SERIALIZABLEnon-reservednon-reservednon-reservednon-reserved
    SERVERnon-reservednon-reservednon-reserved 
    SERVER_NAME non-reservednon-reservednon-reserved
    SESSIONnon-reservednon-reservednon-reservedreserved
    SESSION_USERreservedreservedreservedreserved
    SETnon-reservedreservedreservedreserved
    SETOFnon-reserved (cannot be function or type)   
    SETSnon-reservednon-reservednon-reserved 
    SHAREnon-reserved   
    SHOWnon-reservedreserved  
    SIMILARreserved (can be function or type)reservedreserved 
    SIMPLEnon-reservednon-reservednon-reserved 
    SIN reserved  
    SINH reserved  
    SIZE non-reservednon-reservedreserved
    SKIPnon-reservedreserved  
    SMALLINTnon-reserved (cannot be function or type)reservedreservedreserved
    SNAPSHOTnon-reserved   
    SOMEreservedreservedreservedreserved
    SOURCE non-reservednon-reserved 
    SPACE non-reservednon-reservedreserved
    SPECIFIC reservedreserved 
    SPECIFICTYPE reservedreserved 
    SPECIFIC_NAME non-reservednon-reserved 
    SQLnon-reservedreservedreservedreserved
    SQLCODE   reserved
    SQLERROR   reserved
    SQLEXCEPTION reservedreserved 
    SQLSTATE reservedreservedreserved
    SQLWARNING reservedreserved 
    SQRT reservedreserved 
    STABLEnon-reserved   
    STANDALONEnon-reservednon-reservednon-reserved 
    STARTnon-reservedreservedreserved 
    STATE non-reservednon-reserved 
    STATEMENTnon-reservednon-reservednon-reserved 
    STATIC reservedreserved 
    STATISTICSnon-reserved   
    STDDEV_POP reservedreserved 
    STDDEV_SAMP reservedreserved 
    STDINnon-reserved   
    STDOUTnon-reserved   
    STORAGEnon-reserved   
    STOREDnon-reserved   
    STRICTnon-reserved   
    STRING non-reserved  
    STRIPnon-reservednon-reservednon-reserved 
    STRUCTURE non-reservednon-reserved 
    STYLE non-reservednon-reserved 
    SUBCLASS_ORIGIN non-reservednon-reservednon-reserved
    SUBMULTISET reservedreserved 
    SUBSCRIPTIONnon-reserved   
    SUBSET reserved  
    SUBSTRINGnon-reserved (cannot be function or type)reservedreservedreserved
    SUBSTRING_REGEX reservedreserved 
    SUCCEEDS reservedreserved 
    SUM reservedreservedreserved
    SUPPORTnon-reserved   
    SYMMETRICreservedreservedreserved 
    SYSIDnon-reserved   
    SYSTEMnon-reservedreservedreserved 
    SYSTEM_TIME reservedreserved 
    SYSTEM_USER reservedreservedreserved
    T non-reservednon-reserved 
    TABLEreservedreservedreservedreserved
    TABLESnon-reserved   
    TABLESAMPLEreserved (can be function or type)reservedreserved 
    TABLESPACEnon-reserved   
    TABLE_NAME non-reservednon-reservednon-reserved
    TAN reserved  
    TANH reserved  
    TEMPnon-reserved   
    TEMPLATEnon-reserved   
    TEMPORARYnon-reservednon-reservednon-reservedreserved
    TEXTnon-reserved   
    THENreservedreservedreservedreserved
    THROUGH non-reserved  
    TIESnon-reservednon-reservednon-reserved 
    TIMEnon-reserved (cannot be function or type)reservedreservedreserved
    TIMESTAMPnon-reserved (cannot be function or type)reservedreservedreserved
    TIMEZONE_HOUR reservedreservedreserved
    TIMEZONE_MINUTE reservedreservedreserved
    TOreservedreservedreservedreserved
    TOKEN non-reservednon-reserved 
    TOP_LEVEL_COUNT non-reservednon-reserved 
    TRAILINGreservedreservedreservedreserved
    TRANSACTIONnon-reservednon-reservednon-reservedreserved
    TRANSACTIONS_​COMMITTED non-reservednon-reserved 
    TRANSACTIONS_​ROLLED_​BACK non-reservednon-reserved 
    TRANSACTION_ACTIVE non-reservednon-reserved 
    TRANSFORMnon-reservednon-reservednon-reserved 
    TRANSFORMS non-reservednon-reserved 
    TRANSLATE reservedreservedreserved
    TRANSLATE_REGEX reservedreserved 
    TRANSLATION reservedreservedreserved
    TREATnon-reserved (cannot be function or type)reservedreserved 
    TRIGGERnon-reservedreservedreserved 
    TRIGGER_CATALOG non-reservednon-reserved 
    TRIGGER_NAME non-reservednon-reserved 
    TRIGGER_SCHEMA non-reservednon-reserved 
    TRIMnon-reserved (cannot be function or type)reservedreservedreserved
    TRIM_ARRAY reservedreserved 
    TRUEreservedreservedreservedreserved
    TRUNCATEnon-reservedreservedreserved 
    TRUSTEDnon-reserved   
    TYPEnon-reservednon-reservednon-reservednon-reserved
    TYPESnon-reserved   
    UESCAPEnon-reservedreservedreserved 
    UNBOUNDEDnon-reservednon-reservednon-reserved 
    UNCOMMITTEDnon-reservednon-reservednon-reservednon-reserved
    UNCONDITIONAL non-reserved  
    UNDER non-reservednon-reserved 
    UNENCRYPTEDnon-reserved   
    UNIONreservedreservedreservedreserved
    UNIQUEreservedreservedreservedreserved
    UNKNOWNnon-reservedreservedreservedreserved
    UNLINK non-reservednon-reserved 
    UNLISTENnon-reserved   
    UNLOGGEDnon-reserved   
    UNMATCHED reserved  
    UNNAMED non-reservednon-reservednon-reserved
    UNNEST reservedreserved 
    UNTILnon-reserved   
    UNTYPED non-reservednon-reserved 
    UPDATEnon-reservedreservedreservedreserved
    UPPER reservedreservedreserved
    URI non-reservednon-reserved 
    USAGE non-reservednon-reservedreserved
    USERreservedreservedreservedreserved
    USER_​DEFINED_​TYPE_​CATALOG non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​CODE non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​NAME non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​SCHEMA non-reservednon-reserved 
    USINGreservedreservedreservedreserved
    UTF16 non-reserved  
    UTF32 non-reserved  
    UTF8 non-reserved  
    VACUUMnon-reserved   
    VALIDnon-reservednon-reservednon-reserved 
    VALIDATEnon-reserved   
    VALIDATORnon-reserved   
    VALUEnon-reservedreservedreservedreserved
    VALUESnon-reserved (cannot be function or type)reservedreservedreserved
    VALUE_OF reservedreserved 
    VARBINARY reservedreserved 
    VARCHARnon-reserved (cannot be function or type)reservedreservedreserved
    VARIADICreserved   
    VARYINGnon-reservedreservedreservedreserved
    VAR_POP reservedreserved 
    VAR_SAMP reservedreserved 
    VERBOSEreserved (can be function or type)   
    VERSIONnon-reservednon-reservednon-reserved 
    VERSIONING reservedreserved 
    VIEWnon-reservednon-reservednon-reservedreserved
    VIEWSnon-reserved   
    VOLATILEnon-reserved   
    WHENreservedreservedreservedreserved
    WHENEVER reservedreservedreserved
    WHEREreservedreservedreservedreserved
    WHITESPACEnon-reservednon-reservednon-reserved 
    WIDTH_BUCKET reservedreserved 
    WINDOWreservedreservedreserved 
    WITHreservedreservedreservedreserved
    WITHINnon-reservedreservedreserved 
    WITHOUTnon-reservedreservedreserved 
    WORKnon-reservednon-reservednon-reservedreserved
    WRAPPERnon-reservednon-reservednon-reserved 
    WRITEnon-reservednon-reservednon-reservedreserved
    XMLnon-reservedreservedreserved 
    XMLAGG reservedreserved 
    XMLATTRIBUTESnon-reserved (cannot be function or type)reservedreserved 
    XMLBINARY reservedreserved 
    XMLCAST reservedreserved 
    XMLCOMMENT reservedreserved 
    XMLCONCATnon-reserved (cannot be function or type)reservedreserved 
    XMLDECLARATION non-reservednon-reserved 
    XMLDOCUMENT reservedreserved 
    XMLELEMENTnon-reserved (cannot be function or type)reservedreserved 
    XMLEXISTSnon-reserved (cannot be function or type)reservedreserved 
    XMLFORESTnon-reserved (cannot be function or type)reservedreserved 
    XMLITERATE reservedreserved 
    XMLNAMESPACESnon-reserved (cannot be function or type)reservedreserved 
    XMLPARSEnon-reserved (cannot be function or type)reservedreserved 
    XMLPInon-reserved (cannot be function or type)reservedreserved 
    XMLQUERY reservedreserved 
    XMLROOTnon-reserved (cannot be function or type)   
    XMLSCHEMA non-reservednon-reserved 
    XMLSERIALIZEnon-reserved (cannot be function or type)reservedreserved 
    XMLTABLEnon-reserved (cannot be function or type)reservedreserved 
    XMLTEXT reservedreserved 
    XMLVALIDATE reservedreserved 
    YEARnon-reservedreservedreservedreserved
    YESnon-reservednon-reservednon-reserved 
    ZONEnon-reservednon-reservednon-reservedreserved

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-listen.html postgresql-13-13.7/doc/src/sgml/html/sql-listen.html --- postgresql-13-13.4/doc/src/sgml/html/sql-listen.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-listen.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -LISTEN

    LISTEN

    LISTEN — listen for a notification

    Synopsis

    +LISTEN

    LISTEN

    LISTEN — listen for a notification

    Synopsis

     LISTEN channel
     

    Description

    LISTEN registers the current session as a @@ -67,4 +67,4 @@

    Compatibility

    There is no LISTEN statement in the SQL standard. -

    See Also

    NOTIFY, UNLISTEN
    \ No newline at end of file +

    See Also

    NOTIFY, UNLISTEN
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-load.html postgresql-13-13.7/doc/src/sgml/html/sql-load.html --- postgresql-13-13.4/doc/src/sgml/html/sql-load.html 2021-08-09 21:03:02.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-load.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -LOAD

    LOAD

    LOAD — load a shared library file

    Synopsis

    +LOAD

    LOAD

    LOAD — load a shared library file

    Synopsis

     LOAD 'filename'
     

    Description

    This command loads a shared library file into the PostgreSQL @@ -28,4 +28,4 @@ extension.

    See Also

    CREATE FUNCTION -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-lock.html postgresql-13-13.7/doc/src/sgml/html/sql-lock.html --- postgresql-13-13.4/doc/src/sgml/html/sql-lock.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-lock.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -LOCK

    LOCK

    LOCK — lock a table

    Synopsis

    +LOCK

    LOCK

    LOCK — lock a table

    Synopsis

     LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ]
     
     where lockmode is one of:
    @@ -159,4 +159,4 @@
        PostgreSQL lock modes and the
        LOCK TABLE syntax are compatible with those
        present in Oracle.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-move.html postgresql-13-13.7/doc/src/sgml/html/sql-move.html --- postgresql-13-13.4/doc/src/sgml/html/sql-move.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-move.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -MOVE

    MOVE

    MOVE — position a cursor

    Synopsis

    +MOVE

    MOVE

    MOVE — position a cursor

    Synopsis

     MOVE [ direction [ FROM | IN ] ] cursor_name
     
     where direction can be empty or one of:
    @@ -56,4 +56,4 @@
     COMMIT WORK;
     

    Compatibility

    There is no MOVE statement in the SQL standard. -

    See Also

    CLOSE, DECLARE, FETCH
    \ No newline at end of file +

    See Also

    CLOSE, DECLARE, FETCH
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-notify.html postgresql-13-13.7/doc/src/sgml/html/sql-notify.html --- postgresql-13-13.4/doc/src/sgml/html/sql-notify.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-notify.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -NOTIFY

    NOTIFY

    NOTIFY — generate a notification

    Synopsis

    +NOTIFY

    NOTIFY

    NOTIFY — generate a notification

    Synopsis

     NOTIFY channel [ , payload ]
     

    Description

    The NOTIFY command sends a notification event together @@ -129,4 +129,4 @@

    Compatibility

    There is no NOTIFY statement in the SQL standard. -

    See Also

    LISTEN, UNLISTEN
    \ No newline at end of file +

    See Also

    LISTEN, UNLISTEN
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-prepare.html postgresql-13-13.7/doc/src/sgml/html/sql-prepare.html --- postgresql-13-13.4/doc/src/sgml/html/sql-prepare.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-prepare.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

    +PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

     PREPARE name [ ( data_type [, ...] ) ] AS statement
     

    Description

    PREPARE creates a prepared statement. A prepared @@ -146,4 +146,4 @@ but it is only for use in embedded SQL. This version of the PREPARE statement also uses a somewhat different syntax. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-prepare-transaction.html postgresql-13-13.7/doc/src/sgml/html/sql-prepare-transaction.html --- postgresql-13-13.4/doc/src/sgml/html/sql-prepare-transaction.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-prepare-transaction.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -PREPARE TRANSACTION

    PREPARE TRANSACTION

    PREPARE TRANSACTION — prepare the current transaction for two-phase commit

    Synopsis

    +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 @@ -87,4 +87,4 @@ external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-reassign-owned.html postgresql-13-13.7/doc/src/sgml/html/sql-reassign-owned.html --- postgresql-13-13.4/doc/src/sgml/html/sql-reassign-owned.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-reassign-owned.html 2022-05-09 21:29:21.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

    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

    @@ -39,4 +39,4 @@

    Compatibility

    The REASSIGN OWNED command is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-refreshmaterializedview.html postgresql-13-13.7/doc/src/sgml/html/sql-refreshmaterializedview.html --- postgresql-13-13.4/doc/src/sgml/html/sql-refreshmaterializedview.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-refreshmaterializedview.html 2022-05-09 21:29:21.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

    REFRESH MATERIALIZED VIEW

    REFRESH MATERIALIZED VIEW — replace the contents of a materialized view

    Synopsis

     REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
         [ WITH [ NO ] DATA ]
     

    Description

    @@ -36,12 +36,10 @@ The name (optionally schema-qualified) of the materialized view to refresh.

    Notes

    - While the default index for future - CLUSTER - operations is retained, REFRESH MATERIALIZED VIEW does not - order the generated rows based on this property. If you want the data - to be ordered upon generation, you must use an ORDER BY - clause in the backing query. + If there is an ORDER BY clause in the materialized + view's defining query, the original contents of the materialized view + will be ordered that way; but REFRESH MATERIALIZED + VIEW does not guarantee to preserve that ordering.

    Examples

    This command will replace the contents of the materialized view called order_summary using the query from the materialized @@ -58,4 +56,4 @@

    Compatibility

    REFRESH MATERIALIZED VIEW is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-reindex.html postgresql-13-13.7/doc/src/sgml/html/sql-reindex.html --- postgresql-13-13.4/doc/src/sgml/html/sql-reindex.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-reindex.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -REINDEX

    REINDEX

    REINDEX — rebuild indexes

    Synopsis

    +REINDEX

    REINDEX

    REINDEX — rebuild indexes

    Synopsis

     REINDEX [ ( option [, ...] ) ] { INDEX | TABLE | SCHEMA | DATABASE | SYSTEM } [ CONCURRENTLY ] name
     
     where option can be one of:
    @@ -279,4 +279,4 @@
     REINDEX TABLE CONCURRENTLY my_broken_table;
     

    Compatibility

    There is no REINDEX command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-release-savepoint.html postgresql-13-13.7/doc/src/sgml/html/sql-release-savepoint.html --- postgresql-13-13.4/doc/src/sgml/html/sql-release-savepoint.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-release-savepoint.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -RELEASE SAVEPOINT

    RELEASE SAVEPOINT

    RELEASE SAVEPOINT — destroy a previously defined savepoint

    Synopsis

    +RELEASE SAVEPOINT

    RELEASE SAVEPOINT

    RELEASE SAVEPOINT — destroy a previously defined savepoint

    Synopsis

     RELEASE [ SAVEPOINT ] savepoint_name
     

    Description

    RELEASE SAVEPOINT destroys a savepoint previously defined @@ -41,4 +41,4 @@ specifies that the key word SAVEPOINT is mandatory, but PostgreSQL allows it to be omitted. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-reset.html postgresql-13-13.7/doc/src/sgml/html/sql-reset.html --- postgresql-13-13.4/doc/src/sgml/html/sql-reset.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-reset.html 2022-05-09 21:29:21.000000000 +0000 @@ -1,5 +1,5 @@ -RESET

    RESET

    RESET — restore the value of a run-time parameter to the default value

    Synopsis

    +RESET

    RESET

    RESET — restore the value of a run-time parameter to the default value

    Synopsis

     RESET configuration_parameter
     RESET ALL
     

    Description

    @@ -36,4 +36,4 @@ RESET timezone;

    Compatibility

    RESET is a PostgreSQL extension. -

    See Also

    SET, SHOW
    \ No newline at end of file +

    See Also

    SET, SHOW
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-revoke.html postgresql-13-13.7/doc/src/sgml/html/sql-revoke.html --- postgresql-13-13.4/doc/src/sgml/html/sql-revoke.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-revoke.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -REVOKE

    REVOKE

    REVOKE — remove access privileges

    Synopsis

    +REVOKE

    REVOKE

    REVOKE — remove access privileges

    Synopsis

     REVOKE [ GRANT OPTION FOR ]
         { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
         [, ...] | ALL [ PRIVILEGES ] }
    @@ -225,4 +225,4 @@
         The keyword RESTRICT or CASCADE
         is required according to the standard, but PostgreSQL
         assumes RESTRICT by default.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-rollback.html postgresql-13-13.7/doc/src/sgml/html/sql-rollback.html --- postgresql-13-13.4/doc/src/sgml/html/sql-rollback.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-rollback.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -ROLLBACK

    ROLLBACK

    ROLLBACK — abort the current transaction

    Synopsis

    +ROLLBACK

    ROLLBACK

    ROLLBACK — abort the current transaction

    Synopsis

     ROLLBACK [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
     

    Description

    ROLLBACK rolls back the current transaction and causes @@ -24,4 +24,4 @@

    Compatibility

    The command ROLLBACK conforms to the SQL standard. The form ROLLBACK TRANSACTION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-rollback-prepared.html postgresql-13-13.7/doc/src/sgml/html/sql-rollback-prepared.html --- postgresql-13-13.4/doc/src/sgml/html/sql-rollback-prepared.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-rollback-prepared.html 2022-05-09 21:29:22.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

    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 @@ -30,4 +30,4 @@ external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-rollback-to.html postgresql-13-13.7/doc/src/sgml/html/sql-rollback-to.html --- postgresql-13-13.4/doc/src/sgml/html/sql-rollback-to.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-rollback-to.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT — roll back to a savepoint

    Synopsis

    +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 @@ -68,4 +68,4 @@ AND [ NO ] CHAIN which is not currently supported by PostgreSQL. Otherwise, this command conforms to the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-savepoint.html postgresql-13-13.7/doc/src/sgml/html/sql-savepoint.html --- postgresql-13-13.4/doc/src/sgml/html/sql-savepoint.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-savepoint.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -SAVEPOINT

    SAVEPOINT

    SAVEPOINT — define a new savepoint within the current transaction

    Synopsis

    +SAVEPOINT

    SAVEPOINT

    SAVEPOINT — define a new savepoint within the current transaction

    Synopsis

     SAVEPOINT savepoint_name
     

    Description

    SAVEPOINT establishes a new savepoint within @@ -51,4 +51,4 @@ to again become accessible to ROLLBACK TO SAVEPOINT and RELEASE SAVEPOINT.) Otherwise, SAVEPOINT is fully SQL conforming. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-security-label.html postgresql-13-13.7/doc/src/sgml/html/sql-security-label.html --- postgresql-13-13.4/doc/src/sgml/html/sql-security-label.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-security-label.html 2022-05-09 21:29:22.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

    SECURITY LABEL

    SECURITY LABEL — define or change a security label applied to an object

    Synopsis

     SECURITY LABEL [ FOR provider ] ON
     {
       TABLE object_name |
    @@ -91,4 +91,4 @@
     SECURITY LABEL FOR selinux ON TABLE mytable IS 'system_u:object_r:sepgsql_table_t:s0';
     

    Compatibility

    There is no SECURITY LABEL command in the SQL standard. -

    See Also

    sepgsql, src/test/modules/dummy_seclabel
    \ No newline at end of file +

    See Also

    sepgsql, src/test/modules/dummy_seclabel
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-select.html postgresql-13-13.7/doc/src/sgml/html/sql-select.html --- postgresql-13-13.4/doc/src/sgml/html/sql-select.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-select.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -SELECT

    SELECT

    SELECT, TABLE, WITH — retrieve rows from a table or view

    Synopsis

    +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 ] [, ...] ]
    @@ -1032,7 +1032,8 @@
         The WITH TIES option is used to return any additional
         rows that tie for the last place in the result set according to
         the ORDER BY clause; ORDER BY
    -    is mandatory in this case.
    +    is mandatory in this case, and SKIP LOCKED is
    +    not allowed.
         ROW and ROWS as well as
         FIRST and NEXT are noise
         words that don't influence the effects of these clauses.
    @@ -1558,4 +1559,4 @@
         The MATERIALIZED and NOT
         MATERIALIZED options of WITH are extensions
         of the SQL standard.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-selectinto.html postgresql-13-13.7/doc/src/sgml/html/sql-selectinto.html --- postgresql-13-13.4/doc/src/sgml/html/sql-selectinto.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-selectinto.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -SELECT INTO

    SELECT INTO

    SELECT INTO — define a new table from the results of a query

    Synopsis

    +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 ] [, ...]
    @@ -42,7 +42,7 @@
        functionality provided by SELECT INTO.
       

    In contrast to CREATE TABLE AS, SELECT - INTO does not allow to specify properties like a table's access + INTO does not allow specifying properties like a table's access method with USING method or the table's tablespace with TABLESPACE tablespace_name. Use CREATE TABLE AS if necessary. Therefore, the default table access method is chosen for the new table. See default_table_access_method for more information. @@ -62,4 +62,4 @@ INTO to represent table creation is historical. It is best to use CREATE TABLE AS for this purpose in new code. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-set-constraints.html postgresql-13-13.7/doc/src/sgml/html/sql-set-constraints.html --- postgresql-13-13.4/doc/src/sgml/html/sql-set-constraints.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-set-constraints.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -SET CONSTRAINTS

    SET CONSTRAINTS

    SET CONSTRAINTS — set constraint check timing for the current transaction

    Synopsis

    +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 @@ -68,4 +68,4 @@ Also, PostgreSQL checks non-deferrable uniqueness constraints immediately, not at end of statement as the standard would suggest. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-set.html postgresql-13-13.7/doc/src/sgml/html/sql-set.html --- postgresql-13-13.4/doc/src/sgml/html/sql-set.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-set.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -SET

    SET

    SET — change a run-time parameter

    Synopsis

    +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

    @@ -150,4 +150,4 @@ PostgreSQL allows more flexible time-zone specifications. All other SET features are PostgreSQL extensions. -

    See Also

    RESET, SHOW
    \ No newline at end of file +

    See Also

    RESET, SHOW
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-set-role.html postgresql-13-13.7/doc/src/sgml/html/sql-set-role.html --- postgresql-13-13.4/doc/src/sgml/html/sql-set-role.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-set-role.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -SET ROLE

    SET ROLE

    SET ROLE — set the current user identifier of the current session

    Synopsis

    +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
    @@ -82,4 +82,4 @@
        The SESSION and LOCAL modifiers are a
        PostgreSQL extension, as is the
        RESET syntax.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-set-session-authorization.html postgresql-13-13.7/doc/src/sgml/html/sql-set-session-authorization.html --- postgresql-13-13.4/doc/src/sgml/html/sql-set-session-authorization.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-set-session-authorization.html 2022-05-09 21:29:22.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 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
    @@ -61,4 +61,4 @@
       

    The privileges necessary to execute this command are left implementation-defined by the standard. -

    See Also

    SET ROLE
    \ No newline at end of file +

    See Also

    SET ROLE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-set-transaction.html postgresql-13-13.7/doc/src/sgml/html/sql-set-transaction.html --- postgresql-13-13.4/doc/src/sgml/html/sql-set-transaction.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-set-transaction.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -SET TRANSACTION

    SET TRANSACTION

    SET TRANSACTION — set the characteristics of the current transaction

    Synopsis

    +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 [, ...]
    @@ -173,4 +173,4 @@
        The SQL standard requires commas between successive transaction_modes, but for historical
        reasons PostgreSQL allows the commas to be
        omitted.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-show.html postgresql-13-13.7/doc/src/sgml/html/sql-show.html --- postgresql-13-13.4/doc/src/sgml/html/sql-show.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-show.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -SHOW

    SHOW

    SHOW — show the value of a run-time parameter

    Synopsis

    +SHOW

    SHOW

    SHOW — show the value of a run-time parameter

    Synopsis

     SHOW name
     SHOW ALL
     

    Description

    @@ -79,4 +79,4 @@

    Compatibility

    The SHOW command is a PostgreSQL extension. -

    See Also

    SET, RESET
    \ No newline at end of file +

    See Also

    SET, RESET
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-start-transaction.html postgresql-13-13.7/doc/src/sgml/html/sql-start-transaction.html --- postgresql-13-13.4/doc/src/sgml/html/sql-start-transaction.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-start-transaction.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -START TRANSACTION

    START TRANSACTION

    START TRANSACTION — start a transaction block

    Synopsis

    +START TRANSACTION

    START TRANSACTION

    START TRANSACTION — start a transaction block

    Synopsis

     START TRANSACTION [ transaction_mode [, ...] ]
     
     where transaction_mode is one of:
    @@ -34,4 +34,4 @@
        omitted.
       

    See also the compatibility section of SET TRANSACTION. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-syntax-calling-funcs.html postgresql-13-13.7/doc/src/sgml/html/sql-syntax-calling-funcs.html --- postgresql-13-13.4/doc/src/sgml/html/sql-syntax-calling-funcs.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-syntax-calling-funcs.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -4.3. Calling Functions

    4.3. Calling Functions

    +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 @@ -129,4 +129,4 @@ Named and mixed call notations currently cannot be used when calling an aggregate function (but they do work when an aggregate function is used as a window function). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-syntax.html postgresql-13-13.7/doc/src/sgml/html/sql-syntax.html --- postgresql-13-13.4/doc/src/sgml/html/sql-syntax.html 2021-08-09 21:02:46.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-syntax.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 4. SQL Syntax

    Chapter 4. SQL Syntax

    +Chapter 4. SQL Syntax

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-syntax-lexical.html postgresql-13-13.7/doc/src/sgml/html/sql-syntax-lexical.html --- postgresql-13-13.4/doc/src/sgml/html/sql-syntax-lexical.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-syntax-lexical.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -4.1. Lexical Structure

    4.1. Lexical Structure

    +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 @@ -648,4 +648,4 @@ you can test your application with the configuration parameter operator_precedence_warning turned on to see if any warnings are logged. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-truncate.html postgresql-13-13.7/doc/src/sgml/html/sql-truncate.html --- postgresql-13-13.4/doc/src/sgml/html/sql-truncate.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-truncate.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -TRUNCATE

    TRUNCATE

    TRUNCATE — empty a table or set of tables

    Synopsis

    +TRUNCATE

    TRUNCATE

    TRUNCATE — empty a table or set of tables

    Synopsis

     TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
         [ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]
     

    Description

    @@ -116,4 +116,4 @@ meanings. Some of the concurrency behavior of this command is left implementation-defined by the standard, so the above notes should be considered and compared with other implementations if necessary. -

    See Also

    DELETE
    \ No newline at end of file +

    See Also

    DELETE
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-unlisten.html postgresql-13-13.7/doc/src/sgml/html/sql-unlisten.html --- postgresql-13-13.4/doc/src/sgml/html/sql-unlisten.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-unlisten.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -UNLISTEN

    UNLISTEN

    UNLISTEN — stop listening for a notification

    Synopsis

    +UNLISTEN

    UNLISTEN

    UNLISTEN — stop listening for a notification

    Synopsis

     UNLISTEN { channel | * }
     

    Description

    UNLISTEN is used to remove an existing @@ -45,4 +45,4 @@ -- no NOTIFY event is received

    Compatibility

    There is no UNLISTEN command in the SQL standard. -

    See Also

    LISTEN, NOTIFY
    \ No newline at end of file +

    See Also

    LISTEN, NOTIFY
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-update.html postgresql-13-13.7/doc/src/sgml/html/sql-update.html --- postgresql-13-13.4/doc/src/sgml/html/sql-update.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-update.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -UPDATE

    UPDATE

    UPDATE — update rows of a table

    Synopsis

    +UPDATE

    UPDATE

    UPDATE — update rows of a table

    Synopsis

     [ WITH [ RECURSIVE ] with_query [, ...] ]
     UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
         SET { column_name = { expression | DEFAULT } |
    @@ -282,4 +282,4 @@
        constructor or a sub-SELECT.  An individual column's
        updated value can be specified as DEFAULT in the
        row-constructor case, but not inside a sub-SELECT.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-vacuum.html postgresql-13-13.7/doc/src/sgml/html/sql-vacuum.html --- postgresql-13-13.4/doc/src/sgml/html/sql-vacuum.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-vacuum.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -VACUUM

    VACUUM

    VACUUM — garbage-collect and optionally analyze a database

    Synopsis

    +VACUUM

    VACUUM

    VACUUM — garbage-collect and optionally analyze a database

    Synopsis

     VACUUM [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
     VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ table_and_columns [, ...] ]
     
    @@ -226,4 +226,4 @@
     VACUUM (VERBOSE, ANALYZE) onek;
     

    Compatibility

    There is no VACUUM statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sql-values.html postgresql-13-13.7/doc/src/sgml/html/sql-values.html --- postgresql-13-13.4/doc/src/sgml/html/sql-values.html 2021-08-09 21:03:03.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sql-values.html 2022-05-09 21:29:22.000000000 +0000 @@ -1,5 +1,5 @@ -VALUES

    VALUES

    VALUES — compute a set of rows

    Synopsis

    +VALUES

    VALUES

    VALUES — compute a set of rows

    Synopsis

     VALUES ( expression [, ...] ) [, ...]
         [ ORDER BY sort_expression [ ASC | DESC | USING operator ] [, ...] ]
         [ LIMIT { count | ALL } ]
    @@ -135,4 +135,4 @@
        LIMIT and OFFSET are
        PostgreSQL extensions; see also
        under SELECT.
    -  

    See Also

    INSERT, SELECT
    \ No newline at end of file +

    See Also

    INSERT, SELECT
    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ssh-tunnels.html postgresql-13-13.7/doc/src/sgml/html/ssh-tunnels.html --- postgresql-13-13.4/doc/src/sgml/html/ssh-tunnels.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ssh-tunnels.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.11. Secure TCP/IP Connections with SSH Tunnels

    18.11. Secure TCP/IP Connections with SSH Tunnels

    +18.11. Secure TCP/IP Connections with SSH Tunnels

    18.11. 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 @@ -73,4 +73,4 @@

    Tip

    Several other applications exist that can provide secure tunnels using a procedure similar in concept to the one just described. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sslinfo.html postgresql-13-13.7/doc/src/sgml/html/sslinfo.html --- postgresql-13-13.4/doc/src/sgml/html/sslinfo.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sslinfo.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.37. sslinfo

    F.37. sslinfo

    +F.37. sslinfo

    F.37. 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 @@ -132,4 +132,4 @@

    E-Mail of Cryptocom OpenSSL development group: -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/ssl-tcp.html postgresql-13-13.7/doc/src/sgml/html/ssl-tcp.html --- postgresql-13-13.4/doc/src/sgml/html/ssl-tcp.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/ssl-tcp.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.9. Secure TCP/IP Connections with SSL

    18.9. Secure TCP/IP Connections with SSL

    +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 @@ -250,4 +250,4 @@ by a chain of certificates linked to its trusted root certificate. root.key and intermediate.key should be stored offline for use in creating future certificates. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/sspi-auth.html postgresql-13-13.7/doc/src/sgml/html/sspi-auth.html --- postgresql-13-13.4/doc/src/sgml/html/sspi-auth.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/sspi-auth.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -20.7. SSPI Authentication

    20.7. SSPI Authentication

    +20.7. SSPI Authentication

    20.7. SSPI Authentication

    SSPI is a Windows technology for secure authentication with single sign-on. PostgreSQL will use SSPI in @@ -65,4 +65,4 @@ users of any realm can connect, subject to whatever user name mapping is done.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/storage-file-layout.html postgresql-13-13.7/doc/src/sgml/html/storage-file-layout.html --- postgresql-13-13.4/doc/src/sgml/html/storage-file-layout.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/storage-file-layout.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -69.1. Database File Layout

    69.1. Database File Layout

    +69.1. Database File Layout

    69.1. Database File Layout

    This section describes the storage format at the level of files and directories.

    @@ -130,4 +130,4 @@ pgsql_tmpPPP.NNN, where PPP is the PID of the owning backend and NNN distinguishes different temporary files of that backend. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/storage-fsm.html postgresql-13-13.7/doc/src/sgml/html/storage-fsm.html --- postgresql-13-13.4/doc/src/sgml/html/storage-fsm.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/storage-fsm.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -69.3. Free Space Map

    69.3. Free Space Map

    +69.3. Free Space Map

    69.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 @@ -22,4 +22,4 @@ how the FSM is structured, and how it's updated and searched. The pg_freespacemap module can be used to examine the information stored in free space maps. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/storage.html postgresql-13-13.7/doc/src/sgml/html/storage.html --- postgresql-13-13.4/doc/src/sgml/html/storage.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/storage.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 69. Database Physical Storage

    Chapter 69. Database Physical Storage

    +Chapter 69. Database Physical Storage

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/storage-init.html postgresql-13-13.7/doc/src/sgml/html/storage-init.html --- postgresql-13-13.4/doc/src/sgml/html/storage-init.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/storage-init.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,8 +1,8 @@ -69.5. The Initialization Fork

    69.5. The Initialization Fork

    +69.5. The Initialization Fork

    69.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 erased (they will be recreated automatically as needed). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/storage-page-layout.html postgresql-13-13.7/doc/src/sgml/html/storage-page-layout.html --- postgresql-13-13.4/doc/src/sgml/html/storage-page-layout.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/storage-page-layout.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -69.6. Database Page Layout

    69.6. Database Page Layout

    +69.6. Database Page Layout

    69.6. Database Page Layout

    This section provides an overview of the page format used within PostgreSQL tables and indexes.[15] Sequences and TOAST tables are formatted just like a regular table. @@ -154,4 +154,4 @@ always uses this format. All the existing index methods also use the basic format, but the data kept on index metapages usually doesn't follow the item layout rules. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/storage-toast.html postgresql-13-13.7/doc/src/sgml/html/storage-toast.html --- postgresql-13-13.4/doc/src/sgml/html/storage-toast.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/storage-toast.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -69.2. TOAST

    69.2. TOAST

    +69.2. TOAST

    69.2. TOAST

    This section provides an overview of TOAST (The Oversized-Attribute Storage Technique).

    @@ -218,4 +218,4 @@ expanded to normal in-line varlena values before storage — and then possibly converted to on-disk TOAST pointers, if the containing tuple would otherwise be too big. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/storage-vm.html postgresql-13-13.7/doc/src/sgml/html/storage-vm.html --- postgresql-13-13.4/doc/src/sgml/html/storage-vm.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/storage-vm.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -69.4. Visibility Map

    69.4. Visibility Map

    +69.4. Visibility Map

    69.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 @@ -26,4 +26,4 @@

    The pg_visibility module can be used to examine the information stored in the visibility map. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/supported-platforms.html postgresql-13-13.7/doc/src/sgml/html/supported-platforms.html --- postgresql-13-13.4/doc/src/sgml/html/supported-platforms.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/supported-platforms.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -16.6. Supported Platforms

    16.6. Supported Platforms

    +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 @@ -36,4 +36,4 @@ in porting PostgreSQL to a new platform, is the appropriate place to discuss that. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/system-catalog-declarations.html postgresql-13-13.7/doc/src/sgml/html/system-catalog-declarations.html --- postgresql-13-13.4/doc/src/sgml/html/system-catalog-declarations.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/system-catalog-declarations.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -70.1. System Catalog Declaration Rules

    70.1. System Catalog Declaration Rules

    +70.1. System Catalog Declaration Rules

    70.1. System Catalog Declaration Rules

    The key part of a catalog header file is a C structure definition describing the layout of each row of the catalog. This begins with a CATALOG macro, which so far as the C compiler is @@ -70,4 +70,4 @@ in pg_attribute, but fortunately genbki.pl handles that chore nowadays.) Avoid making new catalogs be bootstrap catalogs if at all possible. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/system-catalog-initial-data.html postgresql-13-13.7/doc/src/sgml/html/system-catalog-initial-data.html --- postgresql-13-13.4/doc/src/sgml/html/system-catalog-initial-data.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/system-catalog-initial-data.html 2022-05-09 21:29:27.000000000 +0000 @@ -1,5 +1,5 @@ -70.2. System Catalog Initial Data

    70.2. System Catalog Initial Data

    +70.2. System Catalog Initial Data

    70.2. System Catalog Initial Data

    Each catalog that has any manually-created initial data (some do not) has a corresponding .dat file that contains its initial data in an editable format. @@ -376,4 +376,4 @@ and remove_pg_type_oid_symbols.pl attached to this message: https://www.postgresql.org/message-id/CAJVSVGVX8gXnPm+Xa=DxR7kFYprcQ1tNcCT5D0O3ShfnM6jehA@mail.gmail.com -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tableam.html postgresql-13-13.7/doc/src/sgml/html/tableam.html --- postgresql-13-13.4/doc/src/sgml/html/tableam.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tableam.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 60. Table Access Method Interface Definition

    Chapter 60. Table Access Method Interface Definition

    +Chapter 60. Table Access Method Interface Definition

    Chapter 60. Table Access Method Interface Definition

    This chapter explains the interface between the core PostgreSQL system and table access methods, which manage the storage for tables. The core system @@ -72,4 +72,4 @@ the existing heap implementation present in src/backend/access/heap/heapam_handler.c for details of its implementation. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tablefunc.html postgresql-13-13.7/doc/src/sgml/html/tablefunc.html --- postgresql-13-13.4/doc/src/sgml/html/tablefunc.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tablefunc.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.38. tablefunc

    F.38. tablefunc

    +F.38. tablefunc

    F.38. 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 @@ -610,4 +610,4 @@

    F.38.2. Author

    Joe Conway -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tablesample-method.html postgresql-13-13.7/doc/src/sgml/html/tablesample-method.html --- postgresql-13-13.4/doc/src/sgml/html/tablesample-method.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tablesample-method.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 57. Writing a Table Sampling Method

    Chapter 57. Writing a Table Sampling Method

    +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 @@ -54,4 +54,4 @@ the src/backend/access/tablesample subdirectory of the source tree for the built-in sampling methods, and into the contrib subdirectory for add-on methods. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tablesample-support-functions.html postgresql-13-13.7/doc/src/sgml/html/tablesample-support-functions.html --- postgresql-13-13.4/doc/src/sgml/html/tablesample-support-functions.html 2021-08-09 21:03:08.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tablesample-support-functions.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -57.1. Sampling Method Support Functions

    57.1. Sampling Method Support Functions

    +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 @@ -160,4 +160,4 @@ should be cleaned up. This function can be omitted (set the pointer to NULL) in the common case where no such resources exist. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tcn.html postgresql-13-13.7/doc/src/sgml/html/tcn.html --- postgresql-13-13.4/doc/src/sgml/html/tcn.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tcn.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.39. tcn

    F.39. tcn

    +F.39. tcn

    F.39. 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. @@ -52,4 +52,4 @@ DELETE 1 Asynchronous notification "tcn" with payload ""tcndata",D,"a"='1',"b"='2012-12-22'" received from server process with PID 22770.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/test-decoding.html postgresql-13-13.7/doc/src/sgml/html/test-decoding.html --- postgresql-13-13.4/doc/src/sgml/html/test-decoding.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/test-decoding.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.40. test_decoding

    F.40. test_decoding

    +F.40. test_decoding

    F.40. 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. @@ -25,4 +25,4 @@ 0/16D3398 | 692 | COMMIT (8 rows)

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-configuration.html postgresql-13-13.7/doc/src/sgml/html/textsearch-configuration.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-configuration.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-configuration.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.7. Configuration Example

    12.7. Configuration Example

    +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 @@ -105,4 +105,4 @@ ---------------------------- public.pg

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-controls.html postgresql-13-13.7/doc/src/sgml/html/textsearch-controls.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-controls.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-controls.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.3. Controlling Text Search

    12.3. Controlling Text Search

    +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 @@ -547,4 +547,4 @@ ts_headline uses the original document, not a tsvector summary, so it can be slow and should be used with care. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-debugging.html postgresql-13-13.7/doc/src/sgml/html/textsearch-debugging.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-debugging.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-debugging.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.8. Testing and Debugging Text Search

    12.8. Testing and Debugging Text Search

    +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 @@ -250,4 +250,4 @@ ----------------- 'sn'

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-dictionaries.html postgresql-13-13.7/doc/src/sgml/html/textsearch-dictionaries.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-dictionaries.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-dictionaries.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.6. Dictionaries

    12.6. Dictionaries

    +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 @@ -658,4 +658,4 @@ at the end of the dictionary list. It is useless to have it before any other dictionary because a token will never pass through it to the next dictionary. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-features.html postgresql-13-13.7/doc/src/sgml/html/textsearch-features.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-features.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-features.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.4. Additional Features

    12.4. Additional Features

    +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

    @@ -389,4 +389,4 @@ ORDER BY nentry DESC, ndoc DESC, word LIMIT 10;

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch.html postgresql-13-13.7/doc/src/sgml/html/textsearch.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch.html 2022-05-09 21:29:08.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-13-13.4/doc/src/sgml/html/textsearch-indexes.html postgresql-13-13.7/doc/src/sgml/html/textsearch-indexes.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-indexes.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-indexes.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,20 +1,24 @@ -12.9. GIN and GiST Index Types

    12.9. GIN and GiST Index Types

    +12.9. Preferred Index Types for Text Search

    12.9. Preferred Index Types for Text Search

    There are two kinds of indexes that can be used to speed up full text - searches. + searches: + GIN and + GiST. 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 usually desirable. +

    + To create such an index, do one of:

    - + CREATE INDEX name ON table USING GIN (column);

    Creates a GIN (Generalized Inverted Index)-based index. The column must be of tsvector type.

    - + CREATE INDEX name ON table USING GIST (column [ { DEFAULT | tsvector_ops } (siglen = number) ] );

    @@ -73,4 +77,4 @@ servers and collecting external search results, e.g., via Foreign Data access. The latter is possible because ranking functions use only local information. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-intro.html postgresql-13-13.7/doc/src/sgml/html/textsearch-intro.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-intro.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-intro.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.1. Introduction

    12.1. Introduction

    +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 @@ -92,7 +92,7 @@ (Section 9.13), the most important of which is the match operator @@, which we introduce in Section 12.1.2. Full text searches can be accelerated - using indexes (Section 12.9). + using indexes (Section 12.9).

    12.1.1. What Is a Document?

    A document is the unit of searching in a full text search system; for example, a magazine article or email message. The text search @@ -336,4 +336,4 @@ parsers and templates, no special privilege is needed to create a new dictionary or configuration. Examples of creating custom dictionaries and configurations appear later in this chapter. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-limitations.html postgresql-13-13.7/doc/src/sgml/html/textsearch-limitations.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-limitations.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-limitations.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.11. Limitations

    12.11. Limitations

    +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 2 kilobytes

    • The length of a tsvector (lexemes + positions) must be @@ -18,4 +18,4 @@ Another example — the PostgreSQL mailing list archives contained 910,989 unique words with 57,491,343 lexemes in 461,020 messages. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-parsers.html postgresql-13-13.7/doc/src/sgml/html/textsearch-parsers.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-parsers.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-parsers.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.5. Parsers

    12.5. Parsers

    +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. @@ -56,4 +56,4 @@ host | Host | example.com url_path | URL path | /stuff/index.html

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-psql.html postgresql-13-13.7/doc/src/sgml/html/textsearch-psql.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-psql.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-psql.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.10. psql Support

    12.10. psql Support

    +12.10. psql Support

    12.10. psql Support

    Information about text search configuration objects can be obtained in psql using a set of commands:

    @@ -156,4 +156,4 @@
      pg_catalog | synonym   | synonym dictionary: replace word by its synonym
      pg_catalog | thesaurus | thesaurus dictionary: phrase by phrase substitution
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/textsearch-tables.html postgresql-13-13.7/doc/src/sgml/html/textsearch-tables.html --- postgresql-13-13.4/doc/src/sgml/html/textsearch-tables.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/textsearch-tables.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -12.2. Tables and Indexes

    12.2. Tables and Indexes

    +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. @@ -51,7 +51,7 @@ searches. Practical use of text searching usually requires creating an index.

    12.2.2. Creating Indexes

    - We can create a GIN index (Section 12.9) to speed up text searches: + We can create a GIN index (Section 12.9) to speed up text searches:

     CREATE INDEX pgweb_idx ON pgweb USING GIN (to_tsvector('english', body));
    @@ -133,7 +133,7 @@
         default_text_search_config.  Another advantage is that
         searches will be faster, since it will not be necessary to redo the
         to_tsvector calls to verify index matches.  (This is more
    -    important when using a GiST index than a GIN index; see Section 12.9.)  The expression-index approach is
    +    important when using a GiST index than a GIN index; see Section 12.9.)  The expression-index approach is
         simpler to set up, however, and it requires less disk space since the
         tsvector representation is not stored explicitly.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/transaction-iso.html postgresql-13-13.7/doc/src/sgml/html/transaction-iso.html --- postgresql-13-13.4/doc/src/sgml/html/transaction-iso.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/transaction-iso.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -13.2. Transaction Isolation

    13.2. Transaction Isolation

    +13.2. Transaction Isolation

    13.2. Transaction Isolation

    The SQL standard defines four levels of transaction isolation. The most strict is Serializable, which is defined by the standard in a paragraph which says that any @@ -505,4 +505,4 @@ Some differences in behavior and performance may be observed when compared with other systems that use a traditional locking technique. Please see [ports12] for detailed information. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/trigger-datachanges.html postgresql-13-13.7/doc/src/sgml/html/trigger-datachanges.html --- postgresql-13-13.4/doc/src/sgml/html/trigger-datachanges.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/trigger-datachanges.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -38.2. Visibility of Data Changes

    38.2. Visibility of Data Changes

    +38.2. Visibility of Data Changes

    38.2. Visibility of Data Changes

    If you execute SQL commands in your trigger function, and these commands access the table that the trigger is for, then you need to be aware of the data visibility rules, because they determine @@ -43,4 +43,4 @@

    Further information about data visibility rules can be found in Section 46.5. The example in Section 38.4 contains a demonstration of these rules. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/trigger-definition.html postgresql-13-13.7/doc/src/sgml/html/trigger-definition.html --- postgresql-13-13.4/doc/src/sgml/html/trigger-definition.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/trigger-definition.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -38.1. Overview of Trigger Behavior

    38.1. Overview of Trigger Behavior

    +38.1. Overview of Trigger Behavior

    38.1. Overview of Trigger Behavior

    A trigger is a specification that the database should automatically execute a particular function whenever a certain type of operation is performed. Triggers can be attached to tables (partitioned or not), @@ -287,4 +287,4 @@ that is being used, but the typical approach is to make the transition tables act like read-only temporary tables that can be accessed by SQL commands issued within the trigger function. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/trigger-example.html postgresql-13-13.7/doc/src/sgml/html/trigger-example.html --- postgresql-13-13.4/doc/src/sgml/html/trigger-example.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/trigger-example.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -38.4. A Complete Trigger Example

    38.4. A Complete Trigger Example

    +38.4. A Complete Trigger Example

    38.4. A Complete Trigger Example

    Here is a very simple example of a trigger function written in C. (Examples of triggers written in procedural languages can be found in the documentation of the procedural languages.) @@ -177,4 +177,4 @@ There are more complex examples in src/test/regress/regress.c and in spi. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/trigger-interface.html postgresql-13-13.7/doc/src/sgml/html/trigger-interface.html --- postgresql-13-13.4/doc/src/sgml/html/trigger-interface.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/trigger-interface.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -38.3. Writing Trigger Functions in C

    38.3. Writing Trigger Functions in C

    +38.3. Writing Trigger Functions in C

    38.3. Writing Trigger Functions in C

    This section describes the low-level details of the interface to a trigger function. This information is only needed when writing trigger functions in C. If you are using a higher-level language then @@ -180,4 +180,4 @@ Be careful to return either tg_trigtuple or tg_newtuple, as appropriate, if you don't want to modify the row being operated on. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/triggers.html postgresql-13-13.7/doc/src/sgml/html/triggers.html --- postgresql-13-13.4/doc/src/sgml/html/triggers.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/triggers.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 38. Triggers

    Chapter 38. Triggers

    +Chapter 38. Triggers

    Chapter 38. Triggers

    This chapter provides general information about writing trigger functions. Trigger functions can be written in most of the available procedural languages, including @@ -15,4 +15,4 @@ most people find it easier to use one of the procedural languages. It is not currently possible to write a trigger function in the plain SQL function language. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tsm-system-rows.html postgresql-13-13.7/doc/src/sgml/html/tsm-system-rows.html --- postgresql-13-13.4/doc/src/sgml/html/tsm-system-rows.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tsm-system-rows.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.41. tsm_system_rows

    F.41. tsm_system_rows

    +F.41. tsm_system_rows

    F.41. tsm_system_rows

    The tsm_system_rows module provides the table sampling method SYSTEM_ROWS, which can be used in the TABLESAMPLE clause of a SELECT @@ -36,4 +36,4 @@ This command will return a sample of 100 rows from the table my_table (unless the table does not have 100 visible rows, in which case all its rows are returned). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tsm-system-time.html postgresql-13-13.7/doc/src/sgml/html/tsm-system-time.html --- postgresql-13-13.4/doc/src/sgml/html/tsm-system-time.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tsm-system-time.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.42. tsm_system_time

    F.42. tsm_system_time

    +F.42. tsm_system_time

    F.42. tsm_system_time

    The tsm_system_time module provides the table sampling method SYSTEM_TIME, which can be used in the TABLESAMPLE clause of a SELECT @@ -38,4 +38,4 @@ This command will return as large a sample of my_table as it can read in 1 second (1000 milliseconds). Of course, if the whole table can be read in under 1 second, all its rows will be returned. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-accessdb.html postgresql-13-13.7/doc/src/sgml/html/tutorial-accessdb.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-accessdb.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-accessdb.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -1.4. Accessing a Database

    1.4. Accessing a Database

    +1.4. Accessing a Database

    1.4. Accessing a Database

    Once you have created a database, you can access it by:

    • @@ -32,7 +32,7 @@ In psql, you will be greeted with the following message:

      -psql (13.4)
      +psql (13.7)
       Type "help" for help.
       
       mydb=>
      @@ -63,7 +63,7 @@
       mydb=> SELECT version();
                                                version
       -------------------------------------------------------------------​-----------------------
      - PostgreSQL 13.4 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit
      + PostgreSQL 13.7 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit
       (1 row)
       
       mydb=> SELECT current_date;
      @@ -100,4 +100,4 @@
           full capabilities of psql are documented in
           psql.  In this tutorial we will not use these
           features explicitly, but you can use them yourself when it is helpful.
      -   

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-advanced.html postgresql-13-13.7/doc/src/sgml/html/tutorial-advanced.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-advanced.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-advanced.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 3. Advanced Features \ No newline at end of file +Chapter 3. Advanced Features \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-advanced-intro.html postgresql-13-13.7/doc/src/sgml/html/tutorial-advanced-intro.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-advanced-intro.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-advanced-intro.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -3.1. Introduction

    3.1. Introduction

    +3.1. Introduction

    3.1. Introduction

    In the previous chapter we have covered the basics of using SQL to store and access your data in PostgreSQL. We will now discuss some @@ -15,4 +15,4 @@ file also contains some sample data to load, which is not repeated here. (Refer to Section 2.1 for how to use the file.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-agg.html postgresql-13-13.7/doc/src/sgml/html/tutorial-agg.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-agg.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-agg.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2.7. Aggregate Functions

    2.7. Aggregate Functions

    +2.7. Aggregate Functions

    2.7. Aggregate Functions

    Like most other relational database products, PostgreSQL supports aggregate functions. @@ -137,4 +137,4 @@ more efficient than adding the restriction to HAVING, because we avoid doing the grouping and aggregate calculations for all rows that fail the WHERE check. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-arch.html postgresql-13-13.7/doc/src/sgml/html/tutorial-arch.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-arch.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-arch.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -1.2. Architectural Fundamentals

    1.2. Architectural Fundamentals

    +1.2. Architectural Fundamentals

    1.2. Architectural Fundamentals

    Before we proceed, you should understand the basic PostgreSQL system architecture. Understanding how the parts of @@ -46,4 +46,4 @@ client connections, whereas client and associated server processes come and go. (All of this is of course invisible to the user. We only mention it here for completeness.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-concepts.html postgresql-13-13.7/doc/src/sgml/html/tutorial-concepts.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-concepts.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-concepts.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2.2. Concepts

    2.2. Concepts

    +2.2. Concepts

    2.2. Concepts

    @@ -34,4 +34,4 @@ Tables are grouped into databases, and a collection of databases managed by a single PostgreSQL server instance constitutes a database cluster. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-conclusion.html postgresql-13-13.7/doc/src/sgml/html/tutorial-conclusion.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-conclusion.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-conclusion.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -3.7. Conclusion

    3.7. Conclusion

    +3.7. Conclusion

    3.7. Conclusion

    PostgreSQL has many features not touched upon in this tutorial introduction, which has been oriented toward newer users of SQL. These @@ -9,4 +9,4 @@ If you feel you need more introductory material, please visit the PostgreSQL web site for links to more resources. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-createdb.html postgresql-13-13.7/doc/src/sgml/html/tutorial-createdb.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-createdb.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-createdb.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -1.3. Creating a Database

    1.3. Creating a Database

    +1.3. Creating a Database

    1.3. Creating a Database

    The first test to see whether you can access the database server is to try to create a database. A running PostgreSQL server can manage many @@ -116,4 +116,4 @@ create databases. Instead of logging in as that user you can also specify the -U option everywhere to select a PostgreSQL user name to connect as. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-delete.html postgresql-13-13.7/doc/src/sgml/html/tutorial-delete.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-delete.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-delete.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2.9. Deletions

    2.9. Deletions

    +2.9. Deletions

    2.9. Deletions

    Rows can be removed from a table using the DELETE command. Suppose you are no longer interested in the weather of Hayward. @@ -31,4 +31,4 @@ remove all rows from the given table, leaving it empty. The system will not request confirmation before doing this! -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-fk.html postgresql-13-13.7/doc/src/sgml/html/tutorial-fk.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-fk.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-fk.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -3.3. Foreign Keys

    3.3. Foreign Keys

    +3.3. Foreign Keys

    3.3. Foreign Keys

    Recall the weather and cities tables from Chapter 2. Consider the following problem: You want to make sure that no one can insert rows in the @@ -48,4 +48,4 @@ for more information. Making correct use of foreign keys will definitely improve the quality of your database applications, so you are strongly encouraged to learn about them. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial.html postgresql-13-13.7/doc/src/sgml/html/tutorial.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -Part I. Tutorial \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-inheritance.html postgresql-13-13.7/doc/src/sgml/html/tutorial-inheritance.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-inheritance.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-inheritance.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -3.6. Inheritance

    3.6. Inheritance

    +3.6. Inheritance

    3.6. Inheritance

    Inheritance is a concept from object-oriented databases. It opens up interesting new possibilities of database design.

    @@ -110,4 +110,4 @@ Although inheritance is frequently useful, it has not been integrated with unique constraints or foreign keys, which limits its usefulness. See Section 5.10 for more detail. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-install.html postgresql-13-13.7/doc/src/sgml/html/tutorial-install.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-install.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-install.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -1.1. Installation

    1.1. Installation

    +1.1. Installation

    1.1. Installation

    Before you can use PostgreSQL you need to install it, of course. It is possible that PostgreSQL is already installed at your @@ -35,4 +35,4 @@ site administrator or, if that is you, the documentation to make sure that your environment is properly set up. If you did not understand the preceding paragraph then read the next section. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-join.html postgresql-13-13.7/doc/src/sgml/html/tutorial-join.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-join.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-join.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2.6. Joins Between Tables

    2.6. Joins Between Tables

    +2.6. Joins Between Tables

    2.6. Joins Between Tables

    Thus far, our queries have only accessed one table at a time. Queries can access multiple tables at once, or access the same table in such a way that multiple rows of the table are being @@ -159,4 +159,4 @@ WHERE w.city = c.name;

    You will encounter this style of abbreviating quite frequently. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-populate.html postgresql-13-13.7/doc/src/sgml/html/tutorial-populate.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-populate.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-populate.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2.4. Populating a Table With Rows

    2.4. Populating a Table With Rows

    +2.4. Populating a Table With Rows

    2.4. Populating a Table With Rows

    The INSERT statement is used to populate a table with rows: @@ -56,4 +56,4 @@ machine running the backend process, not the client, since the backend process reads the file directly. You can read more about the COPY command in COPY. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-select.html postgresql-13-13.7/doc/src/sgml/html/tutorial-select.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-select.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-select.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2.5. Querying a Table

    2.5. Querying a Table

    +2.5. Querying a Table

    2.5. Querying a Table

    @@ -139,4 +139,4 @@ required by the SQL standard, and current PostgreSQL does not guarantee that DISTINCT causes the rows to be ordered. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-sql.html postgresql-13-13.7/doc/src/sgml/html/tutorial-sql.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-sql.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-sql.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 2. The SQL Language \ No newline at end of file +Chapter 2. The SQL Language \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-sql-intro.html postgresql-13-13.7/doc/src/sgml/html/tutorial-sql-intro.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-sql-intro.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-sql-intro.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2.1. Introduction

    2.1. Introduction

    +2.1. Introduction

    2.1. Introduction

    This chapter provides an overview of how to use SQL to perform simple operations. This tutorial is only intended to give you an introduction and is in no @@ -40,4 +40,4 @@ single step mode which pauses before sending each statement to the server. The commands used in this section are in the file basics.sql. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-start.html postgresql-13-13.7/doc/src/sgml/html/tutorial-start.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-start.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-start.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 1. Getting Started \ No newline at end of file +Chapter 1. Getting Started \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-table.html postgresql-13-13.7/doc/src/sgml/html/tutorial-table.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-table.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-table.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2.3. Creating a New Table

    2.3. Creating a New Table

    +2.3. Creating a New Table

    2.3. Creating a New Table

    You can create a new table by specifying the table name, along with all column names and their types: @@ -66,4 +66,4 @@

     DROP TABLE tablename;
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-transactions.html postgresql-13-13.7/doc/src/sgml/html/tutorial-transactions.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-transactions.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-transactions.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -3.4. Transactions

    3.4. Transactions

    +3.4. Transactions

    3.4. Transactions

    Transactions are a fundamental concept of all database systems. The essential point of a transaction is that it bundles multiple steps into a single, all-or-nothing operation. The intermediate @@ -139,4 +139,4 @@ transaction block that was put in aborted state by the system due to an error, short of rolling it back completely and starting again. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-update.html postgresql-13-13.7/doc/src/sgml/html/tutorial-update.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-update.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-update.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -2.8. Updates

    2.8. Updates

    +2.8. Updates

    2.8. Updates

    You can update existing rows using the UPDATE command. Suppose you discover the temperature readings are @@ -23,4 +23,4 @@ Hayward | 35 | 52 | | 1994-11-29 (3 rows)

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-views.html postgresql-13-13.7/doc/src/sgml/html/tutorial-views.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-views.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-views.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -3.2. Views

    3.2. Views

    +3.2. Views

    3.2. Views

    Refer back to the queries in Section 2.6. Suppose the combined listing of weather records and city location is of particular interest to your application, but you do not want @@ -23,4 +23,4 @@

    Views can be used in almost any place a real table can be used. Building views upon other views is not uncommon. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/tutorial-window.html postgresql-13-13.7/doc/src/sgml/html/tutorial-window.html --- postgresql-13-13.4/doc/src/sgml/html/tutorial-window.html 2021-08-09 21:02:45.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/tutorial-window.html 2022-05-09 21:29:04.000000000 +0000 @@ -1,5 +1,5 @@ -3.5. Window Functions

    3.5. Window Functions

    +3.5. Window Functions

    3.5. Window Functions

    A window function performs a calculation across a set of table rows that are somehow related to the current row. This is comparable to the type of calculation that can be done with an aggregate function. @@ -199,4 +199,4 @@ There are options to define the window frame in other ways, but this tutorial does not cover them. See Section 4.2.8 for details. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/typeconv-func.html postgresql-13-13.7/doc/src/sgml/html/typeconv-func.html --- postgresql-13-13.4/doc/src/sgml/html/typeconv-func.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/typeconv-func.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -10.3. Functions

    10.3. Functions

    +10.3. Functions

    10.3. Functions

    The specific function that is referenced by a function call is determined using the following procedure.

    Function Type Resolution

    1. @@ -265,4 +265,4 @@ is no need to have a special case. See CREATE CAST for additional commentary. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/typeconv.html postgresql-13-13.7/doc/src/sgml/html/typeconv.html --- postgresql-13-13.4/doc/src/sgml/html/typeconv.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/typeconv.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 10. Type Conversion

    Chapter 10. Type Conversion

    +Chapter 10. Type Conversion

    Chapter 10. Type Conversion

    SQL statements can, intentionally or not, require the mixing of different data types in the same expression. PostgreSQL has extensive facilities for @@ -16,4 +16,4 @@ Refer to the relevant sections in Chapter 8 and Chapter 9 for more information on specific data types and allowed functions and operators. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/typeconv-oper.html postgresql-13-13.7/doc/src/sgml/html/typeconv-oper.html --- postgresql-13-13.4/doc/src/sgml/html/typeconv-oper.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/typeconv-oper.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -10.2. Operators

    10.2. Operators

    +10.2. Operators

    10.2. Operators

    The specific operator that is referenced by an operator expression is determined using the following procedure. Note that this procedure is indirectly affected @@ -244,4 +244,4 @@ search path containing schemas that permit untrusted users to create objects is not a secure schema usage pattern. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/typeconv-overview.html postgresql-13-13.7/doc/src/sgml/html/typeconv-overview.html --- postgresql-13-13.4/doc/src/sgml/html/typeconv-overview.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/typeconv-overview.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -10.1. Overview

    10.1. Overview

    +10.1. Overview

    10.1. Overview

    SQL is a strongly typed language. That is, every data item has an associated data type which determines its behavior and allowed usage. PostgreSQL has an extensible type system that is @@ -110,4 +110,4 @@ if then the user defines a new function with the correct argument types, the parser should use this new function and no longer do implicit conversion to use the old function.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/typeconv-query.html postgresql-13-13.7/doc/src/sgml/html/typeconv-query.html --- postgresql-13-13.4/doc/src/sgml/html/typeconv-query.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/typeconv-query.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -10.4. Value Storage

    10.4. Value Storage

    +10.4. Value Storage

    10.4. Value Storage

    Values to be inserted into a table are converted to the destination column's data type according to the following steps. @@ -52,4 +52,4 @@ and applied to the operator's result and the stored column length. This type-specific function performs the required length check and addition of padding spaces. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/typeconv-select.html postgresql-13-13.7/doc/src/sgml/html/typeconv-select.html --- postgresql-13-13.4/doc/src/sgml/html/typeconv-select.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/typeconv-select.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -10.6. SELECT Output Columns

    10.6. SELECT Output Columns

    +10.6. SELECT Output Columns

    10.6. SELECT Output Columns

    The rules given in the preceding sections will result in assignment of non-unknown data types to all expressions in a SQL query, except for unspecified-type literals that appear as simple output @@ -27,4 +27,4 @@ unspecified-type literals in a SELECT output list were left as type unknown. That had assorted bad consequences, so it's been changed. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/typeconv-union-case.html postgresql-13-13.7/doc/src/sgml/html/typeconv-union-case.html --- postgresql-13-13.4/doc/src/sgml/html/typeconv-union-case.html 2021-08-09 21:02:49.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/typeconv-union-case.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -10.5. UNION, CASE, and Related Constructs

    10.5. UNION, CASE, and Related Constructs

    +10.5. UNION, CASE, and Related Constructs

    10.5. UNION, CASE, and Related Constructs

    SQL UNION constructs must match up possibly dissimilar types to become a single result set. The resolution algorithm is applied separately to each output column of a union query. The @@ -111,4 +111,4 @@ input, with the THEN clauses(s) considered after that. In all other cases, left to right means the order in which the expressions appear in the query text. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/unaccent.html postgresql-13-13.7/doc/src/sgml/html/unaccent.html --- postgresql-13-13.4/doc/src/sgml/html/unaccent.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/unaccent.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.43. unaccent

    F.43. unaccent

    +F.43. unaccent

    F.43. unaccent

    unaccent is a text search dictionary that removes accents (diacritic signs) from lexemes. It's a filtering dictionary, which means its output is @@ -128,4 +128,4 @@ SELECT unaccent('unaccent', 'Hôtel'); SELECT unaccent('Hôtel');

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/unsupported-features-sql-standard.html postgresql-13-13.7/doc/src/sgml/html/unsupported-features-sql-standard.html --- postgresql-13-13.4/doc/src/sgml/html/unsupported-features-sql-standard.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/unsupported-features-sql-standard.html 2022-05-09 21:29:29.000000000 +0000 @@ -1,9 +1,9 @@ -D.2. Unsupported Features

    D.2. Unsupported Features

    +D.2. Unsupported Features

    D.2. Unsupported Features

    The following features defined in SQL:2016 are not implemented in this release of PostgreSQL. In a few cases, equivalent functionality is available.

    IdentifierCore?DescriptionComment
    B011 Embedded Ada 
    B013 Embedded COBOL 
    B014 Embedded Fortran 
    B015 Embedded MUMPS 
    B016 Embedded Pascal 
    B017 Embedded PL/I 
    B031 Basic dynamic SQL 
    B032 Extended dynamic SQL 
    B032-01 <describe input statement> 
    B033 Untyped SQL-invoked function arguments 
    B034 Dynamic specification of cursor attributes 
    B035 Non-extended descriptor names 
    B041 Extensions to embedded SQL exception declarations 
    B051 Enhanced execution rights 
    B111 Module language Ada 
    B112 Module language C 
    B113 Module language COBOL 
    B114 Module language Fortran 
    B115 Module language MUMPS 
    B116 Module language Pascal 
    B117 Module language PL/I 
    B121 Routine language Ada 
    B122 Routine language C 
    B123 Routine language COBOL 
    B124 Routine language Fortran 
    B125 Routine language MUMPS 
    B126 Routine language Pascal 
    B127 Routine language PL/I 
    B128 Routine language SQL 
    B200 Polymorphic table functions 
    B201 More than one PTF generic table parameter 
    B202 PTF Copartitioning 
    B203 More than one copartition specification 
    B204 PRUNE WHEN EMPTY 
    B205 Pass-through columns 
    B206 PTF descriptor parameters 
    B207 Cross products of partitionings 
    B208 PTF component procedure interface 
    B209 PTF extended names 
    B211 Module language Ada: VARCHAR and NUMERIC support 
    B221 Routine language Ada: VARCHAR and NUMERIC support 
    F054 TIMESTAMP in DATE type precedence list 
    F121 Basic diagnostics management 
    F121-01 GET DIAGNOSTICS statement 
    F121-02 SET TRANSACTION statement: DIAGNOSTICS SIZE clause 
    F122 Enhanced diagnostics management 
    F123 All diagnostics 
    F263 Comma-separated predicates in simple CASE expression 
    F291 UNIQUE predicate 
    F301 CORRESPONDING in query expressions 
    F312 MERGE statementconsider INSERT ... ON CONFLICT DO UPDATE
    F313 Enhanced MERGE statement 
    F314 MERGE statement with DELETE branch 
    F341 Usage tablesno ROUTINE_*_USAGE tables
    F403 Partitioned joined tables 
    F404 Range variable for common column names 
    F451 Character set definition 
    F461 Named character sets 
    F492 Optional table constraint enforcement 
    F521 Assertions 
    F671 Subqueries in CHECKintentionally omitted
    F673 Reads SQL-data routine invocations in CHECK constraints 
    F693 SQL-session and client module collations 
    F695 Translation support 
    F696 Additional translation documentation 
    F721 Deferrable constraintsforeign and unique keys only
    F741 Referential MATCH typesno partial match yet
    F812CoreBasic flagging 
    F813 Extended flagging 
    F821 Local table references 
    F831 Full cursor update 
    F831-01 Updatable scrollable cursors 
    F831-02 Updatable ordered cursors 
    F841 LIKE_REGEX predicate 
    F842 OCCURRENCES_REGEX function 
    F843 POSITION_REGEX function 
    F844 SUBSTRING_REGEX function 
    F845 TRANSLATE_REGEX function 
    F846 Octet support in regular expression operators 
    F847 Nonconstant regular expressions 
    F866 FETCH FIRST clause: PERCENT option 
    R010 Row pattern recognition: FROM clause 
    R020 Row pattern recognition: WINDOW clause 
    R030 Row pattern recognition: full aggregate support 
    S011CoreDistinct data types 
    S011-01CoreUSER_DEFINED_TYPES view 
    S023 Basic structured types 
    S024 Enhanced structured types 
    S025 Final structured types 
    S026 Self-referencing structured types 
    S027 Create method by specific method name 
    S028 Permutable UDT options list 
    S041 Basic reference types 
    S043 Enhanced reference types 
    S051 Create table of typepartially supported
    S081 Subtables 
    S091 Basic array supportpartially supported
    S091-01 Arrays of built-in data types 
    S091-02 Arrays of distinct types 
    S091-03 Array expressions 
    S094 Arrays of reference types 
    S097 Array element assignment 
    S151 Type predicate 
    S161 Subtype treatment 
    S162 Subtype treatment for references 
    S202 SQL-invoked routines on multisets 
    S231 Structured type locators 
    S232 Array locators 
    S233 Multiset locators 
    S241 Transform functions 
    S242 Alter transform statement 
    S251 User-defined orderings 
    S261 Specific type method 
    S271 Basic multiset support 
    S272 Multisets of user-defined types 
    S274 Multisets of reference types 
    S275 Advanced multiset support 
    S281 Nested collection types 
    S291 Unique constraint on entire row 
    S401 Distinct types based on array types 
    S402 Distinct types based on distinct types 
    S403 ARRAY_MAX_CARDINALITY 
    S404 TRIM_ARRAY 
    T011 Timestamp in Information Schema 
    T021 BINARY and VARBINARY data types 
    T022 Advanced support for BINARY and VARBINARY data types 
    T023 Compound binary literal 
    T024 Spaces in binary literals 
    T041 Basic LOB data type support 
    T041-01 BLOB data type 
    T041-02 CLOB data type 
    T041-03 POSITION, LENGTH, LOWER, TRIM, UPPER, and SUBSTRING functions for LOB data types 
    T041-04 Concatenation of LOB data types 
    T041-05 LOB locator: non-holdable 
    T042 Extended LOB data type support 
    T043 Multiplier T 
    T044 Multiplier P 
    T051 Row types 
    T053 Explicit aliases for all-fields reference 
    T061 UCS support 
    T076 DECFLOAT data type 
    T101 Enhanced nullability determination 
    T111 Updatable joins, unions, and columns 
    T175 Generated columnsmostly supported
    T176 Sequence generator supportsupported except for NEXT VALUE FOR
    T180 System-versioned tables 
    T181 Application-time period tables 
    T211 Basic trigger capability 
    T211-06 Support for run-time rules for the interaction of triggers and constraints 
    T211-08 Multiple triggers for the same event are executed in the order in which they were created in the catalogintentionally omitted
    T251 SET TRANSACTION statement: LOCAL option 
    T272 Enhanced savepoint management 
    T301 Functional dependenciespartially supported
    T321CoreBasic SQL-invoked routines 
    T321-05CoreRETURN statement 
    T322 Declared data type attributes 
    T324 Explicit security for SQL routines 
    T326 Table functions 
    T332 Extended rolesmostly supported
    T434 GROUP BY DISTINCT 
    T471 Result sets return value 
    T472 DESCRIBE CURSOR 
    T495 Combined data change and retrievaldifferent syntax
    T502 Period predicates 
    T511 Transaction counts 
    T522 Default values for IN parameters of SQL-invoked proceduressupported except DEFAULT key word in invocation
    T561 Holdable locators 
    T571 Array-returning external SQL-invoked functions 
    T572 Multiset-returning external SQL-invoked functions 
    T601 Local cursor references 
    T616 Null treatment option for LEAD and LAG functions 
    T618 NTH_VALUE functionfunction exists, but some options missing
    T619 Nested window functions 
    T625 LISTAGG 
    T641 Multiple column assignmentonly some syntax variants supported
    T652 SQL-dynamic statements in SQL routines 
    T654 SQL-dynamic statements in external routines 
    T811 Basic SQL/JSON constructor functions 
    T812 SQL/JSON: JSON_OBJECTAGG 
    T813 SQL/JSON: JSON_ARRAYAGG with ORDER BY 
    T814 Colon in JSON_OBJECT or JSON_OBJECTAGG 
    T821 Basic SQL/JSON query operators 
    T822 SQL/JSON: IS JSON WITH UNIQUE KEYS predicate 
    T823 SQL/JSON: PASSING clause 
    T824 JSON_TABLE: specific PLAN clause 
    T825 SQL/JSON: ON EMPTY and ON ERROR clauses 
    T826 General value expression in ON ERROR or ON EMPTY clauses 
    T827 JSON_TABLE: sibling NESTED COLUMNS clauses 
    T828 JSON_QUERY 
    T829 JSON_QUERY: array wrapper options 
    T830 Enforcing unique keys in SQL/JSON constructor functions 
    T838 JSON_TABLE: PLAN DEFAULT clause 
    T839 Formatted cast of datetimes to/from character strings 
    M001 Datalinks 
    M002 Datalinks via SQL/CLI 
    M003 Datalinks via Embedded SQL 
    M004 Foreign data supportpartially supported
    M005 Foreign schema support 
    M006 GetSQLString routine 
    M007 TransmitRequest 
    M009 GetOpts and GetStatistics routines 
    M010 Foreign data wrapper supportdifferent API
    M011 Datalinks via Ada 
    M012 Datalinks via C 
    M013 Datalinks via COBOL 
    M014 Datalinks via Fortran 
    M015 Datalinks via M 
    M016 Datalinks via Pascal 
    M017 Datalinks via PL/I 
    M018 Foreign data wrapper interface routines in Ada 
    M019 Foreign data wrapper interface routines in Cdifferent API
    M020 Foreign data wrapper interface routines in COBOL 
    M021 Foreign data wrapper interface routines in Fortran 
    M022 Foreign data wrapper interface routines in MUMPS 
    M023 Foreign data wrapper interface routines in Pascal 
    M024 Foreign data wrapper interface routines in PL/I 
    M030 SQL-server foreign data support 
    M031 Foreign data wrapper general routines 
    X012 Multisets of XML type 
    X013 Distinct types of XML type 
    X015 Fields of XML type 
    X025 XMLCast 
    X030 XMLDocument 
    X038 XMLText 
    X065 XMLParse: BLOB input and CONTENT option 
    X066 XMLParse: BLOB input and DOCUMENT option 
    X068 XMLSerialize: BOM 
    X069 XMLSerialize: INDENT 
    X073 XMLSerialize: BLOB serialization and CONTENT option 
    X074 XMLSerialize: BLOB serialization and DOCUMENT option 
    X075 XMLSerialize: BLOB serialization 
    X076 XMLSerialize: VERSION 
    X077 XMLSerialize: explicit ENCODING option 
    X078 XMLSerialize: explicit XML declaration 
    X080 Namespaces in XML publishing 
    X081 Query-level XML namespace declarations 
    X082 XML namespace declarations in DML 
    X083 XML namespace declarations in DDL 
    X084 XML namespace declarations in compound statements 
    X085 Predefined namespace prefixes 
    X086 XML namespace declarations in XMLTable 
    X091 XML content predicate 
    X096 XMLExistsXPath 1.0 only
    X100 Host language support for XML: CONTENT option 
    X101 Host language support for XML: DOCUMENT option 
    X110 Host language support for XML: VARCHAR mapping 
    X111 Host language support for XML: CLOB mapping 
    X112 Host language support for XML: BLOB mapping 
    X113 Host language support for XML: STRIP WHITESPACE option 
    X114 Host language support for XML: PRESERVE WHITESPACE option 
    X131 Query-level XMLBINARY clause 
    X132 XMLBINARY clause in DML 
    X133 XMLBINARY clause in DDL 
    X134 XMLBINARY clause in compound statements 
    X135 XMLBINARY clause in subqueries 
    X141 IS VALID predicate: data-driven case 
    X142 IS VALID predicate: ACCORDING TO clause 
    X143 IS VALID predicate: ELEMENT clause 
    X144 IS VALID predicate: schema location 
    X145 IS VALID predicate outside check constraints 
    X151 IS VALID predicate with DOCUMENT option 
    X152 IS VALID predicate with CONTENT option 
    X153 IS VALID predicate with SEQUENCE option 
    X155 IS VALID predicate: NAMESPACE without ELEMENT clause 
    X157 IS VALID predicate: NO NAMESPACE with ELEMENT clause 
    X160 Basic Information Schema for registered XML Schemas 
    X161 Advanced Information Schema for registered XML Schemas 
    X170 XML null handling options 
    X171 NIL ON NO CONTENT option 
    X181 XML(DOCUMENT(UNTYPED)) type 
    X182 XML(DOCUMENT(ANY)) type 
    X190 XML(SEQUENCE) type 
    X191 XML(DOCUMENT(XMLSCHEMA)) type 
    X192 XML(CONTENT(XMLSCHEMA)) type 
    X200 XMLQuery 
    X201 XMLQuery: RETURNING CONTENT 
    X202 XMLQuery: RETURNING SEQUENCE 
    X203 XMLQuery: passing a context item 
    X204 XMLQuery: initializing an XQuery variable 
    X205 XMLQuery: EMPTY ON EMPTY option 
    X206 XMLQuery: NULL ON EMPTY option 
    X211 XML 1.1 support 
    X222 XML passing mechanism BY REFparser accepts BY REF but ignores it; passing is always BY VALUE
    X231 XML(CONTENT(UNTYPED)) type 
    X232 XML(CONTENT(ANY)) type 
    X241 RETURNING CONTENT in XML publishing 
    X242 RETURNING SEQUENCE in XML publishing 
    X251 Persistent XML values of XML(DOCUMENT(UNTYPED)) type 
    X252 Persistent XML values of XML(DOCUMENT(ANY)) type 
    X253 Persistent XML values of XML(CONTENT(UNTYPED)) type 
    X254 Persistent XML values of XML(CONTENT(ANY)) type 
    X255 Persistent XML values of XML(SEQUENCE) type 
    X256 Persistent XML values of XML(DOCUMENT(XMLSCHEMA)) type 
    X257 Persistent XML values of XML(CONTENT(XMLSCHEMA)) type 
    X260 XML type: ELEMENT clause 
    X261 XML type: NAMESPACE without ELEMENT clause 
    X263 XML type: NO NAMESPACE with ELEMENT clause 
    X264 XML type: schema location 
    X271 XMLValidate: data-driven case 
    X272 XMLValidate: ACCORDING TO clause 
    X273 XMLValidate: ELEMENT clause 
    X274 XMLValidate: schema location 
    X281 XMLValidate with DOCUMENT option 
    X282 XMLValidate with CONTENT option 
    X283 XMLValidate with SEQUENCE option 
    X284 XMLValidate: NAMESPACE without ELEMENT clause 
    X286 XMLValidate: NO NAMESPACE with ELEMENT clause 
    X300 XMLTableXPath 1.0 only
    X305 XMLTable: initializing an XQuery variable 

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/upgrading.html postgresql-13-13.7/doc/src/sgml/html/upgrading.html --- postgresql-13-13.4/doc/src/sgml/html/upgrading.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/upgrading.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,5 +1,5 @@ -18.6. Upgrading a PostgreSQL Cluster

    18.6. Upgrading a PostgreSQL Cluster

    +18.6. Upgrading a PostgreSQL Cluster

    18.6. Upgrading a PostgreSQL Cluster

    This section discusses how to upgrade your database data from one PostgreSQL release to a newer one.

    @@ -100,7 +100,7 @@ To make the backup, you can use the pg_dumpall command from the version you are currently running; see Section 25.1.2 for more details. For best results, however, try to use the pg_dumpall - command from PostgreSQL 13.4, + command from PostgreSQL 13.7, since this version contains bug fixes and improvements over older versions. While this advice might seem idiosyncratic since you haven't installed the new version yet, it is advisable to follow @@ -192,4 +192,4 @@ systems such as pglogical, Slony, Londiste, and Bucardo. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/user-manag.html postgresql-13-13.7/doc/src/sgml/html/user-manag.html --- postgresql-13-13.4/doc/src/sgml/html/user-manag.html 2021-08-09 21:02:51.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/user-manag.html 2022-05-09 21:29:10.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 21. Database Roles

    Chapter 21. Database Roles

    +Chapter 21. Database Roles

    Chapter 21. Database Roles

    PostgreSQL manages database access permissions using the concept of roles. A role can be thought of as either a database user, or a group of database users, depending on how @@ -17,4 +17,4 @@ This chapter describes how to create and manage roles. More information about the effects of role privileges on various database objects can be found in Section 5.7. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/using-explain.html postgresql-13-13.7/doc/src/sgml/html/using-explain.html --- postgresql-13-13.4/doc/src/sgml/html/using-explain.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/using-explain.html 2022-05-09 21:29:08.000000000 +0000 @@ -1,5 +1,5 @@ -14.1. Using EXPLAIN

    14.1. Using EXPLAIN

    +14.1. Using EXPLAIN

    14.1. Using EXPLAIN

    PostgreSQL devises a query plan for each query it receives. Choosing the right plan to match the query structure and the properties of the data @@ -798,4 +798,4 @@ the EXPLAIN output and a Subplans Removed: N annotation appears instead. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/uuid-ossp.html postgresql-13-13.7/doc/src/sgml/html/uuid-ossp.html --- postgresql-13-13.4/doc/src/sgml/html/uuid-ossp.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/uuid-ossp.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.44. uuid-ossp

    F.44. uuid-ossp

    +F.44. uuid-ossp

    F.44. uuid-ossp

    The uuid-ossp module provides functions to generate universally unique identifiers (UUIDs) using one of several standard algorithms. There are also functions to produce certain special UUID constants. @@ -140,4 +140,4 @@ machine, so configure does not automatically choose one.

    F.44.3. Author

    Peter Eisentraut -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/vacuumlo.html postgresql-13-13.7/doc/src/sgml/html/vacuumlo.html --- postgresql-13-13.4/doc/src/sgml/html/vacuumlo.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/vacuumlo.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -vacuumlo

    vacuumlo

    vacuumlo — remove orphaned large objects from a PostgreSQL database

    Synopsis

    vacuumlo [option...] dbname...

    Description

    +vacuumlo

    vacuumlo

    vacuumlo — remove orphaned large objects from a PostgreSQL database

    Synopsis

    vacuumlo [option...] dbname...

    Description

    vacuumlo is a simple utility program that will remove any orphaned large objects from a PostgreSQL database. An orphaned large object (LO) is @@ -71,4 +71,4 @@ temporary table identify orphaned LOs. These are removed.

    Author

    Peter Mount -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-available-extensions.html postgresql-13-13.7/doc/src/sgml/html/view-pg-available-extensions.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-available-extensions.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-available-extensions.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.65. pg_available_extensions

    51.65. pg_available_extensions

    +51.65. pg_available_extensions

    51.65. pg_available_extensions

    The pg_available_extensions view lists the extensions that are available for installation. See also the @@ -34,4 +34,4 @@ Comment string from the extension's control file


    The pg_available_extensions view is read only. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-available-extension-versions.html postgresql-13-13.7/doc/src/sgml/html/view-pg-available-extension-versions.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-available-extension-versions.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-available-extension-versions.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.66. pg_available_extension_versions

    51.66. pg_available_extension_versions

    +51.66. pg_available_extension_versions

    51.66. pg_available_extension_versions

    The pg_available_extension_versions view lists the specific extension versions that are available for installation. See also the pg_extension @@ -62,4 +62,4 @@


    The pg_available_extension_versions view is read only. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-config.html postgresql-13-13.7/doc/src/sgml/html/view-pg-config.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-config.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-config.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.67. pg_config

    51.67. pg_config

    +51.67. pg_config

    51.67. pg_config

    The view pg_config describes the compile-time configuration parameters of the currently installed version of PostgreSQL. It is intended, for example, to @@ -26,4 +26,4 @@

    The parameter value -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-cursors.html postgresql-13-13.7/doc/src/sgml/html/view-pg-cursors.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-cursors.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-cursors.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.68. pg_cursors

    51.68. pg_cursors

    +51.68. pg_cursors

    51.68. pg_cursors

    The pg_cursors view lists the cursors that are currently available. Cursors can be defined in several ways:

    • @@ -69,4 +69,4 @@ The time at which the cursor was declared


    The pg_cursors view is read only. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-file-settings.html postgresql-13-13.7/doc/src/sgml/html/view-pg-file-settings.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-file-settings.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-file-settings.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.69. pg_file_settings

    51.69. pg_file_settings

    +51.69. pg_file_settings

    51.69. pg_file_settings

    The view pg_file_settings provides a summary of the contents of the server's configuration file(s). A row appears in this view for each name = value entry appearing in the files, @@ -74,4 +74,4 @@

    See Section 19.1 for more information about the various ways to change run-time parameters. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-group.html postgresql-13-13.7/doc/src/sgml/html/view-pg-group.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-group.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-group.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.70. pg_group

    51.70. pg_group

    +51.70. pg_group

    51.70. pg_group

    The view pg_group exists for backwards compatibility: it emulates a catalog that existed in PostgreSQL before version 8.1. @@ -29,4 +29,4 @@

    An array containing the IDs of the roles in this group -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-hba-file-rules.html postgresql-13-13.7/doc/src/sgml/html/view-pg-hba-file-rules.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-hba-file-rules.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-hba-file-rules.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.71. pg_hba_file_rules

    51.71. pg_hba_file_rules

    +51.71. pg_hba_file_rules

    51.71. pg_hba_file_rules

    The view pg_hba_file_rules provides a summary of the contents of the client authentication configuration file, pg_hba.conf. A row appears in this view for each @@ -72,4 +72,4 @@

    See Chapter 20 for more information about client authentication configuration. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-indexes.html postgresql-13-13.7/doc/src/sgml/html/view-pg-indexes.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-indexes.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-indexes.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.72. pg_indexes

    51.72. pg_indexes

    +51.72. pg_indexes

    51.72. pg_indexes

    The view pg_indexes provides access to useful information about each index in the database.

    Table 51.73. pg_indexes Columns

    @@ -37,4 +37,4 @@

    Index definition (a reconstructed CREATE INDEX command) -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-locks.html postgresql-13-13.7/doc/src/sgml/html/view-pg-locks.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-locks.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-locks.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.73. pg_locks

    51.73. pg_locks

    +51.73. pg_locks

    51.73. pg_locks

    The view pg_locks provides access to information about the locks held by active processes within the database server. See Chapter 13 for more discussion @@ -243,4 +243,4 @@ The locks are held only for the minimum amount of time necessary to obtain data from the lock managers, but this does not completely eliminate the possibility of a performance impact. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-matviews.html postgresql-13-13.7/doc/src/sgml/html/view-pg-matviews.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-matviews.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-matviews.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.74. pg_matviews

    51.74. pg_matviews

    +51.74. pg_matviews

    51.74. pg_matviews

    The view pg_matviews provides access to useful information about each materialized view in the database.

    Table 51.75. pg_matviews Columns

    @@ -46,4 +46,4 @@

    Materialized view definition (a reconstructed SELECT query) -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-policies.html postgresql-13-13.7/doc/src/sgml/html/view-pg-policies.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-policies.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-policies.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.75. pg_policies

    51.75. pg_policies

    +51.75. pg_policies

    51.75. pg_policies

    The view pg_policies provides access to useful information about each row-level security policy in the database.

    Table 51.76. pg_policies Columns

    @@ -52,4 +52,4 @@

    The expression added to the WITH CHECK qualifications for queries that attempt to add rows to this table -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-prepared-statements.html postgresql-13-13.7/doc/src/sgml/html/view-pg-prepared-statements.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-prepared-statements.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-prepared-statements.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.76. pg_prepared_statements

    51.76. pg_prepared_statements

    +51.76. pg_prepared_statements

    51.76. pg_prepared_statements

    The pg_prepared_statements view displays all the prepared statements that are available in the current session. See PREPARE for more information about prepared @@ -52,4 +52,4 @@ frontend/backend protocol


    The pg_prepared_statements view is read only. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-prepared-xacts.html postgresql-13-13.7/doc/src/sgml/html/view-pg-prepared-xacts.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-prepared-xacts.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-prepared-xacts.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.77. pg_prepared_xacts

    51.77. pg_prepared_xacts

    +51.77. pg_prepared_xacts

    51.77. pg_prepared_xacts

    The view pg_prepared_xacts displays information about transactions that are currently prepared for two-phase commit (see PREPARE TRANSACTION for details). @@ -47,4 +47,4 @@ normal operations longer than necessary. Nonetheless there could be some impact on database performance if this view is frequently accessed. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-publication-tables.html postgresql-13-13.7/doc/src/sgml/html/view-pg-publication-tables.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-publication-tables.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-publication-tables.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.78. pg_publication_tables

    51.78. pg_publication_tables

    +51.78. pg_publication_tables

    51.78. pg_publication_tables

    The view pg_publication_tables provides information about the mapping between publications and the tables they contain. Unlike the underlying @@ -29,4 +29,4 @@

    Name of table -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-replication-origin-status.html postgresql-13-13.7/doc/src/sgml/html/view-pg-replication-origin-status.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-replication-origin-status.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-replication-origin-status.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.79. pg_replication_origin_status

    51.79. pg_replication_origin_status

    +51.79. pg_replication_origin_status

    51.79. pg_replication_origin_status

    The pg_replication_origin_status view contains information about how far replay for a certain origin has progressed. For more on replication origins @@ -33,4 +33,4 @@ This node's LSN at which remote_lsn has been replicated. Used to flush commit records before persisting data to disk when using asynchronous commits. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-replication-slots.html postgresql-13-13.7/doc/src/sgml/html/view-pg-replication-slots.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-replication-slots.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-replication-slots.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.80. pg_replication_slots

    51.80. pg_replication_slots

    +51.80. pg_replication_slots

    51.80. pg_replication_slots

    The pg_replication_slots view provides a listing of all replication slots that currently exist on the database cluster, along with their current state. @@ -122,4 +122,4 @@ is not in danger of getting in state "lost". It is NULL for lost slots, as well as if max_slot_wal_keep_size is -1. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-roles.html postgresql-13-13.7/doc/src/sgml/html/view-pg-roles.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-roles.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-roles.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.81. pg_roles

    51.81. pg_roles

    +51.81. pg_roles

    51.81. pg_roles

    The view pg_roles provides access to information about database roles. This is simply a publicly readable view of @@ -82,4 +82,4 @@

    ID of role -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-rules.html postgresql-13-13.7/doc/src/sgml/html/view-pg-rules.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-rules.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-rules.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.82. pg_rules

    51.82. pg_rules

    +51.82. pg_rules

    51.82. pg_rules

    The view pg_rules provides access to useful information about query rewrite rules.

    Table 51.83. pg_rules Columns

    @@ -34,4 +34,4 @@ The pg_rules view excludes the ON SELECT rules of views and materialized views; those can be seen in pg_views and pg_matviews. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-seclabels.html postgresql-13-13.7/doc/src/sgml/html/view-pg-seclabels.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-seclabels.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-seclabels.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.83. pg_seclabels

    51.83. pg_seclabels

    +51.83. pg_seclabels

    51.83. pg_seclabels

    The view pg_seclabels provides information about security labels. It as an easier-to-query version of the pg_seclabel catalog. @@ -57,4 +57,4 @@

    The security label applied to this object. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-sequences.html postgresql-13-13.7/doc/src/sgml/html/view-pg-sequences.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-sequences.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-sequences.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.84. pg_sequences

    51.84. pg_sequences

    +51.84. pg_sequences

    51.84. pg_sequences

    The view pg_sequences provides access to useful information about each sequence in the database.

    Table 51.85. pg_sequences Columns

    @@ -71,4 +71,4 @@ the current user does not have USAGE or SELECT privilege on the sequence, the value is null. -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-settings.html postgresql-13-13.7/doc/src/sgml/html/view-pg-settings.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-settings.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-settings.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.85. pg_settings

    51.85. pg_settings

    +51.85. pg_settings

    51.85. pg_settings

    The view pg_settings provides access to run-time parameters of the server. It is essentially an alternative interface to the SHOW @@ -184,4 +184,4 @@ transaction is committed, the effects will persist until the end of the session, unless overridden by another UPDATE or SET. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-shadow.html postgresql-13-13.7/doc/src/sgml/html/view-pg-shadow.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-shadow.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-shadow.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.86. pg_shadow

    51.86. pg_shadow

    +51.86. pg_shadow

    51.86. pg_shadow

    The view pg_shadow exists for backwards compatibility: it emulates a catalog that existed in PostgreSQL before version 8.1. @@ -68,4 +68,4 @@

    Session defaults for run-time configuration variables -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-shmem-allocations.html postgresql-13-13.7/doc/src/sgml/html/view-pg-shmem-allocations.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-shmem-allocations.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-shmem-allocations.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.87. pg_shmem_allocations

    51.87. pg_shmem_allocations

    +51.87. pg_shmem_allocations

    51.87. pg_shmem_allocations

    The pg_shmem_allocations view shows allocations made from the server's main shared memory segment. This includes both memory allocated by postgres itself and memory @@ -48,4 +48,4 @@

    By default, the pg_shmem_allocations view can be read only by superusers. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-stats-ext.html postgresql-13-13.7/doc/src/sgml/html/view-pg-stats-ext.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-stats-ext.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-stats-ext.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.89. pg_stats_ext

    51.89. pg_stats_ext

    +51.89. pg_stats_ext

    51.89. pg_stats_ext

    The view pg_stats_ext provides access to the information stored in the pg_statistic_ext and pg_statistic_ext_data @@ -108,4 +108,4 @@ column-by-column basis using the ALTER TABLE SET STATISTICS command, or globally by setting the default_statistics_target run-time parameter. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-stats.html postgresql-13-13.7/doc/src/sgml/html/view-pg-stats.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-stats.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-stats.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.88. pg_stats

    51.88. pg_stats

    +51.88. pg_stats

    51.88. pg_stats

    The view pg_stats provides access to the information stored in the pg_statistic catalog. This view allows access only to rows of @@ -124,4 +124,4 @@ column-by-column basis using the ALTER TABLE SET STATISTICS command, or globally by setting the default_statistics_target run-time parameter. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-tables.html postgresql-13-13.7/doc/src/sgml/html/view-pg-tables.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-tables.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-tables.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -51.90. pg_tables

    51.90. pg_tables

    +51.90. pg_tables

    51.90. pg_tables

    The view pg_tables provides access to useful information about each table in the database.

    Table 51.91. pg_tables Columns

    @@ -55,4 +55,4 @@

    True if row security is enabled on the table -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-timezone-abbrevs.html postgresql-13-13.7/doc/src/sgml/html/view-pg-timezone-abbrevs.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-timezone-abbrevs.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-timezone-abbrevs.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -51.91. pg_timezone_abbrevs

    51.91. pg_timezone_abbrevs

    +51.91. pg_timezone_abbrevs

    51.91. pg_timezone_abbrevs

    The view pg_timezone_abbrevs provides a list of time zone abbreviations that are currently recognized by the datetime input routines. The contents of this view change when the @@ -29,4 +29,4 @@ there are some that have historically varied in value (see Section B.4 for more information). In such cases this view presents their current meaning. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-timezone-names.html postgresql-13-13.7/doc/src/sgml/html/view-pg-timezone-names.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-timezone-names.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-timezone-names.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -51.92. pg_timezone_names

    51.92. pg_timezone_names

    +51.92. pg_timezone_names

    51.92. pg_timezone_names

    The view pg_timezone_names provides a list of time zone names that are recognized by SET TIMEZONE, along with their associated abbreviations, UTC offsets, @@ -35,4 +35,4 @@

    True if currently observing daylight savings -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-user.html postgresql-13-13.7/doc/src/sgml/html/view-pg-user.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-user.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-user.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -51.93. pg_user

    51.93. pg_user

    +51.93. pg_user

    51.93. pg_user

    The view pg_user provides access to information about database users. This is simply a publicly readable view of @@ -57,4 +57,4 @@

    Session defaults for run-time configuration variables -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-user-mappings.html postgresql-13-13.7/doc/src/sgml/html/view-pg-user-mappings.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-user-mappings.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-user-mappings.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -51.94. pg_user_mappings

    51.94. pg_user_mappings

    +51.94. pg_user_mappings

    51.94. pg_user_mappings

    The view pg_user_mappings provides access to information about user mappings. This is essentially a publicly readable view of @@ -57,4 +57,4 @@

  • current user is a superuser

  • -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/view-pg-views.html postgresql-13-13.7/doc/src/sgml/html/view-pg-views.html --- postgresql-13-13.4/doc/src/sgml/html/view-pg-views.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/view-pg-views.html 2022-05-09 21:29:26.000000000 +0000 @@ -1,5 +1,5 @@ -51.95. pg_views

    51.95. pg_views

    +51.95. pg_views

    51.95. pg_views

    The view pg_views provides access to useful information about each view in the database.

    Table 51.96. pg_views Columns

    @@ -30,4 +30,4 @@

    View definition (a reconstructed SELECT query) -


    \ No newline at end of file +


    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/views-overview.html postgresql-13-13.7/doc/src/sgml/html/views-overview.html --- postgresql-13-13.4/doc/src/sgml/html/views-overview.html 2021-08-09 21:03:07.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/views-overview.html 2022-05-09 21:29:25.000000000 +0000 @@ -1,5 +1,5 @@ -51.64. System Views

    51.64. System Views

    +51.64. System Views

    51.64. System Views

    In addition to the system catalogs, PostgreSQL provides a number of built-in views. Some system views provide convenient access to some commonly used queries on the system catalogs. Other views @@ -18,4 +18,4 @@ the statistics collector; they are described in Table 27.2.

    Except where noted, all the views described here are read-only. -

    Table 51.65. System Views

    View NamePurpose
    pg_available_extensionsavailable extensions
    pg_available_extension_versionsavailable versions of extensions
    pg_configcompile-time configuration parameters
    pg_cursorsopen cursors
    pg_file_settingssummary of configuration file contents
    pg_groupgroups of database users
    pg_hba_file_rulessummary of client authentication configuration file contents
    pg_indexesindexes
    pg_lockslocks currently held or awaited
    pg_matviewsmaterialized views
    pg_policiespolicies
    pg_prepared_statementsprepared statements
    pg_prepared_xactsprepared transactions
    pg_publication_tablespublications and their associated tables
    pg_replication_origin_statusinformation about replication origins, including replication progress
    pg_replication_slotsreplication slot information
    pg_rolesdatabase roles
    pg_rulesrules
    pg_seclabelssecurity labels
    pg_sequencessequences
    pg_settingsparameter settings
    pg_shadowdatabase users
    pg_shmem_allocationsshared memory allocations
    pg_statsplanner statistics
    pg_stats_extextended planner statistics
    pg_tablestables
    pg_timezone_abbrevstime zone abbreviations
    pg_timezone_namestime zone names
    pg_userdatabase users
    pg_user_mappingsuser mappings
    pg_viewsviews

    \ No newline at end of file +

    Table 51.65. System Views

    View NamePurpose
    pg_available_extensionsavailable extensions
    pg_available_extension_versionsavailable versions of extensions
    pg_configcompile-time configuration parameters
    pg_cursorsopen cursors
    pg_file_settingssummary of configuration file contents
    pg_groupgroups of database users
    pg_hba_file_rulessummary of client authentication configuration file contents
    pg_indexesindexes
    pg_lockslocks currently held or awaited
    pg_matviewsmaterialized views
    pg_policiespolicies
    pg_prepared_statementsprepared statements
    pg_prepared_xactsprepared transactions
    pg_publication_tablespublications and their associated tables
    pg_replication_origin_statusinformation about replication origins, including replication progress
    pg_replication_slotsreplication slot information
    pg_rolesdatabase roles
    pg_rulesrules
    pg_seclabelssecurity labels
    pg_sequencessequences
    pg_settingsparameter settings
    pg_shadowdatabase users
    pg_shmem_allocationsshared memory allocations
    pg_statsplanner statistics
    pg_stats_extextended planner statistics
    pg_tablestables
    pg_timezone_abbrevstime zone abbreviations
    pg_timezone_namestime zone names
    pg_userdatabase users
    pg_user_mappingsuser mappings
    pg_viewsviews

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/wal-async-commit.html postgresql-13-13.7/doc/src/sgml/html/wal-async-commit.html --- postgresql-13-13.4/doc/src/sgml/html/wal-async-commit.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/wal-async-commit.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -29.3. Asynchronous Commit

    29.3. Asynchronous Commit

    +29.3. Asynchronous Commit

    29.3. Asynchronous Commit

    Asynchronous commit is an option that allows transactions to complete more quickly, at the cost that the most recent transactions may be lost if the database should crash. In many applications this is an @@ -96,4 +96,4 @@ setting can be thought of as a way of increasing the time window in which transactions can join a group about to participate in a single flush, to amortize the cost of the flush among multiple transactions. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/wal-configuration.html postgresql-13-13.7/doc/src/sgml/html/wal-configuration.html --- postgresql-13-13.4/doc/src/sgml/html/wal-configuration.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/wal-configuration.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -29.4. WAL Configuration

    29.4. WAL Configuration

    +29.4. WAL Configuration

    29.4. WAL Configuration

    There are several WAL-related configuration parameters that affect database performance. This section explains their use. Consult Chapter 19 for general information about @@ -247,4 +247,4 @@ XLogInsertRecord and XLogFlush WAL call being logged to the server log. This option might be replaced by a more general mechanism in the future. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/wal.html postgresql-13-13.7/doc/src/sgml/html/wal.html --- postgresql-13-13.4/doc/src/sgml/html/wal.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/wal.html 2022-05-09 21:29:12.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 29. Reliability and the Write-Ahead Log

    Chapter 29. Reliability and the Write-Ahead Log

    +Chapter 29. Reliability and the Write-Ahead Log

    Chapter 29. Reliability and the Write-Ahead Log

    This chapter explains how the Write-Ahead Log is used to obtain efficient, reliable operation. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/wal-internals.html postgresql-13-13.7/doc/src/sgml/html/wal-internals.html --- postgresql-13-13.4/doc/src/sgml/html/wal-internals.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/wal-internals.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -29.5. WAL Internals

    29.5. WAL Internals

    +29.5. WAL Internals

    29.5. WAL Internals

    WAL is automatically enabled; no action is required from the administrator except ensuring that the disk-space requirements for the WAL logs are met, @@ -67,4 +67,4 @@ to read pg_control itself. So while it is theoretically a weak spot, pg_control does not seem to be a problem in practice. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/wal-intro.html postgresql-13-13.7/doc/src/sgml/html/wal-intro.html --- postgresql-13-13.4/doc/src/sgml/html/wal-intro.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/wal-intro.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -29.2. Write-Ahead Logging (WAL)

    29.2. Write-Ahead Logging (WAL)

    +29.2. Write-Ahead Logging (WAL)

    29.2. Write-Ahead Logging (WAL)

    Write-Ahead Logging (WAL) is a standard method for ensuring data integrity. A detailed description can be found in most (if not all) books about @@ -45,4 +45,4 @@ of the database state — if it is made over some period of time, then replaying the WAL log for that period will fix any internal inconsistencies. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/wal-reliability.html postgresql-13-13.7/doc/src/sgml/html/wal-reliability.html --- postgresql-13-13.4/doc/src/sgml/html/wal-reliability.html 2021-08-09 21:02:53.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/wal-reliability.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -29.1. Reliability

    29.1. Reliability

    +29.1. Reliability

    29.1. Reliability

    Reliability is an important property of any serious database system, and PostgreSQL does everything possible to guarantee reliable operation. One aspect of reliable operation is @@ -158,4 +158,4 @@ PostgreSQL does not protect against correctable memory errors and it is assumed you will operate using RAM that uses industry standard Error Correcting Codes (ECC) or better protection. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/warm-standby-failover.html postgresql-13-13.7/doc/src/sgml/html/warm-standby-failover.html --- postgresql-13-13.4/doc/src/sgml/html/warm-standby-failover.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/warm-standby-failover.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -26.3. Failover

    26.3. Failover

    +26.3. Failover

    26.3. Failover

    If the primary server fails then the standby server should begin failover procedures.

    @@ -62,4 +62,4 @@ setting up the reporting servers that are only used to offload read-only queries from the primary, not for high availability purposes, you don't need to promote it. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/warm-standby.html postgresql-13-13.7/doc/src/sgml/html/warm-standby.html --- postgresql-13-13.4/doc/src/sgml/html/warm-standby.html 2021-08-09 21:02:52.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/warm-standby.html 2022-05-09 21:29:11.000000000 +0000 @@ -1,5 +1,5 @@ -26.2. Log-Shipping Standby Servers

    26.2. Log-Shipping Standby Servers

    +26.2. Log-Shipping Standby Servers

    26.2. Log-Shipping Standby Servers

    Continuous archiving can be used to create a high availability (HA) cluster configuration with one or more standby servers ready to take over operations if the @@ -419,7 +419,7 @@ servers. Waiting for confirmation increases the user's confidence that the changes will not be lost in the event of server crashes but it also necessarily increases the response time for the requesting transaction. - The minimum wait time is the round-trip time between primary to standby. + The minimum wait time is the round-trip time between primary and standby.

    Read only transactions and transaction rollbacks need not wait for replies from standby servers. Subtransaction commits do not wait for @@ -657,4 +657,4 @@ are found in the archive, but not if streaming replication is enabled. When a server is not in recovery mode, there is no difference between on and always modes. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/when-can-parallel-query-be-used.html postgresql-13-13.7/doc/src/sgml/html/when-can-parallel-query-be-used.html --- postgresql-13-13.4/doc/src/sgml/html/when-can-parallel-query-be-used.html 2021-08-09 21:02:50.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/when-can-parallel-query-be-used.html 2022-05-09 21:29:09.000000000 +0000 @@ -1,12 +1,12 @@ -15.2. When Can Parallel Query Be Used?

    15.2. When Can Parallel Query Be Used?

    - There are several settings which can cause the query planner not to +15.2. When Can Parallel Query Be Used?

    15.2. When Can Parallel Query Be Used?

    + There are several settings that can cause the query planner not to generate a parallel query plan under any circumstances. In order for any parallel query plans whatsoever to be generated, the following settings must be configured as indicated.

    • max_parallel_workers_per_gather must be set to a - value which is greater than zero. This is a special case of the more + value that is greater than zero. This is a special case of the more general principle that no more workers should be used than the number configured via max_parallel_workers_per_gather.

    @@ -22,7 +22,7 @@ contains a data-modifying operation either at the top level or within a CTE, no parallel plans for that query will be generated. As an exception, the commands CREATE TABLE ... AS, SELECT - INTO, and CREATE MATERIALIZED VIEW which create a new + INTO, and CREATE MATERIALIZED VIEW that create a new table and populate it can use a parallel plan.

  • The query might be suspended during execution. In any situation in @@ -73,4 +73,4 @@ max_parallel_workers_per_gather to zero in sessions where it is likely, so as to avoid generating query plans that may be suboptimal when run serially. -

  • \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xaggr.html postgresql-13-13.7/doc/src/sgml/html/xaggr.html --- postgresql-13-13.4/doc/src/sgml/html/xaggr.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xaggr.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.12. User-Defined Aggregates

    37.12. User-Defined Aggregates

    +37.12. User-Defined Aggregates

    37.12. User-Defined Aggregates

    Aggregate functions in PostgreSQL are defined in terms of state values and state transition functions. @@ -525,4 +525,4 @@ supposed to implement. Examples can be found in orderedsetaggs.c in the PostgreSQL source code. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xfunc-c.html postgresql-13-13.7/doc/src/sgml/html/xfunc-c.html --- postgresql-13-13.4/doc/src/sgml/html/xfunc-c.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xfunc-c.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.10. C-Language Functions

    37.10. C-Language Functions

    +37.10. C-Language Functions

    37.10. C-Language Functions

    User-defined functions can be written in C (or a language that can be made compatible with C, such as C++). Such functions are compiled into dynamically loadable objects (also called shared @@ -230,23 +230,25 @@ Also, the length field must be set using the SET_VARSIZE macro, not by simple assignment.

    - Table 37.2 specifies which C type - corresponds to which SQL type when writing a C-language function - that uses a built-in type of PostgreSQL. + Table 37.2 shows the C types + corresponding to many of the built-in SQL data types + of PostgreSQL. The Defined In column gives the header file that needs to be included to get the type definition. (The actual definition might be in a different file that is included by the listed file. It is recommended that users stick to the defined interface.) Note that you should always include - postgres.h first in any source file, because - it declares a number of things that you will need anyway. + postgres.h first in any source file of server + code, because it declares a number of things that you will need + anyway, and because including other headers first can cause + portability issues.

    Table 37.2. Equivalent C Types for Built-in SQL Types

    SQL Type C Type Defined In -
    booleanboolpostgres.h (maybe compiler built-in)
    boxBOX*utils/geo_decls.h
    byteabytea*postgres.h
    "char"char(compiler built-in)
    characterBpChar*postgres.h
    cidCommandIdpostgres.h
    dateDateADTutils/date.h
    smallint (int2)int16postgres.h
    int2vectorint2vector*postgres.h
    integer (int4)int32postgres.h
    real (float4)float4*postgres.h
    double precision (float8)float8*postgres.h
    intervalInterval*datatype/timestamp.h
    lsegLSEG*utils/geo_decls.h
    nameNamepostgres.h
    oidOidpostgres.h
    oidvectoroidvector*postgres.h
    pathPATH*utils/geo_decls.h
    pointPOINT*utils/geo_decls.h
    regprocregprocpostgres.h
    texttext*postgres.h
    tidItemPointerstorage/itemptr.h
    timeTimeADTutils/date.h
    time with time zoneTimeTzADTutils/date.h
    timestampTimestampdatatype/timestamp.h
    varcharVarChar*postgres.h
    xidTransactionIdpostgres.h

    + booleanboolpostgres.h (maybe compiler built-in)boxBOX*utils/geo_decls.hbyteabytea*postgres.h"char"char(compiler built-in)characterBpChar*postgres.hcidCommandIdpostgres.hdateDateADTutils/date.hfloat4 (real)float4postgres.hfloat8 (double precision)float8postgres.hint2 (smallint)int16postgres.hint4 (integer)int32postgres.hint8 (bigint)int64postgres.hintervalInterval*datatype/timestamp.hlsegLSEG*utils/geo_decls.hnameNamepostgres.hnumericNumericutils/numeric.hoidOidpostgres.hoidvectoroidvector*postgres.hpathPATH*utils/geo_decls.hpointPOINT*utils/geo_decls.hregprocRegProcedurepostgres.htexttext*postgres.htidItemPointerstorage/itemptr.htimeTimeADTutils/date.htime with time zoneTimeTzADTutils/date.htimestampTimestampdatatype/timestamp.htimestamp with time zoneTimestampTzdatatype/timestamp.hvarcharVarChar*postgres.hxidTransactionIdpostgres.h


    Now that we've gone over all of the possible structures for base types, we can show some examples of real functions.

    37.10.3. Version 1 Calling Conventions

    @@ -1381,4 +1383,4 @@ In summary, it is best to place C++ code behind a wall of extern C functions that interface to the backend, and avoid exception, memory, and call stack leakage. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xfunc.html postgresql-13-13.7/doc/src/sgml/html/xfunc.html --- postgresql-13-13.4/doc/src/sgml/html/xfunc.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xfunc.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.3. User-Defined Functions

    37.3. User-Defined Functions

    +37.3. User-Defined Functions

    37.3. User-Defined Functions

    PostgreSQL provides four kinds of functions: @@ -39,4 +39,4 @@ funcs.c in the src/tutorial directory in the PostgreSQL source distribution. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xfunc-internal.html postgresql-13-13.7/doc/src/sgml/html/xfunc-internal.html --- postgresql-13-13.4/doc/src/sgml/html/xfunc-internal.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xfunc-internal.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.9. Internal Functions

    37.9. Internal Functions

    +37.9. Internal Functions

    37.9. Internal Functions

    Internal functions are functions written in C that have been statically linked into the PostgreSQL server. The body of the function definition @@ -28,4 +28,4 @@ Not all predefined functions are internal in the above sense. Some predefined functions are written in SQL. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xfunc-optimization.html postgresql-13-13.7/doc/src/sgml/html/xfunc-optimization.html --- postgresql-13-13.4/doc/src/sgml/html/xfunc-optimization.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xfunc-optimization.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.11. Function Optimization Information

    37.11. Function Optimization Information

    +37.11. Function Optimization Information

    37.11. Function Optimization Information

    By default, a function is just a black box that the database system knows very little about the behavior of. However, that means that queries using the function may be executed much less @@ -91,4 +91,4 @@ the index to see if it really passes the WHERE condition or not. To create such conditions, the support function must implement the SupportRequestIndexCondition request type. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xfunc-overload.html postgresql-13-13.7/doc/src/sgml/html/xfunc-overload.html --- postgresql-13-13.4/doc/src/sgml/html/xfunc-overload.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xfunc-overload.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.6. Function Overloading

    37.6. Function Overloading

    +37.6. Function Overloading

    37.6. Function Overloading

    More than one function can be defined with the same SQL name, so long as the arguments they take are different. In other words, function names can be overloaded. Whether or not @@ -64,4 +64,4 @@ LANGUAGE C;

    The names of the C functions here reflect one of many possible conventions. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xfunc-pl.html postgresql-13-13.7/doc/src/sgml/html/xfunc-pl.html --- postgresql-13-13.4/doc/src/sgml/html/xfunc-pl.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xfunc-pl.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.8. Procedural Language Functions

    37.8. Procedural Language Functions

    +37.8. Procedural Language Functions

    37.8. Procedural Language Functions

    PostgreSQL allows user-defined functions to be written in other languages besides SQL and C. These other languages are generically called procedural @@ -9,4 +9,4 @@ by loadable modules. See Chapter 41 and following chapters for more information. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xfunc-sql.html postgresql-13-13.7/doc/src/sgml/html/xfunc-sql.html --- postgresql-13-13.4/doc/src/sgml/html/xfunc-sql.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xfunc-sql.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.5. Query Language (SQL) Functions \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xfunc-volatility.html postgresql-13-13.7/doc/src/sgml/html/xfunc-volatility.html --- postgresql-13-13.4/doc/src/sgml/html/xfunc-volatility.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xfunc-volatility.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.7. Function Volatility Categories

    37.7. Function Volatility Categories

    +37.7. Function Volatility Categories

    37.7. Function Volatility Categories

    Every function has a volatility classification, with the possibilities being VOLATILE, STABLE, or IMMUTABLE. VOLATILE is the default if the @@ -104,4 +104,4 @@ If you do that, you will find that the STABLE or IMMUTABLE function does not notice the database changes applied by the called function, since they are hidden from its snapshot.) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xindex.html postgresql-13-13.7/doc/src/sgml/html/xindex.html --- postgresql-13-13.4/doc/src/sgml/html/xindex.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xindex.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.16. Interfacing Extensions to Indexes

    37.16. Interfacing Extensions to Indexes

    +37.16. Interfacing Extensions to Indexes

    37.16. Interfacing Extensions to Indexes

    The procedures described thus far let you define new types, new functions, and new operators. However, we cannot yet define an index on a column of a new data type. To do this, we must define an @@ -768,4 +768,4 @@ type of the stored summary values, and operator classes' support procedures are responsible for interpreting the summary values correctly. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xml2.html postgresql-13-13.7/doc/src/sgml/html/xml2.html --- postgresql-13-13.4/doc/src/sgml/html/xml2.html 2021-08-09 21:03:13.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xml2.html 2022-05-09 21:29:31.000000000 +0000 @@ -1,5 +1,5 @@ -F.45. xml2

    F.45. xml2

    +F.45. xml2

    F.45. xml2

    The xml2 module provides XPath querying and XSLT functionality.

    F.45.1. Deprecation Notice

    @@ -271,4 +271,4 @@

    Development of this module was sponsored by Torchbox Ltd. (www.torchbox.com). It has the same BSD license as PostgreSQL. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xml-limits-conformance.html postgresql-13-13.7/doc/src/sgml/html/xml-limits-conformance.html --- postgresql-13-13.4/doc/src/sgml/html/xml-limits-conformance.html 2021-08-09 21:03:11.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xml-limits-conformance.html 2022-05-09 21:29:29.000000000 +0000 @@ -1,5 +1,5 @@ -D.3. XML Limits and Conformance to SQL/XML

    D.3. XML Limits and Conformance to SQL/XML

    +D.3. XML Limits and Conformance to SQL/XML

    D.3. XML Limits and Conformance to SQL/XML

    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 @@ -201,4 +201,4 @@ well-formed DOCUMENT is the only form of XML value that PostgreSQL can supply as an XPath context item. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xoper.html postgresql-13-13.7/doc/src/sgml/html/xoper.html --- postgresql-13-13.4/doc/src/sgml/html/xoper.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xoper.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.14. User-Defined Operators

    37.14. User-Defined Operators

    +37.14. User-Defined Operators

    37.14. User-Defined Operators

    Every operator is syntactic sugar for a call to an underlying function that does the real work; so you must first create the underlying function before you can create @@ -55,4 +55,4 @@ clause shown in the example is an optional hint to the query optimizer. Further details about commutator and other optimizer hints appear in the next section. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xoper-optimization.html postgresql-13-13.7/doc/src/sgml/html/xoper-optimization.html --- postgresql-13-13.4/doc/src/sgml/html/xoper-optimization.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xoper-optimization.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.15. Operator Optimization Information

    37.15. Operator Optimization Information

    +37.15. Operator Optimization Information

    37.15. Operator Optimization Information

    A PostgreSQL operator definition can include several optional clauses that tell the system useful things about how the operator behaves. These clauses should be provided whenever @@ -13,7 +13,7 @@

    Additional optimization clauses might be added in future versions of PostgreSQL. The ones described here are all - the ones that release 13.4 understands. + the ones that release 13.7 understands.

    It is also possible to attach a planner support function to the function that underlies an operator, providing another way of telling the system @@ -278,4 +278,4 @@ The function underlying a merge-joinable operator must be marked immutable or stable. If it is volatile, the system will never attempt to use the operator for a merge join. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xplang.html postgresql-13-13.7/doc/src/sgml/html/xplang.html --- postgresql-13-13.4/doc/src/sgml/html/xplang.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xplang.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 41. Procedural Languages

    Chapter 41. Procedural Languages

    +Chapter 41. Procedural Languages

    Chapter 41. Procedural Languages

    PostgreSQL allows user-defined functions to be written in other languages besides SQL and C. These other languages are generically called procedural @@ -26,4 +26,4 @@ has information about finding them. In addition other languages can be defined by users; the basics of developing a new procedural language are covered in Chapter 55. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xplang-install.html postgresql-13-13.7/doc/src/sgml/html/xplang-install.html --- postgresql-13-13.4/doc/src/sgml/html/xplang-install.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xplang-install.html 2022-05-09 21:29:15.000000000 +0000 @@ -1,5 +1,5 @@ -41.1. Installing Procedural Languages

    41.1. Installing Procedural Languages

    +41.1. Installing Procedural Languages

    41.1. Installing Procedural Languages

    A procedural language must be installed into each database where it is to be used. But procedural languages installed in the database template1 are automatically available in all @@ -139,4 +139,4 @@ handlers are built and installed if Perl support is configured, and the PL/PythonU handler is installed if Python support is configured, but these languages are not installed by default. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xproc.html postgresql-13-13.7/doc/src/sgml/html/xproc.html --- postgresql-13-13.4/doc/src/sgml/html/xproc.html 2021-08-09 21:02:55.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xproc.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.4. User-Defined Procedures

    37.4. User-Defined Procedures

    +37.4. User-Defined Procedures

    37.4. User-Defined Procedures

    A procedure is a database object similar to a function. The key differences are: @@ -36,4 +36,4 @@ and DROP ROUTINE that can operate on functions and procedures without having to know which kind it is. Note, however, that there is no CREATE ROUTINE command. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/html/xtypes.html postgresql-13-13.7/doc/src/sgml/html/xtypes.html --- postgresql-13-13.4/doc/src/sgml/html/xtypes.html 2021-08-09 21:02:56.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/html/xtypes.html 2022-05-09 21:29:14.000000000 +0000 @@ -1,5 +1,5 @@ -37.13. User-Defined Types

    37.13. User-Defined Types

    +37.13. User-Defined Types

    37.13. User-Defined Types

    As described in Section 37.2, PostgreSQL can be extended to support new data types. This section describes how to define new base types, @@ -299,4 +299,4 @@ For examples of working with expanded values, see the standard array infrastructure, particularly src/backend/utils/adt/array_expanded.c. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-13-13.4/doc/src/sgml/indices.sgml postgresql-13-13.7/doc/src/sgml/indices.sgml --- postgresql-13-13.4/doc/src/sgml/indices.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/indices.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -732,8 +732,8 @@ Index expressions are relatively expensive to maintain, because the - derived expression(s) must be computed for each row upon insertion - and whenever it is updated. However, the index expressions are + derived expression(s) must be computed for each row insertion + and non-HOT update. However, the index expressions are not recomputed during an indexed search, since they are already stored in the index. In both examples above, the system sees the query as just WHERE indexedcolumn = 'constant' diff -Nru postgresql-13-13.4/doc/src/sgml/installation.sgml postgresql-13-13.7/doc/src/sgml/installation.sgml --- postgresql-13-13.4/doc/src/sgml/installation.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/installation.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -195,10 +195,10 @@ To build the PL/Python server programming language, you need a Python installation with the header files and - the distutils module. The minimum - required version is Python 2.6. + the sysconfig module. The minimum + required version is Python 2.7. Python 3 is supported if it's - version 3.1 or later; but see + version 3.2 or later; but see when using Python 3. diff -Nru postgresql-13-13.4/doc/src/sgml/install-windows.sgml postgresql-13-13.7/doc/src/sgml/install-windows.sgml --- postgresql-13-13.4/doc/src/sgml/install-windows.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/install-windows.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -19,9 +19,9 @@ There are several different ways of building PostgreSQL on Windows. The simplest way to build with - Microsoft tools is to install Visual Studio 2019 + Microsoft tools is to install Visual Studio 2022 and use the included compiler. It is also possible to build with the full - Microsoft Visual C++ 2013 to 2019. + Microsoft Visual C++ 2013 to 2022. In some cases that requires the installation of the Windows SDK in addition to the compiler. @@ -68,7 +68,7 @@ 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 2019 or those in the + Visual Studio 2022 or those in the Windows SDK 10, which are both free downloads from Microsoft.
    @@ -77,7 +77,7 @@ Both 32-bit and 64-bit builds are possible with the Microsoft Compiler suite. 32-bit PostgreSQL builds are possible with Visual Studio 2013 to - Visual Studio 2019, + Visual Studio 2022, as well as standalone Windows SDK releases 8.1a to 10. 64-bit PostgreSQL builds are supported with Microsoft Windows SDK version 8.1a to 10 or @@ -85,7 +85,7 @@ is supported down to Windows 7 and Windows Server 2008 R2 SP1 when building with Visual Studio 2013 to - Visual Studio 2019. + Visual Studio 2022. @@ -493,6 +495,40 @@ + + + + Some of the TAP tests depend on a set of external commands that would + optionally trigger tests related to them. Each one of those variables + can be set or unset in buildenv.pl: + + + GZIP_PROGRAM + + Path to a gzip command. The default is + gzip, that would be the command found in + PATH. + + + + + LZ4 + + Path to a lz4 command. The default is + lz4, that would be the command found in + PATH. + + + + + TAR + + Path to a tar command. The default is + tar, that would be the command found in + PATH. + + + diff -Nru postgresql-13-13.4/doc/src/sgml/legal.sgml postgresql-13-13.7/doc/src/sgml/legal.sgml --- postgresql-13-13.4/doc/src/sgml/legal.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/legal.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1,9 +1,9 @@ -2021 +2022 - 1996–2021 + 1996–2022 The PostgreSQL Global Development Group @@ -11,7 +11,7 @@ Legal Notice - PostgreSQL is Copyright © 1996–2021 + PostgreSQL is Copyright © 1996–2022 by the PostgreSQL Global Development Group. diff -Nru postgresql-13-13.4/doc/src/sgml/libpq.sgml postgresql-13-13.7/doc/src/sgml/libpq.sgml --- postgresql-13-13.4/doc/src/sgml/libpq.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/libpq.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1729,7 +1729,7 @@ sslcrl - This parameter specifies the file name of the SSL certificate + This parameter specifies the file name of the SSL server certificate revocation list (CRL). Certificates listed in this file, if it exists, will be rejected while attempting to authenticate the server's certificate. The default is @@ -7685,24 +7685,36 @@ If the server attempts to verify the identity of the client by requesting the client's leaf certificate, - libpq will send the certificates stored in + libpq will send the certificate(s) stored in file ~/.postgresql/postgresql.crt in the user's home directory. The certificates must chain to the root certificate trusted by the server. A matching private key file ~/.postgresql/postgresql.key must also - be present. The private - key file must not allow any access to world or group; achieve this by the - command chmod 0600 ~/.postgresql/postgresql.key. + be present. On Microsoft Windows these files are named %APPDATA%\postgresql\postgresql.crt and - %APPDATA%\postgresql\postgresql.key, and there - is no special permissions check since the directory is presumed secure. + %APPDATA%\postgresql\postgresql.key. The location of the certificate and key files can be overridden by the - connection parameters sslcert and sslkey or the + connection parameters sslcert + and sslkey, or by the environment variables PGSSLCERT and PGSSLKEY. + On Unix systems, the permissions on the private key file must disallow + any access to world or group; achieve this by a command such as + chmod 0600 ~/.postgresql/postgresql.key. + Alternatively, the file can be owned by root and have group read access + (that is, 0640 permissions). That setup is intended + for installations where certificate and key files are managed by the + operating system. The user of libpq should + then be made a member of the group that has access to those certificate + and key files. (On Microsoft Windows, there is no file permissions + check, since the %APPDATA%\postgresql directory is + presumed secure.) + + + The first certificate in postgresql.crt must be the client's certificate because it must match the client's private key. Intermediate certificates can be optionally appended diff -Nru postgresql-13-13.4/doc/src/sgml/lobj.sgml postgresql-13-13.7/doc/src/sgml/lobj.sgml --- postgresql-13-13.4/doc/src/sgml/lobj.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/lobj.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -449,7 +449,7 @@ lo_truncate To truncate a large object to a given length, call -int lo_truncate(PGcon *conn, int fd, size_t len); +int lo_truncate(PGconn *conn, int fd, size_t len); This function truncates the large object descriptor fd to length len. The @@ -477,7 +477,7 @@ When dealing with large objects that might exceed 2GB in size, instead use -int lo_truncate64(PGcon *conn, int fd, pg_int64 len); +int lo_truncate64(PGconn *conn, int fd, pg_int64 len); This function has the same behavior as lo_truncate, but it can accept a diff -Nru postgresql-13-13.4/doc/src/sgml/maintenance.sgml postgresql-13-13.7/doc/src/sgml/maintenance.sgml --- postgresql-13-13.4/doc/src/sgml/maintenance.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/maintenance.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -291,6 +291,15 @@ + Tuples changed in partitions and inheritance children do not trigger + analyze on the parent table. If the parent table is empty or rarely + changed, it may never be processed by autovacuum, and the statistics for + the inheritance tree as a whole won't be collected. It is necessary to + run ANALYZE on the parent table manually in order to + keep the statistics up to date. + + + As with vacuuming for space recovery, frequent updates of statistics are more useful for heavily-updated tables than for seldom-updated ones. But even for a heavily-updated table, there might be no need for @@ -346,6 +355,19 @@ ANALYZE commands on those tables on a suitable schedule. + + + + The autovacuum daemon does not issue ANALYZE commands + for partitioned tables. Inheritance parents will only be analyzed if the + parent itself is changed - changes to child tables do not trigger + autoanalyze on the parent table. If your queries require statistics on + parent tables for proper planning, it is necessary to periodically run + a manual ANALYZE on those tables to keep the statistics + up to date. + + + @@ -819,6 +841,13 @@ + Partitioned tables are not processed by autovacuum. Statistics + should be collected by running a manual ANALYZE when it is + first populated, and again whenever the distribution of data in its + partitions changes significantly. + + + Temporary tables cannot be accessed by autovacuum. Therefore, appropriate vacuum and analyze operations should be performed via session SQL commands. diff -Nru postgresql-13-13.4/doc/src/sgml/man1/clusterdb.1 postgresql-13-13.7/doc/src/sgml/man1/clusterdb.1 --- postgresql-13-13.4/doc/src/sgml/man1/clusterdb.1 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/clusterdb.1 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: clusterdb .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CLUSTERDB" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CLUSTERDB" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/createdb.1 postgresql-13-13.7/doc/src/sgml/man1/createdb.1 --- postgresql-13-13.4/doc/src/sgml/man1/createdb.1 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/createdb.1 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: createdb .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATEDB" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATEDB" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/createuser.1 postgresql-13-13.7/doc/src/sgml/man1/createuser.1 --- postgresql-13-13.4/doc/src/sgml/man1/createuser.1 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/createuser.1 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: createuser .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATEUSER" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATEUSER" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/dropdb.1 postgresql-13-13.7/doc/src/sgml/man1/dropdb.1 --- postgresql-13-13.4/doc/src/sgml/man1/dropdb.1 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/dropdb.1 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dropdb .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROPDB" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROPDB" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/dropuser.1 postgresql-13-13.7/doc/src/sgml/man1/dropuser.1 --- postgresql-13-13.4/doc/src/sgml/man1/dropuser.1 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/dropuser.1 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dropuser .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROPUSER" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROPUSER" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/ecpg.1 postgresql-13-13.7/doc/src/sgml/man1/ecpg.1 --- postgresql-13-13.4/doc/src/sgml/man1/ecpg.1 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/ecpg.1 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ecpg .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ECPG" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ECPG" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/initdb.1 postgresql-13-13.7/doc/src/sgml/man1/initdb.1 --- postgresql-13-13.4/doc/src/sgml/man1/initdb.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/initdb.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: initdb .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "INITDB" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "INITDB" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/oid2name.1 postgresql-13-13.7/doc/src/sgml/man1/oid2name.1 --- postgresql-13-13.4/doc/src/sgml/man1/oid2name.1 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/oid2name.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: oid2name .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "OID2NAME" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "OID2NAME" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_archivecleanup.1 postgresql-13-13.7/doc/src/sgml/man1/pg_archivecleanup.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_archivecleanup.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_archivecleanup.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_archivecleanup .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_ARCHIVECLEANUP" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_ARCHIVECLEANUP" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_basebackup.1 postgresql-13-13.7/doc/src/sgml/man1/pg_basebackup.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_basebackup.1 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_basebackup.1 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_basebackup .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_BASEBACKUP" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_BASEBACKUP" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pgbench.1 postgresql-13-13.7/doc/src/sgml/man1/pgbench.1 --- postgresql-13-13.4/doc/src/sgml/man1/pgbench.1 2021-08-09 21:03:26.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pgbench.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pgbench .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PGBENCH" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PGBENCH" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_checksums.1 postgresql-13-13.7/doc/src/sgml/man1/pg_checksums.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_checksums.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_checksums.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_checksums .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_CHECKSUMS" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_CHECKSUMS" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_config.1 postgresql-13-13.7/doc/src/sgml/man1/pg_config.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_config.1 2021-08-09 21:03:26.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_config.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_config .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_CONFIG" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_CONFIG" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_controldata.1 postgresql-13-13.7/doc/src/sgml/man1/pg_controldata.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_controldata.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_controldata.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_controldata .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_CONTROLDATA" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_CONTROLDATA" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_ctl.1 postgresql-13-13.7/doc/src/sgml/man1/pg_ctl.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_ctl.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_ctl.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_ctl .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_CTL" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_CTL" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_dump.1 postgresql-13-13.7/doc/src/sgml/man1/pg_dump.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_dump.1 2021-08-09 21:03:26.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_dump.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_dump .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_DUMP" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_DUMP" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_dumpall.1 postgresql-13-13.7/doc/src/sgml/man1/pg_dumpall.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_dumpall.1 2021-08-09 21:03:26.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_dumpall.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_dumpall .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_DUMPALL" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_DUMPALL" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_isready.1 postgresql-13-13.7/doc/src/sgml/man1/pg_isready.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_isready.1 2021-08-09 21:03:26.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_isready.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_isready .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_ISREADY" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_ISREADY" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_receivewal.1 postgresql-13-13.7/doc/src/sgml/man1/pg_receivewal.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_receivewal.1 2021-08-09 21:03:26.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_receivewal.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_receivewal .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_RECEIVEWAL" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_RECEIVEWAL" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -78,6 +78,34 @@ max_wal_senders set high enough to leave at least one session available for the stream\&. .PP +The starting point of the write\-ahead log streaming is calculated when +pg_receivewal +starts: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +First, scan the directory where the WAL segment files are written and find the newest completed segment file, using as the starting point the beginning of the next WAL segment file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +If a starting point cannot be calculated with the previous method, the latest WAL flush location is used as reported by the server from an +IDENTIFY_SYSTEM +command\&. +.RE +.PP If the connection is lost, or if it cannot be initially established, with a non\-fatal error, pg_receivewal will retry the connection indefinitely, and reestablish streaming as soon as possible\&. To avoid this behavior, use the diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_recvlogical.1 postgresql-13-13.7/doc/src/sgml/man1/pg_recvlogical.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_recvlogical.1 2021-08-09 21:03:26.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_recvlogical.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_recvlogical .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_RECVLOGICAL" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_RECVLOGICAL" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_resetwal.1 postgresql-13-13.7/doc/src/sgml/man1/pg_resetwal.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_resetwal.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_resetwal.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_resetwal .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_RESETWAL" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_RESETWAL" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_restore.1 postgresql-13-13.7/doc/src/sgml/man1/pg_restore.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_restore.1 2021-08-09 21:03:26.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_restore.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_restore .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_RESTORE" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_RESTORE" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_rewind.1 postgresql-13-13.7/doc/src/sgml/man1/pg_rewind.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_rewind.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_rewind.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_rewind .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_REWIND" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_REWIND" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -158,7 +158,7 @@ \fBpg_rewind\fR will wait for all files to be written safely to disk\&. This option causes \fBpg_rewind\fR -to return without waiting, which is faster, but means that a subsequent operating system crash can leave the synchronized data directory corrupt\&. Generally, this option is useful for testing but should not be used on a production installation\&. +to return without waiting, which is faster, but means that a subsequent operating system crash can leave the data directory corrupt\&. Generally, this option is useful for testing but should not be used on a production installation\&. .RE .PP \fB\-P\fR diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_standby.1 postgresql-13-13.7/doc/src/sgml/man1/pg_standby.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_standby.1 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_standby.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_standby .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_STANDBY" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_STANDBY" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_test_fsync.1 postgresql-13-13.7/doc/src/sgml/man1/pg_test_fsync.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_test_fsync.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_test_fsync.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_test_fsync .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_TEST_FSYNC" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_TEST_FSYNC" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_test_timing.1 postgresql-13-13.7/doc/src/sgml/man1/pg_test_timing.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_test_timing.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_test_timing.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_test_timing .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_TEST_TIMING" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_TEST_TIMING" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_upgrade.1 postgresql-13-13.7/doc/src/sgml/man1/pg_upgrade.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_upgrade.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_upgrade.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_upgrade .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_UPGRADE" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_UPGRADE" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -31,7 +31,7 @@ pg_upgrade \- upgrade a PostgreSQL server instance .SH "SYNOPSIS" .HP \w'\fBpg_upgrade\fR\ 'u -\fBpg_upgrade\fR \fB\-b\fR \fIoldbindir\fR \fB\-B\fR \fInewbindir\fR \fB\-d\fR \fIoldconfigdir\fR \fB\-D\fR \fInewconfigdir\fR [\fIoption\fR...] +\fBpg_upgrade\fR \fB\-b\fR \fIoldbindir\fR [\fB\-B\fR\ \fInewbindir\fR] \fB\-d\fR \fIoldconfigdir\fR \fB\-D\fR \fInewconfigdir\fR [\fIoption\fR...] .SH "DESCRIPTION" .PP pg_upgrade diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_verifybackup.1 postgresql-13-13.7/doc/src/sgml/man1/pg_verifybackup.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_verifybackup.1 2021-08-09 21:03:26.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_verifybackup.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_verifybackup .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_VERIFYBACKUP" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_VERIFYBACKUP" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/pg_waldump.1 postgresql-13-13.7/doc/src/sgml/man1/pg_waldump.1 --- postgresql-13-13.4/doc/src/sgml/man1/pg_waldump.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/pg_waldump.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: pg_waldump .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PG_WALDUMP" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PG_WALDUMP" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/postgres.1 postgresql-13-13.7/doc/src/sgml/man1/postgres.1 --- postgresql-13-13.4/doc/src/sgml/man1/postgres.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/postgres.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: postgres .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "POSTGRES" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "POSTGRES" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/postmaster.1 postgresql-13-13.7/doc/src/sgml/man1/postmaster.1 --- postgresql-13-13.4/doc/src/sgml/man1/postmaster.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/postmaster.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: postmaster .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "POSTMASTER" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "POSTMASTER" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/psql.1 postgresql-13-13.7/doc/src/sgml/man1/psql.1 --- postgresql-13-13.4/doc/src/sgml/man1/psql.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/psql.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: psql .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PSQL" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PSQL" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -655,7 +655,7 @@ .\} .nf $ \fBpsql testdb\fR -psql (13\&.4) +psql (13\&.7) Type "help" for help\&. testdb=> diff -Nru postgresql-13-13.4/doc/src/sgml/man1/reindexdb.1 postgresql-13-13.7/doc/src/sgml/man1/reindexdb.1 --- postgresql-13-13.4/doc/src/sgml/man1/reindexdb.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/reindexdb.1 2022-05-09 21:29:40.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: reindexdb .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "REINDEXDB" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "REINDEXDB" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -132,7 +132,7 @@ .br \fB\-\-system\fR .RS 4 -Reindex database\*(Aqs system catalogs\&. +Reindex database\*(Aqs system catalogs only\&. .RE .PP \fB\-S \fR\fB\fIschema\fR\fR diff -Nru postgresql-13-13.4/doc/src/sgml/man1/vacuumdb.1 postgresql-13-13.7/doc/src/sgml/man1/vacuumdb.1 --- postgresql-13-13.4/doc/src/sgml/man1/vacuumdb.1 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/vacuumdb.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: vacuumdb .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "VACUUMDB" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "VACUUMDB" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man1/vacuumlo.1 postgresql-13-13.7/doc/src/sgml/man1/vacuumlo.1 --- postgresql-13-13.4/doc/src/sgml/man1/vacuumlo.1 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man1/vacuumlo.1 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: vacuumlo .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "VACUUMLO" "1" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "VACUUMLO" "1" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink.3 postgresql-13-13.7/doc/src/sgml/man3/dblink.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink.3 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_build_sql_delete.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_build_sql_delete.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_build_sql_delete.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_build_sql_delete.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_build_sql_delete .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_BUILD_SQL_DELETE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_BUILD_SQL_DELETE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_build_sql_insert.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_build_sql_insert.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_build_sql_insert.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_build_sql_insert.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_build_sql_insert .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_BUILD_SQL_INSERT" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_BUILD_SQL_INSERT" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_build_sql_update.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_build_sql_update.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_build_sql_update.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_build_sql_update.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_build_sql_update .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_BUILD_SQL_UPDATE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_BUILD_SQL_UPDATE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_cancel_query.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_cancel_query.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_cancel_query.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_cancel_query.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_cancel_query .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_CANCEL_QUERY" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_CANCEL_QUERY" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_close.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_close.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_close.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_close.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_close .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_CLOSE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_CLOSE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_connect.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_connect.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_connect.3 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_connect.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_connect .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_CONNECT" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_CONNECT" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_connect_u.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_connect_u.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_connect_u.3 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_connect_u.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_connect_u .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_CONNECT_U" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_CONNECT_U" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_disconnect.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_disconnect.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_disconnect.3 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_disconnect.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_disconnect .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_DISCONNECT" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_DISCONNECT" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_error_message.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_error_message.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_error_message.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_error_message.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_error_message .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_ERROR_MESSAGE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_ERROR_MESSAGE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_exec.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_exec.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_exec.3 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_exec.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_exec .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_EXEC" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_EXEC" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_fetch.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_fetch.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_fetch.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_fetch.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_fetch .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_FETCH" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_FETCH" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_get_connections.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_get_connections.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_get_connections.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_get_connections.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_get_connections .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_GET_CONNECTIONS" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_GET_CONNECTIONS" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_get_notify.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_get_notify.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_get_notify.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_get_notify.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_get_notify .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_GET_NOTIFY" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_GET_NOTIFY" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_get_pkey.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_get_pkey.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_get_pkey.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_get_pkey.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_get_pkey .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_GET_PKEY" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_GET_PKEY" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_get_result.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_get_result.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_get_result.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_get_result.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_get_result .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_GET_RESULT" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_GET_RESULT" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_is_busy.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_is_busy.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_is_busy.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_is_busy.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_is_busy .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_IS_BUSY" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_IS_BUSY" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_open.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_open.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_open.3 2021-08-09 21:03:27.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_open.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_open .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_OPEN" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_OPEN" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/dblink_send_query.3 postgresql-13-13.7/doc/src/sgml/man3/dblink_send_query.3 --- postgresql-13-13.4/doc/src/sgml/man3/dblink_send_query.3 2021-08-09 21:03:28.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/dblink_send_query.3 2022-05-09 21:29:41.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: dblink_send_query .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DBLINK_SEND_QUERY" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DBLINK_SEND_QUERY" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_commit.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_commit.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_commit.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_commit.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_commit .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_COMMIT" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_COMMIT" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_connect.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_connect.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_connect.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_connect.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_connect .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_CONNECT" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_CONNECT" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_copytuple.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_copytuple.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_copytuple.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_copytuple.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_copytuple .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_COPYTUPLE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_COPYTUPLE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_close.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_close.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_close.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_close.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_cursor_close .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_CURSOR_CLOSE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_CURSOR_CLOSE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_fetch.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_fetch.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_fetch.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_fetch.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_cursor_fetch .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_CURSOR_FETCH" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_CURSOR_FETCH" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_find.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_find.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_find.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_find.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_cursor_find .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_CURSOR_FIND" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_CURSOR_FIND" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_move.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_move.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_move.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_move.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_cursor_move .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_CURSOR_MOVE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_CURSOR_MOVE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_open.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_open.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_open.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_open.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_cursor_open .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_CURSOR_OPEN" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_CURSOR_OPEN" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_open_with_args.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_open_with_args.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_open_with_args.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_open_with_args.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_cursor_open_with_args .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_CURSOR_OPEN_WITH_ARGS" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_CURSOR_OPEN_WITH_ARGS" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_cursor_open_with_paramlist .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_CURSOR_OPEN_WITH_PARAMLIST" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_CURSOR_OPEN_WITH_PARAMLIST" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_exec.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_exec.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_exec.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_exec.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_exec .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_EXEC" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_EXEC" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_execp.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_execp.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_execp.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_execp.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_execp .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_EXECP" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_EXECP" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_execute.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_execute.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_execute.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_execute.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_execute .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_EXECUTE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_EXECUTE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_execute_plan.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_execute_plan.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_execute_plan.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_execute_plan.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_execute_plan .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_EXECUTE_PLAN" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_EXECUTE_PLAN" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_execute_plan_with_paramlist .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_EXECUTE_PLAN_WITH_PARAMLIST" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_EXECUTE_PLAN_WITH_PARAMLIST" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_execute_with_args.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_execute_with_args.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_execute_with_args.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_execute_with_args.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_execute_with_args .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_EXECUTE_WITH_ARGS" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_EXECUTE_WITH_ARGS" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_finish.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_finish.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_finish.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_finish.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_finish .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_FINISH" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_FINISH" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_fname.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_fname.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_fname.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_fname.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_fname .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_FNAME" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_FNAME" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_fnumber.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_fnumber.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_fnumber.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_fnumber.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_fnumber .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_FNUMBER" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_FNUMBER" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_freeplan.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_freeplan.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_freeplan.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_freeplan.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_freeplan .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_FREEPLAN" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_FREEPLAN" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_freetuple.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_freetuple.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_freetuple.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_freetuple.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_freetuple .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_FREETUPLE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_FREETUPLE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_freetuptable.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_freetuptable.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_freetuptable.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_freetuptable.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_freetuptable .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_FREETUPTABLE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_FREETUPTABLE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_getargcount.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_getargcount.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_getargcount.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_getargcount.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_getargcount .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_GETARGCOUNT" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_GETARGCOUNT" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_getargtypeid.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_getargtypeid.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_getargtypeid.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_getargtypeid.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_getargtypeid .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_GETARGTYPEID" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_GETARGTYPEID" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_getbinval.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_getbinval.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_getbinval.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_getbinval.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_getbinval .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_GETBINVAL" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_GETBINVAL" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_getnspname.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_getnspname.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_getnspname.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_getnspname.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_getnspname .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_GETNSPNAME" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_GETNSPNAME" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_getrelname.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_getrelname.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_getrelname.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_getrelname.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_getrelname .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_GETRELNAME" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_GETRELNAME" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_gettype.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_gettype.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_gettype.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_gettype.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_gettype .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_GETTYPE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_GETTYPE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_gettypeid.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_gettypeid.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_gettypeid.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_gettypeid.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_gettypeid .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_GETTYPEID" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_GETTYPEID" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_getvalue.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_getvalue.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_getvalue.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_getvalue.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_getvalue .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_GETVALUE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_GETVALUE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_is_cursor_plan.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_is_cursor_plan.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_is_cursor_plan.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_is_cursor_plan.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_is_cursor_plan .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_IS_CURSOR_PLAN" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_IS_CURSOR_PLAN" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_keepplan.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_keepplan.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_keepplan.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_keepplan.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_keepplan .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_KEEPPLAN" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_KEEPPLAN" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_modifytuple.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_modifytuple.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_modifytuple.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_modifytuple.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_modifytuple .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_MODIFYTUPLE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_MODIFYTUPLE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_palloc.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_palloc.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_palloc.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_palloc.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_palloc .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_PALLOC" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_PALLOC" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_pfree.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_pfree.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_pfree.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_pfree.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_pfree .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_PFREE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_PFREE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_prepare.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_prepare.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_prepare.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_prepare.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_prepare .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_PREPARE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_PREPARE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_prepare_cursor.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_prepare_cursor.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_prepare_cursor.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_prepare_cursor.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_prepare_cursor .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_PREPARE_CURSOR" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_PREPARE_CURSOR" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_prepare_params.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_prepare_params.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_prepare_params.3 2021-08-09 21:03:18.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_prepare_params.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_prepare_params .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_PREPARE_PARAMS" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_PREPARE_PARAMS" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_register_relation.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_register_relation.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_register_relation.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_register_relation.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_register_relation .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_REGISTER_RELATION" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_REGISTER_RELATION" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_register_trigger_data.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_register_trigger_data.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_register_trigger_data.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_register_trigger_data.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_register_trigger_data .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_REGISTER_TRIGGER_DATA" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_REGISTER_TRIGGER_DATA" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_repalloc.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_repalloc.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_repalloc.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_repalloc.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_repalloc .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_REPALLOC" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_REPALLOC" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_result_code_string.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_result_code_string.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_result_code_string.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_result_code_string.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_result_code_string .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_RESULT_CODE_STRING" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_RESULT_CODE_STRING" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_returntuple.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_returntuple.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_returntuple.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_returntuple.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_returntuple .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_RETURNTUPLE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_RETURNTUPLE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_rollback.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_rollback.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_rollback.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_rollback.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_rollback .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_ROLLBACK" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_ROLLBACK" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_saveplan.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_saveplan.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_saveplan.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_saveplan.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_saveplan .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_SAVEPLAN" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_SAVEPLAN" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_scroll_cursor_fetch .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_SCROLL_CURSOR_FETCH" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_SCROLL_CURSOR_FETCH" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_scroll_cursor_move.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_scroll_cursor_move.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_scroll_cursor_move.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_scroll_cursor_move.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_scroll_cursor_move .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_SCROLL_CURSOR_MOVE" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_SCROLL_CURSOR_MOVE" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_start_transaction.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_start_transaction.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_start_transaction.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_start_transaction.3 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_start_transaction .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_START_TRANSACTION" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_START_TRANSACTION" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man3/SPI_unregister_relation.3 postgresql-13-13.7/doc/src/sgml/man3/SPI_unregister_relation.3 --- postgresql-13-13.4/doc/src/sgml/man3/SPI_unregister_relation.3 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man3/SPI_unregister_relation.3 2022-05-09 21:29:36.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SPI_unregister_relation .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SPI_UNREGISTER_RELATION" "3" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SPI_UNREGISTER_RELATION" "3" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ABORT.7 postgresql-13-13.7/doc/src/sgml/man7/ABORT.7 --- postgresql-13-13.4/doc/src/sgml/man7/ABORT.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ABORT.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ABORT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ABORT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ABORT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_AGGREGATE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_AGGREGATE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_AGGREGATE.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_AGGREGATE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER AGGREGATE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER AGGREGATE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER AGGREGATE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_COLLATION.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_COLLATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_COLLATION.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_COLLATION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER COLLATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER COLLATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER COLLATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_CONVERSION.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_CONVERSION.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_CONVERSION.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_CONVERSION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER CONVERSION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER CONVERSION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER CONVERSION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_DATABASE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_DATABASE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_DATABASE.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_DATABASE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER DATABASE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER DATABASE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER DATABASE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER DEFAULT PRIVILEGES .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER DEFAULT PRIVILEGES" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER DEFAULT PRIVILEGES" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_DOMAIN.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_DOMAIN.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_DOMAIN.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_DOMAIN.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER DOMAIN .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER DOMAIN" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER DOMAIN" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER EVENT TRIGGER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER EVENT TRIGGER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER EVENT TRIGGER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_EXTENSION.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_EXTENSION.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_EXTENSION.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_EXTENSION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER EXTENSION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER EXTENSION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER EXTENSION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 2021-08-09 21:03:19.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER FOREIGN DATA WRAPPER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER FOREIGN DATA WRAPPER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER FOREIGN DATA WRAPPER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER FOREIGN TABLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER FOREIGN TABLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER FOREIGN TABLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_FUNCTION.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_FUNCTION.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_FUNCTION.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_FUNCTION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER FUNCTION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER FUNCTION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER FUNCTION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_GROUP.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_GROUP.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_GROUP.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_GROUP.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER GROUP .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER GROUP" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER GROUP" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_INDEX.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_INDEX.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_INDEX.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_INDEX.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER INDEX .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER INDEX" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER INDEX" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_LANGUAGE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_LANGUAGE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_LANGUAGE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_LANGUAGE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER LANGUAGE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER LANGUAGE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER LANGUAGE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER LARGE OBJECT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER LARGE OBJECT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER LARGE OBJECT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER MATERIALIZED VIEW .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER MATERIALIZED VIEW" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER MATERIALIZED VIEW" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -53,6 +53,7 @@ ALTER [ COLUMN ] \fIcolumn_name\fR SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN } CLUSTER ON \fIindex_name\fR SET WITHOUT CLUSTER + SET TABLESPACE \fInew_tablespace\fR SET ( \fIstorage_parameter\fR [= \fIvalue\fR] [, \&.\&.\&. ] ) RESET ( \fIstorage_parameter\fR [, \&.\&.\&. ] ) OWNER TO { \fInew_owner\fR | CURRENT_USER | SESSION_USER } diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_OPERATOR.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_OPERATOR.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_OPERATOR.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_OPERATOR.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER OPERATOR .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER OPERATOR" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER OPERATOR" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER OPERATOR CLASS .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER OPERATOR CLASS" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER OPERATOR CLASS" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER OPERATOR FAMILY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER OPERATOR FAMILY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER OPERATOR FAMILY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_POLICY.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_POLICY.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_POLICY.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_POLICY.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER POLICY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER POLICY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER POLICY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_PROCEDURE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_PROCEDURE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_PROCEDURE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_PROCEDURE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER PROCEDURE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER PROCEDURE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER PROCEDURE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_PUBLICATION.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_PUBLICATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_PUBLICATION.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_PUBLICATION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER PUBLICATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER PUBLICATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER PUBLICATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_ROLE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_ROLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_ROLE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_ROLE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER ROLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER ROLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER ROLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_ROUTINE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_ROUTINE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_ROUTINE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_ROUTINE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER ROUTINE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER ROUTINE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER ROUTINE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_RULE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_RULE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_RULE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_RULE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER RULE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER RULE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER RULE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_SCHEMA.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_SCHEMA.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_SCHEMA.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_SCHEMA.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER SCHEMA .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER SCHEMA" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER SCHEMA" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_SEQUENCE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_SEQUENCE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_SEQUENCE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_SEQUENCE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER SEQUENCE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER SEQUENCE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER SEQUENCE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_SERVER.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_SERVER.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_SERVER.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_SERVER.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER SERVER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER SERVER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER SERVER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_STATISTICS.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_STATISTICS.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_STATISTICS.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_STATISTICS.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER STATISTICS .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER STATISTICS" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER STATISTICS" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER SUBSCRIPTION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER SUBSCRIPTION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER SUBSCRIPTION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_SYSTEM.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_SYSTEM.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_SYSTEM.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_SYSTEM.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER SYSTEM .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER SYSTEM" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER SYSTEM" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_TABLE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_TABLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_TABLE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_TABLE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER TABLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER TABLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER TABLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -619,16 +619,30 @@ .PP REPLICA IDENTITY .RS 4 -This form changes the information which is written to the write\-ahead log to identify rows which are updated or deleted\&. This option has no effect except when logical replication is in use\&. +This form changes the information which is written to the write\-ahead log to identify rows which are updated or deleted\&. In most cases, the old value of each column is only logged if it differs from the new value; however, if the old value is stored externally, it is always logged regardless of whether it changed\&. This option has no effect except when logical replication is in use\&. +.PP DEFAULT -(the default for non\-system tables) records the old values of the columns of the primary key, if any\&. -USING INDEX -records the old values of the columns covered by the named index, which must be unique, not partial, not deferrable, and include only columns marked -NOT NULL\&. +.RS 4 +Records the old values of the columns of the primary key, if any\&. This is the default for non\-system tables\&. +.RE +.PP +USING INDEX \fIindex_name\fR +.RS 4 +Records the old values of the columns covered by the named index, that must be unique, not partial, not deferrable, and include only columns marked +NOT NULL\&. If this index is dropped, the behavior is the same as +NOTHING\&. +.RE +.PP FULL -records the old values of all columns in the row\&. +.RS 4 +Records the old values of all columns in the row\&. +.RE +.PP NOTHING -records no information about the old row\&. (This is the default for system tables\&.) In all cases, no old values are logged unless at least one of the columns that would be logged differs between the old and new versions of the row\&. +.RS 4 +Records no information about the old row\&. This is the default for system tables\&. +.RE +.sp .RE .PP RENAME diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_TABLESPACE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_TABLESPACE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_TABLESPACE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_TABLESPACE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER TABLESPACE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER TABLESPACE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER TABLESPACE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER TEXT SEARCH CONFIGURATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER TEXT SEARCH CONFIGURATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER TEXT SEARCH CONFIGURATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER TEXT SEARCH DICTIONARY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER TEXT SEARCH DICTIONARY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER TEXT SEARCH DICTIONARY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER TEXT SEARCH PARSER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER TEXT SEARCH PARSER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER TEXT SEARCH PARSER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER TEXT SEARCH TEMPLATE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER TEXT SEARCH TEMPLATE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER TEXT SEARCH TEMPLATE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_TRIGGER.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_TRIGGER.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_TRIGGER.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_TRIGGER.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER TRIGGER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER TRIGGER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER TRIGGER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_TYPE.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_TYPE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_TYPE.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_TYPE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER TYPE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER TYPE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER TYPE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_USER.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_USER.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_USER.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_USER.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER USER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER USER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER USER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_USER_MAPPING.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_USER_MAPPING.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_USER_MAPPING.7 2021-08-09 21:03:20.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_USER_MAPPING.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER USER MAPPING .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER USER MAPPING" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER USER MAPPING" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ALTER_VIEW.7 postgresql-13-13.7/doc/src/sgml/man7/ALTER_VIEW.7 --- postgresql-13-13.4/doc/src/sgml/man7/ALTER_VIEW.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ALTER_VIEW.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ALTER VIEW .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ALTER VIEW" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ALTER VIEW" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ANALYZE.7 postgresql-13-13.7/doc/src/sgml/man7/ANALYZE.7 --- postgresql-13-13.4/doc/src/sgml/man7/ANALYZE.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ANALYZE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ANALYZE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ANALYZE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ANALYZE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -188,8 +188,20 @@ \fBANALYZE\fR manually\&. .PP -If any of the child tables are foreign tables whose foreign data wrappers do not support -\fBANALYZE\fR, those child tables are ignored while gathering inheritance statistics\&. +For partitioned tables, +\fBANALYZE\fR +gathers statistics by sampling rows from all partitions; in addition, it will recurse into each partition and update its statistics\&. Each leaf partition is analyzed only once, even with multi\-level partitioning\&. No statistics are collected for only the parent table (without data from its partitions), because with partitioning it\*(Aqs guaranteed to be empty\&. +.PP +By contrast, if the table being analyzed has inheritance children, +\fBANALYZE\fR +gathers two sets of statistics: one on the rows of the parent table only, and a second including rows of both the parent table and all of its children\&. This second set of statistics is needed when planning queries that process the inheritance tree as a whole\&. The child tables themselves are not individually analyzed in this case\&. +.PP +The autovacuum daemon does not process partitioned tables, nor does it process inheritance parents if only the children are ever modified\&. It is usually necessary to periodically run a manual +\fBANALYZE\fR +to keep the statistics of the table hierarchy up to date\&. +.PP +If any child tables or partitions are foreign tables whose foreign data wrappers do not support +\fBANALYZE\fR, those tables are ignored while gathering inheritance statistics\&. .PP If the table being analyzed is completely empty, \fBANALYZE\fR diff -Nru postgresql-13-13.4/doc/src/sgml/man7/BEGIN.7 postgresql-13-13.7/doc/src/sgml/man7/BEGIN.7 --- postgresql-13-13.4/doc/src/sgml/man7/BEGIN.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/BEGIN.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: BEGIN .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "BEGIN" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "BEGIN" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CALL.7 postgresql-13-13.7/doc/src/sgml/man7/CALL.7 --- postgresql-13-13.4/doc/src/sgml/man7/CALL.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CALL.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CALL .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CALL" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CALL" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CHECKPOINT.7 postgresql-13-13.7/doc/src/sgml/man7/CHECKPOINT.7 --- postgresql-13-13.4/doc/src/sgml/man7/CHECKPOINT.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CHECKPOINT.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CHECKPOINT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CHECKPOINT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CHECKPOINT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CLOSE.7 postgresql-13-13.7/doc/src/sgml/man7/CLOSE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CLOSE.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CLOSE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CLOSE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CLOSE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CLOSE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CLUSTER.7 postgresql-13-13.7/doc/src/sgml/man7/CLUSTER.7 --- postgresql-13-13.4/doc/src/sgml/man7/CLUSTER.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CLUSTER.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CLUSTER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CLUSTER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CLUSTER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/COMMENT.7 postgresql-13-13.7/doc/src/sgml/man7/COMMENT.7 --- postgresql-13-13.4/doc/src/sgml/man7/COMMENT.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/COMMENT.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: COMMENT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "COMMENT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "COMMENT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -96,6 +96,10 @@ NULL in place of the text string\&. Comments are automatically dropped when their object is dropped\&. .PP +A +SHARE UPDATE EXCLUSIVE +lock is acquired on the object to be commented\&. +.PP For most kinds of object, only the object\*(Aqs owner can set the comment\&. Roles don\*(Aqt have owners, so the rule for COMMENT ON ROLE is that you must be superuser to comment on a superuser role, or have the diff -Nru postgresql-13-13.4/doc/src/sgml/man7/COMMIT.7 postgresql-13-13.7/doc/src/sgml/man7/COMMIT.7 --- postgresql-13-13.4/doc/src/sgml/man7/COMMIT.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/COMMIT.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: COMMIT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "COMMIT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "COMMIT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/COMMIT_PREPARED.7 postgresql-13-13.7/doc/src/sgml/man7/COMMIT_PREPARED.7 --- postgresql-13-13.4/doc/src/sgml/man7/COMMIT_PREPARED.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/COMMIT_PREPARED.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: COMMIT PREPARED .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "COMMIT PREPARED" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "COMMIT PREPARED" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/COPY.7 postgresql-13-13.7/doc/src/sgml/man7/COPY.7 --- postgresql-13-13.4/doc/src/sgml/man7/COPY.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/COPY.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: COPY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "COPY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "COPY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -558,13 +558,13 @@ \e\fIdigits\fR T}:T{ Backslash followed by one to three octal digits specifies - the character with that numeric code + the byte with that numeric code T} T{ \ex\fIdigits\fR T}:T{ Backslash x followed by one or two hex digits specifies - the character with that numeric code + the byte with that numeric code T} .TE .sp 1 @@ -585,6 +585,8 @@ \fBCOPY\fR file is transferred across different machines (for example, from Unix to Windows or vice versa)\&. .PP +All backslash sequences are interpreted after encoding conversion\&. The bytes specified with the octal and hex\-digit backslash sequences must form valid characters in the database encoding\&. +.PP \fBCOPY TO\fR will terminate each row with a Unix\-style newline (\(lq\en\(rq)\&. Servers running on Microsoft Windows instead output carriage return/newline (\(lq\er\en\(rq), but only for \fBCOPY\fR diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE ACCESS METHOD .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE ACCESS METHOD" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE ACCESS METHOD" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_AGGREGATE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_AGGREGATE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_AGGREGATE.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_AGGREGATE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE AGGREGATE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE AGGREGATE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE AGGREGATE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_CAST.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_CAST.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_CAST.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_CAST.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE CAST .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE CAST" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE CAST" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_COLLATION.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_COLLATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_COLLATION.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_COLLATION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE COLLATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE COLLATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE COLLATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_CONVERSION.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_CONVERSION.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_CONVERSION.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_CONVERSION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE CONVERSION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE CONVERSION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE CONVERSION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_DATABASE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_DATABASE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_DATABASE.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_DATABASE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE DATABASE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE DATABASE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE DATABASE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_DOMAIN.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_DOMAIN.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_DOMAIN.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_DOMAIN.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE DOMAIN .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE DOMAIN" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE DOMAIN" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE EVENT TRIGGER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE EVENT TRIGGER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE EVENT TRIGGER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -34,7 +34,7 @@ .nf CREATE EVENT TRIGGER \fIname\fR ON \fIevent\fR - [ WHEN \fIfilter_variable\fR IN (filter_value [, \&.\&.\&. ]) [ AND \&.\&.\&. ] ] + [ WHEN \fIfilter_variable\fR IN (\fIfilter_value\fR [, \&.\&.\&. ]) [ AND \&.\&.\&. ] ] EXECUTE { FUNCTION | PROCEDURE } \fIfunction_name\fR() .fi .SH "DESCRIPTION" diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_EXTENSION.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_EXTENSION.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_EXTENSION.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_EXTENSION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE EXTENSION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE EXTENSION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE EXTENSION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE FOREIGN DATA WRAPPER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE FOREIGN DATA WRAPPER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE FOREIGN DATA WRAPPER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE FOREIGN TABLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE FOREIGN TABLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE FOREIGN TABLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -217,13 +217,33 @@ .PP Although PostgreSQL -does not attempt to enforce constraints on foreign tables, it does assume that they are correct for purposes of query optimization\&. If there are rows visible in the foreign table that do not satisfy a declared constraint, queries on the table might produce incorrect answers\&. It is the user\*(Aqs responsibility to ensure that the constraint definition matches reality\&. +does not attempt to enforce constraints on foreign tables, it does assume that they are correct for purposes of query optimization\&. If there are rows visible in the foreign table that do not satisfy a declared constraint, queries on the table might produce errors or incorrect answers\&. It is the user\*(Aqs responsibility to ensure that the constraint definition matches reality\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBCaution\fR +.ps -1 +.br +.PP +When a foreign table is used as a partition of a partitioned table, there is an implicit constraint that its contents must satisfy the partitioning rule\&. Again, it is the user\*(Aqs responsibility to ensure that that is true, which is best done by installing a matching constraint on the remote server\&. +.sp .5v +.RE +.PP +Within a partitioned table containing foreign\-table partitions, an +\fBUPDATE\fR +that changes the partition key value can cause a row to be moved from a local partition to a foreign\-table partition, provided the foreign data wrapper supports tuple routing\&. However it is not currently possible to move a row from a foreign\-table partition to another partition\&. An +\fBUPDATE\fR +that would require doing that will fail due to the partitioning constraint, assuming that that is properly enforced by the remote server\&. .PP Similar considerations apply to generated columns\&. Stored generated columns are computed on insert or update on the local PostgreSQL server and handed to the foreign\-data wrapper for writing out to the foreign data store, but it is not enforced that a query of the foreign table returns values for stored generated columns that are consistent with the generation expression\&. Again, this might result in incorrect query results\&. -.PP -While rows can be moved from local partitions to a foreign\-table partition (provided the foreign data wrapper supports tuple routing), they cannot be moved from a foreign\-table partition to another partition\&. .SH "EXAMPLES" .PP Create foreign table diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_FUNCTION.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_FUNCTION.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_FUNCTION.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_FUNCTION.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE FUNCTION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE FUNCTION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE FUNCTION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_GROUP.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_GROUP.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_GROUP.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_GROUP.7 2022-05-09 21:29:37.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE GROUP .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE GROUP" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE GROUP" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_INDEX.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_INDEX.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_INDEX.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_INDEX.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE INDEX .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE INDEX" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE INDEX" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_LANGUAGE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_LANGUAGE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_LANGUAGE.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_LANGUAGE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE LANGUAGE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE LANGUAGE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE LANGUAGE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 2021-08-09 21:03:21.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE MATERIALIZED VIEW .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE MATERIALIZED VIEW" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE MATERIALIZED VIEW" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_OPERATOR.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_OPERATOR.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_OPERATOR.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_OPERATOR.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE OPERATOR .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE OPERATOR" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE OPERATOR" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE OPERATOR CLASS .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE OPERATOR CLASS" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE OPERATOR CLASS" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE OPERATOR FAMILY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE OPERATOR FAMILY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE OPERATOR FAMILY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_POLICY.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_POLICY.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_POLICY.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_POLICY.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE POLICY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE POLICY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE POLICY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_PROCEDURE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_PROCEDURE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_PROCEDURE.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_PROCEDURE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE PROCEDURE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE PROCEDURE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE PROCEDURE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_PUBLICATION.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_PUBLICATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_PUBLICATION.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_PUBLICATION.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE PUBLICATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE PUBLICATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE PUBLICATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -128,6 +128,12 @@ or \fBUPDATE\fR, or it may not be published at all\&. .PP +\fBATTACH\fRing a table into a partition tree whose root is published using a publication with +publish_via_partition_root +set to +true +does not result in the table\*(Aqs existing contents being replicated\&. +.PP \fBCOPY \&.\&.\&. FROM\fR commands are published as \fBINSERT\fR @@ -182,4 +188,4 @@ PostgreSQL extension\&. .SH "SEE ALSO" -ALTER PUBLICATION (\fBALTER_PUBLICATION\fR(7)), DROP PUBLICATION (\fBDROP_PUBLICATION\fR(7)) +ALTER PUBLICATION (\fBALTER_PUBLICATION\fR(7)), DROP PUBLICATION (\fBDROP_PUBLICATION\fR(7)), CREATE SUBSCRIPTION (\fBCREATE_SUBSCRIPTION\fR(7)), ALTER SUBSCRIPTION (\fBALTER_SUBSCRIPTION\fR(7)) diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_ROLE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_ROLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_ROLE.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_ROLE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE ROLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE ROLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE ROLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_RULE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_RULE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_RULE.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_RULE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE RULE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE RULE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE RULE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_SCHEMA.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_SCHEMA.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_SCHEMA.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_SCHEMA.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE SCHEMA .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE SCHEMA" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE SCHEMA" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_SEQUENCE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_SEQUENCE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_SEQUENCE.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_SEQUENCE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE SEQUENCE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE SEQUENCE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE SEQUENCE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_SERVER.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_SERVER.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_SERVER.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_SERVER.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE SERVER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE SERVER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE SERVER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_STATISTICS.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_STATISTICS.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_STATISTICS.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_STATISTICS.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE STATISTICS .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE STATISTICS" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE STATISTICS" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE SUBSCRIPTION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE SUBSCRIPTION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE SUBSCRIPTION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TABLE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TABLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TABLE.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TABLE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TABLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TABLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TABLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TABLE_AS.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TABLE_AS.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TABLE_AS.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TABLE_AS.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TABLE AS .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TABLE AS" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TABLE AS" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TABLESPACE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TABLESPACE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TABLESPACE.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TABLESPACE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TABLESPACE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TABLESPACE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TABLESPACE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TEXT SEARCH CONFIGURATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TEXT SEARCH CONFIGURATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TEXT SEARCH CONFIGURATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TEXT SEARCH DICTIONARY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TEXT SEARCH DICTIONARY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TEXT SEARCH DICTIONARY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TEXT SEARCH PARSER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TEXT SEARCH PARSER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TEXT SEARCH PARSER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TEXT SEARCH TEMPLATE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TEXT SEARCH TEMPLATE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TEXT SEARCH TEMPLATE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TRANSFORM.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TRANSFORM.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TRANSFORM.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TRANSFORM.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TRANSFORM .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TRANSFORM" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TRANSFORM" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TRIGGER.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TRIGGER.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TRIGGER.7 2021-08-09 21:03:22.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TRIGGER.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TRIGGER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TRIGGER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TRIGGER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_TYPE.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_TYPE.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_TYPE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_TYPE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE TYPE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE TYPE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE TYPE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_USER.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_USER.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_USER.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_USER.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE USER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE USER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE USER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_USER_MAPPING.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_USER_MAPPING.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_USER_MAPPING.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_USER_MAPPING.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE USER MAPPING .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE USER MAPPING" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE USER MAPPING" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/CREATE_VIEW.7 postgresql-13-13.7/doc/src/sgml/man7/CREATE_VIEW.7 --- postgresql-13-13.4/doc/src/sgml/man7/CREATE_VIEW.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/CREATE_VIEW.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: CREATE VIEW .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "CREATE VIEW" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "CREATE VIEW" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DEALLOCATE.7 postgresql-13-13.7/doc/src/sgml/man7/DEALLOCATE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DEALLOCATE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DEALLOCATE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DEALLOCATE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DEALLOCATE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DEALLOCATE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DECLARE.7 postgresql-13-13.7/doc/src/sgml/man7/DECLARE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DECLARE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DECLARE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DECLARE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DECLARE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DECLARE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DELETE.7 postgresql-13-13.7/doc/src/sgml/man7/DELETE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DELETE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DELETE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DELETE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DELETE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DELETE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DISCARD.7 postgresql-13-13.7/doc/src/sgml/man7/DISCARD.7 --- postgresql-13-13.4/doc/src/sgml/man7/DISCARD.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DISCARD.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DISCARD .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DISCARD" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DISCARD" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DO.7 postgresql-13-13.7/doc/src/sgml/man7/DO.7 --- postgresql-13-13.4/doc/src/sgml/man7/DO.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DO.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DO .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DO" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DO" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_ACCESS_METHOD.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_ACCESS_METHOD.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_ACCESS_METHOD.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_ACCESS_METHOD.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP ACCESS METHOD .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP ACCESS METHOD" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP ACCESS METHOD" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_AGGREGATE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_AGGREGATE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_AGGREGATE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_AGGREGATE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP AGGREGATE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP AGGREGATE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP AGGREGATE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_CAST.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_CAST.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_CAST.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_CAST.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP CAST .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP CAST" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP CAST" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_COLLATION.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_COLLATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_COLLATION.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_COLLATION.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP COLLATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP COLLATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP COLLATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_CONVERSION.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_CONVERSION.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_CONVERSION.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_CONVERSION.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP CONVERSION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP CONVERSION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP CONVERSION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_DATABASE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_DATABASE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_DATABASE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_DATABASE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP DATABASE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP DATABASE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP DATABASE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_DOMAIN.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_DOMAIN.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_DOMAIN.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_DOMAIN.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP DOMAIN .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP DOMAIN" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP DOMAIN" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP EVENT TRIGGER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP EVENT TRIGGER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP EVENT TRIGGER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_EXTENSION.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_EXTENSION.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_EXTENSION.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_EXTENSION.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP EXTENSION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP EXTENSION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP EXTENSION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP FOREIGN DATA WRAPPER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP FOREIGN DATA WRAPPER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP FOREIGN DATA WRAPPER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP FOREIGN TABLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP FOREIGN TABLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP FOREIGN TABLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_FUNCTION.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_FUNCTION.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_FUNCTION.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_FUNCTION.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP FUNCTION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP FUNCTION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP FUNCTION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_GROUP.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_GROUP.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_GROUP.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_GROUP.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP GROUP .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP GROUP" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP GROUP" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_INDEX.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_INDEX.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_INDEX.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_INDEX.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP INDEX .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP INDEX" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP INDEX" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_LANGUAGE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_LANGUAGE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_LANGUAGE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_LANGUAGE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP LANGUAGE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP LANGUAGE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP LANGUAGE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP MATERIALIZED VIEW .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP MATERIALIZED VIEW" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP MATERIALIZED VIEW" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_OPERATOR.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_OPERATOR.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_OPERATOR.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_OPERATOR.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP OPERATOR .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP OPERATOR" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP OPERATOR" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP OPERATOR CLASS .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP OPERATOR CLASS" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP OPERATOR CLASS" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP OPERATOR FAMILY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP OPERATOR FAMILY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP OPERATOR FAMILY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_OWNED.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_OWNED.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_OWNED.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_OWNED.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP OWNED .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP OWNED" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP OWNED" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_POLICY.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_POLICY.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_POLICY.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_POLICY.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP POLICY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP POLICY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP POLICY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_PROCEDURE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_PROCEDURE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_PROCEDURE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_PROCEDURE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP PROCEDURE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP PROCEDURE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP PROCEDURE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_PUBLICATION.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_PUBLICATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_PUBLICATION.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_PUBLICATION.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP PUBLICATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP PUBLICATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP PUBLICATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_ROLE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_ROLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_ROLE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_ROLE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP ROLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP ROLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP ROLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_ROUTINE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_ROUTINE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_ROUTINE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_ROUTINE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP ROUTINE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP ROUTINE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP ROUTINE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_RULE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_RULE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_RULE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_RULE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP RULE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP RULE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP RULE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_SCHEMA.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_SCHEMA.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_SCHEMA.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_SCHEMA.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP SCHEMA .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP SCHEMA" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP SCHEMA" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_SEQUENCE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_SEQUENCE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_SEQUENCE.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_SEQUENCE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP SEQUENCE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP SEQUENCE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP SEQUENCE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_SERVER.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_SERVER.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_SERVER.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_SERVER.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP SERVER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP SERVER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP SERVER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_STATISTICS.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_STATISTICS.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_STATISTICS.7 2021-08-09 21:03:23.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_STATISTICS.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP STATISTICS .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP STATISTICS" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP STATISTICS" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_SUBSCRIPTION.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_SUBSCRIPTION.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_SUBSCRIPTION.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_SUBSCRIPTION.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP SUBSCRIPTION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP SUBSCRIPTION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP SUBSCRIPTION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_TABLE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_TABLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_TABLE.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_TABLE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP TABLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP TABLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP TABLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_TABLESPACE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_TABLESPACE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_TABLESPACE.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_TABLESPACE.7 2022-05-09 21:29:38.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP TABLESPACE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP TABLESPACE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP TABLESPACE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP TEXT SEARCH CONFIGURATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP TEXT SEARCH CONFIGURATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP TEXT SEARCH CONFIGURATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP TEXT SEARCH DICTIONARY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP TEXT SEARCH DICTIONARY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP TEXT SEARCH DICTIONARY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP TEXT SEARCH PARSER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP TEXT SEARCH PARSER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP TEXT SEARCH PARSER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP TEXT SEARCH TEMPLATE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP TEXT SEARCH TEMPLATE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP TEXT SEARCH TEMPLATE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_TRANSFORM.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_TRANSFORM.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_TRANSFORM.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_TRANSFORM.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP TRANSFORM .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP TRANSFORM" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP TRANSFORM" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_TRIGGER.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_TRIGGER.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_TRIGGER.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_TRIGGER.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP TRIGGER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP TRIGGER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP TRIGGER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_TYPE.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_TYPE.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_TYPE.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_TYPE.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP TYPE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP TYPE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP TYPE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_USER.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_USER.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_USER.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_USER.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP USER .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP USER" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP USER" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_USER_MAPPING.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_USER_MAPPING.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_USER_MAPPING.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_USER_MAPPING.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP USER MAPPING .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP USER MAPPING" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP USER MAPPING" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/DROP_VIEW.7 postgresql-13-13.7/doc/src/sgml/man7/DROP_VIEW.7 --- postgresql-13-13.4/doc/src/sgml/man7/DROP_VIEW.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/DROP_VIEW.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: DROP VIEW .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "DROP VIEW" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "DROP VIEW" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/END.7 postgresql-13-13.7/doc/src/sgml/man7/END.7 --- postgresql-13-13.4/doc/src/sgml/man7/END.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/END.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: END .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "END" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "END" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/EXECUTE.7 postgresql-13-13.7/doc/src/sgml/man7/EXECUTE.7 --- postgresql-13-13.4/doc/src/sgml/man7/EXECUTE.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/EXECUTE.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: EXECUTE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "EXECUTE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "EXECUTE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/EXPLAIN.7 postgresql-13-13.7/doc/src/sgml/man7/EXPLAIN.7 --- postgresql-13-13.4/doc/src/sgml/man7/EXPLAIN.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/EXPLAIN.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: EXPLAIN .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "EXPLAIN" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "EXPLAIN" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/FETCH.7 postgresql-13-13.7/doc/src/sgml/man7/FETCH.7 --- postgresql-13-13.4/doc/src/sgml/man7/FETCH.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/FETCH.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: FETCH .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "FETCH" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "FETCH" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/GRANT.7 postgresql-13-13.7/doc/src/sgml/man7/GRANT.7 --- postgresql-13-13.4/doc/src/sgml/man7/GRANT.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/GRANT.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: GRANT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "GRANT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "GRANT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 postgresql-13-13.7/doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 --- postgresql-13-13.4/doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: IMPORT FOREIGN SCHEMA .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "IMPORT FOREIGN SCHEMA" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "IMPORT FOREIGN SCHEMA" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/INSERT.7 postgresql-13-13.7/doc/src/sgml/man7/INSERT.7 --- postgresql-13-13.4/doc/src/sgml/man7/INSERT.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/INSERT.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: INSERT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "INSERT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "INSERT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/LISTEN.7 postgresql-13-13.7/doc/src/sgml/man7/LISTEN.7 --- postgresql-13-13.4/doc/src/sgml/man7/LISTEN.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/LISTEN.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: LISTEN .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "LISTEN" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "LISTEN" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/LOAD.7 postgresql-13-13.7/doc/src/sgml/man7/LOAD.7 --- postgresql-13-13.4/doc/src/sgml/man7/LOAD.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/LOAD.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: LOAD .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "LOAD" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "LOAD" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/LOCK.7 postgresql-13-13.7/doc/src/sgml/man7/LOCK.7 --- postgresql-13-13.4/doc/src/sgml/man7/LOCK.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/LOCK.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: LOCK .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "LOCK" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "LOCK" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/MOVE.7 postgresql-13-13.7/doc/src/sgml/man7/MOVE.7 --- postgresql-13-13.4/doc/src/sgml/man7/MOVE.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/MOVE.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: MOVE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "MOVE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "MOVE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/NOTIFY.7 postgresql-13-13.7/doc/src/sgml/man7/NOTIFY.7 --- postgresql-13-13.4/doc/src/sgml/man7/NOTIFY.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/NOTIFY.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: NOTIFY .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "NOTIFY" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "NOTIFY" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/PREPARE.7 postgresql-13-13.7/doc/src/sgml/man7/PREPARE.7 --- postgresql-13-13.4/doc/src/sgml/man7/PREPARE.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/PREPARE.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: PREPARE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PREPARE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PREPARE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/PREPARE_TRANSACTION.7 postgresql-13-13.7/doc/src/sgml/man7/PREPARE_TRANSACTION.7 --- postgresql-13-13.4/doc/src/sgml/man7/PREPARE_TRANSACTION.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/PREPARE_TRANSACTION.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: PREPARE TRANSACTION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "PREPARE TRANSACTION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "PREPARE TRANSACTION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/REASSIGN_OWNED.7 postgresql-13-13.7/doc/src/sgml/man7/REASSIGN_OWNED.7 --- postgresql-13-13.4/doc/src/sgml/man7/REASSIGN_OWNED.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/REASSIGN_OWNED.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: REASSIGN OWNED .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "REASSIGN OWNED" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "REASSIGN OWNED" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 postgresql-13-13.7/doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 --- postgresql-13-13.4/doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: REFRESH MATERIALIZED VIEW .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "REFRESH MATERIALIZED VIEW" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "REFRESH MATERIALIZED VIEW" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -73,13 +73,11 @@ .RE .SH "NOTES" .PP -While the default index for future -\fBCLUSTER\fR(7) -operations is retained, -\fBREFRESH MATERIALIZED VIEW\fR -does not order the generated rows based on this property\&. If you want the data to be ordered upon generation, you must use an +If there is an ORDER BY -clause in the backing query\&. +clause in the materialized view\*(Aqs defining query, the original contents of the materialized view will be ordered that way; but +\fBREFRESH MATERIALIZED VIEW\fR +does not guarantee to preserve that ordering\&. .SH "EXAMPLES" .PP This command will replace the contents of the materialized view called diff -Nru postgresql-13-13.4/doc/src/sgml/man7/REINDEX.7 postgresql-13-13.7/doc/src/sgml/man7/REINDEX.7 --- postgresql-13-13.4/doc/src/sgml/man7/REINDEX.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/REINDEX.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: REINDEX .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "REINDEX" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "REINDEX" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/RELEASE_SAVEPOINT.7 postgresql-13-13.7/doc/src/sgml/man7/RELEASE_SAVEPOINT.7 --- postgresql-13-13.4/doc/src/sgml/man7/RELEASE_SAVEPOINT.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/RELEASE_SAVEPOINT.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: RELEASE SAVEPOINT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "RELEASE SAVEPOINT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "RELEASE SAVEPOINT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/RESET.7 postgresql-13-13.7/doc/src/sgml/man7/RESET.7 --- postgresql-13-13.4/doc/src/sgml/man7/RESET.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/RESET.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: RESET .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "RESET" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "RESET" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/REVOKE.7 postgresql-13-13.7/doc/src/sgml/man7/REVOKE.7 --- postgresql-13-13.4/doc/src/sgml/man7/REVOKE.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/REVOKE.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: REVOKE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "REVOKE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "REVOKE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ROLLBACK.7 postgresql-13-13.7/doc/src/sgml/man7/ROLLBACK.7 --- postgresql-13-13.4/doc/src/sgml/man7/ROLLBACK.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ROLLBACK.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ROLLBACK .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ROLLBACK" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ROLLBACK" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ROLLBACK_PREPARED.7 postgresql-13-13.7/doc/src/sgml/man7/ROLLBACK_PREPARED.7 --- postgresql-13-13.4/doc/src/sgml/man7/ROLLBACK_PREPARED.7 2021-08-09 21:03:24.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ROLLBACK_PREPARED.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ROLLBACK PREPARED .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ROLLBACK PREPARED" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ROLLBACK PREPARED" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 postgresql-13-13.7/doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 --- postgresql-13-13.4/doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: ROLLBACK TO SAVEPOINT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "ROLLBACK TO SAVEPOINT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "ROLLBACK TO SAVEPOINT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SAVEPOINT.7 postgresql-13-13.7/doc/src/sgml/man7/SAVEPOINT.7 --- postgresql-13-13.4/doc/src/sgml/man7/SAVEPOINT.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SAVEPOINT.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SAVEPOINT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SAVEPOINT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SAVEPOINT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SECURITY_LABEL.7 postgresql-13-13.7/doc/src/sgml/man7/SECURITY_LABEL.7 --- postgresql-13-13.4/doc/src/sgml/man7/SECURITY_LABEL.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SECURITY_LABEL.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SECURITY LABEL .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SECURITY LABEL" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SECURITY LABEL" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SELECT.7 postgresql-13-13.7/doc/src/sgml/man7/SELECT.7 --- postgresql-13-13.4/doc/src/sgml/man7/SELECT.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SELECT.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SELECT .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SELECT" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SELECT" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -1719,7 +1719,9 @@ ORDER BY clause; ORDER BY -is mandatory in this case\&. +is mandatory in this case, and +SKIP LOCKED +is not allowed\&. ROW and ROWS diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SELECT_INTO.7 postgresql-13-13.7/doc/src/sgml/man7/SELECT_INTO.7 --- postgresql-13-13.4/doc/src/sgml/man7/SELECT_INTO.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SELECT_INTO.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SELECT INTO .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SELECT INTO" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SELECT INTO" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -98,7 +98,7 @@ In contrast to \fBCREATE TABLE AS\fR, \fBSELECT INTO\fR -does not allow to specify properties like a table\*(Aqs access method with +does not allow specifying properties like a table\*(Aqs access method with USING \fImethod\fR or the table\*(Aqs tablespace with TABLESPACE \fItablespace_name\fR\&. Use diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SET.7 postgresql-13-13.7/doc/src/sgml/man7/SET.7 --- postgresql-13-13.4/doc/src/sgml/man7/SET.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SET.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SET .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SET" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SET" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SET_CONSTRAINTS.7 postgresql-13-13.7/doc/src/sgml/man7/SET_CONSTRAINTS.7 --- postgresql-13-13.4/doc/src/sgml/man7/SET_CONSTRAINTS.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SET_CONSTRAINTS.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SET CONSTRAINTS .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SET CONSTRAINTS" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SET CONSTRAINTS" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SET_ROLE.7 postgresql-13-13.7/doc/src/sgml/man7/SET_ROLE.7 --- postgresql-13-13.4/doc/src/sgml/man7/SET_ROLE.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SET_ROLE.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SET ROLE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SET ROLE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SET ROLE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 postgresql-13-13.7/doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 --- postgresql-13-13.4/doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SET SESSION AUTHORIZATION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SET SESSION AUTHORIZATION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SET SESSION AUTHORIZATION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SET_TRANSACTION.7 postgresql-13-13.7/doc/src/sgml/man7/SET_TRANSACTION.7 --- postgresql-13-13.4/doc/src/sgml/man7/SET_TRANSACTION.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SET_TRANSACTION.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SET TRANSACTION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SET TRANSACTION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SET TRANSACTION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/SHOW.7 postgresql-13-13.7/doc/src/sgml/man7/SHOW.7 --- postgresql-13-13.4/doc/src/sgml/man7/SHOW.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/SHOW.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: SHOW .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "SHOW" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "SHOW" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/START_TRANSACTION.7 postgresql-13-13.7/doc/src/sgml/man7/START_TRANSACTION.7 --- postgresql-13-13.4/doc/src/sgml/man7/START_TRANSACTION.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/START_TRANSACTION.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: START TRANSACTION .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "START TRANSACTION" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "START TRANSACTION" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/TRUNCATE.7 postgresql-13-13.7/doc/src/sgml/man7/TRUNCATE.7 --- postgresql-13-13.4/doc/src/sgml/man7/TRUNCATE.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/TRUNCATE.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: TRUNCATE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "TRUNCATE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "TRUNCATE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/UNLISTEN.7 postgresql-13-13.7/doc/src/sgml/man7/UNLISTEN.7 --- postgresql-13-13.4/doc/src/sgml/man7/UNLISTEN.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/UNLISTEN.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: UNLISTEN .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "UNLISTEN" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "UNLISTEN" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/UPDATE.7 postgresql-13-13.7/doc/src/sgml/man7/UPDATE.7 --- postgresql-13-13.4/doc/src/sgml/man7/UPDATE.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/UPDATE.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: UPDATE .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "UPDATE" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "UPDATE" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/VACUUM.7 postgresql-13-13.7/doc/src/sgml/man7/VACUUM.7 --- postgresql-13-13.4/doc/src/sgml/man7/VACUUM.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/VACUUM.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: VACUUM .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "VACUUM" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "VACUUM" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/man7/VALUES.7 postgresql-13-13.7/doc/src/sgml/man7/VALUES.7 --- postgresql-13-13.4/doc/src/sgml/man7/VALUES.7 2021-08-09 21:03:25.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/man7/VALUES.7 2022-05-09 21:29:39.000000000 +0000 @@ -1,13 +1,13 @@ '\" t .\" Title: VALUES .\" Author: The PostgreSQL Global Development Group -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 2021 -.\" Manual: PostgreSQL 13.4 Documentation -.\" Source: PostgreSQL 13.4 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 2022 +.\" Manual: PostgreSQL 13.7 Documentation +.\" Source: PostgreSQL 13.7 .\" Language: English .\" -.TH "VALUES" "7" "2021" "PostgreSQL 13.4" "PostgreSQL 13.4 Documentation" +.TH "VALUES" "7" "2022" "PostgreSQL 13.7" "PostgreSQL 13.7 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru postgresql-13-13.4/doc/src/sgml/monitoring.sgml postgresql-13-13.7/doc/src/sgml/monitoring.sgml --- postgresql-13-13.4/doc/src/sgml/monitoring.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/monitoring.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -2161,6 +2161,11 @@ source (pg_wal, archive or stream). + RegisterSyncRequest + Waiting while sending synchronization requests to the + checkpointer, because the request queue is full. + + VacuumDelay Waiting in a cost-based vacuum delay point. @@ -5679,8 +5684,9 @@ VACUUM is currently vacuuming the indexes. If a table has any indexes, this will happen at least once per vacuum, after the heap has been completely scanned. It may happen multiple times per vacuum - if is insufficient to - store the number of dead tuples found. + if (or, in the case of autovacuum, + if set) is insufficient to store + the number of dead tuples found. diff -Nru postgresql-13-13.4/doc/src/sgml/mvcc.sgml postgresql-13-13.7/doc/src/sgml/mvcc.sgml --- postgresql-13-13.4/doc/src/sgml/mvcc.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/mvcc.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -950,11 +950,12 @@ Acquired by VACUUM (without ), ANALYZE, CREATE INDEX CONCURRENTLY, + CREATE STATISTICS, COMMENT ON, REINDEX CONCURRENTLY, - CREATE STATISTICS, and certain ALTER - INDEX and ALTER TABLE variants (for full - details see and ). + and certain ALTER INDEX and + ALTER TABLE variants + (for full details see and + ). diff -Nru postgresql-13-13.4/doc/src/sgml/notation.sgml postgresql-13-13.7/doc/src/sgml/notation.sgml --- postgresql-13-13.4/doc/src/sgml/notation.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/notation.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -6,12 +6,12 @@ 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 + optional parts. Braces ({ and }) and vertical lines (|) indicate that you must choose one alternative. Dots (...) mean that the preceding element - can be repeated. + can be repeated. All other symbols, including parentheses, should be + taken literally. diff -Nru postgresql-13-13.4/doc/src/sgml/parallel.sgml postgresql-13-13.7/doc/src/sgml/parallel.sgml --- postgresql-13-13.4/doc/src/sgml/parallel.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/parallel.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -8,11 +8,11 @@ - PostgreSQL can devise query plans which can leverage + PostgreSQL can devise query plans that 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 - imaginable query plan which is any faster than the serial query plan. + imaginable query plan that is any faster than the serial query plan. However, for queries that can benefit, the speedup from parallel query is often very significant. Many queries can run more than twice as fast when using parallel query, and some queries can run four times faster or @@ -27,7 +27,7 @@ When the optimizer determines that parallel query is the fastest execution - strategy for a particular query, it will create a query plan which includes + strategy for a particular query, it will create a query plan that includes a Gather or Gather Merge node. Here is a simple example: @@ -59,7 +59,7 @@ Using EXPLAIN, you can see the number of workers chosen by the planner. When the Gather node is reached - during query execution, the process which is implementing the user's + during query execution, the process that is implementing the user's session will request a number of background worker processes equal to the number of workers chosen by the planner. The number of background workers that @@ -79,7 +79,7 @@ - Every background worker process which is successfully started for a given + Every background worker process that is successfully started for a given parallel query will execute the parallel portion of the plan. The leader will also execute that portion of the plan, but it has an additional responsibility: it must also read all of the tuples generated by the @@ -88,7 +88,7 @@ worker, speeding up query execution. Conversely, when the parallel portion of the plan generates a large number of tuples, the leader may be almost entirely occupied with reading the tuples generated by the workers and - performing any further processing steps which are required by plan nodes + performing any further processing steps that are required by plan nodes above the level of the Gather node or Gather Merge node. In such cases, the leader will do very little of the work of executing the parallel portion of the plan. @@ -109,7 +109,7 @@ When Can Parallel Query Be Used? - There are several settings which can cause the query planner not to + There are several settings that can cause the query planner not to generate a parallel query plan under any circumstances. In order for any parallel query plans whatsoever to be generated, the following settings must be configured as indicated. @@ -119,7 +119,7 @@ must be set to a - value which is greater than zero. This is a special case of the more + value that is greater than zero. This is a special case of the more general principle that no more workers should be used than the number configured via max_parallel_workers_per_gather. @@ -145,7 +145,7 @@ contains a data-modifying operation either at the top level or within a CTE, no parallel plans for that query will be generated. As an exception, the commands CREATE TABLE ... AS, SELECT - INTO, and CREATE MATERIALIZED VIEW which create a new + INTO, and CREATE MATERIALIZED VIEW that create a new table and populate it can use a parallel plan. @@ -240,7 +240,7 @@ than normal but would produce incorrect results. Instead, the parallel portion of the plan must be what is known internally to the query optimizer as a partial plan; that is, it must be constructed - so that each process which executes the plan will generate only a + so that each process that executes the plan will generate only a subset of the output rows in such a way that each required output row is guaranteed to be generated by exactly one of the cooperating processes. Generally, this means that the scan on the driving table of the query @@ -350,11 +350,11 @@ Because the Finalize Aggregate node runs on the leader - process, queries which produce a relatively large number of groups in + process, queries that produce a relatively large number of groups in comparison to the number of input rows will appear less favorable to the query planner. For example, in the worst-case scenario the number of groups seen by the Finalize Aggregate node could be as many as - the number of input rows which were seen by all worker processes in the + the number of input rows that were seen by all worker processes in the Partial Aggregate stage. For such cases, there is clearly going to be no performance benefit to using parallel aggregation. The query planner takes this into account during the planning process and is @@ -410,7 +410,7 @@ involve appending multiple results sets can therefore achieve coarse-grained parallelism even when efficient partial plans are not available. For example, consider a query against a partitioned table - which can only be implemented efficiently by using an index that does + that can only be implemented efficiently by using an index that does not support parallel scans. The planner might choose a Parallel Append of regular Index Scan plans; each individual index scan would have to be executed to completion by a single @@ -431,7 +431,7 @@ If a query that is expected to do so does not produce a parallel plan, you can try reducing or . Of course, this plan may turn - out to be slower than the serial plan which the planner preferred, but + out to be slower than the serial plan that the planner preferred, but this will not always be the case. If you don't get a parallel plan even with very small values of these settings (e.g., after setting them both to zero), there may be some reason why the query planner is @@ -458,15 +458,15 @@ The planner classifies operations involved in a query as either parallel safe, parallel restricted, - or parallel unsafe. A parallel safe operation is one which + or parallel unsafe. A parallel safe operation is one that does not conflict with the use of parallel query. A parallel restricted - operation is one which cannot be performed in a parallel worker, but which + operation is one that cannot be performed in a parallel worker, but that can be performed in the leader while parallel query is in use. Therefore, parallel restricted operations can never occur below a Gather - or Gather Merge node, but can occur elsewhere in a plan which - contains such a node. A parallel unsafe operation is one which cannot + or Gather Merge node, but can occur elsewhere in a plan that + contains such a node. A parallel unsafe operation is one that cannot be performed while parallel query is in use, not even in the leader. - When a query contains anything which is parallel unsafe, parallel query + When a query contains anything that is parallel unsafe, parallel query is completely disabled for that query. @@ -490,7 +490,7 @@ Scans of foreign tables, unless the foreign data wrapper has - an IsForeignScanParallelSafe API which indicates otherwise. + an IsForeignScanParallelSafe API that indicates otherwise. @@ -502,7 +502,7 @@ - Plan nodes which reference a correlated SubPlan. + Plan nodes that reference a correlated SubPlan. @@ -513,7 +513,7 @@ The planner cannot automatically determine whether a user-defined function or aggregate is parallel safe, parallel restricted, or parallel - unsafe, because this would require predicting every operation which the + unsafe, because this would require predicting every operation that the function could possibly perform. In general, this is equivalent to the Halting Problem and therefore impossible. Even for simple functions where it could conceivably be done, we do not try, since this would be expensive @@ -531,11 +531,11 @@ Functions and aggregates must be marked PARALLEL UNSAFE if they write to the database, access sequences, change the transaction state - even temporarily (e.g., a PL/pgSQL function which establishes an + even temporarily (e.g., a PL/pgSQL function that establishes an EXCEPTION block to catch errors), or make persistent changes to settings. Similarly, functions must be marked PARALLEL RESTRICTED if they access temporary tables, client connection state, - cursors, prepared statements, or miscellaneous backend-local state which + cursors, prepared statements, or miscellaneous backend-local state that the system cannot synchronize across workers. For example, setseed and random are parallel restricted for this last reason. @@ -553,10 +553,10 @@ - If a function executed within a parallel worker acquires locks which are + If a function executed within a parallel worker acquires locks that are not held by the leader, for example by querying a table not referenced in the query, those locks will be released at worker exit, not end of - transaction. If you write a function which does this, and this behavior + transaction. If you write a function that does this, and this behavior difference is important to you, mark such functions as PARALLEL RESTRICTED to ensure that they execute only in the leader. diff -Nru postgresql-13-13.4/doc/src/sgml/perform.sgml postgresql-13-13.7/doc/src/sgml/perform.sgml --- postgresql-13-13.4/doc/src/sgml/perform.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/perform.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1336,7 +1336,7 @@ Multivariate MCV Lists - Another type of statistics stored for each column are most-common value + Another type of statistic stored for each column are most-common value lists. This allows very accurate estimates for individual columns, but may result in significant misestimates for queries with conditions on multiple columns. diff -Nru postgresql-13-13.4/doc/src/sgml/pgcrypto.sgml postgresql-13-13.7/doc/src/sgml/pgcrypto.sgml --- postgresql-13-13.4/doc/src/sgml/pgcrypto.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/pgcrypto.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1233,6 +1233,13 @@ + When compiled against OpenSSL 3.0.0 and later + versions, the legacy provider must be activated in the + openssl.cnf configuration file in order to use older + ciphers like DES or Blowfish. + + + Notes: diff -Nru postgresql-13-13.4/doc/src/sgml/plpython.sgml postgresql-13-13.7/doc/src/sgml/plpython.sgml --- postgresql-13-13.4/doc/src/sgml/plpython.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/plpython.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -573,7 +573,7 @@ RETURNS named_value AS $$ return ( name, value ) - # or alternatively, as tuple: return [ name, value ] + # or alternatively, as list: return [ name, value ] $$ LANGUAGE plpythonu; diff -Nru postgresql-13-13.4/doc/src/sgml/pltcl.sgml postgresql-13-13.7/doc/src/sgml/pltcl.sgml --- postgresql-13-13.4/doc/src/sgml/pltcl.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/pltcl.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -320,8 +320,10 @@ Database Access from PL/Tcl - The following commands are available to access the database from - the body of a PL/Tcl function: + In this section, we follow the usual Tcl convention of using question + marks, rather than brackets, to indicate an optional element in a + syntax synopsis. The following commands are available to access + the database from the body of a PL/Tcl function: diff -Nru postgresql-13-13.4/doc/src/sgml/postgres-fdw.sgml postgresql-13-13.7/doc/src/sgml/postgres-fdw.sgml --- postgresql-13-13.4/doc/src/sgml/postgres-fdw.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/postgres-fdw.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -63,9 +63,10 @@ Now you need only SELECT from a foreign table to access the data stored in its underlying remote table. You can also modify - the remote table using INSERT, UPDATE, or - DELETE. (Of course, the remote user you have specified - in your user mapping must have privileges to do these things.) + the remote table using INSERT, UPDATE, + DELETE, or COPY. (Of course, the + remote user you have specified in your user mapping must have privileges to + do these things.) @@ -87,8 +88,8 @@ referenced columns of the remote table. Although postgres_fdw is currently rather forgiving about performing data type conversions at need, surprising semantic anomalies may arise when types or collations do - not match, due to the remote server interpreting WHERE clauses - slightly differently from the local server. + not match, due to the remote server interpreting query conditions + differently from the local server. @@ -423,6 +424,17 @@ need to turn this off if the remote server has a different set of collation names than the local server does, which is likely to be the case if it's running on a different operating system. + If you do so, however, there is a very severe risk that the imported + table columns' collations will not match the underlying data, resulting + in anomalous query behavior. + + + + Even when this parameter is set to true, importing + columns whose collation is the remote server's default can be risky. + They will be imported with COLLATE "default", which + will select the local server's default collation, which could be + different. @@ -442,7 +454,7 @@ - import_generated (boolean) + import_generated This option controls whether column GENERATED expressions diff -Nru postgresql-13-13.4/doc/src/sgml/protocol.sgml postgresql-13-13.7/doc/src/sgml/protocol.sgml --- postgresql-13-13.4/doc/src/sgml/protocol.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/protocol.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1472,6 +1472,20 @@ + When SSL encryption can be performed, the server + is expected to send only the single S byte and then + wait for the frontend to initiate an SSL handshake. + If additional bytes are available to read at this point, it likely + means that a man-in-the-middle is attempting to perform a + buffer-stuffing attack + (CVE-2021-23222). + Frontends should be coded either to read exactly one byte from the + socket before turning the socket over to their SSL library, or to + treat it as a protocol violation if they find they have read additional + bytes. + + + An initial SSLRequest can also be used in a connection that is being opened to send a CancelRequest message. @@ -1533,6 +1547,20 @@ + When GSSAPI encryption can be performed, the server + is expected to send only the single G byte and then + wait for the frontend to initiate a GSSAPI handshake. + If additional bytes are available to read at this point, it likely + means that a man-in-the-middle is attempting to perform a + buffer-stuffing attack + (CVE-2021-23222). + Frontends should be coded either to read exactly one byte from the + socket before turning the socket over to their GSSAPI library, or to + treat it as a protocol violation if they find they have read additional + bytes. + + + An initial GSSENCRequest can also be used in a connection that is being opened to send a CancelRequest message. @@ -2043,7 +2071,7 @@ streaming starts on timeline tli; otherwise, the server's current timeline is selected. The server can reply with an error, for example if the requested section of WAL has already - been recycled. On success, server responds with a CopyBothResponse + been recycled. On success, the server responds with a CopyBothResponse message, and then starts to stream WAL to the frontend. @@ -2863,13 +2891,25 @@ - Every DML message contains an arbitrary relation ID, which can be mapped to - an ID in the Relation messages. The Relation messages describe the schema of the - given relation. The Relation message is sent for a given relation either - because it is the first time we send a DML message for given relation in the - current session or because the relation definition has changed since the - last Relation message was sent for it. The protocol assumes that the client - is capable of caching the metadata for as many relations as needed. + Every DML message contains a relation OID, identifying the publisher's + relation that was acted on. Before the first DML message for a given + relation OID, a Relation message will be sent, describing the schema of + that relation. Subsequently, a new Relation message will be sent if + the relation's definition has changed since the last Relation message + was sent for it. (The protocol assumes that the client is capable of + remembering this metadata for as many relations as needed.) + + + + Relation messages identify column types by their OIDs. In the case + of a built-in type, it is assumed that the client can look up that + type OID locally, so no additional data is needed. For a non-built-in + type OID, a Type message will be sent before the Relation message, + to provide the type name associated with that OID. Thus, a client that + needs to specifically identify the types of relation columns should + cache the contents of Type messages, and first consult that cache to + see if the type OID is defined there. If not, look up the type OID + locally. diff -Nru postgresql-13-13.4/doc/src/sgml/queries.sgml postgresql-13-13.7/doc/src/sgml/queries.sgml --- postgresql-13-13.4/doc/src/sgml/queries.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/queries.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1649,17 +1649,9 @@ query1 INTERSECT ALL query2 query1 EXCEPT ALL query2 - query1 and + where query1 and query2 are queries that can use any of - the features discussed up to this point. Set operations can also - be nested and chained, for example - -query1 UNION query2 UNION query3 - - which is executed as: - -(query1 UNION query2) UNION query3 - + the features discussed up to this point. @@ -1693,6 +1685,47 @@ the corresponding columns have compatible data types, as described in . + + + Set operations can be combined, for example + +query1 UNION query2 EXCEPT query3 + + which is equivalent to + +(query1 UNION query2) EXCEPT query3 + + As shown here, you can use parentheses to control the order of + evaluation. Without parentheses, UNION + and EXCEPT associate left-to-right, + but INTERSECT binds more tightly than those two + operators. Thus + +query1 UNION query2 INTERSECT query3 + + means + +query1 UNION (query2 INTERSECT query3) + + You can also surround an individual query + with parentheses. This is important if + the query needs to use any of the clauses + discussed in following sections, such as LIMIT. + Without parentheses, you'll get a syntax error, or else the clause will + be understood as applying to the output of the set operation rather + than one of its inputs. For example, + +SELECT a FROM b UNION SELECT x FROM y LIMIT 10 + + is accepted, but it means + +(SELECT a FROM b UNION SELECT x FROM y) LIMIT 10 + + not + +SELECT a FROM b UNION (SELECT x FROM y LIMIT 10) + + diff -Nru postgresql-13-13.4/doc/src/sgml/ref/alter_materialized_view.sgml postgresql-13-13.7/doc/src/sgml/ref/alter_materialized_view.sgml --- postgresql-13-13.4/doc/src/sgml/ref/alter_materialized_view.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/alter_materialized_view.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -42,6 +42,7 @@ ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN } CLUSTER ON index_name SET WITHOUT CLUSTER + SET TABLESPACE new_tablespace SET ( storage_parameter [= value] [, ... ] ) RESET ( storage_parameter [, ... ] ) OWNER TO { new_owner | CURRENT_USER | SESSION_USER } diff -Nru postgresql-13-13.4/doc/src/sgml/ref/alter_table.sgml postgresql-13-13.7/doc/src/sgml/ref/alter_table.sgml --- postgresql-13-13.4/doc/src/sgml/ref/alter_table.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/alter_table.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -819,17 +819,53 @@ This form changes the information which is written to the write-ahead log - to identify rows which are updated or deleted. This option has no effect - except when logical replication is in use. DEFAULT - (the default for non-system tables) records the - old values of the columns of the primary key, if any. USING INDEX - records the old values of the columns covered by the named index, which - must be unique, not partial, not deferrable, and include only columns marked - NOT NULL. FULL records the old values of all columns - in the row. NOTHING records no information about the old row. - (This is the default for system tables.) - In all cases, no old values are logged unless at least one of the columns - that would be logged differs between the old and new versions of the row. + to identify rows which are updated or deleted. + In most cases, the old value of each column is only logged if it differs + from the new value; however, if the old value is stored externally, it is + always logged regardless of whether it changed. + This option has no effect except when logical replication is in use. + + + DEFAULT + + + Records the old values of the columns of the primary key, if any. + This is the default for non-system tables. + + + + + + USING INDEX index_name + + + Records the old values of the columns covered by the named index, + that must be unique, not partial, not deferrable, and include only + columns marked NOT NULL. If this index is + dropped, the behavior is the same as NOTHING. + + + + + + FULL + + + Records the old values of all columns in the row. + + + + + + NOTHING + + + Records no information about the old row. This is the default for + system tables. + + + + diff -Nru postgresql-13-13.4/doc/src/sgml/ref/analyze.sgml postgresql-13-13.7/doc/src/sgml/ref/analyze.sgml --- postgresql-13-13.4/doc/src/sgml/ref/analyze.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/analyze.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -264,9 +264,35 @@ - If any of the child tables are foreign tables whose foreign data wrappers - do not support ANALYZE, those child tables are ignored while - gathering inheritance statistics. + For partitioned tables, ANALYZE gathers statistics by + sampling rows from all partitions; in addition, it will recurse into each + partition and update its statistics. Each leaf partition is analyzed only + once, even with multi-level partitioning. No statistics are collected for + only the parent table (without data from its partitions), because with + partitioning it's guaranteed to be empty. + + + + By contrast, if the table being analyzed has inheritance children, + ANALYZE gathers two sets of statistics: one on the rows + of the parent table only, and a second including rows of both the parent + table and all of its children. This second set of statistics is needed when + planning queries that process the inheritance tree as a whole. The child + tables themselves are not individually analyzed in this case. + + + + The autovacuum daemon does not process partitioned tables, nor does it + process inheritance parents if only the children are ever modified. + It is usually necessary to periodically run a manual + ANALYZE to keep the statistics of the table hierarchy + up to date. + + + + If any child tables or partitions are foreign tables whose foreign + data wrappers do not support ANALYZE, those tables are + ignored while gathering inheritance statistics. diff -Nru postgresql-13-13.4/doc/src/sgml/ref/comment.sgml postgresql-13-13.7/doc/src/sgml/ref/comment.sgml --- postgresql-13-13.4/doc/src/sgml/ref/comment.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/comment.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -91,6 +91,11 @@ + A SHARE UPDATE EXCLUSIVE lock is acquired on the + object to be commented. + + + For most kinds of object, only the object's owner can set the comment. Roles don't have owners, so the rule for COMMENT ON ROLE is that you must be superuser to comment on a superuser role, or have the diff -Nru postgresql-13-13.4/doc/src/sgml/ref/copy.sgml postgresql-13-13.7/doc/src/sgml/ref/copy.sgml --- postgresql-13-13.4/doc/src/sgml/ref/copy.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/copy.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -628,12 +628,12 @@ \digits Backslash followed by one to three octal digits specifies - the character with that numeric code + the byte with that numeric code \xdigits Backslash x followed by one or two hex digits specifies - the character with that numeric code + the byte with that numeric code @@ -666,6 +666,12 @@ + All backslash sequences are interpreted after encoding conversion. + The bytes specified with the octal and hex-digit backslash sequences must + form valid characters in the database encoding. + + + COPY TO will terminate each row with a Unix-style newline (\n). Servers running on Microsoft Windows instead output carriage return/newline (\r\n), but only for diff -Nru postgresql-13-13.4/doc/src/sgml/ref/create_event_trigger.sgml postgresql-13-13.7/doc/src/sgml/ref/create_event_trigger.sgml --- postgresql-13-13.4/doc/src/sgml/ref/create_event_trigger.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/create_event_trigger.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -23,7 +23,7 @@ CREATE EVENT TRIGGER name ON event - [ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ] + [ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ] EXECUTE { FUNCTION | PROCEDURE } function_name() diff -Nru postgresql-13-13.4/doc/src/sgml/ref/create_foreign_table.sgml postgresql-13-13.7/doc/src/sgml/ref/create_foreign_table.sgml --- postgresql-13-13.4/doc/src/sgml/ref/create_foreign_table.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/create_foreign_table.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -348,11 +348,33 @@ constraints on foreign tables, it does assume that they are correct for purposes of query optimization. If there are rows visible in the foreign table that do not satisfy a declared constraint, queries on - the table might produce incorrect answers. It is the user's + the table might produce errors or incorrect answers. It is the user's responsibility to ensure that the constraint definition matches reality. + + + When a foreign table is used as a partition of a partitioned table, + there is an implicit constraint that its contents must satisfy the + partitioning rule. Again, it is the user's responsibility to ensure + that that is true, which is best done by installing a matching + constraint on the remote server. + + + + + Within a partitioned table containing foreign-table partitions, + an UPDATE that changes the partition key value can + cause a row to be moved from a local partition to a foreign-table + partition, provided the foreign data wrapper supports tuple routing. + However it is not currently possible to move a row from a + foreign-table partition to another partition. + An UPDATE that would require doing that will fail + due to the partitioning constraint, assuming that that is properly + enforced by the remote server. + + Similar considerations apply to generated columns. Stored generated columns are computed on insert or update on the local @@ -362,12 +384,6 @@ generated columns that are consistent with the generation expression. Again, this might result in incorrect query results. - - - While rows can be moved from local partitions to a foreign-table partition - (provided the foreign data wrapper supports tuple routing), they cannot be - moved from a foreign-table partition to another partition. - diff -Nru postgresql-13-13.4/doc/src/sgml/ref/create_publication.sgml postgresql-13-13.7/doc/src/sgml/ref/create_publication.sgml --- postgresql-13-13.4/doc/src/sgml/ref/create_publication.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/create_publication.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -190,6 +190,13 @@ + ATTACHing a table into a partition tree whose root is + published using a publication with publish_via_partition_root + set to true does not result in the table's existing contents + being replicated. + + + COPY ... FROM commands are published as INSERT operations. @@ -240,6 +247,8 @@ + + diff -Nru postgresql-13-13.4/doc/src/sgml/ref/pg_receivewal.sgml postgresql-13-13.7/doc/src/sgml/ref/pg_receivewal.sgml --- postgresql-13-13.4/doc/src/sgml/ref/pg_receivewal.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/pg_receivewal.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -76,6 +76,28 @@ + The starting point of the write-ahead log streaming is calculated when + pg_receivewal starts: + + + + First, scan the directory where the WAL segment files are written and + find the newest completed segment file, using as the starting point the + beginning of the next WAL segment file. + + + + + + If a starting point cannot be calculated with the previous method, + the latest WAL flush location is used as reported by the server from + an IDENTIFY_SYSTEM command. + + + + + + If the connection is lost, or if it cannot be initially established, with a non-fatal error, pg_receivewal will retry the connection indefinitely, and reestablish streaming as soon diff -Nru postgresql-13-13.4/doc/src/sgml/ref/pg_rewind.sgml postgresql-13-13.7/doc/src/sgml/ref/pg_rewind.sgml --- postgresql-13-13.4/doc/src/sgml/ref/pg_rewind.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/pg_rewind.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -210,8 +210,8 @@ to be written safely to disk. This option causes pg_rewind to return without waiting, which is faster, but means that a subsequent operating system crash can leave - the synchronized data directory corrupt. Generally, this option is - useful for testing but should not be used on a production + the data directory corrupt. Generally, this option is useful for + testing but should not be used on a production installation. diff -Nru postgresql-13-13.4/doc/src/sgml/ref/pgupgrade.sgml postgresql-13-13.7/doc/src/sgml/ref/pgupgrade.sgml --- postgresql-13-13.4/doc/src/sgml/ref/pgupgrade.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/pgupgrade.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -24,8 +24,7 @@ pg_upgrade oldbindir - - newbindir + newbindir oldconfigdir diff -Nru postgresql-13-13.4/doc/src/sgml/ref/refresh_materialized_view.sgml postgresql-13-13.7/doc/src/sgml/ref/refresh_materialized_view.sgml --- postgresql-13-13.4/doc/src/sgml/ref/refresh_materialized_view.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/refresh_materialized_view.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -93,12 +93,10 @@ Notes - While the default index for future - - operations is retained, REFRESH MATERIALIZED VIEW does not - order the generated rows based on this property. If you want the data - to be ordered upon generation, you must use an ORDER BY - clause in the backing query. + If there is an ORDER BY clause in the materialized + view's defining query, the original contents of the materialized view + will be ordered that way; but REFRESH MATERIALIZED + VIEW does not guarantee to preserve that ordering. diff -Nru postgresql-13-13.4/doc/src/sgml/ref/reindexdb.sgml postgresql-13-13.7/doc/src/sgml/ref/reindexdb.sgml --- postgresql-13-13.4/doc/src/sgml/ref/reindexdb.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/reindexdb.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -208,7 +208,7 @@ - Reindex database's system catalogs. + Reindex database's system catalogs only. diff -Nru postgresql-13-13.4/doc/src/sgml/ref/select_into.sgml postgresql-13-13.7/doc/src/sgml/ref/select_into.sgml --- postgresql-13-13.4/doc/src/sgml/ref/select_into.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/select_into.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -107,7 +107,7 @@ In contrast to CREATE TABLE AS, SELECT - INTO does not allow to specify properties like a table's access + INTO does not allow specifying properties like a table's access method with or the table's tablespace with . Use if necessary. Therefore, the default table diff -Nru postgresql-13-13.4/doc/src/sgml/ref/select.sgml postgresql-13-13.7/doc/src/sgml/ref/select.sgml --- postgresql-13-13.4/doc/src/sgml/ref/select.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/ref/select.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1454,7 +1454,8 @@ The WITH TIES option is used to return any additional rows that tie for the last place in the result set according to the ORDER BY clause; ORDER BY - is mandatory in this case. + is mandatory in this case, and SKIP LOCKED is + not allowed. ROW and ROWS as well as FIRST and NEXT are noise words that don't influence the effects of these clauses. diff -Nru postgresql-13-13.4/doc/src/sgml/release-13.sgml postgresql-13-13.7/doc/src/sgml/release-13.sgml --- postgresql-13-13.4/doc/src/sgml/release-13.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/release-13.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -1,6 +1,3795 @@ + + Release 13.7 + + + Release date: + 2022-05-12 + + + + This release contains a variety of fixes from 13.6. + For information about new features in major release 13, see + . + + + + Migration to Version 13.7 + + + A dump/restore is not required for those running 13.X. + + + + However, if you have any GiST indexes on columns of type + ltree (supplied by the contrib/ltree + extension), you should re-index them after updating. + See the second changelog entry below. + + + + Also, if you are upgrading from a version earlier than 13.6, + see . + + + + + Changes + + + + + + + Confine additional operations within security restricted + operation sandboxes (Sergey Shinderuk, Noah Misch) + + + + Autovacuum, CLUSTER, CREATE + INDEX, REINDEX, REFRESH + MATERIALIZED VIEW, + and pg_amcheck activated + the security restricted operation protection + mechanism too late, or even not at all in some code paths. + A user having permission to create non-temporary objects within a + database could define an object that would execute arbitrary SQL + code with superuser permissions the next time that autovacuum + processed the object, or that some superuser ran one of the affected + commands against it. + + + + The PostgreSQL Project thanks + Alexander Lakhin for reporting this problem. + (CVE-2022-1552) + + + + + + + Fix default signature length for gist_ltree_ops + indexes (Tomas Vondra, Alexander Korotkov) + + + + The default signature length (hash size) for GiST indexes + on ltree columns was accidentally changed while + upgrading that operator class to support operator class parameters. + If any operations had been done on such an index without first + upgrading the ltree extension to version 1.2, + they were done assuming that the signature length was 28 bytes + rather than the intended 8. This means it is very likely that such + indexes are now corrupt. For safety we recommend re-indexing all + GiST indexes on ltree columns after installing this + update. (Note that GiST indexes on ltree[] + columns, that is arrays of ltree, are not affected.) + + + + + + + Stop using query-provided column aliases for the columns of + whole-row variables that refer to plain tables (Tom Lane) + + + + The column names in tuples produced by a whole-row variable (such + as tbl.* in contexts other than the top level of + a SELECT list) are now always those of the + associated named composite type, if there is one. We'd previously + attempted to make them track any column aliases that had been + applied to the FROM entry the variable refers to. + But that's semantically dubious, because really then the output of + the variable is not at all of the composite type it claims to be. + Previous attempts to deal with that inconsistency had bad results up + to and including storing unreadable data on disk, so just give up on + the whole idea. + + + + In cases where it's important to be able to relabel such columns, + a workaround is to introduce an extra level of + sub-SELECT, so that the whole-row variable is + referring to the sub-SELECT's output and not to a + plain table. Then the variable is of type record + to begin with and there's no issue. + + + + + + + Fix incorrect output for types timestamptz + and timetz in table_to_xmlschema() + and allied functions (Renan Soares Lopes) + + + + The xmlschema output for these types included a malformed regular + expression. + + + + + + + Avoid core dump in parser for a VALUES clause with + zero columns (Tom Lane) + + + + + + + Fix planner errors for GROUPING() constructs + that reference outer query levels (Richard Guo, Tom Lane) + + + + + + + Fix plan generation for index-only scans on indexes with + both returnable and non-returnable columns (Tom Lane) + + + + The previous coding could try to read non-returnable columns + in addition to the returnable ones. This was fairly harmless + because it didn't actually do anything with the bogus values, + but it fell foul of a recently-added error check that rejected + such a plan. + + + + + + + Avoid accessing a no-longer-pinned shared buffer while attempting + to lock an outdated tuple during EvalPlanQual (Tom Lane) + + + + The code would touch the buffer a couple more times after releasing + its pin. In theory another process could recycle the buffer (or + more likely, try to defragment its free space) as soon as the pin is + gone, probably leading to failure to find the newer version of the + tuple. + + + + + + + Fix query-lifespan memory leak in an IndexScan node that is + performing reordering (Aliaksandr Kalenik) + + + + + + + Fix ALTER FUNCTION to support changing a + function's parallelism property and + its SET-variable list in the same command (Tom + Lane) + + + + The parallelism property change was lost if the same command also + updated the function's SET clause. + + + + + + + Fix bogus errors from attempts to alter system columns of tables + (Tom Lane) + + + + The system should just tell you that you can't do it, but sometimes + it would report no owned sequence found instead. + + + + + + + Fix mis-sorting of table rows when CLUSTERing + using an index whose leading key is an expression (Peter Geoghegan, + Thomas Munro) + + + + The table would be rebuilt with the correct data, but in an order + having little to do with the index order. + + + + + + + Fix risk of deadlock failures while dropping a partitioned index + (Jimmy Yih, Gaurab Dey, Tom Lane) + + + + Ensure that the required table and index locks are taken in the + standard order (parents before children, tables before indexes). + The previous coding for DROP INDEX did it + differently, and so could deadlock against concurrent queries taking + these locks in the standard order. + + + + + + + Fix race condition between DROP TABLESPACE and + checkpointing (Nathan Bossart) + + + + The checkpoint forced by DROP TABLESPACE could + sometimes fail to remove all dead files from the tablespace's + directory, leading to a bogus tablespace is not empty + error. + + + + + + + Fix possible trouble in crash recovery after + a TRUNCATE command that overlaps a checkpoint + (Kyotaro Horiguchi, Heikki Linnakangas, Robert Haas) + + + + TRUNCATE must ensure that the table's disk file + is truncated before the checkpoint is allowed to complete. + Otherwise, replay starting from that checkpoint might find + unexpected data in the supposedly-removed pages, possibly causing + replay failure. + + + + + + + Fix unsafe toast-data accesses during temporary object cleanup + (Andres Freund) + + + + Temporary-object deletion during server process exit could fail + with FATAL: cannot fetch toast data without an active + snapshot. This was usually harmless since the next use of + that temporary schema would clean up successfully. + + + + + + + Improve wait logic in RegisterSyncRequest (Thomas Munro) + + + + If we run out of space in the checkpointer sync request queue (which + is hopefully rare on real systems, but is common when testing with a + very small buffer pool), we wait for it to drain. While waiting, we + should report that as a wait event so that users know what is going + on, and also watch for postmaster death, since otherwise the loop might + never terminate if the checkpointer has already exited. + + + + + + + Fix PANIC: xlog flush request is not satisfied + failure during standby promotion when there is a missing WAL + continuation record (Sami Imseih) + + + + + + + Fix possibility of self-deadlock in hot standby conflict handling + (Andres Freund) + + + + With unlucky timing, the WAL-applying process could get stuck + while waiting for some other process to release a buffer lock. + + + + + + + Fix possible mis-identification of the correct ancestor relation + to publish logical replication changes through (Tomas Vondra, Hou + zj, Amit Kapila) + + + + If publish_via_partition_root is enabled, and + there are multiple publications naming different ancestors of the + currently-modified relation, the wrong ancestor might be chosen for + reporting the change. + + + + + + + Ensure that logical replication apply workers can be restarted even + when we're up against + the max_sync_workers_per_subscription limit + (Amit Kapila) + + + + Faulty coding of the limit check caused a restarted worker to exit + immediately, leaving fewer workers than there should be. + + + + + + + Include unchanged replica identity key columns in the WAL log for an + update, if they are stored out-of-line (Dilip Kumar, Amit Kapila) + + + + Otherwise subscribers cannot see the values and will fail to + replicate the update. + + + + + + + Cope correctly with platforms that have no support for altering the + server process's display in ps(1) (Andrew + Dunstan) + + + + Few platforms are like this (the only supported one is Cygwin), so + we'd managed not to notice that refactoring introduced a potential + memory clobber. + + + + + + + Disallow execution of SPI functions during PL/Perl function + compilation (Tom Lane) + + + + Perl can be convinced to execute user-defined code during compilation + of a PL/Perl function. However, it's not okay for such code to try + to invoke SQL operations via SPI. That results in a crash, and if + it didn't crash it would be a security hazard, because we really + don't want code execution during function validation. Put in a + check to give a friendlier error message instead. + + + + + + + Make libpq accept root-owned SSL private + key files (David Steele) + + + + This change synchronizes libpq's rules + for safe ownership and permissions of SSL key files with the rules + the server has used since release 9.6. Namely, in addition to the + current rules, allow the case where the key file is owned by root + and has permissions rw-r----- or less. This is + helpful for system-wide management of key files. + + + + + + + Fix behavior of libpq's + PQisBusy() function after a connection failure + (Tom Lane) + + + + If we'd detected a write failure, PQisBusy() + would always return true, which is the wrong thing: we want input + processing to carry on normally until we've read whatever is + available from the server. The practical effect of this error is + that applications using libpq's + async-query API would typically detect connection loss only + when PQconsumeInput() returns a hard failure. + With this fix, a connection loss will normally be reported via an + error PGresult object, which is a much + cleaner behavior for most applications. + + + + + + + Make pg_ctl recheck postmaster aliveness + while waiting for stop/restart/promote actions (Tom Lane) + + + + pg_ctl would verify that the postmaster + is alive as a side-effect of sending the stop or promote signal, but + then it just naively waited to see the on-disk state change. If the + postmaster died uncleanly without having removed its PID file or + updated the control file, pg_ctl would + wait until timeout. Instead make it recheck every so often that the + postmaster process is still there. + + + + + + + Fix error handling in pg_waldump (Kyotaro + Horiguchi, Andres Freund) + + + + While trying to read a WAL file to determine the WAL segment size, + pg_waldump would report an incorrect + error for the case of a too-short file. In addition, the file name + reported in this and related error messages could be garbage. + + + + + + + Ensure that contrib/pageinspect functions cope + with all-zero pages (Michael Paquier) + + + + This is a legitimate edge case, but the module was mostly unprepared + for it. Arrange to return nulls, or no rows, as appropriate; that + seems more useful than raising an error. + + + + + + + In contrib/pageinspect, add defenses against + incorrect page special space contents, tighten checks + for correct page size, and add some missing checks that an index is + of the expected type (Michael Paquier, Justin Pryzby, Julien + Rouhaud) + + + + These changes make it less likely that the module will crash on bad + data. + + + + + + + In contrib/postgres_fdw, verify + that ORDER BY clauses are safe to ship before + requesting a remotely-ordered query, and include + a USING clause if necessary (Ronan Dunklau) + + + + This fix prevents situations where the remote server might sort in a + different order than we intend. While sometimes that would be only + cosmetic, it could produce thoroughly wrong results if the remote + data is used as input for a locally-performed merge join. + + + + + + + Update JIT code to work with LLVM 14 + (Thomas Munro) + + + + + + + Clean up assorted failures under clang's + -fsanitize=undefined checks (Tom Lane, Andres + Freund, Zhihong Yu) + + + + Most of these changes are just for pro-forma compliance with the + letter of the C and POSIX standards, and are unlikely to have any + effect on production builds. + + + + + + + Fix PL/Perl so it builds on C compilers that don't support statements + nested within expressions (Tom Lane) + + + + + + + + + + Fix possible build failure of pg_dumpall + on Windows, when not using MSVC to build (Andres Freund) + + + + + + + In Windows builds, use gendef instead + of pexports to build DEF files (Andrew + Dunstan) + + + + This adapts the build process to work on recent MSys tool chains. + + + + + + + Prevent extra expansion of shell wildcard patterns in programs built + under MinGW (Andrew Dunstan) + + + + For some reason the C library provided by MinGW will expand shell + wildcard characters in a program's command-line arguments by + default. This is confusing, not least because it doesn't happen + under MSVC, so turn it off. + + + + + + + Update time zone data files to tzdata + release 2022a for DST law changes in Palestine, plus historical + corrections for Chile and Ukraine. + + + + + + + + + + Release 13.6 + + + Release date: + 2022-02-10 + + + + This release contains a variety of fixes from 13.5. + For information about new features in major release 13, see + . + + + + Migration to Version 13.6 + + + A dump/restore is not required for those running 13.X. + + + + However, if you have applied REINDEX CONCURRENTLY + to a TOAST table's index, or observe failures to access TOAST datums, + see the first changelog entry below. + + + + Also, if you are upgrading from a version earlier than 13.5, + see . + + + + + Changes + + + + + + + Enforce standard locking protocol for TOAST table updates, to prevent + problems with REINDEX CONCURRENTLY (Michael Paquier) + + + + If applied to a TOAST table or TOAST table's index, REINDEX + CONCURRENTLY tended to produce a corrupted index. This + happened because sessions updating TOAST entries released + their ROW EXCLUSIVE locks immediately, rather + than holding them until transaction commit as all other updates do. + The fix is to make TOAST updates hold the table lock according to the + normal rule. Any existing corrupted indexes can be repaired by + reindexing again. + + + + + + + Avoid null-pointer crash in ALTER STATISTICS + when the statistics object is dropped concurrently (Tomas Vondra) + + + + + + + Fix incorrect plan creation for parallel single-child Append nodes + (David Rowley) + + + + In some cases the Append would be simplified away when it should not + be, leading to wrong query results (duplicated rows). + + + + + + + Fix index-only scan plans for cases where not all index columns can + be returned (Tom Lane) + + + + If an index has both returnable and non-returnable columns, and one + of the non-returnable columns is an expression using a table column + that appears in a returnable index column, then a query using that + expression could result in an index-only scan plan that attempts to + read the non-returnable column, instead of recomputing the + expression from the returnable column as intended. The + non-returnable column would read as NULL, resulting in wrong query + results. + + + + + + + Ensure that casting to an unspecified typmod generates a RelabelType + node rather than a length-coercion function call (Tom Lane) + + + + While the coercion function should do the right thing (nothing), + this translation is undesirably inefficient. + + + + + + + Fix checking of anycompatible-family data type matches + (Tom Lane) + + + + In some cases the parser would think that a function or operator + with anycompatible-family polymorphic parameters + matches a set of arguments that it really shouldn't match. In + reported cases, that led to matching more than one operator to a + call, leading to ambiguous-operator errors; but a failure later on + is also possible. + + + + + + + Fix WAL replay failure when database consistency is reached exactly + at a WAL page boundary (Álvaro Herrera) + + + + + + + Fix startup of a physical replica to tolerate transaction ID + wraparound (Abhijit Menon-Sen, Tomas Vondra) + + + + If a replica server is started while the set of active transactions + on the primary crosses a wraparound boundary (so that there are some + newer transactions with smaller XIDs than older ones), the replica + would fail with out-of-order XID insertion in + KnownAssignedXids. The replica would retry, but could never + get past that error. + + + + + + + In logical replication, avoid double transmission of a child table's + data (Hou Zhijie) + + + + If a publication includes both child and parent tables, and has + the publish_via_partition_root option set, + subscribers uselessly initiated synchronization on both child and + parent tables. Ensure that only the parent table is synchronized in + such cases. + + + + + + + Remove lexical limitations for SQL commands issued on a logical + replication connection (Tom Lane) + + + + The walsender process would fail for a SQL command containing an + unquoted semicolon, or with dollar-quoted literals containing odd + numbers of single or double quote marks, or when the SQL command + starts with a comment. Moreover, faulty error recovery could lead + to unexpected errors in later commands too. + + + + + + + Fix possible loss of the commit timestamp for the last + subtransaction of a transaction (Alex Kingsborough, Kyotaro Horiguchi) + + + + + + + Be sure to fsync + the pg_logical/mappings subdirectory during + checkpoints (Nathan Bossart) + + + + On some filesystems this oversight could lead to losing logical + rewrite status files after a system crash. + + + + + + + Build extended statistics for partitioned tables (Justin Pryzby) + + + + A previous bug fix disabled building of extended statistics for + old-style inheritance trees, but it also prevented building them for + partitioned tables, which was an unnecessary restriction. + This change allows ANALYZE to compute values for + statistics objects for partitioned tables. (But note that + autovacuum does not process partitioned tables as such, so you must + periodically issue manual ANALYZE on the + partitioned table if you want to maintain such statistics.) + + + + + + + Ignore extended statistics for inheritance trees (Justin Pryzby) + + + + Currently, extended statistics values are only computed locally for + each table, not for entire inheritance trees. However the values + were mistakenly consulted when planning queries across inheritance + trees, possibly resulting in worse-than-default estimates. + + + + + + + Disallow altering data type of a partitioned table's columns when + the partitioned table's row type is used as a composite type + elsewhere (Tom Lane) + + + + This restriction has long existed for regular tables, but through an + oversight it was not checked for partitioned tables. + + + + + + + Disallow ALTER TABLE ... DROP NOT NULL for a + column that is part of a replica identity index (Haiying Tang, Hou + Zhijie) + + + + The same prohibition already existed for primary key indexes. + + + + + + + Correctly update cached table state during ALTER TABLE ADD + PRIMARY KEY USING INDEX (Hou Zhijie) + + + + Concurrent sessions failed to update their opinion of whether the + table has a primary key, possibly causing incorrect logical + replication behavior. + + + + + + + Correctly update cached table state when switching REPLICA + IDENTITY index (Tang Haiying, Hou Zhijie) + + + + Concurrent sessions failed to update their opinion of which index is + the replica identity one, possibly causing incorrect logical + replication behavior. + + + + + + + Allow parallel vacuuming and concurrent index building to be ignored + while computing oldest xmin (Masahiko Sawada) + + + + Non-parallelized instances of these operations were already ignored, + but the logic did not work for parallelized cases. Holding back the + xmin horizon has undesirable effects such as delaying vacuum + cleanup. + + + + + + + Avoid leaking memory during REASSIGN OWNED BY + operations that reassign ownership of many objects (Justin Pryzby) + + + + + + + Improve performance of walsenders sending logical changes by + avoiding unnecessary cache accesses (Hou Zhijie) + + + + + + + Fix display of cert authentication method's + options in pg_hba_file_rules view (Magnus + Hagander) + + + + The cert authentication method implies + clientcert=verify-full, but the + pg_hba_file_rules view incorrectly reported + clientcert=verify-ca. + + + + + + + Fix display of whole-row variables appearing + in INSERT ... VALUES rules (Tom Lane) + + + + A whole-row variable would be printed as var.*, + but that allows it to be expanded to individual columns when + the rule is reloaded, resulting in different semantics. + Attach an explicit cast to prevent that, as we do elsewhere. + + + + + + + Fix one-byte buffer overrun when applying Unicode string + normalization to an empty string (Michael Paquier) + + + + The practical impact of this is limited thanks to alignment + considerations; but in debug builds, a warning was raised. + + + + + + + Fix or remove some incorrect assertions (Simon Riggs, Michael + Paquier, Alexander Lakhin) + + + + These errors should affect only debug builds, not production. + + + + + + + Fix race condition that could lead to failure to localize error + messages that are reported early in multi-threaded use + of libpq + or ecpglib (Tom Lane) + + + + + + + Avoid calling strerror + from libpq's PQcancel + function (Tom Lane) + + + + PQcancel is supposed to be safe to call from a + signal handler, but strerror is not safe. The + faulty usage only occurred in the unlikely event of failure to + send the cancel message to the server, perhaps explaining the lack + of reports. + + + + + + + Make psql's \password + command default to setting the password + for CURRENT_USER, not the connection's original + user name (Tom Lane) + + + + This agrees with the documented behavior, and avoids probable + permissions failure if SET ROLE or SET + SESSION AUTHORIZATION has been done since the session began. + To prevent confusion, the role name to be acted on is now + included in the password prompt. + + + + + + + Fix psql \d command's + query for identifying parent triggers (Justin Pryzby) + + + + The previous coding failed with more than one row returned by + a subquery used as an expression if a partition had triggers + and there were unrelated statement-level triggers of the same name + on some parent partitioned table. + + + + + + + Fix psql's tab-completion of label values + for enum types (Tom Lane) + + + + + + + In psql and some other client programs, + avoid trying to invoke gettext() from a + control-C signal handler (Tom Lane) + + + + While no reported failures have been traced to this mistake, it seems + highly unlikely to be a safe thing to do. + + + + + + + Allow canceling the initial password prompt + in pg_receivewal + and pg_recvlogical (Tom Lane, Nathan + Bossart) + + + + Previously it was impossible to terminate these programs via control-C + while they were prompting for a password. + + + + + + + Fix pg_dump's dump ordering for + user-defined casts (Tom Lane) + + + + In rare cases, the output script might refer to a user-defined cast + before it had been created. + + + + + + + Fix pg_dump's + and modes to handle tables + containing both generated columns and dropped columns (Tom Lane) + + + + + + + Fix possible mis-reporting of errors + in pg_dump + and pg_basebackup (Tom Lane) + + + + The previous code failed to check for errors from some kernel calls, + and could report the wrong errno values in other cases. + + + + + + + Fix results of index-only scans + on contrib/btree_gist indexes + on char(N) columns (Tom Lane) + + + + Index-only scans returned column values with trailing spaces + removed, which is not the expected behavior. That happened because + that's how the data was stored in the index. This fix changes the + code to store char(N) values + with the expected amount of space padding. + The behavior of such an index will not change immediately unless + you REINDEX it; otherwise space-stripped values + will be gradually replaced over time during updates. Queries that + do not use index-only scan plans will be unaffected in any case. + + + + + + + Change configure to use + Python's sysconfig module, rather than + the deprecated distutils module, to + determine how to build PL/Python (Peter Eisentraut, Tom Lane, Andres + Freund) + + + + With Python 3.10, this + avoids configure-time warnings + about distutils being deprecated and + scheduled for removal in Python 3.12. Presumably, once 3.12 is + out, configure --with-python would fail + altogether. This future-proofing does come at a + cost: sysconfig did not exist before + Python 2.7, nor before 3.2 in the Python 3 branch, so it is no + longer possible to build PL/Python against long-dead Python + versions. + + + + + + + Fix PL/Perl compile failure on Windows with Perl 5.28 and later + (Victor Wagner) + + + + + + + Fix PL/Python compile failure with Python 3.11 and later (Peter + Eisentraut) + + + + + + + Add support for building with Visual Studio 2022 (Hans Buschmann) + + + + + + + Allow the .bat wrapper scripts in our MSVC + build system to be called without first changing into their + directory (Anton Voloshin, Andrew Dunstan) + + + + + + + + + + Release 13.5 + + + Release date: + 2021-11-11 + + + + This release contains a variety of fixes from 13.4. + For information about new features in major release 13, see + . + + + + Migration to Version 13.5 + + + A dump/restore is not required for those running 13.X. + + + + However, note that installations using physical replication should + update standby servers before the primary server, as explained in + the third changelog entry below. + + + + Also, several bugs have been found that may have resulted in corrupted + indexes, as explained in the next several changelog entries. If any + of those cases apply to you, it's recommended to reindex + possibly-affected indexes after updating. + + + + Also, if you are upgrading from a version earlier than 13.2, + see . + + + + + Changes + + + + + + + Make the server reject extraneous data after an SSL or GSS + encryption handshake (Tom Lane) + + + + A man-in-the-middle with the ability to inject data into the TCP + connection could stuff some cleartext data into the start of a + supposedly encryption-protected database session. + This could be abused to send faked SQL commands to the server, + although that would only work if the server did not demand any + authentication data. (However, a server relying on SSL certificate + authentication might well not do so.) + + + + The PostgreSQL Project thanks + Jacob Champion for reporting this problem. + (CVE-2021-23214) + + + + + + + Make libpq reject extraneous data after + an SSL or GSS encryption handshake (Tom Lane) + + + + A man-in-the-middle with the ability to inject data into the TCP + connection could stuff some cleartext data into the start of a + supposedly encryption-protected database session. + This could probably be abused to inject faked responses to the + client's first few queries, although other details of libpq's + behavior make that harder than it sounds. A different line of + attack is to exfiltrate the client's password, or other sensitive + data that might be sent early in the session. That has been shown + to be possible with a server vulnerable to CVE-2021-23214. + + + + The PostgreSQL Project thanks + Jacob Champion for reporting this problem. + (CVE-2021-23222) + + + + + + + Fix physical replication for cases where the primary crashes + after shipping a WAL segment that ends with a partial WAL record + (Álvaro Herrera) + + + + If the primary did not survive long enough to finish writing the + rest of the incomplete WAL record, then the previous crash-recovery + logic had it back up and overwrite WAL starting from the beginning + of the incomplete WAL record. This is problematic since standby + servers may already have copies of that WAL segment. They will then + see an inconsistent next segment, and will not be able to recover + without manual intervention. To fix, do not back up over a WAL + segment boundary when restarting after a crash. Instead write a new + type of WAL record at the start of the next WAL segment, informing + readers that the incomplete WAL record will never be finished and + must be disregarded. + + + + When applying this update, it's best to update standby servers + before the primary, so that they will be ready to handle this new + WAL record type if the primary happens to crash. + + + + + + + Fix CREATE INDEX CONCURRENTLY to wait for + the latest prepared transactions (Andrey Borodin) + + + + Rows inserted by just-prepared transactions might be omitted from + the new index, causing queries relying on the index to miss such + rows. The previous fix for this type of problem failed to account + for PREPARE TRANSACTION commands that were still + in progress when CREATE INDEX CONCURRENTLY + checked for them. As before, in installations that have enabled + prepared transactions (max_prepared_transactions + > 0), it's recommended to reindex any concurrently-built indexes + in case this problem occurred when they were built. + + + + + + + Avoid race condition that can cause backends to fail to add entries + for new rows to an index being built concurrently (Noah Misch, + Andrey Borodin) + + + + While it's apparently rare in the field, this case could potentially + affect any index built or reindexed with + the CONCURRENTLY option. It is recommended to + reindex any such indexes to make sure they are correct. + + + + + + + Fix float4 and float8 hash functions to + produce uniform results for NaNs (Tom Lane) + + + + Since PostgreSQL's floating-point types + deem all NaNs to be equal, it's important for the hash functions to + produce the same hash code for all bit-patterns that are NaNs + according to the IEEE 754 standard. This failed to happen before, + meaning that hash indexes and hash-based query plans might produce + incorrect results for non-canonical NaN values. + ('-NaN'::float8 is one way to produce such a + value on most machines.) It is advisable to reindex hash indexes + on floating-point columns, if there is any possibility that they + might contain such values. + + + + + + + Fix REINDEX CONCURRENTLY to preserve operator + class parameters that were attached to the target index + (Michael Paquier) + + + + + + + Prevent data loss during crash recovery of CREATE + TABLESPACE, when wal_level + = minimal (Noah Misch) + + + + If the server crashed between CREATE TABLESPACE + and the next checkpoint, replay would fully remove the contents of + the new tablespace's directory, relying on subsequent WAL replay + to restore everything within that directory. This interacts badly + with optimizations that skip writing WAL (one example + is COPY into a just-created table). Such + optimizations are applied only when wal_level + is minimal, which is not the default in v10 and + later. + + + + + + + Ensure that the relation cache is invalidated for a table being + attached to or detached from a partitioned table (Amit Langote, + Álvaro Herrera) + + + + This oversight could allow misbehavior of subsequent inserts/updates + addressed directly to the partition, but only in currently-existing + sessions. + + + + + + + Ensure that the relation cache is invalidated for all partitions + of a partitioned table that is being added to or removed from a + publication (Hou Zhijie, Vignesh C) + + + + This oversight could lead to improper replication behavior until all + currently-existing sessions have exited. + + + + + + + Ensure that the relation cache is invalidated when creating or + dropping a FOR ALL TABLES publication + (Hou Zhijie, Vignesh C) + + + + This oversight could lead to improper replication behavior until all + currently-existing sessions have exited. + + + + + + + Don't discard a cast to the same type with unspecified type modifier + (Tom Lane) + + + + For example, if column f1 is of + type numeric(18,3), the parser used to simply + discard a cast like f1::numeric, on the grounds + that it would have no run-time effect. That's true, but the exposed + type of the expression should still be considered to be + plain numeric, + not numeric(18,3). This is important for + correctly resolving the type of larger constructs, such + as recursive UNIONs. + + + + + + + Fix updates of element fields in arrays of domain over composite + (Tom Lane) + + + + A command such as UPDATE tab SET fld[1].subfld = + val failed if the array's elements were domains rather + than plain composites. + + + + + + + Disallow the combination of FETCH FIRST WITH TIES + and FOR UPDATE SKIP LOCKED (David Christensen) + + + + FETCH FIRST WITH TIES necessarily fetches one + more row than requested, since it cannot stop until it finds a row + that is not a tie. In our current implementation, + if FOR UPDATE is used then that row will also get + locked even though it is not returned. That results in undesirable + behavior if the SKIP LOCKED option is specified. + It's difficult to change this without introducing a different set of + undesirable behaviors, so for now, forbid the combination. + + + + + + + Disallow creating an ICU collation if the current database's + encoding won't support it (Tom Lane) + + + + Previously this was allowed, but then the collation could not be + referenced because of the way collation lookup works; you could not + use the collation, nor even drop it. + + + + + + + Disallow ALTER INDEX index ALTER COLUMN col SET + (options) (Nathan Bossart, Michael Paquier) + + + + While the parser accepted this, it's undocumented and doesn't + actually work. + + + + + + + Fix corner-case loss of precision in + numeric power() (Dean Rasheed) + + + + The result could be inaccurate when the first argument is very close + to 1. + + + + + + + Avoid regular expression errors with capturing parentheses + inside {0} (Tom Lane) + + + + Regular expressions like (.){0}...\1 drew + invalid backreference number. Other regexp engines + such as Perl don't complain, though, and for that matter ours + doesn't either in some closely related cases. Worse, it could throw + an assertion failure instead. Fix it so that no error is thrown and + instead the back-reference is silently deemed to never match. + + + + + + + Prevent regular expression back-references from sometimes matching + when they shouldn't (Tom Lane) + + + + The regexp engine was careless about clearing match data + for capturing parentheses after rejecting a partial match. This + could allow a later back-reference to match in places where it + should fail for lack of a defined referent. + + + + + + + Fix regular expression performance bug with back-references inside + iteration nodes (Tom Lane) + + + + Incorrect back-tracking logic could result in exponential time spent + looking for a match. Fortunately the problem is masked in most + cases by other optimizations. + + + + + + + Fix incorrect results from AT TIME ZONE applied + to a time with time zone value (Tom Lane) + + + + The results were incorrect if the target time zone was specified by + a dynamic timezone abbreviation (that is, one that is defined as + equivalent to a full time zone name, rather than a fixed UTC offset). + + + + + + + Fix planner error with pulling up subquery expressions into function + rangetable entries (Tom Lane) + + + + If a function in FROM laterally references the + output of some sub-SELECT earlier in + the FROM clause, and we are able to flatten that + sub-SELECT into the outer query, the + expression(s) copied into the function expression were not fully + processed. This could lead to crashes at execution. + + + + + + + Fix mistranslation of PlaceHolderVars to inheritance child relations + (Tom Lane) + + + + This error could result in assertion failures, or in mis-planning of + queries having partitioned or inherited tables on the nullable side + of an outer join. + + + + + + + Avoid using MCV-only statistics to estimate the range of a column + (Tom Lane) + + + + There are corner cases in which ANALYZE will + build a most-common-values (MCV) list but not a histogram, even + though the MCV list does not account for all the observed values. + In such cases, keep the planner from using the MCV list alone to + estimate the range of column values. + + + + + + + Fix restoration of a Portal's snapshot inside a subtransaction + (Bertrand Drouvot) + + + + If a procedure commits or rolls back a transaction, and then its + next significant action is inside a new subtransaction, snapshot + management went wrong, leading to a dangling pointer and probable + crash. A typical example in PL/pgSQL is a COMMIT + immediately followed by a BEGIN ... EXCEPTION + block that performs a query. + + + + + + + Clean up correctly if a transaction fails after exporting its + snapshot (Dilip Kumar) + + + + This oversight would only cause a problem if the same session + attempted to export a snapshot again. The most likely scenario for + that is creation of a replication slot (followed by rollback) + and then creation of another replication slot. + + + + + + + Prevent wraparound of overflowed-subtransaction tracking on standby + servers (Kyotaro Horiguchi, Alexander Korotkov) + + + + This oversight could cause significant performance degradation + (manifesting as excessive SubtransSLRU traffic) on standby servers. + + + + + + + Ensure that prepared transactions are properly accounted for during + promotion of a standby server (Michael Paquier, Andres Freund) + + + + There was a narrow window where a prepared transaction could be + omitted from a snapshot taken by a concurrently-running session. + If that session then used the snapshot to perform data updates, + erroneous results or data corruption could occur. + + + + + + + Disallow LISTEN in background workers (Tom Lane) + + + + There's no infrastructure to support this, so if someone did + it, it would only result in preventing cleanup of + the NOTIFY queue. + + + + + + + Send NOTIFY signals to other backends during + transaction commit, not in the server's idle loop (Artur Zakirov, + Tom Lane) + + + + This change allows notifications to be delivered immediately after + an intra-procedure COMMIT. It also allows + logical replication workers to send notifications. + + + + + + + Refuse to rewind a cursor marked NO SCROLL + if it has been held over from a previous transaction due + to the WITH HOLD option (Tom Lane) + + + + We have long forbidden fetching backwards from a NO + SCROLL cursor, but for historical reasons the prohibition + didn't extend to cases in which we rewind the query altogether and + then re-fetch forwards. That exception leads to inconsistencies, + particularly for held-over cursors which may not have stored all the + data necessary to rewind. Disallow rewinding for non-scrollable + held-over cursors to block the worst inconsistencies. (v15 will + remove the exception altogether.) + + + + + + + Fix possible failure while saving a WITH HOLD + cursor at transaction end, if it had already been read to completion + (Tom Lane) + + + + + + + Fix detection of a relation that has grown to the maximum allowed + length (Tom Lane) + + + + An attempt to extend a table or index past the limit of 2^32-1 + blocks was rejected, but not soon enough to prevent inconsistent + internal state from being created. + + + + + + + Correctly track the presence of data-modifying CTEs when expanding + a DO INSTEAD rule (Greg Nancarrow, Tom Lane) + + + + The previous failure to do this could lead to problems such as + unsafely choosing a parallel plan. + + + + + + + Fix incorrect reporting of permissions failures on extended + statistics objects (Tomas Vondra) + + + + The code typically produced cache lookup error rather + than the intended message. + + + + + + + Fix incorrect snapshot handling in parallel workers (Greg Nancarrow) + + + + This oversight could lead to misbehavior in parallel queries if the + transaction isolation level is less than REPEATABLE + READ. + + + + + + + Fix logical decoding to correctly ignore toast-table changes for + transient tables (Bertrand Drouvot) + + + + Logical decoding normally ignores changes in transient tables such + as those created during an ALTER TABLE heap + rewrite. But that filtering wasn't applied to the associated toast + table if any, leading to possible errors when rewriting a table + that's being published. + + + + + + + Fix logical decoding's memory usage accounting to handle TOAST data + correctly (Bertrand Drouvot) + + + + + + + Ensure that walreceiver processes create all required archive + notification files before exiting (Fujii Masao) + + + + If a walreceiver exited exactly at a WAL segment boundary, it failed + to make a notification file for the last-received segment, thus + delaying archiving of that segment on the standby. + + + + + + + Fix computation of the WAL range to include in a backup manifest + when a timeline change is involved (Kyotaro Horiguchi) + + + + + + + Avoid trying to lock the OLD + and NEW pseudo-relations in a rule + that uses SELECT FOR UPDATE + (Masahiko Sawada, Tom Lane) + + + + + + + Fix parser's processing of aggregate FILTER + clauses (Tom Lane) + + + + If the FILTER expression is a plain boolean column, + the semantic level of the aggregate could be mis-determined, leading + to not-per-spec behavior. If the FILTER + expression is itself a boolean-returning aggregate, an error should + be thrown but was not, likely resulting in a crash at execution. + + + + + + + Ensure that the correct lock level is used when renaming a table + (Nathan Bossart, Álvaro Herrera) + + + + For historical reasons, ALTER INDEX ... RENAME + can be applied to any sort of relation. The lock level required to + rename an index is lower than that required to rename a table or + other kind of relation, but the code got this wrong and would use + the weaker lock level whenever the command is spelled ALTER + INDEX. + + + + + + + Prevent ALTER TYPE/DOMAIN/OPERATOR ... SET + from changing extension membership (Tom Lane) + + + + ALTER ... SET executed by an extension script + would cause the target object to become a member of the extension if + it was not already. In itself this isn't too troubling, since + there's little reason for an extension script to touch an object not + belonging to the extension. But ALTER TYPE SET + will recurse to dependent domains, thus causing them to also become + extension members. This causes unwanted side-effects from + extension upgrade scripts that use that command to adjust the + properties of a base type belonging to the extension. Fix by + redefining these ALTER cases to never change + extension membership. + + + + + + + Avoid trying to clean up LLVM state after an error within LLVM + (Andres Freund, Justin Pryzby) + + + + This prevents a likely crash during backend exit after a fatal LLVM + error. + + + + + + + Avoid null-pointer-dereference crash when dropping a role that owns + objects being dropped concurrently (Álvaro Herrera) + + + + + + + Prevent snapshot reference leak warning + when lo_export() or a related function fails + (Heikki Linnakangas) + + + + + + + Ensure that scans of SP-GiST indexes are counted in the statistics + views (Tom Lane) + + + + Incrementing the number-of-index-scans counter was overlooked in the + SP-GiST code, although per-tuple counters were advanced correctly. + + + + + + + Fix inefficient code generation for CoerceToDomain expression nodes + (Ranier Vilela) + + + + + + + Recalculate relevant wait intervals + if recovery_min_apply_delay is changed during + recovery (Soumyadeep Chakraborty, Ashwin Agrawal) + + + + + + + Fix infinite loop if a simplehash.h hash table + reaches 2^32 elements (Yura Sokolov) + + + + It seems unlikely that this bug has been hit in practice, as it + would require work_mem settings of hundreds of + gigabytes for existing uses of simplehash.h. + + + + + + + Avoid O(N^2) behavior in some list-manipulation operations + (Nathan Bossart, Tom Lane) + + + + These changes fix slow processing in several scenarios, including: + when a standby replays a transaction that held many exclusive locks + on the primary; when many files are due to be unlinked after a + checkpoint; when hash aggregation involves many batches; and when + pg_trgm extracts indexable conditions from a + complex regular expression. Only the first of these scenarios has + actually been reported from the field, but they all seem like + plausible consequences of inefficient list deletions. + + + + + + + Reduce memory consumption during calculation of extended statistics + (Justin Pryzby, Tomas Vondra) + + + + + + + Add more defensive checks around B-tree posting list splits + (Peter Geoghegan) + + + + This change should help detect index corruption involving duplicate + table TIDs. + + + + + + + Disallow setting huge_pages + to on when shared_memory_type + is sysv (Thomas Munro) + + + + Previously, this setting was accepted, but it did nothing for lack + of any implementation. + + + + + + + Fix missing libpq functions on AIX + (Tony Reix) + + + + Code reorganization led to the following documented functions not + being exported from libpq on AIX: + pg_encoding_to_char(), + pg_utf_mblen(), + pg_char_to_encoding(), + pg_valid_server_encoding(), and + pg_valid_server_encoding_id(). + Restore them to visibility. + + + + + + + Fix ecpg to recover correctly + after malloc() failure while establishing a + connection (Michael Paquier) + + + + + + + Fix misevaluation of stable functions called in the arguments of a + PL/pgSQL CALL statement (Tom Lane) + + + + They were being called with an out-of-date snapshot, so that they + would not see any database changes made since the start of the + session's top-level command. + + + + + + + Allow EXIT out of the outermost block in a + PL/pgSQL routine (Tom Lane) + + + + If the routine does not require an explicit RETURN, + this usage should be valid, but it was rejected. + + + + + + + Remove pg_ctl's hard-coded limits on the + total length of generated commands (Phil Krylov) + + + + For example, this removes a restriction on how many command-line + options can be passed through to the postmaster. Individual path + names that pg_ctl deals with, such as the + postmaster executable's name or the data directory name, are still + limited to MAXPGPATH bytes in most cases. + + + + + + + Fix pg_dump to dump non-global default + privileges correctly (Neil Chen, Masahiko Sawada) + + + + If a global (unrestricted) ALTER DEFAULT + PRIVILEGES command revoked some present-by-default + privilege, for example EXECUTE for functions, and + then a restricted ALTER DEFAULT PRIVILEGES + command granted that privilege again for a selected role or + schema, pg_dump failed to dump the + restricted privilege grant correctly. + + + + + + + Make pg_dump acquire shared lock on + partitioned tables that are to be dumped (Tom Lane) + + + + This oversight was usually pretty harmless, since + once pg_dump has locked any of the leaf + partitions, that would suffice to prevent significant DDL on the + partitioned table itself. However problems could ensue when dumping + a childless partitioned table, since no relevant lock would be held. + + + + + + + Improve pg_dump's performance by avoiding + making per-table queries for RLS policies, and by avoiding repetitive + calls to format_type() (Tom Lane) + + + + These changes provide only marginal improvement when dumping from a + local server, but a dump from a remote server can benefit + substantially due to fewer network round-trips. + + + + + + + Fix crash in pg_dump when attempting to + dump trigger definitions from a pre-8.3 server (Tom Lane) + + + + + + + Fix incorrect filename in pg_restore's + error message about an invalid large object TOC file (Daniel + Gustafsson) + + + + + + + Ensure that pgbench exits with non-zero + status after a socket-level failure (Yugo Nagata, Fabien Coelho) + + + + The desired behavior is to finish out the run but then exit with + status 2. Also, fix the reporting of such errors. + + + + + + + Fix failure of contrib/btree_gin indexes + on "char" + (not char(n)) columns, + when an indexscan using the < + or <= operator is performed (Tom Lane) + + + + Such an indexscan failed to return all the entries it should. + + + + + + + Change contrib/pg_stat_statements to read + its query texts file in units of at most 1GB + (Tom Lane) + + + + Such large query text files are very unusual, but if they do occur, + the previous coding would fail on Windows 64 (which rejects + individual read requests of more than 2GB). + + + + + + + Fix null-pointer crash + when contrib/postgres_fdw tries to report a + data conversion error (Tom Lane) + + + + + + + Add spinlock support for the RISC-V architecture (Marek Szuba) + + + + This is essential for reasonable performance on that platform. + + + + + + + Support OpenSSL 3.0.0 + (Peter Eisentraut, Daniel Gustafsson, Michael Paquier) + + + + + + + Set correct type identifier on OpenSSL BIO (I/O abstraction) + objects created by PostgreSQL + (Itamar Gafni) + + + + This oversight probably only matters for code that is doing + tasks like auditing the OpenSSL installation. But it's + nominally a violation of the OpenSSL API, so fix it. + + + + + + + Fix our pkg-config files to again support static + linking of libpq (Peter Eisentraut) + + + + + + + Make pg_regexec() robust against an + out-of-range search_start parameter + (Tom Lane) + + + + Return REG_NOMATCH, instead of possibly crashing, + when search_start is past the end of the + string. This case is probably unreachable within + core PostgreSQL, but extensions might be + more careless about the parameter value. + + + + + + + Ensure that GetSharedSecurityLabel() can be + used in a newly-started session that has not yet built its critical + relation cache entries (Jeff Davis) + + + + + + + Use the CLDR project's data to map Windows time zone names to IANA + time zones (Tom Lane) + + + + When running on Windows, initdb attempts + to set the new cluster's timezone parameter to + the IANA time zone matching the system's prevailing time zone. + We were using a mapping table that we'd generated years ago and + updated only fitfully; unsurprisingly, it contained a number of + errors as well as omissions of recently-added zones. It turns out + that CLDR has been tracking the most appropriate mappings, so start + using their data. This change will not affect any existing + installation, only newly-initialized clusters. + + + + + + + Update time zone data files to tzdata + release 2021e for DST law changes in Fiji, Jordan, Palestine, and + Samoa, plus historical corrections for Barbados, Cook Islands, + Guyana, Niue, Portugal, and Tonga. + + + + Also, the Pacific/Enderbury zone has been renamed to Pacific/Kanton. + Also, the following zones have been merged into nearby, more-populous + zones whose clocks have agreed with them since 1970: Africa/Accra, + America/Atikokan, America/Blanc-Sablon, America/Creston, + America/Curacao, America/Nassau, America/Port_of_Spain, + Antarctica/DumontDUrville, and Antarctica/Syowa. + In all these cases, the previous zone name remains as an alias. + + + + + + + + Release 13.4 diff -Nru postgresql-13-13.4/doc/src/sgml/rules.sgml postgresql-13-13.7/doc/src/sgml/rules.sgml --- postgresql-13-13.4/doc/src/sgml/rules.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/rules.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -957,9 +957,6 @@ WHERE invoice_date < CURRENT_DATE GROUP BY seller_no, - invoice_date - ORDER BY - seller_no, invoice_date; CREATE UNIQUE INDEX sales_summary_seller diff -Nru postgresql-13-13.4/doc/src/sgml/runtime.sgml postgresql-13-13.7/doc/src/sgml/runtime.sgml --- postgresql-13-13.4/doc/src/sgml/runtime.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/runtime.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -488,7 +488,7 @@ ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT -TimeoutSec=0 +TimeoutSec=infinity [Install] WantedBy=multi-user.target @@ -500,11 +500,11 @@ Consider carefully the timeout setting. systemd has a default timeout of 90 - seconds as of this writing and will kill a process that does not notify + seconds as of this writing and will kill a process that does not report readiness within that time. But a PostgreSQL server that might have to perform crash recovery at startup could take - much longer to become ready. The suggested value of 0 disables the - timeout logic. + much longer to become ready. The suggested value + of infinity disables the timeout logic. diff -Nru postgresql-13-13.4/doc/src/sgml/sepgsql.sgml postgresql-13-13.7/doc/src/sgml/sepgsql.sgml --- postgresql-13-13.4/doc/src/sgml/sepgsql.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/sepgsql.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -797,7 +797,7 @@ - SELinux User's and Administrator's Guide + SELinux User's and Administrator's Guide This document provides a wide spectrum of knowledge to administer diff -Nru postgresql-13-13.4/doc/src/sgml/textsearch.sgml postgresql-13-13.7/doc/src/sgml/textsearch.sgml --- postgresql-13-13.4/doc/src/sgml/textsearch.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/textsearch.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -3618,7 +3618,7 @@ - GIN and GiST Index Types + Preferred Index Types for Text Search text search @@ -3627,10 +3627,16 @@ There are two kinds of indexes that can be used to speed up full text - searches. + searches: + GIN and + GiST. 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 usually desirable. + + + + To create such an index, do one of: diff -Nru postgresql-13-13.4/doc/src/sgml/xfunc.sgml postgresql-13-13.7/doc/src/sgml/xfunc.sgml --- postgresql-13-13.4/doc/src/sgml/xfunc.sgml 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/doc/src/sgml/xfunc.sgml 2022-05-09 21:16:30.000000000 +0000 @@ -2104,16 +2104,18 @@ - specifies which C type - corresponds to which SQL type when writing a C-language function - that uses a built-in type of PostgreSQL. + shows the C types + corresponding to many of the built-in SQL data types + of PostgreSQL. The Defined In column gives the header file that needs to be included to get the type definition. (The actual definition might be in a different file that is included by the listed file. It is recommended that users stick to the defined interface.) Note that you should always include - postgres.h first in any source file, because - it declares a number of things that you will need anyway. + postgres.h first in any source file of server + code, because it declares a number of things that you will need + anyway, and because including other headers first can cause + portability issues. @@ -2172,28 +2174,28 @@ utils/date.h - smallint (int2) - int16 - postgres.h + float4 (real) + float4 + postgres.h - int2vector - int2vector* + float8 (double precision) + float8 postgres.h - integer (int4) - int32 + int2 (smallint) + int16 postgres.h - real (float4) - float4* - postgres.h + int4 (integer) + int32 + postgres.h - double precision (float8) - float8* + int8 (bigint) + int64 postgres.h @@ -2212,6 +2214,11 @@ postgres.h + numeric + Numeric + utils/numeric.h + + oid Oid postgres.h @@ -2233,7 +2240,7 @@ regproc - regproc + RegProcedure postgres.h @@ -2262,6 +2269,11 @@ datatype/timestamp.h + timestamp with time zone + TimestampTz + datatype/timestamp.h + + varchar VarChar* postgres.h diff -Nru postgresql-13-13.4/.gitrevision postgresql-13-13.7/.gitrevision --- postgresql-13-13.4/.gitrevision 2021-08-09 21:02:14.000000000 +0000 +++ postgresql-13-13.7/.gitrevision 2022-05-09 21:28:07.000000000 +0000 @@ -1 +1 @@ -e849f3f1f884ad140b60a24354c6371cbd2efbb6 +4695fdb40fbb1e977e7e62f7d9af1fa948230d6a diff -Nru postgresql-13-13.4/INSTALL postgresql-13-13.7/INSTALL --- postgresql-13-13.4/INSTALL 2021-08-09 21:03:36.000000000 +0000 +++ postgresql-13-13.7/INSTALL 2022-05-09 21:29:51.000000000 +0000 @@ -1,4 +1,3 @@ - PostgreSQL Installation from Source Code ------------------------------------------------------------------------ @@ -12,7 +11,6 @@ ------------------------------------------------------------------------ - Short Version ./configure @@ -32,7 +30,6 @@ ------------------------------------------------------------------------ - Requirements In general, a modern Unix-compatible platform should be able to run @@ -96,9 +93,9 @@ the case). - To build the PL/Python server programming language, you need a - Python installation with the header files and the distutils module. - The minimum required version is Python 2.6. Python 3 is supported if - it's version 3.1 or later; but see the PL/Python documentation when + Python installation with the header files and the sysconfig module. + The minimum required version is Python 2.7. Python 3 is supported if + it's version 3.2 or later; but see the PL/Python documentation when using Python 3. Since PL/Python will be a shared library, the "libpython" library @@ -164,10 +161,9 @@ ------------------------------------------------------------------------ - Installation Procedure -1. CONFIGURATION +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. @@ -206,7 +202,7 @@ described in the section called "configure Environment Variables". These provide additional ways to customize the configuration. -2. BUILD +2. Build To start the build, type either of: @@ -238,7 +234,7 @@ Failure to do that can lead to strange error messages, typically about missing header files. -3. REGRESSION TESTS +3. Regression Tests If you want to test the newly built server before you install it, you can run the regression tests at this point. The regression tests @@ -252,9 +248,9 @@ information about interpreting the test results. You can repeat this test at any later time by issuing the same command. -4. INSTALLING THE FILES +4. Installing the Files - NOTE: + Note: If you are upgrading an existing system be sure to read the documentation, which has instructions about upgrading a cluster. @@ -301,7 +297,7 @@ command was needed for the latter, but this step has been folded into the standard install.) - CLIENT-ONLY INSTALLATION: If you want to install only the client + Client-only installation: If you want to install only the client applications and interface libraries, then you can use these commands: @@ -313,10 +309,10 @@ "src/bin" has a few binaries for server-only use, but they are small. -UNINSTALLATION: To undo the installation use the command "make +Uninstallation: To undo the installation use the command "make uninstall". However, this will not remove any created directories. -CLEANING: After the installation you can free disk space by removing +Cleaning: After the installation you can free disk space by removing the built files from the source tree with the command "make clean". This will preserve the files made by the "configure" program, so that you can rebuild everything with "make" later on. To reset the source tree to the @@ -426,7 +422,7 @@ The HTML-formatted documentation for PostgreSQL will be installed under this directory. The default is "DATAROOTDIR". -NOTE: +Note: Care has been taken to make it possible to install PostgreSQL into shared installation locations (such as "/usr/local/include") without @@ -1018,7 +1014,7 @@ export COPT='-Werror' make -NOTE: +Note: If using GCC, it is best to build with an optimization level of at least "-O1", because using no optimization ("-O0") disables some important @@ -1036,7 +1032,6 @@ ------------------------------------------------------------------------ - Post-Installation Setup ------------------------------------------------------------------------ @@ -1130,7 +1125,6 @@ ------------------------------------------------------------------------ - Getting Started The following is a quick summary of how to get PostgreSQL up and running @@ -1186,7 +1180,6 @@ ------------------------------------------------------------------------ - What Now? - The PostgreSQL distribution contains a comprehensive documentation @@ -1221,7 +1214,6 @@ ------------------------------------------------------------------------ - Supported Platforms A platform (that is, a CPU architecture and operating system @@ -1260,7 +1252,6 @@ ------------------------------------------------------------------------ - Platform-Specific Notes This section documents additional platform-specific issues regarding the diff -Nru postgresql-13-13.4/src/backend/access/brin/brin.c postgresql-13-13.7/src/backend/access/brin/brin.c --- postgresql-13-13.4/src/backend/access/brin/brin.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/brin/brin.c 2022-05-09 21:16:30.000000000 +0000 @@ -865,6 +865,9 @@ Oid heapoid; Relation indexRel; Relation heapRel; + Oid save_userid; + int save_sec_context; + int save_nestlevel; double numSummarized = 0; if (RecoveryInProgress()) @@ -891,7 +894,22 @@ */ heapoid = IndexGetRelation(indexoid, true); if (OidIsValid(heapoid)) + { heapRel = table_open(heapoid, ShareUpdateExclusiveLock); + + /* + * Autovacuum calls us. For its benefit, switch to the table owner's + * userid, so that any index functions are run as that user. Also + * lock down security-restricted operations and arrange to make GUC + * variable changes local to this command. This is harmless, albeit + * unnecessary, when called from SQL, because we fail shortly if the + * user does not own the index. + */ + GetUserIdAndSecContext(&save_userid, &save_sec_context); + SetUserIdAndSecContext(heapRel->rd_rel->relowner, + save_sec_context | SECURITY_RESTRICTED_OPERATION); + save_nestlevel = NewGUCNestLevel(); + } else heapRel = NULL; @@ -906,7 +924,7 @@ RelationGetRelationName(indexRel)))); /* User must own the index (comparable to privileges needed for VACUUM) */ - if (!pg_class_ownercheck(indexoid, GetUserId())) + if (heapRel != NULL && !pg_class_ownercheck(indexoid, save_userid)) aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_INDEX, RelationGetRelationName(indexRel)); @@ -924,6 +942,12 @@ /* OK, do it */ brinsummarize(indexRel, heapRel, heapBlk, true, &numSummarized, NULL); + /* Roll back any GUC changes executed by index functions */ + AtEOXact_GUC(false, save_nestlevel); + + /* Restore userid and security context */ + SetUserIdAndSecContext(save_userid, save_sec_context); + relation_close(indexRel, ShareUpdateExclusiveLock); relation_close(heapRel, ShareUpdateExclusiveLock); @@ -965,6 +989,9 @@ * passed indexoid isn't an index then IndexGetRelation() will fail. * Rather than emitting a not-very-helpful error message, postpone * complaining, expecting that the is-it-an-index test below will fail. + * + * Unlike brin_summarize_range(), autovacuum never calls this. Hence, we + * don't switch userid. */ heapoid = IndexGetRelation(indexoid, true); if (OidIsValid(heapoid)) diff -Nru postgresql-13-13.4/src/backend/access/common/toast_internals.c postgresql-13-13.7/src/backend/access/common/toast_internals.c --- postgresql-13-13.4/src/backend/access/common/toast_internals.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/common/toast_internals.c 2022-05-09 21:16:30.000000000 +0000 @@ -344,10 +344,12 @@ } /* - * Done - close toast relation and its indexes + * Done - close toast relation and its indexes but keep the lock until + * commit, so as a concurrent reindex done directly on the toast relation + * would be able to wait for this transaction. */ - toast_close_indexes(toastidxs, num_indexes, RowExclusiveLock); - table_close(toastrel, RowExclusiveLock); + toast_close_indexes(toastidxs, num_indexes, NoLock); + table_close(toastrel, NoLock); /* * Create the TOAST pointer value that we'll return @@ -424,11 +426,13 @@ } /* - * End scan and close relations + * End scan and close relations but keep the lock until commit, so as a + * concurrent reindex done directly on the toast relation would be able to + * wait for this transaction. */ systable_endscan_ordered(toastscan); - toast_close_indexes(toastidxs, num_indexes, RowExclusiveLock); - table_close(toastrel, RowExclusiveLock); + toast_close_indexes(toastidxs, num_indexes, NoLock); + table_close(toastrel, NoLock); } /* ---------- diff -Nru postgresql-13-13.4/src/backend/access/hash/hashfunc.c postgresql-13-13.7/src/backend/access/hash/hashfunc.c --- postgresql-13-13.4/src/backend/access/hash/hashfunc.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/hash/hashfunc.c 2022-05-09 21:16:30.000000000 +0000 @@ -30,6 +30,7 @@ #include "catalog/pg_collation.h" #include "common/hashfn.h" #include "utils/builtins.h" +#include "utils/float.h" #include "utils/pg_locale.h" /* @@ -159,6 +160,16 @@ */ key8 = key; + /* + * Similarly, NaNs can have different bit patterns but they should all + * compare as equal. For backwards-compatibility reasons we force them to + * have the hash value of a standard float8 NaN. (You'd think we could + * replace key with a float4 NaN and then widen it; but on some old + * platforms, that way produces a different bit pattern.) + */ + if (isnan(key8)) + key8 = get_float8_nan(); + return hash_any((unsigned char *) &key8, sizeof(key8)); } @@ -173,6 +184,8 @@ if (key == (float4) 0) PG_RETURN_UINT64(seed); key8 = key; + if (isnan(key8)) + key8 = get_float8_nan(); return hash_any_extended((unsigned char *) &key8, sizeof(key8), seed); } @@ -190,6 +203,14 @@ if (key == (float8) 0) PG_RETURN_UINT32(0); + /* + * Similarly, NaNs can have different bit patterns but they should all + * compare as equal. For backwards-compatibility reasons we force them to + * have the hash value of a standard NaN. + */ + if (isnan(key)) + key = get_float8_nan(); + return hash_any((unsigned char *) &key, sizeof(key)); } @@ -202,6 +223,8 @@ /* Same approach as hashfloat8 */ if (key == (float8) 0) PG_RETURN_UINT64(seed); + if (isnan(key)) + key = get_float8_nan(); return hash_any_extended((unsigned char *) &key, sizeof(key), seed); } diff -Nru postgresql-13-13.4/src/backend/access/heap/heapam.c postgresql-13-13.7/src/backend/access/heap/heapam.c --- postgresql-13-13.4/src/backend/access/heap/heapam.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/heap/heapam.c 2022-05-09 21:16:30.000000000 +0000 @@ -76,9 +76,11 @@ Buffer newbuf, HeapTuple oldtup, HeapTuple newtup, HeapTuple old_key_tuple, bool all_visible_cleared, bool new_all_visible_cleared); -static Bitmapset *HeapDetermineModifiedColumns(Relation relation, - Bitmapset *interesting_cols, - HeapTuple oldtup, HeapTuple newtup); +static Bitmapset *HeapDetermineColumnsInfo(Relation relation, + Bitmapset *interesting_cols, + Bitmapset *external_cols, + HeapTuple oldtup, HeapTuple newtup, + bool *has_external); static bool heap_acquire_tuplock(Relation relation, ItemPointer tid, LockTupleMode mode, LockWaitPolicy wait_policy, bool *have_tuple_lock); @@ -102,7 +104,7 @@ static bool ConditionalMultiXactIdWait(MultiXactId multi, MultiXactStatus status, uint16 infomask, Relation rel, int *remaining); static XLogRecPtr log_heap_new_cid(Relation relation, HeapTuple tup); -static HeapTuple ExtractReplicaIdentity(Relation rel, HeapTuple tup, bool key_changed, +static HeapTuple ExtractReplicaIdentity(Relation rel, HeapTuple tup, bool key_required, bool *copy); @@ -307,7 +309,7 @@ /* * copy the scan key, if appropriate */ - if (key != NULL) + if (key != NULL && scan->rs_base.rs_nkeys > 0) memcpy(scan->rs_base.rs_key, key, scan->rs_base.rs_nkeys * sizeof(ScanKeyData)); /* @@ -1364,10 +1366,13 @@ * must unpin the buffer when done with the tuple. * * If the tuple is not found (ie, item number references a deleted slot), - * then tuple->t_data is set to NULL and false is returned. + * then tuple->t_data is set to NULL, *userbuf is set to InvalidBuffer, + * and false is returned. * * If the tuple is found but fails the time qual check, then false is returned - * but tuple->t_data is left pointing to the tuple. + * and *userbuf is set to InvalidBuffer, but tuple->t_data is left pointing + * to the tuple. (Note that it is unsafe to dereference tuple->t_data in + * this case, but callers might choose to test it for NULL-ness.) * * heap_fetch does not follow HOT chains: only the exact TID requested will * be fetched. @@ -1387,6 +1392,25 @@ HeapTuple tuple, Buffer *userbuf) { + return heap_fetch_extended(relation, snapshot, tuple, userbuf, false); +} + +/* + * heap_fetch_extended - fetch tuple even if it fails snapshot test + * + * If keep_buf is true, then upon finding a tuple that is valid but fails + * the snapshot check, we return the tuple pointer in tuple->t_data and the + * buffer ID in *userbuf, keeping the buffer pin, just as if it had passed + * the snapshot. (The function result is still "false" though.) + * If keep_buf is false then this behaves identically to heap_fetch(). + */ +bool +heap_fetch_extended(Relation relation, + Snapshot snapshot, + HeapTuple tuple, + Buffer *userbuf, + bool keep_buf) +{ ItemPointer tid = &(tuple->t_self); ItemId lp; Buffer buffer; @@ -1468,9 +1492,14 @@ return true; } - /* Tuple failed time qual */ - ReleaseBuffer(buffer); - *userbuf = InvalidBuffer; + /* Tuple failed time qual, but maybe caller wants to see it anyway. */ + if (keep_buf) + *userbuf = buffer; + else + { + ReleaseBuffer(buffer); + *userbuf = InvalidBuffer; + } return false; } @@ -1493,8 +1522,7 @@ * are vacuumable, false if not. * * Unlike heap_fetch, the caller must already have pin and (at least) share - * lock on the buffer; it is still pinned/locked at exit. Also unlike - * heap_fetch, we do not report any pgstats count; caller may do so if wanted. + * lock on the buffer; it is still pinned/locked at exit. */ bool heap_hot_search_buffer(ItemPointer tid, Relation relation, Buffer buffer, @@ -2910,6 +2938,7 @@ bool all_visible_cleared_new = false; bool checked_lockers; bool locker_remains; + bool id_has_external = false; TransactionId xmax_new_tuple, xmax_old_tuple; uint16 infomask_old_tuple, @@ -2994,7 +3023,7 @@ Assert(ItemIdIsNormal(lp)); /* - * Fill in enough data in oldtup for HeapDetermineModifiedColumns to work + * Fill in enough data in oldtup for HeapDetermineColumnsInfo to work * properly. */ oldtup.t_tableOid = RelationGetRelid(relation); @@ -3005,9 +3034,17 @@ /* the new tuple is ready, except for this: */ newtup->t_tableOid = RelationGetRelid(relation); - /* Determine columns modified by the update. */ - modified_attrs = HeapDetermineModifiedColumns(relation, interesting_attrs, - &oldtup, newtup); + /* + * Determine columns modified by the update. Additionally, identify + * whether any of the unmodified replica identity key attributes in the + * old tuple is externally stored or not. This is required because for + * such attributes the flattened value won't be WAL logged as part of the + * new tuple so we must include it as part of the old_key_tuple. See + * ExtractReplicaIdentity. + */ + modified_attrs = HeapDetermineColumnsInfo(relation, interesting_attrs, + id_attrs, &oldtup, + newtup, &id_has_external); /* * If we're not updating any "key" column, we can grab a weaker lock type. @@ -3609,10 +3646,12 @@ * Compute replica identity tuple before entering the critical section so * we don't PANIC upon a memory allocation failure. * ExtractReplicaIdentity() will return NULL if nothing needs to be - * logged. + * logged. Pass old key required as true only if the replica identity key + * columns are modified or it has external data. */ old_key_tuple = ExtractReplicaIdentity(relation, &oldtup, - bms_overlap(modified_attrs, id_attrs), + bms_overlap(modified_attrs, id_attrs) || + id_has_external, &old_key_copied); /* NO EREPORT(ERROR) from here till changes are logged */ @@ -3768,48 +3807,16 @@ } /* - * Check if the specified attribute's value is same in both given tuples. - * Subroutine for HeapDetermineModifiedColumns. + * Check if the specified attribute's values are the same. Subroutine for + * HeapDetermineColumnsInfo. */ static bool -heap_tuple_attr_equals(TupleDesc tupdesc, int attrnum, - HeapTuple tup1, HeapTuple tup2) +heap_attr_equals(TupleDesc tupdesc, int attrnum, Datum value1, Datum value2, + bool isnull1, bool isnull2) { - Datum value1, - value2; - bool isnull1, - isnull2; Form_pg_attribute att; /* - * If it's a whole-tuple reference, say "not equal". It's not really - * worth supporting this case, since it could only succeed after a no-op - * update, which is hardly a case worth optimizing for. - */ - if (attrnum == 0) - return false; - - /* - * Likewise, automatically say "not equal" for any system attribute other - * than tableOID; we cannot expect these to be consistent in a HOT chain, - * or even to be set correctly yet in the new tuple. - */ - if (attrnum < 0) - { - if (attrnum != TableOidAttributeNumber) - return false; - } - - /* - * Extract the corresponding values. XXX this is pretty inefficient if - * there are many indexed columns. Should HeapDetermineModifiedColumns do - * a single heap_deform_tuple call on each tuple, instead? But that - * doesn't work for system columns ... - */ - value1 = heap_getattr(tup1, attrnum, tupdesc, &isnull1); - value2 = heap_getattr(tup2, attrnum, tupdesc, &isnull2); - - /* * If one value is NULL and other is not, then they are certainly not * equal */ @@ -3850,24 +3857,96 @@ * Given an updated tuple, determine (and return into the output bitmapset), * from those listed as interesting, the set of columns that changed. * - * The input bitmapset is destructively modified; that is OK since this is - * invoked at most once in heap_update. + * has_external indicates if any of the unmodified attributes (from those + * listed as interesting) of the old tuple is a member of external_cols and is + * stored externally. + * + * The input interesting_cols bitmapset is destructively modified; that is OK + * since this is invoked at most once in heap_update. */ static Bitmapset * -HeapDetermineModifiedColumns(Relation relation, Bitmapset *interesting_cols, - HeapTuple oldtup, HeapTuple newtup) +HeapDetermineColumnsInfo(Relation relation, + Bitmapset *interesting_cols, + Bitmapset *external_cols, + HeapTuple oldtup, HeapTuple newtup, + bool *has_external) { - int attnum; + int attrnum; Bitmapset *modified = NULL; + TupleDesc tupdesc = RelationGetDescr(relation); - while ((attnum = bms_first_member(interesting_cols)) >= 0) + while ((attrnum = bms_first_member(interesting_cols)) >= 0) { - attnum += FirstLowInvalidHeapAttributeNumber; + Datum value1, + value2; + bool isnull1, + isnull2; + + attrnum += FirstLowInvalidHeapAttributeNumber; - if (!heap_tuple_attr_equals(RelationGetDescr(relation), - attnum, oldtup, newtup)) + /* + * If it's a whole-tuple reference, say "not equal". It's not really + * worth supporting this case, since it could only succeed after a + * no-op update, which is hardly a case worth optimizing for. + */ + if (attrnum == 0) + { modified = bms_add_member(modified, - attnum - FirstLowInvalidHeapAttributeNumber); + attrnum - + FirstLowInvalidHeapAttributeNumber); + continue; + } + + /* + * Likewise, automatically say "not equal" for any system attribute + * other than tableOID; we cannot expect these to be consistent in a + * HOT chain, or even to be set correctly yet in the new tuple. + */ + if (attrnum < 0) + { + if (attrnum != TableOidAttributeNumber) + { + modified = bms_add_member(modified, + attrnum - + FirstLowInvalidHeapAttributeNumber); + continue; + } + } + + /* + * Extract the corresponding values. XXX this is pretty inefficient + * if there are many indexed columns. Should we do a single + * heap_deform_tuple call on each tuple, instead? But that doesn't + * work for system columns ... + */ + value1 = heap_getattr(oldtup, attrnum, tupdesc, &isnull1); + value2 = heap_getattr(newtup, attrnum, tupdesc, &isnull2); + + if (!heap_attr_equals(tupdesc, attrnum, value1, + value2, isnull1, isnull2)) + { + modified = bms_add_member(modified, + attrnum - + FirstLowInvalidHeapAttributeNumber); + continue; + } + + /* + * No need to check attributes that can't be stored externally. Note + * that system attributes can't be stored externally. + */ + if (attrnum < 0 || isnull1 || + TupleDescAttr(tupdesc, attrnum - 1)->attlen != -1) + continue; + + /* + * Check if the old tuple's attribute is stored externally and is a + * member of external_cols. + */ + if (VARATT_IS_EXTERNAL((struct varlena *) DatumGetPointer(value1)) && + bms_is_member(attrnum - FirstLowInvalidHeapAttributeNumber, + external_cols)) + *has_external = true; } return modified; @@ -4497,7 +4576,16 @@ { Assert(result == TM_SelfModified || result == TM_Updated || result == TM_Deleted || result == TM_WouldBlock); - Assert(!(tuple->t_data->t_infomask & HEAP_XMAX_INVALID)); + + /* + * When locking a tuple under LockWaitSkip semantics and we fail with + * TM_WouldBlock above, it's possible for concurrent transactions to + * release the lock and set HEAP_XMAX_INVALID in the meantime. So + * this assert is slightly different from the equivalent one in + * heap_delete and heap_update. + */ + Assert((result == TM_WouldBlock) || + !(tuple->t_data->t_infomask & HEAP_XMAX_INVALID)); Assert(result != TM_Updated || !ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid)); tmfd->ctid = tuple->t_data->t_ctid; @@ -7093,10 +7181,7 @@ /* Some sanity checks */ if (offnum < FirstOffsetNumber || offnum > maxoff) - { - Assert(false); break; - } lp = PageGetItemId(page, offnum); if (ItemIdIsRedirected(lp)) @@ -7614,14 +7699,14 @@ * Returns NULL if there's no need to log an identity or if there's no suitable * key defined. * - * key_changed should be false if caller knows that no replica identity - * columns changed value. It's always true in the DELETE case. + * Pass key_required true if any replica identity columns changed value, or if + * any of them have any external data. Delete must always pass true. * * *copy is set to true if the returned tuple is a modified copy rather than * the same tuple that was passed in. */ static HeapTuple -ExtractReplicaIdentity(Relation relation, HeapTuple tp, bool key_changed, +ExtractReplicaIdentity(Relation relation, HeapTuple tp, bool key_required, bool *copy) { TupleDesc desc = RelationGetDescr(relation); @@ -7653,8 +7738,8 @@ return tp; } - /* if the key hasn't changed and we're only logging the key, we're done */ - if (!key_changed) + /* if the key isn't required and we're only logging the key, we're done */ + if (!key_required) return NULL; /* find out the replica identity columns */ @@ -7662,10 +7747,10 @@ INDEX_ATTR_BITMAP_IDENTITY_KEY); /* - * If there's no defined replica identity columns, treat as !key_changed. + * If there's no defined replica identity columns, treat as !key_required. * (This case should not be reachable from heap_update, since that should - * calculate key_changed accurately. But heap_delete just passes constant - * true for key_changed, so we can hit this case in deletes.) + * calculate key_required accurately. But heap_delete just passes + * constant true for key_required, so we can hit this case in deletes.) */ if (bms_is_empty(idattrs)) return NULL; diff -Nru postgresql-13-13.4/src/backend/access/heap/heapam_handler.c postgresql-13-13.7/src/backend/access/heap/heapam_handler.c --- postgresql-13-13.4/src/backend/access/heap/heapam_handler.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/heap/heapam_handler.c 2022-05-09 21:16:30.000000000 +0000 @@ -399,7 +399,8 @@ errmsg("tuple to be locked was already moved to another partition due to concurrent update"))); tuple->t_self = *tid; - if (heap_fetch(relation, &SnapshotDirty, tuple, &buffer)) + if (heap_fetch_extended(relation, &SnapshotDirty, tuple, + &buffer, true)) { /* * If xmin isn't what we're expecting, the slot must have @@ -422,7 +423,11 @@ if (TransactionIdIsValid(SnapshotDirty.xmin)) ereport(ERROR, (errcode(ERRCODE_DATA_CORRUPTED), - errmsg_internal("t_xmin is uncommitted in tuple to be updated"))); + errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"", + SnapshotDirty.xmin, + ItemPointerGetBlockNumber(&tuple->t_self), + ItemPointerGetOffsetNumber(&tuple->t_self), + RelationGetRelationName(relation)))); /* * If tuple is being updated by other transaction then we @@ -494,6 +499,7 @@ */ if (tuple->t_data == NULL) { + Assert(!BufferIsValid(buffer)); return TM_Deleted; } @@ -503,8 +509,7 @@ if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple->t_data), priorXmax)) { - if (BufferIsValid(buffer)) - ReleaseBuffer(buffer); + ReleaseBuffer(buffer); return TM_Deleted; } @@ -520,13 +525,12 @@ * * As above, it should be safe to examine xmax and t_ctid * without the buffer content lock, because they can't be - * changing. + * changing. We'd better hold a buffer pin though. */ if (ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid)) { /* deleted, so forget about it */ - if (BufferIsValid(buffer)) - ReleaseBuffer(buffer); + ReleaseBuffer(buffer); return TM_Deleted; } @@ -534,8 +538,7 @@ *tid = tuple->t_data->t_ctid; /* updated row should have xmin matching this xmax */ priorXmax = HeapTupleHeaderGetUpdateXid(tuple->t_data); - if (BufferIsValid(buffer)) - ReleaseBuffer(buffer); + ReleaseBuffer(buffer); /* loop back to fetch next in chain */ } } diff -Nru postgresql-13-13.4/src/backend/access/heap/heapam_visibility.c postgresql-13-13.7/src/backend/access/heap/heapam_visibility.c --- postgresql-13-13.4/src/backend/access/heap/heapam_visibility.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/heap/heapam_visibility.c 2022-05-09 21:16:30.000000000 +0000 @@ -1520,8 +1520,8 @@ static bool TransactionIdInArray(TransactionId xid, TransactionId *xip, Size num) { - return bsearch(&xid, xip, num, - sizeof(TransactionId), xidComparator) != NULL; + return num > 0 && + bsearch(&xid, xip, num, sizeof(TransactionId), xidComparator) != NULL; } /* diff -Nru postgresql-13-13.4/src/backend/access/heap/rewriteheap.c postgresql-13-13.7/src/backend/access/heap/rewriteheap.c --- postgresql-13-13.4/src/backend/access/heap/rewriteheap.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/heap/rewriteheap.c 2022-05-09 21:16:30.000000000 +0000 @@ -1289,4 +1289,7 @@ } } FreeDir(mappings_dir); + + /* persist directory entries to disk */ + fsync_fname("pg_logical/mappings", true); } diff -Nru postgresql-13-13.4/src/backend/access/heap/vacuumlazy.c postgresql-13-13.7/src/backend/access/heap/vacuumlazy.c --- postgresql-13-13.4/src/backend/access/heap/vacuumlazy.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/heap/vacuumlazy.c 2022-05-09 21:16:30.000000000 +0000 @@ -3482,6 +3482,12 @@ LVRelStats vacrelstats; ErrorContextCallback errcallback; + /* + * A parallel vacuum worker must have only PROC_IN_VACUUM flag since we + * don't support parallel vacuum for autovacuum as of now. + */ + Assert(MyPgXact->vacuumFlags == PROC_IN_VACUUM); + lvshared = (LVShared *) shm_toc_lookup(toc, PARALLEL_VACUUM_KEY_SHARED, false); elevel = lvshared->elevel; diff -Nru postgresql-13-13.4/src/backend/access/nbtree/nbtdedup.c postgresql-13-13.7/src/backend/access/nbtree/nbtdedup.c --- postgresql-13-13.4/src/backend/access/nbtree/nbtdedup.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/nbtree/nbtdedup.c 2022-05-09 21:16:30.000000000 +0000 @@ -65,7 +65,7 @@ OffsetNumber deletable[MaxIndexTuplesPerPage]; BTDedupState state; int ndeletable = 0; - Size pagesaving = 0; + Size pagesaving PG_USED_FOR_ASSERTS_ONLY = 0; bool singlevalstrat = false; int nkeyatts = IndexRelationGetNumberOfKeyAttributes(rel); diff -Nru postgresql-13-13.4/src/backend/access/nbtree/nbtinsert.c postgresql-13-13.7/src/backend/access/nbtree/nbtinsert.c --- postgresql-13-13.4/src/backend/access/nbtree/nbtinsert.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/nbtree/nbtinsert.c 2022-05-09 21:16:30.000000000 +0000 @@ -1157,10 +1157,30 @@ * its post-split version is treated as an extra step in either the * insert or page split critical section. */ - Assert(P_ISLEAF(lpageop) && !ItemIdIsDead(itemid)); - Assert(itup_key->heapkeyspace && itup_key->allequalimage); + Assert(P_ISLEAF(lpageop) && + itup_key->heapkeyspace && itup_key->allequalimage); oposting = (IndexTuple) PageGetItem(page, itemid); + /* + * postingoff value comes from earlier call to _bt_binsrch_posting(). + * Its binary search might think that a plain tuple must be a posting + * list tuple that needs to be split. This can happen with corruption + * involving an existing plain tuple that is a duplicate of the new + * item, up to and including its table TID. Check for that here in + * passing. + * + * Also verify that our caller has made sure that the existing posting + * list tuple does not have its LP_DEAD bit set. + */ + if (!BTreeTupleIsPosting(oposting) || ItemIdIsDead(itemid)) + ereport(ERROR, + (errcode(ERRCODE_INDEX_CORRUPTED), + errmsg_internal("table tid from new index tuple (%u,%u) overlaps with invalid duplicate tuple at offset %u of block %u in index \"%s\"", + ItemPointerGetBlockNumber(&itup->t_tid), + ItemPointerGetOffsetNumber(&itup->t_tid), + newitemoff, BufferGetBlockNumber(buf), + RelationGetRelationName(rel)))); + /* use a mutable copy of itup as our itup from here on */ origitup = itup; itup = CopyIndexTuple(origitup); diff -Nru postgresql-13-13.4/src/backend/access/nbtree/nbtsearch.c postgresql-13-13.7/src/backend/access/nbtree/nbtsearch.c --- postgresql-13-13.4/src/backend/access/nbtree/nbtsearch.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/nbtree/nbtsearch.c 2022-05-09 21:16:30.000000000 +0000 @@ -530,7 +530,24 @@ * infrequently. */ if (unlikely(result == 0 && key->scantid != NULL)) + { + /* + * postingoff should never be set more than once per leaf page + * binary search. That would mean that there are duplicate table + * TIDs in the index, which is never okay. Check for that here. + */ + if (insertstate->postingoff != 0) + ereport(ERROR, + (errcode(ERRCODE_INDEX_CORRUPTED), + errmsg_internal("table tid from new index tuple (%u,%u) cannot find insert offset between offsets %u and %u of block %u in index \"%s\"", + ItemPointerGetBlockNumber(key->scantid), + ItemPointerGetOffsetNumber(key->scantid), + low, stricthigh, + BufferGetBlockNumber(insertstate->buf), + RelationGetRelationName(rel)))); + insertstate->postingoff = _bt_binsrch_posting(key, page, mid); + } } /* diff -Nru postgresql-13-13.4/src/backend/access/rmgrdesc/xlogdesc.c postgresql-13-13.7/src/backend/access/rmgrdesc/xlogdesc.c --- postgresql-13-13.4/src/backend/access/rmgrdesc/xlogdesc.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/rmgrdesc/xlogdesc.c 2022-05-09 21:16:30.000000000 +0000 @@ -140,6 +140,16 @@ xlrec.ThisTimeLineID, xlrec.PrevTimeLineID, timestamptz_to_str(xlrec.end_time)); } + else if (info == XLOG_OVERWRITE_CONTRECORD) + { + xl_overwrite_contrecord xlrec; + + memcpy(&xlrec, rec, sizeof(xl_overwrite_contrecord)); + appendStringInfo(buf, "lsn %X/%X; time %s", + (uint32) (xlrec.overwritten_lsn >> 32), + (uint32) xlrec.overwritten_lsn, + timestamptz_to_str(xlrec.overwrite_time)); + } } const char * @@ -179,6 +189,9 @@ case XLOG_END_OF_RECOVERY: id = "END_OF_RECOVERY"; break; + case XLOG_OVERWRITE_CONTRECORD: + id = "OVERWRITE_CONTRECORD"; + break; case XLOG_FPI: id = "FPI"; break; diff -Nru postgresql-13-13.4/src/backend/access/spgist/spgscan.c postgresql-13-13.7/src/backend/access/spgist/spgscan.c --- postgresql-13-13.4/src/backend/access/spgist/spgscan.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/spgist/spgscan.c 2022-05-09 21:16:30.000000000 +0000 @@ -19,6 +19,7 @@ #include "access/relscan.h" #include "access/spgist_private.h" #include "miscadmin.h" +#include "pgstat.h" #include "storage/bufmgr.h" #include "utils/datum.h" #include "utils/float.h" @@ -405,6 +406,9 @@ /* set up starting queue entries */ resetSpGistScanOpaque(so); + + /* count an indexscan for stats */ + pgstat_count_index_scan(scan->indexRelation); } void diff -Nru postgresql-13-13.4/src/backend/access/transam/clog.c postgresql-13-13.7/src/backend/access/transam/clog.c --- postgresql-13-13.4/src/backend/access/transam/clog.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/transam/clog.c 2022-05-09 21:16:30.000000000 +0000 @@ -296,8 +296,9 @@ if (all_xact_same_page && xid == MyPgXact->xid && nsubxids <= THRESHOLD_SUBTRANS_CLOG_OPT && nsubxids == MyPgXact->nxids && - memcmp(subxids, MyProc->subxids.xids, - nsubxids * sizeof(TransactionId)) == 0) + (nsubxids == 0 || + memcmp(subxids, MyProc->subxids.xids, + nsubxids * sizeof(TransactionId)) == 0)) { /* * If we can immediately acquire XactSLRULock, we update the status of diff -Nru postgresql-13-13.4/src/backend/access/transam/commit_ts.c postgresql-13-13.7/src/backend/access/transam/commit_ts.c --- postgresql-13-13.4/src/backend/access/transam/commit_ts.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/transam/commit_ts.c 2022-05-09 21:16:30.000000000 +0000 @@ -184,7 +184,9 @@ * subxid not on the previous page as head. This way, we only have to * lock/modify each SLRU page once. */ - for (i = 0, headxid = xid;;) + headxid = xid; + i = 0; + for (;;) { int pageno = TransactionIdToCTsPage(headxid); int j; @@ -200,7 +202,7 @@ pageno); /* if we wrote out all subxids, we're done. */ - if (j + 1 >= nsubxids) + if (j >= nsubxids) break; /* @@ -208,7 +210,7 @@ * just wrote. */ headxid = subxids[j]; - i += j - i + 1; + i = j + 1; } /* update the cached value in shared memory */ diff -Nru postgresql-13-13.4/src/backend/access/transam/parallel.c postgresql-13-13.7/src/backend/access/transam/parallel.c --- postgresql-13-13.4/src/backend/access/transam/parallel.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/transam/parallel.c 2022-05-09 21:16:30.000000000 +0000 @@ -254,8 +254,11 @@ shm_toc_estimate_chunk(&pcxt->estimator, guc_len); combocidlen = EstimateComboCIDStateSpace(); shm_toc_estimate_chunk(&pcxt->estimator, combocidlen); - tsnaplen = EstimateSnapshotSpace(transaction_snapshot); - shm_toc_estimate_chunk(&pcxt->estimator, tsnaplen); + if (IsolationUsesXactSnapshot()) + { + tsnaplen = EstimateSnapshotSpace(transaction_snapshot); + shm_toc_estimate_chunk(&pcxt->estimator, tsnaplen); + } asnaplen = EstimateSnapshotSpace(active_snapshot); shm_toc_estimate_chunk(&pcxt->estimator, asnaplen); tstatelen = EstimateTransactionStateSpace(); @@ -366,11 +369,19 @@ SerializeComboCIDState(combocidlen, combocidspace); shm_toc_insert(pcxt->toc, PARALLEL_KEY_COMBO_CID, combocidspace); - /* Serialize transaction snapshot and active snapshot. */ - tsnapspace = shm_toc_allocate(pcxt->toc, tsnaplen); - SerializeSnapshot(transaction_snapshot, tsnapspace); - shm_toc_insert(pcxt->toc, PARALLEL_KEY_TRANSACTION_SNAPSHOT, - tsnapspace); + /* + * Serialize the transaction snapshot if the transaction + * isolation-level uses a transaction snapshot. + */ + if (IsolationUsesXactSnapshot()) + { + tsnapspace = shm_toc_allocate(pcxt->toc, tsnaplen); + SerializeSnapshot(transaction_snapshot, tsnapspace); + shm_toc_insert(pcxt->toc, PARALLEL_KEY_TRANSACTION_SNAPSHOT, + tsnapspace); + } + + /* Serialize the active snapshot. */ asnapspace = shm_toc_allocate(pcxt->toc, asnaplen); SerializeSnapshot(active_snapshot, asnapspace); shm_toc_insert(pcxt->toc, PARALLEL_KEY_ACTIVE_SNAPSHOT, asnapspace); @@ -1260,6 +1271,8 @@ char *enumblacklistspace; StringInfoData msgbuf; char *session_dsm_handle_space; + Snapshot tsnapshot; + Snapshot asnapshot; /* Set flag to indicate that we're initializing a parallel worker. */ InitializingParallelWorker = true; @@ -1407,14 +1420,25 @@ shm_toc_lookup(toc, PARALLEL_KEY_SESSION_DSM, false); AttachSession(*(dsm_handle *) session_dsm_handle_space); - /* Restore transaction snapshot. */ - tsnapspace = shm_toc_lookup(toc, PARALLEL_KEY_TRANSACTION_SNAPSHOT, false); - RestoreTransactionSnapshot(RestoreSnapshot(tsnapspace), - fps->parallel_master_pgproc); - - /* Restore active snapshot. */ + /* + * If the transaction isolation level is REPEATABLE READ or SERIALIZABLE, + * the leader has serialized the transaction snapshot and we must restore + * it. At lower isolation levels, there is no transaction-lifetime + * snapshot, but we need TransactionXmin to get set to a value which is + * less than or equal to the xmin of every snapshot that will be used by + * this worker. The easiest way to accomplish that is to install the + * active snapshot as the transaction snapshot. Code running in this + * parallel worker might take new snapshots via GetTransactionSnapshot() + * or GetLatestSnapshot(), but it shouldn't have any way of acquiring a + * snapshot older than the active snapshot. + */ asnapspace = shm_toc_lookup(toc, PARALLEL_KEY_ACTIVE_SNAPSHOT, false); - PushActiveSnapshot(RestoreSnapshot(asnapspace)); + tsnapspace = shm_toc_lookup(toc, PARALLEL_KEY_TRANSACTION_SNAPSHOT, true); + asnapshot = RestoreSnapshot(asnapspace); + tsnapshot = tsnapspace ? RestoreSnapshot(tsnapspace) : asnapshot; + RestoreTransactionSnapshot(tsnapshot, + fps->parallel_master_pgproc); + PushActiveSnapshot(asnapshot); /* * We've changed which tuples we can see, and must therefore invalidate diff -Nru postgresql-13-13.4/src/backend/access/transam/twophase.c postgresql-13-13.7/src/backend/access/transam/twophase.c --- postgresql-13-13.4/src/backend/access/transam/twophase.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/transam/twophase.c 2022-05-09 21:16:30.000000000 +0000 @@ -461,14 +461,25 @@ proc->pgprocno = gxact->pgprocno; SHMQueueElemInit(&(proc->links)); proc->waitStatus = STATUS_OK; - /* We set up the gxact's VXID as InvalidBackendId/XID */ - proc->lxid = (LocalTransactionId) xid; + if (LocalTransactionIdIsValid(MyProc->lxid)) + { + /* clone VXID, for TwoPhaseGetXidByVirtualXID() to find */ + proc->lxid = MyProc->lxid; + proc->backendId = MyBackendId; + } + else + { + Assert(AmStartupProcess() || !IsPostmasterEnvironment); + /* GetLockConflicts() uses this to specify a wait on the XID */ + proc->lxid = xid; + proc->backendId = InvalidBackendId; + } pgxact->xid = xid; pgxact->xmin = InvalidTransactionId; proc->delayChkpt = false; pgxact->vacuumFlags = 0; + proc->delayChkptEnd = false; proc->pid = 0; - proc->backendId = InvalidBackendId; proc->databaseId = databaseid; proc->roleId = owner; proc->tempNamespaceId = InvalidOid; @@ -851,6 +862,53 @@ } /* + * TwoPhaseGetXidByVirtualXID + * Lookup VXID among xacts prepared since last startup. + * + * (This won't find recovered xacts.) If more than one matches, return any + * and set "have_more" to true. To witness multiple matches, a single + * BackendId must consume 2^32 LXIDs, with no intervening database restart. + */ +TransactionId +TwoPhaseGetXidByVirtualXID(VirtualTransactionId vxid, + bool *have_more) +{ + int i; + TransactionId result = InvalidTransactionId; + + Assert(VirtualTransactionIdIsValid(vxid)); + LWLockAcquire(TwoPhaseStateLock, LW_SHARED); + + for (i = 0; i < TwoPhaseState->numPrepXacts; i++) + { + GlobalTransaction gxact = TwoPhaseState->prepXacts[i]; + PGPROC *proc; + VirtualTransactionId proc_vxid; + + if (!gxact->valid) + continue; + proc = &ProcGlobal->allProcs[gxact->pgprocno]; + GET_VXID_FROM_PGPROC(proc_vxid, *proc); + if (VirtualTransactionIdEquals(vxid, proc_vxid)) + { + /* Startup process sets proc->backendId to InvalidBackendId. */ + Assert(!gxact->inredo); + + if (result != InvalidTransactionId) + { + *have_more = true; + break; + } + result = gxact->xid; + } + } + + LWLockRelease(TwoPhaseStateLock); + + return result; +} + +/* * TwoPhaseGetDummyBackendId * Get the dummy backend ID for prepared transaction specified by XID * @@ -1077,7 +1135,6 @@ if (replorigin) { - Assert(replorigin_session_origin_lsn != InvalidXLogRecPtr); hdr->origin_lsn = replorigin_session_origin_lsn; hdr->origin_timestamp = replorigin_session_origin_timestamp; } @@ -1114,6 +1171,7 @@ START_CRIT_SECTION(); + Assert(!MyProc->delayChkpt); MyProc->delayChkpt = true; XLogBeginInsert(); @@ -1357,11 +1415,21 @@ ThisTimeLineID = save_currtli; if (record == NULL) - ereport(ERROR, - (errcode_for_file_access(), - errmsg("could not read two-phase state from WAL at %X/%X", - (uint32) (lsn >> 32), - (uint32) lsn))); + { + if (errormsg) + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not read two-phase state from WAL at %X/%X: %s", + (uint32) (lsn >> 32), + (uint32) lsn, + errormsg))); + else + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not read two-phase state from WAL at %X/%X", + (uint32) (lsn >> 32), + (uint32) lsn))); + } if (XLogRecGetRmid(xlogreader) != RM_XACT_ID || (XLogRecGetInfo(xlogreader) & XLOG_XACT_OPMASK) != XLOG_XACT_PREPARE) @@ -2220,6 +2288,7 @@ START_CRIT_SECTION(); /* See notes in RecordTransactionCommit */ + Assert(!MyProc->delayChkpt); MyProc->delayChkpt = true; /* diff -Nru postgresql-13-13.4/src/backend/access/transam/xact.c postgresql-13-13.7/src/backend/access/transam/xact.c --- postgresql-13-13.4/src/backend/access/transam/xact.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/transam/xact.c 2022-05-09 21:16:30.000000000 +0000 @@ -46,6 +46,7 @@ #include "replication/logical.h" #include "replication/logicallauncher.h" #include "replication/origin.h" +#include "replication/snapbuild.h" #include "replication/syncrep.h" #include "replication/walsender.h" #include "storage/condition_variable.h" @@ -1307,6 +1308,7 @@ * This makes checkpoint's determination of which xacts are delayChkpt * a bit fuzzy, but it doesn't matter. */ + Assert(!MyProc->delayChkpt); START_CRIT_SECTION(); MyProc->delayChkpt = true; @@ -2242,7 +2244,17 @@ */ smgrDoPendingDeletes(true); + /* + * Send out notification signals to other backends (and do other + * post-commit NOTIFY cleanup). This must not happen until after our + * transaction is fully done from the viewpoint of other backends. + */ AtCommit_Notify(); + + /* + * Everything after this should be purely internal-to-this-backend + * cleanup. + */ AtEOXact_GUC(true, 1); AtEOXact_SPI(true); AtEOXact_Enum(); @@ -2478,6 +2490,13 @@ XactLastRecEnd = 0; /* + * Transfer our locks to a dummy PGPROC. This has to be done before + * ProcArrayClearTransaction(). Otherwise, a GetLockConflicts() would + * conclude "xact already committed or aborted" for our locks. + */ + PostPrepare_Locks(xid); + + /* * Let others know about no transaction in progress by me. This has to be * done *after* the prepared transaction has been marked valid, else * someone may think it is unlocked and recyclable. @@ -2516,7 +2535,6 @@ PostPrepare_MultiXact(xid); - PostPrepare_Locks(xid); PostPrepare_PredicateLocks(xid); ResourceOwnerRelease(TopTransactionResourceOwner, @@ -2667,6 +2685,9 @@ /* Forget about any active REINDEX. */ ResetReindexState(s->nestingLevel); + /* Reset snapshot export state. */ + SnapBuildResetExportedSnapshotState(); + /* If in parallel mode, clean up workers and exit parallel mode. */ if (IsInParallelMode()) { @@ -4832,6 +4853,7 @@ AfterTriggerEndSubXact(true); AtSubCommit_Portals(s->subTransactionId, s->parent->subTransactionId, + s->parent->nestingLevel, s->parent->curTransactionOwner); AtEOSubXact_LargeObject(true, s->subTransactionId, s->parent->subTransactionId); @@ -4976,6 +4998,11 @@ /* Forget about any active REINDEX. */ ResetReindexState(s->nestingLevel); + /* + * No need for SnapBuildResetExportedSnapshotState() here, snapshot + * exports are not supported in subtransactions. + */ + /* Exit from parallel mode, if necessary. */ if (IsInParallelMode()) { @@ -5256,8 +5283,9 @@ { if (FullTransactionIdIsValid(s->fullTransactionId)) workspace[i++] = XidFromFullTransactionId(s->fullTransactionId); - memcpy(&workspace[i], s->childXids, - s->nChildXids * sizeof(TransactionId)); + if (s->nChildXids > 0) + memcpy(&workspace[i], s->childXids, + s->nChildXids * sizeof(TransactionId)); i += s->nChildXids; } Assert(i == nxids); diff -Nru postgresql-13-13.4/src/backend/access/transam/xlog.c postgresql-13-13.7/src/backend/access/transam/xlog.c --- postgresql-13-13.4/src/backend/access/transam/xlog.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/transam/xlog.c 2022-05-09 21:16:30.000000000 +0000 @@ -213,6 +213,15 @@ static TimeLineID receiveTLI = 0; /* + * abortedRecPtr is the start pointer of a broken record at end of WAL when + * recovery completes; missingContrecPtr is the location of the first + * contrecord that went missing. See CreateOverwriteContrecordRecord for + * details. + */ +static XLogRecPtr abortedRecPtr; +static XLogRecPtr missingContrecPtr; + +/* * During recovery, lastFullPageWrites keeps track of full_page_writes that * the replayed WAL records indicate. It's initialized with full_page_writes * that the recovery starting checkpoint record indicates, and then updated @@ -894,8 +903,11 @@ static void XLogReportParameters(void); static void checkTimeLineSwitch(XLogRecPtr lsn, TimeLineID newTLI, TimeLineID prevTLI); +static void VerifyOverwriteContrecord(xl_overwrite_contrecord *xlrec, + XLogReaderState *state); static void LocalSetXLogInsertAllowed(void); static void CreateEndOfRecoveryRecord(void); +static XLogRecPtr CreateOverwriteContrecordRecord(XLogRecPtr aborted_lsn); static void CheckPointGuts(XLogRecPtr checkPointRedo, int flags); static void KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo); static XLogRecPtr XLogGetReplicationSlotMinimumLSN(void); @@ -2247,6 +2259,18 @@ NewPage->xlp_info |= XLP_BKP_REMOVABLE; /* + * If a record was found to be broken at the end of recovery, and + * we're going to write on the page where its first contrecord was + * lost, set the XLP_FIRST_IS_OVERWRITE_CONTRECORD flag on the page + * header. See CreateOverwriteContrecordRecord(). + */ + if (missingContrecPtr == NewPageBeginPtr) + { + NewPage->xlp_info |= XLP_FIRST_IS_OVERWRITE_CONTRECORD; + missingContrecPtr = InvalidXLogRecPtr; + } + + /* * If first page of an XLOG segment file, make it a long header. */ if ((XLogSegmentOffset(NewPage->xlp_pageaddr, wal_segment_size)) == 0) @@ -4346,6 +4370,19 @@ EndRecPtr = xlogreader->EndRecPtr; if (record == NULL) { + /* + * When not in standby mode we find that WAL ends in an incomplete + * record, keep track of that record. After recovery is done, + * we'll write a record to indicate downstream WAL readers that + * that portion is to be ignored. + */ + if (!StandbyMode && + !XLogRecPtrIsInvalid(xlogreader->abortedRecPtr)) + { + abortedRecPtr = xlogreader->abortedRecPtr; + missingContrecPtr = xlogreader->missingContrecPtr; + } + if (readFile >= 0) { close(readFile); @@ -6120,14 +6157,23 @@ { ResetLatch(&XLogCtl->recoveryWakeupLatch); - /* might change the trigger file's location */ + /* + * This might change recovery_min_apply_delay or the trigger file's + * location. + */ HandleStartupProcInterrupts(); if (CheckForStandbyTrigger()) break; /* - * Wait for difference between GetCurrentTimestamp() and delayUntil + * Recalculate delayUntil as recovery_min_apply_delay could have + * changed while waiting in this loop. + */ + delayUntil = TimestampTzPlusMilliseconds(xtime, recovery_min_apply_delay); + + /* + * Wait for difference between GetCurrentTimestamp() and delayUntil. */ msecs = TimestampDifferenceMilliseconds(GetCurrentTimestamp(), delayUntil); @@ -6868,6 +6914,12 @@ InRecovery = true; } + /* + * Start recovery assuming that the final record isn't lost. + */ + abortedRecPtr = InvalidXLogRecPtr; + missingContrecPtr = InvalidXLogRecPtr; + /* REDO */ if (InRecovery) { @@ -7460,8 +7512,9 @@ /* * Kill WAL receiver, if it's still running, before we continue to write - * the startup checkpoint record. It will trump over the checkpoint and - * subsequent records if it's still alive when we start writing WAL. + * the startup checkpoint and aborted-contrecord records. It will trump + * over these records and subsequent ones if it's still alive when we + * start writing WAL. */ ShutdownWalRcv(); @@ -7494,8 +7547,12 @@ StandbyMode = false; /* - * Re-fetch the last valid or last applied record, so we can identify the - * exact endpoint of what we consider the valid portion of WAL. + * Determine where to start writing WAL next. + * + * When recovery ended in an incomplete record, write a WAL record about + * that and continue after it. In all other cases, re-fetch the last + * valid or last applied record, so we can identify the exact endpoint of + * what we consider the valid portion of WAL. */ XLogBeginRead(xlogreader, LastRec); record = ReadRecord(xlogreader, PANIC, false); @@ -7646,6 +7703,18 @@ XLogCtl->PrevTimeLineID = PrevTimeLineID; /* + * Actually, if WAL ended in an incomplete record, skip the parts that + * made it through and start writing after the portion that persisted. + * (It's critical to first write an OVERWRITE_CONTRECORD message, which + * we'll do as soon as we're open for writing new WAL.) + */ + if (!XLogRecPtrIsInvalid(missingContrecPtr)) + { + Assert(!XLogRecPtrIsInvalid(abortedRecPtr)); + EndOfLog = missingContrecPtr; + } + + /* * Prepare to write WAL starting at EndOfLog location, and init xlog * buffer cache using the block containing the last record from the * previous incarnation. @@ -7697,13 +7766,23 @@ XLogCtl->LogwrtRqst.Write = EndOfLog; XLogCtl->LogwrtRqst.Flush = EndOfLog; + LocalSetXLogInsertAllowed(); + + /* If necessary, write overwrite-contrecord before doing anything else */ + if (!XLogRecPtrIsInvalid(abortedRecPtr)) + { + Assert(!XLogRecPtrIsInvalid(missingContrecPtr)); + CreateOverwriteContrecordRecord(abortedRecPtr); + abortedRecPtr = InvalidXLogRecPtr; + missingContrecPtr = InvalidXLogRecPtr; + } + /* * Update full_page_writes in shared memory and write an XLOG_FPW_CHANGE * record before resource manager writes cleanup WAL records or checkpoint * record is written. */ Insert->fullPageWrites = lastFullPageWrites; - LocalSetXLogInsertAllowed(); UpdateFullPageWrites(); LocalXLogInsertAllowed = -1; @@ -7882,13 +7961,6 @@ /* Reload shared-memory state for prepared transactions */ RecoverPreparedTransactions(); - /* - * Shutdown the recovery environment. This must occur after - * RecoverPreparedTransactions(), see notes for lock_twophase_recover() - */ - if (standbyState != STANDBY_DISABLED) - ShutdownRecoveryTransactionEnvironment(); - /* Shut down xlogreader */ if (readFile >= 0) { @@ -7938,6 +8010,18 @@ LWLockRelease(ControlFileLock); /* + * Shutdown the recovery environment. This must occur after + * RecoverPreparedTransactions() (see notes in lock_twophase_recover()) + * and after switching SharedRecoveryState to RECOVERY_STATE_DONE so as + * any session building a snapshot will not rely on KnownAssignedXids as + * RecoveryInProgress() would return false at this stage. This is + * particularly critical for prepared 2PC transactions, that would still + * need to be included in snapshots once recovery has ended. + */ + if (standbyState != STANDBY_DISABLED) + ShutdownRecoveryTransactionEnvironment(); + + /* * If there were cascading standby servers connected to us, nudge any wal * sender processes to notice that we've been promoted. */ @@ -8733,6 +8817,14 @@ CheckpointStats.ckpt_start_t = GetCurrentTimestamp(); /* + * Let smgr prepare for checkpoint; this has to happen outside the + * critical section and before we determine the REDO pointer. Note that + * smgr must not do anything that'd have to be undone if we decide no + * checkpoint is needed. + */ + SyncPreCheckpoint(); + + /* * Use a critical section to force system panic if we have trouble. */ START_CRIT_SECTION(); @@ -8746,13 +8838,6 @@ LWLockRelease(ControlFileLock); } - /* - * Let smgr prepare for checkpoint; this has to happen before we determine - * the REDO pointer. Note that smgr must not do anything that'd have to - * be undone if we decide no checkpoint is needed. - */ - SyncPreCheckpoint(); - /* Begin filling in the checkpoint WAL record */ MemSet(&checkPoint, 0, sizeof(checkPoint)); checkPoint.time = (pg_time_t) time(NULL); @@ -8949,6 +9034,16 @@ CheckPointGuts(checkPoint.redo, flags); + vxids = GetVirtualXIDsDelayingChkptEnd(&nvxids); + if (nvxids > 0) + { + do + { + pg_usleep(10000L); /* wait for 10 msec */ + } while (HaveVirtualXIDsDelayingChkptEnd(vxids, nvxids)); + } + pfree(vxids); + /* * Take a snapshot of running transactions and write this to WAL. This * allows us to reconstruct the state of running transactions during @@ -9150,6 +9245,53 @@ } /* + * Write an OVERWRITE_CONTRECORD message. + * + * When on WAL replay we expect a continuation record at the start of a page + * that is not there, recovery ends and WAL writing resumes at that point. + * But it's wrong to resume writing new WAL back at the start of the record + * that was broken, because downstream consumers of that WAL (physical + * replicas) are not prepared to "rewind". So the first action after + * finishing replay of all valid WAL must be to write a record of this type + * at the point where the contrecord was missing; to support xlogreader + * detecting the special case, XLP_FIRST_IS_OVERWRITE_CONTRECORD is also added + * to the page header where the record occurs. xlogreader has an ad-hoc + * mechanism to report metadata about the broken record, which is what we + * use here. + * + * At replay time, XLP_FIRST_IS_OVERWRITE_CONTRECORD instructs xlogreader to + * skip the record it was reading, and pass back the LSN of the skipped + * record, so that its caller can verify (on "replay" of that record) that the + * XLOG_OVERWRITE_CONTRECORD matches what was effectively overwritten. + */ +static XLogRecPtr +CreateOverwriteContrecordRecord(XLogRecPtr aborted_lsn) +{ + xl_overwrite_contrecord xlrec; + XLogRecPtr recptr; + + /* sanity check */ + if (!RecoveryInProgress()) + elog(ERROR, "can only be used at end of recovery"); + + xlrec.overwritten_lsn = aborted_lsn; + xlrec.overwrite_time = GetCurrentTimestamp(); + + START_CRIT_SECTION(); + + XLogBeginInsert(); + XLogRegisterData((char *) &xlrec, sizeof(xl_overwrite_contrecord)); + + recptr = XLogInsert(RM_XLOG_ID, XLOG_OVERWRITE_CONTRECORD); + + XLogFlush(recptr); + + END_CRIT_SECTION(); + + return recptr; +} + +/* * Flush all data in shared memory to disk, and fsync * * This is the common code shared between regular checkpoints and @@ -10071,6 +10213,13 @@ RecoveryRestartPoint(&checkPoint); } + else if (info == XLOG_OVERWRITE_CONTRECORD) + { + xl_overwrite_contrecord xlrec; + + memcpy(&xlrec, XLogRecGetData(record), sizeof(xl_overwrite_contrecord)); + VerifyOverwriteContrecord(&xlrec, record); + } else if (info == XLOG_END_OF_RECOVERY) { xl_end_of_recovery xlrec; @@ -10231,6 +10380,33 @@ } } +/* + * Verify the payload of a XLOG_OVERWRITE_CONTRECORD record. + */ +static void +VerifyOverwriteContrecord(xl_overwrite_contrecord *xlrec, XLogReaderState *state) +{ + if (xlrec->overwritten_lsn != state->overwrittenRecPtr) + elog(FATAL, "mismatching overwritten LSN %X/%X -> %X/%X", + (uint32) (xlrec->overwritten_lsn >> 32), + (uint32) xlrec->overwritten_lsn, + (uint32) (state->overwrittenRecPtr >> 32), + (uint32) state->overwrittenRecPtr); + + /* We have safely skipped the aborted record */ + abortedRecPtr = InvalidXLogRecPtr; + missingContrecPtr = InvalidXLogRecPtr; + + ereport(LOG, + (errmsg("successfully skipped missing contrecord at %X/%X, overwritten at %s", + (uint32) (xlrec->overwritten_lsn >> 32), + (uint32) xlrec->overwritten_lsn, + timestamptz_to_str(xlrec->overwrite_time)))); + + /* Verifying the record should only happen once */ + state->overwrittenRecPtr = InvalidXLogRecPtr; +} + #ifdef WAL_DEBUG static void diff -Nru postgresql-13-13.4/src/backend/access/transam/xlogreader.c postgresql-13-13.7/src/backend/access/transam/xlogreader.c --- postgresql-13-13.4/src/backend/access/transam/xlogreader.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/access/transam/xlogreader.c 2022-05-09 21:16:30.000000000 +0000 @@ -275,6 +275,7 @@ total_len; uint32 targetRecOff; uint32 pageHeaderSize; + bool assembled; bool gotheader; int readOff; @@ -290,6 +291,8 @@ state->errormsg_buf[0] = '\0'; ResetDecoder(state); + state->abortedRecPtr = InvalidXLogRecPtr; + state->missingContrecPtr = InvalidXLogRecPtr; RecPtr = state->EndRecPtr; @@ -316,7 +319,9 @@ randAccess = true; } +restart: state->currRecPtr = RecPtr; + assembled = false; targetPagePtr = RecPtr - (RecPtr % XLOG_BLCKSZ); targetRecOff = RecPtr % XLOG_BLCKSZ; @@ -412,6 +417,8 @@ char *buffer; uint32 gotlen; + assembled = true; + /* * Enlarge readRecordBuf as needed. */ @@ -446,8 +453,25 @@ Assert(SizeOfXLogShortPHD <= readOff); - /* Check that the continuation on next page looks valid */ pageHeader = (XLogPageHeader) state->readBuf; + + /* + * If we were expecting a continuation record and got an + * "overwrite contrecord" flag, that means the continuation record + * was overwritten with a different record. Restart the read by + * assuming the address to read is the location where we found + * this flag; but keep track of the LSN of the record we were + * reading, for later verification. + */ + if (pageHeader->xlp_info & XLP_FIRST_IS_OVERWRITE_CONTRECORD) + { + state->overwrittenRecPtr = RecPtr; + ResetDecoder(state); + RecPtr = targetPagePtr; + goto restart; + } + + /* Check that the continuation on next page looks valid */ if (!(pageHeader->xlp_info & XLP_FIRST_IS_CONTRECORD)) { report_invalid_record(state, @@ -548,6 +572,20 @@ return NULL; err: + if (assembled) + { + /* + * We get here when a record that spans multiple pages needs to be + * assembled, but something went wrong -- perhaps a contrecord piece + * was lost. If caller is WAL replay, it will know where the aborted + * record was and where to direct followup WAL to be written, marking + * the next piece with XLP_FIRST_IS_OVERWRITE_CONTRECORD, which will + * in turn signal downstream WAL consumers that the broken WAL record + * is to be ignored. + */ + state->abortedRecPtr = RecPtr; + state->missingContrecPtr = targetPagePtr; + } /* * Invalidate the read state. We might read from a different source after diff -Nru postgresql-13-13.4/src/backend/bootstrap/bootparse.c postgresql-13-13.7/src/backend/bootstrap/bootparse.c --- postgresql-13-13.4/src/backend/bootstrap/bootparse.c 2021-08-09 21:03:30.000000000 +0000 +++ postgresql-13-13.7/src/backend/bootstrap/bootparse.c 2022-05-09 21:29:44.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,12 +70,11 @@ #define yyerror boot_yyerror #define yydebug boot_yydebug #define yynerrs boot_yynerrs - #define yylval boot_yylval #define yychar boot_yychar /* First part of user prologue. */ -#line 1 "bootparse.y" /* yacc.c:337 */ +#line 1 "bootparse.y" /*------------------------------------------------------------------------- * @@ -173,7 +173,17 @@ static int num_columns_read = 0; -#line 177 "bootparse.c" /* yacc.c:337 */ +#line 177 "bootparse.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -186,14 +196,6 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - /* Debug traces. */ #ifndef YYDEBUG @@ -203,45 +205,49 @@ extern int boot_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - ID = 258, - COMMA = 259, - EQUALS = 260, - LPAREN = 261, - RPAREN = 262, - NULLVAL = 263, - OPEN = 264, - XCLOSE = 265, - XCREATE = 266, - INSERT_TUPLE = 267, - XDECLARE = 268, - INDEX = 269, - ON = 270, - USING = 271, - XBUILD = 272, - INDICES = 273, - UNIQUE = 274, - XTOAST = 275, - OBJ_ID = 276, - XBOOTSTRAP = 277, - XSHARED_RELATION = 278, - XROWTYPE_OID = 279, - XFORCE = 280, - XNOT = 281, - XNULL = 282 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + ID = 258, /* ID */ + COMMA = 259, /* COMMA */ + EQUALS = 260, /* EQUALS */ + LPAREN = 261, /* LPAREN */ + RPAREN = 262, /* RPAREN */ + NULLVAL = 263, /* NULLVAL */ + OPEN = 264, /* OPEN */ + XCLOSE = 265, /* XCLOSE */ + XCREATE = 266, /* XCREATE */ + INSERT_TUPLE = 267, /* INSERT_TUPLE */ + XDECLARE = 268, /* XDECLARE */ + INDEX = 269, /* INDEX */ + ON = 270, /* ON */ + USING = 271, /* USING */ + XBUILD = 272, /* XBUILD */ + INDICES = 273, /* INDICES */ + UNIQUE = 274, /* UNIQUE */ + XTOAST = 275, /* XTOAST */ + OBJ_ID = 276, /* OBJ_ID */ + XBOOTSTRAP = 277, /* XBOOTSTRAP */ + XSHARED_RELATION = 278, /* XSHARED_RELATION */ + XROWTYPE_OID = 279, /* XROWTYPE_OID */ + XFORCE = 280, /* XFORCE */ + XNOT = 281, /* XNOT */ + XNULL = 282 /* XNULL */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 104 "bootparse.y" /* yacc.c:352 */ +#line 104 "bootparse.y" List *list; IndexElem *ielem; @@ -250,9 +256,9 @@ int ival; Oid oidval; -#line 254 "bootparse.c" /* yacc.c:352 */ -}; +#line 260 "bootparse.c" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -264,6 +270,68 @@ int boot_yyparse (void); +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_ID = 3, /* ID */ + YYSYMBOL_COMMA = 4, /* COMMA */ + YYSYMBOL_EQUALS = 5, /* EQUALS */ + YYSYMBOL_LPAREN = 6, /* LPAREN */ + YYSYMBOL_RPAREN = 7, /* RPAREN */ + YYSYMBOL_NULLVAL = 8, /* NULLVAL */ + YYSYMBOL_OPEN = 9, /* OPEN */ + YYSYMBOL_XCLOSE = 10, /* XCLOSE */ + YYSYMBOL_XCREATE = 11, /* XCREATE */ + YYSYMBOL_INSERT_TUPLE = 12, /* INSERT_TUPLE */ + YYSYMBOL_XDECLARE = 13, /* XDECLARE */ + YYSYMBOL_INDEX = 14, /* INDEX */ + YYSYMBOL_ON = 15, /* ON */ + YYSYMBOL_USING = 16, /* USING */ + YYSYMBOL_XBUILD = 17, /* XBUILD */ + YYSYMBOL_INDICES = 18, /* INDICES */ + YYSYMBOL_UNIQUE = 19, /* UNIQUE */ + YYSYMBOL_XTOAST = 20, /* XTOAST */ + YYSYMBOL_OBJ_ID = 21, /* OBJ_ID */ + YYSYMBOL_XBOOTSTRAP = 22, /* XBOOTSTRAP */ + YYSYMBOL_XSHARED_RELATION = 23, /* XSHARED_RELATION */ + YYSYMBOL_XROWTYPE_OID = 24, /* XROWTYPE_OID */ + YYSYMBOL_XFORCE = 25, /* XFORCE */ + YYSYMBOL_XNOT = 26, /* XNOT */ + YYSYMBOL_XNULL = 27, /* XNULL */ + YYSYMBOL_YYACCEPT = 28, /* $accept */ + YYSYMBOL_TopLevel = 29, /* TopLevel */ + YYSYMBOL_Boot_Queries = 30, /* Boot_Queries */ + YYSYMBOL_Boot_Query = 31, /* Boot_Query */ + YYSYMBOL_Boot_OpenStmt = 32, /* Boot_OpenStmt */ + YYSYMBOL_Boot_CloseStmt = 33, /* Boot_CloseStmt */ + YYSYMBOL_Boot_CreateStmt = 34, /* Boot_CreateStmt */ + YYSYMBOL_35_1 = 35, /* $@1 */ + YYSYMBOL_36_2 = 36, /* $@2 */ + YYSYMBOL_Boot_InsertStmt = 37, /* Boot_InsertStmt */ + YYSYMBOL_38_3 = 38, /* $@3 */ + YYSYMBOL_Boot_DeclareIndexStmt = 39, /* Boot_DeclareIndexStmt */ + YYSYMBOL_Boot_DeclareUniqueIndexStmt = 40, /* Boot_DeclareUniqueIndexStmt */ + YYSYMBOL_Boot_DeclareToastStmt = 41, /* Boot_DeclareToastStmt */ + YYSYMBOL_Boot_BuildIndsStmt = 42, /* Boot_BuildIndsStmt */ + YYSYMBOL_boot_index_params = 43, /* boot_index_params */ + YYSYMBOL_boot_index_param = 44, /* boot_index_param */ + YYSYMBOL_optbootstrap = 45, /* optbootstrap */ + YYSYMBOL_optsharedrelation = 46, /* optsharedrelation */ + YYSYMBOL_optrowtypeoid = 47, /* optrowtypeoid */ + YYSYMBOL_boot_column_list = 48, /* boot_column_list */ + YYSYMBOL_boot_column_def = 49, /* boot_column_def */ + YYSYMBOL_boot_column_nullness = 50, /* boot_column_nullness */ + YYSYMBOL_oidspec = 51, /* oidspec */ + YYSYMBOL_boot_column_val_list = 52, /* boot_column_val_list */ + YYSYMBOL_boot_column_val = 53, /* boot_column_val */ + YYSYMBOL_boot_ident = 54 /* boot_ident */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + @@ -271,28 +339,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -300,7 +427,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -308,7 +435,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -322,38 +462,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -366,8 +505,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + -#if ! defined yyoverflow || YYERROR_VERBOSE +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -432,8 +585,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -442,17 +594,17 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -465,11 +617,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -481,12 +633,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -509,17 +661,20 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 110 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 282 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint8 yytranslate[] = +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -554,7 +709,7 @@ #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { 0, 134, 134, 135, 139, 140, 144, 145, 146, 147, 148, 149, 150, 151, 155, 164, 174, 184, 173, 270, @@ -566,45 +721,58 @@ }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "ID", "COMMA", "EQUALS", "LPAREN", - "RPAREN", "NULLVAL", "OPEN", "XCLOSE", "XCREATE", "INSERT_TUPLE", - "XDECLARE", "INDEX", "ON", "USING", "XBUILD", "INDICES", "UNIQUE", - "XTOAST", "OBJ_ID", "XBOOTSTRAP", "XSHARED_RELATION", "XROWTYPE_OID", - "XFORCE", "XNOT", "XNULL", "$accept", "TopLevel", "Boot_Queries", - "Boot_Query", "Boot_OpenStmt", "Boot_CloseStmt", "Boot_CreateStmt", - "$@1", "$@2", "Boot_InsertStmt", "$@3", "Boot_DeclareIndexStmt", - "Boot_DeclareUniqueIndexStmt", "Boot_DeclareToastStmt", - "Boot_BuildIndsStmt", "boot_index_params", "boot_index_param", - "optbootstrap", "optsharedrelation", "optrowtypeoid", "boot_column_list", - "boot_column_def", "boot_column_nullness", "oidspec", + "\"end of file\"", "error", "\"invalid token\"", "ID", "COMMA", + "EQUALS", "LPAREN", "RPAREN", "NULLVAL", "OPEN", "XCLOSE", "XCREATE", + "INSERT_TUPLE", "XDECLARE", "INDEX", "ON", "USING", "XBUILD", "INDICES", + "UNIQUE", "XTOAST", "OBJ_ID", "XBOOTSTRAP", "XSHARED_RELATION", + "XROWTYPE_OID", "XFORCE", "XNOT", "XNULL", "$accept", "TopLevel", + "Boot_Queries", "Boot_Query", "Boot_OpenStmt", "Boot_CloseStmt", + "Boot_CreateStmt", "$@1", "$@2", "Boot_InsertStmt", "$@3", + "Boot_DeclareIndexStmt", "Boot_DeclareUniqueIndexStmt", + "Boot_DeclareToastStmt", "Boot_BuildIndsStmt", "boot_index_params", + "boot_index_param", "optbootstrap", "optsharedrelation", "optrowtypeoid", + "boot_column_list", "boot_column_def", "boot_column_nullness", "oidspec", "boot_column_val_list", "boot_column_val", "boot_ident", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282 }; -# endif +#endif -#define YYPACT_NINF -53 +#define YYPACT_NINF (-53) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-53))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -1 +#define YYTABLE_NINF (-1) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -627,7 +795,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint8 yydefact[] = +static const yytype_int8 yydefact[] = { 3, 0, 0, 0, 19, 0, 0, 0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 46, 47, @@ -653,7 +821,7 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 7, 8, 9, 10, 11, 12, 81, 90, 13, + 0, 7, 8, 9, 10, 11, 12, 81, 90, 13, 41, 14, 15, 16, 17, 92, 93, 55, 64, 72, 84, 85, 104, 48, 57, 58, 49 }; @@ -661,7 +829,7 @@ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_uint8 yytable[] = +static const yytype_int8 yytable[] = { 38, 39, 40, 53, 45, 1, 2, 3, 4, 5, 60, 67, 62, 6, 99, 99, 42, 100, 106, 73, @@ -705,7 +873,7 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_int8 yystos[] = { 0, 9, 10, 11, 12, 13, 17, 29, 30, 31, 32, 33, 34, 37, 39, 40, 41, 42, 3, 9, @@ -721,7 +889,7 @@ }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_int8 yyr1[] = { 0, 28, 29, 29, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 32, 33, 35, 36, 34, 38, @@ -733,7 +901,7 @@ }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 1, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 11, 0, @@ -745,10 +913,10 @@ }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -774,10 +942,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* Enable debugging if requested. */ @@ -795,18 +962,18 @@ } while (0) /* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value); \ + Kind, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -817,17 +984,20 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; - YYUSE (yyoutput); + YY_USE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -836,12 +1006,13 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyo, yytype, yyvaluep); + yy_symbol_value_print (yyo, yykind, yyvaluep); YYFPRINTF (yyo, ")"); } @@ -851,7 +1022,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -874,21 +1045,21 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - ); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); YYFPRINTF (stderr, "\n"); } } @@ -903,8 +1074,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -927,254 +1098,30 @@ #endif -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -1183,6 +1130,8 @@ int yynerrs; + + /*----------. | yyparse. | `----------*/ @@ -1190,43 +1139,36 @@ int yyparse (void) { - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - YYSIZE_T yystacksize; + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -1234,15 +1176,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; @@ -1257,10 +1192,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1268,23 +1208,23 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -1298,14 +1238,15 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1314,16 +1255,16 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -1344,18 +1285,29 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1383,15 +1335,13 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1426,29 +1376,29 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 14: -#line 156 "bootparse.y" /* yacc.c:1652 */ - { + case 14: /* Boot_OpenStmt: OPEN boot_ident */ +#line 156 "bootparse.y" + { do_start(); boot_openrel((yyvsp[0].str)); do_end(); } -#line 1437 "bootparse.c" /* yacc.c:1652 */ +#line 1387 "bootparse.c" break; - case 15: -#line 165 "bootparse.y" /* yacc.c:1652 */ - { + case 15: /* Boot_CloseStmt: XCLOSE boot_ident */ +#line 165 "bootparse.y" + { do_start(); closerel((yyvsp[0].str)); do_end(); } -#line 1447 "bootparse.c" /* yacc.c:1652 */ +#line 1397 "bootparse.c" break; - case 16: -#line 174 "bootparse.y" /* yacc.c:1652 */ - { + case 16: /* $@1: %empty */ +#line 174 "bootparse.y" + { do_start(); numattr = 0; elog(DEBUG4, "creating%s%s relation %s %u", @@ -1457,20 +1407,20 @@ (yyvsp[-5].str), (yyvsp[-4].oidval)); } -#line 1461 "bootparse.c" /* yacc.c:1652 */ +#line 1411 "bootparse.c" break; - case 17: -#line 184 "bootparse.y" /* yacc.c:1652 */ - { + case 17: /* $@2: %empty */ +#line 184 "bootparse.y" + { do_end(); } -#line 1469 "bootparse.c" /* yacc.c:1652 */ +#line 1419 "bootparse.c" break; - case 18: -#line 188 "bootparse.y" /* yacc.c:1652 */ - { + case 18: /* Boot_CreateStmt: XCREATE boot_ident oidspec optbootstrap optsharedrelation optrowtypeoid LPAREN $@1 boot_column_list $@2 RPAREN */ +#line 188 "bootparse.y" + { TupleDesc tupdesc; bool shared_relation; bool mapped_relation; @@ -1548,22 +1498,22 @@ } do_end(); } -#line 1552 "bootparse.c" /* yacc.c:1652 */ +#line 1502 "bootparse.c" break; - case 19: -#line 270 "bootparse.y" /* yacc.c:1652 */ - { + case 19: /* $@3: %empty */ +#line 270 "bootparse.y" + { do_start(); elog(DEBUG4, "inserting row"); num_columns_read = 0; } -#line 1562 "bootparse.c" /* yacc.c:1652 */ +#line 1512 "bootparse.c" break; - case 20: -#line 276 "bootparse.y" /* yacc.c:1652 */ - { + case 20: /* Boot_InsertStmt: INSERT_TUPLE $@3 LPAREN boot_column_val_list RPAREN */ +#line 276 "bootparse.y" + { if (num_columns_read != numattr) elog(ERROR, "incorrect number of columns in row (expected %d, got %d)", numattr, num_columns_read); @@ -1572,12 +1522,12 @@ InsertOneTuple(); do_end(); } -#line 1576 "bootparse.c" /* yacc.c:1652 */ +#line 1526 "bootparse.c" break; - case 21: -#line 289 "bootparse.y" /* yacc.c:1652 */ - { + case 21: /* Boot_DeclareIndexStmt: XDECLARE INDEX boot_ident oidspec ON boot_ident USING boot_ident LPAREN boot_index_params RPAREN */ +#line 289 "bootparse.y" + { IndexStmt *stmt = makeNode(IndexStmt); Oid relationId; @@ -1625,12 +1575,12 @@ false); do_end(); } -#line 1629 "bootparse.c" /* yacc.c:1652 */ +#line 1579 "bootparse.c" break; - case 22: -#line 341 "bootparse.y" /* yacc.c:1652 */ - { + case 22: /* Boot_DeclareUniqueIndexStmt: XDECLARE UNIQUE INDEX boot_ident oidspec ON boot_ident USING boot_ident LPAREN boot_index_params RPAREN */ +#line 341 "bootparse.y" + { IndexStmt *stmt = makeNode(IndexStmt); Oid relationId; @@ -1678,12 +1628,12 @@ false); do_end(); } -#line 1682 "bootparse.c" /* yacc.c:1652 */ +#line 1632 "bootparse.c" break; - case 23: -#line 393 "bootparse.y" /* yacc.c:1652 */ - { + case 23: /* Boot_DeclareToastStmt: XDECLARE XTOAST oidspec oidspec ON boot_ident */ +#line 393 "bootparse.y" + { elog(DEBUG4, "creating toast table for table \"%s\"", (yyvsp[0].str)); do_start(); @@ -1691,34 +1641,34 @@ BootstrapToastTable((yyvsp[0].str), (yyvsp[-3].oidval), (yyvsp[-2].oidval)); do_end(); } -#line 1695 "bootparse.c" /* yacc.c:1652 */ +#line 1645 "bootparse.c" break; - case 24: -#line 405 "bootparse.y" /* yacc.c:1652 */ - { + case 24: /* Boot_BuildIndsStmt: XBUILD INDICES */ +#line 405 "bootparse.y" + { do_start(); build_indices(); do_end(); } -#line 1705 "bootparse.c" /* yacc.c:1652 */ +#line 1655 "bootparse.c" break; - case 25: -#line 414 "bootparse.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } -#line 1711 "bootparse.c" /* yacc.c:1652 */ + case 25: /* boot_index_params: boot_index_params COMMA boot_index_param */ +#line 414 "bootparse.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } +#line 1661 "bootparse.c" break; - case 26: -#line 415 "bootparse.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].ielem)); } -#line 1717 "bootparse.c" /* yacc.c:1652 */ + case 26: /* boot_index_params: boot_index_param */ +#line 415 "bootparse.y" + { (yyval.list) = list_make1((yyvsp[0].ielem)); } +#line 1667 "bootparse.c" break; - case 27: -#line 420 "bootparse.y" /* yacc.c:1652 */ - { + case 27: /* boot_index_param: boot_ident boot_ident */ +#line 420 "bootparse.y" + { IndexElem *n = makeNode(IndexElem); n->name = (yyvsp[-1].str); n->expr = NULL; @@ -1729,213 +1679,214 @@ n->nulls_ordering = SORTBY_NULLS_DEFAULT; (yyval.ielem) = n; } -#line 1733 "bootparse.c" /* yacc.c:1652 */ +#line 1683 "bootparse.c" break; - case 28: -#line 434 "bootparse.y" /* yacc.c:1652 */ - { (yyval.ival) = 1; } -#line 1739 "bootparse.c" /* yacc.c:1652 */ + case 28: /* optbootstrap: XBOOTSTRAP */ +#line 434 "bootparse.y" + { (yyval.ival) = 1; } +#line 1689 "bootparse.c" break; - case 29: -#line 435 "bootparse.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 1745 "bootparse.c" /* yacc.c:1652 */ + case 29: /* optbootstrap: %empty */ +#line 435 "bootparse.y" + { (yyval.ival) = 0; } +#line 1695 "bootparse.c" break; - case 30: -#line 439 "bootparse.y" /* yacc.c:1652 */ - { (yyval.ival) = 1; } -#line 1751 "bootparse.c" /* yacc.c:1652 */ + case 30: /* optsharedrelation: XSHARED_RELATION */ +#line 439 "bootparse.y" + { (yyval.ival) = 1; } +#line 1701 "bootparse.c" break; - case 31: -#line 440 "bootparse.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 1757 "bootparse.c" /* yacc.c:1652 */ + case 31: /* optsharedrelation: %empty */ +#line 440 "bootparse.y" + { (yyval.ival) = 0; } +#line 1707 "bootparse.c" break; - case 32: -#line 444 "bootparse.y" /* yacc.c:1652 */ - { (yyval.oidval) = (yyvsp[0].oidval); } -#line 1763 "bootparse.c" /* yacc.c:1652 */ + case 32: /* optrowtypeoid: XROWTYPE_OID oidspec */ +#line 444 "bootparse.y" + { (yyval.oidval) = (yyvsp[0].oidval); } +#line 1713 "bootparse.c" break; - case 33: -#line 445 "bootparse.y" /* yacc.c:1652 */ - { (yyval.oidval) = InvalidOid; } -#line 1769 "bootparse.c" /* yacc.c:1652 */ + case 33: /* optrowtypeoid: %empty */ +#line 445 "bootparse.y" + { (yyval.oidval) = InvalidOid; } +#line 1719 "bootparse.c" break; - case 36: -#line 455 "bootparse.y" /* yacc.c:1652 */ - { + case 36: /* boot_column_def: boot_ident EQUALS boot_ident boot_column_nullness */ +#line 455 "bootparse.y" + { if (++numattr > MAXATTR) elog(FATAL, "too many columns"); DefineAttr((yyvsp[-3].str), (yyvsp[-1].str), numattr-1, (yyvsp[0].ival)); } -#line 1779 "bootparse.c" /* yacc.c:1652 */ +#line 1729 "bootparse.c" break; - case 37: -#line 463 "bootparse.y" /* yacc.c:1652 */ - { (yyval.ival) = BOOTCOL_NULL_FORCE_NOT_NULL; } -#line 1785 "bootparse.c" /* yacc.c:1652 */ + case 37: /* boot_column_nullness: XFORCE XNOT XNULL */ +#line 463 "bootparse.y" + { (yyval.ival) = BOOTCOL_NULL_FORCE_NOT_NULL; } +#line 1735 "bootparse.c" break; - case 38: -#line 464 "bootparse.y" /* yacc.c:1652 */ - { (yyval.ival) = BOOTCOL_NULL_FORCE_NULL; } -#line 1791 "bootparse.c" /* yacc.c:1652 */ + case 38: /* boot_column_nullness: XFORCE XNULL */ +#line 464 "bootparse.y" + { (yyval.ival) = BOOTCOL_NULL_FORCE_NULL; } +#line 1741 "bootparse.c" break; - case 39: -#line 465 "bootparse.y" /* yacc.c:1652 */ - { (yyval.ival) = BOOTCOL_NULL_AUTO; } -#line 1797 "bootparse.c" /* yacc.c:1652 */ + case 39: /* boot_column_nullness: %empty */ +#line 465 "bootparse.y" + { (yyval.ival) = BOOTCOL_NULL_AUTO; } +#line 1747 "bootparse.c" break; - case 40: -#line 469 "bootparse.y" /* yacc.c:1652 */ - { (yyval.oidval) = atooid((yyvsp[0].str)); } -#line 1803 "bootparse.c" /* yacc.c:1652 */ + case 40: /* oidspec: boot_ident */ +#line 469 "bootparse.y" + { (yyval.oidval) = atooid((yyvsp[0].str)); } +#line 1753 "bootparse.c" break; - case 44: -#line 480 "bootparse.y" /* yacc.c:1652 */ - { InsertOneValue((yyvsp[0].str), num_columns_read++); } -#line 1809 "bootparse.c" /* yacc.c:1652 */ + case 44: /* boot_column_val: boot_ident */ +#line 480 "bootparse.y" + { InsertOneValue((yyvsp[0].str), num_columns_read++); } +#line 1759 "bootparse.c" break; - case 45: -#line 482 "bootparse.y" /* yacc.c:1652 */ - { InsertOneNull(num_columns_read++); } -#line 1815 "bootparse.c" /* yacc.c:1652 */ + case 45: /* boot_column_val: NULLVAL */ +#line 482 "bootparse.y" + { InsertOneNull(num_columns_read++); } +#line 1765 "bootparse.c" break; - case 46: -#line 486 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 1821 "bootparse.c" /* yacc.c:1652 */ + case 46: /* boot_ident: ID */ +#line 486 "bootparse.y" + { (yyval.str) = (yyvsp[0].str); } +#line 1771 "bootparse.c" break; - case 47: -#line 487 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1827 "bootparse.c" /* yacc.c:1652 */ + case 47: /* boot_ident: OPEN */ +#line 487 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1777 "bootparse.c" break; - case 48: -#line 488 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1833 "bootparse.c" /* yacc.c:1652 */ + case 48: /* boot_ident: XCLOSE */ +#line 488 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1783 "bootparse.c" break; - case 49: -#line 489 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1839 "bootparse.c" /* yacc.c:1652 */ + case 49: /* boot_ident: XCREATE */ +#line 489 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1789 "bootparse.c" break; - case 50: -#line 490 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1845 "bootparse.c" /* yacc.c:1652 */ + case 50: /* boot_ident: INSERT_TUPLE */ +#line 490 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1795 "bootparse.c" break; - case 51: -#line 491 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1851 "bootparse.c" /* yacc.c:1652 */ + case 51: /* boot_ident: XDECLARE */ +#line 491 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1801 "bootparse.c" break; - case 52: -#line 492 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1857 "bootparse.c" /* yacc.c:1652 */ + case 52: /* boot_ident: INDEX */ +#line 492 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1807 "bootparse.c" break; - case 53: -#line 493 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1863 "bootparse.c" /* yacc.c:1652 */ + case 53: /* boot_ident: ON */ +#line 493 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1813 "bootparse.c" break; - case 54: -#line 494 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1869 "bootparse.c" /* yacc.c:1652 */ + case 54: /* boot_ident: USING */ +#line 494 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1819 "bootparse.c" break; - case 55: -#line 495 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1875 "bootparse.c" /* yacc.c:1652 */ + case 55: /* boot_ident: XBUILD */ +#line 495 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1825 "bootparse.c" break; - case 56: -#line 496 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1881 "bootparse.c" /* yacc.c:1652 */ + case 56: /* boot_ident: INDICES */ +#line 496 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1831 "bootparse.c" break; - case 57: -#line 497 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1887 "bootparse.c" /* yacc.c:1652 */ + case 57: /* boot_ident: UNIQUE */ +#line 497 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1837 "bootparse.c" break; - case 58: -#line 498 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1893 "bootparse.c" /* yacc.c:1652 */ + case 58: /* boot_ident: XTOAST */ +#line 498 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1843 "bootparse.c" break; - case 59: -#line 499 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1899 "bootparse.c" /* yacc.c:1652 */ + case 59: /* boot_ident: OBJ_ID */ +#line 499 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1849 "bootparse.c" break; - case 60: -#line 500 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1905 "bootparse.c" /* yacc.c:1652 */ + case 60: /* boot_ident: XBOOTSTRAP */ +#line 500 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1855 "bootparse.c" break; - case 61: -#line 501 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1911 "bootparse.c" /* yacc.c:1652 */ + case 61: /* boot_ident: XSHARED_RELATION */ +#line 501 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1861 "bootparse.c" break; - case 62: -#line 502 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1917 "bootparse.c" /* yacc.c:1652 */ + case 62: /* boot_ident: XROWTYPE_OID */ +#line 502 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1867 "bootparse.c" break; - case 63: -#line 503 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1923 "bootparse.c" /* yacc.c:1652 */ + case 63: /* boot_ident: XFORCE */ +#line 503 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1873 "bootparse.c" break; - case 64: -#line 504 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1929 "bootparse.c" /* yacc.c:1652 */ + case 64: /* boot_ident: XNOT */ +#line 504 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1879 "bootparse.c" break; - case 65: -#line 505 "bootparse.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].kw)); } -#line 1935 "bootparse.c" /* yacc.c:1652 */ + case 65: /* boot_ident: XNULL */ +#line 505 "bootparse.y" + { (yyval.str) = pstrdup((yyvsp[0].kw)); } +#line 1885 "bootparse.c" break; -#line 1939 "bootparse.c" /* yacc.c:1652 */ +#line 1889 "bootparse.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1949,11 +1900,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1977,50 +1927,14 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } - - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -2069,13 +1983,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -2089,7 +2004,7 @@ yydestruct ("Error: popping", - yystos[yystate], yyvsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -2101,7 +2016,7 @@ /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -2123,20 +2038,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -2153,20 +2068,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 507 "bootparse.y" /* yacc.c:1918 */ + +#line 507 "bootparse.y" #include "bootscanner.c" diff -Nru postgresql-13-13.4/src/backend/catalog/dependency.c postgresql-13-13.7/src/backend/catalog/dependency.c --- postgresql-13-13.4/src/backend/catalog/dependency.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/dependency.c 2022-05-09 21:16:30.000000000 +0000 @@ -1109,6 +1109,10 @@ objDesc = getObjectDescription(obj); + /* An object being dropped concurrently doesn't need to be reported */ + if (objDesc == NULL) + continue; + /* * If, at any stage of the recursive search, we reached the object via * an AUTO, INTERNAL, PARTITION, or EXTENSION dependency, then it's @@ -1133,23 +1137,28 @@ { char *otherDesc = getObjectDescription(&extra->dependee); - if (numReportedClient < MAX_REPORTED_DEPS) + if (otherDesc) { + if (numReportedClient < MAX_REPORTED_DEPS) + { + /* separate entries with a newline */ + if (clientdetail.len != 0) + appendStringInfoChar(&clientdetail, '\n'); + appendStringInfo(&clientdetail, _("%s depends on %s"), + objDesc, otherDesc); + numReportedClient++; + } + else + numNotReportedClient++; /* separate entries with a newline */ - if (clientdetail.len != 0) - appendStringInfoChar(&clientdetail, '\n'); - appendStringInfo(&clientdetail, _("%s depends on %s"), + if (logdetail.len != 0) + appendStringInfoChar(&logdetail, '\n'); + appendStringInfo(&logdetail, _("%s depends on %s"), objDesc, otherDesc); - numReportedClient++; + pfree(otherDesc); } else numNotReportedClient++; - /* separate entries with a newline */ - if (logdetail.len != 0) - appendStringInfoChar(&logdetail, '\n'); - appendStringInfo(&logdetail, _("%s depends on %s"), - objDesc, otherDesc); - pfree(otherDesc); ok = false; } else diff -Nru postgresql-13-13.4/src/backend/catalog/index.c postgresql-13-13.7/src/backend/catalog/index.c --- postgresql-13-13.4/src/backend/catalog/index.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/index.c 2022-05-09 21:16:30.000000000 +0000 @@ -71,6 +71,7 @@ #include "storage/procarray.h" #include "storage/smgr.h" #include "utils/builtins.h" +#include "utils/datum.h" #include "utils/fmgroids.h" #include "utils/guc.h" #include "utils/inval.h" @@ -1362,6 +1363,15 @@ newInfo->ii_IndexAttrNumbers[i] = oldInfo->ii_IndexAttrNumbers[i]; } + /* Extract opclass parameters for each attribute, if any */ + if (oldInfo->ii_OpclassOptions != NULL) + { + newInfo->ii_OpclassOptions = palloc0(sizeof(Datum) * + newInfo->ii_NumIndexAttrs); + for (int i = 0; i < newInfo->ii_NumIndexAttrs; i++) + newInfo->ii_OpclassOptions[i] = get_attoptions(oldIndexId, i + 1); + } + /* * Now create the new index. * @@ -1411,6 +1421,9 @@ Oid indexRelationId) { Relation heapRel; + Oid save_userid; + int save_sec_context; + int save_nestlevel; Relation indexRelation; IndexInfo *indexInfo; @@ -1420,7 +1433,16 @@ /* Open and lock the parent heap relation */ heapRel = table_open(heapRelationId, ShareUpdateExclusiveLock); - /* And the target index relation */ + /* + * Switch to the table owner's userid, so that any index functions are run + * as that user. Also lock down security-restricted operations and + * arrange to make GUC variable changes local to this command. + */ + GetUserIdAndSecContext(&save_userid, &save_sec_context); + SetUserIdAndSecContext(heapRel->rd_rel->relowner, + save_sec_context | SECURITY_RESTRICTED_OPERATION); + save_nestlevel = NewGUCNestLevel(); + indexRelation = index_open(indexRelationId, RowExclusiveLock); /* @@ -1436,6 +1458,12 @@ /* Now build the index */ index_build(heapRel, indexRelation, indexInfo, false, true); + /* Roll back any GUC changes executed by index functions */ + AtEOXact_GUC(false, save_nestlevel); + + /* Restore userid and security context */ + SetUserIdAndSecContext(save_userid, save_sec_context); + /* Close both the relations, but keep the locks */ table_close(heapRel, NoLock); index_close(indexRelation, NoLock); @@ -2036,6 +2064,7 @@ HeapTuple indexTuple; Form_pg_index indexForm; bool dirty = false; + bool marked_as_primary = false; pg_index = table_open(IndexRelationId, RowExclusiveLock); @@ -2049,6 +2078,7 @@ { indexForm->indisprimary = true; dirty = true; + marked_as_primary = true; } if (deferrable && indexForm->indimmediate) @@ -2061,6 +2091,15 @@ { CatalogTupleUpdate(pg_index, &indexTuple->t_self, indexTuple); + /* + * When we mark an existing index as primary, force a relcache + * flush on its parent table, so that all sessions will become + * aware that the table now has a primary key. This is important + * because it affects some replication behaviors. + */ + if (marked_as_primary) + CacheInvalidateRelcache(heapRelation); + InvokeObjectPostAlterHookArg(IndexRelationId, indexRelationId, 0, InvalidOid, is_internal); } @@ -3262,7 +3301,17 @@ /* Open and lock the parent heap relation */ heapRelation = table_open(heapId, ShareUpdateExclusiveLock); - /* And the target index relation */ + + /* + * Switch to the table owner's userid, so that any index functions are run + * as that user. Also lock down security-restricted operations and + * arrange to make GUC variable changes local to this command. + */ + GetUserIdAndSecContext(&save_userid, &save_sec_context); + SetUserIdAndSecContext(heapRelation->rd_rel->relowner, + save_sec_context | SECURITY_RESTRICTED_OPERATION); + save_nestlevel = NewGUCNestLevel(); + indexRelation = index_open(indexId, RowExclusiveLock); /* @@ -3276,16 +3325,6 @@ indexInfo->ii_Concurrent = true; /* - * Switch to the table owner's userid, so that any index functions are run - * as that user. Also lock down security-restricted operations and - * arrange to make GUC variable changes local to this command. - */ - GetUserIdAndSecContext(&save_userid, &save_sec_context); - SetUserIdAndSecContext(heapRelation->rd_rel->relowner, - save_sec_context | SECURITY_RESTRICTED_OPERATION); - save_nestlevel = NewGUCNestLevel(); - - /* * Scan the index and gather up all the TIDs into a tuplesort object. */ ivinfo.index = indexRelation; @@ -3488,6 +3527,9 @@ Relation iRel, heapRelation; Oid heapId; + Oid save_userid; + int save_sec_context; + int save_nestlevel; IndexInfo *indexInfo; volatile bool skipped_constraint = false; PGRUsage ru0; @@ -3502,6 +3544,16 @@ heapId = IndexGetRelation(indexId, false); heapRelation = table_open(heapId, ShareLock); + /* + * Switch to the table owner's userid, so that any index functions are run + * as that user. Also lock down security-restricted operations and + * arrange to make GUC variable changes local to this command. + */ + GetUserIdAndSecContext(&save_userid, &save_sec_context); + SetUserIdAndSecContext(heapRelation->rd_rel->relowner, + save_sec_context | SECURITY_RESTRICTED_OPERATION); + save_nestlevel = NewGUCNestLevel(); + if (progress) { pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX, @@ -3675,12 +3727,18 @@ errdetail_internal("%s", pg_rusage_show(&ru0)))); - if (progress) - pgstat_progress_end_command(); + /* Roll back any GUC changes executed by index functions */ + AtEOXact_GUC(false, save_nestlevel); + + /* Restore userid and security context */ + SetUserIdAndSecContext(save_userid, save_sec_context); /* Close rels, but keep locks */ index_close(iRel, NoLock); table_close(heapRelation, NoLock); + + if (progress) + pgstat_progress_end_command(); } /* diff -Nru postgresql-13-13.4/src/backend/catalog/namespace.c postgresql-13-13.7/src/backend/catalog/namespace.c --- postgresql-13-13.4/src/backend/catalog/namespace.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/namespace.c 2022-05-09 21:16:30.000000000 +0000 @@ -55,6 +55,7 @@ #include "utils/inval.h" #include "utils/lsyscache.h" #include "utils/memutils.h" +#include "utils/snapmgr.h" #include "utils/syscache.h" #include "utils/varlena.h" @@ -4247,9 +4248,11 @@ /* Need to ensure we have a usable transaction. */ AbortOutOfAnyTransaction(); StartTransactionCommand(); + PushActiveSnapshot(GetTransactionSnapshot()); RemoveTempRelations(myTempNamespace); + PopActiveSnapshot(); CommitTransactionCommand(); } } diff -Nru postgresql-13-13.4/src/backend/catalog/objectaddress.c postgresql-13-13.7/src/backend/catalog/objectaddress.c --- postgresql-13-13.4/src/backend/catalog/objectaddress.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/objectaddress.c 2022-05-09 21:16:30.000000000 +0000 @@ -2476,7 +2476,8 @@ break; case OBJECT_STATISTIC_EXT: if (!pg_statistics_object_ownercheck(address.objectId, roleid)) - aclcheck_error_type(ACLCHECK_NOT_OWNER, address.objectId); + aclcheck_error(ACLCHECK_NOT_OWNER, objtype, + NameListToString(castNode(List, object))); break; default: elog(ERROR, "unrecognized object type: %d", diff -Nru postgresql-13-13.4/src/backend/catalog/pg_class_d.h postgresql-13-13.7/src/backend/catalog/pg_class_d.h --- postgresql-13-13.4/src/backend/catalog/pg_class_d.h 2021-08-09 21:03:31.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/pg_class_d.h 2022-05-09 21:29:44.000000000 +0000 @@ -82,7 +82,7 @@ /* * an explicitly chosen candidate key's columns are used as replica identity. * Note this will still be set if the index has been dropped; in that case it - * has the same meaning as 'd'. + * has the same meaning as 'n'. */ #define REPLICA_IDENTITY_INDEX 'i' diff -Nru postgresql-13-13.4/src/backend/catalog/pg_depend.c postgresql-13-13.7/src/backend/catalog/pg_depend.c --- postgresql-13-13.4/src/backend/catalog/pg_depend.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/pg_depend.c 2022-05-09 21:16:30.000000000 +0000 @@ -133,6 +133,13 @@ * existed), so we must check for a pre-existing extension membership entry. * Passing false is a guarantee that the object is newly created, and so * could not already be a member of any extension. + * + * Note: isReplace = true is typically used when updating a object in + * CREATE OR REPLACE and similar commands. The net effect is that if an + * extension script uses such a command on a pre-existing free-standing + * object, the object will be absorbed into the extension. If the object + * is already a member of some other extension, the command will fail. + * This behavior is desirable for cases such as replacing a shell type. */ void recordDependencyOnCurrentExtension(const ObjectAddress *object, diff -Nru postgresql-13-13.4/src/backend/catalog/pg_operator.c postgresql-13-13.7/src/backend/catalog/pg_operator.c --- postgresql-13-13.4/src/backend/catalog/pg_operator.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/pg_operator.c 2022-05-09 21:16:30.000000000 +0000 @@ -268,7 +268,7 @@ CatalogTupleInsert(pg_operator_desc, tup); /* Add dependencies for the entry */ - makeOperatorDependencies(tup, false); + makeOperatorDependencies(tup, true, false); heap_freetuple(tup); @@ -546,7 +546,7 @@ } /* Add dependencies for the entry */ - address = makeOperatorDependencies(tup, isUpdate); + address = makeOperatorDependencies(tup, true, isUpdate); /* Post creation hook for new operator */ InvokeObjectPostCreateHook(OperatorRelationId, operatorObjectId, 0); @@ -766,11 +766,17 @@ * complete operator, a new shell operator, a just-updated shell, * or an operator that's being modified by ALTER OPERATOR). * + * makeExtensionDep should be true when making a new operator or + * replacing a shell, false for ALTER OPERATOR. Passing false + * will prevent any change in the operator's extension membership. + * * NB: the OidIsValid tests in this routine are necessary, in case * the given operator is a shell. */ ObjectAddress -makeOperatorDependencies(HeapTuple tuple, bool isUpdate) +makeOperatorDependencies(HeapTuple tuple, + bool makeExtensionDep, + bool isUpdate) { Form_pg_operator oper = (Form_pg_operator) GETSTRUCT(tuple); ObjectAddress myself, @@ -867,7 +873,8 @@ oper->oprowner); /* Dependency on extension */ - recordDependencyOnCurrentExtension(&myself, true); + if (makeExtensionDep) + recordDependencyOnCurrentExtension(&myself, true); return myself; } diff -Nru postgresql-13-13.4/src/backend/catalog/pg_publication.c postgresql-13-13.7/src/backend/catalog/pg_publication.c --- postgresql-13-13.4/src/backend/catalog/pg_publication.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/pg_publication.c 2022-05-09 21:16:30.000000000 +0000 @@ -31,6 +31,7 @@ #include "catalog/pg_publication.h" #include "catalog/pg_publication_rel.h" #include "catalog/pg_type.h" +#include "commands/publicationcmds.h" #include "funcapi.h" #include "miscadmin.h" #include "utils/array.h" @@ -105,6 +106,45 @@ } /* + * Filter out the partitions whose parent tables were also specified in + * the publication. + */ +static List * +filter_partitions(List *relids) +{ + List *result = NIL; + ListCell *lc; + ListCell *lc2; + + foreach(lc, relids) + { + bool skip = false; + List *ancestors = NIL; + Oid relid = lfirst_oid(lc); + + if (get_rel_relispartition(relid)) + ancestors = get_partition_ancestors(relid); + + foreach(lc2, ancestors) + { + Oid ancestor = lfirst_oid(lc2); + + /* Check if the parent table exists in the published table list. */ + if (list_member_oid(relids, ancestor)) + { + skip = true; + break; + } + } + + if (!skip) + result = lappend_oid(result, relid); + } + + return result; +} + +/* * Another variant of this, taking a Relation. */ bool @@ -136,6 +176,42 @@ PG_RETURN_BOOL(result); } +/* + * Gets the relations based on the publication partition option for a specified + * relation. + */ +List * +GetPubPartitionOptionRelations(List *result, PublicationPartOpt pub_partopt, + Oid relid) +{ + if (get_rel_relkind(relid) == RELKIND_PARTITIONED_TABLE && + pub_partopt != PUBLICATION_PART_ROOT) + { + List *all_parts = find_all_inheritors(relid, NoLock, + NULL); + + if (pub_partopt == PUBLICATION_PART_ALL) + result = list_concat(result, all_parts); + else if (pub_partopt == PUBLICATION_PART_LEAF) + { + ListCell *lc; + + foreach(lc, all_parts) + { + Oid partOid = lfirst_oid(lc); + + if (get_rel_relkind(partOid) != RELKIND_PARTITIONED_TABLE) + result = lappend_oid(result, partOid); + } + } + else + Assert(false); + } + else + result = lappend_oid(result, relid); + + return result; +} /* * Insert new publication / relation mapping. @@ -153,6 +229,7 @@ Publication *pub = GetPublication(pubid); ObjectAddress myself, referenced; + List *relids = NIL; rel = table_open(PublicationRelRelationId, RowExclusiveLock); @@ -208,8 +285,18 @@ /* Close the table. */ table_close(rel, RowExclusiveLock); - /* Invalidate relcache so that publication info is rebuilt. */ - CacheInvalidateRelcache(targetrel); + /* + * Invalidate relcache so that publication info is rebuilt. + * + * For the partitioned tables, we must invalidate all partitions contained + * in the respective partition hierarchies, not just the one explicitly + * mentioned in the publication. This is required because we implicitly + * publish the child tables when the parent table is published. + */ + relids = GetPubPartitionOptionRelations(relids, PUBLICATION_PART_ALL, + relid); + + InvalidatePublicationRels(relids); return myself; } @@ -241,7 +328,7 @@ /* * Gets list of relation oids for a publication. * - * This should only be used for normal publications, the FOR ALL TABLES + * This should only be used FOR TABLE publications, the FOR ALL TABLES * should use GetAllTablesPublicationRelations(). */ List * @@ -270,32 +357,8 @@ Form_pg_publication_rel pubrel; pubrel = (Form_pg_publication_rel) GETSTRUCT(tup); - - if (get_rel_relkind(pubrel->prrelid) == RELKIND_PARTITIONED_TABLE && - pub_partopt != PUBLICATION_PART_ROOT) - { - List *all_parts = find_all_inheritors(pubrel->prrelid, NoLock, - NULL); - - if (pub_partopt == PUBLICATION_PART_ALL) - result = list_concat(result, all_parts); - else if (pub_partopt == PUBLICATION_PART_LEAF) - { - ListCell *lc; - - foreach(lc, all_parts) - { - Oid partOid = lfirst_oid(lc); - - if (get_rel_relkind(partOid) != RELKIND_PARTITIONED_TABLE) - result = lappend_oid(result, partOid); - } - } - else - Assert(false); - } - else - result = lappend_oid(result, pubrel->prrelid); + result = GetPubPartitionOptionRelations(result, pub_partopt, + pubrel->prrelid); } systable_endscan(scan); @@ -533,10 +596,23 @@ if (publication->alltables) tables = GetAllTablesPublicationRelations(publication->pubviaroot); else + { tables = GetPublicationRelations(publication->oid, publication->pubviaroot ? PUBLICATION_PART_ROOT : PUBLICATION_PART_LEAF); + + /* + * If the publication publishes partition changes via their + * respective root partitioned tables, we must exclude partitions + * in favor of including the root partitioned tables. Otherwise, + * the function could return both the child and parent tables + * which could cause data of the child table to be + * double-published on the subscriber side. + */ + if (publication->pubviaroot) + tables = filter_partitions(tables); + } funcctx->user_fctx = (void *) tables; MemoryContextSwitchTo(oldcontext); diff -Nru postgresql-13-13.4/src/backend/catalog/pg_shdepend.c postgresql-13-13.7/src/backend/catalog/pg_shdepend.c --- postgresql-13-13.4/src/backend/catalog/pg_shdepend.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/pg_shdepend.c 2022-05-09 21:16:30.000000000 +0000 @@ -65,6 +65,7 @@ #include "storage/lmgr.h" #include "utils/acl.h" #include "utils/fmgroids.h" +#include "utils/memutils.h" #include "utils/syscache.h" typedef enum @@ -1197,6 +1198,12 @@ { char *objdesc = getObjectDescription(object); + /* + * An object being dropped concurrently doesn't need to be reported. + */ + if (objdesc == NULL) + return; + /* separate entries with a newline */ if (descs->len != 0) appendStringInfoChar(descs, '\n'); @@ -1502,6 +1509,8 @@ while ((tuple = systable_getnext(scan)) != NULL) { Form_pg_shdepend sdepForm = (Form_pg_shdepend) GETSTRUCT(tuple); + MemoryContext cxt, + oldcxt; /* * We only operate on shared objects and objects in the current @@ -1519,6 +1528,18 @@ if (sdepForm->deptype != SHARED_DEPENDENCY_OWNER) continue; + /* + * The various ALTER OWNER routines tend to leak memory in + * CurrentMemoryContext. That's not a problem when they're only + * called once per command; but in this usage where we might be + * touching many objects, it can amount to a serious memory leak. + * Fix that by running each call in a short-lived context. + */ + cxt = AllocSetContextCreate(CurrentMemoryContext, + "shdepReassignOwned", + ALLOCSET_DEFAULT_SIZES); + oldcxt = MemoryContextSwitchTo(cxt); + /* Issue the appropriate ALTER OWNER call */ switch (sdepForm->classid) { @@ -1607,6 +1628,11 @@ elog(ERROR, "unexpected classid %u", sdepForm->classid); break; } + + /* Clean up */ + MemoryContextSwitchTo(oldcxt); + MemoryContextDelete(cxt); + /* Make sure the next iteration will see my changes */ CommandCounterIncrement(); } diff -Nru postgresql-13-13.4/src/backend/catalog/pg_type.c postgresql-13-13.7/src/backend/catalog/pg_type.c --- postgresql-13-13.4/src/backend/catalog/pg_type.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/pg_type.c 2022-05-09 21:16:30.000000000 +0000 @@ -162,6 +162,7 @@ 0, false, false, + true, /* make extension dependency */ false); /* Post creation hook for new shell type */ @@ -497,6 +498,7 @@ relationKind, isImplicitArray, isDependentType, + true, /* make extension dependency */ rebuildDeps); /* Post creation hook for new type */ @@ -530,13 +532,17 @@ * isDependentType is true if this is an implicit array or relation rowtype; * that means it doesn't need its own dependencies on owner etc. * - * If rebuild is true, we remove existing dependencies and rebuild them - * from scratch. This is needed for ALTER TYPE, and also when replacing - * a shell type. We don't remove an existing extension dependency, though. - * (That means an extension can't absorb a shell type created in another - * extension, nor ALTER a type created by another extension. Also, if it - * replaces a free-standing shell type or ALTERs a free-standing type, - * that type will become a member of the extension.) + * We make an extension-membership dependency if we're in an extension + * script and makeExtensionDep is true (and isDependentType isn't true). + * makeExtensionDep should be true when creating a new type or replacing a + * shell type, but not for ALTER TYPE on an existing type. Passing false + * causes the type's extension membership to be left alone. + * + * rebuild should be true if this is a pre-existing type. We will remove + * existing dependencies and rebuild them from scratch. This is needed for + * ALTER TYPE, and also when replacing a shell type. We don't remove any + * existing extension dependency, though (hence, if makeExtensionDep is also + * true and the type belongs to some other extension, an error will occur). */ void GenerateTypeDependencies(HeapTuple typeTuple, @@ -546,6 +552,7 @@ char relationKind, /* only for relation rowtypes */ bool isImplicitArray, bool isDependentType, + bool makeExtensionDep, bool rebuild) { Form_pg_type typeForm = (Form_pg_type) GETSTRUCT(typeTuple); @@ -602,7 +609,8 @@ recordDependencyOnNewAcl(TypeRelationId, typeObjectId, 0, typeForm->typowner, typacl); - recordDependencyOnCurrentExtension(&myself, rebuild); + if (makeExtensionDep) + recordDependencyOnCurrentExtension(&myself, rebuild); } /* Normal dependencies on the I/O functions */ diff -Nru postgresql-13-13.4/src/backend/catalog/storage.c postgresql-13-13.7/src/backend/catalog/storage.c --- postgresql-13-13.4/src/backend/catalog/storage.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/storage.c 2022-05-09 21:16:30.000000000 +0000 @@ -326,6 +326,22 @@ RelationPreTruncate(rel); /* + * Make sure that a concurrent checkpoint can't complete while truncation + * is in progress. + * + * The truncation operation might drop buffers that the checkpoint + * otherwise would have flushed. If it does, then it's essential that + * the files actually get truncated on disk before the checkpoint record + * is written. Otherwise, if reply begins from that checkpoint, the + * to-be-truncated blocks might still exist on disk but have older + * contents than expected, which can cause replay to fail. It's OK for + * the blocks to not exist on disk at all, but not for them to have the + * wrong contents. + */ + Assert(!MyProc->delayChkptEnd); + MyProc->delayChkptEnd = true; + + /* * We WAL-log the truncation before actually truncating, which means * trouble if the truncation fails. If we then crash, the WAL replay * likely isn't going to succeed in the truncation either, and cause a @@ -363,13 +379,24 @@ XLogFlush(lsn); } - /* Do the real work to truncate relation forks */ + /* + * This will first remove any buffers from the buffer pool that should no + * longer exist after truncation is complete, and then truncate the + * corresponding files on disk. + */ smgrtruncate(rel->rd_smgr, forks, nforks, blocks); + /* We've done all the critical work, so checkpoints are OK now. */ + MyProc->delayChkptEnd = false; + /* * Update upper-level FSM pages to account for the truncation. This is * important because the just-truncated pages were likely marked as * all-free, and would be preferentially selected. + * + * NB: There's no point in delaying checkpoints until this is done. + * Because the FSM is not WAL-logged, we have to be prepared for the + * possibility of corruption after a crash anyway. */ if (need_fsm_vacuum) FreeSpaceMapVacuumRange(rel, nblocks, InvalidBlockNumber); diff -Nru postgresql-13-13.4/src/backend/catalog/toasting.c postgresql-13-13.7/src/backend/catalog/toasting.c --- postgresql-13-13.4/src/backend/catalog/toasting.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/catalog/toasting.c 2022-05-09 21:16:30.000000000 +0000 @@ -38,9 +38,11 @@ Oid binary_upgrade_next_toast_pg_type_oid = InvalidOid; static void CheckAndCreateToastTable(Oid relOid, Datum reloptions, - LOCKMODE lockmode, bool check); + LOCKMODE lockmode, bool check, + Oid OIDOldToast); static bool create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, - Datum reloptions, LOCKMODE lockmode, bool check); + Datum reloptions, LOCKMODE lockmode, bool check, + Oid OIDOldToast); static bool needs_toast_table(Relation rel); @@ -59,30 +61,34 @@ void AlterTableCreateToastTable(Oid relOid, Datum reloptions, LOCKMODE lockmode) { - CheckAndCreateToastTable(relOid, reloptions, lockmode, true); + CheckAndCreateToastTable(relOid, reloptions, lockmode, true, InvalidOid); } void -NewHeapCreateToastTable(Oid relOid, Datum reloptions, LOCKMODE lockmode) +NewHeapCreateToastTable(Oid relOid, Datum reloptions, LOCKMODE lockmode, + Oid OIDOldToast) { - CheckAndCreateToastTable(relOid, reloptions, lockmode, false); + CheckAndCreateToastTable(relOid, reloptions, lockmode, false, OIDOldToast); } void NewRelationCreateToastTable(Oid relOid, Datum reloptions) { - CheckAndCreateToastTable(relOid, reloptions, AccessExclusiveLock, false); + CheckAndCreateToastTable(relOid, reloptions, AccessExclusiveLock, false, + InvalidOid); } static void -CheckAndCreateToastTable(Oid relOid, Datum reloptions, LOCKMODE lockmode, bool check) +CheckAndCreateToastTable(Oid relOid, Datum reloptions, LOCKMODE lockmode, + bool check, Oid OIDOldToast) { Relation rel; rel = table_open(relOid, lockmode); /* create_toast_table does all the work */ - (void) create_toast_table(rel, InvalidOid, InvalidOid, reloptions, lockmode, check); + (void) create_toast_table(rel, InvalidOid, InvalidOid, reloptions, lockmode, + check, OIDOldToast); table_close(rel, NoLock); } @@ -108,7 +114,7 @@ /* create_toast_table does all the work */ if (!create_toast_table(rel, toastOid, toastIndexOid, (Datum) 0, - AccessExclusiveLock, false)) + AccessExclusiveLock, false, InvalidOid)) elog(ERROR, "\"%s\" does not require a toast table", relName); @@ -125,7 +131,8 @@ */ static bool create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, - Datum reloptions, LOCKMODE lockmode, bool check) + Datum reloptions, LOCKMODE lockmode, bool check, + Oid OIDOldToast) { Oid relOid = RelationGetRelid(rel); HeapTuple reltup; @@ -270,7 +277,7 @@ false, true, true, - InvalidOid, + OIDOldToast, NULL); Assert(toast_relid != InvalidOid); diff -Nru postgresql-13-13.4/src/backend/commands/analyze.c postgresql-13-13.7/src/backend/commands/analyze.c --- postgresql-13-13.4/src/backend/commands/analyze.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/analyze.c 2022-05-09 21:16:30.000000000 +0000 @@ -533,6 +533,7 @@ { MemoryContext col_context, old_context; + bool build_ext_stats; pgstat_progress_update_param(PROGRESS_ANALYZE_PHASE, PROGRESS_ANALYZE_PHASE_COMPUTE_STATS); @@ -597,12 +598,27 @@ } /* + * Should we build extended statistics for this relation? + * + * The extended statistics catalog does not include an inheritance + * flag, so we can't store statistics built both with and without + * data from child relations. We can store just one set of statistics + * per relation. For plain relations that's fine, but for inheritance + * trees we have to pick whether to store statistics for just the + * one relation or the whole tree. For plain inheritance we store + * the (!inh) version, mostly for backwards compatibility reasons. + * For partitioned tables that's pointless (the non-leaf tables are + * always empty), so we store stats representing the whole tree. + */ + build_ext_stats = (onerel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE) ? inh : (!inh); + + /* * Build extended statistics (if there are any). * * For now we only build extended statistics on individual relations, * not for relations representing inheritance trees. */ - if (!inh) + if (build_ext_stats) BuildRelationExtStatistics(onerel, totalrows, numrows, rows, attr_cnt, vacattrstats); } @@ -866,9 +882,6 @@ for (i = 0; i < attr_cnt; i++) { VacAttrStats *stats = thisdata->vacattrstats[i]; - AttributeOpts *aopt = - get_attribute_options(stats->attr->attrelid, - stats->attr->attnum); stats->exprvals = exprvals + i; stats->exprnulls = exprnulls + i; @@ -878,14 +891,6 @@ numindexrows, totalindexrows); - /* - * If the n_distinct option is specified, it overrides the - * above computation. For indices, we always use just - * n_distinct, not n_distinct_inherited. - */ - if (aopt != NULL && aopt->n_distinct != 0.0) - stats->stadistinct = aopt->n_distinct; - MemoryContextResetAndDeleteChildren(col_context); } } diff -Nru postgresql-13-13.4/src/backend/commands/async.c postgresql-13-13.7/src/backend/commands/async.c --- postgresql-13-13.4/src/backend/commands/async.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/async.c 2022-05-09 21:16:30.000000000 +0000 @@ -68,17 +68,27 @@ * CommitTransaction() which will then do the actual transaction commit. * * After commit we are called another time (AtCommit_Notify()). Here we - * make the actual updates to the effective listen state (listenChannels). - * - * Finally, after we are out of the transaction altogether, we check if - * we need to signal listening backends. In SignalBackends() we scan the - * list of listening backends and send a PROCSIG_NOTIFY_INTERRUPT signal - * to every listening backend (we don't know which backend is listening on - * which channel so we must signal them all). We can exclude backends that - * are already up to date, though, and we can also exclude backends that - * are in other databases (unless they are way behind and should be kicked - * to make them advance their pointers). We don't bother with a - * self-signal either, but just process the queue directly. + * make any actual updates to the effective listen state (listenChannels). + * Then we signal any backends that may be interested in our messages + * (including our own backend, if listening). This is done by + * SignalBackends(), which scans the list of listening backends and sends a + * PROCSIG_NOTIFY_INTERRUPT signal to every listening backend (we don't + * know which backend is listening on which channel so we must signal them + * all). We can exclude backends that are already up to date, though, and + * we can also exclude backends that are in other databases (unless they + * are way behind and should be kicked to make them advance their + * pointers). + * + * Finally, after we are out of the transaction altogether and about to go + * idle, we scan the queue for messages that need to be sent to our + * frontend (which might be notifies from other backends, or self-notifies + * from our own). This step is not part of the CommitTransaction sequence + * for two important reasons. First, we could get errors while sending + * data to our frontend, and it's really bad for errors to happen in + * post-commit cleanup. Second, in cases where a procedure issues commits + * within a single frontend command, we don't want to send notifies to our + * frontend until the command is done; but notifies to other backends + * should go out immediately after each commit. * * 5. Upon receipt of a PROCSIG_NOTIFY_INTERRUPT signal, the signal handler * sets the process's latch, which triggers the event to be processed @@ -429,11 +439,8 @@ /* True if we're currently registered as a listener in asyncQueueControl */ static bool amRegisteredListener = false; -/* has this backend sent notifications in the current transaction? */ -static bool backendHasSentNotifications = false; - /* have we advanced to a page that's a multiple of QUEUE_CLEANUP_DELAY? */ -static bool backendTryAdvanceTail = false; +static bool tryAdvanceTail = false; /* GUC parameter */ bool Trace_notify = false; @@ -462,7 +469,7 @@ char *page_buffer, Snapshot snapshot); static void asyncQueueAdvanceTail(void); -static void ProcessIncomingNotify(void); +static void ProcessIncomingNotify(bool flush); static bool AsyncExistsPendingNotify(Notification *n); static void AddEventToPendingNotifies(Notification *n); static uint32 notification_hash(const void *key, Size keysize); @@ -954,8 +961,6 @@ AccessExclusiveLock); /* Now push the notifications into the queue */ - backendHasSentNotifications = true; - nextNotify = list_head(pendingNotifies->events); while (nextNotify != NULL) { @@ -980,6 +985,8 @@ nextNotify = asyncQueueAddEntries(nextNotify); LWLockRelease(NotifyQueueLock); } + + /* Note that we don't clear pendingNotifies; AtCommit_Notify will. */ } } @@ -989,6 +996,11 @@ * This is called at transaction commit, after committing to clog. * * Update listenChannels and clear transaction-local state. + * + * If we issued any notifications in the transaction, send signals to + * listening backends (possibly including ourselves) to process them. + * Also, if we filled enough queue pages with new notifies, try to + * advance the queue tail pointer. */ void AtCommit_Notify(void) @@ -1031,6 +1043,29 @@ if (amRegisteredListener && listenChannels == NIL) asyncQueueUnregister(); + /* + * Send signals to listening backends. We need do this only if there are + * pending notifies, which were previously added to the shared queue by + * PreCommit_Notify(). + */ + if (pendingNotifies != NULL) + SignalBackends(); + + /* + * If it's time to try to advance the global tail pointer, do that. + * + * (It might seem odd to do this in the sender, when more than likely the + * listeners won't yet have read the messages we just sent. However, + * there's less contention if only the sender does it, and there is little + * need for urgency in advancing the global tail. So this typically will + * be clearing out messages that were sent some time ago.) + */ + if (tryAdvanceTail) + { + tryAdvanceTail = false; + asyncQueueAdvanceTail(); + } + /* And clean up */ ClearPendingActionsAndNotifies(); } @@ -1204,82 +1239,17 @@ } /* - * ProcessCompletedNotifies --- send out signals and self-notifies - * - * This is called from postgres.c just before going idle at the completion - * of a transaction. If we issued any notifications in the just-completed - * transaction, send signals to other backends to process them, and also - * process the queue ourselves to send messages to our own frontend. - * Also, if we filled enough queue pages with new notifies, try to advance - * the queue tail pointer. - * - * The reason that this is not done in AtCommit_Notify is that there is - * a nonzero chance of errors here (for example, encoding conversion errors - * while trying to format messages to our frontend). An error during - * AtCommit_Notify would be a PANIC condition. The timing is also arranged - * to ensure that a transaction's self-notifies are delivered to the frontend - * before it gets the terminating ReadyForQuery message. - * - * Note that we send signals and process the queue even if the transaction - * eventually aborted. This is because we need to clean out whatever got - * added to the queue. + * ProcessCompletedNotifies --- nowadays this does nothing * - * NOTE: we are outside of any transaction here. + * This routine used to send signals and handle self-notifies, + * but that functionality has been moved elsewhere. + * We'd delete it entirely, except that the documentation used to instruct + * background-worker authors to call it. To avoid an ABI break in stable + * branches, keep it as a no-op routine. */ void ProcessCompletedNotifies(void) { - MemoryContext caller_context; - - /* Nothing to do if we didn't send any notifications */ - if (!backendHasSentNotifications) - return; - - /* - * We reset the flag immediately; otherwise, if any sort of error occurs - * below, we'd be locked up in an infinite loop, because control will come - * right back here after error cleanup. - */ - backendHasSentNotifications = false; - - /* - * We must preserve the caller's memory context (probably MessageContext) - * across the transaction we do here. - */ - caller_context = CurrentMemoryContext; - - if (Trace_notify) - elog(DEBUG1, "ProcessCompletedNotifies"); - - /* - * We must run asyncQueueReadAllNotifications inside a transaction, else - * bad things happen if it gets an error. - */ - StartTransactionCommand(); - - /* Send signals to other backends */ - SignalBackends(); - - if (listenChannels != NIL) - { - /* Read the queue ourselves, and send relevant stuff to the frontend */ - asyncQueueReadAllNotifications(); - } - - /* - * If it's time to try to advance the global tail pointer, do that. - */ - if (backendTryAdvanceTail) - { - backendTryAdvanceTail = false; - asyncQueueAdvanceTail(); - } - - CommitTransactionCommand(); - - MemoryContextSwitchTo(caller_context); - - /* We don't need pq_flush() here since postgres.c will do one shortly */ } /* @@ -1547,7 +1517,7 @@ * pointer (we don't want to actually do that right here). */ if (QUEUE_POS_PAGE(queue_head) % QUEUE_CLEANUP_DELAY == 0) - backendTryAdvanceTail = true; + tryAdvanceTail = true; /* And exit the loop */ break; @@ -1662,8 +1632,6 @@ /* * Send signals to listening backends. * - * We never signal our own process; that should be handled by our caller. - * * Normally we signal only backends in our own database, since only those * backends could be interested in notifies we send. However, if there's * notify traffic in our database but no traffic in another database that @@ -1672,6 +1640,9 @@ * advance their queue position pointers, allowing the global tail to advance. * * Since we know the BackendId and the Pid the signaling is quite cheap. + * + * This is called during CommitTransaction(), so it's important for it + * to have very low probability of failure. */ static void SignalBackends(void) @@ -1686,8 +1657,7 @@ * list of target PIDs. * * XXX in principle these pallocs could fail, which would be bad. Maybe - * preallocate the arrays? But in practice this is only run in trivial - * transactions, so there should surely be space available. + * preallocate the arrays? They're not that large, though. */ pids = (int32 *) palloc(MaxBackends * sizeof(int32)); ids = (BackendId *) palloc(MaxBackends * sizeof(BackendId)); @@ -1700,8 +1670,6 @@ QueuePosition pos; Assert(pid != InvalidPid); - if (pid == MyProcPid) - continue; /* never signal self */ pos = QUEUE_BACKEND_POS(i); if (QUEUE_BACKEND_DBOID(i) == MyDatabaseId) { @@ -1735,6 +1703,16 @@ int32 pid = pids[i]; /* + * If we are signaling our own process, no need to involve the kernel; + * just set the flag directly. + */ + if (pid == MyProcPid) + { + notifyInterruptPending = true; + continue; + } + + /* * Note: assuming things aren't broken, a signal failure here could * only occur if the target backend exited since we released * NotifyQueueLock; which is unlikely but certainly possible. So we @@ -1914,15 +1892,20 @@ * via the process's latch, and this routine will get called. * If we are truly idle (ie, *not* inside a transaction block), * process the incoming notifies. + * + * If "flush" is true, force any frontend messages out immediately. + * This can be false when being called at the end of a frontend command, + * since we'll flush after sending ReadyForQuery. */ void -ProcessNotifyInterrupt(void) +ProcessNotifyInterrupt(bool flush) { if (IsTransactionOrTransactionBlock()) return; /* not really idle */ + /* Loop in case another signal arrives while sending messages */ while (notifyInterruptPending) - ProcessIncomingNotify(); + ProcessIncomingNotify(flush); } @@ -2185,6 +2168,9 @@ /* * Advance the shared queue tail variable to the minimum of all the * per-backend tail pointers. Truncate pg_notify space if possible. + * + * This is (usually) called during CommitTransaction(), so it's important for + * it to have very low probability of failure. */ static void asyncQueueAdvanceTail(void) @@ -2258,17 +2244,16 @@ /* * ProcessIncomingNotify * - * Deal with arriving NOTIFYs from other backends as soon as it's safe to - * do so. This used to be called from the PROCSIG_NOTIFY_INTERRUPT - * signal handler, but isn't anymore. + * Scan the queue for arriving notifications and report them to the front + * end. The notifications might be from other sessions, or our own; + * there's no need to distinguish here. * - * Scan the queue for arriving notifications and report them to my front - * end. + * If "flush" is true, force any frontend messages out immediately. * * NOTE: since we are outside any transaction, we must create our own. */ static void -ProcessIncomingNotify(void) +ProcessIncomingNotify(bool flush) { /* We *must* reset the flag */ notifyInterruptPending = false; @@ -2293,9 +2278,11 @@ CommitTransactionCommand(); /* - * Must flush the notify messages to ensure frontend gets them promptly. + * If this isn't an end-of-command case, we must flush the notify messages + * to ensure frontend gets them promptly. */ - pq_flush(); + if (flush) + pq_flush(); set_ps_display("idle"); @@ -2321,9 +2308,9 @@ pq_endmessage(&buf); /* - * NOTE: we do not do pq_flush() here. For a self-notify, it will - * happen at the end of the transaction, and for incoming notifies - * ProcessIncomingNotify will do it after finding all the notifies. + * NOTE: we do not do pq_flush() here. Some level of caller will + * handle it later, allowing this message to be combined into a packet + * with other ones. */ } else diff -Nru postgresql-13-13.4/src/backend/commands/cluster.c postgresql-13-13.7/src/backend/commands/cluster.c --- postgresql-13-13.4/src/backend/commands/cluster.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/cluster.c 2022-05-09 21:16:30.000000000 +0000 @@ -253,6 +253,9 @@ cluster_rel(Oid tableOid, Oid indexOid, int options) { Relation OldHeap; + Oid save_userid; + int save_sec_context; + int save_nestlevel; bool verbose = ((options & CLUOPT_VERBOSE) != 0); bool recheck = ((options & CLUOPT_RECHECK) != 0); @@ -283,6 +286,16 @@ } /* + * Switch to the table owner's userid, so that any index functions are run + * as that user. Also lock down security-restricted operations and + * arrange to make GUC variable changes local to this command. + */ + GetUserIdAndSecContext(&save_userid, &save_sec_context); + SetUserIdAndSecContext(OldHeap->rd_rel->relowner, + save_sec_context | SECURITY_RESTRICTED_OPERATION); + save_nestlevel = NewGUCNestLevel(); + + /* * Since we may open a new transaction for each relation, we have to check * that the relation still is what we think it is. * @@ -293,11 +306,10 @@ if (recheck) { /* Check that the user still owns the relation */ - if (!pg_class_ownercheck(tableOid, GetUserId())) + if (!pg_class_ownercheck(tableOid, save_userid)) { relation_close(OldHeap, AccessExclusiveLock); - pgstat_progress_end_command(); - return; + goto out; } /* @@ -311,8 +323,7 @@ if (RELATION_IS_OTHER_TEMP(OldHeap)) { relation_close(OldHeap, AccessExclusiveLock); - pgstat_progress_end_command(); - return; + goto out; } if (OidIsValid(indexOid)) @@ -323,8 +334,7 @@ if (!SearchSysCacheExists1(RELOID, ObjectIdGetDatum(indexOid))) { relation_close(OldHeap, AccessExclusiveLock); - pgstat_progress_end_command(); - return; + goto out; } /* @@ -333,8 +343,7 @@ if (!get_index_isclustered(indexOid)) { relation_close(OldHeap, AccessExclusiveLock); - pgstat_progress_end_command(); - return; + goto out; } } } @@ -387,8 +396,7 @@ !RelationIsPopulated(OldHeap)) { relation_close(OldHeap, AccessExclusiveLock); - pgstat_progress_end_command(); - return; + goto out; } /* @@ -404,6 +412,13 @@ /* NB: rebuild_relation does table_close() on OldHeap */ +out: + /* Roll back any GUC changes executed by index functions */ + AtEOXact_GUC(false, save_nestlevel); + + /* Restore userid and security context */ + SetUserIdAndSecContext(save_userid, save_sec_context); + pgstat_progress_end_command(); } @@ -709,7 +724,7 @@ if (isNull) reloptions = (Datum) 0; - NewHeapCreateToastTable(OIDNewHeap, reloptions, lockmode); + NewHeapCreateToastTable(OIDNewHeap, reloptions, lockmode, toastid); ReleaseSysCache(tuple); } @@ -1487,6 +1502,14 @@ RenameRelationInternal(toastidx, NewToastName, true, true); + + /* + * Reset the relrewrite for the toast. The command-counter + * increment is required here as we are about to update + * the tuple that is updated as part of RenameRelationInternal. + */ + CommandCounterIncrement(); + ResetRelRewrite(newrel->rd_rel->reltoastrelid); } relation_close(newrel, NoLock); } diff -Nru postgresql-13-13.4/src/backend/commands/collationcmds.c postgresql-13-13.7/src/backend/commands/collationcmds.c --- postgresql-13-13.4/src/backend/commands/collationcmds.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/collationcmds.c 2022-05-09 21:16:30.000000000 +0000 @@ -207,7 +207,26 @@ if (!fromEl) { if (collprovider == COLLPROVIDER_ICU) + { +#ifdef USE_ICU + /* + * We could create ICU collations with collencoding == database + * encoding, but it seems better to use -1 so that it matches the + * way initdb would create ICU collations. However, only allow + * one to be created when the current database's encoding is + * supported. Otherwise the collation is useless, plus we get + * surprising behaviors like not being able to drop the collation. + * + * Skip this test when !USE_ICU, because the error we want to + * throw for that isn't thrown till later. + */ + if (!is_encoding_supported_by_icu(GetDatabaseEncoding())) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("current database's encoding is not supported with this provider"))); +#endif collencoding = -1; + } else { collencoding = GetDatabaseEncoding(); diff -Nru postgresql-13-13.4/src/backend/commands/copy.c postgresql-13-13.7/src/backend/commands/copy.c --- postgresql-13-13.4/src/backend/commands/copy.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/copy.c 2022-05-09 21:16:30.000000000 +0000 @@ -2444,7 +2444,7 @@ /* * Print error context information correctly, if one of the operations - * below fail. + * below fails. */ cstate->line_buf_valid = false; save_cur_lineno = cstate->cur_lineno; diff -Nru postgresql-13-13.4/src/backend/commands/explain.c postgresql-13-13.7/src/backend/commands/explain.c --- postgresql-13-13.4/src/backend/commands/explain.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/explain.c 2022-05-09 21:16:30.000000000 +0000 @@ -1706,7 +1706,7 @@ case T_IndexOnlyScan: show_scan_qual(((IndexOnlyScan *) plan)->indexqual, "Index Cond", planstate, ancestors, es); - if (((IndexOnlyScan *) plan)->indexqual) + if (((IndexOnlyScan *) plan)->recheckqual) show_instrumentation_count("Rows Removed by Index Recheck", 2, planstate, es); show_scan_qual(((IndexOnlyScan *) plan)->indexorderby, diff -Nru postgresql-13-13.4/src/backend/commands/functioncmds.c postgresql-13-13.7/src/backend/commands/functioncmds.c --- postgresql-13-13.4/src/backend/commands/functioncmds.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/functioncmds.c 2022-05-09 21:16:30.000000000 +0000 @@ -70,6 +70,7 @@ #include "utils/lsyscache.h" #include "utils/memutils.h" #include "utils/rel.h" +#include "utils/snapmgr.h" #include "utils/syscache.h" #include "utils/typcache.h" @@ -1353,6 +1354,8 @@ procForm->prosupport = newsupport; } + if (parallel_item) + procForm->proparallel = interpret_func_parallel(parallel_item); if (set_items) { Datum datum; @@ -1387,8 +1390,7 @@ tup = heap_modify_tuple(tup, RelationGetDescr(rel), repl_val, repl_null, repl_repl); } - if (parallel_item) - procForm->proparallel = interpret_func_parallel(parallel_item); + /* DO NOT put more touches of procForm below here; it's now dangling. */ /* Do the update */ CatalogTupleUpdate(rel, &tup->t_self, tup); @@ -2211,6 +2213,16 @@ estate->es_param_list_info = params; econtext = CreateExprContext(estate); + /* + * If we're called in non-atomic context, we also have to ensure that the + * argument expressions run with an up-to-date snapshot. Our caller will + * have provided a current snapshot in atomic contexts, but not in + * non-atomic contexts, because the possibility of a COMMIT/ROLLBACK + * destroying the snapshot makes higher-level management too complicated. + */ + if (!atomic) + PushActiveSnapshot(GetTransactionSnapshot()); + i = 0; foreach(lc, fexpr->args) { @@ -2228,20 +2240,23 @@ i++; } + /* Get rid of temporary snapshot for arguments, if we made one */ + if (!atomic) + PopActiveSnapshot(); + + /* Here we actually call the procedure */ pgstat_init_function_usage(fcinfo, &fcusage); retval = FunctionCallInvoke(fcinfo); pgstat_end_function_usage(&fcusage, true); + /* Handle the procedure's outputs */ if (fexpr->funcresulttype == VOIDOID) { /* do nothing */ } else if (fexpr->funcresulttype == RECORDOID) { - /* - * send tuple to client - */ - + /* send tuple to client */ HeapTupleHeader td; Oid tupType; int32 tupTypmod; diff -Nru postgresql-13-13.4/src/backend/commands/indexcmds.c postgresql-13-13.7/src/backend/commands/indexcmds.c --- postgresql-13-13.4/src/backend/commands/indexcmds.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/indexcmds.c 2022-05-09 21:16:30.000000000 +0000 @@ -519,21 +519,22 @@ LOCKTAG heaplocktag; LOCKMODE lockmode; Snapshot snapshot; - int save_nestlevel = -1; + Oid root_save_userid; + int root_save_sec_context; + int root_save_nestlevel; int i; + root_save_nestlevel = NewGUCNestLevel(); + /* * Some callers need us to run with an empty default_tablespace; this is a * necessary hack to be able to reproduce catalog state accurately when * recreating indexes after table-rewriting ALTER TABLE. */ if (stmt->reset_default_tblspc) - { - save_nestlevel = NewGUCNestLevel(); (void) set_config_option("default_tablespace", "", PGC_USERSET, PGC_S_SESSION, GUC_ACTION_SAVE, true, 0, false); - } /* * Force non-concurrent build on temporary relations, even if CONCURRENTLY @@ -612,6 +613,15 @@ lockmode = concurrent ? ShareUpdateExclusiveLock : ShareLock; rel = table_open(relationId, lockmode); + /* + * Switch to the table owner's userid, so that any index functions are run + * as that user. Also lock down security-restricted operations. We + * already arranged to make GUC variable changes local to this command. + */ + GetUserIdAndSecContext(&root_save_userid, &root_save_sec_context); + SetUserIdAndSecContext(rel->rd_rel->relowner, + root_save_sec_context | SECURITY_RESTRICTED_OPERATION); + namespaceId = RelationGetNamespace(rel); /* Ensure that it makes sense to index this kind of relation */ @@ -697,7 +707,7 @@ { AclResult aclresult; - aclresult = pg_namespace_aclcheck(namespaceId, GetUserId(), + aclresult = pg_namespace_aclcheck(namespaceId, root_save_userid, ACL_CREATE); if (aclresult != ACLCHECK_OK) aclcheck_error(aclresult, OBJECT_SCHEMA, @@ -729,7 +739,7 @@ { AclResult aclresult; - aclresult = pg_tablespace_aclcheck(tablespaceId, GetUserId(), + aclresult = pg_tablespace_aclcheck(tablespaceId, root_save_userid, ACL_CREATE); if (aclresult != ACLCHECK_OK) aclcheck_error(aclresult, OBJECT_TABLESPACE, @@ -1115,15 +1125,17 @@ ObjectAddressSet(address, RelationRelationId, indexRelationId); - /* - * Revert to original default_tablespace. Must do this before any return - * from this function, but after index_create, so this is a good time. - */ - if (save_nestlevel >= 0) - AtEOXact_GUC(true, save_nestlevel); - if (!OidIsValid(indexRelationId)) { + /* + * Roll back any GUC changes executed by index functions. Also revert + * to original default_tablespace if we changed it above. + */ + AtEOXact_GUC(false, root_save_nestlevel); + + /* Restore userid and security context */ + SetUserIdAndSecContext(root_save_userid, root_save_sec_context); + table_close(rel, NoLock); /* If this is the top-level index, we're done */ @@ -1133,6 +1145,17 @@ return address; } + /* + * Roll back any GUC changes executed by index functions, and keep + * subsequent changes local to this command. It's barely possible that + * some index function changed a behavior-affecting GUC, e.g. xmloption, + * that affects subsequent steps. This improves bug-compatibility with + * older PostgreSQL versions. They did the AtEOXact_GUC() here for the + * purpose of clearing the above default_tablespace change. + */ + AtEOXact_GUC(false, root_save_nestlevel); + root_save_nestlevel = NewGUCNestLevel(); + /* Add any requested comment */ if (stmt->idxcomment != NULL) CreateComments(indexRelationId, RelationRelationId, 0, @@ -1179,6 +1202,9 @@ { Oid childRelid = part_oids[i]; Relation childrel; + Oid child_save_userid; + int child_save_sec_context; + int child_save_nestlevel; List *childidxs; ListCell *cell; AttrMap *attmap; @@ -1186,6 +1212,12 @@ childrel = table_open(childRelid, lockmode); + GetUserIdAndSecContext(&child_save_userid, + &child_save_sec_context); + SetUserIdAndSecContext(childrel->rd_rel->relowner, + child_save_sec_context | SECURITY_RESTRICTED_OPERATION); + child_save_nestlevel = NewGUCNestLevel(); + /* * Don't try to create indexes on foreign tables, though. Skip * those if a regular index, or fail if trying to create a @@ -1201,6 +1233,9 @@ errdetail("Table \"%s\" contains partitions that are foreign tables.", RelationGetRelationName(rel)))); + AtEOXact_GUC(false, child_save_nestlevel); + SetUserIdAndSecContext(child_save_userid, + child_save_sec_context); table_close(childrel, lockmode); continue; } @@ -1272,6 +1307,9 @@ } list_free(childidxs); + AtEOXact_GUC(false, child_save_nestlevel); + SetUserIdAndSecContext(child_save_userid, + child_save_sec_context); table_close(childrel, NoLock); /* @@ -1328,12 +1366,21 @@ if (found_whole_row) elog(ERROR, "cannot convert whole-row table reference"); + /* + * Recurse as the starting user ID. Callee will use that + * for permission checks, then switch again. + */ + Assert(GetUserId() == child_save_userid); + SetUserIdAndSecContext(root_save_userid, + root_save_sec_context); DefineIndex(childRelid, childStmt, InvalidOid, /* no predefined OID */ indexRelationId, /* this is our child */ createdConstraintId, is_alter_table, check_rights, check_not_in_use, skip_build, quiet); + SetUserIdAndSecContext(child_save_userid, + child_save_sec_context); } pgstat_progress_update_param(PROGRESS_CREATEIDX_PARTITIONS_DONE, @@ -1370,12 +1417,17 @@ * Indexes on partitioned tables are not themselves built, so we're * done here. */ + AtEOXact_GUC(false, root_save_nestlevel); + SetUserIdAndSecContext(root_save_userid, root_save_sec_context); table_close(rel, NoLock); if (!OidIsValid(parentIndexId)) pgstat_progress_end_command(); return address; } + AtEOXact_GUC(false, root_save_nestlevel); + SetUserIdAndSecContext(root_save_userid, root_save_sec_context); + if (!concurrent) { /* Close the heap and we're done, in the non-concurrent case */ @@ -3075,6 +3127,9 @@ Oid newIndexId; Relation indexRel; Relation heapRel; + Oid save_userid; + int save_sec_context; + int save_nestlevel; Relation newIndexRel; LockRelId *lockrelid; @@ -3082,6 +3137,16 @@ heapRel = table_open(indexRel->rd_index->indrelid, ShareUpdateExclusiveLock); + /* + * Switch to the table owner's userid, so that any index functions are + * run as that user. Also lock down security-restricted operations + * and arrange to make GUC variable changes local to this command. + */ + GetUserIdAndSecContext(&save_userid, &save_sec_context); + SetUserIdAndSecContext(heapRel->rd_rel->relowner, + save_sec_context | SECURITY_RESTRICTED_OPERATION); + save_nestlevel = NewGUCNestLevel(); + /* This function shouldn't be called for temporary relations. */ if (indexRel->rd_rel->relpersistence == RELPERSISTENCE_TEMP) elog(ERROR, "cannot reindex a temporary table concurrently"); @@ -3136,6 +3201,13 @@ index_close(indexRel, NoLock); index_close(newIndexRel, NoLock); + + /* Roll back any GUC changes executed by index functions */ + AtEOXact_GUC(false, save_nestlevel); + + /* Restore userid and security context */ + SetUserIdAndSecContext(save_userid, save_sec_context); + table_close(heapRel, NoLock); } diff -Nru postgresql-13-13.4/src/backend/commands/matview.c postgresql-13-13.7/src/backend/commands/matview.c --- postgresql-13-13.4/src/backend/commands/matview.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/matview.c 2022-05-09 21:16:30.000000000 +0000 @@ -167,6 +167,17 @@ lockmode, 0, RangeVarCallbackOwnsTable, NULL); matviewRel = table_open(matviewOid, NoLock); + relowner = matviewRel->rd_rel->relowner; + + /* + * Switch to the owner's userid, so that any functions are run as that + * user. Also lock down security-restricted operations and arrange to + * make GUC variable changes local to this command. + */ + GetUserIdAndSecContext(&save_userid, &save_sec_context); + SetUserIdAndSecContext(relowner, + save_sec_context | SECURITY_RESTRICTED_OPERATION); + save_nestlevel = NewGUCNestLevel(); /* Make sure it is a materialized view. */ if (matviewRel->rd_rel->relkind != RELKIND_MATVIEW) @@ -185,7 +196,8 @@ if (concurrent && stmt->skipData) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("CONCURRENTLY and WITH NO DATA options cannot be used together"))); + errmsg("%s and %s options cannot be used together", + "CONCURRENTLY", "WITH NO DATA"))); /* * Check that everything is correct for a refresh. Problems at this point @@ -268,19 +280,6 @@ */ SetMatViewPopulatedState(matviewRel, !stmt->skipData); - relowner = matviewRel->rd_rel->relowner; - - /* - * Switch to the owner's userid, so that any functions are run as that - * user. Also arrange to make GUC variable changes local to this command. - * Don't lock it down too tight to create a temporary table just yet. We - * will switch modes when we are about to execute user code. - */ - GetUserIdAndSecContext(&save_userid, &save_sec_context); - SetUserIdAndSecContext(relowner, - save_sec_context | SECURITY_LOCAL_USERID_CHANGE); - save_nestlevel = NewGUCNestLevel(); - /* Concurrent refresh builds new data in temp tablespace, and does diff. */ if (concurrent) { @@ -303,12 +302,6 @@ LockRelationOid(OIDNewHeap, AccessExclusiveLock); dest = CreateTransientRelDestReceiver(OIDNewHeap); - /* - * Now lock down security-restricted operations. - */ - SetUserIdAndSecContext(relowner, - save_sec_context | SECURITY_RESTRICTED_OPERATION); - /* Generate the data, if wanted. */ if (!stmt->skipData) processed = refresh_matview_datafill(dest, dataQuery, queryString); diff -Nru postgresql-13-13.4/src/backend/commands/operatorcmds.c postgresql-13-13.7/src/backend/commands/operatorcmds.c --- postgresql-13-13.4/src/backend/commands/operatorcmds.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/operatorcmds.c 2022-05-09 21:16:30.000000000 +0000 @@ -530,7 +530,7 @@ CatalogTupleUpdate(catalog, &tup->t_self, tup); - address = makeOperatorDependencies(tup, true); + address = makeOperatorDependencies(tup, false, true); InvokeObjectPostAlterHook(OperatorRelationId, oprId, 0); diff -Nru postgresql-13-13.4/src/backend/commands/portalcmds.c postgresql-13-13.7/src/backend/commands/portalcmds.c --- postgresql-13-13.4/src/backend/commands/portalcmds.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/portalcmds.c 2022-05-09 21:16:30.000000000 +0000 @@ -364,6 +364,8 @@ savePortalContext = PortalContext; PG_TRY(); { + ScanDirection direction = ForwardScanDirection; + ActivePortal = portal; if (portal->resowner) CurrentResourceOwner = portal->resowner; @@ -379,6 +381,15 @@ * can be processed. Otherwise, store only the not-yet-fetched rows. * (The latter is not only more efficient, but avoids semantic * problems if the query's output isn't stable.) + * + * In the no-scroll case, tuple indexes in the tuplestore will not + * match the cursor's nominal position (portalPos). Currently this + * causes no difficulty because we only navigate in the tuplestore by + * relative position, except for the tuplestore_skiptuples call below + * and the tuplestore_rescan call in DoPortalRewind, both of which are + * disabled for no-scroll cursors. But someday we might need to track + * the offset between the holdStore and the cursor's nominal position + * explicitly. */ if (portal->cursorOptions & CURSOR_OPT_SCROLL) { @@ -386,10 +397,16 @@ } else { - /* We must reset the cursor state as though at start of query */ - portal->atStart = true; - portal->atEnd = false; - portal->portalPos = 0; + /* + * If we already reached end-of-query, set the direction to + * NoMovement to avoid trying to fetch any tuples. (This check + * exists because not all plan node types are robust about being + * called again if they've already returned NULL once.) We'll + * still set up an empty tuplestore, though, to keep this from + * being a special case later. + */ + if (portal->atEnd) + direction = NoMovementScanDirection; } /* @@ -404,7 +421,7 @@ true); /* Fetch the result set into the tuplestore */ - ExecutorRun(queryDesc, ForwardScanDirection, 0L, false); + ExecutorRun(queryDesc, direction, 0L, false); queryDesc->dest->rDestroy(queryDesc->dest); queryDesc->dest = NULL; @@ -435,10 +452,17 @@ { tuplestore_rescan(portal->holdStore); - if (!tuplestore_skiptuples(portal->holdStore, - portal->portalPos, - true)) - elog(ERROR, "unexpected end of tuple stream"); + /* + * In the no-scroll case, the start of the tuplestore is exactly + * where we want to be, so no repositioning is wanted. + */ + if (portal->cursorOptions & CURSOR_OPT_SCROLL) + { + if (!tuplestore_skiptuples(portal->holdStore, + portal->portalPos, + true)) + elog(ERROR, "unexpected end of tuple stream"); + } } } PG_CATCH(); diff -Nru postgresql-13-13.4/src/backend/commands/publicationcmds.c postgresql-13-13.7/src/backend/commands/publicationcmds.c --- postgresql-13-13.4/src/backend/commands/publicationcmds.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/publicationcmds.c 2022-05-09 21:16:30.000000000 +0000 @@ -45,9 +45,6 @@ #include "utils/syscache.h" #include "utils/varlena.h" -/* Same as MAXNUMMESSAGES in sinvaladt.c */ -#define MAX_RELCACHE_INVAL_MSGS 4096 - static List *OpenTableList(List *tables); static void CloseTableList(List *rels); static void PublicationAddTables(Oid pubid, List *rels, bool if_not_exists, @@ -236,6 +233,11 @@ PublicationAddTables(puboid, rels, true, NULL); CloseTableList(rels); } + else if (stmt->for_all_tables) + { + /* Invalidate relcache so that publication info is rebuilt. */ + CacheInvalidateRelcacheAll(); + } table_close(rel, RowExclusiveLock); @@ -325,23 +327,7 @@ List *relids = GetPublicationRelations(pubform->oid, PUBLICATION_PART_ALL); - /* - * We don't want to send too many individual messages, at some point - * it's cheaper to just reset whole relcache. - */ - if (list_length(relids) < MAX_RELCACHE_INVAL_MSGS) - { - ListCell *lc; - - foreach(lc, relids) - { - Oid relid = lfirst_oid(lc); - - CacheInvalidateRelcacheByRelid(relid); - } - } - else - CacheInvalidateRelcacheAll(); + InvalidatePublicationRels(relids); } ObjectAddressSet(obj, PublicationRelationId, pubform->oid); @@ -352,6 +338,27 @@ } /* + * Invalidate the relations. + */ +void +InvalidatePublicationRels(List *relids) +{ + /* + * We don't want to send too many individual messages, at some point it's + * cheaper to just reset whole relcache. + */ + if (list_length(relids) < MAX_RELCACHE_INVAL_MSGS) + { + ListCell *lc; + + foreach(lc, relids) + CacheInvalidateRelcacheByRelid(lfirst_oid(lc)); + } + else + CacheInvalidateRelcacheAll(); +} + +/* * Add or remove table to/from publication. */ static void @@ -469,13 +476,14 @@ } /* - * Drop publication by OID + * Remove the publication by mapping OID. */ void RemovePublicationById(Oid pubid) { Relation rel; HeapTuple tup; + Form_pg_publication pubform; rel = table_open(PublicationRelationId, RowExclusiveLock); @@ -484,6 +492,12 @@ if (!HeapTupleIsValid(tup)) elog(ERROR, "cache lookup failed for publication %u", pubid); + pubform = (Form_pg_publication) GETSTRUCT(tup); + + /* Invalidate relcache so that publication info is rebuilt. */ + if (pubform->puballtables) + CacheInvalidateRelcacheAll(); + CatalogTupleDelete(rel, &tup->t_self); ReleaseSysCache(tup); @@ -500,6 +514,7 @@ Relation rel; HeapTuple tup; Form_pg_publication_rel pubrel; + List *relids = NIL; rel = table_open(PublicationRelRelationId, RowExclusiveLock); @@ -511,8 +526,18 @@ pubrel = (Form_pg_publication_rel) GETSTRUCT(tup); - /* Invalidate relcache so that publication info is rebuilt. */ - CacheInvalidateRelcacheByRelid(pubrel->prrelid); + /* + * Invalidate relcache so that publication info is rebuilt. + * + * For the partitioned tables, we must invalidate all partitions contained + * in the respective partition hierarchies, not just the one explicitly + * mentioned in the publication. This is required because we implicitly + * publish the child tables when the parent table is published. + */ + relids = GetPubPartitionOptionRelations(relids, PUBLICATION_PART_ALL, + pubrel->prrelid); + + InvalidatePublicationRels(relids); CatalogTupleDelete(rel, &tup->t_self); diff -Nru postgresql-13-13.4/src/backend/commands/seclabel.c postgresql-13-13.7/src/backend/commands/seclabel.c --- postgresql-13-13.4/src/backend/commands/seclabel.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/seclabel.c 2022-05-09 21:16:30.000000000 +0000 @@ -169,8 +169,8 @@ pg_shseclabel = table_open(SharedSecLabelRelationId, AccessShareLock); - scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, true, - NULL, 3, keys); + scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, + criticalSharedRelcachesBuilt, NULL, 3, keys); tuple = systable_getnext(scan); if (HeapTupleIsValid(tuple)) diff -Nru postgresql-13-13.4/src/backend/commands/statscmds.c postgresql-13-13.7/src/backend/commands/statscmds.c --- postgresql-13-13.4/src/backend/commands/statscmds.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/statscmds.c 2022-05-09 21:16:30.000000000 +0000 @@ -493,6 +493,8 @@ rel = table_open(StatisticExtRelationId, RowExclusiveLock); oldtup = SearchSysCache1(STATEXTOID, ObjectIdGetDatum(stxoid)); + if (!HeapTupleIsValid(oldtup)) + elog(ERROR, "cache lookup failed for extended statistics object %u", stxoid); /* Must be owner of the existing statistics object */ if (!pg_statistics_object_ownercheck(stxoid, GetUserId())) diff -Nru postgresql-13-13.4/src/backend/commands/tablecmds.c postgresql-13-13.7/src/backend/commands/tablecmds.c --- postgresql-13-13.4/src/backend/commands/tablecmds.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/tablecmds.c 2022-05-09 21:16:30.000000000 +0000 @@ -280,12 +280,18 @@ {'\0', 0, NULL, NULL, NULL, NULL} }; +/* communication between RemoveRelations and RangeVarCallbackForDropRelation */ struct DropRelationCallbackState { - char relkind; + /* These fields are set by RemoveRelations: */ + char expected_relkind; + LOCKMODE heap_lockmode; + /* These fields are state to track which subsidiary locks are held: */ Oid heapOid; Oid partParentOid; - bool concurrent; + /* These fields are passed back by RangeVarCallbackForDropRelation: */ + char actual_relkind; + char actual_relpersistence; }; /* Alter table target-type flags for ATSimplePermissions */ @@ -1349,10 +1355,13 @@ AcceptInvalidationMessages(); /* Look up the appropriate relation using namespace search. */ - state.relkind = relkind; + state.expected_relkind = relkind; + state.heap_lockmode = drop->concurrent ? + ShareUpdateExclusiveLock : AccessExclusiveLock; + /* We must initialize these fields to show that no locks are held: */ state.heapOid = InvalidOid; state.partParentOid = InvalidOid; - state.concurrent = drop->concurrent; + relOid = RangeVarGetRelidExtended(rel, lockmode, RVR_MISSING_OK, RangeVarCallbackForDropRelation, (void *) &state); @@ -1366,10 +1375,10 @@ /* * Decide if concurrent mode needs to be used here or not. The - * relation persistence cannot be known without its OID. + * callback retrieved the rel's persistence for us. */ if (drop->concurrent && - get_rel_persistence(relOid) != RELPERSISTENCE_TEMP) + state.actual_relpersistence != RELPERSISTENCE_TEMP) { Assert(list_length(drop->objects) == 1 && drop->removeType == OBJECT_INDEX); @@ -1381,12 +1390,24 @@ * either. */ if ((flags & PERFORM_DELETION_CONCURRENTLY) != 0 && - get_rel_relkind(relOid) == RELKIND_PARTITIONED_INDEX) + state.actual_relkind == RELKIND_PARTITIONED_INDEX) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot drop partitioned index \"%s\" concurrently", rel->relname))); + /* + * If we're told to drop a partitioned index, we must acquire lock on + * all the children of its parent partitioned table before proceeding. + * Otherwise we'd try to lock the child index partitions before their + * tables, leading to potential deadlock against other sessions that + * will lock those objects in the other order. + */ + if (state.actual_relkind == RELKIND_PARTITIONED_INDEX) + (void) find_all_inheritors(state.heapOid, + state.heap_lockmode, + NULL); + /* OK, we're ready to delete this one */ obj.classId = RelationRelationId; obj.objectId = relOid; @@ -1412,7 +1433,6 @@ { HeapTuple tuple; struct DropRelationCallbackState *state; - char relkind; char expected_relkind; bool is_partition; Form_pg_class classform; @@ -1420,9 +1440,7 @@ bool invalid_system_index = false; state = (struct DropRelationCallbackState *) arg; - relkind = state->relkind; - heap_lockmode = state->concurrent ? - ShareUpdateExclusiveLock : AccessExclusiveLock; + heap_lockmode = state->heap_lockmode; /* * If we previously locked some other index's heap, and the name we're @@ -1456,6 +1474,10 @@ classform = (Form_pg_class) GETSTRUCT(tuple); is_partition = classform->relispartition; + /* Pass back some data to save lookups in RemoveRelations */ + state->actual_relkind = classform->relkind; + state->actual_relpersistence = classform->relpersistence; + /* * Both RELKIND_RELATION and RELKIND_PARTITIONED_TABLE are OBJECT_TABLE, * but RemoveRelations() can only pass one relkind for a given relation. @@ -1471,13 +1493,15 @@ else expected_relkind = classform->relkind; - if (relkind != expected_relkind) - DropErrorMsgWrongType(rel->relname, classform->relkind, relkind); + if (state->expected_relkind != expected_relkind) + DropErrorMsgWrongType(rel->relname, classform->relkind, + state->expected_relkind); /* Allow DROP to either table owner or schema owner */ if (!pg_class_ownercheck(relOid, GetUserId()) && !pg_namespace_ownercheck(classform->relnamespace, GetUserId())) - aclcheck_error(ACLCHECK_NOT_OWNER, get_relkind_objtype(get_rel_relkind(relOid)), + aclcheck_error(ACLCHECK_NOT_OWNER, + get_relkind_objtype(classform->relkind), rel->relname); /* @@ -1486,7 +1510,7 @@ * only concerns indexes of toast relations that became invalid during a * REINDEX CONCURRENTLY process. */ - if (IsSystemClass(relOid, classform) && relkind == RELKIND_INDEX) + if (IsSystemClass(relOid, classform) && classform->relkind == RELKIND_INDEX) { HeapTuple locTuple; Form_pg_index indexform; @@ -1522,9 +1546,10 @@ * locking the index. index_drop() will need this anyway, and since * regular queries lock tables before their indexes, we risk deadlock if * we do it the other way around. No error if we don't find a pg_index - * entry, though --- the relation may have been dropped. + * entry, though --- the relation may have been dropped. Note that this + * code will execute for either plain or partitioned indexes. */ - if ((relkind == RELKIND_INDEX || relkind == RELKIND_PARTITIONED_INDEX) && + if (expected_relkind == RELKIND_INDEX && relOid != oldRelOid) { state->heapOid = IndexGetRelation(relOid, true); @@ -1535,7 +1560,7 @@ /* * Similarly, if the relation is a partition, we must acquire lock on its * parent before locking the partition. That's because queries lock the - * parent before its partitions, so we risk deadlock it we do it the other + * parent before its partitions, so we risk deadlock if we do it the other * way around. */ if (is_partition && relOid != oldRelOid) @@ -3448,7 +3473,7 @@ ObjectAddress RenameRelation(RenameStmt *stmt) { - bool is_index = stmt->renameType == OBJECT_INDEX; + bool is_index_stmt = stmt->renameType == OBJECT_INDEX; Oid relid; ObjectAddress address; @@ -3458,24 +3483,48 @@ * end of transaction. * * Lock level used here should match RenameRelationInternal, to avoid lock - * escalation. + * escalation. However, because ALTER INDEX can be used with any relation + * type, we mustn't believe without verification. */ - relid = RangeVarGetRelidExtended(stmt->relation, - is_index ? ShareUpdateExclusiveLock : AccessExclusiveLock, - stmt->missing_ok ? RVR_MISSING_OK : 0, - RangeVarCallbackForAlterRelation, - (void *) stmt); - - if (!OidIsValid(relid)) + for (;;) { - ereport(NOTICE, - (errmsg("relation \"%s\" does not exist, skipping", - stmt->relation->relname))); - return InvalidObjectAddress; + LOCKMODE lockmode; + char relkind; + bool obj_is_index; + + lockmode = is_index_stmt ? ShareUpdateExclusiveLock : AccessExclusiveLock; + + relid = RangeVarGetRelidExtended(stmt->relation, lockmode, + stmt->missing_ok ? RVR_MISSING_OK : 0, + RangeVarCallbackForAlterRelation, + (void *) stmt); + + if (!OidIsValid(relid)) + { + ereport(NOTICE, + (errmsg("relation \"%s\" does not exist, skipping", + stmt->relation->relname))); + return InvalidObjectAddress; + } + + /* + * We allow mismatched statement and object types (e.g., ALTER INDEX + * to rename a table), but we might've used the wrong lock level. If + * that happens, retry with the correct lock level. We don't bother + * if we already acquired AccessExclusiveLock with an index, however. + */ + relkind = get_rel_relkind(relid); + obj_is_index = (relkind == RELKIND_INDEX || + relkind == RELKIND_PARTITIONED_INDEX); + if (obj_is_index || is_index_stmt == obj_is_index) + break; + + UnlockRelationOid(relid, lockmode); + is_index_stmt = obj_is_index; } /* Do the work */ - RenameRelationInternal(relid, stmt->newname, false, is_index); + RenameRelationInternal(relid, stmt->newname, false, is_index_stmt); ObjectAddressSet(address, RelationRelationId, relid); @@ -3524,6 +3573,16 @@ newrelname))); /* + * RenameRelation is careful not to believe the caller's idea of the + * relation kind being handled. We don't have to worry about this, but + * let's not be totally oblivious to it. We can process an index as + * not-an-index, but not the other way around. + */ + Assert(!is_index || + is_index == (targetrelation->rd_rel->relkind == RELKIND_INDEX || + targetrelation->rd_rel->relkind == RELKIND_PARTITIONED_INDEX)); + + /* * Update pg_class tuple with new relname. (Scribbling on reltup is OK * because it's a copy...) */ @@ -3563,6 +3622,37 @@ } /* + * ResetRelRewrite - reset relrewrite + */ +void +ResetRelRewrite(Oid myrelid) +{ + Relation relrelation; /* for RELATION relation */ + HeapTuple reltup; + Form_pg_class relform; + + /* + * Find relation's pg_class tuple. + */ + relrelation = table_open(RelationRelationId, RowExclusiveLock); + + reltup = SearchSysCacheCopy1(RELOID, ObjectIdGetDatum(myrelid)); + if (!HeapTupleIsValid(reltup)) /* shouldn't happen */ + elog(ERROR, "cache lookup failed for relation %u", myrelid); + relform = (Form_pg_class) GETSTRUCT(reltup); + + /* + * Update pg_class tuple. + */ + relform->relrewrite = InvalidOid; + + CatalogTupleUpdate(relrelation, &reltup->t_self, reltup); + + heap_freetuple(reltup); + table_close(relrelation, RowExclusiveLock); +} + +/* * Disallow ALTER TABLE (and similar commands) when the current backend has * any open reference to the target table besides the one just acquired by * the calling command; this implies there's an open cursor or active plan. @@ -4155,7 +4245,7 @@ break; case AT_SetOptions: /* ALTER COLUMN SET ( options ) */ case AT_ResetOptions: /* ALTER COLUMN RESET ( options ) */ - ATSimplePermissions(rel, ATT_TABLE | ATT_MATVIEW | ATT_INDEX | ATT_FOREIGN_TABLE); + ATSimplePermissions(rel, ATT_TABLE | ATT_MATVIEW | ATT_FOREIGN_TABLE); /* This command never recurses */ pass = AT_PASS_MISC; break; @@ -6612,7 +6702,8 @@ colName, RelationGetRelationName(rel)))); /* - * Check that the attribute is not in a primary key + * Check that the attribute is not in a primary key or in an index used as + * a replica identity. * * Note: we'll throw error even if the pkey index is not valid. */ @@ -6632,20 +6723,32 @@ elog(ERROR, "cache lookup failed for index %u", indexoid); indexStruct = (Form_pg_index) GETSTRUCT(indexTuple); - /* If the index is not a primary key, skip the check */ - if (indexStruct->indisprimary) + /* + * If the index is not a primary key or an index used as replica + * identity, skip the check. + */ + if (indexStruct->indisprimary || indexStruct->indisreplident) { /* - * Loop over each attribute in the primary key and see if it - * matches the to-be-altered attribute + * Loop over each attribute in the primary key or the index used + * as replica identity and see if it matches the to-be-altered + * attribute. */ for (i = 0; i < indexStruct->indnkeyatts; i++) { if (indexStruct->indkey.values[i] == attnum) - ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("column \"%s\" is in a primary key", - colName))); + { + if (indexStruct->indisprimary) + ereport(ERROR, + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("column \"%s\" is in a primary key", + colName))); + else + ereport(ERROR, + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("column \"%s\" is in index used as replica identity", + colName))); + } } } @@ -11239,12 +11342,11 @@ errmsg("\"%s\" is not a table", RelationGetRelationName(rel)))); - if (tab->relkind == RELKIND_COMPOSITE_TYPE || - tab->relkind == RELKIND_FOREIGN_TABLE) + if (!RELKIND_HAS_STORAGE(tab->relkind)) { /* - * For composite types, do this check now. Tables will check it later - * when the table is being rewritten. + * For relations without storage, do this check now. Regular tables + * will check it later when the table is being rewritten. */ find_composite_type_dependencies(rel->rd_rel->reltype, rel, NULL); } @@ -14826,6 +14928,12 @@ CatalogTupleUpdate(pg_index, &pg_index_tuple->t_self, pg_index_tuple); InvokeObjectPostAlterHookArg(IndexRelationId, thisIndexOid, 0, InvalidOid, is_internal); + /* + * Invalidate the relcache for the table, so that after we commit + * all sessions will refresh the table's replica identity index + * before attempting any UPDATE or DELETE on the table. + */ + CacheInvalidateRelcache(rel); } heap_freetuple(pg_index_tuple); } @@ -16764,6 +16872,22 @@ ObjectAddressSet(address, RelationRelationId, RelationGetRelid(attachrel)); + /* + * If the partition we just attached is partitioned itself, invalidate + * relcache for all descendent partitions too to ensure that their + * rd_partcheck expression trees are rebuilt; partitions already locked + * at the beginning of this function. + */ + if (attachrel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE) + { + ListCell *l; + + foreach(l, attachrel_children) + { + CacheInvalidateRelcacheByRelid(lfirst_oid(l)); + } + } + /* keep our lock until commit */ table_close(attachrel, NoLock); @@ -17281,6 +17405,25 @@ */ CacheInvalidateRelcache(rel); + /* + * If the partition we just detached is partitioned itself, invalidate + * relcache for all descendent partitions too to ensure that their + * rd_partcheck expression trees are rebuilt; must lock partitions + * before doing so, using the same lockmode as what partRel has been + * locked with by the caller. + */ + if (partRel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE) + { + List *children; + + children = find_all_inheritors(RelationGetRelid(partRel), + AccessExclusiveLock, NULL); + foreach(cell, children) + { + CacheInvalidateRelcacheByRelid(lfirst_oid(cell)); + } + } + ObjectAddressSet(address, RelationRelationId, RelationGetRelid(partRel)); /* keep our lock until commit */ diff -Nru postgresql-13-13.4/src/backend/commands/tablespace.c postgresql-13-13.7/src/backend/commands/tablespace.c --- postgresql-13-13.4/src/backend/commands/tablespace.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/tablespace.c 2022-05-09 21:16:30.000000000 +0000 @@ -616,40 +616,36 @@ location))); } - if (InRecovery) - { - /* - * Our theory for replaying a CREATE is to forcibly drop the target - * subdirectory if present, and then recreate it. This may be more - * work than needed, but it is simple to implement. - */ - if (stat(location_with_version_dir, &st) == 0 && S_ISDIR(st.st_mode)) - { - if (!rmtree(location_with_version_dir, true)) - /* If this failed, MakePGDirectory() below is going to error. */ - ereport(WARNING, - (errmsg("some useless files may be left behind in old database directory \"%s\"", - location_with_version_dir))); - } - } - /* * The creation of the version directory prevents more than one tablespace - * in a single location. + * in a single location. This imitates TablespaceCreateDbspace(), but it + * ignores concurrency and missing parent directories. The chmod() would + * have failed in the absence of a parent. pg_tablespace_spcname_index + * prevents concurrency. */ - if (MakePGDirectory(location_with_version_dir) < 0) + if (stat(location_with_version_dir, &st) < 0) { - if (errno == EEXIST) + if (errno != ENOENT) ereport(ERROR, - (errcode(ERRCODE_OBJECT_IN_USE), - errmsg("directory \"%s\" already in use as a tablespace", + (errcode_for_file_access(), + errmsg("could not stat directory \"%s\": %m", location_with_version_dir))); - else + else if (MakePGDirectory(location_with_version_dir) < 0) ereport(ERROR, (errcode_for_file_access(), errmsg("could not create directory \"%s\": %m", location_with_version_dir))); } + else if (!S_ISDIR(st.st_mode)) + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s\" exists but is not a directory", + location_with_version_dir))); + else if (!InRecovery) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_IN_USE), + errmsg("directory \"%s\" already in use as a tablespace", + location_with_version_dir))); /* * In recovery, remove old symlink, in case it points to the wrong place. diff -Nru postgresql-13-13.4/src/backend/commands/typecmds.c postgresql-13-13.7/src/backend/commands/typecmds.c --- postgresql-13-13.4/src/backend/commands/typecmds.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/commands/typecmds.c 2022-05-09 21:16:30.000000000 +0000 @@ -2253,6 +2253,7 @@ 0, /* relation kind is n/a */ false, /* a domain isn't an implicit array */ false, /* nor is it any kind of dependent type */ + false, /* don't touch extension membership */ true); /* We do need to rebuild dependencies */ InvokeObjectPostAlterHook(TypeRelationId, domainoid, 0); @@ -3984,6 +3985,7 @@ 0, /* we rejected composite types above */ isImplicitArray, /* it might be an array */ isImplicitArray, /* dependent iff it's array */ + false, /* don't touch extension membership */ true); InvokeObjectPostAlterHook(TypeRelationId, typeOid, 0); diff -Nru postgresql-13-13.4/src/backend/executor/execExpr.c postgresql-13-13.7/src/backend/executor/execExpr.c --- postgresql-13-13.4/src/backend/executor/execExpr.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/executor/execExpr.c 2022-05-09 21:16:30.000000000 +0000 @@ -1631,16 +1631,16 @@ { /* generic record, use types of given expressions */ tupdesc = ExecTypeFromExprList(rowexpr->args); + /* ... but adopt RowExpr's column aliases */ + ExecTypeSetColNames(tupdesc, rowexpr->colnames); + /* Bless the tupdesc so it can be looked up later */ + BlessTupleDesc(tupdesc); } else { /* it's been cast to a named type, use that */ tupdesc = lookup_rowtype_tupdesc_copy(rowexpr->row_typeid, -1); } - /* In either case, adopt RowExpr's column aliases */ - ExecTypeSetColNames(tupdesc, rowexpr->colnames); - /* Bless the tupdesc in case it's now of type RECORD */ - BlessTupleDesc(tupdesc); /* * In the named-type case, the tupdesc could have more columns @@ -2783,11 +2783,14 @@ * (We could use this in FieldStore too, but in that case passing the old * value is so cheap there's no need.) * - * Note: it might seem that this needs to recurse, but it does not; the - * CaseTestExpr, if any, will be directly the arg or refexpr of the top-level - * node. Nested-assignment situations give rise to expression trees in which - * each level of assignment has its own CaseTestExpr, and the recursive - * structure appears within the newvals or refassgnexpr field. + * Note: it might seem that this needs to recurse, but in most cases it does + * not; the CaseTestExpr, if any, will be directly the arg or refexpr of the + * top-level node. Nested-assignment situations give rise to expression + * trees in which each level of assignment has its own CaseTestExpr, and the + * recursive structure appears within the newvals or refassgnexpr field. + * There is an exception, though: if the array is an array-of-domain, we will + * have a CoerceToDomain as the refassgnexpr, and we need to be able to look + * through that. */ static bool isAssignmentIndirectionExpr(Expr *expr) @@ -2808,6 +2811,12 @@ if (sbsRef->refexpr && IsA(sbsRef->refexpr, CaseTestExpr)) return true; } + else if (IsA(expr, CoerceToDomain)) + { + CoerceToDomain *cd = (CoerceToDomain *) expr; + + return isAssignmentIndirectionExpr(cd->arg); + } return false; } @@ -2819,6 +2828,8 @@ ExprState *state, Datum *resv, bool *resnull) { DomainConstraintRef *constraint_ref; + Datum *domainval = NULL; + bool *domainnull = NULL; ListCell *l; scratch->d.domaincheck.resulttype = ctest->resulttype; @@ -2865,8 +2876,6 @@ foreach(l, constraint_ref->constraints) { DomainConstraintState *con = (DomainConstraintState *) lfirst(l); - Datum *domainval = NULL; - bool *domainnull = NULL; Datum *save_innermost_domainval; bool *save_innermost_domainnull; diff -Nru postgresql-13-13.4/src/backend/executor/execExprInterp.c postgresql-13-13.7/src/backend/executor/execExprInterp.c --- postgresql-13-13.4/src/backend/executor/execExprInterp.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/executor/execExprInterp.c 2022-05-09 21:16:30.000000000 +0000 @@ -3991,12 +3991,8 @@ * generates an INT4 NULL regardless of the dropped column type). * If we find a dropped column and cannot verify that case (1) * holds, we have to use the slow path to check (2) for each row. - * - * If vartype is a domain over composite, just look through that - * to the base composite type. */ - var_tupdesc = lookup_rowtype_tupdesc_domain(variable->vartype, - -1, false); + var_tupdesc = lookup_rowtype_tupdesc(variable->vartype, -1); slot_tupdesc = slot->tts_tupleDescriptor; @@ -4033,9 +4029,8 @@ /* * Use the variable's declared rowtype as the descriptor for the - * output values, modulo possibly assigning new column names - * below. In particular, we *must* absorb any attisdropped - * markings. + * output values. In particular, we *must* absorb any + * attisdropped markings. */ oldcontext = MemoryContextSwitchTo(econtext->ecxt_per_query_memory); output_tupdesc = CreateTupleDescCopy(var_tupdesc); @@ -4053,39 +4048,38 @@ oldcontext = MemoryContextSwitchTo(econtext->ecxt_per_query_memory); output_tupdesc = CreateTupleDescCopy(slot->tts_tupleDescriptor); MemoryContextSwitchTo(oldcontext); - } - /* - * Construct a tuple descriptor for the composite values we'll - * produce, and make sure its record type is "blessed". The main - * reason to do this is to be sure that operations such as - * row_to_json() will see the desired column names when they look up - * the descriptor from the type information embedded in the composite - * values. - * - * We already got the correct physical datatype info above, but now we - * should try to find the source RTE and adopt its column aliases, in - * case they are different from the original rowtype's names. For - * example, in "SELECT foo(t) FROM tab t(x,y)", the first two columns - * in the composite output should be named "x" and "y" regardless of - * tab's column names. - * - * If we can't locate the RTE, assume the column names we've got are - * OK. (As of this writing, the only cases where we can't locate the - * RTE are in execution of trigger WHEN clauses, and then the Var will - * have the trigger's relation's rowtype, so its names are fine.) - * Also, if the creator of the RTE didn't bother to fill in an eref - * field, assume our column names are OK. (This happens in COPY, and - * perhaps other places.) - */ - if (econtext->ecxt_estate && - variable->varno <= econtext->ecxt_estate->es_range_table_size) - { - RangeTblEntry *rte = exec_rt_fetch(variable->varno, - econtext->ecxt_estate); + /* + * It's possible that the input slot is a relation scan slot and + * so is marked with that relation's rowtype. But we're supposed + * to be returning RECORD, so reset to that. + */ + output_tupdesc->tdtypeid = RECORDOID; + output_tupdesc->tdtypmod = -1; - if (rte->eref) - ExecTypeSetColNames(output_tupdesc, rte->eref->colnames); + /* + * We already got the correct physical datatype info above, but + * now we should try to find the source RTE and adopt its column + * aliases, since it's unlikely that the input slot has the + * desired names. + * + * If we can't locate the RTE, assume the column names we've got + * are OK. (As of this writing, the only cases where we can't + * locate the RTE are in execution of trigger WHEN clauses, and + * then the Var will have the trigger's relation's rowtype, so its + * names are fine.) Also, if the creator of the RTE didn't bother + * to fill in an eref field, assume our column names are OK. (This + * happens in COPY, and perhaps other places.) + */ + if (econtext->ecxt_estate && + variable->varno <= econtext->ecxt_estate->es_range_table_size) + { + RangeTblEntry *rte = exec_rt_fetch(variable->varno, + econtext->ecxt_estate); + + if (rte->eref) + ExecTypeSetColNames(output_tupdesc, rte->eref->colnames); + } } /* Bless the tupdesc if needed, and save it in the execution state */ diff -Nru postgresql-13-13.4/src/backend/executor/execTuples.c postgresql-13-13.7/src/backend/executor/execTuples.c --- postgresql-13-13.4/src/backend/executor/execTuples.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/executor/execTuples.c 2022-05-09 21:16:30.000000000 +0000 @@ -2022,51 +2022,40 @@ } /* - * ExecTypeSetColNames - set column names in a TupleDesc + * ExecTypeSetColNames - set column names in a RECORD TupleDesc * * Column names must be provided as an alias list (list of String nodes). - * - * For some callers, the supplied tupdesc has a named rowtype (not RECORD) - * and it is moderately likely that the alias list matches the column names - * already present in the tupdesc. If we do change any column names then - * we must reset the tupdesc's type to anonymous RECORD; but we avoid doing - * so if no names change. */ void ExecTypeSetColNames(TupleDesc typeInfo, List *namesList) { - bool modified = false; int colno = 0; ListCell *lc; + /* It's only OK to change col names in a not-yet-blessed RECORD type */ + Assert(typeInfo->tdtypeid == RECORDOID); + Assert(typeInfo->tdtypmod < 0); + foreach(lc, namesList) { char *cname = strVal(lfirst(lc)); Form_pg_attribute attr; - /* Guard against too-long names list */ + /* Guard against too-long names list (probably can't happen) */ if (colno >= typeInfo->natts) break; attr = TupleDescAttr(typeInfo, colno); colno++; - /* Ignore empty aliases (these must be for dropped columns) */ - if (cname[0] == '\0') + /* + * Do nothing for empty aliases or dropped columns (these cases + * probably can't arise in RECORD types, either) + */ + if (cname[0] == '\0' || attr->attisdropped) continue; - /* Change tupdesc only if alias is actually different */ - if (strcmp(cname, NameStr(attr->attname)) != 0) - { - namestrcpy(&(attr->attname), cname); - modified = true; - } - } - - /* If we modified the tupdesc, it's now a new record type */ - if (modified) - { - typeInfo->tdtypeid = RECORDOID; - typeInfo->tdtypmod = -1; + /* OK, assign the column name */ + namestrcpy(&(attr->attname), cname); } } diff -Nru postgresql-13-13.4/src/backend/executor/nodeAgg.c postgresql-13-13.7/src/backend/executor/nodeAgg.c --- postgresql-13-13.4/src/backend/executor/nodeAgg.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/executor/nodeAgg.c 2022-05-09 21:16:30.000000000 +0000 @@ -2610,8 +2610,9 @@ if (aggstate->hash_batches == NIL) return false; - batch = linitial(aggstate->hash_batches); - aggstate->hash_batches = list_delete_first(aggstate->hash_batches); + /* hash_batches is a stack, with the top item at the end of the list */ + batch = llast(aggstate->hash_batches); + aggstate->hash_batches = list_delete_last(aggstate->hash_batches); hash_agg_set_limits(aggstate->hashentrysize, batch->input_card, batch->used_bits, &aggstate->hash_mem_limit, @@ -3190,7 +3191,7 @@ new_batch = hashagg_batch_new(tapeset, tapenum, setno, spill->ntuples[i], cardinality, used_bits); - aggstate->hash_batches = lcons(new_batch, aggstate->hash_batches); + aggstate->hash_batches = lappend(aggstate->hash_batches, new_batch); aggstate->hash_batches_used++; } @@ -3205,8 +3206,6 @@ static void hashagg_reset_spill_state(AggState *aggstate) { - ListCell *lc; - /* free spills from initial pass */ if (aggstate->hash_spills != NULL) { @@ -3224,13 +3223,7 @@ } /* free batches */ - foreach(lc, aggstate->hash_batches) - { - HashAggBatch *batch = (HashAggBatch *) lfirst(lc); - - pfree(batch); - } - list_free(aggstate->hash_batches); + list_free_deep(aggstate->hash_batches); aggstate->hash_batches = NIL; /* close tape set */ diff -Nru postgresql-13-13.4/src/backend/executor/nodeIndexonlyscan.c postgresql-13-13.7/src/backend/executor/nodeIndexonlyscan.c --- postgresql-13-13.4/src/backend/executor/nodeIndexonlyscan.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/executor/nodeIndexonlyscan.c 2022-05-09 21:16:30.000000000 +0000 @@ -214,13 +214,11 @@ /* * If the index was lossy, we have to recheck the index quals. - * (Currently, this can never happen, but we should support the case - * for possible future use, eg with GiST indexes.) */ if (scandesc->xs_recheck) { econtext->ecxt_scantuple = slot; - if (!ExecQualAndReset(node->indexqual, econtext)) + if (!ExecQualAndReset(node->recheckqual, econtext)) { /* Fails recheck, so drop it and loop back for another */ InstrCountFiltered2(node, 1); @@ -555,8 +553,8 @@ */ indexstate->ss.ps.qual = ExecInitQual(node->scan.plan.qual, (PlanState *) indexstate); - indexstate->indexqual = - ExecInitQual(node->indexqual, (PlanState *) indexstate); + indexstate->recheckqual = + ExecInitQual(node->recheckqual, (PlanState *) indexstate); /* * If we are just doing EXPLAIN (ie, aren't going to run the plan), stop diff -Nru postgresql-13-13.4/src/backend/executor/nodeIndexscan.c postgresql-13-13.7/src/backend/executor/nodeIndexscan.c --- postgresql-13-13.4/src/backend/executor/nodeIndexscan.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/executor/nodeIndexscan.c 2022-05-09 21:16:30.000000000 +0000 @@ -574,8 +574,12 @@ /* flush the reorder queue */ if (node->iss_ReorderQueue) { + HeapTuple tuple; while (!pairingheap_is_empty(node->iss_ReorderQueue)) - reorderqueue_pop(node); + { + tuple = reorderqueue_pop(node); + heap_freetuple(tuple); + } } /* reset index scan */ diff -Nru postgresql-13-13.4/src/backend/executor/nodeMergejoin.c postgresql-13-13.7/src/backend/executor/nodeMergejoin.c --- postgresql-13-13.4/src/backend/executor/nodeMergejoin.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/executor/nodeMergejoin.c 2022-05-09 21:16:30.000000000 +0000 @@ -893,11 +893,10 @@ if (compareResult == 0) node->mj_JoinState = EXEC_MJ_JOINTUPLES; - else - { - Assert(compareResult < 0); + else if (compareResult < 0) node->mj_JoinState = EXEC_MJ_NEXTOUTER; - } + else /* compareResult > 0 should not happen */ + elog(ERROR, "mergejoin input data is out of order"); break; case MJEVAL_NONMATCHABLE: @@ -1087,7 +1086,7 @@ node->mj_JoinState = EXEC_MJ_JOINTUPLES; } - else + else if (compareResult > 0) { /* ---------------- * if the new outer tuple didn't match the marked inner @@ -1106,7 +1105,6 @@ * no more inners, no more matches are possible. * ---------------- */ - Assert(compareResult > 0); innerTupleSlot = node->mj_InnerTupleSlot; /* reload comparison data for current inner */ @@ -1140,6 +1138,8 @@ return NULL; } } + else /* compareResult < 0 should not happen */ + elog(ERROR, "mergejoin input data is out of order"); break; /*---------------------------------------------------------- diff -Nru postgresql-13-13.4/src/backend/jit/llvm/llvmjit.c postgresql-13-13.7/src/backend/jit/llvm/llvmjit.c --- postgresql-13-13.4/src/backend/jit/llvm/llvmjit.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/jit/llvm/llvmjit.c 2022-05-09 21:16:30.000000000 +0000 @@ -171,8 +171,7 @@ llvm_release_context(JitContext *context) { LLVMJitContext *llvm_context = (LLVMJitContext *) context; - - llvm_enter_fatal_on_oom(); + ListCell *lc; /* * When this backend is exiting, don't clean up LLVM. As an error might @@ -182,18 +181,17 @@ if (proc_exit_inprogress) return; + llvm_enter_fatal_on_oom(); + if (llvm_context->module) { LLVMDisposeModule(llvm_context->module); llvm_context->module = NULL; } - while (llvm_context->handles != NIL) + foreach(lc, llvm_context->handles) { - LLVMJitHandle *jit_handle; - - jit_handle = (LLVMJitHandle *) linitial(llvm_context->handles); - llvm_context->handles = list_delete_first(llvm_context->handles); + LLVMJitHandle *jit_handle = (LLVMJitHandle *) lfirst(lc); #if LLVM_VERSION_MAJOR > 11 { @@ -221,6 +219,8 @@ pfree(jit_handle); } + list_free(llvm_context->handles); + llvm_context->handles = NIL; } /* @@ -844,6 +844,20 @@ static void llvm_shutdown(int code, Datum arg) { + /* + * If llvm_shutdown() is reached while in a fatal-on-oom section an error + * has occurred in the middle of LLVM code. It is not safe to call back + * into LLVM (which is why a FATAL error was thrown). + * + * We do need to shutdown LLVM in other shutdown cases, otherwise + * e.g. profiling data won't be written out. + */ + if (llvm_in_fatal_on_oom()) + { + Assert(proc_exit_inprogress); + return; + } + #if LLVM_VERSION_MAJOR > 11 { if (llvm_opt3_orc) diff -Nru postgresql-13-13.4/src/backend/jit/llvm/llvmjit_error.cpp postgresql-13-13.7/src/backend/jit/llvm/llvmjit_error.cpp --- postgresql-13-13.4/src/backend/jit/llvm/llvmjit_error.cpp 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/jit/llvm/llvmjit_error.cpp 2022-05-09 21:16:30.000000000 +0000 @@ -23,15 +23,22 @@ #include "jit/llvmjit.h" +#include static int fatal_new_handler_depth = 0; static std::new_handler old_new_handler = NULL; static void fatal_system_new_handler(void); #if LLVM_VERSION_MAJOR > 4 +static void fatal_llvm_new_handler(void *user_data, const char *reason, bool gen_crash_diag); +#if LLVM_VERSION_MAJOR < 14 static void fatal_llvm_new_handler(void *user_data, const std::string& reason, bool gen_crash_diag); #endif +#endif +static void fatal_llvm_error_handler(void *user_data, const char *reason, bool gen_crash_diag); +#if LLVM_VERSION_MAJOR < 14 static void fatal_llvm_error_handler(void *user_data, const std::string& reason, bool gen_crash_diag); +#endif /* @@ -84,6 +91,16 @@ } /* + * Are we currently in an fatal-on-oom section? Useful to skip cleanup in case + * of errors. + */ +bool +llvm_in_fatal_on_oom(void) +{ + return fatal_new_handler_depth > 0; +} + +/* * Reset fatal error handling. This should only be called in error recovery * loops like PostgresMain()'s. */ @@ -119,23 +136,41 @@ #if LLVM_VERSION_MAJOR > 4 static void fatal_llvm_new_handler(void *user_data, - const std::string& reason, + const char *reason, bool gen_crash_diag) { ereport(FATAL, (errcode(ERRCODE_OUT_OF_MEMORY), errmsg("out of memory"), - errdetail("While in LLVM: %s", reason.c_str()))); + errdetail("While in LLVM: %s", reason))); +} +#if LLVM_VERSION_MAJOR < 14 +static void +fatal_llvm_new_handler(void *user_data, + const std::string& reason, + bool gen_crash_diag) +{ + fatal_llvm_new_handler(user_data, reason.c_str(), gen_crash_diag); } #endif +#endif static void fatal_llvm_error_handler(void *user_data, - const std::string& reason, + const char *reason, bool gen_crash_diag) { ereport(FATAL, (errcode(ERRCODE_OUT_OF_MEMORY), - errmsg("fatal llvm error: %s", - reason.c_str()))); + errmsg("fatal llvm error: %s", reason))); +} + +#if LLVM_VERSION_MAJOR < 14 +static void +fatal_llvm_error_handler(void *user_data, + const std::string& reason, + bool gen_crash_diag) +{ + fatal_llvm_error_handler(user_data, reason.c_str(), gen_crash_diag); } +#endif diff -Nru postgresql-13-13.4/src/backend/jit/llvm/llvmjit_inline.cpp postgresql-13-13.7/src/backend/jit/llvm/llvmjit_inline.cpp --- postgresql-13-13.4/src/backend/jit/llvm/llvmjit_inline.cpp 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/jit/llvm/llvmjit_inline.cpp 2022-05-09 21:16:30.000000000 +0000 @@ -594,7 +594,11 @@ if (F.materialize()) elog(FATAL, "failed to materialize metadata"); - if (F.getAttributes().hasFnAttribute(llvm::Attribute::NoInline)) +#if LLVM_VERSION_MAJOR < 14 +#define hasFnAttr hasFnAttribute +#endif + + if (F.getAttributes().hasFnAttr(llvm::Attribute::NoInline)) { ilog(DEBUG1, "ineligibile to import %s due to noinline", F.getName().data()); @@ -871,7 +875,9 @@ llvm::Function *AF; llvm::BasicBlock *BB; llvm::CallInst *fwdcall; +#if LLVM_VERSION_MAJOR < 14 llvm::Attribute inlineAttribute; +#endif AF = llvm::Function::Create(F->getFunctionType(), LinkageTypes::AvailableExternallyLinkage, @@ -880,9 +886,13 @@ Builder.SetInsertPoint(BB); fwdcall = Builder.CreateCall(F, &*AF->arg_begin()); +#if LLVM_VERSION_MAJOR < 14 inlineAttribute = llvm::Attribute::get(Context, llvm::Attribute::AlwaysInline); fwdcall->addAttribute(~0U, inlineAttribute); +#else + fwdcall->addFnAttr(llvm::Attribute::AlwaysInline); +#endif Builder.CreateRet(fwdcall); return AF; diff -Nru postgresql-13-13.4/src/backend/jit/llvm/Makefile postgresql-13-13.7/src/backend/jit/llvm/Makefile --- postgresql-13-13.4/src/backend/jit/llvm/Makefile 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/jit/llvm/Makefile 2022-05-09 21:16:30.000000000 +0000 @@ -22,6 +22,12 @@ PGFILEDESC = "llvmjit - JIT using LLVM" NAME = llvmjit +# LLVM 14 produces deprecation warnings. We'll need to make some changes +# before the relevant functions are removed, but for now silence the warnings. +ifeq ($(GCC), yes) +LLVM_CFLAGS += -Wno-deprecated-declarations +endif + # All files in this directory use LLVM. CFLAGS += $(LLVM_CFLAGS) CXXFLAGS += $(LLVM_CXXFLAGS) diff -Nru postgresql-13-13.4/src/backend/libpq/be-fsstubs.c postgresql-13-13.7/src/backend/libpq/be-fsstubs.c --- postgresql-13-13.4/src/backend/libpq/be-fsstubs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/libpq/be-fsstubs.c 2022-05-09 21:16:30.000000000 +0000 @@ -42,6 +42,7 @@ #include #include +#include "access/xact.h" #include "libpq/be-fsstubs.h" #include "libpq/libpq-fs.h" #include "miscadmin.h" @@ -50,6 +51,7 @@ #include "utils/acl.h" #include "utils/builtins.h" #include "utils/memutils.h" +#include "utils/snapmgr.h" /* define this to enable debug logging */ /* #define FSDB 1 */ @@ -67,19 +69,11 @@ static LargeObjectDesc **cookies = NULL; static int cookies_size = 0; +static bool lo_cleanup_needed = false; static MemoryContext fscxt = NULL; -#define CreateFSContext() \ - do { \ - if (fscxt == NULL) \ - fscxt = AllocSetContextCreate(TopMemoryContext, \ - "Filesystem", \ - ALLOCSET_DEFAULT_SIZES); \ - } while (0) - - -static int newLOfd(LargeObjectDesc *lobjCookie); -static void deleteLOfd(int fd); +static int newLOfd(void); +static void closeLOfd(int fd); static Oid lo_import_internal(text *filename, Oid lobjOid); @@ -99,11 +93,26 @@ elog(DEBUG4, "lo_open(%u,%d)", lobjId, mode); #endif - CreateFSContext(); + /* + * Allocate a large object descriptor first. This will also create + * 'fscxt' if this is the first LO opened in this transaction. + */ + fd = newLOfd(); lobjDesc = inv_open(lobjId, mode, fscxt); + lobjDesc->subid = GetCurrentSubTransactionId(); + + /* + * We must register the snapshot in TopTransaction's resowner so that it + * stays alive until the LO is closed rather than until the current portal + * shuts down. + */ + if (lobjDesc->snapshot) + lobjDesc->snapshot = RegisterSnapshotOnOwner(lobjDesc->snapshot, + TopTransactionResourceOwner); - fd = newLOfd(lobjDesc); + Assert(cookies[fd] == NULL); + cookies[fd] = lobjDesc; PG_RETURN_INT32(fd); } @@ -122,9 +131,7 @@ elog(DEBUG4, "lo_close(%d)", fd); #endif - inv_close(cookies[fd]); - - deleteLOfd(fd); + closeLOfd(fd); PG_RETURN_INT32(0); } @@ -238,12 +245,7 @@ { Oid lobjId; - /* - * We don't actually need to store into fscxt, but create it anyway to - * ensure that AtEOXact_LargeObject knows there is state to clean up - */ - CreateFSContext(); - + lo_cleanup_needed = true; lobjId = inv_create(InvalidOid); PG_RETURN_OID(lobjId); @@ -254,12 +256,7 @@ { Oid lobjId = PG_GETARG_OID(0); - /* - * We don't actually need to store into fscxt, but create it anyway to - * ensure that AtEOXact_LargeObject knows there is state to clean up - */ - CreateFSContext(); - + lo_cleanup_needed = true; lobjId = inv_create(lobjId); PG_RETURN_OID(lobjId); @@ -330,16 +327,13 @@ for (i = 0; i < cookies_size; i++) { if (cookies[i] != NULL && cookies[i]->id == lobjId) - { - inv_close(cookies[i]); - deleteLOfd(i); - } + closeLOfd(i); } } /* * inv_drop does not create a need for end-of-transaction cleanup and - * hence we don't need to have created fscxt. + * hence we don't need to set lo_cleanup_needed. */ PG_RETURN_INT32(inv_drop(lobjId)); } @@ -419,8 +413,6 @@ LargeObjectDesc *lobj; Oid oid; - CreateFSContext(); - /* * open the file to be read in */ @@ -435,12 +427,13 @@ /* * create an inversion object */ + lo_cleanup_needed = true; oid = inv_create(lobjOid); /* * read in from the filesystem and write to the inversion object */ - lobj = inv_open(oid, INV_WRITE, fscxt); + lobj = inv_open(oid, INV_WRITE, CurrentMemoryContext); while ((nbytes = read(fd, buf, BUFSIZE)) > 0) { @@ -482,12 +475,11 @@ LargeObjectDesc *lobj; mode_t oumask; - CreateFSContext(); - /* * open the inversion object (no need to test for failure) */ - lobj = inv_open(lobjId, INV_READ, fscxt); + lo_cleanup_needed = true; + lobj = inv_open(lobjId, INV_READ, CurrentMemoryContext); /* * open the file to be written to @@ -592,20 +584,22 @@ { int i; - if (fscxt == NULL) + if (!lo_cleanup_needed) return; /* no LO operations in this xact */ /* * Close LO fds and clear cookies array so that LO fds are no longer good. - * On abort we skip the close step. + * The memory context and resource owner holding them are going away at + * the end-of-transaction anyway, but on commit, we need to close them to + * avoid warnings about leaked resources at commit. On abort we can skip + * this step. */ - for (i = 0; i < cookies_size; i++) + if (isCommit) { - if (cookies[i] != NULL) + for (i = 0; i < cookies_size; i++) { - if (isCommit) - inv_close(cookies[i]); - deleteLOfd(i); + if (cookies[i] != NULL) + closeLOfd(i); } } @@ -614,11 +608,14 @@ cookies_size = 0; /* Release the LO memory context to prevent permanent memory leaks. */ - MemoryContextDelete(fscxt); + if (fscxt) + MemoryContextDelete(fscxt); fscxt = NULL; /* Give inv_api.c a chance to clean up, too */ close_lo_relation(isCommit); + + lo_cleanup_needed = false; } /* @@ -646,14 +643,7 @@ if (isCommit) lo->subid = parentSubid; else - { - /* - * Make sure we do not call inv_close twice if it errors out - * for some reason. Better a leak than a crash. - */ - deleteLOfd(i); - inv_close(lo); - } + closeLOfd(i); } } } @@ -663,19 +653,22 @@ *****************************************************************************/ static int -newLOfd(LargeObjectDesc *lobjCookie) +newLOfd(void) { int i, newsize; + lo_cleanup_needed = true; + if (fscxt == NULL) + fscxt = AllocSetContextCreate(TopMemoryContext, + "Filesystem", + ALLOCSET_DEFAULT_SIZES); + /* Try to find a free slot */ for (i = 0; i < cookies_size; i++) { if (cookies[i] == NULL) - { - cookies[i] = lobjCookie; return i; - } } /* No free slot, so make the array bigger */ @@ -700,15 +693,25 @@ cookies_size = newsize; } - Assert(cookies[i] == NULL); - cookies[i] = lobjCookie; return i; } static void -deleteLOfd(int fd) +closeLOfd(int fd) { + LargeObjectDesc *lobj; + + /* + * Make sure we do not try to free twice if this errors out for some + * reason. Better a leak than a crash. + */ + lobj = cookies[fd]; cookies[fd] = NULL; + + if (lobj->snapshot) + UnregisterSnapshotFromOwner(lobj->snapshot, + TopTransactionResourceOwner); + inv_close(lobj); } /***************************************************************************** @@ -727,13 +730,8 @@ int total_read PG_USED_FOR_ASSERTS_ONLY; bytea *result = NULL; - /* - * We don't actually need to store into fscxt, but create it anyway to - * ensure that AtEOXact_LargeObject knows there is state to clean up - */ - CreateFSContext(); - - loDesc = inv_open(loOid, INV_READ, fscxt); + lo_cleanup_needed = true; + loDesc = inv_open(loOid, INV_READ, CurrentMemoryContext); /* * Compute number of bytes we'll actually read, accommodating nbytes == -1 @@ -817,10 +815,9 @@ LargeObjectDesc *loDesc; int written PG_USED_FOR_ASSERTS_ONLY; - CreateFSContext(); - + lo_cleanup_needed = true; loOid = inv_create(loOid); - loDesc = inv_open(loOid, INV_WRITE, fscxt); + loDesc = inv_open(loOid, INV_WRITE, CurrentMemoryContext); written = inv_write(loDesc, VARDATA_ANY(str), VARSIZE_ANY_EXHDR(str)); Assert(written == VARSIZE_ANY_EXHDR(str)); inv_close(loDesc); @@ -840,9 +837,8 @@ LargeObjectDesc *loDesc; int written PG_USED_FOR_ASSERTS_ONLY; - CreateFSContext(); - - loDesc = inv_open(loOid, INV_WRITE, fscxt); + lo_cleanup_needed = true; + loDesc = inv_open(loOid, INV_WRITE, CurrentMemoryContext); /* Permission check */ if (!lo_compat_privileges && diff -Nru postgresql-13-13.4/src/backend/libpq/be-secure-common.c postgresql-13-13.7/src/backend/libpq/be-secure-common.c --- postgresql-13-13.4/src/backend/libpq/be-secure-common.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/libpq/be-secure-common.c 2022-05-09 21:16:30.000000000 +0000 @@ -143,6 +143,7 @@ return false; } + /* Key file must be a regular file */ if (!S_ISREG(buf.st_mode)) { ereport(loglevel, @@ -153,9 +154,19 @@ } /* - * Refuse to load key files owned by users other than us or root. + * Refuse to load key files owned by users other than us or root, and + * require no public access to the key file. If the file is owned by us, + * require mode 0600 or less. If owned by root, require 0640 or less to + * allow read access through either our gid or a supplementary gid that + * allows us to read system-wide certificates. * - * XXX surely we can check this on Windows somehow, too. + * Note that similar checks are performed in + * src/interfaces/libpq/fe-secure-openssl.c so any changes here may need + * to be made there as well. + * + * Ideally we would do similar permissions checks on Windows, but it is + * not clear how that would work since Unix-style permissions may not be + * available. */ #if !defined(WIN32) && !defined(__CYGWIN__) if (buf.st_uid != geteuid() && buf.st_uid != 0) @@ -166,20 +177,7 @@ ssl_key_file))); return false; } -#endif - /* - * Require no public access to key file. If the file is owned by us, - * require mode 0600 or less. If owned by root, require 0640 or less to - * allow read access through our gid, or a supplementary gid that allows - * to read system-wide certificates. - * - * XXX temporarily suppress check when on Windows, because there may not - * be proper support for Unix-y file permissions. Need to think of a - * reasonable check to apply on Windows. (See also the data directory - * permission check in postmaster.c) - */ -#if !defined(WIN32) && !defined(__CYGWIN__) if ((buf.st_uid == geteuid() && buf.st_mode & (S_IRWXG | S_IRWXO)) || (buf.st_uid == 0 && buf.st_mode & (S_IWGRP | S_IXGRP | S_IRWXO))) { diff -Nru postgresql-13-13.4/src/backend/libpq/be-secure-openssl.c postgresql-13-13.7/src/backend/libpq/be-secure-openssl.c --- postgresql-13-13.4/src/backend/libpq/be-secure-openssl.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/libpq/be-secure-openssl.c 2022-05-09 21:16:30.000000000 +0000 @@ -808,6 +808,7 @@ my_bio_index = BIO_get_new_index(); if (my_bio_index == -1) return NULL; + my_bio_index |= (BIO_TYPE_DESCRIPTOR | BIO_TYPE_SOURCE_SINK); my_bio_methods = BIO_meth_new(my_bio_index, "PostgreSQL backend socket"); if (!my_bio_methods) return NULL; diff -Nru postgresql-13-13.4/src/backend/libpq/hba.c postgresql-13-13.7/src/backend/libpq/hba.c --- postgresql-13-13.4/src/backend/libpq/hba.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/libpq/hba.c 2022-05-09 21:16:30.000000000 +0000 @@ -1632,7 +1632,11 @@ */ if (parsedline->auth_method == uaCert) { - parsedline->clientcert = clientCertCA; + /* + * For auth method cert, client certificate validation is mandatory, and it implies + * the level of verify-full. + */ + parsedline->clientcert = clientCertFull; } return parsedline; diff -Nru postgresql-13-13.4/src/backend/libpq/pqcomm.c postgresql-13-13.7/src/backend/libpq/pqcomm.c --- postgresql-13-13.4/src/backend/libpq/pqcomm.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/libpq/pqcomm.c 2022-05-09 21:16:30.000000000 +0000 @@ -1183,6 +1183,18 @@ } } +/* -------------------------------- + * pq_buffer_has_data - is any buffered data available to read? + * + * This will *not* attempt to read more data. + * -------------------------------- + */ +bool +pq_buffer_has_data(void) +{ + return (PqRecvPointer < PqRecvLength); +} + /* -------------------------------- * pq_startmsgread - begin reading a message from the client. diff -Nru postgresql-13-13.4/src/backend/nodes/copyfuncs.c postgresql-13-13.7/src/backend/nodes/copyfuncs.c --- postgresql-13-13.4/src/backend/nodes/copyfuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/nodes/copyfuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -57,8 +57,11 @@ #define COPY_POINTER_FIELD(fldname, sz) \ do { \ Size _size = (sz); \ - newnode->fldname = palloc(_size); \ - memcpy(newnode->fldname, from->fldname, _size); \ + if (_size > 0) \ + { \ + newnode->fldname = palloc(_size); \ + memcpy(newnode->fldname, from->fldname, _size); \ + } \ } while (0) /* Copy a parse location field (for Copy, this is same as scalar case) */ @@ -296,12 +299,9 @@ */ COPY_SCALAR_FIELD(wtParam); COPY_SCALAR_FIELD(numCols); - if (from->numCols > 0) - { - COPY_POINTER_FIELD(dupColIdx, from->numCols * sizeof(AttrNumber)); - COPY_POINTER_FIELD(dupOperators, from->numCols * sizeof(Oid)); - COPY_POINTER_FIELD(dupCollations, from->numCols * sizeof(Oid)); - } + COPY_POINTER_FIELD(dupColIdx, from->numCols * sizeof(AttrNumber)); + COPY_POINTER_FIELD(dupOperators, from->numCols * sizeof(Oid)); + COPY_POINTER_FIELD(dupCollations, from->numCols * sizeof(Oid)); COPY_SCALAR_FIELD(numGroups); return newnode; @@ -515,6 +515,7 @@ */ COPY_SCALAR_FIELD(indexid); COPY_NODE_FIELD(indexqual); + COPY_NODE_FIELD(recheckqual); COPY_NODE_FIELD(indexorderby); COPY_NODE_FIELD(indextlist); COPY_SCALAR_FIELD(indexorderdir); @@ -874,13 +875,10 @@ COPY_SCALAR_FIELD(skip_mark_restore); COPY_NODE_FIELD(mergeclauses); numCols = list_length(from->mergeclauses); - if (numCols > 0) - { - COPY_POINTER_FIELD(mergeFamilies, numCols * sizeof(Oid)); - COPY_POINTER_FIELD(mergeCollations, numCols * sizeof(Oid)); - COPY_POINTER_FIELD(mergeStrategies, numCols * sizeof(int)); - COPY_POINTER_FIELD(mergeNullsFirst, numCols * sizeof(bool)); - } + COPY_POINTER_FIELD(mergeFamilies, numCols * sizeof(Oid)); + COPY_POINTER_FIELD(mergeCollations, numCols * sizeof(Oid)); + COPY_POINTER_FIELD(mergeStrategies, numCols * sizeof(int)); + COPY_POINTER_FIELD(mergeNullsFirst, numCols * sizeof(bool)); return newnode; } @@ -1015,12 +1013,9 @@ COPY_SCALAR_FIELD(aggstrategy); COPY_SCALAR_FIELD(aggsplit); COPY_SCALAR_FIELD(numCols); - if (from->numCols > 0) - { - COPY_POINTER_FIELD(grpColIdx, from->numCols * sizeof(AttrNumber)); - COPY_POINTER_FIELD(grpOperators, from->numCols * sizeof(Oid)); - COPY_POINTER_FIELD(grpCollations, from->numCols * sizeof(Oid)); - } + COPY_POINTER_FIELD(grpColIdx, from->numCols * sizeof(AttrNumber)); + COPY_POINTER_FIELD(grpOperators, from->numCols * sizeof(Oid)); + COPY_POINTER_FIELD(grpCollations, from->numCols * sizeof(Oid)); COPY_SCALAR_FIELD(numGroups); COPY_SCALAR_FIELD(transitionSpace); COPY_BITMAPSET_FIELD(aggParams); @@ -1042,19 +1037,13 @@ COPY_SCALAR_FIELD(winref); COPY_SCALAR_FIELD(partNumCols); - if (from->partNumCols > 0) - { - COPY_POINTER_FIELD(partColIdx, from->partNumCols * sizeof(AttrNumber)); - COPY_POINTER_FIELD(partOperators, from->partNumCols * sizeof(Oid)); - COPY_POINTER_FIELD(partCollations, from->partNumCols * sizeof(Oid)); - } + COPY_POINTER_FIELD(partColIdx, from->partNumCols * sizeof(AttrNumber)); + COPY_POINTER_FIELD(partOperators, from->partNumCols * sizeof(Oid)); + COPY_POINTER_FIELD(partCollations, from->partNumCols * sizeof(Oid)); COPY_SCALAR_FIELD(ordNumCols); - if (from->ordNumCols > 0) - { - COPY_POINTER_FIELD(ordColIdx, from->ordNumCols * sizeof(AttrNumber)); - COPY_POINTER_FIELD(ordOperators, from->ordNumCols * sizeof(Oid)); - COPY_POINTER_FIELD(ordCollations, from->ordNumCols * sizeof(Oid)); - } + COPY_POINTER_FIELD(ordColIdx, from->ordNumCols * sizeof(AttrNumber)); + COPY_POINTER_FIELD(ordOperators, from->ordNumCols * sizeof(Oid)); + COPY_POINTER_FIELD(ordCollations, from->ordNumCols * sizeof(Oid)); COPY_SCALAR_FIELD(frameOptions); COPY_NODE_FIELD(startOffset); COPY_NODE_FIELD(endOffset); diff -Nru postgresql-13-13.4/src/backend/nodes/list.c postgresql-13-13.7/src/backend/nodes/list.c --- postgresql-13-13.4/src/backend/nodes/list.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/nodes/list.c 2022-05-09 21:16:30.000000000 +0000 @@ -892,6 +892,72 @@ } /* + * Delete the first N cells of the list. + * + * The List is pfree'd if the request causes all cells to be deleted. + */ +List * +list_delete_first_n(List *list, int n) +{ + check_list_invariants(list); + + /* No-op request? */ + if (n <= 0) + return list; + + /* Delete whole list? */ + if (n >= list_length(list)) + { + list_free(list); + return NIL; + } + + /* + * Otherwise, we normally just collapse out the removed elements. But for + * debugging purposes, move the whole list contents someplace else. + * + * (Note that we *must* keep the contents in the same memory context.) + */ +#ifndef DEBUG_LIST_MEMORY_USAGE + memmove(&list->elements[0], &list->elements[n], + (list->length - n) * sizeof(ListCell)); + list->length -= n; +#else + { + ListCell *newelems; + int newmaxlen = list->length - n; + + newelems = (ListCell *) + MemoryContextAlloc(GetMemoryChunkContext(list), + newmaxlen * sizeof(ListCell)); + memcpy(newelems, &list->elements[n], newmaxlen * sizeof(ListCell)); + if (list->elements != list->initial_elements) + pfree(list->elements); + else + { + /* + * As in enlarge_list(), clear the initial_elements[] space and/or + * mark it inaccessible. + */ +#ifdef CLOBBER_FREED_MEMORY + wipe_mem(list->initial_elements, + list->max_length * sizeof(ListCell)); +#else + VALGRIND_MAKE_MEM_NOACCESS(list->initial_elements, + list->max_length * sizeof(ListCell)); +#endif + } + list->elements = newelems; + list->max_length = newmaxlen; + list->length = newmaxlen; + check_list_invariants(list); + } +#endif + + return list; +} + +/* * Generate the union of two lists. This is calculated by copying * list1 via list_copy(), then adding to it all the members of list2 * that aren't already in list1. diff -Nru postgresql-13-13.4/src/backend/nodes/nodeFuncs.c postgresql-13-13.7/src/backend/nodes/nodeFuncs.c --- postgresql-13-13.4/src/backend/nodes/nodeFuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/nodes/nodeFuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -745,6 +745,8 @@ /* Avoid recursion for some cases that parser checks not to return a set */ if (IsA(node, Aggref)) return false; + if (IsA(node, GroupingFunc)) + return false; if (IsA(node, WindowFunc)) return false; diff -Nru postgresql-13-13.4/src/backend/nodes/outfuncs.c postgresql-13-13.7/src/backend/nodes/outfuncs.c --- postgresql-13-13.4/src/backend/nodes/outfuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/nodes/outfuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -573,6 +573,7 @@ WRITE_OID_FIELD(indexid); WRITE_NODE_FIELD(indexqual); + WRITE_NODE_FIELD(recheckqual); WRITE_NODE_FIELD(indexorderby); WRITE_NODE_FIELD(indextlist); WRITE_ENUM_FIELD(indexorderdir, ScanDirection); diff -Nru postgresql-13-13.4/src/backend/nodes/readfuncs.c postgresql-13-13.7/src/backend/nodes/readfuncs.c --- postgresql-13-13.4/src/backend/nodes/readfuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/nodes/readfuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -1837,6 +1837,7 @@ READ_OID_FIELD(indexid); READ_NODE_FIELD(indexqual); + READ_NODE_FIELD(recheckqual); READ_NODE_FIELD(indexorderby); READ_NODE_FIELD(indextlist); READ_ENUM_FIELD(indexorderdir, ScanDirection); diff -Nru postgresql-13-13.4/src/backend/optimizer/geqo/geqo_main.c postgresql-13-13.7/src/backend/optimizer/geqo/geqo_main.c --- postgresql-13-13.4/src/backend/optimizer/geqo/geqo_main.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/geqo/geqo_main.c 2022-05-09 21:16:30.000000000 +0000 @@ -227,12 +227,17 @@ } -#if defined(ERX) && defined(GEQO_DEBUG) +#if defined(ERX) +#if defined(GEQO_DEBUG) if (edge_failures != 0) elog(LOG, "[GEQO] failures: %d, average: %d", edge_failures, (int) number_generations / edge_failures); else elog(LOG, "[GEQO] no edge failures detected"); +#else + /* suppress variable-set-but-not-used warnings from some compilers */ + (void) edge_failures; +#endif #endif #if defined(CX) && defined(GEQO_DEBUG) diff -Nru postgresql-13-13.4/src/backend/optimizer/path/allpaths.c postgresql-13-13.7/src/backend/optimizer/path/allpaths.c --- postgresql-13-13.4/src/backend/optimizer/path/allpaths.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/path/allpaths.c 2022-05-09 21:16:30.000000000 +0000 @@ -2538,7 +2538,8 @@ if (ndx >= list_length(cteroot->cte_plan_ids)) elog(ERROR, "could not find plan for CTE \"%s\"", rte->ctename); plan_id = list_nth_int(cteroot->cte_plan_ids, ndx); - Assert(plan_id > 0); + if (plan_id <= 0) + elog(ERROR, "no plan was made for CTE \"%s\"", rte->ctename); cteplan = (Plan *) list_nth(root->glob->subplans, plan_id - 1); /* Mark rel with estimated output rows, width, etc */ diff -Nru postgresql-13-13.4/src/backend/optimizer/path/costsize.c postgresql-13-13.7/src/backend/optimizer/path/costsize.c --- postgresql-13-13.4/src/backend/optimizer/path/costsize.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/path/costsize.c 2022-05-09 21:16:30.000000000 +0000 @@ -4213,6 +4213,12 @@ */ return false; /* don't recurse into children */ } + else if (IsA(node, GroupingFunc)) + { + /* Treat this as having cost 1 */ + context->total.per_tuple += cpu_operator_cost; + return false; /* don't recurse into children */ + } else if (IsA(node, CoerceViaIO)) { CoerceViaIO *iocoerce = (CoerceViaIO *) node; diff -Nru postgresql-13-13.4/src/backend/optimizer/path/joinpath.c postgresql-13-13.7/src/backend/optimizer/path/joinpath.c --- postgresql-13-13.4/src/backend/optimizer/path/joinpath.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/path/joinpath.c 2022-05-09 21:16:30.000000000 +0000 @@ -996,7 +996,7 @@ foreach(l, all_pathkeys) { - List *front_pathkey = (List *) lfirst(l); + PathKey *front_pathkey = (PathKey *) lfirst(l); List *cur_mergeclauses; List *outerkeys; List *innerkeys; diff -Nru postgresql-13-13.4/src/backend/optimizer/path/joinrels.c postgresql-13-13.7/src/backend/optimizer/path/joinrels.c --- postgresql-13-13.4/src/backend/optimizer/path/joinrels.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/path/joinrels.c 2022-05-09 21:16:30.000000000 +0000 @@ -1618,9 +1618,9 @@ /* * See if the partition bounds for inputs are exactly the same, in - * which case we don't need to work hard: the join rel have the same - * partition bounds as inputs, and the partitions with the same - * cardinal positions form the pairs. + * which case we don't need to work hard: the join rel will have the + * same partition bounds as inputs, and the partitions with the same + * cardinal positions will form the pairs. * * Note: even in cases where one or both inputs have merged bounds, it * would be possible for both the bounds to be exactly the same, but diff -Nru postgresql-13-13.4/src/backend/optimizer/plan/createplan.c postgresql-13-13.7/src/backend/optimizer/plan/createplan.c --- postgresql-13-13.4/src/backend/optimizer/plan/createplan.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/plan/createplan.c 2022-05-09 21:16:30.000000000 +0000 @@ -180,7 +180,8 @@ ScanDirection indexscandir); static IndexOnlyScan *make_indexonlyscan(List *qptlist, List *qpqual, Index scanrelid, Oid indexid, - List *indexqual, List *indexorderby, + List *indexqual, List *recheckqual, + List *indexorderby, List *indextlist, ScanDirection indexscandir); static BitmapIndexScan *make_bitmap_indexscan(Index scanrelid, Oid indexid, @@ -886,6 +887,22 @@ } /* + * For an index-only scan, the "physical tlist" is the index's indextlist. + * We can only return that without a projection if all the index's columns + * are returnable. + */ + if (path->pathtype == T_IndexOnlyScan) + { + IndexOptInfo *indexinfo = ((IndexPath *) path)->indexinfo; + + for (i = 0; i < indexinfo->ncolumns; i++) + { + if (!indexinfo->canreturn[i]) + return false; + } + } + + /* * Also, can't do it if CP_LABEL_TLIST is specified and path is requested * to emit any sort/group columns that are not simple Vars. (If they are * simple Vars, they should appear in the physical tlist, and @@ -2844,7 +2861,8 @@ List *indexclauses = best_path->indexclauses; List *indexorderbys = best_path->indexorderbys; Index baserelid = best_path->path.parent->relid; - Oid indexoid = best_path->indexinfo->indexoid; + IndexOptInfo *indexinfo = best_path->indexinfo; + Oid indexoid = indexinfo->indexoid; List *qpqual; List *stripped_indexquals; List *fixed_indexquals; @@ -2974,6 +2992,24 @@ } } + /* + * For an index-only scan, we must mark indextlist entries as resjunk if + * they are columns that the index AM can't return; this cues setrefs.c to + * not generate references to those columns. + */ + if (indexonly) + { + int i = 0; + + foreach(l, indexinfo->indextlist) + { + TargetEntry *indextle = (TargetEntry *) lfirst(l); + + indextle->resjunk = !indexinfo->canreturn[i]; + i++; + } + } + /* Finally ready to build the plan node */ if (indexonly) scan_plan = (Scan *) make_indexonlyscan(tlist, @@ -2981,8 +3017,9 @@ baserelid, indexoid, fixed_indexquals, + stripped_indexquals, fixed_indexorderbys, - best_path->indexinfo->indextlist, + indexinfo->indextlist, best_path->indexscandir); else scan_plan = (Scan *) make_indexscan(tlist, @@ -3672,7 +3709,8 @@ if (ndx >= list_length(cteroot->cte_plan_ids)) elog(ERROR, "could not find plan for CTE \"%s\"", rte->ctename); plan_id = list_nth_int(cteroot->cte_plan_ids, ndx); - Assert(plan_id > 0); + if (plan_id <= 0) + elog(ERROR, "no plan was made for CTE \"%s\"", rte->ctename); foreach(lc, cteroot->init_plans) { ctesplan = (SubPlan *) lfirst(lc); @@ -5288,6 +5326,7 @@ Index scanrelid, Oid indexid, List *indexqual, + List *recheckqual, List *indexorderby, List *indextlist, ScanDirection indexscandir) @@ -5302,6 +5341,7 @@ node->scan.scanrelid = scanrelid; node->indexid = indexid; node->indexqual = indexqual; + node->recheckqual = recheckqual; node->indexorderby = indexorderby; node->indextlist = indextlist; node->indexorderdir = indexscandir; diff -Nru postgresql-13-13.4/src/backend/optimizer/plan/planner.c postgresql-13-13.7/src/backend/optimizer/plan/planner.c --- postgresql-13-13.4/src/backend/optimizer/plan/planner.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/plan/planner.c 2022-05-09 21:16:30.000000000 +0000 @@ -1074,8 +1074,10 @@ /* * Simplify constant expressions. For function RTEs, this was already - * done by preprocess_function_rtes ... but we have to do it again if the - * RTE is LATERAL and might have contained join alias variables. + * done by preprocess_function_rtes. (But note we must do it again for + * EXPRKIND_RTFUNC_LATERAL, because those might by now contain + * un-simplified subexpressions inserted by flattening of subqueries or + * join alias variables.) * * Note: an essential effect of this is to convert named-argument function * calls to positional notation and insert the current actual values of @@ -1089,8 +1091,7 @@ * careful to maintain AND/OR flatness --- that is, do not generate a tree * with AND directly under AND, nor OR directly under OR. */ - if (!(kind == EXPRKIND_RTFUNC || - (kind == EXPRKIND_RTFUNC_LATERAL && !root->hasJoinRTEs))) + if (kind != EXPRKIND_RTFUNC) expr = eval_const_expressions(root, expr); /* diff -Nru postgresql-13-13.4/src/backend/optimizer/plan/setrefs.c postgresql-13-13.7/src/backend/optimizer/plan/setrefs.c --- postgresql-13-13.4/src/backend/optimizer/plan/setrefs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/plan/setrefs.c 2022-05-09 21:16:30.000000000 +0000 @@ -1017,8 +1017,26 @@ int rtoffset) { indexed_tlist *index_itlist; + List *stripped_indextlist; + ListCell *lc; + + /* + * Vars in the plan node's targetlist, qual, and recheckqual must only + * reference columns that the index AM can actually return. To ensure + * this, remove non-returnable columns (which are marked as resjunk) from + * the indexed tlist. We can just drop them because the indexed_tlist + * machinery pays attention to TLE resnos, not physical list position. + */ + stripped_indextlist = NIL; + foreach(lc, plan->indextlist) + { + TargetEntry *indextle = (TargetEntry *) lfirst(lc); + + if (!indextle->resjunk) + stripped_indextlist = lappend(stripped_indextlist, indextle); + } - index_itlist = build_tlist_index(plan->indextlist); + index_itlist = build_tlist_index(stripped_indextlist); plan->scan.scanrelid += rtoffset; plan->scan.plan.targetlist = (List *) @@ -1033,6 +1051,12 @@ index_itlist, INDEX_VAR, rtoffset); + plan->recheckqual = (List *) + fix_upper_expr(root, + (Node *) plan->recheckqual, + index_itlist, + INDEX_VAR, + rtoffset); /* indexqual is already transformed to reference index columns */ plan->indexqual = fix_scan_list(root, plan->indexqual, rtoffset); /* indexorderby is already transformed to reference index columns */ @@ -1335,8 +1359,16 @@ lfirst(l) = set_plan_refs(root, (Plan *) lfirst(l), rtoffset); } - /* Now, if there's just one, forget the Append and return that child */ - if (list_length(aplan->appendplans) == 1) + /* + * See if it's safe to get rid of the Append entirely. For this to be + * safe, there must be only one child plan and that child plan's parallel + * awareness must match that of the Append's. The reason for the latter + * is that the if the Append is parallel aware and the child is not then + * the calling plan may execute the non-parallel aware child multiple + * times. + */ + if (list_length(aplan->appendplans) == 1 && + ((Plan *) linitial(aplan->appendplans))->parallel_aware == aplan->plan.parallel_aware) return clean_up_removed_plan_level((Plan *) aplan, (Plan *) linitial(aplan->appendplans)); @@ -1399,8 +1431,16 @@ lfirst(l) = set_plan_refs(root, (Plan *) lfirst(l), rtoffset); } - /* Now, if there's just one, forget the MergeAppend and return that child */ - if (list_length(mplan->mergeplans) == 1) + /* + * See if it's safe to get rid of the MergeAppend entirely. For this to + * be safe, there must be only one child plan and that child plan's + * parallel awareness must match that of the MergeAppend's. The reason + * for the latter is that the if the MergeAppend is parallel aware and the + * child is not then the calling plan may execute the non-parallel aware + * child multiple times. + */ + if (list_length(mplan->mergeplans) == 1 && + ((Plan *) linitial(mplan->mergeplans))->parallel_aware == mplan->plan.parallel_aware) return clean_up_removed_plan_level((Plan *) mplan, (Plan *) linitial(mplan->mergeplans)); diff -Nru postgresql-13-13.4/src/backend/optimizer/plan/subselect.c postgresql-13-13.7/src/backend/optimizer/plan/subselect.c --- postgresql-13-13.4/src/backend/optimizer/plan/subselect.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/plan/subselect.c 2022-05-09 21:16:30.000000000 +0000 @@ -64,7 +64,6 @@ { const char *ctename; /* name and relative level of target CTE */ int levelsup; - int refcount; /* number of remaining references */ Query *ctequery; /* query to substitute */ } inline_cte_walker_context; @@ -357,15 +356,17 @@ Node *arg = pitem->item; /* - * The Var, PlaceHolderVar, or Aggref has already been adjusted to - * have the correct varlevelsup, phlevelsup, or agglevelsup. + * The Var, PlaceHolderVar, Aggref or GroupingFunc has already been + * adjusted to have the correct varlevelsup, phlevelsup, or + * agglevelsup. * - * If it's a PlaceHolderVar or Aggref, its arguments might contain - * SubLinks, which have not yet been processed (see the comments for - * SS_replace_correlation_vars). Do that now. + * If it's a PlaceHolderVar, Aggref or GroupingFunc, its arguments + * might contain SubLinks, which have not yet been processed (see the + * comments for SS_replace_correlation_vars). Do that now. */ if (IsA(arg, PlaceHolderVar) || - IsA(arg, Aggref)) + IsA(arg, Aggref) || + IsA(arg, GroupingFunc)) arg = SS_process_sublinks(root, arg, false); splan->parParam = lappend_int(splan->parParam, pitem->paramId); @@ -1129,13 +1130,9 @@ context.ctename = cte->ctename; /* Start at levelsup = -1 because we'll immediately increment it */ context.levelsup = -1; - context.refcount = cte->cterefcount; context.ctequery = castNode(Query, cte->ctequery); (void) inline_cte_walker((Node *) root->parse, &context); - - /* Assert we replaced all references */ - Assert(context.refcount == 0); } static bool @@ -1198,9 +1195,6 @@ rte->coltypes = NIL; rte->coltypmods = NIL; rte->colcollations = NIL; - - /* Count the number of replacements we've done */ - context->refcount--; } return false; @@ -1929,10 +1923,11 @@ } /* - * Don't recurse into the arguments of an outer PHV or aggregate here. Any - * SubLinks in the arguments have to be dealt with at the outer query - * level; they'll be handled when build_subplan collects the PHV or Aggref - * into the arguments to be passed down to the current subplan. + * Don't recurse into the arguments of an outer PHV, Aggref or + * GroupingFunc here. Any SubLinks in the arguments have to be dealt with + * at the outer query level; they'll be handled when build_subplan + * collects the PHV, Aggref or GroupingFunc into the arguments to be + * passed down to the current subplan. */ if (IsA(node, PlaceHolderVar)) { @@ -1944,6 +1939,11 @@ if (((Aggref *) node)->agglevelsup > 0) return node; } + else if (IsA(node, GroupingFunc)) + { + if (((GroupingFunc *) node)->agglevelsup > 0) + return node; + } /* * We should never see a SubPlan expression in the input (since this is @@ -2056,7 +2056,7 @@ outer_params = NULL; for (proot = root->parent_root; proot != NULL; proot = proot->parent_root) { - /* Include ordinary Var/PHV/Aggref params */ + /* Include ordinary Var/PHV/Aggref/GroupingFunc params */ foreach(l, proot->plan_params) { PlannerParamItem *pitem = (PlannerParamItem *) lfirst(l); @@ -2308,6 +2308,8 @@ case T_IndexOnlyScan: finalize_primnode((Node *) ((IndexOnlyScan *) plan)->indexqual, &context); + finalize_primnode((Node *) ((IndexOnlyScan *) plan)->recheckqual, + &context); finalize_primnode((Node *) ((IndexOnlyScan *) plan)->indexorderby, &context); diff -Nru postgresql-13-13.4/src/backend/optimizer/util/clauses.c postgresql-13-13.7/src/backend/optimizer/util/clauses.c --- postgresql-13-13.4/src/backend/optimizer/util/clauses.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/util/clauses.c 2022-05-09 21:16:30.000000000 +0000 @@ -4165,7 +4165,7 @@ if (ndelete < 0) elog(ERROR, "not enough default arguments"); if (ndelete > 0) - defaults = list_copy_tail(defaults, ndelete); + defaults = list_delete_first_n(defaults, ndelete); /* And form the combined argument list, not modifying the input list */ return list_concat_copy(args, defaults); diff -Nru postgresql-13-13.4/src/backend/optimizer/util/var.c postgresql-13-13.7/src/backend/optimizer/util/var.c --- postgresql-13-13.4/src/backend/optimizer/util/var.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/optimizer/util/var.c 2022-05-09 21:16:30.000000000 +0000 @@ -200,6 +200,16 @@ * join that forces delay of evaluation of a given qual clause * will be processed before we examine that clause here, so the * ph_eval_at value should have been updated to include it. + * + * Another problem is that a PlaceHolderVar can appear in quals or + * tlists that have been translated for use in a child appendrel. + * Typically such a PHV is a parameter expression sourced by some + * other relation, so that the translation from parent appendrel + * to child doesn't change its phrels, and we should still take + * ph_eval_at at face value. But in corner cases, the PHV's + * original phrels can include the parent appendrel itself, in + * which case the translated PHV will have the child appendrel in + * phrels, and we must translate ph_eval_at to match. */ PlaceHolderInfo *phinfo = NULL; @@ -215,12 +225,37 @@ phinfo = NULL; } } - if (phinfo != NULL) + if (phinfo == NULL) + { + /* No PlaceHolderInfo yet, use phrels */ + context->varnos = bms_add_members(context->varnos, + phv->phrels); + } + else if (bms_equal(phv->phrels, phinfo->ph_var->phrels)) + { + /* Normal case: use ph_eval_at */ context->varnos = bms_add_members(context->varnos, phinfo->ph_eval_at); + } else - context->varnos = bms_add_members(context->varnos, - phv->phrels); + { + /* Translated PlaceHolderVar: translate ph_eval_at to match */ + Relids newevalat, + delta; + + /* remove what was removed from phv->phrels ... */ + delta = bms_difference(phinfo->ph_var->phrels, phv->phrels); + newevalat = bms_difference(phinfo->ph_eval_at, delta); + /* ... then if that was in fact part of ph_eval_at ... */ + if (!bms_equal(newevalat, phinfo->ph_eval_at)) + { + /* ... add what was added */ + delta = bms_difference(phv->phrels, phinfo->ph_var->phrels); + newevalat = bms_join(newevalat, delta); + } + context->varnos = bms_join(context->varnos, + newevalat); + } return false; /* don't recurse into expression */ } } diff -Nru postgresql-13-13.4/src/backend/parser/analyze.c postgresql-13-13.7/src/backend/parser/analyze.c --- postgresql-13-13.4/src/backend/parser/analyze.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/analyze.c 2022-05-09 21:16:30.000000000 +0000 @@ -1331,7 +1331,7 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt) { Query *qry = makeNode(Query); - List *exprsLists; + List *exprsLists = NIL; List *coltypes = NIL; List *coltypmods = NIL; List *colcollations = NIL; @@ -1415,6 +1415,9 @@ /* Release sub-list's cells to save memory */ list_free(sublist); + + /* Prepare an exprsLists element for this row */ + exprsLists = lappend(exprsLists, NIL); } /* @@ -1469,25 +1472,15 @@ /* * Finally, rearrange the coerced expressions into row-organized lists. */ - exprsLists = NIL; - foreach(lc, colexprs[0]) - { - Node *col = (Node *) lfirst(lc); - List *sublist; - - sublist = list_make1(col); - exprsLists = lappend(exprsLists, sublist); - } - list_free(colexprs[0]); - for (i = 1; i < sublist_length; i++) + for (i = 0; i < sublist_length; i++) { forboth(lc, colexprs[i], lc2, exprsLists) { Node *col = (Node *) lfirst(lc); List *sublist = lfirst(lc2); - /* sublist pointer in exprsLists won't need adjustment */ - (void) lappend(sublist, col); + sublist = lappend(sublist, col); + lfirst(lc2) = sublist; } list_free(colexprs[i]); } @@ -2753,13 +2746,22 @@ if (lockedRels == NIL) { - /* all regular tables used in query */ + /* + * Lock all regular tables used in query and its subqueries. We + * examine inFromCl to exclude auto-added RTEs, particularly NEW/OLD + * in rules. This is a bit of an abuse of a mostly-obsolete flag, but + * it's convenient. We can't rely on the namespace mechanism that has + * largely replaced inFromCl, since for example we need to lock + * base-relation RTEs even if they are masked by upper joins. + */ i = 0; foreach(rt, qry->rtable) { RangeTblEntry *rte = (RangeTblEntry *) lfirst(rt); ++i; + if (!rte->inFromCl) + continue; switch (rte->rtekind) { case RTE_RELATION: @@ -2789,7 +2791,11 @@ } else { - /* just the named tables */ + /* + * Lock just the named tables. As above, we allow locking any base + * relation regardless of alias-visibility rules, so we need to + * examine inFromCl to exclude OLD/NEW. + */ foreach(l, lockedRels) { RangeVar *thisrel = (RangeVar *) lfirst(l); @@ -2810,6 +2816,8 @@ RangeTblEntry *rte = (RangeTblEntry *) lfirst(rt); ++i; + if (!rte->inFromCl) + continue; if (strcmp(rte->eref->aliasname, thisrel->relname) == 0) { switch (rte->rtekind) diff -Nru postgresql-13-13.4/src/backend/parser/gram.c postgresql-13-13.7/src/backend/parser/gram.c --- postgresql-13-13.4/src/backend/parser/gram.c 2021-08-09 21:03:30.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/gram.c 2022-05-09 21:29:44.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -70,9 +71,8 @@ #define yydebug base_yydebug #define yynerrs base_yynerrs - /* First part of user prologue. */ -#line 1 "gram.y" /* yacc.c:337 */ +#line 1 "gram.y" /*#define YYDEBUG 1*/ @@ -273,7 +273,17 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); -#line 277 "gram.c" /* yacc.c:337 */ +#line 277 "gram.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -286,583 +296,1179 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* In a future release of Bison, this section will be replaced - by #include "gram.h". */ -#ifndef YY_BASE_YY_GRAM_H_INCLUDED -# define YY_BASE_YY_GRAM_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int base_yydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - IDENT = 258, - UIDENT = 259, - FCONST = 260, - SCONST = 261, - USCONST = 262, - BCONST = 263, - XCONST = 264, - Op = 265, - ICONST = 266, - PARAM = 267, - TYPECAST = 268, - DOT_DOT = 269, - COLON_EQUALS = 270, - EQUALS_GREATER = 271, - LESS_EQUALS = 272, - GREATER_EQUALS = 273, - NOT_EQUALS = 274, - ABORT_P = 275, - ABSOLUTE_P = 276, - ACCESS = 277, - ACTION = 278, - ADD_P = 279, - ADMIN = 280, - AFTER = 281, - AGGREGATE = 282, - ALL = 283, - ALSO = 284, - ALTER = 285, - ALWAYS = 286, - ANALYSE = 287, - ANALYZE = 288, - AND = 289, - ANY = 290, - ARRAY = 291, - AS = 292, - ASC = 293, - ASSERTION = 294, - ASSIGNMENT = 295, - ASYMMETRIC = 296, - AT = 297, - ATTACH = 298, - ATTRIBUTE = 299, - AUTHORIZATION = 300, - BACKWARD = 301, - BEFORE = 302, - BEGIN_P = 303, - BETWEEN = 304, - BIGINT = 305, - BINARY = 306, - BIT = 307, - BOOLEAN_P = 308, - BOTH = 309, - BY = 310, - CACHE = 311, - CALL = 312, - CALLED = 313, - CASCADE = 314, - CASCADED = 315, - CASE = 316, - CAST = 317, - CATALOG_P = 318, - CHAIN = 319, - CHAR_P = 320, - CHARACTER = 321, - CHARACTERISTICS = 322, - CHECK = 323, - CHECKPOINT = 324, - CLASS = 325, - CLOSE = 326, - CLUSTER = 327, - COALESCE = 328, - COLLATE = 329, - COLLATION = 330, - COLUMN = 331, - COLUMNS = 332, - COMMENT = 333, - COMMENTS = 334, - COMMIT = 335, - COMMITTED = 336, - CONCURRENTLY = 337, - CONFIGURATION = 338, - CONFLICT = 339, - CONNECTION = 340, - CONSTRAINT = 341, - CONSTRAINTS = 342, - CONTENT_P = 343, - CONTINUE_P = 344, - CONVERSION_P = 345, - COPY = 346, - COST = 347, - CREATE = 348, - CROSS = 349, - CSV = 350, - CUBE = 351, - CURRENT_P = 352, - CURRENT_CATALOG = 353, - CURRENT_DATE = 354, - CURRENT_ROLE = 355, - CURRENT_SCHEMA = 356, - CURRENT_TIME = 357, - CURRENT_TIMESTAMP = 358, - CURRENT_USER = 359, - CURSOR = 360, - CYCLE = 361, - DATA_P = 362, - DATABASE = 363, - DAY_P = 364, - DEALLOCATE = 365, - DEC = 366, - DECIMAL_P = 367, - DECLARE = 368, - DEFAULT = 369, - DEFAULTS = 370, - DEFERRABLE = 371, - DEFERRED = 372, - DEFINER = 373, - DELETE_P = 374, - DELIMITER = 375, - DELIMITERS = 376, - DEPENDS = 377, - DESC = 378, - DETACH = 379, - DICTIONARY = 380, - DISABLE_P = 381, - DISCARD = 382, - DISTINCT = 383, - DO = 384, - DOCUMENT_P = 385, - DOMAIN_P = 386, - DOUBLE_P = 387, - DROP = 388, - EACH = 389, - ELSE = 390, - ENABLE_P = 391, - ENCODING = 392, - ENCRYPTED = 393, - END_P = 394, - ENUM_P = 395, - ESCAPE = 396, - EVENT = 397, - EXCEPT = 398, - EXCLUDE = 399, - EXCLUDING = 400, - EXCLUSIVE = 401, - EXECUTE = 402, - EXISTS = 403, - EXPLAIN = 404, - EXPRESSION = 405, - EXTENSION = 406, - EXTERNAL = 407, - EXTRACT = 408, - FALSE_P = 409, - FAMILY = 410, - FETCH = 411, - FILTER = 412, - FIRST_P = 413, - FLOAT_P = 414, - FOLLOWING = 415, - FOR = 416, - FORCE = 417, - FOREIGN = 418, - FORWARD = 419, - FREEZE = 420, - FROM = 421, - FULL = 422, - FUNCTION = 423, - FUNCTIONS = 424, - GENERATED = 425, - GLOBAL = 426, - GRANT = 427, - GRANTED = 428, - GREATEST = 429, - GROUP_P = 430, - GROUPING = 431, - GROUPS = 432, - HANDLER = 433, - HAVING = 434, - HEADER_P = 435, - HOLD = 436, - HOUR_P = 437, - IDENTITY_P = 438, - IF_P = 439, - ILIKE = 440, - IMMEDIATE = 441, - IMMUTABLE = 442, - IMPLICIT_P = 443, - IMPORT_P = 444, - IN_P = 445, - INCLUDE = 446, - INCLUDING = 447, - INCREMENT = 448, - INDEX = 449, - INDEXES = 450, - INHERIT = 451, - INHERITS = 452, - INITIALLY = 453, - INLINE_P = 454, - INNER_P = 455, - INOUT = 456, - INPUT_P = 457, - INSENSITIVE = 458, - INSERT = 459, - INSTEAD = 460, - INT_P = 461, - INTEGER = 462, - INTERSECT = 463, - INTERVAL = 464, - INTO = 465, - INVOKER = 466, - IS = 467, - ISNULL = 468, - ISOLATION = 469, - JOIN = 470, - KEY = 471, - LABEL = 472, - LANGUAGE = 473, - LARGE_P = 474, - LAST_P = 475, - LATERAL_P = 476, - LEADING = 477, - LEAKPROOF = 478, - LEAST = 479, - LEFT = 480, - LEVEL = 481, - LIKE = 482, - LIMIT = 483, - LISTEN = 484, - LOAD = 485, - LOCAL = 486, - LOCALTIME = 487, - LOCALTIMESTAMP = 488, - LOCATION = 489, - LOCK_P = 490, - LOCKED = 491, - LOGGED = 492, - MAPPING = 493, - MATCH = 494, - MATERIALIZED = 495, - MAXVALUE = 496, - METHOD = 497, - MINUTE_P = 498, - MINVALUE = 499, - MODE = 500, - MONTH_P = 501, - MOVE = 502, - NAME_P = 503, - NAMES = 504, - NATIONAL = 505, - NATURAL = 506, - NCHAR = 507, - NEW = 508, - NEXT = 509, - NFC = 510, - NFD = 511, - NFKC = 512, - NFKD = 513, - NO = 514, - NONE = 515, - NORMALIZE = 516, - NORMALIZED = 517, - NOT = 518, - NOTHING = 519, - NOTIFY = 520, - NOTNULL = 521, - NOWAIT = 522, - NULL_P = 523, - NULLIF = 524, - NULLS_P = 525, - NUMERIC = 526, - OBJECT_P = 527, - OF = 528, - OFF = 529, - OFFSET = 530, - OIDS = 531, - OLD = 532, - ON = 533, - ONLY = 534, - OPERATOR = 535, - OPTION = 536, - OPTIONS = 537, - OR = 538, - ORDER = 539, - ORDINALITY = 540, - OTHERS = 541, - OUT_P = 542, - OUTER_P = 543, - OVER = 544, - OVERLAPS = 545, - OVERLAY = 546, - OVERRIDING = 547, - OWNED = 548, - OWNER = 549, - PARALLEL = 550, - PARSER = 551, - PARTIAL = 552, - PARTITION = 553, - PASSING = 554, - PASSWORD = 555, - PLACING = 556, - PLANS = 557, - POLICY = 558, - POSITION = 559, - PRECEDING = 560, - PRECISION = 561, - PRESERVE = 562, - PREPARE = 563, - PREPARED = 564, - PRIMARY = 565, - PRIOR = 566, - PRIVILEGES = 567, - PROCEDURAL = 568, - PROCEDURE = 569, - PROCEDURES = 570, - PROGRAM = 571, - PUBLICATION = 572, - QUOTE = 573, - RANGE = 574, - READ = 575, - REAL = 576, - REASSIGN = 577, - RECHECK = 578, - RECURSIVE = 579, - REF = 580, - REFERENCES = 581, - REFERENCING = 582, - REFRESH = 583, - REINDEX = 584, - RELATIVE_P = 585, - RELEASE = 586, - RENAME = 587, - REPEATABLE = 588, - REPLACE = 589, - REPLICA = 590, - RESET = 591, - RESTART = 592, - RESTRICT = 593, - RETURNING = 594, - RETURNS = 595, - REVOKE = 596, - RIGHT = 597, - ROLE = 598, - ROLLBACK = 599, - ROLLUP = 600, - ROUTINE = 601, - ROUTINES = 602, - ROW = 603, - ROWS = 604, - RULE = 605, - SAVEPOINT = 606, - SCHEMA = 607, - SCHEMAS = 608, - SCROLL = 609, - SEARCH = 610, - SECOND_P = 611, - SECURITY = 612, - SELECT = 613, - SEQUENCE = 614, - SEQUENCES = 615, - SERIALIZABLE = 616, - SERVER = 617, - SESSION = 618, - SESSION_USER = 619, - SET = 620, - SETS = 621, - SETOF = 622, - SHARE = 623, - SHOW = 624, - SIMILAR = 625, - SIMPLE = 626, - SKIP = 627, - SMALLINT = 628, - SNAPSHOT = 629, - SOME = 630, - SQL_P = 631, - STABLE = 632, - STANDALONE_P = 633, - START = 634, - STATEMENT = 635, - STATISTICS = 636, - STDIN = 637, - STDOUT = 638, - STORAGE = 639, - STORED = 640, - STRICT_P = 641, - STRIP_P = 642, - SUBSCRIPTION = 643, - SUBSTRING = 644, - SUPPORT = 645, - SYMMETRIC = 646, - SYSID = 647, - SYSTEM_P = 648, - TABLE = 649, - TABLES = 650, - TABLESAMPLE = 651, - TABLESPACE = 652, - TEMP = 653, - TEMPLATE = 654, - TEMPORARY = 655, - TEXT_P = 656, - THEN = 657, - TIES = 658, - TIME = 659, - TIMESTAMP = 660, - TO = 661, - TRAILING = 662, - TRANSACTION = 663, - TRANSFORM = 664, - TREAT = 665, - TRIGGER = 666, - TRIM = 667, - TRUE_P = 668, - TRUNCATE = 669, - TRUSTED = 670, - TYPE_P = 671, - TYPES_P = 672, - UESCAPE = 673, - UNBOUNDED = 674, - UNCOMMITTED = 675, - UNENCRYPTED = 676, - UNION = 677, - UNIQUE = 678, - UNKNOWN = 679, - UNLISTEN = 680, - UNLOGGED = 681, - UNTIL = 682, - UPDATE = 683, - USER = 684, - USING = 685, - VACUUM = 686, - VALID = 687, - VALIDATE = 688, - VALIDATOR = 689, - VALUE_P = 690, - VALUES = 691, - VARCHAR = 692, - VARIADIC = 693, - VARYING = 694, - VERBOSE = 695, - VERSION_P = 696, - VIEW = 697, - VIEWS = 698, - VOLATILE = 699, - WHEN = 700, - WHERE = 701, - WHITESPACE_P = 702, - WINDOW = 703, - WITH = 704, - WITHIN = 705, - WITHOUT = 706, - WORK = 707, - WRAPPER = 708, - WRITE = 709, - XML_P = 710, - XMLATTRIBUTES = 711, - XMLCONCAT = 712, - XMLELEMENT = 713, - XMLEXISTS = 714, - XMLFOREST = 715, - XMLNAMESPACES = 716, - XMLPARSE = 717, - XMLPI = 718, - XMLROOT = 719, - XMLSERIALIZE = 720, - XMLTABLE = 721, - YEAR_P = 722, - YES_P = 723, - ZONE = 724, - NOT_LA = 725, - NULLS_LA = 726, - WITH_LA = 727, - POSTFIXOP = 728, - UMINUS = 729 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - -union YYSTYPE -{ -#line 211 "gram.y" /* yacc.c:352 */ - - core_YYSTYPE core_yystype; - /* these fields must match core_YYSTYPE: */ - int ival; - char *str; - const char *keyword; - - char chr; - bool boolean; - JoinType jtype; - DropBehavior dbehavior; - OnCommitAction oncommit; - List *list; - Node *node; - Value *value; - ObjectType objtype; - TypeName *typnam; - FunctionParameter *fun_param; - FunctionParameterMode fun_param_mode; - ObjectWithArgs *objwithargs; - DefElem *defelt; - SortBy *sortby; - WindowDef *windef; - JoinExpr *jexpr; - IndexElem *ielem; - Alias *alias; - RangeVar *range; - IntoClause *into; - WithClause *with; - InferClause *infer; - OnConflictClause *onconflict; - A_Indices *aind; - ResTarget *target; - struct PrivTarget *privtarget; - AccessPriv *accesspriv; - struct ImportQual *importqual; - InsertStmt *istmt; - VariableSetStmt *vsetstmt; - PartitionElem *partelem; - PartitionSpec *partspec; - PartitionBoundSpec *partboundspec; - RoleSpec *rolespec; - struct SelectLimit *selectlimit; - -#line 840 "gram.c" /* yacc.c:352 */ -}; - -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - -/* Location type. */ -#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE YYLTYPE; -struct YYLTYPE +#include "gram.h" +/* Symbol kind. */ +enum yysymbol_kind_t { - int first_line; - int first_column; - int last_line; - int last_column; + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_IDENT = 3, /* IDENT */ + YYSYMBOL_UIDENT = 4, /* UIDENT */ + YYSYMBOL_FCONST = 5, /* FCONST */ + YYSYMBOL_SCONST = 6, /* SCONST */ + YYSYMBOL_USCONST = 7, /* USCONST */ + YYSYMBOL_BCONST = 8, /* BCONST */ + YYSYMBOL_XCONST = 9, /* XCONST */ + YYSYMBOL_Op = 10, /* Op */ + YYSYMBOL_ICONST = 11, /* ICONST */ + YYSYMBOL_PARAM = 12, /* PARAM */ + YYSYMBOL_TYPECAST = 13, /* TYPECAST */ + YYSYMBOL_DOT_DOT = 14, /* DOT_DOT */ + YYSYMBOL_COLON_EQUALS = 15, /* COLON_EQUALS */ + YYSYMBOL_EQUALS_GREATER = 16, /* EQUALS_GREATER */ + YYSYMBOL_LESS_EQUALS = 17, /* LESS_EQUALS */ + YYSYMBOL_GREATER_EQUALS = 18, /* GREATER_EQUALS */ + YYSYMBOL_NOT_EQUALS = 19, /* NOT_EQUALS */ + YYSYMBOL_ABORT_P = 20, /* ABORT_P */ + YYSYMBOL_ABSOLUTE_P = 21, /* ABSOLUTE_P */ + YYSYMBOL_ACCESS = 22, /* ACCESS */ + YYSYMBOL_ACTION = 23, /* ACTION */ + YYSYMBOL_ADD_P = 24, /* ADD_P */ + YYSYMBOL_ADMIN = 25, /* ADMIN */ + YYSYMBOL_AFTER = 26, /* AFTER */ + YYSYMBOL_AGGREGATE = 27, /* AGGREGATE */ + YYSYMBOL_ALL = 28, /* ALL */ + YYSYMBOL_ALSO = 29, /* ALSO */ + YYSYMBOL_ALTER = 30, /* ALTER */ + YYSYMBOL_ALWAYS = 31, /* ALWAYS */ + YYSYMBOL_ANALYSE = 32, /* ANALYSE */ + YYSYMBOL_ANALYZE = 33, /* ANALYZE */ + YYSYMBOL_AND = 34, /* AND */ + YYSYMBOL_ANY = 35, /* ANY */ + YYSYMBOL_ARRAY = 36, /* ARRAY */ + YYSYMBOL_AS = 37, /* AS */ + YYSYMBOL_ASC = 38, /* ASC */ + YYSYMBOL_ASSERTION = 39, /* ASSERTION */ + YYSYMBOL_ASSIGNMENT = 40, /* ASSIGNMENT */ + YYSYMBOL_ASYMMETRIC = 41, /* ASYMMETRIC */ + YYSYMBOL_AT = 42, /* AT */ + YYSYMBOL_ATTACH = 43, /* ATTACH */ + YYSYMBOL_ATTRIBUTE = 44, /* ATTRIBUTE */ + YYSYMBOL_AUTHORIZATION = 45, /* AUTHORIZATION */ + YYSYMBOL_BACKWARD = 46, /* BACKWARD */ + YYSYMBOL_BEFORE = 47, /* BEFORE */ + YYSYMBOL_BEGIN_P = 48, /* BEGIN_P */ + YYSYMBOL_BETWEEN = 49, /* BETWEEN */ + YYSYMBOL_BIGINT = 50, /* BIGINT */ + YYSYMBOL_BINARY = 51, /* BINARY */ + YYSYMBOL_BIT = 52, /* BIT */ + YYSYMBOL_BOOLEAN_P = 53, /* BOOLEAN_P */ + YYSYMBOL_BOTH = 54, /* BOTH */ + YYSYMBOL_BY = 55, /* BY */ + YYSYMBOL_CACHE = 56, /* CACHE */ + YYSYMBOL_CALL = 57, /* CALL */ + YYSYMBOL_CALLED = 58, /* CALLED */ + YYSYMBOL_CASCADE = 59, /* CASCADE */ + YYSYMBOL_CASCADED = 60, /* CASCADED */ + YYSYMBOL_CASE = 61, /* CASE */ + YYSYMBOL_CAST = 62, /* CAST */ + YYSYMBOL_CATALOG_P = 63, /* CATALOG_P */ + YYSYMBOL_CHAIN = 64, /* CHAIN */ + YYSYMBOL_CHAR_P = 65, /* CHAR_P */ + YYSYMBOL_CHARACTER = 66, /* CHARACTER */ + YYSYMBOL_CHARACTERISTICS = 67, /* CHARACTERISTICS */ + YYSYMBOL_CHECK = 68, /* CHECK */ + YYSYMBOL_CHECKPOINT = 69, /* CHECKPOINT */ + YYSYMBOL_CLASS = 70, /* CLASS */ + YYSYMBOL_CLOSE = 71, /* CLOSE */ + YYSYMBOL_CLUSTER = 72, /* CLUSTER */ + YYSYMBOL_COALESCE = 73, /* COALESCE */ + YYSYMBOL_COLLATE = 74, /* COLLATE */ + YYSYMBOL_COLLATION = 75, /* COLLATION */ + YYSYMBOL_COLUMN = 76, /* COLUMN */ + YYSYMBOL_COLUMNS = 77, /* COLUMNS */ + YYSYMBOL_COMMENT = 78, /* COMMENT */ + YYSYMBOL_COMMENTS = 79, /* COMMENTS */ + YYSYMBOL_COMMIT = 80, /* COMMIT */ + YYSYMBOL_COMMITTED = 81, /* COMMITTED */ + YYSYMBOL_CONCURRENTLY = 82, /* CONCURRENTLY */ + YYSYMBOL_CONFIGURATION = 83, /* CONFIGURATION */ + YYSYMBOL_CONFLICT = 84, /* CONFLICT */ + YYSYMBOL_CONNECTION = 85, /* CONNECTION */ + YYSYMBOL_CONSTRAINT = 86, /* CONSTRAINT */ + YYSYMBOL_CONSTRAINTS = 87, /* CONSTRAINTS */ + YYSYMBOL_CONTENT_P = 88, /* CONTENT_P */ + YYSYMBOL_CONTINUE_P = 89, /* CONTINUE_P */ + YYSYMBOL_CONVERSION_P = 90, /* CONVERSION_P */ + YYSYMBOL_COPY = 91, /* COPY */ + YYSYMBOL_COST = 92, /* COST */ + YYSYMBOL_CREATE = 93, /* CREATE */ + YYSYMBOL_CROSS = 94, /* CROSS */ + YYSYMBOL_CSV = 95, /* CSV */ + YYSYMBOL_CUBE = 96, /* CUBE */ + YYSYMBOL_CURRENT_P = 97, /* CURRENT_P */ + YYSYMBOL_CURRENT_CATALOG = 98, /* CURRENT_CATALOG */ + YYSYMBOL_CURRENT_DATE = 99, /* CURRENT_DATE */ + YYSYMBOL_CURRENT_ROLE = 100, /* CURRENT_ROLE */ + YYSYMBOL_CURRENT_SCHEMA = 101, /* CURRENT_SCHEMA */ + YYSYMBOL_CURRENT_TIME = 102, /* CURRENT_TIME */ + YYSYMBOL_CURRENT_TIMESTAMP = 103, /* CURRENT_TIMESTAMP */ + YYSYMBOL_CURRENT_USER = 104, /* CURRENT_USER */ + YYSYMBOL_CURSOR = 105, /* CURSOR */ + YYSYMBOL_CYCLE = 106, /* CYCLE */ + YYSYMBOL_DATA_P = 107, /* DATA_P */ + YYSYMBOL_DATABASE = 108, /* DATABASE */ + YYSYMBOL_DAY_P = 109, /* DAY_P */ + YYSYMBOL_DEALLOCATE = 110, /* DEALLOCATE */ + YYSYMBOL_DEC = 111, /* DEC */ + YYSYMBOL_DECIMAL_P = 112, /* DECIMAL_P */ + YYSYMBOL_DECLARE = 113, /* DECLARE */ + YYSYMBOL_DEFAULT = 114, /* DEFAULT */ + YYSYMBOL_DEFAULTS = 115, /* DEFAULTS */ + YYSYMBOL_DEFERRABLE = 116, /* DEFERRABLE */ + YYSYMBOL_DEFERRED = 117, /* DEFERRED */ + YYSYMBOL_DEFINER = 118, /* DEFINER */ + YYSYMBOL_DELETE_P = 119, /* DELETE_P */ + YYSYMBOL_DELIMITER = 120, /* DELIMITER */ + YYSYMBOL_DELIMITERS = 121, /* DELIMITERS */ + YYSYMBOL_DEPENDS = 122, /* DEPENDS */ + YYSYMBOL_DESC = 123, /* DESC */ + YYSYMBOL_DETACH = 124, /* DETACH */ + YYSYMBOL_DICTIONARY = 125, /* DICTIONARY */ + YYSYMBOL_DISABLE_P = 126, /* DISABLE_P */ + YYSYMBOL_DISCARD = 127, /* DISCARD */ + YYSYMBOL_DISTINCT = 128, /* DISTINCT */ + YYSYMBOL_DO = 129, /* DO */ + YYSYMBOL_DOCUMENT_P = 130, /* DOCUMENT_P */ + YYSYMBOL_DOMAIN_P = 131, /* DOMAIN_P */ + YYSYMBOL_DOUBLE_P = 132, /* DOUBLE_P */ + YYSYMBOL_DROP = 133, /* DROP */ + YYSYMBOL_EACH = 134, /* EACH */ + YYSYMBOL_ELSE = 135, /* ELSE */ + YYSYMBOL_ENABLE_P = 136, /* ENABLE_P */ + YYSYMBOL_ENCODING = 137, /* ENCODING */ + YYSYMBOL_ENCRYPTED = 138, /* ENCRYPTED */ + YYSYMBOL_END_P = 139, /* END_P */ + YYSYMBOL_ENUM_P = 140, /* ENUM_P */ + YYSYMBOL_ESCAPE = 141, /* ESCAPE */ + YYSYMBOL_EVENT = 142, /* EVENT */ + YYSYMBOL_EXCEPT = 143, /* EXCEPT */ + YYSYMBOL_EXCLUDE = 144, /* EXCLUDE */ + YYSYMBOL_EXCLUDING = 145, /* EXCLUDING */ + YYSYMBOL_EXCLUSIVE = 146, /* EXCLUSIVE */ + YYSYMBOL_EXECUTE = 147, /* EXECUTE */ + YYSYMBOL_EXISTS = 148, /* EXISTS */ + YYSYMBOL_EXPLAIN = 149, /* EXPLAIN */ + YYSYMBOL_EXPRESSION = 150, /* EXPRESSION */ + YYSYMBOL_EXTENSION = 151, /* EXTENSION */ + YYSYMBOL_EXTERNAL = 152, /* EXTERNAL */ + YYSYMBOL_EXTRACT = 153, /* EXTRACT */ + YYSYMBOL_FALSE_P = 154, /* FALSE_P */ + YYSYMBOL_FAMILY = 155, /* FAMILY */ + YYSYMBOL_FETCH = 156, /* FETCH */ + YYSYMBOL_FILTER = 157, /* FILTER */ + YYSYMBOL_FIRST_P = 158, /* FIRST_P */ + YYSYMBOL_FLOAT_P = 159, /* FLOAT_P */ + YYSYMBOL_FOLLOWING = 160, /* FOLLOWING */ + YYSYMBOL_FOR = 161, /* FOR */ + YYSYMBOL_FORCE = 162, /* FORCE */ + YYSYMBOL_FOREIGN = 163, /* FOREIGN */ + YYSYMBOL_FORWARD = 164, /* FORWARD */ + YYSYMBOL_FREEZE = 165, /* FREEZE */ + YYSYMBOL_FROM = 166, /* FROM */ + YYSYMBOL_FULL = 167, /* FULL */ + YYSYMBOL_FUNCTION = 168, /* FUNCTION */ + YYSYMBOL_FUNCTIONS = 169, /* FUNCTIONS */ + YYSYMBOL_GENERATED = 170, /* GENERATED */ + YYSYMBOL_GLOBAL = 171, /* GLOBAL */ + YYSYMBOL_GRANT = 172, /* GRANT */ + YYSYMBOL_GRANTED = 173, /* GRANTED */ + YYSYMBOL_GREATEST = 174, /* GREATEST */ + YYSYMBOL_GROUP_P = 175, /* GROUP_P */ + YYSYMBOL_GROUPING = 176, /* GROUPING */ + YYSYMBOL_GROUPS = 177, /* GROUPS */ + YYSYMBOL_HANDLER = 178, /* HANDLER */ + YYSYMBOL_HAVING = 179, /* HAVING */ + YYSYMBOL_HEADER_P = 180, /* HEADER_P */ + YYSYMBOL_HOLD = 181, /* HOLD */ + YYSYMBOL_HOUR_P = 182, /* HOUR_P */ + YYSYMBOL_IDENTITY_P = 183, /* IDENTITY_P */ + YYSYMBOL_IF_P = 184, /* IF_P */ + YYSYMBOL_ILIKE = 185, /* ILIKE */ + YYSYMBOL_IMMEDIATE = 186, /* IMMEDIATE */ + YYSYMBOL_IMMUTABLE = 187, /* IMMUTABLE */ + YYSYMBOL_IMPLICIT_P = 188, /* IMPLICIT_P */ + YYSYMBOL_IMPORT_P = 189, /* IMPORT_P */ + YYSYMBOL_IN_P = 190, /* IN_P */ + YYSYMBOL_INCLUDE = 191, /* INCLUDE */ + YYSYMBOL_INCLUDING = 192, /* INCLUDING */ + YYSYMBOL_INCREMENT = 193, /* INCREMENT */ + YYSYMBOL_INDEX = 194, /* INDEX */ + YYSYMBOL_INDEXES = 195, /* INDEXES */ + YYSYMBOL_INHERIT = 196, /* INHERIT */ + YYSYMBOL_INHERITS = 197, /* INHERITS */ + YYSYMBOL_INITIALLY = 198, /* INITIALLY */ + YYSYMBOL_INLINE_P = 199, /* INLINE_P */ + YYSYMBOL_INNER_P = 200, /* INNER_P */ + YYSYMBOL_INOUT = 201, /* INOUT */ + YYSYMBOL_INPUT_P = 202, /* INPUT_P */ + YYSYMBOL_INSENSITIVE = 203, /* INSENSITIVE */ + YYSYMBOL_INSERT = 204, /* INSERT */ + YYSYMBOL_INSTEAD = 205, /* INSTEAD */ + YYSYMBOL_INT_P = 206, /* INT_P */ + YYSYMBOL_INTEGER = 207, /* INTEGER */ + YYSYMBOL_INTERSECT = 208, /* INTERSECT */ + YYSYMBOL_INTERVAL = 209, /* INTERVAL */ + YYSYMBOL_INTO = 210, /* INTO */ + YYSYMBOL_INVOKER = 211, /* INVOKER */ + YYSYMBOL_IS = 212, /* IS */ + YYSYMBOL_ISNULL = 213, /* ISNULL */ + YYSYMBOL_ISOLATION = 214, /* ISOLATION */ + YYSYMBOL_JOIN = 215, /* JOIN */ + YYSYMBOL_KEY = 216, /* KEY */ + YYSYMBOL_LABEL = 217, /* LABEL */ + YYSYMBOL_LANGUAGE = 218, /* LANGUAGE */ + YYSYMBOL_LARGE_P = 219, /* LARGE_P */ + YYSYMBOL_LAST_P = 220, /* LAST_P */ + YYSYMBOL_LATERAL_P = 221, /* LATERAL_P */ + YYSYMBOL_LEADING = 222, /* LEADING */ + YYSYMBOL_LEAKPROOF = 223, /* LEAKPROOF */ + YYSYMBOL_LEAST = 224, /* LEAST */ + YYSYMBOL_LEFT = 225, /* LEFT */ + YYSYMBOL_LEVEL = 226, /* LEVEL */ + YYSYMBOL_LIKE = 227, /* LIKE */ + YYSYMBOL_LIMIT = 228, /* LIMIT */ + YYSYMBOL_LISTEN = 229, /* LISTEN */ + YYSYMBOL_LOAD = 230, /* LOAD */ + YYSYMBOL_LOCAL = 231, /* LOCAL */ + YYSYMBOL_LOCALTIME = 232, /* LOCALTIME */ + YYSYMBOL_LOCALTIMESTAMP = 233, /* LOCALTIMESTAMP */ + YYSYMBOL_LOCATION = 234, /* LOCATION */ + YYSYMBOL_LOCK_P = 235, /* LOCK_P */ + YYSYMBOL_LOCKED = 236, /* LOCKED */ + YYSYMBOL_LOGGED = 237, /* LOGGED */ + YYSYMBOL_MAPPING = 238, /* MAPPING */ + YYSYMBOL_MATCH = 239, /* MATCH */ + YYSYMBOL_MATERIALIZED = 240, /* MATERIALIZED */ + YYSYMBOL_MAXVALUE = 241, /* MAXVALUE */ + YYSYMBOL_METHOD = 242, /* METHOD */ + YYSYMBOL_MINUTE_P = 243, /* MINUTE_P */ + YYSYMBOL_MINVALUE = 244, /* MINVALUE */ + YYSYMBOL_MODE = 245, /* MODE */ + YYSYMBOL_MONTH_P = 246, /* MONTH_P */ + YYSYMBOL_MOVE = 247, /* MOVE */ + YYSYMBOL_NAME_P = 248, /* NAME_P */ + YYSYMBOL_NAMES = 249, /* NAMES */ + YYSYMBOL_NATIONAL = 250, /* NATIONAL */ + YYSYMBOL_NATURAL = 251, /* NATURAL */ + YYSYMBOL_NCHAR = 252, /* NCHAR */ + YYSYMBOL_NEW = 253, /* NEW */ + YYSYMBOL_NEXT = 254, /* NEXT */ + YYSYMBOL_NFC = 255, /* NFC */ + YYSYMBOL_NFD = 256, /* NFD */ + YYSYMBOL_NFKC = 257, /* NFKC */ + YYSYMBOL_NFKD = 258, /* NFKD */ + YYSYMBOL_NO = 259, /* NO */ + YYSYMBOL_NONE = 260, /* NONE */ + YYSYMBOL_NORMALIZE = 261, /* NORMALIZE */ + YYSYMBOL_NORMALIZED = 262, /* NORMALIZED */ + YYSYMBOL_NOT = 263, /* NOT */ + YYSYMBOL_NOTHING = 264, /* NOTHING */ + YYSYMBOL_NOTIFY = 265, /* NOTIFY */ + YYSYMBOL_NOTNULL = 266, /* NOTNULL */ + YYSYMBOL_NOWAIT = 267, /* NOWAIT */ + YYSYMBOL_NULL_P = 268, /* NULL_P */ + YYSYMBOL_NULLIF = 269, /* NULLIF */ + YYSYMBOL_NULLS_P = 270, /* NULLS_P */ + YYSYMBOL_NUMERIC = 271, /* NUMERIC */ + YYSYMBOL_OBJECT_P = 272, /* OBJECT_P */ + YYSYMBOL_OF = 273, /* OF */ + YYSYMBOL_OFF = 274, /* OFF */ + YYSYMBOL_OFFSET = 275, /* OFFSET */ + YYSYMBOL_OIDS = 276, /* OIDS */ + YYSYMBOL_OLD = 277, /* OLD */ + YYSYMBOL_ON = 278, /* ON */ + YYSYMBOL_ONLY = 279, /* ONLY */ + YYSYMBOL_OPERATOR = 280, /* OPERATOR */ + YYSYMBOL_OPTION = 281, /* OPTION */ + YYSYMBOL_OPTIONS = 282, /* OPTIONS */ + YYSYMBOL_OR = 283, /* OR */ + YYSYMBOL_ORDER = 284, /* ORDER */ + YYSYMBOL_ORDINALITY = 285, /* ORDINALITY */ + YYSYMBOL_OTHERS = 286, /* OTHERS */ + YYSYMBOL_OUT_P = 287, /* OUT_P */ + YYSYMBOL_OUTER_P = 288, /* OUTER_P */ + YYSYMBOL_OVER = 289, /* OVER */ + YYSYMBOL_OVERLAPS = 290, /* OVERLAPS */ + YYSYMBOL_OVERLAY = 291, /* OVERLAY */ + YYSYMBOL_OVERRIDING = 292, /* OVERRIDING */ + YYSYMBOL_OWNED = 293, /* OWNED */ + YYSYMBOL_OWNER = 294, /* OWNER */ + YYSYMBOL_PARALLEL = 295, /* PARALLEL */ + YYSYMBOL_PARSER = 296, /* PARSER */ + YYSYMBOL_PARTIAL = 297, /* PARTIAL */ + YYSYMBOL_PARTITION = 298, /* PARTITION */ + YYSYMBOL_PASSING = 299, /* PASSING */ + YYSYMBOL_PASSWORD = 300, /* PASSWORD */ + YYSYMBOL_PLACING = 301, /* PLACING */ + YYSYMBOL_PLANS = 302, /* PLANS */ + YYSYMBOL_POLICY = 303, /* POLICY */ + YYSYMBOL_POSITION = 304, /* POSITION */ + YYSYMBOL_PRECEDING = 305, /* PRECEDING */ + YYSYMBOL_PRECISION = 306, /* PRECISION */ + YYSYMBOL_PRESERVE = 307, /* PRESERVE */ + YYSYMBOL_PREPARE = 308, /* PREPARE */ + YYSYMBOL_PREPARED = 309, /* PREPARED */ + YYSYMBOL_PRIMARY = 310, /* PRIMARY */ + YYSYMBOL_PRIOR = 311, /* PRIOR */ + YYSYMBOL_PRIVILEGES = 312, /* PRIVILEGES */ + YYSYMBOL_PROCEDURAL = 313, /* PROCEDURAL */ + YYSYMBOL_PROCEDURE = 314, /* PROCEDURE */ + YYSYMBOL_PROCEDURES = 315, /* PROCEDURES */ + YYSYMBOL_PROGRAM = 316, /* PROGRAM */ + YYSYMBOL_PUBLICATION = 317, /* PUBLICATION */ + YYSYMBOL_QUOTE = 318, /* QUOTE */ + YYSYMBOL_RANGE = 319, /* RANGE */ + YYSYMBOL_READ = 320, /* READ */ + YYSYMBOL_REAL = 321, /* REAL */ + YYSYMBOL_REASSIGN = 322, /* REASSIGN */ + YYSYMBOL_RECHECK = 323, /* RECHECK */ + YYSYMBOL_RECURSIVE = 324, /* RECURSIVE */ + YYSYMBOL_REF = 325, /* REF */ + YYSYMBOL_REFERENCES = 326, /* REFERENCES */ + YYSYMBOL_REFERENCING = 327, /* REFERENCING */ + YYSYMBOL_REFRESH = 328, /* REFRESH */ + YYSYMBOL_REINDEX = 329, /* REINDEX */ + YYSYMBOL_RELATIVE_P = 330, /* RELATIVE_P */ + YYSYMBOL_RELEASE = 331, /* RELEASE */ + YYSYMBOL_RENAME = 332, /* RENAME */ + YYSYMBOL_REPEATABLE = 333, /* REPEATABLE */ + YYSYMBOL_REPLACE = 334, /* REPLACE */ + YYSYMBOL_REPLICA = 335, /* REPLICA */ + YYSYMBOL_RESET = 336, /* RESET */ + YYSYMBOL_RESTART = 337, /* RESTART */ + YYSYMBOL_RESTRICT = 338, /* RESTRICT */ + YYSYMBOL_RETURNING = 339, /* RETURNING */ + YYSYMBOL_RETURNS = 340, /* RETURNS */ + YYSYMBOL_REVOKE = 341, /* REVOKE */ + YYSYMBOL_RIGHT = 342, /* RIGHT */ + YYSYMBOL_ROLE = 343, /* ROLE */ + YYSYMBOL_ROLLBACK = 344, /* ROLLBACK */ + YYSYMBOL_ROLLUP = 345, /* ROLLUP */ + YYSYMBOL_ROUTINE = 346, /* ROUTINE */ + YYSYMBOL_ROUTINES = 347, /* ROUTINES */ + YYSYMBOL_ROW = 348, /* ROW */ + YYSYMBOL_ROWS = 349, /* ROWS */ + YYSYMBOL_RULE = 350, /* RULE */ + YYSYMBOL_SAVEPOINT = 351, /* SAVEPOINT */ + YYSYMBOL_SCHEMA = 352, /* SCHEMA */ + YYSYMBOL_SCHEMAS = 353, /* SCHEMAS */ + YYSYMBOL_SCROLL = 354, /* SCROLL */ + YYSYMBOL_SEARCH = 355, /* SEARCH */ + YYSYMBOL_SECOND_P = 356, /* SECOND_P */ + YYSYMBOL_SECURITY = 357, /* SECURITY */ + YYSYMBOL_SELECT = 358, /* SELECT */ + YYSYMBOL_SEQUENCE = 359, /* SEQUENCE */ + YYSYMBOL_SEQUENCES = 360, /* SEQUENCES */ + YYSYMBOL_SERIALIZABLE = 361, /* SERIALIZABLE */ + YYSYMBOL_SERVER = 362, /* SERVER */ + YYSYMBOL_SESSION = 363, /* SESSION */ + YYSYMBOL_SESSION_USER = 364, /* SESSION_USER */ + YYSYMBOL_SET = 365, /* SET */ + YYSYMBOL_SETS = 366, /* SETS */ + YYSYMBOL_SETOF = 367, /* SETOF */ + YYSYMBOL_SHARE = 368, /* SHARE */ + YYSYMBOL_SHOW = 369, /* SHOW */ + YYSYMBOL_SIMILAR = 370, /* SIMILAR */ + YYSYMBOL_SIMPLE = 371, /* SIMPLE */ + YYSYMBOL_SKIP = 372, /* SKIP */ + YYSYMBOL_SMALLINT = 373, /* SMALLINT */ + YYSYMBOL_SNAPSHOT = 374, /* SNAPSHOT */ + YYSYMBOL_SOME = 375, /* SOME */ + YYSYMBOL_SQL_P = 376, /* SQL_P */ + YYSYMBOL_STABLE = 377, /* STABLE */ + YYSYMBOL_STANDALONE_P = 378, /* STANDALONE_P */ + YYSYMBOL_START = 379, /* START */ + YYSYMBOL_STATEMENT = 380, /* STATEMENT */ + YYSYMBOL_STATISTICS = 381, /* STATISTICS */ + YYSYMBOL_STDIN = 382, /* STDIN */ + YYSYMBOL_STDOUT = 383, /* STDOUT */ + YYSYMBOL_STORAGE = 384, /* STORAGE */ + YYSYMBOL_STORED = 385, /* STORED */ + YYSYMBOL_STRICT_P = 386, /* STRICT_P */ + YYSYMBOL_STRIP_P = 387, /* STRIP_P */ + YYSYMBOL_SUBSCRIPTION = 388, /* SUBSCRIPTION */ + YYSYMBOL_SUBSTRING = 389, /* SUBSTRING */ + YYSYMBOL_SUPPORT = 390, /* SUPPORT */ + YYSYMBOL_SYMMETRIC = 391, /* SYMMETRIC */ + YYSYMBOL_SYSID = 392, /* SYSID */ + YYSYMBOL_SYSTEM_P = 393, /* SYSTEM_P */ + YYSYMBOL_TABLE = 394, /* TABLE */ + YYSYMBOL_TABLES = 395, /* TABLES */ + YYSYMBOL_TABLESAMPLE = 396, /* TABLESAMPLE */ + YYSYMBOL_TABLESPACE = 397, /* TABLESPACE */ + YYSYMBOL_TEMP = 398, /* TEMP */ + YYSYMBOL_TEMPLATE = 399, /* TEMPLATE */ + YYSYMBOL_TEMPORARY = 400, /* TEMPORARY */ + YYSYMBOL_TEXT_P = 401, /* TEXT_P */ + YYSYMBOL_THEN = 402, /* THEN */ + YYSYMBOL_TIES = 403, /* TIES */ + YYSYMBOL_TIME = 404, /* TIME */ + YYSYMBOL_TIMESTAMP = 405, /* TIMESTAMP */ + YYSYMBOL_TO = 406, /* TO */ + YYSYMBOL_TRAILING = 407, /* TRAILING */ + YYSYMBOL_TRANSACTION = 408, /* TRANSACTION */ + YYSYMBOL_TRANSFORM = 409, /* TRANSFORM */ + YYSYMBOL_TREAT = 410, /* TREAT */ + YYSYMBOL_TRIGGER = 411, /* TRIGGER */ + YYSYMBOL_TRIM = 412, /* TRIM */ + YYSYMBOL_TRUE_P = 413, /* TRUE_P */ + YYSYMBOL_TRUNCATE = 414, /* TRUNCATE */ + YYSYMBOL_TRUSTED = 415, /* TRUSTED */ + YYSYMBOL_TYPE_P = 416, /* TYPE_P */ + YYSYMBOL_TYPES_P = 417, /* TYPES_P */ + YYSYMBOL_UESCAPE = 418, /* UESCAPE */ + YYSYMBOL_UNBOUNDED = 419, /* UNBOUNDED */ + YYSYMBOL_UNCOMMITTED = 420, /* UNCOMMITTED */ + YYSYMBOL_UNENCRYPTED = 421, /* UNENCRYPTED */ + YYSYMBOL_UNION = 422, /* UNION */ + YYSYMBOL_UNIQUE = 423, /* UNIQUE */ + YYSYMBOL_UNKNOWN = 424, /* UNKNOWN */ + YYSYMBOL_UNLISTEN = 425, /* UNLISTEN */ + YYSYMBOL_UNLOGGED = 426, /* UNLOGGED */ + YYSYMBOL_UNTIL = 427, /* UNTIL */ + YYSYMBOL_UPDATE = 428, /* UPDATE */ + YYSYMBOL_USER = 429, /* USER */ + YYSYMBOL_USING = 430, /* USING */ + YYSYMBOL_VACUUM = 431, /* VACUUM */ + YYSYMBOL_VALID = 432, /* VALID */ + YYSYMBOL_VALIDATE = 433, /* VALIDATE */ + YYSYMBOL_VALIDATOR = 434, /* VALIDATOR */ + YYSYMBOL_VALUE_P = 435, /* VALUE_P */ + YYSYMBOL_VALUES = 436, /* VALUES */ + YYSYMBOL_VARCHAR = 437, /* VARCHAR */ + YYSYMBOL_VARIADIC = 438, /* VARIADIC */ + YYSYMBOL_VARYING = 439, /* VARYING */ + YYSYMBOL_VERBOSE = 440, /* VERBOSE */ + YYSYMBOL_VERSION_P = 441, /* VERSION_P */ + YYSYMBOL_VIEW = 442, /* VIEW */ + YYSYMBOL_VIEWS = 443, /* VIEWS */ + YYSYMBOL_VOLATILE = 444, /* VOLATILE */ + YYSYMBOL_WHEN = 445, /* WHEN */ + YYSYMBOL_WHERE = 446, /* WHERE */ + YYSYMBOL_WHITESPACE_P = 447, /* WHITESPACE_P */ + YYSYMBOL_WINDOW = 448, /* WINDOW */ + YYSYMBOL_WITH = 449, /* WITH */ + YYSYMBOL_WITHIN = 450, /* WITHIN */ + YYSYMBOL_WITHOUT = 451, /* WITHOUT */ + YYSYMBOL_WORK = 452, /* WORK */ + YYSYMBOL_WRAPPER = 453, /* WRAPPER */ + YYSYMBOL_WRITE = 454, /* WRITE */ + YYSYMBOL_XML_P = 455, /* XML_P */ + YYSYMBOL_XMLATTRIBUTES = 456, /* XMLATTRIBUTES */ + YYSYMBOL_XMLCONCAT = 457, /* XMLCONCAT */ + YYSYMBOL_XMLELEMENT = 458, /* XMLELEMENT */ + YYSYMBOL_XMLEXISTS = 459, /* XMLEXISTS */ + YYSYMBOL_XMLFOREST = 460, /* XMLFOREST */ + YYSYMBOL_XMLNAMESPACES = 461, /* XMLNAMESPACES */ + YYSYMBOL_XMLPARSE = 462, /* XMLPARSE */ + YYSYMBOL_XMLPI = 463, /* XMLPI */ + YYSYMBOL_XMLROOT = 464, /* XMLROOT */ + YYSYMBOL_XMLSERIALIZE = 465, /* XMLSERIALIZE */ + YYSYMBOL_XMLTABLE = 466, /* XMLTABLE */ + YYSYMBOL_YEAR_P = 467, /* YEAR_P */ + YYSYMBOL_YES_P = 468, /* YES_P */ + YYSYMBOL_ZONE = 469, /* ZONE */ + YYSYMBOL_NOT_LA = 470, /* NOT_LA */ + YYSYMBOL_NULLS_LA = 471, /* NULLS_LA */ + YYSYMBOL_WITH_LA = 472, /* WITH_LA */ + YYSYMBOL_473_ = 473, /* '<' */ + YYSYMBOL_474_ = 474, /* '>' */ + YYSYMBOL_475_ = 475, /* '=' */ + YYSYMBOL_POSTFIXOP = 476, /* POSTFIXOP */ + YYSYMBOL_477_ = 477, /* '+' */ + YYSYMBOL_478_ = 478, /* '-' */ + YYSYMBOL_479_ = 479, /* '*' */ + YYSYMBOL_480_ = 480, /* '/' */ + YYSYMBOL_481_ = 481, /* '%' */ + YYSYMBOL_482_ = 482, /* '^' */ + YYSYMBOL_UMINUS = 483, /* UMINUS */ + YYSYMBOL_484_ = 484, /* '[' */ + YYSYMBOL_485_ = 485, /* ']' */ + YYSYMBOL_486_ = 486, /* '(' */ + YYSYMBOL_487_ = 487, /* ')' */ + YYSYMBOL_488_ = 488, /* '.' */ + YYSYMBOL_489_ = 489, /* ';' */ + YYSYMBOL_490_ = 490, /* ',' */ + YYSYMBOL_491_ = 491, /* ':' */ + YYSYMBOL_YYACCEPT = 492, /* $accept */ + YYSYMBOL_stmtblock = 493, /* stmtblock */ + YYSYMBOL_stmtmulti = 494, /* stmtmulti */ + YYSYMBOL_stmt = 495, /* stmt */ + YYSYMBOL_CallStmt = 496, /* CallStmt */ + YYSYMBOL_CreateRoleStmt = 497, /* CreateRoleStmt */ + YYSYMBOL_opt_with = 498, /* opt_with */ + YYSYMBOL_OptRoleList = 499, /* OptRoleList */ + YYSYMBOL_AlterOptRoleList = 500, /* AlterOptRoleList */ + YYSYMBOL_AlterOptRoleElem = 501, /* AlterOptRoleElem */ + YYSYMBOL_CreateOptRoleElem = 502, /* CreateOptRoleElem */ + YYSYMBOL_CreateUserStmt = 503, /* CreateUserStmt */ + YYSYMBOL_AlterRoleStmt = 504, /* AlterRoleStmt */ + YYSYMBOL_opt_in_database = 505, /* opt_in_database */ + YYSYMBOL_AlterRoleSetStmt = 506, /* AlterRoleSetStmt */ + YYSYMBOL_DropRoleStmt = 507, /* DropRoleStmt */ + YYSYMBOL_CreateGroupStmt = 508, /* CreateGroupStmt */ + YYSYMBOL_AlterGroupStmt = 509, /* AlterGroupStmt */ + YYSYMBOL_add_drop = 510, /* add_drop */ + YYSYMBOL_CreateSchemaStmt = 511, /* CreateSchemaStmt */ + YYSYMBOL_OptSchemaName = 512, /* OptSchemaName */ + YYSYMBOL_OptSchemaEltList = 513, /* OptSchemaEltList */ + YYSYMBOL_schema_stmt = 514, /* schema_stmt */ + YYSYMBOL_VariableSetStmt = 515, /* VariableSetStmt */ + YYSYMBOL_set_rest = 516, /* set_rest */ + YYSYMBOL_generic_set = 517, /* generic_set */ + YYSYMBOL_set_rest_more = 518, /* set_rest_more */ + YYSYMBOL_var_name = 519, /* var_name */ + YYSYMBOL_var_list = 520, /* var_list */ + YYSYMBOL_var_value = 521, /* var_value */ + YYSYMBOL_iso_level = 522, /* iso_level */ + YYSYMBOL_opt_boolean_or_string = 523, /* opt_boolean_or_string */ + YYSYMBOL_zone_value = 524, /* zone_value */ + YYSYMBOL_opt_encoding = 525, /* opt_encoding */ + YYSYMBOL_NonReservedWord_or_Sconst = 526, /* NonReservedWord_or_Sconst */ + YYSYMBOL_VariableResetStmt = 527, /* VariableResetStmt */ + YYSYMBOL_reset_rest = 528, /* reset_rest */ + YYSYMBOL_generic_reset = 529, /* generic_reset */ + YYSYMBOL_SetResetClause = 530, /* SetResetClause */ + YYSYMBOL_FunctionSetResetClause = 531, /* FunctionSetResetClause */ + YYSYMBOL_VariableShowStmt = 532, /* VariableShowStmt */ + YYSYMBOL_ConstraintsSetStmt = 533, /* ConstraintsSetStmt */ + YYSYMBOL_constraints_set_list = 534, /* constraints_set_list */ + YYSYMBOL_constraints_set_mode = 535, /* constraints_set_mode */ + YYSYMBOL_CheckPointStmt = 536, /* CheckPointStmt */ + YYSYMBOL_DiscardStmt = 537, /* DiscardStmt */ + YYSYMBOL_AlterTableStmt = 538, /* AlterTableStmt */ + YYSYMBOL_alter_table_cmds = 539, /* alter_table_cmds */ + YYSYMBOL_partition_cmd = 540, /* partition_cmd */ + YYSYMBOL_index_partition_cmd = 541, /* index_partition_cmd */ + YYSYMBOL_alter_table_cmd = 542, /* alter_table_cmd */ + YYSYMBOL_alter_column_default = 543, /* alter_column_default */ + YYSYMBOL_opt_drop_behavior = 544, /* opt_drop_behavior */ + YYSYMBOL_opt_collate_clause = 545, /* opt_collate_clause */ + YYSYMBOL_alter_using = 546, /* alter_using */ + YYSYMBOL_replica_identity = 547, /* replica_identity */ + YYSYMBOL_reloptions = 548, /* reloptions */ + YYSYMBOL_opt_reloptions = 549, /* opt_reloptions */ + YYSYMBOL_reloption_list = 550, /* reloption_list */ + YYSYMBOL_reloption_elem = 551, /* reloption_elem */ + YYSYMBOL_alter_identity_column_option_list = 552, /* alter_identity_column_option_list */ + YYSYMBOL_alter_identity_column_option = 553, /* alter_identity_column_option */ + YYSYMBOL_PartitionBoundSpec = 554, /* PartitionBoundSpec */ + YYSYMBOL_hash_partbound_elem = 555, /* hash_partbound_elem */ + YYSYMBOL_hash_partbound = 556, /* hash_partbound */ + YYSYMBOL_AlterCompositeTypeStmt = 557, /* AlterCompositeTypeStmt */ + YYSYMBOL_alter_type_cmds = 558, /* alter_type_cmds */ + YYSYMBOL_alter_type_cmd = 559, /* alter_type_cmd */ + YYSYMBOL_ClosePortalStmt = 560, /* ClosePortalStmt */ + YYSYMBOL_CopyStmt = 561, /* CopyStmt */ + YYSYMBOL_copy_from = 562, /* copy_from */ + YYSYMBOL_opt_program = 563, /* opt_program */ + YYSYMBOL_copy_file_name = 564, /* copy_file_name */ + YYSYMBOL_copy_options = 565, /* copy_options */ + YYSYMBOL_copy_opt_list = 566, /* copy_opt_list */ + YYSYMBOL_copy_opt_item = 567, /* copy_opt_item */ + YYSYMBOL_opt_binary = 568, /* opt_binary */ + YYSYMBOL_copy_delimiter = 569, /* copy_delimiter */ + YYSYMBOL_opt_using = 570, /* opt_using */ + YYSYMBOL_copy_generic_opt_list = 571, /* copy_generic_opt_list */ + YYSYMBOL_copy_generic_opt_elem = 572, /* copy_generic_opt_elem */ + YYSYMBOL_copy_generic_opt_arg = 573, /* copy_generic_opt_arg */ + YYSYMBOL_copy_generic_opt_arg_list = 574, /* copy_generic_opt_arg_list */ + YYSYMBOL_copy_generic_opt_arg_list_item = 575, /* copy_generic_opt_arg_list_item */ + YYSYMBOL_CreateStmt = 576, /* CreateStmt */ + YYSYMBOL_OptTemp = 577, /* OptTemp */ + YYSYMBOL_OptTableElementList = 578, /* OptTableElementList */ + YYSYMBOL_OptTypedTableElementList = 579, /* OptTypedTableElementList */ + YYSYMBOL_TableElementList = 580, /* TableElementList */ + YYSYMBOL_TypedTableElementList = 581, /* TypedTableElementList */ + YYSYMBOL_TableElement = 582, /* TableElement */ + YYSYMBOL_TypedTableElement = 583, /* TypedTableElement */ + YYSYMBOL_columnDef = 584, /* columnDef */ + YYSYMBOL_columnOptions = 585, /* columnOptions */ + YYSYMBOL_ColQualList = 586, /* ColQualList */ + YYSYMBOL_ColConstraint = 587, /* ColConstraint */ + YYSYMBOL_ColConstraintElem = 588, /* ColConstraintElem */ + YYSYMBOL_generated_when = 589, /* generated_when */ + YYSYMBOL_ConstraintAttr = 590, /* ConstraintAttr */ + YYSYMBOL_TableLikeClause = 591, /* TableLikeClause */ + YYSYMBOL_TableLikeOptionList = 592, /* TableLikeOptionList */ + YYSYMBOL_TableLikeOption = 593, /* TableLikeOption */ + YYSYMBOL_TableConstraint = 594, /* TableConstraint */ + YYSYMBOL_ConstraintElem = 595, /* ConstraintElem */ + YYSYMBOL_opt_no_inherit = 596, /* opt_no_inherit */ + YYSYMBOL_opt_column_list = 597, /* opt_column_list */ + YYSYMBOL_columnList = 598, /* columnList */ + YYSYMBOL_columnElem = 599, /* columnElem */ + YYSYMBOL_opt_c_include = 600, /* opt_c_include */ + YYSYMBOL_key_match = 601, /* key_match */ + YYSYMBOL_ExclusionConstraintList = 602, /* ExclusionConstraintList */ + YYSYMBOL_ExclusionConstraintElem = 603, /* ExclusionConstraintElem */ + YYSYMBOL_ExclusionWhereClause = 604, /* ExclusionWhereClause */ + YYSYMBOL_key_actions = 605, /* key_actions */ + YYSYMBOL_key_update = 606, /* key_update */ + YYSYMBOL_key_delete = 607, /* key_delete */ + YYSYMBOL_key_action = 608, /* key_action */ + YYSYMBOL_OptInherit = 609, /* OptInherit */ + YYSYMBOL_OptPartitionSpec = 610, /* OptPartitionSpec */ + YYSYMBOL_PartitionSpec = 611, /* PartitionSpec */ + YYSYMBOL_part_params = 612, /* part_params */ + YYSYMBOL_part_elem = 613, /* part_elem */ + YYSYMBOL_table_access_method_clause = 614, /* table_access_method_clause */ + YYSYMBOL_OptWith = 615, /* OptWith */ + YYSYMBOL_OnCommitOption = 616, /* OnCommitOption */ + YYSYMBOL_OptTableSpace = 617, /* OptTableSpace */ + YYSYMBOL_OptConsTableSpace = 618, /* OptConsTableSpace */ + YYSYMBOL_ExistingIndex = 619, /* ExistingIndex */ + YYSYMBOL_CreateStatsStmt = 620, /* CreateStatsStmt */ + YYSYMBOL_AlterStatsStmt = 621, /* AlterStatsStmt */ + YYSYMBOL_CreateAsStmt = 622, /* CreateAsStmt */ + YYSYMBOL_create_as_target = 623, /* create_as_target */ + YYSYMBOL_opt_with_data = 624, /* opt_with_data */ + YYSYMBOL_CreateMatViewStmt = 625, /* CreateMatViewStmt */ + YYSYMBOL_create_mv_target = 626, /* create_mv_target */ + YYSYMBOL_OptNoLog = 627, /* OptNoLog */ + YYSYMBOL_RefreshMatViewStmt = 628, /* RefreshMatViewStmt */ + YYSYMBOL_CreateSeqStmt = 629, /* CreateSeqStmt */ + YYSYMBOL_AlterSeqStmt = 630, /* AlterSeqStmt */ + YYSYMBOL_OptSeqOptList = 631, /* OptSeqOptList */ + YYSYMBOL_OptParenthesizedSeqOptList = 632, /* OptParenthesizedSeqOptList */ + YYSYMBOL_SeqOptList = 633, /* SeqOptList */ + YYSYMBOL_SeqOptElem = 634, /* SeqOptElem */ + YYSYMBOL_opt_by = 635, /* opt_by */ + YYSYMBOL_NumericOnly = 636, /* NumericOnly */ + YYSYMBOL_NumericOnly_list = 637, /* NumericOnly_list */ + YYSYMBOL_CreatePLangStmt = 638, /* CreatePLangStmt */ + YYSYMBOL_opt_trusted = 639, /* opt_trusted */ + YYSYMBOL_handler_name = 640, /* handler_name */ + YYSYMBOL_opt_inline_handler = 641, /* opt_inline_handler */ + YYSYMBOL_validator_clause = 642, /* validator_clause */ + YYSYMBOL_opt_validator = 643, /* opt_validator */ + YYSYMBOL_DropPLangStmt = 644, /* DropPLangStmt */ + YYSYMBOL_opt_procedural = 645, /* opt_procedural */ + YYSYMBOL_CreateTableSpaceStmt = 646, /* CreateTableSpaceStmt */ + YYSYMBOL_OptTableSpaceOwner = 647, /* OptTableSpaceOwner */ + YYSYMBOL_DropTableSpaceStmt = 648, /* DropTableSpaceStmt */ + YYSYMBOL_CreateExtensionStmt = 649, /* CreateExtensionStmt */ + YYSYMBOL_create_extension_opt_list = 650, /* create_extension_opt_list */ + YYSYMBOL_create_extension_opt_item = 651, /* create_extension_opt_item */ + YYSYMBOL_AlterExtensionStmt = 652, /* AlterExtensionStmt */ + YYSYMBOL_alter_extension_opt_list = 653, /* alter_extension_opt_list */ + YYSYMBOL_alter_extension_opt_item = 654, /* alter_extension_opt_item */ + YYSYMBOL_AlterExtensionContentsStmt = 655, /* AlterExtensionContentsStmt */ + YYSYMBOL_CreateFdwStmt = 656, /* CreateFdwStmt */ + YYSYMBOL_fdw_option = 657, /* fdw_option */ + YYSYMBOL_fdw_options = 658, /* fdw_options */ + YYSYMBOL_opt_fdw_options = 659, /* opt_fdw_options */ + YYSYMBOL_AlterFdwStmt = 660, /* AlterFdwStmt */ + YYSYMBOL_create_generic_options = 661, /* create_generic_options */ + YYSYMBOL_generic_option_list = 662, /* generic_option_list */ + YYSYMBOL_alter_generic_options = 663, /* alter_generic_options */ + YYSYMBOL_alter_generic_option_list = 664, /* alter_generic_option_list */ + YYSYMBOL_alter_generic_option_elem = 665, /* alter_generic_option_elem */ + YYSYMBOL_generic_option_elem = 666, /* generic_option_elem */ + YYSYMBOL_generic_option_name = 667, /* generic_option_name */ + YYSYMBOL_generic_option_arg = 668, /* generic_option_arg */ + YYSYMBOL_CreateForeignServerStmt = 669, /* CreateForeignServerStmt */ + YYSYMBOL_opt_type = 670, /* opt_type */ + YYSYMBOL_foreign_server_version = 671, /* foreign_server_version */ + YYSYMBOL_opt_foreign_server_version = 672, /* opt_foreign_server_version */ + YYSYMBOL_AlterForeignServerStmt = 673, /* AlterForeignServerStmt */ + YYSYMBOL_CreateForeignTableStmt = 674, /* CreateForeignTableStmt */ + YYSYMBOL_AlterForeignTableStmt = 675, /* AlterForeignTableStmt */ + YYSYMBOL_ImportForeignSchemaStmt = 676, /* ImportForeignSchemaStmt */ + YYSYMBOL_import_qualification_type = 677, /* import_qualification_type */ + YYSYMBOL_import_qualification = 678, /* import_qualification */ + YYSYMBOL_CreateUserMappingStmt = 679, /* CreateUserMappingStmt */ + YYSYMBOL_auth_ident = 680, /* auth_ident */ + YYSYMBOL_DropUserMappingStmt = 681, /* DropUserMappingStmt */ + YYSYMBOL_AlterUserMappingStmt = 682, /* AlterUserMappingStmt */ + YYSYMBOL_CreatePolicyStmt = 683, /* CreatePolicyStmt */ + YYSYMBOL_AlterPolicyStmt = 684, /* AlterPolicyStmt */ + YYSYMBOL_RowSecurityOptionalExpr = 685, /* RowSecurityOptionalExpr */ + YYSYMBOL_RowSecurityOptionalWithCheck = 686, /* RowSecurityOptionalWithCheck */ + YYSYMBOL_RowSecurityDefaultToRole = 687, /* RowSecurityDefaultToRole */ + YYSYMBOL_RowSecurityOptionalToRole = 688, /* RowSecurityOptionalToRole */ + YYSYMBOL_RowSecurityDefaultPermissive = 689, /* RowSecurityDefaultPermissive */ + YYSYMBOL_RowSecurityDefaultForCmd = 690, /* RowSecurityDefaultForCmd */ + YYSYMBOL_row_security_cmd = 691, /* row_security_cmd */ + YYSYMBOL_CreateAmStmt = 692, /* CreateAmStmt */ + YYSYMBOL_am_type = 693, /* am_type */ + YYSYMBOL_CreateTrigStmt = 694, /* CreateTrigStmt */ + YYSYMBOL_TriggerActionTime = 695, /* TriggerActionTime */ + YYSYMBOL_TriggerEvents = 696, /* TriggerEvents */ + YYSYMBOL_TriggerOneEvent = 697, /* TriggerOneEvent */ + YYSYMBOL_TriggerReferencing = 698, /* TriggerReferencing */ + YYSYMBOL_TriggerTransitions = 699, /* TriggerTransitions */ + YYSYMBOL_TriggerTransition = 700, /* TriggerTransition */ + YYSYMBOL_TransitionOldOrNew = 701, /* TransitionOldOrNew */ + YYSYMBOL_TransitionRowOrTable = 702, /* TransitionRowOrTable */ + YYSYMBOL_TransitionRelName = 703, /* TransitionRelName */ + YYSYMBOL_TriggerForSpec = 704, /* TriggerForSpec */ + YYSYMBOL_TriggerForOptEach = 705, /* TriggerForOptEach */ + YYSYMBOL_TriggerForType = 706, /* TriggerForType */ + YYSYMBOL_TriggerWhen = 707, /* TriggerWhen */ + YYSYMBOL_FUNCTION_or_PROCEDURE = 708, /* FUNCTION_or_PROCEDURE */ + YYSYMBOL_TriggerFuncArgs = 709, /* TriggerFuncArgs */ + YYSYMBOL_TriggerFuncArg = 710, /* TriggerFuncArg */ + YYSYMBOL_OptConstrFromTable = 711, /* OptConstrFromTable */ + YYSYMBOL_ConstraintAttributeSpec = 712, /* ConstraintAttributeSpec */ + YYSYMBOL_ConstraintAttributeElem = 713, /* ConstraintAttributeElem */ + YYSYMBOL_CreateEventTrigStmt = 714, /* CreateEventTrigStmt */ + YYSYMBOL_event_trigger_when_list = 715, /* event_trigger_when_list */ + YYSYMBOL_event_trigger_when_item = 716, /* event_trigger_when_item */ + YYSYMBOL_event_trigger_value_list = 717, /* event_trigger_value_list */ + YYSYMBOL_AlterEventTrigStmt = 718, /* AlterEventTrigStmt */ + YYSYMBOL_enable_trigger = 719, /* enable_trigger */ + YYSYMBOL_CreateAssertionStmt = 720, /* CreateAssertionStmt */ + YYSYMBOL_DefineStmt = 721, /* DefineStmt */ + YYSYMBOL_definition = 722, /* definition */ + YYSYMBOL_def_list = 723, /* def_list */ + YYSYMBOL_def_elem = 724, /* def_elem */ + YYSYMBOL_def_arg = 725, /* def_arg */ + YYSYMBOL_old_aggr_definition = 726, /* old_aggr_definition */ + YYSYMBOL_old_aggr_list = 727, /* old_aggr_list */ + YYSYMBOL_old_aggr_elem = 728, /* old_aggr_elem */ + YYSYMBOL_opt_enum_val_list = 729, /* opt_enum_val_list */ + YYSYMBOL_enum_val_list = 730, /* enum_val_list */ + YYSYMBOL_AlterEnumStmt = 731, /* AlterEnumStmt */ + YYSYMBOL_opt_if_not_exists = 732, /* opt_if_not_exists */ + YYSYMBOL_CreateOpClassStmt = 733, /* CreateOpClassStmt */ + YYSYMBOL_opclass_item_list = 734, /* opclass_item_list */ + YYSYMBOL_opclass_item = 735, /* opclass_item */ + YYSYMBOL_opt_default = 736, /* opt_default */ + YYSYMBOL_opt_opfamily = 737, /* opt_opfamily */ + YYSYMBOL_opclass_purpose = 738, /* opclass_purpose */ + YYSYMBOL_opt_recheck = 739, /* opt_recheck */ + YYSYMBOL_CreateOpFamilyStmt = 740, /* CreateOpFamilyStmt */ + YYSYMBOL_AlterOpFamilyStmt = 741, /* AlterOpFamilyStmt */ + YYSYMBOL_opclass_drop_list = 742, /* opclass_drop_list */ + YYSYMBOL_opclass_drop = 743, /* opclass_drop */ + YYSYMBOL_DropOpClassStmt = 744, /* DropOpClassStmt */ + YYSYMBOL_DropOpFamilyStmt = 745, /* DropOpFamilyStmt */ + YYSYMBOL_DropOwnedStmt = 746, /* DropOwnedStmt */ + YYSYMBOL_ReassignOwnedStmt = 747, /* ReassignOwnedStmt */ + YYSYMBOL_DropStmt = 748, /* DropStmt */ + YYSYMBOL_drop_type_any_name = 749, /* drop_type_any_name */ + YYSYMBOL_drop_type_name = 750, /* drop_type_name */ + YYSYMBOL_drop_type_name_on_any_name = 751, /* drop_type_name_on_any_name */ + YYSYMBOL_any_name_list = 752, /* any_name_list */ + YYSYMBOL_any_name = 753, /* any_name */ + YYSYMBOL_attrs = 754, /* attrs */ + YYSYMBOL_type_name_list = 755, /* type_name_list */ + YYSYMBOL_TruncateStmt = 756, /* TruncateStmt */ + YYSYMBOL_opt_restart_seqs = 757, /* opt_restart_seqs */ + YYSYMBOL_CommentStmt = 758, /* CommentStmt */ + YYSYMBOL_comment_type_any_name = 759, /* comment_type_any_name */ + YYSYMBOL_comment_type_name = 760, /* comment_type_name */ + YYSYMBOL_comment_text = 761, /* comment_text */ + YYSYMBOL_SecLabelStmt = 762, /* SecLabelStmt */ + YYSYMBOL_opt_provider = 763, /* opt_provider */ + YYSYMBOL_security_label_type_any_name = 764, /* security_label_type_any_name */ + YYSYMBOL_security_label_type_name = 765, /* security_label_type_name */ + YYSYMBOL_security_label = 766, /* security_label */ + YYSYMBOL_FetchStmt = 767, /* FetchStmt */ + YYSYMBOL_fetch_args = 768, /* fetch_args */ + YYSYMBOL_from_in = 769, /* from_in */ + YYSYMBOL_opt_from_in = 770, /* opt_from_in */ + YYSYMBOL_GrantStmt = 771, /* GrantStmt */ + YYSYMBOL_RevokeStmt = 772, /* RevokeStmt */ + YYSYMBOL_privileges = 773, /* privileges */ + YYSYMBOL_privilege_list = 774, /* privilege_list */ + YYSYMBOL_privilege = 775, /* privilege */ + YYSYMBOL_privilege_target = 776, /* privilege_target */ + YYSYMBOL_grantee_list = 777, /* grantee_list */ + YYSYMBOL_grantee = 778, /* grantee */ + YYSYMBOL_opt_grant_grant_option = 779, /* opt_grant_grant_option */ + YYSYMBOL_GrantRoleStmt = 780, /* GrantRoleStmt */ + YYSYMBOL_RevokeRoleStmt = 781, /* RevokeRoleStmt */ + YYSYMBOL_opt_grant_admin_option = 782, /* opt_grant_admin_option */ + YYSYMBOL_opt_granted_by = 783, /* opt_granted_by */ + YYSYMBOL_AlterDefaultPrivilegesStmt = 784, /* AlterDefaultPrivilegesStmt */ + YYSYMBOL_DefACLOptionList = 785, /* DefACLOptionList */ + YYSYMBOL_DefACLOption = 786, /* DefACLOption */ + YYSYMBOL_DefACLAction = 787, /* DefACLAction */ + YYSYMBOL_defacl_privilege_target = 788, /* defacl_privilege_target */ + YYSYMBOL_IndexStmt = 789, /* IndexStmt */ + YYSYMBOL_opt_unique = 790, /* opt_unique */ + YYSYMBOL_opt_concurrently = 791, /* opt_concurrently */ + YYSYMBOL_opt_index_name = 792, /* opt_index_name */ + YYSYMBOL_access_method_clause = 793, /* access_method_clause */ + YYSYMBOL_index_params = 794, /* index_params */ + YYSYMBOL_index_elem_options = 795, /* index_elem_options */ + YYSYMBOL_index_elem = 796, /* index_elem */ + YYSYMBOL_opt_include = 797, /* opt_include */ + YYSYMBOL_index_including_params = 798, /* index_including_params */ + YYSYMBOL_opt_collate = 799, /* opt_collate */ + YYSYMBOL_opt_class = 800, /* opt_class */ + YYSYMBOL_opt_asc_desc = 801, /* opt_asc_desc */ + YYSYMBOL_opt_nulls_order = 802, /* opt_nulls_order */ + YYSYMBOL_CreateFunctionStmt = 803, /* CreateFunctionStmt */ + YYSYMBOL_opt_or_replace = 804, /* opt_or_replace */ + YYSYMBOL_func_args = 805, /* func_args */ + YYSYMBOL_func_args_list = 806, /* func_args_list */ + YYSYMBOL_function_with_argtypes_list = 807, /* function_with_argtypes_list */ + YYSYMBOL_function_with_argtypes = 808, /* function_with_argtypes */ + YYSYMBOL_func_args_with_defaults = 809, /* func_args_with_defaults */ + YYSYMBOL_func_args_with_defaults_list = 810, /* func_args_with_defaults_list */ + YYSYMBOL_func_arg = 811, /* func_arg */ + YYSYMBOL_arg_class = 812, /* arg_class */ + YYSYMBOL_param_name = 813, /* param_name */ + YYSYMBOL_func_return = 814, /* func_return */ + YYSYMBOL_func_type = 815, /* func_type */ + YYSYMBOL_func_arg_with_default = 816, /* func_arg_with_default */ + YYSYMBOL_aggr_arg = 817, /* aggr_arg */ + YYSYMBOL_aggr_args = 818, /* aggr_args */ + YYSYMBOL_aggr_args_list = 819, /* aggr_args_list */ + YYSYMBOL_aggregate_with_argtypes = 820, /* aggregate_with_argtypes */ + YYSYMBOL_aggregate_with_argtypes_list = 821, /* aggregate_with_argtypes_list */ + YYSYMBOL_createfunc_opt_list = 822, /* createfunc_opt_list */ + YYSYMBOL_common_func_opt_item = 823, /* common_func_opt_item */ + YYSYMBOL_createfunc_opt_item = 824, /* createfunc_opt_item */ + YYSYMBOL_func_as = 825, /* func_as */ + YYSYMBOL_transform_type_list = 826, /* transform_type_list */ + YYSYMBOL_opt_definition = 827, /* opt_definition */ + YYSYMBOL_table_func_column = 828, /* table_func_column */ + YYSYMBOL_table_func_column_list = 829, /* table_func_column_list */ + YYSYMBOL_AlterFunctionStmt = 830, /* AlterFunctionStmt */ + YYSYMBOL_alterfunc_opt_list = 831, /* alterfunc_opt_list */ + YYSYMBOL_opt_restrict = 832, /* opt_restrict */ + YYSYMBOL_RemoveFuncStmt = 833, /* RemoveFuncStmt */ + YYSYMBOL_RemoveAggrStmt = 834, /* RemoveAggrStmt */ + YYSYMBOL_RemoveOperStmt = 835, /* RemoveOperStmt */ + YYSYMBOL_oper_argtypes = 836, /* oper_argtypes */ + YYSYMBOL_any_operator = 837, /* any_operator */ + YYSYMBOL_operator_with_argtypes_list = 838, /* operator_with_argtypes_list */ + YYSYMBOL_operator_with_argtypes = 839, /* operator_with_argtypes */ + YYSYMBOL_DoStmt = 840, /* DoStmt */ + YYSYMBOL_dostmt_opt_list = 841, /* dostmt_opt_list */ + YYSYMBOL_dostmt_opt_item = 842, /* dostmt_opt_item */ + YYSYMBOL_CreateCastStmt = 843, /* CreateCastStmt */ + YYSYMBOL_cast_context = 844, /* cast_context */ + YYSYMBOL_DropCastStmt = 845, /* DropCastStmt */ + YYSYMBOL_opt_if_exists = 846, /* opt_if_exists */ + YYSYMBOL_CreateTransformStmt = 847, /* CreateTransformStmt */ + YYSYMBOL_transform_element_list = 848, /* transform_element_list */ + YYSYMBOL_DropTransformStmt = 849, /* DropTransformStmt */ + YYSYMBOL_ReindexStmt = 850, /* ReindexStmt */ + YYSYMBOL_reindex_target_type = 851, /* reindex_target_type */ + YYSYMBOL_reindex_target_multitable = 852, /* reindex_target_multitable */ + YYSYMBOL_reindex_option_list = 853, /* reindex_option_list */ + YYSYMBOL_reindex_option_elem = 854, /* reindex_option_elem */ + YYSYMBOL_AlterTblSpcStmt = 855, /* AlterTblSpcStmt */ + YYSYMBOL_RenameStmt = 856, /* RenameStmt */ + YYSYMBOL_opt_column = 857, /* opt_column */ + YYSYMBOL_opt_set_data = 858, /* opt_set_data */ + YYSYMBOL_AlterObjectDependsStmt = 859, /* AlterObjectDependsStmt */ + YYSYMBOL_opt_no = 860, /* opt_no */ + YYSYMBOL_AlterObjectSchemaStmt = 861, /* AlterObjectSchemaStmt */ + YYSYMBOL_AlterOperatorStmt = 862, /* AlterOperatorStmt */ + YYSYMBOL_operator_def_list = 863, /* operator_def_list */ + YYSYMBOL_operator_def_elem = 864, /* operator_def_elem */ + YYSYMBOL_operator_def_arg = 865, /* operator_def_arg */ + YYSYMBOL_AlterTypeStmt = 866, /* AlterTypeStmt */ + YYSYMBOL_AlterOwnerStmt = 867, /* AlterOwnerStmt */ + YYSYMBOL_CreatePublicationStmt = 868, /* CreatePublicationStmt */ + YYSYMBOL_opt_publication_for_tables = 869, /* opt_publication_for_tables */ + YYSYMBOL_publication_for_tables = 870, /* publication_for_tables */ + YYSYMBOL_AlterPublicationStmt = 871, /* AlterPublicationStmt */ + YYSYMBOL_CreateSubscriptionStmt = 872, /* CreateSubscriptionStmt */ + YYSYMBOL_publication_name_list = 873, /* publication_name_list */ + YYSYMBOL_publication_name_item = 874, /* publication_name_item */ + YYSYMBOL_AlterSubscriptionStmt = 875, /* AlterSubscriptionStmt */ + YYSYMBOL_DropSubscriptionStmt = 876, /* DropSubscriptionStmt */ + YYSYMBOL_RuleStmt = 877, /* RuleStmt */ + YYSYMBOL_RuleActionList = 878, /* RuleActionList */ + YYSYMBOL_RuleActionMulti = 879, /* RuleActionMulti */ + YYSYMBOL_RuleActionStmt = 880, /* RuleActionStmt */ + YYSYMBOL_RuleActionStmtOrEmpty = 881, /* RuleActionStmtOrEmpty */ + YYSYMBOL_event = 882, /* event */ + YYSYMBOL_opt_instead = 883, /* opt_instead */ + YYSYMBOL_NotifyStmt = 884, /* NotifyStmt */ + YYSYMBOL_notify_payload = 885, /* notify_payload */ + YYSYMBOL_ListenStmt = 886, /* ListenStmt */ + YYSYMBOL_UnlistenStmt = 887, /* UnlistenStmt */ + YYSYMBOL_TransactionStmt = 888, /* TransactionStmt */ + YYSYMBOL_opt_transaction = 889, /* opt_transaction */ + YYSYMBOL_transaction_mode_item = 890, /* transaction_mode_item */ + YYSYMBOL_transaction_mode_list = 891, /* transaction_mode_list */ + YYSYMBOL_transaction_mode_list_or_empty = 892, /* transaction_mode_list_or_empty */ + YYSYMBOL_opt_transaction_chain = 893, /* opt_transaction_chain */ + YYSYMBOL_ViewStmt = 894, /* ViewStmt */ + YYSYMBOL_opt_check_option = 895, /* opt_check_option */ + YYSYMBOL_LoadStmt = 896, /* LoadStmt */ + YYSYMBOL_CreatedbStmt = 897, /* CreatedbStmt */ + YYSYMBOL_createdb_opt_list = 898, /* createdb_opt_list */ + YYSYMBOL_createdb_opt_items = 899, /* createdb_opt_items */ + YYSYMBOL_createdb_opt_item = 900, /* createdb_opt_item */ + YYSYMBOL_createdb_opt_name = 901, /* createdb_opt_name */ + YYSYMBOL_opt_equal = 902, /* opt_equal */ + YYSYMBOL_AlterDatabaseStmt = 903, /* AlterDatabaseStmt */ + YYSYMBOL_AlterDatabaseSetStmt = 904, /* AlterDatabaseSetStmt */ + YYSYMBOL_DropdbStmt = 905, /* DropdbStmt */ + YYSYMBOL_drop_option_list = 906, /* drop_option_list */ + YYSYMBOL_drop_option = 907, /* drop_option */ + YYSYMBOL_AlterCollationStmt = 908, /* AlterCollationStmt */ + YYSYMBOL_AlterSystemStmt = 909, /* AlterSystemStmt */ + YYSYMBOL_CreateDomainStmt = 910, /* CreateDomainStmt */ + YYSYMBOL_AlterDomainStmt = 911, /* AlterDomainStmt */ + YYSYMBOL_opt_as = 912, /* opt_as */ + YYSYMBOL_AlterTSDictionaryStmt = 913, /* AlterTSDictionaryStmt */ + YYSYMBOL_AlterTSConfigurationStmt = 914, /* AlterTSConfigurationStmt */ + YYSYMBOL_any_with = 915, /* any_with */ + YYSYMBOL_CreateConversionStmt = 916, /* CreateConversionStmt */ + YYSYMBOL_ClusterStmt = 917, /* ClusterStmt */ + YYSYMBOL_cluster_index_specification = 918, /* cluster_index_specification */ + YYSYMBOL_VacuumStmt = 919, /* VacuumStmt */ + YYSYMBOL_AnalyzeStmt = 920, /* AnalyzeStmt */ + YYSYMBOL_vac_analyze_option_list = 921, /* vac_analyze_option_list */ + YYSYMBOL_analyze_keyword = 922, /* analyze_keyword */ + YYSYMBOL_vac_analyze_option_elem = 923, /* vac_analyze_option_elem */ + YYSYMBOL_vac_analyze_option_name = 924, /* vac_analyze_option_name */ + YYSYMBOL_vac_analyze_option_arg = 925, /* vac_analyze_option_arg */ + YYSYMBOL_opt_analyze = 926, /* opt_analyze */ + YYSYMBOL_opt_verbose = 927, /* opt_verbose */ + YYSYMBOL_opt_full = 928, /* opt_full */ + YYSYMBOL_opt_freeze = 929, /* opt_freeze */ + YYSYMBOL_opt_name_list = 930, /* opt_name_list */ + YYSYMBOL_vacuum_relation = 931, /* vacuum_relation */ + YYSYMBOL_vacuum_relation_list = 932, /* vacuum_relation_list */ + YYSYMBOL_opt_vacuum_relation_list = 933, /* opt_vacuum_relation_list */ + YYSYMBOL_ExplainStmt = 934, /* ExplainStmt */ + YYSYMBOL_ExplainableStmt = 935, /* ExplainableStmt */ + YYSYMBOL_explain_option_list = 936, /* explain_option_list */ + YYSYMBOL_explain_option_elem = 937, /* explain_option_elem */ + YYSYMBOL_explain_option_name = 938, /* explain_option_name */ + YYSYMBOL_explain_option_arg = 939, /* explain_option_arg */ + YYSYMBOL_PrepareStmt = 940, /* PrepareStmt */ + YYSYMBOL_prep_type_clause = 941, /* prep_type_clause */ + YYSYMBOL_PreparableStmt = 942, /* PreparableStmt */ + YYSYMBOL_ExecuteStmt = 943, /* ExecuteStmt */ + YYSYMBOL_execute_param_clause = 944, /* execute_param_clause */ + YYSYMBOL_DeallocateStmt = 945, /* DeallocateStmt */ + YYSYMBOL_InsertStmt = 946, /* InsertStmt */ + YYSYMBOL_insert_target = 947, /* insert_target */ + YYSYMBOL_insert_rest = 948, /* insert_rest */ + YYSYMBOL_override_kind = 949, /* override_kind */ + YYSYMBOL_insert_column_list = 950, /* insert_column_list */ + YYSYMBOL_insert_column_item = 951, /* insert_column_item */ + YYSYMBOL_opt_on_conflict = 952, /* opt_on_conflict */ + YYSYMBOL_opt_conf_expr = 953, /* opt_conf_expr */ + YYSYMBOL_returning_clause = 954, /* returning_clause */ + YYSYMBOL_DeleteStmt = 955, /* DeleteStmt */ + YYSYMBOL_using_clause = 956, /* using_clause */ + YYSYMBOL_LockStmt = 957, /* LockStmt */ + YYSYMBOL_opt_lock = 958, /* opt_lock */ + YYSYMBOL_lock_type = 959, /* lock_type */ + YYSYMBOL_opt_nowait = 960, /* opt_nowait */ + YYSYMBOL_opt_nowait_or_skip = 961, /* opt_nowait_or_skip */ + YYSYMBOL_UpdateStmt = 962, /* UpdateStmt */ + YYSYMBOL_set_clause_list = 963, /* set_clause_list */ + YYSYMBOL_set_clause = 964, /* set_clause */ + YYSYMBOL_set_target = 965, /* set_target */ + YYSYMBOL_set_target_list = 966, /* set_target_list */ + YYSYMBOL_DeclareCursorStmt = 967, /* DeclareCursorStmt */ + YYSYMBOL_cursor_name = 968, /* cursor_name */ + YYSYMBOL_cursor_options = 969, /* cursor_options */ + YYSYMBOL_opt_hold = 970, /* opt_hold */ + YYSYMBOL_SelectStmt = 971, /* SelectStmt */ + YYSYMBOL_select_with_parens = 972, /* select_with_parens */ + YYSYMBOL_select_no_parens = 973, /* select_no_parens */ + YYSYMBOL_select_clause = 974, /* select_clause */ + YYSYMBOL_simple_select = 975, /* simple_select */ + YYSYMBOL_with_clause = 976, /* with_clause */ + YYSYMBOL_cte_list = 977, /* cte_list */ + YYSYMBOL_common_table_expr = 978, /* common_table_expr */ + YYSYMBOL_opt_materialized = 979, /* opt_materialized */ + YYSYMBOL_opt_with_clause = 980, /* opt_with_clause */ + YYSYMBOL_into_clause = 981, /* into_clause */ + YYSYMBOL_OptTempTableName = 982, /* OptTempTableName */ + YYSYMBOL_opt_table = 983, /* opt_table */ + YYSYMBOL_all_or_distinct = 984, /* all_or_distinct */ + YYSYMBOL_distinct_clause = 985, /* distinct_clause */ + YYSYMBOL_opt_all_clause = 986, /* opt_all_clause */ + YYSYMBOL_opt_sort_clause = 987, /* opt_sort_clause */ + YYSYMBOL_sort_clause = 988, /* sort_clause */ + YYSYMBOL_sortby_list = 989, /* sortby_list */ + YYSYMBOL_sortby = 990, /* sortby */ + YYSYMBOL_select_limit = 991, /* select_limit */ + YYSYMBOL_opt_select_limit = 992, /* opt_select_limit */ + YYSYMBOL_limit_clause = 993, /* limit_clause */ + YYSYMBOL_offset_clause = 994, /* offset_clause */ + YYSYMBOL_select_limit_value = 995, /* select_limit_value */ + YYSYMBOL_select_offset_value = 996, /* select_offset_value */ + YYSYMBOL_select_fetch_first_value = 997, /* select_fetch_first_value */ + YYSYMBOL_I_or_F_const = 998, /* I_or_F_const */ + YYSYMBOL_row_or_rows = 999, /* row_or_rows */ + YYSYMBOL_first_or_next = 1000, /* first_or_next */ + YYSYMBOL_group_clause = 1001, /* group_clause */ + YYSYMBOL_group_by_list = 1002, /* group_by_list */ + YYSYMBOL_group_by_item = 1003, /* group_by_item */ + YYSYMBOL_empty_grouping_set = 1004, /* empty_grouping_set */ + YYSYMBOL_rollup_clause = 1005, /* rollup_clause */ + YYSYMBOL_cube_clause = 1006, /* cube_clause */ + YYSYMBOL_grouping_sets_clause = 1007, /* grouping_sets_clause */ + YYSYMBOL_having_clause = 1008, /* having_clause */ + YYSYMBOL_for_locking_clause = 1009, /* for_locking_clause */ + YYSYMBOL_opt_for_locking_clause = 1010, /* opt_for_locking_clause */ + YYSYMBOL_for_locking_items = 1011, /* for_locking_items */ + YYSYMBOL_for_locking_item = 1012, /* for_locking_item */ + YYSYMBOL_for_locking_strength = 1013, /* for_locking_strength */ + YYSYMBOL_locked_rels_list = 1014, /* locked_rels_list */ + YYSYMBOL_values_clause = 1015, /* values_clause */ + YYSYMBOL_from_clause = 1016, /* from_clause */ + YYSYMBOL_from_list = 1017, /* from_list */ + YYSYMBOL_table_ref = 1018, /* table_ref */ + YYSYMBOL_joined_table = 1019, /* joined_table */ + YYSYMBOL_alias_clause = 1020, /* alias_clause */ + YYSYMBOL_opt_alias_clause = 1021, /* opt_alias_clause */ + YYSYMBOL_func_alias_clause = 1022, /* func_alias_clause */ + YYSYMBOL_join_type = 1023, /* join_type */ + YYSYMBOL_join_outer = 1024, /* join_outer */ + YYSYMBOL_join_qual = 1025, /* join_qual */ + YYSYMBOL_relation_expr = 1026, /* relation_expr */ + YYSYMBOL_relation_expr_list = 1027, /* relation_expr_list */ + YYSYMBOL_relation_expr_opt_alias = 1028, /* relation_expr_opt_alias */ + YYSYMBOL_tablesample_clause = 1029, /* tablesample_clause */ + YYSYMBOL_opt_repeatable_clause = 1030, /* opt_repeatable_clause */ + YYSYMBOL_func_table = 1031, /* func_table */ + YYSYMBOL_rowsfrom_item = 1032, /* rowsfrom_item */ + YYSYMBOL_rowsfrom_list = 1033, /* rowsfrom_list */ + YYSYMBOL_opt_col_def_list = 1034, /* opt_col_def_list */ + YYSYMBOL_opt_ordinality = 1035, /* opt_ordinality */ + YYSYMBOL_where_clause = 1036, /* where_clause */ + YYSYMBOL_where_or_current_clause = 1037, /* where_or_current_clause */ + YYSYMBOL_OptTableFuncElementList = 1038, /* OptTableFuncElementList */ + YYSYMBOL_TableFuncElementList = 1039, /* TableFuncElementList */ + YYSYMBOL_TableFuncElement = 1040, /* TableFuncElement */ + YYSYMBOL_xmltable = 1041, /* xmltable */ + YYSYMBOL_xmltable_column_list = 1042, /* xmltable_column_list */ + YYSYMBOL_xmltable_column_el = 1043, /* xmltable_column_el */ + YYSYMBOL_xmltable_column_option_list = 1044, /* xmltable_column_option_list */ + YYSYMBOL_xmltable_column_option_el = 1045, /* xmltable_column_option_el */ + YYSYMBOL_xml_namespace_list = 1046, /* xml_namespace_list */ + YYSYMBOL_xml_namespace_el = 1047, /* xml_namespace_el */ + YYSYMBOL_Typename = 1048, /* Typename */ + YYSYMBOL_opt_array_bounds = 1049, /* opt_array_bounds */ + YYSYMBOL_SimpleTypename = 1050, /* SimpleTypename */ + YYSYMBOL_ConstTypename = 1051, /* ConstTypename */ + YYSYMBOL_GenericType = 1052, /* GenericType */ + YYSYMBOL_opt_type_modifiers = 1053, /* opt_type_modifiers */ + YYSYMBOL_Numeric = 1054, /* Numeric */ + YYSYMBOL_opt_float = 1055, /* opt_float */ + YYSYMBOL_Bit = 1056, /* Bit */ + YYSYMBOL_ConstBit = 1057, /* ConstBit */ + YYSYMBOL_BitWithLength = 1058, /* BitWithLength */ + YYSYMBOL_BitWithoutLength = 1059, /* BitWithoutLength */ + YYSYMBOL_Character = 1060, /* Character */ + YYSYMBOL_ConstCharacter = 1061, /* ConstCharacter */ + YYSYMBOL_CharacterWithLength = 1062, /* CharacterWithLength */ + YYSYMBOL_CharacterWithoutLength = 1063, /* CharacterWithoutLength */ + YYSYMBOL_character = 1064, /* character */ + YYSYMBOL_opt_varying = 1065, /* opt_varying */ + YYSYMBOL_ConstDatetime = 1066, /* ConstDatetime */ + YYSYMBOL_ConstInterval = 1067, /* ConstInterval */ + YYSYMBOL_opt_timezone = 1068, /* opt_timezone */ + YYSYMBOL_opt_interval = 1069, /* opt_interval */ + YYSYMBOL_interval_second = 1070, /* interval_second */ + YYSYMBOL_a_expr = 1071, /* a_expr */ + YYSYMBOL_b_expr = 1072, /* b_expr */ + YYSYMBOL_c_expr = 1073, /* c_expr */ + YYSYMBOL_func_application = 1074, /* func_application */ + YYSYMBOL_func_expr = 1075, /* func_expr */ + YYSYMBOL_func_expr_windowless = 1076, /* func_expr_windowless */ + YYSYMBOL_func_expr_common_subexpr = 1077, /* func_expr_common_subexpr */ + YYSYMBOL_xml_root_version = 1078, /* xml_root_version */ + YYSYMBOL_opt_xml_root_standalone = 1079, /* opt_xml_root_standalone */ + YYSYMBOL_xml_attributes = 1080, /* xml_attributes */ + YYSYMBOL_xml_attribute_list = 1081, /* xml_attribute_list */ + YYSYMBOL_xml_attribute_el = 1082, /* xml_attribute_el */ + YYSYMBOL_document_or_content = 1083, /* document_or_content */ + YYSYMBOL_xml_whitespace_option = 1084, /* xml_whitespace_option */ + YYSYMBOL_xmlexists_argument = 1085, /* xmlexists_argument */ + YYSYMBOL_xml_passing_mech = 1086, /* xml_passing_mech */ + YYSYMBOL_within_group_clause = 1087, /* within_group_clause */ + YYSYMBOL_filter_clause = 1088, /* filter_clause */ + YYSYMBOL_window_clause = 1089, /* window_clause */ + YYSYMBOL_window_definition_list = 1090, /* window_definition_list */ + YYSYMBOL_window_definition = 1091, /* window_definition */ + YYSYMBOL_over_clause = 1092, /* over_clause */ + YYSYMBOL_window_specification = 1093, /* window_specification */ + YYSYMBOL_opt_existing_window_name = 1094, /* opt_existing_window_name */ + YYSYMBOL_opt_partition_clause = 1095, /* opt_partition_clause */ + YYSYMBOL_opt_frame_clause = 1096, /* opt_frame_clause */ + YYSYMBOL_frame_extent = 1097, /* frame_extent */ + YYSYMBOL_frame_bound = 1098, /* frame_bound */ + YYSYMBOL_opt_window_exclusion_clause = 1099, /* opt_window_exclusion_clause */ + YYSYMBOL_row = 1100, /* row */ + YYSYMBOL_explicit_row = 1101, /* explicit_row */ + YYSYMBOL_implicit_row = 1102, /* implicit_row */ + YYSYMBOL_sub_type = 1103, /* sub_type */ + YYSYMBOL_all_Op = 1104, /* all_Op */ + YYSYMBOL_MathOp = 1105, /* MathOp */ + YYSYMBOL_qual_Op = 1106, /* qual_Op */ + YYSYMBOL_qual_all_Op = 1107, /* qual_all_Op */ + YYSYMBOL_subquery_Op = 1108, /* subquery_Op */ + YYSYMBOL_expr_list = 1109, /* expr_list */ + YYSYMBOL_func_arg_list = 1110, /* func_arg_list */ + YYSYMBOL_func_arg_expr = 1111, /* func_arg_expr */ + YYSYMBOL_type_list = 1112, /* type_list */ + YYSYMBOL_array_expr = 1113, /* array_expr */ + YYSYMBOL_array_expr_list = 1114, /* array_expr_list */ + YYSYMBOL_extract_list = 1115, /* extract_list */ + YYSYMBOL_extract_arg = 1116, /* extract_arg */ + YYSYMBOL_unicode_normal_form = 1117, /* unicode_normal_form */ + YYSYMBOL_overlay_list = 1118, /* overlay_list */ + YYSYMBOL_overlay_placing = 1119, /* overlay_placing */ + YYSYMBOL_position_list = 1120, /* position_list */ + YYSYMBOL_substr_list = 1121, /* substr_list */ + YYSYMBOL_substr_from = 1122, /* substr_from */ + YYSYMBOL_substr_for = 1123, /* substr_for */ + YYSYMBOL_trim_list = 1124, /* trim_list */ + YYSYMBOL_in_expr = 1125, /* in_expr */ + YYSYMBOL_case_expr = 1126, /* case_expr */ + YYSYMBOL_when_clause_list = 1127, /* when_clause_list */ + YYSYMBOL_when_clause = 1128, /* when_clause */ + YYSYMBOL_case_default = 1129, /* case_default */ + YYSYMBOL_case_arg = 1130, /* case_arg */ + YYSYMBOL_columnref = 1131, /* columnref */ + YYSYMBOL_indirection_el = 1132, /* indirection_el */ + YYSYMBOL_opt_slice_bound = 1133, /* opt_slice_bound */ + YYSYMBOL_indirection = 1134, /* indirection */ + YYSYMBOL_opt_indirection = 1135, /* opt_indirection */ + YYSYMBOL_opt_asymmetric = 1136, /* opt_asymmetric */ + YYSYMBOL_opt_target_list = 1137, /* opt_target_list */ + YYSYMBOL_target_list = 1138, /* target_list */ + YYSYMBOL_target_el = 1139, /* target_el */ + YYSYMBOL_qualified_name_list = 1140, /* qualified_name_list */ + YYSYMBOL_qualified_name = 1141, /* qualified_name */ + YYSYMBOL_name_list = 1142, /* name_list */ + YYSYMBOL_name = 1143, /* name */ + YYSYMBOL_database_name = 1144, /* database_name */ + YYSYMBOL_access_method = 1145, /* access_method */ + YYSYMBOL_attr_name = 1146, /* attr_name */ + YYSYMBOL_index_name = 1147, /* index_name */ + YYSYMBOL_file_name = 1148, /* file_name */ + YYSYMBOL_func_name = 1149, /* func_name */ + YYSYMBOL_AexprConst = 1150, /* AexprConst */ + YYSYMBOL_Iconst = 1151, /* Iconst */ + YYSYMBOL_Sconst = 1152, /* Sconst */ + YYSYMBOL_SignedIconst = 1153, /* SignedIconst */ + YYSYMBOL_RoleId = 1154, /* RoleId */ + YYSYMBOL_RoleSpec = 1155, /* RoleSpec */ + YYSYMBOL_role_list = 1156, /* role_list */ + YYSYMBOL_ColId = 1157, /* ColId */ + YYSYMBOL_type_function_name = 1158, /* type_function_name */ + YYSYMBOL_NonReservedWord = 1159, /* NonReservedWord */ + YYSYMBOL_ColLabel = 1160, /* ColLabel */ + YYSYMBOL_unreserved_keyword = 1161, /* unreserved_keyword */ + YYSYMBOL_col_name_keyword = 1162, /* col_name_keyword */ + YYSYMBOL_type_func_name_keyword = 1163, /* type_func_name_keyword */ + YYSYMBOL_reserved_keyword = 1164 /* reserved_keyword */ }; -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 -#endif - - +typedef enum yysymbol_kind_t yysymbol_kind_t; -int base_yyparse (core_yyscan_t yyscanner); - -#endif /* !YY_BASE_YY_GRAM_H_INCLUDED */ @@ -870,28 +1476,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; +#endif + +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -899,7 +1564,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -907,7 +1572,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -921,38 +1599,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -965,8 +1642,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + -#if ! defined yyoverflow || YYERROR_VERBOSE +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -1031,8 +1722,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -1042,18 +1732,19 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \ + + YYSIZEOF (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -1066,11 +1757,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -1082,12 +1773,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -1110,17 +1801,20 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 5558 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 729 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint16 yytranslate[] = +static const yytype_int16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1199,7 +1893,7 @@ #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { 0, 804, 804, 820, 832, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, @@ -1481,24 +2175,31 @@ }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "IDENT", "UIDENT", "FCONST", "SCONST", - "USCONST", "BCONST", "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", - "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", "LESS_EQUALS", - "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P", "ACCESS", - "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", "ALTER", - "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", - "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTACH", "ATTRIBUTE", - "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", - "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL", "CALLED", - "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P", - "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE", - "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS", - "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "CONCURRENTLY", + "\"end of file\"", "error", "\"invalid token\"", "IDENT", "UIDENT", + "FCONST", "SCONST", "USCONST", "BCONST", "XCONST", "Op", "ICONST", + "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", + "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P", + "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", + "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", + "AS", "ASC", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTACH", + "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", + "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL", + "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", + "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", + "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", + "COLUMNS", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "CONCURRENTLY", "CONFIGURATION", "CONFLICT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE", "CROSS", "CSV", "CUBE", "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE", @@ -1762,12 +2463,18 @@ "unreserved_keyword", "col_name_keyword", "type_func_name_keyword", "reserved_keyword", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -1820,17 +2527,17 @@ 47, 37, 94, 729, 91, 93, 40, 41, 46, 59, 44, 58 }; -# endif +#endif -#define YYPACT_NINF -4993 +#define YYPACT_NINF (-4993) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-4993))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -2667 +#define YYTABLE_NINF (-2667) -#define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-2667))) +#define yytable_value_is_error(Yyn) \ + ((Yyn) == YYTABLE_NINF) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ @@ -2397,7 +3104,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint16 yydefact[] = +static const yytype_int16 yydefact[] = { 1680, 1446, 622, 1532, 1531, 1446, 0, 256, 0, 1542, 0, 1446, 415, 1118, 0, 0, 0, 0, 622, 1446, @@ -3033,7 +3740,7 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 52, 53, 54, 55, 56, 1537, 2518, 2369, 3312, + 0, 52, 53, 54, 55, 56, 1537, 2518, 2369, 3312, 3313, 57, 58, 1533, 59, 60, 61, 62, 1447, 63, 1027, 1783, 2533, 64, 2202, 809, 810, 811, 2103, 2104, 2457, 2105, 2093, 1334, 1925, 1469, 783, 784, 1429, 1470, @@ -23962,7 +24669,7 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = +static const yytype_int16 yystos[] = { 0, 20, 30, 32, 33, 48, 57, 69, 71, 72, 78, 80, 91, 93, 110, 113, 127, 129, 133, 139, @@ -24523,7 +25230,7 @@ }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = +static const yytype_int16 yyr1[] = { 0, 492, 493, 494, 494, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, @@ -24805,7 +25512,7 @@ }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -25087,10 +25794,10 @@ }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -25116,10 +25823,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -25167,8 +25873,8 @@ This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# ifndef YY_LOCATION_PRINT +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ @@ -25198,22 +25904,22 @@ return res; } -# define YY_LOCATION_PRINT(File, Loc) \ +# define YY_LOCATION_PRINT(File, Loc) \ yy_location_print_ (File, &(Loc)) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +# endif /* !defined YY_LOCATION_PRINT */ -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value, Location, yyscanner); \ + Kind, Value, Location, yyscanner); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -25224,19 +25930,22 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (yylocationp); - YYUSE (yyscanner); + YY_USE (yyoutput); + YY_USE (yylocationp); + YY_USE (yyscanner); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -25245,14 +25954,15 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); YY_LOCATION_PRINT (yyo, *yylocationp); YYFPRINTF (yyo, ": "); - yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, yyscanner); + yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, yyscanner); YYFPRINTF (yyo, ")"); } @@ -25262,7 +25972,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -25285,21 +25995,22 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, + int yyrule, core_yyscan_t yyscanner) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], + &(yylsp[(yyi + 1) - (yynrhs)]), yyscanner); YYFPRINTF (stderr, "\n"); } } @@ -25314,8 +26025,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -25338,255 +26049,35 @@ #endif -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner) { - YYUSE (yyvaluep); - YYUSE (yylocationp); - YYUSE (yyscanner); + YY_USE (yyvaluep); + YY_USE (yylocationp); + YY_USE (yyscanner); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } + + /*----------. | yyparse. | `----------*/ @@ -25594,7 +26085,7 @@ int yyparse (core_yyscan_t yyscanner) { -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; @@ -25613,55 +26104,47 @@ YYLTYPE yylloc = yyloc_default; /* Number of syntax errors so far. */ - int yynerrs; + int yynerrs = 0; - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - 'yyls': related to locations. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - /* The semantic value stack. */ + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; - /* The location stack. */ + /* The location stack: array, bottom, top. */ YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls; - YYLTYPE *yylsp; - - /* The locations where the error started and ended. */ - YYLTYPE yyerror_range[3]; - - YYSIZE_T yystacksize; + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp = yyls; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[3]; + + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) @@ -25669,16 +26152,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yylsp = yyls = yylsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ yylsp[0] = yylloc; goto yysetstate; @@ -25694,10 +26169,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -25705,15 +26185,15 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the @@ -25721,9 +26201,9 @@ conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yyls1, yysize * YYSIZEOF (*yylsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -25738,15 +26218,16 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -25756,16 +26237,16 @@ yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -25786,18 +26267,30 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (&yylval, &yylloc, yyscanner); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + yyerror_range[1] = yylloc; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -25825,15 +26318,14 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; + + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -25870,17 +26362,17 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 805 "gram.y" /* yacc.c:1652 */ - { + case 2: /* stmtblock: stmtmulti */ +#line 805 "gram.y" + { pg_yyget_extra(yyscanner)->parsetree = (yyvsp[0].list); } -#line 25879 "gram.c" /* yacc.c:1652 */ +#line 26371 "gram.c" break; - case 3: -#line 821 "gram.y" /* yacc.c:1652 */ - { + case 3: /* stmtmulti: stmtmulti ';' stmt */ +#line 821 "gram.y" + { if ((yyvsp[-2].list) != NIL) { /* update length of previous stmt */ @@ -25891,110 +26383,110 @@ else (yyval.list) = (yyvsp[-2].list); } -#line 25895 "gram.c" /* yacc.c:1652 */ +#line 26387 "gram.c" break; - case 4: -#line 833 "gram.y" /* yacc.c:1652 */ - { + case 4: /* stmtmulti: stmt */ +#line 833 "gram.y" + { if ((yyvsp[0].node) != NULL) (yyval.list) = list_make1(makeRawStmt((yyvsp[0].node), 0)); else (yyval.list) = NIL; } -#line 25906 "gram.c" /* yacc.c:1652 */ +#line 26398 "gram.c" break; - case 130: -#line 968 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 25912 "gram.c" /* yacc.c:1652 */ + case 130: /* stmt: %empty */ +#line 968 "gram.y" + { (yyval.node) = NULL; } +#line 26404 "gram.c" break; - case 131: -#line 978 "gram.y" /* yacc.c:1652 */ - { + case 131: /* CallStmt: CALL func_application */ +#line 978 "gram.y" + { CallStmt *n = makeNode(CallStmt); n->funccall = castNode(FuncCall, (yyvsp[0].node)); (yyval.node) = (Node *)n; } -#line 25922 "gram.c" /* yacc.c:1652 */ +#line 26414 "gram.c" break; - case 132: -#line 993 "gram.y" /* yacc.c:1652 */ - { + case 132: /* CreateRoleStmt: CREATE ROLE RoleId opt_with OptRoleList */ +#line 993 "gram.y" + { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_ROLE; n->role = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 25934 "gram.c" /* yacc.c:1652 */ +#line 26426 "gram.c" break; - case 133: -#line 1003 "gram.y" /* yacc.c:1652 */ - {} -#line 25940 "gram.c" /* yacc.c:1652 */ + case 133: /* opt_with: WITH */ +#line 1003 "gram.y" + {} +#line 26432 "gram.c" break; - case 134: -#line 1004 "gram.y" /* yacc.c:1652 */ - {} -#line 25946 "gram.c" /* yacc.c:1652 */ + case 134: /* opt_with: WITH_LA */ +#line 1004 "gram.y" + {} +#line 26438 "gram.c" break; - case 135: -#line 1005 "gram.y" /* yacc.c:1652 */ - {} -#line 25952 "gram.c" /* yacc.c:1652 */ + case 135: /* opt_with: %empty */ +#line 1005 "gram.y" + {} +#line 26444 "gram.c" break; - case 136: -#line 1014 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 25958 "gram.c" /* yacc.c:1652 */ + case 136: /* OptRoleList: OptRoleList CreateOptRoleElem */ +#line 1014 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 26450 "gram.c" break; - case 137: -#line 1015 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 25964 "gram.c" /* yacc.c:1652 */ + case 137: /* OptRoleList: %empty */ +#line 1015 "gram.y" + { (yyval.list) = NIL; } +#line 26456 "gram.c" break; - case 138: -#line 1019 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 25970 "gram.c" /* yacc.c:1652 */ + case 138: /* AlterOptRoleList: AlterOptRoleList AlterOptRoleElem */ +#line 1019 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 26462 "gram.c" break; - case 139: -#line 1020 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 25976 "gram.c" /* yacc.c:1652 */ + case 139: /* AlterOptRoleList: %empty */ +#line 1020 "gram.y" + { (yyval.list) = NIL; } +#line 26468 "gram.c" break; - case 140: -#line 1025 "gram.y" /* yacc.c:1652 */ - { + case 140: /* AlterOptRoleElem: PASSWORD Sconst */ +#line 1025 "gram.y" + { (yyval.defelt) = makeDefElem("password", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 25985 "gram.c" /* yacc.c:1652 */ +#line 26477 "gram.c" break; - case 141: -#line 1030 "gram.y" /* yacc.c:1652 */ - { + case 141: /* AlterOptRoleElem: PASSWORD NULL_P */ +#line 1030 "gram.y" + { (yyval.defelt) = makeDefElem("password", NULL, (yylsp[-1])); } -#line 25993 "gram.c" /* yacc.c:1652 */ +#line 26485 "gram.c" break; - case 142: -#line 1034 "gram.y" /* yacc.c:1652 */ - { + case 142: /* AlterOptRoleElem: ENCRYPTED PASSWORD Sconst */ +#line 1034 "gram.y" + { /* * These days, passwords are always stored in encrypted * form, so there is no difference between PASSWORD and @@ -26003,56 +26495,56 @@ (yyval.defelt) = makeDefElem("password", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 26007 "gram.c" /* yacc.c:1652 */ +#line 26499 "gram.c" break; - case 143: -#line 1044 "gram.y" /* yacc.c:1652 */ - { + case 143: /* AlterOptRoleElem: UNENCRYPTED PASSWORD Sconst */ +#line 1044 "gram.y" + { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UNENCRYPTED PASSWORD is no longer supported"), errhint("Remove UNENCRYPTED to store the password in encrypted form instead."), parser_errposition((yylsp[-2])))); } -#line 26019 "gram.c" /* yacc.c:1652 */ +#line 26511 "gram.c" break; - case 144: -#line 1052 "gram.y" /* yacc.c:1652 */ - { + case 144: /* AlterOptRoleElem: INHERIT */ +#line 1052 "gram.y" + { (yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(true), (yylsp[0])); } -#line 26027 "gram.c" /* yacc.c:1652 */ +#line 26519 "gram.c" break; - case 145: -#line 1056 "gram.y" /* yacc.c:1652 */ - { + case 145: /* AlterOptRoleElem: CONNECTION LIMIT SignedIconst */ +#line 1056 "gram.y" + { (yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-2])); } -#line 26035 "gram.c" /* yacc.c:1652 */ +#line 26527 "gram.c" break; - case 146: -#line 1060 "gram.y" /* yacc.c:1652 */ - { + case 146: /* AlterOptRoleElem: VALID UNTIL Sconst */ +#line 1060 "gram.y" + { (yyval.defelt) = makeDefElem("validUntil", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 26043 "gram.c" /* yacc.c:1652 */ +#line 26535 "gram.c" break; - case 147: -#line 1065 "gram.y" /* yacc.c:1652 */ - { + case 147: /* AlterOptRoleElem: USER role_list */ +#line 1065 "gram.y" + { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[-1])); } -#line 26051 "gram.c" /* yacc.c:1652 */ +#line 26543 "gram.c" break; - case 148: -#line 1069 "gram.y" /* yacc.c:1652 */ - { + case 148: /* AlterOptRoleElem: IDENT */ +#line 1069 "gram.y" + { /* * We handle identifiers that aren't parser keywords with * the following special-case codes, to avoid bloating the @@ -26096,232 +26588,232 @@ errmsg("unrecognized role option \"%s\"", (yyvsp[0].str)), parser_errposition((yylsp[0])))); } -#line 26100 "gram.c" /* yacc.c:1652 */ +#line 26592 "gram.c" break; - case 149: -#line 1116 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = (yyvsp[0].defelt); } -#line 26106 "gram.c" /* yacc.c:1652 */ + case 149: /* CreateOptRoleElem: AlterOptRoleElem */ +#line 1116 "gram.y" + { (yyval.defelt) = (yyvsp[0].defelt); } +#line 26598 "gram.c" break; - case 150: -#line 1119 "gram.y" /* yacc.c:1652 */ - { + case 150: /* CreateOptRoleElem: SYSID Iconst */ +#line 1119 "gram.y" + { (yyval.defelt) = makeDefElem("sysid", (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-1])); } -#line 26114 "gram.c" /* yacc.c:1652 */ +#line 26606 "gram.c" break; - case 151: -#line 1123 "gram.y" /* yacc.c:1652 */ - { + case 151: /* CreateOptRoleElem: ADMIN role_list */ +#line 1123 "gram.y" + { (yyval.defelt) = makeDefElem("adminmembers", (Node *)(yyvsp[0].list), (yylsp[-1])); } -#line 26122 "gram.c" /* yacc.c:1652 */ +#line 26614 "gram.c" break; - case 152: -#line 1127 "gram.y" /* yacc.c:1652 */ - { + case 152: /* CreateOptRoleElem: ROLE role_list */ +#line 1127 "gram.y" + { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[-1])); } -#line 26130 "gram.c" /* yacc.c:1652 */ +#line 26622 "gram.c" break; - case 153: -#line 1131 "gram.y" /* yacc.c:1652 */ - { + case 153: /* CreateOptRoleElem: IN_P ROLE role_list */ +#line 1131 "gram.y" + { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[0].list), (yylsp[-2])); } -#line 26138 "gram.c" /* yacc.c:1652 */ +#line 26630 "gram.c" break; - case 154: -#line 1135 "gram.y" /* yacc.c:1652 */ - { + case 154: /* CreateOptRoleElem: IN_P GROUP_P role_list */ +#line 1135 "gram.y" + { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[0].list), (yylsp[-2])); } -#line 26146 "gram.c" /* yacc.c:1652 */ +#line 26638 "gram.c" break; - case 155: -#line 1149 "gram.y" /* yacc.c:1652 */ - { + case 155: /* CreateUserStmt: CREATE USER RoleId opt_with OptRoleList */ +#line 1149 "gram.y" + { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_USER; n->role = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 26158 "gram.c" /* yacc.c:1652 */ +#line 26650 "gram.c" break; - case 156: -#line 1167 "gram.y" /* yacc.c:1652 */ - { + case 156: /* AlterRoleStmt: ALTER ROLE RoleSpec opt_with AlterOptRoleList */ +#line 1167 "gram.y" + { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[-2].rolespec); n->action = +1; /* add, if there are members */ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 26170 "gram.c" /* yacc.c:1652 */ +#line 26662 "gram.c" break; - case 157: -#line 1175 "gram.y" /* yacc.c:1652 */ - { + case 157: /* AlterRoleStmt: ALTER USER RoleSpec opt_with AlterOptRoleList */ +#line 1175 "gram.y" + { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[-2].rolespec); n->action = +1; /* add, if there are members */ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 26182 "gram.c" /* yacc.c:1652 */ +#line 26674 "gram.c" break; - case 158: -#line 1185 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 26188 "gram.c" /* yacc.c:1652 */ + case 158: /* opt_in_database: %empty */ +#line 1185 "gram.y" + { (yyval.str) = NULL; } +#line 26680 "gram.c" break; - case 159: -#line 1186 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 26194 "gram.c" /* yacc.c:1652 */ + case 159: /* opt_in_database: IN_P DATABASE database_name */ +#line 1186 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 26686 "gram.c" break; - case 160: -#line 1191 "gram.y" /* yacc.c:1652 */ - { + case 160: /* AlterRoleSetStmt: ALTER ROLE RoleSpec opt_in_database SetResetClause */ +#line 1191 "gram.y" + { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[-2].rolespec); n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } -#line 26206 "gram.c" /* yacc.c:1652 */ +#line 26698 "gram.c" break; - case 161: -#line 1199 "gram.y" /* yacc.c:1652 */ - { + case 161: /* AlterRoleSetStmt: ALTER ROLE ALL opt_in_database SetResetClause */ +#line 1199 "gram.y" + { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = NULL; n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } -#line 26218 "gram.c" /* yacc.c:1652 */ +#line 26710 "gram.c" break; - case 162: -#line 1207 "gram.y" /* yacc.c:1652 */ - { + case 162: /* AlterRoleSetStmt: ALTER USER RoleSpec opt_in_database SetResetClause */ +#line 1207 "gram.y" + { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[-2].rolespec); n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } -#line 26230 "gram.c" /* yacc.c:1652 */ +#line 26722 "gram.c" break; - case 163: -#line 1215 "gram.y" /* yacc.c:1652 */ - { + case 163: /* AlterRoleSetStmt: ALTER USER ALL opt_in_database SetResetClause */ +#line 1215 "gram.y" + { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = NULL; n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } -#line 26242 "gram.c" /* yacc.c:1652 */ +#line 26734 "gram.c" break; - case 164: -#line 1236 "gram.y" /* yacc.c:1652 */ - { + case 164: /* DropRoleStmt: DROP ROLE role_list */ +#line 1236 "gram.y" + { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 26253 "gram.c" /* yacc.c:1652 */ +#line 26745 "gram.c" break; - case 165: -#line 1243 "gram.y" /* yacc.c:1652 */ - { + case 165: /* DropRoleStmt: DROP ROLE IF_P EXISTS role_list */ +#line 1243 "gram.y" + { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 26264 "gram.c" /* yacc.c:1652 */ +#line 26756 "gram.c" break; - case 166: -#line 1250 "gram.y" /* yacc.c:1652 */ - { + case 166: /* DropRoleStmt: DROP USER role_list */ +#line 1250 "gram.y" + { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 26275 "gram.c" /* yacc.c:1652 */ +#line 26767 "gram.c" break; - case 167: -#line 1257 "gram.y" /* yacc.c:1652 */ - { + case 167: /* DropRoleStmt: DROP USER IF_P EXISTS role_list */ +#line 1257 "gram.y" + { DropRoleStmt *n = makeNode(DropRoleStmt); n->roles = (yyvsp[0].list); n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 26286 "gram.c" /* yacc.c:1652 */ +#line 26778 "gram.c" break; - case 168: -#line 1264 "gram.y" /* yacc.c:1652 */ - { + case 168: /* DropRoleStmt: DROP GROUP_P role_list */ +#line 1264 "gram.y" + { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 26297 "gram.c" /* yacc.c:1652 */ +#line 26789 "gram.c" break; - case 169: -#line 1271 "gram.y" /* yacc.c:1652 */ - { + case 169: /* DropRoleStmt: DROP GROUP_P IF_P EXISTS role_list */ +#line 1271 "gram.y" + { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 26308 "gram.c" /* yacc.c:1652 */ +#line 26800 "gram.c" break; - case 170: -#line 1288 "gram.y" /* yacc.c:1652 */ - { + case 170: /* CreateGroupStmt: CREATE GROUP_P RoleId opt_with OptRoleList */ +#line 1288 "gram.y" + { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_GROUP; n->role = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 26320 "gram.c" /* yacc.c:1652 */ +#line 26812 "gram.c" break; - case 171: -#line 1306 "gram.y" /* yacc.c:1652 */ - { + case 171: /* AlterGroupStmt: ALTER GROUP_P RoleSpec add_drop USER role_list */ +#line 1306 "gram.y" + { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[-3].rolespec); n->action = (yyvsp[-2].ival); @@ -26329,24 +26821,24 @@ (Node *)(yyvsp[0].list), (yylsp[0]))); (yyval.node) = (Node *)n; } -#line 26333 "gram.c" /* yacc.c:1652 */ +#line 26825 "gram.c" break; - case 172: -#line 1316 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = +1; } -#line 26339 "gram.c" /* yacc.c:1652 */ + case 172: /* add_drop: ADD_P */ +#line 1316 "gram.y" + { (yyval.ival) = +1; } +#line 26831 "gram.c" break; - case 173: -#line 1317 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = -1; } -#line 26345 "gram.c" /* yacc.c:1652 */ + case 173: /* add_drop: DROP */ +#line 1317 "gram.y" + { (yyval.ival) = -1; } +#line 26837 "gram.c" break; - case 174: -#line 1329 "gram.y" /* yacc.c:1652 */ - { + case 174: /* CreateSchemaStmt: CREATE SCHEMA OptSchemaName AUTHORIZATION RoleSpec OptSchemaEltList */ +#line 1329 "gram.y" + { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* One can omit the schema name or the authorization id. */ n->schemaname = (yyvsp[-3].str); @@ -26355,12 +26847,12 @@ n->if_not_exists = false; (yyval.node) = (Node *)n; } -#line 26359 "gram.c" /* yacc.c:1652 */ +#line 26851 "gram.c" break; - case 175: -#line 1339 "gram.y" /* yacc.c:1652 */ - { + case 175: /* CreateSchemaStmt: CREATE SCHEMA ColId OptSchemaEltList */ +#line 1339 "gram.y" + { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* ...but not both */ n->schemaname = (yyvsp[-1].str); @@ -26369,12 +26861,12 @@ n->if_not_exists = false; (yyval.node) = (Node *)n; } -#line 26373 "gram.c" /* yacc.c:1652 */ +#line 26865 "gram.c" break; - case 176: -#line 1349 "gram.y" /* yacc.c:1652 */ - { + case 176: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS OptSchemaName AUTHORIZATION RoleSpec OptSchemaEltList */ +#line 1349 "gram.y" + { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* schema name can be omitted here, too */ n->schemaname = (yyvsp[-3].str); @@ -26388,12 +26880,12 @@ n->if_not_exists = true; (yyval.node) = (Node *)n; } -#line 26392 "gram.c" /* yacc.c:1652 */ +#line 26884 "gram.c" break; - case 177: -#line 1364 "gram.y" /* yacc.c:1652 */ - { + case 177: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS ColId OptSchemaEltList */ +#line 1364 "gram.y" + { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* ...but not here */ n->schemaname = (yyvsp[-1].str); @@ -26407,157 +26899,157 @@ n->if_not_exists = true; (yyval.node) = (Node *)n; } -#line 26411 "gram.c" /* yacc.c:1652 */ +#line 26903 "gram.c" break; - case 178: -#line 1381 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 26417 "gram.c" /* yacc.c:1652 */ + case 178: /* OptSchemaName: ColId */ +#line 1381 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 26909 "gram.c" break; - case 179: -#line 1382 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 26423 "gram.c" /* yacc.c:1652 */ + case 179: /* OptSchemaName: %empty */ +#line 1382 "gram.y" + { (yyval.str) = NULL; } +#line 26915 "gram.c" break; - case 180: -#line 1387 "gram.y" /* yacc.c:1652 */ - { + case 180: /* OptSchemaEltList: OptSchemaEltList schema_stmt */ +#line 1387 "gram.y" + { if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ (yyloc) = (yylsp[0]); (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 26433 "gram.c" /* yacc.c:1652 */ +#line 26925 "gram.c" break; - case 181: -#line 1393 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 26439 "gram.c" /* yacc.c:1652 */ + case 181: /* OptSchemaEltList: %empty */ +#line 1393 "gram.y" + { (yyval.list) = NIL; } +#line 26931 "gram.c" break; - case 188: -#line 1421 "gram.y" /* yacc.c:1652 */ - { + case 188: /* VariableSetStmt: SET set_rest */ +#line 1421 "gram.y" + { VariableSetStmt *n = (yyvsp[0].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; } -#line 26449 "gram.c" /* yacc.c:1652 */ +#line 26941 "gram.c" break; - case 189: -#line 1427 "gram.y" /* yacc.c:1652 */ - { + case 189: /* VariableSetStmt: SET LOCAL set_rest */ +#line 1427 "gram.y" + { VariableSetStmt *n = (yyvsp[0].vsetstmt); n->is_local = true; (yyval.node) = (Node *) n; } -#line 26459 "gram.c" /* yacc.c:1652 */ +#line 26951 "gram.c" break; - case 190: -#line 1433 "gram.y" /* yacc.c:1652 */ - { + case 190: /* VariableSetStmt: SET SESSION set_rest */ +#line 1433 "gram.y" + { VariableSetStmt *n = (yyvsp[0].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; } -#line 26469 "gram.c" /* yacc.c:1652 */ +#line 26961 "gram.c" break; - case 191: -#line 1442 "gram.y" /* yacc.c:1652 */ - { + case 191: /* set_rest: TRANSACTION transaction_mode_list */ +#line 1442 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION"; n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } -#line 26481 "gram.c" /* yacc.c:1652 */ +#line 26973 "gram.c" break; - case 192: -#line 1450 "gram.y" /* yacc.c:1652 */ - { + case 192: /* set_rest: SESSION CHARACTERISTICS AS TRANSACTION transaction_mode_list */ +#line 1450 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "SESSION CHARACTERISTICS"; n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } -#line 26493 "gram.c" /* yacc.c:1652 */ +#line 26985 "gram.c" break; - case 194: -#line 1462 "gram.y" /* yacc.c:1652 */ - { + case 194: /* generic_set: var_name TO var_list */ +#line 1462 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[-2].str); n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } -#line 26505 "gram.c" /* yacc.c:1652 */ +#line 26997 "gram.c" break; - case 195: -#line 1470 "gram.y" /* yacc.c:1652 */ - { + case 195: /* generic_set: var_name '=' var_list */ +#line 1470 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[-2].str); n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } -#line 26517 "gram.c" /* yacc.c:1652 */ +#line 27009 "gram.c" break; - case 196: -#line 1478 "gram.y" /* yacc.c:1652 */ - { + case 196: /* generic_set: var_name TO DEFAULT */ +#line 1478 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } -#line 26528 "gram.c" /* yacc.c:1652 */ +#line 27020 "gram.c" break; - case 197: -#line 1485 "gram.y" /* yacc.c:1652 */ - { + case 197: /* generic_set: var_name '=' DEFAULT */ +#line 1485 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } -#line 26539 "gram.c" /* yacc.c:1652 */ +#line 27031 "gram.c" break; - case 198: -#line 1494 "gram.y" /* yacc.c:1652 */ - {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);} -#line 26545 "gram.c" /* yacc.c:1652 */ + case 198: /* set_rest_more: generic_set */ +#line 1494 "gram.y" + {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);} +#line 27037 "gram.c" break; - case 199: -#line 1496 "gram.y" /* yacc.c:1652 */ - { + case 199: /* set_rest_more: var_name FROM CURRENT_P */ +#line 1496 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_CURRENT; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } -#line 26556 "gram.c" /* yacc.c:1652 */ +#line 27048 "gram.c" break; - case 200: -#line 1504 "gram.y" /* yacc.c:1652 */ - { + case 200: /* set_rest_more: TIME ZONE zone_value */ +#line 1504 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "timezone"; @@ -26567,36 +27059,36 @@ n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; } -#line 26571 "gram.c" /* yacc.c:1652 */ +#line 27063 "gram.c" break; - case 201: -#line 1515 "gram.y" /* yacc.c:1652 */ - { + case 201: /* set_rest_more: CATALOG_P Sconst */ +#line 1515 "gram.y" + { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("current database cannot be changed"), parser_errposition((yylsp[0])))); (yyval.vsetstmt) = NULL; /*not reached*/ } -#line 26583 "gram.c" /* yacc.c:1652 */ +#line 27075 "gram.c" break; - case 202: -#line 1523 "gram.y" /* yacc.c:1652 */ - { + case 202: /* set_rest_more: SCHEMA Sconst */ +#line 1523 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "search_path"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } -#line 26595 "gram.c" /* yacc.c:1652 */ +#line 27087 "gram.c" break; - case 203: -#line 1531 "gram.y" /* yacc.c:1652 */ - { + case 203: /* set_rest_more: NAMES opt_encoding */ +#line 1531 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "client_encoding"; @@ -26606,171 +27098,171 @@ n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; } -#line 26610 "gram.c" /* yacc.c:1652 */ +#line 27102 "gram.c" break; - case 204: -#line 1542 "gram.y" /* yacc.c:1652 */ - { + case 204: /* set_rest_more: ROLE NonReservedWord_or_Sconst */ +#line 1542 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "role"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } -#line 26622 "gram.c" /* yacc.c:1652 */ +#line 27114 "gram.c" break; - case 205: -#line 1550 "gram.y" /* yacc.c:1652 */ - { + case 205: /* set_rest_more: SESSION AUTHORIZATION NonReservedWord_or_Sconst */ +#line 1550 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "session_authorization"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } -#line 26634 "gram.c" /* yacc.c:1652 */ +#line 27126 "gram.c" break; - case 206: -#line 1558 "gram.y" /* yacc.c:1652 */ - { + case 206: /* set_rest_more: SESSION AUTHORIZATION DEFAULT */ +#line 1558 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = "session_authorization"; (yyval.vsetstmt) = n; } -#line 26645 "gram.c" /* yacc.c:1652 */ +#line 27137 "gram.c" break; - case 207: -#line 1565 "gram.y" /* yacc.c:1652 */ - { + case 207: /* set_rest_more: XML_P OPTION document_or_content */ +#line 1565 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "xmloption"; n->args = list_make1(makeStringConst((yyvsp[0].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[0]))); (yyval.vsetstmt) = n; } -#line 26657 "gram.c" /* yacc.c:1652 */ +#line 27149 "gram.c" break; - case 208: -#line 1574 "gram.y" /* yacc.c:1652 */ - { + case 208: /* set_rest_more: TRANSACTION SNAPSHOT Sconst */ +#line 1574 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION SNAPSHOT"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } -#line 26669 "gram.c" /* yacc.c:1652 */ +#line 27161 "gram.c" break; - case 209: -#line 1583 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 26675 "gram.c" /* yacc.c:1652 */ + case 209: /* var_name: ColId */ +#line 1583 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 27167 "gram.c" break; - case 210: -#line 1585 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); } -#line 26681 "gram.c" /* yacc.c:1652 */ + case 210: /* var_name: var_name '.' ColId */ +#line 1585 "gram.y" + { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); } +#line 27173 "gram.c" break; - case 211: -#line 1588 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 26687 "gram.c" /* yacc.c:1652 */ + case 211: /* var_list: var_value */ +#line 1588 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 27179 "gram.c" break; - case 212: -#line 1589 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 26693 "gram.c" /* yacc.c:1652 */ + case 212: /* var_list: var_list ',' var_value */ +#line 1589 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 27185 "gram.c" break; - case 213: -#line 1593 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } -#line 26699 "gram.c" /* yacc.c:1652 */ + case 213: /* var_value: opt_boolean_or_string */ +#line 1593 "gram.y" + { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } +#line 27191 "gram.c" break; - case 214: -#line 1595 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } -#line 26705 "gram.c" /* yacc.c:1652 */ + case 214: /* var_value: NumericOnly */ +#line 1595 "gram.y" + { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } +#line 27197 "gram.c" break; - case 215: -#line 1598 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "read uncommitted"; } -#line 26711 "gram.c" /* yacc.c:1652 */ + case 215: /* iso_level: READ UNCOMMITTED */ +#line 1598 "gram.y" + { (yyval.str) = "read uncommitted"; } +#line 27203 "gram.c" break; - case 216: -#line 1599 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "read committed"; } -#line 26717 "gram.c" /* yacc.c:1652 */ + case 216: /* iso_level: READ COMMITTED */ +#line 1599 "gram.y" + { (yyval.str) = "read committed"; } +#line 27209 "gram.c" break; - case 217: -#line 1600 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "repeatable read"; } -#line 26723 "gram.c" /* yacc.c:1652 */ + case 217: /* iso_level: REPEATABLE READ */ +#line 1600 "gram.y" + { (yyval.str) = "repeatable read"; } +#line 27215 "gram.c" break; - case 218: -#line 1601 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "serializable"; } -#line 26729 "gram.c" /* yacc.c:1652 */ + case 218: /* iso_level: SERIALIZABLE */ +#line 1601 "gram.y" + { (yyval.str) = "serializable"; } +#line 27221 "gram.c" break; - case 219: -#line 1605 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "true"; } -#line 26735 "gram.c" /* yacc.c:1652 */ + case 219: /* opt_boolean_or_string: TRUE_P */ +#line 1605 "gram.y" + { (yyval.str) = "true"; } +#line 27227 "gram.c" break; - case 220: -#line 1606 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "false"; } -#line 26741 "gram.c" /* yacc.c:1652 */ + case 220: /* opt_boolean_or_string: FALSE_P */ +#line 1606 "gram.y" + { (yyval.str) = "false"; } +#line 27233 "gram.c" break; - case 221: -#line 1607 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "on"; } -#line 26747 "gram.c" /* yacc.c:1652 */ + case 221: /* opt_boolean_or_string: ON */ +#line 1607 "gram.y" + { (yyval.str) = "on"; } +#line 27239 "gram.c" break; - case 222: -#line 1613 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 26753 "gram.c" /* yacc.c:1652 */ + case 222: /* opt_boolean_or_string: NonReservedWord_or_Sconst */ +#line 1613 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 27245 "gram.c" break; - case 223: -#line 1626 "gram.y" /* yacc.c:1652 */ - { + case 223: /* zone_value: Sconst */ +#line 1626 "gram.y" + { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } -#line 26761 "gram.c" /* yacc.c:1652 */ +#line 27253 "gram.c" break; - case 224: -#line 1630 "gram.y" /* yacc.c:1652 */ - { + case 224: /* zone_value: IDENT */ +#line 1630 "gram.y" + { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } -#line 26769 "gram.c" /* yacc.c:1652 */ +#line 27261 "gram.c" break; - case 225: -#line 1634 "gram.y" /* yacc.c:1652 */ - { + case 225: /* zone_value: ConstInterval Sconst opt_interval */ +#line 1634 "gram.y" + { TypeName *t = (yyvsp[-2].typnam); if ((yyvsp[0].list) != NIL) { @@ -26784,305 +27276,305 @@ t->typmods = (yyvsp[0].list); (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); } -#line 26788 "gram.c" /* yacc.c:1652 */ +#line 27280 "gram.c" break; - case 226: -#line 1649 "gram.y" /* yacc.c:1652 */ - { + case 226: /* zone_value: ConstInterval '(' Iconst ')' Sconst */ +#line 1649 "gram.y" + { TypeName *t = (yyvsp[-4].typnam); t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } -#line 26799 "gram.c" /* yacc.c:1652 */ +#line 27291 "gram.c" break; - case 227: -#line 1655 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } -#line 26805 "gram.c" /* yacc.c:1652 */ + case 227: /* zone_value: NumericOnly */ +#line 1655 "gram.y" + { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } +#line 27297 "gram.c" break; - case 228: -#line 1656 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 26811 "gram.c" /* yacc.c:1652 */ + case 228: /* zone_value: DEFAULT */ +#line 1656 "gram.y" + { (yyval.node) = NULL; } +#line 27303 "gram.c" break; - case 229: -#line 1657 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 26817 "gram.c" /* yacc.c:1652 */ + case 229: /* zone_value: LOCAL */ +#line 1657 "gram.y" + { (yyval.node) = NULL; } +#line 27309 "gram.c" break; - case 230: -#line 1661 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 26823 "gram.c" /* yacc.c:1652 */ + case 230: /* opt_encoding: Sconst */ +#line 1661 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 27315 "gram.c" break; - case 231: -#line 1662 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 26829 "gram.c" /* yacc.c:1652 */ + case 231: /* opt_encoding: DEFAULT */ +#line 1662 "gram.y" + { (yyval.str) = NULL; } +#line 27321 "gram.c" break; - case 232: -#line 1663 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 26835 "gram.c" /* yacc.c:1652 */ + case 232: /* opt_encoding: %empty */ +#line 1663 "gram.y" + { (yyval.str) = NULL; } +#line 27327 "gram.c" break; - case 233: -#line 1667 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 26841 "gram.c" /* yacc.c:1652 */ + case 233: /* NonReservedWord_or_Sconst: NonReservedWord */ +#line 1667 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 27333 "gram.c" break; - case 234: -#line 1668 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 26847 "gram.c" /* yacc.c:1652 */ + case 234: /* NonReservedWord_or_Sconst: Sconst */ +#line 1668 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 27339 "gram.c" break; - case 235: -#line 1672 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) (yyvsp[0].vsetstmt); } -#line 26853 "gram.c" /* yacc.c:1652 */ + case 235: /* VariableResetStmt: RESET reset_rest */ +#line 1672 "gram.y" + { (yyval.node) = (Node *) (yyvsp[0].vsetstmt); } +#line 27345 "gram.c" break; - case 236: -#line 1676 "gram.y" /* yacc.c:1652 */ - { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } -#line 26859 "gram.c" /* yacc.c:1652 */ + case 236: /* reset_rest: generic_reset */ +#line 1676 "gram.y" + { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } +#line 27351 "gram.c" break; - case 237: -#line 1678 "gram.y" /* yacc.c:1652 */ - { + case 237: /* reset_rest: TIME ZONE */ +#line 1678 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "timezone"; (yyval.vsetstmt) = n; } -#line 26870 "gram.c" /* yacc.c:1652 */ +#line 27362 "gram.c" break; - case 238: -#line 1685 "gram.y" /* yacc.c:1652 */ - { + case 238: /* reset_rest: TRANSACTION ISOLATION LEVEL */ +#line 1685 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "transaction_isolation"; (yyval.vsetstmt) = n; } -#line 26881 "gram.c" /* yacc.c:1652 */ +#line 27373 "gram.c" break; - case 239: -#line 1692 "gram.y" /* yacc.c:1652 */ - { + case 239: /* reset_rest: SESSION AUTHORIZATION */ +#line 1692 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "session_authorization"; (yyval.vsetstmt) = n; } -#line 26892 "gram.c" /* yacc.c:1652 */ +#line 27384 "gram.c" break; - case 240: -#line 1702 "gram.y" /* yacc.c:1652 */ - { + case 240: /* generic_reset: var_name */ +#line 1702 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = (yyvsp[0].str); (yyval.vsetstmt) = n; } -#line 26903 "gram.c" /* yacc.c:1652 */ +#line 27395 "gram.c" break; - case 241: -#line 1709 "gram.y" /* yacc.c:1652 */ - { + case 241: /* generic_reset: ALL */ +#line 1709 "gram.y" + { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET_ALL; (yyval.vsetstmt) = n; } -#line 26913 "gram.c" /* yacc.c:1652 */ +#line 27405 "gram.c" break; - case 242: -#line 1718 "gram.y" /* yacc.c:1652 */ - { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } -#line 26919 "gram.c" /* yacc.c:1652 */ + case 242: /* SetResetClause: SET set_rest */ +#line 1718 "gram.y" + { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } +#line 27411 "gram.c" break; - case 243: -#line 1719 "gram.y" /* yacc.c:1652 */ - { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } -#line 26925 "gram.c" /* yacc.c:1652 */ + case 243: /* SetResetClause: VariableResetStmt */ +#line 1719 "gram.y" + { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } +#line 27417 "gram.c" break; - case 244: -#line 1724 "gram.y" /* yacc.c:1652 */ - { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } -#line 26931 "gram.c" /* yacc.c:1652 */ + case 244: /* FunctionSetResetClause: SET set_rest_more */ +#line 1724 "gram.y" + { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } +#line 27423 "gram.c" break; - case 245: -#line 1725 "gram.y" /* yacc.c:1652 */ - { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } -#line 26937 "gram.c" /* yacc.c:1652 */ + case 245: /* FunctionSetResetClause: VariableResetStmt */ +#line 1725 "gram.y" + { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } +#line 27429 "gram.c" break; - case 246: -#line 1731 "gram.y" /* yacc.c:1652 */ - { + case 246: /* VariableShowStmt: SHOW var_name */ +#line 1731 "gram.y" + { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 26947 "gram.c" /* yacc.c:1652 */ +#line 27439 "gram.c" break; - case 247: -#line 1737 "gram.y" /* yacc.c:1652 */ - { + case 247: /* VariableShowStmt: SHOW TIME ZONE */ +#line 1737 "gram.y" + { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "timezone"; (yyval.node) = (Node *) n; } -#line 26957 "gram.c" /* yacc.c:1652 */ +#line 27449 "gram.c" break; - case 248: -#line 1743 "gram.y" /* yacc.c:1652 */ - { + case 248: /* VariableShowStmt: SHOW TRANSACTION ISOLATION LEVEL */ +#line 1743 "gram.y" + { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "transaction_isolation"; (yyval.node) = (Node *) n; } -#line 26967 "gram.c" /* yacc.c:1652 */ +#line 27459 "gram.c" break; - case 249: -#line 1749 "gram.y" /* yacc.c:1652 */ - { + case 249: /* VariableShowStmt: SHOW SESSION AUTHORIZATION */ +#line 1749 "gram.y" + { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "session_authorization"; (yyval.node) = (Node *) n; } -#line 26977 "gram.c" /* yacc.c:1652 */ +#line 27469 "gram.c" break; - case 250: -#line 1755 "gram.y" /* yacc.c:1652 */ - { + case 250: /* VariableShowStmt: SHOW ALL */ +#line 1755 "gram.y" + { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "all"; (yyval.node) = (Node *) n; } -#line 26987 "gram.c" /* yacc.c:1652 */ +#line 27479 "gram.c" break; - case 251: -#line 1765 "gram.y" /* yacc.c:1652 */ - { + case 251: /* ConstraintsSetStmt: SET CONSTRAINTS constraints_set_list constraints_set_mode */ +#line 1765 "gram.y" + { ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt); n->constraints = (yyvsp[-1].list); n->deferred = (yyvsp[0].boolean); (yyval.node) = (Node *) n; } -#line 26998 "gram.c" /* yacc.c:1652 */ +#line 27490 "gram.c" break; - case 252: -#line 1774 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 27004 "gram.c" /* yacc.c:1652 */ + case 252: /* constraints_set_list: ALL */ +#line 1774 "gram.y" + { (yyval.list) = NIL; } +#line 27496 "gram.c" break; - case 253: -#line 1775 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 27010 "gram.c" /* yacc.c:1652 */ + case 253: /* constraints_set_list: qualified_name_list */ +#line 1775 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 27502 "gram.c" break; - case 254: -#line 1779 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 27016 "gram.c" /* yacc.c:1652 */ + case 254: /* constraints_set_mode: DEFERRED */ +#line 1779 "gram.y" + { (yyval.boolean) = true; } +#line 27508 "gram.c" break; - case 255: -#line 1780 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 27022 "gram.c" /* yacc.c:1652 */ + case 255: /* constraints_set_mode: IMMEDIATE */ +#line 1780 "gram.y" + { (yyval.boolean) = false; } +#line 27514 "gram.c" break; - case 256: -#line 1789 "gram.y" /* yacc.c:1652 */ - { + case 256: /* CheckPointStmt: CHECKPOINT */ +#line 1789 "gram.y" + { CheckPointStmt *n = makeNode(CheckPointStmt); (yyval.node) = (Node *)n; } -#line 27031 "gram.c" /* yacc.c:1652 */ +#line 27523 "gram.c" break; - case 257: -#line 1804 "gram.y" /* yacc.c:1652 */ - { + case 257: /* DiscardStmt: DISCARD ALL */ +#line 1804 "gram.y" + { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_ALL; (yyval.node) = (Node *) n; } -#line 27041 "gram.c" /* yacc.c:1652 */ +#line 27533 "gram.c" break; - case 258: -#line 1810 "gram.y" /* yacc.c:1652 */ - { + case 258: /* DiscardStmt: DISCARD TEMP */ +#line 1810 "gram.y" + { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; } -#line 27051 "gram.c" /* yacc.c:1652 */ +#line 27543 "gram.c" break; - case 259: -#line 1816 "gram.y" /* yacc.c:1652 */ - { + case 259: /* DiscardStmt: DISCARD TEMPORARY */ +#line 1816 "gram.y" + { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; } -#line 27061 "gram.c" /* yacc.c:1652 */ +#line 27553 "gram.c" break; - case 260: -#line 1822 "gram.y" /* yacc.c:1652 */ - { + case 260: /* DiscardStmt: DISCARD PLANS */ +#line 1822 "gram.y" + { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_PLANS; (yyval.node) = (Node *) n; } -#line 27071 "gram.c" /* yacc.c:1652 */ +#line 27563 "gram.c" break; - case 261: -#line 1828 "gram.y" /* yacc.c:1652 */ - { + case 261: /* DiscardStmt: DISCARD SEQUENCES */ +#line 1828 "gram.y" + { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_SEQUENCES; (yyval.node) = (Node *) n; } -#line 27081 "gram.c" /* yacc.c:1652 */ +#line 27573 "gram.c" break; - case 262: -#line 1847 "gram.y" /* yacc.c:1652 */ - { + case 262: /* AlterTableStmt: ALTER TABLE relation_expr alter_table_cmds */ +#line 1847 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27090,12 +27582,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27094 "gram.c" /* yacc.c:1652 */ +#line 27586 "gram.c" break; - case 263: -#line 1856 "gram.y" /* yacc.c:1652 */ - { + case 263: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr alter_table_cmds */ +#line 1856 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27103,12 +27595,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27107 "gram.c" /* yacc.c:1652 */ +#line 27599 "gram.c" break; - case 264: -#line 1865 "gram.y" /* yacc.c:1652 */ - { + case 264: /* AlterTableStmt: ALTER TABLE relation_expr partition_cmd */ +#line 1865 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = list_make1((yyvsp[0].node)); @@ -27116,12 +27608,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27120 "gram.c" /* yacc.c:1652 */ +#line 27612 "gram.c" break; - case 265: -#line 1874 "gram.y" /* yacc.c:1652 */ - { + case 265: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr partition_cmd */ +#line 1874 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = list_make1((yyvsp[0].node)); @@ -27129,12 +27621,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27133 "gram.c" /* yacc.c:1652 */ +#line 27625 "gram.c" break; - case 266: -#line 1883 "gram.y" /* yacc.c:1652 */ - { + case 266: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */ +#line 1883 "gram.y" + { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-4].str); @@ -27144,12 +27636,12 @@ n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 27148 "gram.c" /* yacc.c:1652 */ +#line 27640 "gram.c" break; - case 267: -#line 1894 "gram.y" /* yacc.c:1652 */ - { + case 267: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */ +#line 1894 "gram.y" + { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-7].str); @@ -27159,12 +27651,12 @@ n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 27163 "gram.c" /* yacc.c:1652 */ +#line 27655 "gram.c" break; - case 268: -#line 1905 "gram.y" /* yacc.c:1652 */ - { + case 268: /* AlterTableStmt: ALTER INDEX qualified_name alter_table_cmds */ +#line 1905 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27172,12 +27664,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27176 "gram.c" /* yacc.c:1652 */ +#line 27668 "gram.c" break; - case 269: -#line 1914 "gram.y" /* yacc.c:1652 */ - { + case 269: /* AlterTableStmt: ALTER INDEX IF_P EXISTS qualified_name alter_table_cmds */ +#line 1914 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27185,12 +27677,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27189 "gram.c" /* yacc.c:1652 */ +#line 27681 "gram.c" break; - case 270: -#line 1923 "gram.y" /* yacc.c:1652 */ - { + case 270: /* AlterTableStmt: ALTER INDEX qualified_name index_partition_cmd */ +#line 1923 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = list_make1((yyvsp[0].node)); @@ -27198,12 +27690,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27202 "gram.c" /* yacc.c:1652 */ +#line 27694 "gram.c" break; - case 271: -#line 1932 "gram.y" /* yacc.c:1652 */ - { + case 271: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */ +#line 1932 "gram.y" + { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-4].str); @@ -27213,12 +27705,12 @@ n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 27217 "gram.c" /* yacc.c:1652 */ +#line 27709 "gram.c" break; - case 272: -#line 1943 "gram.y" /* yacc.c:1652 */ - { + case 272: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */ +#line 1943 "gram.y" + { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-7].str); @@ -27228,12 +27720,12 @@ n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 27232 "gram.c" /* yacc.c:1652 */ +#line 27724 "gram.c" break; - case 273: -#line 1954 "gram.y" /* yacc.c:1652 */ - { + case 273: /* AlterTableStmt: ALTER SEQUENCE qualified_name alter_table_cmds */ +#line 1954 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27241,12 +27733,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27245 "gram.c" /* yacc.c:1652 */ +#line 27737 "gram.c" break; - case 274: -#line 1963 "gram.y" /* yacc.c:1652 */ - { + case 274: /* AlterTableStmt: ALTER SEQUENCE IF_P EXISTS qualified_name alter_table_cmds */ +#line 1963 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27254,12 +27746,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27258 "gram.c" /* yacc.c:1652 */ +#line 27750 "gram.c" break; - case 275: -#line 1972 "gram.y" /* yacc.c:1652 */ - { + case 275: /* AlterTableStmt: ALTER VIEW qualified_name alter_table_cmds */ +#line 1972 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27267,12 +27759,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27271 "gram.c" /* yacc.c:1652 */ +#line 27763 "gram.c" break; - case 276: -#line 1981 "gram.y" /* yacc.c:1652 */ - { + case 276: /* AlterTableStmt: ALTER VIEW IF_P EXISTS qualified_name alter_table_cmds */ +#line 1981 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27280,12 +27772,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27284 "gram.c" /* yacc.c:1652 */ +#line 27776 "gram.c" break; - case 277: -#line 1990 "gram.y" /* yacc.c:1652 */ - { + case 277: /* AlterTableStmt: ALTER MATERIALIZED VIEW qualified_name alter_table_cmds */ +#line 1990 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27293,12 +27785,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27297 "gram.c" /* yacc.c:1652 */ +#line 27789 "gram.c" break; - case 278: -#line 1999 "gram.y" /* yacc.c:1652 */ - { + case 278: /* AlterTableStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name alter_table_cmds */ +#line 1999 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -27306,12 +27798,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27310 "gram.c" /* yacc.c:1652 */ +#line 27802 "gram.c" break; - case 279: -#line 2008 "gram.y" /* yacc.c:1652 */ - { + case 279: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */ +#line 2008 "gram.y" + { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-4].str); @@ -27321,12 +27813,12 @@ n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 27325 "gram.c" /* yacc.c:1652 */ +#line 27817 "gram.c" break; - case 280: -#line 2019 "gram.y" /* yacc.c:1652 */ - { + case 280: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */ +#line 2019 "gram.y" + { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-7].str); @@ -27336,24 +27828,24 @@ n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 27340 "gram.c" /* yacc.c:1652 */ +#line 27832 "gram.c" break; - case 281: -#line 2032 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 27346 "gram.c" /* yacc.c:1652 */ + case 281: /* alter_table_cmds: alter_table_cmd */ +#line 2032 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 27838 "gram.c" break; - case 282: -#line 2033 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 27352 "gram.c" /* yacc.c:1652 */ + case 282: /* alter_table_cmds: alter_table_cmds ',' alter_table_cmd */ +#line 2033 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 27844 "gram.c" break; - case 283: -#line 2039 "gram.y" /* yacc.c:1652 */ - { + case 283: /* partition_cmd: ATTACH PARTITION qualified_name PartitionBoundSpec */ +#line 2039 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); @@ -27364,12 +27856,12 @@ (yyval.node) = (Node *) n; } -#line 27368 "gram.c" /* yacc.c:1652 */ +#line 27860 "gram.c" break; - case 284: -#line 2052 "gram.y" /* yacc.c:1652 */ - { + case 284: /* partition_cmd: DETACH PARTITION qualified_name */ +#line 2052 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); @@ -27380,12 +27872,12 @@ (yyval.node) = (Node *) n; } -#line 27384 "gram.c" /* yacc.c:1652 */ +#line 27876 "gram.c" break; - case 285: -#line 2068 "gram.y" /* yacc.c:1652 */ - { + case 285: /* index_partition_cmd: ATTACH PARTITION qualified_name */ +#line 2068 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); @@ -27396,129 +27888,129 @@ (yyval.node) = (Node *) n; } -#line 27400 "gram.c" /* yacc.c:1652 */ +#line 27892 "gram.c" break; - case 286: -#line 2084 "gram.y" /* yacc.c:1652 */ - { + case 286: /* alter_table_cmd: ADD_P columnDef */ +#line 2084 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27412 "gram.c" /* yacc.c:1652 */ +#line 27904 "gram.c" break; - case 287: -#line 2093 "gram.y" /* yacc.c:1652 */ - { + case 287: /* alter_table_cmd: ADD_P IF_P NOT EXISTS columnDef */ +#line 2093 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27424 "gram.c" /* yacc.c:1652 */ +#line 27916 "gram.c" break; - case 288: -#line 2102 "gram.y" /* yacc.c:1652 */ - { + case 288: /* alter_table_cmd: ADD_P COLUMN columnDef */ +#line 2102 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27436 "gram.c" /* yacc.c:1652 */ +#line 27928 "gram.c" break; - case 289: -#line 2111 "gram.y" /* yacc.c:1652 */ - { + case 289: /* alter_table_cmd: ADD_P COLUMN IF_P NOT EXISTS columnDef */ +#line 2111 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27448 "gram.c" /* yacc.c:1652 */ +#line 27940 "gram.c" break; - case 290: -#line 2120 "gram.y" /* yacc.c:1652 */ - { + case 290: /* alter_table_cmd: ALTER opt_column ColId alter_column_default */ +#line 2120 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ColumnDefault; n->name = (yyvsp[-1].str); n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } -#line 27460 "gram.c" /* yacc.c:1652 */ +#line 27952 "gram.c" break; - case 291: -#line 2129 "gram.y" /* yacc.c:1652 */ - { + case 291: /* alter_table_cmd: ALTER opt_column ColId DROP NOT NULL_P */ +#line 2129 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropNotNull; n->name = (yyvsp[-3].str); (yyval.node) = (Node *)n; } -#line 27471 "gram.c" /* yacc.c:1652 */ +#line 27963 "gram.c" break; - case 292: -#line 2137 "gram.y" /* yacc.c:1652 */ - { + case 292: /* alter_table_cmd: ALTER opt_column ColId SET NOT NULL_P */ +#line 2137 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetNotNull; n->name = (yyvsp[-3].str); (yyval.node) = (Node *)n; } -#line 27482 "gram.c" /* yacc.c:1652 */ +#line 27974 "gram.c" break; - case 293: -#line 2145 "gram.y" /* yacc.c:1652 */ - { + case 293: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION */ +#line 2145 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropExpression; n->name = (yyvsp[-2].str); (yyval.node) = (Node *)n; } -#line 27493 "gram.c" /* yacc.c:1652 */ +#line 27985 "gram.c" break; - case 294: -#line 2153 "gram.y" /* yacc.c:1652 */ - { + case 294: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION IF_P EXISTS */ +#line 2153 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropExpression; n->name = (yyvsp[-4].str); n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27505 "gram.c" /* yacc.c:1652 */ +#line 27997 "gram.c" break; - case 295: -#line 2162 "gram.y" /* yacc.c:1652 */ - { + case 295: /* alter_table_cmd: ALTER opt_column ColId SET STATISTICS SignedIconst */ +#line 2162 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStatistics; n->name = (yyvsp[-3].str); n->def = (Node *) makeInteger((yyvsp[0].ival)); (yyval.node) = (Node *)n; } -#line 27517 "gram.c" /* yacc.c:1652 */ +#line 28009 "gram.c" break; - case 296: -#line 2171 "gram.y" /* yacc.c:1652 */ - { + case 296: /* alter_table_cmd: ALTER opt_column Iconst SET STATISTICS SignedIconst */ +#line 2171 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); if ((yyvsp[-3].ival) <= 0 || (yyvsp[-3].ival) > PG_INT16_MAX) @@ -27532,48 +28024,48 @@ n->def = (Node *) makeInteger((yyvsp[0].ival)); (yyval.node) = (Node *)n; } -#line 27536 "gram.c" /* yacc.c:1652 */ +#line 28028 "gram.c" break; - case 297: -#line 2187 "gram.y" /* yacc.c:1652 */ - { + case 297: /* alter_table_cmd: ALTER opt_column ColId SET reloptions */ +#line 2187 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetOptions; n->name = (yyvsp[-2].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 27548 "gram.c" /* yacc.c:1652 */ +#line 28040 "gram.c" break; - case 298: -#line 2196 "gram.y" /* yacc.c:1652 */ - { + case 298: /* alter_table_cmd: ALTER opt_column ColId RESET reloptions */ +#line 2196 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetOptions; n->name = (yyvsp[-2].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 27560 "gram.c" /* yacc.c:1652 */ +#line 28052 "gram.c" break; - case 299: -#line 2205 "gram.y" /* yacc.c:1652 */ - { + case 299: /* alter_table_cmd: ALTER opt_column ColId SET STORAGE ColId */ +#line 2205 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStorage; n->name = (yyvsp[-3].str); n->def = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } -#line 27572 "gram.c" /* yacc.c:1652 */ +#line 28064 "gram.c" break; - case 300: -#line 2214 "gram.y" /* yacc.c:1652 */ - { + case 300: /* alter_table_cmd: ALTER opt_column ColId ADD_P GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */ +#line 2214 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); Constraint *c = makeNode(Constraint); @@ -27588,48 +28080,48 @@ (yyval.node) = (Node *)n; } -#line 27592 "gram.c" /* yacc.c:1652 */ +#line 28084 "gram.c" break; - case 301: -#line 2231 "gram.y" /* yacc.c:1652 */ - { + case 301: /* alter_table_cmd: ALTER opt_column ColId alter_identity_column_option_list */ +#line 2231 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetIdentity; n->name = (yyvsp[-1].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 27604 "gram.c" /* yacc.c:1652 */ +#line 28096 "gram.c" break; - case 302: -#line 2240 "gram.y" /* yacc.c:1652 */ - { + case 302: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P */ +#line 2240 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropIdentity; n->name = (yyvsp[-2].str); n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27616 "gram.c" /* yacc.c:1652 */ +#line 28108 "gram.c" break; - case 303: -#line 2249 "gram.y" /* yacc.c:1652 */ - { + case 303: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P IF_P EXISTS */ +#line 2249 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropIdentity; n->name = (yyvsp[-4].str); n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27628 "gram.c" /* yacc.c:1652 */ +#line 28120 "gram.c" break; - case 304: -#line 2258 "gram.y" /* yacc.c:1652 */ - { + case 304: /* alter_table_cmd: DROP opt_column IF_P EXISTS ColId opt_drop_behavior */ +#line 2258 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); @@ -27637,12 +28129,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27641 "gram.c" /* yacc.c:1652 */ +#line 28133 "gram.c" break; - case 305: -#line 2268 "gram.y" /* yacc.c:1652 */ - { + case 305: /* alter_table_cmd: DROP opt_column ColId opt_drop_behavior */ +#line 2268 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); @@ -27650,12 +28142,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27654 "gram.c" /* yacc.c:1652 */ +#line 28146 "gram.c" break; - case 306: -#line 2281 "gram.y" /* yacc.c:1652 */ - { + case 306: /* alter_table_cmd: ALTER opt_column ColId opt_set_data TYPE_P Typename opt_collate_clause alter_using */ +#line 2281 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; @@ -27668,35 +28160,35 @@ def->location = (yylsp[-5]); (yyval.node) = (Node *)n; } -#line 27672 "gram.c" /* yacc.c:1652 */ +#line 28164 "gram.c" break; - case 307: -#line 2296 "gram.y" /* yacc.c:1652 */ - { + case 307: /* alter_table_cmd: ALTER opt_column ColId alter_generic_options */ +#line 2296 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AlterColumnGenericOptions; n->name = (yyvsp[-1].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 27684 "gram.c" /* yacc.c:1652 */ +#line 28176 "gram.c" break; - case 308: -#line 2305 "gram.y" /* yacc.c:1652 */ - { + case 308: /* alter_table_cmd: ADD_P TableConstraint */ +#line 2305 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddConstraint; n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } -#line 27695 "gram.c" /* yacc.c:1652 */ +#line 28187 "gram.c" break; - case 309: -#line 2313 "gram.y" /* yacc.c:1652 */ - { + case 309: /* alter_table_cmd: ALTER CONSTRAINT name ConstraintAttributeSpec */ +#line 2313 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); Constraint *c = makeNode(Constraint); n->subtype = AT_AlterConstraint; @@ -27709,23 +28201,23 @@ NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } -#line 27713 "gram.c" /* yacc.c:1652 */ +#line 28205 "gram.c" break; - case 310: -#line 2328 "gram.y" /* yacc.c:1652 */ - { + case 310: /* alter_table_cmd: VALIDATE CONSTRAINT name */ +#line 2328 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ValidateConstraint; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27724 "gram.c" /* yacc.c:1652 */ +#line 28216 "gram.c" break; - case 311: -#line 2336 "gram.y" /* yacc.c:1652 */ - { + case 311: /* alter_table_cmd: DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */ +#line 2336 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[-1].str); @@ -27733,12 +28225,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 27737 "gram.c" /* yacc.c:1652 */ +#line 28229 "gram.c" break; - case 312: -#line 2346 "gram.y" /* yacc.c:1652 */ - { + case 312: /* alter_table_cmd: DROP CONSTRAINT name opt_drop_behavior */ +#line 2346 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[-1].str); @@ -27746,214 +28238,214 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 27750 "gram.c" /* yacc.c:1652 */ +#line 28242 "gram.c" break; - case 313: -#line 2356 "gram.y" /* yacc.c:1652 */ - { + case 313: /* alter_table_cmd: SET WITHOUT OIDS */ +#line 2356 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOids; (yyval.node) = (Node *)n; } -#line 27760 "gram.c" /* yacc.c:1652 */ +#line 28252 "gram.c" break; - case 314: -#line 2363 "gram.y" /* yacc.c:1652 */ - { + case 314: /* alter_table_cmd: CLUSTER ON name */ +#line 2363 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ClusterOn; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27771 "gram.c" /* yacc.c:1652 */ +#line 28263 "gram.c" break; - case 315: -#line 2371 "gram.y" /* yacc.c:1652 */ - { + case 315: /* alter_table_cmd: SET WITHOUT CLUSTER */ +#line 2371 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropCluster; n->name = NULL; (yyval.node) = (Node *)n; } -#line 27782 "gram.c" /* yacc.c:1652 */ +#line 28274 "gram.c" break; - case 316: -#line 2379 "gram.y" /* yacc.c:1652 */ - { + case 316: /* alter_table_cmd: SET LOGGED */ +#line 2379 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetLogged; (yyval.node) = (Node *)n; } -#line 27792 "gram.c" /* yacc.c:1652 */ +#line 28284 "gram.c" break; - case 317: -#line 2386 "gram.y" /* yacc.c:1652 */ - { + case 317: /* alter_table_cmd: SET UNLOGGED */ +#line 2386 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetUnLogged; (yyval.node) = (Node *)n; } -#line 27802 "gram.c" /* yacc.c:1652 */ +#line 28294 "gram.c" break; - case 318: -#line 2393 "gram.y" /* yacc.c:1652 */ - { + case 318: /* alter_table_cmd: ENABLE_P TRIGGER name */ +#line 2393 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27813 "gram.c" /* yacc.c:1652 */ +#line 28305 "gram.c" break; - case 319: -#line 2401 "gram.y" /* yacc.c:1652 */ - { + case 319: /* alter_table_cmd: ENABLE_P ALWAYS TRIGGER name */ +#line 2401 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27824 "gram.c" /* yacc.c:1652 */ +#line 28316 "gram.c" break; - case 320: -#line 2409 "gram.y" /* yacc.c:1652 */ - { + case 320: /* alter_table_cmd: ENABLE_P REPLICA TRIGGER name */ +#line 2409 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27835 "gram.c" /* yacc.c:1652 */ +#line 28327 "gram.c" break; - case 321: -#line 2417 "gram.y" /* yacc.c:1652 */ - { + case 321: /* alter_table_cmd: ENABLE_P TRIGGER ALL */ +#line 2417 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigAll; (yyval.node) = (Node *)n; } -#line 27845 "gram.c" /* yacc.c:1652 */ +#line 28337 "gram.c" break; - case 322: -#line 2424 "gram.y" /* yacc.c:1652 */ - { + case 322: /* alter_table_cmd: ENABLE_P TRIGGER USER */ +#line 2424 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigUser; (yyval.node) = (Node *)n; } -#line 27855 "gram.c" /* yacc.c:1652 */ +#line 28347 "gram.c" break; - case 323: -#line 2431 "gram.y" /* yacc.c:1652 */ - { + case 323: /* alter_table_cmd: DISABLE_P TRIGGER name */ +#line 2431 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27866 "gram.c" /* yacc.c:1652 */ +#line 28358 "gram.c" break; - case 324: -#line 2439 "gram.y" /* yacc.c:1652 */ - { + case 324: /* alter_table_cmd: DISABLE_P TRIGGER ALL */ +#line 2439 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigAll; (yyval.node) = (Node *)n; } -#line 27876 "gram.c" /* yacc.c:1652 */ +#line 28368 "gram.c" break; - case 325: -#line 2446 "gram.y" /* yacc.c:1652 */ - { + case 325: /* alter_table_cmd: DISABLE_P TRIGGER USER */ +#line 2446 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigUser; (yyval.node) = (Node *)n; } -#line 27886 "gram.c" /* yacc.c:1652 */ +#line 28378 "gram.c" break; - case 326: -#line 2453 "gram.y" /* yacc.c:1652 */ - { + case 326: /* alter_table_cmd: ENABLE_P RULE name */ +#line 2453 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27897 "gram.c" /* yacc.c:1652 */ +#line 28389 "gram.c" break; - case 327: -#line 2461 "gram.y" /* yacc.c:1652 */ - { + case 327: /* alter_table_cmd: ENABLE_P ALWAYS RULE name */ +#line 2461 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27908 "gram.c" /* yacc.c:1652 */ +#line 28400 "gram.c" break; - case 328: -#line 2469 "gram.y" /* yacc.c:1652 */ - { + case 328: /* alter_table_cmd: ENABLE_P REPLICA RULE name */ +#line 2469 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27919 "gram.c" /* yacc.c:1652 */ +#line 28411 "gram.c" break; - case 329: -#line 2477 "gram.y" /* yacc.c:1652 */ - { + case 329: /* alter_table_cmd: DISABLE_P RULE name */ +#line 2477 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27930 "gram.c" /* yacc.c:1652 */ +#line 28422 "gram.c" break; - case 330: -#line 2485 "gram.y" /* yacc.c:1652 */ - { + case 330: /* alter_table_cmd: INHERIT qualified_name */ +#line 2485 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddInherit; n->def = (Node *) (yyvsp[0].range); (yyval.node) = (Node *)n; } -#line 27941 "gram.c" /* yacc.c:1652 */ +#line 28433 "gram.c" break; - case 331: -#line 2493 "gram.y" /* yacc.c:1652 */ - { + case 331: /* alter_table_cmd: NO INHERIT qualified_name */ +#line 2493 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropInherit; n->def = (Node *) (yyvsp[0].range); (yyval.node) = (Node *)n; } -#line 27952 "gram.c" /* yacc.c:1652 */ +#line 28444 "gram.c" break; - case 332: -#line 2501 "gram.y" /* yacc.c:1652 */ - { + case 332: /* alter_table_cmd: OF any_name */ +#line 2501 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); TypeName *def = makeTypeNameFromNameList((yyvsp[0].list)); def->location = (yylsp[0]); @@ -27961,323 +28453,323 @@ n->def = (Node *) def; (yyval.node) = (Node *)n; } -#line 27965 "gram.c" /* yacc.c:1652 */ +#line 28457 "gram.c" break; - case 333: -#line 2511 "gram.y" /* yacc.c:1652 */ - { + case 333: /* alter_table_cmd: NOT OF */ +#line 2511 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOf; (yyval.node) = (Node *)n; } -#line 27975 "gram.c" /* yacc.c:1652 */ +#line 28467 "gram.c" break; - case 334: -#line 2518 "gram.y" /* yacc.c:1652 */ - { + case 334: /* alter_table_cmd: OWNER TO RoleSpec */ +#line 2518 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ChangeOwner; n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 27986 "gram.c" /* yacc.c:1652 */ +#line 28478 "gram.c" break; - case 335: -#line 2526 "gram.y" /* yacc.c:1652 */ - { + case 335: /* alter_table_cmd: SET TABLESPACE name */ +#line 2526 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetTableSpace; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 27997 "gram.c" /* yacc.c:1652 */ +#line 28489 "gram.c" break; - case 336: -#line 2534 "gram.y" /* yacc.c:1652 */ - { + case 336: /* alter_table_cmd: SET reloptions */ +#line 2534 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetRelOptions; n->def = (Node *)(yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 28008 "gram.c" /* yacc.c:1652 */ +#line 28500 "gram.c" break; - case 337: -#line 2542 "gram.y" /* yacc.c:1652 */ - { + case 337: /* alter_table_cmd: RESET reloptions */ +#line 2542 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetRelOptions; n->def = (Node *)(yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 28019 "gram.c" /* yacc.c:1652 */ +#line 28511 "gram.c" break; - case 338: -#line 2550 "gram.y" /* yacc.c:1652 */ - { + case 338: /* alter_table_cmd: REPLICA IDENTITY_P replica_identity */ +#line 2550 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ReplicaIdentity; n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } -#line 28030 "gram.c" /* yacc.c:1652 */ +#line 28522 "gram.c" break; - case 339: -#line 2558 "gram.y" /* yacc.c:1652 */ - { + case 339: /* alter_table_cmd: ENABLE_P ROW LEVEL SECURITY */ +#line 2558 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRowSecurity; (yyval.node) = (Node *)n; } -#line 28040 "gram.c" /* yacc.c:1652 */ +#line 28532 "gram.c" break; - case 340: -#line 2565 "gram.y" /* yacc.c:1652 */ - { + case 340: /* alter_table_cmd: DISABLE_P ROW LEVEL SECURITY */ +#line 2565 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRowSecurity; (yyval.node) = (Node *)n; } -#line 28050 "gram.c" /* yacc.c:1652 */ +#line 28542 "gram.c" break; - case 341: -#line 2572 "gram.y" /* yacc.c:1652 */ - { + case 341: /* alter_table_cmd: FORCE ROW LEVEL SECURITY */ +#line 2572 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ForceRowSecurity; (yyval.node) = (Node *)n; } -#line 28060 "gram.c" /* yacc.c:1652 */ +#line 28552 "gram.c" break; - case 342: -#line 2579 "gram.y" /* yacc.c:1652 */ - { + case 342: /* alter_table_cmd: NO FORCE ROW LEVEL SECURITY */ +#line 2579 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_NoForceRowSecurity; (yyval.node) = (Node *)n; } -#line 28070 "gram.c" /* yacc.c:1652 */ +#line 28562 "gram.c" break; - case 343: -#line 2585 "gram.y" /* yacc.c:1652 */ - { + case 343: /* alter_table_cmd: alter_generic_options */ +#line 2585 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_GenericOptions; n->def = (Node *)(yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 28081 "gram.c" /* yacc.c:1652 */ +#line 28573 "gram.c" break; - case 344: -#line 2594 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 28087 "gram.c" /* yacc.c:1652 */ + case 344: /* alter_column_default: SET DEFAULT a_expr */ +#line 2594 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 28579 "gram.c" break; - case 345: -#line 2595 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 28093 "gram.c" /* yacc.c:1652 */ + case 345: /* alter_column_default: DROP DEFAULT */ +#line 2595 "gram.y" + { (yyval.node) = NULL; } +#line 28585 "gram.c" break; - case 346: -#line 2599 "gram.y" /* yacc.c:1652 */ - { (yyval.dbehavior) = DROP_CASCADE; } -#line 28099 "gram.c" /* yacc.c:1652 */ + case 346: /* opt_drop_behavior: CASCADE */ +#line 2599 "gram.y" + { (yyval.dbehavior) = DROP_CASCADE; } +#line 28591 "gram.c" break; - case 347: -#line 2600 "gram.y" /* yacc.c:1652 */ - { (yyval.dbehavior) = DROP_RESTRICT; } -#line 28105 "gram.c" /* yacc.c:1652 */ + case 347: /* opt_drop_behavior: RESTRICT */ +#line 2600 "gram.y" + { (yyval.dbehavior) = DROP_RESTRICT; } +#line 28597 "gram.c" break; - case 348: -#line 2601 "gram.y" /* yacc.c:1652 */ - { (yyval.dbehavior) = DROP_RESTRICT; /* default */ } -#line 28111 "gram.c" /* yacc.c:1652 */ + case 348: /* opt_drop_behavior: %empty */ +#line 2601 "gram.y" + { (yyval.dbehavior) = DROP_RESTRICT; /* default */ } +#line 28603 "gram.c" break; - case 349: -#line 2606 "gram.y" /* yacc.c:1652 */ - { + case 349: /* opt_collate_clause: COLLATE any_name */ +#line 2606 "gram.y" + { CollateClause *n = makeNode(CollateClause); n->arg = NULL; n->collname = (yyvsp[0].list); n->location = (yylsp[-1]); (yyval.node) = (Node *) n; } -#line 28123 "gram.c" /* yacc.c:1652 */ +#line 28615 "gram.c" break; - case 350: -#line 2613 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 28129 "gram.c" /* yacc.c:1652 */ + case 350: /* opt_collate_clause: %empty */ +#line 2613 "gram.y" + { (yyval.node) = NULL; } +#line 28621 "gram.c" break; - case 351: -#line 2617 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 28135 "gram.c" /* yacc.c:1652 */ + case 351: /* alter_using: USING a_expr */ +#line 2617 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 28627 "gram.c" break; - case 352: -#line 2618 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 28141 "gram.c" /* yacc.c:1652 */ + case 352: /* alter_using: %empty */ +#line 2618 "gram.y" + { (yyval.node) = NULL; } +#line 28633 "gram.c" break; - case 353: -#line 2623 "gram.y" /* yacc.c:1652 */ - { + case 353: /* replica_identity: NOTHING */ +#line 2623 "gram.y" + { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_NOTHING; n->name = NULL; (yyval.node) = (Node *) n; } -#line 28152 "gram.c" /* yacc.c:1652 */ +#line 28644 "gram.c" break; - case 354: -#line 2630 "gram.y" /* yacc.c:1652 */ - { + case 354: /* replica_identity: FULL */ +#line 2630 "gram.y" + { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_FULL; n->name = NULL; (yyval.node) = (Node *) n; } -#line 28163 "gram.c" /* yacc.c:1652 */ +#line 28655 "gram.c" break; - case 355: -#line 2637 "gram.y" /* yacc.c:1652 */ - { + case 355: /* replica_identity: DEFAULT */ +#line 2637 "gram.y" + { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_DEFAULT; n->name = NULL; (yyval.node) = (Node *) n; } -#line 28174 "gram.c" /* yacc.c:1652 */ +#line 28666 "gram.c" break; - case 356: -#line 2644 "gram.y" /* yacc.c:1652 */ - { + case 356: /* replica_identity: USING INDEX name */ +#line 2644 "gram.y" + { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_INDEX; n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 28185 "gram.c" /* yacc.c:1652 */ +#line 28677 "gram.c" break; - case 357: -#line 2653 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 28191 "gram.c" /* yacc.c:1652 */ + case 357: /* reloptions: '(' reloption_list ')' */ +#line 2653 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 28683 "gram.c" break; - case 358: -#line 2656 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 28197 "gram.c" /* yacc.c:1652 */ + case 358: /* opt_reloptions: WITH reloptions */ +#line 2656 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 28689 "gram.c" break; - case 359: -#line 2657 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 28203 "gram.c" /* yacc.c:1652 */ + case 359: /* opt_reloptions: %empty */ +#line 2657 "gram.y" + { (yyval.list) = NIL; } +#line 28695 "gram.c" break; - case 360: -#line 2661 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 28209 "gram.c" /* yacc.c:1652 */ + case 360: /* reloption_list: reloption_elem */ +#line 2661 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 28701 "gram.c" break; - case 361: -#line 2662 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 28215 "gram.c" /* yacc.c:1652 */ + case 361: /* reloption_list: reloption_list ',' reloption_elem */ +#line 2662 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 28707 "gram.c" break; - case 362: -#line 2668 "gram.y" /* yacc.c:1652 */ - { + case 362: /* reloption_elem: ColLabel '=' def_arg */ +#line 2668 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } -#line 28223 "gram.c" /* yacc.c:1652 */ +#line 28715 "gram.c" break; - case 363: -#line 2672 "gram.y" /* yacc.c:1652 */ - { + case 363: /* reloption_elem: ColLabel */ +#line 2672 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); } -#line 28231 "gram.c" /* yacc.c:1652 */ +#line 28723 "gram.c" break; - case 364: -#line 2676 "gram.y" /* yacc.c:1652 */ - { + case 364: /* reloption_elem: ColLabel '.' ColLabel '=' def_arg */ +#line 2676 "gram.y" + { (yyval.defelt) = makeDefElemExtended((yyvsp[-4].str), (yyvsp[-2].str), (Node *) (yyvsp[0].node), DEFELEM_UNSPEC, (yylsp[-4])); } -#line 28240 "gram.c" /* yacc.c:1652 */ +#line 28732 "gram.c" break; - case 365: -#line 2681 "gram.y" /* yacc.c:1652 */ - { + case 365: /* reloption_elem: ColLabel '.' ColLabel */ +#line 2681 "gram.y" + { (yyval.defelt) = makeDefElemExtended((yyvsp[-2].str), (yyvsp[0].str), NULL, DEFELEM_UNSPEC, (yylsp[-2])); } -#line 28248 "gram.c" /* yacc.c:1652 */ +#line 28740 "gram.c" break; - case 366: -#line 2688 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 28254 "gram.c" /* yacc.c:1652 */ + case 366: /* alter_identity_column_option_list: alter_identity_column_option */ +#line 2688 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 28746 "gram.c" break; - case 367: -#line 2690 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 28260 "gram.c" /* yacc.c:1652 */ + case 367: /* alter_identity_column_option_list: alter_identity_column_option_list alter_identity_column_option */ +#line 2690 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 28752 "gram.c" break; - case 368: -#line 2695 "gram.y" /* yacc.c:1652 */ - { + case 368: /* alter_identity_column_option: RESTART */ +#line 2695 "gram.y" + { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); } -#line 28268 "gram.c" /* yacc.c:1652 */ +#line 28760 "gram.c" break; - case 369: -#line 2699 "gram.y" /* yacc.c:1652 */ - { + case 369: /* alter_identity_column_option: RESTART opt_with NumericOnly */ +#line 2699 "gram.y" + { (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[0].value), (yylsp[-2])); } -#line 28276 "gram.c" /* yacc.c:1652 */ +#line 28768 "gram.c" break; - case 370: -#line 2703 "gram.y" /* yacc.c:1652 */ - { + case 370: /* alter_identity_column_option: SET SeqOptElem */ +#line 2703 "gram.y" + { if (strcmp((yyvsp[0].defelt)->defname, "as") == 0 || strcmp((yyvsp[0].defelt)->defname, "restart") == 0 || strcmp((yyvsp[0].defelt)->defname, "owned_by") == 0) @@ -28287,20 +28779,20 @@ parser_errposition((yylsp[0])))); (yyval.defelt) = (yyvsp[0].defelt); } -#line 28291 "gram.c" /* yacc.c:1652 */ +#line 28783 "gram.c" break; - case 371: -#line 2714 "gram.y" /* yacc.c:1652 */ - { + case 371: /* alter_identity_column_option: SET GENERATED generated_when */ +#line 2714 "gram.y" + { (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2])); } -#line 28299 "gram.c" /* yacc.c:1652 */ +#line 28791 "gram.c" break; - case 372: -#line 2722 "gram.y" /* yacc.c:1652 */ - { + case 372: /* PartitionBoundSpec: FOR VALUES WITH '(' hash_partbound ')' */ +#line 2722 "gram.y" + { ListCell *lc; PartitionBoundSpec *n = makeNode(PartitionBoundSpec); @@ -28350,12 +28842,12 @@ (yyval.partboundspec) = n; } -#line 28354 "gram.c" /* yacc.c:1652 */ +#line 28846 "gram.c" break; - case 373: -#line 2775 "gram.y" /* yacc.c:1652 */ - { + case 373: /* PartitionBoundSpec: FOR VALUES IN_P '(' expr_list ')' */ +#line 2775 "gram.y" + { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_LIST; @@ -28365,12 +28857,12 @@ (yyval.partboundspec) = n; } -#line 28369 "gram.c" /* yacc.c:1652 */ +#line 28861 "gram.c" break; - case 374: -#line 2788 "gram.y" /* yacc.c:1652 */ - { + case 374: /* PartitionBoundSpec: FOR VALUES FROM '(' expr_list ')' TO '(' expr_list ')' */ +#line 2788 "gram.y" + { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_RANGE; @@ -28381,12 +28873,12 @@ (yyval.partboundspec) = n; } -#line 28385 "gram.c" /* yacc.c:1652 */ +#line 28877 "gram.c" break; - case 375: -#line 2802 "gram.y" /* yacc.c:1652 */ - { + case 375: /* PartitionBoundSpec: DEFAULT */ +#line 2802 "gram.y" + { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->is_default = true; @@ -28394,36 +28886,36 @@ (yyval.partboundspec) = n; } -#line 28398 "gram.c" /* yacc.c:1652 */ +#line 28890 "gram.c" break; - case 376: -#line 2814 "gram.y" /* yacc.c:1652 */ - { + case 376: /* hash_partbound_elem: NonReservedWord Iconst */ +#line 2814 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-1])); } -#line 28406 "gram.c" /* yacc.c:1652 */ +#line 28898 "gram.c" break; - case 377: -#line 2821 "gram.y" /* yacc.c:1652 */ - { + case 377: /* hash_partbound: hash_partbound_elem */ +#line 2821 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 28414 "gram.c" /* yacc.c:1652 */ +#line 28906 "gram.c" break; - case 378: -#line 2825 "gram.y" /* yacc.c:1652 */ - { + case 378: /* hash_partbound: hash_partbound ',' hash_partbound_elem */ +#line 2825 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 28422 "gram.c" /* yacc.c:1652 */ +#line 28914 "gram.c" break; - case 379: -#line 2839 "gram.y" /* yacc.c:1652 */ - { + case 379: /* AlterCompositeTypeStmt: ALTER TYPE_P any_name alter_type_cmds */ +#line 2839 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); /* can't use qualified_name, sigh */ @@ -28432,36 +28924,36 @@ n->relkind = OBJECT_TYPE; (yyval.node) = (Node *)n; } -#line 28436 "gram.c" /* yacc.c:1652 */ +#line 28928 "gram.c" break; - case 380: -#line 2851 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 28442 "gram.c" /* yacc.c:1652 */ + case 380: /* alter_type_cmds: alter_type_cmd */ +#line 2851 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 28934 "gram.c" break; - case 381: -#line 2852 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 28448 "gram.c" /* yacc.c:1652 */ + case 381: /* alter_type_cmds: alter_type_cmds ',' alter_type_cmd */ +#line 2852 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 28940 "gram.c" break; - case 382: -#line 2858 "gram.y" /* yacc.c:1652 */ - { + case 382: /* alter_type_cmd: ADD_P ATTRIBUTE TableFuncElement opt_drop_behavior */ +#line 2858 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[-1].node); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } -#line 28460 "gram.c" /* yacc.c:1652 */ +#line 28952 "gram.c" break; - case 383: -#line 2867 "gram.y" /* yacc.c:1652 */ - { + case 383: /* alter_type_cmd: DROP ATTRIBUTE IF_P EXISTS ColId opt_drop_behavior */ +#line 2867 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); @@ -28469,12 +28961,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 28473 "gram.c" /* yacc.c:1652 */ +#line 28965 "gram.c" break; - case 384: -#line 2877 "gram.y" /* yacc.c:1652 */ - { + case 384: /* alter_type_cmd: DROP ATTRIBUTE ColId opt_drop_behavior */ +#line 2877 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); @@ -28482,12 +28974,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 28486 "gram.c" /* yacc.c:1652 */ +#line 28978 "gram.c" break; - case 385: -#line 2887 "gram.y" /* yacc.c:1652 */ - { + case 385: /* alter_type_cmd: ALTER ATTRIBUTE ColId opt_set_data TYPE_P Typename opt_collate_clause opt_drop_behavior */ +#line 2887 "gram.y" + { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; @@ -28501,32 +28993,32 @@ def->location = (yylsp[-5]); (yyval.node) = (Node *)n; } -#line 28505 "gram.c" /* yacc.c:1652 */ +#line 28997 "gram.c" break; - case 386: -#line 2913 "gram.y" /* yacc.c:1652 */ - { + case 386: /* ClosePortalStmt: CLOSE cursor_name */ +#line 2913 "gram.y" + { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 28515 "gram.c" /* yacc.c:1652 */ +#line 29007 "gram.c" break; - case 387: -#line 2919 "gram.y" /* yacc.c:1652 */ - { + case 387: /* ClosePortalStmt: CLOSE ALL */ +#line 2919 "gram.y" + { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = NULL; (yyval.node) = (Node *)n; } -#line 28525 "gram.c" /* yacc.c:1652 */ +#line 29017 "gram.c" break; - case 388: -#line 2954 "gram.y" /* yacc.c:1652 */ - { + case 388: /* CopyStmt: COPY opt_binary qualified_name opt_column_list copy_from opt_program copy_file_name copy_delimiter opt_with copy_options where_clause */ +#line 2954 "gram.y" + { CopyStmt *n = makeNode(CopyStmt); n->relation = (yyvsp[-8].range); n->query = NULL; @@ -28558,12 +29050,12 @@ n->options = list_concat(n->options, (yyvsp[-1].list)); (yyval.node) = (Node *)n; } -#line 28562 "gram.c" /* yacc.c:1652 */ +#line 29054 "gram.c" break; - case 389: -#line 2987 "gram.y" /* yacc.c:1652 */ - { + case 389: /* CopyStmt: COPY '(' PreparableStmt ')' TO opt_program copy_file_name opt_with copy_options */ +#line 2987 "gram.y" + { CopyStmt *n = makeNode(CopyStmt); n->relation = NULL; n->query = (yyvsp[-6].node); @@ -28581,298 +29073,298 @@ (yyval.node) = (Node *)n; } -#line 28585 "gram.c" /* yacc.c:1652 */ +#line 29077 "gram.c" break; - case 390: -#line 3008 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 28591 "gram.c" /* yacc.c:1652 */ + case 390: /* copy_from: FROM */ +#line 3008 "gram.y" + { (yyval.boolean) = true; } +#line 29083 "gram.c" break; - case 391: -#line 3009 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 28597 "gram.c" /* yacc.c:1652 */ + case 391: /* copy_from: TO */ +#line 3009 "gram.y" + { (yyval.boolean) = false; } +#line 29089 "gram.c" break; - case 392: -#line 3013 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 28603 "gram.c" /* yacc.c:1652 */ + case 392: /* opt_program: PROGRAM */ +#line 3013 "gram.y" + { (yyval.boolean) = true; } +#line 29095 "gram.c" break; - case 393: -#line 3014 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 28609 "gram.c" /* yacc.c:1652 */ + case 393: /* opt_program: %empty */ +#line 3014 "gram.y" + { (yyval.boolean) = false; } +#line 29101 "gram.c" break; - case 394: -#line 3023 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 28615 "gram.c" /* yacc.c:1652 */ + case 394: /* copy_file_name: Sconst */ +#line 3023 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 29107 "gram.c" break; - case 395: -#line 3024 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 28621 "gram.c" /* yacc.c:1652 */ + case 395: /* copy_file_name: STDIN */ +#line 3024 "gram.y" + { (yyval.str) = NULL; } +#line 29113 "gram.c" break; - case 396: -#line 3025 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 28627 "gram.c" /* yacc.c:1652 */ + case 396: /* copy_file_name: STDOUT */ +#line 3025 "gram.y" + { (yyval.str) = NULL; } +#line 29119 "gram.c" break; - case 397: -#line 3028 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 28633 "gram.c" /* yacc.c:1652 */ + case 397: /* copy_options: copy_opt_list */ +#line 3028 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 29125 "gram.c" break; - case 398: -#line 3029 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 28639 "gram.c" /* yacc.c:1652 */ + case 398: /* copy_options: '(' copy_generic_opt_list ')' */ +#line 3029 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 29131 "gram.c" break; - case 399: -#line 3034 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 28645 "gram.c" /* yacc.c:1652 */ + case 399: /* copy_opt_list: copy_opt_list copy_opt_item */ +#line 3034 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 29137 "gram.c" break; - case 400: -#line 3035 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 28651 "gram.c" /* yacc.c:1652 */ + case 400: /* copy_opt_list: %empty */ +#line 3035 "gram.y" + { (yyval.list) = NIL; } +#line 29143 "gram.c" break; - case 401: -#line 3040 "gram.y" /* yacc.c:1652 */ - { + case 401: /* copy_opt_item: BINARY */ +#line 3040 "gram.y" + { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"), (yylsp[0])); } -#line 28659 "gram.c" /* yacc.c:1652 */ +#line 29151 "gram.c" break; - case 402: -#line 3044 "gram.y" /* yacc.c:1652 */ - { + case 402: /* copy_opt_item: FREEZE */ +#line 3044 "gram.y" + { (yyval.defelt) = makeDefElem("freeze", (Node *)makeInteger(true), (yylsp[0])); } -#line 28667 "gram.c" /* yacc.c:1652 */ +#line 29159 "gram.c" break; - case 403: -#line 3048 "gram.y" /* yacc.c:1652 */ - { + case 403: /* copy_opt_item: DELIMITER opt_as Sconst */ +#line 3048 "gram.y" + { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 28675 "gram.c" /* yacc.c:1652 */ +#line 29167 "gram.c" break; - case 404: -#line 3052 "gram.y" /* yacc.c:1652 */ - { + case 404: /* copy_opt_item: NULL_P opt_as Sconst */ +#line 3052 "gram.y" + { (yyval.defelt) = makeDefElem("null", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 28683 "gram.c" /* yacc.c:1652 */ +#line 29175 "gram.c" break; - case 405: -#line 3056 "gram.y" /* yacc.c:1652 */ - { + case 405: /* copy_opt_item: CSV */ +#line 3056 "gram.y" + { (yyval.defelt) = makeDefElem("format", (Node *)makeString("csv"), (yylsp[0])); } -#line 28691 "gram.c" /* yacc.c:1652 */ +#line 29183 "gram.c" break; - case 406: -#line 3060 "gram.y" /* yacc.c:1652 */ - { + case 406: /* copy_opt_item: HEADER_P */ +#line 3060 "gram.y" + { (yyval.defelt) = makeDefElem("header", (Node *)makeInteger(true), (yylsp[0])); } -#line 28699 "gram.c" /* yacc.c:1652 */ +#line 29191 "gram.c" break; - case 407: -#line 3064 "gram.y" /* yacc.c:1652 */ - { + case 407: /* copy_opt_item: QUOTE opt_as Sconst */ +#line 3064 "gram.y" + { (yyval.defelt) = makeDefElem("quote", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 28707 "gram.c" /* yacc.c:1652 */ +#line 29199 "gram.c" break; - case 408: -#line 3068 "gram.y" /* yacc.c:1652 */ - { + case 408: /* copy_opt_item: ESCAPE opt_as Sconst */ +#line 3068 "gram.y" + { (yyval.defelt) = makeDefElem("escape", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 28715 "gram.c" /* yacc.c:1652 */ +#line 29207 "gram.c" break; - case 409: -#line 3072 "gram.y" /* yacc.c:1652 */ - { + case 409: /* copy_opt_item: FORCE QUOTE columnList */ +#line 3072 "gram.y" + { (yyval.defelt) = makeDefElem("force_quote", (Node *)(yyvsp[0].list), (yylsp[-2])); } -#line 28723 "gram.c" /* yacc.c:1652 */ +#line 29215 "gram.c" break; - case 410: -#line 3076 "gram.y" /* yacc.c:1652 */ - { + case 410: /* copy_opt_item: FORCE QUOTE '*' */ +#line 3076 "gram.y" + { (yyval.defelt) = makeDefElem("force_quote", (Node *)makeNode(A_Star), (yylsp[-2])); } -#line 28731 "gram.c" /* yacc.c:1652 */ +#line 29223 "gram.c" break; - case 411: -#line 3080 "gram.y" /* yacc.c:1652 */ - { + case 411: /* copy_opt_item: FORCE NOT NULL_P columnList */ +#line 3080 "gram.y" + { (yyval.defelt) = makeDefElem("force_not_null", (Node *)(yyvsp[0].list), (yylsp[-3])); } -#line 28739 "gram.c" /* yacc.c:1652 */ +#line 29231 "gram.c" break; - case 412: -#line 3084 "gram.y" /* yacc.c:1652 */ - { + case 412: /* copy_opt_item: FORCE NULL_P columnList */ +#line 3084 "gram.y" + { (yyval.defelt) = makeDefElem("force_null", (Node *)(yyvsp[0].list), (yylsp[-2])); } -#line 28747 "gram.c" /* yacc.c:1652 */ +#line 29239 "gram.c" break; - case 413: -#line 3088 "gram.y" /* yacc.c:1652 */ - { + case 413: /* copy_opt_item: ENCODING Sconst */ +#line 3088 "gram.y" + { (yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 28755 "gram.c" /* yacc.c:1652 */ +#line 29247 "gram.c" break; - case 414: -#line 3097 "gram.y" /* yacc.c:1652 */ - { + case 414: /* opt_binary: BINARY */ +#line 3097 "gram.y" + { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"), (yylsp[0])); } -#line 28763 "gram.c" /* yacc.c:1652 */ +#line 29255 "gram.c" break; - case 415: -#line 3100 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = NULL; } -#line 28769 "gram.c" /* yacc.c:1652 */ + case 415: /* opt_binary: %empty */ +#line 3100 "gram.y" + { (yyval.defelt) = NULL; } +#line 29261 "gram.c" break; - case 416: -#line 3105 "gram.y" /* yacc.c:1652 */ - { + case 416: /* copy_delimiter: opt_using DELIMITERS Sconst */ +#line 3105 "gram.y" + { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 28777 "gram.c" /* yacc.c:1652 */ +#line 29269 "gram.c" break; - case 417: -#line 3108 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = NULL; } -#line 28783 "gram.c" /* yacc.c:1652 */ + case 417: /* copy_delimiter: %empty */ +#line 3108 "gram.y" + { (yyval.defelt) = NULL; } +#line 29275 "gram.c" break; - case 418: -#line 3112 "gram.y" /* yacc.c:1652 */ - {} -#line 28789 "gram.c" /* yacc.c:1652 */ + case 418: /* opt_using: USING */ +#line 3112 "gram.y" + {} +#line 29281 "gram.c" break; - case 419: -#line 3113 "gram.y" /* yacc.c:1652 */ - {} -#line 28795 "gram.c" /* yacc.c:1652 */ + case 419: /* opt_using: %empty */ +#line 3113 "gram.y" + {} +#line 29287 "gram.c" break; - case 420: -#line 3119 "gram.y" /* yacc.c:1652 */ - { + case 420: /* copy_generic_opt_list: copy_generic_opt_elem */ +#line 3119 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 28803 "gram.c" /* yacc.c:1652 */ +#line 29295 "gram.c" break; - case 421: -#line 3123 "gram.y" /* yacc.c:1652 */ - { + case 421: /* copy_generic_opt_list: copy_generic_opt_list ',' copy_generic_opt_elem */ +#line 3123 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 28811 "gram.c" /* yacc.c:1652 */ +#line 29303 "gram.c" break; - case 422: -#line 3130 "gram.y" /* yacc.c:1652 */ - { + case 422: /* copy_generic_opt_elem: ColLabel copy_generic_opt_arg */ +#line 3130 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } -#line 28819 "gram.c" /* yacc.c:1652 */ +#line 29311 "gram.c" break; - case 423: -#line 3136 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } -#line 28825 "gram.c" /* yacc.c:1652 */ + case 423: /* copy_generic_opt_arg: opt_boolean_or_string */ +#line 3136 "gram.y" + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 29317 "gram.c" break; - case 424: -#line 3137 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) (yyvsp[0].value); } -#line 28831 "gram.c" /* yacc.c:1652 */ + case 424: /* copy_generic_opt_arg: NumericOnly */ +#line 3137 "gram.y" + { (yyval.node) = (Node *) (yyvsp[0].value); } +#line 29323 "gram.c" break; - case 425: -#line 3138 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeNode(A_Star); } -#line 28837 "gram.c" /* yacc.c:1652 */ + case 425: /* copy_generic_opt_arg: '*' */ +#line 3138 "gram.y" + { (yyval.node) = (Node *) makeNode(A_Star); } +#line 29329 "gram.c" break; - case 426: -#line 3139 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) (yyvsp[-1].list); } -#line 28843 "gram.c" /* yacc.c:1652 */ + case 426: /* copy_generic_opt_arg: '(' copy_generic_opt_arg_list ')' */ +#line 3139 "gram.y" + { (yyval.node) = (Node *) (yyvsp[-1].list); } +#line 29335 "gram.c" break; - case 427: -#line 3140 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 28849 "gram.c" /* yacc.c:1652 */ + case 427: /* copy_generic_opt_arg: %empty */ +#line 3140 "gram.y" + { (yyval.node) = NULL; } +#line 29341 "gram.c" break; - case 428: -#line 3145 "gram.y" /* yacc.c:1652 */ - { + case 428: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list_item */ +#line 3145 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 28857 "gram.c" /* yacc.c:1652 */ +#line 29349 "gram.c" break; - case 429: -#line 3149 "gram.y" /* yacc.c:1652 */ - { + case 429: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list ',' copy_generic_opt_arg_list_item */ +#line 3149 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 28865 "gram.c" /* yacc.c:1652 */ +#line 29357 "gram.c" break; - case 430: -#line 3156 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } -#line 28871 "gram.c" /* yacc.c:1652 */ + case 430: /* copy_generic_opt_arg_list_item: opt_boolean_or_string */ +#line 3156 "gram.y" + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 29363 "gram.c" break; - case 431: -#line 3170 "gram.y" /* yacc.c:1652 */ - { + case 431: /* CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3170 "gram.y" + { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-9].range)->relpersistence = (yyvsp[-11].ival); n->relation = (yyvsp[-9].range); @@ -28888,12 +29380,12 @@ n->if_not_exists = false; (yyval.node) = (Node *)n; } -#line 28892 "gram.c" /* yacc.c:1652 */ +#line 29384 "gram.c" break; - case 432: -#line 3189 "gram.y" /* yacc.c:1652 */ - { + case 432: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3189 "gram.y" + { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-9].range)->relpersistence = (yyvsp[-14].ival); n->relation = (yyvsp[-9].range); @@ -28909,12 +29401,12 @@ n->if_not_exists = true; (yyval.node) = (Node *)n; } -#line 28913 "gram.c" /* yacc.c:1652 */ +#line 29405 "gram.c" break; - case 433: -#line 3208 "gram.y" /* yacc.c:1652 */ - { + case 433: /* CreateStmt: CREATE OptTemp TABLE qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3208 "gram.y" + { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-8].range)->relpersistence = (yyvsp[-10].ival); n->relation = (yyvsp[-8].range); @@ -28931,12 +29423,12 @@ n->if_not_exists = false; (yyval.node) = (Node *)n; } -#line 28935 "gram.c" /* yacc.c:1652 */ +#line 29427 "gram.c" break; - case 434: -#line 3228 "gram.y" /* yacc.c:1652 */ - { + case 434: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3228 "gram.y" + { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-8].range)->relpersistence = (yyvsp[-13].ival); n->relation = (yyvsp[-8].range); @@ -28953,12 +29445,12 @@ n->if_not_exists = true; (yyval.node) = (Node *)n; } -#line 28957 "gram.c" /* yacc.c:1652 */ +#line 29449 "gram.c" break; - case 435: -#line 3248 "gram.y" /* yacc.c:1652 */ - { + case 435: /* CreateStmt: CREATE OptTemp TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3248 "gram.y" + { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-10].range)->relpersistence = (yyvsp[-12].ival); n->relation = (yyvsp[-10].range); @@ -28975,12 +29467,12 @@ n->if_not_exists = false; (yyval.node) = (Node *)n; } -#line 28979 "gram.c" /* yacc.c:1652 */ +#line 29471 "gram.c" break; - case 436: -#line 3268 "gram.y" /* yacc.c:1652 */ - { + case 436: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3268 "gram.y" + { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-10].range)->relpersistence = (yyvsp[-15].ival); n->relation = (yyvsp[-10].range); @@ -28997,156 +29489,156 @@ n->if_not_exists = true; (yyval.node) = (Node *)n; } -#line 29001 "gram.c" /* yacc.c:1652 */ +#line 29493 "gram.c" break; - case 437: -#line 3298 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RELPERSISTENCE_TEMP; } -#line 29007 "gram.c" /* yacc.c:1652 */ + case 437: /* OptTemp: TEMPORARY */ +#line 3298 "gram.y" + { (yyval.ival) = RELPERSISTENCE_TEMP; } +#line 29499 "gram.c" break; - case 438: -#line 3299 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RELPERSISTENCE_TEMP; } -#line 29013 "gram.c" /* yacc.c:1652 */ + case 438: /* OptTemp: TEMP */ +#line 3299 "gram.y" + { (yyval.ival) = RELPERSISTENCE_TEMP; } +#line 29505 "gram.c" break; - case 439: -#line 3300 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RELPERSISTENCE_TEMP; } -#line 29019 "gram.c" /* yacc.c:1652 */ + case 439: /* OptTemp: LOCAL TEMPORARY */ +#line 3300 "gram.y" + { (yyval.ival) = RELPERSISTENCE_TEMP; } +#line 29511 "gram.c" break; - case 440: -#line 3301 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RELPERSISTENCE_TEMP; } -#line 29025 "gram.c" /* yacc.c:1652 */ + case 440: /* OptTemp: LOCAL TEMP */ +#line 3301 "gram.y" + { (yyval.ival) = RELPERSISTENCE_TEMP; } +#line 29517 "gram.c" break; - case 441: -#line 3303 "gram.y" /* yacc.c:1652 */ - { + case 441: /* OptTemp: GLOBAL TEMPORARY */ +#line 3303 "gram.y" + { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-1])))); (yyval.ival) = RELPERSISTENCE_TEMP; } -#line 29036 "gram.c" /* yacc.c:1652 */ +#line 29528 "gram.c" break; - case 442: -#line 3310 "gram.y" /* yacc.c:1652 */ - { + case 442: /* OptTemp: GLOBAL TEMP */ +#line 3310 "gram.y" + { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-1])))); (yyval.ival) = RELPERSISTENCE_TEMP; } -#line 29047 "gram.c" /* yacc.c:1652 */ +#line 29539 "gram.c" break; - case 443: -#line 3316 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } -#line 29053 "gram.c" /* yacc.c:1652 */ + case 443: /* OptTemp: UNLOGGED */ +#line 3316 "gram.y" + { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } +#line 29545 "gram.c" break; - case 444: -#line 3317 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RELPERSISTENCE_PERMANENT; } -#line 29059 "gram.c" /* yacc.c:1652 */ + case 444: /* OptTemp: %empty */ +#line 3317 "gram.y" + { (yyval.ival) = RELPERSISTENCE_PERMANENT; } +#line 29551 "gram.c" break; - case 445: -#line 3321 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 29065 "gram.c" /* yacc.c:1652 */ + case 445: /* OptTableElementList: TableElementList */ +#line 3321 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 29557 "gram.c" break; - case 446: -#line 3322 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 29071 "gram.c" /* yacc.c:1652 */ + case 446: /* OptTableElementList: %empty */ +#line 3322 "gram.y" + { (yyval.list) = NIL; } +#line 29563 "gram.c" break; - case 447: -#line 3326 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 29077 "gram.c" /* yacc.c:1652 */ + case 447: /* OptTypedTableElementList: '(' TypedTableElementList ')' */ +#line 3326 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 29569 "gram.c" break; - case 448: -#line 3327 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 29083 "gram.c" /* yacc.c:1652 */ + case 448: /* OptTypedTableElementList: %empty */ +#line 3327 "gram.y" + { (yyval.list) = NIL; } +#line 29575 "gram.c" break; - case 449: -#line 3332 "gram.y" /* yacc.c:1652 */ - { + case 449: /* TableElementList: TableElement */ +#line 3332 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 29091 "gram.c" /* yacc.c:1652 */ +#line 29583 "gram.c" break; - case 450: -#line 3336 "gram.y" /* yacc.c:1652 */ - { + case 450: /* TableElementList: TableElementList ',' TableElement */ +#line 3336 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 29099 "gram.c" /* yacc.c:1652 */ +#line 29591 "gram.c" break; - case 451: -#line 3343 "gram.y" /* yacc.c:1652 */ - { + case 451: /* TypedTableElementList: TypedTableElement */ +#line 3343 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 29107 "gram.c" /* yacc.c:1652 */ +#line 29599 "gram.c" break; - case 452: -#line 3347 "gram.y" /* yacc.c:1652 */ - { + case 452: /* TypedTableElementList: TypedTableElementList ',' TypedTableElement */ +#line 3347 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 29115 "gram.c" /* yacc.c:1652 */ +#line 29607 "gram.c" break; - case 453: -#line 3353 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 29121 "gram.c" /* yacc.c:1652 */ + case 453: /* TableElement: columnDef */ +#line 3353 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 29613 "gram.c" break; - case 454: -#line 3354 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 29127 "gram.c" /* yacc.c:1652 */ + case 454: /* TableElement: TableLikeClause */ +#line 3354 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 29619 "gram.c" break; - case 455: -#line 3355 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 29133 "gram.c" /* yacc.c:1652 */ + case 455: /* TableElement: TableConstraint */ +#line 3355 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 29625 "gram.c" break; - case 456: -#line 3359 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 29139 "gram.c" /* yacc.c:1652 */ + case 456: /* TypedTableElement: columnOptions */ +#line 3359 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 29631 "gram.c" break; - case 457: -#line 3360 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 29145 "gram.c" /* yacc.c:1652 */ + case 457: /* TypedTableElement: TableConstraint */ +#line 3360 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 29637 "gram.c" break; - case 458: -#line 3364 "gram.y" /* yacc.c:1652 */ - { + case 458: /* columnDef: ColId Typename create_generic_options ColQualList */ +#line 3364 "gram.y" + { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-3].str); n->typeName = (yyvsp[-2].typnam); @@ -29164,12 +29656,12 @@ n->location = (yylsp[-3]); (yyval.node) = (Node *)n; } -#line 29168 "gram.c" /* yacc.c:1652 */ +#line 29660 "gram.c" break; - case 459: -#line 3385 "gram.y" /* yacc.c:1652 */ - { + case 459: /* columnOptions: ColId ColQualList */ +#line 3385 "gram.y" + { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-1].str); n->typeName = NULL; @@ -29186,12 +29678,12 @@ n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } -#line 29190 "gram.c" /* yacc.c:1652 */ +#line 29682 "gram.c" break; - case 460: -#line 3403 "gram.y" /* yacc.c:1652 */ - { + case 460: /* columnOptions: ColId WITH OPTIONS ColQualList */ +#line 3403 "gram.y" + { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-3].str); n->typeName = NULL; @@ -29208,47 +29700,47 @@ n->location = (yylsp[-3]); (yyval.node) = (Node *)n; } -#line 29212 "gram.c" /* yacc.c:1652 */ +#line 29704 "gram.c" break; - case 461: -#line 3423 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 29218 "gram.c" /* yacc.c:1652 */ + case 461: /* ColQualList: ColQualList ColConstraint */ +#line 3423 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 29710 "gram.c" break; - case 462: -#line 3424 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 29224 "gram.c" /* yacc.c:1652 */ + case 462: /* ColQualList: %empty */ +#line 3424 "gram.y" + { (yyval.list) = NIL; } +#line 29716 "gram.c" break; - case 463: -#line 3429 "gram.y" /* yacc.c:1652 */ - { + case 463: /* ColConstraint: CONSTRAINT name ColConstraintElem */ +#line 3429 "gram.y" + { Constraint *n = castNode(Constraint, (yyvsp[0].node)); n->conname = (yyvsp[-1].str); n->location = (yylsp[-2]); (yyval.node) = (Node *) n; } -#line 29235 "gram.c" /* yacc.c:1652 */ +#line 29727 "gram.c" break; - case 464: -#line 3435 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 29241 "gram.c" /* yacc.c:1652 */ + case 464: /* ColConstraint: ColConstraintElem */ +#line 3435 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 29733 "gram.c" break; - case 465: -#line 3436 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 29247 "gram.c" /* yacc.c:1652 */ + case 465: /* ColConstraint: ConstraintAttr */ +#line 3436 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 29739 "gram.c" break; - case 466: -#line 3438 "gram.y" /* yacc.c:1652 */ - { + case 466: /* ColConstraint: COLLATE any_name */ +#line 3438 "gram.y" + { /* * Note: the CollateClause is momentarily included in * the list built by ColQualList, but we split it out @@ -29260,34 +29752,34 @@ n->location = (yylsp[-1]); (yyval.node) = (Node *) n; } -#line 29264 "gram.c" /* yacc.c:1652 */ +#line 29756 "gram.c" break; - case 467: -#line 3469 "gram.y" /* yacc.c:1652 */ - { + case 467: /* ColConstraintElem: NOT NULL_P */ +#line 3469 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NOTNULL; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } -#line 29275 "gram.c" /* yacc.c:1652 */ +#line 29767 "gram.c" break; - case 468: -#line 3476 "gram.y" /* yacc.c:1652 */ - { + case 468: /* ColConstraintElem: NULL_P */ +#line 3476 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NULL; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } -#line 29286 "gram.c" /* yacc.c:1652 */ +#line 29778 "gram.c" break; - case 469: -#line 3483 "gram.y" /* yacc.c:1652 */ - { + case 469: /* ColConstraintElem: UNIQUE opt_definition OptConsTableSpace */ +#line 3483 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[-2]); @@ -29297,12 +29789,12 @@ n->indexspace = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 29301 "gram.c" /* yacc.c:1652 */ +#line 29793 "gram.c" break; - case 470: -#line 3494 "gram.y" /* yacc.c:1652 */ - { + case 470: /* ColConstraintElem: PRIMARY KEY opt_definition OptConsTableSpace */ +#line 3494 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[-3]); @@ -29312,12 +29804,12 @@ n->indexspace = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 29316 "gram.c" /* yacc.c:1652 */ +#line 29808 "gram.c" break; - case 471: -#line 3505 "gram.y" /* yacc.c:1652 */ - { + case 471: /* ColConstraintElem: CHECK '(' a_expr ')' opt_no_inherit */ +#line 3505 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; n->location = (yylsp[-4]); @@ -29328,12 +29820,12 @@ n->initially_valid = true; (yyval.node) = (Node *)n; } -#line 29332 "gram.c" /* yacc.c:1652 */ +#line 29824 "gram.c" break; - case 472: -#line 3517 "gram.y" /* yacc.c:1652 */ - { + case 472: /* ColConstraintElem: DEFAULT b_expr */ +#line 3517 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_DEFAULT; n->location = (yylsp[-1]); @@ -29341,12 +29833,12 @@ n->cooked_expr = NULL; (yyval.node) = (Node *)n; } -#line 29345 "gram.c" /* yacc.c:1652 */ +#line 29837 "gram.c" break; - case 473: -#line 3526 "gram.y" /* yacc.c:1652 */ - { + case 473: /* ColConstraintElem: GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */ +#line 3526 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_IDENTITY; n->generated_when = (yyvsp[-3].ival); @@ -29354,12 +29846,12 @@ n->location = (yylsp[-4]); (yyval.node) = (Node *)n; } -#line 29358 "gram.c" /* yacc.c:1652 */ +#line 29850 "gram.c" break; - case 474: -#line 3535 "gram.y" /* yacc.c:1652 */ - { + case 474: /* ColConstraintElem: GENERATED generated_when AS '(' a_expr ')' STORED */ +#line 3535 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_GENERATED; n->generated_when = (yyvsp[-5].ival); @@ -29381,12 +29873,12 @@ (yyval.node) = (Node *)n; } -#line 29385 "gram.c" /* yacc.c:1652 */ +#line 29877 "gram.c" break; - case 475: -#line 3558 "gram.y" /* yacc.c:1652 */ - { + case 475: /* ColConstraintElem: REFERENCES qualified_name opt_column_list key_match key_actions */ +#line 3558 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_FOREIGN; n->location = (yylsp[-4]); @@ -29400,169 +29892,169 @@ n->initially_valid = true; (yyval.node) = (Node *)n; } -#line 29404 "gram.c" /* yacc.c:1652 */ +#line 29896 "gram.c" break; - case 476: -#line 3575 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; } -#line 29410 "gram.c" /* yacc.c:1652 */ + case 476: /* generated_when: ALWAYS */ +#line 3575 "gram.y" + { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; } +#line 29902 "gram.c" break; - case 477: -#line 3576 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; } -#line 29416 "gram.c" /* yacc.c:1652 */ + case 477: /* generated_when: BY DEFAULT */ +#line 3576 "gram.y" + { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; } +#line 29908 "gram.c" break; - case 478: -#line 3596 "gram.y" /* yacc.c:1652 */ - { + case 478: /* ConstraintAttr: DEFERRABLE */ +#line 3596 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRABLE; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } -#line 29427 "gram.c" /* yacc.c:1652 */ +#line 29919 "gram.c" break; - case 479: -#line 3603 "gram.y" /* yacc.c:1652 */ - { + case 479: /* ConstraintAttr: NOT DEFERRABLE */ +#line 3603 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_NOT_DEFERRABLE; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } -#line 29438 "gram.c" /* yacc.c:1652 */ +#line 29930 "gram.c" break; - case 480: -#line 3610 "gram.y" /* yacc.c:1652 */ - { + case 480: /* ConstraintAttr: INITIALLY DEFERRED */ +#line 3610 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRED; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } -#line 29449 "gram.c" /* yacc.c:1652 */ +#line 29941 "gram.c" break; - case 481: -#line 3617 "gram.y" /* yacc.c:1652 */ - { + case 481: /* ConstraintAttr: INITIALLY IMMEDIATE */ +#line 3617 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_IMMEDIATE; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } -#line 29460 "gram.c" /* yacc.c:1652 */ +#line 29952 "gram.c" break; - case 482: -#line 3628 "gram.y" /* yacc.c:1652 */ - { + case 482: /* TableLikeClause: LIKE qualified_name TableLikeOptionList */ +#line 3628 "gram.y" + { TableLikeClause *n = makeNode(TableLikeClause); n->relation = (yyvsp[-1].range); n->options = (yyvsp[0].ival); n->relationOid = InvalidOid; (yyval.node) = (Node *)n; } -#line 29472 "gram.c" /* yacc.c:1652 */ +#line 29964 "gram.c" break; - case 483: -#line 3638 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } -#line 29478 "gram.c" /* yacc.c:1652 */ + case 483: /* TableLikeOptionList: TableLikeOptionList INCLUDING TableLikeOption */ +#line 3638 "gram.y" + { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } +#line 29970 "gram.c" break; - case 484: -#line 3639 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); } -#line 29484 "gram.c" /* yacc.c:1652 */ + case 484: /* TableLikeOptionList: TableLikeOptionList EXCLUDING TableLikeOption */ +#line 3639 "gram.y" + { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); } +#line 29976 "gram.c" break; - case 485: -#line 3640 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 29490 "gram.c" /* yacc.c:1652 */ + case 485: /* TableLikeOptionList: %empty */ +#line 3640 "gram.y" + { (yyval.ival) = 0; } +#line 29982 "gram.c" break; - case 486: -#line 3644 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; } -#line 29496 "gram.c" /* yacc.c:1652 */ + case 486: /* TableLikeOption: COMMENTS */ +#line 3644 "gram.y" + { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; } +#line 29988 "gram.c" break; - case 487: -#line 3645 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; } -#line 29502 "gram.c" /* yacc.c:1652 */ + case 487: /* TableLikeOption: CONSTRAINTS */ +#line 3645 "gram.y" + { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; } +#line 29994 "gram.c" break; - case 488: -#line 3646 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; } -#line 29508 "gram.c" /* yacc.c:1652 */ + case 488: /* TableLikeOption: DEFAULTS */ +#line 3646 "gram.y" + { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; } +#line 30000 "gram.c" break; - case 489: -#line 3647 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; } -#line 29514 "gram.c" /* yacc.c:1652 */ + case 489: /* TableLikeOption: IDENTITY_P */ +#line 3647 "gram.y" + { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; } +#line 30006 "gram.c" break; - case 490: -#line 3648 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; } -#line 29520 "gram.c" /* yacc.c:1652 */ + case 490: /* TableLikeOption: GENERATED */ +#line 3648 "gram.y" + { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; } +#line 30012 "gram.c" break; - case 491: -#line 3649 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; } -#line 29526 "gram.c" /* yacc.c:1652 */ + case 491: /* TableLikeOption: INDEXES */ +#line 3649 "gram.y" + { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; } +#line 30018 "gram.c" break; - case 492: -#line 3650 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; } -#line 29532 "gram.c" /* yacc.c:1652 */ + case 492: /* TableLikeOption: STATISTICS */ +#line 3650 "gram.y" + { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; } +#line 30024 "gram.c" break; - case 493: -#line 3651 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; } -#line 29538 "gram.c" /* yacc.c:1652 */ + case 493: /* TableLikeOption: STORAGE */ +#line 3651 "gram.y" + { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; } +#line 30030 "gram.c" break; - case 494: -#line 3652 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CREATE_TABLE_LIKE_ALL; } -#line 29544 "gram.c" /* yacc.c:1652 */ + case 494: /* TableLikeOption: ALL */ +#line 3652 "gram.y" + { (yyval.ival) = CREATE_TABLE_LIKE_ALL; } +#line 30036 "gram.c" break; - case 495: -#line 3662 "gram.y" /* yacc.c:1652 */ - { + case 495: /* TableConstraint: CONSTRAINT name ConstraintElem */ +#line 3662 "gram.y" + { Constraint *n = castNode(Constraint, (yyvsp[0].node)); n->conname = (yyvsp[-1].str); n->location = (yylsp[-2]); (yyval.node) = (Node *) n; } -#line 29555 "gram.c" /* yacc.c:1652 */ +#line 30047 "gram.c" break; - case 496: -#line 3668 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 29561 "gram.c" /* yacc.c:1652 */ + case 496: /* TableConstraint: ConstraintElem */ +#line 3668 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 30053 "gram.c" break; - case 497: -#line 3673 "gram.y" /* yacc.c:1652 */ - { + case 497: /* ConstraintElem: CHECK '(' a_expr ')' ConstraintAttributeSpec */ +#line 3673 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; n->location = (yylsp[-4]); @@ -29574,12 +30066,12 @@ n->initially_valid = !n->skip_validation; (yyval.node) = (Node *)n; } -#line 29578 "gram.c" /* yacc.c:1652 */ +#line 30070 "gram.c" break; - case 498: -#line 3687 "gram.y" /* yacc.c:1652 */ - { + case 498: /* ConstraintElem: UNIQUE '(' columnList ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */ +#line 3687 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[-7]); @@ -29593,12 +30085,12 @@ NULL, yyscanner); (yyval.node) = (Node *)n; } -#line 29597 "gram.c" /* yacc.c:1652 */ +#line 30089 "gram.c" break; - case 499: -#line 3702 "gram.y" /* yacc.c:1652 */ - { + case 499: /* ConstraintElem: UNIQUE ExistingIndex ConstraintAttributeSpec */ +#line 3702 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[-2]); @@ -29612,12 +30104,12 @@ NULL, yyscanner); (yyval.node) = (Node *)n; } -#line 29616 "gram.c" /* yacc.c:1652 */ +#line 30108 "gram.c" break; - case 500: -#line 3718 "gram.y" /* yacc.c:1652 */ - { + case 500: /* ConstraintElem: PRIMARY KEY '(' columnList ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */ +#line 3718 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[-8]); @@ -29631,12 +30123,12 @@ NULL, yyscanner); (yyval.node) = (Node *)n; } -#line 29635 "gram.c" /* yacc.c:1652 */ +#line 30127 "gram.c" break; - case 501: -#line 3733 "gram.y" /* yacc.c:1652 */ - { + case 501: /* ConstraintElem: PRIMARY KEY ExistingIndex ConstraintAttributeSpec */ +#line 3733 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[-3]); @@ -29650,12 +30142,12 @@ NULL, yyscanner); (yyval.node) = (Node *)n; } -#line 29654 "gram.c" /* yacc.c:1652 */ +#line 30146 "gram.c" break; - case 502: -#line 3750 "gram.y" /* yacc.c:1652 */ - { + case 502: /* ConstraintElem: EXCLUDE access_method_clause '(' ExclusionConstraintList ')' opt_c_include opt_definition OptConsTableSpace ExclusionWhereClause ConstraintAttributeSpec */ +#line 3750 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_EXCLUSION; n->location = (yylsp[-9]); @@ -29671,12 +30163,12 @@ NULL, yyscanner); (yyval.node) = (Node *)n; } -#line 29675 "gram.c" /* yacc.c:1652 */ +#line 30167 "gram.c" break; - case 503: -#line 3768 "gram.y" /* yacc.c:1652 */ - { + case 503: /* ConstraintElem: FOREIGN KEY '(' columnList ')' REFERENCES qualified_name opt_column_list key_match key_actions ConstraintAttributeSpec */ +#line 3768 "gram.y" + { Constraint *n = makeNode(Constraint); n->contype = CONSTR_FOREIGN; n->location = (yylsp[-10]); @@ -29693,240 +30185,240 @@ n->initially_valid = !n->skip_validation; (yyval.node) = (Node *)n; } -#line 29697 "gram.c" /* yacc.c:1652 */ +#line 30189 "gram.c" break; - case 504: -#line 3787 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 29703 "gram.c" /* yacc.c:1652 */ + case 504: /* opt_no_inherit: NO INHERIT */ +#line 3787 "gram.y" + { (yyval.boolean) = true; } +#line 30195 "gram.c" break; - case 505: -#line 3788 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 29709 "gram.c" /* yacc.c:1652 */ + case 505: /* opt_no_inherit: %empty */ +#line 3788 "gram.y" + { (yyval.boolean) = false; } +#line 30201 "gram.c" break; - case 506: -#line 3792 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 29715 "gram.c" /* yacc.c:1652 */ + case 506: /* opt_column_list: '(' columnList ')' */ +#line 3792 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 30207 "gram.c" break; - case 507: -#line 3793 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 29721 "gram.c" /* yacc.c:1652 */ + case 507: /* opt_column_list: %empty */ +#line 3793 "gram.y" + { (yyval.list) = NIL; } +#line 30213 "gram.c" break; - case 508: -#line 3797 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 29727 "gram.c" /* yacc.c:1652 */ + case 508: /* columnList: columnElem */ +#line 3797 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 30219 "gram.c" break; - case 509: -#line 3798 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 29733 "gram.c" /* yacc.c:1652 */ + case 509: /* columnList: columnList ',' columnElem */ +#line 3798 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 30225 "gram.c" break; - case 510: -#line 3802 "gram.y" /* yacc.c:1652 */ - { + case 510: /* columnElem: ColId */ +#line 3802 "gram.y" + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } -#line 29741 "gram.c" /* yacc.c:1652 */ +#line 30233 "gram.c" break; - case 511: -#line 3807 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 29747 "gram.c" /* yacc.c:1652 */ + case 511: /* opt_c_include: INCLUDE '(' columnList ')' */ +#line 3807 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 30239 "gram.c" break; - case 512: -#line 3808 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 29753 "gram.c" /* yacc.c:1652 */ + case 512: /* opt_c_include: %empty */ +#line 3808 "gram.y" + { (yyval.list) = NIL; } +#line 30245 "gram.c" break; - case 513: -#line 3812 "gram.y" /* yacc.c:1652 */ - { + case 513: /* key_match: MATCH FULL */ +#line 3812 "gram.y" + { (yyval.ival) = FKCONSTR_MATCH_FULL; } -#line 29761 "gram.c" /* yacc.c:1652 */ +#line 30253 "gram.c" break; - case 514: -#line 3816 "gram.y" /* yacc.c:1652 */ - { + case 514: /* key_match: MATCH PARTIAL */ +#line 3816 "gram.y" + { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"), parser_errposition((yylsp[-1])))); (yyval.ival) = FKCONSTR_MATCH_PARTIAL; } -#line 29773 "gram.c" /* yacc.c:1652 */ +#line 30265 "gram.c" break; - case 515: -#line 3824 "gram.y" /* yacc.c:1652 */ - { + case 515: /* key_match: MATCH SIMPLE */ +#line 3824 "gram.y" + { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; } -#line 29781 "gram.c" /* yacc.c:1652 */ +#line 30273 "gram.c" break; - case 516: -#line 3828 "gram.y" /* yacc.c:1652 */ - { + case 516: /* key_match: %empty */ +#line 3828 "gram.y" + { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; } -#line 29789 "gram.c" /* yacc.c:1652 */ +#line 30281 "gram.c" break; - case 517: -#line 3834 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].list)); } -#line 29795 "gram.c" /* yacc.c:1652 */ + case 517: /* ExclusionConstraintList: ExclusionConstraintElem */ +#line 3834 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 30287 "gram.c" break; - case 518: -#line 3836 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } -#line 29801 "gram.c" /* yacc.c:1652 */ + case 518: /* ExclusionConstraintList: ExclusionConstraintList ',' ExclusionConstraintElem */ +#line 3836 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } +#line 30293 "gram.c" break; - case 519: -#line 3840 "gram.y" /* yacc.c:1652 */ - { + case 519: /* ExclusionConstraintElem: index_elem WITH any_operator */ +#line 3840 "gram.y" + { (yyval.list) = list_make2((yyvsp[-2].ielem), (yyvsp[0].list)); } -#line 29809 "gram.c" /* yacc.c:1652 */ +#line 30301 "gram.c" break; - case 520: -#line 3845 "gram.y" /* yacc.c:1652 */ - { + case 520: /* ExclusionConstraintElem: index_elem WITH OPERATOR '(' any_operator ')' */ +#line 3845 "gram.y" + { (yyval.list) = list_make2((yyvsp[-5].ielem), (yyvsp[-1].list)); } -#line 29817 "gram.c" /* yacc.c:1652 */ +#line 30309 "gram.c" break; - case 521: -#line 3851 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[-1].node); } -#line 29823 "gram.c" /* yacc.c:1652 */ + case 521: /* ExclusionWhereClause: WHERE '(' a_expr ')' */ +#line 3851 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 30315 "gram.c" break; - case 522: -#line 3852 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 29829 "gram.c" /* yacc.c:1652 */ + case 522: /* ExclusionWhereClause: %empty */ +#line 3852 "gram.y" + { (yyval.node) = NULL; } +#line 30321 "gram.c" break; - case 523: -#line 3863 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ((yyvsp[0].ival) << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } -#line 29835 "gram.c" /* yacc.c:1652 */ + case 523: /* key_actions: key_update */ +#line 3863 "gram.y" + { (yyval.ival) = ((yyvsp[0].ival) << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } +#line 30327 "gram.c" break; - case 524: -#line 3865 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[0].ival) & 0xFF); } -#line 29841 "gram.c" /* yacc.c:1652 */ + case 524: /* key_actions: key_delete */ +#line 3865 "gram.y" + { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[0].ival) & 0xFF); } +#line 30333 "gram.c" break; - case 525: -#line 3867 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ((yyvsp[-1].ival) << 8) | ((yyvsp[0].ival) & 0xFF); } -#line 29847 "gram.c" /* yacc.c:1652 */ + case 525: /* key_actions: key_update key_delete */ +#line 3867 "gram.y" + { (yyval.ival) = ((yyvsp[-1].ival) << 8) | ((yyvsp[0].ival) & 0xFF); } +#line 30339 "gram.c" break; - case 526: -#line 3869 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ((yyvsp[0].ival) << 8) | ((yyvsp[-1].ival) & 0xFF); } -#line 29853 "gram.c" /* yacc.c:1652 */ + case 526: /* key_actions: key_delete key_update */ +#line 3869 "gram.y" + { (yyval.ival) = ((yyvsp[0].ival) << 8) | ((yyvsp[-1].ival) & 0xFF); } +#line 30345 "gram.c" break; - case 527: -#line 3871 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } -#line 29859 "gram.c" /* yacc.c:1652 */ + case 527: /* key_actions: %empty */ +#line 3871 "gram.y" + { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } +#line 30351 "gram.c" break; - case 528: -#line 3874 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[0].ival); } -#line 29865 "gram.c" /* yacc.c:1652 */ + case 528: /* key_update: ON UPDATE key_action */ +#line 3874 "gram.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 30357 "gram.c" break; - case 529: -#line 3877 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[0].ival); } -#line 29871 "gram.c" /* yacc.c:1652 */ + case 529: /* key_delete: ON DELETE_P key_action */ +#line 3877 "gram.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 30363 "gram.c" break; - case 530: -#line 3881 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FKCONSTR_ACTION_NOACTION; } -#line 29877 "gram.c" /* yacc.c:1652 */ + case 530: /* key_action: NO ACTION */ +#line 3881 "gram.y" + { (yyval.ival) = FKCONSTR_ACTION_NOACTION; } +#line 30369 "gram.c" break; - case 531: -#line 3882 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FKCONSTR_ACTION_RESTRICT; } -#line 29883 "gram.c" /* yacc.c:1652 */ + case 531: /* key_action: RESTRICT */ +#line 3882 "gram.y" + { (yyval.ival) = FKCONSTR_ACTION_RESTRICT; } +#line 30375 "gram.c" break; - case 532: -#line 3883 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FKCONSTR_ACTION_CASCADE; } -#line 29889 "gram.c" /* yacc.c:1652 */ + case 532: /* key_action: CASCADE */ +#line 3883 "gram.y" + { (yyval.ival) = FKCONSTR_ACTION_CASCADE; } +#line 30381 "gram.c" break; - case 533: -#line 3884 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FKCONSTR_ACTION_SETNULL; } -#line 29895 "gram.c" /* yacc.c:1652 */ + case 533: /* key_action: SET NULL_P */ +#line 3884 "gram.y" + { (yyval.ival) = FKCONSTR_ACTION_SETNULL; } +#line 30387 "gram.c" break; - case 534: -#line 3885 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FKCONSTR_ACTION_SETDEFAULT; } -#line 29901 "gram.c" /* yacc.c:1652 */ + case 534: /* key_action: SET DEFAULT */ +#line 3885 "gram.y" + { (yyval.ival) = FKCONSTR_ACTION_SETDEFAULT; } +#line 30393 "gram.c" break; - case 535: -#line 3888 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 29907 "gram.c" /* yacc.c:1652 */ + case 535: /* OptInherit: INHERITS '(' qualified_name_list ')' */ +#line 3888 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 30399 "gram.c" break; - case 536: -#line 3889 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 29913 "gram.c" /* yacc.c:1652 */ + case 536: /* OptInherit: %empty */ +#line 3889 "gram.y" + { (yyval.list) = NIL; } +#line 30405 "gram.c" break; - case 537: -#line 3893 "gram.y" /* yacc.c:1652 */ - { (yyval.partspec) = (yyvsp[0].partspec); } -#line 29919 "gram.c" /* yacc.c:1652 */ + case 537: /* OptPartitionSpec: PartitionSpec */ +#line 3893 "gram.y" + { (yyval.partspec) = (yyvsp[0].partspec); } +#line 30411 "gram.c" break; - case 538: -#line 3894 "gram.y" /* yacc.c:1652 */ - { (yyval.partspec) = NULL; } -#line 29925 "gram.c" /* yacc.c:1652 */ + case 538: /* OptPartitionSpec: %empty */ +#line 3894 "gram.y" + { (yyval.partspec) = NULL; } +#line 30417 "gram.c" break; - case 539: -#line 3898 "gram.y" /* yacc.c:1652 */ - { + case 539: /* PartitionSpec: PARTITION BY ColId '(' part_params ')' */ +#line 3898 "gram.y" + { PartitionSpec *n = makeNode(PartitionSpec); n->strategy = (yyvsp[-3].str); @@ -29935,24 +30427,24 @@ (yyval.partspec) = n; } -#line 29939 "gram.c" /* yacc.c:1652 */ +#line 30431 "gram.c" break; - case 540: -#line 3909 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].partelem)); } -#line 29945 "gram.c" /* yacc.c:1652 */ + case 540: /* part_params: part_elem */ +#line 3909 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].partelem)); } +#line 30437 "gram.c" break; - case 541: -#line 3910 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].partelem)); } -#line 29951 "gram.c" /* yacc.c:1652 */ + case 541: /* part_params: part_params ',' part_elem */ +#line 3910 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].partelem)); } +#line 30443 "gram.c" break; - case 542: -#line 3914 "gram.y" /* yacc.c:1652 */ - { + case 542: /* part_elem: ColId opt_collate opt_class */ +#line 3914 "gram.y" + { PartitionElem *n = makeNode(PartitionElem); n->name = (yyvsp[-2].str); @@ -29962,12 +30454,12 @@ n->location = (yylsp[-2]); (yyval.partelem) = n; } -#line 29966 "gram.c" /* yacc.c:1652 */ +#line 30458 "gram.c" break; - case 543: -#line 3925 "gram.y" /* yacc.c:1652 */ - { + case 543: /* part_elem: func_expr_windowless opt_collate opt_class */ +#line 3925 "gram.y" + { PartitionElem *n = makeNode(PartitionElem); n->name = NULL; @@ -29977,12 +30469,12 @@ n->location = (yylsp[-2]); (yyval.partelem) = n; } -#line 29981 "gram.c" /* yacc.c:1652 */ +#line 30473 "gram.c" break; - case 544: -#line 3936 "gram.y" /* yacc.c:1652 */ - { + case 544: /* part_elem: '(' a_expr ')' opt_collate opt_class */ +#line 3936 "gram.y" + { PartitionElem *n = makeNode(PartitionElem); n->name = NULL; @@ -29992,96 +30484,96 @@ n->location = (yylsp[-4]); (yyval.partelem) = n; } -#line 29996 "gram.c" /* yacc.c:1652 */ +#line 30488 "gram.c" break; - case 545: -#line 3949 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 30002 "gram.c" /* yacc.c:1652 */ + case 545: /* table_access_method_clause: USING access_method */ +#line 3949 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 30494 "gram.c" break; - case 546: -#line 3950 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 30008 "gram.c" /* yacc.c:1652 */ + case 546: /* table_access_method_clause: %empty */ +#line 3950 "gram.y" + { (yyval.str) = NULL; } +#line 30500 "gram.c" break; - case 547: -#line 3955 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 30014 "gram.c" /* yacc.c:1652 */ + case 547: /* OptWith: WITH reloptions */ +#line 3955 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 30506 "gram.c" break; - case 548: -#line 3956 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 30020 "gram.c" /* yacc.c:1652 */ + case 548: /* OptWith: WITHOUT OIDS */ +#line 3956 "gram.y" + { (yyval.list) = NIL; } +#line 30512 "gram.c" break; - case 549: -#line 3957 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 30026 "gram.c" /* yacc.c:1652 */ + case 549: /* OptWith: %empty */ +#line 3957 "gram.y" + { (yyval.list) = NIL; } +#line 30518 "gram.c" break; - case 550: -#line 3960 "gram.y" /* yacc.c:1652 */ - { (yyval.oncommit) = ONCOMMIT_DROP; } -#line 30032 "gram.c" /* yacc.c:1652 */ + case 550: /* OnCommitOption: ON COMMIT DROP */ +#line 3960 "gram.y" + { (yyval.oncommit) = ONCOMMIT_DROP; } +#line 30524 "gram.c" break; - case 551: -#line 3961 "gram.y" /* yacc.c:1652 */ - { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; } -#line 30038 "gram.c" /* yacc.c:1652 */ + case 551: /* OnCommitOption: ON COMMIT DELETE_P ROWS */ +#line 3961 "gram.y" + { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; } +#line 30530 "gram.c" break; - case 552: -#line 3962 "gram.y" /* yacc.c:1652 */ - { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; } -#line 30044 "gram.c" /* yacc.c:1652 */ + case 552: /* OnCommitOption: ON COMMIT PRESERVE ROWS */ +#line 3962 "gram.y" + { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; } +#line 30536 "gram.c" break; - case 553: -#line 3963 "gram.y" /* yacc.c:1652 */ - { (yyval.oncommit) = ONCOMMIT_NOOP; } -#line 30050 "gram.c" /* yacc.c:1652 */ + case 553: /* OnCommitOption: %empty */ +#line 3963 "gram.y" + { (yyval.oncommit) = ONCOMMIT_NOOP; } +#line 30542 "gram.c" break; - case 554: -#line 3966 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 30056 "gram.c" /* yacc.c:1652 */ + case 554: /* OptTableSpace: TABLESPACE name */ +#line 3966 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 30548 "gram.c" break; - case 555: -#line 3967 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 30062 "gram.c" /* yacc.c:1652 */ + case 555: /* OptTableSpace: %empty */ +#line 3967 "gram.y" + { (yyval.str) = NULL; } +#line 30554 "gram.c" break; - case 556: -#line 3970 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 30068 "gram.c" /* yacc.c:1652 */ + case 556: /* OptConsTableSpace: USING INDEX TABLESPACE name */ +#line 3970 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 30560 "gram.c" break; - case 557: -#line 3971 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 30074 "gram.c" /* yacc.c:1652 */ + case 557: /* OptConsTableSpace: %empty */ +#line 3971 "gram.y" + { (yyval.str) = NULL; } +#line 30566 "gram.c" break; - case 558: -#line 3974 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 30080 "gram.c" /* yacc.c:1652 */ + case 558: /* ExistingIndex: USING INDEX index_name */ +#line 3974 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 30572 "gram.c" break; - case 559: -#line 3994 "gram.y" /* yacc.c:1652 */ - { + case 559: /* CreateStatsStmt: CREATE STATISTICS any_name opt_name_list ON expr_list FROM from_list */ +#line 3994 "gram.y" + { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = (yyvsp[-5].list); n->stat_types = (yyvsp[-4].list); @@ -30091,12 +30583,12 @@ n->if_not_exists = false; (yyval.node) = (Node *)n; } -#line 30095 "gram.c" /* yacc.c:1652 */ +#line 30587 "gram.c" break; - case 560: -#line 4006 "gram.y" /* yacc.c:1652 */ - { + case 560: /* CreateStatsStmt: CREATE STATISTICS IF_P NOT EXISTS any_name opt_name_list ON expr_list FROM from_list */ +#line 4006 "gram.y" + { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = (yyvsp[-5].list); n->stat_types = (yyvsp[-4].list); @@ -30106,36 +30598,36 @@ n->if_not_exists = true; (yyval.node) = (Node *)n; } -#line 30110 "gram.c" /* yacc.c:1652 */ +#line 30602 "gram.c" break; - case 561: -#line 4029 "gram.y" /* yacc.c:1652 */ - { + case 561: /* AlterStatsStmt: ALTER STATISTICS any_name SET STATISTICS SignedIconst */ +#line 4029 "gram.y" + { AlterStatsStmt *n = makeNode(AlterStatsStmt); n->defnames = (yyvsp[-3].list); n->missing_ok = false; n->stxstattarget = (yyvsp[0].ival); (yyval.node) = (Node *)n; } -#line 30122 "gram.c" /* yacc.c:1652 */ +#line 30614 "gram.c" break; - case 562: -#line 4037 "gram.y" /* yacc.c:1652 */ - { + case 562: /* AlterStatsStmt: ALTER STATISTICS IF_P EXISTS any_name SET STATISTICS SignedIconst */ +#line 4037 "gram.y" + { AlterStatsStmt *n = makeNode(AlterStatsStmt); n->defnames = (yyvsp[-3].list); n->missing_ok = true; n->stxstattarget = (yyvsp[0].ival); (yyval.node) = (Node *)n; } -#line 30134 "gram.c" /* yacc.c:1652 */ +#line 30626 "gram.c" break; - case 563: -#line 4058 "gram.y" /* yacc.c:1652 */ - { + case 563: /* CreateAsStmt: CREATE OptTemp TABLE create_as_target AS SelectStmt opt_with_data */ +#line 4058 "gram.y" + { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); @@ -30147,12 +30639,12 @@ (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } -#line 30151 "gram.c" /* yacc.c:1652 */ +#line 30643 "gram.c" break; - case 564: -#line 4071 "gram.y" /* yacc.c:1652 */ - { + case 564: /* CreateAsStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS SelectStmt opt_with_data */ +#line 4071 "gram.y" + { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); @@ -30164,12 +30656,12 @@ (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } -#line 30168 "gram.c" /* yacc.c:1652 */ +#line 30660 "gram.c" break; - case 565: -#line 4088 "gram.y" /* yacc.c:1652 */ - { + case 565: /* create_as_target: qualified_name opt_column_list table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 4088 "gram.y" + { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[-5].range); (yyval.into)->colNames = (yyvsp[-4].list); @@ -30180,30 +30672,30 @@ (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; /* might get changed later */ } -#line 30184 "gram.c" /* yacc.c:1652 */ +#line 30676 "gram.c" break; - case 566: -#line 4102 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 30190 "gram.c" /* yacc.c:1652 */ + case 566: /* opt_with_data: WITH DATA_P */ +#line 4102 "gram.y" + { (yyval.boolean) = true; } +#line 30682 "gram.c" break; - case 567: -#line 4103 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 30196 "gram.c" /* yacc.c:1652 */ + case 567: /* opt_with_data: WITH NO DATA_P */ +#line 4103 "gram.y" + { (yyval.boolean) = false; } +#line 30688 "gram.c" break; - case 568: -#line 4104 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 30202 "gram.c" /* yacc.c:1652 */ + case 568: /* opt_with_data: %empty */ +#line 4104 "gram.y" + { (yyval.boolean) = true; } +#line 30694 "gram.c" break; - case 569: -#line 4117 "gram.y" /* yacc.c:1652 */ - { + case 569: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW create_mv_target AS SelectStmt opt_with_data */ +#line 4117 "gram.y" + { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); @@ -30215,12 +30707,12 @@ (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } -#line 30219 "gram.c" /* yacc.c:1652 */ +#line 30711 "gram.c" break; - case 570: -#line 4130 "gram.y" /* yacc.c:1652 */ - { + case 570: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW IF_P NOT EXISTS create_mv_target AS SelectStmt opt_with_data */ +#line 4130 "gram.y" + { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); @@ -30232,12 +30724,12 @@ (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } -#line 30236 "gram.c" /* yacc.c:1652 */ +#line 30728 "gram.c" break; - case 571: -#line 4146 "gram.y" /* yacc.c:1652 */ - { + case 571: /* create_mv_target: qualified_name opt_column_list table_access_method_clause opt_reloptions OptTableSpace */ +#line 4146 "gram.y" + { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[-4].range); (yyval.into)->colNames = (yyvsp[-3].list); @@ -30248,36 +30740,36 @@ (yyval.into)->viewQuery = NULL; /* filled at analysis time */ (yyval.into)->skipData = false; /* might get changed later */ } -#line 30252 "gram.c" /* yacc.c:1652 */ +#line 30744 "gram.c" break; - case 572: -#line 4159 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } -#line 30258 "gram.c" /* yacc.c:1652 */ + case 572: /* OptNoLog: UNLOGGED */ +#line 4159 "gram.y" + { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } +#line 30750 "gram.c" break; - case 573: -#line 4160 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RELPERSISTENCE_PERMANENT; } -#line 30264 "gram.c" /* yacc.c:1652 */ + case 573: /* OptNoLog: %empty */ +#line 4160 "gram.y" + { (yyval.ival) = RELPERSISTENCE_PERMANENT; } +#line 30756 "gram.c" break; - case 574: -#line 4173 "gram.y" /* yacc.c:1652 */ - { + case 574: /* RefreshMatViewStmt: REFRESH MATERIALIZED VIEW opt_concurrently qualified_name opt_with_data */ +#line 4173 "gram.y" + { RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt); n->concurrent = (yyvsp[-2].boolean); n->relation = (yyvsp[-1].range); n->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) n; } -#line 30276 "gram.c" /* yacc.c:1652 */ +#line 30768 "gram.c" break; - case 575: -#line 4193 "gram.y" /* yacc.c:1652 */ - { + case 575: /* CreateSeqStmt: CREATE OptTemp SEQUENCE qualified_name OptSeqOptList */ +#line 4193 "gram.y" + { CreateSeqStmt *n = makeNode(CreateSeqStmt); (yyvsp[-1].range)->relpersistence = (yyvsp[-3].ival); n->sequence = (yyvsp[-1].range); @@ -30286,12 +30778,12 @@ n->if_not_exists = false; (yyval.node) = (Node *)n; } -#line 30290 "gram.c" /* yacc.c:1652 */ +#line 30782 "gram.c" break; - case 576: -#line 4203 "gram.y" /* yacc.c:1652 */ - { + case 576: /* CreateSeqStmt: CREATE OptTemp SEQUENCE IF_P NOT EXISTS qualified_name OptSeqOptList */ +#line 4203 "gram.y" + { CreateSeqStmt *n = makeNode(CreateSeqStmt); (yyvsp[-1].range)->relpersistence = (yyvsp[-6].ival); n->sequence = (yyvsp[-1].range); @@ -30300,236 +30792,236 @@ n->if_not_exists = true; (yyval.node) = (Node *)n; } -#line 30304 "gram.c" /* yacc.c:1652 */ +#line 30796 "gram.c" break; - case 577: -#line 4216 "gram.y" /* yacc.c:1652 */ - { + case 577: /* AlterSeqStmt: ALTER SEQUENCE qualified_name SeqOptList */ +#line 4216 "gram.y" + { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 30316 "gram.c" /* yacc.c:1652 */ +#line 30808 "gram.c" break; - case 578: -#line 4224 "gram.y" /* yacc.c:1652 */ - { + case 578: /* AlterSeqStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SeqOptList */ +#line 4224 "gram.y" + { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 30328 "gram.c" /* yacc.c:1652 */ +#line 30820 "gram.c" break; - case 579: -#line 4234 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 30334 "gram.c" /* yacc.c:1652 */ + case 579: /* OptSeqOptList: SeqOptList */ +#line 4234 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 30826 "gram.c" break; - case 580: -#line 4235 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 30340 "gram.c" /* yacc.c:1652 */ + case 580: /* OptSeqOptList: %empty */ +#line 4235 "gram.y" + { (yyval.list) = NIL; } +#line 30832 "gram.c" break; - case 581: -#line 4238 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 30346 "gram.c" /* yacc.c:1652 */ + case 581: /* OptParenthesizedSeqOptList: '(' SeqOptList ')' */ +#line 4238 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 30838 "gram.c" break; - case 582: -#line 4239 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 30352 "gram.c" /* yacc.c:1652 */ + case 582: /* OptParenthesizedSeqOptList: %empty */ +#line 4239 "gram.y" + { (yyval.list) = NIL; } +#line 30844 "gram.c" break; - case 583: -#line 4242 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 30358 "gram.c" /* yacc.c:1652 */ + case 583: /* SeqOptList: SeqOptElem */ +#line 4242 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 30850 "gram.c" break; - case 584: -#line 4243 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 30364 "gram.c" /* yacc.c:1652 */ + case 584: /* SeqOptList: SeqOptList SeqOptElem */ +#line 4243 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 30856 "gram.c" break; - case 585: -#line 4247 "gram.y" /* yacc.c:1652 */ - { + case 585: /* SeqOptElem: AS SimpleTypename */ +#line 4247 "gram.y" + { (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[0].typnam), (yylsp[-1])); } -#line 30372 "gram.c" /* yacc.c:1652 */ +#line 30864 "gram.c" break; - case 586: -#line 4251 "gram.y" /* yacc.c:1652 */ - { + case 586: /* SeqOptElem: CACHE NumericOnly */ +#line 4251 "gram.y" + { (yyval.defelt) = makeDefElem("cache", (Node *)(yyvsp[0].value), (yylsp[-1])); } -#line 30380 "gram.c" /* yacc.c:1652 */ +#line 30872 "gram.c" break; - case 587: -#line 4255 "gram.y" /* yacc.c:1652 */ - { + case 587: /* SeqOptElem: CYCLE */ +#line 4255 "gram.y" + { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(true), (yylsp[0])); } -#line 30388 "gram.c" /* yacc.c:1652 */ +#line 30880 "gram.c" break; - case 588: -#line 4259 "gram.y" /* yacc.c:1652 */ - { + case 588: /* SeqOptElem: NO CYCLE */ +#line 4259 "gram.y" + { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(false), (yylsp[-1])); } -#line 30396 "gram.c" /* yacc.c:1652 */ +#line 30888 "gram.c" break; - case 589: -#line 4263 "gram.y" /* yacc.c:1652 */ - { + case 589: /* SeqOptElem: INCREMENT opt_by NumericOnly */ +#line 4263 "gram.y" + { (yyval.defelt) = makeDefElem("increment", (Node *)(yyvsp[0].value), (yylsp[-2])); } -#line 30404 "gram.c" /* yacc.c:1652 */ +#line 30896 "gram.c" break; - case 590: -#line 4267 "gram.y" /* yacc.c:1652 */ - { + case 590: /* SeqOptElem: MAXVALUE NumericOnly */ +#line 4267 "gram.y" + { (yyval.defelt) = makeDefElem("maxvalue", (Node *)(yyvsp[0].value), (yylsp[-1])); } -#line 30412 "gram.c" /* yacc.c:1652 */ +#line 30904 "gram.c" break; - case 591: -#line 4271 "gram.y" /* yacc.c:1652 */ - { + case 591: /* SeqOptElem: MINVALUE NumericOnly */ +#line 4271 "gram.y" + { (yyval.defelt) = makeDefElem("minvalue", (Node *)(yyvsp[0].value), (yylsp[-1])); } -#line 30420 "gram.c" /* yacc.c:1652 */ +#line 30912 "gram.c" break; - case 592: -#line 4275 "gram.y" /* yacc.c:1652 */ - { + case 592: /* SeqOptElem: NO MAXVALUE */ +#line 4275 "gram.y" + { (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[-1])); } -#line 30428 "gram.c" /* yacc.c:1652 */ +#line 30920 "gram.c" break; - case 593: -#line 4279 "gram.y" /* yacc.c:1652 */ - { + case 593: /* SeqOptElem: NO MINVALUE */ +#line 4279 "gram.y" + { (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[-1])); } -#line 30436 "gram.c" /* yacc.c:1652 */ +#line 30928 "gram.c" break; - case 594: -#line 4283 "gram.y" /* yacc.c:1652 */ - { + case 594: /* SeqOptElem: OWNED BY any_name */ +#line 4283 "gram.y" + { (yyval.defelt) = makeDefElem("owned_by", (Node *)(yyvsp[0].list), (yylsp[-2])); } -#line 30444 "gram.c" /* yacc.c:1652 */ +#line 30936 "gram.c" break; - case 595: -#line 4287 "gram.y" /* yacc.c:1652 */ - { + case 595: /* SeqOptElem: SEQUENCE NAME_P any_name */ +#line 4287 "gram.y" + { /* not documented, only used by pg_dump */ (yyval.defelt) = makeDefElem("sequence_name", (Node *)(yyvsp[0].list), (yylsp[-2])); } -#line 30453 "gram.c" /* yacc.c:1652 */ +#line 30945 "gram.c" break; - case 596: -#line 4292 "gram.y" /* yacc.c:1652 */ - { + case 596: /* SeqOptElem: START opt_with NumericOnly */ +#line 4292 "gram.y" + { (yyval.defelt) = makeDefElem("start", (Node *)(yyvsp[0].value), (yylsp[-2])); } -#line 30461 "gram.c" /* yacc.c:1652 */ +#line 30953 "gram.c" break; - case 597: -#line 4296 "gram.y" /* yacc.c:1652 */ - { + case 597: /* SeqOptElem: RESTART */ +#line 4296 "gram.y" + { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); } -#line 30469 "gram.c" /* yacc.c:1652 */ +#line 30961 "gram.c" break; - case 598: -#line 4300 "gram.y" /* yacc.c:1652 */ - { + case 598: /* SeqOptElem: RESTART opt_with NumericOnly */ +#line 4300 "gram.y" + { (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[0].value), (yylsp[-2])); } -#line 30477 "gram.c" /* yacc.c:1652 */ +#line 30969 "gram.c" break; - case 599: -#line 4305 "gram.y" /* yacc.c:1652 */ - {} -#line 30483 "gram.c" /* yacc.c:1652 */ + case 599: /* opt_by: BY */ +#line 4305 "gram.y" + {} +#line 30975 "gram.c" break; - case 600: -#line 4306 "gram.y" /* yacc.c:1652 */ - {} -#line 30489 "gram.c" /* yacc.c:1652 */ + case 600: /* opt_by: %empty */ +#line 4306 "gram.y" + {} +#line 30981 "gram.c" break; - case 601: -#line 4310 "gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeFloat((yyvsp[0].str)); } -#line 30495 "gram.c" /* yacc.c:1652 */ + case 601: /* NumericOnly: FCONST */ +#line 4310 "gram.y" + { (yyval.value) = makeFloat((yyvsp[0].str)); } +#line 30987 "gram.c" break; - case 602: -#line 4311 "gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeFloat((yyvsp[0].str)); } -#line 30501 "gram.c" /* yacc.c:1652 */ + case 602: /* NumericOnly: '+' FCONST */ +#line 4311 "gram.y" + { (yyval.value) = makeFloat((yyvsp[0].str)); } +#line 30993 "gram.c" break; - case 603: -#line 4313 "gram.y" /* yacc.c:1652 */ - { + case 603: /* NumericOnly: '-' FCONST */ +#line 4313 "gram.y" + { (yyval.value) = makeFloat((yyvsp[0].str)); doNegateFloat((yyval.value)); } -#line 30510 "gram.c" /* yacc.c:1652 */ +#line 31002 "gram.c" break; - case 604: -#line 4317 "gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeInteger((yyvsp[0].ival)); } -#line 30516 "gram.c" /* yacc.c:1652 */ + case 604: /* NumericOnly: SignedIconst */ +#line 4317 "gram.y" + { (yyval.value) = makeInteger((yyvsp[0].ival)); } +#line 31008 "gram.c" break; - case 605: -#line 4320 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].value)); } -#line 30522 "gram.c" /* yacc.c:1652 */ + case 605: /* NumericOnly_list: NumericOnly */ +#line 4320 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].value)); } +#line 31014 "gram.c" break; - case 606: -#line 4321 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } -#line 30528 "gram.c" /* yacc.c:1652 */ + case 606: /* NumericOnly_list: NumericOnly_list ',' NumericOnly */ +#line 4321 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } +#line 31020 "gram.c" break; - case 607: -#line 4334 "gram.y" /* yacc.c:1652 */ - { + case 607: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE NonReservedWord_or_Sconst */ +#line 4334 "gram.y" + { /* * We now interpret parameterless CREATE LANGUAGE as * CREATE EXTENSION. "OR REPLACE" is silently translated @@ -30543,12 +31035,12 @@ n->options = NIL; (yyval.node) = (Node *)n; } -#line 30547 "gram.c" /* yacc.c:1652 */ +#line 31039 "gram.c" break; - case 608: -#line 4350 "gram.y" /* yacc.c:1652 */ - { + case 608: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE NonReservedWord_or_Sconst HANDLER handler_name opt_inline_handler opt_validator */ +#line 4350 "gram.y" + { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->replace = (yyvsp[-8].boolean); n->plname = (yyvsp[-4].str); @@ -30558,72 +31050,72 @@ n->pltrusted = (yyvsp[-7].boolean); (yyval.node) = (Node *)n; } -#line 30562 "gram.c" /* yacc.c:1652 */ +#line 31054 "gram.c" break; - case 609: -#line 4363 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 30568 "gram.c" /* yacc.c:1652 */ + case 609: /* opt_trusted: TRUSTED */ +#line 4363 "gram.y" + { (yyval.boolean) = true; } +#line 31060 "gram.c" break; - case 610: -#line 4364 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 30574 "gram.c" /* yacc.c:1652 */ + case 610: /* opt_trusted: %empty */ +#line 4364 "gram.y" + { (yyval.boolean) = false; } +#line 31066 "gram.c" break; - case 611: -#line 4372 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 30580 "gram.c" /* yacc.c:1652 */ + case 611: /* handler_name: name */ +#line 4372 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 31072 "gram.c" break; - case 612: -#line 4373 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } -#line 30586 "gram.c" /* yacc.c:1652 */ + case 612: /* handler_name: name attrs */ +#line 4373 "gram.y" + { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } +#line 31078 "gram.c" break; - case 613: -#line 4377 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 30592 "gram.c" /* yacc.c:1652 */ + case 613: /* opt_inline_handler: INLINE_P handler_name */ +#line 4377 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 31084 "gram.c" break; - case 614: -#line 4378 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 30598 "gram.c" /* yacc.c:1652 */ + case 614: /* opt_inline_handler: %empty */ +#line 4378 "gram.y" + { (yyval.list) = NIL; } +#line 31090 "gram.c" break; - case 615: -#line 4382 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 30604 "gram.c" /* yacc.c:1652 */ + case 615: /* validator_clause: VALIDATOR handler_name */ +#line 4382 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 31096 "gram.c" break; - case 616: -#line 4383 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 30610 "gram.c" /* yacc.c:1652 */ + case 616: /* validator_clause: NO VALIDATOR */ +#line 4383 "gram.y" + { (yyval.list) = NIL; } +#line 31102 "gram.c" break; - case 617: -#line 4387 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 30616 "gram.c" /* yacc.c:1652 */ + case 617: /* opt_validator: validator_clause */ +#line 4387 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 31108 "gram.c" break; - case 618: -#line 4388 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 30622 "gram.c" /* yacc.c:1652 */ + case 618: /* opt_validator: %empty */ +#line 4388 "gram.y" + { (yyval.list) = NIL; } +#line 31114 "gram.c" break; - case 619: -#line 4393 "gram.y" /* yacc.c:1652 */ - { + case 619: /* DropPLangStmt: DROP opt_procedural LANGUAGE NonReservedWord_or_Sconst opt_drop_behavior */ +#line 4393 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(makeString((yyvsp[-1].str))); @@ -30632,12 +31124,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 30636 "gram.c" /* yacc.c:1652 */ +#line 31128 "gram.c" break; - case 620: -#line 4403 "gram.y" /* yacc.c:1652 */ - { + case 620: /* DropPLangStmt: DROP opt_procedural LANGUAGE IF_P EXISTS NonReservedWord_or_Sconst opt_drop_behavior */ +#line 4403 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(makeString((yyvsp[-1].str))); @@ -30646,24 +31138,24 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 30650 "gram.c" /* yacc.c:1652 */ +#line 31142 "gram.c" break; - case 621: -#line 4415 "gram.y" /* yacc.c:1652 */ - {} -#line 30656 "gram.c" /* yacc.c:1652 */ + case 621: /* opt_procedural: PROCEDURAL */ +#line 4415 "gram.y" + {} +#line 31148 "gram.c" break; - case 622: -#line 4416 "gram.y" /* yacc.c:1652 */ - {} -#line 30662 "gram.c" /* yacc.c:1652 */ + case 622: /* opt_procedural: %empty */ +#line 4416 "gram.y" + {} +#line 31154 "gram.c" break; - case 623: -#line 4427 "gram.y" /* yacc.c:1652 */ - { + case 623: /* CreateTableSpaceStmt: CREATE TABLESPACE name OptTableSpaceOwner LOCATION Sconst opt_reloptions */ +#line 4427 "gram.y" + { CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt); n->tablespacename = (yyvsp[-4].str); n->owner = (yyvsp[-3].rolespec); @@ -30671,148 +31163,148 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 30675 "gram.c" /* yacc.c:1652 */ +#line 31167 "gram.c" break; - case 624: -#line 4437 "gram.y" /* yacc.c:1652 */ - { (yyval.rolespec) = (yyvsp[0].rolespec); } -#line 30681 "gram.c" /* yacc.c:1652 */ + case 624: /* OptTableSpaceOwner: OWNER RoleSpec */ +#line 4437 "gram.y" + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 31173 "gram.c" break; - case 625: -#line 4438 "gram.y" /* yacc.c:1652 */ - { (yyval.rolespec) = NULL; } -#line 30687 "gram.c" /* yacc.c:1652 */ + case 625: /* OptTableSpaceOwner: %empty */ +#line 4438 "gram.y" + { (yyval.rolespec) = NULL; } +#line 31179 "gram.c" break; - case 626: -#line 4452 "gram.y" /* yacc.c:1652 */ - { + case 626: /* DropTableSpaceStmt: DROP TABLESPACE name */ +#line 4452 "gram.y" + { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *) n; } -#line 30698 "gram.c" /* yacc.c:1652 */ +#line 31190 "gram.c" break; - case 627: -#line 4459 "gram.y" /* yacc.c:1652 */ - { + case 627: /* DropTableSpaceStmt: DROP TABLESPACE IF_P EXISTS name */ +#line 4459 "gram.y" + { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *) n; } -#line 30709 "gram.c" /* yacc.c:1652 */ +#line 31201 "gram.c" break; - case 628: -#line 4476 "gram.y" /* yacc.c:1652 */ - { + case 628: /* CreateExtensionStmt: CREATE EXTENSION name opt_with create_extension_opt_list */ +#line 4476 "gram.y" + { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[-2].str); n->if_not_exists = false; n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 30721 "gram.c" /* yacc.c:1652 */ +#line 31213 "gram.c" break; - case 629: -#line 4484 "gram.y" /* yacc.c:1652 */ - { + case 629: /* CreateExtensionStmt: CREATE EXTENSION IF_P NOT EXISTS name opt_with create_extension_opt_list */ +#line 4484 "gram.y" + { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[-2].str); n->if_not_exists = true; n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 30733 "gram.c" /* yacc.c:1652 */ +#line 31225 "gram.c" break; - case 630: -#line 4495 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 30739 "gram.c" /* yacc.c:1652 */ + case 630: /* create_extension_opt_list: create_extension_opt_list create_extension_opt_item */ +#line 4495 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 31231 "gram.c" break; - case 631: -#line 4497 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 30745 "gram.c" /* yacc.c:1652 */ + case 631: /* create_extension_opt_list: %empty */ +#line 4497 "gram.y" + { (yyval.list) = NIL; } +#line 31237 "gram.c" break; - case 632: -#line 4502 "gram.y" /* yacc.c:1652 */ - { + case 632: /* create_extension_opt_item: SCHEMA name */ +#line 4502 "gram.y" + { (yyval.defelt) = makeDefElem("schema", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 30753 "gram.c" /* yacc.c:1652 */ +#line 31245 "gram.c" break; - case 633: -#line 4506 "gram.y" /* yacc.c:1652 */ - { + case 633: /* create_extension_opt_item: VERSION_P NonReservedWord_or_Sconst */ +#line 4506 "gram.y" + { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 30761 "gram.c" /* yacc.c:1652 */ +#line 31253 "gram.c" break; - case 634: -#line 4510 "gram.y" /* yacc.c:1652 */ - { + case 634: /* create_extension_opt_item: FROM NonReservedWord_or_Sconst */ +#line 4510 "gram.y" + { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE EXTENSION ... FROM is no longer supported"), parser_errposition((yylsp[-1])))); } -#line 30772 "gram.c" /* yacc.c:1652 */ +#line 31264 "gram.c" break; - case 635: -#line 4517 "gram.y" /* yacc.c:1652 */ - { + case 635: /* create_extension_opt_item: CASCADE */ +#line 4517 "gram.y" + { (yyval.defelt) = makeDefElem("cascade", (Node *)makeInteger(true), (yylsp[0])); } -#line 30780 "gram.c" /* yacc.c:1652 */ +#line 31272 "gram.c" break; - case 636: -#line 4529 "gram.y" /* yacc.c:1652 */ - { + case 636: /* AlterExtensionStmt: ALTER EXTENSION name UPDATE alter_extension_opt_list */ +#line 4529 "gram.y" + { AlterExtensionStmt *n = makeNode(AlterExtensionStmt); n->extname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 30791 "gram.c" /* yacc.c:1652 */ +#line 31283 "gram.c" break; - case 637: -#line 4539 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 30797 "gram.c" /* yacc.c:1652 */ + case 637: /* alter_extension_opt_list: alter_extension_opt_list alter_extension_opt_item */ +#line 4539 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 31289 "gram.c" break; - case 638: -#line 4541 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 30803 "gram.c" /* yacc.c:1652 */ + case 638: /* alter_extension_opt_list: %empty */ +#line 4541 "gram.y" + { (yyval.list) = NIL; } +#line 31295 "gram.c" break; - case 639: -#line 4546 "gram.y" /* yacc.c:1652 */ - { + case 639: /* alter_extension_opt_item: TO NonReservedWord_or_Sconst */ +#line 4546 "gram.y" + { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 30811 "gram.c" /* yacc.c:1652 */ +#line 31303 "gram.c" break; - case 640: -#line 4559 "gram.y" /* yacc.c:1652 */ - { + case 640: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop ACCESS METHOD name */ +#line 4559 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); @@ -30820,12 +31312,12 @@ n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } -#line 30824 "gram.c" /* yacc.c:1652 */ +#line 31316 "gram.c" break; - case 641: -#line 4568 "gram.y" /* yacc.c:1652 */ - { + case 641: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop AGGREGATE aggregate_with_argtypes */ +#line 4568 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -30833,12 +31325,12 @@ n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } -#line 30837 "gram.c" /* yacc.c:1652 */ +#line 31329 "gram.c" break; - case 642: -#line 4577 "gram.y" /* yacc.c:1652 */ - { + case 642: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')' */ +#line 4577 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-7].str); n->action = (yyvsp[-6].ival); @@ -30846,12 +31338,12 @@ n->object = (Node *) list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); (yyval.node) = (Node *) n; } -#line 30850 "gram.c" /* yacc.c:1652 */ +#line 31342 "gram.c" break; - case 643: -#line 4586 "gram.y" /* yacc.c:1652 */ - { + case 643: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop COLLATION any_name */ +#line 4586 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -30859,12 +31351,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 30863 "gram.c" /* yacc.c:1652 */ +#line 31355 "gram.c" break; - case 644: -#line 4595 "gram.y" /* yacc.c:1652 */ - { + case 644: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop CONVERSION_P any_name */ +#line 4595 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -30872,12 +31364,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 30876 "gram.c" /* yacc.c:1652 */ +#line 31368 "gram.c" break; - case 645: -#line 4604 "gram.y" /* yacc.c:1652 */ - { + case 645: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop DOMAIN_P Typename */ +#line 4604 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -30885,12 +31377,12 @@ n->object = (Node *) (yyvsp[0].typnam); (yyval.node) = (Node *)n; } -#line 30889 "gram.c" /* yacc.c:1652 */ +#line 31381 "gram.c" break; - case 646: -#line 4613 "gram.y" /* yacc.c:1652 */ - { + case 646: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FUNCTION function_with_argtypes */ +#line 4613 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -30898,12 +31390,12 @@ n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } -#line 30902 "gram.c" /* yacc.c:1652 */ +#line 31394 "gram.c" break; - case 647: -#line 4622 "gram.y" /* yacc.c:1652 */ - { + case 647: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop opt_procedural LANGUAGE name */ +#line 4622 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); @@ -30911,12 +31403,12 @@ n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } -#line 30915 "gram.c" /* yacc.c:1652 */ +#line 31407 "gram.c" break; - case 648: -#line 4631 "gram.y" /* yacc.c:1652 */ - { + case 648: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR operator_with_argtypes */ +#line 4631 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -30924,12 +31416,12 @@ n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } -#line 30928 "gram.c" /* yacc.c:1652 */ +#line 31420 "gram.c" break; - case 649: -#line 4640 "gram.y" /* yacc.c:1652 */ - { + case 649: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR CLASS any_name USING access_method */ +#line 4640 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-6].str); n->action = (yyvsp[-5].ival); @@ -30937,12 +31429,12 @@ n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list)); (yyval.node) = (Node *)n; } -#line 30941 "gram.c" /* yacc.c:1652 */ +#line 31433 "gram.c" break; - case 650: -#line 4649 "gram.y" /* yacc.c:1652 */ - { + case 650: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR FAMILY any_name USING access_method */ +#line 4649 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-6].str); n->action = (yyvsp[-5].ival); @@ -30950,12 +31442,12 @@ n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list)); (yyval.node) = (Node *)n; } -#line 30954 "gram.c" /* yacc.c:1652 */ +#line 31446 "gram.c" break; - case 651: -#line 4658 "gram.y" /* yacc.c:1652 */ - { + case 651: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop PROCEDURE function_with_argtypes */ +#line 4658 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -30963,12 +31455,12 @@ n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } -#line 30967 "gram.c" /* yacc.c:1652 */ +#line 31459 "gram.c" break; - case 652: -#line 4667 "gram.y" /* yacc.c:1652 */ - { + case 652: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop ROUTINE function_with_argtypes */ +#line 4667 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -30976,12 +31468,12 @@ n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } -#line 30980 "gram.c" /* yacc.c:1652 */ +#line 31472 "gram.c" break; - case 653: -#line 4676 "gram.y" /* yacc.c:1652 */ - { + case 653: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop SCHEMA name */ +#line 4676 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -30989,12 +31481,12 @@ n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } -#line 30993 "gram.c" /* yacc.c:1652 */ +#line 31485 "gram.c" break; - case 654: -#line 4685 "gram.y" /* yacc.c:1652 */ - { + case 654: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop EVENT TRIGGER name */ +#line 4685 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); @@ -31002,12 +31494,12 @@ n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } -#line 31006 "gram.c" /* yacc.c:1652 */ +#line 31498 "gram.c" break; - case 655: -#line 4694 "gram.y" /* yacc.c:1652 */ - { + case 655: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TABLE any_name */ +#line 4694 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -31015,12 +31507,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 31019 "gram.c" /* yacc.c:1652 */ +#line 31511 "gram.c" break; - case 656: -#line 4703 "gram.y" /* yacc.c:1652 */ - { + case 656: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TEXT_P SEARCH PARSER any_name */ +#line 4703 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); @@ -31028,12 +31520,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 31032 "gram.c" /* yacc.c:1652 */ +#line 31524 "gram.c" break; - case 657: -#line 4712 "gram.y" /* yacc.c:1652 */ - { + case 657: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TEXT_P SEARCH DICTIONARY any_name */ +#line 4712 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); @@ -31041,12 +31533,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 31045 "gram.c" /* yacc.c:1652 */ +#line 31537 "gram.c" break; - case 658: -#line 4721 "gram.y" /* yacc.c:1652 */ - { + case 658: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TEXT_P SEARCH TEMPLATE any_name */ +#line 4721 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); @@ -31054,12 +31546,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 31058 "gram.c" /* yacc.c:1652 */ +#line 31550 "gram.c" break; - case 659: -#line 4730 "gram.y" /* yacc.c:1652 */ - { + case 659: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TEXT_P SEARCH CONFIGURATION any_name */ +#line 4730 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); @@ -31067,12 +31559,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 31071 "gram.c" /* yacc.c:1652 */ +#line 31563 "gram.c" break; - case 660: -#line 4739 "gram.y" /* yacc.c:1652 */ - { + case 660: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop SEQUENCE any_name */ +#line 4739 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -31080,12 +31572,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 31084 "gram.c" /* yacc.c:1652 */ +#line 31576 "gram.c" break; - case 661: -#line 4748 "gram.y" /* yacc.c:1652 */ - { + case 661: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop VIEW any_name */ +#line 4748 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -31093,12 +31585,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 31097 "gram.c" /* yacc.c:1652 */ +#line 31589 "gram.c" break; - case 662: -#line 4757 "gram.y" /* yacc.c:1652 */ - { + case 662: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop MATERIALIZED VIEW any_name */ +#line 4757 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); @@ -31106,12 +31598,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 31110 "gram.c" /* yacc.c:1652 */ +#line 31602 "gram.c" break; - case 663: -#line 4766 "gram.y" /* yacc.c:1652 */ - { + case 663: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FOREIGN TABLE any_name */ +#line 4766 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); @@ -31119,12 +31611,12 @@ n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 31123 "gram.c" /* yacc.c:1652 */ +#line 31615 "gram.c" break; - case 664: -#line 4775 "gram.y" /* yacc.c:1652 */ - { + case 664: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FOREIGN DATA_P WRAPPER name */ +#line 4775 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); @@ -31132,12 +31624,12 @@ n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } -#line 31136 "gram.c" /* yacc.c:1652 */ +#line 31628 "gram.c" break; - case 665: -#line 4784 "gram.y" /* yacc.c:1652 */ - { + case 665: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop SERVER name */ +#line 4784 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -31145,12 +31637,12 @@ n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } -#line 31149 "gram.c" /* yacc.c:1652 */ +#line 31641 "gram.c" break; - case 666: -#line 4793 "gram.y" /* yacc.c:1652 */ - { + case 666: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TRANSFORM FOR Typename LANGUAGE name */ +#line 4793 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-6].str); n->action = (yyvsp[-5].ival); @@ -31158,12 +31650,12 @@ n->object = (Node *) list_make2((yyvsp[-2].typnam), makeString((yyvsp[0].str))); (yyval.node) = (Node *)n; } -#line 31162 "gram.c" /* yacc.c:1652 */ +#line 31654 "gram.c" break; - case 667: -#line 4802 "gram.y" /* yacc.c:1652 */ - { + case 667: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TYPE_P Typename */ +#line 4802 "gram.y" + { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); @@ -31171,200 +31663,200 @@ n->object = (Node *) (yyvsp[0].typnam); (yyval.node) = (Node *)n; } -#line 31175 "gram.c" /* yacc.c:1652 */ +#line 31667 "gram.c" break; - case 668: -#line 4820 "gram.y" /* yacc.c:1652 */ - { + case 668: /* CreateFdwStmt: CREATE FOREIGN DATA_P WRAPPER name opt_fdw_options create_generic_options */ +#line 4820 "gram.y" + { CreateFdwStmt *n = makeNode(CreateFdwStmt); n->fdwname = (yyvsp[-2].str); n->func_options = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 31187 "gram.c" /* yacc.c:1652 */ +#line 31679 "gram.c" break; - case 669: -#line 4830 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("handler", (Node *)(yyvsp[0].list), (yylsp[-1])); } -#line 31193 "gram.c" /* yacc.c:1652 */ + case 669: /* fdw_option: HANDLER handler_name */ +#line 4830 "gram.y" + { (yyval.defelt) = makeDefElem("handler", (Node *)(yyvsp[0].list), (yylsp[-1])); } +#line 31685 "gram.c" break; - case 670: -#line 4831 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[-1])); } -#line 31199 "gram.c" /* yacc.c:1652 */ + case 670: /* fdw_option: NO HANDLER */ +#line 4831 "gram.y" + { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[-1])); } +#line 31691 "gram.c" break; - case 671: -#line 4832 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("validator", (Node *)(yyvsp[0].list), (yylsp[-1])); } -#line 31205 "gram.c" /* yacc.c:1652 */ + case 671: /* fdw_option: VALIDATOR handler_name */ +#line 4832 "gram.y" + { (yyval.defelt) = makeDefElem("validator", (Node *)(yyvsp[0].list), (yylsp[-1])); } +#line 31697 "gram.c" break; - case 672: -#line 4833 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[-1])); } -#line 31211 "gram.c" /* yacc.c:1652 */ + case 672: /* fdw_option: NO VALIDATOR */ +#line 4833 "gram.y" + { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[-1])); } +#line 31703 "gram.c" break; - case 673: -#line 4837 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 31217 "gram.c" /* yacc.c:1652 */ + case 673: /* fdw_options: fdw_option */ +#line 4837 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 31709 "gram.c" break; - case 674: -#line 4838 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 31223 "gram.c" /* yacc.c:1652 */ + case 674: /* fdw_options: fdw_options fdw_option */ +#line 4838 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 31715 "gram.c" break; - case 675: -#line 4842 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 31229 "gram.c" /* yacc.c:1652 */ + case 675: /* opt_fdw_options: fdw_options */ +#line 4842 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 31721 "gram.c" break; - case 676: -#line 4843 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 31235 "gram.c" /* yacc.c:1652 */ + case 676: /* opt_fdw_options: %empty */ +#line 4843 "gram.y" + { (yyval.list) = NIL; } +#line 31727 "gram.c" break; - case 677: -#line 4854 "gram.y" /* yacc.c:1652 */ - { + case 677: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name opt_fdw_options alter_generic_options */ +#line 4854 "gram.y" + { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[-2].str); n->func_options = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 31247 "gram.c" /* yacc.c:1652 */ +#line 31739 "gram.c" break; - case 678: -#line 4862 "gram.y" /* yacc.c:1652 */ - { + case 678: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name fdw_options */ +#line 4862 "gram.y" + { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[-1].str); n->func_options = (yyvsp[0].list); n->options = NIL; (yyval.node) = (Node *) n; } -#line 31259 "gram.c" /* yacc.c:1652 */ +#line 31751 "gram.c" break; - case 679: -#line 4873 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 31265 "gram.c" /* yacc.c:1652 */ + case 679: /* create_generic_options: OPTIONS '(' generic_option_list ')' */ +#line 4873 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 31757 "gram.c" break; - case 680: -#line 4874 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 31271 "gram.c" /* yacc.c:1652 */ + case 680: /* create_generic_options: %empty */ +#line 4874 "gram.y" + { (yyval.list) = NIL; } +#line 31763 "gram.c" break; - case 681: -#line 4879 "gram.y" /* yacc.c:1652 */ - { + case 681: /* generic_option_list: generic_option_elem */ +#line 4879 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 31279 "gram.c" /* yacc.c:1652 */ +#line 31771 "gram.c" break; - case 682: -#line 4883 "gram.y" /* yacc.c:1652 */ - { + case 682: /* generic_option_list: generic_option_list ',' generic_option_elem */ +#line 4883 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 31287 "gram.c" /* yacc.c:1652 */ +#line 31779 "gram.c" break; - case 683: -#line 4890 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 31293 "gram.c" /* yacc.c:1652 */ + case 683: /* alter_generic_options: OPTIONS '(' alter_generic_option_list ')' */ +#line 4890 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 31785 "gram.c" break; - case 684: -#line 4895 "gram.y" /* yacc.c:1652 */ - { + case 684: /* alter_generic_option_list: alter_generic_option_elem */ +#line 4895 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 31301 "gram.c" /* yacc.c:1652 */ +#line 31793 "gram.c" break; - case 685: -#line 4899 "gram.y" /* yacc.c:1652 */ - { + case 685: /* alter_generic_option_list: alter_generic_option_list ',' alter_generic_option_elem */ +#line 4899 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 31309 "gram.c" /* yacc.c:1652 */ +#line 31801 "gram.c" break; - case 686: -#line 4906 "gram.y" /* yacc.c:1652 */ - { + case 686: /* alter_generic_option_elem: generic_option_elem */ +#line 4906 "gram.y" + { (yyval.defelt) = (yyvsp[0].defelt); } -#line 31317 "gram.c" /* yacc.c:1652 */ +#line 31809 "gram.c" break; - case 687: -#line 4910 "gram.y" /* yacc.c:1652 */ - { + case 687: /* alter_generic_option_elem: SET generic_option_elem */ +#line 4910 "gram.y" + { (yyval.defelt) = (yyvsp[0].defelt); (yyval.defelt)->defaction = DEFELEM_SET; } -#line 31326 "gram.c" /* yacc.c:1652 */ +#line 31818 "gram.c" break; - case 688: -#line 4915 "gram.y" /* yacc.c:1652 */ - { + case 688: /* alter_generic_option_elem: ADD_P generic_option_elem */ +#line 4915 "gram.y" + { (yyval.defelt) = (yyvsp[0].defelt); (yyval.defelt)->defaction = DEFELEM_ADD; } -#line 31335 "gram.c" /* yacc.c:1652 */ +#line 31827 "gram.c" break; - case 689: -#line 4920 "gram.y" /* yacc.c:1652 */ - { + case 689: /* alter_generic_option_elem: DROP generic_option_name */ +#line 4920 "gram.y" + { (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[0].str), NULL, DEFELEM_DROP, (yylsp[0])); } -#line 31343 "gram.c" /* yacc.c:1652 */ +#line 31835 "gram.c" break; - case 690: -#line 4927 "gram.y" /* yacc.c:1652 */ - { + case 690: /* generic_option_elem: generic_option_name generic_option_arg */ +#line 4927 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } -#line 31351 "gram.c" /* yacc.c:1652 */ +#line 31843 "gram.c" break; - case 691: -#line 4933 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 31357 "gram.c" /* yacc.c:1652 */ + case 691: /* generic_option_name: ColLabel */ +#line 4933 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 31849 "gram.c" break; - case 692: -#line 4938 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } -#line 31363 "gram.c" /* yacc.c:1652 */ + case 692: /* generic_option_arg: Sconst */ +#line 4938 "gram.y" + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 31855 "gram.c" break; - case 693: -#line 4950 "gram.y" /* yacc.c:1652 */ - { + case 693: /* CreateForeignServerStmt: CREATE SERVER name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */ +#line 4950 "gram.y" + { CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); n->servername = (yyvsp[-7].str); n->servertype = (yyvsp[-6].str); @@ -31374,12 +31866,12 @@ n->if_not_exists = false; (yyval.node) = (Node *) n; } -#line 31378 "gram.c" /* yacc.c:1652 */ +#line 31870 "gram.c" break; - case 694: -#line 4962 "gram.y" /* yacc.c:1652 */ - { + case 694: /* CreateForeignServerStmt: CREATE SERVER IF_P NOT EXISTS name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */ +#line 4962 "gram.y" + { CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); n->servername = (yyvsp[-7].str); n->servertype = (yyvsp[-6].str); @@ -31389,48 +31881,48 @@ n->if_not_exists = true; (yyval.node) = (Node *) n; } -#line 31393 "gram.c" /* yacc.c:1652 */ +#line 31885 "gram.c" break; - case 695: -#line 4975 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 31399 "gram.c" /* yacc.c:1652 */ + case 695: /* opt_type: TYPE_P Sconst */ +#line 4975 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 31891 "gram.c" break; - case 696: -#line 4976 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 31405 "gram.c" /* yacc.c:1652 */ + case 696: /* opt_type: %empty */ +#line 4976 "gram.y" + { (yyval.str) = NULL; } +#line 31897 "gram.c" break; - case 697: -#line 4981 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 31411 "gram.c" /* yacc.c:1652 */ + case 697: /* foreign_server_version: VERSION_P Sconst */ +#line 4981 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 31903 "gram.c" break; - case 698: -#line 4982 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 31417 "gram.c" /* yacc.c:1652 */ + case 698: /* foreign_server_version: VERSION_P NULL_P */ +#line 4982 "gram.y" + { (yyval.str) = NULL; } +#line 31909 "gram.c" break; - case 699: -#line 4986 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 31423 "gram.c" /* yacc.c:1652 */ + case 699: /* opt_foreign_server_version: foreign_server_version */ +#line 4986 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 31915 "gram.c" break; - case 700: -#line 4987 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 31429 "gram.c" /* yacc.c:1652 */ + case 700: /* opt_foreign_server_version: %empty */ +#line 4987 "gram.y" + { (yyval.str) = NULL; } +#line 31921 "gram.c" break; - case 701: -#line 4998 "gram.y" /* yacc.c:1652 */ - { + case 701: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version alter_generic_options */ +#line 4998 "gram.y" + { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[-2].str); n->version = (yyvsp[-1].str); @@ -31438,35 +31930,35 @@ n->has_version = true; (yyval.node) = (Node *) n; } -#line 31442 "gram.c" /* yacc.c:1652 */ +#line 31934 "gram.c" break; - case 702: -#line 5007 "gram.y" /* yacc.c:1652 */ - { + case 702: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version */ +#line 5007 "gram.y" + { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[-1].str); n->version = (yyvsp[0].str); n->has_version = true; (yyval.node) = (Node *) n; } -#line 31454 "gram.c" /* yacc.c:1652 */ +#line 31946 "gram.c" break; - case 703: -#line 5015 "gram.y" /* yacc.c:1652 */ - { + case 703: /* AlterForeignServerStmt: ALTER SERVER name alter_generic_options */ +#line 5015 "gram.y" + { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 31465 "gram.c" /* yacc.c:1652 */ +#line 31957 "gram.c" break; - case 704: -#line 5034 "gram.y" /* yacc.c:1652 */ - { + case 704: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */ +#line 5034 "gram.y" + { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-7].range); @@ -31483,12 +31975,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 31487 "gram.c" /* yacc.c:1652 */ +#line 31979 "gram.c" break; - case 705: -#line 5054 "gram.y" /* yacc.c:1652 */ - { + case 705: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */ +#line 5054 "gram.y" + { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-7].range); @@ -31505,12 +31997,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 31509 "gram.c" /* yacc.c:1652 */ +#line 32001 "gram.c" break; - case 706: -#line 5074 "gram.y" /* yacc.c:1652 */ - { + case 706: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */ +#line 5074 "gram.y" + { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-8].range); @@ -31528,12 +32020,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 31532 "gram.c" /* yacc.c:1652 */ +#line 32024 "gram.c" break; - case 707: -#line 5095 "gram.y" /* yacc.c:1652 */ - { + case 707: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */ +#line 5095 "gram.y" + { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-8].range); @@ -31551,12 +32043,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 31555 "gram.c" /* yacc.c:1652 */ +#line 32047 "gram.c" break; - case 708: -#line 5124 "gram.y" /* yacc.c:1652 */ - { + case 708: /* AlterForeignTableStmt: ALTER FOREIGN TABLE relation_expr alter_table_cmds */ +#line 5124 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -31564,12 +32056,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 31568 "gram.c" /* yacc.c:1652 */ +#line 32060 "gram.c" break; - case 709: -#line 5133 "gram.y" /* yacc.c:1652 */ - { + case 709: /* AlterForeignTableStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr alter_table_cmds */ +#line 5133 "gram.y" + { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); @@ -31577,12 +32069,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 31581 "gram.c" /* yacc.c:1652 */ +#line 32073 "gram.c" break; - case 710: -#line 5155 "gram.y" /* yacc.c:1652 */ - { + case 710: /* ImportForeignSchemaStmt: IMPORT_P FOREIGN SCHEMA name import_qualification FROM SERVER name INTO name create_generic_options */ +#line 5155 "gram.y" + { ImportForeignSchemaStmt *n = makeNode(ImportForeignSchemaStmt); n->server_name = (yyvsp[-3].str); n->remote_schema = (yyvsp[-7].str); @@ -31592,46 +32084,46 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 31596 "gram.c" /* yacc.c:1652 */ +#line 32088 "gram.c" break; - case 711: -#line 5168 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; } -#line 31602 "gram.c" /* yacc.c:1652 */ + case 711: /* import_qualification_type: LIMIT TO */ +#line 5168 "gram.y" + { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; } +#line 32094 "gram.c" break; - case 712: -#line 5169 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; } -#line 31608 "gram.c" /* yacc.c:1652 */ + case 712: /* import_qualification_type: EXCEPT */ +#line 5169 "gram.y" + { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; } +#line 32100 "gram.c" break; - case 713: -#line 5174 "gram.y" /* yacc.c:1652 */ - { + case 713: /* import_qualification: import_qualification_type '(' relation_expr_list ')' */ +#line 5174 "gram.y" + { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = (yyvsp[-3].ival); n->table_names = (yyvsp[-1].list); (yyval.importqual) = n; } -#line 31619 "gram.c" /* yacc.c:1652 */ +#line 32111 "gram.c" break; - case 714: -#line 5181 "gram.y" /* yacc.c:1652 */ - { + case 714: /* import_qualification: %empty */ +#line 5181 "gram.y" + { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = FDW_IMPORT_SCHEMA_ALL; n->table_names = NIL; (yyval.importqual) = n; } -#line 31630 "gram.c" /* yacc.c:1652 */ +#line 32122 "gram.c" break; - case 715: -#line 5197 "gram.y" /* yacc.c:1652 */ - { + case 715: /* CreateUserMappingStmt: CREATE USER MAPPING FOR auth_ident SERVER name create_generic_options */ +#line 5197 "gram.y" + { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->user = (yyvsp[-3].rolespec); n->servername = (yyvsp[-1].str); @@ -31639,12 +32131,12 @@ n->if_not_exists = false; (yyval.node) = (Node *) n; } -#line 31643 "gram.c" /* yacc.c:1652 */ +#line 32135 "gram.c" break; - case 716: -#line 5206 "gram.y" /* yacc.c:1652 */ - { + case 716: /* CreateUserMappingStmt: CREATE USER MAPPING IF_P NOT EXISTS FOR auth_ident SERVER name create_generic_options */ +#line 5206 "gram.y" + { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->user = (yyvsp[-3].rolespec); n->servername = (yyvsp[-1].str); @@ -31652,60 +32144,60 @@ n->if_not_exists = true; (yyval.node) = (Node *) n; } -#line 31656 "gram.c" /* yacc.c:1652 */ +#line 32148 "gram.c" break; - case 717: -#line 5217 "gram.y" /* yacc.c:1652 */ - { (yyval.rolespec) = (yyvsp[0].rolespec); } -#line 31662 "gram.c" /* yacc.c:1652 */ + case 717: /* auth_ident: RoleSpec */ +#line 5217 "gram.y" + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 32154 "gram.c" break; - case 718: -#line 5218 "gram.y" /* yacc.c:1652 */ - { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); } -#line 31668 "gram.c" /* yacc.c:1652 */ + case 718: /* auth_ident: USER */ +#line 5218 "gram.y" + { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); } +#line 32160 "gram.c" break; - case 719: -#line 5231 "gram.y" /* yacc.c:1652 */ - { + case 719: /* DropUserMappingStmt: DROP USER MAPPING FOR auth_ident SERVER name */ +#line 5231 "gram.y" + { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[-2].rolespec); n->servername = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *) n; } -#line 31680 "gram.c" /* yacc.c:1652 */ +#line 32172 "gram.c" break; - case 720: -#line 5239 "gram.y" /* yacc.c:1652 */ - { + case 720: /* DropUserMappingStmt: DROP USER MAPPING IF_P EXISTS FOR auth_ident SERVER name */ +#line 5239 "gram.y" + { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[-2].rolespec); n->servername = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *) n; } -#line 31692 "gram.c" /* yacc.c:1652 */ +#line 32184 "gram.c" break; - case 721: -#line 5256 "gram.y" /* yacc.c:1652 */ - { + case 721: /* AlterUserMappingStmt: ALTER USER MAPPING FOR auth_ident SERVER name alter_generic_options */ +#line 5256 "gram.y" + { AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt); n->user = (yyvsp[-3].rolespec); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 31704 "gram.c" /* yacc.c:1652 */ +#line 32196 "gram.c" break; - case 722: -#line 5282 "gram.y" /* yacc.c:1652 */ - { + case 722: /* CreatePolicyStmt: CREATE POLICY name ON qualified_name RowSecurityDefaultPermissive RowSecurityDefaultForCmd RowSecurityDefaultToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */ +#line 5282 "gram.y" + { CreatePolicyStmt *n = makeNode(CreatePolicyStmt); n->policy_name = (yyvsp[-7].str); n->table = (yyvsp[-5].range); @@ -31716,12 +32208,12 @@ n->with_check = (yyvsp[0].node); (yyval.node) = (Node *) n; } -#line 31720 "gram.c" /* yacc.c:1652 */ +#line 32212 "gram.c" break; - case 723: -#line 5298 "gram.y" /* yacc.c:1652 */ - { + case 723: /* AlterPolicyStmt: ALTER POLICY name ON qualified_name RowSecurityOptionalToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */ +#line 5298 "gram.y" + { AlterPolicyStmt *n = makeNode(AlterPolicyStmt); n->policy_name = (yyvsp[-5].str); n->table = (yyvsp[-3].range); @@ -31730,60 +32222,60 @@ n->with_check = (yyvsp[0].node); (yyval.node) = (Node *) n; } -#line 31734 "gram.c" /* yacc.c:1652 */ +#line 32226 "gram.c" break; - case 724: -#line 5310 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[-1].node); } -#line 31740 "gram.c" /* yacc.c:1652 */ + case 724: /* RowSecurityOptionalExpr: USING '(' a_expr ')' */ +#line 5310 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 32232 "gram.c" break; - case 725: -#line 5311 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 31746 "gram.c" /* yacc.c:1652 */ + case 725: /* RowSecurityOptionalExpr: %empty */ +#line 5311 "gram.y" + { (yyval.node) = NULL; } +#line 32238 "gram.c" break; - case 726: -#line 5315 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[-1].node); } -#line 31752 "gram.c" /* yacc.c:1652 */ + case 726: /* RowSecurityOptionalWithCheck: WITH CHECK '(' a_expr ')' */ +#line 5315 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 32244 "gram.c" break; - case 727: -#line 5316 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 31758 "gram.c" /* yacc.c:1652 */ + case 727: /* RowSecurityOptionalWithCheck: %empty */ +#line 5316 "gram.y" + { (yyval.node) = NULL; } +#line 32250 "gram.c" break; - case 728: -#line 5320 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 31764 "gram.c" /* yacc.c:1652 */ + case 728: /* RowSecurityDefaultToRole: TO role_list */ +#line 5320 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 32256 "gram.c" break; - case 729: -#line 5321 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); } -#line 31770 "gram.c" /* yacc.c:1652 */ + case 729: /* RowSecurityDefaultToRole: %empty */ +#line 5321 "gram.y" + { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); } +#line 32262 "gram.c" break; - case 730: -#line 5325 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 31776 "gram.c" /* yacc.c:1652 */ + case 730: /* RowSecurityOptionalToRole: TO role_list */ +#line 5325 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 32268 "gram.c" break; - case 731: -#line 5326 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NULL; } -#line 31782 "gram.c" /* yacc.c:1652 */ + case 731: /* RowSecurityOptionalToRole: %empty */ +#line 5326 "gram.y" + { (yyval.list) = NULL; } +#line 32274 "gram.c" break; - case 732: -#line 5331 "gram.y" /* yacc.c:1652 */ - { + case 732: /* RowSecurityDefaultPermissive: AS IDENT */ +#line 5331 "gram.y" + { if (strcmp((yyvsp[0].str), "permissive") == 0) (yyval.boolean) = true; else if (strcmp((yyvsp[0].str), "restrictive") == 0) @@ -31796,84 +32288,84 @@ parser_errposition((yylsp[0])))); } -#line 31800 "gram.c" /* yacc.c:1652 */ +#line 32292 "gram.c" break; - case 733: -#line 5344 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 31806 "gram.c" /* yacc.c:1652 */ + case 733: /* RowSecurityDefaultPermissive: %empty */ +#line 5344 "gram.y" + { (yyval.boolean) = true; } +#line 32298 "gram.c" break; - case 734: -#line 5348 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 31812 "gram.c" /* yacc.c:1652 */ + case 734: /* RowSecurityDefaultForCmd: FOR row_security_cmd */ +#line 5348 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 32304 "gram.c" break; - case 735: -#line 5349 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "all"; } -#line 31818 "gram.c" /* yacc.c:1652 */ + case 735: /* RowSecurityDefaultForCmd: %empty */ +#line 5349 "gram.y" + { (yyval.str) = "all"; } +#line 32310 "gram.c" break; - case 736: -#line 5353 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "all"; } -#line 31824 "gram.c" /* yacc.c:1652 */ + case 736: /* row_security_cmd: ALL */ +#line 5353 "gram.y" + { (yyval.str) = "all"; } +#line 32316 "gram.c" break; - case 737: -#line 5354 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "select"; } -#line 31830 "gram.c" /* yacc.c:1652 */ + case 737: /* row_security_cmd: SELECT */ +#line 5354 "gram.y" + { (yyval.str) = "select"; } +#line 32322 "gram.c" break; - case 738: -#line 5355 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "insert"; } -#line 31836 "gram.c" /* yacc.c:1652 */ + case 738: /* row_security_cmd: INSERT */ +#line 5355 "gram.y" + { (yyval.str) = "insert"; } +#line 32328 "gram.c" break; - case 739: -#line 5356 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "update"; } -#line 31842 "gram.c" /* yacc.c:1652 */ + case 739: /* row_security_cmd: UPDATE */ +#line 5356 "gram.y" + { (yyval.str) = "update"; } +#line 32334 "gram.c" break; - case 740: -#line 5357 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "delete"; } -#line 31848 "gram.c" /* yacc.c:1652 */ + case 740: /* row_security_cmd: DELETE_P */ +#line 5357 "gram.y" + { (yyval.str) = "delete"; } +#line 32340 "gram.c" break; - case 741: -#line 5368 "gram.y" /* yacc.c:1652 */ - { + case 741: /* CreateAmStmt: CREATE ACCESS METHOD name TYPE_P am_type HANDLER handler_name */ +#line 5368 "gram.y" + { CreateAmStmt *n = makeNode(CreateAmStmt); n->amname = (yyvsp[-4].str); n->handler_name = (yyvsp[0].list); n->amtype = (yyvsp[-2].chr); (yyval.node) = (Node *) n; } -#line 31860 "gram.c" /* yacc.c:1652 */ +#line 32352 "gram.c" break; - case 742: -#line 5378 "gram.y" /* yacc.c:1652 */ - { (yyval.chr) = AMTYPE_INDEX; } -#line 31866 "gram.c" /* yacc.c:1652 */ + case 742: /* am_type: INDEX */ +#line 5378 "gram.y" + { (yyval.chr) = AMTYPE_INDEX; } +#line 32358 "gram.c" break; - case 743: -#line 5379 "gram.y" /* yacc.c:1652 */ - { (yyval.chr) = AMTYPE_TABLE; } -#line 31872 "gram.c" /* yacc.c:1652 */ + case 743: /* am_type: TABLE */ +#line 5379 "gram.y" + { (yyval.chr) = AMTYPE_TABLE; } +#line 32364 "gram.c" break; - case 744: -#line 5393 "gram.y" /* yacc.c:1652 */ - { + case 744: /* CreateTrigStmt: CREATE TRIGGER name TriggerActionTime TriggerEvents ON qualified_name TriggerReferencing TriggerForSpec TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */ +#line 5393 "gram.y" + { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[-13].str); n->relation = (yyvsp[-9].range); @@ -31891,12 +32383,12 @@ n->constrrel = NULL; (yyval.node) = (Node *)n; } -#line 31895 "gram.c" /* yacc.c:1652 */ +#line 32387 "gram.c" break; - case 745: -#line 5415 "gram.y" /* yacc.c:1652 */ - { + case 745: /* CreateTrigStmt: CREATE CONSTRAINT TRIGGER name AFTER TriggerEvents ON qualified_name OptConstrFromTable ConstraintAttributeSpec FOR EACH ROW TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */ +#line 5415 "gram.y" + { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[-16].str); n->relation = (yyvsp[-12].range); @@ -31915,36 +32407,36 @@ n->constrrel = (yyvsp[-11].range); (yyval.node) = (Node *)n; } -#line 31919 "gram.c" /* yacc.c:1652 */ +#line 32411 "gram.c" break; - case 746: -#line 5437 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = TRIGGER_TYPE_BEFORE; } -#line 31925 "gram.c" /* yacc.c:1652 */ + case 746: /* TriggerActionTime: BEFORE */ +#line 5437 "gram.y" + { (yyval.ival) = TRIGGER_TYPE_BEFORE; } +#line 32417 "gram.c" break; - case 747: -#line 5438 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = TRIGGER_TYPE_AFTER; } -#line 31931 "gram.c" /* yacc.c:1652 */ + case 747: /* TriggerActionTime: AFTER */ +#line 5438 "gram.y" + { (yyval.ival) = TRIGGER_TYPE_AFTER; } +#line 32423 "gram.c" break; - case 748: -#line 5439 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = TRIGGER_TYPE_INSTEAD; } -#line 31937 "gram.c" /* yacc.c:1652 */ + case 748: /* TriggerActionTime: INSTEAD OF */ +#line 5439 "gram.y" + { (yyval.ival) = TRIGGER_TYPE_INSTEAD; } +#line 32429 "gram.c" break; - case 749: -#line 5444 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 31943 "gram.c" /* yacc.c:1652 */ + case 749: /* TriggerEvents: TriggerOneEvent */ +#line 5444 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 32435 "gram.c" break; - case 750: -#line 5446 "gram.y" /* yacc.c:1652 */ - { + case 750: /* TriggerEvents: TriggerEvents OR TriggerOneEvent */ +#line 5446 "gram.y" + { int events1 = intVal(linitial((yyvsp[-2].list))); int events2 = intVal(linitial((yyvsp[0].list))); List *columns1 = (List *) lsecond((yyvsp[-2].list)); @@ -31962,226 +32454,226 @@ (yyval.list) = list_make2(makeInteger(events1 | events2), list_concat(columns1, columns2)); } -#line 31966 "gram.c" /* yacc.c:1652 */ +#line 32458 "gram.c" break; - case 751: -#line 5468 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); } -#line 31972 "gram.c" /* yacc.c:1652 */ + case 751: /* TriggerOneEvent: INSERT */ +#line 5468 "gram.y" + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); } +#line 32464 "gram.c" break; - case 752: -#line 5470 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); } -#line 31978 "gram.c" /* yacc.c:1652 */ + case 752: /* TriggerOneEvent: DELETE_P */ +#line 5470 "gram.y" + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); } +#line 32470 "gram.c" break; - case 753: -#line 5472 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); } -#line 31984 "gram.c" /* yacc.c:1652 */ + case 753: /* TriggerOneEvent: UPDATE */ +#line 5472 "gram.y" + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); } +#line 32476 "gram.c" break; - case 754: -#line 5474 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[0].list)); } -#line 31990 "gram.c" /* yacc.c:1652 */ + case 754: /* TriggerOneEvent: UPDATE OF columnList */ +#line 5474 "gram.y" + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[0].list)); } +#line 32482 "gram.c" break; - case 755: -#line 5476 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); } -#line 31996 "gram.c" /* yacc.c:1652 */ + case 755: /* TriggerOneEvent: TRUNCATE */ +#line 5476 "gram.y" + { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); } +#line 32488 "gram.c" break; - case 756: -#line 5480 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 32002 "gram.c" /* yacc.c:1652 */ + case 756: /* TriggerReferencing: REFERENCING TriggerTransitions */ +#line 5480 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 32494 "gram.c" break; - case 757: -#line 5481 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 32008 "gram.c" /* yacc.c:1652 */ + case 757: /* TriggerReferencing: %empty */ +#line 5481 "gram.y" + { (yyval.list) = NIL; } +#line 32500 "gram.c" break; - case 758: -#line 5485 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 32014 "gram.c" /* yacc.c:1652 */ + case 758: /* TriggerTransitions: TriggerTransition */ +#line 5485 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 32506 "gram.c" break; - case 759: -#line 5486 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 32020 "gram.c" /* yacc.c:1652 */ + case 759: /* TriggerTransitions: TriggerTransitions TriggerTransition */ +#line 5486 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 32512 "gram.c" break; - case 760: -#line 5491 "gram.y" /* yacc.c:1652 */ - { + case 760: /* TriggerTransition: TransitionOldOrNew TransitionRowOrTable opt_as TransitionRelName */ +#line 5491 "gram.y" + { TriggerTransition *n = makeNode(TriggerTransition); n->name = (yyvsp[0].str); n->isNew = (yyvsp[-3].boolean); n->isTable = (yyvsp[-2].boolean); (yyval.node) = (Node *)n; } -#line 32032 "gram.c" /* yacc.c:1652 */ +#line 32524 "gram.c" break; - case 761: -#line 5501 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 32038 "gram.c" /* yacc.c:1652 */ + case 761: /* TransitionOldOrNew: NEW */ +#line 5501 "gram.y" + { (yyval.boolean) = true; } +#line 32530 "gram.c" break; - case 762: -#line 5502 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 32044 "gram.c" /* yacc.c:1652 */ + case 762: /* TransitionOldOrNew: OLD */ +#line 5502 "gram.y" + { (yyval.boolean) = false; } +#line 32536 "gram.c" break; - case 763: -#line 5506 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 32050 "gram.c" /* yacc.c:1652 */ + case 763: /* TransitionRowOrTable: TABLE */ +#line 5506 "gram.y" + { (yyval.boolean) = true; } +#line 32542 "gram.c" break; - case 764: -#line 5515 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 32056 "gram.c" /* yacc.c:1652 */ + case 764: /* TransitionRowOrTable: ROW */ +#line 5515 "gram.y" + { (yyval.boolean) = false; } +#line 32548 "gram.c" break; - case 765: -#line 5519 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 32062 "gram.c" /* yacc.c:1652 */ + case 765: /* TransitionRelName: ColId */ +#line 5519 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 32554 "gram.c" break; - case 766: -#line 5524 "gram.y" /* yacc.c:1652 */ - { + case 766: /* TriggerForSpec: FOR TriggerForOptEach TriggerForType */ +#line 5524 "gram.y" + { (yyval.boolean) = (yyvsp[0].boolean); } -#line 32070 "gram.c" /* yacc.c:1652 */ +#line 32562 "gram.c" break; - case 767: -#line 5528 "gram.y" /* yacc.c:1652 */ - { + case 767: /* TriggerForSpec: %empty */ +#line 5528 "gram.y" + { /* * If ROW/STATEMENT not specified, default to * STATEMENT, per SQL */ (yyval.boolean) = false; } -#line 32082 "gram.c" /* yacc.c:1652 */ +#line 32574 "gram.c" break; - case 768: -#line 5538 "gram.y" /* yacc.c:1652 */ - {} -#line 32088 "gram.c" /* yacc.c:1652 */ + case 768: /* TriggerForOptEach: EACH */ +#line 5538 "gram.y" + {} +#line 32580 "gram.c" break; - case 769: -#line 5539 "gram.y" /* yacc.c:1652 */ - {} -#line 32094 "gram.c" /* yacc.c:1652 */ + case 769: /* TriggerForOptEach: %empty */ +#line 5539 "gram.y" + {} +#line 32586 "gram.c" break; - case 770: -#line 5543 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 32100 "gram.c" /* yacc.c:1652 */ + case 770: /* TriggerForType: ROW */ +#line 5543 "gram.y" + { (yyval.boolean) = true; } +#line 32592 "gram.c" break; - case 771: -#line 5544 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 32106 "gram.c" /* yacc.c:1652 */ + case 771: /* TriggerForType: STATEMENT */ +#line 5544 "gram.y" + { (yyval.boolean) = false; } +#line 32598 "gram.c" break; - case 772: -#line 5548 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[-1].node); } -#line 32112 "gram.c" /* yacc.c:1652 */ + case 772: /* TriggerWhen: WHEN '(' a_expr ')' */ +#line 5548 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 32604 "gram.c" break; - case 773: -#line 5549 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 32118 "gram.c" /* yacc.c:1652 */ + case 773: /* TriggerWhen: %empty */ +#line 5549 "gram.y" + { (yyval.node) = NULL; } +#line 32610 "gram.c" break; - case 776: -#line 5558 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].value)); } -#line 32124 "gram.c" /* yacc.c:1652 */ + case 776: /* TriggerFuncArgs: TriggerFuncArg */ +#line 5558 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].value)); } +#line 32616 "gram.c" break; - case 777: -#line 5559 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } -#line 32130 "gram.c" /* yacc.c:1652 */ + case 777: /* TriggerFuncArgs: TriggerFuncArgs ',' TriggerFuncArg */ +#line 5559 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } +#line 32622 "gram.c" break; - case 778: -#line 5560 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 32136 "gram.c" /* yacc.c:1652 */ + case 778: /* TriggerFuncArgs: %empty */ +#line 5560 "gram.y" + { (yyval.list) = NIL; } +#line 32628 "gram.c" break; - case 779: -#line 5565 "gram.y" /* yacc.c:1652 */ - { + case 779: /* TriggerFuncArg: Iconst */ +#line 5565 "gram.y" + { (yyval.value) = makeString(psprintf("%d", (yyvsp[0].ival))); } -#line 32144 "gram.c" /* yacc.c:1652 */ +#line 32636 "gram.c" break; - case 780: -#line 5568 "gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeString((yyvsp[0].str)); } -#line 32150 "gram.c" /* yacc.c:1652 */ + case 780: /* TriggerFuncArg: FCONST */ +#line 5568 "gram.y" + { (yyval.value) = makeString((yyvsp[0].str)); } +#line 32642 "gram.c" break; - case 781: -#line 5569 "gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeString((yyvsp[0].str)); } -#line 32156 "gram.c" /* yacc.c:1652 */ + case 781: /* TriggerFuncArg: Sconst */ +#line 5569 "gram.y" + { (yyval.value) = makeString((yyvsp[0].str)); } +#line 32648 "gram.c" break; - case 782: -#line 5570 "gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeString((yyvsp[0].str)); } -#line 32162 "gram.c" /* yacc.c:1652 */ + case 782: /* TriggerFuncArg: ColLabel */ +#line 5570 "gram.y" + { (yyval.value) = makeString((yyvsp[0].str)); } +#line 32654 "gram.c" break; - case 783: -#line 5574 "gram.y" /* yacc.c:1652 */ - { (yyval.range) = (yyvsp[0].range); } -#line 32168 "gram.c" /* yacc.c:1652 */ + case 783: /* OptConstrFromTable: FROM qualified_name */ +#line 5574 "gram.y" + { (yyval.range) = (yyvsp[0].range); } +#line 32660 "gram.c" break; - case 784: -#line 5575 "gram.y" /* yacc.c:1652 */ - { (yyval.range) = NULL; } -#line 32174 "gram.c" /* yacc.c:1652 */ + case 784: /* OptConstrFromTable: %empty */ +#line 5575 "gram.y" + { (yyval.range) = NULL; } +#line 32666 "gram.c" break; - case 785: -#line 5580 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 32180 "gram.c" /* yacc.c:1652 */ + case 785: /* ConstraintAttributeSpec: %empty */ +#line 5580 "gram.y" + { (yyval.ival) = 0; } +#line 32672 "gram.c" break; - case 786: -#line 5582 "gram.y" /* yacc.c:1652 */ - { + case 786: /* ConstraintAttributeSpec: ConstraintAttributeSpec ConstraintAttributeElem */ +#line 5582 "gram.y" + { /* * We must complain about conflicting options. * We could, but choose not to, complain about redundant @@ -32204,48 +32696,48 @@ parser_errposition((yylsp[0])))); (yyval.ival) = newspec; } -#line 32208 "gram.c" /* yacc.c:1652 */ +#line 32700 "gram.c" break; - case 787: -#line 5608 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CAS_NOT_DEFERRABLE; } -#line 32214 "gram.c" /* yacc.c:1652 */ + case 787: /* ConstraintAttributeElem: NOT DEFERRABLE */ +#line 5608 "gram.y" + { (yyval.ival) = CAS_NOT_DEFERRABLE; } +#line 32706 "gram.c" break; - case 788: -#line 5609 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CAS_DEFERRABLE; } -#line 32220 "gram.c" /* yacc.c:1652 */ + case 788: /* ConstraintAttributeElem: DEFERRABLE */ +#line 5609 "gram.y" + { (yyval.ival) = CAS_DEFERRABLE; } +#line 32712 "gram.c" break; - case 789: -#line 5610 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; } -#line 32226 "gram.c" /* yacc.c:1652 */ + case 789: /* ConstraintAttributeElem: INITIALLY IMMEDIATE */ +#line 5610 "gram.y" + { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; } +#line 32718 "gram.c" break; - case 790: -#line 5611 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CAS_INITIALLY_DEFERRED; } -#line 32232 "gram.c" /* yacc.c:1652 */ + case 790: /* ConstraintAttributeElem: INITIALLY DEFERRED */ +#line 5611 "gram.y" + { (yyval.ival) = CAS_INITIALLY_DEFERRED; } +#line 32724 "gram.c" break; - case 791: -#line 5612 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CAS_NOT_VALID; } -#line 32238 "gram.c" /* yacc.c:1652 */ + case 791: /* ConstraintAttributeElem: NOT VALID */ +#line 5612 "gram.y" + { (yyval.ival) = CAS_NOT_VALID; } +#line 32730 "gram.c" break; - case 792: -#line 5613 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CAS_NO_INHERIT; } -#line 32244 "gram.c" /* yacc.c:1652 */ + case 792: /* ConstraintAttributeElem: NO INHERIT */ +#line 5613 "gram.y" + { (yyval.ival) = CAS_NO_INHERIT; } +#line 32736 "gram.c" break; - case 793: -#line 5628 "gram.y" /* yacc.c:1652 */ - { + case 793: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */ +#line 5628 "gram.y" + { CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); n->trigname = (yyvsp[-7].str); n->eventname = (yyvsp[-5].str); @@ -32253,12 +32745,12 @@ n->funcname = (yyvsp[-2].list); (yyval.node) = (Node *)n; } -#line 32257 "gram.c" /* yacc.c:1652 */ +#line 32749 "gram.c" break; - case 794: -#line 5639 "gram.y" /* yacc.c:1652 */ - { + case 794: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel WHEN event_trigger_when_list EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */ +#line 5639 "gram.y" + { CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); n->trigname = (yyvsp[-9].str); n->eventname = (yyvsp[-7].str); @@ -32266,89 +32758,89 @@ n->funcname = (yyvsp[-2].list); (yyval.node) = (Node *)n; } -#line 32270 "gram.c" /* yacc.c:1652 */ +#line 32762 "gram.c" break; - case 795: -#line 5651 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 32276 "gram.c" /* yacc.c:1652 */ + case 795: /* event_trigger_when_list: event_trigger_when_item */ +#line 5651 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 32768 "gram.c" break; - case 796: -#line 5653 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 32282 "gram.c" /* yacc.c:1652 */ + case 796: /* event_trigger_when_list: event_trigger_when_list AND event_trigger_when_item */ +#line 5653 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 32774 "gram.c" break; - case 797: -#line 5658 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem((yyvsp[-4].str), (Node *) (yyvsp[-1].list), (yylsp[-4])); } -#line 32288 "gram.c" /* yacc.c:1652 */ + case 797: /* event_trigger_when_item: ColId IN_P '(' event_trigger_value_list ')' */ +#line 5658 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-4].str), (Node *) (yyvsp[-1].list), (yylsp[-4])); } +#line 32780 "gram.c" break; - case 798: -#line 5663 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 32294 "gram.c" /* yacc.c:1652 */ + case 798: /* event_trigger_value_list: SCONST */ +#line 5663 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 32786 "gram.c" break; - case 799: -#line 5665 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } -#line 32300 "gram.c" /* yacc.c:1652 */ + case 799: /* event_trigger_value_list: event_trigger_value_list ',' SCONST */ +#line 5665 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 32792 "gram.c" break; - case 800: -#line 5670 "gram.y" /* yacc.c:1652 */ - { + case 800: /* AlterEventTrigStmt: ALTER EVENT TRIGGER name enable_trigger */ +#line 5670 "gram.y" + { AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt); n->trigname = (yyvsp[-1].str); n->tgenabled = (yyvsp[0].chr); (yyval.node) = (Node *) n; } -#line 32311 "gram.c" /* yacc.c:1652 */ +#line 32803 "gram.c" break; - case 801: -#line 5679 "gram.y" /* yacc.c:1652 */ - { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; } -#line 32317 "gram.c" /* yacc.c:1652 */ + case 801: /* enable_trigger: ENABLE_P */ +#line 5679 "gram.y" + { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; } +#line 32809 "gram.c" break; - case 802: -#line 5680 "gram.y" /* yacc.c:1652 */ - { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; } -#line 32323 "gram.c" /* yacc.c:1652 */ + case 802: /* enable_trigger: ENABLE_P REPLICA */ +#line 5680 "gram.y" + { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; } +#line 32815 "gram.c" break; - case 803: -#line 5681 "gram.y" /* yacc.c:1652 */ - { (yyval.chr) = TRIGGER_FIRES_ALWAYS; } -#line 32329 "gram.c" /* yacc.c:1652 */ + case 803: /* enable_trigger: ENABLE_P ALWAYS */ +#line 5681 "gram.y" + { (yyval.chr) = TRIGGER_FIRES_ALWAYS; } +#line 32821 "gram.c" break; - case 804: -#line 5682 "gram.y" /* yacc.c:1652 */ - { (yyval.chr) = TRIGGER_DISABLED; } -#line 32335 "gram.c" /* yacc.c:1652 */ + case 804: /* enable_trigger: DISABLE_P */ +#line 5682 "gram.y" + { (yyval.chr) = TRIGGER_DISABLED; } +#line 32827 "gram.c" break; - case 805: -#line 5694 "gram.y" /* yacc.c:1652 */ - { + case 805: /* CreateAssertionStmt: CREATE ASSERTION any_name CHECK '(' a_expr ')' ConstraintAttributeSpec */ +#line 5694 "gram.y" + { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE ASSERTION is not yet implemented"))); (yyval.node) = NULL; } -#line 32347 "gram.c" /* yacc.c:1652 */ +#line 32839 "gram.c" break; - case 806: -#line 5713 "gram.y" /* yacc.c:1652 */ - { + case 806: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name aggr_args definition */ +#line 5713 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = false; @@ -32358,12 +32850,12 @@ n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32362 "gram.c" /* yacc.c:1652 */ +#line 32854 "gram.c" break; - case 807: -#line 5724 "gram.y" /* yacc.c:1652 */ - { + case 807: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name old_aggr_definition */ +#line 5724 "gram.y" + { /* old-style (pre-8.2) syntax for CREATE AGGREGATE */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; @@ -32374,12 +32866,12 @@ n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32378 "gram.c" /* yacc.c:1652 */ +#line 32870 "gram.c" break; - case 808: -#line 5736 "gram.y" /* yacc.c:1652 */ - { + case 808: /* DefineStmt: CREATE OPERATOR any_operator definition */ +#line 5736 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_OPERATOR; n->oldstyle = false; @@ -32388,12 +32880,12 @@ n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32392 "gram.c" /* yacc.c:1652 */ +#line 32884 "gram.c" break; - case 809: -#line 5746 "gram.y" /* yacc.c:1652 */ - { + case 809: /* DefineStmt: CREATE TYPE_P any_name definition */ +#line 5746 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; n->oldstyle = false; @@ -32402,12 +32894,12 @@ n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32406 "gram.c" /* yacc.c:1652 */ +#line 32898 "gram.c" break; - case 810: -#line 5756 "gram.y" /* yacc.c:1652 */ - { + case 810: /* DefineStmt: CREATE TYPE_P any_name */ +#line 5756 "gram.y" + { /* Shell type (identified by lack of definition) */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; @@ -32417,12 +32909,12 @@ n->definition = NIL; (yyval.node) = (Node *)n; } -#line 32421 "gram.c" /* yacc.c:1652 */ +#line 32913 "gram.c" break; - case 811: -#line 5767 "gram.y" /* yacc.c:1652 */ - { + case 811: /* DefineStmt: CREATE TYPE_P any_name AS '(' OptTableFuncElementList ')' */ +#line 5767 "gram.y" + { CompositeTypeStmt *n = makeNode(CompositeTypeStmt); /* can't use qualified_name, sigh */ @@ -32430,34 +32922,34 @@ n->coldeflist = (yyvsp[-1].list); (yyval.node) = (Node *)n; } -#line 32434 "gram.c" /* yacc.c:1652 */ +#line 32926 "gram.c" break; - case 812: -#line 5776 "gram.y" /* yacc.c:1652 */ - { + case 812: /* DefineStmt: CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')' */ +#line 5776 "gram.y" + { CreateEnumStmt *n = makeNode(CreateEnumStmt); n->typeName = (yyvsp[-5].list); n->vals = (yyvsp[-1].list); (yyval.node) = (Node *)n; } -#line 32445 "gram.c" /* yacc.c:1652 */ +#line 32937 "gram.c" break; - case 813: -#line 5783 "gram.y" /* yacc.c:1652 */ - { + case 813: /* DefineStmt: CREATE TYPE_P any_name AS RANGE definition */ +#line 5783 "gram.y" + { CreateRangeStmt *n = makeNode(CreateRangeStmt); n->typeName = (yyvsp[-3].list); n->params = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32456 "gram.c" /* yacc.c:1652 */ +#line 32948 "gram.c" break; - case 814: -#line 5790 "gram.y" /* yacc.c:1652 */ - { + case 814: /* DefineStmt: CREATE TEXT_P SEARCH PARSER any_name definition */ +#line 5790 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSPARSER; n->args = NIL; @@ -32465,12 +32957,12 @@ n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32469 "gram.c" /* yacc.c:1652 */ +#line 32961 "gram.c" break; - case 815: -#line 5799 "gram.y" /* yacc.c:1652 */ - { + case 815: /* DefineStmt: CREATE TEXT_P SEARCH DICTIONARY any_name definition */ +#line 5799 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSDICTIONARY; n->args = NIL; @@ -32478,12 +32970,12 @@ n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32482 "gram.c" /* yacc.c:1652 */ +#line 32974 "gram.c" break; - case 816: -#line 5808 "gram.y" /* yacc.c:1652 */ - { + case 816: /* DefineStmt: CREATE TEXT_P SEARCH TEMPLATE any_name definition */ +#line 5808 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSTEMPLATE; n->args = NIL; @@ -32491,12 +32983,12 @@ n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32495 "gram.c" /* yacc.c:1652 */ +#line 32987 "gram.c" break; - case 817: -#line 5817 "gram.y" /* yacc.c:1652 */ - { + case 817: /* DefineStmt: CREATE TEXT_P SEARCH CONFIGURATION any_name definition */ +#line 5817 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSCONFIGURATION; n->args = NIL; @@ -32504,12 +32996,12 @@ n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32508 "gram.c" /* yacc.c:1652 */ +#line 33000 "gram.c" break; - case 818: -#line 5826 "gram.y" /* yacc.c:1652 */ - { + case 818: /* DefineStmt: CREATE COLLATION any_name definition */ +#line 5826 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; @@ -32517,12 +33009,12 @@ n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 32521 "gram.c" /* yacc.c:1652 */ +#line 33013 "gram.c" break; - case 819: -#line 5835 "gram.y" /* yacc.c:1652 */ - { + case 819: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name definition */ +#line 5835 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; @@ -32531,12 +33023,12 @@ n->if_not_exists = true; (yyval.node) = (Node *)n; } -#line 32535 "gram.c" /* yacc.c:1652 */ +#line 33027 "gram.c" break; - case 820: -#line 5845 "gram.y" /* yacc.c:1652 */ - { + case 820: /* DefineStmt: CREATE COLLATION any_name FROM any_name */ +#line 5845 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; @@ -32544,12 +33036,12 @@ n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0]))); (yyval.node) = (Node *)n; } -#line 32548 "gram.c" /* yacc.c:1652 */ +#line 33040 "gram.c" break; - case 821: -#line 5854 "gram.y" /* yacc.c:1652 */ - { + case 821: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name FROM any_name */ +#line 5854 "gram.y" + { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; @@ -32558,132 +33050,132 @@ n->if_not_exists = true; (yyval.node) = (Node *)n; } -#line 32562 "gram.c" /* yacc.c:1652 */ +#line 33054 "gram.c" break; - case 822: -#line 5865 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 32568 "gram.c" /* yacc.c:1652 */ + case 822: /* definition: '(' def_list ')' */ +#line 5865 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 33060 "gram.c" break; - case 823: -#line 5868 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 32574 "gram.c" /* yacc.c:1652 */ + case 823: /* def_list: def_elem */ +#line 5868 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 33066 "gram.c" break; - case 824: -#line 5869 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 32580 "gram.c" /* yacc.c:1652 */ + case 824: /* def_list: def_list ',' def_elem */ +#line 5869 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 33072 "gram.c" break; - case 825: -#line 5873 "gram.y" /* yacc.c:1652 */ - { + case 825: /* def_elem: ColLabel '=' def_arg */ +#line 5873 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } -#line 32588 "gram.c" /* yacc.c:1652 */ +#line 33080 "gram.c" break; - case 826: -#line 5877 "gram.y" /* yacc.c:1652 */ - { + case 826: /* def_elem: ColLabel */ +#line 5877 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); } -#line 32596 "gram.c" /* yacc.c:1652 */ +#line 33088 "gram.c" break; - case 827: -#line 5883 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)(yyvsp[0].typnam); } -#line 32602 "gram.c" /* yacc.c:1652 */ + case 827: /* def_arg: func_type */ +#line 5883 "gram.y" + { (yyval.node) = (Node *)(yyvsp[0].typnam); } +#line 33094 "gram.c" break; - case 828: -#line 5884 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } -#line 32608 "gram.c" /* yacc.c:1652 */ + case 828: /* def_arg: reserved_keyword */ +#line 5884 "gram.y" + { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } +#line 33100 "gram.c" break; - case 829: -#line 5885 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)(yyvsp[0].list); } -#line 32614 "gram.c" /* yacc.c:1652 */ + case 829: /* def_arg: qual_all_Op */ +#line 5885 "gram.y" + { (yyval.node) = (Node *)(yyvsp[0].list); } +#line 33106 "gram.c" break; - case 830: -#line 5886 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)(yyvsp[0].value); } -#line 32620 "gram.c" /* yacc.c:1652 */ + case 830: /* def_arg: NumericOnly */ +#line 5886 "gram.y" + { (yyval.node) = (Node *)(yyvsp[0].value); } +#line 33112 "gram.c" break; - case 831: -#line 5887 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } -#line 32626 "gram.c" /* yacc.c:1652 */ + case 831: /* def_arg: Sconst */ +#line 5887 "gram.y" + { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } +#line 33118 "gram.c" break; - case 832: -#line 5888 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } -#line 32632 "gram.c" /* yacc.c:1652 */ + case 832: /* def_arg: NONE */ +#line 5888 "gram.y" + { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } +#line 33124 "gram.c" break; - case 833: -#line 5891 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 32638 "gram.c" /* yacc.c:1652 */ + case 833: /* old_aggr_definition: '(' old_aggr_list ')' */ +#line 5891 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 33130 "gram.c" break; - case 834: -#line 5894 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 32644 "gram.c" /* yacc.c:1652 */ + case 834: /* old_aggr_list: old_aggr_elem */ +#line 5894 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 33136 "gram.c" break; - case 835: -#line 5895 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 32650 "gram.c" /* yacc.c:1652 */ + case 835: /* old_aggr_list: old_aggr_list ',' old_aggr_elem */ +#line 5895 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 33142 "gram.c" break; - case 836: -#line 5904 "gram.y" /* yacc.c:1652 */ - { + case 836: /* old_aggr_elem: IDENT '=' def_arg */ +#line 5904 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)(yyvsp[0].node), (yylsp[-2])); } -#line 32658 "gram.c" /* yacc.c:1652 */ +#line 33150 "gram.c" break; - case 837: -#line 5910 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 32664 "gram.c" /* yacc.c:1652 */ + case 837: /* opt_enum_val_list: enum_val_list */ +#line 5910 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 33156 "gram.c" break; - case 838: -#line 5911 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 32670 "gram.c" /* yacc.c:1652 */ + case 838: /* opt_enum_val_list: %empty */ +#line 5911 "gram.y" + { (yyval.list) = NIL; } +#line 33162 "gram.c" break; - case 839: -#line 5915 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 32676 "gram.c" /* yacc.c:1652 */ + case 839: /* enum_val_list: Sconst */ +#line 5915 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 33168 "gram.c" break; - case 840: -#line 5917 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } -#line 32682 "gram.c" /* yacc.c:1652 */ + case 840: /* enum_val_list: enum_val_list ',' Sconst */ +#line 5917 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 33174 "gram.c" break; - case 841: -#line 5928 "gram.y" /* yacc.c:1652 */ - { + case 841: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst */ +#line 5928 "gram.y" + { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-4].list); n->oldVal = NULL; @@ -32693,12 +33185,12 @@ n->skipIfNewValExists = (yyvsp[-1].boolean); (yyval.node) = (Node *) n; } -#line 32697 "gram.c" /* yacc.c:1652 */ +#line 33189 "gram.c" break; - case 842: -#line 5939 "gram.y" /* yacc.c:1652 */ - { + case 842: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst BEFORE Sconst */ +#line 5939 "gram.y" + { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-6].list); n->oldVal = NULL; @@ -32708,12 +33200,12 @@ n->skipIfNewValExists = (yyvsp[-3].boolean); (yyval.node) = (Node *) n; } -#line 32712 "gram.c" /* yacc.c:1652 */ +#line 33204 "gram.c" break; - case 843: -#line 5950 "gram.y" /* yacc.c:1652 */ - { + case 843: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst AFTER Sconst */ +#line 5950 "gram.y" + { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-6].list); n->oldVal = NULL; @@ -32723,12 +33215,12 @@ n->skipIfNewValExists = (yyvsp[-3].boolean); (yyval.node) = (Node *) n; } -#line 32727 "gram.c" /* yacc.c:1652 */ +#line 33219 "gram.c" break; - case 844: -#line 5961 "gram.y" /* yacc.c:1652 */ - { + case 844: /* AlterEnumStmt: ALTER TYPE_P any_name RENAME VALUE_P Sconst TO Sconst */ +#line 5961 "gram.y" + { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-5].list); n->oldVal = (yyvsp[-2].str); @@ -32738,24 +33230,24 @@ n->skipIfNewValExists = false; (yyval.node) = (Node *) n; } -#line 32742 "gram.c" /* yacc.c:1652 */ +#line 33234 "gram.c" break; - case 845: -#line 5973 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 32748 "gram.c" /* yacc.c:1652 */ + case 845: /* opt_if_not_exists: IF_P NOT EXISTS */ +#line 5973 "gram.y" + { (yyval.boolean) = true; } +#line 33240 "gram.c" break; - case 846: -#line 5974 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 32754 "gram.c" /* yacc.c:1652 */ + case 846: /* opt_if_not_exists: %empty */ +#line 5974 "gram.y" + { (yyval.boolean) = false; } +#line 33246 "gram.c" break; - case 847: -#line 5992 "gram.y" /* yacc.c:1652 */ - { + case 847: /* CreateOpClassStmt: CREATE OPERATOR CLASS any_name opt_default FOR TYPE_P Typename USING access_method opt_opfamily AS opclass_item_list */ +#line 5992 "gram.y" + { CreateOpClassStmt *n = makeNode(CreateOpClassStmt); n->opclassname = (yyvsp[-9].list); n->isDefault = (yyvsp[-8].boolean); @@ -32765,24 +33257,24 @@ n->items = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 32769 "gram.c" /* yacc.c:1652 */ +#line 33261 "gram.c" break; - case 848: -#line 6005 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 32775 "gram.c" /* yacc.c:1652 */ + case 848: /* opclass_item_list: opclass_item */ +#line 6005 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 33267 "gram.c" break; - case 849: -#line 6006 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 32781 "gram.c" /* yacc.c:1652 */ + case 849: /* opclass_item_list: opclass_item_list ',' opclass_item */ +#line 6006 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 33273 "gram.c" break; - case 850: -#line 6011 "gram.y" /* yacc.c:1652 */ - { + case 850: /* opclass_item: OPERATOR Iconst any_operator opclass_purpose opt_recheck */ +#line 6011 "gram.y" + { CreateOpClassItem *n = makeNode(CreateOpClassItem); ObjectWithArgs *owa = makeNode(ObjectWithArgs); owa->objname = (yyvsp[-2].list); @@ -32793,12 +33285,12 @@ n->order_family = (yyvsp[-1].list); (yyval.node) = (Node *) n; } -#line 32797 "gram.c" /* yacc.c:1652 */ +#line 33289 "gram.c" break; - case 851: -#line 6024 "gram.y" /* yacc.c:1652 */ - { + case 851: /* opclass_item: OPERATOR Iconst operator_with_argtypes opclass_purpose opt_recheck */ +#line 6024 "gram.y" + { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = (yyvsp[-2].objwithargs); @@ -32806,24 +33298,24 @@ n->order_family = (yyvsp[-1].list); (yyval.node) = (Node *) n; } -#line 32810 "gram.c" /* yacc.c:1652 */ +#line 33302 "gram.c" break; - case 852: -#line 6033 "gram.y" /* yacc.c:1652 */ - { + case 852: /* opclass_item: FUNCTION Iconst function_with_argtypes */ +#line 6033 "gram.y" + { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[0].objwithargs); n->number = (yyvsp[-1].ival); (yyval.node) = (Node *) n; } -#line 32822 "gram.c" /* yacc.c:1652 */ +#line 33314 "gram.c" break; - case 853: -#line 6041 "gram.y" /* yacc.c:1652 */ - { + case 853: /* opclass_item: FUNCTION Iconst '(' type_list ')' function_with_argtypes */ +#line 6041 "gram.y" + { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[0].objwithargs); @@ -32831,65 +33323,65 @@ n->class_args = (yyvsp[-2].list); (yyval.node) = (Node *) n; } -#line 32835 "gram.c" /* yacc.c:1652 */ +#line 33327 "gram.c" break; - case 854: -#line 6050 "gram.y" /* yacc.c:1652 */ - { + case 854: /* opclass_item: STORAGE Typename */ +#line 6050 "gram.y" + { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_STORAGETYPE; n->storedtype = (yyvsp[0].typnam); (yyval.node) = (Node *) n; } -#line 32846 "gram.c" /* yacc.c:1652 */ +#line 33338 "gram.c" break; - case 855: -#line 6058 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 32852 "gram.c" /* yacc.c:1652 */ + case 855: /* opt_default: DEFAULT */ +#line 6058 "gram.y" + { (yyval.boolean) = true; } +#line 33344 "gram.c" break; - case 856: -#line 6059 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 32858 "gram.c" /* yacc.c:1652 */ + case 856: /* opt_default: %empty */ +#line 6059 "gram.y" + { (yyval.boolean) = false; } +#line 33350 "gram.c" break; - case 857: -#line 6062 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 32864 "gram.c" /* yacc.c:1652 */ + case 857: /* opt_opfamily: FAMILY any_name */ +#line 6062 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 33356 "gram.c" break; - case 858: -#line 6063 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 32870 "gram.c" /* yacc.c:1652 */ + case 858: /* opt_opfamily: %empty */ +#line 6063 "gram.y" + { (yyval.list) = NIL; } +#line 33362 "gram.c" break; - case 859: -#line 6066 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 32876 "gram.c" /* yacc.c:1652 */ + case 859: /* opclass_purpose: FOR SEARCH */ +#line 6066 "gram.y" + { (yyval.list) = NIL; } +#line 33368 "gram.c" break; - case 860: -#line 6067 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 32882 "gram.c" /* yacc.c:1652 */ + case 860: /* opclass_purpose: FOR ORDER BY any_name */ +#line 6067 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 33374 "gram.c" break; - case 861: -#line 6068 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 32888 "gram.c" /* yacc.c:1652 */ + case 861: /* opclass_purpose: %empty */ +#line 6068 "gram.y" + { (yyval.list) = NIL; } +#line 33380 "gram.c" break; - case 862: -#line 6072 "gram.y" /* yacc.c:1652 */ - { + case 862: /* opt_recheck: RECHECK */ +#line 6072 "gram.y" + { /* * RECHECK no longer does anything in opclass definitions, * but we still accept it to ease porting of old database @@ -32902,29 +33394,29 @@ parser_errposition((yylsp[0])))); (yyval.boolean) = true; } -#line 32906 "gram.c" /* yacc.c:1652 */ +#line 33398 "gram.c" break; - case 863: -#line 6085 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 32912 "gram.c" /* yacc.c:1652 */ + case 863: /* opt_recheck: %empty */ +#line 6085 "gram.y" + { (yyval.boolean) = false; } +#line 33404 "gram.c" break; - case 864: -#line 6091 "gram.y" /* yacc.c:1652 */ - { + case 864: /* CreateOpFamilyStmt: CREATE OPERATOR FAMILY any_name USING access_method */ +#line 6091 "gram.y" + { CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt); n->opfamilyname = (yyvsp[-2].list); n->amname = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 32923 "gram.c" /* yacc.c:1652 */ +#line 33415 "gram.c" break; - case 865: -#line 6101 "gram.y" /* yacc.c:1652 */ - { + case 865: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING access_method ADD_P opclass_item_list */ +#line 6101 "gram.y" + { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[-4].list); n->amname = (yyvsp[-2].str); @@ -32932,12 +33424,12 @@ n->items = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 32936 "gram.c" /* yacc.c:1652 */ +#line 33428 "gram.c" break; - case 866: -#line 6110 "gram.y" /* yacc.c:1652 */ - { + case 866: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING access_method DROP opclass_drop_list */ +#line 6110 "gram.y" + { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[-4].list); n->amname = (yyvsp[-2].str); @@ -32945,48 +33437,48 @@ n->items = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 32949 "gram.c" /* yacc.c:1652 */ +#line 33441 "gram.c" break; - case 867: -#line 6121 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 32955 "gram.c" /* yacc.c:1652 */ + case 867: /* opclass_drop_list: opclass_drop */ +#line 6121 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 33447 "gram.c" break; - case 868: -#line 6122 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 32961 "gram.c" /* yacc.c:1652 */ + case 868: /* opclass_drop_list: opclass_drop_list ',' opclass_drop */ +#line 6122 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 33453 "gram.c" break; - case 869: -#line 6127 "gram.y" /* yacc.c:1652 */ - { + case 869: /* opclass_drop: OPERATOR Iconst '(' type_list ')' */ +#line 6127 "gram.y" + { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->number = (yyvsp[-3].ival); n->class_args = (yyvsp[-1].list); (yyval.node) = (Node *) n; } -#line 32973 "gram.c" /* yacc.c:1652 */ +#line 33465 "gram.c" break; - case 870: -#line 6135 "gram.y" /* yacc.c:1652 */ - { + case 870: /* opclass_drop: FUNCTION Iconst '(' type_list ')' */ +#line 6135 "gram.y" + { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->number = (yyvsp[-3].ival); n->class_args = (yyvsp[-1].list); (yyval.node) = (Node *) n; } -#line 32985 "gram.c" /* yacc.c:1652 */ +#line 33477 "gram.c" break; - case 871: -#line 6147 "gram.y" /* yacc.c:1652 */ - { + case 871: /* DropOpClassStmt: DROP OPERATOR CLASS any_name USING access_method opt_drop_behavior */ +#line 6147 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPCLASS; @@ -32995,12 +33487,12 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 32999 "gram.c" /* yacc.c:1652 */ +#line 33491 "gram.c" break; - case 872: -#line 6157 "gram.y" /* yacc.c:1652 */ - { + case 872: /* DropOpClassStmt: DROP OPERATOR CLASS IF_P EXISTS any_name USING access_method opt_drop_behavior */ +#line 6157 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPCLASS; @@ -33009,12 +33501,12 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 33013 "gram.c" /* yacc.c:1652 */ +#line 33505 "gram.c" break; - case 873: -#line 6170 "gram.y" /* yacc.c:1652 */ - { + case 873: /* DropOpFamilyStmt: DROP OPERATOR FAMILY any_name USING access_method opt_drop_behavior */ +#line 6170 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPFAMILY; @@ -33023,12 +33515,12 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 33027 "gram.c" /* yacc.c:1652 */ +#line 33519 "gram.c" break; - case 874: -#line 6180 "gram.y" /* yacc.c:1652 */ - { + case 874: /* DropOpFamilyStmt: DROP OPERATOR FAMILY IF_P EXISTS any_name USING access_method opt_drop_behavior */ +#line 6180 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPFAMILY; @@ -33037,34 +33529,34 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 33041 "gram.c" /* yacc.c:1652 */ +#line 33533 "gram.c" break; - case 875: -#line 6202 "gram.y" /* yacc.c:1652 */ - { + case 875: /* DropOwnedStmt: DROP OWNED BY role_list opt_drop_behavior */ +#line 6202 "gram.y" + { DropOwnedStmt *n = makeNode(DropOwnedStmt); n->roles = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } -#line 33052 "gram.c" /* yacc.c:1652 */ +#line 33544 "gram.c" break; - case 876: -#line 6212 "gram.y" /* yacc.c:1652 */ - { + case 876: /* ReassignOwnedStmt: REASSIGN OWNED BY role_list TO RoleSpec */ +#line 6212 "gram.y" + { ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt); n->roles = (yyvsp[-2].list); n->newrole = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 33063 "gram.c" /* yacc.c:1652 */ +#line 33555 "gram.c" break; - case 877: -#line 6230 "gram.y" /* yacc.c:1652 */ - { + case 877: /* DropStmt: DROP drop_type_any_name IF_P EXISTS any_name_list opt_drop_behavior */ +#line 6230 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-4].objtype); n->missing_ok = true; @@ -33073,12 +33565,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 33077 "gram.c" /* yacc.c:1652 */ +#line 33569 "gram.c" break; - case 878: -#line 6240 "gram.y" /* yacc.c:1652 */ - { + case 878: /* DropStmt: DROP drop_type_any_name any_name_list opt_drop_behavior */ +#line 6240 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-2].objtype); n->missing_ok = false; @@ -33087,12 +33579,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 33091 "gram.c" /* yacc.c:1652 */ +#line 33583 "gram.c" break; - case 879: -#line 6250 "gram.y" /* yacc.c:1652 */ - { + case 879: /* DropStmt: DROP drop_type_name IF_P EXISTS name_list opt_drop_behavior */ +#line 6250 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-4].objtype); n->missing_ok = true; @@ -33101,12 +33593,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 33105 "gram.c" /* yacc.c:1652 */ +#line 33597 "gram.c" break; - case 880: -#line 6260 "gram.y" /* yacc.c:1652 */ - { + case 880: /* DropStmt: DROP drop_type_name name_list opt_drop_behavior */ +#line 6260 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-2].objtype); n->missing_ok = false; @@ -33115,12 +33607,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 33119 "gram.c" /* yacc.c:1652 */ +#line 33611 "gram.c" break; - case 881: -#line 6270 "gram.y" /* yacc.c:1652 */ - { + case 881: /* DropStmt: DROP drop_type_name_on_any_name name ON any_name opt_drop_behavior */ +#line 6270 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-4].objtype); n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); @@ -33129,12 +33621,12 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 33133 "gram.c" /* yacc.c:1652 */ +#line 33625 "gram.c" break; - case 882: -#line 6280 "gram.y" /* yacc.c:1652 */ - { + case 882: /* DropStmt: DROP drop_type_name_on_any_name IF_P EXISTS name ON any_name opt_drop_behavior */ +#line 6280 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-6].objtype); n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); @@ -33143,12 +33635,12 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 33147 "gram.c" /* yacc.c:1652 */ +#line 33639 "gram.c" break; - case 883: -#line 6290 "gram.y" /* yacc.c:1652 */ - { + case 883: /* DropStmt: DROP TYPE_P type_name_list opt_drop_behavior */ +#line 6290 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TYPE; n->missing_ok = false; @@ -33157,12 +33649,12 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 33161 "gram.c" /* yacc.c:1652 */ +#line 33653 "gram.c" break; - case 884: -#line 6300 "gram.y" /* yacc.c:1652 */ - { + case 884: /* DropStmt: DROP TYPE_P IF_P EXISTS type_name_list opt_drop_behavior */ +#line 6300 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TYPE; n->missing_ok = true; @@ -33171,12 +33663,12 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 33175 "gram.c" /* yacc.c:1652 */ +#line 33667 "gram.c" break; - case 885: -#line 6310 "gram.y" /* yacc.c:1652 */ - { + case 885: /* DropStmt: DROP DOMAIN_P type_name_list opt_drop_behavior */ +#line 6310 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_DOMAIN; n->missing_ok = false; @@ -33185,12 +33677,12 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 33189 "gram.c" /* yacc.c:1652 */ +#line 33681 "gram.c" break; - case 886: -#line 6320 "gram.y" /* yacc.c:1652 */ - { + case 886: /* DropStmt: DROP DOMAIN_P IF_P EXISTS type_name_list opt_drop_behavior */ +#line 6320 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_DOMAIN; n->missing_ok = true; @@ -33199,12 +33691,12 @@ n->concurrent = false; (yyval.node) = (Node *) n; } -#line 33203 "gram.c" /* yacc.c:1652 */ +#line 33695 "gram.c" break; - case 887: -#line 6330 "gram.y" /* yacc.c:1652 */ - { + case 887: /* DropStmt: DROP INDEX CONCURRENTLY any_name_list opt_drop_behavior */ +#line 6330 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = false; @@ -33213,12 +33705,12 @@ n->concurrent = true; (yyval.node) = (Node *)n; } -#line 33217 "gram.c" /* yacc.c:1652 */ +#line 33709 "gram.c" break; - case 888: -#line 6340 "gram.y" /* yacc.c:1652 */ - { + case 888: /* DropStmt: DROP INDEX CONCURRENTLY IF_P EXISTS any_name_list opt_drop_behavior */ +#line 6340 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = true; @@ -33227,324 +33719,324 @@ n->concurrent = true; (yyval.node) = (Node *)n; } -#line 33231 "gram.c" /* yacc.c:1652 */ +#line 33723 "gram.c" break; - case 889: -#line 6353 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TABLE; } -#line 33237 "gram.c" /* yacc.c:1652 */ + case 889: /* drop_type_any_name: TABLE */ +#line 6353 "gram.y" + { (yyval.objtype) = OBJECT_TABLE; } +#line 33729 "gram.c" break; - case 890: -#line 6354 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_SEQUENCE; } -#line 33243 "gram.c" /* yacc.c:1652 */ + case 890: /* drop_type_any_name: SEQUENCE */ +#line 6354 "gram.y" + { (yyval.objtype) = OBJECT_SEQUENCE; } +#line 33735 "gram.c" break; - case 891: -#line 6355 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_VIEW; } -#line 33249 "gram.c" /* yacc.c:1652 */ + case 891: /* drop_type_any_name: VIEW */ +#line 6355 "gram.y" + { (yyval.objtype) = OBJECT_VIEW; } +#line 33741 "gram.c" break; - case 892: -#line 6356 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_MATVIEW; } -#line 33255 "gram.c" /* yacc.c:1652 */ + case 892: /* drop_type_any_name: MATERIALIZED VIEW */ +#line 6356 "gram.y" + { (yyval.objtype) = OBJECT_MATVIEW; } +#line 33747 "gram.c" break; - case 893: -#line 6357 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_INDEX; } -#line 33261 "gram.c" /* yacc.c:1652 */ + case 893: /* drop_type_any_name: INDEX */ +#line 6357 "gram.y" + { (yyval.objtype) = OBJECT_INDEX; } +#line 33753 "gram.c" break; - case 894: -#line 6358 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } -#line 33267 "gram.c" /* yacc.c:1652 */ + case 894: /* drop_type_any_name: FOREIGN TABLE */ +#line 6358 "gram.y" + { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } +#line 33759 "gram.c" break; - case 895: -#line 6359 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_COLLATION; } -#line 33273 "gram.c" /* yacc.c:1652 */ + case 895: /* drop_type_any_name: COLLATION */ +#line 6359 "gram.y" + { (yyval.objtype) = OBJECT_COLLATION; } +#line 33765 "gram.c" break; - case 896: -#line 6360 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_CONVERSION; } -#line 33279 "gram.c" /* yacc.c:1652 */ + case 896: /* drop_type_any_name: CONVERSION_P */ +#line 6360 "gram.y" + { (yyval.objtype) = OBJECT_CONVERSION; } +#line 33771 "gram.c" break; - case 897: -#line 6361 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_STATISTIC_EXT; } -#line 33285 "gram.c" /* yacc.c:1652 */ + case 897: /* drop_type_any_name: STATISTICS */ +#line 6361 "gram.y" + { (yyval.objtype) = OBJECT_STATISTIC_EXT; } +#line 33777 "gram.c" break; - case 898: -#line 6362 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TSPARSER; } -#line 33291 "gram.c" /* yacc.c:1652 */ + case 898: /* drop_type_any_name: TEXT_P SEARCH PARSER */ +#line 6362 "gram.y" + { (yyval.objtype) = OBJECT_TSPARSER; } +#line 33783 "gram.c" break; - case 899: -#line 6363 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TSDICTIONARY; } -#line 33297 "gram.c" /* yacc.c:1652 */ + case 899: /* drop_type_any_name: TEXT_P SEARCH DICTIONARY */ +#line 6363 "gram.y" + { (yyval.objtype) = OBJECT_TSDICTIONARY; } +#line 33789 "gram.c" break; - case 900: -#line 6364 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TSTEMPLATE; } -#line 33303 "gram.c" /* yacc.c:1652 */ + case 900: /* drop_type_any_name: TEXT_P SEARCH TEMPLATE */ +#line 6364 "gram.y" + { (yyval.objtype) = OBJECT_TSTEMPLATE; } +#line 33795 "gram.c" break; - case 901: -#line 6365 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TSCONFIGURATION; } -#line 33309 "gram.c" /* yacc.c:1652 */ + case 901: /* drop_type_any_name: TEXT_P SEARCH CONFIGURATION */ +#line 6365 "gram.y" + { (yyval.objtype) = OBJECT_TSCONFIGURATION; } +#line 33801 "gram.c" break; - case 902: -#line 6370 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_ACCESS_METHOD; } -#line 33315 "gram.c" /* yacc.c:1652 */ + case 902: /* drop_type_name: ACCESS METHOD */ +#line 6370 "gram.y" + { (yyval.objtype) = OBJECT_ACCESS_METHOD; } +#line 33807 "gram.c" break; - case 903: -#line 6371 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } -#line 33321 "gram.c" /* yacc.c:1652 */ + case 903: /* drop_type_name: EVENT TRIGGER */ +#line 6371 "gram.y" + { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } +#line 33813 "gram.c" break; - case 904: -#line 6372 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_EXTENSION; } -#line 33327 "gram.c" /* yacc.c:1652 */ + case 904: /* drop_type_name: EXTENSION */ +#line 6372 "gram.y" + { (yyval.objtype) = OBJECT_EXTENSION; } +#line 33819 "gram.c" break; - case 905: -#line 6373 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_FDW; } -#line 33333 "gram.c" /* yacc.c:1652 */ + case 905: /* drop_type_name: FOREIGN DATA_P WRAPPER */ +#line 6373 "gram.y" + { (yyval.objtype) = OBJECT_FDW; } +#line 33825 "gram.c" break; - case 906: -#line 6374 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_PUBLICATION; } -#line 33339 "gram.c" /* yacc.c:1652 */ + case 906: /* drop_type_name: PUBLICATION */ +#line 6374 "gram.y" + { (yyval.objtype) = OBJECT_PUBLICATION; } +#line 33831 "gram.c" break; - case 907: -#line 6375 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_SCHEMA; } -#line 33345 "gram.c" /* yacc.c:1652 */ + case 907: /* drop_type_name: SCHEMA */ +#line 6375 "gram.y" + { (yyval.objtype) = OBJECT_SCHEMA; } +#line 33837 "gram.c" break; - case 908: -#line 6376 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } -#line 33351 "gram.c" /* yacc.c:1652 */ + case 908: /* drop_type_name: SERVER */ +#line 6376 "gram.y" + { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } +#line 33843 "gram.c" break; - case 909: -#line 6381 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_POLICY; } -#line 33357 "gram.c" /* yacc.c:1652 */ + case 909: /* drop_type_name_on_any_name: POLICY */ +#line 6381 "gram.y" + { (yyval.objtype) = OBJECT_POLICY; } +#line 33849 "gram.c" break; - case 910: -#line 6382 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_RULE; } -#line 33363 "gram.c" /* yacc.c:1652 */ + case 910: /* drop_type_name_on_any_name: RULE */ +#line 6382 "gram.y" + { (yyval.objtype) = OBJECT_RULE; } +#line 33855 "gram.c" break; - case 911: -#line 6383 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TRIGGER; } -#line 33369 "gram.c" /* yacc.c:1652 */ + case 911: /* drop_type_name_on_any_name: TRIGGER */ +#line 6383 "gram.y" + { (yyval.objtype) = OBJECT_TRIGGER; } +#line 33861 "gram.c" break; - case 912: -#line 6387 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].list)); } -#line 33375 "gram.c" /* yacc.c:1652 */ + case 912: /* any_name_list: any_name */ +#line 6387 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 33867 "gram.c" break; - case 913: -#line 6388 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } -#line 33381 "gram.c" /* yacc.c:1652 */ + case 913: /* any_name_list: any_name_list ',' any_name */ +#line 6388 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } +#line 33873 "gram.c" break; - case 914: -#line 6391 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 33387 "gram.c" /* yacc.c:1652 */ + case 914: /* any_name: ColId */ +#line 6391 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 33879 "gram.c" break; - case 915: -#line 6392 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } -#line 33393 "gram.c" /* yacc.c:1652 */ + case 915: /* any_name: ColId attrs */ +#line 6392 "gram.y" + { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } +#line 33885 "gram.c" break; - case 916: -#line 6396 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 33399 "gram.c" /* yacc.c:1652 */ + case 916: /* attrs: '.' attr_name */ +#line 6396 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 33891 "gram.c" break; - case 917: -#line 6398 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } -#line 33405 "gram.c" /* yacc.c:1652 */ + case 917: /* attrs: attrs '.' attr_name */ +#line 6398 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 33897 "gram.c" break; - case 918: -#line 6402 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].typnam)); } -#line 33411 "gram.c" /* yacc.c:1652 */ + case 918: /* type_name_list: Typename */ +#line 6402 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].typnam)); } +#line 33903 "gram.c" break; - case 919: -#line 6403 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } -#line 33417 "gram.c" /* yacc.c:1652 */ + case 919: /* type_name_list: type_name_list ',' Typename */ +#line 6403 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } +#line 33909 "gram.c" break; - case 920: -#line 6415 "gram.y" /* yacc.c:1652 */ - { + case 920: /* TruncateStmt: TRUNCATE opt_table relation_expr_list opt_restart_seqs opt_drop_behavior */ +#line 6415 "gram.y" + { TruncateStmt *n = makeNode(TruncateStmt); n->relations = (yyvsp[-2].list); n->restart_seqs = (yyvsp[-1].boolean); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } -#line 33429 "gram.c" /* yacc.c:1652 */ +#line 33921 "gram.c" break; - case 921: -#line 6425 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 33435 "gram.c" /* yacc.c:1652 */ + case 921: /* opt_restart_seqs: CONTINUE_P IDENTITY_P */ +#line 6425 "gram.y" + { (yyval.boolean) = false; } +#line 33927 "gram.c" break; - case 922: -#line 6426 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 33441 "gram.c" /* yacc.c:1652 */ + case 922: /* opt_restart_seqs: RESTART IDENTITY_P */ +#line 6426 "gram.y" + { (yyval.boolean) = true; } +#line 33933 "gram.c" break; - case 923: -#line 6427 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 33447 "gram.c" /* yacc.c:1652 */ + case 923: /* opt_restart_seqs: %empty */ +#line 6427 "gram.y" + { (yyval.boolean) = false; } +#line 33939 "gram.c" break; - case 924: -#line 6462 "gram.y" /* yacc.c:1652 */ - { + case 924: /* CommentStmt: COMMENT ON comment_type_any_name any_name IS comment_text */ +#line 6462 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) (yyvsp[-2].list); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33459 "gram.c" /* yacc.c:1652 */ +#line 33951 "gram.c" break; - case 925: -#line 6470 "gram.y" /* yacc.c:1652 */ - { + case 925: /* CommentStmt: COMMENT ON comment_type_name name IS comment_text */ +#line 6470 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) makeString((yyvsp[-2].str)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33471 "gram.c" /* yacc.c:1652 */ +#line 33963 "gram.c" break; - case 926: -#line 6478 "gram.y" /* yacc.c:1652 */ - { + case 926: /* CommentStmt: COMMENT ON TYPE_P Typename IS comment_text */ +#line 6478 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[-2].typnam); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33483 "gram.c" /* yacc.c:1652 */ +#line 33975 "gram.c" break; - case 927: -#line 6486 "gram.y" /* yacc.c:1652 */ - { + case 927: /* CommentStmt: COMMENT ON DOMAIN_P Typename IS comment_text */ +#line 6486 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-2].typnam); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33495 "gram.c" /* yacc.c:1652 */ +#line 33987 "gram.c" break; - case 928: -#line 6494 "gram.y" /* yacc.c:1652 */ - { + case 928: /* CommentStmt: COMMENT ON AGGREGATE aggregate_with_argtypes IS comment_text */ +#line 6494 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33507 "gram.c" /* yacc.c:1652 */ +#line 33999 "gram.c" break; - case 929: -#line 6502 "gram.y" /* yacc.c:1652 */ - { + case 929: /* CommentStmt: COMMENT ON FUNCTION function_with_argtypes IS comment_text */ +#line 6502 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33519 "gram.c" /* yacc.c:1652 */ +#line 34011 "gram.c" break; - case 930: -#line 6510 "gram.y" /* yacc.c:1652 */ - { + case 930: /* CommentStmt: COMMENT ON OPERATOR operator_with_argtypes IS comment_text */ +#line 6510 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33531 "gram.c" /* yacc.c:1652 */ +#line 34023 "gram.c" break; - case 931: -#line 6518 "gram.y" /* yacc.c:1652 */ - { + case 931: /* CommentStmt: COMMENT ON CONSTRAINT name ON any_name IS comment_text */ +#line 6518 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TABCONSTRAINT; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33543 "gram.c" /* yacc.c:1652 */ +#line 34035 "gram.c" break; - case 932: -#line 6526 "gram.y" /* yacc.c:1652 */ - { + case 932: /* CommentStmt: COMMENT ON CONSTRAINT name ON DOMAIN_P any_name IS comment_text */ +#line 6526 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMCONSTRAINT; /* @@ -33556,300 +34048,300 @@ n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33560 "gram.c" /* yacc.c:1652 */ +#line 34052 "gram.c" break; - case 933: -#line 6539 "gram.y" /* yacc.c:1652 */ - { + case 933: /* CommentStmt: COMMENT ON POLICY name ON any_name IS comment_text */ +#line 6539 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_POLICY; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33572 "gram.c" /* yacc.c:1652 */ +#line 34064 "gram.c" break; - case 934: -#line 6547 "gram.y" /* yacc.c:1652 */ - { + case 934: /* CommentStmt: COMMENT ON PROCEDURE function_with_argtypes IS comment_text */ +#line 6547 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33584 "gram.c" /* yacc.c:1652 */ +#line 34076 "gram.c" break; - case 935: -#line 6555 "gram.y" /* yacc.c:1652 */ - { + case 935: /* CommentStmt: COMMENT ON ROUTINE function_with_argtypes IS comment_text */ +#line 6555 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33596 "gram.c" /* yacc.c:1652 */ +#line 34088 "gram.c" break; - case 936: -#line 6563 "gram.y" /* yacc.c:1652 */ - { + case 936: /* CommentStmt: COMMENT ON RULE name ON any_name IS comment_text */ +#line 6563 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_RULE; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33608 "gram.c" /* yacc.c:1652 */ +#line 34100 "gram.c" break; - case 937: -#line 6571 "gram.y" /* yacc.c:1652 */ - { + case 937: /* CommentStmt: COMMENT ON TRANSFORM FOR Typename LANGUAGE name IS comment_text */ +#line 6571 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRANSFORM; n->object = (Node *) list_make2((yyvsp[-4].typnam), makeString((yyvsp[-2].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33620 "gram.c" /* yacc.c:1652 */ +#line 34112 "gram.c" break; - case 938: -#line 6579 "gram.y" /* yacc.c:1652 */ - { + case 938: /* CommentStmt: COMMENT ON TRIGGER name ON any_name IS comment_text */ +#line 6579 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRIGGER; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33632 "gram.c" /* yacc.c:1652 */ +#line 34124 "gram.c" break; - case 939: -#line 6587 "gram.y" /* yacc.c:1652 */ - { + case 939: /* CommentStmt: COMMENT ON OPERATOR CLASS any_name USING access_method IS comment_text */ +#line 6587 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33644 "gram.c" /* yacc.c:1652 */ +#line 34136 "gram.c" break; - case 940: -#line 6595 "gram.y" /* yacc.c:1652 */ - { + case 940: /* CommentStmt: COMMENT ON OPERATOR FAMILY any_name USING access_method IS comment_text */ +#line 6595 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33656 "gram.c" /* yacc.c:1652 */ +#line 34148 "gram.c" break; - case 941: -#line 6603 "gram.y" /* yacc.c:1652 */ - { + case 941: /* CommentStmt: COMMENT ON LARGE_P OBJECT_P NumericOnly IS comment_text */ +#line 6603 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[-2].value); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33668 "gram.c" /* yacc.c:1652 */ +#line 34160 "gram.c" break; - case 942: -#line 6611 "gram.y" /* yacc.c:1652 */ - { + case 942: /* CommentStmt: COMMENT ON CAST '(' Typename AS Typename ')' IS comment_text */ +#line 6611 "gram.y" + { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_CAST; n->object = (Node *) list_make2((yyvsp[-5].typnam), (yyvsp[-3].typnam)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33680 "gram.c" /* yacc.c:1652 */ +#line 34172 "gram.c" break; - case 943: -#line 6622 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_COLUMN; } -#line 33686 "gram.c" /* yacc.c:1652 */ + case 943: /* comment_type_any_name: COLUMN */ +#line 6622 "gram.y" + { (yyval.objtype) = OBJECT_COLUMN; } +#line 34178 "gram.c" break; - case 944: -#line 6623 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_INDEX; } -#line 33692 "gram.c" /* yacc.c:1652 */ + case 944: /* comment_type_any_name: INDEX */ +#line 6623 "gram.y" + { (yyval.objtype) = OBJECT_INDEX; } +#line 34184 "gram.c" break; - case 945: -#line 6624 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_SEQUENCE; } -#line 33698 "gram.c" /* yacc.c:1652 */ + case 945: /* comment_type_any_name: SEQUENCE */ +#line 6624 "gram.y" + { (yyval.objtype) = OBJECT_SEQUENCE; } +#line 34190 "gram.c" break; - case 946: -#line 6625 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_STATISTIC_EXT; } -#line 33704 "gram.c" /* yacc.c:1652 */ + case 946: /* comment_type_any_name: STATISTICS */ +#line 6625 "gram.y" + { (yyval.objtype) = OBJECT_STATISTIC_EXT; } +#line 34196 "gram.c" break; - case 947: -#line 6626 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TABLE; } -#line 33710 "gram.c" /* yacc.c:1652 */ + case 947: /* comment_type_any_name: TABLE */ +#line 6626 "gram.y" + { (yyval.objtype) = OBJECT_TABLE; } +#line 34202 "gram.c" break; - case 948: -#line 6627 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_VIEW; } -#line 33716 "gram.c" /* yacc.c:1652 */ + case 948: /* comment_type_any_name: VIEW */ +#line 6627 "gram.y" + { (yyval.objtype) = OBJECT_VIEW; } +#line 34208 "gram.c" break; - case 949: -#line 6628 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_MATVIEW; } -#line 33722 "gram.c" /* yacc.c:1652 */ + case 949: /* comment_type_any_name: MATERIALIZED VIEW */ +#line 6628 "gram.y" + { (yyval.objtype) = OBJECT_MATVIEW; } +#line 34214 "gram.c" break; - case 950: -#line 6629 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_COLLATION; } -#line 33728 "gram.c" /* yacc.c:1652 */ + case 950: /* comment_type_any_name: COLLATION */ +#line 6629 "gram.y" + { (yyval.objtype) = OBJECT_COLLATION; } +#line 34220 "gram.c" break; - case 951: -#line 6630 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_CONVERSION; } -#line 33734 "gram.c" /* yacc.c:1652 */ + case 951: /* comment_type_any_name: CONVERSION_P */ +#line 6630 "gram.y" + { (yyval.objtype) = OBJECT_CONVERSION; } +#line 34226 "gram.c" break; - case 952: -#line 6631 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } -#line 33740 "gram.c" /* yacc.c:1652 */ + case 952: /* comment_type_any_name: FOREIGN TABLE */ +#line 6631 "gram.y" + { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } +#line 34232 "gram.c" break; - case 953: -#line 6632 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TSCONFIGURATION; } -#line 33746 "gram.c" /* yacc.c:1652 */ + case 953: /* comment_type_any_name: TEXT_P SEARCH CONFIGURATION */ +#line 6632 "gram.y" + { (yyval.objtype) = OBJECT_TSCONFIGURATION; } +#line 34238 "gram.c" break; - case 954: -#line 6633 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TSDICTIONARY; } -#line 33752 "gram.c" /* yacc.c:1652 */ + case 954: /* comment_type_any_name: TEXT_P SEARCH DICTIONARY */ +#line 6633 "gram.y" + { (yyval.objtype) = OBJECT_TSDICTIONARY; } +#line 34244 "gram.c" break; - case 955: -#line 6634 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TSPARSER; } -#line 33758 "gram.c" /* yacc.c:1652 */ + case 955: /* comment_type_any_name: TEXT_P SEARCH PARSER */ +#line 6634 "gram.y" + { (yyval.objtype) = OBJECT_TSPARSER; } +#line 34250 "gram.c" break; - case 956: -#line 6635 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TSTEMPLATE; } -#line 33764 "gram.c" /* yacc.c:1652 */ + case 956: /* comment_type_any_name: TEXT_P SEARCH TEMPLATE */ +#line 6635 "gram.y" + { (yyval.objtype) = OBJECT_TSTEMPLATE; } +#line 34256 "gram.c" break; - case 957: -#line 6640 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_ACCESS_METHOD; } -#line 33770 "gram.c" /* yacc.c:1652 */ + case 957: /* comment_type_name: ACCESS METHOD */ +#line 6640 "gram.y" + { (yyval.objtype) = OBJECT_ACCESS_METHOD; } +#line 34262 "gram.c" break; - case 958: -#line 6641 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_DATABASE; } -#line 33776 "gram.c" /* yacc.c:1652 */ + case 958: /* comment_type_name: DATABASE */ +#line 6641 "gram.y" + { (yyval.objtype) = OBJECT_DATABASE; } +#line 34268 "gram.c" break; - case 959: -#line 6642 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } -#line 33782 "gram.c" /* yacc.c:1652 */ + case 959: /* comment_type_name: EVENT TRIGGER */ +#line 6642 "gram.y" + { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } +#line 34274 "gram.c" break; - case 960: -#line 6643 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_EXTENSION; } -#line 33788 "gram.c" /* yacc.c:1652 */ + case 960: /* comment_type_name: EXTENSION */ +#line 6643 "gram.y" + { (yyval.objtype) = OBJECT_EXTENSION; } +#line 34280 "gram.c" break; - case 961: -#line 6644 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_FDW; } -#line 33794 "gram.c" /* yacc.c:1652 */ + case 961: /* comment_type_name: FOREIGN DATA_P WRAPPER */ +#line 6644 "gram.y" + { (yyval.objtype) = OBJECT_FDW; } +#line 34286 "gram.c" break; - case 962: -#line 6645 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_LANGUAGE; } -#line 33800 "gram.c" /* yacc.c:1652 */ + case 962: /* comment_type_name: opt_procedural LANGUAGE */ +#line 6645 "gram.y" + { (yyval.objtype) = OBJECT_LANGUAGE; } +#line 34292 "gram.c" break; - case 963: -#line 6646 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_PUBLICATION; } -#line 33806 "gram.c" /* yacc.c:1652 */ + case 963: /* comment_type_name: PUBLICATION */ +#line 6646 "gram.y" + { (yyval.objtype) = OBJECT_PUBLICATION; } +#line 34298 "gram.c" break; - case 964: -#line 6647 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_ROLE; } -#line 33812 "gram.c" /* yacc.c:1652 */ + case 964: /* comment_type_name: ROLE */ +#line 6647 "gram.y" + { (yyval.objtype) = OBJECT_ROLE; } +#line 34304 "gram.c" break; - case 965: -#line 6648 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_SCHEMA; } -#line 33818 "gram.c" /* yacc.c:1652 */ + case 965: /* comment_type_name: SCHEMA */ +#line 6648 "gram.y" + { (yyval.objtype) = OBJECT_SCHEMA; } +#line 34310 "gram.c" break; - case 966: -#line 6649 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } -#line 33824 "gram.c" /* yacc.c:1652 */ + case 966: /* comment_type_name: SERVER */ +#line 6649 "gram.y" + { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } +#line 34316 "gram.c" break; - case 967: -#line 6650 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_SUBSCRIPTION; } -#line 33830 "gram.c" /* yacc.c:1652 */ + case 967: /* comment_type_name: SUBSCRIPTION */ +#line 6650 "gram.y" + { (yyval.objtype) = OBJECT_SUBSCRIPTION; } +#line 34322 "gram.c" break; - case 968: -#line 6651 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TABLESPACE; } -#line 33836 "gram.c" /* yacc.c:1652 */ + case 968: /* comment_type_name: TABLESPACE */ +#line 6651 "gram.y" + { (yyval.objtype) = OBJECT_TABLESPACE; } +#line 34328 "gram.c" break; - case 969: -#line 6655 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 33842 "gram.c" /* yacc.c:1652 */ + case 969: /* comment_text: Sconst */ +#line 6655 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 34334 "gram.c" break; - case 970: -#line 6656 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 33848 "gram.c" /* yacc.c:1652 */ + case 970: /* comment_text: NULL_P */ +#line 6656 "gram.y" + { (yyval.str) = NULL; } +#line 34340 "gram.c" break; - case 971: -#line 6672 "gram.y" /* yacc.c:1652 */ - { + case 971: /* SecLabelStmt: SECURITY LABEL opt_provider ON security_label_type_any_name any_name IS security_label */ +#line 6672 "gram.y" + { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = (yyvsp[-3].objtype); @@ -33857,12 +34349,12 @@ n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33861 "gram.c" /* yacc.c:1652 */ +#line 34353 "gram.c" break; - case 972: -#line 6682 "gram.y" /* yacc.c:1652 */ - { + case 972: /* SecLabelStmt: SECURITY LABEL opt_provider ON security_label_type_name name IS security_label */ +#line 6682 "gram.y" + { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = (yyvsp[-3].objtype); @@ -33870,12 +34362,12 @@ n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33874 "gram.c" /* yacc.c:1652 */ +#line 34366 "gram.c" break; - case 973: -#line 6692 "gram.y" /* yacc.c:1652 */ - { + case 973: /* SecLabelStmt: SECURITY LABEL opt_provider ON TYPE_P Typename IS security_label */ +#line 6692 "gram.y" + { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_TYPE; @@ -33883,12 +34375,12 @@ n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33887 "gram.c" /* yacc.c:1652 */ +#line 34379 "gram.c" break; - case 974: -#line 6702 "gram.y" /* yacc.c:1652 */ - { + case 974: /* SecLabelStmt: SECURITY LABEL opt_provider ON DOMAIN_P Typename IS security_label */ +#line 6702 "gram.y" + { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_DOMAIN; @@ -33896,12 +34388,12 @@ n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33900 "gram.c" /* yacc.c:1652 */ +#line 34392 "gram.c" break; - case 975: -#line 6712 "gram.y" /* yacc.c:1652 */ - { + case 975: /* SecLabelStmt: SECURITY LABEL opt_provider ON AGGREGATE aggregate_with_argtypes IS security_label */ +#line 6712 "gram.y" + { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_AGGREGATE; @@ -33909,12 +34401,12 @@ n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33913 "gram.c" /* yacc.c:1652 */ +#line 34405 "gram.c" break; - case 976: -#line 6722 "gram.y" /* yacc.c:1652 */ - { + case 976: /* SecLabelStmt: SECURITY LABEL opt_provider ON FUNCTION function_with_argtypes IS security_label */ +#line 6722 "gram.y" + { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_FUNCTION; @@ -33922,12 +34414,12 @@ n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33926 "gram.c" /* yacc.c:1652 */ +#line 34418 "gram.c" break; - case 977: -#line 6732 "gram.y" /* yacc.c:1652 */ - { + case 977: /* SecLabelStmt: SECURITY LABEL opt_provider ON LARGE_P OBJECT_P NumericOnly IS security_label */ +#line 6732 "gram.y" + { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-6].str); n->objtype = OBJECT_LARGEOBJECT; @@ -33935,12 +34427,12 @@ n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33939 "gram.c" /* yacc.c:1652 */ +#line 34431 "gram.c" break; - case 978: -#line 6742 "gram.y" /* yacc.c:1652 */ - { + case 978: /* SecLabelStmt: SECURITY LABEL opt_provider ON PROCEDURE function_with_argtypes IS security_label */ +#line 6742 "gram.y" + { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_PROCEDURE; @@ -33948,12 +34440,12 @@ n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33952 "gram.c" /* yacc.c:1652 */ +#line 34444 "gram.c" break; - case 979: -#line 6752 "gram.y" /* yacc.c:1652 */ - { + case 979: /* SecLabelStmt: SECURITY LABEL opt_provider ON ROUTINE function_with_argtypes IS security_label */ +#line 6752 "gram.y" + { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_ROUTINE; @@ -33961,356 +34453,356 @@ n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 33965 "gram.c" /* yacc.c:1652 */ +#line 34457 "gram.c" break; - case 980: -#line 6762 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 33971 "gram.c" /* yacc.c:1652 */ + case 980: /* opt_provider: FOR NonReservedWord_or_Sconst */ +#line 6762 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 34463 "gram.c" break; - case 981: -#line 6763 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 33977 "gram.c" /* yacc.c:1652 */ + case 981: /* opt_provider: %empty */ +#line 6763 "gram.y" + { (yyval.str) = NULL; } +#line 34469 "gram.c" break; - case 982: -#line 6768 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_COLUMN; } -#line 33983 "gram.c" /* yacc.c:1652 */ + case 982: /* security_label_type_any_name: COLUMN */ +#line 6768 "gram.y" + { (yyval.objtype) = OBJECT_COLUMN; } +#line 34475 "gram.c" break; - case 983: -#line 6769 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } -#line 33989 "gram.c" /* yacc.c:1652 */ + case 983: /* security_label_type_any_name: FOREIGN TABLE */ +#line 6769 "gram.y" + { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } +#line 34481 "gram.c" break; - case 984: -#line 6770 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_SEQUENCE; } -#line 33995 "gram.c" /* yacc.c:1652 */ + case 984: /* security_label_type_any_name: SEQUENCE */ +#line 6770 "gram.y" + { (yyval.objtype) = OBJECT_SEQUENCE; } +#line 34487 "gram.c" break; - case 985: -#line 6771 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TABLE; } -#line 34001 "gram.c" /* yacc.c:1652 */ + case 985: /* security_label_type_any_name: TABLE */ +#line 6771 "gram.y" + { (yyval.objtype) = OBJECT_TABLE; } +#line 34493 "gram.c" break; - case 986: -#line 6772 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_VIEW; } -#line 34007 "gram.c" /* yacc.c:1652 */ + case 986: /* security_label_type_any_name: VIEW */ +#line 6772 "gram.y" + { (yyval.objtype) = OBJECT_VIEW; } +#line 34499 "gram.c" break; - case 987: -#line 6773 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_MATVIEW; } -#line 34013 "gram.c" /* yacc.c:1652 */ + case 987: /* security_label_type_any_name: MATERIALIZED VIEW */ +#line 6773 "gram.y" + { (yyval.objtype) = OBJECT_MATVIEW; } +#line 34505 "gram.c" break; - case 988: -#line 6778 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_DATABASE; } -#line 34019 "gram.c" /* yacc.c:1652 */ + case 988: /* security_label_type_name: DATABASE */ +#line 6778 "gram.y" + { (yyval.objtype) = OBJECT_DATABASE; } +#line 34511 "gram.c" break; - case 989: -#line 6779 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } -#line 34025 "gram.c" /* yacc.c:1652 */ + case 989: /* security_label_type_name: EVENT TRIGGER */ +#line 6779 "gram.y" + { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } +#line 34517 "gram.c" break; - case 990: -#line 6780 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_LANGUAGE; } -#line 34031 "gram.c" /* yacc.c:1652 */ + case 990: /* security_label_type_name: opt_procedural LANGUAGE */ +#line 6780 "gram.y" + { (yyval.objtype) = OBJECT_LANGUAGE; } +#line 34523 "gram.c" break; - case 991: -#line 6781 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_PUBLICATION; } -#line 34037 "gram.c" /* yacc.c:1652 */ + case 991: /* security_label_type_name: PUBLICATION */ +#line 6781 "gram.y" + { (yyval.objtype) = OBJECT_PUBLICATION; } +#line 34529 "gram.c" break; - case 992: -#line 6782 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_ROLE; } -#line 34043 "gram.c" /* yacc.c:1652 */ + case 992: /* security_label_type_name: ROLE */ +#line 6782 "gram.y" + { (yyval.objtype) = OBJECT_ROLE; } +#line 34535 "gram.c" break; - case 993: -#line 6783 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_SCHEMA; } -#line 34049 "gram.c" /* yacc.c:1652 */ + case 993: /* security_label_type_name: SCHEMA */ +#line 6783 "gram.y" + { (yyval.objtype) = OBJECT_SCHEMA; } +#line 34541 "gram.c" break; - case 994: -#line 6784 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_SUBSCRIPTION; } -#line 34055 "gram.c" /* yacc.c:1652 */ + case 994: /* security_label_type_name: SUBSCRIPTION */ +#line 6784 "gram.y" + { (yyval.objtype) = OBJECT_SUBSCRIPTION; } +#line 34547 "gram.c" break; - case 995: -#line 6785 "gram.y" /* yacc.c:1652 */ - { (yyval.objtype) = OBJECT_TABLESPACE; } -#line 34061 "gram.c" /* yacc.c:1652 */ + case 995: /* security_label_type_name: TABLESPACE */ +#line 6785 "gram.y" + { (yyval.objtype) = OBJECT_TABLESPACE; } +#line 34553 "gram.c" break; - case 996: -#line 6788 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 34067 "gram.c" /* yacc.c:1652 */ + case 996: /* security_label: Sconst */ +#line 6788 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 34559 "gram.c" break; - case 997: -#line 6789 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 34073 "gram.c" /* yacc.c:1652 */ + case 997: /* security_label: NULL_P */ +#line 6789 "gram.y" + { (yyval.str) = NULL; } +#line 34565 "gram.c" break; - case 998: -#line 6800 "gram.y" /* yacc.c:1652 */ - { + case 998: /* FetchStmt: FETCH fetch_args */ +#line 6800 "gram.y" + { FetchStmt *n = (FetchStmt *) (yyvsp[0].node); n->ismove = false; (yyval.node) = (Node *)n; } -#line 34083 "gram.c" /* yacc.c:1652 */ +#line 34575 "gram.c" break; - case 999: -#line 6806 "gram.y" /* yacc.c:1652 */ - { + case 999: /* FetchStmt: MOVE fetch_args */ +#line 6806 "gram.y" + { FetchStmt *n = (FetchStmt *) (yyvsp[0].node); n->ismove = true; (yyval.node) = (Node *)n; } -#line 34093 "gram.c" /* yacc.c:1652 */ +#line 34585 "gram.c" break; - case 1000: -#line 6814 "gram.y" /* yacc.c:1652 */ - { + case 1000: /* fetch_args: cursor_name */ +#line 6814 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } -#line 34105 "gram.c" /* yacc.c:1652 */ +#line 34597 "gram.c" break; - case 1001: -#line 6822 "gram.y" /* yacc.c:1652 */ - { + case 1001: /* fetch_args: from_in cursor_name */ +#line 6822 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } -#line 34117 "gram.c" /* yacc.c:1652 */ +#line 34609 "gram.c" break; - case 1002: -#line 6830 "gram.y" /* yacc.c:1652 */ - { + case 1002: /* fetch_args: NEXT opt_from_in cursor_name */ +#line 6830 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } -#line 34129 "gram.c" /* yacc.c:1652 */ +#line 34621 "gram.c" break; - case 1003: -#line 6838 "gram.y" /* yacc.c:1652 */ - { + case 1003: /* fetch_args: PRIOR opt_from_in cursor_name */ +#line 6838 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *)n; } -#line 34141 "gram.c" /* yacc.c:1652 */ +#line 34633 "gram.c" break; - case 1004: -#line 6846 "gram.y" /* yacc.c:1652 */ - { + case 1004: /* fetch_args: FIRST_P opt_from_in cursor_name */ +#line 6846 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_ABSOLUTE; n->howMany = 1; (yyval.node) = (Node *)n; } -#line 34153 "gram.c" /* yacc.c:1652 */ +#line 34645 "gram.c" break; - case 1005: -#line 6854 "gram.y" /* yacc.c:1652 */ - { + case 1005: /* fetch_args: LAST_P opt_from_in cursor_name */ +#line 6854 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_ABSOLUTE; n->howMany = -1; (yyval.node) = (Node *)n; } -#line 34165 "gram.c" /* yacc.c:1652 */ +#line 34657 "gram.c" break; - case 1006: -#line 6862 "gram.y" /* yacc.c:1652 */ - { + case 1006: /* fetch_args: ABSOLUTE_P SignedIconst opt_from_in cursor_name */ +#line 6862 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_ABSOLUTE; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } -#line 34177 "gram.c" /* yacc.c:1652 */ +#line 34669 "gram.c" break; - case 1007: -#line 6870 "gram.y" /* yacc.c:1652 */ - { + case 1007: /* fetch_args: RELATIVE_P SignedIconst opt_from_in cursor_name */ +#line 6870 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_RELATIVE; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } -#line 34189 "gram.c" /* yacc.c:1652 */ +#line 34681 "gram.c" break; - case 1008: -#line 6878 "gram.y" /* yacc.c:1652 */ - { + case 1008: /* fetch_args: SignedIconst opt_from_in cursor_name */ +#line 6878 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } -#line 34201 "gram.c" /* yacc.c:1652 */ +#line 34693 "gram.c" break; - case 1009: -#line 6886 "gram.y" /* yacc.c:1652 */ - { + case 1009: /* fetch_args: ALL opt_from_in cursor_name */ +#line 6886 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } -#line 34213 "gram.c" /* yacc.c:1652 */ +#line 34705 "gram.c" break; - case 1010: -#line 6894 "gram.y" /* yacc.c:1652 */ - { + case 1010: /* fetch_args: FORWARD opt_from_in cursor_name */ +#line 6894 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } -#line 34225 "gram.c" /* yacc.c:1652 */ +#line 34717 "gram.c" break; - case 1011: -#line 6902 "gram.y" /* yacc.c:1652 */ - { + case 1011: /* fetch_args: FORWARD SignedIconst opt_from_in cursor_name */ +#line 6902 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } -#line 34237 "gram.c" /* yacc.c:1652 */ +#line 34729 "gram.c" break; - case 1012: -#line 6910 "gram.y" /* yacc.c:1652 */ - { + case 1012: /* fetch_args: FORWARD ALL opt_from_in cursor_name */ +#line 6910 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } -#line 34249 "gram.c" /* yacc.c:1652 */ +#line 34741 "gram.c" break; - case 1013: -#line 6918 "gram.y" /* yacc.c:1652 */ - { + case 1013: /* fetch_args: BACKWARD opt_from_in cursor_name */ +#line 6918 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *)n; } -#line 34261 "gram.c" /* yacc.c:1652 */ +#line 34753 "gram.c" break; - case 1014: -#line 6926 "gram.y" /* yacc.c:1652 */ - { + case 1014: /* fetch_args: BACKWARD SignedIconst opt_from_in cursor_name */ +#line 6926 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } -#line 34273 "gram.c" /* yacc.c:1652 */ +#line 34765 "gram.c" break; - case 1015: -#line 6934 "gram.y" /* yacc.c:1652 */ - { + case 1015: /* fetch_args: BACKWARD ALL opt_from_in cursor_name */ +#line 6934 "gram.y" + { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } -#line 34285 "gram.c" /* yacc.c:1652 */ +#line 34777 "gram.c" break; - case 1016: -#line 6943 "gram.y" /* yacc.c:1652 */ - {} -#line 34291 "gram.c" /* yacc.c:1652 */ + case 1016: /* from_in: FROM */ +#line 6943 "gram.y" + {} +#line 34783 "gram.c" break; - case 1017: -#line 6944 "gram.y" /* yacc.c:1652 */ - {} -#line 34297 "gram.c" /* yacc.c:1652 */ + case 1017: /* from_in: IN_P */ +#line 6944 "gram.y" + {} +#line 34789 "gram.c" break; - case 1018: -#line 6947 "gram.y" /* yacc.c:1652 */ - {} -#line 34303 "gram.c" /* yacc.c:1652 */ + case 1018: /* opt_from_in: from_in */ +#line 6947 "gram.y" + {} +#line 34795 "gram.c" break; - case 1019: -#line 6948 "gram.y" /* yacc.c:1652 */ - {} -#line 34309 "gram.c" /* yacc.c:1652 */ + case 1019: /* opt_from_in: %empty */ +#line 6948 "gram.y" + {} +#line 34801 "gram.c" break; - case 1020: -#line 6960 "gram.y" /* yacc.c:1652 */ - { + case 1020: /* GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_option */ +#line 6960 "gram.y" + { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[-5].list); @@ -34321,12 +34813,12 @@ n->grant_option = (yyvsp[0].boolean); (yyval.node) = (Node*)n; } -#line 34325 "gram.c" /* yacc.c:1652 */ +#line 34817 "gram.c" break; - case 1021: -#line 6976 "gram.y" /* yacc.c:1652 */ - { + case 1021: /* RevokeStmt: REVOKE privileges ON privilege_target FROM grantee_list opt_drop_behavior */ +#line 6976 "gram.y" + { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; @@ -34338,12 +34830,12 @@ n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } -#line 34342 "gram.c" /* yacc.c:1652 */ +#line 34834 "gram.c" break; - case 1022: -#line 6990 "gram.y" /* yacc.c:1652 */ - { + case 1022: /* RevokeStmt: REVOKE GRANT OPTION FOR privileges ON privilege_target FROM grantee_list opt_drop_behavior */ +#line 6990 "gram.y" + { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; @@ -34355,384 +34847,384 @@ n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } -#line 34359 "gram.c" /* yacc.c:1652 */ +#line 34851 "gram.c" break; - case 1023: -#line 7015 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 34365 "gram.c" /* yacc.c:1652 */ + case 1023: /* privileges: privilege_list */ +#line 7015 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 34857 "gram.c" break; - case 1024: -#line 7017 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 34371 "gram.c" /* yacc.c:1652 */ + case 1024: /* privileges: ALL */ +#line 7017 "gram.y" + { (yyval.list) = NIL; } +#line 34863 "gram.c" break; - case 1025: -#line 7019 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 34377 "gram.c" /* yacc.c:1652 */ + case 1025: /* privileges: ALL PRIVILEGES */ +#line 7019 "gram.y" + { (yyval.list) = NIL; } +#line 34869 "gram.c" break; - case 1026: -#line 7021 "gram.y" /* yacc.c:1652 */ - { + case 1026: /* privileges: ALL '(' columnList ')' */ +#line 7021 "gram.y" + { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[-1].list); (yyval.list) = list_make1(n); } -#line 34388 "gram.c" /* yacc.c:1652 */ +#line 34880 "gram.c" break; - case 1027: -#line 7028 "gram.y" /* yacc.c:1652 */ - { + case 1027: /* privileges: ALL PRIVILEGES '(' columnList ')' */ +#line 7028 "gram.y" + { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[-1].list); (yyval.list) = list_make1(n); } -#line 34399 "gram.c" /* yacc.c:1652 */ +#line 34891 "gram.c" break; - case 1028: -#line 7036 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].accesspriv)); } -#line 34405 "gram.c" /* yacc.c:1652 */ + case 1028: /* privilege_list: privilege */ +#line 7036 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].accesspriv)); } +#line 34897 "gram.c" break; - case 1029: -#line 7037 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].accesspriv)); } -#line 34411 "gram.c" /* yacc.c:1652 */ + case 1029: /* privilege_list: privilege_list ',' privilege */ +#line 7037 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].accesspriv)); } +#line 34903 "gram.c" break; - case 1030: -#line 7041 "gram.y" /* yacc.c:1652 */ - { + case 1030: /* privilege: SELECT opt_column_list */ +#line 7041 "gram.y" + { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[-1].keyword)); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } -#line 34422 "gram.c" /* yacc.c:1652 */ +#line 34914 "gram.c" break; - case 1031: -#line 7048 "gram.y" /* yacc.c:1652 */ - { + case 1031: /* privilege: REFERENCES opt_column_list */ +#line 7048 "gram.y" + { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[-1].keyword)); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } -#line 34433 "gram.c" /* yacc.c:1652 */ +#line 34925 "gram.c" break; - case 1032: -#line 7055 "gram.y" /* yacc.c:1652 */ - { + case 1032: /* privilege: CREATE opt_column_list */ +#line 7055 "gram.y" + { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[-1].keyword)); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } -#line 34444 "gram.c" /* yacc.c:1652 */ +#line 34936 "gram.c" break; - case 1033: -#line 7062 "gram.y" /* yacc.c:1652 */ - { + case 1033: /* privilege: ColId opt_column_list */ +#line 7062 "gram.y" + { AccessPriv *n = makeNode(AccessPriv); n->priv_name = (yyvsp[-1].str); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } -#line 34455 "gram.c" /* yacc.c:1652 */ +#line 34947 "gram.c" break; - case 1034: -#line 7076 "gram.y" /* yacc.c:1652 */ - { + case 1034: /* privilege_target: qualified_name_list */ +#line 7076 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34467 "gram.c" /* yacc.c:1652 */ +#line 34959 "gram.c" break; - case 1035: -#line 7084 "gram.y" /* yacc.c:1652 */ - { + case 1035: /* privilege_target: TABLE qualified_name_list */ +#line 7084 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34479 "gram.c" /* yacc.c:1652 */ +#line 34971 "gram.c" break; - case 1036: -#line 7092 "gram.y" /* yacc.c:1652 */ - { + case 1036: /* privilege_target: SEQUENCE qualified_name_list */ +#line 7092 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_SEQUENCE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34491 "gram.c" /* yacc.c:1652 */ +#line 34983 "gram.c" break; - case 1037: -#line 7100 "gram.y" /* yacc.c:1652 */ - { + case 1037: /* privilege_target: FOREIGN DATA_P WRAPPER name_list */ +#line 7100 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FDW; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34503 "gram.c" /* yacc.c:1652 */ +#line 34995 "gram.c" break; - case 1038: -#line 7108 "gram.y" /* yacc.c:1652 */ - { + case 1038: /* privilege_target: FOREIGN SERVER name_list */ +#line 7108 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FOREIGN_SERVER; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34515 "gram.c" /* yacc.c:1652 */ +#line 35007 "gram.c" break; - case 1039: -#line 7116 "gram.y" /* yacc.c:1652 */ - { + case 1039: /* privilege_target: FUNCTION function_with_argtypes_list */ +#line 7116 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FUNCTION; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34527 "gram.c" /* yacc.c:1652 */ +#line 35019 "gram.c" break; - case 1040: -#line 7124 "gram.y" /* yacc.c:1652 */ - { + case 1040: /* privilege_target: PROCEDURE function_with_argtypes_list */ +#line 7124 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_PROCEDURE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34539 "gram.c" /* yacc.c:1652 */ +#line 35031 "gram.c" break; - case 1041: -#line 7132 "gram.y" /* yacc.c:1652 */ - { + case 1041: /* privilege_target: ROUTINE function_with_argtypes_list */ +#line 7132 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_ROUTINE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34551 "gram.c" /* yacc.c:1652 */ +#line 35043 "gram.c" break; - case 1042: -#line 7140 "gram.y" /* yacc.c:1652 */ - { + case 1042: /* privilege_target: DATABASE name_list */ +#line 7140 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_DATABASE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34563 "gram.c" /* yacc.c:1652 */ +#line 35055 "gram.c" break; - case 1043: -#line 7148 "gram.y" /* yacc.c:1652 */ - { + case 1043: /* privilege_target: DOMAIN_P any_name_list */ +#line 7148 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_DOMAIN; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34575 "gram.c" /* yacc.c:1652 */ +#line 35067 "gram.c" break; - case 1044: -#line 7156 "gram.y" /* yacc.c:1652 */ - { + case 1044: /* privilege_target: LANGUAGE name_list */ +#line 7156 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_LANGUAGE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34587 "gram.c" /* yacc.c:1652 */ +#line 35079 "gram.c" break; - case 1045: -#line 7164 "gram.y" /* yacc.c:1652 */ - { + case 1045: /* privilege_target: LARGE_P OBJECT_P NumericOnly_list */ +#line 7164 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_LARGEOBJECT; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34599 "gram.c" /* yacc.c:1652 */ +#line 35091 "gram.c" break; - case 1046: -#line 7172 "gram.y" /* yacc.c:1652 */ - { + case 1046: /* privilege_target: SCHEMA name_list */ +#line 7172 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_SCHEMA; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34611 "gram.c" /* yacc.c:1652 */ +#line 35103 "gram.c" break; - case 1047: -#line 7180 "gram.y" /* yacc.c:1652 */ - { + case 1047: /* privilege_target: TABLESPACE name_list */ +#line 7180 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLESPACE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34623 "gram.c" /* yacc.c:1652 */ +#line 35115 "gram.c" break; - case 1048: -#line 7188 "gram.y" /* yacc.c:1652 */ - { + case 1048: /* privilege_target: TYPE_P any_name_list */ +#line 7188 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TYPE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34635 "gram.c" /* yacc.c:1652 */ +#line 35127 "gram.c" break; - case 1049: -#line 7196 "gram.y" /* yacc.c:1652 */ - { + case 1049: /* privilege_target: ALL TABLES IN_P SCHEMA name_list */ +#line 7196 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34647 "gram.c" /* yacc.c:1652 */ +#line 35139 "gram.c" break; - case 1050: -#line 7204 "gram.y" /* yacc.c:1652 */ - { + case 1050: /* privilege_target: ALL SEQUENCES IN_P SCHEMA name_list */ +#line 7204 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_SEQUENCE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34659 "gram.c" /* yacc.c:1652 */ +#line 35151 "gram.c" break; - case 1051: -#line 7212 "gram.y" /* yacc.c:1652 */ - { + case 1051: /* privilege_target: ALL FUNCTIONS IN_P SCHEMA name_list */ +#line 7212 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_FUNCTION; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34671 "gram.c" /* yacc.c:1652 */ +#line 35163 "gram.c" break; - case 1052: -#line 7220 "gram.y" /* yacc.c:1652 */ - { + case 1052: /* privilege_target: ALL PROCEDURES IN_P SCHEMA name_list */ +#line 7220 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_PROCEDURE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34683 "gram.c" /* yacc.c:1652 */ +#line 35175 "gram.c" break; - case 1053: -#line 7228 "gram.y" /* yacc.c:1652 */ - { + case 1053: /* privilege_target: ALL ROUTINES IN_P SCHEMA name_list */ +#line 7228 "gram.y" + { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_ROUTINE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } -#line 34695 "gram.c" /* yacc.c:1652 */ +#line 35187 "gram.c" break; - case 1054: -#line 7239 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].rolespec)); } -#line 34701 "gram.c" /* yacc.c:1652 */ + case 1054: /* grantee_list: grantee */ +#line 7239 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].rolespec)); } +#line 35193 "gram.c" break; - case 1055: -#line 7240 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } -#line 34707 "gram.c" /* yacc.c:1652 */ + case 1055: /* grantee_list: grantee_list ',' grantee */ +#line 7240 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } +#line 35199 "gram.c" break; - case 1056: -#line 7244 "gram.y" /* yacc.c:1652 */ - { (yyval.rolespec) = (yyvsp[0].rolespec); } -#line 34713 "gram.c" /* yacc.c:1652 */ + case 1056: /* grantee: RoleSpec */ +#line 7244 "gram.y" + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 35205 "gram.c" break; - case 1057: -#line 7245 "gram.y" /* yacc.c:1652 */ - { (yyval.rolespec) = (yyvsp[0].rolespec); } -#line 34719 "gram.c" /* yacc.c:1652 */ + case 1057: /* grantee: GROUP_P RoleSpec */ +#line 7245 "gram.y" + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 35211 "gram.c" break; - case 1058: -#line 7250 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 34725 "gram.c" /* yacc.c:1652 */ + case 1058: /* opt_grant_grant_option: WITH GRANT OPTION */ +#line 7250 "gram.y" + { (yyval.boolean) = true; } +#line 35217 "gram.c" break; - case 1059: -#line 7251 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 34731 "gram.c" /* yacc.c:1652 */ + case 1059: /* opt_grant_grant_option: %empty */ +#line 7251 "gram.y" + { (yyval.boolean) = false; } +#line 35223 "gram.c" break; - case 1060: -#line 7262 "gram.y" /* yacc.c:1652 */ - { + case 1060: /* GrantRoleStmt: GRANT privilege_list TO role_list opt_grant_admin_option opt_granted_by */ +#line 7262 "gram.y" + { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = true; n->granted_roles = (yyvsp[-4].list); @@ -34741,12 +35233,12 @@ n->grantor = (yyvsp[0].rolespec); (yyval.node) = (Node*)n; } -#line 34745 "gram.c" /* yacc.c:1652 */ +#line 35237 "gram.c" break; - case 1061: -#line 7275 "gram.y" /* yacc.c:1652 */ - { + case 1061: /* RevokeRoleStmt: REVOKE privilege_list FROM role_list opt_granted_by opt_drop_behavior */ +#line 7275 "gram.y" + { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = false; @@ -34755,12 +35247,12 @@ n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node*)n; } -#line 34759 "gram.c" /* yacc.c:1652 */ +#line 35251 "gram.c" break; - case 1062: -#line 7285 "gram.y" /* yacc.c:1652 */ - { + case 1062: /* RevokeRoleStmt: REVOKE ADMIN OPTION FOR privilege_list FROM role_list opt_granted_by opt_drop_behavior */ +#line 7285 "gram.y" + { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = true; @@ -34769,83 +35261,83 @@ n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node*)n; } -#line 34773 "gram.c" /* yacc.c:1652 */ +#line 35265 "gram.c" break; - case 1063: -#line 7296 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 34779 "gram.c" /* yacc.c:1652 */ + case 1063: /* opt_grant_admin_option: WITH ADMIN OPTION */ +#line 7296 "gram.y" + { (yyval.boolean) = true; } +#line 35271 "gram.c" break; - case 1064: -#line 7297 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 34785 "gram.c" /* yacc.c:1652 */ + case 1064: /* opt_grant_admin_option: %empty */ +#line 7297 "gram.y" + { (yyval.boolean) = false; } +#line 35277 "gram.c" break; - case 1065: -#line 7300 "gram.y" /* yacc.c:1652 */ - { (yyval.rolespec) = (yyvsp[0].rolespec); } -#line 34791 "gram.c" /* yacc.c:1652 */ + case 1065: /* opt_granted_by: GRANTED BY RoleSpec */ +#line 7300 "gram.y" + { (yyval.rolespec) = (yyvsp[0].rolespec); } +#line 35283 "gram.c" break; - case 1066: -#line 7301 "gram.y" /* yacc.c:1652 */ - { (yyval.rolespec) = NULL; } -#line 34797 "gram.c" /* yacc.c:1652 */ + case 1066: /* opt_granted_by: %empty */ +#line 7301 "gram.y" + { (yyval.rolespec) = NULL; } +#line 35289 "gram.c" break; - case 1067: -#line 7312 "gram.y" /* yacc.c:1652 */ - { + case 1067: /* AlterDefaultPrivilegesStmt: ALTER DEFAULT PRIVILEGES DefACLOptionList DefACLAction */ +#line 7312 "gram.y" + { AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt); n->options = (yyvsp[-1].list); n->action = (GrantStmt *) (yyvsp[0].node); (yyval.node) = (Node*)n; } -#line 34808 "gram.c" /* yacc.c:1652 */ +#line 35300 "gram.c" break; - case 1068: -#line 7321 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 34814 "gram.c" /* yacc.c:1652 */ + case 1068: /* DefACLOptionList: DefACLOptionList DefACLOption */ +#line 7321 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 35306 "gram.c" break; - case 1069: -#line 7322 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 34820 "gram.c" /* yacc.c:1652 */ + case 1069: /* DefACLOptionList: %empty */ +#line 7322 "gram.y" + { (yyval.list) = NIL; } +#line 35312 "gram.c" break; - case 1070: -#line 7327 "gram.y" /* yacc.c:1652 */ - { + case 1070: /* DefACLOption: IN_P SCHEMA name_list */ +#line 7327 "gram.y" + { (yyval.defelt) = makeDefElem("schemas", (Node *)(yyvsp[0].list), (yylsp[-2])); } -#line 34828 "gram.c" /* yacc.c:1652 */ +#line 35320 "gram.c" break; - case 1071: -#line 7331 "gram.y" /* yacc.c:1652 */ - { + case 1071: /* DefACLOption: FOR ROLE role_list */ +#line 7331 "gram.y" + { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[0].list), (yylsp[-2])); } -#line 34836 "gram.c" /* yacc.c:1652 */ +#line 35328 "gram.c" break; - case 1072: -#line 7335 "gram.y" /* yacc.c:1652 */ - { + case 1072: /* DefACLOption: FOR USER role_list */ +#line 7335 "gram.y" + { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[0].list), (yylsp[-2])); } -#line 34844 "gram.c" /* yacc.c:1652 */ +#line 35336 "gram.c" break; - case 1073: -#line 7347 "gram.y" /* yacc.c:1652 */ - { + case 1073: /* DefACLAction: GRANT privileges ON defacl_privilege_target TO grantee_list opt_grant_grant_option */ +#line 7347 "gram.y" + { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[-5].list); @@ -34856,12 +35348,12 @@ n->grant_option = (yyvsp[0].boolean); (yyval.node) = (Node*)n; } -#line 34860 "gram.c" /* yacc.c:1652 */ +#line 35352 "gram.c" break; - case 1074: -#line 7360 "gram.y" /* yacc.c:1652 */ - { + case 1074: /* DefACLAction: REVOKE privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */ +#line 7360 "gram.y" + { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; @@ -34873,12 +35365,12 @@ n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } -#line 34877 "gram.c" /* yacc.c:1652 */ +#line 35369 "gram.c" break; - case 1075: -#line 7374 "gram.y" /* yacc.c:1652 */ - { + case 1075: /* DefACLAction: REVOKE GRANT OPTION FOR privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */ +#line 7374 "gram.y" + { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; @@ -34890,48 +35382,48 @@ n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } -#line 34894 "gram.c" /* yacc.c:1652 */ +#line 35386 "gram.c" break; - case 1076: -#line 7389 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = OBJECT_TABLE; } -#line 34900 "gram.c" /* yacc.c:1652 */ + case 1076: /* defacl_privilege_target: TABLES */ +#line 7389 "gram.y" + { (yyval.ival) = OBJECT_TABLE; } +#line 35392 "gram.c" break; - case 1077: -#line 7390 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = OBJECT_FUNCTION; } -#line 34906 "gram.c" /* yacc.c:1652 */ + case 1077: /* defacl_privilege_target: FUNCTIONS */ +#line 7390 "gram.y" + { (yyval.ival) = OBJECT_FUNCTION; } +#line 35398 "gram.c" break; - case 1078: -#line 7391 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = OBJECT_FUNCTION; } -#line 34912 "gram.c" /* yacc.c:1652 */ + case 1078: /* defacl_privilege_target: ROUTINES */ +#line 7391 "gram.y" + { (yyval.ival) = OBJECT_FUNCTION; } +#line 35404 "gram.c" break; - case 1079: -#line 7392 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = OBJECT_SEQUENCE; } -#line 34918 "gram.c" /* yacc.c:1652 */ + case 1079: /* defacl_privilege_target: SEQUENCES */ +#line 7392 "gram.y" + { (yyval.ival) = OBJECT_SEQUENCE; } +#line 35410 "gram.c" break; - case 1080: -#line 7393 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = OBJECT_TYPE; } -#line 34924 "gram.c" /* yacc.c:1652 */ + case 1080: /* defacl_privilege_target: TYPES_P */ +#line 7393 "gram.y" + { (yyval.ival) = OBJECT_TYPE; } +#line 35416 "gram.c" break; - case 1081: -#line 7394 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = OBJECT_SCHEMA; } -#line 34930 "gram.c" /* yacc.c:1652 */ + case 1081: /* defacl_privilege_target: SCHEMAS */ +#line 7394 "gram.y" + { (yyval.ival) = OBJECT_SCHEMA; } +#line 35422 "gram.c" break; - case 1082: -#line 7409 "gram.y" /* yacc.c:1652 */ - { + case 1082: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently opt_index_name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_reloptions OptTableSpace where_clause */ +#line 7409 "gram.y" + { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[-13].boolean); n->concurrent = (yyvsp[-11].boolean); @@ -34958,12 +35450,12 @@ n->reset_default_tblspc = false; (yyval.node) = (Node *)n; } -#line 34962 "gram.c" /* yacc.c:1652 */ +#line 35454 "gram.c" break; - case 1083: -#line 7439 "gram.y" /* yacc.c:1652 */ - { + case 1083: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently IF_P NOT EXISTS index_name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_reloptions OptTableSpace where_clause */ +#line 7439 "gram.y" + { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[-16].boolean); n->concurrent = (yyvsp[-14].boolean); @@ -34990,72 +35482,72 @@ n->reset_default_tblspc = false; (yyval.node) = (Node *)n; } -#line 34994 "gram.c" /* yacc.c:1652 */ +#line 35486 "gram.c" break; - case 1084: -#line 7469 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 35000 "gram.c" /* yacc.c:1652 */ + case 1084: /* opt_unique: UNIQUE */ +#line 7469 "gram.y" + { (yyval.boolean) = true; } +#line 35492 "gram.c" break; - case 1085: -#line 7470 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 35006 "gram.c" /* yacc.c:1652 */ + case 1085: /* opt_unique: %empty */ +#line 7470 "gram.y" + { (yyval.boolean) = false; } +#line 35498 "gram.c" break; - case 1086: -#line 7474 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 35012 "gram.c" /* yacc.c:1652 */ + case 1086: /* opt_concurrently: CONCURRENTLY */ +#line 7474 "gram.y" + { (yyval.boolean) = true; } +#line 35504 "gram.c" break; - case 1087: -#line 7475 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 35018 "gram.c" /* yacc.c:1652 */ + case 1087: /* opt_concurrently: %empty */ +#line 7475 "gram.y" + { (yyval.boolean) = false; } +#line 35510 "gram.c" break; - case 1088: -#line 7479 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 35024 "gram.c" /* yacc.c:1652 */ + case 1088: /* opt_index_name: index_name */ +#line 7479 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 35516 "gram.c" break; - case 1089: -#line 7480 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 35030 "gram.c" /* yacc.c:1652 */ + case 1089: /* opt_index_name: %empty */ +#line 7480 "gram.y" + { (yyval.str) = NULL; } +#line 35522 "gram.c" break; - case 1090: -#line 7484 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 35036 "gram.c" /* yacc.c:1652 */ + case 1090: /* access_method_clause: USING access_method */ +#line 7484 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 35528 "gram.c" break; - case 1091: -#line 7485 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = DEFAULT_INDEX_TYPE; } -#line 35042 "gram.c" /* yacc.c:1652 */ + case 1091: /* access_method_clause: %empty */ +#line 7485 "gram.y" + { (yyval.str) = DEFAULT_INDEX_TYPE; } +#line 35534 "gram.c" break; - case 1092: -#line 7488 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].ielem)); } -#line 35048 "gram.c" /* yacc.c:1652 */ + case 1092: /* index_params: index_elem */ +#line 7488 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].ielem)); } +#line 35540 "gram.c" break; - case 1093: -#line 7489 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } -#line 35054 "gram.c" /* yacc.c:1652 */ + case 1093: /* index_params: index_params ',' index_elem */ +#line 7489 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } +#line 35546 "gram.c" break; - case 1094: -#line 7495 "gram.y" /* yacc.c:1652 */ - { + case 1094: /* index_elem_options: opt_collate opt_class opt_asc_desc opt_nulls_order */ +#line 7495 "gram.y" + { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = NULL; @@ -35066,12 +35558,12 @@ (yyval.ielem)->ordering = (yyvsp[-1].ival); (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); } -#line 35070 "gram.c" /* yacc.c:1652 */ +#line 35562 "gram.c" break; - case 1095: -#line 7507 "gram.y" /* yacc.c:1652 */ - { + case 1095: /* index_elem_options: opt_collate any_name reloptions opt_asc_desc opt_nulls_order */ +#line 7507 "gram.y" + { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = NULL; @@ -35082,123 +35574,123 @@ (yyval.ielem)->ordering = (yyvsp[-1].ival); (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); } -#line 35086 "gram.c" /* yacc.c:1652 */ +#line 35578 "gram.c" break; - case 1096: -#line 7526 "gram.y" /* yacc.c:1652 */ - { + case 1096: /* index_elem: ColId index_elem_options */ +#line 7526 "gram.y" + { (yyval.ielem) = (yyvsp[0].ielem); (yyval.ielem)->name = (yyvsp[-1].str); } -#line 35095 "gram.c" /* yacc.c:1652 */ +#line 35587 "gram.c" break; - case 1097: -#line 7531 "gram.y" /* yacc.c:1652 */ - { + case 1097: /* index_elem: func_expr_windowless index_elem_options */ +#line 7531 "gram.y" + { (yyval.ielem) = (yyvsp[0].ielem); (yyval.ielem)->expr = (yyvsp[-1].node); } -#line 35104 "gram.c" /* yacc.c:1652 */ +#line 35596 "gram.c" break; - case 1098: -#line 7536 "gram.y" /* yacc.c:1652 */ - { + case 1098: /* index_elem: '(' a_expr ')' index_elem_options */ +#line 7536 "gram.y" + { (yyval.ielem) = (yyvsp[0].ielem); (yyval.ielem)->expr = (yyvsp[-2].node); } -#line 35113 "gram.c" /* yacc.c:1652 */ +#line 35605 "gram.c" break; - case 1099: -#line 7542 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 35119 "gram.c" /* yacc.c:1652 */ + case 1099: /* opt_include: INCLUDE '(' index_including_params ')' */ +#line 7542 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 35611 "gram.c" break; - case 1100: -#line 7543 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 35125 "gram.c" /* yacc.c:1652 */ + case 1100: /* opt_include: %empty */ +#line 7543 "gram.y" + { (yyval.list) = NIL; } +#line 35617 "gram.c" break; - case 1101: -#line 7546 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].ielem)); } -#line 35131 "gram.c" /* yacc.c:1652 */ + case 1101: /* index_including_params: index_elem */ +#line 7546 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].ielem)); } +#line 35623 "gram.c" break; - case 1102: -#line 7547 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } -#line 35137 "gram.c" /* yacc.c:1652 */ + case 1102: /* index_including_params: index_including_params ',' index_elem */ +#line 7547 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } +#line 35629 "gram.c" break; - case 1103: -#line 7550 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 35143 "gram.c" /* yacc.c:1652 */ + case 1103: /* opt_collate: COLLATE any_name */ +#line 7550 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 35635 "gram.c" break; - case 1104: -#line 7551 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 35149 "gram.c" /* yacc.c:1652 */ + case 1104: /* opt_collate: %empty */ +#line 7551 "gram.y" + { (yyval.list) = NIL; } +#line 35641 "gram.c" break; - case 1105: -#line 7554 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 35155 "gram.c" /* yacc.c:1652 */ + case 1105: /* opt_class: any_name */ +#line 7554 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 35647 "gram.c" break; - case 1106: -#line 7555 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 35161 "gram.c" /* yacc.c:1652 */ + case 1106: /* opt_class: %empty */ +#line 7555 "gram.y" + { (yyval.list) = NIL; } +#line 35653 "gram.c" break; - case 1107: -#line 7558 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = SORTBY_ASC; } -#line 35167 "gram.c" /* yacc.c:1652 */ + case 1107: /* opt_asc_desc: ASC */ +#line 7558 "gram.y" + { (yyval.ival) = SORTBY_ASC; } +#line 35659 "gram.c" break; - case 1108: -#line 7559 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = SORTBY_DESC; } -#line 35173 "gram.c" /* yacc.c:1652 */ + case 1108: /* opt_asc_desc: DESC */ +#line 7559 "gram.y" + { (yyval.ival) = SORTBY_DESC; } +#line 35665 "gram.c" break; - case 1109: -#line 7560 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = SORTBY_DEFAULT; } -#line 35179 "gram.c" /* yacc.c:1652 */ + case 1109: /* opt_asc_desc: %empty */ +#line 7560 "gram.y" + { (yyval.ival) = SORTBY_DEFAULT; } +#line 35671 "gram.c" break; - case 1110: -#line 7563 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = SORTBY_NULLS_FIRST; } -#line 35185 "gram.c" /* yacc.c:1652 */ + case 1110: /* opt_nulls_order: NULLS_LA FIRST_P */ +#line 7563 "gram.y" + { (yyval.ival) = SORTBY_NULLS_FIRST; } +#line 35677 "gram.c" break; - case 1111: -#line 7564 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = SORTBY_NULLS_LAST; } -#line 35191 "gram.c" /* yacc.c:1652 */ + case 1111: /* opt_nulls_order: NULLS_LA LAST_P */ +#line 7564 "gram.y" + { (yyval.ival) = SORTBY_NULLS_LAST; } +#line 35683 "gram.c" break; - case 1112: -#line 7565 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = SORTBY_NULLS_DEFAULT; } -#line 35197 "gram.c" /* yacc.c:1652 */ + case 1112: /* opt_nulls_order: %empty */ +#line 7565 "gram.y" + { (yyval.ival) = SORTBY_NULLS_DEFAULT; } +#line 35689 "gram.c" break; - case 1113: -#line 7583 "gram.y" /* yacc.c:1652 */ - { + case 1113: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS func_return createfunc_opt_list */ +#line 7583 "gram.y" + { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[-6].boolean); @@ -35208,12 +35700,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 35212 "gram.c" /* yacc.c:1652 */ +#line 35704 "gram.c" break; - case 1114: -#line 7595 "gram.y" /* yacc.c:1652 */ - { + case 1114: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS TABLE '(' table_func_column_list ')' createfunc_opt_list */ +#line 7595 "gram.y" + { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[-9].boolean); @@ -35224,12 +35716,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 35228 "gram.c" /* yacc.c:1652 */ +#line 35720 "gram.c" break; - case 1115: -#line 7608 "gram.y" /* yacc.c:1652 */ - { + case 1115: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults createfunc_opt_list */ +#line 7608 "gram.y" + { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[-4].boolean); @@ -35239,12 +35731,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 35243 "gram.c" /* yacc.c:1652 */ +#line 35735 "gram.c" break; - case 1116: -#line 7620 "gram.y" /* yacc.c:1652 */ - { + case 1116: /* CreateFunctionStmt: CREATE opt_or_replace PROCEDURE func_name func_args_with_defaults createfunc_opt_list */ +#line 7620 "gram.y" + { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = true; n->replace = (yyvsp[-4].boolean); @@ -35254,129 +35746,129 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 35258 "gram.c" /* yacc.c:1652 */ +#line 35750 "gram.c" break; - case 1117: -#line 7633 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 35264 "gram.c" /* yacc.c:1652 */ + case 1117: /* opt_or_replace: OR REPLACE */ +#line 7633 "gram.y" + { (yyval.boolean) = true; } +#line 35756 "gram.c" break; - case 1118: -#line 7634 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 35270 "gram.c" /* yacc.c:1652 */ + case 1118: /* opt_or_replace: %empty */ +#line 7634 "gram.y" + { (yyval.boolean) = false; } +#line 35762 "gram.c" break; - case 1119: -#line 7637 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 35276 "gram.c" /* yacc.c:1652 */ + case 1119: /* func_args: '(' func_args_list ')' */ +#line 7637 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 35768 "gram.c" break; - case 1120: -#line 7638 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 35282 "gram.c" /* yacc.c:1652 */ + case 1120: /* func_args: '(' ')' */ +#line 7638 "gram.y" + { (yyval.list) = NIL; } +#line 35774 "gram.c" break; - case 1121: -#line 7642 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].fun_param)); } -#line 35288 "gram.c" /* yacc.c:1652 */ + case 1121: /* func_args_list: func_arg */ +#line 7642 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].fun_param)); } +#line 35780 "gram.c" break; - case 1122: -#line 7643 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } -#line 35294 "gram.c" /* yacc.c:1652 */ + case 1122: /* func_args_list: func_args_list ',' func_arg */ +#line 7643 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } +#line 35786 "gram.c" break; - case 1123: -#line 7647 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } -#line 35300 "gram.c" /* yacc.c:1652 */ + case 1123: /* function_with_argtypes_list: function_with_argtypes */ +#line 7647 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } +#line 35792 "gram.c" break; - case 1124: -#line 7649 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } -#line 35306 "gram.c" /* yacc.c:1652 */ + case 1124: /* function_with_argtypes_list: function_with_argtypes_list ',' function_with_argtypes */ +#line 7649 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } +#line 35798 "gram.c" break; - case 1125: -#line 7654 "gram.y" /* yacc.c:1652 */ - { + case 1125: /* function_with_argtypes: func_name func_args */ +#line 7654 "gram.y" + { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[-1].list); n->objargs = extractArgTypes((yyvsp[0].list)); (yyval.objwithargs) = n; } -#line 35317 "gram.c" /* yacc.c:1652 */ +#line 35809 "gram.c" break; - case 1126: -#line 7666 "gram.y" /* yacc.c:1652 */ - { + case 1126: /* function_with_argtypes: type_func_name_keyword */ +#line 7666 "gram.y" + { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = list_make1(makeString(pstrdup((yyvsp[0].keyword)))); n->args_unspecified = true; (yyval.objwithargs) = n; } -#line 35328 "gram.c" /* yacc.c:1652 */ +#line 35820 "gram.c" break; - case 1127: -#line 7673 "gram.y" /* yacc.c:1652 */ - { + case 1127: /* function_with_argtypes: ColId */ +#line 7673 "gram.y" + { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = list_make1(makeString((yyvsp[0].str))); n->args_unspecified = true; (yyval.objwithargs) = n; } -#line 35339 "gram.c" /* yacc.c:1652 */ +#line 35831 "gram.c" break; - case 1128: -#line 7680 "gram.y" /* yacc.c:1652 */ - { + case 1128: /* function_with_argtypes: ColId indirection */ +#line 7680 "gram.y" + { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), yyscanner); n->args_unspecified = true; (yyval.objwithargs) = n; } -#line 35351 "gram.c" /* yacc.c:1652 */ +#line 35843 "gram.c" break; - case 1129: -#line 7694 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 35357 "gram.c" /* yacc.c:1652 */ + case 1129: /* func_args_with_defaults: '(' func_args_with_defaults_list ')' */ +#line 7694 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 35849 "gram.c" break; - case 1130: -#line 7695 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 35363 "gram.c" /* yacc.c:1652 */ + case 1130: /* func_args_with_defaults: '(' ')' */ +#line 7695 "gram.y" + { (yyval.list) = NIL; } +#line 35855 "gram.c" break; - case 1131: -#line 7699 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].fun_param)); } -#line 35369 "gram.c" /* yacc.c:1652 */ + case 1131: /* func_args_with_defaults_list: func_arg_with_default */ +#line 7699 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].fun_param)); } +#line 35861 "gram.c" break; - case 1132: -#line 7701 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } -#line 35375 "gram.c" /* yacc.c:1652 */ + case 1132: /* func_args_with_defaults_list: func_args_with_defaults_list ',' func_arg_with_default */ +#line 7701 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } +#line 35867 "gram.c" break; - case 1133: -#line 7716 "gram.y" /* yacc.c:1652 */ - { + case 1133: /* func_arg: arg_class param_name func_type */ +#line 7716 "gram.y" + { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-1].str); n->argType = (yyvsp[0].typnam); @@ -35384,12 +35876,12 @@ n->defexpr = NULL; (yyval.fun_param) = n; } -#line 35388 "gram.c" /* yacc.c:1652 */ +#line 35880 "gram.c" break; - case 1134: -#line 7725 "gram.y" /* yacc.c:1652 */ - { + case 1134: /* func_arg: param_name arg_class func_type */ +#line 7725 "gram.y" + { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-2].str); n->argType = (yyvsp[0].typnam); @@ -35397,12 +35889,12 @@ n->defexpr = NULL; (yyval.fun_param) = n; } -#line 35401 "gram.c" /* yacc.c:1652 */ +#line 35893 "gram.c" break; - case 1135: -#line 7734 "gram.y" /* yacc.c:1652 */ - { + case 1135: /* func_arg: param_name func_type */ +#line 7734 "gram.y" + { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-1].str); n->argType = (yyvsp[0].typnam); @@ -35410,12 +35902,12 @@ n->defexpr = NULL; (yyval.fun_param) = n; } -#line 35414 "gram.c" /* yacc.c:1652 */ +#line 35906 "gram.c" break; - case 1136: -#line 7743 "gram.y" /* yacc.c:1652 */ - { + case 1136: /* func_arg: arg_class func_type */ +#line 7743 "gram.y" + { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[0].typnam); @@ -35423,12 +35915,12 @@ n->defexpr = NULL; (yyval.fun_param) = n; } -#line 35427 "gram.c" /* yacc.c:1652 */ +#line 35919 "gram.c" break; - case 1137: -#line 7752 "gram.y" /* yacc.c:1652 */ - { + case 1137: /* func_arg: func_type */ +#line 7752 "gram.y" + { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[0].typnam); @@ -35436,107 +35928,107 @@ n->defexpr = NULL; (yyval.fun_param) = n; } -#line 35440 "gram.c" /* yacc.c:1652 */ +#line 35932 "gram.c" break; - case 1138: -#line 7763 "gram.y" /* yacc.c:1652 */ - { (yyval.fun_param_mode) = FUNC_PARAM_IN; } -#line 35446 "gram.c" /* yacc.c:1652 */ + case 1138: /* arg_class: IN_P */ +#line 7763 "gram.y" + { (yyval.fun_param_mode) = FUNC_PARAM_IN; } +#line 35938 "gram.c" break; - case 1139: -#line 7764 "gram.y" /* yacc.c:1652 */ - { (yyval.fun_param_mode) = FUNC_PARAM_OUT; } -#line 35452 "gram.c" /* yacc.c:1652 */ + case 1139: /* arg_class: OUT_P */ +#line 7764 "gram.y" + { (yyval.fun_param_mode) = FUNC_PARAM_OUT; } +#line 35944 "gram.c" break; - case 1140: -#line 7765 "gram.y" /* yacc.c:1652 */ - { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } -#line 35458 "gram.c" /* yacc.c:1652 */ + case 1140: /* arg_class: INOUT */ +#line 7765 "gram.y" + { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } +#line 35950 "gram.c" break; - case 1141: -#line 7766 "gram.y" /* yacc.c:1652 */ - { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } -#line 35464 "gram.c" /* yacc.c:1652 */ + case 1141: /* arg_class: IN_P OUT_P */ +#line 7766 "gram.y" + { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } +#line 35956 "gram.c" break; - case 1142: -#line 7767 "gram.y" /* yacc.c:1652 */ - { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; } -#line 35470 "gram.c" /* yacc.c:1652 */ + case 1142: /* arg_class: VARIADIC */ +#line 7767 "gram.y" + { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; } +#line 35962 "gram.c" break; - case 1144: -#line 7778 "gram.y" /* yacc.c:1652 */ - { + case 1144: /* func_return: func_type */ +#line 7778 "gram.y" + { /* We can catch over-specified results here if we want to, * but for now better to silently swallow typmod, etc. * - thomas 2000-03-22 */ (yyval.typnam) = (yyvsp[0].typnam); } -#line 35482 "gram.c" /* yacc.c:1652 */ +#line 35974 "gram.c" break; - case 1145: -#line 7792 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 35488 "gram.c" /* yacc.c:1652 */ + case 1145: /* func_type: Typename */ +#line 7792 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 35980 "gram.c" break; - case 1146: -#line 7794 "gram.y" /* yacc.c:1652 */ - { + case 1146: /* func_type: type_function_name attrs '%' TYPE_P */ +#line 7794 "gram.y" + { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); (yyval.typnam)->pct_type = true; (yyval.typnam)->location = (yylsp[-3]); } -#line 35498 "gram.c" /* yacc.c:1652 */ +#line 35990 "gram.c" break; - case 1147: -#line 7800 "gram.y" /* yacc.c:1652 */ - { + case 1147: /* func_type: SETOF type_function_name attrs '%' TYPE_P */ +#line 7800 "gram.y" + { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); (yyval.typnam)->pct_type = true; (yyval.typnam)->setof = true; (yyval.typnam)->location = (yylsp[-3]); } -#line 35509 "gram.c" /* yacc.c:1652 */ +#line 36001 "gram.c" break; - case 1148: -#line 7810 "gram.y" /* yacc.c:1652 */ - { + case 1148: /* func_arg_with_default: func_arg */ +#line 7810 "gram.y" + { (yyval.fun_param) = (yyvsp[0].fun_param); } -#line 35517 "gram.c" /* yacc.c:1652 */ +#line 36009 "gram.c" break; - case 1149: -#line 7814 "gram.y" /* yacc.c:1652 */ - { + case 1149: /* func_arg_with_default: func_arg DEFAULT a_expr */ +#line 7814 "gram.y" + { (yyval.fun_param) = (yyvsp[-2].fun_param); (yyval.fun_param)->defexpr = (yyvsp[0].node); } -#line 35526 "gram.c" /* yacc.c:1652 */ +#line 36018 "gram.c" break; - case 1150: -#line 7819 "gram.y" /* yacc.c:1652 */ - { + case 1150: /* func_arg_with_default: func_arg '=' a_expr */ +#line 7819 "gram.y" + { (yyval.fun_param) = (yyvsp[-2].fun_param); (yyval.fun_param)->defexpr = (yyvsp[0].node); } -#line 35535 "gram.c" /* yacc.c:1652 */ +#line 36027 "gram.c" break; - case 1151: -#line 7827 "gram.y" /* yacc.c:1652 */ - { + case 1151: /* aggr_arg: func_arg */ +#line 7827 "gram.y" + { if (!((yyvsp[0].fun_param)->mode == FUNC_PARAM_IN || (yyvsp[0].fun_param)->mode == FUNC_PARAM_VARIADIC)) ereport(ERROR, @@ -35545,307 +36037,307 @@ parser_errposition((yylsp[0])))); (yyval.fun_param) = (yyvsp[0].fun_param); } -#line 35549 "gram.c" /* yacc.c:1652 */ +#line 36041 "gram.c" break; - case 1152: -#line 7868 "gram.y" /* yacc.c:1652 */ - { + case 1152: /* aggr_args: '(' '*' ')' */ +#line 7868 "gram.y" + { (yyval.list) = list_make2(NIL, makeInteger(-1)); } -#line 35557 "gram.c" /* yacc.c:1652 */ +#line 36049 "gram.c" break; - case 1153: -#line 7872 "gram.y" /* yacc.c:1652 */ - { + case 1153: /* aggr_args: '(' aggr_args_list ')' */ +#line 7872 "gram.y" + { (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(-1)); } -#line 35565 "gram.c" /* yacc.c:1652 */ +#line 36057 "gram.c" break; - case 1154: -#line 7876 "gram.y" /* yacc.c:1652 */ - { + case 1154: /* aggr_args: '(' ORDER BY aggr_args_list ')' */ +#line 7876 "gram.y" + { (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(0)); } -#line 35573 "gram.c" /* yacc.c:1652 */ +#line 36065 "gram.c" break; - case 1155: -#line 7880 "gram.y" /* yacc.c:1652 */ - { + case 1155: /* aggr_args: '(' aggr_args_list ORDER BY aggr_args_list ')' */ +#line 7880 "gram.y" + { /* this is the only case requiring consistency checking */ (yyval.list) = makeOrderedSetArgs((yyvsp[-4].list), (yyvsp[-1].list), yyscanner); } -#line 35582 "gram.c" /* yacc.c:1652 */ +#line 36074 "gram.c" break; - case 1156: -#line 7887 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].fun_param)); } -#line 35588 "gram.c" /* yacc.c:1652 */ + case 1156: /* aggr_args_list: aggr_arg */ +#line 7887 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].fun_param)); } +#line 36080 "gram.c" break; - case 1157: -#line 7888 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } -#line 35594 "gram.c" /* yacc.c:1652 */ + case 1157: /* aggr_args_list: aggr_args_list ',' aggr_arg */ +#line 7888 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } +#line 36086 "gram.c" break; - case 1158: -#line 7893 "gram.y" /* yacc.c:1652 */ - { + case 1158: /* aggregate_with_argtypes: func_name aggr_args */ +#line 7893 "gram.y" + { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[-1].list); n->objargs = extractAggrArgTypes((yyvsp[0].list)); (yyval.objwithargs) = n; } -#line 35605 "gram.c" /* yacc.c:1652 */ +#line 36097 "gram.c" break; - case 1159: -#line 7902 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } -#line 35611 "gram.c" /* yacc.c:1652 */ + case 1159: /* aggregate_with_argtypes_list: aggregate_with_argtypes */ +#line 7902 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } +#line 36103 "gram.c" break; - case 1160: -#line 7904 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } -#line 35617 "gram.c" /* yacc.c:1652 */ + case 1160: /* aggregate_with_argtypes_list: aggregate_with_argtypes_list ',' aggregate_with_argtypes */ +#line 7904 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } +#line 36109 "gram.c" break; - case 1161: -#line 7909 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 35623 "gram.c" /* yacc.c:1652 */ + case 1161: /* createfunc_opt_list: createfunc_opt_item */ +#line 7909 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 36115 "gram.c" break; - case 1162: -#line 7910 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 35629 "gram.c" /* yacc.c:1652 */ + case 1162: /* createfunc_opt_list: createfunc_opt_list createfunc_opt_item */ +#line 7910 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 36121 "gram.c" break; - case 1163: -#line 7918 "gram.y" /* yacc.c:1652 */ - { + case 1163: /* common_func_opt_item: CALLED ON NULL_P INPUT_P */ +#line 7918 "gram.y" + { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(false), (yylsp[-3])); } -#line 35637 "gram.c" /* yacc.c:1652 */ +#line 36129 "gram.c" break; - case 1164: -#line 7922 "gram.y" /* yacc.c:1652 */ - { + case 1164: /* common_func_opt_item: RETURNS NULL_P ON NULL_P INPUT_P */ +#line 7922 "gram.y" + { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(true), (yylsp[-4])); } -#line 35645 "gram.c" /* yacc.c:1652 */ +#line 36137 "gram.c" break; - case 1165: -#line 7926 "gram.y" /* yacc.c:1652 */ - { + case 1165: /* common_func_opt_item: STRICT_P */ +#line 7926 "gram.y" + { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(true), (yylsp[0])); } -#line 35653 "gram.c" /* yacc.c:1652 */ +#line 36145 "gram.c" break; - case 1166: -#line 7930 "gram.y" /* yacc.c:1652 */ - { + case 1166: /* common_func_opt_item: IMMUTABLE */ +#line 7930 "gram.y" + { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("immutable"), (yylsp[0])); } -#line 35661 "gram.c" /* yacc.c:1652 */ +#line 36153 "gram.c" break; - case 1167: -#line 7934 "gram.y" /* yacc.c:1652 */ - { + case 1167: /* common_func_opt_item: STABLE */ +#line 7934 "gram.y" + { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("stable"), (yylsp[0])); } -#line 35669 "gram.c" /* yacc.c:1652 */ +#line 36161 "gram.c" break; - case 1168: -#line 7938 "gram.y" /* yacc.c:1652 */ - { + case 1168: /* common_func_opt_item: VOLATILE */ +#line 7938 "gram.y" + { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("volatile"), (yylsp[0])); } -#line 35677 "gram.c" /* yacc.c:1652 */ +#line 36169 "gram.c" break; - case 1169: -#line 7942 "gram.y" /* yacc.c:1652 */ - { + case 1169: /* common_func_opt_item: EXTERNAL SECURITY DEFINER */ +#line 7942 "gram.y" + { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(true), (yylsp[-2])); } -#line 35685 "gram.c" /* yacc.c:1652 */ +#line 36177 "gram.c" break; - case 1170: -#line 7946 "gram.y" /* yacc.c:1652 */ - { + case 1170: /* common_func_opt_item: EXTERNAL SECURITY INVOKER */ +#line 7946 "gram.y" + { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(false), (yylsp[-2])); } -#line 35693 "gram.c" /* yacc.c:1652 */ +#line 36185 "gram.c" break; - case 1171: -#line 7950 "gram.y" /* yacc.c:1652 */ - { + case 1171: /* common_func_opt_item: SECURITY DEFINER */ +#line 7950 "gram.y" + { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(true), (yylsp[-1])); } -#line 35701 "gram.c" /* yacc.c:1652 */ +#line 36193 "gram.c" break; - case 1172: -#line 7954 "gram.y" /* yacc.c:1652 */ - { + case 1172: /* common_func_opt_item: SECURITY INVOKER */ +#line 7954 "gram.y" + { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(false), (yylsp[-1])); } -#line 35709 "gram.c" /* yacc.c:1652 */ +#line 36201 "gram.c" break; - case 1173: -#line 7958 "gram.y" /* yacc.c:1652 */ - { + case 1173: /* common_func_opt_item: LEAKPROOF */ +#line 7958 "gram.y" + { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(true), (yylsp[0])); } -#line 35717 "gram.c" /* yacc.c:1652 */ +#line 36209 "gram.c" break; - case 1174: -#line 7962 "gram.y" /* yacc.c:1652 */ - { + case 1174: /* common_func_opt_item: NOT LEAKPROOF */ +#line 7962 "gram.y" + { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(false), (yylsp[-1])); } -#line 35725 "gram.c" /* yacc.c:1652 */ +#line 36217 "gram.c" break; - case 1175: -#line 7966 "gram.y" /* yacc.c:1652 */ - { + case 1175: /* common_func_opt_item: COST NumericOnly */ +#line 7966 "gram.y" + { (yyval.defelt) = makeDefElem("cost", (Node *)(yyvsp[0].value), (yylsp[-1])); } -#line 35733 "gram.c" /* yacc.c:1652 */ +#line 36225 "gram.c" break; - case 1176: -#line 7970 "gram.y" /* yacc.c:1652 */ - { + case 1176: /* common_func_opt_item: ROWS NumericOnly */ +#line 7970 "gram.y" + { (yyval.defelt) = makeDefElem("rows", (Node *)(yyvsp[0].value), (yylsp[-1])); } -#line 35741 "gram.c" /* yacc.c:1652 */ +#line 36233 "gram.c" break; - case 1177: -#line 7974 "gram.y" /* yacc.c:1652 */ - { + case 1177: /* common_func_opt_item: SUPPORT any_name */ +#line 7974 "gram.y" + { (yyval.defelt) = makeDefElem("support", (Node *)(yyvsp[0].list), (yylsp[-1])); } -#line 35749 "gram.c" /* yacc.c:1652 */ +#line 36241 "gram.c" break; - case 1178: -#line 7978 "gram.y" /* yacc.c:1652 */ - { + case 1178: /* common_func_opt_item: FunctionSetResetClause */ +#line 7978 "gram.y" + { /* we abuse the normal content of a DefElem here */ (yyval.defelt) = makeDefElem("set", (Node *)(yyvsp[0].vsetstmt), (yylsp[0])); } -#line 35758 "gram.c" /* yacc.c:1652 */ +#line 36250 "gram.c" break; - case 1179: -#line 7983 "gram.y" /* yacc.c:1652 */ - { + case 1179: /* common_func_opt_item: PARALLEL ColId */ +#line 7983 "gram.y" + { (yyval.defelt) = makeDefElem("parallel", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 35766 "gram.c" /* yacc.c:1652 */ +#line 36258 "gram.c" break; - case 1180: -#line 7990 "gram.y" /* yacc.c:1652 */ - { + case 1180: /* createfunc_opt_item: AS func_as */ +#line 7990 "gram.y" + { (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[0].list), (yylsp[-1])); } -#line 35774 "gram.c" /* yacc.c:1652 */ +#line 36266 "gram.c" break; - case 1181: -#line 7994 "gram.y" /* yacc.c:1652 */ - { + case 1181: /* createfunc_opt_item: LANGUAGE NonReservedWord_or_Sconst */ +#line 7994 "gram.y" + { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 35782 "gram.c" /* yacc.c:1652 */ +#line 36274 "gram.c" break; - case 1182: -#line 7998 "gram.y" /* yacc.c:1652 */ - { + case 1182: /* createfunc_opt_item: TRANSFORM transform_type_list */ +#line 7998 "gram.y" + { (yyval.defelt) = makeDefElem("transform", (Node *)(yyvsp[0].list), (yylsp[-1])); } -#line 35790 "gram.c" /* yacc.c:1652 */ +#line 36282 "gram.c" break; - case 1183: -#line 8002 "gram.y" /* yacc.c:1652 */ - { + case 1183: /* createfunc_opt_item: WINDOW */ +#line 8002 "gram.y" + { (yyval.defelt) = makeDefElem("window", (Node *)makeInteger(true), (yylsp[0])); } -#line 35798 "gram.c" /* yacc.c:1652 */ +#line 36290 "gram.c" break; - case 1184: -#line 8006 "gram.y" /* yacc.c:1652 */ - { + case 1184: /* createfunc_opt_item: common_func_opt_item */ +#line 8006 "gram.y" + { (yyval.defelt) = (yyvsp[0].defelt); } -#line 35806 "gram.c" /* yacc.c:1652 */ +#line 36298 "gram.c" break; - case 1185: -#line 8011 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 35812 "gram.c" /* yacc.c:1652 */ + case 1185: /* func_as: Sconst */ +#line 8011 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 36304 "gram.c" break; - case 1186: -#line 8013 "gram.y" /* yacc.c:1652 */ - { + case 1186: /* func_as: Sconst ',' Sconst */ +#line 8013 "gram.y" + { (yyval.list) = list_make2(makeString((yyvsp[-2].str)), makeString((yyvsp[0].str))); } -#line 35820 "gram.c" /* yacc.c:1652 */ +#line 36312 "gram.c" break; - case 1187: -#line 8019 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].typnam)); } -#line 35826 "gram.c" /* yacc.c:1652 */ + case 1187: /* transform_type_list: FOR TYPE_P Typename */ +#line 8019 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].typnam)); } +#line 36318 "gram.c" break; - case 1188: -#line 8020 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-4].list), (yyvsp[0].typnam)); } -#line 35832 "gram.c" /* yacc.c:1652 */ + case 1188: /* transform_type_list: transform_type_list ',' FOR TYPE_P Typename */ +#line 8020 "gram.y" + { (yyval.list) = lappend((yyvsp[-4].list), (yyvsp[0].typnam)); } +#line 36324 "gram.c" break; - case 1189: -#line 8024 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 35838 "gram.c" /* yacc.c:1652 */ + case 1189: /* opt_definition: WITH definition */ +#line 8024 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 36330 "gram.c" break; - case 1190: -#line 8025 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 35844 "gram.c" /* yacc.c:1652 */ + case 1190: /* opt_definition: %empty */ +#line 8025 "gram.y" + { (yyval.list) = NIL; } +#line 36336 "gram.c" break; - case 1191: -#line 8029 "gram.y" /* yacc.c:1652 */ - { + case 1191: /* table_func_column: param_name func_type */ +#line 8029 "gram.y" + { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-1].str); n->argType = (yyvsp[0].typnam); @@ -35853,76 +36345,76 @@ n->defexpr = NULL; (yyval.fun_param) = n; } -#line 35857 "gram.c" /* yacc.c:1652 */ +#line 36349 "gram.c" break; - case 1192: -#line 8041 "gram.y" /* yacc.c:1652 */ - { + case 1192: /* table_func_column_list: table_func_column */ +#line 8041 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].fun_param)); } -#line 35865 "gram.c" /* yacc.c:1652 */ +#line 36357 "gram.c" break; - case 1193: -#line 8045 "gram.y" /* yacc.c:1652 */ - { + case 1193: /* table_func_column_list: table_func_column_list ',' table_func_column */ +#line 8045 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } -#line 35873 "gram.c" /* yacc.c:1652 */ +#line 36365 "gram.c" break; - case 1194: -#line 8060 "gram.y" /* yacc.c:1652 */ - { + case 1194: /* AlterFunctionStmt: ALTER FUNCTION function_with_argtypes alterfunc_opt_list opt_restrict */ +#line 8060 "gram.y" + { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_FUNCTION; n->func = (yyvsp[-2].objwithargs); n->actions = (yyvsp[-1].list); (yyval.node) = (Node *) n; } -#line 35885 "gram.c" /* yacc.c:1652 */ +#line 36377 "gram.c" break; - case 1195: -#line 8068 "gram.y" /* yacc.c:1652 */ - { + case 1195: /* AlterFunctionStmt: ALTER PROCEDURE function_with_argtypes alterfunc_opt_list opt_restrict */ +#line 8068 "gram.y" + { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_PROCEDURE; n->func = (yyvsp[-2].objwithargs); n->actions = (yyvsp[-1].list); (yyval.node) = (Node *) n; } -#line 35897 "gram.c" /* yacc.c:1652 */ +#line 36389 "gram.c" break; - case 1196: -#line 8076 "gram.y" /* yacc.c:1652 */ - { + case 1196: /* AlterFunctionStmt: ALTER ROUTINE function_with_argtypes alterfunc_opt_list opt_restrict */ +#line 8076 "gram.y" + { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_ROUTINE; n->func = (yyvsp[-2].objwithargs); n->actions = (yyvsp[-1].list); (yyval.node) = (Node *) n; } -#line 35909 "gram.c" /* yacc.c:1652 */ +#line 36401 "gram.c" break; - case 1197: -#line 8087 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 35915 "gram.c" /* yacc.c:1652 */ + case 1197: /* alterfunc_opt_list: common_func_opt_item */ +#line 8087 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 36407 "gram.c" break; - case 1198: -#line 8088 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 35921 "gram.c" /* yacc.c:1652 */ + case 1198: /* alterfunc_opt_list: alterfunc_opt_list common_func_opt_item */ +#line 8088 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 36413 "gram.c" break; - case 1201: -#line 8112 "gram.y" /* yacc.c:1652 */ - { + case 1201: /* RemoveFuncStmt: DROP FUNCTION function_with_argtypes_list opt_drop_behavior */ +#line 8112 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = (yyvsp[-1].list); @@ -35931,12 +36423,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 35935 "gram.c" /* yacc.c:1652 */ +#line 36427 "gram.c" break; - case 1202: -#line 8122 "gram.y" /* yacc.c:1652 */ - { + case 1202: /* RemoveFuncStmt: DROP FUNCTION IF_P EXISTS function_with_argtypes_list opt_drop_behavior */ +#line 8122 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = (yyvsp[-1].list); @@ -35945,12 +36437,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 35949 "gram.c" /* yacc.c:1652 */ +#line 36441 "gram.c" break; - case 1203: -#line 8132 "gram.y" /* yacc.c:1652 */ - { + case 1203: /* RemoveFuncStmt: DROP PROCEDURE function_with_argtypes_list opt_drop_behavior */ +#line 8132 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_PROCEDURE; n->objects = (yyvsp[-1].list); @@ -35959,12 +36451,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 35963 "gram.c" /* yacc.c:1652 */ +#line 36455 "gram.c" break; - case 1204: -#line 8142 "gram.y" /* yacc.c:1652 */ - { + case 1204: /* RemoveFuncStmt: DROP PROCEDURE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */ +#line 8142 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_PROCEDURE; n->objects = (yyvsp[-1].list); @@ -35973,12 +36465,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 35977 "gram.c" /* yacc.c:1652 */ +#line 36469 "gram.c" break; - case 1205: -#line 8152 "gram.y" /* yacc.c:1652 */ - { + case 1205: /* RemoveFuncStmt: DROP ROUTINE function_with_argtypes_list opt_drop_behavior */ +#line 8152 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_ROUTINE; n->objects = (yyvsp[-1].list); @@ -35987,12 +36479,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 35991 "gram.c" /* yacc.c:1652 */ +#line 36483 "gram.c" break; - case 1206: -#line 8162 "gram.y" /* yacc.c:1652 */ - { + case 1206: /* RemoveFuncStmt: DROP ROUTINE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */ +#line 8162 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_ROUTINE; n->objects = (yyvsp[-1].list); @@ -36001,12 +36493,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 36005 "gram.c" /* yacc.c:1652 */ +#line 36497 "gram.c" break; - case 1207: -#line 8175 "gram.y" /* yacc.c:1652 */ - { + case 1207: /* RemoveAggrStmt: DROP AGGREGATE aggregate_with_argtypes_list opt_drop_behavior */ +#line 8175 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = (yyvsp[-1].list); @@ -36015,12 +36507,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 36019 "gram.c" /* yacc.c:1652 */ +#line 36511 "gram.c" break; - case 1208: -#line 8185 "gram.y" /* yacc.c:1652 */ - { + case 1208: /* RemoveAggrStmt: DROP AGGREGATE IF_P EXISTS aggregate_with_argtypes_list opt_drop_behavior */ +#line 8185 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = (yyvsp[-1].list); @@ -36029,12 +36521,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 36033 "gram.c" /* yacc.c:1652 */ +#line 36525 "gram.c" break; - case 1209: -#line 8198 "gram.y" /* yacc.c:1652 */ - { + case 1209: /* RemoveOperStmt: DROP OPERATOR operator_with_argtypes_list opt_drop_behavior */ +#line 8198 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = (yyvsp[-1].list); @@ -36043,12 +36535,12 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 36047 "gram.c" /* yacc.c:1652 */ +#line 36539 "gram.c" break; - case 1210: -#line 8208 "gram.y" /* yacc.c:1652 */ - { + case 1210: /* RemoveOperStmt: DROP OPERATOR IF_P EXISTS operator_with_argtypes_list opt_drop_behavior */ +#line 8208 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = (yyvsp[-1].list); @@ -36057,115 +36549,115 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 36061 "gram.c" /* yacc.c:1652 */ +#line 36553 "gram.c" break; - case 1211: -#line 8221 "gram.y" /* yacc.c:1652 */ - { + case 1211: /* oper_argtypes: '(' Typename ')' */ +#line 8221 "gram.y" + { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("missing argument"), errhint("Use NONE to denote the missing argument of a unary operator."), parser_errposition((yylsp[0])))); } -#line 36073 "gram.c" /* yacc.c:1652 */ +#line 36565 "gram.c" break; - case 1212: -#line 8229 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); } -#line 36079 "gram.c" /* yacc.c:1652 */ + case 1212: /* oper_argtypes: '(' Typename ',' Typename ')' */ +#line 8229 "gram.y" + { (yyval.list) = list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); } +#line 36571 "gram.c" break; - case 1213: -#line 8231 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2(NULL, (yyvsp[-1].typnam)); } -#line 36085 "gram.c" /* yacc.c:1652 */ + case 1213: /* oper_argtypes: '(' NONE ',' Typename ')' */ +#line 8231 "gram.y" + { (yyval.list) = list_make2(NULL, (yyvsp[-1].typnam)); } +#line 36577 "gram.c" break; - case 1214: -#line 8233 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2((yyvsp[-3].typnam), NULL); } -#line 36091 "gram.c" /* yacc.c:1652 */ + case 1214: /* oper_argtypes: '(' Typename ',' NONE ')' */ +#line 8233 "gram.y" + { (yyval.list) = list_make2((yyvsp[-3].typnam), NULL); } +#line 36583 "gram.c" break; - case 1215: -#line 8238 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 36097 "gram.c" /* yacc.c:1652 */ + case 1215: /* any_operator: all_Op */ +#line 8238 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 36589 "gram.c" break; - case 1216: -#line 8240 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); } -#line 36103 "gram.c" /* yacc.c:1652 */ + case 1216: /* any_operator: ColId '.' any_operator */ +#line 8240 "gram.y" + { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); } +#line 36595 "gram.c" break; - case 1217: -#line 8244 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } -#line 36109 "gram.c" /* yacc.c:1652 */ + case 1217: /* operator_with_argtypes_list: operator_with_argtypes */ +#line 8244 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } +#line 36601 "gram.c" break; - case 1218: -#line 8246 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } -#line 36115 "gram.c" /* yacc.c:1652 */ + case 1218: /* operator_with_argtypes_list: operator_with_argtypes_list ',' operator_with_argtypes */ +#line 8246 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } +#line 36607 "gram.c" break; - case 1219: -#line 8251 "gram.y" /* yacc.c:1652 */ - { + case 1219: /* operator_with_argtypes: any_operator oper_argtypes */ +#line 8251 "gram.y" + { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[-1].list); n->objargs = (yyvsp[0].list); (yyval.objwithargs) = n; } -#line 36126 "gram.c" /* yacc.c:1652 */ +#line 36618 "gram.c" break; - case 1220: -#line 8269 "gram.y" /* yacc.c:1652 */ - { + case 1220: /* DoStmt: DO dostmt_opt_list */ +#line 8269 "gram.y" + { DoStmt *n = makeNode(DoStmt); n->args = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 36136 "gram.c" /* yacc.c:1652 */ +#line 36628 "gram.c" break; - case 1221: -#line 8277 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 36142 "gram.c" /* yacc.c:1652 */ + case 1221: /* dostmt_opt_list: dostmt_opt_item */ +#line 8277 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 36634 "gram.c" break; - case 1222: -#line 8278 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 36148 "gram.c" /* yacc.c:1652 */ + case 1222: /* dostmt_opt_list: dostmt_opt_list dostmt_opt_item */ +#line 8278 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 36640 "gram.c" break; - case 1223: -#line 8283 "gram.y" /* yacc.c:1652 */ - { + case 1223: /* dostmt_opt_item: Sconst */ +#line 8283 "gram.y" + { (yyval.defelt) = makeDefElem("as", (Node *)makeString((yyvsp[0].str)), (yylsp[0])); } -#line 36156 "gram.c" /* yacc.c:1652 */ +#line 36648 "gram.c" break; - case 1224: -#line 8287 "gram.y" /* yacc.c:1652 */ - { + case 1224: /* dostmt_opt_item: LANGUAGE NonReservedWord_or_Sconst */ +#line 8287 "gram.y" + { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 36164 "gram.c" /* yacc.c:1652 */ +#line 36656 "gram.c" break; - case 1225: -#line 8300 "gram.y" /* yacc.c:1652 */ - { + case 1225: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH FUNCTION function_with_argtypes cast_context */ +#line 8300 "gram.y" + { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[-7].typnam); n->targettype = (yyvsp[-5].typnam); @@ -36174,12 +36666,12 @@ n->inout = false; (yyval.node) = (Node *)n; } -#line 36178 "gram.c" /* yacc.c:1652 */ +#line 36670 "gram.c" break; - case 1226: -#line 8311 "gram.y" /* yacc.c:1652 */ - { + case 1226: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITHOUT FUNCTION cast_context */ +#line 8311 "gram.y" + { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[-6].typnam); n->targettype = (yyvsp[-4].typnam); @@ -36188,12 +36680,12 @@ n->inout = false; (yyval.node) = (Node *)n; } -#line 36192 "gram.c" /* yacc.c:1652 */ +#line 36684 "gram.c" break; - case 1227: -#line 8322 "gram.y" /* yacc.c:1652 */ - { + case 1227: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH INOUT cast_context */ +#line 8322 "gram.y" + { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[-6].typnam); n->targettype = (yyvsp[-4].typnam); @@ -36202,30 +36694,30 @@ n->inout = true; (yyval.node) = (Node *)n; } -#line 36206 "gram.c" /* yacc.c:1652 */ +#line 36698 "gram.c" break; - case 1228: -#line 8333 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = COERCION_IMPLICIT; } -#line 36212 "gram.c" /* yacc.c:1652 */ + case 1228: /* cast_context: AS IMPLICIT_P */ +#line 8333 "gram.y" + { (yyval.ival) = COERCION_IMPLICIT; } +#line 36704 "gram.c" break; - case 1229: -#line 8334 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = COERCION_ASSIGNMENT; } -#line 36218 "gram.c" /* yacc.c:1652 */ + case 1229: /* cast_context: AS ASSIGNMENT */ +#line 8334 "gram.y" + { (yyval.ival) = COERCION_ASSIGNMENT; } +#line 36710 "gram.c" break; - case 1230: -#line 8335 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = COERCION_EXPLICIT; } -#line 36224 "gram.c" /* yacc.c:1652 */ + case 1230: /* cast_context: %empty */ +#line 8335 "gram.y" + { (yyval.ival) = COERCION_EXPLICIT; } +#line 36716 "gram.c" break; - case 1231: -#line 8340 "gram.y" /* yacc.c:1652 */ - { + case 1231: /* DropCastStmt: DROP CAST opt_if_exists '(' Typename AS Typename ')' opt_drop_behavior */ +#line 8340 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_CAST; n->objects = list_make1(list_make2((yyvsp[-4].typnam), (yyvsp[-2].typnam))); @@ -36234,24 +36726,24 @@ n->concurrent = false; (yyval.node) = (Node *)n; } -#line 36238 "gram.c" /* yacc.c:1652 */ +#line 36730 "gram.c" break; - case 1232: -#line 8351 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 36244 "gram.c" /* yacc.c:1652 */ + case 1232: /* opt_if_exists: IF_P EXISTS */ +#line 8351 "gram.y" + { (yyval.boolean) = true; } +#line 36736 "gram.c" break; - case 1233: -#line 8352 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 36250 "gram.c" /* yacc.c:1652 */ + case 1233: /* opt_if_exists: %empty */ +#line 8352 "gram.y" + { (yyval.boolean) = false; } +#line 36742 "gram.c" break; - case 1234: -#line 8363 "gram.y" /* yacc.c:1652 */ - { + case 1234: /* CreateTransformStmt: CREATE opt_or_replace TRANSFORM FOR Typename LANGUAGE name '(' transform_element_list ')' */ +#line 8363 "gram.y" + { CreateTransformStmt *n = makeNode(CreateTransformStmt); n->replace = (yyvsp[-8].boolean); n->type_name = (yyvsp[-5].typnam); @@ -36260,44 +36752,44 @@ n->tosql = lsecond((yyvsp[-1].list)); (yyval.node) = (Node *)n; } -#line 36264 "gram.c" /* yacc.c:1652 */ +#line 36756 "gram.c" break; - case 1235: -#line 8375 "gram.y" /* yacc.c:1652 */ - { + case 1235: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes ',' TO SQL_P WITH FUNCTION function_with_argtypes */ +#line 8375 "gram.y" + { (yyval.list) = list_make2((yyvsp[-6].objwithargs), (yyvsp[0].objwithargs)); } -#line 36272 "gram.c" /* yacc.c:1652 */ +#line 36764 "gram.c" break; - case 1236: -#line 8379 "gram.y" /* yacc.c:1652 */ - { + case 1236: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes ',' FROM SQL_P WITH FUNCTION function_with_argtypes */ +#line 8379 "gram.y" + { (yyval.list) = list_make2((yyvsp[0].objwithargs), (yyvsp[-6].objwithargs)); } -#line 36280 "gram.c" /* yacc.c:1652 */ +#line 36772 "gram.c" break; - case 1237: -#line 8383 "gram.y" /* yacc.c:1652 */ - { + case 1237: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes */ +#line 8383 "gram.y" + { (yyval.list) = list_make2((yyvsp[0].objwithargs), NULL); } -#line 36288 "gram.c" /* yacc.c:1652 */ +#line 36780 "gram.c" break; - case 1238: -#line 8387 "gram.y" /* yacc.c:1652 */ - { + case 1238: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes */ +#line 8387 "gram.y" + { (yyval.list) = list_make2(NULL, (yyvsp[0].objwithargs)); } -#line 36296 "gram.c" /* yacc.c:1652 */ +#line 36788 "gram.c" break; - case 1239: -#line 8394 "gram.y" /* yacc.c:1652 */ - { + case 1239: /* DropTransformStmt: DROP TRANSFORM opt_if_exists FOR Typename LANGUAGE name opt_drop_behavior */ +#line 8394 "gram.y" + { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRANSFORM; n->objects = list_make1(list_make2((yyvsp[-3].typnam), makeString((yyvsp[-1].str)))); @@ -36305,12 +36797,12 @@ n->missing_ok = (yyvsp[-5].boolean); (yyval.node) = (Node *)n; } -#line 36309 "gram.c" /* yacc.c:1652 */ +#line 36801 "gram.c" break; - case 1240: -#line 8414 "gram.y" /* yacc.c:1652 */ - { + case 1240: /* ReindexStmt: REINDEX reindex_target_type opt_concurrently qualified_name */ +#line 8414 "gram.y" + { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-2].ival); n->concurrent = (yyvsp[-1].boolean); @@ -36319,12 +36811,12 @@ n->options = 0; (yyval.node) = (Node *)n; } -#line 36323 "gram.c" /* yacc.c:1652 */ +#line 36815 "gram.c" break; - case 1241: -#line 8424 "gram.y" /* yacc.c:1652 */ - { + case 1241: /* ReindexStmt: REINDEX reindex_target_multitable opt_concurrently name */ +#line 8424 "gram.y" + { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-2].ival); n->concurrent = (yyvsp[-1].boolean); @@ -36333,12 +36825,12 @@ n->options = 0; (yyval.node) = (Node *)n; } -#line 36337 "gram.c" /* yacc.c:1652 */ +#line 36829 "gram.c" break; - case 1242: -#line 8434 "gram.y" /* yacc.c:1652 */ - { + case 1242: /* ReindexStmt: REINDEX '(' reindex_option_list ')' reindex_target_type opt_concurrently qualified_name */ +#line 8434 "gram.y" + { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-2].ival); n->concurrent = (yyvsp[-1].boolean); @@ -36347,12 +36839,12 @@ n->options = (yyvsp[-4].ival); (yyval.node) = (Node *)n; } -#line 36351 "gram.c" /* yacc.c:1652 */ +#line 36843 "gram.c" break; - case 1243: -#line 8444 "gram.y" /* yacc.c:1652 */ - { + case 1243: /* ReindexStmt: REINDEX '(' reindex_option_list ')' reindex_target_multitable opt_concurrently name */ +#line 8444 "gram.y" + { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-2].ival); n->concurrent = (yyvsp[-1].boolean); @@ -36361,60 +36853,60 @@ n->options = (yyvsp[-4].ival); (yyval.node) = (Node *)n; } -#line 36365 "gram.c" /* yacc.c:1652 */ +#line 36857 "gram.c" break; - case 1244: -#line 8455 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = REINDEX_OBJECT_INDEX; } -#line 36371 "gram.c" /* yacc.c:1652 */ + case 1244: /* reindex_target_type: INDEX */ +#line 8455 "gram.y" + { (yyval.ival) = REINDEX_OBJECT_INDEX; } +#line 36863 "gram.c" break; - case 1245: -#line 8456 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = REINDEX_OBJECT_TABLE; } -#line 36377 "gram.c" /* yacc.c:1652 */ + case 1245: /* reindex_target_type: TABLE */ +#line 8456 "gram.y" + { (yyval.ival) = REINDEX_OBJECT_TABLE; } +#line 36869 "gram.c" break; - case 1246: -#line 8459 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = REINDEX_OBJECT_SCHEMA; } -#line 36383 "gram.c" /* yacc.c:1652 */ + case 1246: /* reindex_target_multitable: SCHEMA */ +#line 8459 "gram.y" + { (yyval.ival) = REINDEX_OBJECT_SCHEMA; } +#line 36875 "gram.c" break; - case 1247: -#line 8460 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = REINDEX_OBJECT_SYSTEM; } -#line 36389 "gram.c" /* yacc.c:1652 */ + case 1247: /* reindex_target_multitable: SYSTEM_P */ +#line 8460 "gram.y" + { (yyval.ival) = REINDEX_OBJECT_SYSTEM; } +#line 36881 "gram.c" break; - case 1248: -#line 8461 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = REINDEX_OBJECT_DATABASE; } -#line 36395 "gram.c" /* yacc.c:1652 */ + case 1248: /* reindex_target_multitable: DATABASE */ +#line 8461 "gram.y" + { (yyval.ival) = REINDEX_OBJECT_DATABASE; } +#line 36887 "gram.c" break; - case 1249: -#line 8464 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[0].ival); } -#line 36401 "gram.c" /* yacc.c:1652 */ + case 1249: /* reindex_option_list: reindex_option_elem */ +#line 8464 "gram.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 36893 "gram.c" break; - case 1250: -#line 8465 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } -#line 36407 "gram.c" /* yacc.c:1652 */ + case 1250: /* reindex_option_list: reindex_option_list ',' reindex_option_elem */ +#line 8465 "gram.y" + { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } +#line 36899 "gram.c" break; - case 1251: -#line 8468 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = REINDEXOPT_VERBOSE; } -#line 36413 "gram.c" /* yacc.c:1652 */ + case 1251: /* reindex_option_elem: VERBOSE */ +#line 8468 "gram.y" + { (yyval.ival) = REINDEXOPT_VERBOSE; } +#line 36905 "gram.c" break; - case 1252: -#line 8479 "gram.y" /* yacc.c:1652 */ - { + case 1252: /* AlterTblSpcStmt: ALTER TABLESPACE name SET reloptions */ +#line 8479 "gram.y" + { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[-2].str); @@ -36422,12 +36914,12 @@ n->isReset = false; (yyval.node) = (Node *)n; } -#line 36426 "gram.c" /* yacc.c:1652 */ +#line 36918 "gram.c" break; - case 1253: -#line 8488 "gram.y" /* yacc.c:1652 */ - { + case 1253: /* AlterTblSpcStmt: ALTER TABLESPACE name RESET reloptions */ +#line 8488 "gram.y" + { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[-2].str); @@ -36435,12 +36927,12 @@ n->isReset = true; (yyval.node) = (Node *)n; } -#line 36439 "gram.c" /* yacc.c:1652 */ +#line 36931 "gram.c" break; - case 1254: -#line 8505 "gram.y" /* yacc.c:1652 */ - { + case 1254: /* RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name */ +#line 8505 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-3].objwithargs); @@ -36448,12 +36940,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36452 "gram.c" /* yacc.c:1652 */ +#line 36944 "gram.c" break; - case 1255: -#line 8514 "gram.y" /* yacc.c:1652 */ - { + case 1255: /* RenameStmt: ALTER COLLATION any_name RENAME TO name */ +#line 8514 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[-3].list); @@ -36461,12 +36953,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36465 "gram.c" /* yacc.c:1652 */ +#line 36957 "gram.c" break; - case 1256: -#line 8523 "gram.y" /* yacc.c:1652 */ - { + case 1256: /* RenameStmt: ALTER CONVERSION_P any_name RENAME TO name */ +#line 8523 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[-3].list); @@ -36474,12 +36966,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36478 "gram.c" /* yacc.c:1652 */ +#line 36970 "gram.c" break; - case 1257: -#line 8532 "gram.y" /* yacc.c:1652 */ - { + case 1257: /* RenameStmt: ALTER DATABASE database_name RENAME TO database_name */ +#line 8532 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DATABASE; n->subname = (yyvsp[-3].str); @@ -36487,12 +36979,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36491 "gram.c" /* yacc.c:1652 */ +#line 36983 "gram.c" break; - case 1258: -#line 8541 "gram.y" /* yacc.c:1652 */ - { + case 1258: /* RenameStmt: ALTER DOMAIN_P any_name RENAME TO name */ +#line 8541 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-3].list); @@ -36500,12 +36992,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36504 "gram.c" /* yacc.c:1652 */ +#line 36996 "gram.c" break; - case 1259: -#line 8550 "gram.y" /* yacc.c:1652 */ - { + case 1259: /* RenameStmt: ALTER DOMAIN_P any_name RENAME CONSTRAINT name TO name */ +#line 8550 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMCONSTRAINT; n->object = (Node *) (yyvsp[-5].list); @@ -36513,12 +37005,12 @@ n->newname = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 36517 "gram.c" /* yacc.c:1652 */ +#line 37009 "gram.c" break; - case 1260: -#line 8559 "gram.y" /* yacc.c:1652 */ - { + case 1260: /* RenameStmt: ALTER FOREIGN DATA_P WRAPPER name RENAME TO name */ +#line 8559 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[-3].str)); @@ -36526,12 +37018,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36530 "gram.c" /* yacc.c:1652 */ +#line 37022 "gram.c" break; - case 1261: -#line 8568 "gram.y" /* yacc.c:1652 */ - { + case 1261: /* RenameStmt: ALTER FUNCTION function_with_argtypes RENAME TO name */ +#line 8568 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-3].objwithargs); @@ -36539,12 +37031,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36543 "gram.c" /* yacc.c:1652 */ +#line 37035 "gram.c" break; - case 1262: -#line 8577 "gram.y" /* yacc.c:1652 */ - { + case 1262: /* RenameStmt: ALTER GROUP_P RoleId RENAME TO RoleId */ +#line 8577 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[-3].str); @@ -36552,12 +37044,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36556 "gram.c" /* yacc.c:1652 */ +#line 37048 "gram.c" break; - case 1263: -#line 8586 "gram.y" /* yacc.c:1652 */ - { + case 1263: /* RenameStmt: ALTER opt_procedural LANGUAGE name RENAME TO name */ +#line 8586 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[-3].str)); @@ -36565,12 +37057,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36569 "gram.c" /* yacc.c:1652 */ +#line 37061 "gram.c" break; - case 1264: -#line 8595 "gram.y" /* yacc.c:1652 */ - { + case 1264: /* RenameStmt: ALTER OPERATOR CLASS any_name USING access_method RENAME TO name */ +#line 8595 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); @@ -36578,12 +37070,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36582 "gram.c" /* yacc.c:1652 */ +#line 37074 "gram.c" break; - case 1265: -#line 8604 "gram.y" /* yacc.c:1652 */ - { + case 1265: /* RenameStmt: ALTER OPERATOR FAMILY any_name USING access_method RENAME TO name */ +#line 8604 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); @@ -36591,12 +37083,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36595 "gram.c" /* yacc.c:1652 */ +#line 37087 "gram.c" break; - case 1266: -#line 8613 "gram.y" /* yacc.c:1652 */ - { + case 1266: /* RenameStmt: ALTER POLICY name ON qualified_name RENAME TO name */ +#line 8613 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_POLICY; n->relation = (yyvsp[-3].range); @@ -36605,12 +37097,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36609 "gram.c" /* yacc.c:1652 */ +#line 37101 "gram.c" break; - case 1267: -#line 8623 "gram.y" /* yacc.c:1652 */ - { + case 1267: /* RenameStmt: ALTER POLICY IF_P EXISTS name ON qualified_name RENAME TO name */ +#line 8623 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_POLICY; n->relation = (yyvsp[-3].range); @@ -36619,12 +37111,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36623 "gram.c" /* yacc.c:1652 */ +#line 37115 "gram.c" break; - case 1268: -#line 8633 "gram.y" /* yacc.c:1652 */ - { + case 1268: /* RenameStmt: ALTER PROCEDURE function_with_argtypes RENAME TO name */ +#line 8633 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-3].objwithargs); @@ -36632,12 +37124,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36636 "gram.c" /* yacc.c:1652 */ +#line 37128 "gram.c" break; - case 1269: -#line 8642 "gram.y" /* yacc.c:1652 */ - { + case 1269: /* RenameStmt: ALTER PUBLICATION name RENAME TO name */ +#line 8642 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_PUBLICATION; n->object = (Node *) makeString((yyvsp[-3].str)); @@ -36645,12 +37137,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36649 "gram.c" /* yacc.c:1652 */ +#line 37141 "gram.c" break; - case 1270: -#line 8651 "gram.y" /* yacc.c:1652 */ - { + case 1270: /* RenameStmt: ALTER ROUTINE function_with_argtypes RENAME TO name */ +#line 8651 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-3].objwithargs); @@ -36658,12 +37150,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36662 "gram.c" /* yacc.c:1652 */ +#line 37154 "gram.c" break; - case 1271: -#line 8660 "gram.y" /* yacc.c:1652 */ - { + case 1271: /* RenameStmt: ALTER SCHEMA name RENAME TO name */ +#line 8660 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SCHEMA; n->subname = (yyvsp[-3].str); @@ -36671,12 +37163,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36675 "gram.c" /* yacc.c:1652 */ +#line 37167 "gram.c" break; - case 1272: -#line 8669 "gram.y" /* yacc.c:1652 */ - { + case 1272: /* RenameStmt: ALTER SERVER name RENAME TO name */ +#line 8669 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[-3].str)); @@ -36684,12 +37176,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36688 "gram.c" /* yacc.c:1652 */ +#line 37180 "gram.c" break; - case 1273: -#line 8678 "gram.y" /* yacc.c:1652 */ - { + case 1273: /* RenameStmt: ALTER SUBSCRIPTION name RENAME TO name */ +#line 8678 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SUBSCRIPTION; n->object = (Node *) makeString((yyvsp[-3].str)); @@ -36697,12 +37189,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36701 "gram.c" /* yacc.c:1652 */ +#line 37193 "gram.c" break; - case 1274: -#line 8687 "gram.y" /* yacc.c:1652 */ - { + case 1274: /* RenameStmt: ALTER TABLE relation_expr RENAME TO name */ +#line 8687 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); @@ -36711,12 +37203,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36715 "gram.c" /* yacc.c:1652 */ +#line 37207 "gram.c" break; - case 1275: -#line 8697 "gram.y" /* yacc.c:1652 */ - { + case 1275: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME TO name */ +#line 8697 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); @@ -36725,12 +37217,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36729 "gram.c" /* yacc.c:1652 */ +#line 37221 "gram.c" break; - case 1276: -#line 8707 "gram.y" /* yacc.c:1652 */ - { + case 1276: /* RenameStmt: ALTER SEQUENCE qualified_name RENAME TO name */ +#line 8707 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); @@ -36739,12 +37231,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36743 "gram.c" /* yacc.c:1652 */ +#line 37235 "gram.c" break; - case 1277: -#line 8717 "gram.y" /* yacc.c:1652 */ - { + case 1277: /* RenameStmt: ALTER SEQUENCE IF_P EXISTS qualified_name RENAME TO name */ +#line 8717 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); @@ -36753,12 +37245,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36757 "gram.c" /* yacc.c:1652 */ +#line 37249 "gram.c" break; - case 1278: -#line 8727 "gram.y" /* yacc.c:1652 */ - { + case 1278: /* RenameStmt: ALTER VIEW qualified_name RENAME TO name */ +#line 8727 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); @@ -36767,12 +37259,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36771 "gram.c" /* yacc.c:1652 */ +#line 37263 "gram.c" break; - case 1279: -#line 8737 "gram.y" /* yacc.c:1652 */ - { + case 1279: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME TO name */ +#line 8737 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); @@ -36781,12 +37273,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36785 "gram.c" /* yacc.c:1652 */ +#line 37277 "gram.c" break; - case 1280: -#line 8747 "gram.y" /* yacc.c:1652 */ - { + case 1280: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME TO name */ +#line 8747 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); @@ -36795,12 +37287,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36799 "gram.c" /* yacc.c:1652 */ +#line 37291 "gram.c" break; - case 1281: -#line 8757 "gram.y" /* yacc.c:1652 */ - { + case 1281: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME TO name */ +#line 8757 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); @@ -36809,12 +37301,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36813 "gram.c" /* yacc.c:1652 */ +#line 37305 "gram.c" break; - case 1282: -#line 8767 "gram.y" /* yacc.c:1652 */ - { + case 1282: /* RenameStmt: ALTER INDEX qualified_name RENAME TO name */ +#line 8767 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[-3].range); @@ -36823,12 +37315,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36827 "gram.c" /* yacc.c:1652 */ +#line 37319 "gram.c" break; - case 1283: -#line 8777 "gram.y" /* yacc.c:1652 */ - { + case 1283: /* RenameStmt: ALTER INDEX IF_P EXISTS qualified_name RENAME TO name */ +#line 8777 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[-3].range); @@ -36837,12 +37329,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36841 "gram.c" /* yacc.c:1652 */ +#line 37333 "gram.c" break; - case 1284: -#line 8787 "gram.y" /* yacc.c:1652 */ - { + case 1284: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME TO name */ +#line 8787 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); @@ -36851,12 +37343,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36855 "gram.c" /* yacc.c:1652 */ +#line 37347 "gram.c" break; - case 1285: -#line 8797 "gram.y" /* yacc.c:1652 */ - { + case 1285: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME TO name */ +#line 8797 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); @@ -36865,12 +37357,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36869 "gram.c" /* yacc.c:1652 */ +#line 37361 "gram.c" break; - case 1286: -#line 8807 "gram.y" /* yacc.c:1652 */ - { + case 1286: /* RenameStmt: ALTER TABLE relation_expr RENAME opt_column name TO name */ +#line 8807 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; @@ -36880,12 +37372,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36884 "gram.c" /* yacc.c:1652 */ +#line 37376 "gram.c" break; - case 1287: -#line 8818 "gram.y" /* yacc.c:1652 */ - { + case 1287: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */ +#line 8818 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; @@ -36895,12 +37387,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36899 "gram.c" /* yacc.c:1652 */ +#line 37391 "gram.c" break; - case 1288: -#line 8829 "gram.y" /* yacc.c:1652 */ - { + case 1288: /* RenameStmt: ALTER VIEW qualified_name RENAME opt_column name TO name */ +#line 8829 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_VIEW; @@ -36910,12 +37402,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36914 "gram.c" /* yacc.c:1652 */ +#line 37406 "gram.c" break; - case 1289: -#line 8840 "gram.y" /* yacc.c:1652 */ - { + case 1289: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */ +#line 8840 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_VIEW; @@ -36925,12 +37417,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36929 "gram.c" /* yacc.c:1652 */ +#line 37421 "gram.c" break; - case 1290: -#line 8851 "gram.y" /* yacc.c:1652 */ - { + case 1290: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME opt_column name TO name */ +#line 8851 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_MATVIEW; @@ -36940,12 +37432,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36944 "gram.c" /* yacc.c:1652 */ +#line 37436 "gram.c" break; - case 1291: -#line 8862 "gram.y" /* yacc.c:1652 */ - { + case 1291: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */ +#line 8862 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_MATVIEW; @@ -36955,12 +37447,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36959 "gram.c" /* yacc.c:1652 */ +#line 37451 "gram.c" break; - case 1292: -#line 8873 "gram.y" /* yacc.c:1652 */ - { + case 1292: /* RenameStmt: ALTER TABLE relation_expr RENAME CONSTRAINT name TO name */ +#line 8873 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABCONSTRAINT; n->relation = (yyvsp[-5].range); @@ -36969,12 +37461,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 36973 "gram.c" /* yacc.c:1652 */ +#line 37465 "gram.c" break; - case 1293: -#line 8883 "gram.y" /* yacc.c:1652 */ - { + case 1293: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME CONSTRAINT name TO name */ +#line 8883 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABCONSTRAINT; n->relation = (yyvsp[-5].range); @@ -36983,12 +37475,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 36987 "gram.c" /* yacc.c:1652 */ +#line 37479 "gram.c" break; - case 1294: -#line 8893 "gram.y" /* yacc.c:1652 */ - { + case 1294: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME opt_column name TO name */ +#line 8893 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; @@ -36998,12 +37490,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37002 "gram.c" /* yacc.c:1652 */ +#line 37494 "gram.c" break; - case 1295: -#line 8904 "gram.y" /* yacc.c:1652 */ - { + case 1295: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */ +#line 8904 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; @@ -37013,12 +37505,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 37017 "gram.c" /* yacc.c:1652 */ +#line 37509 "gram.c" break; - case 1296: -#line 8915 "gram.y" /* yacc.c:1652 */ - { + case 1296: /* RenameStmt: ALTER RULE name ON qualified_name RENAME TO name */ +#line 8915 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_RULE; n->relation = (yyvsp[-3].range); @@ -37027,12 +37519,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37031 "gram.c" /* yacc.c:1652 */ +#line 37523 "gram.c" break; - case 1297: -#line 8925 "gram.y" /* yacc.c:1652 */ - { + case 1297: /* RenameStmt: ALTER TRIGGER name ON qualified_name RENAME TO name */ +#line 8925 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TRIGGER; n->relation = (yyvsp[-3].range); @@ -37041,24 +37533,24 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37045 "gram.c" /* yacc.c:1652 */ +#line 37537 "gram.c" break; - case 1298: -#line 8935 "gram.y" /* yacc.c:1652 */ - { + case 1298: /* RenameStmt: ALTER EVENT TRIGGER name RENAME TO name */ +#line 8935 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 37057 "gram.c" /* yacc.c:1652 */ +#line 37549 "gram.c" break; - case 1299: -#line 8943 "gram.y" /* yacc.c:1652 */ - { + case 1299: /* RenameStmt: ALTER ROLE RoleId RENAME TO RoleId */ +#line 8943 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[-3].str); @@ -37066,12 +37558,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37070 "gram.c" /* yacc.c:1652 */ +#line 37562 "gram.c" break; - case 1300: -#line 8952 "gram.y" /* yacc.c:1652 */ - { + case 1300: /* RenameStmt: ALTER USER RoleId RENAME TO RoleId */ +#line 8952 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[-3].str); @@ -37079,12 +37571,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37083 "gram.c" /* yacc.c:1652 */ +#line 37575 "gram.c" break; - case 1301: -#line 8961 "gram.y" /* yacc.c:1652 */ - { + case 1301: /* RenameStmt: ALTER TABLESPACE name RENAME TO name */ +#line 8961 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLESPACE; n->subname = (yyvsp[-3].str); @@ -37092,12 +37584,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37096 "gram.c" /* yacc.c:1652 */ +#line 37588 "gram.c" break; - case 1302: -#line 8970 "gram.y" /* yacc.c:1652 */ - { + case 1302: /* RenameStmt: ALTER STATISTICS any_name RENAME TO name */ +#line 8970 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[-3].list); @@ -37105,12 +37597,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37109 "gram.c" /* yacc.c:1652 */ +#line 37601 "gram.c" break; - case 1303: -#line 8979 "gram.y" /* yacc.c:1652 */ - { + case 1303: /* RenameStmt: ALTER TEXT_P SEARCH PARSER any_name RENAME TO name */ +#line 8979 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[-3].list); @@ -37118,12 +37610,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37122 "gram.c" /* yacc.c:1652 */ +#line 37614 "gram.c" break; - case 1304: -#line 8988 "gram.y" /* yacc.c:1652 */ - { + case 1304: /* RenameStmt: ALTER TEXT_P SEARCH DICTIONARY any_name RENAME TO name */ +#line 8988 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[-3].list); @@ -37131,12 +37623,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37135 "gram.c" /* yacc.c:1652 */ +#line 37627 "gram.c" break; - case 1305: -#line 8997 "gram.y" /* yacc.c:1652 */ - { + case 1305: /* RenameStmt: ALTER TEXT_P SEARCH TEMPLATE any_name RENAME TO name */ +#line 8997 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[-3].list); @@ -37144,12 +37636,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37148 "gram.c" /* yacc.c:1652 */ +#line 37640 "gram.c" break; - case 1306: -#line 9006 "gram.y" /* yacc.c:1652 */ - { + case 1306: /* RenameStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name RENAME TO name */ +#line 9006 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[-3].list); @@ -37157,12 +37649,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37161 "gram.c" /* yacc.c:1652 */ +#line 37653 "gram.c" break; - case 1307: -#line 9015 "gram.y" /* yacc.c:1652 */ - { + case 1307: /* RenameStmt: ALTER TYPE_P any_name RENAME TO name */ +#line 9015 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TYPE; n->object = (Node *) (yyvsp[-3].list); @@ -37170,12 +37662,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37174 "gram.c" /* yacc.c:1652 */ +#line 37666 "gram.c" break; - case 1308: -#line 9024 "gram.y" /* yacc.c:1652 */ - { + case 1308: /* RenameStmt: ALTER TYPE_P any_name RENAME ATTRIBUTE name TO name opt_drop_behavior */ +#line 9024 "gram.y" + { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ATTRIBUTE; n->relationType = OBJECT_TYPE; @@ -37186,36 +37678,36 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37190 "gram.c" /* yacc.c:1652 */ +#line 37682 "gram.c" break; - case 1309: -#line 9037 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = COLUMN; } -#line 37196 "gram.c" /* yacc.c:1652 */ + case 1309: /* opt_column: COLUMN */ +#line 9037 "gram.y" + { (yyval.ival) = COLUMN; } +#line 37688 "gram.c" break; - case 1310: -#line 9038 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 37202 "gram.c" /* yacc.c:1652 */ + case 1310: /* opt_column: %empty */ +#line 9038 "gram.y" + { (yyval.ival) = 0; } +#line 37694 "gram.c" break; - case 1311: -#line 9041 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 1; } -#line 37208 "gram.c" /* yacc.c:1652 */ + case 1311: /* opt_set_data: SET DATA_P */ +#line 9041 "gram.y" + { (yyval.ival) = 1; } +#line 37700 "gram.c" break; - case 1312: -#line 9042 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 37214 "gram.c" /* yacc.c:1652 */ + case 1312: /* opt_set_data: %empty */ +#line 9042 "gram.y" + { (yyval.ival) = 0; } +#line 37706 "gram.c" break; - case 1313: -#line 9053 "gram.y" /* yacc.c:1652 */ - { + case 1313: /* AlterObjectDependsStmt: ALTER FUNCTION function_with_argtypes opt_no DEPENDS ON EXTENSION name */ +#line 9053 "gram.y" + { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-5].objwithargs); @@ -37223,12 +37715,12 @@ n->remove = (yyvsp[-4].boolean); (yyval.node) = (Node *)n; } -#line 37227 "gram.c" /* yacc.c:1652 */ +#line 37719 "gram.c" break; - case 1314: -#line 9062 "gram.y" /* yacc.c:1652 */ - { + case 1314: /* AlterObjectDependsStmt: ALTER PROCEDURE function_with_argtypes opt_no DEPENDS ON EXTENSION name */ +#line 9062 "gram.y" + { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-5].objwithargs); @@ -37236,12 +37728,12 @@ n->remove = (yyvsp[-4].boolean); (yyval.node) = (Node *)n; } -#line 37240 "gram.c" /* yacc.c:1652 */ +#line 37732 "gram.c" break; - case 1315: -#line 9071 "gram.y" /* yacc.c:1652 */ - { + case 1315: /* AlterObjectDependsStmt: ALTER ROUTINE function_with_argtypes opt_no DEPENDS ON EXTENSION name */ +#line 9071 "gram.y" + { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-5].objwithargs); @@ -37249,12 +37741,12 @@ n->remove = (yyvsp[-4].boolean); (yyval.node) = (Node *)n; } -#line 37253 "gram.c" /* yacc.c:1652 */ +#line 37745 "gram.c" break; - case 1316: -#line 9080 "gram.y" /* yacc.c:1652 */ - { + case 1316: /* AlterObjectDependsStmt: ALTER TRIGGER name ON qualified_name opt_no DEPENDS ON EXTENSION name */ +#line 9080 "gram.y" + { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_TRIGGER; n->relation = (yyvsp[-5].range); @@ -37263,12 +37755,12 @@ n->remove = (yyvsp[-4].boolean); (yyval.node) = (Node *)n; } -#line 37267 "gram.c" /* yacc.c:1652 */ +#line 37759 "gram.c" break; - case 1317: -#line 9090 "gram.y" /* yacc.c:1652 */ - { + case 1317: /* AlterObjectDependsStmt: ALTER MATERIALIZED VIEW qualified_name opt_no DEPENDS ON EXTENSION name */ +#line 9090 "gram.y" + { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[-5].range); @@ -37276,12 +37768,12 @@ n->remove = (yyvsp[-4].boolean); (yyval.node) = (Node *)n; } -#line 37280 "gram.c" /* yacc.c:1652 */ +#line 37772 "gram.c" break; - case 1318: -#line 9099 "gram.y" /* yacc.c:1652 */ - { + case 1318: /* AlterObjectDependsStmt: ALTER INDEX qualified_name opt_no DEPENDS ON EXTENSION name */ +#line 9099 "gram.y" + { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_INDEX; n->relation = (yyvsp[-5].range); @@ -37289,24 +37781,24 @@ n->remove = (yyvsp[-4].boolean); (yyval.node) = (Node *)n; } -#line 37293 "gram.c" /* yacc.c:1652 */ +#line 37785 "gram.c" break; - case 1319: -#line 9109 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 37299 "gram.c" /* yacc.c:1652 */ + case 1319: /* opt_no: NO */ +#line 9109 "gram.y" + { (yyval.boolean) = true; } +#line 37791 "gram.c" break; - case 1320: -#line 9110 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 37305 "gram.c" /* yacc.c:1652 */ + case 1320: /* opt_no: %empty */ +#line 9110 "gram.y" + { (yyval.boolean) = false; } +#line 37797 "gram.c" break; - case 1321: -#line 9121 "gram.y" /* yacc.c:1652 */ - { + case 1321: /* AlterObjectSchemaStmt: ALTER AGGREGATE aggregate_with_argtypes SET SCHEMA name */ +#line 9121 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-3].objwithargs); @@ -37314,12 +37806,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37318 "gram.c" /* yacc.c:1652 */ +#line 37810 "gram.c" break; - case 1322: -#line 9130 "gram.y" /* yacc.c:1652 */ - { + case 1322: /* AlterObjectSchemaStmt: ALTER COLLATION any_name SET SCHEMA name */ +#line 9130 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[-3].list); @@ -37327,12 +37819,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37331 "gram.c" /* yacc.c:1652 */ +#line 37823 "gram.c" break; - case 1323: -#line 9139 "gram.y" /* yacc.c:1652 */ - { + case 1323: /* AlterObjectSchemaStmt: ALTER CONVERSION_P any_name SET SCHEMA name */ +#line 9139 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[-3].list); @@ -37340,12 +37832,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37344 "gram.c" /* yacc.c:1652 */ +#line 37836 "gram.c" break; - case 1324: -#line 9148 "gram.y" /* yacc.c:1652 */ - { + case 1324: /* AlterObjectSchemaStmt: ALTER DOMAIN_P any_name SET SCHEMA name */ +#line 9148 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-3].list); @@ -37353,12 +37845,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37357 "gram.c" /* yacc.c:1652 */ +#line 37849 "gram.c" break; - case 1325: -#line 9157 "gram.y" /* yacc.c:1652 */ - { + case 1325: /* AlterObjectSchemaStmt: ALTER EXTENSION name SET SCHEMA name */ +#line 9157 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_EXTENSION; n->object = (Node *) makeString((yyvsp[-3].str)); @@ -37366,12 +37858,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37370 "gram.c" /* yacc.c:1652 */ +#line 37862 "gram.c" break; - case 1326: -#line 9166 "gram.y" /* yacc.c:1652 */ - { + case 1326: /* AlterObjectSchemaStmt: ALTER FUNCTION function_with_argtypes SET SCHEMA name */ +#line 9166 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-3].objwithargs); @@ -37379,12 +37871,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37383 "gram.c" /* yacc.c:1652 */ +#line 37875 "gram.c" break; - case 1327: -#line 9175 "gram.y" /* yacc.c:1652 */ - { + case 1327: /* AlterObjectSchemaStmt: ALTER OPERATOR operator_with_argtypes SET SCHEMA name */ +#line 9175 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[-3].objwithargs); @@ -37392,12 +37884,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37396 "gram.c" /* yacc.c:1652 */ +#line 37888 "gram.c" break; - case 1328: -#line 9184 "gram.y" /* yacc.c:1652 */ - { + case 1328: /* AlterObjectSchemaStmt: ALTER OPERATOR CLASS any_name USING access_method SET SCHEMA name */ +#line 9184 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); @@ -37405,12 +37897,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37409 "gram.c" /* yacc.c:1652 */ +#line 37901 "gram.c" break; - case 1329: -#line 9193 "gram.y" /* yacc.c:1652 */ - { + case 1329: /* AlterObjectSchemaStmt: ALTER OPERATOR FAMILY any_name USING access_method SET SCHEMA name */ +#line 9193 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); @@ -37418,12 +37910,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37422 "gram.c" /* yacc.c:1652 */ +#line 37914 "gram.c" break; - case 1330: -#line 9202 "gram.y" /* yacc.c:1652 */ - { + case 1330: /* AlterObjectSchemaStmt: ALTER PROCEDURE function_with_argtypes SET SCHEMA name */ +#line 9202 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-3].objwithargs); @@ -37431,12 +37923,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37435 "gram.c" /* yacc.c:1652 */ +#line 37927 "gram.c" break; - case 1331: -#line 9211 "gram.y" /* yacc.c:1652 */ - { + case 1331: /* AlterObjectSchemaStmt: ALTER ROUTINE function_with_argtypes SET SCHEMA name */ +#line 9211 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-3].objwithargs); @@ -37444,12 +37936,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37448 "gram.c" /* yacc.c:1652 */ +#line 37940 "gram.c" break; - case 1332: -#line 9220 "gram.y" /* yacc.c:1652 */ - { + case 1332: /* AlterObjectSchemaStmt: ALTER TABLE relation_expr SET SCHEMA name */ +#line 9220 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); @@ -37457,12 +37949,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37461 "gram.c" /* yacc.c:1652 */ +#line 37953 "gram.c" break; - case 1333: -#line 9229 "gram.y" /* yacc.c:1652 */ - { + case 1333: /* AlterObjectSchemaStmt: ALTER TABLE IF_P EXISTS relation_expr SET SCHEMA name */ +#line 9229 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); @@ -37470,12 +37962,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 37474 "gram.c" /* yacc.c:1652 */ +#line 37966 "gram.c" break; - case 1334: -#line 9238 "gram.y" /* yacc.c:1652 */ - { + case 1334: /* AlterObjectSchemaStmt: ALTER STATISTICS any_name SET SCHEMA name */ +#line 9238 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[-3].list); @@ -37483,12 +37975,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37487 "gram.c" /* yacc.c:1652 */ +#line 37979 "gram.c" break; - case 1335: -#line 9247 "gram.y" /* yacc.c:1652 */ - { + case 1335: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH PARSER any_name SET SCHEMA name */ +#line 9247 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[-3].list); @@ -37496,12 +37988,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37500 "gram.c" /* yacc.c:1652 */ +#line 37992 "gram.c" break; - case 1336: -#line 9256 "gram.y" /* yacc.c:1652 */ - { + case 1336: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH DICTIONARY any_name SET SCHEMA name */ +#line 9256 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[-3].list); @@ -37509,12 +38001,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37513 "gram.c" /* yacc.c:1652 */ +#line 38005 "gram.c" break; - case 1337: -#line 9265 "gram.y" /* yacc.c:1652 */ - { + case 1337: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH TEMPLATE any_name SET SCHEMA name */ +#line 9265 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[-3].list); @@ -37522,12 +38014,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37526 "gram.c" /* yacc.c:1652 */ +#line 38018 "gram.c" break; - case 1338: -#line 9274 "gram.y" /* yacc.c:1652 */ - { + case 1338: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name SET SCHEMA name */ +#line 9274 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[-3].list); @@ -37535,12 +38027,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37539 "gram.c" /* yacc.c:1652 */ +#line 38031 "gram.c" break; - case 1339: -#line 9283 "gram.y" /* yacc.c:1652 */ - { + case 1339: /* AlterObjectSchemaStmt: ALTER SEQUENCE qualified_name SET SCHEMA name */ +#line 9283 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); @@ -37548,12 +38040,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37552 "gram.c" /* yacc.c:1652 */ +#line 38044 "gram.c" break; - case 1340: -#line 9292 "gram.y" /* yacc.c:1652 */ - { + case 1340: /* AlterObjectSchemaStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SET SCHEMA name */ +#line 9292 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); @@ -37561,12 +38053,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 37565 "gram.c" /* yacc.c:1652 */ +#line 38057 "gram.c" break; - case 1341: -#line 9301 "gram.y" /* yacc.c:1652 */ - { + case 1341: /* AlterObjectSchemaStmt: ALTER VIEW qualified_name SET SCHEMA name */ +#line 9301 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); @@ -37574,12 +38066,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37578 "gram.c" /* yacc.c:1652 */ +#line 38070 "gram.c" break; - case 1342: -#line 9310 "gram.y" /* yacc.c:1652 */ - { + case 1342: /* AlterObjectSchemaStmt: ALTER VIEW IF_P EXISTS qualified_name SET SCHEMA name */ +#line 9310 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); @@ -37587,12 +38079,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 37591 "gram.c" /* yacc.c:1652 */ +#line 38083 "gram.c" break; - case 1343: -#line 9319 "gram.y" /* yacc.c:1652 */ - { + case 1343: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW qualified_name SET SCHEMA name */ +#line 9319 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); @@ -37600,12 +38092,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37604 "gram.c" /* yacc.c:1652 */ +#line 38096 "gram.c" break; - case 1344: -#line 9328 "gram.y" /* yacc.c:1652 */ - { + case 1344: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name SET SCHEMA name */ +#line 9328 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); @@ -37613,12 +38105,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 37617 "gram.c" /* yacc.c:1652 */ +#line 38109 "gram.c" break; - case 1345: -#line 9337 "gram.y" /* yacc.c:1652 */ - { + case 1345: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE relation_expr SET SCHEMA name */ +#line 9337 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); @@ -37626,12 +38118,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37630 "gram.c" /* yacc.c:1652 */ +#line 38122 "gram.c" break; - case 1346: -#line 9346 "gram.y" /* yacc.c:1652 */ - { + case 1346: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr SET SCHEMA name */ +#line 9346 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); @@ -37639,12 +38131,12 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 37643 "gram.c" /* yacc.c:1652 */ +#line 38135 "gram.c" break; - case 1347: -#line 9355 "gram.y" /* yacc.c:1652 */ - { + case 1347: /* AlterObjectSchemaStmt: ALTER TYPE_P any_name SET SCHEMA name */ +#line 9355 "gram.y" + { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TYPE; n->object = (Node *) (yyvsp[-3].list); @@ -37652,376 +38144,376 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 37656 "gram.c" /* yacc.c:1652 */ +#line 38148 "gram.c" break; - case 1348: -#line 9373 "gram.y" /* yacc.c:1652 */ - { + case 1348: /* AlterOperatorStmt: ALTER OPERATOR operator_with_argtypes SET '(' operator_def_list ')' */ +#line 9373 "gram.y" + { AlterOperatorStmt *n = makeNode(AlterOperatorStmt); n->opername = (yyvsp[-4].objwithargs); n->options = (yyvsp[-1].list); (yyval.node) = (Node *)n; } -#line 37667 "gram.c" /* yacc.c:1652 */ +#line 38159 "gram.c" break; - case 1349: -#line 9381 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 37673 "gram.c" /* yacc.c:1652 */ + case 1349: /* operator_def_list: operator_def_elem */ +#line 9381 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 38165 "gram.c" break; - case 1350: -#line 9382 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 37679 "gram.c" /* yacc.c:1652 */ + case 1350: /* operator_def_list: operator_def_list ',' operator_def_elem */ +#line 9382 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 38171 "gram.c" break; - case 1351: -#line 9386 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); } -#line 37685 "gram.c" /* yacc.c:1652 */ + case 1351: /* operator_def_elem: ColLabel '=' NONE */ +#line 9386 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); } +#line 38177 "gram.c" break; - case 1352: -#line 9388 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } -#line 37691 "gram.c" /* yacc.c:1652 */ + case 1352: /* operator_def_elem: ColLabel '=' operator_def_arg */ +#line 9388 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } +#line 38183 "gram.c" break; - case 1353: -#line 9393 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)(yyvsp[0].typnam); } -#line 37697 "gram.c" /* yacc.c:1652 */ + case 1353: /* operator_def_arg: func_type */ +#line 9393 "gram.y" + { (yyval.node) = (Node *)(yyvsp[0].typnam); } +#line 38189 "gram.c" break; - case 1354: -#line 9394 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } -#line 37703 "gram.c" /* yacc.c:1652 */ + case 1354: /* operator_def_arg: reserved_keyword */ +#line 9394 "gram.y" + { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } +#line 38195 "gram.c" break; - case 1355: -#line 9395 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)(yyvsp[0].list); } -#line 37709 "gram.c" /* yacc.c:1652 */ + case 1355: /* operator_def_arg: qual_all_Op */ +#line 9395 "gram.y" + { (yyval.node) = (Node *)(yyvsp[0].list); } +#line 38201 "gram.c" break; - case 1356: -#line 9396 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)(yyvsp[0].value); } -#line 37715 "gram.c" /* yacc.c:1652 */ + case 1356: /* operator_def_arg: NumericOnly */ +#line 9396 "gram.y" + { (yyval.node) = (Node *)(yyvsp[0].value); } +#line 38207 "gram.c" break; - case 1357: -#line 9397 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } -#line 37721 "gram.c" /* yacc.c:1652 */ + case 1357: /* operator_def_arg: Sconst */ +#line 9397 "gram.y" + { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } +#line 38213 "gram.c" break; - case 1358: -#line 9410 "gram.y" /* yacc.c:1652 */ - { + case 1358: /* AlterTypeStmt: ALTER TYPE_P any_name SET '(' operator_def_list ')' */ +#line 9410 "gram.y" + { AlterTypeStmt *n = makeNode(AlterTypeStmt); n->typeName = (yyvsp[-4].list); n->options = (yyvsp[-1].list); (yyval.node) = (Node *)n; } -#line 37732 "gram.c" /* yacc.c:1652 */ +#line 38224 "gram.c" break; - case 1359: -#line 9425 "gram.y" /* yacc.c:1652 */ - { + case 1359: /* AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec */ +#line 9425 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37744 "gram.c" /* yacc.c:1652 */ +#line 38236 "gram.c" break; - case 1360: -#line 9433 "gram.y" /* yacc.c:1652 */ - { + case 1360: /* AlterOwnerStmt: ALTER COLLATION any_name OWNER TO RoleSpec */ +#line 9433 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37756 "gram.c" /* yacc.c:1652 */ +#line 38248 "gram.c" break; - case 1361: -#line 9441 "gram.y" /* yacc.c:1652 */ - { + case 1361: /* AlterOwnerStmt: ALTER CONVERSION_P any_name OWNER TO RoleSpec */ +#line 9441 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37768 "gram.c" /* yacc.c:1652 */ +#line 38260 "gram.c" break; - case 1362: -#line 9449 "gram.y" /* yacc.c:1652 */ - { + case 1362: /* AlterOwnerStmt: ALTER DATABASE database_name OWNER TO RoleSpec */ +#line 9449 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DATABASE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37780 "gram.c" /* yacc.c:1652 */ +#line 38272 "gram.c" break; - case 1363: -#line 9457 "gram.y" /* yacc.c:1652 */ - { + case 1363: /* AlterOwnerStmt: ALTER DOMAIN_P any_name OWNER TO RoleSpec */ +#line 9457 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37792 "gram.c" /* yacc.c:1652 */ +#line 38284 "gram.c" break; - case 1364: -#line 9465 "gram.y" /* yacc.c:1652 */ - { + case 1364: /* AlterOwnerStmt: ALTER FUNCTION function_with_argtypes OWNER TO RoleSpec */ +#line 9465 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37804 "gram.c" /* yacc.c:1652 */ +#line 38296 "gram.c" break; - case 1365: -#line 9473 "gram.y" /* yacc.c:1652 */ - { + case 1365: /* AlterOwnerStmt: ALTER opt_procedural LANGUAGE name OWNER TO RoleSpec */ +#line 9473 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37816 "gram.c" /* yacc.c:1652 */ +#line 38308 "gram.c" break; - case 1366: -#line 9481 "gram.y" /* yacc.c:1652 */ - { + case 1366: /* AlterOwnerStmt: ALTER LARGE_P OBJECT_P NumericOnly OWNER TO RoleSpec */ +#line 9481 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[-3].value); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37828 "gram.c" /* yacc.c:1652 */ +#line 38320 "gram.c" break; - case 1367: -#line 9489 "gram.y" /* yacc.c:1652 */ - { + case 1367: /* AlterOwnerStmt: ALTER OPERATOR operator_with_argtypes OWNER TO RoleSpec */ +#line 9489 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37840 "gram.c" /* yacc.c:1652 */ +#line 38332 "gram.c" break; - case 1368: -#line 9497 "gram.y" /* yacc.c:1652 */ - { + case 1368: /* AlterOwnerStmt: ALTER OPERATOR CLASS any_name USING access_method OWNER TO RoleSpec */ +#line 9497 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37852 "gram.c" /* yacc.c:1652 */ +#line 38344 "gram.c" break; - case 1369: -#line 9505 "gram.y" /* yacc.c:1652 */ - { + case 1369: /* AlterOwnerStmt: ALTER OPERATOR FAMILY any_name USING access_method OWNER TO RoleSpec */ +#line 9505 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37864 "gram.c" /* yacc.c:1652 */ +#line 38356 "gram.c" break; - case 1370: -#line 9513 "gram.y" /* yacc.c:1652 */ - { + case 1370: /* AlterOwnerStmt: ALTER PROCEDURE function_with_argtypes OWNER TO RoleSpec */ +#line 9513 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37876 "gram.c" /* yacc.c:1652 */ +#line 38368 "gram.c" break; - case 1371: -#line 9521 "gram.y" /* yacc.c:1652 */ - { + case 1371: /* AlterOwnerStmt: ALTER ROUTINE function_with_argtypes OWNER TO RoleSpec */ +#line 9521 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37888 "gram.c" /* yacc.c:1652 */ +#line 38380 "gram.c" break; - case 1372: -#line 9529 "gram.y" /* yacc.c:1652 */ - { + case 1372: /* AlterOwnerStmt: ALTER SCHEMA name OWNER TO RoleSpec */ +#line 9529 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SCHEMA; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37900 "gram.c" /* yacc.c:1652 */ +#line 38392 "gram.c" break; - case 1373: -#line 9537 "gram.y" /* yacc.c:1652 */ - { + case 1373: /* AlterOwnerStmt: ALTER TYPE_P any_name OWNER TO RoleSpec */ +#line 9537 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TYPE; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37912 "gram.c" /* yacc.c:1652 */ +#line 38404 "gram.c" break; - case 1374: -#line 9545 "gram.y" /* yacc.c:1652 */ - { + case 1374: /* AlterOwnerStmt: ALTER TABLESPACE name OWNER TO RoleSpec */ +#line 9545 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TABLESPACE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37924 "gram.c" /* yacc.c:1652 */ +#line 38416 "gram.c" break; - case 1375: -#line 9553 "gram.y" /* yacc.c:1652 */ - { + case 1375: /* AlterOwnerStmt: ALTER STATISTICS any_name OWNER TO RoleSpec */ +#line 9553 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37936 "gram.c" /* yacc.c:1652 */ +#line 38428 "gram.c" break; - case 1376: -#line 9561 "gram.y" /* yacc.c:1652 */ - { + case 1376: /* AlterOwnerStmt: ALTER TEXT_P SEARCH DICTIONARY any_name OWNER TO RoleSpec */ +#line 9561 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37948 "gram.c" /* yacc.c:1652 */ +#line 38440 "gram.c" break; - case 1377: -#line 9569 "gram.y" /* yacc.c:1652 */ - { + case 1377: /* AlterOwnerStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name OWNER TO RoleSpec */ +#line 9569 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37960 "gram.c" /* yacc.c:1652 */ +#line 38452 "gram.c" break; - case 1378: -#line 9577 "gram.y" /* yacc.c:1652 */ - { + case 1378: /* AlterOwnerStmt: ALTER FOREIGN DATA_P WRAPPER name OWNER TO RoleSpec */ +#line 9577 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37972 "gram.c" /* yacc.c:1652 */ +#line 38464 "gram.c" break; - case 1379: -#line 9585 "gram.y" /* yacc.c:1652 */ - { + case 1379: /* AlterOwnerStmt: ALTER SERVER name OWNER TO RoleSpec */ +#line 9585 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37984 "gram.c" /* yacc.c:1652 */ +#line 38476 "gram.c" break; - case 1380: -#line 9593 "gram.y" /* yacc.c:1652 */ - { + case 1380: /* AlterOwnerStmt: ALTER EVENT TRIGGER name OWNER TO RoleSpec */ +#line 9593 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 37996 "gram.c" /* yacc.c:1652 */ +#line 38488 "gram.c" break; - case 1381: -#line 9601 "gram.y" /* yacc.c:1652 */ - { + case 1381: /* AlterOwnerStmt: ALTER PUBLICATION name OWNER TO RoleSpec */ +#line 9601 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_PUBLICATION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 38008 "gram.c" /* yacc.c:1652 */ +#line 38500 "gram.c" break; - case 1382: -#line 9609 "gram.y" /* yacc.c:1652 */ - { + case 1382: /* AlterOwnerStmt: ALTER SUBSCRIPTION name OWNER TO RoleSpec */ +#line 9609 "gram.y" + { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SUBSCRIPTION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } -#line 38020 "gram.c" /* yacc.c:1652 */ +#line 38512 "gram.c" break; - case 1383: -#line 9627 "gram.y" /* yacc.c:1652 */ - { + case 1383: /* CreatePublicationStmt: CREATE PUBLICATION name opt_publication_for_tables opt_definition */ +#line 9627 "gram.y" + { CreatePublicationStmt *n = makeNode(CreatePublicationStmt); n->pubname = (yyvsp[-2].str); n->options = (yyvsp[0].list); @@ -38036,87 +38528,87 @@ } (yyval.node) = (Node *)n; } -#line 38040 "gram.c" /* yacc.c:1652 */ +#line 38532 "gram.c" break; - case 1384: -#line 9645 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 38046 "gram.c" /* yacc.c:1652 */ + case 1384: /* opt_publication_for_tables: publication_for_tables */ +#line 9645 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 38538 "gram.c" break; - case 1385: -#line 9646 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 38052 "gram.c" /* yacc.c:1652 */ + case 1385: /* opt_publication_for_tables: %empty */ +#line 9646 "gram.y" + { (yyval.node) = NULL; } +#line 38544 "gram.c" break; - case 1386: -#line 9651 "gram.y" /* yacc.c:1652 */ - { + case 1386: /* publication_for_tables: FOR TABLE relation_expr_list */ +#line 9651 "gram.y" + { (yyval.node) = (Node *) (yyvsp[0].list); } -#line 38060 "gram.c" /* yacc.c:1652 */ +#line 38552 "gram.c" break; - case 1387: -#line 9655 "gram.y" /* yacc.c:1652 */ - { + case 1387: /* publication_for_tables: FOR ALL TABLES */ +#line 9655 "gram.y" + { (yyval.node) = (Node *) makeInteger(true); } -#line 38068 "gram.c" /* yacc.c:1652 */ +#line 38560 "gram.c" break; - case 1388: -#line 9675 "gram.y" /* yacc.c:1652 */ - { + case 1388: /* AlterPublicationStmt: ALTER PUBLICATION name SET definition */ +#line 9675 "gram.y" + { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38079 "gram.c" /* yacc.c:1652 */ +#line 38571 "gram.c" break; - case 1389: -#line 9682 "gram.y" /* yacc.c:1652 */ - { + case 1389: /* AlterPublicationStmt: ALTER PUBLICATION name ADD_P TABLE relation_expr_list */ +#line 9682 "gram.y" + { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-3].str); n->tables = (yyvsp[0].list); n->tableAction = DEFELEM_ADD; (yyval.node) = (Node *)n; } -#line 38091 "gram.c" /* yacc.c:1652 */ +#line 38583 "gram.c" break; - case 1390: -#line 9690 "gram.y" /* yacc.c:1652 */ - { + case 1390: /* AlterPublicationStmt: ALTER PUBLICATION name SET TABLE relation_expr_list */ +#line 9690 "gram.y" + { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-3].str); n->tables = (yyvsp[0].list); n->tableAction = DEFELEM_SET; (yyval.node) = (Node *)n; } -#line 38103 "gram.c" /* yacc.c:1652 */ +#line 38595 "gram.c" break; - case 1391: -#line 9698 "gram.y" /* yacc.c:1652 */ - { + case 1391: /* AlterPublicationStmt: ALTER PUBLICATION name DROP TABLE relation_expr_list */ +#line 9698 "gram.y" + { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-3].str); n->tables = (yyvsp[0].list); n->tableAction = DEFELEM_DROP; (yyval.node) = (Node *)n; } -#line 38115 "gram.c" /* yacc.c:1652 */ +#line 38607 "gram.c" break; - case 1392: -#line 9715 "gram.y" /* yacc.c:1652 */ - { + case 1392: /* CreateSubscriptionStmt: CREATE SUBSCRIPTION name CONNECTION Sconst PUBLICATION publication_name_list opt_definition */ +#line 9715 "gram.y" + { CreateSubscriptionStmt *n = makeNode(CreateSubscriptionStmt); n->subname = (yyvsp[-5].str); @@ -38125,34 +38617,34 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38129 "gram.c" /* yacc.c:1652 */ +#line 38621 "gram.c" break; - case 1393: -#line 9728 "gram.y" /* yacc.c:1652 */ - { + case 1393: /* publication_name_list: publication_name_item */ +#line 9728 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].value)); } -#line 38137 "gram.c" /* yacc.c:1652 */ +#line 38629 "gram.c" break; - case 1394: -#line 9732 "gram.y" /* yacc.c:1652 */ - { + case 1394: /* publication_name_list: publication_name_list ',' publication_name_item */ +#line 9732 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } -#line 38145 "gram.c" /* yacc.c:1652 */ +#line 38637 "gram.c" break; - case 1395: -#line 9738 "gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeString((yyvsp[0].str)); } -#line 38151 "gram.c" /* yacc.c:1652 */ + case 1395: /* publication_name_item: ColLabel */ +#line 9738 "gram.y" + { (yyval.value) = makeString((yyvsp[0].str)); } +#line 38643 "gram.c" break; - case 1396: -#line 9748 "gram.y" /* yacc.c:1652 */ - { + case 1396: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET definition */ +#line 9748 "gram.y" + { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_OPTIONS; @@ -38160,12 +38652,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38164 "gram.c" /* yacc.c:1652 */ +#line 38656 "gram.c" break; - case 1397: -#line 9757 "gram.y" /* yacc.c:1652 */ - { + case 1397: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name CONNECTION Sconst */ +#line 9757 "gram.y" + { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_CONNECTION; @@ -38173,12 +38665,12 @@ n->conninfo = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38177 "gram.c" /* yacc.c:1652 */ +#line 38669 "gram.c" break; - case 1398: -#line 9766 "gram.y" /* yacc.c:1652 */ - { + case 1398: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name REFRESH PUBLICATION opt_definition */ +#line 9766 "gram.y" + { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_REFRESH; @@ -38186,12 +38678,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38190 "gram.c" /* yacc.c:1652 */ +#line 38682 "gram.c" break; - case 1399: -#line 9775 "gram.y" /* yacc.c:1652 */ - { + case 1399: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET PUBLICATION publication_name_list opt_definition */ +#line 9775 "gram.y" + { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_PUBLICATION; @@ -38200,12 +38692,12 @@ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38204 "gram.c" /* yacc.c:1652 */ +#line 38696 "gram.c" break; - case 1400: -#line 9785 "gram.y" /* yacc.c:1652 */ - { + case 1400: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ENABLE_P */ +#line 9785 "gram.y" + { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_ENABLED; @@ -38214,12 +38706,12 @@ (Node *)makeInteger(true), (yylsp[-3]))); (yyval.node) = (Node *)n; } -#line 38218 "gram.c" /* yacc.c:1652 */ +#line 38710 "gram.c" break; - case 1401: -#line 9795 "gram.y" /* yacc.c:1652 */ - { + case 1401: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DISABLE_P */ +#line 9795 "gram.y" + { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_ENABLED; @@ -38228,36 +38720,36 @@ (Node *)makeInteger(false), (yylsp[-3]))); (yyval.node) = (Node *)n; } -#line 38232 "gram.c" /* yacc.c:1652 */ +#line 38724 "gram.c" break; - case 1402: -#line 9813 "gram.y" /* yacc.c:1652 */ - { + case 1402: /* DropSubscriptionStmt: DROP SUBSCRIPTION name opt_drop_behavior */ +#line 9813 "gram.y" + { DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); n->subname = (yyvsp[-1].str); n->missing_ok = false; n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *) n; } -#line 38244 "gram.c" /* yacc.c:1652 */ +#line 38736 "gram.c" break; - case 1403: -#line 9821 "gram.y" /* yacc.c:1652 */ - { + case 1403: /* DropSubscriptionStmt: DROP SUBSCRIPTION IF_P EXISTS name opt_drop_behavior */ +#line 9821 "gram.y" + { DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); n->subname = (yyvsp[-1].str); n->missing_ok = true; n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *) n; } -#line 38256 "gram.c" /* yacc.c:1652 */ +#line 38748 "gram.c" break; - case 1404: -#line 9839 "gram.y" /* yacc.c:1652 */ - { + case 1404: /* RuleStmt: CREATE opt_or_replace RULE name AS ON event TO qualified_name where_clause DO opt_instead RuleActionList */ +#line 9839 "gram.y" + { RuleStmt *n = makeNode(RuleStmt); n->replace = (yyvsp[-11].boolean); n->relation = (yyvsp[-4].range); @@ -38268,410 +38760,410 @@ n->actions = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38272 "gram.c" /* yacc.c:1652 */ +#line 38764 "gram.c" break; - case 1405: -#line 9853 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 38278 "gram.c" /* yacc.c:1652 */ + case 1405: /* RuleActionList: NOTHING */ +#line 9853 "gram.y" + { (yyval.list) = NIL; } +#line 38770 "gram.c" break; - case 1406: -#line 9854 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 38284 "gram.c" /* yacc.c:1652 */ + case 1406: /* RuleActionList: RuleActionStmt */ +#line 9854 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 38776 "gram.c" break; - case 1407: -#line 9855 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 38290 "gram.c" /* yacc.c:1652 */ + case 1407: /* RuleActionList: '(' RuleActionMulti ')' */ +#line 9855 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 38782 "gram.c" break; - case 1408: -#line 9861 "gram.y" /* yacc.c:1652 */ - { if ((yyvsp[0].node) != NULL) + case 1408: /* RuleActionMulti: RuleActionMulti ';' RuleActionStmtOrEmpty */ +#line 9861 "gram.y" + { if ((yyvsp[0].node) != NULL) (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); else (yyval.list) = (yyvsp[-2].list); } -#line 38300 "gram.c" /* yacc.c:1652 */ +#line 38792 "gram.c" break; - case 1409: -#line 9867 "gram.y" /* yacc.c:1652 */ - { if ((yyvsp[0].node) != NULL) + case 1409: /* RuleActionMulti: RuleActionStmtOrEmpty */ +#line 9867 "gram.y" + { if ((yyvsp[0].node) != NULL) (yyval.list) = list_make1((yyvsp[0].node)); else (yyval.list) = NIL; } -#line 38310 "gram.c" /* yacc.c:1652 */ +#line 38802 "gram.c" break; - case 1415: -#line 9883 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 38316 "gram.c" /* yacc.c:1652 */ + case 1415: /* RuleActionStmtOrEmpty: RuleActionStmt */ +#line 9883 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 38808 "gram.c" break; - case 1416: -#line 9884 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 38322 "gram.c" /* yacc.c:1652 */ + case 1416: /* RuleActionStmtOrEmpty: %empty */ +#line 9884 "gram.y" + { (yyval.node) = NULL; } +#line 38814 "gram.c" break; - case 1417: -#line 9887 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CMD_SELECT; } -#line 38328 "gram.c" /* yacc.c:1652 */ + case 1417: /* event: SELECT */ +#line 9887 "gram.y" + { (yyval.ival) = CMD_SELECT; } +#line 38820 "gram.c" break; - case 1418: -#line 9888 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CMD_UPDATE; } -#line 38334 "gram.c" /* yacc.c:1652 */ + case 1418: /* event: UPDATE */ +#line 9888 "gram.y" + { (yyval.ival) = CMD_UPDATE; } +#line 38826 "gram.c" break; - case 1419: -#line 9889 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CMD_DELETE; } -#line 38340 "gram.c" /* yacc.c:1652 */ + case 1419: /* event: DELETE_P */ +#line 9889 "gram.y" + { (yyval.ival) = CMD_DELETE; } +#line 38832 "gram.c" break; - case 1420: -#line 9890 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CMD_INSERT; } -#line 38346 "gram.c" /* yacc.c:1652 */ + case 1420: /* event: INSERT */ +#line 9890 "gram.y" + { (yyval.ival) = CMD_INSERT; } +#line 38838 "gram.c" break; - case 1421: -#line 9894 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 38352 "gram.c" /* yacc.c:1652 */ + case 1421: /* opt_instead: INSTEAD */ +#line 9894 "gram.y" + { (yyval.boolean) = true; } +#line 38844 "gram.c" break; - case 1422: -#line 9895 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 38358 "gram.c" /* yacc.c:1652 */ + case 1422: /* opt_instead: ALSO */ +#line 9895 "gram.y" + { (yyval.boolean) = false; } +#line 38850 "gram.c" break; - case 1423: -#line 9896 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 38364 "gram.c" /* yacc.c:1652 */ + case 1423: /* opt_instead: %empty */ +#line 9896 "gram.y" + { (yyval.boolean) = false; } +#line 38856 "gram.c" break; - case 1424: -#line 9909 "gram.y" /* yacc.c:1652 */ - { + case 1424: /* NotifyStmt: NOTIFY ColId notify_payload */ +#line 9909 "gram.y" + { NotifyStmt *n = makeNode(NotifyStmt); n->conditionname = (yyvsp[-1].str); n->payload = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38375 "gram.c" /* yacc.c:1652 */ +#line 38867 "gram.c" break; - case 1425: -#line 9918 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 38381 "gram.c" /* yacc.c:1652 */ + case 1425: /* notify_payload: ',' Sconst */ +#line 9918 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 38873 "gram.c" break; - case 1426: -#line 9919 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 38387 "gram.c" /* yacc.c:1652 */ + case 1426: /* notify_payload: %empty */ +#line 9919 "gram.y" + { (yyval.str) = NULL; } +#line 38879 "gram.c" break; - case 1427: -#line 9923 "gram.y" /* yacc.c:1652 */ - { + case 1427: /* ListenStmt: LISTEN ColId */ +#line 9923 "gram.y" + { ListenStmt *n = makeNode(ListenStmt); n->conditionname = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38397 "gram.c" /* yacc.c:1652 */ +#line 38889 "gram.c" break; - case 1428: -#line 9932 "gram.y" /* yacc.c:1652 */ - { + case 1428: /* UnlistenStmt: UNLISTEN ColId */ +#line 9932 "gram.y" + { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38407 "gram.c" /* yacc.c:1652 */ +#line 38899 "gram.c" break; - case 1429: -#line 9938 "gram.y" /* yacc.c:1652 */ - { + case 1429: /* UnlistenStmt: UNLISTEN '*' */ +#line 9938 "gram.y" + { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = NULL; (yyval.node) = (Node *)n; } -#line 38417 "gram.c" /* yacc.c:1652 */ +#line 38909 "gram.c" break; - case 1430: -#line 9957 "gram.y" /* yacc.c:1652 */ - { + case 1430: /* TransactionStmt: ABORT_P opt_transaction opt_transaction_chain */ +#line 9957 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 38429 "gram.c" /* yacc.c:1652 */ +#line 38921 "gram.c" break; - case 1431: -#line 9965 "gram.y" /* yacc.c:1652 */ - { + case 1431: /* TransactionStmt: BEGIN_P opt_transaction transaction_mode_list_or_empty */ +#line 9965 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_BEGIN; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38440 "gram.c" /* yacc.c:1652 */ +#line 38932 "gram.c" break; - case 1432: -#line 9972 "gram.y" /* yacc.c:1652 */ - { + case 1432: /* TransactionStmt: START TRANSACTION transaction_mode_list_or_empty */ +#line 9972 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_START; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38451 "gram.c" /* yacc.c:1652 */ +#line 38943 "gram.c" break; - case 1433: -#line 9979 "gram.y" /* yacc.c:1652 */ - { + case 1433: /* TransactionStmt: COMMIT opt_transaction opt_transaction_chain */ +#line 9979 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 38463 "gram.c" /* yacc.c:1652 */ +#line 38955 "gram.c" break; - case 1434: -#line 9987 "gram.y" /* yacc.c:1652 */ - { + case 1434: /* TransactionStmt: END_P opt_transaction opt_transaction_chain */ +#line 9987 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 38475 "gram.c" /* yacc.c:1652 */ +#line 38967 "gram.c" break; - case 1435: -#line 9995 "gram.y" /* yacc.c:1652 */ - { + case 1435: /* TransactionStmt: ROLLBACK opt_transaction opt_transaction_chain */ +#line 9995 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 38487 "gram.c" /* yacc.c:1652 */ +#line 38979 "gram.c" break; - case 1436: -#line 10003 "gram.y" /* yacc.c:1652 */ - { + case 1436: /* TransactionStmt: SAVEPOINT ColId */ +#line 10003 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_SAVEPOINT; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38498 "gram.c" /* yacc.c:1652 */ +#line 38990 "gram.c" break; - case 1437: -#line 10010 "gram.y" /* yacc.c:1652 */ - { + case 1437: /* TransactionStmt: RELEASE SAVEPOINT ColId */ +#line 10010 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38509 "gram.c" /* yacc.c:1652 */ +#line 39001 "gram.c" break; - case 1438: -#line 10017 "gram.y" /* yacc.c:1652 */ - { + case 1438: /* TransactionStmt: RELEASE ColId */ +#line 10017 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38520 "gram.c" /* yacc.c:1652 */ +#line 39012 "gram.c" break; - case 1439: -#line 10024 "gram.y" /* yacc.c:1652 */ - { + case 1439: /* TransactionStmt: ROLLBACK opt_transaction TO SAVEPOINT ColId */ +#line 10024 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38531 "gram.c" /* yacc.c:1652 */ +#line 39023 "gram.c" break; - case 1440: -#line 10031 "gram.y" /* yacc.c:1652 */ - { + case 1440: /* TransactionStmt: ROLLBACK opt_transaction TO ColId */ +#line 10031 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38542 "gram.c" /* yacc.c:1652 */ +#line 39034 "gram.c" break; - case 1441: -#line 10038 "gram.y" /* yacc.c:1652 */ - { + case 1441: /* TransactionStmt: PREPARE TRANSACTION Sconst */ +#line 10038 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_PREPARE; n->gid = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38553 "gram.c" /* yacc.c:1652 */ +#line 39045 "gram.c" break; - case 1442: -#line 10045 "gram.y" /* yacc.c:1652 */ - { + case 1442: /* TransactionStmt: COMMIT PREPARED Sconst */ +#line 10045 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT_PREPARED; n->gid = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38564 "gram.c" /* yacc.c:1652 */ +#line 39056 "gram.c" break; - case 1443: -#line 10052 "gram.y" /* yacc.c:1652 */ - { + case 1443: /* TransactionStmt: ROLLBACK PREPARED Sconst */ +#line 10052 "gram.y" + { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_PREPARED; n->gid = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38575 "gram.c" /* yacc.c:1652 */ +#line 39067 "gram.c" break; - case 1444: -#line 10060 "gram.y" /* yacc.c:1652 */ - {} -#line 38581 "gram.c" /* yacc.c:1652 */ + case 1444: /* opt_transaction: WORK */ +#line 10060 "gram.y" + {} +#line 39073 "gram.c" break; - case 1445: -#line 10061 "gram.y" /* yacc.c:1652 */ - {} -#line 38587 "gram.c" /* yacc.c:1652 */ + case 1445: /* opt_transaction: TRANSACTION */ +#line 10061 "gram.y" + {} +#line 39079 "gram.c" break; - case 1446: -#line 10062 "gram.y" /* yacc.c:1652 */ - {} -#line 38593 "gram.c" /* yacc.c:1652 */ + case 1446: /* opt_transaction: %empty */ +#line 10062 "gram.y" + {} +#line 39085 "gram.c" break; - case 1447: -#line 10067 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("transaction_isolation", + case 1447: /* transaction_mode_item: ISOLATION LEVEL iso_level */ +#line 10067 "gram.y" + { (yyval.defelt) = makeDefElem("transaction_isolation", makeStringConst((yyvsp[0].str), (yylsp[0])), (yylsp[-2])); } -#line 38600 "gram.c" /* yacc.c:1652 */ +#line 39092 "gram.c" break; - case 1448: -#line 10070 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("transaction_read_only", + case 1448: /* transaction_mode_item: READ ONLY */ +#line 10070 "gram.y" + { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(true, (yylsp[-1])), (yylsp[-1])); } -#line 38607 "gram.c" /* yacc.c:1652 */ +#line 39099 "gram.c" break; - case 1449: -#line 10073 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("transaction_read_only", + case 1449: /* transaction_mode_item: READ WRITE */ +#line 10073 "gram.y" + { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(false, (yylsp[-1])), (yylsp[-1])); } -#line 38614 "gram.c" /* yacc.c:1652 */ +#line 39106 "gram.c" break; - case 1450: -#line 10076 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("transaction_deferrable", + case 1450: /* transaction_mode_item: DEFERRABLE */ +#line 10076 "gram.y" + { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(true, (yylsp[0])), (yylsp[0])); } -#line 38621 "gram.c" /* yacc.c:1652 */ +#line 39113 "gram.c" break; - case 1451: -#line 10079 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("transaction_deferrable", + case 1451: /* transaction_mode_item: NOT DEFERRABLE */ +#line 10079 "gram.y" + { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(false, (yylsp[-1])), (yylsp[-1])); } -#line 38628 "gram.c" /* yacc.c:1652 */ +#line 39120 "gram.c" break; - case 1452: -#line 10086 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 38634 "gram.c" /* yacc.c:1652 */ + case 1452: /* transaction_mode_list: transaction_mode_item */ +#line 10086 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 39126 "gram.c" break; - case 1453: -#line 10088 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 38640 "gram.c" /* yacc.c:1652 */ + case 1453: /* transaction_mode_list: transaction_mode_list ',' transaction_mode_item */ +#line 10088 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 39132 "gram.c" break; - case 1454: -#line 10090 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 38646 "gram.c" /* yacc.c:1652 */ + case 1454: /* transaction_mode_list: transaction_mode_list transaction_mode_item */ +#line 10090 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 39138 "gram.c" break; - case 1456: -#line 10096 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 38652 "gram.c" /* yacc.c:1652 */ + case 1456: /* transaction_mode_list_or_empty: %empty */ +#line 10096 "gram.y" + { (yyval.list) = NIL; } +#line 39144 "gram.c" break; - case 1457: -#line 10100 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 38658 "gram.c" /* yacc.c:1652 */ + case 1457: /* opt_transaction_chain: AND CHAIN */ +#line 10100 "gram.y" + { (yyval.boolean) = true; } +#line 39150 "gram.c" break; - case 1458: -#line 10101 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 38664 "gram.c" /* yacc.c:1652 */ + case 1458: /* opt_transaction_chain: AND NO CHAIN */ +#line 10101 "gram.y" + { (yyval.boolean) = false; } +#line 39156 "gram.c" break; - case 1459: -#line 10102 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 38670 "gram.c" /* yacc.c:1652 */ + case 1459: /* opt_transaction_chain: %empty */ +#line 10102 "gram.y" + { (yyval.boolean) = false; } +#line 39162 "gram.c" break; - case 1460: -#line 10116 "gram.y" /* yacc.c:1652 */ - { + case 1460: /* ViewStmt: CREATE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */ +#line 10116 "gram.y" + { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-5].range); n->view->relpersistence = (yyvsp[-7].ival); @@ -38682,12 +39174,12 @@ n->withCheckOption = (yyvsp[0].ival); (yyval.node) = (Node *) n; } -#line 38686 "gram.c" /* yacc.c:1652 */ +#line 39178 "gram.c" break; - case 1461: -#line 10129 "gram.y" /* yacc.c:1652 */ - { + case 1461: /* ViewStmt: CREATE OR REPLACE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */ +#line 10129 "gram.y" + { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-5].range); n->view->relpersistence = (yyvsp[-7].ival); @@ -38698,12 +39190,12 @@ n->withCheckOption = (yyvsp[0].ival); (yyval.node) = (Node *) n; } -#line 38702 "gram.c" /* yacc.c:1652 */ +#line 39194 "gram.c" break; - case 1462: -#line 10142 "gram.y" /* yacc.c:1652 */ - { + case 1462: /* ViewStmt: CREATE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */ +#line 10142 "gram.y" + { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-7].range); n->view->relpersistence = (yyvsp[-10].ival); @@ -38719,12 +39211,12 @@ parser_errposition((yylsp[0])))); (yyval.node) = (Node *) n; } -#line 38723 "gram.c" /* yacc.c:1652 */ +#line 39215 "gram.c" break; - case 1463: -#line 10160 "gram.y" /* yacc.c:1652 */ - { + case 1463: /* ViewStmt: CREATE OR REPLACE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */ +#line 10160 "gram.y" + { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-7].range); n->view->relpersistence = (yyvsp[-10].ival); @@ -38740,306 +39232,306 @@ parser_errposition((yylsp[0])))); (yyval.node) = (Node *) n; } -#line 38744 "gram.c" /* yacc.c:1652 */ +#line 39236 "gram.c" break; - case 1464: -#line 10179 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CASCADED_CHECK_OPTION; } -#line 38750 "gram.c" /* yacc.c:1652 */ + case 1464: /* opt_check_option: WITH CHECK OPTION */ +#line 10179 "gram.y" + { (yyval.ival) = CASCADED_CHECK_OPTION; } +#line 39242 "gram.c" break; - case 1465: -#line 10180 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CASCADED_CHECK_OPTION; } -#line 38756 "gram.c" /* yacc.c:1652 */ + case 1465: /* opt_check_option: WITH CASCADED CHECK OPTION */ +#line 10180 "gram.y" + { (yyval.ival) = CASCADED_CHECK_OPTION; } +#line 39248 "gram.c" break; - case 1466: -#line 10181 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = LOCAL_CHECK_OPTION; } -#line 38762 "gram.c" /* yacc.c:1652 */ + case 1466: /* opt_check_option: WITH LOCAL CHECK OPTION */ +#line 10181 "gram.y" + { (yyval.ival) = LOCAL_CHECK_OPTION; } +#line 39254 "gram.c" break; - case 1467: -#line 10182 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = NO_CHECK_OPTION; } -#line 38768 "gram.c" /* yacc.c:1652 */ + case 1467: /* opt_check_option: %empty */ +#line 10182 "gram.y" + { (yyval.ival) = NO_CHECK_OPTION; } +#line 39260 "gram.c" break; - case 1468: -#line 10193 "gram.y" /* yacc.c:1652 */ - { + case 1468: /* LoadStmt: LOAD file_name */ +#line 10193 "gram.y" + { LoadStmt *n = makeNode(LoadStmt); n->filename = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 38778 "gram.c" /* yacc.c:1652 */ +#line 39270 "gram.c" break; - case 1469: -#line 10209 "gram.y" /* yacc.c:1652 */ - { + case 1469: /* CreatedbStmt: CREATE DATABASE database_name opt_with createdb_opt_list */ +#line 10209 "gram.y" + { CreatedbStmt *n = makeNode(CreatedbStmt); n->dbname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38789 "gram.c" /* yacc.c:1652 */ +#line 39281 "gram.c" break; - case 1470: -#line 10218 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 38795 "gram.c" /* yacc.c:1652 */ + case 1470: /* createdb_opt_list: createdb_opt_items */ +#line 10218 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 39287 "gram.c" break; - case 1471: -#line 10219 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 38801 "gram.c" /* yacc.c:1652 */ + case 1471: /* createdb_opt_list: %empty */ +#line 10219 "gram.y" + { (yyval.list) = NIL; } +#line 39293 "gram.c" break; - case 1472: -#line 10223 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 38807 "gram.c" /* yacc.c:1652 */ + case 1472: /* createdb_opt_items: createdb_opt_item */ +#line 10223 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 39299 "gram.c" break; - case 1473: -#line 10224 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 38813 "gram.c" /* yacc.c:1652 */ + case 1473: /* createdb_opt_items: createdb_opt_items createdb_opt_item */ +#line 10224 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 39305 "gram.c" break; - case 1474: -#line 10229 "gram.y" /* yacc.c:1652 */ - { + case 1474: /* createdb_opt_item: createdb_opt_name opt_equal SignedIconst */ +#line 10229 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-2])); } -#line 38821 "gram.c" /* yacc.c:1652 */ +#line 39313 "gram.c" break; - case 1475: -#line 10233 "gram.y" /* yacc.c:1652 */ - { + case 1475: /* createdb_opt_item: createdb_opt_name opt_equal opt_boolean_or_string */ +#line 10233 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 38829 "gram.c" /* yacc.c:1652 */ +#line 39321 "gram.c" break; - case 1476: -#line 10237 "gram.y" /* yacc.c:1652 */ - { + case 1476: /* createdb_opt_item: createdb_opt_name opt_equal DEFAULT */ +#line 10237 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); } -#line 38837 "gram.c" /* yacc.c:1652 */ +#line 39329 "gram.c" break; - case 1477: -#line 10254 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 38843 "gram.c" /* yacc.c:1652 */ + case 1477: /* createdb_opt_name: IDENT */ +#line 10254 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 39335 "gram.c" break; - case 1478: -#line 10255 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup("connection_limit"); } -#line 38849 "gram.c" /* yacc.c:1652 */ + case 1478: /* createdb_opt_name: CONNECTION LIMIT */ +#line 10255 "gram.y" + { (yyval.str) = pstrdup("connection_limit"); } +#line 39341 "gram.c" break; - case 1479: -#line 10256 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 38855 "gram.c" /* yacc.c:1652 */ + case 1479: /* createdb_opt_name: ENCODING */ +#line 10256 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 39347 "gram.c" break; - case 1480: -#line 10257 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 38861 "gram.c" /* yacc.c:1652 */ + case 1480: /* createdb_opt_name: LOCATION */ +#line 10257 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 39353 "gram.c" break; - case 1481: -#line 10258 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 38867 "gram.c" /* yacc.c:1652 */ + case 1481: /* createdb_opt_name: OWNER */ +#line 10258 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 39359 "gram.c" break; - case 1482: -#line 10259 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 38873 "gram.c" /* yacc.c:1652 */ + case 1482: /* createdb_opt_name: TABLESPACE */ +#line 10259 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 39365 "gram.c" break; - case 1483: -#line 10260 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 38879 "gram.c" /* yacc.c:1652 */ + case 1483: /* createdb_opt_name: TEMPLATE */ +#line 10260 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 39371 "gram.c" break; - case 1484: -#line 10267 "gram.y" /* yacc.c:1652 */ - {} -#line 38885 "gram.c" /* yacc.c:1652 */ + case 1484: /* opt_equal: '=' */ +#line 10267 "gram.y" + {} +#line 39377 "gram.c" break; - case 1485: -#line 10268 "gram.y" /* yacc.c:1652 */ - {} -#line 38891 "gram.c" /* yacc.c:1652 */ + case 1485: /* opt_equal: %empty */ +#line 10268 "gram.y" + {} +#line 39383 "gram.c" break; - case 1486: -#line 10280 "gram.y" /* yacc.c:1652 */ - { + case 1486: /* AlterDatabaseStmt: ALTER DATABASE database_name WITH createdb_opt_list */ +#line 10280 "gram.y" + { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38902 "gram.c" /* yacc.c:1652 */ +#line 39394 "gram.c" break; - case 1487: -#line 10287 "gram.y" /* yacc.c:1652 */ - { + case 1487: /* AlterDatabaseStmt: ALTER DATABASE database_name createdb_opt_list */ +#line 10287 "gram.y" + { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 38913 "gram.c" /* yacc.c:1652 */ +#line 39405 "gram.c" break; - case 1488: -#line 10294 "gram.y" /* yacc.c:1652 */ - { + case 1488: /* AlterDatabaseStmt: ALTER DATABASE database_name SET TABLESPACE name */ +#line 10294 "gram.y" + { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[-3].str); n->options = list_make1(makeDefElem("tablespace", (Node *)makeString((yyvsp[0].str)), (yylsp[0]))); (yyval.node) = (Node *)n; } -#line 38925 "gram.c" /* yacc.c:1652 */ +#line 39417 "gram.c" break; - case 1489: -#line 10305 "gram.y" /* yacc.c:1652 */ - { + case 1489: /* AlterDatabaseSetStmt: ALTER DATABASE database_name SetResetClause */ +#line 10305 "gram.y" + { AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt); n->dbname = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } -#line 38936 "gram.c" /* yacc.c:1652 */ +#line 39428 "gram.c" break; - case 1490: -#line 10322 "gram.y" /* yacc.c:1652 */ - { + case 1490: /* DropdbStmt: DROP DATABASE database_name */ +#line 10322 "gram.y" + { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[0].str); n->missing_ok = false; n->options = NULL; (yyval.node) = (Node *)n; } -#line 38948 "gram.c" /* yacc.c:1652 */ +#line 39440 "gram.c" break; - case 1491: -#line 10330 "gram.y" /* yacc.c:1652 */ - { + case 1491: /* DropdbStmt: DROP DATABASE IF_P EXISTS database_name */ +#line 10330 "gram.y" + { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[0].str); n->missing_ok = true; n->options = NULL; (yyval.node) = (Node *)n; } -#line 38960 "gram.c" /* yacc.c:1652 */ +#line 39452 "gram.c" break; - case 1492: -#line 10338 "gram.y" /* yacc.c:1652 */ - { + case 1492: /* DropdbStmt: DROP DATABASE database_name opt_with '(' drop_option_list ')' */ +#line 10338 "gram.y" + { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[-4].str); n->missing_ok = false; n->options = (yyvsp[-1].list); (yyval.node) = (Node *)n; } -#line 38972 "gram.c" /* yacc.c:1652 */ +#line 39464 "gram.c" break; - case 1493: -#line 10346 "gram.y" /* yacc.c:1652 */ - { + case 1493: /* DropdbStmt: DROP DATABASE IF_P EXISTS database_name opt_with '(' drop_option_list ')' */ +#line 10346 "gram.y" + { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[-4].str); n->missing_ok = true; n->options = (yyvsp[-1].list); (yyval.node) = (Node *)n; } -#line 38984 "gram.c" /* yacc.c:1652 */ +#line 39476 "gram.c" break; - case 1494: -#line 10357 "gram.y" /* yacc.c:1652 */ - { + case 1494: /* drop_option_list: drop_option */ +#line 10357 "gram.y" + { (yyval.list) = list_make1((Node *) (yyvsp[0].defelt)); } -#line 38992 "gram.c" /* yacc.c:1652 */ +#line 39484 "gram.c" break; - case 1495: -#line 10361 "gram.y" /* yacc.c:1652 */ - { + case 1495: /* drop_option_list: drop_option_list ',' drop_option */ +#line 10361 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (Node *) (yyvsp[0].defelt)); } -#line 39000 "gram.c" /* yacc.c:1652 */ +#line 39492 "gram.c" break; - case 1496: -#line 10372 "gram.y" /* yacc.c:1652 */ - { + case 1496: /* drop_option: FORCE */ +#line 10372 "gram.y" + { (yyval.defelt) = makeDefElem("force", NULL, (yylsp[0])); } -#line 39008 "gram.c" /* yacc.c:1652 */ +#line 39500 "gram.c" break; - case 1497: -#line 10384 "gram.y" /* yacc.c:1652 */ - { + case 1497: /* AlterCollationStmt: ALTER COLLATION any_name REFRESH VERSION_P */ +#line 10384 "gram.y" + { AlterCollationStmt *n = makeNode(AlterCollationStmt); n->collname = (yyvsp[-2].list); (yyval.node) = (Node *)n; } -#line 39018 "gram.c" /* yacc.c:1652 */ +#line 39510 "gram.c" break; - case 1498: -#line 10401 "gram.y" /* yacc.c:1652 */ - { + case 1498: /* AlterSystemStmt: ALTER SYSTEM_P SET generic_set */ +#line 10401 "gram.y" + { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } -#line 39028 "gram.c" /* yacc.c:1652 */ +#line 39520 "gram.c" break; - case 1499: -#line 10407 "gram.y" /* yacc.c:1652 */ - { + case 1499: /* AlterSystemStmt: ALTER SYSTEM_P RESET generic_reset */ +#line 10407 "gram.y" + { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } -#line 39038 "gram.c" /* yacc.c:1652 */ +#line 39530 "gram.c" break; - case 1500: -#line 10423 "gram.y" /* yacc.c:1652 */ - { + case 1500: /* CreateDomainStmt: CREATE DOMAIN_P any_name opt_as Typename ColQualList */ +#line 10423 "gram.y" + { CreateDomainStmt *n = makeNode(CreateDomainStmt); n->domainname = (yyvsp[-3].list); n->typeName = (yyvsp[-1].typnam); @@ -39047,58 +39539,58 @@ yyscanner); (yyval.node) = (Node *)n; } -#line 39051 "gram.c" /* yacc.c:1652 */ +#line 39543 "gram.c" break; - case 1501: -#line 10436 "gram.y" /* yacc.c:1652 */ - { + case 1501: /* AlterDomainStmt: ALTER DOMAIN_P any_name alter_column_default */ +#line 10436 "gram.y" + { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'T'; n->typeName = (yyvsp[-1].list); n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } -#line 39063 "gram.c" /* yacc.c:1652 */ +#line 39555 "gram.c" break; - case 1502: -#line 10445 "gram.y" /* yacc.c:1652 */ - { + case 1502: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP NOT NULL_P */ +#line 10445 "gram.y" + { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'N'; n->typeName = (yyvsp[-3].list); (yyval.node) = (Node *)n; } -#line 39074 "gram.c" /* yacc.c:1652 */ +#line 39566 "gram.c" break; - case 1503: -#line 10453 "gram.y" /* yacc.c:1652 */ - { + case 1503: /* AlterDomainStmt: ALTER DOMAIN_P any_name SET NOT NULL_P */ +#line 10453 "gram.y" + { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'O'; n->typeName = (yyvsp[-3].list); (yyval.node) = (Node *)n; } -#line 39085 "gram.c" /* yacc.c:1652 */ +#line 39577 "gram.c" break; - case 1504: -#line 10461 "gram.y" /* yacc.c:1652 */ - { + case 1504: /* AlterDomainStmt: ALTER DOMAIN_P any_name ADD_P TableConstraint */ +#line 10461 "gram.y" + { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'C'; n->typeName = (yyvsp[-2].list); n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } -#line 39097 "gram.c" /* yacc.c:1652 */ +#line 39589 "gram.c" break; - case 1505: -#line 10470 "gram.y" /* yacc.c:1652 */ - { + case 1505: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior */ +#line 10470 "gram.y" + { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[-4].list); @@ -39107,12 +39599,12 @@ n->missing_ok = false; (yyval.node) = (Node *)n; } -#line 39111 "gram.c" /* yacc.c:1652 */ +#line 39603 "gram.c" break; - case 1506: -#line 10481 "gram.y" /* yacc.c:1652 */ - { + case 1506: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */ +#line 10481 "gram.y" + { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[-6].list); @@ -39121,47 +39613,47 @@ n->missing_ok = true; (yyval.node) = (Node *)n; } -#line 39125 "gram.c" /* yacc.c:1652 */ +#line 39617 "gram.c" break; - case 1507: -#line 10492 "gram.y" /* yacc.c:1652 */ - { + case 1507: /* AlterDomainStmt: ALTER DOMAIN_P any_name VALIDATE CONSTRAINT name */ +#line 10492 "gram.y" + { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'V'; n->typeName = (yyvsp[-3].list); n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } -#line 39137 "gram.c" /* yacc.c:1652 */ +#line 39629 "gram.c" break; - case 1508: -#line 10501 "gram.y" /* yacc.c:1652 */ - {} -#line 39143 "gram.c" /* yacc.c:1652 */ + case 1508: /* opt_as: AS */ +#line 10501 "gram.y" + {} +#line 39635 "gram.c" break; - case 1509: -#line 10502 "gram.y" /* yacc.c:1652 */ - {} -#line 39149 "gram.c" /* yacc.c:1652 */ + case 1509: /* opt_as: %empty */ +#line 10502 "gram.y" + {} +#line 39641 "gram.c" break; - case 1510: -#line 10514 "gram.y" /* yacc.c:1652 */ - { + case 1510: /* AlterTSDictionaryStmt: ALTER TEXT_P SEARCH DICTIONARY any_name definition */ +#line 10514 "gram.y" + { AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt); n->dictname = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 39160 "gram.c" /* yacc.c:1652 */ +#line 39652 "gram.c" break; - case 1511: -#line 10524 "gram.y" /* yacc.c:1652 */ - { + case 1511: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ADD_P MAPPING FOR name_list any_with any_name_list */ +#line 10524 "gram.y" + { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_ADD_MAPPING; n->cfgname = (yyvsp[-6].list); @@ -39171,12 +39663,12 @@ n->replace = false; (yyval.node) = (Node*)n; } -#line 39175 "gram.c" /* yacc.c:1652 */ +#line 39667 "gram.c" break; - case 1512: -#line 10535 "gram.y" /* yacc.c:1652 */ - { + case 1512: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list any_with any_name_list */ +#line 10535 "gram.y" + { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN; n->cfgname = (yyvsp[-6].list); @@ -39186,12 +39678,12 @@ n->replace = false; (yyval.node) = (Node*)n; } -#line 39190 "gram.c" /* yacc.c:1652 */ +#line 39682 "gram.c" break; - case 1513: -#line 10546 "gram.y" /* yacc.c:1652 */ - { + case 1513: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING REPLACE any_name any_with any_name */ +#line 10546 "gram.y" + { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_REPLACE_DICT; n->cfgname = (yyvsp[-6].list); @@ -39201,12 +39693,12 @@ n->replace = true; (yyval.node) = (Node*)n; } -#line 39205 "gram.c" /* yacc.c:1652 */ +#line 39697 "gram.c" break; - case 1514: -#line 10557 "gram.y" /* yacc.c:1652 */ - { + case 1514: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list REPLACE any_name any_with any_name */ +#line 10557 "gram.y" + { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN; n->cfgname = (yyvsp[-8].list); @@ -39216,12 +39708,12 @@ n->replace = true; (yyval.node) = (Node*)n; } -#line 39220 "gram.c" /* yacc.c:1652 */ +#line 39712 "gram.c" break; - case 1515: -#line 10568 "gram.y" /* yacc.c:1652 */ - { + case 1515: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING FOR name_list */ +#line 10568 "gram.y" + { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_DROP_MAPPING; n->cfgname = (yyvsp[-4].list); @@ -39229,12 +39721,12 @@ n->missing_ok = false; (yyval.node) = (Node*)n; } -#line 39233 "gram.c" /* yacc.c:1652 */ +#line 39725 "gram.c" break; - case 1516: -#line 10577 "gram.y" /* yacc.c:1652 */ - { + case 1516: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING IF_P EXISTS FOR name_list */ +#line 10577 "gram.y" + { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_DROP_MAPPING; n->cfgname = (yyvsp[-6].list); @@ -39242,24 +39734,24 @@ n->missing_ok = true; (yyval.node) = (Node*)n; } -#line 39246 "gram.c" /* yacc.c:1652 */ +#line 39738 "gram.c" break; - case 1517: -#line 10588 "gram.y" /* yacc.c:1652 */ - {} -#line 39252 "gram.c" /* yacc.c:1652 */ + case 1517: /* any_with: WITH */ +#line 10588 "gram.y" + {} +#line 39744 "gram.c" break; - case 1518: -#line 10589 "gram.y" /* yacc.c:1652 */ - {} -#line 39258 "gram.c" /* yacc.c:1652 */ + case 1518: /* any_with: WITH_LA */ +#line 10589 "gram.y" + {} +#line 39750 "gram.c" break; - case 1519: -#line 10605 "gram.y" /* yacc.c:1652 */ - { + case 1519: /* CreateConversionStmt: CREATE opt_default CONVERSION_P any_name FOR Sconst TO Sconst FROM any_name */ +#line 10605 "gram.y" + { CreateConversionStmt *n = makeNode(CreateConversionStmt); n->conversion_name = (yyvsp[-6].list); n->for_encoding_name = (yyvsp[-4].str); @@ -39268,12 +39760,12 @@ n->def = (yyvsp[-8].boolean); (yyval.node) = (Node *)n; } -#line 39272 "gram.c" /* yacc.c:1652 */ +#line 39764 "gram.c" break; - case 1520: -#line 10627 "gram.y" /* yacc.c:1652 */ - { + case 1520: /* ClusterStmt: CLUSTER opt_verbose qualified_name cluster_index_specification */ +#line 10627 "gram.y" + { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[-1].range); n->indexname = (yyvsp[0].str); @@ -39282,12 +39774,12 @@ n->options |= CLUOPT_VERBOSE; (yyval.node) = (Node*)n; } -#line 39286 "gram.c" /* yacc.c:1652 */ +#line 39778 "gram.c" break; - case 1521: -#line 10637 "gram.y" /* yacc.c:1652 */ - { + case 1521: /* ClusterStmt: CLUSTER opt_verbose */ +#line 10637 "gram.y" + { ClusterStmt *n = makeNode(ClusterStmt); n->relation = NULL; n->indexname = NULL; @@ -39296,12 +39788,12 @@ n->options |= CLUOPT_VERBOSE; (yyval.node) = (Node*)n; } -#line 39300 "gram.c" /* yacc.c:1652 */ +#line 39792 "gram.c" break; - case 1522: -#line 10648 "gram.y" /* yacc.c:1652 */ - { + case 1522: /* ClusterStmt: CLUSTER opt_verbose index_name ON qualified_name */ +#line 10648 "gram.y" + { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[0].range); n->indexname = (yyvsp[-2].str); @@ -39310,24 +39802,24 @@ n->options |= CLUOPT_VERBOSE; (yyval.node) = (Node*)n; } -#line 39314 "gram.c" /* yacc.c:1652 */ +#line 39806 "gram.c" break; - case 1523: -#line 10660 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 39320 "gram.c" /* yacc.c:1652 */ + case 1523: /* cluster_index_specification: USING index_name */ +#line 10660 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 39812 "gram.c" break; - case 1524: -#line 10661 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 39326 "gram.c" /* yacc.c:1652 */ + case 1524: /* cluster_index_specification: %empty */ +#line 10661 "gram.y" + { (yyval.str) = NULL; } +#line 39818 "gram.c" break; - case 1525: -#line 10674 "gram.y" /* yacc.c:1652 */ - { + case 1525: /* VacuumStmt: VACUUM opt_full opt_freeze opt_verbose opt_analyze opt_vacuum_relation_list */ +#line 10674 "gram.y" + { VacuumStmt *n = makeNode(VacuumStmt); n->options = NIL; if ((yyvsp[-4].boolean)) @@ -39346,24 +39838,24 @@ n->is_vacuumcmd = true; (yyval.node) = (Node *)n; } -#line 39350 "gram.c" /* yacc.c:1652 */ +#line 39842 "gram.c" break; - case 1526: -#line 10694 "gram.y" /* yacc.c:1652 */ - { + case 1526: /* VacuumStmt: VACUUM '(' vac_analyze_option_list ')' opt_vacuum_relation_list */ +#line 10694 "gram.y" + { VacuumStmt *n = makeNode(VacuumStmt); n->options = (yyvsp[-2].list); n->rels = (yyvsp[0].list); n->is_vacuumcmd = true; (yyval.node) = (Node *) n; } -#line 39362 "gram.c" /* yacc.c:1652 */ +#line 39854 "gram.c" break; - case 1527: -#line 10704 "gram.y" /* yacc.c:1652 */ - { + case 1527: /* AnalyzeStmt: analyze_keyword opt_verbose opt_vacuum_relation_list */ +#line 10704 "gram.y" + { VacuumStmt *n = makeNode(VacuumStmt); n->options = NIL; if ((yyvsp[-1].boolean)) @@ -39373,193 +39865,193 @@ n->is_vacuumcmd = false; (yyval.node) = (Node *)n; } -#line 39377 "gram.c" /* yacc.c:1652 */ +#line 39869 "gram.c" break; - case 1528: -#line 10715 "gram.y" /* yacc.c:1652 */ - { + case 1528: /* AnalyzeStmt: analyze_keyword '(' vac_analyze_option_list ')' opt_vacuum_relation_list */ +#line 10715 "gram.y" + { VacuumStmt *n = makeNode(VacuumStmt); n->options = (yyvsp[-2].list); n->rels = (yyvsp[0].list); n->is_vacuumcmd = false; (yyval.node) = (Node *) n; } -#line 39389 "gram.c" /* yacc.c:1652 */ +#line 39881 "gram.c" break; - case 1529: -#line 10726 "gram.y" /* yacc.c:1652 */ - { + case 1529: /* vac_analyze_option_list: vac_analyze_option_elem */ +#line 10726 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 39397 "gram.c" /* yacc.c:1652 */ +#line 39889 "gram.c" break; - case 1530: -#line 10730 "gram.y" /* yacc.c:1652 */ - { + case 1530: /* vac_analyze_option_list: vac_analyze_option_list ',' vac_analyze_option_elem */ +#line 10730 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 39405 "gram.c" /* yacc.c:1652 */ +#line 39897 "gram.c" break; - case 1531: -#line 10736 "gram.y" /* yacc.c:1652 */ - {} -#line 39411 "gram.c" /* yacc.c:1652 */ + case 1531: /* analyze_keyword: ANALYZE */ +#line 10736 "gram.y" + {} +#line 39903 "gram.c" break; - case 1532: -#line 10737 "gram.y" /* yacc.c:1652 */ - {} -#line 39417 "gram.c" /* yacc.c:1652 */ + case 1532: /* analyze_keyword: ANALYSE */ +#line 10737 "gram.y" + {} +#line 39909 "gram.c" break; - case 1533: -#line 10742 "gram.y" /* yacc.c:1652 */ - { + case 1533: /* vac_analyze_option_elem: vac_analyze_option_name vac_analyze_option_arg */ +#line 10742 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } -#line 39425 "gram.c" /* yacc.c:1652 */ +#line 39917 "gram.c" break; - case 1534: -#line 10748 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 39431 "gram.c" /* yacc.c:1652 */ + case 1534: /* vac_analyze_option_name: NonReservedWord */ +#line 10748 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 39923 "gram.c" break; - case 1535: -#line 10749 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "analyze"; } -#line 39437 "gram.c" /* yacc.c:1652 */ + case 1535: /* vac_analyze_option_name: analyze_keyword */ +#line 10749 "gram.y" + { (yyval.str) = "analyze"; } +#line 39929 "gram.c" break; - case 1536: -#line 10753 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } -#line 39443 "gram.c" /* yacc.c:1652 */ + case 1536: /* vac_analyze_option_arg: opt_boolean_or_string */ +#line 10753 "gram.y" + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 39935 "gram.c" break; - case 1537: -#line 10754 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) (yyvsp[0].value); } -#line 39449 "gram.c" /* yacc.c:1652 */ + case 1537: /* vac_analyze_option_arg: NumericOnly */ +#line 10754 "gram.y" + { (yyval.node) = (Node *) (yyvsp[0].value); } +#line 39941 "gram.c" break; - case 1538: -#line 10755 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 39455 "gram.c" /* yacc.c:1652 */ + case 1538: /* vac_analyze_option_arg: %empty */ +#line 10755 "gram.y" + { (yyval.node) = NULL; } +#line 39947 "gram.c" break; - case 1539: -#line 10759 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 39461 "gram.c" /* yacc.c:1652 */ + case 1539: /* opt_analyze: analyze_keyword */ +#line 10759 "gram.y" + { (yyval.boolean) = true; } +#line 39953 "gram.c" break; - case 1540: -#line 10760 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 39467 "gram.c" /* yacc.c:1652 */ + case 1540: /* opt_analyze: %empty */ +#line 10760 "gram.y" + { (yyval.boolean) = false; } +#line 39959 "gram.c" break; - case 1541: -#line 10764 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 39473 "gram.c" /* yacc.c:1652 */ + case 1541: /* opt_verbose: VERBOSE */ +#line 10764 "gram.y" + { (yyval.boolean) = true; } +#line 39965 "gram.c" break; - case 1542: -#line 10765 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 39479 "gram.c" /* yacc.c:1652 */ + case 1542: /* opt_verbose: %empty */ +#line 10765 "gram.y" + { (yyval.boolean) = false; } +#line 39971 "gram.c" break; - case 1543: -#line 10768 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 39485 "gram.c" /* yacc.c:1652 */ + case 1543: /* opt_full: FULL */ +#line 10768 "gram.y" + { (yyval.boolean) = true; } +#line 39977 "gram.c" break; - case 1544: -#line 10769 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 39491 "gram.c" /* yacc.c:1652 */ + case 1544: /* opt_full: %empty */ +#line 10769 "gram.y" + { (yyval.boolean) = false; } +#line 39983 "gram.c" break; - case 1545: -#line 10772 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 39497 "gram.c" /* yacc.c:1652 */ + case 1545: /* opt_freeze: FREEZE */ +#line 10772 "gram.y" + { (yyval.boolean) = true; } +#line 39989 "gram.c" break; - case 1546: -#line 10773 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 39503 "gram.c" /* yacc.c:1652 */ + case 1546: /* opt_freeze: %empty */ +#line 10773 "gram.y" + { (yyval.boolean) = false; } +#line 39995 "gram.c" break; - case 1547: -#line 10777 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 39509 "gram.c" /* yacc.c:1652 */ + case 1547: /* opt_name_list: '(' name_list ')' */ +#line 10777 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 40001 "gram.c" break; - case 1548: -#line 10778 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 39515 "gram.c" /* yacc.c:1652 */ + case 1548: /* opt_name_list: %empty */ +#line 10778 "gram.y" + { (yyval.list) = NIL; } +#line 40007 "gram.c" break; - case 1549: -#line 10783 "gram.y" /* yacc.c:1652 */ - { + case 1549: /* vacuum_relation: qualified_name opt_name_list */ +#line 10783 "gram.y" + { (yyval.node) = (Node *) makeVacuumRelation((yyvsp[-1].range), InvalidOid, (yyvsp[0].list)); } -#line 39523 "gram.c" /* yacc.c:1652 */ +#line 40015 "gram.c" break; - case 1550: -#line 10790 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 39529 "gram.c" /* yacc.c:1652 */ + case 1550: /* vacuum_relation_list: vacuum_relation */ +#line 10790 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 40021 "gram.c" break; - case 1551: -#line 10792 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 39535 "gram.c" /* yacc.c:1652 */ + case 1551: /* vacuum_relation_list: vacuum_relation_list ',' vacuum_relation */ +#line 10792 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 40027 "gram.c" break; - case 1552: -#line 10796 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 39541 "gram.c" /* yacc.c:1652 */ + case 1552: /* opt_vacuum_relation_list: vacuum_relation_list */ +#line 10796 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 40033 "gram.c" break; - case 1553: -#line 10797 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 39547 "gram.c" /* yacc.c:1652 */ + case 1553: /* opt_vacuum_relation_list: %empty */ +#line 10797 "gram.y" + { (yyval.list) = NIL; } +#line 40039 "gram.c" break; - case 1554: -#line 10811 "gram.y" /* yacc.c:1652 */ - { + case 1554: /* ExplainStmt: EXPLAIN ExplainableStmt */ +#line 10811 "gram.y" + { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = NIL; (yyval.node) = (Node *) n; } -#line 39558 "gram.c" /* yacc.c:1652 */ +#line 40050 "gram.c" break; - case 1555: -#line 10818 "gram.y" /* yacc.c:1652 */ - { + case 1555: /* ExplainStmt: EXPLAIN analyze_keyword opt_verbose ExplainableStmt */ +#line 10818 "gram.y" + { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[-2]))); @@ -39568,123 +40060,123 @@ makeDefElem("verbose", NULL, (yylsp[-1]))); (yyval.node) = (Node *) n; } -#line 39572 "gram.c" /* yacc.c:1652 */ +#line 40064 "gram.c" break; - case 1556: -#line 10828 "gram.y" /* yacc.c:1652 */ - { + case 1556: /* ExplainStmt: EXPLAIN VERBOSE ExplainableStmt */ +#line 10828 "gram.y" + { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[-1]))); (yyval.node) = (Node *) n; } -#line 39583 "gram.c" /* yacc.c:1652 */ +#line 40075 "gram.c" break; - case 1557: -#line 10835 "gram.y" /* yacc.c:1652 */ - { + case 1557: /* ExplainStmt: EXPLAIN '(' explain_option_list ')' ExplainableStmt */ +#line 10835 "gram.y" + { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = (yyvsp[-2].list); (yyval.node) = (Node *) n; } -#line 39594 "gram.c" /* yacc.c:1652 */ +#line 40086 "gram.c" break; - case 1567: -#line 10857 "gram.y" /* yacc.c:1652 */ - { + case 1567: /* explain_option_list: explain_option_elem */ +#line 10857 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 39602 "gram.c" /* yacc.c:1652 */ +#line 40094 "gram.c" break; - case 1568: -#line 10861 "gram.y" /* yacc.c:1652 */ - { + case 1568: /* explain_option_list: explain_option_list ',' explain_option_elem */ +#line 10861 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 39610 "gram.c" /* yacc.c:1652 */ +#line 40102 "gram.c" break; - case 1569: -#line 10868 "gram.y" /* yacc.c:1652 */ - { + case 1569: /* explain_option_elem: explain_option_name explain_option_arg */ +#line 10868 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } -#line 39618 "gram.c" /* yacc.c:1652 */ +#line 40110 "gram.c" break; - case 1570: -#line 10874 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 39624 "gram.c" /* yacc.c:1652 */ + case 1570: /* explain_option_name: NonReservedWord */ +#line 10874 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 40116 "gram.c" break; - case 1571: -#line 10875 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "analyze"; } -#line 39630 "gram.c" /* yacc.c:1652 */ + case 1571: /* explain_option_name: analyze_keyword */ +#line 10875 "gram.y" + { (yyval.str) = "analyze"; } +#line 40122 "gram.c" break; - case 1572: -#line 10879 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } -#line 39636 "gram.c" /* yacc.c:1652 */ + case 1572: /* explain_option_arg: opt_boolean_or_string */ +#line 10879 "gram.y" + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 40128 "gram.c" break; - case 1573: -#line 10880 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) (yyvsp[0].value); } -#line 39642 "gram.c" /* yacc.c:1652 */ + case 1573: /* explain_option_arg: NumericOnly */ +#line 10880 "gram.y" + { (yyval.node) = (Node *) (yyvsp[0].value); } +#line 40134 "gram.c" break; - case 1574: -#line 10881 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 39648 "gram.c" /* yacc.c:1652 */ + case 1574: /* explain_option_arg: %empty */ +#line 10881 "gram.y" + { (yyval.node) = NULL; } +#line 40140 "gram.c" break; - case 1575: -#line 10892 "gram.y" /* yacc.c:1652 */ - { + case 1575: /* PrepareStmt: PREPARE name prep_type_clause AS PreparableStmt */ +#line 10892 "gram.y" + { PrepareStmt *n = makeNode(PrepareStmt); n->name = (yyvsp[-3].str); n->argtypes = (yyvsp[-2].list); n->query = (yyvsp[0].node); (yyval.node) = (Node *) n; } -#line 39660 "gram.c" /* yacc.c:1652 */ +#line 40152 "gram.c" break; - case 1576: -#line 10901 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 39666 "gram.c" /* yacc.c:1652 */ + case 1576: /* prep_type_clause: '(' type_list ')' */ +#line 10901 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 40158 "gram.c" break; - case 1577: -#line 10902 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 39672 "gram.c" /* yacc.c:1652 */ + case 1577: /* prep_type_clause: %empty */ +#line 10902 "gram.y" + { (yyval.list) = NIL; } +#line 40164 "gram.c" break; - case 1582: -#line 10920 "gram.y" /* yacc.c:1652 */ - { + case 1582: /* ExecuteStmt: EXECUTE name execute_param_clause */ +#line 10920 "gram.y" + { ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[-1].str); n->params = (yyvsp[0].list); (yyval.node) = (Node *) n; } -#line 39683 "gram.c" /* yacc.c:1652 */ +#line 40175 "gram.c" break; - case 1583: -#line 10928 "gram.y" /* yacc.c:1652 */ - { + case 1583: /* ExecuteStmt: CREATE OptTemp TABLE create_as_target AS EXECUTE name execute_param_clause opt_with_data */ +#line 10928 "gram.y" + { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[-2].str); @@ -39699,12 +40191,12 @@ (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } -#line 39703 "gram.c" /* yacc.c:1652 */ +#line 40195 "gram.c" break; - case 1584: -#line 10945 "gram.y" /* yacc.c:1652 */ - { + case 1584: /* ExecuteStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS EXECUTE name execute_param_clause opt_with_data */ +#line 10945 "gram.y" + { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[-2].str); @@ -39719,181 +40211,181 @@ (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } -#line 39723 "gram.c" /* yacc.c:1652 */ +#line 40215 "gram.c" break; - case 1585: -#line 10962 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 39729 "gram.c" /* yacc.c:1652 */ + case 1585: /* execute_param_clause: '(' expr_list ')' */ +#line 10962 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 40221 "gram.c" break; - case 1586: -#line 10963 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 39735 "gram.c" /* yacc.c:1652 */ + case 1586: /* execute_param_clause: %empty */ +#line 10963 "gram.y" + { (yyval.list) = NIL; } +#line 40227 "gram.c" break; - case 1587: -#line 10974 "gram.y" /* yacc.c:1652 */ - { + case 1587: /* DeallocateStmt: DEALLOCATE name */ +#line 10974 "gram.y" + { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 39745 "gram.c" /* yacc.c:1652 */ +#line 40237 "gram.c" break; - case 1588: -#line 10980 "gram.y" /* yacc.c:1652 */ - { + case 1588: /* DeallocateStmt: DEALLOCATE PREPARE name */ +#line 10980 "gram.y" + { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 39755 "gram.c" /* yacc.c:1652 */ +#line 40247 "gram.c" break; - case 1589: -#line 10986 "gram.y" /* yacc.c:1652 */ - { + case 1589: /* DeallocateStmt: DEALLOCATE ALL */ +#line 10986 "gram.y" + { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; } -#line 39765 "gram.c" /* yacc.c:1652 */ +#line 40257 "gram.c" break; - case 1590: -#line 10992 "gram.y" /* yacc.c:1652 */ - { + case 1590: /* DeallocateStmt: DEALLOCATE PREPARE ALL */ +#line 10992 "gram.y" + { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; } -#line 39775 "gram.c" /* yacc.c:1652 */ +#line 40267 "gram.c" break; - case 1591: -#line 11009 "gram.y" /* yacc.c:1652 */ - { + case 1591: /* InsertStmt: opt_with_clause INSERT INTO insert_target insert_rest opt_on_conflict returning_clause */ +#line 11009 "gram.y" + { (yyvsp[-2].istmt)->relation = (yyvsp[-3].range); (yyvsp[-2].istmt)->onConflictClause = (yyvsp[-1].onconflict); (yyvsp[-2].istmt)->returningList = (yyvsp[0].list); (yyvsp[-2].istmt)->withClause = (yyvsp[-6].with); (yyval.node) = (Node *) (yyvsp[-2].istmt); } -#line 39787 "gram.c" /* yacc.c:1652 */ +#line 40279 "gram.c" break; - case 1592: -#line 11026 "gram.y" /* yacc.c:1652 */ - { + case 1592: /* insert_target: qualified_name */ +#line 11026 "gram.y" + { (yyval.range) = (yyvsp[0].range); } -#line 39795 "gram.c" /* yacc.c:1652 */ +#line 40287 "gram.c" break; - case 1593: -#line 11030 "gram.y" /* yacc.c:1652 */ - { + case 1593: /* insert_target: qualified_name AS ColId */ +#line 11030 "gram.y" + { (yyvsp[-2].range)->alias = makeAlias((yyvsp[0].str), NIL); (yyval.range) = (yyvsp[-2].range); } -#line 39804 "gram.c" /* yacc.c:1652 */ +#line 40296 "gram.c" break; - case 1594: -#line 11038 "gram.y" /* yacc.c:1652 */ - { + case 1594: /* insert_rest: SelectStmt */ +#line 11038 "gram.y" + { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = (yyvsp[0].node); } -#line 39814 "gram.c" /* yacc.c:1652 */ +#line 40306 "gram.c" break; - case 1595: -#line 11044 "gram.y" /* yacc.c:1652 */ - { + case 1595: /* insert_rest: OVERRIDING override_kind VALUE_P SelectStmt */ +#line 11044 "gram.y" + { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->override = (yyvsp[-2].ival); (yyval.istmt)->selectStmt = (yyvsp[0].node); } -#line 39825 "gram.c" /* yacc.c:1652 */ +#line 40317 "gram.c" break; - case 1596: -#line 11051 "gram.y" /* yacc.c:1652 */ - { + case 1596: /* insert_rest: '(' insert_column_list ')' SelectStmt */ +#line 11051 "gram.y" + { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[-2].list); (yyval.istmt)->selectStmt = (yyvsp[0].node); } -#line 39835 "gram.c" /* yacc.c:1652 */ +#line 40327 "gram.c" break; - case 1597: -#line 11057 "gram.y" /* yacc.c:1652 */ - { + case 1597: /* insert_rest: '(' insert_column_list ')' OVERRIDING override_kind VALUE_P SelectStmt */ +#line 11057 "gram.y" + { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[-5].list); (yyval.istmt)->override = (yyvsp[-2].ival); (yyval.istmt)->selectStmt = (yyvsp[0].node); } -#line 39846 "gram.c" /* yacc.c:1652 */ +#line 40338 "gram.c" break; - case 1598: -#line 11064 "gram.y" /* yacc.c:1652 */ - { + case 1598: /* insert_rest: DEFAULT VALUES */ +#line 11064 "gram.y" + { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = NULL; } -#line 39856 "gram.c" /* yacc.c:1652 */ +#line 40348 "gram.c" break; - case 1599: -#line 11072 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = OVERRIDING_USER_VALUE; } -#line 39862 "gram.c" /* yacc.c:1652 */ + case 1599: /* override_kind: USER */ +#line 11072 "gram.y" + { (yyval.ival) = OVERRIDING_USER_VALUE; } +#line 40354 "gram.c" break; - case 1600: -#line 11073 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; } -#line 39868 "gram.c" /* yacc.c:1652 */ + case 1600: /* override_kind: SYSTEM_P */ +#line 11073 "gram.y" + { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; } +#line 40360 "gram.c" break; - case 1601: -#line 11078 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].target)); } -#line 39874 "gram.c" /* yacc.c:1652 */ + case 1601: /* insert_column_list: insert_column_item */ +#line 11078 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 40366 "gram.c" break; - case 1602: -#line 11080 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } -#line 39880 "gram.c" /* yacc.c:1652 */ + case 1602: /* insert_column_list: insert_column_list ',' insert_column_item */ +#line 11080 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 40372 "gram.c" break; - case 1603: -#line 11085 "gram.y" /* yacc.c:1652 */ - { + case 1603: /* insert_column_item: ColId opt_indirection */ +#line 11085 "gram.y" + { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[-1].str); (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.target)->val = NULL; (yyval.target)->location = (yylsp[-1]); } -#line 39892 "gram.c" /* yacc.c:1652 */ +#line 40384 "gram.c" break; - case 1604: -#line 11096 "gram.y" /* yacc.c:1652 */ - { + case 1604: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO UPDATE SET set_clause_list where_clause */ +#line 11096 "gram.y" + { (yyval.onconflict) = makeNode(OnConflictClause); (yyval.onconflict)->action = ONCONFLICT_UPDATE; (yyval.onconflict)->infer = (yyvsp[-5].infer); @@ -39901,12 +40393,12 @@ (yyval.onconflict)->whereClause = (yyvsp[0].node); (yyval.onconflict)->location = (yylsp[-7]); } -#line 39905 "gram.c" /* yacc.c:1652 */ +#line 40397 "gram.c" break; - case 1605: -#line 11106 "gram.y" /* yacc.c:1652 */ - { + case 1605: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO NOTHING */ +#line 11106 "gram.y" + { (yyval.onconflict) = makeNode(OnConflictClause); (yyval.onconflict)->action = ONCONFLICT_NOTHING; (yyval.onconflict)->infer = (yyvsp[-2].infer); @@ -39914,64 +40406,64 @@ (yyval.onconflict)->whereClause = NULL; (yyval.onconflict)->location = (yylsp[-4]); } -#line 39918 "gram.c" /* yacc.c:1652 */ +#line 40410 "gram.c" break; - case 1606: -#line 11115 "gram.y" /* yacc.c:1652 */ - { + case 1606: /* opt_on_conflict: %empty */ +#line 11115 "gram.y" + { (yyval.onconflict) = NULL; } -#line 39926 "gram.c" /* yacc.c:1652 */ +#line 40418 "gram.c" break; - case 1607: -#line 11122 "gram.y" /* yacc.c:1652 */ - { + case 1607: /* opt_conf_expr: '(' index_params ')' where_clause */ +#line 11122 "gram.y" + { (yyval.infer) = makeNode(InferClause); (yyval.infer)->indexElems = (yyvsp[-2].list); (yyval.infer)->whereClause = (yyvsp[0].node); (yyval.infer)->conname = NULL; (yyval.infer)->location = (yylsp[-3]); } -#line 39938 "gram.c" /* yacc.c:1652 */ +#line 40430 "gram.c" break; - case 1608: -#line 11131 "gram.y" /* yacc.c:1652 */ - { + case 1608: /* opt_conf_expr: ON CONSTRAINT name */ +#line 11131 "gram.y" + { (yyval.infer) = makeNode(InferClause); (yyval.infer)->indexElems = NIL; (yyval.infer)->whereClause = NULL; (yyval.infer)->conname = (yyvsp[0].str); (yyval.infer)->location = (yylsp[-2]); } -#line 39950 "gram.c" /* yacc.c:1652 */ +#line 40442 "gram.c" break; - case 1609: -#line 11139 "gram.y" /* yacc.c:1652 */ - { + case 1609: /* opt_conf_expr: %empty */ +#line 11139 "gram.y" + { (yyval.infer) = NULL; } -#line 39958 "gram.c" /* yacc.c:1652 */ +#line 40450 "gram.c" break; - case 1610: -#line 11145 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 39964 "gram.c" /* yacc.c:1652 */ + case 1610: /* returning_clause: RETURNING target_list */ +#line 11145 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 40456 "gram.c" break; - case 1611: -#line 11146 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 39970 "gram.c" /* yacc.c:1652 */ + case 1611: /* returning_clause: %empty */ +#line 11146 "gram.y" + { (yyval.list) = NIL; } +#line 40462 "gram.c" break; - case 1612: -#line 11159 "gram.y" /* yacc.c:1652 */ - { + case 1612: /* DeleteStmt: opt_with_clause DELETE_P FROM relation_expr_opt_alias using_clause where_or_current_clause returning_clause */ +#line 11159 "gram.y" + { DeleteStmt *n = makeNode(DeleteStmt); n->relation = (yyvsp[-3].range); n->usingClause = (yyvsp[-2].list); @@ -39980,24 +40472,24 @@ n->withClause = (yyvsp[-6].with); (yyval.node) = (Node *)n; } -#line 39984 "gram.c" /* yacc.c:1652 */ +#line 40476 "gram.c" break; - case 1613: -#line 11171 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 39990 "gram.c" /* yacc.c:1652 */ + case 1613: /* using_clause: USING from_list */ +#line 11171 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 40482 "gram.c" break; - case 1614: -#line 11172 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 39996 "gram.c" /* yacc.c:1652 */ + case 1614: /* using_clause: %empty */ +#line 11172 "gram.y" + { (yyval.list) = NIL; } +#line 40488 "gram.c" break; - case 1615: -#line 11184 "gram.y" /* yacc.c:1652 */ - { + case 1615: /* LockStmt: LOCK_P opt_table relation_expr_list opt_lock opt_nowait */ +#line 11184 "gram.y" + { LockStmt *n = makeNode(LockStmt); n->relations = (yyvsp[-2].list); @@ -40005,102 +40497,102 @@ n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } -#line 40009 "gram.c" /* yacc.c:1652 */ +#line 40501 "gram.c" break; - case 1616: -#line 11194 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[-1].ival); } -#line 40015 "gram.c" /* yacc.c:1652 */ + case 1616: /* opt_lock: IN_P lock_type MODE */ +#line 11194 "gram.y" + { (yyval.ival) = (yyvsp[-1].ival); } +#line 40507 "gram.c" break; - case 1617: -#line 11195 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = AccessExclusiveLock; } -#line 40021 "gram.c" /* yacc.c:1652 */ + case 1617: /* opt_lock: %empty */ +#line 11195 "gram.y" + { (yyval.ival) = AccessExclusiveLock; } +#line 40513 "gram.c" break; - case 1618: -#line 11198 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = AccessShareLock; } -#line 40027 "gram.c" /* yacc.c:1652 */ + case 1618: /* lock_type: ACCESS SHARE */ +#line 11198 "gram.y" + { (yyval.ival) = AccessShareLock; } +#line 40519 "gram.c" break; - case 1619: -#line 11199 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RowShareLock; } -#line 40033 "gram.c" /* yacc.c:1652 */ + case 1619: /* lock_type: ROW SHARE */ +#line 11199 "gram.y" + { (yyval.ival) = RowShareLock; } +#line 40525 "gram.c" break; - case 1620: -#line 11200 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = RowExclusiveLock; } -#line 40039 "gram.c" /* yacc.c:1652 */ + case 1620: /* lock_type: ROW EXCLUSIVE */ +#line 11200 "gram.y" + { (yyval.ival) = RowExclusiveLock; } +#line 40531 "gram.c" break; - case 1621: -#line 11201 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ShareUpdateExclusiveLock; } -#line 40045 "gram.c" /* yacc.c:1652 */ + case 1621: /* lock_type: SHARE UPDATE EXCLUSIVE */ +#line 11201 "gram.y" + { (yyval.ival) = ShareUpdateExclusiveLock; } +#line 40537 "gram.c" break; - case 1622: -#line 11202 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ShareLock; } -#line 40051 "gram.c" /* yacc.c:1652 */ + case 1622: /* lock_type: SHARE */ +#line 11202 "gram.y" + { (yyval.ival) = ShareLock; } +#line 40543 "gram.c" break; - case 1623: -#line 11203 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ShareRowExclusiveLock; } -#line 40057 "gram.c" /* yacc.c:1652 */ + case 1623: /* lock_type: SHARE ROW EXCLUSIVE */ +#line 11203 "gram.y" + { (yyval.ival) = ShareRowExclusiveLock; } +#line 40549 "gram.c" break; - case 1624: -#line 11204 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ExclusiveLock; } -#line 40063 "gram.c" /* yacc.c:1652 */ + case 1624: /* lock_type: EXCLUSIVE */ +#line 11204 "gram.y" + { (yyval.ival) = ExclusiveLock; } +#line 40555 "gram.c" break; - case 1625: -#line 11205 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = AccessExclusiveLock; } -#line 40069 "gram.c" /* yacc.c:1652 */ + case 1625: /* lock_type: ACCESS EXCLUSIVE */ +#line 11205 "gram.y" + { (yyval.ival) = AccessExclusiveLock; } +#line 40561 "gram.c" break; - case 1626: -#line 11208 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 40075 "gram.c" /* yacc.c:1652 */ + case 1626: /* opt_nowait: NOWAIT */ +#line 11208 "gram.y" + { (yyval.boolean) = true; } +#line 40567 "gram.c" break; - case 1627: -#line 11209 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 40081 "gram.c" /* yacc.c:1652 */ + case 1627: /* opt_nowait: %empty */ +#line 11209 "gram.y" + { (yyval.boolean) = false; } +#line 40573 "gram.c" break; - case 1628: -#line 11213 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = LockWaitError; } -#line 40087 "gram.c" /* yacc.c:1652 */ + case 1628: /* opt_nowait_or_skip: NOWAIT */ +#line 11213 "gram.y" + { (yyval.ival) = LockWaitError; } +#line 40579 "gram.c" break; - case 1629: -#line 11214 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = LockWaitSkip; } -#line 40093 "gram.c" /* yacc.c:1652 */ + case 1629: /* opt_nowait_or_skip: SKIP LOCKED */ +#line 11214 "gram.y" + { (yyval.ival) = LockWaitSkip; } +#line 40585 "gram.c" break; - case 1630: -#line 11215 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = LockWaitBlock; } -#line 40099 "gram.c" /* yacc.c:1652 */ + case 1630: /* opt_nowait_or_skip: %empty */ +#line 11215 "gram.y" + { (yyval.ival) = LockWaitBlock; } +#line 40591 "gram.c" break; - case 1631: -#line 11231 "gram.y" /* yacc.c:1652 */ - { + case 1631: /* UpdateStmt: opt_with_clause UPDATE relation_expr_opt_alias SET set_clause_list from_clause where_or_current_clause returning_clause */ +#line 11231 "gram.y" + { UpdateStmt *n = makeNode(UpdateStmt); n->relation = (yyvsp[-5].range); n->targetList = (yyvsp[-3].list); @@ -40110,33 +40602,33 @@ n->withClause = (yyvsp[-7].with); (yyval.node) = (Node *)n; } -#line 40114 "gram.c" /* yacc.c:1652 */ +#line 40606 "gram.c" break; - case 1632: -#line 11244 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 40120 "gram.c" /* yacc.c:1652 */ + case 1632: /* set_clause_list: set_clause */ +#line 11244 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 40612 "gram.c" break; - case 1633: -#line 11245 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); } -#line 40126 "gram.c" /* yacc.c:1652 */ + case 1633: /* set_clause_list: set_clause_list ',' set_clause */ +#line 11245 "gram.y" + { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); } +#line 40618 "gram.c" break; - case 1634: -#line 11250 "gram.y" /* yacc.c:1652 */ - { + case 1634: /* set_clause: set_target '=' a_expr */ +#line 11250 "gram.y" + { (yyvsp[-2].target)->val = (Node *) (yyvsp[0].node); (yyval.list) = list_make1((yyvsp[-2].target)); } -#line 40135 "gram.c" /* yacc.c:1652 */ +#line 40627 "gram.c" break; - case 1635: -#line 11255 "gram.y" /* yacc.c:1652 */ - { + case 1635: /* set_clause: '(' set_target_list ')' '=' a_expr */ +#line 11255 "gram.y" + { int ncolumns = list_length((yyvsp[-3].list)); int i = 1; ListCell *col_cell; @@ -40156,36 +40648,36 @@ (yyval.list) = (yyvsp[-3].list); } -#line 40160 "gram.c" /* yacc.c:1652 */ +#line 40652 "gram.c" break; - case 1636: -#line 11279 "gram.y" /* yacc.c:1652 */ - { + case 1636: /* set_target: ColId opt_indirection */ +#line 11279 "gram.y" + { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[-1].str); (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.target)->val = NULL; /* upper production sets this */ (yyval.target)->location = (yylsp[-1]); } -#line 40172 "gram.c" /* yacc.c:1652 */ +#line 40664 "gram.c" break; - case 1637: -#line 11289 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].target)); } -#line 40178 "gram.c" /* yacc.c:1652 */ + case 1637: /* set_target_list: set_target */ +#line 11289 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 40670 "gram.c" break; - case 1638: -#line 11290 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); } -#line 40184 "gram.c" /* yacc.c:1652 */ + case 1638: /* set_target_list: set_target_list ',' set_target */ +#line 11290 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); } +#line 40676 "gram.c" break; - case 1639: -#line 11301 "gram.y" /* yacc.c:1652 */ - { + case 1639: /* DeclareCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR SelectStmt */ +#line 11301 "gram.y" + { DeclareCursorStmt *n = makeNode(DeclareCursorStmt); n->portalname = (yyvsp[-5].str); /* currently we always set FAST_PLAN option */ @@ -40193,179 +40685,179 @@ n->query = (yyvsp[0].node); (yyval.node) = (Node *)n; } -#line 40197 "gram.c" /* yacc.c:1652 */ +#line 40689 "gram.c" break; - case 1640: -#line 11311 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 40203 "gram.c" /* yacc.c:1652 */ + case 1640: /* cursor_name: name */ +#line 11311 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 40695 "gram.c" break; - case 1641: -#line 11314 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 40209 "gram.c" /* yacc.c:1652 */ + case 1641: /* cursor_options: %empty */ +#line 11314 "gram.y" + { (yyval.ival) = 0; } +#line 40701 "gram.c" break; - case 1642: -#line 11315 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[-2].ival) | CURSOR_OPT_NO_SCROLL; } -#line 40215 "gram.c" /* yacc.c:1652 */ + case 1642: /* cursor_options: cursor_options NO SCROLL */ +#line 11315 "gram.y" + { (yyval.ival) = (yyvsp[-2].ival) | CURSOR_OPT_NO_SCROLL; } +#line 40707 "gram.c" break; - case 1643: -#line 11316 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_SCROLL; } -#line 40221 "gram.c" /* yacc.c:1652 */ + case 1643: /* cursor_options: cursor_options SCROLL */ +#line 11316 "gram.y" + { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_SCROLL; } +#line 40713 "gram.c" break; - case 1644: -#line 11317 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_BINARY; } -#line 40227 "gram.c" /* yacc.c:1652 */ + case 1644: /* cursor_options: cursor_options BINARY */ +#line 11317 "gram.y" + { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_BINARY; } +#line 40719 "gram.c" break; - case 1645: -#line 11318 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_INSENSITIVE; } -#line 40233 "gram.c" /* yacc.c:1652 */ + case 1645: /* cursor_options: cursor_options INSENSITIVE */ +#line 11318 "gram.y" + { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_INSENSITIVE; } +#line 40725 "gram.c" break; - case 1646: -#line 11321 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 40239 "gram.c" /* yacc.c:1652 */ + case 1646: /* opt_hold: %empty */ +#line 11321 "gram.y" + { (yyval.ival) = 0; } +#line 40731 "gram.c" break; - case 1647: -#line 11322 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CURSOR_OPT_HOLD; } -#line 40245 "gram.c" /* yacc.c:1652 */ + case 1647: /* opt_hold: WITH HOLD */ +#line 11322 "gram.y" + { (yyval.ival) = CURSOR_OPT_HOLD; } +#line 40737 "gram.c" break; - case 1648: -#line 11323 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 40251 "gram.c" /* yacc.c:1652 */ + case 1648: /* opt_hold: WITHOUT HOLD */ +#line 11323 "gram.y" + { (yyval.ival) = 0; } +#line 40743 "gram.c" break; - case 1651: -#line 11376 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[-1].node); } -#line 40257 "gram.c" /* yacc.c:1652 */ + case 1651: /* select_with_parens: '(' select_no_parens ')' */ +#line 11376 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 40749 "gram.c" break; - case 1652: -#line 11377 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[-1].node); } -#line 40263 "gram.c" /* yacc.c:1652 */ + case 1652: /* select_with_parens: '(' select_with_parens ')' */ +#line 11377 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 40755 "gram.c" break; - case 1653: -#line 11392 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 40269 "gram.c" /* yacc.c:1652 */ + case 1653: /* select_no_parens: simple_select */ +#line 11392 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 40761 "gram.c" break; - case 1654: -#line 11394 "gram.y" /* yacc.c:1652 */ - { + case 1654: /* select_no_parens: select_clause sort_clause */ +#line 11394 "gram.y" + { insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, NULL, NULL, yyscanner); (yyval.node) = (yyvsp[-1].node); } -#line 40280 "gram.c" /* yacc.c:1652 */ +#line 40772 "gram.c" break; - case 1655: -#line 11401 "gram.y" /* yacc.c:1652 */ - { + case 1655: /* select_no_parens: select_clause opt_sort_clause for_locking_clause opt_select_limit */ +#line 11401 "gram.y" + { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), (yyvsp[0].selectlimit), NULL, yyscanner); (yyval.node) = (yyvsp[-3].node); } -#line 40292 "gram.c" /* yacc.c:1652 */ +#line 40784 "gram.c" break; - case 1656: -#line 11409 "gram.y" /* yacc.c:1652 */ - { + case 1656: /* select_no_parens: select_clause opt_sort_clause select_limit opt_for_locking_clause */ +#line 11409 "gram.y" + { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), (yyvsp[-1].selectlimit), NULL, yyscanner); (yyval.node) = (yyvsp[-3].node); } -#line 40304 "gram.c" /* yacc.c:1652 */ +#line 40796 "gram.c" break; - case 1657: -#line 11417 "gram.y" /* yacc.c:1652 */ - { + case 1657: /* select_no_parens: with_clause select_clause */ +#line 11417 "gram.y" + { insertSelectOptions((SelectStmt *) (yyvsp[0].node), NULL, NIL, NULL, (yyvsp[-1].with), yyscanner); (yyval.node) = (yyvsp[0].node); } -#line 40316 "gram.c" /* yacc.c:1652 */ +#line 40808 "gram.c" break; - case 1658: -#line 11425 "gram.y" /* yacc.c:1652 */ - { + case 1658: /* select_no_parens: with_clause select_clause sort_clause */ +#line 11425 "gram.y" + { insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, NULL, (yyvsp[-2].with), yyscanner); (yyval.node) = (yyvsp[-1].node); } -#line 40328 "gram.c" /* yacc.c:1652 */ +#line 40820 "gram.c" break; - case 1659: -#line 11433 "gram.y" /* yacc.c:1652 */ - { + case 1659: /* select_no_parens: with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit */ +#line 11433 "gram.y" + { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), (yyvsp[0].selectlimit), (yyvsp[-4].with), yyscanner); (yyval.node) = (yyvsp[-3].node); } -#line 40340 "gram.c" /* yacc.c:1652 */ +#line 40832 "gram.c" break; - case 1660: -#line 11441 "gram.y" /* yacc.c:1652 */ - { + case 1660: /* select_no_parens: with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause */ +#line 11441 "gram.y" + { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), (yyvsp[-1].selectlimit), (yyvsp[-4].with), yyscanner); (yyval.node) = (yyvsp[-3].node); } -#line 40352 "gram.c" /* yacc.c:1652 */ +#line 40844 "gram.c" break; - case 1661: -#line 11451 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 40358 "gram.c" /* yacc.c:1652 */ + case 1661: /* select_clause: simple_select */ +#line 11451 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 40850 "gram.c" break; - case 1662: -#line 11452 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 40364 "gram.c" /* yacc.c:1652 */ + case 1662: /* select_clause: select_with_parens */ +#line 11452 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 40856 "gram.c" break; - case 1663: -#line 11482 "gram.y" /* yacc.c:1652 */ - { + case 1663: /* simple_select: SELECT opt_all_clause opt_target_list into_clause from_clause where_clause group_clause having_clause window_clause */ +#line 11482 "gram.y" + { SelectStmt *n = makeNode(SelectStmt); n->targetList = (yyvsp[-6].list); n->intoClause = (yyvsp[-5].into); @@ -40376,12 +40868,12 @@ n->windowClause = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 40380 "gram.c" /* yacc.c:1652 */ +#line 40872 "gram.c" break; - case 1664: -#line 11496 "gram.y" /* yacc.c:1652 */ - { + case 1664: /* simple_select: SELECT distinct_clause target_list into_clause from_clause where_clause group_clause having_clause window_clause */ +#line 11496 "gram.y" + { SelectStmt *n = makeNode(SelectStmt); n->distinctClause = (yyvsp[-7].list); n->targetList = (yyvsp[-6].list); @@ -40393,18 +40885,18 @@ n->windowClause = (yyvsp[0].list); (yyval.node) = (Node *)n; } -#line 40397 "gram.c" /* yacc.c:1652 */ +#line 40889 "gram.c" break; - case 1665: -#line 11508 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 40403 "gram.c" /* yacc.c:1652 */ + case 1665: /* simple_select: values_clause */ +#line 11508 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 40895 "gram.c" break; - case 1666: -#line 11510 "gram.y" /* yacc.c:1652 */ - { + case 1666: /* simple_select: TABLE relation_expr */ +#line 11510 "gram.y" + { /* same as SELECT * FROM relation_expr */ ColumnRef *cr = makeNode(ColumnRef); ResTarget *rt = makeNode(ResTarget); @@ -40422,81 +40914,81 @@ n->fromClause = list_make1((yyvsp[0].range)); (yyval.node) = (Node *)n; } -#line 40426 "gram.c" /* yacc.c:1652 */ +#line 40918 "gram.c" break; - case 1667: -#line 11529 "gram.y" /* yacc.c:1652 */ - { + case 1667: /* simple_select: select_clause UNION all_or_distinct select_clause */ +#line 11529 "gram.y" + { (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } -#line 40434 "gram.c" /* yacc.c:1652 */ +#line 40926 "gram.c" break; - case 1668: -#line 11533 "gram.y" /* yacc.c:1652 */ - { + case 1668: /* simple_select: select_clause INTERSECT all_or_distinct select_clause */ +#line 11533 "gram.y" + { (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } -#line 40442 "gram.c" /* yacc.c:1652 */ +#line 40934 "gram.c" break; - case 1669: -#line 11537 "gram.y" /* yacc.c:1652 */ - { + case 1669: /* simple_select: select_clause EXCEPT all_or_distinct select_clause */ +#line 11537 "gram.y" + { (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } -#line 40450 "gram.c" /* yacc.c:1652 */ +#line 40942 "gram.c" break; - case 1670: -#line 11554 "gram.y" /* yacc.c:1652 */ - { + case 1670: /* with_clause: WITH cte_list */ +#line 11554 "gram.y" + { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[0].list); (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[-1]); } -#line 40461 "gram.c" /* yacc.c:1652 */ +#line 40953 "gram.c" break; - case 1671: -#line 11561 "gram.y" /* yacc.c:1652 */ - { + case 1671: /* with_clause: WITH_LA cte_list */ +#line 11561 "gram.y" + { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[0].list); (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[-1]); } -#line 40472 "gram.c" /* yacc.c:1652 */ +#line 40964 "gram.c" break; - case 1672: -#line 11568 "gram.y" /* yacc.c:1652 */ - { + case 1672: /* with_clause: WITH RECURSIVE cte_list */ +#line 11568 "gram.y" + { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[0].list); (yyval.with)->recursive = true; (yyval.with)->location = (yylsp[-2]); } -#line 40483 "gram.c" /* yacc.c:1652 */ +#line 40975 "gram.c" break; - case 1673: -#line 11577 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 40489 "gram.c" /* yacc.c:1652 */ + case 1673: /* cte_list: common_table_expr */ +#line 11577 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 40981 "gram.c" break; - case 1674: -#line 11578 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 40495 "gram.c" /* yacc.c:1652 */ + case 1674: /* cte_list: cte_list ',' common_table_expr */ +#line 11578 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 40987 "gram.c" break; - case 1675: -#line 11582 "gram.y" /* yacc.c:1652 */ - { + case 1675: /* common_table_expr: name opt_name_list AS opt_materialized '(' PreparableStmt ')' */ +#line 11582 "gram.y" + { CommonTableExpr *n = makeNode(CommonTableExpr); n->ctename = (yyvsp[-6].str); n->aliascolnames = (yyvsp[-5].list); @@ -40505,42 +40997,42 @@ n->location = (yylsp[-6]); (yyval.node) = (Node *) n; } -#line 40509 "gram.c" /* yacc.c:1652 */ +#line 41001 "gram.c" break; - case 1676: -#line 11594 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CTEMaterializeAlways; } -#line 40515 "gram.c" /* yacc.c:1652 */ + case 1676: /* opt_materialized: MATERIALIZED */ +#line 11594 "gram.y" + { (yyval.ival) = CTEMaterializeAlways; } +#line 41007 "gram.c" break; - case 1677: -#line 11595 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CTEMaterializeNever; } -#line 40521 "gram.c" /* yacc.c:1652 */ + case 1677: /* opt_materialized: NOT MATERIALIZED */ +#line 11595 "gram.y" + { (yyval.ival) = CTEMaterializeNever; } +#line 41013 "gram.c" break; - case 1678: -#line 11596 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = CTEMaterializeDefault; } -#line 40527 "gram.c" /* yacc.c:1652 */ + case 1678: /* opt_materialized: %empty */ +#line 11596 "gram.y" + { (yyval.ival) = CTEMaterializeDefault; } +#line 41019 "gram.c" break; - case 1679: -#line 11600 "gram.y" /* yacc.c:1652 */ - { (yyval.with) = (yyvsp[0].with); } -#line 40533 "gram.c" /* yacc.c:1652 */ + case 1679: /* opt_with_clause: with_clause */ +#line 11600 "gram.y" + { (yyval.with) = (yyvsp[0].with); } +#line 41025 "gram.c" break; - case 1680: -#line 11601 "gram.y" /* yacc.c:1652 */ - { (yyval.with) = NULL; } -#line 40539 "gram.c" /* yacc.c:1652 */ + case 1680: /* opt_with_clause: %empty */ +#line 11601 "gram.y" + { (yyval.with) = NULL; } +#line 41031 "gram.c" break; - case 1681: -#line 11606 "gram.y" /* yacc.c:1652 */ - { + case 1681: /* into_clause: INTO OptTempTableName */ +#line 11606 "gram.y" + { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[0].range); (yyval.into)->colNames = NIL; @@ -40550,189 +41042,189 @@ (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; } -#line 40554 "gram.c" /* yacc.c:1652 */ +#line 41046 "gram.c" break; - case 1682: -#line 11617 "gram.y" /* yacc.c:1652 */ - { (yyval.into) = NULL; } -#line 40560 "gram.c" /* yacc.c:1652 */ + case 1682: /* into_clause: %empty */ +#line 11617 "gram.y" + { (yyval.into) = NULL; } +#line 41052 "gram.c" break; - case 1683: -#line 11626 "gram.y" /* yacc.c:1652 */ - { + case 1683: /* OptTempTableName: TEMPORARY opt_table qualified_name */ +#line 11626 "gram.y" + { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } -#line 40569 "gram.c" /* yacc.c:1652 */ +#line 41061 "gram.c" break; - case 1684: -#line 11631 "gram.y" /* yacc.c:1652 */ - { + case 1684: /* OptTempTableName: TEMP opt_table qualified_name */ +#line 11631 "gram.y" + { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } -#line 40578 "gram.c" /* yacc.c:1652 */ +#line 41070 "gram.c" break; - case 1685: -#line 11636 "gram.y" /* yacc.c:1652 */ - { + case 1685: /* OptTempTableName: LOCAL TEMPORARY opt_table qualified_name */ +#line 11636 "gram.y" + { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } -#line 40587 "gram.c" /* yacc.c:1652 */ +#line 41079 "gram.c" break; - case 1686: -#line 11641 "gram.y" /* yacc.c:1652 */ - { + case 1686: /* OptTempTableName: LOCAL TEMP opt_table qualified_name */ +#line 11641 "gram.y" + { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } -#line 40596 "gram.c" /* yacc.c:1652 */ +#line 41088 "gram.c" break; - case 1687: -#line 11646 "gram.y" /* yacc.c:1652 */ - { + case 1687: /* OptTempTableName: GLOBAL TEMPORARY opt_table qualified_name */ +#line 11646 "gram.y" + { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-3])))); (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } -#line 40608 "gram.c" /* yacc.c:1652 */ +#line 41100 "gram.c" break; - case 1688: -#line 11654 "gram.y" /* yacc.c:1652 */ - { + case 1688: /* OptTempTableName: GLOBAL TEMP opt_table qualified_name */ +#line 11654 "gram.y" + { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-3])))); (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } -#line 40620 "gram.c" /* yacc.c:1652 */ +#line 41112 "gram.c" break; - case 1689: -#line 11662 "gram.y" /* yacc.c:1652 */ - { + case 1689: /* OptTempTableName: UNLOGGED opt_table qualified_name */ +#line 11662 "gram.y" + { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED; } -#line 40629 "gram.c" /* yacc.c:1652 */ +#line 41121 "gram.c" break; - case 1690: -#line 11667 "gram.y" /* yacc.c:1652 */ - { + case 1690: /* OptTempTableName: TABLE qualified_name */ +#line 11667 "gram.y" + { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } -#line 40638 "gram.c" /* yacc.c:1652 */ +#line 41130 "gram.c" break; - case 1691: -#line 11672 "gram.y" /* yacc.c:1652 */ - { + case 1691: /* OptTempTableName: qualified_name */ +#line 11672 "gram.y" + { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } -#line 40647 "gram.c" /* yacc.c:1652 */ +#line 41139 "gram.c" break; - case 1692: -#line 11678 "gram.y" /* yacc.c:1652 */ - {} -#line 40653 "gram.c" /* yacc.c:1652 */ + case 1692: /* opt_table: TABLE */ +#line 11678 "gram.y" + {} +#line 41145 "gram.c" break; - case 1693: -#line 11679 "gram.y" /* yacc.c:1652 */ - {} -#line 40659 "gram.c" /* yacc.c:1652 */ + case 1693: /* opt_table: %empty */ +#line 11679 "gram.y" + {} +#line 41151 "gram.c" break; - case 1694: -#line 11683 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 40665 "gram.c" /* yacc.c:1652 */ + case 1694: /* all_or_distinct: ALL */ +#line 11683 "gram.y" + { (yyval.boolean) = true; } +#line 41157 "gram.c" break; - case 1695: -#line 11684 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 40671 "gram.c" /* yacc.c:1652 */ + case 1695: /* all_or_distinct: DISTINCT */ +#line 11684 "gram.y" + { (yyval.boolean) = false; } +#line 41163 "gram.c" break; - case 1696: -#line 11685 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 40677 "gram.c" /* yacc.c:1652 */ + case 1696: /* all_or_distinct: %empty */ +#line 11685 "gram.y" + { (yyval.boolean) = false; } +#line 41169 "gram.c" break; - case 1697: -#line 11692 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(NIL); } -#line 40683 "gram.c" /* yacc.c:1652 */ + case 1697: /* distinct_clause: DISTINCT */ +#line 11692 "gram.y" + { (yyval.list) = list_make1(NIL); } +#line 41175 "gram.c" break; - case 1698: -#line 11693 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 40689 "gram.c" /* yacc.c:1652 */ + case 1698: /* distinct_clause: DISTINCT ON '(' expr_list ')' */ +#line 11693 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 41181 "gram.c" break; - case 1699: -#line 11697 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL;} -#line 40695 "gram.c" /* yacc.c:1652 */ + case 1699: /* opt_all_clause: ALL */ +#line 11697 "gram.y" + { (yyval.list) = NIL;} +#line 41187 "gram.c" break; - case 1700: -#line 11698 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 40701 "gram.c" /* yacc.c:1652 */ + case 1700: /* opt_all_clause: %empty */ +#line 11698 "gram.y" + { (yyval.list) = NIL; } +#line 41193 "gram.c" break; - case 1701: -#line 11702 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list);} -#line 40707 "gram.c" /* yacc.c:1652 */ + case 1701: /* opt_sort_clause: sort_clause */ +#line 11702 "gram.y" + { (yyval.list) = (yyvsp[0].list);} +#line 41199 "gram.c" break; - case 1702: -#line 11703 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 40713 "gram.c" /* yacc.c:1652 */ + case 1702: /* opt_sort_clause: %empty */ +#line 11703 "gram.y" + { (yyval.list) = NIL; } +#line 41205 "gram.c" break; - case 1703: -#line 11707 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 40719 "gram.c" /* yacc.c:1652 */ + case 1703: /* sort_clause: ORDER BY sortby_list */ +#line 11707 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 41211 "gram.c" break; - case 1704: -#line 11711 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].sortby)); } -#line 40725 "gram.c" /* yacc.c:1652 */ + case 1704: /* sortby_list: sortby */ +#line 11711 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].sortby)); } +#line 41217 "gram.c" break; - case 1705: -#line 11712 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); } -#line 40731 "gram.c" /* yacc.c:1652 */ + case 1705: /* sortby_list: sortby_list ',' sortby */ +#line 11712 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); } +#line 41223 "gram.c" break; - case 1706: -#line 11716 "gram.y" /* yacc.c:1652 */ - { + case 1706: /* sortby: a_expr USING qual_all_Op opt_nulls_order */ +#line 11716 "gram.y" + { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[-3].node); (yyval.sortby)->sortby_dir = SORTBY_USING; @@ -40740,12 +41232,12 @@ (yyval.sortby)->useOp = (yyvsp[-1].list); (yyval.sortby)->location = (yylsp[-1]); } -#line 40744 "gram.c" /* yacc.c:1652 */ +#line 41236 "gram.c" break; - case 1707: -#line 11725 "gram.y" /* yacc.c:1652 */ - { + case 1707: /* sortby: a_expr opt_asc_desc opt_nulls_order */ +#line 11725 "gram.y" + { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[-2].node); (yyval.sortby)->sortby_dir = (yyvsp[-1].ival); @@ -40753,74 +41245,74 @@ (yyval.sortby)->useOp = NIL; (yyval.sortby)->location = -1; /* no operator */ } -#line 40757 "gram.c" /* yacc.c:1652 */ +#line 41249 "gram.c" break; - case 1708: -#line 11738 "gram.y" /* yacc.c:1652 */ - { + case 1708: /* select_limit: limit_clause offset_clause */ +#line 11738 "gram.y" + { (yyval.selectlimit) = (yyvsp[-1].selectlimit); ((yyval.selectlimit))->limitOffset = (yyvsp[0].node); } -#line 40766 "gram.c" /* yacc.c:1652 */ +#line 41258 "gram.c" break; - case 1709: -#line 11743 "gram.y" /* yacc.c:1652 */ - { + case 1709: /* select_limit: offset_clause limit_clause */ +#line 11743 "gram.y" + { (yyval.selectlimit) = (yyvsp[0].selectlimit); ((yyval.selectlimit))->limitOffset = (yyvsp[-1].node); } -#line 40775 "gram.c" /* yacc.c:1652 */ +#line 41267 "gram.c" break; - case 1710: -#line 11748 "gram.y" /* yacc.c:1652 */ - { + case 1710: /* select_limit: limit_clause */ +#line 11748 "gram.y" + { (yyval.selectlimit) = (yyvsp[0].selectlimit); } -#line 40783 "gram.c" /* yacc.c:1652 */ +#line 41275 "gram.c" break; - case 1711: -#line 11752 "gram.y" /* yacc.c:1652 */ - { + case 1711: /* select_limit: offset_clause */ +#line 11752 "gram.y" + { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = (yyvsp[0].node); n->limitCount = NULL; n->limitOption = LIMIT_OPTION_COUNT; (yyval.selectlimit) = n; } -#line 40795 "gram.c" /* yacc.c:1652 */ +#line 41287 "gram.c" break; - case 1712: -#line 11762 "gram.y" /* yacc.c:1652 */ - { (yyval.selectlimit) = (yyvsp[0].selectlimit); } -#line 40801 "gram.c" /* yacc.c:1652 */ + case 1712: /* opt_select_limit: select_limit */ +#line 11762 "gram.y" + { (yyval.selectlimit) = (yyvsp[0].selectlimit); } +#line 41293 "gram.c" break; - case 1713: -#line 11763 "gram.y" /* yacc.c:1652 */ - { (yyval.selectlimit) = NULL; } -#line 40807 "gram.c" /* yacc.c:1652 */ + case 1713: /* opt_select_limit: %empty */ +#line 11763 "gram.y" + { (yyval.selectlimit) = NULL; } +#line 41299 "gram.c" break; - case 1714: -#line 11768 "gram.y" /* yacc.c:1652 */ - { + case 1714: /* limit_clause: LIMIT select_limit_value */ +#line 11768 "gram.y" + { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = (yyvsp[0].node); n->limitOption = LIMIT_OPTION_COUNT; (yyval.selectlimit) = n; } -#line 40819 "gram.c" /* yacc.c:1652 */ +#line 41311 "gram.c" break; - case 1715: -#line 11776 "gram.y" /* yacc.c:1652 */ - { + case 1715: /* limit_clause: LIMIT select_limit_value ',' select_offset_value */ +#line 11776 "gram.y" + { /* Disabled because it was too confusing, bjm 2002-02-18 */ ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), @@ -40828,438 +41320,438 @@ errhint("Use separate LIMIT and OFFSET clauses."), parser_errposition((yylsp[-3])))); } -#line 40832 "gram.c" /* yacc.c:1652 */ +#line 41324 "gram.c" break; - case 1716: -#line 11792 "gram.y" /* yacc.c:1652 */ - { + case 1716: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows ONLY */ +#line 11792 "gram.y" + { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = (yyvsp[-2].node); n->limitOption = LIMIT_OPTION_COUNT; (yyval.selectlimit) = n; } -#line 40844 "gram.c" /* yacc.c:1652 */ +#line 41336 "gram.c" break; - case 1717: -#line 11800 "gram.y" /* yacc.c:1652 */ - { + case 1717: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows WITH TIES */ +#line 11800 "gram.y" + { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = (yyvsp[-3].node); n->limitOption = LIMIT_OPTION_WITH_TIES; (yyval.selectlimit) = n; } -#line 40856 "gram.c" /* yacc.c:1652 */ +#line 41348 "gram.c" break; - case 1718: -#line 11808 "gram.y" /* yacc.c:1652 */ - { + case 1718: /* limit_clause: FETCH first_or_next row_or_rows ONLY */ +#line 11808 "gram.y" + { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = makeIntConst(1, -1); n->limitOption = LIMIT_OPTION_COUNT; (yyval.selectlimit) = n; } -#line 40868 "gram.c" /* yacc.c:1652 */ +#line 41360 "gram.c" break; - case 1719: -#line 11816 "gram.y" /* yacc.c:1652 */ - { + case 1719: /* limit_clause: FETCH first_or_next row_or_rows WITH TIES */ +#line 11816 "gram.y" + { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = makeIntConst(1, -1); n->limitOption = LIMIT_OPTION_WITH_TIES; (yyval.selectlimit) = n; } -#line 40880 "gram.c" /* yacc.c:1652 */ +#line 41372 "gram.c" break; - case 1720: -#line 11827 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 40886 "gram.c" /* yacc.c:1652 */ + case 1720: /* offset_clause: OFFSET select_offset_value */ +#line 11827 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41378 "gram.c" break; - case 1721: -#line 11830 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[-1].node); } -#line 40892 "gram.c" /* yacc.c:1652 */ + case 1721: /* offset_clause: OFFSET select_fetch_first_value row_or_rows */ +#line 11830 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 41384 "gram.c" break; - case 1722: -#line 11834 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 40898 "gram.c" /* yacc.c:1652 */ + case 1722: /* select_limit_value: a_expr */ +#line 11834 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41390 "gram.c" break; - case 1723: -#line 11836 "gram.y" /* yacc.c:1652 */ - { + case 1723: /* select_limit_value: ALL */ +#line 11836 "gram.y" + { /* LIMIT ALL is represented as a NULL constant */ (yyval.node) = makeNullAConst((yylsp[0])); } -#line 40907 "gram.c" /* yacc.c:1652 */ +#line 41399 "gram.c" break; - case 1724: -#line 11843 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 40913 "gram.c" /* yacc.c:1652 */ + case 1724: /* select_offset_value: a_expr */ +#line 11843 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41405 "gram.c" break; - case 1725: -#line 11863 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 40919 "gram.c" /* yacc.c:1652 */ + case 1725: /* select_fetch_first_value: c_expr */ +#line 11863 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41411 "gram.c" break; - case 1726: -#line 11865 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 40925 "gram.c" /* yacc.c:1652 */ + case 1726: /* select_fetch_first_value: '+' I_or_F_const */ +#line 11865 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 41417 "gram.c" break; - case 1727: -#line 11867 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } -#line 40931 "gram.c" /* yacc.c:1652 */ + case 1727: /* select_fetch_first_value: '-' I_or_F_const */ +#line 11867 "gram.y" + { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } +#line 41423 "gram.c" break; - case 1728: -#line 11871 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); } -#line 40937 "gram.c" /* yacc.c:1652 */ + case 1728: /* I_or_F_const: Iconst */ +#line 11871 "gram.y" + { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); } +#line 41429 "gram.c" break; - case 1729: -#line 11872 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); } -#line 40943 "gram.c" /* yacc.c:1652 */ + case 1729: /* I_or_F_const: FCONST */ +#line 11872 "gram.y" + { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); } +#line 41435 "gram.c" break; - case 1730: -#line 11876 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 40949 "gram.c" /* yacc.c:1652 */ + case 1730: /* row_or_rows: ROW */ +#line 11876 "gram.y" + { (yyval.ival) = 0; } +#line 41441 "gram.c" break; - case 1731: -#line 11877 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 40955 "gram.c" /* yacc.c:1652 */ + case 1731: /* row_or_rows: ROWS */ +#line 11877 "gram.y" + { (yyval.ival) = 0; } +#line 41447 "gram.c" break; - case 1732: -#line 11880 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 40961 "gram.c" /* yacc.c:1652 */ + case 1732: /* first_or_next: FIRST_P */ +#line 11880 "gram.y" + { (yyval.ival) = 0; } +#line 41453 "gram.c" break; - case 1733: -#line 11881 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 40967 "gram.c" /* yacc.c:1652 */ + case 1733: /* first_or_next: NEXT */ +#line 11881 "gram.y" + { (yyval.ival) = 0; } +#line 41459 "gram.c" break; - case 1734: -#line 11906 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 40973 "gram.c" /* yacc.c:1652 */ + case 1734: /* group_clause: GROUP_P BY group_by_list */ +#line 11906 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 41465 "gram.c" break; - case 1735: -#line 11907 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 40979 "gram.c" /* yacc.c:1652 */ + case 1735: /* group_clause: %empty */ +#line 11907 "gram.y" + { (yyval.list) = NIL; } +#line 41471 "gram.c" break; - case 1736: -#line 11911 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 40985 "gram.c" /* yacc.c:1652 */ + case 1736: /* group_by_list: group_by_item */ +#line 11911 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 41477 "gram.c" break; - case 1737: -#line 11912 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); } -#line 40991 "gram.c" /* yacc.c:1652 */ + case 1737: /* group_by_list: group_by_list ',' group_by_item */ +#line 11912 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); } +#line 41483 "gram.c" break; - case 1738: -#line 11916 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 40997 "gram.c" /* yacc.c:1652 */ + case 1738: /* group_by_item: a_expr */ +#line 11916 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41489 "gram.c" break; - case 1739: -#line 11917 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 41003 "gram.c" /* yacc.c:1652 */ + case 1739: /* group_by_item: empty_grouping_set */ +#line 11917 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41495 "gram.c" break; - case 1740: -#line 11918 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 41009 "gram.c" /* yacc.c:1652 */ + case 1740: /* group_by_item: cube_clause */ +#line 11918 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41501 "gram.c" break; - case 1741: -#line 11919 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 41015 "gram.c" /* yacc.c:1652 */ + case 1741: /* group_by_item: rollup_clause */ +#line 11919 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41507 "gram.c" break; - case 1742: -#line 11920 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 41021 "gram.c" /* yacc.c:1652 */ + case 1742: /* group_by_item: grouping_sets_clause */ +#line 11920 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41513 "gram.c" break; - case 1743: -#line 11925 "gram.y" /* yacc.c:1652 */ - { + case 1743: /* empty_grouping_set: '(' ')' */ +#line 11925 "gram.y" + { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[-1])); } -#line 41029 "gram.c" /* yacc.c:1652 */ +#line 41521 "gram.c" break; - case 1744: -#line 11938 "gram.y" /* yacc.c:1652 */ - { + case 1744: /* rollup_clause: ROLLUP '(' expr_list ')' */ +#line 11938 "gram.y" + { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[-1].list), (yylsp[-3])); } -#line 41037 "gram.c" /* yacc.c:1652 */ +#line 41529 "gram.c" break; - case 1745: -#line 11945 "gram.y" /* yacc.c:1652 */ - { + case 1745: /* cube_clause: CUBE '(' expr_list ')' */ +#line 11945 "gram.y" + { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[-1].list), (yylsp[-3])); } -#line 41045 "gram.c" /* yacc.c:1652 */ +#line 41537 "gram.c" break; - case 1746: -#line 11952 "gram.y" /* yacc.c:1652 */ - { + case 1746: /* grouping_sets_clause: GROUPING SETS '(' group_by_list ')' */ +#line 11952 "gram.y" + { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[-1].list), (yylsp[-4])); } -#line 41053 "gram.c" /* yacc.c:1652 */ +#line 41545 "gram.c" break; - case 1747: -#line 11958 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 41059 "gram.c" /* yacc.c:1652 */ + case 1747: /* having_clause: HAVING a_expr */ +#line 11958 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 41551 "gram.c" break; - case 1748: -#line 11959 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 41065 "gram.c" /* yacc.c:1652 */ + case 1748: /* having_clause: %empty */ +#line 11959 "gram.y" + { (yyval.node) = NULL; } +#line 41557 "gram.c" break; - case 1749: -#line 11963 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 41071 "gram.c" /* yacc.c:1652 */ + case 1749: /* for_locking_clause: for_locking_items */ +#line 11963 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 41563 "gram.c" break; - case 1750: -#line 11964 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 41077 "gram.c" /* yacc.c:1652 */ + case 1750: /* for_locking_clause: FOR READ ONLY */ +#line 11964 "gram.y" + { (yyval.list) = NIL; } +#line 41569 "gram.c" break; - case 1751: -#line 11968 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 41083 "gram.c" /* yacc.c:1652 */ + case 1751: /* opt_for_locking_clause: for_locking_clause */ +#line 11968 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 41575 "gram.c" break; - case 1752: -#line 11969 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 41089 "gram.c" /* yacc.c:1652 */ + case 1752: /* opt_for_locking_clause: %empty */ +#line 11969 "gram.y" + { (yyval.list) = NIL; } +#line 41581 "gram.c" break; - case 1753: -#line 11973 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 41095 "gram.c" /* yacc.c:1652 */ + case 1753: /* for_locking_items: for_locking_item */ +#line 11973 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 41587 "gram.c" break; - case 1754: -#line 11974 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 41101 "gram.c" /* yacc.c:1652 */ + case 1754: /* for_locking_items: for_locking_items for_locking_item */ +#line 11974 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 41593 "gram.c" break; - case 1755: -#line 11979 "gram.y" /* yacc.c:1652 */ - { + case 1755: /* for_locking_item: for_locking_strength locked_rels_list opt_nowait_or_skip */ +#line 11979 "gram.y" + { LockingClause *n = makeNode(LockingClause); n->lockedRels = (yyvsp[-1].list); n->strength = (yyvsp[-2].ival); n->waitPolicy = (yyvsp[0].ival); (yyval.node) = (Node *) n; } -#line 41113 "gram.c" /* yacc.c:1652 */ +#line 41605 "gram.c" break; - case 1756: -#line 11989 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = LCS_FORUPDATE; } -#line 41119 "gram.c" /* yacc.c:1652 */ + case 1756: /* for_locking_strength: FOR UPDATE */ +#line 11989 "gram.y" + { (yyval.ival) = LCS_FORUPDATE; } +#line 41611 "gram.c" break; - case 1757: -#line 11990 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = LCS_FORNOKEYUPDATE; } -#line 41125 "gram.c" /* yacc.c:1652 */ + case 1757: /* for_locking_strength: FOR NO KEY UPDATE */ +#line 11990 "gram.y" + { (yyval.ival) = LCS_FORNOKEYUPDATE; } +#line 41617 "gram.c" break; - case 1758: -#line 11991 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = LCS_FORSHARE; } -#line 41131 "gram.c" /* yacc.c:1652 */ + case 1758: /* for_locking_strength: FOR SHARE */ +#line 11991 "gram.y" + { (yyval.ival) = LCS_FORSHARE; } +#line 41623 "gram.c" break; - case 1759: -#line 11992 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = LCS_FORKEYSHARE; } -#line 41137 "gram.c" /* yacc.c:1652 */ + case 1759: /* for_locking_strength: FOR KEY SHARE */ +#line 11992 "gram.y" + { (yyval.ival) = LCS_FORKEYSHARE; } +#line 41629 "gram.c" break; - case 1760: -#line 11996 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 41143 "gram.c" /* yacc.c:1652 */ + case 1760: /* locked_rels_list: OF qualified_name_list */ +#line 11996 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 41635 "gram.c" break; - case 1761: -#line 11997 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 41149 "gram.c" /* yacc.c:1652 */ + case 1761: /* locked_rels_list: %empty */ +#line 11997 "gram.y" + { (yyval.list) = NIL; } +#line 41641 "gram.c" break; - case 1762: -#line 12008 "gram.y" /* yacc.c:1652 */ - { + case 1762: /* values_clause: VALUES '(' expr_list ')' */ +#line 12008 "gram.y" + { SelectStmt *n = makeNode(SelectStmt); n->valuesLists = list_make1((yyvsp[-1].list)); (yyval.node) = (Node *) n; } -#line 41159 "gram.c" /* yacc.c:1652 */ +#line 41651 "gram.c" break; - case 1763: -#line 12014 "gram.y" /* yacc.c:1652 */ - { + case 1763: /* values_clause: values_clause ',' '(' expr_list ')' */ +#line 12014 "gram.y" + { SelectStmt *n = (SelectStmt *) (yyvsp[-4].node); n->valuesLists = lappend(n->valuesLists, (yyvsp[-1].list)); (yyval.node) = (Node *) n; } -#line 41169 "gram.c" /* yacc.c:1652 */ +#line 41661 "gram.c" break; - case 1764: -#line 12031 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 41175 "gram.c" /* yacc.c:1652 */ + case 1764: /* from_clause: FROM from_list */ +#line 12031 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 41667 "gram.c" break; - case 1765: -#line 12032 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 41181 "gram.c" /* yacc.c:1652 */ + case 1765: /* from_clause: %empty */ +#line 12032 "gram.y" + { (yyval.list) = NIL; } +#line 41673 "gram.c" break; - case 1766: -#line 12036 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 41187 "gram.c" /* yacc.c:1652 */ + case 1766: /* from_list: table_ref */ +#line 12036 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 41679 "gram.c" break; - case 1767: -#line 12037 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 41193 "gram.c" /* yacc.c:1652 */ + case 1767: /* from_list: from_list ',' table_ref */ +#line 12037 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 41685 "gram.c" break; - case 1768: -#line 12044 "gram.y" /* yacc.c:1652 */ - { + case 1768: /* table_ref: relation_expr opt_alias_clause */ +#line 12044 "gram.y" + { (yyvsp[-1].range)->alias = (yyvsp[0].alias); (yyval.node) = (Node *) (yyvsp[-1].range); } -#line 41202 "gram.c" /* yacc.c:1652 */ +#line 41694 "gram.c" break; - case 1769: -#line 12049 "gram.y" /* yacc.c:1652 */ - { + case 1769: /* table_ref: relation_expr opt_alias_clause tablesample_clause */ +#line 12049 "gram.y" + { RangeTableSample *n = (RangeTableSample *) (yyvsp[0].node); (yyvsp[-2].range)->alias = (yyvsp[-1].alias); /* relation_expr goes inside the RangeTableSample node */ n->relation = (Node *) (yyvsp[-2].range); (yyval.node) = (Node *) n; } -#line 41214 "gram.c" /* yacc.c:1652 */ +#line 41706 "gram.c" break; - case 1770: -#line 12057 "gram.y" /* yacc.c:1652 */ - { + case 1770: /* table_ref: func_table func_alias_clause */ +#line 12057 "gram.y" + { RangeFunction *n = (RangeFunction *) (yyvsp[-1].node); n->alias = linitial((yyvsp[0].list)); n->coldeflist = lsecond((yyvsp[0].list)); (yyval.node) = (Node *) n; } -#line 41225 "gram.c" /* yacc.c:1652 */ +#line 41717 "gram.c" break; - case 1771: -#line 12064 "gram.y" /* yacc.c:1652 */ - { + case 1771: /* table_ref: LATERAL_P func_table func_alias_clause */ +#line 12064 "gram.y" + { RangeFunction *n = (RangeFunction *) (yyvsp[-1].node); n->lateral = true; n->alias = linitial((yyvsp[0].list)); n->coldeflist = lsecond((yyvsp[0].list)); (yyval.node) = (Node *) n; } -#line 41237 "gram.c" /* yacc.c:1652 */ +#line 41729 "gram.c" break; - case 1772: -#line 12072 "gram.y" /* yacc.c:1652 */ - { + case 1772: /* table_ref: xmltable opt_alias_clause */ +#line 12072 "gram.y" + { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node); n->alias = (yyvsp[0].alias); (yyval.node) = (Node *) n; } -#line 41247 "gram.c" /* yacc.c:1652 */ +#line 41739 "gram.c" break; - case 1773: -#line 12078 "gram.y" /* yacc.c:1652 */ - { + case 1773: /* table_ref: LATERAL_P xmltable opt_alias_clause */ +#line 12078 "gram.y" + { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node); n->lateral = true; n->alias = (yyvsp[0].alias); (yyval.node) = (Node *) n; } -#line 41258 "gram.c" /* yacc.c:1652 */ +#line 41750 "gram.c" break; - case 1774: -#line 12085 "gram.y" /* yacc.c:1652 */ - { + case 1774: /* table_ref: select_with_parens opt_alias_clause */ +#line 12085 "gram.y" + { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = false; n->subquery = (yyvsp[-1].node); @@ -41293,12 +41785,12 @@ } (yyval.node) = (Node *) n; } -#line 41297 "gram.c" /* yacc.c:1652 */ +#line 41789 "gram.c" break; - case 1775: -#line 12120 "gram.y" /* yacc.c:1652 */ - { + case 1775: /* table_ref: LATERAL_P select_with_parens opt_alias_clause */ +#line 12120 "gram.y" + { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = true; n->subquery = (yyvsp[-1].node); @@ -41322,37 +41814,37 @@ } (yyval.node) = (Node *) n; } -#line 41326 "gram.c" /* yacc.c:1652 */ +#line 41818 "gram.c" break; - case 1776: -#line 12145 "gram.y" /* yacc.c:1652 */ - { + case 1776: /* table_ref: joined_table */ +#line 12145 "gram.y" + { (yyval.node) = (Node *) (yyvsp[0].jexpr); } -#line 41334 "gram.c" /* yacc.c:1652 */ +#line 41826 "gram.c" break; - case 1777: -#line 12149 "gram.y" /* yacc.c:1652 */ - { + case 1777: /* table_ref: '(' joined_table ')' alias_clause */ +#line 12149 "gram.y" + { (yyvsp[-2].jexpr)->alias = (yyvsp[0].alias); (yyval.node) = (Node *) (yyvsp[-2].jexpr); } -#line 41343 "gram.c" /* yacc.c:1652 */ +#line 41835 "gram.c" break; - case 1778: -#line 12175 "gram.y" /* yacc.c:1652 */ - { + case 1778: /* joined_table: '(' joined_table ')' */ +#line 12175 "gram.y" + { (yyval.jexpr) = (yyvsp[-1].jexpr); } -#line 41351 "gram.c" /* yacc.c:1652 */ +#line 41843 "gram.c" break; - case 1779: -#line 12179 "gram.y" /* yacc.c:1652 */ - { + case 1779: /* joined_table: table_ref CROSS JOIN table_ref */ +#line 12179 "gram.y" + { /* CROSS JOIN is same as unqualified inner join */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; @@ -41363,12 +41855,12 @@ n->quals = NULL; (yyval.jexpr) = n; } -#line 41367 "gram.c" /* yacc.c:1652 */ +#line 41859 "gram.c" break; - case 1780: -#line 12191 "gram.y" /* yacc.c:1652 */ - { + case 1780: /* joined_table: table_ref join_type JOIN table_ref join_qual */ +#line 12191 "gram.y" + { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[-3].jtype); n->isNatural = false; @@ -41380,12 +41872,12 @@ n->quals = (yyvsp[0].node); /* ON clause */ (yyval.jexpr) = n; } -#line 41384 "gram.c" /* yacc.c:1652 */ +#line 41876 "gram.c" break; - case 1781: -#line 12204 "gram.y" /* yacc.c:1652 */ - { + case 1781: /* joined_table: table_ref JOIN table_ref join_qual */ +#line 12204 "gram.y" + { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; @@ -41398,12 +41890,12 @@ n->quals = (yyvsp[0].node); /* ON clause */ (yyval.jexpr) = n; } -#line 41402 "gram.c" /* yacc.c:1652 */ +#line 41894 "gram.c" break; - case 1782: -#line 12218 "gram.y" /* yacc.c:1652 */ - { + case 1782: /* joined_table: table_ref NATURAL join_type JOIN table_ref */ +#line 12218 "gram.y" + { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[-2].jtype); n->isNatural = true; @@ -41413,12 +41905,12 @@ n->quals = NULL; /* fill later */ (yyval.jexpr) = n; } -#line 41417 "gram.c" /* yacc.c:1652 */ +#line 41909 "gram.c" break; - case 1783: -#line 12229 "gram.y" /* yacc.c:1652 */ - { + case 1783: /* joined_table: table_ref NATURAL JOIN table_ref */ +#line 12229 "gram.y" + { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; @@ -41429,240 +41921,240 @@ n->quals = NULL; /* fill later */ (yyval.jexpr) = n; } -#line 41433 "gram.c" /* yacc.c:1652 */ +#line 41925 "gram.c" break; - case 1784: -#line 12244 "gram.y" /* yacc.c:1652 */ - { + case 1784: /* alias_clause: AS ColId '(' name_list ')' */ +#line 12244 "gram.y" + { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[-3].str); (yyval.alias)->colnames = (yyvsp[-1].list); } -#line 41443 "gram.c" /* yacc.c:1652 */ +#line 41935 "gram.c" break; - case 1785: -#line 12250 "gram.y" /* yacc.c:1652 */ - { + case 1785: /* alias_clause: AS ColId */ +#line 12250 "gram.y" + { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[0].str); } -#line 41452 "gram.c" /* yacc.c:1652 */ +#line 41944 "gram.c" break; - case 1786: -#line 12255 "gram.y" /* yacc.c:1652 */ - { + case 1786: /* alias_clause: ColId '(' name_list ')' */ +#line 12255 "gram.y" + { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[-3].str); (yyval.alias)->colnames = (yyvsp[-1].list); } -#line 41462 "gram.c" /* yacc.c:1652 */ +#line 41954 "gram.c" break; - case 1787: -#line 12261 "gram.y" /* yacc.c:1652 */ - { + case 1787: /* alias_clause: ColId */ +#line 12261 "gram.y" + { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[0].str); } -#line 41471 "gram.c" /* yacc.c:1652 */ +#line 41963 "gram.c" break; - case 1788: -#line 12267 "gram.y" /* yacc.c:1652 */ - { (yyval.alias) = (yyvsp[0].alias); } -#line 41477 "gram.c" /* yacc.c:1652 */ + case 1788: /* opt_alias_clause: alias_clause */ +#line 12267 "gram.y" + { (yyval.alias) = (yyvsp[0].alias); } +#line 41969 "gram.c" break; - case 1789: -#line 12268 "gram.y" /* yacc.c:1652 */ - { (yyval.alias) = NULL; } -#line 41483 "gram.c" /* yacc.c:1652 */ + case 1789: /* opt_alias_clause: %empty */ +#line 12268 "gram.y" + { (yyval.alias) = NULL; } +#line 41975 "gram.c" break; - case 1790: -#line 12277 "gram.y" /* yacc.c:1652 */ - { + case 1790: /* func_alias_clause: alias_clause */ +#line 12277 "gram.y" + { (yyval.list) = list_make2((yyvsp[0].alias), NIL); } -#line 41491 "gram.c" /* yacc.c:1652 */ +#line 41983 "gram.c" break; - case 1791: -#line 12281 "gram.y" /* yacc.c:1652 */ - { + case 1791: /* func_alias_clause: AS '(' TableFuncElementList ')' */ +#line 12281 "gram.y" + { (yyval.list) = list_make2(NULL, (yyvsp[-1].list)); } -#line 41499 "gram.c" /* yacc.c:1652 */ +#line 41991 "gram.c" break; - case 1792: -#line 12285 "gram.y" /* yacc.c:1652 */ - { + case 1792: /* func_alias_clause: AS ColId '(' TableFuncElementList ')' */ +#line 12285 "gram.y" + { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[-3].str); (yyval.list) = list_make2(a, (yyvsp[-1].list)); } -#line 41509 "gram.c" /* yacc.c:1652 */ +#line 42001 "gram.c" break; - case 1793: -#line 12291 "gram.y" /* yacc.c:1652 */ - { + case 1793: /* func_alias_clause: ColId '(' TableFuncElementList ')' */ +#line 12291 "gram.y" + { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[-3].str); (yyval.list) = list_make2(a, (yyvsp[-1].list)); } -#line 41519 "gram.c" /* yacc.c:1652 */ +#line 42011 "gram.c" break; - case 1794: -#line 12297 "gram.y" /* yacc.c:1652 */ - { + case 1794: /* func_alias_clause: %empty */ +#line 12297 "gram.y" + { (yyval.list) = list_make2(NULL, NIL); } -#line 41527 "gram.c" /* yacc.c:1652 */ +#line 42019 "gram.c" break; - case 1795: -#line 12302 "gram.y" /* yacc.c:1652 */ - { (yyval.jtype) = JOIN_FULL; } -#line 41533 "gram.c" /* yacc.c:1652 */ + case 1795: /* join_type: FULL join_outer */ +#line 12302 "gram.y" + { (yyval.jtype) = JOIN_FULL; } +#line 42025 "gram.c" break; - case 1796: -#line 12303 "gram.y" /* yacc.c:1652 */ - { (yyval.jtype) = JOIN_LEFT; } -#line 41539 "gram.c" /* yacc.c:1652 */ + case 1796: /* join_type: LEFT join_outer */ +#line 12303 "gram.y" + { (yyval.jtype) = JOIN_LEFT; } +#line 42031 "gram.c" break; - case 1797: -#line 12304 "gram.y" /* yacc.c:1652 */ - { (yyval.jtype) = JOIN_RIGHT; } -#line 41545 "gram.c" /* yacc.c:1652 */ + case 1797: /* join_type: RIGHT join_outer */ +#line 12304 "gram.y" + { (yyval.jtype) = JOIN_RIGHT; } +#line 42037 "gram.c" break; - case 1798: -#line 12305 "gram.y" /* yacc.c:1652 */ - { (yyval.jtype) = JOIN_INNER; } -#line 41551 "gram.c" /* yacc.c:1652 */ + case 1798: /* join_type: INNER_P */ +#line 12305 "gram.y" + { (yyval.jtype) = JOIN_INNER; } +#line 42043 "gram.c" break; - case 1799: -#line 12309 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 41557 "gram.c" /* yacc.c:1652 */ + case 1799: /* join_outer: OUTER_P */ +#line 12309 "gram.y" + { (yyval.node) = NULL; } +#line 42049 "gram.c" break; - case 1800: -#line 12310 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 41563 "gram.c" /* yacc.c:1652 */ + case 1800: /* join_outer: %empty */ +#line 12310 "gram.y" + { (yyval.node) = NULL; } +#line 42055 "gram.c" break; - case 1801: -#line 12322 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) (yyvsp[-1].list); } -#line 41569 "gram.c" /* yacc.c:1652 */ + case 1801: /* join_qual: USING '(' name_list ')' */ +#line 12322 "gram.y" + { (yyval.node) = (Node *) (yyvsp[-1].list); } +#line 42061 "gram.c" break; - case 1802: -#line 12323 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 41575 "gram.c" /* yacc.c:1652 */ + case 1802: /* join_qual: ON a_expr */ +#line 12323 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 42067 "gram.c" break; - case 1803: -#line 12329 "gram.y" /* yacc.c:1652 */ - { + case 1803: /* relation_expr: qualified_name */ +#line 12329 "gram.y" + { /* inheritance query, implicitly */ (yyval.range) = (yyvsp[0].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; } -#line 41586 "gram.c" /* yacc.c:1652 */ +#line 42078 "gram.c" break; - case 1804: -#line 12336 "gram.y" /* yacc.c:1652 */ - { + case 1804: /* relation_expr: qualified_name '*' */ +#line 12336 "gram.y" + { /* inheritance query, explicitly */ (yyval.range) = (yyvsp[-1].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; } -#line 41597 "gram.c" /* yacc.c:1652 */ +#line 42089 "gram.c" break; - case 1805: -#line 12343 "gram.y" /* yacc.c:1652 */ - { + case 1805: /* relation_expr: ONLY qualified_name */ +#line 12343 "gram.y" + { /* no inheritance */ (yyval.range) = (yyvsp[0].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; } -#line 41608 "gram.c" /* yacc.c:1652 */ +#line 42100 "gram.c" break; - case 1806: -#line 12350 "gram.y" /* yacc.c:1652 */ - { + case 1806: /* relation_expr: ONLY '(' qualified_name ')' */ +#line 12350 "gram.y" + { /* no inheritance, SQL99-style syntax */ (yyval.range) = (yyvsp[-1].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; } -#line 41619 "gram.c" /* yacc.c:1652 */ +#line 42111 "gram.c" break; - case 1807: -#line 12360 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].range)); } -#line 41625 "gram.c" /* yacc.c:1652 */ + case 1807: /* relation_expr_list: relation_expr */ +#line 12360 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].range)); } +#line 42117 "gram.c" break; - case 1808: -#line 12361 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } -#line 41631 "gram.c" /* yacc.c:1652 */ + case 1808: /* relation_expr_list: relation_expr_list ',' relation_expr */ +#line 12361 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } +#line 42123 "gram.c" break; - case 1809: -#line 12375 "gram.y" /* yacc.c:1652 */ - { + case 1809: /* relation_expr_opt_alias: relation_expr */ +#line 12375 "gram.y" + { (yyval.range) = (yyvsp[0].range); } -#line 41639 "gram.c" /* yacc.c:1652 */ +#line 42131 "gram.c" break; - case 1810: -#line 12379 "gram.y" /* yacc.c:1652 */ - { + case 1810: /* relation_expr_opt_alias: relation_expr ColId */ +#line 12379 "gram.y" + { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[0].str); (yyvsp[-1].range)->alias = alias; (yyval.range) = (yyvsp[-1].range); } -#line 41650 "gram.c" /* yacc.c:1652 */ +#line 42142 "gram.c" break; - case 1811: -#line 12386 "gram.y" /* yacc.c:1652 */ - { + case 1811: /* relation_expr_opt_alias: relation_expr AS ColId */ +#line 12386 "gram.y" + { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[0].str); (yyvsp[-2].range)->alias = alias; (yyval.range) = (yyvsp[-2].range); } -#line 41661 "gram.c" /* yacc.c:1652 */ +#line 42153 "gram.c" break; - case 1812: -#line 12399 "gram.y" /* yacc.c:1652 */ - { + case 1812: /* tablesample_clause: TABLESAMPLE func_name '(' expr_list ')' opt_repeatable_clause */ +#line 12399 "gram.y" + { RangeTableSample *n = makeNode(RangeTableSample); /* n->relation will be filled in later */ n->method = (yyvsp[-4].list); @@ -41671,24 +42163,24 @@ n->location = (yylsp[-4]); (yyval.node) = (Node *) n; } -#line 41675 "gram.c" /* yacc.c:1652 */ +#line 42167 "gram.c" break; - case 1813: -#line 12411 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) (yyvsp[-1].node); } -#line 41681 "gram.c" /* yacc.c:1652 */ + case 1813: /* opt_repeatable_clause: REPEATABLE '(' a_expr ')' */ +#line 12411 "gram.y" + { (yyval.node) = (Node *) (yyvsp[-1].node); } +#line 42173 "gram.c" break; - case 1814: -#line 12412 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 41687 "gram.c" /* yacc.c:1652 */ + case 1814: /* opt_repeatable_clause: %empty */ +#line 12412 "gram.y" + { (yyval.node) = NULL; } +#line 42179 "gram.c" break; - case 1815: -#line 12428 "gram.y" /* yacc.c:1652 */ - { + case 1815: /* func_table: func_expr_windowless opt_ordinality */ +#line 12428 "gram.y" + { RangeFunction *n = makeNode(RangeFunction); n->lateral = false; n->ordinality = (yyvsp[0].boolean); @@ -41697,12 +42189,12 @@ /* alias and coldeflist are set by table_ref production */ (yyval.node) = (Node *) n; } -#line 41701 "gram.c" /* yacc.c:1652 */ +#line 42193 "gram.c" break; - case 1816: -#line 12438 "gram.y" /* yacc.c:1652 */ - { + case 1816: /* func_table: ROWS FROM '(' rowsfrom_list ')' opt_ordinality */ +#line 12438 "gram.y" + { RangeFunction *n = makeNode(RangeFunction); n->lateral = false; n->ordinality = (yyvsp[0].boolean); @@ -41711,118 +42203,118 @@ /* alias and coldeflist are set by table_ref production */ (yyval.node) = (Node *) n; } -#line 41715 "gram.c" /* yacc.c:1652 */ +#line 42207 "gram.c" break; - case 1817: -#line 12450 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); } -#line 41721 "gram.c" /* yacc.c:1652 */ + case 1817: /* rowsfrom_item: func_expr_windowless opt_col_def_list */ +#line 12450 "gram.y" + { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); } +#line 42213 "gram.c" break; - case 1818: -#line 12454 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].list)); } -#line 41727 "gram.c" /* yacc.c:1652 */ + case 1818: /* rowsfrom_list: rowsfrom_item */ +#line 12454 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 42219 "gram.c" break; - case 1819: -#line 12455 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } -#line 41733 "gram.c" /* yacc.c:1652 */ + case 1819: /* rowsfrom_list: rowsfrom_list ',' rowsfrom_item */ +#line 12455 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } +#line 42225 "gram.c" break; - case 1820: -#line 12458 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 41739 "gram.c" /* yacc.c:1652 */ + case 1820: /* opt_col_def_list: AS '(' TableFuncElementList ')' */ +#line 12458 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 42231 "gram.c" break; - case 1821: -#line 12459 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 41745 "gram.c" /* yacc.c:1652 */ + case 1821: /* opt_col_def_list: %empty */ +#line 12459 "gram.y" + { (yyval.list) = NIL; } +#line 42237 "gram.c" break; - case 1822: -#line 12462 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 41751 "gram.c" /* yacc.c:1652 */ + case 1822: /* opt_ordinality: WITH_LA ORDINALITY */ +#line 12462 "gram.y" + { (yyval.boolean) = true; } +#line 42243 "gram.c" break; - case 1823: -#line 12463 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 41757 "gram.c" /* yacc.c:1652 */ + case 1823: /* opt_ordinality: %empty */ +#line 12463 "gram.y" + { (yyval.boolean) = false; } +#line 42249 "gram.c" break; - case 1824: -#line 12468 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 41763 "gram.c" /* yacc.c:1652 */ + case 1824: /* where_clause: WHERE a_expr */ +#line 12468 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 42255 "gram.c" break; - case 1825: -#line 12469 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 41769 "gram.c" /* yacc.c:1652 */ + case 1825: /* where_clause: %empty */ +#line 12469 "gram.y" + { (yyval.node) = NULL; } +#line 42261 "gram.c" break; - case 1826: -#line 12474 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 41775 "gram.c" /* yacc.c:1652 */ + case 1826: /* where_or_current_clause: WHERE a_expr */ +#line 12474 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 42267 "gram.c" break; - case 1827: -#line 12476 "gram.y" /* yacc.c:1652 */ - { + case 1827: /* where_or_current_clause: WHERE CURRENT_P OF cursor_name */ +#line 12476 "gram.y" + { CurrentOfExpr *n = makeNode(CurrentOfExpr); /* cvarno is filled in by parse analysis */ n->cursor_name = (yyvsp[0].str); n->cursor_param = 0; (yyval.node) = (Node *) n; } -#line 41787 "gram.c" /* yacc.c:1652 */ +#line 42279 "gram.c" break; - case 1828: -#line 12483 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 41793 "gram.c" /* yacc.c:1652 */ + case 1828: /* where_or_current_clause: %empty */ +#line 12483 "gram.y" + { (yyval.node) = NULL; } +#line 42285 "gram.c" break; - case 1829: -#line 12488 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 41799 "gram.c" /* yacc.c:1652 */ + case 1829: /* OptTableFuncElementList: TableFuncElementList */ +#line 12488 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 42291 "gram.c" break; - case 1830: -#line 12489 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 41805 "gram.c" /* yacc.c:1652 */ + case 1830: /* OptTableFuncElementList: %empty */ +#line 12489 "gram.y" + { (yyval.list) = NIL; } +#line 42297 "gram.c" break; - case 1831: -#line 12494 "gram.y" /* yacc.c:1652 */ - { + case 1831: /* TableFuncElementList: TableFuncElement */ +#line 12494 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 41813 "gram.c" /* yacc.c:1652 */ +#line 42305 "gram.c" break; - case 1832: -#line 12498 "gram.y" /* yacc.c:1652 */ - { + case 1832: /* TableFuncElementList: TableFuncElementList ',' TableFuncElement */ +#line 12498 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 41821 "gram.c" /* yacc.c:1652 */ +#line 42313 "gram.c" break; - case 1833: -#line 12504 "gram.y" /* yacc.c:1652 */ - { + case 1833: /* TableFuncElement: ColId Typename opt_collate_clause */ +#line 12504 "gram.y" + { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-2].str); n->typeName = (yyvsp[-1].typnam); @@ -41839,12 +42331,12 @@ n->location = (yylsp[-2]); (yyval.node) = (Node *)n; } -#line 41843 "gram.c" /* yacc.c:1652 */ +#line 42335 "gram.c" break; - case 1834: -#line 12528 "gram.y" /* yacc.c:1652 */ - { + case 1834: /* xmltable: XMLTABLE '(' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */ +#line 12528 "gram.y" + { RangeTableFunc *n = makeNode(RangeTableFunc); n->rowexpr = (yyvsp[-4].node); n->docexpr = (yyvsp[-3].node); @@ -41853,12 +42345,12 @@ n->location = (yylsp[-6]); (yyval.node) = (Node *)n; } -#line 41857 "gram.c" /* yacc.c:1652 */ +#line 42349 "gram.c" break; - case 1835: -#line 12539 "gram.y" /* yacc.c:1652 */ - { + case 1835: /* xmltable: XMLTABLE '(' XMLNAMESPACES '(' xml_namespace_list ')' ',' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */ +#line 12539 "gram.y" + { RangeTableFunc *n = makeNode(RangeTableFunc); n->rowexpr = (yyvsp[-4].node); n->docexpr = (yyvsp[-3].node); @@ -41867,24 +42359,24 @@ n->location = (yylsp[-11]); (yyval.node) = (Node *)n; } -#line 41871 "gram.c" /* yacc.c:1652 */ +#line 42363 "gram.c" break; - case 1836: -#line 12550 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 41877 "gram.c" /* yacc.c:1652 */ + case 1836: /* xmltable_column_list: xmltable_column_el */ +#line 12550 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 42369 "gram.c" break; - case 1837: -#line 12551 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 41883 "gram.c" /* yacc.c:1652 */ + case 1837: /* xmltable_column_list: xmltable_column_list ',' xmltable_column_el */ +#line 12551 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 42375 "gram.c" break; - case 1838: -#line 12556 "gram.y" /* yacc.c:1652 */ - { + case 1838: /* xmltable_column_el: ColId Typename */ +#line 12556 "gram.y" + { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); fc->colname = (yyvsp[-1].str); @@ -41897,12 +42389,12 @@ (yyval.node) = (Node *) fc; } -#line 41901 "gram.c" /* yacc.c:1652 */ +#line 42393 "gram.c" break; - case 1839: -#line 12570 "gram.y" /* yacc.c:1652 */ - { + case 1839: /* xmltable_column_el: ColId Typename xmltable_column_option_list */ +#line 12570 "gram.y" + { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); ListCell *option; bool nullability_seen = false; @@ -41958,12 +42450,12 @@ } (yyval.node) = (Node *) fc; } -#line 41962 "gram.c" /* yacc.c:1652 */ +#line 42454 "gram.c" break; - case 1840: -#line 12627 "gram.y" /* yacc.c:1652 */ - { + case 1840: /* xmltable_column_el: ColId FOR ORDINALITY */ +#line 12627 "gram.y" + { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); fc->colname = (yyvsp[-2].str); @@ -41973,366 +42465,366 @@ (yyval.node) = (Node *) fc; } -#line 41977 "gram.c" /* yacc.c:1652 */ +#line 42469 "gram.c" break; - case 1841: -#line 12641 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 41983 "gram.c" /* yacc.c:1652 */ + case 1841: /* xmltable_column_option_list: xmltable_column_option_el */ +#line 12641 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 42475 "gram.c" break; - case 1842: -#line 12643 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 41989 "gram.c" /* yacc.c:1652 */ + case 1842: /* xmltable_column_option_list: xmltable_column_option_list xmltable_column_option_el */ +#line 12643 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 42481 "gram.c" break; - case 1843: -#line 12648 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } -#line 41995 "gram.c" /* yacc.c:1652 */ + case 1843: /* xmltable_column_option_el: IDENT b_expr */ +#line 12648 "gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } +#line 42487 "gram.c" break; - case 1844: -#line 12650 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("default", (yyvsp[0].node), (yylsp[-1])); } -#line 42001 "gram.c" /* yacc.c:1652 */ + case 1844: /* xmltable_column_option_el: DEFAULT b_expr */ +#line 12650 "gram.y" + { (yyval.defelt) = makeDefElem("default", (yyvsp[0].node), (yylsp[-1])); } +#line 42493 "gram.c" break; - case 1845: -#line 12652 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(true), (yylsp[-1])); } -#line 42007 "gram.c" /* yacc.c:1652 */ + case 1845: /* xmltable_column_option_el: NOT NULL_P */ +#line 12652 "gram.y" + { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(true), (yylsp[-1])); } +#line 42499 "gram.c" break; - case 1846: -#line 12654 "gram.y" /* yacc.c:1652 */ - { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(false), (yylsp[0])); } -#line 42013 "gram.c" /* yacc.c:1652 */ + case 1846: /* xmltable_column_option_el: NULL_P */ +#line 12654 "gram.y" + { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(false), (yylsp[0])); } +#line 42505 "gram.c" break; - case 1847: -#line 12659 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].target)); } -#line 42019 "gram.c" /* yacc.c:1652 */ + case 1847: /* xml_namespace_list: xml_namespace_el */ +#line 12659 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 42511 "gram.c" break; - case 1848: -#line 12661 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } -#line 42025 "gram.c" /* yacc.c:1652 */ + case 1848: /* xml_namespace_list: xml_namespace_list ',' xml_namespace_el */ +#line 12661 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 42517 "gram.c" break; - case 1849: -#line 12666 "gram.y" /* yacc.c:1652 */ - { + case 1849: /* xml_namespace_el: b_expr AS ColLabel */ +#line 12666 "gram.y" + { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } -#line 42037 "gram.c" /* yacc.c:1652 */ +#line 42529 "gram.c" break; - case 1850: -#line 12674 "gram.y" /* yacc.c:1652 */ - { + case 1850: /* xml_namespace_el: DEFAULT b_expr */ +#line 12674 "gram.y" + { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (yyvsp[0].node); (yyval.target)->location = (yylsp[-1]); } -#line 42049 "gram.c" /* yacc.c:1652 */ +#line 42541 "gram.c" break; - case 1851: -#line 12694 "gram.y" /* yacc.c:1652 */ - { + case 1851: /* Typename: SimpleTypename opt_array_bounds */ +#line 12694 "gram.y" + { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = (yyvsp[0].list); } -#line 42058 "gram.c" /* yacc.c:1652 */ +#line 42550 "gram.c" break; - case 1852: -#line 12699 "gram.y" /* yacc.c:1652 */ - { + case 1852: /* Typename: SETOF SimpleTypename opt_array_bounds */ +#line 12699 "gram.y" + { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = (yyvsp[0].list); (yyval.typnam)->setof = true; } -#line 42068 "gram.c" /* yacc.c:1652 */ +#line 42560 "gram.c" break; - case 1853: -#line 12706 "gram.y" /* yacc.c:1652 */ - { + case 1853: /* Typename: SimpleTypename ARRAY '[' Iconst ']' */ +#line 12706 "gram.y" + { (yyval.typnam) = (yyvsp[-4].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); } -#line 42077 "gram.c" /* yacc.c:1652 */ +#line 42569 "gram.c" break; - case 1854: -#line 12711 "gram.y" /* yacc.c:1652 */ - { + case 1854: /* Typename: SETOF SimpleTypename ARRAY '[' Iconst ']' */ +#line 12711 "gram.y" + { (yyval.typnam) = (yyvsp[-4].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); (yyval.typnam)->setof = true; } -#line 42087 "gram.c" /* yacc.c:1652 */ +#line 42579 "gram.c" break; - case 1855: -#line 12717 "gram.y" /* yacc.c:1652 */ - { + case 1855: /* Typename: SimpleTypename ARRAY */ +#line 12717 "gram.y" + { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); } -#line 42096 "gram.c" /* yacc.c:1652 */ +#line 42588 "gram.c" break; - case 1856: -#line 12722 "gram.y" /* yacc.c:1652 */ - { + case 1856: /* Typename: SETOF SimpleTypename ARRAY */ +#line 12722 "gram.y" + { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); (yyval.typnam)->setof = true; } -#line 42106 "gram.c" /* yacc.c:1652 */ +#line 42598 "gram.c" break; - case 1857: -#line 12731 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); } -#line 42112 "gram.c" /* yacc.c:1652 */ + case 1857: /* opt_array_bounds: opt_array_bounds '[' ']' */ +#line 12731 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); } +#line 42604 "gram.c" break; - case 1858: -#line 12733 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); } -#line 42118 "gram.c" /* yacc.c:1652 */ + case 1858: /* opt_array_bounds: opt_array_bounds '[' Iconst ']' */ +#line 12733 "gram.y" + { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); } +#line 42610 "gram.c" break; - case 1859: -#line 12735 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 42124 "gram.c" /* yacc.c:1652 */ + case 1859: /* opt_array_bounds: %empty */ +#line 12735 "gram.y" + { (yyval.list) = NIL; } +#line 42616 "gram.c" break; - case 1860: -#line 12739 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42130 "gram.c" /* yacc.c:1652 */ + case 1860: /* SimpleTypename: GenericType */ +#line 12739 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42622 "gram.c" break; - case 1861: -#line 12740 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42136 "gram.c" /* yacc.c:1652 */ + case 1861: /* SimpleTypename: Numeric */ +#line 12740 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42628 "gram.c" break; - case 1862: -#line 12741 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42142 "gram.c" /* yacc.c:1652 */ + case 1862: /* SimpleTypename: Bit */ +#line 12741 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42634 "gram.c" break; - case 1863: -#line 12742 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42148 "gram.c" /* yacc.c:1652 */ + case 1863: /* SimpleTypename: Character */ +#line 12742 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42640 "gram.c" break; - case 1864: -#line 12743 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42154 "gram.c" /* yacc.c:1652 */ + case 1864: /* SimpleTypename: ConstDatetime */ +#line 12743 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42646 "gram.c" break; - case 1865: -#line 12745 "gram.y" /* yacc.c:1652 */ - { + case 1865: /* SimpleTypename: ConstInterval opt_interval */ +#line 12745 "gram.y" + { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->typmods = (yyvsp[0].list); } -#line 42163 "gram.c" /* yacc.c:1652 */ +#line 42655 "gram.c" break; - case 1866: -#line 12750 "gram.y" /* yacc.c:1652 */ - { + case 1866: /* SimpleTypename: ConstInterval '(' Iconst ')' */ +#line 12750 "gram.y" + { (yyval.typnam) = (yyvsp[-3].typnam); (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); } -#line 42173 "gram.c" /* yacc.c:1652 */ +#line 42665 "gram.c" break; - case 1867: -#line 12769 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42179 "gram.c" /* yacc.c:1652 */ + case 1867: /* ConstTypename: Numeric */ +#line 12769 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42671 "gram.c" break; - case 1868: -#line 12770 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42185 "gram.c" /* yacc.c:1652 */ + case 1868: /* ConstTypename: ConstBit */ +#line 12770 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42677 "gram.c" break; - case 1869: -#line 12771 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42191 "gram.c" /* yacc.c:1652 */ + case 1869: /* ConstTypename: ConstCharacter */ +#line 12771 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42683 "gram.c" break; - case 1870: -#line 12772 "gram.y" /* yacc.c:1652 */ - { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42197 "gram.c" /* yacc.c:1652 */ + case 1870: /* ConstTypename: ConstDatetime */ +#line 12772 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 42689 "gram.c" break; - case 1871: -#line 12784 "gram.y" /* yacc.c:1652 */ - { + case 1871: /* GenericType: type_function_name opt_type_modifiers */ +#line 12784 "gram.y" + { (yyval.typnam) = makeTypeName((yyvsp[-1].str)); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } -#line 42207 "gram.c" /* yacc.c:1652 */ +#line 42699 "gram.c" break; - case 1872: -#line 12790 "gram.y" /* yacc.c:1652 */ - { + case 1872: /* GenericType: type_function_name attrs opt_type_modifiers */ +#line 12790 "gram.y" + { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-2].str)), (yyvsp[-1].list))); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-2]); } -#line 42217 "gram.c" /* yacc.c:1652 */ +#line 42709 "gram.c" break; - case 1873: -#line 12797 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 42223 "gram.c" /* yacc.c:1652 */ + case 1873: /* opt_type_modifiers: '(' expr_list ')' */ +#line 12797 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 42715 "gram.c" break; - case 1874: -#line 12798 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 42229 "gram.c" /* yacc.c:1652 */ + case 1874: /* opt_type_modifiers: %empty */ +#line 12798 "gram.y" + { (yyval.list) = NIL; } +#line 42721 "gram.c" break; - case 1875: -#line 12805 "gram.y" /* yacc.c:1652 */ - { + case 1875: /* Numeric: INT_P */ +#line 12805 "gram.y" + { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[0]); } -#line 42238 "gram.c" /* yacc.c:1652 */ +#line 42730 "gram.c" break; - case 1876: -#line 12810 "gram.y" /* yacc.c:1652 */ - { + case 1876: /* Numeric: INTEGER */ +#line 12810 "gram.y" + { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[0]); } -#line 42247 "gram.c" /* yacc.c:1652 */ +#line 42739 "gram.c" break; - case 1877: -#line 12815 "gram.y" /* yacc.c:1652 */ - { + case 1877: /* Numeric: SMALLINT */ +#line 12815 "gram.y" + { (yyval.typnam) = SystemTypeName("int2"); (yyval.typnam)->location = (yylsp[0]); } -#line 42256 "gram.c" /* yacc.c:1652 */ +#line 42748 "gram.c" break; - case 1878: -#line 12820 "gram.y" /* yacc.c:1652 */ - { + case 1878: /* Numeric: BIGINT */ +#line 12820 "gram.y" + { (yyval.typnam) = SystemTypeName("int8"); (yyval.typnam)->location = (yylsp[0]); } -#line 42265 "gram.c" /* yacc.c:1652 */ +#line 42757 "gram.c" break; - case 1879: -#line 12825 "gram.y" /* yacc.c:1652 */ - { + case 1879: /* Numeric: REAL */ +#line 12825 "gram.y" + { (yyval.typnam) = SystemTypeName("float4"); (yyval.typnam)->location = (yylsp[0]); } -#line 42274 "gram.c" /* yacc.c:1652 */ +#line 42766 "gram.c" break; - case 1880: -#line 12830 "gram.y" /* yacc.c:1652 */ - { + case 1880: /* Numeric: FLOAT_P opt_float */ +#line 12830 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->location = (yylsp[-1]); } -#line 42283 "gram.c" /* yacc.c:1652 */ +#line 42775 "gram.c" break; - case 1881: -#line 12835 "gram.y" /* yacc.c:1652 */ - { + case 1881: /* Numeric: DOUBLE_P PRECISION */ +#line 12835 "gram.y" + { (yyval.typnam) = SystemTypeName("float8"); (yyval.typnam)->location = (yylsp[-1]); } -#line 42292 "gram.c" /* yacc.c:1652 */ +#line 42784 "gram.c" break; - case 1882: -#line 12840 "gram.y" /* yacc.c:1652 */ - { + case 1882: /* Numeric: DECIMAL_P opt_type_modifiers */ +#line 12840 "gram.y" + { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } -#line 42302 "gram.c" /* yacc.c:1652 */ +#line 42794 "gram.c" break; - case 1883: -#line 12846 "gram.y" /* yacc.c:1652 */ - { + case 1883: /* Numeric: DEC opt_type_modifiers */ +#line 12846 "gram.y" + { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } -#line 42312 "gram.c" /* yacc.c:1652 */ +#line 42804 "gram.c" break; - case 1884: -#line 12852 "gram.y" /* yacc.c:1652 */ - { + case 1884: /* Numeric: NUMERIC opt_type_modifiers */ +#line 12852 "gram.y" + { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } -#line 42322 "gram.c" /* yacc.c:1652 */ +#line 42814 "gram.c" break; - case 1885: -#line 12858 "gram.y" /* yacc.c:1652 */ - { + case 1885: /* Numeric: BOOLEAN_P */ +#line 12858 "gram.y" + { (yyval.typnam) = SystemTypeName("bool"); (yyval.typnam)->location = (yylsp[0]); } -#line 42331 "gram.c" /* yacc.c:1652 */ +#line 42823 "gram.c" break; - case 1886: -#line 12865 "gram.y" /* yacc.c:1652 */ - { + case 1886: /* opt_float: '(' Iconst ')' */ +#line 12865 "gram.y" + { /* * Check FLOAT() precision limits assuming IEEE floating * types - thomas 1997-09-18 @@ -42352,53 +42844,53 @@ errmsg("precision for type float must be less than 54 bits"), parser_errposition((yylsp[-1])))); } -#line 42356 "gram.c" /* yacc.c:1652 */ +#line 42848 "gram.c" break; - case 1887: -#line 12886 "gram.y" /* yacc.c:1652 */ - { + case 1887: /* opt_float: %empty */ +#line 12886 "gram.y" + { (yyval.typnam) = SystemTypeName("float8"); } -#line 42364 "gram.c" /* yacc.c:1652 */ +#line 42856 "gram.c" break; - case 1888: -#line 12896 "gram.y" /* yacc.c:1652 */ - { + case 1888: /* Bit: BitWithLength */ +#line 12896 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42372 "gram.c" /* yacc.c:1652 */ +#line 42864 "gram.c" break; - case 1889: -#line 12900 "gram.y" /* yacc.c:1652 */ - { + case 1889: /* Bit: BitWithoutLength */ +#line 12900 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42380 "gram.c" /* yacc.c:1652 */ +#line 42872 "gram.c" break; - case 1890: -#line 12908 "gram.y" /* yacc.c:1652 */ - { + case 1890: /* ConstBit: BitWithLength */ +#line 12908 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42388 "gram.c" /* yacc.c:1652 */ +#line 42880 "gram.c" break; - case 1891: -#line 12912 "gram.y" /* yacc.c:1652 */ - { + case 1891: /* ConstBit: BitWithoutLength */ +#line 12912 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->typmods = NIL; } -#line 42397 "gram.c" /* yacc.c:1652 */ +#line 42889 "gram.c" break; - case 1892: -#line 12920 "gram.y" /* yacc.c:1652 */ - { + case 1892: /* BitWithLength: BIT opt_varying '(' expr_list ')' */ +#line 12920 "gram.y" + { char *typname; typname = (yyvsp[-3].boolean) ? "varbit" : "bit"; @@ -42406,12 +42898,12 @@ (yyval.typnam)->typmods = (yyvsp[-1].list); (yyval.typnam)->location = (yylsp[-4]); } -#line 42410 "gram.c" /* yacc.c:1652 */ +#line 42902 "gram.c" break; - case 1893: -#line 12932 "gram.y" /* yacc.c:1652 */ - { + case 1893: /* BitWithoutLength: BIT opt_varying */ +#line 12932 "gram.y" + { /* bit defaults to bit(1), varbit to no limit */ if ((yyvsp[0].boolean)) { @@ -42424,36 +42916,36 @@ } (yyval.typnam)->location = (yylsp[-1]); } -#line 42428 "gram.c" /* yacc.c:1652 */ +#line 42920 "gram.c" break; - case 1894: -#line 12953 "gram.y" /* yacc.c:1652 */ - { + case 1894: /* Character: CharacterWithLength */ +#line 12953 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42436 "gram.c" /* yacc.c:1652 */ +#line 42928 "gram.c" break; - case 1895: -#line 12957 "gram.y" /* yacc.c:1652 */ - { + case 1895: /* Character: CharacterWithoutLength */ +#line 12957 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42444 "gram.c" /* yacc.c:1652 */ +#line 42936 "gram.c" break; - case 1896: -#line 12963 "gram.y" /* yacc.c:1652 */ - { + case 1896: /* ConstCharacter: CharacterWithLength */ +#line 12963 "gram.y" + { (yyval.typnam) = (yyvsp[0].typnam); } -#line 42452 "gram.c" /* yacc.c:1652 */ +#line 42944 "gram.c" break; - case 1897: -#line 12967 "gram.y" /* yacc.c:1652 */ - { + case 1897: /* ConstCharacter: CharacterWithoutLength */ +#line 12967 "gram.y" + { /* Length was not specified so allow to be unrestricted. * This handles problems with fixed-length (bpchar) strings * which in column definitions must default to a length @@ -42463,82 +42955,82 @@ (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->typmods = NIL; } -#line 42467 "gram.c" /* yacc.c:1652 */ +#line 42959 "gram.c" break; - case 1898: -#line 12980 "gram.y" /* yacc.c:1652 */ - { + case 1898: /* CharacterWithLength: character '(' Iconst ')' */ +#line 12980 "gram.y" + { (yyval.typnam) = SystemTypeName((yyvsp[-3].str)); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); (yyval.typnam)->location = (yylsp[-3]); } -#line 42477 "gram.c" /* yacc.c:1652 */ +#line 42969 "gram.c" break; - case 1899: -#line 12988 "gram.y" /* yacc.c:1652 */ - { + case 1899: /* CharacterWithoutLength: character */ +#line 12988 "gram.y" + { (yyval.typnam) = SystemTypeName((yyvsp[0].str)); /* char defaults to char(1), varchar to no limit */ if (strcmp((yyvsp[0].str), "bpchar") == 0) (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); (yyval.typnam)->location = (yylsp[0]); } -#line 42489 "gram.c" /* yacc.c:1652 */ +#line 42981 "gram.c" break; - case 1900: -#line 12998 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 42495 "gram.c" /* yacc.c:1652 */ + case 1900: /* character: CHARACTER opt_varying */ +#line 12998 "gram.y" + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 42987 "gram.c" break; - case 1901: -#line 13000 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 42501 "gram.c" /* yacc.c:1652 */ + case 1901: /* character: CHAR_P opt_varying */ +#line 13000 "gram.y" + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 42993 "gram.c" break; - case 1902: -#line 13002 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "varchar"; } -#line 42507 "gram.c" /* yacc.c:1652 */ + case 1902: /* character: VARCHAR */ +#line 13002 "gram.y" + { (yyval.str) = "varchar"; } +#line 42999 "gram.c" break; - case 1903: -#line 13004 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 42513 "gram.c" /* yacc.c:1652 */ + case 1903: /* character: NATIONAL CHARACTER opt_varying */ +#line 13004 "gram.y" + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 43005 "gram.c" break; - case 1904: -#line 13006 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 42519 "gram.c" /* yacc.c:1652 */ + case 1904: /* character: NATIONAL CHAR_P opt_varying */ +#line 13006 "gram.y" + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 43011 "gram.c" break; - case 1905: -#line 13008 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 42525 "gram.c" /* yacc.c:1652 */ + case 1905: /* character: NCHAR opt_varying */ +#line 13008 "gram.y" + { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 43017 "gram.c" break; - case 1906: -#line 13012 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 42531 "gram.c" /* yacc.c:1652 */ + case 1906: /* opt_varying: VARYING */ +#line 13012 "gram.y" + { (yyval.boolean) = true; } +#line 43023 "gram.c" break; - case 1907: -#line 13013 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 42537 "gram.c" /* yacc.c:1652 */ + case 1907: /* opt_varying: %empty */ +#line 13013 "gram.y" + { (yyval.boolean) = false; } +#line 43029 "gram.c" break; - case 1908: -#line 13021 "gram.y" /* yacc.c:1652 */ - { + case 1908: /* ConstDatetime: TIMESTAMP '(' Iconst ')' opt_timezone */ +#line 13021 "gram.y" + { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else @@ -42546,24 +43038,24 @@ (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.typnam)->location = (yylsp[-4]); } -#line 42550 "gram.c" /* yacc.c:1652 */ +#line 43042 "gram.c" break; - case 1909: -#line 13030 "gram.y" /* yacc.c:1652 */ - { + case 1909: /* ConstDatetime: TIMESTAMP opt_timezone */ +#line 13030 "gram.y" + { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->location = (yylsp[-1]); } -#line 42562 "gram.c" /* yacc.c:1652 */ +#line 43054 "gram.c" break; - case 1910: -#line 13038 "gram.y" /* yacc.c:1652 */ - { + case 1910: /* ConstDatetime: TIME '(' Iconst ')' opt_timezone */ +#line 13038 "gram.y" + { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else @@ -42571,520 +43063,520 @@ (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.typnam)->location = (yylsp[-4]); } -#line 42575 "gram.c" /* yacc.c:1652 */ +#line 43067 "gram.c" break; - case 1911: -#line 13047 "gram.y" /* yacc.c:1652 */ - { + case 1911: /* ConstDatetime: TIME opt_timezone */ +#line 13047 "gram.y" + { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->location = (yylsp[-1]); } -#line 42587 "gram.c" /* yacc.c:1652 */ +#line 43079 "gram.c" break; - case 1912: -#line 13058 "gram.y" /* yacc.c:1652 */ - { + case 1912: /* ConstInterval: INTERVAL */ +#line 13058 "gram.y" + { (yyval.typnam) = SystemTypeName("interval"); (yyval.typnam)->location = (yylsp[0]); } -#line 42596 "gram.c" /* yacc.c:1652 */ +#line 43088 "gram.c" break; - case 1913: -#line 13065 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 42602 "gram.c" /* yacc.c:1652 */ + case 1913: /* opt_timezone: WITH_LA TIME ZONE */ +#line 13065 "gram.y" + { (yyval.boolean) = true; } +#line 43094 "gram.c" break; - case 1914: -#line 13066 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 42608 "gram.c" /* yacc.c:1652 */ + case 1914: /* opt_timezone: WITHOUT TIME ZONE */ +#line 13066 "gram.y" + { (yyval.boolean) = false; } +#line 43100 "gram.c" break; - case 1915: -#line 13067 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 42614 "gram.c" /* yacc.c:1652 */ + case 1915: /* opt_timezone: %empty */ +#line 13067 "gram.y" + { (yyval.boolean) = false; } +#line 43106 "gram.c" break; - case 1916: -#line 13072 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); } -#line 42620 "gram.c" /* yacc.c:1652 */ + case 1916: /* opt_interval: YEAR_P */ +#line 13072 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); } +#line 43112 "gram.c" break; - case 1917: -#line 13074 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); } -#line 42626 "gram.c" /* yacc.c:1652 */ + case 1917: /* opt_interval: MONTH_P */ +#line 13074 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); } +#line 43118 "gram.c" break; - case 1918: -#line 13076 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); } -#line 42632 "gram.c" /* yacc.c:1652 */ + case 1918: /* opt_interval: DAY_P */ +#line 13076 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); } +#line 43124 "gram.c" break; - case 1919: -#line 13078 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); } -#line 42638 "gram.c" /* yacc.c:1652 */ + case 1919: /* opt_interval: HOUR_P */ +#line 13078 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); } +#line 43130 "gram.c" break; - case 1920: -#line 13080 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); } -#line 42644 "gram.c" /* yacc.c:1652 */ + case 1920: /* opt_interval: MINUTE_P */ +#line 13080 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); } +#line 43136 "gram.c" break; - case 1921: -#line 13082 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 42650 "gram.c" /* yacc.c:1652 */ + case 1921: /* opt_interval: interval_second */ +#line 13082 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 43142 "gram.c" break; - case 1922: -#line 13084 "gram.y" /* yacc.c:1652 */ - { + case 1922: /* opt_interval: YEAR_P TO MONTH_P */ +#line 13084 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH), (yylsp[-2]))); } -#line 42659 "gram.c" /* yacc.c:1652 */ +#line 43151 "gram.c" break; - case 1923: -#line 13089 "gram.y" /* yacc.c:1652 */ - { + case 1923: /* opt_interval: DAY_P TO HOUR_P */ +#line 13089 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR), (yylsp[-2]))); } -#line 42668 "gram.c" /* yacc.c:1652 */ +#line 43160 "gram.c" break; - case 1924: -#line 13094 "gram.y" /* yacc.c:1652 */ - { + case 1924: /* opt_interval: DAY_P TO MINUTE_P */ +#line 13094 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[-2]))); } -#line 42678 "gram.c" /* yacc.c:1652 */ +#line 43170 "gram.c" break; - case 1925: -#line 13100 "gram.y" /* yacc.c:1652 */ - { + case 1925: /* opt_interval: DAY_P TO interval_second */ +#line 13100 "gram.y" + { (yyval.list) = (yyvsp[0].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2])); } -#line 42690 "gram.c" /* yacc.c:1652 */ +#line 43182 "gram.c" break; - case 1926: -#line 13108 "gram.y" /* yacc.c:1652 */ - { + case 1926: /* opt_interval: HOUR_P TO MINUTE_P */ +#line 13108 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[-2]))); } -#line 42699 "gram.c" /* yacc.c:1652 */ +#line 43191 "gram.c" break; - case 1927: -#line 13113 "gram.y" /* yacc.c:1652 */ - { + case 1927: /* opt_interval: HOUR_P TO interval_second */ +#line 13113 "gram.y" + { (yyval.list) = (yyvsp[0].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2])); } -#line 42710 "gram.c" /* yacc.c:1652 */ +#line 43202 "gram.c" break; - case 1928: -#line 13120 "gram.y" /* yacc.c:1652 */ - { + case 1928: /* opt_interval: MINUTE_P TO interval_second */ +#line 13120 "gram.y" + { (yyval.list) = (yyvsp[0].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2])); } -#line 42720 "gram.c" /* yacc.c:1652 */ +#line 43212 "gram.c" break; - case 1929: -#line 13126 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 42726 "gram.c" /* yacc.c:1652 */ + case 1929: /* opt_interval: %empty */ +#line 13126 "gram.y" + { (yyval.list) = NIL; } +#line 43218 "gram.c" break; - case 1930: -#line 13131 "gram.y" /* yacc.c:1652 */ - { + case 1930: /* interval_second: SECOND_P */ +#line 13131 "gram.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[0]))); } -#line 42734 "gram.c" /* yacc.c:1652 */ +#line 43226 "gram.c" break; - case 1931: -#line 13135 "gram.y" /* yacc.c:1652 */ - { + case 1931: /* interval_second: SECOND_P '(' Iconst ')' */ +#line 13135 "gram.y" + { (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[-3])), makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); } -#line 42743 "gram.c" /* yacc.c:1652 */ +#line 43235 "gram.c" break; - case 1932: -#line 13170 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 42749 "gram.c" /* yacc.c:1652 */ + case 1932: /* a_expr: c_expr */ +#line 13170 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 43241 "gram.c" break; - case 1933: -#line 13172 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } -#line 42755 "gram.c" /* yacc.c:1652 */ + case 1933: /* a_expr: a_expr TYPECAST Typename */ +#line 13172 "gram.y" + { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } +#line 43247 "gram.c" break; - case 1934: -#line 13174 "gram.y" /* yacc.c:1652 */ - { + case 1934: /* a_expr: a_expr COLLATE any_name */ +#line 13174 "gram.y" + { CollateClause *n = makeNode(CollateClause); n->arg = (yyvsp[-2].node); n->collname = (yyvsp[0].list); n->location = (yylsp[-1]); (yyval.node) = (Node *) n; } -#line 42767 "gram.c" /* yacc.c:1652 */ +#line 43259 "gram.c" break; - case 1935: -#line 13182 "gram.y" /* yacc.c:1652 */ - { + case 1935: /* a_expr: a_expr AT TIME ZONE a_expr */ +#line 13182 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"), list_make2((yyvsp[0].node), (yyvsp[-4].node)), (yylsp[-3])); } -#line 42777 "gram.c" /* yacc.c:1652 */ +#line 43269 "gram.c" break; - case 1936: -#line 13197 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 42783 "gram.c" /* yacc.c:1652 */ + case 1936: /* a_expr: '+' a_expr */ +#line 13197 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 43275 "gram.c" break; - case 1937: -#line 13199 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } -#line 42789 "gram.c" /* yacc.c:1652 */ + case 1937: /* a_expr: '-' a_expr */ +#line 13199 "gram.y" + { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } +#line 43281 "gram.c" break; - case 1938: -#line 13201 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42795 "gram.c" /* yacc.c:1652 */ + case 1938: /* a_expr: a_expr '+' a_expr */ +#line 13201 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43287 "gram.c" break; - case 1939: -#line 13203 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42801 "gram.c" /* yacc.c:1652 */ + case 1939: /* a_expr: a_expr '-' a_expr */ +#line 13203 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43293 "gram.c" break; - case 1940: -#line 13205 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42807 "gram.c" /* yacc.c:1652 */ + case 1940: /* a_expr: a_expr '*' a_expr */ +#line 13205 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43299 "gram.c" break; - case 1941: -#line 13207 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42813 "gram.c" /* yacc.c:1652 */ + case 1941: /* a_expr: a_expr '/' a_expr */ +#line 13207 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43305 "gram.c" break; - case 1942: -#line 13209 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42819 "gram.c" /* yacc.c:1652 */ + case 1942: /* a_expr: a_expr '%' a_expr */ +#line 13209 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43311 "gram.c" break; - case 1943: -#line 13211 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42825 "gram.c" /* yacc.c:1652 */ + case 1943: /* a_expr: a_expr '^' a_expr */ +#line 13211 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43317 "gram.c" break; - case 1944: -#line 13213 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42831 "gram.c" /* yacc.c:1652 */ + case 1944: /* a_expr: a_expr '<' a_expr */ +#line 13213 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43323 "gram.c" break; - case 1945: -#line 13215 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42837 "gram.c" /* yacc.c:1652 */ + case 1945: /* a_expr: a_expr '>' a_expr */ +#line 13215 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43329 "gram.c" break; - case 1946: -#line 13217 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42843 "gram.c" /* yacc.c:1652 */ + case 1946: /* a_expr: a_expr '=' a_expr */ +#line 13217 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43335 "gram.c" break; - case 1947: -#line 13219 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42849 "gram.c" /* yacc.c:1652 */ + case 1947: /* a_expr: a_expr LESS_EQUALS a_expr */ +#line 13219 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43341 "gram.c" break; - case 1948: -#line 13221 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42855 "gram.c" /* yacc.c:1652 */ + case 1948: /* a_expr: a_expr GREATER_EQUALS a_expr */ +#line 13221 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43347 "gram.c" break; - case 1949: -#line 13223 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42861 "gram.c" /* yacc.c:1652 */ + case 1949: /* a_expr: a_expr NOT_EQUALS a_expr */ +#line 13223 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43353 "gram.c" break; - case 1950: -#line 13226 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42867 "gram.c" /* yacc.c:1652 */ + case 1950: /* a_expr: a_expr qual_Op a_expr */ +#line 13226 "gram.y" + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43359 "gram.c" break; - case 1951: -#line 13228 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 42873 "gram.c" /* yacc.c:1652 */ + case 1951: /* a_expr: qual_Op a_expr */ +#line 13228 "gram.y" + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 43365 "gram.c" break; - case 1952: -#line 13230 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } -#line 42879 "gram.c" /* yacc.c:1652 */ + case 1952: /* a_expr: a_expr qual_Op */ +#line 13230 "gram.y" + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } +#line 43371 "gram.c" break; - case 1953: -#line 13233 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42885 "gram.c" /* yacc.c:1652 */ + case 1953: /* a_expr: a_expr AND a_expr */ +#line 13233 "gram.y" + { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43377 "gram.c" break; - case 1954: -#line 13235 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42891 "gram.c" /* yacc.c:1652 */ + case 1954: /* a_expr: a_expr OR a_expr */ +#line 13235 "gram.y" + { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43383 "gram.c" break; - case 1955: -#line 13237 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } -#line 42897 "gram.c" /* yacc.c:1652 */ + case 1955: /* a_expr: NOT a_expr */ +#line 13237 "gram.y" + { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } +#line 43389 "gram.c" break; - case 1956: -#line 13239 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } -#line 42903 "gram.c" /* yacc.c:1652 */ + case 1956: /* a_expr: NOT_LA a_expr */ +#line 13239 "gram.y" + { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } +#line 43395 "gram.c" break; - case 1957: -#line 13242 "gram.y" /* yacc.c:1652 */ - { + case 1957: /* a_expr: a_expr LIKE a_expr */ +#line 13242 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42912 "gram.c" /* yacc.c:1652 */ +#line 43404 "gram.c" break; - case 1958: -#line 13247 "gram.y" /* yacc.c:1652 */ - { + case 1958: /* a_expr: a_expr LIKE a_expr ESCAPE a_expr */ +#line 13247 "gram.y" + { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-3])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[-4].node), (Node *) n, (yylsp[-3])); } -#line 42924 "gram.c" /* yacc.c:1652 */ +#line 43416 "gram.c" break; - case 1959: -#line 13255 "gram.y" /* yacc.c:1652 */ - { + case 1959: /* a_expr: a_expr NOT_LA LIKE a_expr */ +#line 13255 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } -#line 42933 "gram.c" /* yacc.c:1652 */ +#line 43425 "gram.c" break; - case 1960: -#line 13260 "gram.y" /* yacc.c:1652 */ - { + case 1960: /* a_expr: a_expr NOT_LA LIKE a_expr ESCAPE a_expr */ +#line 13260 "gram.y" + { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[-5].node), (Node *) n, (yylsp[-4])); } -#line 42945 "gram.c" /* yacc.c:1652 */ +#line 43437 "gram.c" break; - case 1961: -#line 13268 "gram.y" /* yacc.c:1652 */ - { + case 1961: /* a_expr: a_expr ILIKE a_expr */ +#line 13268 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 42954 "gram.c" /* yacc.c:1652 */ +#line 43446 "gram.c" break; - case 1962: -#line 13273 "gram.y" /* yacc.c:1652 */ - { + case 1962: /* a_expr: a_expr ILIKE a_expr ESCAPE a_expr */ +#line 13273 "gram.y" + { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-3])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[-4].node), (Node *) n, (yylsp[-3])); } -#line 42966 "gram.c" /* yacc.c:1652 */ +#line 43458 "gram.c" break; - case 1963: -#line 13281 "gram.y" /* yacc.c:1652 */ - { + case 1963: /* a_expr: a_expr NOT_LA ILIKE a_expr */ +#line 13281 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } -#line 42975 "gram.c" /* yacc.c:1652 */ +#line 43467 "gram.c" break; - case 1964: -#line 13286 "gram.y" /* yacc.c:1652 */ - { + case 1964: /* a_expr: a_expr NOT_LA ILIKE a_expr ESCAPE a_expr */ +#line 13286 "gram.y" + { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[-5].node), (Node *) n, (yylsp[-4])); } -#line 42987 "gram.c" /* yacc.c:1652 */ +#line 43479 "gram.c" break; - case 1965: -#line 13295 "gram.y" /* yacc.c:1652 */ - { + case 1965: /* a_expr: a_expr SIMILAR TO a_expr */ +#line 13295 "gram.y" + { FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), list_make1((yyvsp[0].node)), (yylsp[-2])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[-3].node), (Node *) n, (yylsp[-2])); } -#line 42999 "gram.c" /* yacc.c:1652 */ +#line 43491 "gram.c" break; - case 1966: -#line 13303 "gram.y" /* yacc.c:1652 */ - { + case 1966: /* a_expr: a_expr SIMILAR TO a_expr ESCAPE a_expr */ +#line 13303 "gram.y" + { FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[-5].node), (Node *) n, (yylsp[-4])); } -#line 43011 "gram.c" /* yacc.c:1652 */ +#line 43503 "gram.c" break; - case 1967: -#line 13311 "gram.y" /* yacc.c:1652 */ - { + case 1967: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr */ +#line 13311 "gram.y" + { FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), list_make1((yyvsp[0].node)), (yylsp[-3])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[-4].node), (Node *) n, (yylsp[-3])); } -#line 43023 "gram.c" /* yacc.c:1652 */ +#line 43515 "gram.c" break; - case 1968: -#line 13319 "gram.y" /* yacc.c:1652 */ - { + case 1968: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr ESCAPE a_expr */ +#line 13319 "gram.y" + { FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[-6].node), (Node *) n, (yylsp[-5])); } -#line 43035 "gram.c" /* yacc.c:1652 */ +#line 43527 "gram.c" break; - case 1969: -#line 13337 "gram.y" /* yacc.c:1652 */ - { + case 1969: /* a_expr: a_expr IS NULL_P */ +#line 13337 "gram.y" + { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-2].node); n->nulltesttype = IS_NULL; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } -#line 43047 "gram.c" /* yacc.c:1652 */ +#line 43539 "gram.c" break; - case 1970: -#line 13345 "gram.y" /* yacc.c:1652 */ - { + case 1970: /* a_expr: a_expr ISNULL */ +#line 13345 "gram.y" + { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-1].node); n->nulltesttype = IS_NULL; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } -#line 43059 "gram.c" /* yacc.c:1652 */ +#line 43551 "gram.c" break; - case 1971: -#line 13353 "gram.y" /* yacc.c:1652 */ - { + case 1971: /* a_expr: a_expr IS NOT NULL_P */ +#line 13353 "gram.y" + { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-3].node); n->nulltesttype = IS_NOT_NULL; n->location = (yylsp[-2]); (yyval.node) = (Node *)n; } -#line 43071 "gram.c" /* yacc.c:1652 */ +#line 43563 "gram.c" break; - case 1972: -#line 13361 "gram.y" /* yacc.c:1652 */ - { + case 1972: /* a_expr: a_expr NOTNULL */ +#line 13361 "gram.y" + { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-1].node); n->nulltesttype = IS_NOT_NULL; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } -#line 43083 "gram.c" /* yacc.c:1652 */ +#line 43575 "gram.c" break; - case 1973: -#line 13369 "gram.y" /* yacc.c:1652 */ - { + case 1973: /* a_expr: row OVERLAPS row */ +#line 13369 "gram.y" + { if (list_length((yyvsp[-2].list)) != 2) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), @@ -43099,164 +43591,164 @@ list_concat((yyvsp[-2].list), (yyvsp[0].list)), (yylsp[-1])); } -#line 43103 "gram.c" /* yacc.c:1652 */ +#line 43595 "gram.c" break; - case 1974: -#line 13385 "gram.y" /* yacc.c:1652 */ - { + case 1974: /* a_expr: a_expr IS TRUE_P */ +#line 13385 "gram.y" + { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-2].node); b->booltesttype = IS_TRUE; b->location = (yylsp[-1]); (yyval.node) = (Node *)b; } -#line 43115 "gram.c" /* yacc.c:1652 */ +#line 43607 "gram.c" break; - case 1975: -#line 13393 "gram.y" /* yacc.c:1652 */ - { + case 1975: /* a_expr: a_expr IS NOT TRUE_P */ +#line 13393 "gram.y" + { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-3].node); b->booltesttype = IS_NOT_TRUE; b->location = (yylsp[-2]); (yyval.node) = (Node *)b; } -#line 43127 "gram.c" /* yacc.c:1652 */ +#line 43619 "gram.c" break; - case 1976: -#line 13401 "gram.y" /* yacc.c:1652 */ - { + case 1976: /* a_expr: a_expr IS FALSE_P */ +#line 13401 "gram.y" + { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-2].node); b->booltesttype = IS_FALSE; b->location = (yylsp[-1]); (yyval.node) = (Node *)b; } -#line 43139 "gram.c" /* yacc.c:1652 */ +#line 43631 "gram.c" break; - case 1977: -#line 13409 "gram.y" /* yacc.c:1652 */ - { + case 1977: /* a_expr: a_expr IS NOT FALSE_P */ +#line 13409 "gram.y" + { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-3].node); b->booltesttype = IS_NOT_FALSE; b->location = (yylsp[-2]); (yyval.node) = (Node *)b; } -#line 43151 "gram.c" /* yacc.c:1652 */ +#line 43643 "gram.c" break; - case 1978: -#line 13417 "gram.y" /* yacc.c:1652 */ - { + case 1978: /* a_expr: a_expr IS UNKNOWN */ +#line 13417 "gram.y" + { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-2].node); b->booltesttype = IS_UNKNOWN; b->location = (yylsp[-1]); (yyval.node) = (Node *)b; } -#line 43163 "gram.c" /* yacc.c:1652 */ +#line 43655 "gram.c" break; - case 1979: -#line 13425 "gram.y" /* yacc.c:1652 */ - { + case 1979: /* a_expr: a_expr IS NOT UNKNOWN */ +#line 13425 "gram.y" + { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-3].node); b->booltesttype = IS_NOT_UNKNOWN; b->location = (yylsp[-2]); (yyval.node) = (Node *)b; } -#line 43175 "gram.c" /* yacc.c:1652 */ +#line 43667 "gram.c" break; - case 1980: -#line 13433 "gram.y" /* yacc.c:1652 */ - { + case 1980: /* a_expr: a_expr IS DISTINCT FROM a_expr */ +#line 13433 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); } -#line 43183 "gram.c" /* yacc.c:1652 */ +#line 43675 "gram.c" break; - case 1981: -#line 13437 "gram.y" /* yacc.c:1652 */ - { + case 1981: /* a_expr: a_expr IS NOT DISTINCT FROM a_expr */ +#line 13437 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); } -#line 43191 "gram.c" /* yacc.c:1652 */ +#line 43683 "gram.c" break; - case 1982: -#line 13441 "gram.y" /* yacc.c:1652 */ - { + case 1982: /* a_expr: a_expr IS OF '(' type_list ')' */ +#line 13441 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[-5].node), (Node *) (yyvsp[-1].list), (yylsp[-4])); } -#line 43199 "gram.c" /* yacc.c:1652 */ +#line 43691 "gram.c" break; - case 1983: -#line 13445 "gram.y" /* yacc.c:1652 */ - { + case 1983: /* a_expr: a_expr IS NOT OF '(' type_list ')' */ +#line 13445 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[-6].node), (Node *) (yyvsp[-1].list), (yylsp[-5])); } -#line 43207 "gram.c" /* yacc.c:1652 */ +#line 43699 "gram.c" break; - case 1984: -#line 13449 "gram.y" /* yacc.c:1652 */ - { + case 1984: /* a_expr: a_expr BETWEEN opt_asymmetric b_expr AND a_expr */ +#line 13449 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN, "BETWEEN", (yyvsp[-5].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); } -#line 43219 "gram.c" /* yacc.c:1652 */ +#line 43711 "gram.c" break; - case 1985: -#line 13457 "gram.y" /* yacc.c:1652 */ - { + case 1985: /* a_expr: a_expr NOT_LA BETWEEN opt_asymmetric b_expr AND a_expr */ +#line 13457 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN, "NOT BETWEEN", (yyvsp[-6].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); } -#line 43231 "gram.c" /* yacc.c:1652 */ +#line 43723 "gram.c" break; - case 1986: -#line 13465 "gram.y" /* yacc.c:1652 */ - { + case 1986: /* a_expr: a_expr BETWEEN SYMMETRIC b_expr AND a_expr */ +#line 13465 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN_SYM, "BETWEEN SYMMETRIC", (yyvsp[-5].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); } -#line 43243 "gram.c" /* yacc.c:1652 */ +#line 43735 "gram.c" break; - case 1987: -#line 13473 "gram.y" /* yacc.c:1652 */ - { + case 1987: /* a_expr: a_expr NOT_LA BETWEEN SYMMETRIC b_expr AND a_expr */ +#line 13473 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN_SYM, "NOT BETWEEN SYMMETRIC", (yyvsp[-6].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); } -#line 43255 "gram.c" /* yacc.c:1652 */ +#line 43747 "gram.c" break; - case 1988: -#line 13481 "gram.y" /* yacc.c:1652 */ - { + case 1988: /* a_expr: a_expr IN_P in_expr */ +#line 13481 "gram.y" + { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[0].node), SubLink)) { @@ -43275,12 +43767,12 @@ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } } -#line 43279 "gram.c" /* yacc.c:1652 */ +#line 43771 "gram.c" break; - case 1989: -#line 13501 "gram.y" /* yacc.c:1652 */ - { + case 1989: /* a_expr: a_expr NOT_LA IN_P in_expr */ +#line 13501 "gram.y" + { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[0].node), SubLink)) { @@ -43301,12 +43793,12 @@ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } } -#line 43305 "gram.c" /* yacc.c:1652 */ +#line 43797 "gram.c" break; - case 1990: -#line 13523 "gram.y" /* yacc.c:1652 */ - { + case 1990: /* a_expr: a_expr subquery_Op sub_type select_with_parens */ +#line 13523 "gram.y" + { SubLink *n = makeNode(SubLink); n->subLinkType = (yyvsp[-1].ival); n->subLinkId = 0; @@ -43316,23 +43808,23 @@ n->location = (yylsp[-2]); (yyval.node) = (Node *)n; } -#line 43320 "gram.c" /* yacc.c:1652 */ +#line 43812 "gram.c" break; - case 1991: -#line 13534 "gram.y" /* yacc.c:1652 */ - { + case 1991: /* a_expr: a_expr subquery_Op sub_type '(' a_expr ')' */ +#line 13534 "gram.y" + { if ((yyvsp[-3].ival) == ANY_SUBLINK) (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); else (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); } -#line 43331 "gram.c" /* yacc.c:1652 */ +#line 43823 "gram.c" break; - case 1992: -#line 13541 "gram.y" /* yacc.c:1652 */ - { + case 1992: /* a_expr: UNIQUE select_with_parens */ +#line 13541 "gram.y" + { /* Not sure how to get rid of the parentheses * but there are lots of shift/reduce errors without them. * @@ -43347,63 +43839,63 @@ errmsg("UNIQUE predicate is not yet implemented"), parser_errposition((yylsp[-1])))); } -#line 43351 "gram.c" /* yacc.c:1652 */ +#line 43843 "gram.c" break; - case 1993: -#line 13557 "gram.y" /* yacc.c:1652 */ - { + case 1993: /* a_expr: a_expr IS DOCUMENT_P */ +#line 13557 "gram.y" + { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-2].node)), (yylsp[-1])); } -#line 43360 "gram.c" /* yacc.c:1652 */ +#line 43852 "gram.c" break; - case 1994: -#line 13562 "gram.y" /* yacc.c:1652 */ - { + case 1994: /* a_expr: a_expr IS NOT DOCUMENT_P */ +#line 13562 "gram.y" + { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-3].node)), (yylsp[-2])), (yylsp[-2])); } -#line 43370 "gram.c" /* yacc.c:1652 */ +#line 43862 "gram.c" break; - case 1995: -#line 13568 "gram.y" /* yacc.c:1652 */ - { + case 1995: /* a_expr: a_expr IS NORMALIZED */ +#line 13568 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make1((yyvsp[-2].node)), (yylsp[-1])); } -#line 43378 "gram.c" /* yacc.c:1652 */ +#line 43870 "gram.c" break; - case 1996: -#line 13572 "gram.y" /* yacc.c:1652 */ - { + case 1996: /* a_expr: a_expr IS unicode_normal_form NORMALIZED */ +#line 13572 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))), (yylsp[-2])); } -#line 43386 "gram.c" /* yacc.c:1652 */ +#line 43878 "gram.c" break; - case 1997: -#line 13576 "gram.y" /* yacc.c:1652 */ - { + case 1997: /* a_expr: a_expr IS NOT NORMALIZED */ +#line 13576 "gram.y" + { (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make1((yyvsp[-3].node)), (yylsp[-2])), (yylsp[-2])); } -#line 43394 "gram.c" /* yacc.c:1652 */ +#line 43886 "gram.c" break; - case 1998: -#line 13580 "gram.y" /* yacc.c:1652 */ - { + case 1998: /* a_expr: a_expr IS NOT unicode_normal_form NORMALIZED */ +#line 13580 "gram.y" + { (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make2((yyvsp[-4].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))), (yylsp[-3])), (yylsp[-3])); } -#line 43402 "gram.c" /* yacc.c:1652 */ +#line 43894 "gram.c" break; - case 1999: -#line 13584 "gram.y" /* yacc.c:1652 */ - { + case 1999: /* a_expr: DEFAULT */ +#line 13584 "gram.y" + { /* * The SQL spec only allows DEFAULT in "contextually typed * expressions", but for us, it's easier to allow it in @@ -43416,189 +43908,189 @@ n->location = (yylsp[0]); (yyval.node) = (Node *)n; } -#line 43420 "gram.c" /* yacc.c:1652 */ +#line 43912 "gram.c" break; - case 2000: -#line 13609 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 43426 "gram.c" /* yacc.c:1652 */ + case 2000: /* b_expr: c_expr */ +#line 13609 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 43918 "gram.c" break; - case 2001: -#line 13611 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } -#line 43432 "gram.c" /* yacc.c:1652 */ + case 2001: /* b_expr: b_expr TYPECAST Typename */ +#line 13611 "gram.y" + { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } +#line 43924 "gram.c" break; - case 2002: -#line 13613 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 43438 "gram.c" /* yacc.c:1652 */ + case 2002: /* b_expr: '+' b_expr */ +#line 13613 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 43930 "gram.c" break; - case 2003: -#line 13615 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } -#line 43444 "gram.c" /* yacc.c:1652 */ + case 2003: /* b_expr: '-' b_expr */ +#line 13615 "gram.y" + { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } +#line 43936 "gram.c" break; - case 2004: -#line 13617 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43450 "gram.c" /* yacc.c:1652 */ + case 2004: /* b_expr: b_expr '+' b_expr */ +#line 13617 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43942 "gram.c" break; - case 2005: -#line 13619 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43456 "gram.c" /* yacc.c:1652 */ + case 2005: /* b_expr: b_expr '-' b_expr */ +#line 13619 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43948 "gram.c" break; - case 2006: -#line 13621 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43462 "gram.c" /* yacc.c:1652 */ + case 2006: /* b_expr: b_expr '*' b_expr */ +#line 13621 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43954 "gram.c" break; - case 2007: -#line 13623 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43468 "gram.c" /* yacc.c:1652 */ + case 2007: /* b_expr: b_expr '/' b_expr */ +#line 13623 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43960 "gram.c" break; - case 2008: -#line 13625 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43474 "gram.c" /* yacc.c:1652 */ + case 2008: /* b_expr: b_expr '%' b_expr */ +#line 13625 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43966 "gram.c" break; - case 2009: -#line 13627 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43480 "gram.c" /* yacc.c:1652 */ + case 2009: /* b_expr: b_expr '^' b_expr */ +#line 13627 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43972 "gram.c" break; - case 2010: -#line 13629 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43486 "gram.c" /* yacc.c:1652 */ + case 2010: /* b_expr: b_expr '<' b_expr */ +#line 13629 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43978 "gram.c" break; - case 2011: -#line 13631 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43492 "gram.c" /* yacc.c:1652 */ + case 2011: /* b_expr: b_expr '>' b_expr */ +#line 13631 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43984 "gram.c" break; - case 2012: -#line 13633 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43498 "gram.c" /* yacc.c:1652 */ + case 2012: /* b_expr: b_expr '=' b_expr */ +#line 13633 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43990 "gram.c" break; - case 2013: -#line 13635 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43504 "gram.c" /* yacc.c:1652 */ + case 2013: /* b_expr: b_expr LESS_EQUALS b_expr */ +#line 13635 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 43996 "gram.c" break; - case 2014: -#line 13637 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43510 "gram.c" /* yacc.c:1652 */ + case 2014: /* b_expr: b_expr GREATER_EQUALS b_expr */ +#line 13637 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 44002 "gram.c" break; - case 2015: -#line 13639 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43516 "gram.c" /* yacc.c:1652 */ + case 2015: /* b_expr: b_expr NOT_EQUALS b_expr */ +#line 13639 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 44008 "gram.c" break; - case 2016: -#line 13641 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 43522 "gram.c" /* yacc.c:1652 */ + case 2016: /* b_expr: b_expr qual_Op b_expr */ +#line 13641 "gram.y" + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 44014 "gram.c" break; - case 2017: -#line 13643 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 43528 "gram.c" /* yacc.c:1652 */ + case 2017: /* b_expr: qual_Op b_expr */ +#line 13643 "gram.y" + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 44020 "gram.c" break; - case 2018: -#line 13645 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } -#line 43534 "gram.c" /* yacc.c:1652 */ + case 2018: /* b_expr: b_expr qual_Op */ +#line 13645 "gram.y" + { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } +#line 44026 "gram.c" break; - case 2019: -#line 13647 "gram.y" /* yacc.c:1652 */ - { + case 2019: /* b_expr: b_expr IS DISTINCT FROM b_expr */ +#line 13647 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); } -#line 43542 "gram.c" /* yacc.c:1652 */ +#line 44034 "gram.c" break; - case 2020: -#line 13651 "gram.y" /* yacc.c:1652 */ - { + case 2020: /* b_expr: b_expr IS NOT DISTINCT FROM b_expr */ +#line 13651 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); } -#line 43550 "gram.c" /* yacc.c:1652 */ +#line 44042 "gram.c" break; - case 2021: -#line 13655 "gram.y" /* yacc.c:1652 */ - { + case 2021: /* b_expr: b_expr IS OF '(' type_list ')' */ +#line 13655 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[-5].node), (Node *) (yyvsp[-1].list), (yylsp[-4])); } -#line 43558 "gram.c" /* yacc.c:1652 */ +#line 44050 "gram.c" break; - case 2022: -#line 13659 "gram.y" /* yacc.c:1652 */ - { + case 2022: /* b_expr: b_expr IS NOT OF '(' type_list ')' */ +#line 13659 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[-6].node), (Node *) (yyvsp[-1].list), (yylsp[-5])); } -#line 43566 "gram.c" /* yacc.c:1652 */ +#line 44058 "gram.c" break; - case 2023: -#line 13663 "gram.y" /* yacc.c:1652 */ - { + case 2023: /* b_expr: b_expr IS DOCUMENT_P */ +#line 13663 "gram.y" + { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-2].node)), (yylsp[-1])); } -#line 43575 "gram.c" /* yacc.c:1652 */ +#line 44067 "gram.c" break; - case 2024: -#line 13668 "gram.y" /* yacc.c:1652 */ - { + case 2024: /* b_expr: b_expr IS NOT DOCUMENT_P */ +#line 13668 "gram.y" + { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-3].node)), (yylsp[-2])), (yylsp[-2])); } -#line 43585 "gram.c" /* yacc.c:1652 */ +#line 44077 "gram.c" break; - case 2025: -#line 13683 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 43591 "gram.c" /* yacc.c:1652 */ + case 2025: /* c_expr: columnref */ +#line 13683 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 44083 "gram.c" break; - case 2026: -#line 13684 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 43597 "gram.c" /* yacc.c:1652 */ + case 2026: /* c_expr: AexprConst */ +#line 13684 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 44089 "gram.c" break; - case 2027: -#line 13686 "gram.y" /* yacc.c:1652 */ - { + case 2027: /* c_expr: PARAM opt_indirection */ +#line 13686 "gram.y" + { ParamRef *p = makeNode(ParamRef); p->number = (yyvsp[-1].ival); p->location = (yylsp[-1]); @@ -43612,12 +44104,12 @@ else (yyval.node) = (Node *) p; } -#line 43616 "gram.c" /* yacc.c:1652 */ +#line 44108 "gram.c" break; - case 2028: -#line 13701 "gram.y" /* yacc.c:1652 */ - { + case 2028: /* c_expr: '(' a_expr ')' opt_indirection */ +#line 13701 "gram.y" + { if ((yyvsp[0].list)) { A_Indirection *n = makeNode(A_Indirection); @@ -43650,24 +44142,24 @@ else (yyval.node) = (yyvsp[-2].node); } -#line 43654 "gram.c" /* yacc.c:1652 */ +#line 44146 "gram.c" break; - case 2029: -#line 13735 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 43660 "gram.c" /* yacc.c:1652 */ + case 2029: /* c_expr: case_expr */ +#line 13735 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 44152 "gram.c" break; - case 2030: -#line 13737 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 43666 "gram.c" /* yacc.c:1652 */ + case 2030: /* c_expr: func_expr */ +#line 13737 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 44158 "gram.c" break; - case 2031: -#line 13739 "gram.y" /* yacc.c:1652 */ - { + case 2031: /* c_expr: select_with_parens */ +#line 13739 "gram.y" + { SubLink *n = makeNode(SubLink); n->subLinkType = EXPR_SUBLINK; n->subLinkId = 0; @@ -43677,12 +44169,12 @@ n->location = (yylsp[0]); (yyval.node) = (Node *)n; } -#line 43681 "gram.c" /* yacc.c:1652 */ +#line 44173 "gram.c" break; - case 2032: -#line 13750 "gram.y" /* yacc.c:1652 */ - { + case 2032: /* c_expr: select_with_parens indirection */ +#line 13750 "gram.y" + { /* * Because the select_with_parens nonterminal is designed * to "eat" as many levels of parens as possible, the @@ -43705,12 +44197,12 @@ a->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.node) = (Node *)a; } -#line 43709 "gram.c" /* yacc.c:1652 */ +#line 44201 "gram.c" break; - case 2033: -#line 13774 "gram.y" /* yacc.c:1652 */ - { + case 2033: /* c_expr: EXISTS select_with_parens */ +#line 13774 "gram.y" + { SubLink *n = makeNode(SubLink); n->subLinkType = EXISTS_SUBLINK; n->subLinkId = 0; @@ -43720,12 +44212,12 @@ n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } -#line 43724 "gram.c" /* yacc.c:1652 */ +#line 44216 "gram.c" break; - case 2034: -#line 13785 "gram.y" /* yacc.c:1652 */ - { + case 2034: /* c_expr: ARRAY select_with_parens */ +#line 13785 "gram.y" + { SubLink *n = makeNode(SubLink); n->subLinkType = ARRAY_SUBLINK; n->subLinkId = 0; @@ -43735,23 +44227,23 @@ n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } -#line 43739 "gram.c" /* yacc.c:1652 */ +#line 44231 "gram.c" break; - case 2035: -#line 13796 "gram.y" /* yacc.c:1652 */ - { + case 2035: /* c_expr: ARRAY array_expr */ +#line 13796 "gram.y" + { A_ArrayExpr *n = castNode(A_ArrayExpr, (yyvsp[0].node)); /* point outermost A_ArrayExpr to the ARRAY keyword */ n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } -#line 43750 "gram.c" /* yacc.c:1652 */ +#line 44242 "gram.c" break; - case 2036: -#line 13803 "gram.y" /* yacc.c:1652 */ - { + case 2036: /* c_expr: explicit_row */ +#line 13803 "gram.y" + { RowExpr *r = makeNode(RowExpr); r->args = (yyvsp[0].list); r->row_typeid = InvalidOid; /* not analyzed yet */ @@ -43760,12 +44252,12 @@ r->location = (yylsp[0]); (yyval.node) = (Node *)r; } -#line 43764 "gram.c" /* yacc.c:1652 */ +#line 44256 "gram.c" break; - case 2037: -#line 13813 "gram.y" /* yacc.c:1652 */ - { + case 2037: /* c_expr: implicit_row */ +#line 13813 "gram.y" + { RowExpr *r = makeNode(RowExpr); r->args = (yyvsp[0].list); r->row_typeid = InvalidOid; /* not analyzed yet */ @@ -43774,63 +44266,63 @@ r->location = (yylsp[0]); (yyval.node) = (Node *)r; } -#line 43778 "gram.c" /* yacc.c:1652 */ +#line 44270 "gram.c" break; - case 2038: -#line 13823 "gram.y" /* yacc.c:1652 */ - { + case 2038: /* c_expr: GROUPING '(' expr_list ')' */ +#line 13823 "gram.y" + { GroupingFunc *g = makeNode(GroupingFunc); g->args = (yyvsp[-1].list); g->location = (yylsp[-3]); (yyval.node) = (Node *)g; } -#line 43789 "gram.c" /* yacc.c:1652 */ +#line 44281 "gram.c" break; - case 2039: -#line 13832 "gram.y" /* yacc.c:1652 */ - { + case 2039: /* func_application: func_name '(' ')' */ +#line 13832 "gram.y" + { (yyval.node) = (Node *) makeFuncCall((yyvsp[-2].list), NIL, (yylsp[-2])); } -#line 43797 "gram.c" /* yacc.c:1652 */ +#line 44289 "gram.c" break; - case 2040: -#line 13836 "gram.y" /* yacc.c:1652 */ - { + case 2040: /* func_application: func_name '(' func_arg_list opt_sort_clause ')' */ +#line 13836 "gram.y" + { FuncCall *n = makeFuncCall((yyvsp[-4].list), (yyvsp[-2].list), (yylsp[-4])); n->agg_order = (yyvsp[-1].list); (yyval.node) = (Node *)n; } -#line 43807 "gram.c" /* yacc.c:1652 */ +#line 44299 "gram.c" break; - case 2041: -#line 13842 "gram.y" /* yacc.c:1652 */ - { + case 2041: /* func_application: func_name '(' VARIADIC func_arg_expr opt_sort_clause ')' */ +#line 13842 "gram.y" + { FuncCall *n = makeFuncCall((yyvsp[-5].list), list_make1((yyvsp[-2].node)), (yylsp[-5])); n->func_variadic = true; n->agg_order = (yyvsp[-1].list); (yyval.node) = (Node *)n; } -#line 43818 "gram.c" /* yacc.c:1652 */ +#line 44310 "gram.c" break; - case 2042: -#line 13849 "gram.y" /* yacc.c:1652 */ - { + case 2042: /* func_application: func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause ')' */ +#line 13849 "gram.y" + { FuncCall *n = makeFuncCall((yyvsp[-7].list), lappend((yyvsp[-5].list), (yyvsp[-2].node)), (yylsp[-7])); n->func_variadic = true; n->agg_order = (yyvsp[-1].list); (yyval.node) = (Node *)n; } -#line 43829 "gram.c" /* yacc.c:1652 */ +#line 44321 "gram.c" break; - case 2043: -#line 13856 "gram.y" /* yacc.c:1652 */ - { + case 2043: /* func_application: func_name '(' ALL func_arg_list opt_sort_clause ')' */ +#line 13856 "gram.y" + { FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list), (yylsp[-5])); n->agg_order = (yyvsp[-1].list); /* Ideally we'd mark the FuncCall node to indicate @@ -43839,23 +44331,23 @@ */ (yyval.node) = (Node *)n; } -#line 43843 "gram.c" /* yacc.c:1652 */ +#line 44335 "gram.c" break; - case 2044: -#line 13866 "gram.y" /* yacc.c:1652 */ - { + case 2044: /* func_application: func_name '(' DISTINCT func_arg_list opt_sort_clause ')' */ +#line 13866 "gram.y" + { FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list), (yylsp[-5])); n->agg_order = (yyvsp[-1].list); n->agg_distinct = true; (yyval.node) = (Node *)n; } -#line 43854 "gram.c" /* yacc.c:1652 */ +#line 44346 "gram.c" break; - case 2045: -#line 13873 "gram.y" /* yacc.c:1652 */ - { + case 2045: /* func_application: func_name '(' '*' ')' */ +#line 13873 "gram.y" + { /* * We consider AGGREGATE(*) to invoke a parameterless * aggregate. This does the right thing for COUNT(*), @@ -43870,12 +44362,12 @@ n->agg_star = true; (yyval.node) = (Node *)n; } -#line 43874 "gram.c" /* yacc.c:1652 */ +#line 44366 "gram.c" break; - case 2046: -#line 13901 "gram.y" /* yacc.c:1652 */ - { + case 2046: /* func_expr: func_application within_group_clause filter_clause over_clause */ +#line 13901 "gram.y" + { FuncCall *n = (FuncCall *) (yyvsp[-3].node); /* * The order clause for WITHIN GROUP and the one for @@ -43909,190 +44401,190 @@ n->over = (yyvsp[0].windef); (yyval.node) = (Node *) n; } -#line 43913 "gram.c" /* yacc.c:1652 */ +#line 44405 "gram.c" break; - case 2047: -#line 13936 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 43919 "gram.c" /* yacc.c:1652 */ + case 2047: /* func_expr: func_expr_common_subexpr */ +#line 13936 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 44411 "gram.c" break; - case 2048: -#line 13946 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 43925 "gram.c" /* yacc.c:1652 */ + case 2048: /* func_expr_windowless: func_application */ +#line 13946 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 44417 "gram.c" break; - case 2049: -#line 13947 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 43931 "gram.c" /* yacc.c:1652 */ + case 2049: /* func_expr_windowless: func_expr_common_subexpr */ +#line 13947 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 44423 "gram.c" break; - case 2050: -#line 13955 "gram.y" /* yacc.c:1652 */ - { + case 2050: /* func_expr_common_subexpr: COLLATION FOR '(' a_expr ')' */ +#line 13955 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"), list_make1((yyvsp[-1].node)), (yylsp[-4])); } -#line 43941 "gram.c" /* yacc.c:1652 */ +#line 44433 "gram.c" break; - case 2051: -#line 13961 "gram.y" /* yacc.c:1652 */ - { + case 2051: /* func_expr_common_subexpr: CURRENT_DATE */ +#line 13961 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[0])); } -#line 43949 "gram.c" /* yacc.c:1652 */ +#line 44441 "gram.c" break; - case 2052: -#line 13965 "gram.y" /* yacc.c:1652 */ - { + case 2052: /* func_expr_common_subexpr: CURRENT_TIME */ +#line 13965 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[0])); } -#line 43957 "gram.c" /* yacc.c:1652 */ +#line 44449 "gram.c" break; - case 2053: -#line 13969 "gram.y" /* yacc.c:1652 */ - { + case 2053: /* func_expr_common_subexpr: CURRENT_TIME '(' Iconst ')' */ +#line 13969 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[-1].ival), (yylsp[-3])); } -#line 43965 "gram.c" /* yacc.c:1652 */ +#line 44457 "gram.c" break; - case 2054: -#line 13973 "gram.y" /* yacc.c:1652 */ - { + case 2054: /* func_expr_common_subexpr: CURRENT_TIMESTAMP */ +#line 13973 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[0])); } -#line 43973 "gram.c" /* yacc.c:1652 */ +#line 44465 "gram.c" break; - case 2055: -#line 13977 "gram.y" /* yacc.c:1652 */ - { + case 2055: /* func_expr_common_subexpr: CURRENT_TIMESTAMP '(' Iconst ')' */ +#line 13977 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); } -#line 43981 "gram.c" /* yacc.c:1652 */ +#line 44473 "gram.c" break; - case 2056: -#line 13981 "gram.y" /* yacc.c:1652 */ - { + case 2056: /* func_expr_common_subexpr: LOCALTIME */ +#line 13981 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[0])); } -#line 43989 "gram.c" /* yacc.c:1652 */ +#line 44481 "gram.c" break; - case 2057: -#line 13985 "gram.y" /* yacc.c:1652 */ - { + case 2057: /* func_expr_common_subexpr: LOCALTIME '(' Iconst ')' */ +#line 13985 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[-1].ival), (yylsp[-3])); } -#line 43997 "gram.c" /* yacc.c:1652 */ +#line 44489 "gram.c" break; - case 2058: -#line 13989 "gram.y" /* yacc.c:1652 */ - { + case 2058: /* func_expr_common_subexpr: LOCALTIMESTAMP */ +#line 13989 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[0])); } -#line 44005 "gram.c" /* yacc.c:1652 */ +#line 44497 "gram.c" break; - case 2059: -#line 13993 "gram.y" /* yacc.c:1652 */ - { + case 2059: /* func_expr_common_subexpr: LOCALTIMESTAMP '(' Iconst ')' */ +#line 13993 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); } -#line 44013 "gram.c" /* yacc.c:1652 */ +#line 44505 "gram.c" break; - case 2060: -#line 13997 "gram.y" /* yacc.c:1652 */ - { + case 2060: /* func_expr_common_subexpr: CURRENT_ROLE */ +#line 13997 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[0])); } -#line 44021 "gram.c" /* yacc.c:1652 */ +#line 44513 "gram.c" break; - case 2061: -#line 14001 "gram.y" /* yacc.c:1652 */ - { + case 2061: /* func_expr_common_subexpr: CURRENT_USER */ +#line 14001 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[0])); } -#line 44029 "gram.c" /* yacc.c:1652 */ +#line 44521 "gram.c" break; - case 2062: -#line 14005 "gram.y" /* yacc.c:1652 */ - { + case 2062: /* func_expr_common_subexpr: SESSION_USER */ +#line 14005 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[0])); } -#line 44037 "gram.c" /* yacc.c:1652 */ +#line 44529 "gram.c" break; - case 2063: -#line 14009 "gram.y" /* yacc.c:1652 */ - { + case 2063: /* func_expr_common_subexpr: USER */ +#line 14009 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[0])); } -#line 44045 "gram.c" /* yacc.c:1652 */ +#line 44537 "gram.c" break; - case 2064: -#line 14013 "gram.y" /* yacc.c:1652 */ - { + case 2064: /* func_expr_common_subexpr: CURRENT_CATALOG */ +#line 14013 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[0])); } -#line 44053 "gram.c" /* yacc.c:1652 */ +#line 44545 "gram.c" break; - case 2065: -#line 14017 "gram.y" /* yacc.c:1652 */ - { + case 2065: /* func_expr_common_subexpr: CURRENT_SCHEMA */ +#line 14017 "gram.y" + { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[0])); } -#line 44061 "gram.c" /* yacc.c:1652 */ +#line 44553 "gram.c" break; - case 2066: -#line 14021 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), (yylsp[-5])); } -#line 44067 "gram.c" /* yacc.c:1652 */ + case 2066: /* func_expr_common_subexpr: CAST '(' a_expr AS Typename ')' */ +#line 14021 "gram.y" + { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), (yylsp[-5])); } +#line 44559 "gram.c" break; - case 2067: -#line 14023 "gram.y" /* yacc.c:1652 */ - { + case 2067: /* func_expr_common_subexpr: EXTRACT '(' extract_list ')' */ +#line 14023 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[-1].list), (yylsp[-3])); } -#line 44075 "gram.c" /* yacc.c:1652 */ +#line 44567 "gram.c" break; - case 2068: -#line 14027 "gram.y" /* yacc.c:1652 */ - { + case 2068: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ')' */ +#line 14027 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"), list_make1((yyvsp[-1].node)), (yylsp[-3])); } -#line 44083 "gram.c" /* yacc.c:1652 */ +#line 44575 "gram.c" break; - case 2069: -#line 14031 "gram.y" /* yacc.c:1652 */ - { + case 2069: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ',' unicode_normal_form ')' */ +#line 14031 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"), list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))), (yylsp[-5])); } -#line 44091 "gram.c" /* yacc.c:1652 */ +#line 44583 "gram.c" break; - case 2070: -#line 14035 "gram.y" /* yacc.c:1652 */ - { + case 2070: /* func_expr_common_subexpr: OVERLAY '(' overlay_list ')' */ +#line 14035 "gram.y" + { /* overlay(A PLACING B FROM C FOR D) is converted to * overlay(A, B, C, D) * overlay(A PLACING B FROM C) is converted to @@ -44100,32 +44592,32 @@ */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[-1].list), (yylsp[-3])); } -#line 44104 "gram.c" /* yacc.c:1652 */ +#line 44596 "gram.c" break; - case 2071: -#line 14044 "gram.y" /* yacc.c:1652 */ - { + case 2071: /* func_expr_common_subexpr: POSITION '(' position_list ')' */ +#line 14044 "gram.y" + { /* position(A in B) is converted to position(B, A) */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"), (yyvsp[-1].list), (yylsp[-3])); } -#line 44113 "gram.c" /* yacc.c:1652 */ +#line 44605 "gram.c" break; - case 2072: -#line 14049 "gram.y" /* yacc.c:1652 */ - { + case 2072: /* func_expr_common_subexpr: SUBSTRING '(' substr_list ')' */ +#line 14049 "gram.y" + { /* substring(A from B for C) is converted to * substring(A, B, C) - thomas 2000-11-28 */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("substring"), (yyvsp[-1].list), (yylsp[-3])); } -#line 44124 "gram.c" /* yacc.c:1652 */ +#line 44616 "gram.c" break; - case 2073: -#line 14056 "gram.y" /* yacc.c:1652 */ - { + case 2073: /* func_expr_common_subexpr: TREAT '(' a_expr AS Typename ')' */ +#line 14056 "gram.y" + { /* TREAT(expr AS target) converts expr of a particular type to target, * which is defined to be a subtype of the original expression. * In SQL99, this is intended for use with structured UDTs, @@ -44139,148 +44631,148 @@ list_make1((yyvsp[-3].node)), (yylsp[-5])); } -#line 44143 "gram.c" /* yacc.c:1652 */ +#line 44635 "gram.c" break; - case 2074: -#line 14071 "gram.y" /* yacc.c:1652 */ - { + case 2074: /* func_expr_common_subexpr: TRIM '(' BOTH trim_list ')' */ +#line 14071 "gram.y" + { /* various trim expressions are defined in SQL * - thomas 1997-07-19 */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[-1].list), (yylsp[-4])); } -#line 44154 "gram.c" /* yacc.c:1652 */ +#line 44646 "gram.c" break; - case 2075: -#line 14078 "gram.y" /* yacc.c:1652 */ - { + case 2075: /* func_expr_common_subexpr: TRIM '(' LEADING trim_list ')' */ +#line 14078 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[-1].list), (yylsp[-4])); } -#line 44162 "gram.c" /* yacc.c:1652 */ +#line 44654 "gram.c" break; - case 2076: -#line 14082 "gram.y" /* yacc.c:1652 */ - { + case 2076: /* func_expr_common_subexpr: TRIM '(' TRAILING trim_list ')' */ +#line 14082 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[-1].list), (yylsp[-4])); } -#line 44170 "gram.c" /* yacc.c:1652 */ +#line 44662 "gram.c" break; - case 2077: -#line 14086 "gram.y" /* yacc.c:1652 */ - { + case 2077: /* func_expr_common_subexpr: TRIM '(' trim_list ')' */ +#line 14086 "gram.y" + { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[-1].list), (yylsp[-3])); } -#line 44178 "gram.c" /* yacc.c:1652 */ +#line 44670 "gram.c" break; - case 2078: -#line 14090 "gram.y" /* yacc.c:1652 */ - { + case 2078: /* func_expr_common_subexpr: NULLIF '(' a_expr ',' a_expr ')' */ +#line 14090 "gram.y" + { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[-3].node), (yyvsp[-1].node), (yylsp[-5])); } -#line 44186 "gram.c" /* yacc.c:1652 */ +#line 44678 "gram.c" break; - case 2079: -#line 14094 "gram.y" /* yacc.c:1652 */ - { + case 2079: /* func_expr_common_subexpr: COALESCE '(' expr_list ')' */ +#line 14094 "gram.y" + { CoalesceExpr *c = makeNode(CoalesceExpr); c->args = (yyvsp[-1].list); c->location = (yylsp[-3]); (yyval.node) = (Node *)c; } -#line 44197 "gram.c" /* yacc.c:1652 */ +#line 44689 "gram.c" break; - case 2080: -#line 14101 "gram.y" /* yacc.c:1652 */ - { + case 2080: /* func_expr_common_subexpr: GREATEST '(' expr_list ')' */ +#line 14101 "gram.y" + { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[-1].list); v->op = IS_GREATEST; v->location = (yylsp[-3]); (yyval.node) = (Node *)v; } -#line 44209 "gram.c" /* yacc.c:1652 */ +#line 44701 "gram.c" break; - case 2081: -#line 14109 "gram.y" /* yacc.c:1652 */ - { + case 2081: /* func_expr_common_subexpr: LEAST '(' expr_list ')' */ +#line 14109 "gram.y" + { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[-1].list); v->op = IS_LEAST; v->location = (yylsp[-3]); (yyval.node) = (Node *)v; } -#line 44221 "gram.c" /* yacc.c:1652 */ +#line 44713 "gram.c" break; - case 2082: -#line 14117 "gram.y" /* yacc.c:1652 */ - { + case 2082: /* func_expr_common_subexpr: XMLCONCAT '(' expr_list ')' */ +#line 14117 "gram.y" + { (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[-1].list), (yylsp[-3])); } -#line 44229 "gram.c" /* yacc.c:1652 */ +#line 44721 "gram.c" break; - case 2083: -#line 14121 "gram.y" /* yacc.c:1652 */ - { + case 2083: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ')' */ +#line 14121 "gram.y" + { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-1].str), NIL, NIL, (yylsp[-4])); } -#line 44237 "gram.c" /* yacc.c:1652 */ +#line 44729 "gram.c" break; - case 2084: -#line 14125 "gram.y" /* yacc.c:1652 */ - { + case 2084: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ')' */ +#line 14125 "gram.y" + { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), (yyvsp[-1].list), NIL, (yylsp[-6])); } -#line 44245 "gram.c" /* yacc.c:1652 */ +#line 44737 "gram.c" break; - case 2085: -#line 14129 "gram.y" /* yacc.c:1652 */ - { + case 2085: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' expr_list ')' */ +#line 14129 "gram.y" + { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), NIL, (yyvsp[-1].list), (yylsp[-6])); } -#line 44253 "gram.c" /* yacc.c:1652 */ +#line 44745 "gram.c" break; - case 2086: -#line 14133 "gram.y" /* yacc.c:1652 */ - { + case 2086: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ',' expr_list ')' */ +#line 14133 "gram.y" + { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-5].str), (yyvsp[-3].list), (yyvsp[-1].list), (yylsp[-8])); } -#line 44261 "gram.c" /* yacc.c:1652 */ +#line 44753 "gram.c" break; - case 2087: -#line 14137 "gram.y" /* yacc.c:1652 */ - { + case 2087: /* func_expr_common_subexpr: XMLEXISTS '(' c_expr xmlexists_argument ')' */ +#line 14137 "gram.y" + { /* xmlexists(A PASSING [BY REF] B [BY REF]) is * converted to xmlexists(A, B)*/ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("xmlexists"), list_make2((yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-4])); } -#line 44271 "gram.c" /* yacc.c:1652 */ +#line 44763 "gram.c" break; - case 2088: -#line 14143 "gram.y" /* yacc.c:1652 */ - { + case 2088: /* func_expr_common_subexpr: XMLFOREST '(' xml_attribute_list ')' */ +#line 14143 "gram.y" + { (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[-1].list), NIL, (yylsp[-3])); } -#line 44279 "gram.c" /* yacc.c:1652 */ +#line 44771 "gram.c" break; - case 2089: -#line 14147 "gram.y" /* yacc.c:1652 */ - { + case 2089: /* func_expr_common_subexpr: XMLPARSE '(' document_or_content a_expr xml_whitespace_option ')' */ +#line 14147 "gram.y" + { XmlExpr *x = (XmlExpr *) makeXmlExpr(IS_XMLPARSE, NULL, NIL, list_make2((yyvsp[-2].node), makeBoolAConst((yyvsp[-1].boolean), -1)), @@ -44288,37 +44780,37 @@ x->xmloption = (yyvsp[-3].ival); (yyval.node) = (Node *)x; } -#line 44292 "gram.c" /* yacc.c:1652 */ +#line 44784 "gram.c" break; - case 2090: -#line 14156 "gram.y" /* yacc.c:1652 */ - { + case 2090: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ')' */ +#line 14156 "gram.y" + { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-1].str), NULL, NIL, (yylsp[-4])); } -#line 44300 "gram.c" /* yacc.c:1652 */ +#line 44792 "gram.c" break; - case 2091: -#line 14160 "gram.y" /* yacc.c:1652 */ - { + case 2091: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ',' a_expr ')' */ +#line 14160 "gram.y" + { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-3].str), NULL, list_make1((yyvsp[-1].node)), (yylsp[-6])); } -#line 44308 "gram.c" /* yacc.c:1652 */ +#line 44800 "gram.c" break; - case 2092: -#line 14164 "gram.y" /* yacc.c:1652 */ - { + case 2092: /* func_expr_common_subexpr: XMLROOT '(' a_expr ',' xml_root_version opt_xml_root_standalone ')' */ +#line 14164 "gram.y" + { (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL, list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-6])); } -#line 44317 "gram.c" /* yacc.c:1652 */ +#line 44809 "gram.c" break; - case 2093: -#line 14169 "gram.y" /* yacc.c:1652 */ - { + case 2093: /* func_expr_common_subexpr: XMLSERIALIZE '(' document_or_content a_expr AS SimpleTypename ')' */ +#line 14169 "gram.y" + { XmlSerialize *n = makeNode(XmlSerialize); n->xmloption = (yyvsp[-4].ival); n->expr = (yyvsp[-3].node); @@ -44326,216 +44818,216 @@ n->location = (yylsp[-6]); (yyval.node) = (Node *)n; } -#line 44330 "gram.c" /* yacc.c:1652 */ +#line 44822 "gram.c" break; - case 2094: -#line 14183 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 44336 "gram.c" /* yacc.c:1652 */ + case 2094: /* xml_root_version: VERSION_P a_expr */ +#line 14183 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 44828 "gram.c" break; - case 2095: -#line 14185 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeNullAConst(-1); } -#line 44342 "gram.c" /* yacc.c:1652 */ + case 2095: /* xml_root_version: VERSION_P NO VALUE_P */ +#line 14185 "gram.y" + { (yyval.node) = makeNullAConst(-1); } +#line 44834 "gram.c" break; - case 2096: -#line 14189 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); } -#line 44348 "gram.c" /* yacc.c:1652 */ + case 2096: /* opt_xml_root_standalone: ',' STANDALONE_P YES_P */ +#line 14189 "gram.y" + { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); } +#line 44840 "gram.c" break; - case 2097: -#line 14191 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); } -#line 44354 "gram.c" /* yacc.c:1652 */ + case 2097: /* opt_xml_root_standalone: ',' STANDALONE_P NO */ +#line 14191 "gram.y" + { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); } +#line 44846 "gram.c" break; - case 2098: -#line 14193 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); } -#line 44360 "gram.c" /* yacc.c:1652 */ + case 2098: /* opt_xml_root_standalone: ',' STANDALONE_P NO VALUE_P */ +#line 14193 "gram.y" + { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); } +#line 44852 "gram.c" break; - case 2099: -#line 14195 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); } -#line 44366 "gram.c" /* yacc.c:1652 */ + case 2099: /* opt_xml_root_standalone: %empty */ +#line 14195 "gram.y" + { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); } +#line 44858 "gram.c" break; - case 2100: -#line 14198 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 44372 "gram.c" /* yacc.c:1652 */ + case 2100: /* xml_attributes: XMLATTRIBUTES '(' xml_attribute_list ')' */ +#line 14198 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 44864 "gram.c" break; - case 2101: -#line 14201 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].target)); } -#line 44378 "gram.c" /* yacc.c:1652 */ + case 2101: /* xml_attribute_list: xml_attribute_el */ +#line 14201 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 44870 "gram.c" break; - case 2102: -#line 14202 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } -#line 44384 "gram.c" /* yacc.c:1652 */ + case 2102: /* xml_attribute_list: xml_attribute_list ',' xml_attribute_el */ +#line 14202 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 44876 "gram.c" break; - case 2103: -#line 14206 "gram.y" /* yacc.c:1652 */ - { + case 2103: /* xml_attribute_el: a_expr AS ColLabel */ +#line 14206 "gram.y" + { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } -#line 44396 "gram.c" /* yacc.c:1652 */ +#line 44888 "gram.c" break; - case 2104: -#line 14214 "gram.y" /* yacc.c:1652 */ - { + case 2104: /* xml_attribute_el: a_expr */ +#line 14214 "gram.y" + { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[0].node); (yyval.target)->location = (yylsp[0]); } -#line 44408 "gram.c" /* yacc.c:1652 */ +#line 44900 "gram.c" break; - case 2105: -#line 14223 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = XMLOPTION_DOCUMENT; } -#line 44414 "gram.c" /* yacc.c:1652 */ + case 2105: /* document_or_content: DOCUMENT_P */ +#line 14223 "gram.y" + { (yyval.ival) = XMLOPTION_DOCUMENT; } +#line 44906 "gram.c" break; - case 2106: -#line 14224 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = XMLOPTION_CONTENT; } -#line 44420 "gram.c" /* yacc.c:1652 */ + case 2106: /* document_or_content: CONTENT_P */ +#line 14224 "gram.y" + { (yyval.ival) = XMLOPTION_CONTENT; } +#line 44912 "gram.c" break; - case 2107: -#line 14227 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 44426 "gram.c" /* yacc.c:1652 */ + case 2107: /* xml_whitespace_option: PRESERVE WHITESPACE_P */ +#line 14227 "gram.y" + { (yyval.boolean) = true; } +#line 44918 "gram.c" break; - case 2108: -#line 14228 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 44432 "gram.c" /* yacc.c:1652 */ + case 2108: /* xml_whitespace_option: STRIP_P WHITESPACE_P */ +#line 14228 "gram.y" + { (yyval.boolean) = false; } +#line 44924 "gram.c" break; - case 2109: -#line 14229 "gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 44438 "gram.c" /* yacc.c:1652 */ + case 2109: /* xml_whitespace_option: %empty */ +#line 14229 "gram.y" + { (yyval.boolean) = false; } +#line 44930 "gram.c" break; - case 2110: -#line 14235 "gram.y" /* yacc.c:1652 */ - { + case 2110: /* xmlexists_argument: PASSING c_expr */ +#line 14235 "gram.y" + { (yyval.node) = (yyvsp[0].node); } -#line 44446 "gram.c" /* yacc.c:1652 */ +#line 44938 "gram.c" break; - case 2111: -#line 14239 "gram.y" /* yacc.c:1652 */ - { + case 2111: /* xmlexists_argument: PASSING c_expr xml_passing_mech */ +#line 14239 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } -#line 44454 "gram.c" /* yacc.c:1652 */ +#line 44946 "gram.c" break; - case 2112: -#line 14243 "gram.y" /* yacc.c:1652 */ - { + case 2112: /* xmlexists_argument: PASSING xml_passing_mech c_expr */ +#line 14243 "gram.y" + { (yyval.node) = (yyvsp[0].node); } -#line 44462 "gram.c" /* yacc.c:1652 */ +#line 44954 "gram.c" break; - case 2113: -#line 14247 "gram.y" /* yacc.c:1652 */ - { + case 2113: /* xmlexists_argument: PASSING xml_passing_mech c_expr xml_passing_mech */ +#line 14247 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } -#line 44470 "gram.c" /* yacc.c:1652 */ +#line 44962 "gram.c" break; - case 2116: -#line 14262 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 44476 "gram.c" /* yacc.c:1652 */ + case 2116: /* within_group_clause: WITHIN GROUP_P '(' sort_clause ')' */ +#line 14262 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 44968 "gram.c" break; - case 2117: -#line 14263 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 44482 "gram.c" /* yacc.c:1652 */ + case 2117: /* within_group_clause: %empty */ +#line 14263 "gram.y" + { (yyval.list) = NIL; } +#line 44974 "gram.c" break; - case 2118: -#line 14267 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[-1].node); } -#line 44488 "gram.c" /* yacc.c:1652 */ + case 2118: /* filter_clause: FILTER '(' WHERE a_expr ')' */ +#line 14267 "gram.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 44980 "gram.c" break; - case 2119: -#line 14268 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 44494 "gram.c" /* yacc.c:1652 */ + case 2119: /* filter_clause: %empty */ +#line 14268 "gram.y" + { (yyval.node) = NULL; } +#line 44986 "gram.c" break; - case 2120: -#line 14276 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 44500 "gram.c" /* yacc.c:1652 */ + case 2120: /* window_clause: WINDOW window_definition_list */ +#line 14276 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 44992 "gram.c" break; - case 2121: -#line 14277 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 44506 "gram.c" /* yacc.c:1652 */ + case 2121: /* window_clause: %empty */ +#line 14277 "gram.y" + { (yyval.list) = NIL; } +#line 44998 "gram.c" break; - case 2122: -#line 14281 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].windef)); } -#line 44512 "gram.c" /* yacc.c:1652 */ + case 2122: /* window_definition_list: window_definition */ +#line 14281 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].windef)); } +#line 45004 "gram.c" break; - case 2123: -#line 14283 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); } -#line 44518 "gram.c" /* yacc.c:1652 */ + case 2123: /* window_definition_list: window_definition_list ',' window_definition */ +#line 14283 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); } +#line 45010 "gram.c" break; - case 2124: -#line 14288 "gram.y" /* yacc.c:1652 */ - { + case 2124: /* window_definition: ColId AS window_specification */ +#line 14288 "gram.y" + { WindowDef *n = (yyvsp[0].windef); n->name = (yyvsp[-2].str); (yyval.windef) = n; } -#line 44528 "gram.c" /* yacc.c:1652 */ +#line 45020 "gram.c" break; - case 2125: -#line 14296 "gram.y" /* yacc.c:1652 */ - { (yyval.windef) = (yyvsp[0].windef); } -#line 44534 "gram.c" /* yacc.c:1652 */ + case 2125: /* over_clause: OVER window_specification */ +#line 14296 "gram.y" + { (yyval.windef) = (yyvsp[0].windef); } +#line 45026 "gram.c" break; - case 2126: -#line 14298 "gram.y" /* yacc.c:1652 */ - { + case 2126: /* over_clause: OVER ColId */ +#line 14298 "gram.y" + { WindowDef *n = makeNode(WindowDef); n->name = (yyvsp[0].str); n->refname = NULL; @@ -44547,18 +45039,18 @@ n->location = (yylsp[0]); (yyval.windef) = n; } -#line 44551 "gram.c" /* yacc.c:1652 */ +#line 45043 "gram.c" break; - case 2127: -#line 14311 "gram.y" /* yacc.c:1652 */ - { (yyval.windef) = NULL; } -#line 44557 "gram.c" /* yacc.c:1652 */ + case 2127: /* over_clause: %empty */ +#line 14311 "gram.y" + { (yyval.windef) = NULL; } +#line 45049 "gram.c" break; - case 2128: -#line 14316 "gram.y" /* yacc.c:1652 */ - { + case 2128: /* window_specification: '(' opt_existing_window_name opt_partition_clause opt_sort_clause opt_frame_clause ')' */ +#line 14316 "gram.y" + { WindowDef *n = makeNode(WindowDef); n->name = NULL; n->refname = (yyvsp[-4].str); @@ -44571,81 +45063,81 @@ n->location = (yylsp[-5]); (yyval.windef) = n; } -#line 44575 "gram.c" /* yacc.c:1652 */ +#line 45067 "gram.c" break; - case 2129: -#line 14341 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 44581 "gram.c" /* yacc.c:1652 */ + case 2129: /* opt_existing_window_name: ColId */ +#line 14341 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 45073 "gram.c" break; - case 2130: -#line 14342 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 44587 "gram.c" /* yacc.c:1652 */ + case 2130: /* opt_existing_window_name: %empty */ +#line 14342 "gram.y" + { (yyval.str) = NULL; } +#line 45079 "gram.c" break; - case 2131: -#line 14345 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 44593 "gram.c" /* yacc.c:1652 */ + case 2131: /* opt_partition_clause: PARTITION BY expr_list */ +#line 14345 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 45085 "gram.c" break; - case 2132: -#line 14346 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 44599 "gram.c" /* yacc.c:1652 */ + case 2132: /* opt_partition_clause: %empty */ +#line 14346 "gram.y" + { (yyval.list) = NIL; } +#line 45091 "gram.c" break; - case 2133: -#line 14355 "gram.y" /* yacc.c:1652 */ - { + case 2133: /* opt_frame_clause: RANGE frame_extent opt_window_exclusion_clause */ +#line 14355 "gram.y" + { WindowDef *n = (yyvsp[-1].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; n->frameOptions |= (yyvsp[0].ival); (yyval.windef) = n; } -#line 44610 "gram.c" /* yacc.c:1652 */ +#line 45102 "gram.c" break; - case 2134: -#line 14362 "gram.y" /* yacc.c:1652 */ - { + case 2134: /* opt_frame_clause: ROWS frame_extent opt_window_exclusion_clause */ +#line 14362 "gram.y" + { WindowDef *n = (yyvsp[-1].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; n->frameOptions |= (yyvsp[0].ival); (yyval.windef) = n; } -#line 44621 "gram.c" /* yacc.c:1652 */ +#line 45113 "gram.c" break; - case 2135: -#line 14369 "gram.y" /* yacc.c:1652 */ - { + case 2135: /* opt_frame_clause: GROUPS frame_extent opt_window_exclusion_clause */ +#line 14369 "gram.y" + { WindowDef *n = (yyvsp[-1].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS; n->frameOptions |= (yyvsp[0].ival); (yyval.windef) = n; } -#line 44632 "gram.c" /* yacc.c:1652 */ +#line 45124 "gram.c" break; - case 2136: -#line 14376 "gram.y" /* yacc.c:1652 */ - { + case 2136: /* opt_frame_clause: %empty */ +#line 14376 "gram.y" + { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } -#line 44644 "gram.c" /* yacc.c:1652 */ +#line 45136 "gram.c" break; - case 2137: -#line 14386 "gram.y" /* yacc.c:1652 */ - { + case 2137: /* frame_extent: frame_bound */ +#line 14386 "gram.y" + { WindowDef *n = (yyvsp[0].windef); /* reject invalid cases */ if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) @@ -44661,12 +45153,12 @@ n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; (yyval.windef) = n; } -#line 44665 "gram.c" /* yacc.c:1652 */ +#line 45157 "gram.c" break; - case 2138: -#line 14403 "gram.y" /* yacc.c:1652 */ - { + case 2138: /* frame_extent: BETWEEN frame_bound AND frame_bound */ +#line 14403 "gram.y" + { WindowDef *n1 = (yyvsp[-2].windef); WindowDef *n2 = (yyvsp[0].windef); /* form merged options */ @@ -44702,340 +45194,340 @@ n1->endOffset = n2->startOffset; (yyval.windef) = n1; } -#line 44706 "gram.c" /* yacc.c:1652 */ +#line 45198 "gram.c" break; - case 2139: -#line 14448 "gram.y" /* yacc.c:1652 */ - { + case 2139: /* frame_bound: UNBOUNDED PRECEDING */ +#line 14448 "gram.y" + { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } -#line 44718 "gram.c" /* yacc.c:1652 */ +#line 45210 "gram.c" break; - case 2140: -#line 14456 "gram.y" /* yacc.c:1652 */ - { + case 2140: /* frame_bound: UNBOUNDED FOLLOWING */ +#line 14456 "gram.y" + { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } -#line 44730 "gram.c" /* yacc.c:1652 */ +#line 45222 "gram.c" break; - case 2141: -#line 14464 "gram.y" /* yacc.c:1652 */ - { + case 2141: /* frame_bound: CURRENT_P ROW */ +#line 14464 "gram.y" + { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } -#line 44742 "gram.c" /* yacc.c:1652 */ +#line 45234 "gram.c" break; - case 2142: -#line 14472 "gram.y" /* yacc.c:1652 */ - { + case 2142: /* frame_bound: a_expr PRECEDING */ +#line 14472 "gram.y" + { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING; n->startOffset = (yyvsp[-1].node); n->endOffset = NULL; (yyval.windef) = n; } -#line 44754 "gram.c" /* yacc.c:1652 */ +#line 45246 "gram.c" break; - case 2143: -#line 14480 "gram.y" /* yacc.c:1652 */ - { + case 2143: /* frame_bound: a_expr FOLLOWING */ +#line 14480 "gram.y" + { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING; n->startOffset = (yyvsp[-1].node); n->endOffset = NULL; (yyval.windef) = n; } -#line 44766 "gram.c" /* yacc.c:1652 */ +#line 45258 "gram.c" break; - case 2144: -#line 14490 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; } -#line 44772 "gram.c" /* yacc.c:1652 */ + case 2144: /* opt_window_exclusion_clause: EXCLUDE CURRENT_P ROW */ +#line 14490 "gram.y" + { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; } +#line 45264 "gram.c" break; - case 2145: -#line 14491 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; } -#line 44778 "gram.c" /* yacc.c:1652 */ + case 2145: /* opt_window_exclusion_clause: EXCLUDE GROUP_P */ +#line 14491 "gram.y" + { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; } +#line 45270 "gram.c" break; - case 2146: -#line 14492 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; } -#line 44784 "gram.c" /* yacc.c:1652 */ + case 2146: /* opt_window_exclusion_clause: EXCLUDE TIES */ +#line 14492 "gram.y" + { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; } +#line 45276 "gram.c" break; - case 2147: -#line 14493 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 44790 "gram.c" /* yacc.c:1652 */ + case 2147: /* opt_window_exclusion_clause: EXCLUDE NO OTHERS */ +#line 14493 "gram.y" + { (yyval.ival) = 0; } +#line 45282 "gram.c" break; - case 2148: -#line 14494 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = 0; } -#line 44796 "gram.c" /* yacc.c:1652 */ + case 2148: /* opt_window_exclusion_clause: %empty */ +#line 14494 "gram.y" + { (yyval.ival) = 0; } +#line 45288 "gram.c" break; - case 2149: -#line 14508 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 44802 "gram.c" /* yacc.c:1652 */ + case 2149: /* row: ROW '(' expr_list ')' */ +#line 14508 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 45294 "gram.c" break; - case 2150: -#line 14509 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 44808 "gram.c" /* yacc.c:1652 */ + case 2150: /* row: ROW '(' ')' */ +#line 14509 "gram.y" + { (yyval.list) = NIL; } +#line 45300 "gram.c" break; - case 2151: -#line 14510 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } -#line 44814 "gram.c" /* yacc.c:1652 */ + case 2151: /* row: '(' expr_list ',' a_expr ')' */ +#line 14510 "gram.y" + { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } +#line 45306 "gram.c" break; - case 2152: -#line 14513 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 44820 "gram.c" /* yacc.c:1652 */ + case 2152: /* explicit_row: ROW '(' expr_list ')' */ +#line 14513 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 45312 "gram.c" break; - case 2153: -#line 14514 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 44826 "gram.c" /* yacc.c:1652 */ + case 2153: /* explicit_row: ROW '(' ')' */ +#line 14514 "gram.y" + { (yyval.list) = NIL; } +#line 45318 "gram.c" break; - case 2154: -#line 14517 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } -#line 44832 "gram.c" /* yacc.c:1652 */ + case 2154: /* implicit_row: '(' expr_list ',' a_expr ')' */ +#line 14517 "gram.y" + { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } +#line 45324 "gram.c" break; - case 2155: -#line 14520 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ANY_SUBLINK; } -#line 44838 "gram.c" /* yacc.c:1652 */ + case 2155: /* sub_type: ANY */ +#line 14520 "gram.y" + { (yyval.ival) = ANY_SUBLINK; } +#line 45330 "gram.c" break; - case 2156: -#line 14521 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ANY_SUBLINK; } -#line 44844 "gram.c" /* yacc.c:1652 */ + case 2156: /* sub_type: SOME */ +#line 14521 "gram.y" + { (yyval.ival) = ANY_SUBLINK; } +#line 45336 "gram.c" break; - case 2157: -#line 14522 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = ALL_SUBLINK; } -#line 44850 "gram.c" /* yacc.c:1652 */ + case 2157: /* sub_type: ALL */ +#line 14522 "gram.y" + { (yyval.ival) = ALL_SUBLINK; } +#line 45342 "gram.c" break; - case 2158: -#line 14525 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 44856 "gram.c" /* yacc.c:1652 */ + case 2158: /* all_Op: Op */ +#line 14525 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 45348 "gram.c" break; - case 2159: -#line 14526 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 44862 "gram.c" /* yacc.c:1652 */ + case 2159: /* all_Op: MathOp */ +#line 14526 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 45354 "gram.c" break; - case 2160: -#line 14529 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "+"; } -#line 44868 "gram.c" /* yacc.c:1652 */ + case 2160: /* MathOp: '+' */ +#line 14529 "gram.y" + { (yyval.str) = "+"; } +#line 45360 "gram.c" break; - case 2161: -#line 14530 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "-"; } -#line 44874 "gram.c" /* yacc.c:1652 */ + case 2161: /* MathOp: '-' */ +#line 14530 "gram.y" + { (yyval.str) = "-"; } +#line 45366 "gram.c" break; - case 2162: -#line 14531 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "*"; } -#line 44880 "gram.c" /* yacc.c:1652 */ + case 2162: /* MathOp: '*' */ +#line 14531 "gram.y" + { (yyval.str) = "*"; } +#line 45372 "gram.c" break; - case 2163: -#line 14532 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "/"; } -#line 44886 "gram.c" /* yacc.c:1652 */ + case 2163: /* MathOp: '/' */ +#line 14532 "gram.y" + { (yyval.str) = "/"; } +#line 45378 "gram.c" break; - case 2164: -#line 14533 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "%"; } -#line 44892 "gram.c" /* yacc.c:1652 */ + case 2164: /* MathOp: '%' */ +#line 14533 "gram.y" + { (yyval.str) = "%"; } +#line 45384 "gram.c" break; - case 2165: -#line 14534 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "^"; } -#line 44898 "gram.c" /* yacc.c:1652 */ + case 2165: /* MathOp: '^' */ +#line 14534 "gram.y" + { (yyval.str) = "^"; } +#line 45390 "gram.c" break; - case 2166: -#line 14535 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "<"; } -#line 44904 "gram.c" /* yacc.c:1652 */ + case 2166: /* MathOp: '<' */ +#line 14535 "gram.y" + { (yyval.str) = "<"; } +#line 45396 "gram.c" break; - case 2167: -#line 14536 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = ">"; } -#line 44910 "gram.c" /* yacc.c:1652 */ + case 2167: /* MathOp: '>' */ +#line 14536 "gram.y" + { (yyval.str) = ">"; } +#line 45402 "gram.c" break; - case 2168: -#line 14537 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "="; } -#line 44916 "gram.c" /* yacc.c:1652 */ + case 2168: /* MathOp: '=' */ +#line 14537 "gram.y" + { (yyval.str) = "="; } +#line 45408 "gram.c" break; - case 2169: -#line 14538 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "<="; } -#line 44922 "gram.c" /* yacc.c:1652 */ + case 2169: /* MathOp: LESS_EQUALS */ +#line 14538 "gram.y" + { (yyval.str) = "<="; } +#line 45414 "gram.c" break; - case 2170: -#line 14539 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = ">="; } -#line 44928 "gram.c" /* yacc.c:1652 */ + case 2170: /* MathOp: GREATER_EQUALS */ +#line 14539 "gram.y" + { (yyval.str) = ">="; } +#line 45420 "gram.c" break; - case 2171: -#line 14540 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "<>"; } -#line 44934 "gram.c" /* yacc.c:1652 */ + case 2171: /* MathOp: NOT_EQUALS */ +#line 14540 "gram.y" + { (yyval.str) = "<>"; } +#line 45426 "gram.c" break; - case 2172: -#line 14544 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 44940 "gram.c" /* yacc.c:1652 */ + case 2172: /* qual_Op: Op */ +#line 14544 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 45432 "gram.c" break; - case 2173: -#line 14546 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 44946 "gram.c" /* yacc.c:1652 */ + case 2173: /* qual_Op: OPERATOR '(' any_operator ')' */ +#line 14546 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 45438 "gram.c" break; - case 2174: -#line 14551 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 44952 "gram.c" /* yacc.c:1652 */ + case 2174: /* qual_all_Op: all_Op */ +#line 14551 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 45444 "gram.c" break; - case 2175: -#line 14553 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 44958 "gram.c" /* yacc.c:1652 */ + case 2175: /* qual_all_Op: OPERATOR '(' any_operator ')' */ +#line 14553 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 45450 "gram.c" break; - case 2176: -#line 14558 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 44964 "gram.c" /* yacc.c:1652 */ + case 2176: /* subquery_Op: all_Op */ +#line 14558 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 45456 "gram.c" break; - case 2177: -#line 14560 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 44970 "gram.c" /* yacc.c:1652 */ + case 2177: /* subquery_Op: OPERATOR '(' any_operator ')' */ +#line 14560 "gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 45462 "gram.c" break; - case 2178: -#line 14562 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString("~~")); } -#line 44976 "gram.c" /* yacc.c:1652 */ + case 2178: /* subquery_Op: LIKE */ +#line 14562 "gram.y" + { (yyval.list) = list_make1(makeString("~~")); } +#line 45468 "gram.c" break; - case 2179: -#line 14564 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString("!~~")); } -#line 44982 "gram.c" /* yacc.c:1652 */ + case 2179: /* subquery_Op: NOT_LA LIKE */ +#line 14564 "gram.y" + { (yyval.list) = list_make1(makeString("!~~")); } +#line 45474 "gram.c" break; - case 2180: -#line 14566 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString("~~*")); } -#line 44988 "gram.c" /* yacc.c:1652 */ + case 2180: /* subquery_Op: ILIKE */ +#line 14566 "gram.y" + { (yyval.list) = list_make1(makeString("~~*")); } +#line 45480 "gram.c" break; - case 2181: -#line 14568 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString("!~~*")); } -#line 44994 "gram.c" /* yacc.c:1652 */ + case 2181: /* subquery_Op: NOT_LA ILIKE */ +#line 14568 "gram.y" + { (yyval.list) = list_make1(makeString("!~~*")); } +#line 45486 "gram.c" break; - case 2182: -#line 14580 "gram.y" /* yacc.c:1652 */ - { + case 2182: /* expr_list: a_expr */ +#line 14580 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 45002 "gram.c" /* yacc.c:1652 */ +#line 45494 "gram.c" break; - case 2183: -#line 14584 "gram.y" /* yacc.c:1652 */ - { + case 2183: /* expr_list: expr_list ',' a_expr */ +#line 14584 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 45010 "gram.c" /* yacc.c:1652 */ +#line 45502 "gram.c" break; - case 2184: -#line 14591 "gram.y" /* yacc.c:1652 */ - { + case 2184: /* func_arg_list: func_arg_expr */ +#line 14591 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 45018 "gram.c" /* yacc.c:1652 */ +#line 45510 "gram.c" break; - case 2185: -#line 14595 "gram.y" /* yacc.c:1652 */ - { + case 2185: /* func_arg_list: func_arg_list ',' func_arg_expr */ +#line 14595 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 45026 "gram.c" /* yacc.c:1652 */ +#line 45518 "gram.c" break; - case 2186: -#line 14601 "gram.y" /* yacc.c:1652 */ - { + case 2186: /* func_arg_expr: a_expr */ +#line 14601 "gram.y" + { (yyval.node) = (yyvsp[0].node); } -#line 45034 "gram.c" /* yacc.c:1652 */ +#line 45526 "gram.c" break; - case 2187: -#line 14605 "gram.y" /* yacc.c:1652 */ - { + case 2187: /* func_arg_expr: param_name COLON_EQUALS a_expr */ +#line 14605 "gram.y" + { NamedArgExpr *na = makeNode(NamedArgExpr); na->name = (yyvsp[-2].str); na->arg = (Expr *) (yyvsp[0].node); @@ -45043,12 +45535,12 @@ na->location = (yylsp[-2]); (yyval.node) = (Node *) na; } -#line 45047 "gram.c" /* yacc.c:1652 */ +#line 45539 "gram.c" break; - case 2188: -#line 14614 "gram.y" /* yacc.c:1652 */ - { + case 2188: /* func_arg_expr: param_name EQUALS_GREATER a_expr */ +#line 14614 "gram.y" + { NamedArgExpr *na = makeNode(NamedArgExpr); na->name = (yyvsp[-2].str); na->arg = (Expr *) (yyvsp[0].node); @@ -45056,205 +45548,205 @@ na->location = (yylsp[-2]); (yyval.node) = (Node *) na; } -#line 45060 "gram.c" /* yacc.c:1652 */ +#line 45552 "gram.c" break; - case 2189: -#line 14624 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].typnam)); } -#line 45066 "gram.c" /* yacc.c:1652 */ + case 2189: /* type_list: Typename */ +#line 14624 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].typnam)); } +#line 45558 "gram.c" break; - case 2190: -#line 14625 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } -#line 45072 "gram.c" /* yacc.c:1652 */ + case 2190: /* type_list: type_list ',' Typename */ +#line 14625 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } +#line 45564 "gram.c" break; - case 2191: -#line 14629 "gram.y" /* yacc.c:1652 */ - { + case 2191: /* array_expr: '[' expr_list ']' */ +#line 14629 "gram.y" + { (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2])); } -#line 45080 "gram.c" /* yacc.c:1652 */ +#line 45572 "gram.c" break; - case 2192: -#line 14633 "gram.y" /* yacc.c:1652 */ - { + case 2192: /* array_expr: '[' array_expr_list ']' */ +#line 14633 "gram.y" + { (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2])); } -#line 45088 "gram.c" /* yacc.c:1652 */ +#line 45580 "gram.c" break; - case 2193: -#line 14637 "gram.y" /* yacc.c:1652 */ - { + case 2193: /* array_expr: '[' ']' */ +#line 14637 "gram.y" + { (yyval.node) = makeAArrayExpr(NIL, (yylsp[-1])); } -#line 45096 "gram.c" /* yacc.c:1652 */ +#line 45588 "gram.c" break; - case 2194: -#line 14642 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 45102 "gram.c" /* yacc.c:1652 */ + case 2194: /* array_expr_list: array_expr */ +#line 14642 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 45594 "gram.c" break; - case 2195: -#line 14643 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 45108 "gram.c" /* yacc.c:1652 */ + case 2195: /* array_expr_list: array_expr_list ',' array_expr */ +#line 14643 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 45600 "gram.c" break; - case 2196: -#line 14649 "gram.y" /* yacc.c:1652 */ - { + case 2196: /* extract_list: extract_arg FROM a_expr */ +#line 14649 "gram.y" + { (yyval.list) = list_make2(makeStringConst((yyvsp[-2].str), (yylsp[-2])), (yyvsp[0].node)); } -#line 45116 "gram.c" /* yacc.c:1652 */ +#line 45608 "gram.c" break; - case 2197: -#line 14652 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 45122 "gram.c" /* yacc.c:1652 */ + case 2197: /* extract_list: %empty */ +#line 14652 "gram.y" + { (yyval.list) = NIL; } +#line 45614 "gram.c" break; - case 2198: -#line 14659 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45128 "gram.c" /* yacc.c:1652 */ + case 2198: /* extract_arg: IDENT */ +#line 14659 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 45620 "gram.c" break; - case 2199: -#line 14660 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "year"; } -#line 45134 "gram.c" /* yacc.c:1652 */ + case 2199: /* extract_arg: YEAR_P */ +#line 14660 "gram.y" + { (yyval.str) = "year"; } +#line 45626 "gram.c" break; - case 2200: -#line 14661 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "month"; } -#line 45140 "gram.c" /* yacc.c:1652 */ + case 2200: /* extract_arg: MONTH_P */ +#line 14661 "gram.y" + { (yyval.str) = "month"; } +#line 45632 "gram.c" break; - case 2201: -#line 14662 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "day"; } -#line 45146 "gram.c" /* yacc.c:1652 */ + case 2201: /* extract_arg: DAY_P */ +#line 14662 "gram.y" + { (yyval.str) = "day"; } +#line 45638 "gram.c" break; - case 2202: -#line 14663 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "hour"; } -#line 45152 "gram.c" /* yacc.c:1652 */ + case 2202: /* extract_arg: HOUR_P */ +#line 14663 "gram.y" + { (yyval.str) = "hour"; } +#line 45644 "gram.c" break; - case 2203: -#line 14664 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "minute"; } -#line 45158 "gram.c" /* yacc.c:1652 */ + case 2203: /* extract_arg: MINUTE_P */ +#line 14664 "gram.y" + { (yyval.str) = "minute"; } +#line 45650 "gram.c" break; - case 2204: -#line 14665 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "second"; } -#line 45164 "gram.c" /* yacc.c:1652 */ + case 2204: /* extract_arg: SECOND_P */ +#line 14665 "gram.y" + { (yyval.str) = "second"; } +#line 45656 "gram.c" break; - case 2205: -#line 14666 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45170 "gram.c" /* yacc.c:1652 */ + case 2205: /* extract_arg: Sconst */ +#line 14666 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 45662 "gram.c" break; - case 2206: -#line 14670 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "nfc"; } -#line 45176 "gram.c" /* yacc.c:1652 */ + case 2206: /* unicode_normal_form: NFC */ +#line 14670 "gram.y" + { (yyval.str) = "nfc"; } +#line 45668 "gram.c" break; - case 2207: -#line 14671 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "nfd"; } -#line 45182 "gram.c" /* yacc.c:1652 */ + case 2207: /* unicode_normal_form: NFD */ +#line 14671 "gram.y" + { (yyval.str) = "nfd"; } +#line 45674 "gram.c" break; - case 2208: -#line 14672 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "nfkc"; } -#line 45188 "gram.c" /* yacc.c:1652 */ + case 2208: /* unicode_normal_form: NFKC */ +#line 14672 "gram.y" + { (yyval.str) = "nfkc"; } +#line 45680 "gram.c" break; - case 2209: -#line 14673 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = "nfkd"; } -#line 45194 "gram.c" /* yacc.c:1652 */ + case 2209: /* unicode_normal_form: NFKD */ +#line 14673 "gram.y" + { (yyval.str) = "nfkd"; } +#line 45686 "gram.c" break; - case 2210: -#line 14684 "gram.y" /* yacc.c:1652 */ - { + case 2210: /* overlay_list: a_expr overlay_placing substr_from substr_for */ +#line 14684 "gram.y" + { (yyval.list) = list_make4((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } -#line 45202 "gram.c" /* yacc.c:1652 */ +#line 45694 "gram.c" break; - case 2211: -#line 14688 "gram.y" /* yacc.c:1652 */ - { + case 2211: /* overlay_list: a_expr overlay_placing substr_from */ +#line 14688 "gram.y" + { (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } -#line 45210 "gram.c" /* yacc.c:1652 */ +#line 45702 "gram.c" break; - case 2212: -#line 14695 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 45216 "gram.c" /* yacc.c:1652 */ + case 2212: /* overlay_placing: PLACING a_expr */ +#line 14695 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 45708 "gram.c" break; - case 2213: -#line 14701 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); } -#line 45222 "gram.c" /* yacc.c:1652 */ + case 2213: /* position_list: b_expr IN_P b_expr */ +#line 14701 "gram.y" + { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); } +#line 45714 "gram.c" break; - case 2214: -#line 14702 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 45228 "gram.c" /* yacc.c:1652 */ + case 2214: /* position_list: %empty */ +#line 14702 "gram.y" + { (yyval.list) = NIL; } +#line 45720 "gram.c" break; - case 2215: -#line 14719 "gram.y" /* yacc.c:1652 */ - { + case 2215: /* substr_list: a_expr substr_from substr_for */ +#line 14719 "gram.y" + { (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } -#line 45236 "gram.c" /* yacc.c:1652 */ +#line 45728 "gram.c" break; - case 2216: -#line 14723 "gram.y" /* yacc.c:1652 */ - { + case 2216: /* substr_list: a_expr substr_for substr_from */ +#line 14723 "gram.y" + { /* not legal per SQL99, but might as well allow it */ (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[0].node), (yyvsp[-1].node)); } -#line 45245 "gram.c" /* yacc.c:1652 */ +#line 45737 "gram.c" break; - case 2217: -#line 14728 "gram.y" /* yacc.c:1652 */ - { + case 2217: /* substr_list: a_expr substr_from */ +#line 14728 "gram.y" + { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); } -#line 45253 "gram.c" /* yacc.c:1652 */ +#line 45745 "gram.c" break; - case 2218: -#line 14732 "gram.y" /* yacc.c:1652 */ - { + case 2218: /* substr_list: a_expr substr_for */ +#line 14732 "gram.y" + { /* * Since there are no cases where this syntax allows * a textual FOR value, we forcibly cast the argument @@ -45268,73 +45760,73 @@ makeTypeCast((yyvsp[0].node), SystemTypeName("int4"), -1)); } -#line 45272 "gram.c" /* yacc.c:1652 */ +#line 45764 "gram.c" break; - case 2219: -#line 14747 "gram.y" /* yacc.c:1652 */ - { + case 2219: /* substr_list: expr_list */ +#line 14747 "gram.y" + { (yyval.list) = (yyvsp[0].list); } -#line 45280 "gram.c" /* yacc.c:1652 */ +#line 45772 "gram.c" break; - case 2220: -#line 14751 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 45286 "gram.c" /* yacc.c:1652 */ + case 2220: /* substr_list: %empty */ +#line 14751 "gram.y" + { (yyval.list) = NIL; } +#line 45778 "gram.c" break; - case 2221: -#line 14755 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 45292 "gram.c" /* yacc.c:1652 */ + case 2221: /* substr_from: FROM a_expr */ +#line 14755 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 45784 "gram.c" break; - case 2222: -#line 14758 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 45298 "gram.c" /* yacc.c:1652 */ + case 2222: /* substr_for: FOR a_expr */ +#line 14758 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 45790 "gram.c" break; - case 2223: -#line 14761 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); } -#line 45304 "gram.c" /* yacc.c:1652 */ + case 2223: /* trim_list: a_expr FROM expr_list */ +#line 14761 "gram.y" + { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); } +#line 45796 "gram.c" break; - case 2224: -#line 14762 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 45310 "gram.c" /* yacc.c:1652 */ + case 2224: /* trim_list: FROM expr_list */ +#line 14762 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 45802 "gram.c" break; - case 2225: -#line 14763 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 45316 "gram.c" /* yacc.c:1652 */ + case 2225: /* trim_list: expr_list */ +#line 14763 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 45808 "gram.c" break; - case 2226: -#line 14767 "gram.y" /* yacc.c:1652 */ - { + case 2226: /* in_expr: select_with_parens */ +#line 14767 "gram.y" + { SubLink *n = makeNode(SubLink); n->subselect = (yyvsp[0].node); /* other fields will be filled later */ (yyval.node) = (Node *)n; } -#line 45327 "gram.c" /* yacc.c:1652 */ +#line 45819 "gram.c" break; - case 2227: -#line 14773 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *)(yyvsp[-1].list); } -#line 45333 "gram.c" /* yacc.c:1652 */ + case 2227: /* in_expr: '(' expr_list ')' */ +#line 14773 "gram.y" + { (yyval.node) = (Node *)(yyvsp[-1].list); } +#line 45825 "gram.c" break; - case 2228: -#line 14784 "gram.y" /* yacc.c:1652 */ - { + case 2228: /* case_expr: CASE case_arg when_clause_list case_default END_P */ +#line 14784 "gram.y" + { CaseExpr *c = makeNode(CaseExpr); c->casetype = InvalidOid; /* not analyzed yet */ c->arg = (Expr *) (yyvsp[-3].node); @@ -45343,212 +45835,212 @@ c->location = (yylsp[-4]); (yyval.node) = (Node *)c; } -#line 45347 "gram.c" /* yacc.c:1652 */ +#line 45839 "gram.c" break; - case 2229: -#line 14797 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 45353 "gram.c" /* yacc.c:1652 */ + case 2229: /* when_clause_list: when_clause */ +#line 14797 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 45845 "gram.c" break; - case 2230: -#line 14798 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 45359 "gram.c" /* yacc.c:1652 */ + case 2230: /* when_clause_list: when_clause_list when_clause */ +#line 14798 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 45851 "gram.c" break; - case 2231: -#line 14803 "gram.y" /* yacc.c:1652 */ - { + case 2231: /* when_clause: WHEN a_expr THEN a_expr */ +#line 14803 "gram.y" + { CaseWhen *w = makeNode(CaseWhen); w->expr = (Expr *) (yyvsp[-2].node); w->result = (Expr *) (yyvsp[0].node); w->location = (yylsp[-3]); (yyval.node) = (Node *)w; } -#line 45371 "gram.c" /* yacc.c:1652 */ +#line 45863 "gram.c" break; - case 2232: -#line 14813 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 45377 "gram.c" /* yacc.c:1652 */ + case 2232: /* case_default: ELSE a_expr */ +#line 14813 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 45869 "gram.c" break; - case 2233: -#line 14814 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 45383 "gram.c" /* yacc.c:1652 */ + case 2233: /* case_default: %empty */ +#line 14814 "gram.y" + { (yyval.node) = NULL; } +#line 45875 "gram.c" break; - case 2234: -#line 14817 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 45389 "gram.c" /* yacc.c:1652 */ + case 2234: /* case_arg: a_expr */ +#line 14817 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 45881 "gram.c" break; - case 2235: -#line 14818 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 45395 "gram.c" /* yacc.c:1652 */ + case 2235: /* case_arg: %empty */ +#line 14818 "gram.y" + { (yyval.node) = NULL; } +#line 45887 "gram.c" break; - case 2236: -#line 14822 "gram.y" /* yacc.c:1652 */ - { + case 2236: /* columnref: ColId */ +#line 14822 "gram.y" + { (yyval.node) = makeColumnRef((yyvsp[0].str), NIL, (yylsp[0]), yyscanner); } -#line 45403 "gram.c" /* yacc.c:1652 */ +#line 45895 "gram.c" break; - case 2237: -#line 14826 "gram.y" /* yacc.c:1652 */ - { + case 2237: /* columnref: ColId indirection */ +#line 14826 "gram.y" + { (yyval.node) = makeColumnRef((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner); } -#line 45411 "gram.c" /* yacc.c:1652 */ +#line 45903 "gram.c" break; - case 2238: -#line 14833 "gram.y" /* yacc.c:1652 */ - { + case 2238: /* indirection_el: '.' attr_name */ +#line 14833 "gram.y" + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } -#line 45419 "gram.c" /* yacc.c:1652 */ +#line 45911 "gram.c" break; - case 2239: -#line 14837 "gram.y" /* yacc.c:1652 */ - { + case 2239: /* indirection_el: '.' '*' */ +#line 14837 "gram.y" + { (yyval.node) = (Node *) makeNode(A_Star); } -#line 45427 "gram.c" /* yacc.c:1652 */ +#line 45919 "gram.c" break; - case 2240: -#line 14841 "gram.y" /* yacc.c:1652 */ - { + case 2240: /* indirection_el: '[' a_expr ']' */ +#line 14841 "gram.y" + { A_Indices *ai = makeNode(A_Indices); ai->is_slice = false; ai->lidx = NULL; ai->uidx = (yyvsp[-1].node); (yyval.node) = (Node *) ai; } -#line 45439 "gram.c" /* yacc.c:1652 */ +#line 45931 "gram.c" break; - case 2241: -#line 14849 "gram.y" /* yacc.c:1652 */ - { + case 2241: /* indirection_el: '[' opt_slice_bound ':' opt_slice_bound ']' */ +#line 14849 "gram.y" + { A_Indices *ai = makeNode(A_Indices); ai->is_slice = true; ai->lidx = (yyvsp[-3].node); ai->uidx = (yyvsp[-1].node); (yyval.node) = (Node *) ai; } -#line 45451 "gram.c" /* yacc.c:1652 */ +#line 45943 "gram.c" break; - case 2242: -#line 14859 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = (yyvsp[0].node); } -#line 45457 "gram.c" /* yacc.c:1652 */ + case 2242: /* opt_slice_bound: a_expr */ +#line 14859 "gram.y" + { (yyval.node) = (yyvsp[0].node); } +#line 45949 "gram.c" break; - case 2243: -#line 14860 "gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 45463 "gram.c" /* yacc.c:1652 */ + case 2243: /* opt_slice_bound: %empty */ +#line 14860 "gram.y" + { (yyval.node) = NULL; } +#line 45955 "gram.c" break; - case 2244: -#line 14864 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 45469 "gram.c" /* yacc.c:1652 */ + case 2244: /* indirection: indirection_el */ +#line 14864 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 45961 "gram.c" break; - case 2245: -#line 14865 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 45475 "gram.c" /* yacc.c:1652 */ + case 2245: /* indirection: indirection indirection_el */ +#line 14865 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 45967 "gram.c" break; - case 2246: -#line 14869 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 45481 "gram.c" /* yacc.c:1652 */ + case 2246: /* opt_indirection: %empty */ +#line 14869 "gram.y" + { (yyval.list) = NIL; } +#line 45973 "gram.c" break; - case 2247: -#line 14870 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 45487 "gram.c" /* yacc.c:1652 */ + case 2247: /* opt_indirection: opt_indirection indirection_el */ +#line 14870 "gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 45979 "gram.c" break; - case 2250: -#line 14884 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[0].list); } -#line 45493 "gram.c" /* yacc.c:1652 */ + case 2250: /* opt_target_list: target_list */ +#line 14884 "gram.y" + { (yyval.list) = (yyvsp[0].list); } +#line 45985 "gram.c" break; - case 2251: -#line 14885 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 45499 "gram.c" /* yacc.c:1652 */ + case 2251: /* opt_target_list: %empty */ +#line 14885 "gram.y" + { (yyval.list) = NIL; } +#line 45991 "gram.c" break; - case 2252: -#line 14889 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].target)); } -#line 45505 "gram.c" /* yacc.c:1652 */ + case 2252: /* target_list: target_el */ +#line 14889 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 45997 "gram.c" break; - case 2253: -#line 14890 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } -#line 45511 "gram.c" /* yacc.c:1652 */ + case 2253: /* target_list: target_list ',' target_el */ +#line 14890 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 46003 "gram.c" break; - case 2254: -#line 14894 "gram.y" /* yacc.c:1652 */ - { + case 2254: /* target_el: a_expr AS ColLabel */ +#line 14894 "gram.y" + { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } -#line 45523 "gram.c" /* yacc.c:1652 */ +#line 46015 "gram.c" break; - case 2255: -#line 14910 "gram.y" /* yacc.c:1652 */ - { + case 2255: /* target_el: a_expr IDENT */ +#line 14910 "gram.y" + { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[-1].node); (yyval.target)->location = (yylsp[-1]); } -#line 45535 "gram.c" /* yacc.c:1652 */ +#line 46027 "gram.c" break; - case 2256: -#line 14918 "gram.y" /* yacc.c:1652 */ - { + case 2256: /* target_el: a_expr */ +#line 14918 "gram.y" + { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[0].node); (yyval.target)->location = (yylsp[0]); } -#line 45547 "gram.c" /* yacc.c:1652 */ +#line 46039 "gram.c" break; - case 2257: -#line 14926 "gram.y" /* yacc.c:1652 */ - { + case 2257: /* target_el: '*' */ +#line 14926 "gram.y" + { ColumnRef *n = makeNode(ColumnRef); n->fields = list_make1(makeNode(A_Star)); n->location = (yylsp[0]); @@ -45559,32 +46051,32 @@ (yyval.target)->val = (Node *)n; (yyval.target)->location = (yylsp[0]); } -#line 45563 "gram.c" /* yacc.c:1652 */ +#line 46055 "gram.c" break; - case 2258: -#line 14947 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].range)); } -#line 45569 "gram.c" /* yacc.c:1652 */ + case 2258: /* qualified_name_list: qualified_name */ +#line 14947 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].range)); } +#line 46061 "gram.c" break; - case 2259: -#line 14948 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } -#line 45575 "gram.c" /* yacc.c:1652 */ + case 2259: /* qualified_name_list: qualified_name_list ',' qualified_name */ +#line 14948 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } +#line 46067 "gram.c" break; - case 2260: -#line 14960 "gram.y" /* yacc.c:1652 */ - { + case 2260: /* qualified_name: ColId */ +#line 14960 "gram.y" + { (yyval.range) = makeRangeVar(NULL, (yyvsp[0].str), (yylsp[0])); } -#line 45583 "gram.c" /* yacc.c:1652 */ +#line 46075 "gram.c" break; - case 2261: -#line 14964 "gram.y" /* yacc.c:1652 */ - { + case 2261: /* qualified_name: ColId indirection */ +#line 14964 "gram.y" + { check_qualified_name((yyvsp[0].list), yyscanner); (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[-1])); switch (list_length((yyvsp[0].list))) @@ -45608,107 +46100,107 @@ break; } } -#line 45612 "gram.c" /* yacc.c:1652 */ +#line 46104 "gram.c" break; - case 2262: -#line 14991 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 45618 "gram.c" /* yacc.c:1652 */ + case 2262: /* name_list: name */ +#line 14991 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 46110 "gram.c" break; - case 2263: -#line 14993 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } -#line 45624 "gram.c" /* yacc.c:1652 */ + case 2263: /* name_list: name_list ',' name */ +#line 14993 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 46116 "gram.c" break; - case 2264: -#line 14997 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45630 "gram.c" /* yacc.c:1652 */ + case 2264: /* name: ColId */ +#line 14997 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46122 "gram.c" break; - case 2265: -#line 15000 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45636 "gram.c" /* yacc.c:1652 */ + case 2265: /* database_name: ColId */ +#line 15000 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46128 "gram.c" break; - case 2266: -#line 15003 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45642 "gram.c" /* yacc.c:1652 */ + case 2266: /* access_method: ColId */ +#line 15003 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46134 "gram.c" break; - case 2267: -#line 15005 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45648 "gram.c" /* yacc.c:1652 */ + case 2267: /* attr_name: ColLabel */ +#line 15005 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46140 "gram.c" break; - case 2268: -#line 15007 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45654 "gram.c" /* yacc.c:1652 */ + case 2268: /* index_name: ColId */ +#line 15007 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46146 "gram.c" break; - case 2269: -#line 15009 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45660 "gram.c" /* yacc.c:1652 */ + case 2269: /* file_name: Sconst */ +#line 15009 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46152 "gram.c" break; - case 2270: -#line 15020 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 45666 "gram.c" /* yacc.c:1652 */ + case 2270: /* func_name: type_function_name */ +#line 15020 "gram.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 46158 "gram.c" break; - case 2271: -#line 15022 "gram.y" /* yacc.c:1652 */ - { + case 2271: /* func_name: ColId indirection */ +#line 15022 "gram.y" + { (yyval.list) = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), yyscanner); } -#line 45675 "gram.c" /* yacc.c:1652 */ +#line 46167 "gram.c" break; - case 2272: -#line 15033 "gram.y" /* yacc.c:1652 */ - { + case 2272: /* AexprConst: Iconst */ +#line 15033 "gram.y" + { (yyval.node) = makeIntConst((yyvsp[0].ival), (yylsp[0])); } -#line 45683 "gram.c" /* yacc.c:1652 */ +#line 46175 "gram.c" break; - case 2273: -#line 15037 "gram.y" /* yacc.c:1652 */ - { + case 2273: /* AexprConst: FCONST */ +#line 15037 "gram.y" + { (yyval.node) = makeFloatConst((yyvsp[0].str), (yylsp[0])); } -#line 45691 "gram.c" /* yacc.c:1652 */ +#line 46183 "gram.c" break; - case 2274: -#line 15041 "gram.y" /* yacc.c:1652 */ - { + case 2274: /* AexprConst: Sconst */ +#line 15041 "gram.y" + { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } -#line 45699 "gram.c" /* yacc.c:1652 */ +#line 46191 "gram.c" break; - case 2275: -#line 15045 "gram.y" /* yacc.c:1652 */ - { + case 2275: /* AexprConst: BCONST */ +#line 15045 "gram.y" + { (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); } -#line 45707 "gram.c" /* yacc.c:1652 */ +#line 46199 "gram.c" break; - case 2276: -#line 15049 "gram.y" /* yacc.c:1652 */ - { + case 2276: /* AexprConst: XCONST */ +#line 15049 "gram.y" + { /* This is a bit constant per SQL99: * Without Feature F511, "BIT data type", * a shall not be a @@ -45716,23 +46208,23 @@ */ (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); } -#line 45720 "gram.c" /* yacc.c:1652 */ +#line 46212 "gram.c" break; - case 2277: -#line 15058 "gram.y" /* yacc.c:1652 */ - { + case 2277: /* AexprConst: func_name Sconst */ +#line 15058 "gram.y" + { /* generic type 'literal' syntax */ TypeName *t = makeTypeNameFromNameList((yyvsp[-1].list)); t->location = (yylsp[-1]); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } -#line 45731 "gram.c" /* yacc.c:1652 */ +#line 46223 "gram.c" break; - case 2278: -#line 15065 "gram.y" /* yacc.c:1652 */ - { + case 2278: /* AexprConst: func_name '(' func_arg_list opt_sort_clause ')' Sconst */ +#line 15065 "gram.y" + { /* generic syntax with a type modifier */ TypeName *t = makeTypeNameFromNameList((yyvsp[-5].list)); ListCell *lc; @@ -45763,95 +46255,95 @@ t->location = (yylsp[-5]); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } -#line 45767 "gram.c" /* yacc.c:1652 */ +#line 46259 "gram.c" break; - case 2279: -#line 15097 "gram.y" /* yacc.c:1652 */ - { + case 2279: /* AexprConst: ConstTypename Sconst */ +#line 15097 "gram.y" + { (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), (yyvsp[-1].typnam)); } -#line 45775 "gram.c" /* yacc.c:1652 */ +#line 46267 "gram.c" break; - case 2280: -#line 15101 "gram.y" /* yacc.c:1652 */ - { + case 2280: /* AexprConst: ConstInterval Sconst opt_interval */ +#line 15101 "gram.y" + { TypeName *t = (yyvsp[-2].typnam); t->typmods = (yyvsp[0].list); (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); } -#line 45785 "gram.c" /* yacc.c:1652 */ +#line 46277 "gram.c" break; - case 2281: -#line 15107 "gram.y" /* yacc.c:1652 */ - { + case 2281: /* AexprConst: ConstInterval '(' Iconst ')' Sconst */ +#line 15107 "gram.y" + { TypeName *t = (yyvsp[-4].typnam); t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } -#line 45796 "gram.c" /* yacc.c:1652 */ +#line 46288 "gram.c" break; - case 2282: -#line 15114 "gram.y" /* yacc.c:1652 */ - { + case 2282: /* AexprConst: TRUE_P */ +#line 15114 "gram.y" + { (yyval.node) = makeBoolAConst(true, (yylsp[0])); } -#line 45804 "gram.c" /* yacc.c:1652 */ +#line 46296 "gram.c" break; - case 2283: -#line 15118 "gram.y" /* yacc.c:1652 */ - { + case 2283: /* AexprConst: FALSE_P */ +#line 15118 "gram.y" + { (yyval.node) = makeBoolAConst(false, (yylsp[0])); } -#line 45812 "gram.c" /* yacc.c:1652 */ +#line 46304 "gram.c" break; - case 2284: -#line 15122 "gram.y" /* yacc.c:1652 */ - { + case 2284: /* AexprConst: NULL_P */ +#line 15122 "gram.y" + { (yyval.node) = makeNullAConst((yylsp[0])); } -#line 45820 "gram.c" /* yacc.c:1652 */ +#line 46312 "gram.c" break; - case 2285: -#line 15127 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[0].ival); } -#line 45826 "gram.c" /* yacc.c:1652 */ + case 2285: /* Iconst: ICONST */ +#line 15127 "gram.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 46318 "gram.c" break; - case 2286: -#line 15128 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45832 "gram.c" /* yacc.c:1652 */ + case 2286: /* Sconst: SCONST */ +#line 15128 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46324 "gram.c" break; - case 2287: -#line 15130 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = (yyvsp[0].ival); } -#line 45838 "gram.c" /* yacc.c:1652 */ + case 2287: /* SignedIconst: Iconst */ +#line 15130 "gram.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 46330 "gram.c" break; - case 2288: -#line 15131 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = + (yyvsp[0].ival); } -#line 45844 "gram.c" /* yacc.c:1652 */ + case 2288: /* SignedIconst: '+' Iconst */ +#line 15131 "gram.y" + { (yyval.ival) = + (yyvsp[0].ival); } +#line 46336 "gram.c" break; - case 2289: -#line 15132 "gram.y" /* yacc.c:1652 */ - { (yyval.ival) = - (yyvsp[0].ival); } -#line 45850 "gram.c" /* yacc.c:1652 */ + case 2289: /* SignedIconst: '-' Iconst */ +#line 15132 "gram.y" + { (yyval.ival) = - (yyvsp[0].ival); } +#line 46342 "gram.c" break; - case 2290: -#line 15137 "gram.y" /* yacc.c:1652 */ - { + case 2290: /* RoleId: RoleSpec */ +#line 15137 "gram.y" + { RoleSpec *spc = (RoleSpec *) (yyvsp[0].rolespec); switch (spc->roletype) { @@ -45881,12 +46373,12 @@ break; } } -#line 45885 "gram.c" /* yacc.c:1652 */ +#line 46377 "gram.c" break; - case 2291: -#line 15170 "gram.y" /* yacc.c:1652 */ - { + case 2291: /* RoleSpec: NonReservedWord */ +#line 15170 "gram.y" + { /* * "public" and "none" are not keywords, but they must * be treated specially here. @@ -45912,129 +46404,130 @@ } (yyval.rolespec) = n; } -#line 45916 "gram.c" /* yacc.c:1652 */ +#line 46408 "gram.c" break; - case 2292: -#line 15197 "gram.y" /* yacc.c:1652 */ - { + case 2292: /* RoleSpec: CURRENT_USER */ +#line 15197 "gram.y" + { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); } -#line 45924 "gram.c" /* yacc.c:1652 */ +#line 46416 "gram.c" break; - case 2293: -#line 15201 "gram.y" /* yacc.c:1652 */ - { + case 2293: /* RoleSpec: SESSION_USER */ +#line 15201 "gram.y" + { (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[0])); } -#line 45932 "gram.c" /* yacc.c:1652 */ +#line 46424 "gram.c" break; - case 2294: -#line 15207 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].rolespec)); } -#line 45938 "gram.c" /* yacc.c:1652 */ + case 2294: /* role_list: RoleSpec */ +#line 15207 "gram.y" + { (yyval.list) = list_make1((yyvsp[0].rolespec)); } +#line 46430 "gram.c" break; - case 2295: -#line 15209 "gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } -#line 45944 "gram.c" /* yacc.c:1652 */ + case 2295: /* role_list: role_list ',' RoleSpec */ +#line 15209 "gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } +#line 46436 "gram.c" break; - case 2296: -#line 15225 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45950 "gram.c" /* yacc.c:1652 */ + case 2296: /* ColId: IDENT */ +#line 15225 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46442 "gram.c" break; - case 2297: -#line 15226 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 45956 "gram.c" /* yacc.c:1652 */ + case 2297: /* ColId: unreserved_keyword */ +#line 15226 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46448 "gram.c" break; - case 2298: -#line 15227 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 45962 "gram.c" /* yacc.c:1652 */ + case 2298: /* ColId: col_name_keyword */ +#line 15227 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46454 "gram.c" break; - case 2299: -#line 15232 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45968 "gram.c" /* yacc.c:1652 */ + case 2299: /* type_function_name: IDENT */ +#line 15232 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46460 "gram.c" break; - case 2300: -#line 15233 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 45974 "gram.c" /* yacc.c:1652 */ + case 2300: /* type_function_name: unreserved_keyword */ +#line 15233 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46466 "gram.c" break; - case 2301: -#line 15234 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 45980 "gram.c" /* yacc.c:1652 */ + case 2301: /* type_function_name: type_func_name_keyword */ +#line 15234 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46472 "gram.c" break; - case 2302: -#line 15239 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 45986 "gram.c" /* yacc.c:1652 */ + case 2302: /* NonReservedWord: IDENT */ +#line 15239 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46478 "gram.c" break; - case 2303: -#line 15240 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 45992 "gram.c" /* yacc.c:1652 */ + case 2303: /* NonReservedWord: unreserved_keyword */ +#line 15240 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46484 "gram.c" break; - case 2304: -#line 15241 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 45998 "gram.c" /* yacc.c:1652 */ + case 2304: /* NonReservedWord: col_name_keyword */ +#line 15241 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46490 "gram.c" break; - case 2305: -#line 15242 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 46004 "gram.c" /* yacc.c:1652 */ + case 2305: /* NonReservedWord: type_func_name_keyword */ +#line 15242 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46496 "gram.c" break; - case 2306: -#line 15248 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 46010 "gram.c" /* yacc.c:1652 */ + case 2306: /* ColLabel: IDENT */ +#line 15248 "gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 46502 "gram.c" break; - case 2307: -#line 15249 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 46016 "gram.c" /* yacc.c:1652 */ + case 2307: /* ColLabel: unreserved_keyword */ +#line 15249 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46508 "gram.c" break; - case 2308: -#line 15250 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 46022 "gram.c" /* yacc.c:1652 */ + case 2308: /* ColLabel: col_name_keyword */ +#line 15250 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46514 "gram.c" break; - case 2309: -#line 15251 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 46028 "gram.c" /* yacc.c:1652 */ + case 2309: /* ColLabel: type_func_name_keyword */ +#line 15251 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46520 "gram.c" break; - case 2310: -#line 15252 "gram.y" /* yacc.c:1652 */ - { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 46034 "gram.c" /* yacc.c:1652 */ + case 2310: /* ColLabel: reserved_keyword */ +#line 15252 "gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 46526 "gram.c" break; -#line 46038 "gram.c" /* yacc.c:1652 */ +#line 46530 "gram.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -46048,11 +46541,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; @@ -46077,50 +46569,15 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (&yylloc, yyscanner, YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (&yylloc, yyscanner, yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } yyerror_range[1] = yylloc; - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -46169,13 +46626,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -46189,7 +46647,7 @@ yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - yystos[yystate], yyvsp, yylsp, yyscanner); + YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, yyscanner); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -46200,13 +46658,11 @@ YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; - /* Using YYLLOC is tempting, but would change the location of - the lookahead. YYLOC is available though. */ - YYLLOC_DEFAULT (yyloc, yyerror_range, 2); - *++yylsp = yyloc; + ++yylsp; + YYLLOC_DEFAULT (*yylsp, yyerror_range, 2); /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -46228,20 +46684,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (&yylloc, yyscanner, YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -46258,20 +46714,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, yylsp, yyscanner); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, yyscanner); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 15759 "gram.y" /* yacc.c:1918 */ + +#line 15759 "gram.y" /* @@ -46679,6 +47133,21 @@ ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WITH TIES cannot be specified without ORDER BY clause"))); + if (limitClause->limitOption == LIMIT_OPTION_WITH_TIES && stmt->lockingClause) + { + ListCell *lc; + + foreach(lc, stmt->lockingClause) + { + LockingClause *lock = lfirst_node(LockingClause, lc); + + if (lock->waitPolicy == LockWaitSkip) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("%s and %s options cannot be used together", + "SKIP LOCKED", "WITH TIES"))); + } + } stmt->limitOption = limitClause->limitOption; } if (withClause) diff -Nru postgresql-13-13.4/src/backend/parser/gram.h postgresql-13-13.7/src/backend/parser/gram.h --- postgresql-13-13.4/src/backend/parser/gram.h 2021-08-09 21:03:30.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/gram.h 2022-05-09 21:29:44.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -31,8 +31,9 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ #ifndef YY_BASE_YY_GRAM_H_INCLUDED # define YY_BASE_YY_GRAM_H_INCLUDED @@ -44,492 +45,496 @@ extern int base_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - IDENT = 258, - UIDENT = 259, - FCONST = 260, - SCONST = 261, - USCONST = 262, - BCONST = 263, - XCONST = 264, - Op = 265, - ICONST = 266, - PARAM = 267, - TYPECAST = 268, - DOT_DOT = 269, - COLON_EQUALS = 270, - EQUALS_GREATER = 271, - LESS_EQUALS = 272, - GREATER_EQUALS = 273, - NOT_EQUALS = 274, - ABORT_P = 275, - ABSOLUTE_P = 276, - ACCESS = 277, - ACTION = 278, - ADD_P = 279, - ADMIN = 280, - AFTER = 281, - AGGREGATE = 282, - ALL = 283, - ALSO = 284, - ALTER = 285, - ALWAYS = 286, - ANALYSE = 287, - ANALYZE = 288, - AND = 289, - ANY = 290, - ARRAY = 291, - AS = 292, - ASC = 293, - ASSERTION = 294, - ASSIGNMENT = 295, - ASYMMETRIC = 296, - AT = 297, - ATTACH = 298, - ATTRIBUTE = 299, - AUTHORIZATION = 300, - BACKWARD = 301, - BEFORE = 302, - BEGIN_P = 303, - BETWEEN = 304, - BIGINT = 305, - BINARY = 306, - BIT = 307, - BOOLEAN_P = 308, - BOTH = 309, - BY = 310, - CACHE = 311, - CALL = 312, - CALLED = 313, - CASCADE = 314, - CASCADED = 315, - CASE = 316, - CAST = 317, - CATALOG_P = 318, - CHAIN = 319, - CHAR_P = 320, - CHARACTER = 321, - CHARACTERISTICS = 322, - CHECK = 323, - CHECKPOINT = 324, - CLASS = 325, - CLOSE = 326, - CLUSTER = 327, - COALESCE = 328, - COLLATE = 329, - COLLATION = 330, - COLUMN = 331, - COLUMNS = 332, - COMMENT = 333, - COMMENTS = 334, - COMMIT = 335, - COMMITTED = 336, - CONCURRENTLY = 337, - CONFIGURATION = 338, - CONFLICT = 339, - CONNECTION = 340, - CONSTRAINT = 341, - CONSTRAINTS = 342, - CONTENT_P = 343, - CONTINUE_P = 344, - CONVERSION_P = 345, - COPY = 346, - COST = 347, - CREATE = 348, - CROSS = 349, - CSV = 350, - CUBE = 351, - CURRENT_P = 352, - CURRENT_CATALOG = 353, - CURRENT_DATE = 354, - CURRENT_ROLE = 355, - CURRENT_SCHEMA = 356, - CURRENT_TIME = 357, - CURRENT_TIMESTAMP = 358, - CURRENT_USER = 359, - CURSOR = 360, - CYCLE = 361, - DATA_P = 362, - DATABASE = 363, - DAY_P = 364, - DEALLOCATE = 365, - DEC = 366, - DECIMAL_P = 367, - DECLARE = 368, - DEFAULT = 369, - DEFAULTS = 370, - DEFERRABLE = 371, - DEFERRED = 372, - DEFINER = 373, - DELETE_P = 374, - DELIMITER = 375, - DELIMITERS = 376, - DEPENDS = 377, - DESC = 378, - DETACH = 379, - DICTIONARY = 380, - DISABLE_P = 381, - DISCARD = 382, - DISTINCT = 383, - DO = 384, - DOCUMENT_P = 385, - DOMAIN_P = 386, - DOUBLE_P = 387, - DROP = 388, - EACH = 389, - ELSE = 390, - ENABLE_P = 391, - ENCODING = 392, - ENCRYPTED = 393, - END_P = 394, - ENUM_P = 395, - ESCAPE = 396, - EVENT = 397, - EXCEPT = 398, - EXCLUDE = 399, - EXCLUDING = 400, - EXCLUSIVE = 401, - EXECUTE = 402, - EXISTS = 403, - EXPLAIN = 404, - EXPRESSION = 405, - EXTENSION = 406, - EXTERNAL = 407, - EXTRACT = 408, - FALSE_P = 409, - FAMILY = 410, - FETCH = 411, - FILTER = 412, - FIRST_P = 413, - FLOAT_P = 414, - FOLLOWING = 415, - FOR = 416, - FORCE = 417, - FOREIGN = 418, - FORWARD = 419, - FREEZE = 420, - FROM = 421, - FULL = 422, - FUNCTION = 423, - FUNCTIONS = 424, - GENERATED = 425, - GLOBAL = 426, - GRANT = 427, - GRANTED = 428, - GREATEST = 429, - GROUP_P = 430, - GROUPING = 431, - GROUPS = 432, - HANDLER = 433, - HAVING = 434, - HEADER_P = 435, - HOLD = 436, - HOUR_P = 437, - IDENTITY_P = 438, - IF_P = 439, - ILIKE = 440, - IMMEDIATE = 441, - IMMUTABLE = 442, - IMPLICIT_P = 443, - IMPORT_P = 444, - IN_P = 445, - INCLUDE = 446, - INCLUDING = 447, - INCREMENT = 448, - INDEX = 449, - INDEXES = 450, - INHERIT = 451, - INHERITS = 452, - INITIALLY = 453, - INLINE_P = 454, - INNER_P = 455, - INOUT = 456, - INPUT_P = 457, - INSENSITIVE = 458, - INSERT = 459, - INSTEAD = 460, - INT_P = 461, - INTEGER = 462, - INTERSECT = 463, - INTERVAL = 464, - INTO = 465, - INVOKER = 466, - IS = 467, - ISNULL = 468, - ISOLATION = 469, - JOIN = 470, - KEY = 471, - LABEL = 472, - LANGUAGE = 473, - LARGE_P = 474, - LAST_P = 475, - LATERAL_P = 476, - LEADING = 477, - LEAKPROOF = 478, - LEAST = 479, - LEFT = 480, - LEVEL = 481, - LIKE = 482, - LIMIT = 483, - LISTEN = 484, - LOAD = 485, - LOCAL = 486, - LOCALTIME = 487, - LOCALTIMESTAMP = 488, - LOCATION = 489, - LOCK_P = 490, - LOCKED = 491, - LOGGED = 492, - MAPPING = 493, - MATCH = 494, - MATERIALIZED = 495, - MAXVALUE = 496, - METHOD = 497, - MINUTE_P = 498, - MINVALUE = 499, - MODE = 500, - MONTH_P = 501, - MOVE = 502, - NAME_P = 503, - NAMES = 504, - NATIONAL = 505, - NATURAL = 506, - NCHAR = 507, - NEW = 508, - NEXT = 509, - NFC = 510, - NFD = 511, - NFKC = 512, - NFKD = 513, - NO = 514, - NONE = 515, - NORMALIZE = 516, - NORMALIZED = 517, - NOT = 518, - NOTHING = 519, - NOTIFY = 520, - NOTNULL = 521, - NOWAIT = 522, - NULL_P = 523, - NULLIF = 524, - NULLS_P = 525, - NUMERIC = 526, - OBJECT_P = 527, - OF = 528, - OFF = 529, - OFFSET = 530, - OIDS = 531, - OLD = 532, - ON = 533, - ONLY = 534, - OPERATOR = 535, - OPTION = 536, - OPTIONS = 537, - OR = 538, - ORDER = 539, - ORDINALITY = 540, - OTHERS = 541, - OUT_P = 542, - OUTER_P = 543, - OVER = 544, - OVERLAPS = 545, - OVERLAY = 546, - OVERRIDING = 547, - OWNED = 548, - OWNER = 549, - PARALLEL = 550, - PARSER = 551, - PARTIAL = 552, - PARTITION = 553, - PASSING = 554, - PASSWORD = 555, - PLACING = 556, - PLANS = 557, - POLICY = 558, - POSITION = 559, - PRECEDING = 560, - PRECISION = 561, - PRESERVE = 562, - PREPARE = 563, - PREPARED = 564, - PRIMARY = 565, - PRIOR = 566, - PRIVILEGES = 567, - PROCEDURAL = 568, - PROCEDURE = 569, - PROCEDURES = 570, - PROGRAM = 571, - PUBLICATION = 572, - QUOTE = 573, - RANGE = 574, - READ = 575, - REAL = 576, - REASSIGN = 577, - RECHECK = 578, - RECURSIVE = 579, - REF = 580, - REFERENCES = 581, - REFERENCING = 582, - REFRESH = 583, - REINDEX = 584, - RELATIVE_P = 585, - RELEASE = 586, - RENAME = 587, - REPEATABLE = 588, - REPLACE = 589, - REPLICA = 590, - RESET = 591, - RESTART = 592, - RESTRICT = 593, - RETURNING = 594, - RETURNS = 595, - REVOKE = 596, - RIGHT = 597, - ROLE = 598, - ROLLBACK = 599, - ROLLUP = 600, - ROUTINE = 601, - ROUTINES = 602, - ROW = 603, - ROWS = 604, - RULE = 605, - SAVEPOINT = 606, - SCHEMA = 607, - SCHEMAS = 608, - SCROLL = 609, - SEARCH = 610, - SECOND_P = 611, - SECURITY = 612, - SELECT = 613, - SEQUENCE = 614, - SEQUENCES = 615, - SERIALIZABLE = 616, - SERVER = 617, - SESSION = 618, - SESSION_USER = 619, - SET = 620, - SETS = 621, - SETOF = 622, - SHARE = 623, - SHOW = 624, - SIMILAR = 625, - SIMPLE = 626, - SKIP = 627, - SMALLINT = 628, - SNAPSHOT = 629, - SOME = 630, - SQL_P = 631, - STABLE = 632, - STANDALONE_P = 633, - START = 634, - STATEMENT = 635, - STATISTICS = 636, - STDIN = 637, - STDOUT = 638, - STORAGE = 639, - STORED = 640, - STRICT_P = 641, - STRIP_P = 642, - SUBSCRIPTION = 643, - SUBSTRING = 644, - SUPPORT = 645, - SYMMETRIC = 646, - SYSID = 647, - SYSTEM_P = 648, - TABLE = 649, - TABLES = 650, - TABLESAMPLE = 651, - TABLESPACE = 652, - TEMP = 653, - TEMPLATE = 654, - TEMPORARY = 655, - TEXT_P = 656, - THEN = 657, - TIES = 658, - TIME = 659, - TIMESTAMP = 660, - TO = 661, - TRAILING = 662, - TRANSACTION = 663, - TRANSFORM = 664, - TREAT = 665, - TRIGGER = 666, - TRIM = 667, - TRUE_P = 668, - TRUNCATE = 669, - TRUSTED = 670, - TYPE_P = 671, - TYPES_P = 672, - UESCAPE = 673, - UNBOUNDED = 674, - UNCOMMITTED = 675, - UNENCRYPTED = 676, - UNION = 677, - UNIQUE = 678, - UNKNOWN = 679, - UNLISTEN = 680, - UNLOGGED = 681, - UNTIL = 682, - UPDATE = 683, - USER = 684, - USING = 685, - VACUUM = 686, - VALID = 687, - VALIDATE = 688, - VALIDATOR = 689, - VALUE_P = 690, - VALUES = 691, - VARCHAR = 692, - VARIADIC = 693, - VARYING = 694, - VERBOSE = 695, - VERSION_P = 696, - VIEW = 697, - VIEWS = 698, - VOLATILE = 699, - WHEN = 700, - WHERE = 701, - WHITESPACE_P = 702, - WINDOW = 703, - WITH = 704, - WITHIN = 705, - WITHOUT = 706, - WORK = 707, - WRAPPER = 708, - WRITE = 709, - XML_P = 710, - XMLATTRIBUTES = 711, - XMLCONCAT = 712, - XMLELEMENT = 713, - XMLEXISTS = 714, - XMLFOREST = 715, - XMLNAMESPACES = 716, - XMLPARSE = 717, - XMLPI = 718, - XMLROOT = 719, - XMLSERIALIZE = 720, - XMLTABLE = 721, - YEAR_P = 722, - YES_P = 723, - ZONE = 724, - NOT_LA = 725, - NULLS_LA = 726, - WITH_LA = 727, - POSTFIXOP = 728, - UMINUS = 729 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + IDENT = 258, /* IDENT */ + UIDENT = 259, /* UIDENT */ + FCONST = 260, /* FCONST */ + SCONST = 261, /* SCONST */ + USCONST = 262, /* USCONST */ + BCONST = 263, /* BCONST */ + XCONST = 264, /* XCONST */ + Op = 265, /* Op */ + ICONST = 266, /* ICONST */ + PARAM = 267, /* PARAM */ + TYPECAST = 268, /* TYPECAST */ + DOT_DOT = 269, /* DOT_DOT */ + COLON_EQUALS = 270, /* COLON_EQUALS */ + EQUALS_GREATER = 271, /* EQUALS_GREATER */ + LESS_EQUALS = 272, /* LESS_EQUALS */ + GREATER_EQUALS = 273, /* GREATER_EQUALS */ + NOT_EQUALS = 274, /* NOT_EQUALS */ + ABORT_P = 275, /* ABORT_P */ + ABSOLUTE_P = 276, /* ABSOLUTE_P */ + ACCESS = 277, /* ACCESS */ + ACTION = 278, /* ACTION */ + ADD_P = 279, /* ADD_P */ + ADMIN = 280, /* ADMIN */ + AFTER = 281, /* AFTER */ + AGGREGATE = 282, /* AGGREGATE */ + ALL = 283, /* ALL */ + ALSO = 284, /* ALSO */ + ALTER = 285, /* ALTER */ + ALWAYS = 286, /* ALWAYS */ + ANALYSE = 287, /* ANALYSE */ + ANALYZE = 288, /* ANALYZE */ + AND = 289, /* AND */ + ANY = 290, /* ANY */ + ARRAY = 291, /* ARRAY */ + AS = 292, /* AS */ + ASC = 293, /* ASC */ + ASSERTION = 294, /* ASSERTION */ + ASSIGNMENT = 295, /* ASSIGNMENT */ + ASYMMETRIC = 296, /* ASYMMETRIC */ + AT = 297, /* AT */ + ATTACH = 298, /* ATTACH */ + ATTRIBUTE = 299, /* ATTRIBUTE */ + AUTHORIZATION = 300, /* AUTHORIZATION */ + BACKWARD = 301, /* BACKWARD */ + BEFORE = 302, /* BEFORE */ + BEGIN_P = 303, /* BEGIN_P */ + BETWEEN = 304, /* BETWEEN */ + BIGINT = 305, /* BIGINT */ + BINARY = 306, /* BINARY */ + BIT = 307, /* BIT */ + BOOLEAN_P = 308, /* BOOLEAN_P */ + BOTH = 309, /* BOTH */ + BY = 310, /* BY */ + CACHE = 311, /* CACHE */ + CALL = 312, /* CALL */ + CALLED = 313, /* CALLED */ + CASCADE = 314, /* CASCADE */ + CASCADED = 315, /* CASCADED */ + CASE = 316, /* CASE */ + CAST = 317, /* CAST */ + CATALOG_P = 318, /* CATALOG_P */ + CHAIN = 319, /* CHAIN */ + CHAR_P = 320, /* CHAR_P */ + CHARACTER = 321, /* CHARACTER */ + CHARACTERISTICS = 322, /* CHARACTERISTICS */ + CHECK = 323, /* CHECK */ + CHECKPOINT = 324, /* CHECKPOINT */ + CLASS = 325, /* CLASS */ + CLOSE = 326, /* CLOSE */ + CLUSTER = 327, /* CLUSTER */ + COALESCE = 328, /* COALESCE */ + COLLATE = 329, /* COLLATE */ + COLLATION = 330, /* COLLATION */ + COLUMN = 331, /* COLUMN */ + COLUMNS = 332, /* COLUMNS */ + COMMENT = 333, /* COMMENT */ + COMMENTS = 334, /* COMMENTS */ + COMMIT = 335, /* COMMIT */ + COMMITTED = 336, /* COMMITTED */ + CONCURRENTLY = 337, /* CONCURRENTLY */ + CONFIGURATION = 338, /* CONFIGURATION */ + CONFLICT = 339, /* CONFLICT */ + CONNECTION = 340, /* CONNECTION */ + CONSTRAINT = 341, /* CONSTRAINT */ + CONSTRAINTS = 342, /* CONSTRAINTS */ + CONTENT_P = 343, /* CONTENT_P */ + CONTINUE_P = 344, /* CONTINUE_P */ + CONVERSION_P = 345, /* CONVERSION_P */ + COPY = 346, /* COPY */ + COST = 347, /* COST */ + CREATE = 348, /* CREATE */ + CROSS = 349, /* CROSS */ + CSV = 350, /* CSV */ + CUBE = 351, /* CUBE */ + CURRENT_P = 352, /* CURRENT_P */ + CURRENT_CATALOG = 353, /* CURRENT_CATALOG */ + CURRENT_DATE = 354, /* CURRENT_DATE */ + CURRENT_ROLE = 355, /* CURRENT_ROLE */ + CURRENT_SCHEMA = 356, /* CURRENT_SCHEMA */ + CURRENT_TIME = 357, /* CURRENT_TIME */ + CURRENT_TIMESTAMP = 358, /* CURRENT_TIMESTAMP */ + CURRENT_USER = 359, /* CURRENT_USER */ + CURSOR = 360, /* CURSOR */ + CYCLE = 361, /* CYCLE */ + DATA_P = 362, /* DATA_P */ + DATABASE = 363, /* DATABASE */ + DAY_P = 364, /* DAY_P */ + DEALLOCATE = 365, /* DEALLOCATE */ + DEC = 366, /* DEC */ + DECIMAL_P = 367, /* DECIMAL_P */ + DECLARE = 368, /* DECLARE */ + DEFAULT = 369, /* DEFAULT */ + DEFAULTS = 370, /* DEFAULTS */ + DEFERRABLE = 371, /* DEFERRABLE */ + DEFERRED = 372, /* DEFERRED */ + DEFINER = 373, /* DEFINER */ + DELETE_P = 374, /* DELETE_P */ + DELIMITER = 375, /* DELIMITER */ + DELIMITERS = 376, /* DELIMITERS */ + DEPENDS = 377, /* DEPENDS */ + DESC = 378, /* DESC */ + DETACH = 379, /* DETACH */ + DICTIONARY = 380, /* DICTIONARY */ + DISABLE_P = 381, /* DISABLE_P */ + DISCARD = 382, /* DISCARD */ + DISTINCT = 383, /* DISTINCT */ + DO = 384, /* DO */ + DOCUMENT_P = 385, /* DOCUMENT_P */ + DOMAIN_P = 386, /* DOMAIN_P */ + DOUBLE_P = 387, /* DOUBLE_P */ + DROP = 388, /* DROP */ + EACH = 389, /* EACH */ + ELSE = 390, /* ELSE */ + ENABLE_P = 391, /* ENABLE_P */ + ENCODING = 392, /* ENCODING */ + ENCRYPTED = 393, /* ENCRYPTED */ + END_P = 394, /* END_P */ + ENUM_P = 395, /* ENUM_P */ + ESCAPE = 396, /* ESCAPE */ + EVENT = 397, /* EVENT */ + EXCEPT = 398, /* EXCEPT */ + EXCLUDE = 399, /* EXCLUDE */ + EXCLUDING = 400, /* EXCLUDING */ + EXCLUSIVE = 401, /* EXCLUSIVE */ + EXECUTE = 402, /* EXECUTE */ + EXISTS = 403, /* EXISTS */ + EXPLAIN = 404, /* EXPLAIN */ + EXPRESSION = 405, /* EXPRESSION */ + EXTENSION = 406, /* EXTENSION */ + EXTERNAL = 407, /* EXTERNAL */ + EXTRACT = 408, /* EXTRACT */ + FALSE_P = 409, /* FALSE_P */ + FAMILY = 410, /* FAMILY */ + FETCH = 411, /* FETCH */ + FILTER = 412, /* FILTER */ + FIRST_P = 413, /* FIRST_P */ + FLOAT_P = 414, /* FLOAT_P */ + FOLLOWING = 415, /* FOLLOWING */ + FOR = 416, /* FOR */ + FORCE = 417, /* FORCE */ + FOREIGN = 418, /* FOREIGN */ + FORWARD = 419, /* FORWARD */ + FREEZE = 420, /* FREEZE */ + FROM = 421, /* FROM */ + FULL = 422, /* FULL */ + FUNCTION = 423, /* FUNCTION */ + FUNCTIONS = 424, /* FUNCTIONS */ + GENERATED = 425, /* GENERATED */ + GLOBAL = 426, /* GLOBAL */ + GRANT = 427, /* GRANT */ + GRANTED = 428, /* GRANTED */ + GREATEST = 429, /* GREATEST */ + GROUP_P = 430, /* GROUP_P */ + GROUPING = 431, /* GROUPING */ + GROUPS = 432, /* GROUPS */ + HANDLER = 433, /* HANDLER */ + HAVING = 434, /* HAVING */ + HEADER_P = 435, /* HEADER_P */ + HOLD = 436, /* HOLD */ + HOUR_P = 437, /* HOUR_P */ + IDENTITY_P = 438, /* IDENTITY_P */ + IF_P = 439, /* IF_P */ + ILIKE = 440, /* ILIKE */ + IMMEDIATE = 441, /* IMMEDIATE */ + IMMUTABLE = 442, /* IMMUTABLE */ + IMPLICIT_P = 443, /* IMPLICIT_P */ + IMPORT_P = 444, /* IMPORT_P */ + IN_P = 445, /* IN_P */ + INCLUDE = 446, /* INCLUDE */ + INCLUDING = 447, /* INCLUDING */ + INCREMENT = 448, /* INCREMENT */ + INDEX = 449, /* INDEX */ + INDEXES = 450, /* INDEXES */ + INHERIT = 451, /* INHERIT */ + INHERITS = 452, /* INHERITS */ + INITIALLY = 453, /* INITIALLY */ + INLINE_P = 454, /* INLINE_P */ + INNER_P = 455, /* INNER_P */ + INOUT = 456, /* INOUT */ + INPUT_P = 457, /* INPUT_P */ + INSENSITIVE = 458, /* INSENSITIVE */ + INSERT = 459, /* INSERT */ + INSTEAD = 460, /* INSTEAD */ + INT_P = 461, /* INT_P */ + INTEGER = 462, /* INTEGER */ + INTERSECT = 463, /* INTERSECT */ + INTERVAL = 464, /* INTERVAL */ + INTO = 465, /* INTO */ + INVOKER = 466, /* INVOKER */ + IS = 467, /* IS */ + ISNULL = 468, /* ISNULL */ + ISOLATION = 469, /* ISOLATION */ + JOIN = 470, /* JOIN */ + KEY = 471, /* KEY */ + LABEL = 472, /* LABEL */ + LANGUAGE = 473, /* LANGUAGE */ + LARGE_P = 474, /* LARGE_P */ + LAST_P = 475, /* LAST_P */ + LATERAL_P = 476, /* LATERAL_P */ + LEADING = 477, /* LEADING */ + LEAKPROOF = 478, /* LEAKPROOF */ + LEAST = 479, /* LEAST */ + LEFT = 480, /* LEFT */ + LEVEL = 481, /* LEVEL */ + LIKE = 482, /* LIKE */ + LIMIT = 483, /* LIMIT */ + LISTEN = 484, /* LISTEN */ + LOAD = 485, /* LOAD */ + LOCAL = 486, /* LOCAL */ + LOCALTIME = 487, /* LOCALTIME */ + LOCALTIMESTAMP = 488, /* LOCALTIMESTAMP */ + LOCATION = 489, /* LOCATION */ + LOCK_P = 490, /* LOCK_P */ + LOCKED = 491, /* LOCKED */ + LOGGED = 492, /* LOGGED */ + MAPPING = 493, /* MAPPING */ + MATCH = 494, /* MATCH */ + MATERIALIZED = 495, /* MATERIALIZED */ + MAXVALUE = 496, /* MAXVALUE */ + METHOD = 497, /* METHOD */ + MINUTE_P = 498, /* MINUTE_P */ + MINVALUE = 499, /* MINVALUE */ + MODE = 500, /* MODE */ + MONTH_P = 501, /* MONTH_P */ + MOVE = 502, /* MOVE */ + NAME_P = 503, /* NAME_P */ + NAMES = 504, /* NAMES */ + NATIONAL = 505, /* NATIONAL */ + NATURAL = 506, /* NATURAL */ + NCHAR = 507, /* NCHAR */ + NEW = 508, /* NEW */ + NEXT = 509, /* NEXT */ + NFC = 510, /* NFC */ + NFD = 511, /* NFD */ + NFKC = 512, /* NFKC */ + NFKD = 513, /* NFKD */ + NO = 514, /* NO */ + NONE = 515, /* NONE */ + NORMALIZE = 516, /* NORMALIZE */ + NORMALIZED = 517, /* NORMALIZED */ + NOT = 518, /* NOT */ + NOTHING = 519, /* NOTHING */ + NOTIFY = 520, /* NOTIFY */ + NOTNULL = 521, /* NOTNULL */ + NOWAIT = 522, /* NOWAIT */ + NULL_P = 523, /* NULL_P */ + NULLIF = 524, /* NULLIF */ + NULLS_P = 525, /* NULLS_P */ + NUMERIC = 526, /* NUMERIC */ + OBJECT_P = 527, /* OBJECT_P */ + OF = 528, /* OF */ + OFF = 529, /* OFF */ + OFFSET = 530, /* OFFSET */ + OIDS = 531, /* OIDS */ + OLD = 532, /* OLD */ + ON = 533, /* ON */ + ONLY = 534, /* ONLY */ + OPERATOR = 535, /* OPERATOR */ + OPTION = 536, /* OPTION */ + OPTIONS = 537, /* OPTIONS */ + OR = 538, /* OR */ + ORDER = 539, /* ORDER */ + ORDINALITY = 540, /* ORDINALITY */ + OTHERS = 541, /* OTHERS */ + OUT_P = 542, /* OUT_P */ + OUTER_P = 543, /* OUTER_P */ + OVER = 544, /* OVER */ + OVERLAPS = 545, /* OVERLAPS */ + OVERLAY = 546, /* OVERLAY */ + OVERRIDING = 547, /* OVERRIDING */ + OWNED = 548, /* OWNED */ + OWNER = 549, /* OWNER */ + PARALLEL = 550, /* PARALLEL */ + PARSER = 551, /* PARSER */ + PARTIAL = 552, /* PARTIAL */ + PARTITION = 553, /* PARTITION */ + PASSING = 554, /* PASSING */ + PASSWORD = 555, /* PASSWORD */ + PLACING = 556, /* PLACING */ + PLANS = 557, /* PLANS */ + POLICY = 558, /* POLICY */ + POSITION = 559, /* POSITION */ + PRECEDING = 560, /* PRECEDING */ + PRECISION = 561, /* PRECISION */ + PRESERVE = 562, /* PRESERVE */ + PREPARE = 563, /* PREPARE */ + PREPARED = 564, /* PREPARED */ + PRIMARY = 565, /* PRIMARY */ + PRIOR = 566, /* PRIOR */ + PRIVILEGES = 567, /* PRIVILEGES */ + PROCEDURAL = 568, /* PROCEDURAL */ + PROCEDURE = 569, /* PROCEDURE */ + PROCEDURES = 570, /* PROCEDURES */ + PROGRAM = 571, /* PROGRAM */ + PUBLICATION = 572, /* PUBLICATION */ + QUOTE = 573, /* QUOTE */ + RANGE = 574, /* RANGE */ + READ = 575, /* READ */ + REAL = 576, /* REAL */ + REASSIGN = 577, /* REASSIGN */ + RECHECK = 578, /* RECHECK */ + RECURSIVE = 579, /* RECURSIVE */ + REF = 580, /* REF */ + REFERENCES = 581, /* REFERENCES */ + REFERENCING = 582, /* REFERENCING */ + REFRESH = 583, /* REFRESH */ + REINDEX = 584, /* REINDEX */ + RELATIVE_P = 585, /* RELATIVE_P */ + RELEASE = 586, /* RELEASE */ + RENAME = 587, /* RENAME */ + REPEATABLE = 588, /* REPEATABLE */ + REPLACE = 589, /* REPLACE */ + REPLICA = 590, /* REPLICA */ + RESET = 591, /* RESET */ + RESTART = 592, /* RESTART */ + RESTRICT = 593, /* RESTRICT */ + RETURNING = 594, /* RETURNING */ + RETURNS = 595, /* RETURNS */ + REVOKE = 596, /* REVOKE */ + RIGHT = 597, /* RIGHT */ + ROLE = 598, /* ROLE */ + ROLLBACK = 599, /* ROLLBACK */ + ROLLUP = 600, /* ROLLUP */ + ROUTINE = 601, /* ROUTINE */ + ROUTINES = 602, /* ROUTINES */ + ROW = 603, /* ROW */ + ROWS = 604, /* ROWS */ + RULE = 605, /* RULE */ + SAVEPOINT = 606, /* SAVEPOINT */ + SCHEMA = 607, /* SCHEMA */ + SCHEMAS = 608, /* SCHEMAS */ + SCROLL = 609, /* SCROLL */ + SEARCH = 610, /* SEARCH */ + SECOND_P = 611, /* SECOND_P */ + SECURITY = 612, /* SECURITY */ + SELECT = 613, /* SELECT */ + SEQUENCE = 614, /* SEQUENCE */ + SEQUENCES = 615, /* SEQUENCES */ + SERIALIZABLE = 616, /* SERIALIZABLE */ + SERVER = 617, /* SERVER */ + SESSION = 618, /* SESSION */ + SESSION_USER = 619, /* SESSION_USER */ + SET = 620, /* SET */ + SETS = 621, /* SETS */ + SETOF = 622, /* SETOF */ + SHARE = 623, /* SHARE */ + SHOW = 624, /* SHOW */ + SIMILAR = 625, /* SIMILAR */ + SIMPLE = 626, /* SIMPLE */ + SKIP = 627, /* SKIP */ + SMALLINT = 628, /* SMALLINT */ + SNAPSHOT = 629, /* SNAPSHOT */ + SOME = 630, /* SOME */ + SQL_P = 631, /* SQL_P */ + STABLE = 632, /* STABLE */ + STANDALONE_P = 633, /* STANDALONE_P */ + START = 634, /* START */ + STATEMENT = 635, /* STATEMENT */ + STATISTICS = 636, /* STATISTICS */ + STDIN = 637, /* STDIN */ + STDOUT = 638, /* STDOUT */ + STORAGE = 639, /* STORAGE */ + STORED = 640, /* STORED */ + STRICT_P = 641, /* STRICT_P */ + STRIP_P = 642, /* STRIP_P */ + SUBSCRIPTION = 643, /* SUBSCRIPTION */ + SUBSTRING = 644, /* SUBSTRING */ + SUPPORT = 645, /* SUPPORT */ + SYMMETRIC = 646, /* SYMMETRIC */ + SYSID = 647, /* SYSID */ + SYSTEM_P = 648, /* SYSTEM_P */ + TABLE = 649, /* TABLE */ + TABLES = 650, /* TABLES */ + TABLESAMPLE = 651, /* TABLESAMPLE */ + TABLESPACE = 652, /* TABLESPACE */ + TEMP = 653, /* TEMP */ + TEMPLATE = 654, /* TEMPLATE */ + TEMPORARY = 655, /* TEMPORARY */ + TEXT_P = 656, /* TEXT_P */ + THEN = 657, /* THEN */ + TIES = 658, /* TIES */ + TIME = 659, /* TIME */ + TIMESTAMP = 660, /* TIMESTAMP */ + TO = 661, /* TO */ + TRAILING = 662, /* TRAILING */ + TRANSACTION = 663, /* TRANSACTION */ + TRANSFORM = 664, /* TRANSFORM */ + TREAT = 665, /* TREAT */ + TRIGGER = 666, /* TRIGGER */ + TRIM = 667, /* TRIM */ + TRUE_P = 668, /* TRUE_P */ + TRUNCATE = 669, /* TRUNCATE */ + TRUSTED = 670, /* TRUSTED */ + TYPE_P = 671, /* TYPE_P */ + TYPES_P = 672, /* TYPES_P */ + UESCAPE = 673, /* UESCAPE */ + UNBOUNDED = 674, /* UNBOUNDED */ + UNCOMMITTED = 675, /* UNCOMMITTED */ + UNENCRYPTED = 676, /* UNENCRYPTED */ + UNION = 677, /* UNION */ + UNIQUE = 678, /* UNIQUE */ + UNKNOWN = 679, /* UNKNOWN */ + UNLISTEN = 680, /* UNLISTEN */ + UNLOGGED = 681, /* UNLOGGED */ + UNTIL = 682, /* UNTIL */ + UPDATE = 683, /* UPDATE */ + USER = 684, /* USER */ + USING = 685, /* USING */ + VACUUM = 686, /* VACUUM */ + VALID = 687, /* VALID */ + VALIDATE = 688, /* VALIDATE */ + VALIDATOR = 689, /* VALIDATOR */ + VALUE_P = 690, /* VALUE_P */ + VALUES = 691, /* VALUES */ + VARCHAR = 692, /* VARCHAR */ + VARIADIC = 693, /* VARIADIC */ + VARYING = 694, /* VARYING */ + VERBOSE = 695, /* VERBOSE */ + VERSION_P = 696, /* VERSION_P */ + VIEW = 697, /* VIEW */ + VIEWS = 698, /* VIEWS */ + VOLATILE = 699, /* VOLATILE */ + WHEN = 700, /* WHEN */ + WHERE = 701, /* WHERE */ + WHITESPACE_P = 702, /* WHITESPACE_P */ + WINDOW = 703, /* WINDOW */ + WITH = 704, /* WITH */ + WITHIN = 705, /* WITHIN */ + WITHOUT = 706, /* WITHOUT */ + WORK = 707, /* WORK */ + WRAPPER = 708, /* WRAPPER */ + WRITE = 709, /* WRITE */ + XML_P = 710, /* XML_P */ + XMLATTRIBUTES = 711, /* XMLATTRIBUTES */ + XMLCONCAT = 712, /* XMLCONCAT */ + XMLELEMENT = 713, /* XMLELEMENT */ + XMLEXISTS = 714, /* XMLEXISTS */ + XMLFOREST = 715, /* XMLFOREST */ + XMLNAMESPACES = 716, /* XMLNAMESPACES */ + XMLPARSE = 717, /* XMLPARSE */ + XMLPI = 718, /* XMLPI */ + XMLROOT = 719, /* XMLROOT */ + XMLSERIALIZE = 720, /* XMLSERIALIZE */ + XMLTABLE = 721, /* XMLTABLE */ + YEAR_P = 722, /* YEAR_P */ + YES_P = 723, /* YES_P */ + ZONE = 724, /* ZONE */ + NOT_LA = 725, /* NOT_LA */ + NULLS_LA = 726, /* NULLS_LA */ + WITH_LA = 727, /* WITH_LA */ + POSTFIXOP = 728, /* POSTFIXOP */ + UMINUS = 729 /* UMINUS */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 211 "gram.y" /* yacc.c:1921 */ +#line 211 "gram.y" core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ @@ -574,9 +579,9 @@ RoleSpec *rolespec; struct SelectLimit *selectlimit; -#line 578 "gram.h" /* yacc.c:1921 */ -}; +#line 583 "gram.h" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 diff -Nru postgresql-13-13.4/src/backend/parser/gram.y postgresql-13-13.7/src/backend/parser/gram.y --- postgresql-13-13.4/src/backend/parser/gram.y 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/gram.y 2022-05-09 21:16:30.000000000 +0000 @@ -16163,6 +16163,21 @@ ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WITH TIES cannot be specified without ORDER BY clause"))); + if (limitClause->limitOption == LIMIT_OPTION_WITH_TIES && stmt->lockingClause) + { + ListCell *lc; + + foreach(lc, stmt->lockingClause) + { + LockingClause *lock = lfirst_node(LockingClause, lc); + + if (lock->waitPolicy == LockWaitSkip) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("%s and %s options cannot be used together", + "SKIP LOCKED", "WITH TIES"))); + } + } stmt->limitOption = limitClause->limitOption; } if (withClause) diff -Nru postgresql-13-13.4/src/backend/parser/parse_agg.c postgresql-13-13.7/src/backend/parser/parse_agg.c --- postgresql-13-13.4/src/backend/parser/parse_agg.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/parse_agg.c 2022-05-09 21:16:30.000000000 +0000 @@ -616,13 +616,8 @@ context.min_agglevel = -1; context.sublevels_up = 0; - (void) expression_tree_walker((Node *) args, - check_agg_arguments_walker, - (void *) &context); - - (void) expression_tree_walker((Node *) filter, - check_agg_arguments_walker, - (void *) &context); + (void) check_agg_arguments_walker((Node *) args, &context); + (void) check_agg_arguments_walker((Node *) filter, &context); /* * If we found no vars nor aggs at all, it's a level-zero aggregate; @@ -669,9 +664,7 @@ { context.min_varlevel = -1; context.min_agglevel = -1; - (void) expression_tree_walker((Node *) directargs, - check_agg_arguments_walker, - (void *) &context); + (void) check_agg_arguments_walker((Node *) directargs, &context); if (context.min_varlevel >= 0 && context.min_varlevel < agglevel) ereport(ERROR, (errcode(ERRCODE_GROUPING_ERROR), diff -Nru postgresql-13-13.4/src/backend/parser/parse_coerce.c postgresql-13-13.7/src/backend/parser/parse_coerce.c --- postgresql-13-13.4/src/backend/parser/parse_coerce.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/parse_coerce.c 2022-05-09 21:16:30.000000000 +0000 @@ -755,25 +755,41 @@ CoercionPathType pathtype; Oid funcId; - /* - * A negative typmod is assumed to mean that no coercion is wanted. Also, - * skip coercion if already done. - */ - if (targetTypMod < 0 || targetTypMod == exprTypmod(node)) + /* Skip coercion if already done */ + if (targetTypMod == exprTypmod(node)) return node; - pathtype = find_typmod_coercion_function(targetTypeId, &funcId); + /* Suppress display of nested coercion steps */ + if (hideInputCoercion) + hide_coercion_node(node); + + /* + * A negative typmod means that no actual coercion is needed, but we still + * want a RelabelType to ensure that the expression exposes the intended + * typmod. + */ + if (targetTypMod < 0) + pathtype = COERCION_PATH_NONE; + else + pathtype = find_typmod_coercion_function(targetTypeId, &funcId); if (pathtype != COERCION_PATH_NONE) { - /* Suppress display of nested coercion steps */ - if (hideInputCoercion) - hide_coercion_node(node); - node = build_coercion_expression(node, pathtype, funcId, targetTypeId, targetTypMod, ccontext, cformat, location); } + else + { + /* + * We don't need to perform any actual coercion step, but we should + * apply a RelabelType to ensure that the expression exposes the + * intended typmod. + */ + node = applyRelabelType(node, targetTypeId, targetTypMod, + exprCollation(node), + cformat, location, false); + } return node; } @@ -1279,6 +1295,10 @@ * rather than throwing an error on failure. * 'which_expr': if not NULL, receives a pointer to the particular input * expression from which the result type was taken. + * + * Caution: "failure" just means that there were inputs of different type + * categories. It is not guaranteed that all the inputs are coercible to the + * selected type; caller must check that (see verify_common_type). */ Oid select_common_type(ParseState *pstate, List *exprs, const char *context, @@ -1407,6 +1427,10 @@ * earlier entries in the array have some preference over later ones. * On failure, return InvalidOid if noerror is true, else throw an error. * + * Caution: "failure" just means that there were inputs of different type + * categories. It is not guaranteed that all the inputs are coercible to the + * selected type; caller must check that (see verify_common_type_from_oids). + * * Note: neither caller will pass any UNKNOWNOID entries, so the tests * for that in this function are dead code. However, they don't cost much, * and it seems better to keep this logic as close to select_common_type() @@ -1530,6 +1554,48 @@ } /* + * verify_common_type() + * Verify that all input types can be coerced to a proposed common type. + * Return true if so, false if not all coercions are possible. + * + * Most callers of select_common_type() don't need to do this explicitly + * because the checks will happen while trying to convert input expressions + * to the right type, e.g. in coerce_to_common_type(). However, if a separate + * check step is needed to validate the applicability of the common type, call + * this. + */ +bool +verify_common_type(Oid common_type, List *exprs) +{ + ListCell *lc; + + foreach(lc, exprs) + { + Node *nexpr = (Node *) lfirst(lc); + Oid ntype = exprType(nexpr); + + if (!can_coerce_type(1, &ntype, &common_type, COERCION_IMPLICIT)) + return false; + } + return true; +} + +/* + * verify_common_type_from_oids() + * As above, but work from an array of type OIDs. + */ +static bool +verify_common_type_from_oids(Oid common_type, int nargs, const Oid *typeids) +{ + for (int i = 0; i < nargs; i++) + { + if (!can_coerce_type(1, &typeids[i], &common_type, COERCION_IMPLICIT)) + return false; + } + return true; +} + +/* * check_generic_type_consistency() * Are the actual arguments potentially compatible with a * polymorphic function? @@ -1775,7 +1841,13 @@ true); if (!OidIsValid(anycompatible_typeid)) - return false; /* there's no common supertype */ + return false; /* there's definitely no common supertype */ + + /* We have to verify that the selected type actually works */ + if (!verify_common_type_from_oids(anycompatible_typeid, + n_anycompatible_args, + anycompatible_actual_types)) + return false; if (have_anycompatible_nonarray) { @@ -2206,6 +2278,14 @@ anycompatible_actual_types, false); + /* We have to verify that the selected type actually works */ + if (!verify_common_type_from_oids(anycompatible_typeid, + n_anycompatible_args, + anycompatible_actual_types)) + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("arguments of anycompatible family cannot be cast to a common type"))); + if (have_anycompatible_array) { anycompatible_array_typeid = get_array_type(anycompatible_typeid); diff -Nru postgresql-13-13.4/src/backend/parser/parse_expr.c postgresql-13-13.7/src/backend/parser/parse_expr.c --- postgresql-13-13.4/src/backend/parser/parse_expr.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/parse_expr.c 2022-05-09 21:16:30.000000000 +0000 @@ -1283,6 +1283,11 @@ allexprs = list_concat(list_make1(lexpr), rnonvars); scalar_type = select_common_type(pstate, allexprs, NULL, NULL); + /* We have to verify that the selected type actually works */ + if (OidIsValid(scalar_type) && + !verify_common_type(scalar_type, allexprs)) + scalar_type = InvalidOid; + /* * Do we have an array type to use? Aside from the case where there * isn't one, we don't risk using ScalarArrayOpExpr when the common diff -Nru postgresql-13-13.4/src/backend/parser/parse_func.c postgresql-13-13.7/src/backend/parser/parse_func.c --- postgresql-13-13.4/src/backend/parser/parse_func.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/parse_func.c 2022-05-09 21:16:30.000000000 +0000 @@ -1679,7 +1679,7 @@ ndelete = list_length(defaults) - best_candidate->ndargs; if (ndelete > 0) - defaults = list_copy_tail(defaults, ndelete); + defaults = list_delete_first_n(defaults, ndelete); *argdefaults = defaults; } } diff -Nru postgresql-13-13.4/src/backend/parser/parse_target.c postgresql-13-13.7/src/backend/parser/parse_target.c --- postgresql-13-13.4/src/backend/parser/parse_target.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/parse_target.c 2022-05-09 21:16:30.000000000 +0000 @@ -221,7 +221,9 @@ * This is the identical transformation to transformTargetList, except that * the input list elements are bare expressions without ResTarget decoration, * and the output elements are likewise just expressions without TargetEntry - * decoration. We use this for ROW() and VALUES() constructs. + * decoration. Also, we don't expect any multiassign constructs within the + * list, so there's nothing to do for that. We use this for ROW() and + * VALUES() constructs. * * exprKind is not enough to tell us whether to allow SetToDefault, so * an additional flag is needed for that. @@ -283,9 +285,6 @@ result = lappend(result, e); } - /* Shouldn't have any multiassign items here */ - Assert(pstate->p_multiassign_exprs == NIL); - return result; } diff -Nru postgresql-13-13.4/src/backend/parser/parse_utilcmd.c postgresql-13-13.7/src/backend/parser/parse_utilcmd.c --- postgresql-13-13.4/src/backend/parser/parse_utilcmd.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/parser/parse_utilcmd.c 2022-05-09 21:16:30.000000000 +0000 @@ -3324,7 +3324,8 @@ errmsg("column \"%s\" of relation \"%s\" does not exist", cmd->name, RelationGetRelationName(rel)))); - if (TupleDescAttr(tupdesc, attnum - 1)->attidentity) + if (attnum > 0 && + TupleDescAttr(tupdesc, attnum - 1)->attidentity) { Oid seq_relid = getIdentitySequence(relid, attnum, false); Oid typeOid = typenameTypeId(pstate, def->typeName); @@ -3939,7 +3940,7 @@ if (spec->modulus <= 0) ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("modulus for hash partition must be a positive integer"))); + errmsg("modulus for hash partition must be an integer value greater than zero"))); Assert(spec->remainder >= 0); diff -Nru postgresql-13-13.4/src/backend/po/de.po postgresql-13-13.7/src/backend/po/de.po --- postgresql-13-13.4/src/backend/po/de.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/po/de.po 2022-05-09 21:16:30.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-08-05 11:52+0000\n" -"PO-Revision-Date: 2021-08-06 22:39+0200\n" +"POT-Creation-Date: 2022-05-05 19:40+0000\n" +"PO-Revision-Date: 2021-11-06 10:46+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -32,16 +32,16 @@ #: ../common/controldata_utils.c:86 ../common/controldata_utils.c:89 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1276 access/transam/xlog.c:3501 -#: access/transam/xlog.c:4726 access/transam/xlog.c:11121 -#: access/transam/xlog.c:11134 access/transam/xlog.c:11587 -#: access/transam/xlog.c:11667 access/transam/xlog.c:11706 -#: access/transam/xlog.c:11749 access/transam/xlogfuncs.c:662 +#: access/transam/twophase.c:1334 access/transam/xlog.c:3525 +#: access/transam/xlog.c:4763 access/transam/xlog.c:11297 +#: access/transam/xlog.c:11310 access/transam/xlog.c:11763 +#: access/transam/xlog.c:11843 access/transam/xlog.c:11882 +#: access/transam/xlog.c:11925 access/transam/xlogfuncs.c:662 #: access/transam/xlogfuncs.c:681 commands/extension.c:3454 libpq/hba.c:499 #: replication/logical/origin.c:717 replication/logical/origin.c:753 -#: replication/logical/reorderbuffer.c:3624 -#: replication/logical/snapbuild.c:1744 replication/logical/snapbuild.c:1786 -#: replication/logical/snapbuild.c:1814 replication/logical/snapbuild.c:1841 +#: replication/logical/reorderbuffer.c:3633 +#: replication/logical/snapbuild.c:1760 replication/logical/snapbuild.c:1802 +#: replication/logical/snapbuild.c:1830 replication/logical/snapbuild.c:1857 #: replication/slot.c:1709 replication/slot.c:1750 replication/walsender.c:547 #: storage/file/buffile.c:441 storage/file/copydir.c:195 #: utils/adt/genfile.c:200 utils/adt/misc.c:763 utils/cache/relmapper.c:744 @@ -50,11 +50,11 @@ msgstr "konnte Datei »%s« nicht lesen: %m" #: ../common/controldata_utils.c:97 ../common/controldata_utils.c:101 -#: access/transam/twophase.c:1279 access/transam/xlog.c:3506 -#: access/transam/xlog.c:4731 replication/logical/origin.c:722 -#: replication/logical/origin.c:761 replication/logical/snapbuild.c:1749 -#: replication/logical/snapbuild.c:1791 replication/logical/snapbuild.c:1819 -#: replication/logical/snapbuild.c:1846 replication/slot.c:1713 +#: access/transam/twophase.c:1337 access/transam/xlog.c:3530 +#: access/transam/xlog.c:4768 replication/logical/origin.c:722 +#: replication/logical/origin.c:761 replication/logical/snapbuild.c:1765 +#: replication/logical/snapbuild.c:1807 replication/logical/snapbuild.c:1835 +#: replication/logical/snapbuild.c:1862 replication/slot.c:1713 #: replication/slot.c:1754 replication/walsender.c:552 #: utils/cache/relmapper.c:748 #, c-format @@ -65,15 +65,15 @@ #: ../common/controldata_utils.c:256 ../common/controldata_utils.c:259 #: access/heap/rewriteheap.c:1185 access/heap/rewriteheap.c:1288 #: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:516 access/transam/twophase.c:1288 -#: access/transam/twophase.c:1689 access/transam/xlog.c:3373 -#: access/transam/xlog.c:3541 access/transam/xlog.c:3546 -#: access/transam/xlog.c:3874 access/transam/xlog.c:4696 -#: access/transam/xlog.c:5620 access/transam/xlogfuncs.c:687 -#: commands/copy.c:1810 libpq/be-fsstubs.c:462 libpq/be-fsstubs.c:533 +#: access/transam/timeline.c:516 access/transam/twophase.c:1346 +#: access/transam/twophase.c:1757 access/transam/xlog.c:3397 +#: access/transam/xlog.c:3565 access/transam/xlog.c:3570 +#: access/transam/xlog.c:3898 access/transam/xlog.c:4733 +#: access/transam/xlog.c:5657 access/transam/xlogfuncs.c:687 +#: commands/copy.c:1810 libpq/be-fsstubs.c:455 libpq/be-fsstubs.c:525 #: replication/logical/origin.c:655 replication/logical/origin.c:794 -#: replication/logical/reorderbuffer.c:3682 -#: replication/logical/snapbuild.c:1653 replication/logical/snapbuild.c:1854 +#: replication/logical/reorderbuffer.c:3691 +#: replication/logical/snapbuild.c:1669 replication/logical/snapbuild.c:1870 #: replication/slot.c:1600 replication/slot.c:1761 replication/walsender.c:562 #: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:704 #: storage/file/fd.c:3439 storage/file/fd.c:3542 utils/cache/relmapper.c:759 @@ -104,32 +104,32 @@ #: ../common/file_utils.c:224 ../common/file_utils.c:283 #: ../common/file_utils.c:357 access/heap/rewriteheap.c:1271 #: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1232 -#: access/transam/xlog.c:3275 access/transam/xlog.c:3415 -#: access/transam/xlog.c:3456 access/transam/xlog.c:3654 -#: access/transam/xlog.c:3739 access/transam/xlog.c:3842 -#: access/transam/xlog.c:4716 access/transam/xlogutils.c:807 +#: access/transam/timeline.c:348 access/transam/twophase.c:1290 +#: access/transam/xlog.c:3299 access/transam/xlog.c:3439 +#: access/transam/xlog.c:3480 access/transam/xlog.c:3678 +#: access/transam/xlog.c:3763 access/transam/xlog.c:3866 +#: access/transam/xlog.c:4753 access/transam/xlogutils.c:807 #: postmaster/syslogger.c:1488 replication/basebackup.c:621 #: replication/basebackup.c:1593 replication/logical/origin.c:707 -#: replication/logical/reorderbuffer.c:2487 -#: replication/logical/reorderbuffer.c:2849 -#: replication/logical/reorderbuffer.c:3604 -#: replication/logical/snapbuild.c:1608 replication/logical/snapbuild.c:1715 +#: replication/logical/reorderbuffer.c:2486 +#: replication/logical/reorderbuffer.c:2848 +#: replication/logical/reorderbuffer.c:3613 +#: replication/logical/snapbuild.c:1624 replication/logical/snapbuild.c:1731 #: replication/slot.c:1681 replication/walsender.c:520 -#: replication/walsender.c:2515 storage/file/copydir.c:161 +#: replication/walsender.c:2524 storage/file/copydir.c:161 #: storage/file/fd.c:679 storage/file/fd.c:3426 storage/file/fd.c:3513 -#: storage/smgr/md.c:513 utils/cache/relmapper.c:724 +#: storage/smgr/md.c:514 utils/cache/relmapper.c:724 #: utils/cache/relmapper.c:842 utils/error/elog.c:1858 -#: utils/init/miscinit.c:1316 utils/init/miscinit.c:1450 -#: utils/init/miscinit.c:1527 utils/misc/guc.c:8280 utils/misc/guc.c:8312 +#: utils/init/miscinit.c:1315 utils/init/miscinit.c:1449 +#: utils/init/miscinit.c:1526 utils/misc/guc.c:8280 utils/misc/guc.c:8312 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" #: ../common/controldata_utils.c:221 ../common/controldata_utils.c:224 -#: access/transam/twophase.c:1662 access/transam/twophase.c:1671 -#: access/transam/xlog.c:10878 access/transam/xlog.c:10916 -#: access/transam/xlog.c:11329 access/transam/xlogfuncs.c:741 +#: access/transam/twophase.c:1730 access/transam/twophase.c:1739 +#: access/transam/xlog.c:11054 access/transam/xlog.c:11092 +#: access/transam/xlog.c:11505 access/transam/xlogfuncs.c:741 #: postmaster/syslogger.c:1499 postmaster/syslogger.c:1512 #: utils/cache/relmapper.c:876 #, c-format @@ -140,68 +140,68 @@ #: ../common/file_utils.c:295 ../common/file_utils.c:365 #: access/heap/rewriteheap.c:965 access/heap/rewriteheap.c:1179 #: access/heap/rewriteheap.c:1282 access/transam/timeline.c:432 -#: access/transam/timeline.c:510 access/transam/twophase.c:1683 -#: access/transam/xlog.c:3366 access/transam/xlog.c:3535 -#: access/transam/xlog.c:4689 access/transam/xlog.c:10386 -#: access/transam/xlog.c:10413 replication/logical/snapbuild.c:1646 +#: access/transam/timeline.c:510 access/transam/twophase.c:1751 +#: access/transam/xlog.c:3390 access/transam/xlog.c:3559 +#: access/transam/xlog.c:4726 access/transam/xlog.c:10562 +#: access/transam/xlog.c:10589 replication/logical/snapbuild.c:1662 #: replication/slot.c:1586 replication/slot.c:1691 storage/file/fd.c:696 -#: storage/file/fd.c:3534 storage/smgr/md.c:959 storage/smgr/md.c:1000 -#: storage/sync/sync.c:396 utils/cache/relmapper.c:891 utils/misc/guc.c:8063 +#: storage/file/fd.c:3534 storage/smgr/md.c:960 storage/smgr/md.c:1001 +#: storage/sync/sync.c:433 utils/cache/relmapper.c:891 utils/misc/guc.c:8063 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" -#: ../common/exec.c:137 ../common/exec.c:254 ../common/exec.c:300 +#: ../common/exec.c:142 ../common/exec.c:259 ../common/exec.c:305 #, c-format msgid "could not identify current directory: %m" msgstr "konnte aktuelles Verzeichnis nicht ermitteln: %m" -#: ../common/exec.c:156 +#: ../common/exec.c:161 #, c-format msgid "invalid binary \"%s\"" msgstr "ungültige Programmdatei »%s«" -#: ../common/exec.c:206 +#: ../common/exec.c:211 #, c-format msgid "could not read binary \"%s\"" msgstr "konnte Programmdatei »%s« nicht lesen" -#: ../common/exec.c:214 +#: ../common/exec.c:219 #, c-format msgid "could not find a \"%s\" to execute" msgstr "konnte kein »%s« zum Ausführen finden" -#: ../common/exec.c:270 ../common/exec.c:309 utils/init/miscinit.c:395 +#: ../common/exec.c:275 ../common/exec.c:314 utils/init/miscinit.c:394 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "konnte nicht in Verzeichnis »%s« wechseln: %m" -#: ../common/exec.c:287 access/transam/xlog.c:10750 +#: ../common/exec.c:292 access/transam/xlog.c:10926 #: replication/basebackup.c:1418 utils/adt/misc.c:337 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "konnte symbolische Verknüpfung »%s« nicht lesen: %m" -#: ../common/exec.c:410 +#: ../common/exec.c:415 #, c-format msgid "pclose failed: %m" msgstr "pclose fehlgeschlagen: %m" -#: ../common/exec.c:539 ../common/exec.c:584 ../common/exec.c:676 +#: ../common/exec.c:544 ../common/exec.c:589 ../common/exec.c:681 #: ../common/psprintf.c:143 ../common/stringinfo.c:305 ../port/path.c:630 -#: ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1346 -#: access/transam/xlog.c:6485 lib/dshash.c:246 libpq/auth.c:1478 +#: ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1404 +#: access/transam/xlog.c:6531 lib/dshash.c:246 libpq/auth.c:1478 #: libpq/auth.c:1546 libpq/auth.c:2076 libpq/be-secure-gssapi.c:520 #: postmaster/bgworker.c:349 postmaster/bgworker.c:963 -#: postmaster/postmaster.c:2519 postmaster/postmaster.c:4156 -#: postmaster/postmaster.c:4858 postmaster/postmaster.c:5615 -#: postmaster/postmaster.c:5975 +#: postmaster/postmaster.c:2543 postmaster/postmaster.c:4180 +#: postmaster/postmaster.c:4882 postmaster/postmaster.c:5639 +#: postmaster/postmaster.c:5999 #: replication/libpqwalreceiver/libpqwalreceiver.c:282 #: replication/logical/logical.c:176 replication/walsender.c:594 #: storage/buffer/localbuf.c:442 storage/file/fd.c:848 storage/file/fd.c:1318 -#: storage/file/fd.c:1479 storage/file/fd.c:2284 storage/ipc/procarray.c:1045 -#: storage/ipc/procarray.c:1541 storage/ipc/procarray.c:1548 -#: storage/ipc/procarray.c:1972 storage/ipc/procarray.c:2597 +#: storage/file/fd.c:1479 storage/file/fd.c:2284 storage/ipc/procarray.c:1063 +#: storage/ipc/procarray.c:1559 storage/ipc/procarray.c:1566 +#: storage/ipc/procarray.c:2002 storage/ipc/procarray.c:2680 #: utils/adt/cryptohashes.c:45 utils/adt/cryptohashes.c:65 #: utils/adt/formatting.c:1700 utils/adt/formatting.c:1824 #: utils/adt/formatting.c:1949 utils/adt/pg_locale.c:484 @@ -235,13 +235,13 @@ msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" #: ../common/file_utils.c:79 ../common/file_utils.c:181 -#: access/transam/twophase.c:1244 access/transam/xlog.c:10854 -#: access/transam/xlog.c:10892 access/transam/xlog.c:11109 +#: access/transam/twophase.c:1302 access/transam/xlog.c:11030 +#: access/transam/xlog.c:11068 access/transam/xlog.c:11285 #: access/transam/xlogarchive.c:110 access/transam/xlogarchive.c:226 #: commands/copy.c:1938 commands/copy.c:3506 commands/extension.c:3433 -#: commands/tablespace.c:807 commands/tablespace.c:898 guc-file.l:1063 +#: commands/tablespace.c:803 commands/tablespace.c:894 guc-file.l:1063 #: replication/basebackup.c:444 replication/basebackup.c:627 -#: replication/basebackup.c:700 replication/logical/snapbuild.c:1522 +#: replication/basebackup.c:700 replication/logical/snapbuild.c:1538 #: storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1830 #: storage/file/fd.c:3110 storage/file/fd.c:3292 storage/file/fd.c:3378 #: utils/adt/dbsize.c:70 utils/adt/dbsize.c:222 utils/adt/dbsize.c:302 @@ -250,8 +250,8 @@ msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: ../common/file_utils.c:158 ../common/pgfnames.c:48 commands/tablespace.c:730 -#: commands/tablespace.c:740 postmaster/postmaster.c:1509 +#: ../common/file_utils.c:158 ../common/pgfnames.c:48 commands/tablespace.c:726 +#: commands/tablespace.c:736 postmaster/postmaster.c:1509 #: storage/file/fd.c:2687 storage/file/reinit.c:122 utils/adt/misc.c:259 #: utils/misc/tzparser.c:338 #, c-format @@ -264,9 +264,9 @@ msgstr "konnte Verzeichnis »%s« nicht lesen: %m" #: ../common/file_utils.c:375 access/transam/xlogarchive.c:411 -#: postmaster/syslogger.c:1523 replication/logical/snapbuild.c:1665 +#: postmaster/syslogger.c:1523 replication/logical/snapbuild.c:1681 #: replication/slot.c:650 replication/slot.c:1472 replication/slot.c:1614 -#: storage/file/fd.c:714 storage/file/fd.c:812 utils/time/snapmgr.c:1350 +#: storage/file/fd.c:714 storage/file/fd.c:812 utils/time/snapmgr.c:1367 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" @@ -584,7 +584,7 @@ msgstr "Aufforderung für BRIN-Range-Summarization für Index »%s« Seite %u wurde nicht aufgezeichnet" #: access/brin/brin.c:873 access/brin/brin.c:950 access/gin/ginfast.c:1035 -#: access/transam/xlog.c:10522 access/transam/xlog.c:11060 +#: access/transam/xlog.c:10698 access/transam/xlog.c:11236 #: access/transam/xlogfuncs.c:274 access/transam/xlogfuncs.c:301 #: access/transam/xlogfuncs.c:340 access/transam/xlogfuncs.c:361 #: access/transam/xlogfuncs.c:382 access/transam/xlogfuncs.c:452 @@ -923,16 +923,16 @@ msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s" msgstr "Operatorfamilie »%s« für Zugriffsmethode %s enthält ungültige ORDER-BY-Operatorfamilienangabe für Operator %s" -#: access/hash/hashfunc.c:255 access/hash/hashfunc.c:311 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 #: utils/adt/varchar.c:993 utils/adt/varchar.c:1053 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "konnte die für das Zeichenketten-Hashing zu verwendende Sortierfolge nicht bestimmen" -#: access/hash/hashfunc.c:256 access/hash/hashfunc.c:312 catalog/heap.c:711 +#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:335 catalog/heap.c:711 #: catalog/heap.c:717 commands/createas.c:206 commands/createas.c:489 -#: commands/indexcmds.c:1816 commands/tablecmds.c:16250 commands/view.c:86 -#: parser/parse_utilcmd.c:4238 regex/regc_pg_locale.c:263 +#: commands/indexcmds.c:1816 commands/tablecmds.c:16358 commands/view.c:86 +#: parser/parse_utilcmd.c:4239 regex/regc_pg_locale.c:263 #: utils/adt/formatting.c:1667 utils/adt/formatting.c:1791 #: utils/adt/formatting.c:1916 utils/adt/like.c:194 #: utils/adt/like_support.c:1003 utils/adt/varchar.c:733 @@ -987,33 +987,33 @@ msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "in Operatorfamilie »%s« für Zugriffsmethode %s fehlen typübergreifende Operatoren" -#: access/heap/heapam.c:2040 +#: access/heap/heapam.c:2068 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "in einem parallelen Arbeitsprozess können keine Tupel eingefügt werden" -#: access/heap/heapam.c:2458 +#: access/heap/heapam.c:2486 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "während einer parallelen Operation können keine Tupel gelöscht werden" -#: access/heap/heapam.c:2504 +#: access/heap/heapam.c:2532 #, c-format msgid "attempted to delete invisible tuple" msgstr "Versuch ein unsichtbares Tupel zu löschen" -#: access/heap/heapam.c:2934 access/heap/heapam.c:5734 +#: access/heap/heapam.c:2963 access/heap/heapam.c:5822 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "während einer parallelen Operation können keine Tupel aktualisiert werden" -#: access/heap/heapam.c:3067 +#: access/heap/heapam.c:3104 #, c-format msgid "attempted to update invisible tuple" msgstr "Versuch ein unsichtbares Tupel zu aktualisieren" -#: access/heap/heapam.c:4389 access/heap/heapam.c:4427 -#: access/heap/heapam.c:4684 access/heap/heapam_handler.c:450 +#: access/heap/heapam.c:4468 access/heap/heapam.c:4506 +#: access/heap/heapam.c:4772 access/heap/heapam_handler.c:455 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "konnte Sperre für Zeile in Relation »%s« nicht setzen" @@ -1035,12 +1035,12 @@ #: access/heap/rewriteheap.c:1019 access/heap/rewriteheap.c:1138 #: access/transam/timeline.c:329 access/transam/timeline.c:485 -#: access/transam/xlog.c:3298 access/transam/xlog.c:3470 -#: access/transam/xlog.c:4668 access/transam/xlog.c:10869 -#: access/transam/xlog.c:10907 access/transam/xlog.c:11312 -#: access/transam/xlogfuncs.c:735 postmaster/postmaster.c:4619 +#: access/transam/xlog.c:3322 access/transam/xlog.c:3494 +#: access/transam/xlog.c:4705 access/transam/xlog.c:11045 +#: access/transam/xlog.c:11083 access/transam/xlog.c:11488 +#: access/transam/xlogfuncs.c:735 postmaster/postmaster.c:4643 #: replication/logical/origin.c:575 replication/slot.c:1533 -#: storage/file/copydir.c:167 storage/smgr/md.c:218 utils/time/snapmgr.c:1329 +#: storage/file/copydir.c:167 storage/smgr/md.c:218 utils/time/snapmgr.c:1346 #, c-format msgid "could not create file \"%s\": %m" msgstr "konnte Datei »%s« nicht erstellen: %m" @@ -1052,29 +1052,29 @@ #: access/heap/rewriteheap.c:1166 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:502 -#: access/transam/xlog.c:3354 access/transam/xlog.c:3526 -#: access/transam/xlog.c:4680 postmaster/postmaster.c:4629 -#: postmaster/postmaster.c:4639 replication/logical/origin.c:587 +#: access/transam/xlog.c:3378 access/transam/xlog.c:3550 +#: access/transam/xlog.c:4717 postmaster/postmaster.c:4653 +#: postmaster/postmaster.c:4663 replication/logical/origin.c:587 #: replication/logical/origin.c:629 replication/logical/origin.c:648 -#: replication/logical/snapbuild.c:1622 replication/slot.c:1568 +#: replication/logical/snapbuild.c:1638 replication/slot.c:1568 #: storage/file/buffile.c:502 storage/file/copydir.c:207 -#: utils/init/miscinit.c:1391 utils/init/miscinit.c:1402 -#: utils/init/miscinit.c:1410 utils/misc/guc.c:8024 utils/misc/guc.c:8055 -#: utils/misc/guc.c:9975 utils/misc/guc.c:9989 utils/time/snapmgr.c:1334 -#: utils/time/snapmgr.c:1341 +#: utils/init/miscinit.c:1390 utils/init/miscinit.c:1401 +#: utils/init/miscinit.c:1409 utils/misc/guc.c:8024 utils/misc/guc.c:8055 +#: utils/misc/guc.c:9975 utils/misc/guc.c:9989 utils/time/snapmgr.c:1351 +#: utils/time/snapmgr.c:1358 #, c-format msgid "could not write to file \"%s\": %m" msgstr "konnte nicht in Datei »%s« schreiben: %m" -#: access/heap/rewriteheap.c:1256 access/transam/twophase.c:1622 +#: access/heap/rewriteheap.c:1256 access/transam/twophase.c:1690 #: access/transam/xlogarchive.c:118 access/transam/xlogarchive.c:421 #: postmaster/postmaster.c:1092 postmaster/syslogger.c:1465 #: replication/logical/origin.c:563 replication/logical/reorderbuffer.c:3104 -#: replication/logical/snapbuild.c:1564 replication/logical/snapbuild.c:2009 +#: replication/logical/snapbuild.c:1580 replication/logical/snapbuild.c:2025 #: replication/slot.c:1665 storage/file/fd.c:754 storage/file/fd.c:3130 #: storage/file/fd.c:3192 storage/file/reinit.c:255 storage/ipc/dsm.c:302 -#: storage/smgr/md.c:355 storage/smgr/md.c:405 storage/sync/sync.c:210 -#: utils/time/snapmgr.c:1674 +#: storage/smgr/md.c:355 storage/smgr/md.c:405 storage/sync/sync.c:229 +#: utils/time/snapmgr.c:1691 #, c-format msgid "could not remove file \"%s\": %m" msgstr "konnte Datei »%s« nicht löschen: %m" @@ -1246,37 +1246,37 @@ msgid "\"%s\": suspending truncate due to conflicting lock request" msgstr "»%s«: Truncate wird ausgesetzt wegen Sperrkonflikt" -#: access/heap/vacuumlazy.c:3586 +#: access/heap/vacuumlazy.c:3592 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "beim Scannen von Block %u von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3589 +#: access/heap/vacuumlazy.c:3595 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "beim Scannen von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3595 +#: access/heap/vacuumlazy.c:3601 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "beim Vacuum von Block %u von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3598 +#: access/heap/vacuumlazy.c:3604 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "beim Vacuum von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3603 +#: access/heap/vacuumlazy.c:3609 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "beim Vacuum von Index »%s« von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3608 +#: access/heap/vacuumlazy.c:3614 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "beim Säubern von Index »%s« von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3614 +#: access/heap/vacuumlazy.c:3620 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "beim Trunkieren von Relation »%s.%s« auf %u Blöcke" @@ -1293,7 +1293,7 @@ #: access/index/indexam.c:142 catalog/objectaddress.c:1260 #: commands/indexcmds.c:2518 commands/tablecmds.c:254 commands/tablecmds.c:278 -#: commands/tablecmds.c:15948 commands/tablecmds.c:17403 +#: commands/tablecmds.c:16056 commands/tablecmds.c:17546 #, c-format msgid "\"%s\" is not an index" msgstr "»%s« ist kein Index" @@ -1385,7 +1385,7 @@ msgstr "»%s« ist ein Index" #: access/table/table.c:54 access/table/table.c:83 access/table/table.c:116 -#: catalog/aclchk.c:1816 commands/tablecmds.c:12705 commands/tablecmds.c:15957 +#: catalog/aclchk.c:1816 commands/tablecmds.c:12807 commands/tablecmds.c:16065 #, c-format msgid "\"%s\" is a composite type" msgstr "»%s« ist ein zusammengesetzter Typ" @@ -1420,22 +1420,22 @@ msgid "sample percentage must be between 0 and 100" msgstr "Stichprobenprozentsatz muss zwischen 0 und 100 sein" -#: access/transam/commit_ts.c:295 +#: access/transam/commit_ts.c:297 #, c-format msgid "cannot retrieve commit timestamp for transaction %u" msgstr "Commit-Timestamp von Transaktion %u kann nicht abgefragt werden" -#: access/transam/commit_ts.c:393 +#: access/transam/commit_ts.c:395 #, c-format msgid "could not get commit timestamp data" msgstr "konnte Commit-Timestamp-Daten nicht auslesen" -#: access/transam/commit_ts.c:395 +#: access/transam/commit_ts.c:397 #, c-format msgid "Make sure the configuration parameter \"%s\" is set on the master server." msgstr "Stellen Sie sicher, dass der Konfigurationsparameter »%s« auf dem Masterserver gesetzt ist." -#: access/transam/commit_ts.c:397 +#: access/transam/commit_ts.c:399 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Stellen Sie sicher, dass der Konfigurationsparameter »%s« gesetzt ist." @@ -1564,36 +1564,36 @@ msgid "invalid MultiXactId: %u" msgstr "ungültige MultiXactId: %u" -#: access/transam/parallel.c:706 access/transam/parallel.c:825 +#: access/transam/parallel.c:717 access/transam/parallel.c:836 #, c-format msgid "parallel worker failed to initialize" msgstr "Initialisierung von parallelem Arbeitsprozess fehlgeschlagen" -#: access/transam/parallel.c:707 access/transam/parallel.c:826 +#: access/transam/parallel.c:718 access/transam/parallel.c:837 #, c-format msgid "More details may be available in the server log." msgstr "Weitere Einzelheiten sind möglicherweise im Serverlog zu finden." -#: access/transam/parallel.c:887 +#: access/transam/parallel.c:898 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "Postmaster beendete während einer parallelen Transaktion" -#: access/transam/parallel.c:1074 +#: access/transam/parallel.c:1085 #, c-format msgid "lost connection to parallel worker" msgstr "Verbindung mit parallelem Arbeitsprozess verloren" -#: access/transam/parallel.c:1140 access/transam/parallel.c:1142 +#: access/transam/parallel.c:1151 access/transam/parallel.c:1153 msgid "parallel worker" msgstr "paralleler Arbeitsprozess" -#: access/transam/parallel.c:1293 +#: access/transam/parallel.c:1306 #, c-format msgid "could not map dynamic shared memory segment" msgstr "konnte dynamisches Shared-Memory-Segment nicht mappen" -#: access/transam/parallel.c:1298 +#: access/transam/parallel.c:1311 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "ungültige magische Zahl in dynamischem Shared-Memory-Segment" @@ -1721,136 +1721,141 @@ msgid "transaction identifier \"%s\" is already in use" msgstr "Transaktionsbezeichner »%s« wird bereits verwendet" -#: access/transam/twophase.c:417 access/transam/twophase.c:2381 +#: access/transam/twophase.c:417 access/transam/twophase.c:2450 #, c-format msgid "maximum number of prepared transactions reached" msgstr "maximale Anzahl vorbereiteter Transaktionen erreicht" -#: access/transam/twophase.c:418 access/transam/twophase.c:2382 +#: access/transam/twophase.c:418 access/transam/twophase.c:2451 #, c-format msgid "Increase max_prepared_transactions (currently %d)." msgstr "Erhöhen Sie max_prepared_transactions (aktuell %d)." -#: access/transam/twophase.c:586 +#: access/transam/twophase.c:597 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "vorbereitete Transaktion mit Bezeichner »%s« ist beschäftigt" -#: access/transam/twophase.c:592 +#: access/transam/twophase.c:603 #, c-format msgid "permission denied to finish prepared transaction" msgstr "keine Berechtigung, um vorbereitete Transaktion abzuschließen" -#: access/transam/twophase.c:593 +#: access/transam/twophase.c:604 #, c-format msgid "Must be superuser or the user that prepared the transaction." msgstr "Sie müssen Superuser oder der Benutzer sein, der die Transaktion vorbereitet hat." -#: access/transam/twophase.c:604 +#: access/transam/twophase.c:615 #, c-format msgid "prepared transaction belongs to another database" msgstr "vorbereitete Transaktion gehört zu einer anderen Datenbank" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:616 #, c-format msgid "Connect to the database where the transaction was prepared to finish it." msgstr "Verbinden Sie sich mit der Datenbank, wo die Transaktion vorbereitet wurde, um sie zu beenden." -#: access/transam/twophase.c:620 +#: access/transam/twophase.c:631 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "vorbereitete Transaktion mit Bezeichner »%s« existiert nicht" -#: access/transam/twophase.c:1098 +#: access/transam/twophase.c:1155 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "maximale Länge der Zweiphasen-Statusdatei überschritten" -#: access/transam/twophase.c:1252 +#: access/transam/twophase.c:1310 #, c-format msgid "incorrect size of file \"%s\": %zu byte" msgid_plural "incorrect size of file \"%s\": %zu bytes" msgstr[0] "falsche Größe von Datei »%s«: %zu Byte" msgstr[1] "falsche Größe von Datei »%s«: %zu Bytes" -#: access/transam/twophase.c:1261 +#: access/transam/twophase.c:1319 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "falsche Ausrichtung des CRC-Offsets für Datei »%s«" -#: access/transam/twophase.c:1294 +#: access/transam/twophase.c:1352 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "ungültige magische Zahl in Datei »%s gespeichert«" -#: access/transam/twophase.c:1300 +#: access/transam/twophase.c:1358 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "ungültige Größe in Datei »%s« gespeichert" -#: access/transam/twophase.c:1312 +#: access/transam/twophase.c:1370 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "berechnete CRC-Prüfsumme stimmt nicht mit dem Wert in Datei »%s« überein" -#: access/transam/twophase.c:1347 access/transam/xlog.c:6486 +#: access/transam/twophase.c:1405 access/transam/xlog.c:6532 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Fehlgeschlagen beim Anlegen eines WAL-Leseprozessors." -#: access/transam/twophase.c:1362 +#: access/transam/twophase.c:1422 +#, c-format +msgid "could not read two-phase state from WAL at %X/%X: %s" +msgstr "konnte Zweiphasen-Status nicht aus dem WAL bei %X/%X lesen: %s" + +#: access/transam/twophase.c:1429 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "konnte Zweiphasen-Status nicht aus dem WAL bei %X/%X lesen" -#: access/transam/twophase.c:1370 +#: access/transam/twophase.c:1438 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "erwartete Zweiphasen-Status-Daten sind nicht im WAL bei %X/%X vorhanden" -#: access/transam/twophase.c:1650 +#: access/transam/twophase.c:1718 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "konnte Datei »%s« nicht neu erzeugen: %m" -#: access/transam/twophase.c:1777 +#: access/transam/twophase.c:1845 #, c-format msgid "%u two-phase state file was written for a long-running prepared transaction" msgid_plural "%u two-phase state files were written for long-running prepared transactions" msgstr[0] "%u Zweiphasen-Statusdatei wurde für eine lange laufende vorbereitete Transaktion geschrieben" msgstr[1] "%u Zweiphasen-Statusdateien wurden für lange laufende vorbereitete Transaktionen geschrieben" -#: access/transam/twophase.c:2011 +#: access/transam/twophase.c:2079 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "Wiederherstellung der vorbereiteten Transaktion %u aus dem Shared Memory" -#: access/transam/twophase.c:2102 +#: access/transam/twophase.c:2170 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "entferne abgelaufene Zweiphasen-Statusdatei für Transaktion %u" -#: access/transam/twophase.c:2109 +#: access/transam/twophase.c:2177 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "entferne abgelaufenen Zweiphasen-Status aus dem Speicher für Transaktion %u" -#: access/transam/twophase.c:2122 +#: access/transam/twophase.c:2190 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "entferne zukünftige Zweiphasen-Statusdatei für Transaktion %u" -#: access/transam/twophase.c:2129 +#: access/transam/twophase.c:2197 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "entferne zukünftigen Zweiphasen-Status aus dem Speicher für Transaktion %u" -#: access/transam/twophase.c:2154 +#: access/transam/twophase.c:2222 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "verfälschte Zweiphasen-Statusdatei für Transaktion %u" -#: access/transam/twophase.c:2159 +#: access/transam/twophase.c:2227 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "verfälschter Zweiphasen-Status im Speicher für Transaktion %u" @@ -1889,546 +1894,546 @@ msgid "transaction ID wrap limit is %u, limited by database with OID %u" msgstr "Grenze für Transaktionsnummernüberlauf ist %u, begrenzt durch Datenbank mit OID %u" -#: access/transam/xact.c:1030 +#: access/transam/xact.c:1031 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "kann nicht mehr als 2^32-2 Befehle in einer Transaktion ausführen" -#: access/transam/xact.c:1555 +#: access/transam/xact.c:1557 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "maximale Anzahl committeter Subtransaktionen (%d) überschritten" -#: access/transam/xact.c:2396 +#: access/transam/xact.c:2408 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "PREPARE kann nicht für eine Transaktion ausgeführt werden, die temporäre Objekte bearbeitet hat" -#: access/transam/xact.c:2406 +#: access/transam/xact.c:2418 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "PREPARE kann nicht für eine Transaktion ausgeführt werden, die Snapshots exportiert hat" -#: access/transam/xact.c:2415 +#: access/transam/xact.c:2427 #, c-format msgid "cannot PREPARE a transaction that has manipulated logical replication workers" msgstr "PREPARE kann nicht für eine Transaktion ausgeführt werden, die Arbeitsprozesse für logische Replikation manipuliert hat" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3367 +#: access/transam/xact.c:3388 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s kann nicht in einem Transaktionsblock laufen" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3377 +#: access/transam/xact.c:3398 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s kann nicht in einer Subtransaktion laufen" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3387 +#: access/transam/xact.c:3408 #, c-format msgid "%s cannot be executed from a function" msgstr "%s kann nicht aus einer Funktion ausgeführt werden" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3456 access/transam/xact.c:3762 -#: access/transam/xact.c:3841 access/transam/xact.c:3964 -#: access/transam/xact.c:4115 access/transam/xact.c:4184 -#: access/transam/xact.c:4295 +#: access/transam/xact.c:3477 access/transam/xact.c:3783 +#: access/transam/xact.c:3862 access/transam/xact.c:3985 +#: access/transam/xact.c:4136 access/transam/xact.c:4205 +#: access/transam/xact.c:4316 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s kann nur in Transaktionsblöcken verwendet werden" -#: access/transam/xact.c:3648 +#: access/transam/xact.c:3669 #, c-format msgid "there is already a transaction in progress" msgstr "eine Transaktion ist bereits begonnen" -#: access/transam/xact.c:3767 access/transam/xact.c:3846 -#: access/transam/xact.c:3969 +#: access/transam/xact.c:3788 access/transam/xact.c:3867 +#: access/transam/xact.c:3990 #, c-format msgid "there is no transaction in progress" msgstr "keine Transaktion offen" -#: access/transam/xact.c:3857 +#: access/transam/xact.c:3878 #, c-format msgid "cannot commit during a parallel operation" msgstr "während einer parallelen Operation kann nicht committet werden" -#: access/transam/xact.c:3980 +#: access/transam/xact.c:4001 #, c-format msgid "cannot abort during a parallel operation" msgstr "während einer parallelen Operation kann nicht abgebrochen werden" -#: access/transam/xact.c:4079 +#: access/transam/xact.c:4100 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "während einer parallelen Operation können keine Sicherungspunkte definiert werden" -#: access/transam/xact.c:4166 +#: access/transam/xact.c:4187 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "während einer parallelen Operation können keine Sicherungspunkte freigegeben werden" -#: access/transam/xact.c:4176 access/transam/xact.c:4227 -#: access/transam/xact.c:4287 access/transam/xact.c:4336 +#: access/transam/xact.c:4197 access/transam/xact.c:4248 +#: access/transam/xact.c:4308 access/transam/xact.c:4357 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "Sicherungspunkt »%s« existiert nicht" -#: access/transam/xact.c:4233 access/transam/xact.c:4342 +#: access/transam/xact.c:4254 access/transam/xact.c:4363 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "Sicherungspunkt »%s« existiert nicht innerhalb der aktuellen Sicherungspunktebene" -#: access/transam/xact.c:4275 +#: access/transam/xact.c:4296 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "während einer parallelen Operation kann nicht auf einen Sicherungspunkt zurückgerollt werden" -#: access/transam/xact.c:4403 +#: access/transam/xact.c:4424 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "während einer parallelen Operation können keine Subtransaktionen gestartet werden" -#: access/transam/xact.c:4471 +#: access/transam/xact.c:4492 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "während einer parallelen Operation können keine Subtransaktionen committet werden" -#: access/transam/xact.c:5111 +#: access/transam/xact.c:5138 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "kann nicht mehr als 2^32-1 Subtransaktionen in einer Transaktion haben" -#: access/transam/xlog.c:2552 +#: access/transam/xlog.c:2576 #, c-format msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "konnte nicht in Logdatei %s bei Position %u, Länge %zu schreiben: %m" -#: access/transam/xlog.c:2828 +#: access/transam/xlog.c:2852 #, c-format msgid "updated min recovery point to %X/%X on timeline %u" msgstr "minimaler Recovery-Punkt auf %X/%X auf Zeitleiste %u aktualisiert" -#: access/transam/xlog.c:3942 access/transam/xlogutils.c:802 -#: replication/walsender.c:2509 +#: access/transam/xlog.c:3966 access/transam/xlogutils.c:802 +#: replication/walsender.c:2518 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "das angeforderte WAL-Segment %s wurde schon entfernt" -#: access/transam/xlog.c:4185 +#: access/transam/xlog.c:4209 #, c-format msgid "recycled write-ahead log file \"%s\"" msgstr "Write-Ahead-Log-Datei »%s« wird wiederverwendet" -#: access/transam/xlog.c:4197 +#: access/transam/xlog.c:4221 #, c-format msgid "removing write-ahead log file \"%s\"" msgstr "entferne Write-Ahead-Log-Datei »%s«" -#: access/transam/xlog.c:4217 +#: access/transam/xlog.c:4241 #, c-format msgid "could not rename file \"%s\": %m" msgstr "konnte Datei »%s« nicht umbenennen: %m" -#: access/transam/xlog.c:4259 access/transam/xlog.c:4269 +#: access/transam/xlog.c:4283 access/transam/xlog.c:4293 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "benötigtes WAL-Verzeichnis »%s« existiert nicht" -#: access/transam/xlog.c:4275 +#: access/transam/xlog.c:4299 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "erzeuge fehlendes WAL-Verzeichnis »%s«" -#: access/transam/xlog.c:4278 +#: access/transam/xlog.c:4302 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "konnte fehlendes Verzeichnis »%s« nicht erzeugen: %m" -#: access/transam/xlog.c:4381 +#: access/transam/xlog.c:4418 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "unerwartete Zeitleisten-ID %u in Logsegment %s, Offset %u" -#: access/transam/xlog.c:4519 +#: access/transam/xlog.c:4556 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "neue Zeitleiste %u ist kein Kind der Datenbanksystemzeitleiste %u" -#: access/transam/xlog.c:4533 +#: access/transam/xlog.c:4570 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "neue Zeitleiste %u zweigte von der aktuellen Datenbanksystemzeitleiste %u vor dem aktuellen Wiederherstellungspunkt %X/%X ab" -#: access/transam/xlog.c:4552 +#: access/transam/xlog.c:4589 #, c-format msgid "new target timeline is %u" msgstr "neue Zielzeitleiste ist %u" -#: access/transam/xlog.c:4588 +#: access/transam/xlog.c:4625 #, c-format msgid "could not generate secret authorization token" msgstr "konnte geheimes Autorisierungstoken nicht erzeugen" -#: access/transam/xlog.c:4747 access/transam/xlog.c:4756 -#: access/transam/xlog.c:4780 access/transam/xlog.c:4787 -#: access/transam/xlog.c:4794 access/transam/xlog.c:4799 -#: access/transam/xlog.c:4806 access/transam/xlog.c:4813 -#: access/transam/xlog.c:4820 access/transam/xlog.c:4827 -#: access/transam/xlog.c:4834 access/transam/xlog.c:4841 -#: access/transam/xlog.c:4850 access/transam/xlog.c:4857 -#: utils/init/miscinit.c:1548 +#: access/transam/xlog.c:4784 access/transam/xlog.c:4793 +#: access/transam/xlog.c:4817 access/transam/xlog.c:4824 +#: access/transam/xlog.c:4831 access/transam/xlog.c:4836 +#: access/transam/xlog.c:4843 access/transam/xlog.c:4850 +#: access/transam/xlog.c:4857 access/transam/xlog.c:4864 +#: access/transam/xlog.c:4871 access/transam/xlog.c:4878 +#: access/transam/xlog.c:4887 access/transam/xlog.c:4894 +#: utils/init/miscinit.c:1547 #, c-format msgid "database files are incompatible with server" msgstr "Datenbankdateien sind inkompatibel mit Server" -#: access/transam/xlog.c:4748 +#: access/transam/xlog.c:4785 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), but the server was compiled with PG_CONTROL_VERSION %d (0x%08x)." msgstr "Der Datenbank-Cluster wurde mit PG_CONTROL_VERSION %d (0x%08x) initialisiert, aber der Server wurde mit PG_CONTROL_VERSION %d (0x%08x) kompiliert." -#: access/transam/xlog.c:4752 +#: access/transam/xlog.c:4789 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "Das Problem könnte eine falsche Byte-Reihenfolge sein. Es sieht so aus, dass Sie initdb ausführen müssen." -#: access/transam/xlog.c:4757 +#: access/transam/xlog.c:4794 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "Der Datenbank-Cluster wurde mit PG_CONTROL_VERSION %d initialisiert, aber der Server wurde mit PG_CONTROL_VERSION %d kompiliert." -#: access/transam/xlog.c:4760 access/transam/xlog.c:4784 -#: access/transam/xlog.c:4791 access/transam/xlog.c:4796 +#: access/transam/xlog.c:4797 access/transam/xlog.c:4821 +#: access/transam/xlog.c:4828 access/transam/xlog.c:4833 #, c-format msgid "It looks like you need to initdb." msgstr "Es sieht so aus, dass Sie initdb ausführen müssen." -#: access/transam/xlog.c:4771 +#: access/transam/xlog.c:4808 #, c-format msgid "incorrect checksum in control file" msgstr "falsche Prüfsumme in Kontrolldatei" -#: access/transam/xlog.c:4781 +#: access/transam/xlog.c:4818 #, c-format msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." msgstr "Der Datenbank-Cluster wurde mit CATALOG_VERSION_NO %d initialisiert, aber der Server wurde mit CATALOG_VERSION_NO %d kompiliert." -#: access/transam/xlog.c:4788 +#: access/transam/xlog.c:4825 #, c-format msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." msgstr "Der Datenbank-Cluster wurde mit MAXALIGN %d initialisiert, aber der Server wurde mit MAXALIGN %d kompiliert." -#: access/transam/xlog.c:4795 +#: access/transam/xlog.c:4832 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "Der Datenbank-Cluster verwendet anscheinend ein anderes Fließkommazahlenformat als das Serverprogramm." -#: access/transam/xlog.c:4800 +#: access/transam/xlog.c:4837 #, c-format msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." msgstr "Der Datenbank-Cluster wurde mit BLCKSZ %d initialisiert, aber der Server wurde mit BLCKSZ %d kompiliert." -#: access/transam/xlog.c:4803 access/transam/xlog.c:4810 -#: access/transam/xlog.c:4817 access/transam/xlog.c:4824 -#: access/transam/xlog.c:4831 access/transam/xlog.c:4838 -#: access/transam/xlog.c:4845 access/transam/xlog.c:4853 -#: access/transam/xlog.c:4860 +#: access/transam/xlog.c:4840 access/transam/xlog.c:4847 +#: access/transam/xlog.c:4854 access/transam/xlog.c:4861 +#: access/transam/xlog.c:4868 access/transam/xlog.c:4875 +#: access/transam/xlog.c:4882 access/transam/xlog.c:4890 +#: access/transam/xlog.c:4897 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Es sieht so aus, dass Sie neu kompilieren oder initdb ausführen müssen." -#: access/transam/xlog.c:4807 +#: access/transam/xlog.c:4844 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "Der Datenbank-Cluster wurde mit RELSEG_SIZE %d initialisiert, aber der Server wurde mit RELSEGSIZE %d kompiliert." -#: access/transam/xlog.c:4814 +#: access/transam/xlog.c:4851 #, c-format msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." msgstr "Der Datenbank-Cluster wurde mit XLOG_BLCKSZ %d initialisiert, aber der Server wurde mit XLOG_BLCKSZ %d kompiliert." -#: access/transam/xlog.c:4821 +#: access/transam/xlog.c:4858 #, c-format msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." msgstr "Der Datenbank-Cluster wurde mit NAMEDATALEN %d initialisiert, aber der Server wurde mit NAMEDATALEN %d kompiliert." -#: access/transam/xlog.c:4828 +#: access/transam/xlog.c:4865 #, c-format msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." msgstr "Der Datenbank-Cluster wurde mit INDEX_MAX_KEYS %d initialisiert, aber der Server wurde mit INDEX_MAX_KEYS %d kompiliert." -#: access/transam/xlog.c:4835 +#: access/transam/xlog.c:4872 #, c-format msgid "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the server was compiled with TOAST_MAX_CHUNK_SIZE %d." msgstr "Der Datenbank-Cluster wurde mit TOAST_MAX_CHUNK_SIZE %d initialisiert, aber der Server wurde mit TOAST_MAX_CHUNK_SIZE %d kompiliert." -#: access/transam/xlog.c:4842 +#: access/transam/xlog.c:4879 #, c-format msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." msgstr "Der Datenbank-Cluster wurde mit LOBLKSIZE %d initialisiert, aber der Server wurde mit LOBLKSIZE %d kompiliert." -#: access/transam/xlog.c:4851 +#: access/transam/xlog.c:4888 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "Der Datenbank-Cluster wurde ohne USE_FLOAT8_BYVAL initialisiert, aber der Server wurde mit USE_FLOAT8_BYVAL kompiliert." -#: access/transam/xlog.c:4858 +#: access/transam/xlog.c:4895 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "Der Datenbank-Cluster wurde mit USE_FLOAT8_BYVAL initialisiert, aber der Server wurde ohne USE_FLOAT8_BYVAL kompiliert." -#: access/transam/xlog.c:4867 +#: access/transam/xlog.c:4904 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes" msgstr[0] "WAL-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein, aber die Kontrolldatei gibt %d Byte an" msgstr[1] "WAL-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein, aber die Kontrolldatei gibt %d Bytes an" -#: access/transam/xlog.c:4879 +#: access/transam/xlog.c:4916 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "»min_wal_size« muss mindestens zweimal so groß wie »wal_segment_size« sein" -#: access/transam/xlog.c:4883 +#: access/transam/xlog.c:4920 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "»max_wal_size« muss mindestens zweimal so groß wie »wal_segment_size« sein" -#: access/transam/xlog.c:5316 +#: access/transam/xlog.c:5353 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "konnte Bootstrap-Write-Ahead-Log-Datei nicht schreiben: %m" -#: access/transam/xlog.c:5324 +#: access/transam/xlog.c:5361 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "konnte Bootstrap-Write-Ahead-Log-Datei nicht fsyncen: %m" -#: access/transam/xlog.c:5330 +#: access/transam/xlog.c:5367 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "konnte Bootstrap-Write-Ahead-Log-Datei nicht schließen: %m" -#: access/transam/xlog.c:5391 +#: access/transam/xlog.c:5428 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "Verwendung von Recovery-Befehlsdatei »%s« wird nicht unterstützt" -#: access/transam/xlog.c:5456 +#: access/transam/xlog.c:5493 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "Standby-Modus wird von Servern im Einzelbenutzermodus nicht unterstützt" -#: access/transam/xlog.c:5473 +#: access/transam/xlog.c:5510 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "weder primary_conninfo noch restore_command angegeben" -#: access/transam/xlog.c:5474 +#: access/transam/xlog.c:5511 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "Der Datenbankserver prüft das Unterverzeichnis pg_wal regelmäßig auf dort abgelegte Dateien." -#: access/transam/xlog.c:5482 +#: access/transam/xlog.c:5519 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "restore_command muss angegeben werden, wenn der Standby-Modus nicht eingeschaltet ist" -#: access/transam/xlog.c:5520 +#: access/transam/xlog.c:5557 #, c-format msgid "recovery target timeline %u does not exist" msgstr "recovery_target_timeline %u existiert nicht" -#: access/transam/xlog.c:5642 +#: access/transam/xlog.c:5679 #, c-format msgid "archive recovery complete" msgstr "Wiederherstellung aus Archiv abgeschlossen" -#: access/transam/xlog.c:5708 access/transam/xlog.c:5981 +#: access/transam/xlog.c:5745 access/transam/xlog.c:6018 #, c-format msgid "recovery stopping after reaching consistency" msgstr "Wiederherstellung beendet nachdem Konsistenz erreicht wurde" -#: access/transam/xlog.c:5729 +#: access/transam/xlog.c:5766 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "Wiederherstellung beendet vor WAL-Position (LSN) »%X/%X«" -#: access/transam/xlog.c:5815 +#: access/transam/xlog.c:5852 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "Wiederherstellung beendet vor Commit der Transaktion %u, Zeit %s" -#: access/transam/xlog.c:5822 +#: access/transam/xlog.c:5859 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "Wiederherstellung beendet vor Abbruch der Transaktion %u, Zeit %s" -#: access/transam/xlog.c:5875 +#: access/transam/xlog.c:5912 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "Wiederherstellung beendet bei Restore-Punkt »%s«, Zeit %s" -#: access/transam/xlog.c:5893 +#: access/transam/xlog.c:5930 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "Wiederherstellung beendet nach WAL-Position (LSN) »%X/%X«" -#: access/transam/xlog.c:5961 +#: access/transam/xlog.c:5998 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "Wiederherstellung beendet nach Commit der Transaktion %u, Zeit %s" -#: access/transam/xlog.c:5969 +#: access/transam/xlog.c:6006 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "Wiederherstellung beendet nach Abbruch der Transaktion %u, Zeit %s" -#: access/transam/xlog.c:6018 +#: access/transam/xlog.c:6055 #, c-format msgid "pausing at the end of recovery" msgstr "pausiere am Ende der Wiederherstellung" -#: access/transam/xlog.c:6019 +#: access/transam/xlog.c:6056 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Führen Sie pg_wal_replay_resume() aus, um den Server zum Primärserver zu befördern." -#: access/transam/xlog.c:6022 +#: access/transam/xlog.c:6059 #, c-format msgid "recovery has paused" msgstr "Wiederherstellung wurde pausiert" -#: access/transam/xlog.c:6023 +#: access/transam/xlog.c:6060 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Führen Sie pg_wal_replay_resume() aus um fortzusetzen." -#: access/transam/xlog.c:6234 +#: access/transam/xlog.c:6280 #, c-format msgid "hot standby is not possible because %s = %d is a lower setting than on the master server (its value was %d)" msgstr "Hot Standby ist nicht möglich, weil %s = %d eine niedrigere Einstellung als auf dem Masterserver ist (Wert dort war %d)" -#: access/transam/xlog.c:6258 +#: access/transam/xlog.c:6304 #, c-format msgid "WAL was generated with wal_level=minimal, data may be missing" msgstr "WAL wurde mit wal_level=minimal erzeugt, eventuell fehlen Daten" -#: access/transam/xlog.c:6259 +#: access/transam/xlog.c:6305 #, c-format msgid "This happens if you temporarily set wal_level=minimal without taking a new base backup." msgstr "Das passiert, wenn vorübergehend wal_level=minimal gesetzt wurde, ohne ein neues Base-Backup zu erzeugen." -#: access/transam/xlog.c:6270 +#: access/transam/xlog.c:6316 #, c-format msgid "hot standby is not possible because wal_level was not set to \"replica\" or higher on the master server" msgstr "Hot Standby ist nicht möglich, weil wal_level auf dem Masterserver nicht auf »replica« oder höher gesetzt wurde" -#: access/transam/xlog.c:6271 +#: access/transam/xlog.c:6317 #, c-format msgid "Either set wal_level to \"replica\" on the master, or turn off hot_standby here." msgstr "Setzen Sie entweder wal_level auf »replica« auf dem Master oder schalten Sie hot_standby hier aus." -#: access/transam/xlog.c:6333 +#: access/transam/xlog.c:6379 #, c-format msgid "control file contains invalid checkpoint location" msgstr "Kontrolldatei enthält ungültige Checkpoint-Position" -#: access/transam/xlog.c:6344 +#: access/transam/xlog.c:6390 #, c-format msgid "database system was shut down at %s" msgstr "Datenbanksystem wurde am %s heruntergefahren" -#: access/transam/xlog.c:6350 +#: access/transam/xlog.c:6396 #, c-format msgid "database system was shut down in recovery at %s" msgstr "Datenbanksystem wurde während der Wiederherstellung am %s heruntergefahren" -#: access/transam/xlog.c:6356 +#: access/transam/xlog.c:6402 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "Datenbanksystem wurde beim Herunterfahren unterbrochen; letzte bekannte Aktion am %s" -#: access/transam/xlog.c:6362 +#: access/transam/xlog.c:6408 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "Datenbanksystem wurde während der Wiederherstellung am %s unterbrochen" -#: access/transam/xlog.c:6364 +#: access/transam/xlog.c:6410 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "Das bedeutet wahrscheinlich, dass einige Daten verfälscht sind und Sie die letzte Datensicherung zur Wiederherstellung verwenden müssen." -#: access/transam/xlog.c:6370 +#: access/transam/xlog.c:6416 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "Datenbanksystem wurde während der Wiederherstellung bei Logzeit %s unterbrochen" -#: access/transam/xlog.c:6372 +#: access/transam/xlog.c:6418 #, c-format msgid "If this has occurred more than once some data might be corrupted and you might need to choose an earlier recovery target." msgstr "Wenn dies mehr als einmal vorgekommen ist, dann sind einige Daten möglicherweise verfälscht und Sie müssen ein früheres Wiederherstellungsziel wählen." -#: access/transam/xlog.c:6378 +#: access/transam/xlog.c:6424 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "Datenbanksystem wurde unterbrochen; letzte bekannte Aktion am %s" -#: access/transam/xlog.c:6384 +#: access/transam/xlog.c:6430 #, c-format msgid "control file contains invalid database cluster state" msgstr "Kontrolldatei enthält ungültigen Datenbankclusterstatus" -#: access/transam/xlog.c:6441 +#: access/transam/xlog.c:6487 #, c-format msgid "entering standby mode" msgstr "Standby-Modus eingeschaltet" -#: access/transam/xlog.c:6444 +#: access/transam/xlog.c:6490 #, c-format msgid "starting point-in-time recovery to XID %u" msgstr "starte Point-in-Time-Recovery bis XID %u" -#: access/transam/xlog.c:6448 +#: access/transam/xlog.c:6494 #, c-format msgid "starting point-in-time recovery to %s" msgstr "starte Point-in-Time-Recovery bis %s" -#: access/transam/xlog.c:6452 +#: access/transam/xlog.c:6498 #, c-format msgid "starting point-in-time recovery to \"%s\"" msgstr "starte Point-in-Time-Recovery bis »%s«" -#: access/transam/xlog.c:6456 +#: access/transam/xlog.c:6502 #, c-format msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" msgstr "starte Point-in-Time-Recovery bis WAL-Position (LSN) »%X/%X«" -#: access/transam/xlog.c:6461 +#: access/transam/xlog.c:6507 #, c-format msgid "starting point-in-time recovery to earliest consistent point" msgstr "starte Point-in-Time-Recovery bis zum frühesten konsistenten Punkt" -#: access/transam/xlog.c:6464 +#: access/transam/xlog.c:6510 #, c-format msgid "starting archive recovery" msgstr "starte Wiederherstellung aus Archiv" -#: access/transam/xlog.c:6523 access/transam/xlog.c:6656 +#: access/transam/xlog.c:6569 access/transam/xlog.c:6702 #, c-format msgid "checkpoint record is at %X/%X" msgstr "Checkpoint-Eintrag ist bei %X/%X" -#: access/transam/xlog.c:6538 +#: access/transam/xlog.c:6584 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "konnte die vom Checkpoint-Datensatz referenzierte Redo-Position nicht finden" -#: access/transam/xlog.c:6539 access/transam/xlog.c:6549 +#: access/transam/xlog.c:6585 access/transam/xlog.c:6595 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" @@ -2439,278 +2444,283 @@ "Wenn Sie gerade kein Backup wiederherstellen, dann versuchen Sie, die Datei »%s/backup_label« zu entfernen.\n" "Vorsicht: Wenn ein Backup wiederhergestellt wird und »%s/backup_label« gelöscht wird, dann wird das den Cluster verfälschen." -#: access/transam/xlog.c:6548 +#: access/transam/xlog.c:6594 #, c-format msgid "could not locate required checkpoint record" msgstr "konnte den nötigen Checkpoint-Datensatz nicht finden" -#: access/transam/xlog.c:6577 commands/tablespace.c:666 +#: access/transam/xlog.c:6623 commands/tablespace.c:662 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "konnte symbolische Verknüpfung »%s« nicht erstellen: %m" -#: access/transam/xlog.c:6609 access/transam/xlog.c:6615 +#: access/transam/xlog.c:6655 access/transam/xlog.c:6661 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "ignoriere Datei »%s«, weil keine Datei »%s« existiert" -#: access/transam/xlog.c:6611 access/transam/xlog.c:11828 +#: access/transam/xlog.c:6657 access/transam/xlog.c:12004 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Datei »%s« wurde in »%s« umbenannt." -#: access/transam/xlog.c:6617 +#: access/transam/xlog.c:6663 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Konnte Datei »%s« nicht in »%s« umbenennen: %m." -#: access/transam/xlog.c:6668 +#: access/transam/xlog.c:6714 #, c-format msgid "could not locate a valid checkpoint record" msgstr "konnte keinen gültigen Checkpoint-Datensatz finden" -#: access/transam/xlog.c:6706 +#: access/transam/xlog.c:6752 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "angeforderte Zeitleiste %u ist kein Kind der History dieses Servers" -#: access/transam/xlog.c:6708 +#: access/transam/xlog.c:6754 #, c-format msgid "Latest checkpoint is at %X/%X on timeline %u, but in the history of the requested timeline, the server forked off from that timeline at %X/%X." msgstr "Neuester Checkpoint ist bei %X/%X auf Zeitleiste %u, aber in der History der angeforderten Zeitleiste zweigte der Server von dieser Zeitleiste bei %X/%X ab." -#: access/transam/xlog.c:6724 +#: access/transam/xlog.c:6770 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "angeforderte Zeitleiste %u enthält nicht den minimalen Wiederherstellungspunkt %X/%X auf Zeitleiste %u" -#: access/transam/xlog.c:6755 +#: access/transam/xlog.c:6801 #, c-format msgid "invalid next transaction ID" msgstr "ungültige nächste Transaktions-ID" -#: access/transam/xlog.c:6849 +#: access/transam/xlog.c:6895 #, c-format msgid "invalid redo in checkpoint record" msgstr "ungültiges Redo im Checkpoint-Datensatz" -#: access/transam/xlog.c:6860 +#: access/transam/xlog.c:6906 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "ungültiger Redo-Datensatz im Shutdown-Checkpoint" -#: access/transam/xlog.c:6894 +#: access/transam/xlog.c:6946 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "Datenbanksystem wurde nicht richtig heruntergefahren; automatische Wiederherstellung läuft" -#: access/transam/xlog.c:6898 +#: access/transam/xlog.c:6950 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "Wiederherstellung nach Absturz beginnt in Zeitleiste %u und hat Zielzeitleiste %u" -#: access/transam/xlog.c:6945 +#: access/transam/xlog.c:6997 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "Daten in backup_label stimmen nicht mit Kontrolldatei überein" -#: access/transam/xlog.c:6946 +#: access/transam/xlog.c:6998 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Das bedeutet, dass die Datensicherung verfälscht ist und Sie eine andere Datensicherung zur Wiederherstellung verwenden werden müssen." -#: access/transam/xlog.c:7037 +#: access/transam/xlog.c:7089 #, c-format msgid "initializing for hot standby" msgstr "initialisiere für Hot Standby" -#: access/transam/xlog.c:7170 +#: access/transam/xlog.c:7222 #, c-format msgid "redo starts at %X/%X" msgstr "Redo beginnt bei %X/%X" -#: access/transam/xlog.c:7394 +#: access/transam/xlog.c:7446 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "angeforderter Recovery-Endpunkt ist vor konsistentem Recovery-Punkt" -#: access/transam/xlog.c:7432 +#: access/transam/xlog.c:7484 #, c-format msgid "redo done at %X/%X" msgstr "Redo fertig bei %X/%X" -#: access/transam/xlog.c:7437 +#: access/transam/xlog.c:7489 #, c-format msgid "last completed transaction was at log time %s" msgstr "letzte vollständige Transaktion war bei Logzeit %s" -#: access/transam/xlog.c:7446 +#: access/transam/xlog.c:7498 #, c-format msgid "redo is not required" msgstr "Redo nicht nötig" -#: access/transam/xlog.c:7458 +#: access/transam/xlog.c:7510 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "Wiederherstellung endete bevor das konfigurierte Wiederherstellungsziel erreicht wurde" -#: access/transam/xlog.c:7537 access/transam/xlog.c:7541 +#: access/transam/xlog.c:7594 access/transam/xlog.c:7598 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL endet vor dem Ende der Online-Sicherung" -#: access/transam/xlog.c:7538 +#: access/transam/xlog.c:7595 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "Der komplette WAL, der während der Online-Sicherung erzeugt wurde, muss bei der Wiederherstellung verfügbar sein." -#: access/transam/xlog.c:7542 +#: access/transam/xlog.c:7599 #, c-format msgid "Online backup started with pg_start_backup() must be ended with pg_stop_backup(), and all WAL up to that point must be available at recovery." msgstr "Die mit pg_start_backup() begonnene Online-Sicherung muss mit pg_stop_backup() beendet werden und der ganze WAL bis zu diesem Punkt muss bei der Wiederherstellung verfügbar sein." -#: access/transam/xlog.c:7545 +#: access/transam/xlog.c:7602 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL endet vor einem konsistenten Wiederherstellungspunkt" -#: access/transam/xlog.c:7580 +#: access/transam/xlog.c:7637 #, c-format msgid "selected new timeline ID: %u" msgstr "gewählte neue Zeitleisten-ID: %u" -#: access/transam/xlog.c:8028 +#: access/transam/xlog.c:8112 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "konsistenter Wiederherstellungszustand erreicht bei %X/%X" -#: access/transam/xlog.c:8238 +#: access/transam/xlog.c:8322 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "ungültige primäre Checkpoint-Verknüpfung in Kontrolldatei" -#: access/transam/xlog.c:8242 +#: access/transam/xlog.c:8326 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "ungültige Checkpoint-Verknüpfung in backup_label-Datei" -#: access/transam/xlog.c:8260 +#: access/transam/xlog.c:8344 #, c-format msgid "invalid primary checkpoint record" msgstr "ungültiger primärer Checkpoint-Datensatz" -#: access/transam/xlog.c:8264 +#: access/transam/xlog.c:8348 #, c-format msgid "invalid checkpoint record" msgstr "ungültiger Checkpoint-Datensatz" -#: access/transam/xlog.c:8275 +#: access/transam/xlog.c:8359 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "ungültige Resource-Manager-ID im primären Checkpoint-Datensatz" -#: access/transam/xlog.c:8279 +#: access/transam/xlog.c:8363 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "ungültige Resource-Manager-ID im Checkpoint-Datensatz" -#: access/transam/xlog.c:8292 +#: access/transam/xlog.c:8376 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "ungültige xl_info im primären Checkpoint-Datensatz" -#: access/transam/xlog.c:8296 +#: access/transam/xlog.c:8380 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "ungültige xl_info im Checkpoint-Datensatz" -#: access/transam/xlog.c:8307 +#: access/transam/xlog.c:8391 #, c-format msgid "invalid length of primary checkpoint record" msgstr "ungültige Länge des primären Checkpoint-Datensatzes" -#: access/transam/xlog.c:8311 +#: access/transam/xlog.c:8395 #, c-format msgid "invalid length of checkpoint record" msgstr "ungültige Länge des Checkpoint-Datensatzes" -#: access/transam/xlog.c:8491 +#: access/transam/xlog.c:8575 #, c-format msgid "shutting down" msgstr "fahre herunter" -#: access/transam/xlog.c:8797 +#: access/transam/xlog.c:8882 #, c-format msgid "checkpoint skipped because system is idle" msgstr "Checkpoint übersprungen weil das System inaktiv ist" -#: access/transam/xlog.c:8997 +#: access/transam/xlog.c:9092 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "gleichzeitige Write-Ahead-Log-Aktivität während das Datenbanksystem herunterfährt" -#: access/transam/xlog.c:9262 +#: access/transam/xlog.c:9404 #, c-format msgid "skipping restartpoint, recovery has already ended" msgstr "Restart-Punkt übersprungen, Wiederherstellung ist bereits beendet" -#: access/transam/xlog.c:9285 +#: access/transam/xlog.c:9427 #, c-format msgid "skipping restartpoint, already performed at %X/%X" msgstr "Restart-Punkt wird übersprungen, schon bei %X/%X erledigt" -#: access/transam/xlog.c:9461 +#: access/transam/xlog.c:9603 #, c-format msgid "recovery restart point at %X/%X" msgstr "Recovery-Restart-Punkt bei %X/%X" -#: access/transam/xlog.c:9463 +#: access/transam/xlog.c:9605 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Die letzte vollständige Transaktion war bei Logzeit %s." -#: access/transam/xlog.c:9711 +#: access/transam/xlog.c:9853 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "Restore-Punkt »%s« erzeugt bei %X/%X" -#: access/transam/xlog.c:9856 +#: access/transam/xlog.c:9998 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "unerwartete vorherige Zeitleisten-ID %u (aktuelle Zeitleisten-ID %u) im Checkpoint-Datensatz" -#: access/transam/xlog.c:9865 +#: access/transam/xlog.c:10007 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "unerwartete Zeitleisten-ID %u (nach %u) im Checkpoint-Datensatz" -#: access/transam/xlog.c:9881 +#: access/transam/xlog.c:10023 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "unerwartete Zeitleisten-ID %u in Checkpoint-Datensatz, bevor der minimale Wiederherstellungspunkt %X/%X auf Zeitleiste %u erreicht wurde" -#: access/transam/xlog.c:9957 +#: access/transam/xlog.c:10099 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "Online-Sicherung wurde storniert, Wiederherstellung kann nicht fortgesetzt werden" -#: access/transam/xlog.c:10013 access/transam/xlog.c:10069 -#: access/transam/xlog.c:10092 +#: access/transam/xlog.c:10155 access/transam/xlog.c:10211 +#: access/transam/xlog.c:10241 #, c-format msgid "unexpected timeline ID %u (should be %u) in checkpoint record" msgstr "unerwartete Zeitleisten-ID %u (sollte %u sein) im Checkpoint-Datensatz" -#: access/transam/xlog.c:10418 +#: access/transam/xlog.c:10401 +#, c-format +msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" +msgstr "fehlender Contrecord bei %X/%X erfolgreich übersprungen, überschrieben am %s" + +#: access/transam/xlog.c:10594 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "konnte Write-Through-Logdatei »%s« nicht fsyncen: %m" -#: access/transam/xlog.c:10424 +#: access/transam/xlog.c:10600 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fdatasyncen: %m" -#: access/transam/xlog.c:10523 access/transam/xlog.c:11061 +#: access/transam/xlog.c:10699 access/transam/xlog.c:11237 #: access/transam/xlogfuncs.c:275 access/transam/xlogfuncs.c:302 #: access/transam/xlogfuncs.c:341 access/transam/xlogfuncs.c:362 #: access/transam/xlogfuncs.c:383 @@ -2718,201 +2728,201 @@ msgid "WAL control functions cannot be executed during recovery." msgstr "Während der Wiederherstellung können keine WAL-Kontrollfunktionen ausgeführt werden." -#: access/transam/xlog.c:10532 access/transam/xlog.c:11070 +#: access/transam/xlog.c:10708 access/transam/xlog.c:11246 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "WAL-Level nicht ausreichend, um Online-Sicherung durchzuführen" -#: access/transam/xlog.c:10533 access/transam/xlog.c:11071 +#: access/transam/xlog.c:10709 access/transam/xlog.c:11247 #: access/transam/xlogfuncs.c:308 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "wal_level muss beim Serverstart auf »replica« oder »logical« gesetzt werden." -#: access/transam/xlog.c:10538 +#: access/transam/xlog.c:10714 #, c-format msgid "backup label too long (max %d bytes)" msgstr "Backup-Label zu lang (maximal %d Bytes)" -#: access/transam/xlog.c:10575 access/transam/xlog.c:10860 -#: access/transam/xlog.c:10898 +#: access/transam/xlog.c:10751 access/transam/xlog.c:11036 +#: access/transam/xlog.c:11074 #, c-format msgid "a backup is already in progress" msgstr "ein Backup läuft bereits" -#: access/transam/xlog.c:10576 +#: access/transam/xlog.c:10752 #, c-format msgid "Run pg_stop_backup() and try again." msgstr "Führen Sie pg_stop_backup() aus und versuchen Sie es nochmal." -#: access/transam/xlog.c:10672 +#: access/transam/xlog.c:10848 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "mit full_page_writes=off erzeugtes WAL wurde seit dem letzten Restart-Punkt zurückgespielt" -#: access/transam/xlog.c:10674 access/transam/xlog.c:11266 +#: access/transam/xlog.c:10850 access/transam/xlog.c:11442 #, c-format msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the master, and then try an online backup again." msgstr "Das bedeutet, dass die aktuelle Datensicherung auf dem Standby-Server verfälscht ist und nicht verwendet werden sollte. Schalten Sie full_page_writes ein, führen Sie CHECKPOINT aus und versuchen Sie dann die Online-Sicherung erneut." -#: access/transam/xlog.c:10757 replication/basebackup.c:1423 +#: access/transam/xlog.c:10933 replication/basebackup.c:1423 #: utils/adt/misc.c:342 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "Ziel für symbolische Verknüpfung »%s« ist zu lang" -#: access/transam/xlog.c:10810 commands/tablespace.c:402 +#: access/transam/xlog.c:10986 commands/tablespace.c:402 #: commands/tablespace.c:578 replication/basebackup.c:1438 utils/adt/misc.c:350 #, c-format msgid "tablespaces are not supported on this platform" msgstr "Tablespaces werden auf dieser Plattform nicht unterstützt" -#: access/transam/xlog.c:10861 access/transam/xlog.c:10899 +#: access/transam/xlog.c:11037 access/transam/xlog.c:11075 #, c-format msgid "If you're sure there is no backup in progress, remove file \"%s\" and try again." msgstr "Wenn Sie sicher sind, dass noch kein Backup läuft, entfernen Sie die Datei »%s« und versuchen Sie es noch einmal." -#: access/transam/xlog.c:11086 +#: access/transam/xlog.c:11262 #, c-format msgid "exclusive backup not in progress" msgstr "es läuft kein exklusives Backup" -#: access/transam/xlog.c:11113 +#: access/transam/xlog.c:11289 #, c-format msgid "a backup is not in progress" msgstr "es läuft kein Backup" -#: access/transam/xlog.c:11199 access/transam/xlog.c:11212 -#: access/transam/xlog.c:11601 access/transam/xlog.c:11607 -#: access/transam/xlog.c:11655 access/transam/xlog.c:11728 +#: access/transam/xlog.c:11375 access/transam/xlog.c:11388 +#: access/transam/xlog.c:11777 access/transam/xlog.c:11783 +#: access/transam/xlog.c:11831 access/transam/xlog.c:11904 #: access/transam/xlogfuncs.c:692 #, c-format msgid "invalid data in file \"%s\"" msgstr "ungültige Daten in Datei »%s«" -#: access/transam/xlog.c:11216 replication/basebackup.c:1271 +#: access/transam/xlog.c:11392 replication/basebackup.c:1271 #, c-format msgid "the standby was promoted during online backup" msgstr "der Standby-Server wurde während der Online-Sicherung zum Primärserver befördert" -#: access/transam/xlog.c:11217 replication/basebackup.c:1272 +#: access/transam/xlog.c:11393 replication/basebackup.c:1272 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Das bedeutet, dass die aktuelle Online-Sicherung verfälscht ist und nicht verwendet werden sollte. Versuchen Sie, eine neue Online-Sicherung durchzuführen." -#: access/transam/xlog.c:11264 +#: access/transam/xlog.c:11440 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "mit full_page_writes=off erzeugtes WAL wurde während der Online-Sicherung zurückgespielt" -#: access/transam/xlog.c:11384 +#: access/transam/xlog.c:11560 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "Basissicherung beendet, warte bis die benötigten WAL-Segmente archiviert sind" -#: access/transam/xlog.c:11396 +#: access/transam/xlog.c:11572 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "warte immer noch, bis alle benötigten WAL-Segmente archiviert sind (%d Sekunden abgelaufen)" -#: access/transam/xlog.c:11398 +#: access/transam/xlog.c:11574 #, c-format msgid "Check that your archive_command is executing properly. You can safely cancel this backup, but the database backup will not be usable without all the WAL segments." msgstr "Prüfen Sie, ob das archive_command korrekt ausgeführt wird. Dieser Sicherungsvorgang kann gefahrlos abgebrochen werden, aber die Datenbanksicherung wird ohne die fehlenden WAL-Segmente nicht benutzbar sein." -#: access/transam/xlog.c:11405 +#: access/transam/xlog.c:11581 #, c-format msgid "all required WAL segments have been archived" msgstr "alle benötigten WAL-Segmente wurden archiviert" -#: access/transam/xlog.c:11409 +#: access/transam/xlog.c:11585 #, c-format msgid "WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup" msgstr "WAL-Archivierung ist nicht eingeschaltet; Sie müssen dafür sorgen, dass alle benötigten WAL-Segmente auf andere Art kopiert werden, um die Sicherung abzuschließen" -#: access/transam/xlog.c:11462 +#: access/transam/xlog.c:11638 #, c-format msgid "aborting backup due to backend exiting before pg_stop_backup was called" msgstr "Backup wird abgebrochen, weil Backend-Prozess beendete, bevor pg_stop_backup aufgerufen wurde" -#: access/transam/xlog.c:11638 +#: access/transam/xlog.c:11814 #, c-format msgid "backup time %s in file \"%s\"" msgstr "Backup-Zeit %s in Datei »%s«" -#: access/transam/xlog.c:11643 +#: access/transam/xlog.c:11819 #, c-format msgid "backup label %s in file \"%s\"" msgstr "Backup-Label %s in Datei »%s«" -#: access/transam/xlog.c:11656 +#: access/transam/xlog.c:11832 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Gelesene Zeitleisten-ID ist %u, aber %u wurde erwartet." -#: access/transam/xlog.c:11660 +#: access/transam/xlog.c:11836 #, c-format msgid "backup timeline %u in file \"%s\"" msgstr "Backup-Zeitleiste %u in Datei »%s«" #. translator: %s is a WAL record description -#: access/transam/xlog.c:11768 +#: access/transam/xlog.c:11944 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "WAL-Redo bei %X/%X für %s" -#: access/transam/xlog.c:11817 +#: access/transam/xlog.c:11993 #, c-format msgid "online backup mode was not canceled" msgstr "Online-Sicherungsmodus wurde nicht storniert" -#: access/transam/xlog.c:11818 +#: access/transam/xlog.c:11994 #, c-format msgid "File \"%s\" could not be renamed to \"%s\": %m." msgstr "Konnte Datei »%s« nicht in »%s« umbenennen: %m." -#: access/transam/xlog.c:11827 access/transam/xlog.c:11839 -#: access/transam/xlog.c:11849 +#: access/transam/xlog.c:12003 access/transam/xlog.c:12015 +#: access/transam/xlog.c:12025 #, c-format msgid "online backup mode canceled" msgstr "Online-Sicherungsmodus storniert" -#: access/transam/xlog.c:11840 +#: access/transam/xlog.c:12016 #, c-format msgid "Files \"%s\" and \"%s\" were renamed to \"%s\" and \"%s\", respectively." msgstr "Dateien »%s« und »%s« wurden in »%s« und »%s« umbenannt." -#: access/transam/xlog.c:11850 +#: access/transam/xlog.c:12026 #, c-format msgid "File \"%s\" was renamed to \"%s\", but file \"%s\" could not be renamed to \"%s\": %m." msgstr "Datei »%s« wurde in »%s« umbenannt, aber Datei »%s« konnte nicht in »%s« umbenannt werden: %m." -#: access/transam/xlog.c:11983 access/transam/xlogutils.c:971 +#: access/transam/xlog.c:12159 access/transam/xlogutils.c:971 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "konnte nicht aus Logsegment %s, Position %u lesen: %m" -#: access/transam/xlog.c:11989 access/transam/xlogutils.c:978 +#: access/transam/xlog.c:12165 access/transam/xlogutils.c:978 #, c-format msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "konnte nicht aus Logsegment %s bei Position %u lesen: %d von %zu gelesen" -#: access/transam/xlog.c:12526 +#: access/transam/xlog.c:12702 #, c-format msgid "WAL receiver process shutdown requested" msgstr "Herunterfahren des WAL-Receiver-Prozesses verlangt" -#: access/transam/xlog.c:12632 +#: access/transam/xlog.c:12808 #, c-format msgid "received promote request" msgstr "Anforderung zum Befördern empfangen" -#: access/transam/xlog.c:12645 +#: access/transam/xlog.c:12821 #, c-format msgid "promote trigger file found: %s" msgstr "Promote-Triggerdatei gefunden: %s" -#: access/transam/xlog.c:12654 +#: access/transam/xlog.c:12830 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "konnte »stat« für Promote-Triggerdatei »%s« nicht ausführen: %m" @@ -2969,16 +2979,16 @@ #: commands/event_trigger.c:1890 commands/extension.c:1944 #: commands/extension.c:2052 commands/extension.c:2337 commands/prepare.c:716 #: executor/execExpr.c:2241 executor/execSRF.c:728 executor/functions.c:1040 -#: foreign/foreign.c:520 libpq/hba.c:2666 replication/logical/launcher.c:1086 +#: foreign/foreign.c:520 libpq/hba.c:2670 replication/logical/launcher.c:1086 #: replication/logical/logicalfuncs.c:157 replication/logical/origin.c:1486 -#: replication/slotfuncs.c:252 replication/walsender.c:3264 +#: replication/slotfuncs.c:252 replication/walsender.c:3273 #: storage/ipc/shmem.c:550 utils/adt/datetime.c:4765 utils/adt/genfile.c:505 #: utils/adt/genfile.c:588 utils/adt/jsonfuncs.c:1792 #: utils/adt/jsonfuncs.c:1904 utils/adt/jsonfuncs.c:2092 #: utils/adt/jsonfuncs.c:2201 utils/adt/jsonfuncs.c:3663 utils/adt/misc.c:215 #: utils/adt/pgstatfuncs.c:476 utils/adt/pgstatfuncs.c:584 #: utils/adt/pgstatfuncs.c:1719 utils/fmgr/funcapi.c:72 utils/misc/guc.c:9676 -#: utils/mmgr/portalmem.c:1141 +#: utils/mmgr/portalmem.c:1145 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "Funktion mit Mengenergebnis in einem Zusammenhang aufgerufen, der keine Mengenergebnisse verarbeiten kann" @@ -2986,13 +2996,13 @@ #: access/transam/xlogfuncs.c:189 commands/event_trigger.c:1336 #: commands/event_trigger.c:1894 commands/extension.c:1948 #: commands/extension.c:2056 commands/extension.c:2341 commands/prepare.c:720 -#: foreign/foreign.c:525 libpq/hba.c:2670 replication/logical/launcher.c:1090 +#: foreign/foreign.c:525 libpq/hba.c:2674 replication/logical/launcher.c:1090 #: replication/logical/logicalfuncs.c:161 replication/logical/origin.c:1490 -#: replication/slotfuncs.c:256 replication/walsender.c:3268 +#: replication/slotfuncs.c:256 replication/walsender.c:3277 #: storage/ipc/shmem.c:554 utils/adt/datetime.c:4769 utils/adt/genfile.c:509 #: utils/adt/genfile.c:592 utils/adt/misc.c:219 utils/adt/pgstatfuncs.c:480 #: utils/adt/pgstatfuncs.c:588 utils/adt/pgstatfuncs.c:1723 -#: utils/misc/guc.c:9680 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1145 +#: utils/misc/guc.c:9680 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1149 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "Materialisierungsmodus wird benötigt, ist aber in diesem Zusammenhang nicht erlaubt" @@ -3059,137 +3069,137 @@ msgid "server did not promote within %d seconds" msgstr "Befördern des Servers wurde nicht innerhalb von %d Sekunden abgeschlossen" -#: access/transam/xlogreader.c:349 +#: access/transam/xlogreader.c:354 #, c-format msgid "invalid record offset at %X/%X" msgstr "ungültiger Datensatz-Offset bei %X/%X" -#: access/transam/xlogreader.c:357 +#: access/transam/xlogreader.c:362 #, c-format msgid "contrecord is requested by %X/%X" msgstr "Contrecord angefordert von %X/%X" -#: access/transam/xlogreader.c:398 access/transam/xlogreader.c:695 +#: access/transam/xlogreader.c:403 access/transam/xlogreader.c:733 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "ungültige Datensatzlänge bei %X/%X: %u erwartet, %u erhalten" -#: access/transam/xlogreader.c:422 +#: access/transam/xlogreader.c:429 #, c-format msgid "record length %u at %X/%X too long" msgstr "Datensatzlänge %u bei %X/%X ist zu lang" -#: access/transam/xlogreader.c:454 +#: access/transam/xlogreader.c:478 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "keine Contrecord-Flag bei %X/%X" -#: access/transam/xlogreader.c:467 +#: access/transam/xlogreader.c:491 #, c-format msgid "invalid contrecord length %u at %X/%X" msgstr "ungültige Contrecord-Länge %u bei %X/%X" -#: access/transam/xlogreader.c:703 +#: access/transam/xlogreader.c:741 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ungültige Resource-Manager-ID %u bei %X/%X" -#: access/transam/xlogreader.c:717 access/transam/xlogreader.c:734 +#: access/transam/xlogreader.c:755 access/transam/xlogreader.c:772 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "Datensatz mit falschem Prev-Link %X/%X bei %X/%X" -#: access/transam/xlogreader.c:771 +#: access/transam/xlogreader.c:809 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "ungültige Resource-Manager-Datenprüfsumme in Datensatz bei %X/%X" -#: access/transam/xlogreader.c:808 +#: access/transam/xlogreader.c:846 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "ungültige magische Zahl %04X in Logsegment %s, Offset %u" -#: access/transam/xlogreader.c:822 access/transam/xlogreader.c:863 +#: access/transam/xlogreader.c:860 access/transam/xlogreader.c:901 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "ungültige Info-Bits %04X in Logsegment %s, Offset %u" -#: access/transam/xlogreader.c:837 +#: access/transam/xlogreader.c:875 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "WAL-Datei ist von einem anderen Datenbanksystem: Datenbanksystemidentifikator in WAL-Datei ist %llu, Datenbanksystemidentifikator in pg_control ist %llu" -#: access/transam/xlogreader.c:845 +#: access/transam/xlogreader.c:883 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL-Datei ist von einem anderen Datenbanksystem: falsche Segmentgröße im Seitenkopf" -#: access/transam/xlogreader.c:851 +#: access/transam/xlogreader.c:889 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL-Datei ist von einem anderen Datenbanksystem: falsche XLOG_BLCKSZ im Seitenkopf" -#: access/transam/xlogreader.c:882 +#: access/transam/xlogreader.c:920 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "unerwartete Pageaddr %X/%X in Logsegment %s, Offset %u" -#: access/transam/xlogreader.c:907 +#: access/transam/xlogreader.c:945 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "Zeitleisten-ID %u außer der Reihe (nach %u) in Logsegment %s, Offset %u" -#: access/transam/xlogreader.c:1247 +#: access/transam/xlogreader.c:1285 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u außer der Reihe bei %X/%X" -#: access/transam/xlogreader.c:1270 +#: access/transam/xlogreader.c:1308 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA gesetzt, aber keine Daten enthalten bei %X/%X" -#: access/transam/xlogreader.c:1277 +#: access/transam/xlogreader.c:1315 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA nicht gesetzt, aber Datenlänge ist %u bei %X/%X" -#: access/transam/xlogreader.c:1313 +#: access/transam/xlogreader.c:1351 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE gesetzt, aber Loch Offset %u Länge %u Block-Abbild-Länge %u bei %X/%X" -#: access/transam/xlogreader.c:1329 +#: access/transam/xlogreader.c:1367 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE nicht gesetzt, aber Loch Offset %u Länge %u bei %X/%X" -#: access/transam/xlogreader.c:1344 +#: access/transam/xlogreader.c:1382 #, c-format msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_IS_COMPRESSED gesetzt, aber Block-Abbild-Länge %u bei %X/%X" -#: access/transam/xlogreader.c:1359 +#: access/transam/xlogreader.c:1397 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X" msgstr "weder BKPIMAGE_HAS_HOLE noch BKPIMAGE_IS_COMPRESSED gesetzt, aber Block-Abbild-Länge ist %u bei %X/%X" -#: access/transam/xlogreader.c:1375 +#: access/transam/xlogreader.c:1413 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL gesetzt, aber keine vorangehende Relation bei %X/%X" -#: access/transam/xlogreader.c:1387 +#: access/transam/xlogreader.c:1425 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ungültige block_id %u bei %X/%X" -#: access/transam/xlogreader.c:1476 +#: access/transam/xlogreader.c:1514 #, c-format msgid "record with invalid length at %X/%X" msgstr "Datensatz mit ungültiger Länge bei %X/%X" -#: access/transam/xlogreader.c:1565 +#: access/transam/xlogreader.c:1603 #, c-format msgid "invalid compressed image at %X/%X, block %d" msgstr "ungültiges komprimiertes Abbild bei %X/%X, Block %d" @@ -3199,12 +3209,12 @@ msgid "-X requires a power of two value between 1 MB and 1 GB" msgstr "-X benötigt eine Zweierpotenz zwischen 1 MB und 1 GB" -#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:842 tcop/postgres.c:3727 +#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:842 tcop/postgres.c:3737 #, c-format msgid "--%s requires a value" msgstr "--%s benötigt einen Wert" -#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:847 tcop/postgres.c:3732 +#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:847 tcop/postgres.c:3742 #, c-format msgid "-c %s requires a value" msgstr "-c %s benötigt einen Wert" @@ -3342,7 +3352,7 @@ #: catalog/aclchk.c:681 catalog/aclchk.c:4103 catalog/aclchk.c:4885 #: catalog/objectaddress.c:965 catalog/pg_largeobject.c:116 -#: storage/large_object/inv_api.c:285 +#: storage/large_object/inv_api.c:287 #, c-format msgid "large object %u does not exist" msgstr "Large Object %u existiert nicht" @@ -3362,18 +3372,18 @@ #: commands/dbcommands.c:1529 commands/extension.c:1735 #: commands/extension.c:1745 commands/extension.c:1755 #: commands/extension.c:3055 commands/foreigncmds.c:539 -#: commands/foreigncmds.c:548 commands/functioncmds.c:571 -#: commands/functioncmds.c:737 commands/functioncmds.c:746 -#: commands/functioncmds.c:755 commands/functioncmds.c:764 -#: commands/functioncmds.c:2015 commands/functioncmds.c:2023 -#: commands/publicationcmds.c:90 commands/publicationcmds.c:133 +#: commands/foreigncmds.c:548 commands/functioncmds.c:572 +#: commands/functioncmds.c:738 commands/functioncmds.c:747 +#: commands/functioncmds.c:756 commands/functioncmds.c:765 +#: commands/functioncmds.c:2017 commands/functioncmds.c:2025 +#: commands/publicationcmds.c:87 commands/publicationcmds.c:130 #: commands/sequence.c:1267 commands/sequence.c:1277 commands/sequence.c:1287 #: commands/sequence.c:1297 commands/sequence.c:1307 commands/sequence.c:1317 #: commands/sequence.c:1327 commands/sequence.c:1337 commands/sequence.c:1347 #: commands/subscriptioncmds.c:105 commands/subscriptioncmds.c:115 #: commands/subscriptioncmds.c:125 commands/subscriptioncmds.c:135 #: commands/subscriptioncmds.c:151 commands/subscriptioncmds.c:162 -#: commands/subscriptioncmds.c:176 commands/tablecmds.c:7120 +#: commands/subscriptioncmds.c:176 commands/tablecmds.c:7223 #: commands/typecmds.c:322 commands/typecmds.c:1357 commands/typecmds.c:1366 #: commands/typecmds.c:1374 commands/typecmds.c:1382 commands/typecmds.c:1390 #: commands/user.c:133 commands/user.c:147 commands/user.c:156 @@ -3403,25 +3413,25 @@ #: catalog/aclchk.c:1561 catalog/catalog.c:506 catalog/objectaddress.c:1427 #: commands/analyze.c:389 commands/copy.c:5088 commands/sequence.c:1702 -#: commands/tablecmds.c:6596 commands/tablecmds.c:6739 -#: commands/tablecmds.c:6789 commands/tablecmds.c:6863 -#: commands/tablecmds.c:6933 commands/tablecmds.c:7045 -#: commands/tablecmds.c:7139 commands/tablecmds.c:7198 -#: commands/tablecmds.c:7287 commands/tablecmds.c:7316 -#: commands/tablecmds.c:7471 commands/tablecmds.c:7553 -#: commands/tablecmds.c:7646 commands/tablecmds.c:7801 -#: commands/tablecmds.c:11122 commands/tablecmds.c:11304 -#: commands/tablecmds.c:11464 commands/tablecmds.c:12548 commands/trigger.c:884 -#: parser/analyze.c:2338 parser/parse_relation.c:713 parser/parse_target.c:1036 +#: commands/tablecmds.c:6686 commands/tablecmds.c:6842 +#: commands/tablecmds.c:6892 commands/tablecmds.c:6966 +#: commands/tablecmds.c:7036 commands/tablecmds.c:7148 +#: commands/tablecmds.c:7242 commands/tablecmds.c:7301 +#: commands/tablecmds.c:7390 commands/tablecmds.c:7419 +#: commands/tablecmds.c:7574 commands/tablecmds.c:7656 +#: commands/tablecmds.c:7749 commands/tablecmds.c:7904 +#: commands/tablecmds.c:11225 commands/tablecmds.c:11406 +#: commands/tablecmds.c:11566 commands/tablecmds.c:12650 commands/trigger.c:884 +#: parser/analyze.c:2338 parser/parse_relation.c:713 parser/parse_target.c:1035 #: parser/parse_type.c:144 parser/parse_utilcmd.c:3324 -#: parser/parse_utilcmd.c:3359 parser/parse_utilcmd.c:3401 utils/adt/acl.c:2869 -#: utils/adt/ruleutils.c:2535 +#: parser/parse_utilcmd.c:3360 parser/parse_utilcmd.c:3402 utils/adt/acl.c:2869 +#: utils/adt/ruleutils.c:2537 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "Spalte »%s« von Relation »%s« existiert nicht" #: catalog/aclchk.c:1824 catalog/objectaddress.c:1267 commands/sequence.c:1140 -#: commands/tablecmds.c:236 commands/tablecmds.c:15921 utils/adt/acl.c:2059 +#: commands/tablecmds.c:236 commands/tablecmds.c:16029 utils/adt/acl.c:2059 #: utils/adt/acl.c:2089 utils/adt/acl.c:2121 utils/adt/acl.c:2153 #: utils/adt/acl.c:2181 utils/adt/acl.c:2211 #, c-format @@ -3836,7 +3846,7 @@ msgid "language with OID %u does not exist" msgstr "Sprache mit OID %u existiert nicht" -#: catalog/aclchk.c:4188 catalog/aclchk.c:4912 commands/collationcmds.c:533 +#: catalog/aclchk.c:4188 catalog/aclchk.c:4912 commands/collationcmds.c:552 #, c-format msgid "schema with OID %u does not exist" msgstr "Schema mit OID %u existiert nicht" @@ -3892,7 +3902,7 @@ msgid "event trigger with OID %u does not exist" msgstr "Ereignistrigger mit OID %u existiert nicht" -#: catalog/aclchk.c:5180 commands/collationcmds.c:367 +#: catalog/aclchk.c:5180 commands/collationcmds.c:386 #, c-format msgid "collation with OID %u does not exist" msgstr "Sortierfolge mit OID %u existiert nicht" @@ -3907,7 +3917,7 @@ msgid "extension with OID %u does not exist" msgstr "Erweiterung mit OID %u existiert nicht" -#: catalog/aclchk.c:5274 commands/publicationcmds.c:794 +#: catalog/aclchk.c:5274 commands/publicationcmds.c:819 #, c-format msgid "publication with OID %u does not exist" msgstr "Publikation mit OID %u existiert nicht" @@ -3957,27 +3967,27 @@ msgid "You can drop %s instead." msgstr "Sie können stattdessen %s löschen." -#: catalog/dependency.c:933 catalog/pg_shdepend.c:696 +#: catalog/dependency.c:933 catalog/pg_shdepend.c:697 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "kann %s nicht löschen, wird vom Datenbanksystem benötigt" -#: catalog/dependency.c:1129 +#: catalog/dependency.c:1133 #, c-format msgid "drop auto-cascades to %s" msgstr "Löschvorgang löscht automatisch %s" -#: catalog/dependency.c:1141 catalog/dependency.c:1150 +#: catalog/dependency.c:1147 catalog/dependency.c:1156 #, c-format msgid "%s depends on %s" msgstr "%s hängt von %s ab" -#: catalog/dependency.c:1162 catalog/dependency.c:1171 +#: catalog/dependency.c:1171 catalog/dependency.c:1180 #, c-format msgid "drop cascades to %s" msgstr "Löschvorgang löscht ebenfalls %s" -#: catalog/dependency.c:1179 catalog/pg_shdepend.c:825 +#: catalog/dependency.c:1188 catalog/pg_shdepend.c:826 #, c-format msgid "" "\n" @@ -3992,15 +4002,15 @@ "\n" "und %d weitere Objekte (Liste im Serverlog)" -#: catalog/dependency.c:1191 +#: catalog/dependency.c:1200 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "kann %s nicht löschen, weil andere Objekte davon abhängen" -#: catalog/dependency.c:1193 catalog/dependency.c:1194 -#: catalog/dependency.c:1200 catalog/dependency.c:1201 -#: catalog/dependency.c:1212 catalog/dependency.c:1213 -#: commands/tablecmds.c:1252 commands/tablecmds.c:13167 +#: catalog/dependency.c:1202 catalog/dependency.c:1203 +#: catalog/dependency.c:1209 catalog/dependency.c:1210 +#: catalog/dependency.c:1221 catalog/dependency.c:1222 +#: commands/tablecmds.c:1258 commands/tablecmds.c:13269 #: commands/tablespace.c:481 commands/user.c:1095 commands/view.c:495 #: libpq/auth.c:334 replication/syncrep.c:1032 storage/lmgr/deadlock.c:1154 #: storage/lmgr/proc.c:1350 utils/adt/acl.c:5332 utils/adt/jsonfuncs.c:614 @@ -4011,25 +4021,25 @@ msgid "%s" msgstr "%s" -#: catalog/dependency.c:1195 catalog/dependency.c:1202 +#: catalog/dependency.c:1204 catalog/dependency.c:1211 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Verwenden Sie DROP ... CASCADE, um die abhängigen Objekte ebenfalls zu löschen." -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1208 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "kann gewünschte Objekte nicht löschen, weil andere Objekte davon abhängen" #. translator: %d always has a value larger than 1 -#: catalog/dependency.c:1208 +#: catalog/dependency.c:1217 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" msgstr[0] "Löschvorgang löscht ebenfalls %d weiteres Objekt" msgstr[1] "Löschvorgang löscht ebenfalls %d weitere Objekte" -#: catalog/dependency.c:1875 +#: catalog/dependency.c:1884 #, c-format msgid "constant of the type %s cannot be used here" msgstr "Konstante vom Typ %s kann hier nicht verwendet werden" @@ -4044,13 +4054,13 @@ msgid "System catalog modifications are currently disallowed." msgstr "Änderungen an Systemkatalogen sind gegenwärtig nicht erlaubt." -#: catalog/heap.c:509 commands/tablecmds.c:2148 commands/tablecmds.c:2748 -#: commands/tablecmds.c:6193 +#: catalog/heap.c:509 commands/tablecmds.c:2173 commands/tablecmds.c:2773 +#: commands/tablecmds.c:6283 #, c-format msgid "tables can have at most %d columns" msgstr "Tabellen können höchstens %d Spalten haben" -#: catalog/heap.c:527 commands/tablecmds.c:6486 +#: catalog/heap.c:527 commands/tablecmds.c:6576 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "Spaltenname »%s« steht im Konflikt mit dem Namen einer Systemspalte" @@ -4087,12 +4097,12 @@ msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "für Spalte »%s« mit sortierbarem Typ %s wurde keine Sortierfolge abgeleitet" -#: catalog/heap.c:1164 catalog/index.c:865 commands/tablecmds.c:3523 +#: catalog/heap.c:1164 catalog/index.c:866 commands/tablecmds.c:3572 #, c-format msgid "relation \"%s\" already exists" msgstr "Relation »%s« existiert bereits" -#: catalog/heap.c:1180 catalog/pg_type.c:428 catalog/pg_type.c:775 +#: catalog/heap.c:1180 catalog/pg_type.c:429 catalog/pg_type.c:783 #: commands/typecmds.c:238 commands/typecmds.c:250 commands/typecmds.c:719 #: commands/typecmds.c:1127 commands/typecmds.c:1339 commands/typecmds.c:2126 #, c-format @@ -4119,8 +4129,8 @@ msgid "check constraint \"%s\" already exists" msgstr "Check-Constraint »%s« existiert bereits" -#: catalog/heap.c:2857 catalog/index.c:879 catalog/pg_constraint.c:668 -#: commands/tablecmds.c:8151 +#: catalog/heap.c:2857 catalog/index.c:880 catalog/pg_constraint.c:668 +#: commands/tablecmds.c:8254 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "Constraint »%s« existiert bereits für Relation »%s«" @@ -4170,14 +4180,14 @@ msgid "generation expression is not immutable" msgstr "Generierungsausdruck ist nicht »immutable«" -#: catalog/heap.c:3085 rewrite/rewriteHandler.c:1193 +#: catalog/heap.c:3085 rewrite/rewriteHandler.c:1216 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "Spalte »%s« hat Typ %s, aber der Vorgabeausdruck hat Typ %s" #: catalog/heap.c:3090 commands/prepare.c:371 parser/parse_node.c:412 -#: parser/parse_target.c:589 parser/parse_target.c:869 -#: parser/parse_target.c:879 rewrite/rewriteHandler.c:1198 +#: parser/parse_target.c:588 parser/parse_target.c:868 +#: parser/parse_target.c:878 rewrite/rewriteHandler.c:1221 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Sie müssen den Ausdruck umschreiben oder eine Typumwandlung vornehmen." @@ -4212,263 +4222,263 @@ msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Leeren Sie die Tabelle »%s« gleichzeitig oder verwenden Sie TRUNCATE ... CASCADE." -#: catalog/index.c:219 parser/parse_utilcmd.c:2131 +#: catalog/index.c:220 parser/parse_utilcmd.c:2131 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "mehrere Primärschlüssel für Tabelle »%s« nicht erlaubt" -#: catalog/index.c:237 +#: catalog/index.c:238 #, c-format msgid "primary keys cannot be expressions" msgstr "Primärschlüssel können keine Ausdrücke sein" -#: catalog/index.c:254 +#: catalog/index.c:255 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "Primärschlüsselspalte »%s« ist nicht als NOT NULL markiert" -#: catalog/index.c:764 catalog/index.c:1902 +#: catalog/index.c:765 catalog/index.c:1912 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "benutzerdefinierte Indexe für Systemkatalogtabellen werden nicht unterstützt" -#: catalog/index.c:804 +#: catalog/index.c:805 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "nichtdeterministische Sortierfolgen werden von Operatorklasse »%s« nicht unterstützt" -#: catalog/index.c:819 +#: catalog/index.c:820 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "nebenläufige Indexerzeugung für Systemkatalogtabellen wird nicht unterstützt" -#: catalog/index.c:828 catalog/index.c:1281 +#: catalog/index.c:829 catalog/index.c:1282 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "nebenläufige Indexerzeugung für Exclusion-Constraints wird nicht unterstützt" -#: catalog/index.c:837 +#: catalog/index.c:838 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "Cluster-globale Indexe können nicht nach initdb erzeugt werden" -#: catalog/index.c:857 commands/createas.c:252 commands/sequence.c:154 +#: catalog/index.c:858 commands/createas.c:252 commands/sequence.c:154 #: parser/parse_utilcmd.c:211 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "Relation »%s« existiert bereits, wird übersprungen" -#: catalog/index.c:907 +#: catalog/index.c:908 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "Index-OID-Wert für pg_class ist im Binary-Upgrade-Modus nicht gesetzt" -#: catalog/index.c:2187 +#: catalog/index.c:2208 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY muss die erste Aktion in einer Transaktion sein" -#: catalog/index.c:2918 +#: catalog/index.c:2939 #, c-format msgid "building index \"%s\" on table \"%s\" serially" msgstr "baue Index »%s« von Tabelle »%s« seriell" -#: catalog/index.c:2923 +#: catalog/index.c:2944 #, c-format msgid "building index \"%s\" on table \"%s\" with request for %d parallel worker" msgid_plural "building index \"%s\" on table \"%s\" with request for %d parallel workers" msgstr[0] "baue Index »%s« von Tabelle »%s« mit angefordertem %d parallelen Arbeitsprozess" msgstr[1] "baue Index »%s« von Tabelle »%s« mit angeforderten %d parallelen Arbeitsprozessen" -#: catalog/index.c:3540 +#: catalog/index.c:3561 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "kann temporäre Tabellen anderer Sitzungen nicht reindizieren" -#: catalog/index.c:3551 commands/indexcmds.c:3005 +#: catalog/index.c:3572 commands/indexcmds.c:3005 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "ungültiger Index einer TOAST-Tabelle kann nicht reindiziert werden" -#: catalog/index.c:3673 +#: catalog/index.c:3694 #, c-format msgid "index \"%s\" was reindexed" msgstr "Index »%s« wurde neu indiziert" -#: catalog/index.c:3749 commands/indexcmds.c:3026 +#: catalog/index.c:3770 commands/indexcmds.c:3026 #, c-format msgid "REINDEX of partitioned tables is not yet implemented, skipping \"%s\"" msgstr "REINDEX von partitionierten Tabellen ist noch nicht implementiert, »%s« wird übersprungen" -#: catalog/index.c:3804 +#: catalog/index.c:3825 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "ungültiger Index »%s.%s« einer TOAST-Tabelle kann nicht reindizert werden, wird übersprungen" -#: catalog/namespace.c:257 catalog/namespace.c:461 catalog/namespace.c:553 +#: catalog/namespace.c:258 catalog/namespace.c:462 catalog/namespace.c:554 #: commands/trigger.c:5072 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "Verweise auf andere Datenbanken sind nicht implementiert: »%s.%s.%s«" -#: catalog/namespace.c:314 +#: catalog/namespace.c:315 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "temporäre Tabellen können keinen Schemanamen angeben" -#: catalog/namespace.c:395 +#: catalog/namespace.c:396 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "konnte Sperre für Relation »%s.%s« nicht setzen" -#: catalog/namespace.c:400 commands/lockcmds.c:143 commands/lockcmds.c:228 +#: catalog/namespace.c:401 commands/lockcmds.c:143 commands/lockcmds.c:228 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "konnte Sperre für Relation »%s« nicht setzen" -#: catalog/namespace.c:428 parser/parse_relation.c:1354 +#: catalog/namespace.c:429 parser/parse_relation.c:1354 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "Relation »%s.%s« existiert nicht" -#: catalog/namespace.c:433 parser/parse_relation.c:1367 +#: catalog/namespace.c:434 parser/parse_relation.c:1367 #: parser/parse_relation.c:1375 #, c-format msgid "relation \"%s\" does not exist" msgstr "Relation »%s« existiert nicht" -#: catalog/namespace.c:499 catalog/namespace.c:3030 commands/extension.c:1519 +#: catalog/namespace.c:500 catalog/namespace.c:3031 commands/extension.c:1519 #: commands/extension.c:1525 #, c-format msgid "no schema has been selected to create in" msgstr "kein Schema für die Objekterzeugung ausgewählt" -#: catalog/namespace.c:651 catalog/namespace.c:664 +#: catalog/namespace.c:652 catalog/namespace.c:665 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "kann keine Relationen in temporären Schemas anderer Sitzungen erzeugen" -#: catalog/namespace.c:655 +#: catalog/namespace.c:656 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "kann keine temporäre Relation in einem nicht-temporären Schema erzeugen" -#: catalog/namespace.c:670 +#: catalog/namespace.c:671 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "nur temporäre Relationen können in temporären Schemas erzeugt werden" -#: catalog/namespace.c:2222 +#: catalog/namespace.c:2223 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "Statistikobjekt »%s« existiert nicht" -#: catalog/namespace.c:2345 +#: catalog/namespace.c:2346 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "Textsucheparser »%s« existiert nicht" -#: catalog/namespace.c:2471 +#: catalog/namespace.c:2472 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "Textsuchewörterbuch »%s« existiert nicht" -#: catalog/namespace.c:2598 +#: catalog/namespace.c:2599 #, c-format msgid "text search template \"%s\" does not exist" msgstr "Textsuchevorlage »%s« existiert nicht" -#: catalog/namespace.c:2724 commands/tsearchcmds.c:1194 +#: catalog/namespace.c:2725 commands/tsearchcmds.c:1194 #: utils/cache/ts_cache.c:617 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "Textsuchekonfiguration »%s« existiert nicht" -#: catalog/namespace.c:2837 parser/parse_expr.c:872 parser/parse_target.c:1228 +#: catalog/namespace.c:2838 parser/parse_expr.c:872 parser/parse_target.c:1227 #, c-format msgid "cross-database references are not implemented: %s" msgstr "Verweise auf andere Datenbanken sind nicht implementiert: %s" -#: catalog/namespace.c:2843 gram.y:14982 gram.y:16436 parser/parse_expr.c:879 -#: parser/parse_target.c:1235 +#: catalog/namespace.c:2844 gram.y:14982 gram.y:16451 parser/parse_expr.c:879 +#: parser/parse_target.c:1234 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "falscher qualifizierter Name (zu viele Namensteile): %s" -#: catalog/namespace.c:2973 +#: catalog/namespace.c:2974 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "Objekte können nicht in oder aus temporären Schemas verschoben werden" -#: catalog/namespace.c:2979 +#: catalog/namespace.c:2980 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "Objekte können nicht in oder aus TOAST-Schemas verschoben werden" -#: catalog/namespace.c:3052 commands/schemacmds.c:256 commands/schemacmds.c:336 -#: commands/tablecmds.c:1197 +#: catalog/namespace.c:3053 commands/schemacmds.c:256 commands/schemacmds.c:336 +#: commands/tablecmds.c:1203 #, c-format msgid "schema \"%s\" does not exist" msgstr "Schema »%s« existiert nicht" -#: catalog/namespace.c:3083 +#: catalog/namespace.c:3084 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "falscher Relationsname (zu viele Namensteile): %s" -#: catalog/namespace.c:3646 +#: catalog/namespace.c:3647 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "Sortierfolge »%s« für Kodierung »%s« existiert nicht" -#: catalog/namespace.c:3701 +#: catalog/namespace.c:3702 #, c-format msgid "conversion \"%s\" does not exist" msgstr "Konversion »%s« existiert nicht" -#: catalog/namespace.c:3965 +#: catalog/namespace.c:3966 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "keine Berechtigung, um temporäre Tabellen in Datenbank »%s« zu erzeugen" -#: catalog/namespace.c:3981 +#: catalog/namespace.c:3982 #, c-format msgid "cannot create temporary tables during recovery" msgstr "während der Wiederherstellung können keine temporären Tabellen erzeugt werden" -#: catalog/namespace.c:3987 +#: catalog/namespace.c:3988 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "während einer parallelen Operation können keine temporären Tabellen erzeugt werden" -#: catalog/namespace.c:4286 commands/tablespace.c:1217 commands/variable.c:64 +#: catalog/namespace.c:4289 commands/tablespace.c:1213 commands/variable.c:64 #: utils/misc/guc.c:11167 utils/misc/guc.c:11245 #, c-format msgid "List syntax is invalid." msgstr "Die Listensyntax ist ungültig." -#: catalog/objectaddress.c:1275 catalog/pg_publication.c:57 +#: catalog/objectaddress.c:1275 catalog/pg_publication.c:58 #: commands/policy.c:96 commands/policy.c:376 commands/tablecmds.c:230 -#: commands/tablecmds.c:272 commands/tablecmds.c:1992 commands/tablecmds.c:5635 -#: commands/tablecmds.c:11239 +#: commands/tablecmds.c:272 commands/tablecmds.c:2017 commands/tablecmds.c:5725 +#: commands/tablecmds.c:11342 #, c-format msgid "\"%s\" is not a table" msgstr "»%s« ist keine Tabelle" #: catalog/objectaddress.c:1282 commands/tablecmds.c:242 -#: commands/tablecmds.c:5674 commands/tablecmds.c:15926 commands/view.c:119 +#: commands/tablecmds.c:5764 commands/tablecmds.c:16034 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "»%s« ist keine Sicht" #: catalog/objectaddress.c:1289 commands/matview.c:175 commands/tablecmds.c:248 -#: commands/tablecmds.c:15931 +#: commands/tablecmds.c:16039 #, c-format msgid "\"%s\" is not a materialized view" msgstr "»%s« ist keine materialisierte Sicht" #: catalog/objectaddress.c:1296 commands/tablecmds.c:266 -#: commands/tablecmds.c:5677 commands/tablecmds.c:15936 +#: commands/tablecmds.c:5767 commands/tablecmds.c:16044 #, c-format msgid "\"%s\" is not a foreign table" msgstr "»%s« ist keine Fremdtabelle" @@ -4488,8 +4498,8 @@ msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "Vorgabewert für Spalte »%s« von Relation »%s« existiert nicht" -#: catalog/objectaddress.c:1550 commands/functioncmds.c:134 -#: commands/tablecmds.c:258 commands/typecmds.c:263 commands/typecmds.c:3282 +#: catalog/objectaddress.c:1550 commands/functioncmds.c:135 +#: commands/tablecmds.c:258 commands/typecmds.c:263 commands/typecmds.c:3283 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:845 #: utils/adt/acl.c:4435 #, c-format @@ -4576,12 +4586,12 @@ msgid "argument list length must be exactly %d" msgstr "Länge der Argumentliste muss genau %d sein" -#: catalog/objectaddress.c:2393 libpq/be-fsstubs.c:321 +#: catalog/objectaddress.c:2393 libpq/be-fsstubs.c:318 #, c-format msgid "must be owner of large object %u" msgstr "Berechtigung nur für Eigentümer des Large Object %u" -#: catalog/objectaddress.c:2408 commands/functioncmds.c:1446 +#: catalog/objectaddress.c:2408 commands/functioncmds.c:1448 #, c-format msgid "must be owner of type %s or type %s" msgstr "Berechtigung nur für Eigentümer des Typs %s oder des Typs %s" @@ -4596,80 +4606,80 @@ msgid "must have CREATEROLE privilege" msgstr "Berechtigung nur mit CREATEROLE-Privileg" -#: catalog/objectaddress.c:2544 +#: catalog/objectaddress.c:2545 #, c-format msgid "unrecognized object type \"%s\"" msgstr "unbekannter Objekttyp »%s«" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2772 +#: catalog/objectaddress.c:2773 #, c-format msgid "column %s of %s" msgstr "Spalte %s von %s" -#: catalog/objectaddress.c:2782 +#: catalog/objectaddress.c:2783 #, c-format msgid "function %s" msgstr "Funktion %s" -#: catalog/objectaddress.c:2787 +#: catalog/objectaddress.c:2788 #, c-format msgid "type %s" msgstr "Typ %s" -#: catalog/objectaddress.c:2817 +#: catalog/objectaddress.c:2818 #, c-format msgid "cast from %s to %s" msgstr "Typumwandlung von %s in %s" -#: catalog/objectaddress.c:2845 +#: catalog/objectaddress.c:2846 #, c-format msgid "collation %s" msgstr "Sortierfolge %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2871 +#: catalog/objectaddress.c:2872 #, c-format msgid "constraint %s on %s" msgstr "Constraint %s für %s" -#: catalog/objectaddress.c:2877 +#: catalog/objectaddress.c:2878 #, c-format msgid "constraint %s" msgstr "Constraint %s" -#: catalog/objectaddress.c:2904 +#: catalog/objectaddress.c:2905 #, c-format msgid "conversion %s" msgstr "Konversion %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:2943 +#: catalog/objectaddress.c:2944 #, c-format msgid "default value for %s" msgstr "Vorgabewert für %s" -#: catalog/objectaddress.c:2952 +#: catalog/objectaddress.c:2953 #, c-format msgid "language %s" msgstr "Sprache %s" -#: catalog/objectaddress.c:2957 +#: catalog/objectaddress.c:2958 #, c-format msgid "large object %u" msgstr "Large Object %u" -#: catalog/objectaddress.c:2962 +#: catalog/objectaddress.c:2963 #, c-format msgid "operator %s" msgstr "Operator %s" -#: catalog/objectaddress.c:2994 +#: catalog/objectaddress.c:2995 #, c-format msgid "operator class %s for access method %s" msgstr "Operatorklasse %s für Zugriffsmethode %s" -#: catalog/objectaddress.c:3017 +#: catalog/objectaddress.c:3018 #, c-format msgid "access method %s" msgstr "Zugriffsmethode %s" @@ -4678,7 +4688,7 @@ #. first two %s's are data type names, the third %s is the #. description of the operator family, and the last %s is the #. textual form of the operator with arguments. -#: catalog/objectaddress.c:3059 +#: catalog/objectaddress.c:3060 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "Operator %d (%s, %s) von %s: %s" @@ -4687,221 +4697,221 @@ #. are data type names, the third %s is the description of the #. operator family, and the last %s is the textual form of the #. function with arguments. -#: catalog/objectaddress.c:3109 +#: catalog/objectaddress.c:3110 #, c-format msgid "function %d (%s, %s) of %s: %s" msgstr "Funktion %d (%s, %s) von %s: %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3153 +#: catalog/objectaddress.c:3154 #, c-format msgid "rule %s on %s" msgstr "Regel %s für %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3191 +#: catalog/objectaddress.c:3192 #, c-format msgid "trigger %s on %s" msgstr "Trigger %s für %s" -#: catalog/objectaddress.c:3207 +#: catalog/objectaddress.c:3208 #, c-format msgid "schema %s" msgstr "Schema %s" -#: catalog/objectaddress.c:3230 +#: catalog/objectaddress.c:3231 #, c-format msgid "statistics object %s" msgstr "Statistikobjekt %s" -#: catalog/objectaddress.c:3257 +#: catalog/objectaddress.c:3258 #, c-format msgid "text search parser %s" msgstr "Textsucheparser %s" -#: catalog/objectaddress.c:3283 +#: catalog/objectaddress.c:3284 #, c-format msgid "text search dictionary %s" msgstr "Textsuchewörterbuch %s" -#: catalog/objectaddress.c:3309 +#: catalog/objectaddress.c:3310 #, c-format msgid "text search template %s" msgstr "Textsuchevorlage %s" -#: catalog/objectaddress.c:3335 +#: catalog/objectaddress.c:3336 #, c-format msgid "text search configuration %s" msgstr "Textsuchekonfiguration %s" -#: catalog/objectaddress.c:3344 +#: catalog/objectaddress.c:3345 #, c-format msgid "role %s" msgstr "Rolle %s" -#: catalog/objectaddress.c:3357 +#: catalog/objectaddress.c:3358 #, c-format msgid "database %s" msgstr "Datenbank %s" -#: catalog/objectaddress.c:3369 +#: catalog/objectaddress.c:3370 #, c-format msgid "tablespace %s" msgstr "Tablespace %s" -#: catalog/objectaddress.c:3378 +#: catalog/objectaddress.c:3379 #, c-format msgid "foreign-data wrapper %s" msgstr "Fremddaten-Wrapper %s" -#: catalog/objectaddress.c:3387 +#: catalog/objectaddress.c:3388 #, c-format msgid "server %s" msgstr "Server %s" -#: catalog/objectaddress.c:3415 +#: catalog/objectaddress.c:3416 #, c-format msgid "user mapping for %s on server %s" msgstr "Benutzerabbildung für %s auf Server %s" -#: catalog/objectaddress.c:3460 +#: catalog/objectaddress.c:3461 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "Vorgabeprivilegien für neue Relationen von Rolle %s in Schema %s" -#: catalog/objectaddress.c:3464 +#: catalog/objectaddress.c:3465 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "Vorgabeprivilegien für neue Relationen von Rolle %s" -#: catalog/objectaddress.c:3470 +#: catalog/objectaddress.c:3471 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "Vorgabeprivilegien für neue Sequenzen von Rolle %s in Schema %s" -#: catalog/objectaddress.c:3474 +#: catalog/objectaddress.c:3475 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "Vorgabeprivilegien für neue Sequenzen von Rolle %s" -#: catalog/objectaddress.c:3480 +#: catalog/objectaddress.c:3481 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "Vorgabeprivilegien für neue Funktionen von Rolle %s in Schema %s" -#: catalog/objectaddress.c:3484 +#: catalog/objectaddress.c:3485 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "Vorgabeprivilegien für neue Funktionen von Rolle %s" -#: catalog/objectaddress.c:3490 +#: catalog/objectaddress.c:3491 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "Vorgabeprivilegien für neue Typen von Rolle %s in Schema %s" -#: catalog/objectaddress.c:3494 +#: catalog/objectaddress.c:3495 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "Vorgabeprivilegien für neue Typen von Rolle %s" -#: catalog/objectaddress.c:3500 +#: catalog/objectaddress.c:3501 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "Vorgabeprivilegien für neue Schemas von Rolle %s" -#: catalog/objectaddress.c:3507 +#: catalog/objectaddress.c:3508 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "Vorgabeprivilegien von Rolle %s in Schema %s" -#: catalog/objectaddress.c:3511 +#: catalog/objectaddress.c:3512 #, c-format msgid "default privileges belonging to role %s" msgstr "Vorgabeprivilegien von Rolle %s" -#: catalog/objectaddress.c:3529 +#: catalog/objectaddress.c:3530 #, c-format msgid "extension %s" msgstr "Erweiterung %s" -#: catalog/objectaddress.c:3542 +#: catalog/objectaddress.c:3543 #, c-format msgid "event trigger %s" msgstr "Ereignistrigger %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3578 +#: catalog/objectaddress.c:3579 #, c-format msgid "policy %s on %s" msgstr "Policy %s für %s" -#: catalog/objectaddress.c:3588 +#: catalog/objectaddress.c:3589 #, c-format msgid "publication %s" msgstr "Publikation %s" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:3614 +#: catalog/objectaddress.c:3615 #, c-format msgid "publication of %s in publication %s" msgstr "Publikation von %s in Publikation %s" -#: catalog/objectaddress.c:3623 +#: catalog/objectaddress.c:3624 #, c-format msgid "subscription %s" msgstr "Subskription %s" -#: catalog/objectaddress.c:3642 +#: catalog/objectaddress.c:3643 #, c-format msgid "transform for %s language %s" msgstr "Transformation %s für Sprache %s" -#: catalog/objectaddress.c:3705 +#: catalog/objectaddress.c:3706 #, c-format msgid "table %s" msgstr "Tabelle %s" -#: catalog/objectaddress.c:3710 +#: catalog/objectaddress.c:3711 #, c-format msgid "index %s" msgstr "Index %s" -#: catalog/objectaddress.c:3714 +#: catalog/objectaddress.c:3715 #, c-format msgid "sequence %s" msgstr "Sequenz %s" -#: catalog/objectaddress.c:3718 +#: catalog/objectaddress.c:3719 #, c-format msgid "toast table %s" msgstr "TOAST-Tabelle %s" -#: catalog/objectaddress.c:3722 +#: catalog/objectaddress.c:3723 #, c-format msgid "view %s" msgstr "Sicht %s" -#: catalog/objectaddress.c:3726 +#: catalog/objectaddress.c:3727 #, c-format msgid "materialized view %s" msgstr "materialisierte Sicht %s" -#: catalog/objectaddress.c:3730 +#: catalog/objectaddress.c:3731 #, c-format msgid "composite type %s" msgstr "zusammengesetzter Typ %s" -#: catalog/objectaddress.c:3734 +#: catalog/objectaddress.c:3735 #, c-format msgid "foreign table %s" msgstr "Fremdtabelle %s" -#: catalog/objectaddress.c:3739 +#: catalog/objectaddress.c:3740 #, c-format msgid "relation %s" msgstr "Relation %s" -#: catalog/objectaddress.c:3776 +#: catalog/objectaddress.c:3777 #, c-format msgid "operator family %s for access method %s" msgstr "Operatorfamilie %s für Zugriffsmethode %s" @@ -4958,7 +4968,7 @@ msgid "return type of combine function %s is not %s" msgstr "Rückgabetyp der Kombinierfunktion %s ist nicht %s" -#: catalog/pg_aggregate.c:438 executor/nodeAgg.c:4201 +#: catalog/pg_aggregate.c:438 executor/nodeAgg.c:4194 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "Kombinierfunktion mit Übergangstyp %s darf nicht als STRICT deklariert sein" @@ -5018,7 +5028,7 @@ msgid "cannot change number of direct arguments of an aggregate function" msgstr "die Anzahl direkter Argumente einer Aggregatfunktion kann nicht geändert werden" -#: catalog/pg_aggregate.c:870 commands/functioncmds.c:668 +#: catalog/pg_aggregate.c:870 commands/functioncmds.c:669 #: commands/typecmds.c:1660 commands/typecmds.c:1706 commands/typecmds.c:1758 #: commands/typecmds.c:1795 commands/typecmds.c:1829 commands/typecmds.c:1863 #: commands/typecmds.c:1897 commands/typecmds.c:1974 commands/typecmds.c:2016 @@ -5094,12 +5104,12 @@ msgid "default conversion for %s to %s already exists" msgstr "Standardumwandlung von %s nach %s existiert bereits" -#: catalog/pg_depend.c:162 commands/extension.c:3332 +#: catalog/pg_depend.c:169 commands/extension.c:3332 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "%s ist schon Mitglied der Erweiterung »%s«" -#: catalog/pg_depend.c:538 +#: catalog/pg_depend.c:545 #, c-format msgid "cannot remove dependency on %s because it is a system object" msgstr "kann Abhängigkeit von %s nicht entfernen, weil es ein Systemobjekt ist" @@ -5296,43 +5306,43 @@ msgid "SQL function \"%s\"" msgstr "SQL-Funktion »%s«" -#: catalog/pg_publication.c:59 +#: catalog/pg_publication.c:60 #, c-format msgid "Only tables can be added to publications." msgstr "Nur Tabellen können Teil einer Publikationen sein." -#: catalog/pg_publication.c:65 +#: catalog/pg_publication.c:66 #, c-format msgid "\"%s\" is a system table" msgstr "»%s« ist eine Systemtabelle" -#: catalog/pg_publication.c:67 +#: catalog/pg_publication.c:68 #, c-format msgid "System tables cannot be added to publications." msgstr "Systemtabellen können nicht Teil einer Publikationen sein." -#: catalog/pg_publication.c:73 +#: catalog/pg_publication.c:74 #, c-format msgid "table \"%s\" cannot be replicated" msgstr "Tabelle »%s« kann nicht repliziert werden" -#: catalog/pg_publication.c:75 +#: catalog/pg_publication.c:76 #, c-format msgid "Temporary and unlogged relations cannot be replicated." msgstr "Temporäre und ungeloggte Tabellen können nicht repliziert werden." -#: catalog/pg_publication.c:174 +#: catalog/pg_publication.c:251 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "Relation »%s« ist schon Mitglied der Publikation »%s«" -#: catalog/pg_publication.c:470 commands/publicationcmds.c:451 -#: commands/publicationcmds.c:762 +#: catalog/pg_publication.c:533 commands/publicationcmds.c:458 +#: commands/publicationcmds.c:787 #, c-format msgid "publication \"%s\" does not exist" msgstr "Publikation »%s« existiert nicht" -#: catalog/pg_shdepend.c:832 +#: catalog/pg_shdepend.c:833 #, c-format msgid "" "\n" @@ -5347,55 +5357,55 @@ "\n" "und Objekte in %d anderen Datenbanken (Liste im Serverlog)" -#: catalog/pg_shdepend.c:1138 +#: catalog/pg_shdepend.c:1139 #, c-format msgid "role %u was concurrently dropped" msgstr "Rolle %u wurde gleichzeitig gelöscht" -#: catalog/pg_shdepend.c:1150 +#: catalog/pg_shdepend.c:1151 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "Tablespace %u wurde gleichzeitig gelöscht" -#: catalog/pg_shdepend.c:1164 +#: catalog/pg_shdepend.c:1165 #, c-format msgid "database %u was concurrently dropped" msgstr "Datenbank %u wurde gleichzeitig gelöscht" -#: catalog/pg_shdepend.c:1209 +#: catalog/pg_shdepend.c:1216 #, c-format msgid "owner of %s" msgstr "Eigentümer von %s" -#: catalog/pg_shdepend.c:1211 +#: catalog/pg_shdepend.c:1218 #, c-format msgid "privileges for %s" msgstr "Privilegien für %s" -#: catalog/pg_shdepend.c:1213 +#: catalog/pg_shdepend.c:1220 #, c-format msgid "target of %s" msgstr "Ziel von %s" -#: catalog/pg_shdepend.c:1215 +#: catalog/pg_shdepend.c:1222 #, c-format msgid "tablespace for %s" msgstr "Tablespace für %s" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1223 +#: catalog/pg_shdepend.c:1230 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" msgstr[0] "%d Objekt in %s" msgstr[1] "%d Objekte in %s" -#: catalog/pg_shdepend.c:1334 +#: catalog/pg_shdepend.c:1341 #, c-format msgid "cannot drop objects owned by %s because they are required by the database system" msgstr "kann Objekte, die %s gehören, nicht löschen, weil sie vom Datenbanksystem benötigt werden" -#: catalog/pg_shdepend.c:1481 +#: catalog/pg_shdepend.c:1488 #, c-format msgid "cannot reassign ownership of objects owned by %s because they are required by the database system" msgstr "kann den Eigentümer von den Objekten, die %s gehören, nicht ändern, weil die Objekte vom Datenbanksystem benötigt werden" @@ -5406,49 +5416,49 @@ msgid "subscription \"%s\" does not exist" msgstr "Subskription »%s« existiert nicht" -#: catalog/pg_type.c:131 catalog/pg_type.c:468 +#: catalog/pg_type.c:131 catalog/pg_type.c:469 #, c-format msgid "pg_type OID value not set when in binary upgrade mode" msgstr "OID-Wert für pg_type ist im Binary-Upgrade-Modus nicht gesetzt" -#: catalog/pg_type.c:249 +#: catalog/pg_type.c:250 #, c-format msgid "invalid type internal size %d" msgstr "ungültige interne Typgröße %d" -#: catalog/pg_type.c:265 catalog/pg_type.c:273 catalog/pg_type.c:281 -#: catalog/pg_type.c:290 +#: catalog/pg_type.c:266 catalog/pg_type.c:274 catalog/pg_type.c:282 +#: catalog/pg_type.c:291 #, c-format msgid "alignment \"%c\" is invalid for passed-by-value type of size %d" msgstr "Ausrichtung »%c« ist ungültig für Typen mit Wertübergabe mit Größe %d" -#: catalog/pg_type.c:297 +#: catalog/pg_type.c:298 #, c-format msgid "internal size %d is invalid for passed-by-value type" msgstr "interne Größe %d ist ungültig für Typen mit Wertübergabe" -#: catalog/pg_type.c:307 catalog/pg_type.c:313 +#: catalog/pg_type.c:308 catalog/pg_type.c:314 #, c-format msgid "alignment \"%c\" is invalid for variable-length type" msgstr "Ausrichtung »%c« ist ungültig für Typen variabler Länge" -#: catalog/pg_type.c:321 commands/typecmds.c:3734 +#: catalog/pg_type.c:322 commands/typecmds.c:3735 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "Typen mit fester Größe müssen Storage-Typ PLAIN haben" -#: catalog/pg_type.c:839 +#: catalog/pg_type.c:847 #, c-format msgid "could not form array type name for type \"%s\"" msgstr "konnte keinen Arraytypnamen für Datentyp »%s« erzeugen" -#: catalog/storage.c:450 storage/buffer/bufmgr.c:935 +#: catalog/storage.c:477 storage/buffer/bufmgr.c:944 #, c-format msgid "invalid page in block %u of relation %s" msgstr "ungültige Seite in Block %u von Relation %s" -#: catalog/toasting.c:106 commands/indexcmds.c:639 commands/tablecmds.c:5647 -#: commands/tablecmds.c:15791 +#: catalog/toasting.c:112 commands/indexcmds.c:639 commands/tablecmds.c:5737 +#: commands/tablecmds.c:15899 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "»%s« ist keine Tabelle oder materialisierte Sicht" @@ -5533,7 +5543,7 @@ msgid "must specify both or neither of serialization and deserialization functions" msgstr "Serialisierungs- und Deserialisierungsfunktionen müssen zusammen angegeben werden" -#: commands/aggregatecmds.c:436 commands/functioncmds.c:616 +#: commands/aggregatecmds.c:436 commands/functioncmds.c:617 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "Parameter »parallel« muss SAFE, RESTRICTED oder UNSAFE sein" @@ -5563,7 +5573,7 @@ msgid "language \"%s\" already exists" msgstr "Sprache »%s« existiert bereits" -#: commands/alter.c:96 commands/publicationcmds.c:183 +#: commands/alter.c:96 commands/publicationcmds.c:180 #, c-format msgid "publication \"%s\" already exists" msgstr "Publikation »%s« existiert bereits" @@ -5676,62 +5686,62 @@ msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "Spalte »%s« von Relation »%s« erscheint mehrmals" -#: commands/analyze.c:710 +#: commands/analyze.c:726 #, c-format msgid "automatic analyze of table \"%s.%s.%s\" system usage: %s" msgstr "automatisches Analysieren von Tabelle »%s.%s.%s« Systembenutzung: %s" -#: commands/analyze.c:1179 +#: commands/analyze.c:1184 #, c-format msgid "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead rows; %d rows in sample, %.0f estimated total rows" msgstr "»%s«: %d von %u Seiten gelesen, enthalten %.0f lebende Zeilen und %.0f tote Zeilen; %d Zeilen in Stichprobe, schätzungsweise %.0f Zeilen insgesamt" -#: commands/analyze.c:1259 +#: commands/analyze.c:1264 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables" msgstr "überspringe Analysieren des Vererbungsbaums »%s.%s« --- dieser Vererbungsbaum enthält keine abgeleiteten Tabellen" -#: commands/analyze.c:1357 +#: commands/analyze.c:1362 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "überspringe Analysieren des Vererbungsbaums »%s.%s« --- dieser Vererbungsbaum enthält keine analysierbaren abgeleiteten Tabellen" -#: commands/async.c:643 +#: commands/async.c:650 #, c-format msgid "channel name cannot be empty" msgstr "Kanalname kann nicht leer sein" -#: commands/async.c:649 +#: commands/async.c:656 #, c-format msgid "channel name too long" msgstr "Kanalname zu lang" -#: commands/async.c:654 +#: commands/async.c:661 #, c-format msgid "payload string too long" msgstr "Payload-Zeichenkette zu lang" -#: commands/async.c:873 +#: commands/async.c:880 #, c-format msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "PREPARE kann nicht in einer Transaktion ausgeführt werden, die LISTEN, UNLISTEN oder NOTIFY ausgeführt hat" -#: commands/async.c:979 +#: commands/async.c:984 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "zu viele Benachrichtigungen in NOTIFY-Schlange" -#: commands/async.c:1650 +#: commands/async.c:1620 #, c-format msgid "NOTIFY queue is %.0f%% full" msgstr "NOTIFY-Schlange ist %.0f%% voll" -#: commands/async.c:1652 +#: commands/async.c:1622 #, c-format msgid "The server process with PID %d is among those with the oldest transactions." msgstr "Der Serverprozess mit PID %d gehört zu denen mit den ältesten Transaktionen." -#: commands/async.c:1655 +#: commands/async.c:1625 #, c-format msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction." msgstr "Die NOTIFY-Schlange kann erst geleert werden, wenn dieser Prozess seine aktuelle Transaktion beendet." @@ -5751,7 +5761,7 @@ msgid "there is no previously clustered index for table \"%s\"" msgstr "es gibt keinen bereits geclusterten Index für Tabelle »%s«" -#: commands/cluster.c:165 commands/tablecmds.c:13004 commands/tablecmds.c:14874 +#: commands/cluster.c:165 commands/tablecmds.c:13106 commands/tablecmds.c:14982 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "Index »%s« für Tabelle »%s« existiert nicht" @@ -5766,7 +5776,7 @@ msgid "cannot vacuum temporary tables of other sessions" msgstr "temporäre Tabellen anderer Sitzungen können nicht gevacuumt werden" -#: commands/cluster.c:432 commands/tablecmds.c:14884 +#: commands/cluster.c:432 commands/tablecmds.c:14992 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "»%s« ist kein Index für Tabelle »%s«" @@ -5845,43 +5855,48 @@ msgid "nondeterministic collations not supported with this provider" msgstr "nichtdeterministische Sortierfolgen werden von diesem Provider nicht unterstützt" -#: commands/collationcmds.c:265 +#: commands/collationcmds.c:226 +#, c-format +msgid "current database's encoding is not supported with this provider" +msgstr "Kodierung der aktuellen Datenbank wird von diesem Provider nicht unterstützt" + +#: commands/collationcmds.c:284 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "Sortierfolge »%s« für Kodierung »%s« existiert bereits in Schema »%s«" -#: commands/collationcmds.c:276 +#: commands/collationcmds.c:295 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "Sortierfolge »%s« existiert bereits in Schema »%s«" -#: commands/collationcmds.c:324 +#: commands/collationcmds.c:343 #, c-format msgid "changing version from %s to %s" msgstr "Version wird von %s in %s geändert" -#: commands/collationcmds.c:339 +#: commands/collationcmds.c:358 #, c-format msgid "version has not changed" msgstr "Version hat sich nicht geändert" -#: commands/collationcmds.c:470 +#: commands/collationcmds.c:489 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "konnte Locale-Namen »%s« nicht in Sprach-Tag umwandeln: %s" -#: commands/collationcmds.c:528 +#: commands/collationcmds.c:547 #, c-format msgid "must be superuser to import system collations" msgstr "nur Superuser können Systemsortierfolgen importieren" -#: commands/collationcmds.c:556 commands/copy.c:1894 commands/copy.c:3481 +#: commands/collationcmds.c:575 commands/copy.c:1894 commands/copy.c:3481 #: libpq/be-secure-common.c:81 #, c-format msgid "could not execute command \"%s\": %m" msgstr "konnte Befehl »%s« nicht ausführen: %m" -#: commands/collationcmds.c:687 +#: commands/collationcmds.c:706 #, c-format msgid "no usable system locales were found" msgstr "keine brauchbaren System-Locales gefunden" @@ -6444,15 +6459,15 @@ msgstr "Generierte Spalten können nicht in COPY verwendet werden." #: commands/copy.c:5093 commands/indexcmds.c:1701 commands/statscmds.c:224 -#: commands/tablecmds.c:2179 commands/tablecmds.c:2798 -#: commands/tablecmds.c:3185 parser/parse_relation.c:3508 +#: commands/tablecmds.c:2204 commands/tablecmds.c:2823 +#: commands/tablecmds.c:3210 parser/parse_relation.c:3508 #: parser/parse_relation.c:3528 utils/adt/tsvector_op.c:2680 #, c-format msgid "column \"%s\" does not exist" msgstr "Spalte »%s« existiert nicht" -#: commands/copy.c:5100 commands/tablecmds.c:2205 commands/trigger.c:893 -#: parser/parse_target.c:1052 parser/parse_target.c:1063 +#: commands/copy.c:5100 commands/tablecmds.c:2230 commands/trigger.c:893 +#: parser/parse_target.c:1051 parser/parse_target.c:1062 #, c-format msgid "column \"%s\" specified more than once" msgstr "Spalte »%s« mehrmals angegeben" @@ -6665,7 +6680,6 @@ #: commands/dbcommands.c:1404 commands/dbcommands.c:1980 #: commands/dbcommands.c:2203 commands/dbcommands.c:2261 -#: commands/tablespace.c:631 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "einige nutzlose Dateien wurde möglicherweise im alten Datenbankverzeichnis »%s« zurückgelassen" @@ -6702,7 +6716,7 @@ msgstr[0] "%d andere Sitzung verwendet die Datenbank." msgstr[1] "%d andere Sitzungen verwenden die Datenbank." -#: commands/dbcommands.c:2094 storage/ipc/procarray.c:3023 +#: commands/dbcommands.c:2094 storage/ipc/procarray.c:3106 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -6746,8 +6760,8 @@ msgid "invalid argument for %s: \"%s\"" msgstr "ungültiges Argument für %s: »%s«" -#: commands/dropcmds.c:100 commands/functioncmds.c:1275 -#: utils/adt/ruleutils.c:2633 +#: commands/dropcmds.c:100 commands/functioncmds.c:1276 +#: utils/adt/ruleutils.c:2635 #, c-format msgid "\"%s\" is an aggregate function" msgstr "»%s« ist eine Aggregatfunktion" @@ -6757,14 +6771,14 @@ msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Verwenden Sie DROP AGGREGATE, um Aggregatfunktionen zu löschen." -#: commands/dropcmds.c:158 commands/sequence.c:447 commands/tablecmds.c:3269 -#: commands/tablecmds.c:3427 commands/tablecmds.c:3472 -#: commands/tablecmds.c:15253 tcop/utility.c:1307 +#: commands/dropcmds.c:158 commands/sequence.c:447 commands/tablecmds.c:3294 +#: commands/tablecmds.c:3452 commands/tablecmds.c:3505 +#: commands/tablecmds.c:15361 tcop/utility.c:1324 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "Relation »%s« existiert nicht, wird übersprungen" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1202 +#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1208 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "Schema »%s« existiert nicht, wird übersprungen" @@ -7334,343 +7348,343 @@ msgid "importing foreign table \"%s\"" msgstr "importiere Fremdtabelle »%s«" -#: commands/functioncmds.c:105 +#: commands/functioncmds.c:106 #, c-format msgid "SQL function cannot return shell type %s" msgstr "SQL-Funktion kann keinen Hüllen-Rückgabetyp %s haben" -#: commands/functioncmds.c:110 +#: commands/functioncmds.c:111 #, c-format msgid "return type %s is only a shell" msgstr "Rückgabetyp %s ist nur eine Hülle" -#: commands/functioncmds.c:140 parser/parse_type.c:354 +#: commands/functioncmds.c:141 parser/parse_type.c:354 #, c-format msgid "type modifier cannot be specified for shell type \"%s\"" msgstr "Typmodifikator kann für Hüllentyp »%s« nicht angegeben werden" -#: commands/functioncmds.c:146 +#: commands/functioncmds.c:147 #, c-format msgid "type \"%s\" is not yet defined" msgstr "Typ »%s« ist noch nicht definiert" -#: commands/functioncmds.c:147 +#: commands/functioncmds.c:148 #, c-format msgid "Creating a shell type definition." msgstr "Hüllentypdefinition wird erzeugt." -#: commands/functioncmds.c:239 +#: commands/functioncmds.c:240 #, c-format msgid "SQL function cannot accept shell type %s" msgstr "SQL-Funktion kann keinen Hüllentyp %s annehmen" -#: commands/functioncmds.c:245 +#: commands/functioncmds.c:246 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "Aggregatfunktion kann keinen Hüllentyp %s annehmen" -#: commands/functioncmds.c:250 +#: commands/functioncmds.c:251 #, c-format msgid "argument type %s is only a shell" msgstr "Argumenttyp %s ist nur eine Hülle" -#: commands/functioncmds.c:260 +#: commands/functioncmds.c:261 #, c-format msgid "type %s does not exist" msgstr "Typ %s existiert nicht" -#: commands/functioncmds.c:274 +#: commands/functioncmds.c:275 #, c-format msgid "aggregates cannot accept set arguments" msgstr "Aggregatfunktionen können keine SETOF-Argumente haben" -#: commands/functioncmds.c:278 +#: commands/functioncmds.c:279 #, c-format msgid "procedures cannot accept set arguments" msgstr "Prozeduren können keine SETOF-Argumente haben" -#: commands/functioncmds.c:282 +#: commands/functioncmds.c:283 #, c-format msgid "functions cannot accept set arguments" msgstr "Funktionen können keine SETOF-Argumente haben" -#: commands/functioncmds.c:290 +#: commands/functioncmds.c:291 #, c-format msgid "procedures cannot have OUT arguments" msgstr "Prozeduren können keine OUT-Argumente haben" -#: commands/functioncmds.c:291 +#: commands/functioncmds.c:292 #, c-format msgid "INOUT arguments are permitted." msgstr "INOUT-Argumente sind erlaubt." -#: commands/functioncmds.c:301 +#: commands/functioncmds.c:302 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "VARIADIC-Parameter muss der letzte Eingabeparameter sein" -#: commands/functioncmds.c:332 +#: commands/functioncmds.c:333 #, c-format msgid "VARIADIC parameter must be an array" msgstr "VARIADIC-Parameter muss ein Array sein" -#: commands/functioncmds.c:372 +#: commands/functioncmds.c:373 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "Parametername »%s« mehrmals angegeben" -#: commands/functioncmds.c:387 +#: commands/functioncmds.c:388 #, c-format msgid "only input parameters can have default values" msgstr "nur Eingabeparameter können Vorgabewerte haben" -#: commands/functioncmds.c:402 +#: commands/functioncmds.c:403 #, c-format msgid "cannot use table references in parameter default value" msgstr "Tabellenverweise können nicht in Parametervorgabewerten verwendet werden" -#: commands/functioncmds.c:426 +#: commands/functioncmds.c:427 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "Eingabeparameter hinter einem mit Vorgabewert müssen auch einen Vorgabewert haben" -#: commands/functioncmds.c:578 commands/functioncmds.c:769 +#: commands/functioncmds.c:579 commands/functioncmds.c:770 #, c-format msgid "invalid attribute in procedure definition" msgstr "ungültiges Attribut in Prozedurdefinition" -#: commands/functioncmds.c:674 +#: commands/functioncmds.c:675 #, c-format msgid "support function %s must return type %s" msgstr "Unterstützungsfunktion %s muss Rückgabetyp %s haben" -#: commands/functioncmds.c:685 +#: commands/functioncmds.c:686 #, c-format msgid "must be superuser to specify a support function" msgstr "nur Superuser können eine Support-Funktion angeben" -#: commands/functioncmds.c:801 +#: commands/functioncmds.c:802 #, c-format msgid "no function body specified" msgstr "kein Funktionskörper angegeben" -#: commands/functioncmds.c:811 +#: commands/functioncmds.c:812 #, c-format msgid "no language specified" msgstr "keine Sprache angegeben" -#: commands/functioncmds.c:836 commands/functioncmds.c:1320 +#: commands/functioncmds.c:837 commands/functioncmds.c:1321 #, c-format msgid "COST must be positive" msgstr "COST muss positiv sein" -#: commands/functioncmds.c:844 commands/functioncmds.c:1328 +#: commands/functioncmds.c:845 commands/functioncmds.c:1329 #, c-format msgid "ROWS must be positive" msgstr "ROWS muss positiv sein" -#: commands/functioncmds.c:898 +#: commands/functioncmds.c:899 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "nur ein AS-Element benötigt für Sprache »%s«" -#: commands/functioncmds.c:996 commands/functioncmds.c:2049 +#: commands/functioncmds.c:997 commands/functioncmds.c:2051 #: commands/proclang.c:259 #, c-format msgid "language \"%s\" does not exist" msgstr "Sprache »%s« existiert nicht" -#: commands/functioncmds.c:998 commands/functioncmds.c:2051 +#: commands/functioncmds.c:999 commands/functioncmds.c:2053 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "Verwenden Sie CREATE EXTENSION, um die Sprache in die Datenbank zu laden." -#: commands/functioncmds.c:1033 commands/functioncmds.c:1312 +#: commands/functioncmds.c:1034 commands/functioncmds.c:1313 #, c-format msgid "only superuser can define a leakproof function" msgstr "nur Superuser können eine »leakproof«-Funktion definieren" -#: commands/functioncmds.c:1082 +#: commands/functioncmds.c:1083 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "Ergebnistyp der Funktion muss %s sein wegen OUT-Parametern" -#: commands/functioncmds.c:1095 +#: commands/functioncmds.c:1096 #, c-format msgid "function result type must be specified" msgstr "Ergebnistyp der Funktion muss angegeben werden" -#: commands/functioncmds.c:1147 commands/functioncmds.c:1332 +#: commands/functioncmds.c:1148 commands/functioncmds.c:1333 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "ROWS ist nicht anwendbar, wenn die Funktion keine Ergebnismenge zurückgibt" -#: commands/functioncmds.c:1432 +#: commands/functioncmds.c:1434 #, c-format msgid "source data type %s is a pseudo-type" msgstr "Quelldatentyp %s ist ein Pseudotyp" -#: commands/functioncmds.c:1438 +#: commands/functioncmds.c:1440 #, c-format msgid "target data type %s is a pseudo-type" msgstr "Zieldatentyp %s ist ein Pseudotyp" -#: commands/functioncmds.c:1462 +#: commands/functioncmds.c:1464 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "Typumwandlung wird ignoriert werden, weil der Quelldatentyp eine Domäne ist" -#: commands/functioncmds.c:1467 +#: commands/functioncmds.c:1469 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "Typumwandlung wird ignoriert werden, weil der Zieldatentyp eine Domäne ist" -#: commands/functioncmds.c:1492 +#: commands/functioncmds.c:1494 #, c-format msgid "cast function must take one to three arguments" msgstr "Typumwandlungsfunktion muss ein bis drei Argumente haben" -#: commands/functioncmds.c:1496 +#: commands/functioncmds.c:1498 #, c-format msgid "argument of cast function must match or be binary-coercible from source data type" msgstr "Argument der Typumwandlungsfunktion muss mit Quelldatentyp übereinstimmen oder in ihn binär-umwandelbar sein" -#: commands/functioncmds.c:1500 +#: commands/functioncmds.c:1502 #, c-format msgid "second argument of cast function must be type %s" msgstr "zweites Argument der Typumwandlungsfunktion muss Typ %s haben" -#: commands/functioncmds.c:1505 +#: commands/functioncmds.c:1507 #, c-format msgid "third argument of cast function must be type %s" msgstr "drittes Argument der Typumwandlungsfunktion muss Typ %s haben" -#: commands/functioncmds.c:1510 +#: commands/functioncmds.c:1512 #, c-format msgid "return data type of cast function must match or be binary-coercible to target data type" msgstr "Rückgabetyp der Typumwandlungsfunktion muss mit Zieldatentyp übereinstimmen oder in ihn binär-umwandelbar sein" -#: commands/functioncmds.c:1521 +#: commands/functioncmds.c:1523 #, c-format msgid "cast function must not be volatile" msgstr "Typumwandlungsfunktion darf nicht VOLATILE sein" -#: commands/functioncmds.c:1526 +#: commands/functioncmds.c:1528 #, c-format msgid "cast function must be a normal function" msgstr "Typumwandlungsfunktion muss eine normale Funktion sein" -#: commands/functioncmds.c:1530 +#: commands/functioncmds.c:1532 #, c-format msgid "cast function must not return a set" msgstr "Typumwandlungsfunktion darf keine Ergebnismenge zurückgeben" -#: commands/functioncmds.c:1556 +#: commands/functioncmds.c:1558 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "nur Superuser können Typumwandlungen mit WITHOUT FUNCTION erzeugen" -#: commands/functioncmds.c:1571 +#: commands/functioncmds.c:1573 #, c-format msgid "source and target data types are not physically compatible" msgstr "Quelldatentyp und Zieldatentyp sind nicht physikalisch kompatibel" -#: commands/functioncmds.c:1586 +#: commands/functioncmds.c:1588 #, c-format msgid "composite data types are not binary-compatible" msgstr "zusammengesetzte Datentypen sind nicht binärkompatibel" -#: commands/functioncmds.c:1592 +#: commands/functioncmds.c:1594 #, c-format msgid "enum data types are not binary-compatible" msgstr "Enum-Datentypen sind nicht binärkompatibel" -#: commands/functioncmds.c:1598 +#: commands/functioncmds.c:1600 #, c-format msgid "array data types are not binary-compatible" msgstr "Array-Datentypen sind nicht binärkompatibel" -#: commands/functioncmds.c:1615 +#: commands/functioncmds.c:1617 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "Domänendatentypen dürfen nicht als binärkompatibel markiert werden" -#: commands/functioncmds.c:1625 +#: commands/functioncmds.c:1627 #, c-format msgid "source data type and target data type are the same" msgstr "Quelldatentyp und Zieldatentyp sind der selbe" -#: commands/functioncmds.c:1683 +#: commands/functioncmds.c:1685 #, c-format msgid "transform function must not be volatile" msgstr "Transformationsfunktion darf nicht VOLATILE sein" -#: commands/functioncmds.c:1687 +#: commands/functioncmds.c:1689 #, c-format msgid "transform function must be a normal function" msgstr "Transformationsfunktion muss eine normale Funktion sein" -#: commands/functioncmds.c:1691 +#: commands/functioncmds.c:1693 #, c-format msgid "transform function must not return a set" msgstr "Transformationsfunktion darf keine Ergebnismenge zurückgeben" -#: commands/functioncmds.c:1695 +#: commands/functioncmds.c:1697 #, c-format msgid "transform function must take one argument" msgstr "Transformationsfunktion muss ein Argument haben" -#: commands/functioncmds.c:1699 +#: commands/functioncmds.c:1701 #, c-format msgid "first argument of transform function must be type %s" msgstr "erstes Argument der Transformationsfunktion muss Typ %s haben" -#: commands/functioncmds.c:1737 +#: commands/functioncmds.c:1739 #, c-format msgid "data type %s is a pseudo-type" msgstr "Datentyp %s ist ein Pseudotyp" -#: commands/functioncmds.c:1743 +#: commands/functioncmds.c:1745 #, c-format msgid "data type %s is a domain" msgstr "Datentyp %s ist eine Domäne" -#: commands/functioncmds.c:1783 +#: commands/functioncmds.c:1785 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "Rückgabetyp der FROM-SQL-Funktion muss %s sein" -#: commands/functioncmds.c:1809 +#: commands/functioncmds.c:1811 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "Rückgabetyp der TO-SQL-Funktion muss der zu transformierende Datentyp sein" -#: commands/functioncmds.c:1838 +#: commands/functioncmds.c:1840 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "Transformation für Typ %s Sprache »%s« existiert bereits" -#: commands/functioncmds.c:1930 +#: commands/functioncmds.c:1932 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "Transformation für Typ %s Sprache »%s« existiert nicht" -#: commands/functioncmds.c:1981 +#: commands/functioncmds.c:1983 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "Funktion %s existiert bereits in Schema »%s«" -#: commands/functioncmds.c:2036 +#: commands/functioncmds.c:2038 #, c-format msgid "no inline code specified" msgstr "kein Inline-Code angegeben" -#: commands/functioncmds.c:2082 +#: commands/functioncmds.c:2084 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "Sprache »%s« unterstützt das Ausführen von Inline-Code nicht" -#: commands/functioncmds.c:2194 +#: commands/functioncmds.c:2196 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" @@ -7707,13 +7721,13 @@ msgid "cannot create indexes on temporary tables of other sessions" msgstr "kann keine Indexe für temporäre Tabellen anderer Sitzungen erzeugen" -#: commands/indexcmds.c:717 commands/tablecmds.c:707 commands/tablespace.c:1185 +#: commands/indexcmds.c:717 commands/tablecmds.c:713 commands/tablespace.c:1181 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "für partitionierte Relationen kann kein Standard-Tablespace angegeben werden" -#: commands/indexcmds.c:749 commands/tablecmds.c:742 commands/tablecmds.c:13313 -#: commands/tablecmds.c:13427 +#: commands/indexcmds.c:749 commands/tablecmds.c:748 commands/tablecmds.c:13415 +#: commands/tablecmds.c:13529 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "nur geteilte Relationen können in den Tablespace »pg_global« gelegt werden" @@ -7778,12 +7792,12 @@ msgid "%s %s will create implicit index \"%s\" for table \"%s\"" msgstr "%s %s erstellt implizit einen Index »%s« für Tabelle »%s«" -#: commands/indexcmds.c:1199 tcop/utility.c:1493 +#: commands/indexcmds.c:1199 tcop/utility.c:1510 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "kann keinen Unique Index für partitionierte Tabelle »%s« erzeugen" -#: commands/indexcmds.c:1201 tcop/utility.c:1495 +#: commands/indexcmds.c:1201 tcop/utility.c:1512 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "Tabelle »%s« enthält Partitionen, die Fremdtabellen sind." @@ -7834,9 +7848,9 @@ msgid "could not determine which collation to use for index expression" msgstr "konnte die für den Indexausdruck zu verwendende Sortierfolge nicht bestimmen" -#: commands/indexcmds.c:1823 commands/tablecmds.c:16257 commands/typecmds.c:771 -#: parser/parse_expr.c:2850 parser/parse_type.c:566 parser/parse_utilcmd.c:3684 -#: parser/parse_utilcmd.c:4245 utils/adt/misc.c:503 +#: commands/indexcmds.c:1823 commands/tablecmds.c:16365 commands/typecmds.c:771 +#: parser/parse_expr.c:2855 parser/parse_type.c:566 parser/parse_utilcmd.c:3685 +#: parser/parse_utilcmd.c:4246 utils/adt/misc.c:503 #, c-format msgid "collations are not supported by type %s" msgstr "Sortierfolgen werden von Typ %s nicht unterstützt" @@ -7871,8 +7885,8 @@ msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "Zugriffsmethode »%s« unterstützt die Optionen NULLS FIRST/LAST nicht" -#: commands/indexcmds.c:1978 commands/tablecmds.c:16282 -#: commands/tablecmds.c:16288 commands/typecmds.c:1947 +#: commands/indexcmds.c:1978 commands/tablecmds.c:16390 +#: commands/tablecmds.c:16396 commands/typecmds.c:1947 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "Datentyp %s hat keine Standardoperatorklasse für Zugriffsmethode »%s«" @@ -7954,7 +7968,7 @@ msgid "REINDEX is not yet implemented for partitioned indexes" msgstr "REINDEX ist für partitionierte Indexe noch nicht implementiert" -#: commands/lockcmds.c:92 commands/tablecmds.c:5638 commands/trigger.c:303 +#: commands/lockcmds.c:92 commands/tablecmds.c:5728 commands/trigger.c:303 #: rewrite/rewriteDefine.c:272 rewrite/rewriteDefine.c:939 #, c-format msgid "\"%s\" is not a table or view" @@ -7965,27 +7979,27 @@ msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "CONCURRENTLY kann nicht verwendet werden, wenn die materialisierte Sicht nicht befüllt ist" -#: commands/matview.c:188 +#: commands/matview.c:188 gram.y:16177 #, c-format -msgid "CONCURRENTLY and WITH NO DATA options cannot be used together" -msgstr "Optionen CONCURRENTLY und WITH NO DATA können nicht zusammen verwendet werden" +msgid "%s and %s options cannot be used together" +msgstr "Optionen %s und %s können nicht zusammen verwendet werden" -#: commands/matview.c:244 +#: commands/matview.c:245 #, c-format msgid "cannot refresh materialized view \"%s\" concurrently" msgstr "kann materialisierte Sicht »%s« nicht nebenläufig auffrischen" -#: commands/matview.c:247 +#: commands/matview.c:248 #, c-format msgid "Create a unique index with no WHERE clause on one or more columns of the materialized view." msgstr "Erzeugen Sie einen Unique Index ohne WHERE-Klausel für eine oder mehrere Spalten der materialisierten Sicht." -#: commands/matview.c:641 +#: commands/matview.c:649 #, c-format msgid "new data for materialized view \"%s\" contains duplicate rows without any null columns" msgstr "neue Daten für materialisierte Sicht »%s« enthalten doppelte Zeilen ohne Spalten mit NULL-Werten" -#: commands/matview.c:643 +#: commands/matview.c:651 #, c-format msgid "Row: %s" msgstr "Zeile: %s" @@ -8253,10 +8267,10 @@ msgstr "Operator-Attribut »%s« kann nicht geändert werden" #: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:143 -#: commands/tablecmds.c:1515 commands/tablecmds.c:1997 -#: commands/tablecmds.c:3079 commands/tablecmds.c:5617 -#: commands/tablecmds.c:8429 commands/tablecmds.c:15847 -#: commands/tablecmds.c:15882 commands/trigger.c:309 commands/trigger.c:1214 +#: commands/tablecmds.c:1539 commands/tablecmds.c:2022 +#: commands/tablecmds.c:3104 commands/tablecmds.c:5707 +#: commands/tablecmds.c:8532 commands/tablecmds.c:15955 +#: commands/tablecmds.c:15990 commands/trigger.c:309 commands/trigger.c:1214 #: commands/trigger.c:1323 rewrite/rewriteDefine.c:278 #: rewrite/rewriteDefine.c:944 rewrite/rewriteRemove.c:80 #, c-format @@ -8364,57 +8378,57 @@ msgid "must be superuser to create custom procedural language" msgstr "nur Superuser können maßgeschneiderte prozedurale Sprachen erzeugen" -#: commands/publicationcmds.c:107 +#: commands/publicationcmds.c:104 #, c-format msgid "invalid list syntax for \"publish\" option" msgstr "ungültige Listensyntax für »publish«-Option" -#: commands/publicationcmds.c:125 +#: commands/publicationcmds.c:122 #, c-format msgid "unrecognized \"publish\" value: \"%s\"" msgstr "unbekannter »publish«-Wert: »%s«" -#: commands/publicationcmds.c:140 +#: commands/publicationcmds.c:137 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "unbekannter Publikationsparameter: »%s«" -#: commands/publicationcmds.c:172 +#: commands/publicationcmds.c:169 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "nur Superuser können eine Publikation FOR ALL TABLES erzeugen" -#: commands/publicationcmds.c:248 +#: commands/publicationcmds.c:250 #, c-format msgid "wal_level is insufficient to publish logical changes" msgstr "wal_level ist nicht ausreichend, um logische Veränderungen zu publizieren" -#: commands/publicationcmds.c:249 +#: commands/publicationcmds.c:251 #, c-format msgid "Set wal_level to logical before creating subscriptions." msgstr "Setzen Sie wal_level auf »logical« bevor Sie Subskriptionen erzeugen." -#: commands/publicationcmds.c:369 +#: commands/publicationcmds.c:376 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "Publikation »%s« ist als FOR ALL TABLES definiert" -#: commands/publicationcmds.c:371 +#: commands/publicationcmds.c:378 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "In einer FOR-ALL-TABLES-Publikation können keine Tabellen hinzugefügt oder entfernt werden." -#: commands/publicationcmds.c:683 +#: commands/publicationcmds.c:708 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "Relation »%s« ist nicht Teil der Publikation" -#: commands/publicationcmds.c:726 +#: commands/publicationcmds.c:751 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "keine Berechtigung, um Eigentümer der Publikation »%s« zu ändern" -#: commands/publicationcmds.c:728 +#: commands/publicationcmds.c:753 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "Der Eigentümer einer FOR-ALL-TABLES-Publikation muss ein Superuser sein." @@ -8569,8 +8583,8 @@ msgid "cannot change ownership of identity sequence" msgstr "kann Eigentümer einer Identitätssequenz nicht ändern" -#: commands/sequence.c:1718 commands/tablecmds.c:12695 -#: commands/tablecmds.c:15273 +#: commands/sequence.c:1718 commands/tablecmds.c:12797 +#: commands/tablecmds.c:15381 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "Sequenz »%s« ist mit Tabelle »%s« verknüpft." @@ -8630,12 +8644,12 @@ msgid "unrecognized statistics kind \"%s\"" msgstr "unbekannte Statistikart »%s«" -#: commands/statscmds.c:451 commands/tablecmds.c:7450 +#: commands/statscmds.c:451 commands/tablecmds.c:7553 #, c-format msgid "statistics target %d is too low" msgstr "Statistikziel %d ist zu niedrig" -#: commands/statscmds.c:459 commands/tablecmds.c:7458 +#: commands/statscmds.c:459 commands/tablecmds.c:7561 #, c-format msgid "lowering statistics target to %d" msgstr "setze Statistikziel auf %d herab" @@ -8675,7 +8689,7 @@ msgstr "nur Superuser können Subskriptionen erzeugen" #: commands/subscriptioncmds.c:445 commands/subscriptioncmds.c:534 -#: replication/logical/tablesync.c:861 replication/logical/worker.c:2135 +#: replication/logical/tablesync.c:861 replication/logical/worker.c:2138 #, c-format msgid "could not connect to the publisher: %s" msgstr "konnte nicht mit dem Publikationsserver verbinden: %s" @@ -8829,7 +8843,7 @@ msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Verwenden Sie DROP MATERIALIZED VIEW, um eine materialisierte Sicht zu löschen." -#: commands/tablecmds.c:252 commands/tablecmds.c:276 commands/tablecmds.c:17446 +#: commands/tablecmds.c:252 commands/tablecmds.c:276 commands/tablecmds.c:17589 #: parser/parse_utilcmd.c:2206 #, c-format msgid "index \"%s\" does not exist" @@ -8853,8 +8867,8 @@ msgid "Use DROP TYPE to remove a type." msgstr "Verwenden Sie DROP TYPE, um einen Typen zu löschen." -#: commands/tablecmds.c:264 commands/tablecmds.c:12534 -#: commands/tablecmds.c:15053 +#: commands/tablecmds.c:264 commands/tablecmds.c:12636 +#: commands/tablecmds.c:15161 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "Fremdtabelle »%s« existiert nicht" @@ -8868,1365 +8882,1370 @@ msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "Verwenden Sie DROP FOREIGN TABLE, um eine Fremdtabelle zu löschen." -#: commands/tablecmds.c:623 +#: commands/tablecmds.c:629 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMIT kann nur mit temporären Tabellen verwendet werden" -#: commands/tablecmds.c:654 +#: commands/tablecmds.c:660 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "kann temporäre Tabelle nicht in einer sicherheitsbeschränkten Operation erzeugen" -#: commands/tablecmds.c:690 commands/tablecmds.c:13897 +#: commands/tablecmds.c:696 commands/tablecmds.c:13999 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "von der Relation »%s« würde mehrmals geerbt werden" -#: commands/tablecmds.c:871 +#: commands/tablecmds.c:877 #, c-format msgid "specifying a table access method is not supported on a partitioned table" msgstr "Angabe einer Tabellenzugriffsmethode wird für partitionierte Tabellen nicht unterstützt" -#: commands/tablecmds.c:967 +#: commands/tablecmds.c:973 #, c-format msgid "\"%s\" is not partitioned" msgstr "»%s« ist nicht partitioniert" -#: commands/tablecmds.c:1061 +#: commands/tablecmds.c:1067 #, c-format msgid "cannot partition using more than %d columns" msgstr "Partitionierung kann nicht mehr als %d Spalten verwenden" -#: commands/tablecmds.c:1117 +#: commands/tablecmds.c:1123 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "kann keine Fremdpartition der partitionierten Tabelle »%s« erzeugen" -#: commands/tablecmds.c:1119 +#: commands/tablecmds.c:1125 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "Tabelle »%s« enthält Unique Indexe." -#: commands/tablecmds.c:1282 +#: commands/tablecmds.c:1288 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY unterstützt das Löschen von mehreren Objekten nicht" -#: commands/tablecmds.c:1286 +#: commands/tablecmds.c:1292 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY unterstützt kein CASCADE" -#: commands/tablecmds.c:1387 +#: commands/tablecmds.c:1396 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "kann partitionierten Index »%s« nicht nebenläufig löschen" -#: commands/tablecmds.c:1657 +#: commands/tablecmds.c:1682 #, c-format msgid "cannot truncate only a partitioned table" msgstr "kann nicht nur eine partitionierte Tabelle leeren" -#: commands/tablecmds.c:1658 +#: commands/tablecmds.c:1683 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." msgstr "Lassen Sie das Schlüsselwort ONLY weg oder wenden Sie TRUNCATE ONLY direkt auf die Partitionen an." -#: commands/tablecmds.c:1727 +#: commands/tablecmds.c:1752 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "Truncate-Vorgang leert ebenfalls Tabelle »%s«" -#: commands/tablecmds.c:2034 +#: commands/tablecmds.c:2059 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "kann temporäre Tabellen anderer Sitzungen nicht leeren" -#: commands/tablecmds.c:2262 commands/tablecmds.c:13794 +#: commands/tablecmds.c:2287 commands/tablecmds.c:13896 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "von partitionierter Tabelle »%s« kann nicht geerbt werden" -#: commands/tablecmds.c:2267 +#: commands/tablecmds.c:2292 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "von Partition »%s« kann nicht geerbt werden" -#: commands/tablecmds.c:2275 parser/parse_utilcmd.c:2436 +#: commands/tablecmds.c:2300 parser/parse_utilcmd.c:2436 #: parser/parse_utilcmd.c:2578 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "geerbte Relation »%s« ist keine Tabelle oder Fremdtabelle" -#: commands/tablecmds.c:2287 +#: commands/tablecmds.c:2312 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "eine temporäre Relation kann nicht als Partition der permanenten Relation »%s« erzeugt werden" -#: commands/tablecmds.c:2296 commands/tablecmds.c:13773 +#: commands/tablecmds.c:2321 commands/tablecmds.c:13875 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "von temporärer Relation »%s« kann nicht geerbt werden" -#: commands/tablecmds.c:2306 commands/tablecmds.c:13781 +#: commands/tablecmds.c:2331 commands/tablecmds.c:13883 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "von temporärer Relation einer anderen Sitzung kann nicht geerbt werden" -#: commands/tablecmds.c:2360 +#: commands/tablecmds.c:2385 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "geerbte Definitionen von Spalte »%s« werden zusammengeführt" -#: commands/tablecmds.c:2368 +#: commands/tablecmds.c:2393 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "geerbte Spalte »%s« hat Typkonflikt" -#: commands/tablecmds.c:2370 commands/tablecmds.c:2393 -#: commands/tablecmds.c:2642 commands/tablecmds.c:2672 -#: parser/parse_coerce.c:1942 parser/parse_coerce.c:1962 -#: parser/parse_coerce.c:1982 parser/parse_coerce.c:2037 -#: parser/parse_coerce.c:2114 parser/parse_coerce.c:2148 +#: commands/tablecmds.c:2395 commands/tablecmds.c:2418 +#: commands/tablecmds.c:2667 commands/tablecmds.c:2697 +#: parser/parse_coerce.c:2014 parser/parse_coerce.c:2034 +#: parser/parse_coerce.c:2054 parser/parse_coerce.c:2109 +#: parser/parse_coerce.c:2186 parser/parse_coerce.c:2220 #: parser/parse_param.c:218 #, c-format msgid "%s versus %s" msgstr "%s gegen %s" -#: commands/tablecmds.c:2379 +#: commands/tablecmds.c:2404 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "geerbte Spalte »%s« hat Sortierfolgenkonflikt" -#: commands/tablecmds.c:2381 commands/tablecmds.c:2654 -#: commands/tablecmds.c:6124 +#: commands/tablecmds.c:2406 commands/tablecmds.c:2679 +#: commands/tablecmds.c:6214 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "»%s« gegen »%s«" -#: commands/tablecmds.c:2391 +#: commands/tablecmds.c:2416 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "geerbte Spalte »%s« hat einen Konflikt bei einem Storage-Parameter" -#: commands/tablecmds.c:2407 +#: commands/tablecmds.c:2432 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "geerbte Spalte »%s« hat einen Generierungskonflikt" -#: commands/tablecmds.c:2493 commands/tablecmds.c:2548 -#: commands/tablecmds.c:11338 parser/parse_utilcmd.c:1286 +#: commands/tablecmds.c:2518 commands/tablecmds.c:2573 +#: commands/tablecmds.c:11440 parser/parse_utilcmd.c:1286 #: parser/parse_utilcmd.c:1329 parser/parse_utilcmd.c:1737 #: parser/parse_utilcmd.c:1846 #, c-format msgid "cannot convert whole-row table reference" msgstr "kann Verweis auf ganze Zeile der Tabelle nicht umwandeln" -#: commands/tablecmds.c:2494 parser/parse_utilcmd.c:1287 +#: commands/tablecmds.c:2519 parser/parse_utilcmd.c:1287 #, c-format msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Generierungsausdruck für Spalte »%s« enthält einen Verweis auf die ganze Zeile der Tabelle »%s«." -#: commands/tablecmds.c:2549 parser/parse_utilcmd.c:1330 +#: commands/tablecmds.c:2574 parser/parse_utilcmd.c:1330 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Constraint »%s« enthält einen Verweis auf die ganze Zeile der Tabelle »%s«." -#: commands/tablecmds.c:2628 +#: commands/tablecmds.c:2653 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "Spalte »%s« wird mit geerbter Definition zusammengeführt" -#: commands/tablecmds.c:2632 +#: commands/tablecmds.c:2657 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "Spalte »%s« wird verschoben und mit geerbter Definition zusammengeführt" -#: commands/tablecmds.c:2633 +#: commands/tablecmds.c:2658 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "Benutzerdefinierte Spalte wurde auf die Position der geerbten Spalte verschoben." -#: commands/tablecmds.c:2640 +#: commands/tablecmds.c:2665 #, c-format msgid "column \"%s\" has a type conflict" msgstr "für Spalte »%s« besteht ein Typkonflikt" -#: commands/tablecmds.c:2652 +#: commands/tablecmds.c:2677 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "für Spalte »%s« besteht ein Sortierfolgenkonflikt" -#: commands/tablecmds.c:2670 +#: commands/tablecmds.c:2695 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "für Spalte »%s« besteht ein Konflikt bei einem Storage-Parameter" -#: commands/tablecmds.c:2698 +#: commands/tablecmds.c:2723 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "abgeleitete Spalte »%s« gibt einen Generierungsausdruck an" -#: commands/tablecmds.c:2700 +#: commands/tablecmds.c:2725 #, c-format msgid "Omit the generation expression in the definition of the child table column to inherit the generation expression from the parent table." msgstr "Lassen Sie den Generierungsausdruck in der Definition der abgeleiteten Spalte weg, um den Generierungsausdruck der Elterntabelle zu erben." -#: commands/tablecmds.c:2704 +#: commands/tablecmds.c:2729 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "Spalte »%s« erbt von einer generierten Spalte aber hat einen Vorgabewert angegeben" -#: commands/tablecmds.c:2709 +#: commands/tablecmds.c:2734 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "Spalte »%s« erbt von einer generierten Spalte aber ist als Identitätsspalte definiert" -#: commands/tablecmds.c:2818 +#: commands/tablecmds.c:2843 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "Spalte »%s« erbt widersprüchliche Generierungsausdrücke" -#: commands/tablecmds.c:2823 +#: commands/tablecmds.c:2848 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "Spalte »%s« erbt widersprüchliche Vorgabewerte" -#: commands/tablecmds.c:2825 +#: commands/tablecmds.c:2850 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "Um den Konflikt zu lösen, geben Sie einen Vorgabewert ausdrücklich an." -#: commands/tablecmds.c:2871 +#: commands/tablecmds.c:2896 #, c-format msgid "check constraint name \"%s\" appears multiple times but with different expressions" msgstr "Check-Constraint-Name »%s« erscheint mehrmals, aber mit unterschiedlichen Ausdrücken" -#: commands/tablecmds.c:3048 +#: commands/tablecmds.c:3073 #, c-format msgid "cannot rename column of typed table" msgstr "Spalte einer getypten Tabelle kann nicht umbenannt werden" -#: commands/tablecmds.c:3067 +#: commands/tablecmds.c:3092 #, c-format msgid "\"%s\" is not a table, view, materialized view, composite type, index, or foreign table" msgstr "»%s« ist weder Tabelle, Sicht, materialisierte Sicht, zusammengesetzter Typ, Index noch Fremdtabelle" -#: commands/tablecmds.c:3161 +#: commands/tablecmds.c:3186 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "vererbte Spalte »%s« muss ebenso in den abgeleiteten Tabellen umbenannt werden" -#: commands/tablecmds.c:3193 +#: commands/tablecmds.c:3218 #, c-format msgid "cannot rename system column \"%s\"" msgstr "Systemspalte »%s« kann nicht umbenannt werden" -#: commands/tablecmds.c:3208 +#: commands/tablecmds.c:3233 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "kann vererbte Spalte »%s« nicht umbenennen" -#: commands/tablecmds.c:3360 +#: commands/tablecmds.c:3385 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "vererbter Constraint »%s« muss ebenso in den abgeleiteten Tabellen umbenannt werden" -#: commands/tablecmds.c:3367 +#: commands/tablecmds.c:3392 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "kann vererbten Constraint »%s« nicht umbenennen" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:3600 +#: commands/tablecmds.c:3690 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "%s mit Relation »%s« nicht möglich, weil sie von aktiven Anfragen in dieser Sitzung verwendet wird" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:3609 +#: commands/tablecmds.c:3699 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "%s mit Relation »%s« nicht möglich, weil es anstehende Trigger-Ereignisse dafür gibt" -#: commands/tablecmds.c:4240 commands/tablecmds.c:4255 +#: commands/tablecmds.c:4330 commands/tablecmds.c:4345 #, c-format msgid "cannot change persistence setting twice" msgstr "Persistenzeinstellung kann nicht zweimal geändert werden" -#: commands/tablecmds.c:4975 +#: commands/tablecmds.c:5065 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "Systemrelation »%s« kann nicht neu geschrieben werden" -#: commands/tablecmds.c:4981 +#: commands/tablecmds.c:5071 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "Tabelle »%s«, die als Katalogtabelle verwendet wird, kann nicht neu geschrieben werden" -#: commands/tablecmds.c:4991 +#: commands/tablecmds.c:5081 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "kann temporäre Tabellen anderer Sitzungen nicht neu schreiben" -#: commands/tablecmds.c:5280 +#: commands/tablecmds.c:5370 #, c-format msgid "rewriting table \"%s\"" msgstr "schreibe Tabelle »%s« neu" -#: commands/tablecmds.c:5284 +#: commands/tablecmds.c:5374 #, c-format msgid "verifying table \"%s\"" msgstr "überprüfe Tabelle »%s«" -#: commands/tablecmds.c:5452 +#: commands/tablecmds.c:5542 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "Spalte »%s« von Relation »%s« enthält NULL-Werte" -#: commands/tablecmds.c:5469 +#: commands/tablecmds.c:5559 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "Check-Constraint »%s« von Relation »%s« wird von irgendeiner Zeile verletzt" -#: commands/tablecmds.c:5488 partitioning/partbounds.c:3225 +#: commands/tablecmds.c:5578 partitioning/partbounds.c:3225 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "aktualisierter Partitions-Constraint der Standardpartition »%s« würde von irgendeiner Zeile verletzt werden" -#: commands/tablecmds.c:5494 +#: commands/tablecmds.c:5584 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "Partitions-Constraint von Relation »%s« wird von irgendeiner Zeile verletzt" -#: commands/tablecmds.c:5641 commands/trigger.c:1208 commands/trigger.c:1314 +#: commands/tablecmds.c:5731 commands/trigger.c:1208 commands/trigger.c:1314 #, c-format msgid "\"%s\" is not a table, view, or foreign table" msgstr "»%s« ist keine Tabelle, Sicht oder Fremdtabelle" -#: commands/tablecmds.c:5644 +#: commands/tablecmds.c:5734 #, c-format msgid "\"%s\" is not a table, view, materialized view, or index" msgstr "»%s« ist weder Tabelle, Sicht, materialisierte Sicht noch Index" -#: commands/tablecmds.c:5650 +#: commands/tablecmds.c:5740 #, c-format msgid "\"%s\" is not a table, materialized view, or index" msgstr "»%s« ist weder Tabelle, materialisierte Sicht noch Index" -#: commands/tablecmds.c:5653 +#: commands/tablecmds.c:5743 #, c-format msgid "\"%s\" is not a table, materialized view, index, or partitioned index" msgstr "»%s« ist weder Tabelle, materialisierte Sicht, Index noch partitionierter Index" -#: commands/tablecmds.c:5656 +#: commands/tablecmds.c:5746 #, c-format msgid "\"%s\" is not a table, materialized view, index, partitioned index, or foreign table" msgstr "»%s« ist weder Tabelle, materialisierte Sicht, Index, partitionierter Index noch Fremdtabelle" -#: commands/tablecmds.c:5659 +#: commands/tablecmds.c:5749 #, c-format msgid "\"%s\" is not a table, materialized view, or foreign table" msgstr "»%s« ist weder Tabelle, materialisierte Sicht noch Fremdtabelle" -#: commands/tablecmds.c:5662 +#: commands/tablecmds.c:5752 #, c-format msgid "\"%s\" is not a table or foreign table" msgstr "»%s« ist keine Tabelle oder Fremdtabelle" -#: commands/tablecmds.c:5665 +#: commands/tablecmds.c:5755 #, c-format msgid "\"%s\" is not a table, composite type, or foreign table" msgstr "»%s« ist weder Tabelle, zusammengesetzter Typ noch Fremdtabelle" -#: commands/tablecmds.c:5668 +#: commands/tablecmds.c:5758 #, c-format msgid "\"%s\" is not a table, materialized view, index, or foreign table" msgstr "»%s« ist weder Tabelle, materialisierte Sicht, Index noch Fremdtabelle" -#: commands/tablecmds.c:5671 +#: commands/tablecmds.c:5761 #, c-format msgid "\"%s\" is not a table or partitioned index" msgstr "»%s« ist keine Tabelle und kein partitionierter Index" -#: commands/tablecmds.c:5681 +#: commands/tablecmds.c:5771 #, c-format msgid "\"%s\" is of the wrong type" msgstr "»%s« hat den falschen Typ" -#: commands/tablecmds.c:5884 commands/tablecmds.c:5891 +#: commands/tablecmds.c:5974 commands/tablecmds.c:5981 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "kann Typ »%s« nicht ändern, weil Spalte »%s.%s« ihn verwendet" -#: commands/tablecmds.c:5898 +#: commands/tablecmds.c:5988 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "kann Fremdtabelle »%s« nicht ändern, weil Spalte »%s.%s« ihren Zeilentyp verwendet" -#: commands/tablecmds.c:5905 +#: commands/tablecmds.c:5995 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "kann Tabelle »%s« nicht ändern, weil Spalte »%s.%s« ihren Zeilentyp verwendet" -#: commands/tablecmds.c:5961 +#: commands/tablecmds.c:6051 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "kann Typ »%s« nicht ändern, weil er der Typ einer getypten Tabelle ist" -#: commands/tablecmds.c:5963 +#: commands/tablecmds.c:6053 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "Verwenden Sie ALTER ... CASCADE, um die getypten Tabellen ebenfalls zu ändern." -#: commands/tablecmds.c:6009 +#: commands/tablecmds.c:6099 #, c-format msgid "type %s is not a composite type" msgstr "Typ %s ist kein zusammengesetzter Typ" -#: commands/tablecmds.c:6036 +#: commands/tablecmds.c:6126 #, c-format msgid "cannot add column to typed table" msgstr "zu einer getypten Tabelle kann keine Spalte hinzugefügt werden" -#: commands/tablecmds.c:6087 +#: commands/tablecmds.c:6177 #, c-format msgid "cannot add column to a partition" msgstr "zu einer Partition kann keine Spalte hinzugefügt werden" -#: commands/tablecmds.c:6116 commands/tablecmds.c:14024 +#: commands/tablecmds.c:6206 commands/tablecmds.c:14126 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "abgeleitete Tabelle »%s« hat unterschiedlichen Typ für Spalte »%s«" -#: commands/tablecmds.c:6122 commands/tablecmds.c:14031 +#: commands/tablecmds.c:6212 commands/tablecmds.c:14133 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "abgeleitete Tabelle »%s« hat unterschiedliche Sortierfolge für Spalte »%s«" -#: commands/tablecmds.c:6136 +#: commands/tablecmds.c:6226 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "Definition von Spalte »%s« für abgeleitete Tabelle »%s« wird zusammengeführt" -#: commands/tablecmds.c:6179 +#: commands/tablecmds.c:6269 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "eine Identitätsspalte kann nicht rekursiv zu einer Tabelle hinzugefügt werden, die abgeleitete Tabellen hat" -#: commands/tablecmds.c:6416 +#: commands/tablecmds.c:6506 #, c-format msgid "column must be added to child tables too" msgstr "Spalte muss ebenso in den abgeleiteten Tabellen hinzugefügt werden" -#: commands/tablecmds.c:6494 +#: commands/tablecmds.c:6584 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "Spalte »%s« von Relation »%s« existiert bereits, wird übersprungen" -#: commands/tablecmds.c:6501 +#: commands/tablecmds.c:6591 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "Spalte »%s« von Relation »%s« existiert bereits" -#: commands/tablecmds.c:6567 commands/tablecmds.c:10976 +#: commands/tablecmds.c:6657 commands/tablecmds.c:11079 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "Constraint kann nicht nur von der partitionierten Tabelle entfernt werden, wenn Partitionen existieren" -#: commands/tablecmds.c:6568 commands/tablecmds.c:6872 -#: commands/tablecmds.c:7868 commands/tablecmds.c:10977 +#: commands/tablecmds.c:6658 commands/tablecmds.c:6975 +#: commands/tablecmds.c:7971 commands/tablecmds.c:11080 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Lassen Sie das Schlüsselwort ONLY weg." -#: commands/tablecmds.c:6605 commands/tablecmds.c:6798 -#: commands/tablecmds.c:6940 commands/tablecmds.c:7054 -#: commands/tablecmds.c:7148 commands/tablecmds.c:7207 -#: commands/tablecmds.c:7325 commands/tablecmds.c:7491 -#: commands/tablecmds.c:7561 commands/tablecmds.c:7654 -#: commands/tablecmds.c:11131 commands/tablecmds.c:12557 +#: commands/tablecmds.c:6695 commands/tablecmds.c:6901 +#: commands/tablecmds.c:7043 commands/tablecmds.c:7157 +#: commands/tablecmds.c:7251 commands/tablecmds.c:7310 +#: commands/tablecmds.c:7428 commands/tablecmds.c:7594 +#: commands/tablecmds.c:7664 commands/tablecmds.c:7757 +#: commands/tablecmds.c:11234 commands/tablecmds.c:12659 #, c-format msgid "cannot alter system column \"%s\"" msgstr "Systemspalte »%s« kann nicht geändert werden" -#: commands/tablecmds.c:6611 commands/tablecmds.c:6946 +#: commands/tablecmds.c:6701 commands/tablecmds.c:7049 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "Spalte »%s« von Relation »%s« ist eine Identitätsspalte" -#: commands/tablecmds.c:6647 +#: commands/tablecmds.c:6744 #, c-format msgid "column \"%s\" is in a primary key" msgstr "Spalte »%s« ist in einem Primärschlüssel" -#: commands/tablecmds.c:6669 +#: commands/tablecmds.c:6749 +#, c-format +msgid "column \"%s\" is in index used as replica identity" +msgstr "Spalte »%s« ist in einem Index, der als Replik-Identität verwendet wird" + +#: commands/tablecmds.c:6772 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "Spalte »%s« ist in Elterntabelle als NOT NULL markiert" -#: commands/tablecmds.c:6869 commands/tablecmds.c:8327 +#: commands/tablecmds.c:6972 commands/tablecmds.c:8430 #, c-format msgid "constraint must be added to child tables too" msgstr "Constraint muss ebenso in den abgeleiteten Tabellen hinzugefügt werden" -#: commands/tablecmds.c:6870 +#: commands/tablecmds.c:6973 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Spalte »%s« von Relation »%s« ist nicht bereits NOT NULL." -#: commands/tablecmds.c:6905 +#: commands/tablecmds.c:7008 #, c-format msgid "existing constraints on column \"%s.%s\" are sufficient to prove that it does not contain nulls" msgstr "die vorhandenen Constraints für Spalte »%s.%s« reichen aus, um zu beweisen, dass sie keine NULL-Werte enthält" -#: commands/tablecmds.c:6948 +#: commands/tablecmds.c:7051 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." msgstr "Verwenden Sie stattdessen ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY." -#: commands/tablecmds.c:6953 +#: commands/tablecmds.c:7056 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "Spalte »%s« von Relation »%s« ist eine generierte Spalte" -#: commands/tablecmds.c:6956 +#: commands/tablecmds.c:7059 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." msgstr "Verwenden Sie stattdessen ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION." -#: commands/tablecmds.c:7065 +#: commands/tablecmds.c:7168 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "Spalte »%s« von Relation »%s« muss als NOT NULL deklariert werden, bevor Sie Identitätsspalte werden kann" -#: commands/tablecmds.c:7071 +#: commands/tablecmds.c:7174 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "Spalte »%s« von Relation »%s« ist bereits eine Identitätsspalte" -#: commands/tablecmds.c:7077 +#: commands/tablecmds.c:7180 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "Spalte »%s« von Relation »%s« hat bereits einen Vorgabewert" -#: commands/tablecmds.c:7154 commands/tablecmds.c:7215 +#: commands/tablecmds.c:7257 commands/tablecmds.c:7318 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "Spalte »%s« von Relation »%s« ist keine Identitätsspalte" -#: commands/tablecmds.c:7220 +#: commands/tablecmds.c:7323 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "Spalte »%s« von Relation »%s« ist keine Identitätsspalte, wird übersprungen" -#: commands/tablecmds.c:7273 +#: commands/tablecmds.c:7376 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION muss auch auf abgeleitete Tabellen angewendet werden" -#: commands/tablecmds.c:7295 +#: commands/tablecmds.c:7398 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "Generierungsausdruck von vererbter Spalte kann nicht gelöscht werden" -#: commands/tablecmds.c:7333 +#: commands/tablecmds.c:7436 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "Spalte »%s« von Relation »%s« ist keine gespeicherte generierte Spalte" -#: commands/tablecmds.c:7338 +#: commands/tablecmds.c:7441 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "Spalte »%s« von Relation »%s« ist keine gespeicherte generierte Spalte, wird übersprungen" -#: commands/tablecmds.c:7438 +#: commands/tablecmds.c:7541 #, c-format msgid "cannot refer to non-index column by number" msgstr "auf eine Nicht-Index-Spalte kann nicht per Nummer verwiesen werden" -#: commands/tablecmds.c:7481 +#: commands/tablecmds.c:7584 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "Spalte Nummer %d von Relation »%s« existiert nicht" -#: commands/tablecmds.c:7500 +#: commands/tablecmds.c:7603 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "Statistiken von eingeschlossener Spalte »%s« von Index »%s« können nicht geändert werden" -#: commands/tablecmds.c:7505 +#: commands/tablecmds.c:7608 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "kann Statistiken von Spalte »%s« von Index »%s«, welche kein Ausdruck ist, nicht ändern" -#: commands/tablecmds.c:7507 +#: commands/tablecmds.c:7610 #, c-format msgid "Alter statistics on table column instead." msgstr "Ändern Sie stattdessen die Statistiken für die Tabellenspalte." -#: commands/tablecmds.c:7634 +#: commands/tablecmds.c:7737 #, c-format msgid "invalid storage type \"%s\"" msgstr "ungültiger Storage-Typ »%s«" -#: commands/tablecmds.c:7666 +#: commands/tablecmds.c:7769 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "Spaltendatentyp %s kann nur Storage-Typ PLAIN" -#: commands/tablecmds.c:7748 +#: commands/tablecmds.c:7851 #, c-format msgid "cannot drop column from typed table" msgstr "aus einer getypten Tabelle können keine Spalten gelöscht werden" -#: commands/tablecmds.c:7807 +#: commands/tablecmds.c:7910 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "Spalte »%s« von Relation »%s« existiert nicht, wird übersprungen" -#: commands/tablecmds.c:7820 +#: commands/tablecmds.c:7923 #, c-format msgid "cannot drop system column \"%s\"" msgstr "Systemspalte »%s« kann nicht gelöscht werden" -#: commands/tablecmds.c:7830 +#: commands/tablecmds.c:7933 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "geerbte Spalte »%s« kann nicht gelöscht werden" -#: commands/tablecmds.c:7843 +#: commands/tablecmds.c:7946 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "Spalte »%s« kann nicht gelöscht werden, weil sie Teil des Partitionierungsschlüssels von Relation »%s« ist" -#: commands/tablecmds.c:7867 +#: commands/tablecmds.c:7970 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "Spalte kann nicht nur aus der partitionierten Tabelle gelöscht werden, wenn Partitionen existieren" -#: commands/tablecmds.c:8048 +#: commands/tablecmds.c:8151 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX wird für partitionierte Tabellen nicht unterstützt" -#: commands/tablecmds.c:8073 +#: commands/tablecmds.c:8176 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX benennt Index »%s« um in »%s«" -#: commands/tablecmds.c:8407 +#: commands/tablecmds.c:8510 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "ONLY nicht möglich für Fremdschlüssel für partitionierte Tabelle »%s« verweisend auf Relation »%s«" -#: commands/tablecmds.c:8413 +#: commands/tablecmds.c:8516 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "Hinzufügen von Fremdschlüssel mit NOT VALID nicht möglich für partitionierte Tabelle »%s« verweisend auf Relation »%s«" -#: commands/tablecmds.c:8416 +#: commands/tablecmds.c:8519 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Dieses Feature wird für partitionierte Tabellen noch nicht unterstützt." -#: commands/tablecmds.c:8423 commands/tablecmds.c:8828 +#: commands/tablecmds.c:8526 commands/tablecmds.c:8931 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "Relation »%s«, auf die verwiesen wird, ist keine Tabelle" -#: commands/tablecmds.c:8446 +#: commands/tablecmds.c:8549 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "Constraints für permanente Tabellen dürfen nur auf permanente Tabellen verweisen" -#: commands/tablecmds.c:8453 +#: commands/tablecmds.c:8556 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "Constraints für ungeloggte Tabellen dürfen nur auf permanente oder ungeloggte Tabellen verweisen" -#: commands/tablecmds.c:8459 +#: commands/tablecmds.c:8562 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "Constraints für temporäre Tabellen dürfen nur auf temporäre Tabellen verweisen" -#: commands/tablecmds.c:8463 +#: commands/tablecmds.c:8566 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "Constraints für temporäre Tabellen müssen temporäre Tabellen dieser Sitzung beinhalten" -#: commands/tablecmds.c:8529 commands/tablecmds.c:8535 +#: commands/tablecmds.c:8632 commands/tablecmds.c:8638 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "ungültige %s-Aktion für Fremdschlüssel-Constraint, der eine generierte Spalte enthält" -#: commands/tablecmds.c:8551 +#: commands/tablecmds.c:8654 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "Anzahl der Quell- und Zielspalten im Fremdschlüssel stimmt nicht überein" -#: commands/tablecmds.c:8658 +#: commands/tablecmds.c:8761 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "Fremdschlüssel-Constraint »%s« kann nicht implementiert werden" -#: commands/tablecmds.c:8660 +#: commands/tablecmds.c:8763 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Schlüsselspalten »%s« und »%s« haben inkompatible Typen: %s und %s." -#: commands/tablecmds.c:9023 commands/tablecmds.c:9416 +#: commands/tablecmds.c:9126 commands/tablecmds.c:9519 #: parser/parse_utilcmd.c:790 parser/parse_utilcmd.c:919 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "Fremdschlüssel-Constraints auf Fremdtabellen werden nicht unterstützt" -#: commands/tablecmds.c:9783 commands/tablecmds.c:10061 -#: commands/tablecmds.c:10933 commands/tablecmds.c:11008 +#: commands/tablecmds.c:9886 commands/tablecmds.c:10164 +#: commands/tablecmds.c:11036 commands/tablecmds.c:11111 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "Constraint »%s« von Relation »%s« existiert nicht" -#: commands/tablecmds.c:9790 +#: commands/tablecmds.c:9893 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "Constraint »%s« von Relation »%s« ist kein Fremdschlüssel-Constraint" -#: commands/tablecmds.c:9828 +#: commands/tablecmds.c:9931 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "Constraint »%s« von Relation »%s« kann nicht geändert werden" -#: commands/tablecmds.c:9831 +#: commands/tablecmds.c:9934 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "Constraint »%s« ist von Constraint »%s« von Relation »%s« abgeleitet." -#: commands/tablecmds.c:9833 +#: commands/tablecmds.c:9936 #, c-format msgid "You may alter the constraint it derives from, instead." msgstr "Sie können stattdessen den Constraint, von dem er abgeleitet ist, ändern." -#: commands/tablecmds.c:10069 +#: commands/tablecmds.c:10172 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "Constraint »%s« von Relation »%s« ist kein Fremdschlüssel- oder Check-Constraint" -#: commands/tablecmds.c:10147 +#: commands/tablecmds.c:10250 #, c-format msgid "constraint must be validated on child tables too" msgstr "Constraint muss ebenso in den abgeleiteten Tabellen validiert werden" -#: commands/tablecmds.c:10231 +#: commands/tablecmds.c:10334 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "Spalte »%s«, die im Fremdschlüssel verwendet wird, existiert nicht" -#: commands/tablecmds.c:10236 +#: commands/tablecmds.c:10339 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "Fremdschlüssel kann nicht mehr als %d Schlüssel haben" -#: commands/tablecmds.c:10301 +#: commands/tablecmds.c:10404 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "aufschiebbarer Primärschlüssel kann nicht für Tabelle »%s«, auf die verwiesen wird, verwendet werden" -#: commands/tablecmds.c:10318 +#: commands/tablecmds.c:10421 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "in Tabelle »%s«, auf die verwiesen wird, gibt es keinen Primärschlüssel" -#: commands/tablecmds.c:10383 +#: commands/tablecmds.c:10486 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "die Liste der Spalten, auf die ein Fremdschlüssel verweist, darf keine doppelten Einträge enthalten" -#: commands/tablecmds.c:10477 +#: commands/tablecmds.c:10580 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "aufschiebbarer Unique-Constraint kann nicht für Tabelle »%s«, auf die verwiesen wird, verwendet werden" -#: commands/tablecmds.c:10482 +#: commands/tablecmds.c:10585 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "in Tabelle »%s«, auf die verwiesen wird, gibt es keinen Unique-Constraint, der auf die angegebenen Schlüssel passt" -#: commands/tablecmds.c:10570 +#: commands/tablecmds.c:10673 #, c-format msgid "validating foreign key constraint \"%s\"" msgstr "validiere Fremdschlüssel-Constraint »%s«" -#: commands/tablecmds.c:10889 +#: commands/tablecmds.c:10992 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "geerbter Constraint »%s« von Relation »%s« kann nicht gelöscht werden" -#: commands/tablecmds.c:10939 +#: commands/tablecmds.c:11042 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "Constraint »%s« von Relation »%s« existiert nicht, wird übersprungen" -#: commands/tablecmds.c:11115 +#: commands/tablecmds.c:11218 #, c-format msgid "cannot alter column type of typed table" msgstr "Spaltentyp einer getypten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:11142 +#: commands/tablecmds.c:11245 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "kann vererbte Spalte »%s« nicht ändern" -#: commands/tablecmds.c:11151 +#: commands/tablecmds.c:11254 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "Spalte »%s« kann nicht geändert werden, weil sie Teil des Partitionierungsschlüssels von Relation »%s« ist" -#: commands/tablecmds.c:11201 +#: commands/tablecmds.c:11304 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "Ergebnis der USING-Klausel für Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" -#: commands/tablecmds.c:11204 +#: commands/tablecmds.c:11307 #, c-format msgid "You might need to add an explicit cast." msgstr "Sie müssen möglicherweise eine ausdrückliche Typumwandlung hinzufügen." -#: commands/tablecmds.c:11208 +#: commands/tablecmds.c:11311 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:11211 +#: commands/tablecmds.c:11314 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Sie müssen möglicherweise »USING %s::%s« angeben." -#: commands/tablecmds.c:11311 +#: commands/tablecmds.c:11413 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "geerbte Spalte »%s« von Relation »%s« kann nicht geändert werden" -#: commands/tablecmds.c:11339 +#: commands/tablecmds.c:11441 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "USING-Ausdruck enthält einen Verweis auf die ganze Zeile der Tabelle." -#: commands/tablecmds.c:11350 +#: commands/tablecmds.c:11452 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "Typ der vererbten Spalte »%s« muss ebenso in den abgeleiteten Tabellen geändert werden" -#: commands/tablecmds.c:11475 +#: commands/tablecmds.c:11577 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "Typ der Spalte »%s« kann nicht zweimal geändert werden" -#: commands/tablecmds.c:11513 +#: commands/tablecmds.c:11615 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "Generierungsausdruck der Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" -#: commands/tablecmds.c:11518 +#: commands/tablecmds.c:11620 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "Vorgabewert der Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" -#: commands/tablecmds.c:11596 +#: commands/tablecmds.c:11698 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "Typ einer Spalte, die von einer generierten Spalte verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:11597 +#: commands/tablecmds.c:11699 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Spalte »%s« wird von generierter Spalte »%s« verwendet." -#: commands/tablecmds.c:11618 +#: commands/tablecmds.c:11720 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "Typ einer Spalte, die von einer Sicht oder Regel verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:11619 commands/tablecmds.c:11638 -#: commands/tablecmds.c:11656 +#: commands/tablecmds.c:11721 commands/tablecmds.c:11740 +#: commands/tablecmds.c:11758 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s hängt von Spalte »%s« ab" -#: commands/tablecmds.c:11637 +#: commands/tablecmds.c:11739 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "Typ einer Spalte, die in einer Trigger-Definition verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:11655 +#: commands/tablecmds.c:11757 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "Typ einer Spalte, die in einer Policy-Definition verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:12665 commands/tablecmds.c:12677 +#: commands/tablecmds.c:12767 commands/tablecmds.c:12779 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "kann Eigentümer des Index »%s« nicht ändern" -#: commands/tablecmds.c:12667 commands/tablecmds.c:12679 +#: commands/tablecmds.c:12769 commands/tablecmds.c:12781 #, c-format msgid "Change the ownership of the index's table, instead." msgstr "Ändern Sie stattdessen den Eigentümer der Tabelle des Index." -#: commands/tablecmds.c:12693 +#: commands/tablecmds.c:12795 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "kann Eigentümer der Sequenz »%s« nicht ändern" -#: commands/tablecmds.c:12707 commands/tablecmds.c:15958 +#: commands/tablecmds.c:12809 commands/tablecmds.c:16066 #, c-format msgid "Use ALTER TYPE instead." msgstr "Verwenden Sie stattdessen ALTER TYPE." -#: commands/tablecmds.c:12716 +#: commands/tablecmds.c:12818 #, c-format msgid "\"%s\" is not a table, view, sequence, or foreign table" msgstr "»%s« ist keine Tabelle, Sicht, Sequenz oder Fremdtabelle" -#: commands/tablecmds.c:13056 +#: commands/tablecmds.c:13158 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "mehrere SET TABLESPACE Unterbefehle sind ungültig" -#: commands/tablecmds.c:13133 +#: commands/tablecmds.c:13235 #, c-format msgid "\"%s\" is not a table, view, materialized view, index, or TOAST table" msgstr "»%s« ist weder Tabelle, Sicht, materialisierte Sicht, Index noch TOAST-Tabelle" -#: commands/tablecmds.c:13166 commands/view.c:494 +#: commands/tablecmds.c:13268 commands/view.c:494 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION wird nur für automatisch aktualisierbare Sichten unterstützt" -#: commands/tablecmds.c:13306 +#: commands/tablecmds.c:13408 #, c-format msgid "cannot move system relation \"%s\"" msgstr "Systemrelation »%s« kann nicht verschoben werden" -#: commands/tablecmds.c:13322 +#: commands/tablecmds.c:13424 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "temporäre Tabellen anderer Sitzungen können nicht verschoben werden" -#: commands/tablecmds.c:13496 +#: commands/tablecmds.c:13598 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "nur Tabellen, Indexe und materialisierte Sichten existieren in Tablespaces" -#: commands/tablecmds.c:13508 +#: commands/tablecmds.c:13610 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "Relationen können nicht in den oder aus dem Tablespace »pg_global« verschoben werden" -#: commands/tablecmds.c:13600 +#: commands/tablecmds.c:13702 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "Abbruch weil Sperre für Relation »%s.%s« nicht verfügbar ist" -#: commands/tablecmds.c:13616 +#: commands/tablecmds.c:13718 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "keine passenden Relationen in Tablespace »%s« gefunden" -#: commands/tablecmds.c:13732 +#: commands/tablecmds.c:13834 #, c-format msgid "cannot change inheritance of typed table" msgstr "Vererbung einer getypten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:13737 commands/tablecmds.c:14293 +#: commands/tablecmds.c:13839 commands/tablecmds.c:14395 #, c-format msgid "cannot change inheritance of a partition" msgstr "Vererbung einer Partition kann nicht geändert werden" -#: commands/tablecmds.c:13742 +#: commands/tablecmds.c:13844 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "Vererbung einer partitionierten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:13788 +#: commands/tablecmds.c:13890 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "an temporäre Relation einer anderen Sitzung kann nicht vererbt werden" -#: commands/tablecmds.c:13801 +#: commands/tablecmds.c:13903 #, c-format msgid "cannot inherit from a partition" msgstr "von einer Partition kann nicht geerbt werden" -#: commands/tablecmds.c:13823 commands/tablecmds.c:16598 +#: commands/tablecmds.c:13925 commands/tablecmds.c:16706 #, c-format msgid "circular inheritance not allowed" msgstr "zirkuläre Vererbung ist nicht erlaubt" -#: commands/tablecmds.c:13824 commands/tablecmds.c:16599 +#: commands/tablecmds.c:13926 commands/tablecmds.c:16707 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "»%s« ist schon von »%s« abgeleitet." -#: commands/tablecmds.c:13837 +#: commands/tablecmds.c:13939 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "Trigger »%s« verhindert, dass Tabelle »%s« ein Vererbungskind werden kann" -#: commands/tablecmds.c:13839 +#: commands/tablecmds.c:13941 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "ROW-Trigger mit Übergangstabellen werden in Vererbungshierarchien nicht unterstützt." -#: commands/tablecmds.c:14042 +#: commands/tablecmds.c:14144 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "Spalte »%s« in abgeleiteter Tabelle muss als NOT NULL markiert sein" -#: commands/tablecmds.c:14051 +#: commands/tablecmds.c:14153 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "Spalte »%s« in abgeleiteter Tabelle muss eine generierte Spalte sein" -#: commands/tablecmds.c:14101 +#: commands/tablecmds.c:14203 #, c-format msgid "column \"%s\" in child table has a conflicting generation expression" msgstr "Spalte »%s« in abgeleiteter Tabelle hat einen widersprüchlichen Generierungsausdruck" -#: commands/tablecmds.c:14129 +#: commands/tablecmds.c:14231 #, c-format msgid "child table is missing column \"%s\"" msgstr "Spalte »%s« fehlt in abgeleiteter Tabelle" -#: commands/tablecmds.c:14217 +#: commands/tablecmds.c:14319 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "abgeleitete Tabelle »%s« hat unterschiedliche Definition für Check-Constraint »%s«" -#: commands/tablecmds.c:14225 +#: commands/tablecmds.c:14327 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "Constraint »%s« kollidiert mit nicht vererbtem Constraint für abgeleitete Tabelle »%s«" -#: commands/tablecmds.c:14236 +#: commands/tablecmds.c:14338 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "Constraint »%s« kollidiert mit NOT-VALID-Constraint für abgeleitete Tabelle »%s«" -#: commands/tablecmds.c:14271 +#: commands/tablecmds.c:14373 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "Constraint »%s« fehlt in abgeleiteter Tabelle" -#: commands/tablecmds.c:14360 +#: commands/tablecmds.c:14462 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "Relation »%s« ist keine Partition von Relation »%s«" -#: commands/tablecmds.c:14366 +#: commands/tablecmds.c:14468 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "Relation »%s« ist keine Basisrelation von Relation »%s«" -#: commands/tablecmds.c:14594 +#: commands/tablecmds.c:14696 #, c-format msgid "typed tables cannot inherit" msgstr "getypte Tabellen können nicht erben" -#: commands/tablecmds.c:14624 +#: commands/tablecmds.c:14726 #, c-format msgid "table is missing column \"%s\"" msgstr "Spalte »%s« fehlt in Tabelle" -#: commands/tablecmds.c:14635 +#: commands/tablecmds.c:14737 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "Tabelle hat Spalte »%s«, aber Typ benötigt »%s«" -#: commands/tablecmds.c:14644 +#: commands/tablecmds.c:14746 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "Tabelle »%s« hat unterschiedlichen Typ für Spalte »%s«" -#: commands/tablecmds.c:14658 +#: commands/tablecmds.c:14760 #, c-format msgid "table has extra column \"%s\"" msgstr "Tabelle hat zusätzliche Spalte »%s«" -#: commands/tablecmds.c:14710 +#: commands/tablecmds.c:14812 #, c-format msgid "\"%s\" is not a typed table" msgstr "»%s« ist keine getypte Tabelle" -#: commands/tablecmds.c:14892 +#: commands/tablecmds.c:15000 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "nicht eindeutiger Index »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:14898 +#: commands/tablecmds.c:15006 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "Index »%s« kann nicht als Replik-Identität verwendet werden, weil er nicht IMMEDIATE ist" -#: commands/tablecmds.c:14904 +#: commands/tablecmds.c:15012 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "Ausdrucksindex »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:14910 +#: commands/tablecmds.c:15018 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "partieller Index »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:14916 +#: commands/tablecmds.c:15024 #, c-format msgid "cannot use invalid index \"%s\" as replica identity" msgstr "ungültiger Index »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:14933 +#: commands/tablecmds.c:15041 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "Index »%s« kann nicht als Replik-Identität verwendet werden, weil Spalte %d eine Systemspalte ist" -#: commands/tablecmds.c:14940 +#: commands/tablecmds.c:15048 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "Index »%s« kann nicht als Replik-Identität verwendet werden, weil Spalte »%s« NULL-Werte akzeptiert" -#: commands/tablecmds.c:15133 +#: commands/tablecmds.c:15241 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "kann den geloggten Status der Tabelle »%s« nicht ändern, weil sie temporär ist" -#: commands/tablecmds.c:15157 +#: commands/tablecmds.c:15265 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "kann Tabelle »%s« nicht in ungeloggt ändern, weil sie Teil einer Publikation ist" -#: commands/tablecmds.c:15159 +#: commands/tablecmds.c:15267 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Ungeloggte Relationen können nicht repliziert werden." -#: commands/tablecmds.c:15204 +#: commands/tablecmds.c:15312 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "konnte Tabelle »%s« nicht in geloggt ändern, weil sie auf die ungeloggte Tabelle »%s« verweist" -#: commands/tablecmds.c:15214 +#: commands/tablecmds.c:15322 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "konnte Tabelle »%s« nicht in ungeloggt ändern, weil sie auf die geloggte Tabelle »%s« verweist" -#: commands/tablecmds.c:15272 +#: commands/tablecmds.c:15380 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "einer Tabelle zugeordnete Sequenz kann nicht in ein anderes Schema verschoben werden" -#: commands/tablecmds.c:15378 +#: commands/tablecmds.c:15486 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "Relation »%s« existiert bereits in Schema »%s«" -#: commands/tablecmds.c:15941 +#: commands/tablecmds.c:16049 #, c-format msgid "\"%s\" is not a composite type" msgstr "»%s« ist kein zusammengesetzter Typ" -#: commands/tablecmds.c:15973 +#: commands/tablecmds.c:16081 #, c-format msgid "\"%s\" is not a table, view, materialized view, sequence, or foreign table" msgstr "»%s« ist weder Tabelle, Sicht, materialisierte Sicht, Sequenz noch Fremdtabelle" -#: commands/tablecmds.c:16008 +#: commands/tablecmds.c:16116 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "unbekannte Partitionierungsstrategie »%s«" -#: commands/tablecmds.c:16016 +#: commands/tablecmds.c:16124 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "Partitionierungsstrategie »list« kann nicht mit mehr als einer Spalte verwendet werden" -#: commands/tablecmds.c:16082 +#: commands/tablecmds.c:16190 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "Spalte »%s«, die im Partitionierungsschlüssel verwendet wird, existiert nicht" -#: commands/tablecmds.c:16090 +#: commands/tablecmds.c:16198 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "Systemspalte »%s« kann nicht im Partitionierungsschlüssel verwendet werden" -#: commands/tablecmds.c:16101 commands/tablecmds.c:16215 +#: commands/tablecmds.c:16209 commands/tablecmds.c:16323 #, c-format msgid "cannot use generated column in partition key" msgstr "generierte Spalte kann nicht im Partitionierungsschlüssel verwendet werden" -#: commands/tablecmds.c:16102 commands/tablecmds.c:16216 commands/trigger.c:649 -#: rewrite/rewriteHandler.c:830 rewrite/rewriteHandler.c:847 +#: commands/tablecmds.c:16210 commands/tablecmds.c:16324 commands/trigger.c:649 +#: rewrite/rewriteHandler.c:853 rewrite/rewriteHandler.c:870 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Spalte »%s« ist eine generierte Spalte." -#: commands/tablecmds.c:16178 +#: commands/tablecmds.c:16286 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "Funktionen im Partitionierungsschlüsselausdruck müssen als IMMUTABLE markiert sein" -#: commands/tablecmds.c:16198 +#: commands/tablecmds.c:16306 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "Partitionierungsschlüsselausdruck kann nicht auf Systemspalten verweisen" -#: commands/tablecmds.c:16228 +#: commands/tablecmds.c:16336 #, c-format msgid "cannot use constant expression as partition key" msgstr "Partitionierungsschlüssel kann kein konstanter Ausdruck sein" -#: commands/tablecmds.c:16249 +#: commands/tablecmds.c:16357 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "konnte die für den Partitionierungsausdruck zu verwendende Sortierfolge nicht bestimmen" -#: commands/tablecmds.c:16284 +#: commands/tablecmds.c:16392 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "Sie müssen eine hash-Operatorklasse angeben oder eine hash-Standardoperatorklasse für den Datentyp definieren." -#: commands/tablecmds.c:16290 +#: commands/tablecmds.c:16398 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "Sie müssen eine btree-Operatorklasse angeben oder eine btree-Standardoperatorklasse für den Datentyp definieren." -#: commands/tablecmds.c:16435 +#: commands/tablecmds.c:16543 #, c-format msgid "partition constraint for table \"%s\" is implied by existing constraints" msgstr "Partitions-Constraint für Tabelle »%s« ist schon in bestehenden Constraints inbegriffen" -#: commands/tablecmds.c:16439 partitioning/partbounds.c:3119 +#: commands/tablecmds.c:16547 partitioning/partbounds.c:3119 #: partitioning/partbounds.c:3170 #, c-format msgid "updated partition constraint for default partition \"%s\" is implied by existing constraints" msgstr "aktualisierter Partitions-Constraint der Standardpartition »%s« ist schon in bestehenden Constraints inbegriffen" -#: commands/tablecmds.c:16538 +#: commands/tablecmds.c:16646 #, c-format msgid "\"%s\" is already a partition" msgstr "»%s« ist bereits eine Partition" -#: commands/tablecmds.c:16544 +#: commands/tablecmds.c:16652 #, c-format msgid "cannot attach a typed table as partition" msgstr "eine getypte Tabelle kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:16560 +#: commands/tablecmds.c:16668 #, c-format msgid "cannot attach inheritance child as partition" msgstr "ein Vererbungskind kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:16574 +#: commands/tablecmds.c:16682 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "eine Tabelle mit abgeleiteten Tabellen kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:16608 +#: commands/tablecmds.c:16716 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "eine temporäre Relation kann nicht als Partition an permanente Relation »%s« angefügt werden" -#: commands/tablecmds.c:16616 +#: commands/tablecmds.c:16724 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "eine permanente Relation kann nicht als Partition an temporäre Relation »%s« angefügt werden" -#: commands/tablecmds.c:16624 +#: commands/tablecmds.c:16732 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "kann nicht als Partition an temporäre Relation einer anderen Sitzung anfügen" -#: commands/tablecmds.c:16631 +#: commands/tablecmds.c:16739 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "temporäre Relation einer anderen Sitzung kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:16651 +#: commands/tablecmds.c:16759 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "Tabelle »%s« enthält Spalte »%s«, die nicht in der Elterntabelle »%s« gefunden wurde" -#: commands/tablecmds.c:16654 +#: commands/tablecmds.c:16762 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "Die neue Partition darf nur Spalten enthalten, die auch die Elterntabelle hat." -#: commands/tablecmds.c:16666 +#: commands/tablecmds.c:16774 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "Trigger »%s« verhindert, dass Tabelle »%s« eine Partition werden kann" -#: commands/tablecmds.c:16668 commands/trigger.c:455 +#: commands/tablecmds.c:16776 commands/trigger.c:455 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "ROW-Trigger mit Übergangstabellen werden für Partitionen nicht unterstützt" -#: commands/tablecmds.c:16831 +#: commands/tablecmds.c:16955 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "kann Fremdtabelle »%s« nicht als Partition an partitionierte Tabelle »%s« anfügen" -#: commands/tablecmds.c:16834 +#: commands/tablecmds.c:16958 #, c-format msgid "Table \"%s\" contains unique indexes." msgstr "Tabelle »%s« enthält Unique-Indexe." -#: commands/tablecmds.c:17480 commands/tablecmds.c:17500 -#: commands/tablecmds.c:17520 commands/tablecmds.c:17539 -#: commands/tablecmds.c:17581 +#: commands/tablecmds.c:17623 commands/tablecmds.c:17643 +#: commands/tablecmds.c:17663 commands/tablecmds.c:17682 +#: commands/tablecmds.c:17724 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "kann Index »%s« nicht als Partition an Index »%s« anfügen" -#: commands/tablecmds.c:17483 +#: commands/tablecmds.c:17626 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Index »%s« ist bereits an einen anderen Index angefügt." -#: commands/tablecmds.c:17503 +#: commands/tablecmds.c:17646 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Index »%s« ist kein Index irgendeiner Partition von Tabelle »%s«." -#: commands/tablecmds.c:17523 +#: commands/tablecmds.c:17666 #, c-format msgid "The index definitions do not match." msgstr "Die Indexdefinitionen stimmen nicht überein." -#: commands/tablecmds.c:17542 +#: commands/tablecmds.c:17685 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "Der Index »%s« gehört zu einem Constraint in Tabelle »%s«, aber kein Constraint existiert für Index »%s«." -#: commands/tablecmds.c:17584 +#: commands/tablecmds.c:17727 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "Ein anderer Index ist bereits für Partition »%s« angefügt." #: commands/tablespace.c:162 commands/tablespace.c:179 #: commands/tablespace.c:190 commands/tablespace.c:198 -#: commands/tablespace.c:650 replication/slot.c:1460 storage/file/copydir.c:47 +#: commands/tablespace.c:636 replication/slot.c:1460 storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht erzeugen: %m" -#: commands/tablespace.c:209 +#: commands/tablespace.c:209 commands/tablespace.c:631 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "konnte »stat« für Verzeichnis »%s« nicht ausführen: %m" -#: commands/tablespace.c:218 +#: commands/tablespace.c:218 commands/tablespace.c:642 #, c-format msgid "\"%s\" exists but is not a directory" msgstr "»%s« existiert, ist aber kein Verzeichnis" @@ -10261,24 +10280,24 @@ msgid "tablespace location should not be inside the data directory" msgstr "Tablespace-Pfad sollte nicht innerhalb des Datenverzeichnisses sein" -#: commands/tablespace.c:305 commands/tablespace.c:977 +#: commands/tablespace.c:305 commands/tablespace.c:973 #, c-format msgid "unacceptable tablespace name \"%s\"" msgstr "inakzeptabler Tablespace-Name »%s«" -#: commands/tablespace.c:307 commands/tablespace.c:978 +#: commands/tablespace.c:307 commands/tablespace.c:974 #, c-format msgid "The prefix \"pg_\" is reserved for system tablespaces." msgstr "Der Präfix »pg_« ist für System-Tablespaces reserviert." -#: commands/tablespace.c:326 commands/tablespace.c:999 +#: commands/tablespace.c:326 commands/tablespace.c:995 #, c-format msgid "tablespace \"%s\" already exists" msgstr "Tablespace »%s« existiert bereits" -#: commands/tablespace.c:444 commands/tablespace.c:960 -#: commands/tablespace.c:1049 commands/tablespace.c:1118 -#: commands/tablespace.c:1264 commands/tablespace.c:1467 +#: commands/tablespace.c:444 commands/tablespace.c:956 +#: commands/tablespace.c:1045 commands/tablespace.c:1114 +#: commands/tablespace.c:1260 commands/tablespace.c:1463 #, c-format msgid "tablespace \"%s\" does not exist" msgstr "Tablespace »%s« existiert nicht" @@ -10313,39 +10332,39 @@ msgid "could not set permissions on directory \"%s\": %m" msgstr "konnte Zugriffsrechte für Verzeichnis »%s« nicht setzen: %m" -#: commands/tablespace.c:645 +#: commands/tablespace.c:647 #, c-format msgid "directory \"%s\" already in use as a tablespace" msgstr "Verzeichnis »%s« ist bereits als Tablespace in Verwendung" -#: commands/tablespace.c:769 commands/tablespace.c:782 -#: commands/tablespace.c:818 commands/tablespace.c:910 storage/file/fd.c:3122 +#: commands/tablespace.c:765 commands/tablespace.c:778 +#: commands/tablespace.c:814 commands/tablespace.c:906 storage/file/fd.c:3122 #: storage/file/fd.c:3462 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht löschen: %m" -#: commands/tablespace.c:831 commands/tablespace.c:919 +#: commands/tablespace.c:827 commands/tablespace.c:915 #, c-format msgid "could not remove symbolic link \"%s\": %m" msgstr "konnte symbolische Verknüpfung »%s« nicht löschen: %m" -#: commands/tablespace.c:841 commands/tablespace.c:928 +#: commands/tablespace.c:837 commands/tablespace.c:924 #, c-format msgid "\"%s\" is not a directory or symbolic link" msgstr "»%s« ist kein Verzeichnis oder symbolische Verknüpfung" -#: commands/tablespace.c:1123 +#: commands/tablespace.c:1119 #, c-format msgid "Tablespace \"%s\" does not exist." msgstr "Tablespace »%s« existiert nicht." -#: commands/tablespace.c:1566 +#: commands/tablespace.c:1562 #, c-format msgid "directories for tablespace %u could not be removed" msgstr "Verzeichnisse für Tablespace %u konnten nicht entfernt werden" -#: commands/tablespace.c:1568 +#: commands/tablespace.c:1564 #, c-format msgid "You can remove the directories manually if necessary." msgstr "Sie können die Verzeichnisse falls nötig manuell entfernen." @@ -10709,7 +10728,7 @@ msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE." msgstr "Erzeugen Sie den Typ als Shell-Typ, legen Sie dann die I/O-Funktionen an und führen Sie dann das volle CREATE TYPE aus." -#: commands/typecmds.c:314 commands/typecmds.c:1396 commands/typecmds.c:3839 +#: commands/typecmds.c:314 commands/typecmds.c:1396 commands/typecmds.c:3840 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "Typ-Attribut »%s« nicht erkannt" @@ -10729,7 +10748,7 @@ msgid "alignment \"%s\" not recognized" msgstr "Ausrichtung »%s« nicht erkannt" -#: commands/typecmds.c:438 commands/typecmds.c:3725 +#: commands/typecmds.c:438 commands/typecmds.c:3726 #, c-format msgid "storage \"%s\" not recognized" msgstr "Storage-Typ »%s« nicht erkannt" @@ -10769,27 +10788,27 @@ msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "Check-Constraints für Domänen können nicht als NO INHERIT markiert werden" -#: commands/typecmds.c:936 commands/typecmds.c:2538 +#: commands/typecmds.c:936 commands/typecmds.c:2539 #, c-format msgid "unique constraints not possible for domains" msgstr "Unique-Constraints sind nicht für Domänen möglich" -#: commands/typecmds.c:942 commands/typecmds.c:2544 +#: commands/typecmds.c:942 commands/typecmds.c:2545 #, c-format msgid "primary key constraints not possible for domains" msgstr "Primärschlüssel-Constraints sind nicht fürDomänen möglich" -#: commands/typecmds.c:948 commands/typecmds.c:2550 +#: commands/typecmds.c:948 commands/typecmds.c:2551 #, c-format msgid "exclusion constraints not possible for domains" msgstr "Exclusion-Constraints sind nicht für Domänen möglich" -#: commands/typecmds.c:954 commands/typecmds.c:2556 +#: commands/typecmds.c:954 commands/typecmds.c:2557 #, c-format msgid "foreign key constraints not possible for domains" msgstr "Fremdschlüssel-Constraints sind nicht für Domänen möglich" -#: commands/typecmds.c:963 commands/typecmds.c:2565 +#: commands/typecmds.c:963 commands/typecmds.c:2566 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "Setzen des Constraint-Modus wird für Domänen nicht unterstützt" @@ -10929,88 +10948,88 @@ msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "Array-OID-Wert für pg_type ist im Binary-Upgrade-Modus nicht gesetzt" -#: commands/typecmds.c:2354 +#: commands/typecmds.c:2355 #, c-format msgid "column \"%s\" of table \"%s\" contains null values" msgstr "Spalte »%s« von Tabelle »%s« enthält NULL-Werte" -#: commands/typecmds.c:2467 commands/typecmds.c:2669 +#: commands/typecmds.c:2468 commands/typecmds.c:2670 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "Constraint »%s« von Domäne »%s« existiert nicht" -#: commands/typecmds.c:2471 +#: commands/typecmds.c:2472 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "Constraint »%s« von Domäne »%s« existiert nicht, wird übersprungen" -#: commands/typecmds.c:2676 +#: commands/typecmds.c:2677 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "Constraint »%s« von Domäne »%s« ist kein Check-Constraint" -#: commands/typecmds.c:2782 +#: commands/typecmds.c:2783 #, c-format msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint" msgstr "Spalte »%s« von Tabelle »%s« enthält Werte, die den neuen Constraint verletzen" -#: commands/typecmds.c:3011 commands/typecmds.c:3214 commands/typecmds.c:3296 -#: commands/typecmds.c:3483 +#: commands/typecmds.c:3012 commands/typecmds.c:3215 commands/typecmds.c:3297 +#: commands/typecmds.c:3484 #, c-format msgid "%s is not a domain" msgstr "%s ist keine Domäne" -#: commands/typecmds.c:3043 +#: commands/typecmds.c:3044 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "Constraint »%s« für Domäne »%s« existiert bereits" -#: commands/typecmds.c:3099 +#: commands/typecmds.c:3100 #, c-format msgid "cannot use table references in domain check constraint" msgstr "Tabellenverweise können in Domänen-Check-Constraints nicht verwendet werden" -#: commands/typecmds.c:3226 commands/typecmds.c:3308 commands/typecmds.c:3600 +#: commands/typecmds.c:3227 commands/typecmds.c:3309 commands/typecmds.c:3601 #, c-format msgid "%s is a table's row type" msgstr "%s ist der Zeilentyp einer Tabelle" -#: commands/typecmds.c:3228 commands/typecmds.c:3310 commands/typecmds.c:3602 +#: commands/typecmds.c:3229 commands/typecmds.c:3311 commands/typecmds.c:3603 #, c-format msgid "Use ALTER TABLE instead." msgstr "Verwenden Sie stattdessen ALTER TABLE." -#: commands/typecmds.c:3235 commands/typecmds.c:3317 commands/typecmds.c:3515 +#: commands/typecmds.c:3236 commands/typecmds.c:3318 commands/typecmds.c:3516 #, c-format msgid "cannot alter array type %s" msgstr "Array-Typ %s kann nicht verändert werden" -#: commands/typecmds.c:3237 commands/typecmds.c:3319 commands/typecmds.c:3517 +#: commands/typecmds.c:3238 commands/typecmds.c:3320 commands/typecmds.c:3518 #, c-format msgid "You can alter type %s, which will alter the array type as well." msgstr "Sie können den Typ %s ändern, wodurch der Array-Typ ebenfalls geändert wird." -#: commands/typecmds.c:3585 +#: commands/typecmds.c:3586 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "Typ %s existiert bereits in Schema »%s«" -#: commands/typecmds.c:3753 +#: commands/typecmds.c:3754 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "Storage-Typ eines Typs kann nicht in PLAIN geändert werden" -#: commands/typecmds.c:3834 +#: commands/typecmds.c:3835 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "Typ-Attribut »%s« kann nicht geändert werden" -#: commands/typecmds.c:3852 +#: commands/typecmds.c:3853 #, c-format msgid "must be superuser to alter a type" msgstr "nur Superuser können Typen ändern" -#: commands/typecmds.c:3873 commands/typecmds.c:3883 +#: commands/typecmds.c:3874 commands/typecmds.c:3884 #, c-format msgid "%s is not a base type" msgstr "%s ist kein Basistyp" @@ -11100,7 +11119,7 @@ #: commands/user.c:1040 commands/user.c:1197 commands/variable.c:778 #: commands/variable.c:781 commands/variable.c:865 commands/variable.c:868 #: utils/adt/acl.c:5187 utils/adt/acl.c:5234 utils/adt/acl.c:5262 -#: utils/adt/acl.c:5280 utils/init/miscinit.c:675 +#: utils/adt/acl.c:5280 utils/init/miscinit.c:674 #, c-format msgid "role \"%s\" does not exist" msgstr "Rolle »%s« existiert nicht" @@ -11520,7 +11539,7 @@ msgid "no value found for parameter %d" msgstr "kein Wert für Parameter %d gefunden" -#: executor/execExpr.c:890 parser/parse_agg.c:816 +#: executor/execExpr.c:890 parser/parse_agg.c:809 #, c-format msgid "window function calls cannot be nested" msgstr "Aufrufe von Fensterfunktionen können nicht geschachtelt werden" @@ -11616,27 +11635,27 @@ msgid "value for domain %s violates check constraint \"%s\"" msgstr "Wert für Domäne %s verletzt Check-Constraint »%s«" -#: executor/execExprInterp.c:4006 executor/execExprInterp.c:4023 -#: executor/execExprInterp.c:4124 executor/nodeModifyTable.c:109 +#: executor/execExprInterp.c:4002 executor/execExprInterp.c:4019 +#: executor/execExprInterp.c:4118 executor/nodeModifyTable.c:109 #: executor/nodeModifyTable.c:120 executor/nodeModifyTable.c:137 #: executor/nodeModifyTable.c:145 #, c-format msgid "table row type and query-specified row type do not match" msgstr "Zeilentyp der Tabelle und der von der Anfrage angegebene Zeilentyp stimmen nicht überein" -#: executor/execExprInterp.c:4007 +#: executor/execExprInterp.c:4003 #, c-format msgid "Table row contains %d attribute, but query expects %d." msgid_plural "Table row contains %d attributes, but query expects %d." msgstr[0] "Tabellenzeile enthält %d Attribut, aber Anfrage erwartet %d." msgstr[1] "Tabellenzeile enthält %d Attribute, aber Anfrage erwartet %d." -#: executor/execExprInterp.c:4024 executor/nodeModifyTable.c:121 +#: executor/execExprInterp.c:4020 executor/nodeModifyTable.c:121 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "Tabelle hat Typ %s auf Position %d, aber Anfrage erwartet %s." -#: executor/execExprInterp.c:4125 executor/execSRF.c:967 +#: executor/execExprInterp.c:4119 executor/execSRF.c:967 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "Physischer Speicher stimmt nicht überein mit gelöschtem Attribut auf Position %d." @@ -11686,38 +11705,38 @@ msgid "cannot change TOAST relation \"%s\"" msgstr "kann TOAST-Relation »%s« nicht ändern" -#: executor/execMain.c:1101 rewrite/rewriteHandler.c:2972 -#: rewrite/rewriteHandler.c:3763 +#: executor/execMain.c:1101 rewrite/rewriteHandler.c:2995 +#: rewrite/rewriteHandler.c:3786 #, c-format msgid "cannot insert into view \"%s\"" msgstr "kann nicht in Sicht »%s« einfügen" -#: executor/execMain.c:1103 rewrite/rewriteHandler.c:2975 -#: rewrite/rewriteHandler.c:3766 +#: executor/execMain.c:1103 rewrite/rewriteHandler.c:2998 +#: rewrite/rewriteHandler.c:3789 #, c-format msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." msgstr "Um Einfügen in die Sicht zu ermöglichen, richten Sie einen INSTEAD OF INSERT Trigger oder eine ON INSERT DO INSTEAD Regel ohne Bedingung ein." -#: executor/execMain.c:1109 rewrite/rewriteHandler.c:2980 -#: rewrite/rewriteHandler.c:3771 +#: executor/execMain.c:1109 rewrite/rewriteHandler.c:3003 +#: rewrite/rewriteHandler.c:3794 #, c-format msgid "cannot update view \"%s\"" msgstr "kann Sicht »%s« nicht aktualisieren" -#: executor/execMain.c:1111 rewrite/rewriteHandler.c:2983 -#: rewrite/rewriteHandler.c:3774 +#: executor/execMain.c:1111 rewrite/rewriteHandler.c:3006 +#: rewrite/rewriteHandler.c:3797 #, c-format msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." msgstr "Um Aktualisieren der Sicht zu ermöglichen, richten Sie einen INSTEAD OF UPDATE Trigger oder eine ON UPDATE DO INSTEAD Regel ohne Bedingung ein." -#: executor/execMain.c:1117 rewrite/rewriteHandler.c:2988 -#: rewrite/rewriteHandler.c:3779 +#: executor/execMain.c:1117 rewrite/rewriteHandler.c:3011 +#: rewrite/rewriteHandler.c:3802 #, c-format msgid "cannot delete from view \"%s\"" msgstr "kann nicht aus Sicht »%s« löschen" -#: executor/execMain.c:1119 rewrite/rewriteHandler.c:2991 -#: rewrite/rewriteHandler.c:3782 +#: executor/execMain.c:1119 rewrite/rewriteHandler.c:3014 +#: rewrite/rewriteHandler.c:3805 #, c-format msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." msgstr "Um Löschen aus der Sicht zu ermöglichen, richten Sie einen INSTEAD OF DELETE Trigger oder eine ON DELETE DO INSTEAD Regel ohne Bedingung ein." @@ -12039,17 +12058,17 @@ msgid "return type %s is not supported for SQL functions" msgstr "Rückgabetyp %s wird von SQL-Funktionen nicht unterstützt" -#: executor/nodeAgg.c:3095 executor/nodeAgg.c:3104 executor/nodeAgg.c:3116 +#: executor/nodeAgg.c:3096 executor/nodeAgg.c:3105 executor/nodeAgg.c:3117 #, c-format msgid "unexpected EOF for tape %d: requested %zu bytes, read %zu bytes" msgstr "unerwartetes EOF für Tape %d: %zu Bytes angefordert, %zu Bytes gelesen" -#: executor/nodeAgg.c:4050 parser/parse_agg.c:655 parser/parse_agg.c:685 +#: executor/nodeAgg.c:4043 parser/parse_agg.c:650 parser/parse_agg.c:678 #, c-format msgid "aggregate function calls cannot be nested" msgstr "Aufrufe von Aggregatfunktionen können nicht geschachtelt werden" -#: executor/nodeAgg.c:4258 executor/nodeWindowAgg.c:2836 +#: executor/nodeAgg.c:4251 executor/nodeWindowAgg.c:2836 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "Aggregatfunktion %u muss kompatiblen Eingabe- und Übergangstyp haben" @@ -12069,7 +12088,7 @@ msgid "could not read from hash-join temporary file: read only %zu of %zu bytes" msgstr "konnte nicht aus temporärer Datei für Hash-Verbund lesen: es wurden nur %zu von %zu Bytes gelesen" -#: executor/nodeIndexonlyscan.c:242 +#: executor/nodeIndexonlyscan.c:240 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "verlustbehaftete Abstandsfunktionen werden in Index-Only-Scans nicht unterstützt" @@ -12390,7 +12409,7 @@ msgid "duplicate trigger events specified" msgstr "mehrere Trigger-Ereignisse angegeben" -#: gram.y:5594 parser/parse_utilcmd.c:3605 parser/parse_utilcmd.c:3631 +#: gram.y:5594 parser/parse_utilcmd.c:3606 parser/parse_utilcmd.c:3632 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "Constraint, der als INITIALLY DEFERRED deklariert wurde, muss DEFERRABLE sein" @@ -12605,35 +12624,35 @@ msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "WITH TIES kann nicht ohne ORDER-BY-Klausel angegeben werden" -#: gram.y:16173 +#: gram.y:16188 #, c-format msgid "multiple WITH clauses not allowed" msgstr "mehrere WITH-Klauseln sind nicht erlaubt" -#: gram.y:16377 +#: gram.y:16392 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "OUT- und INOUT-Argumente sind in TABLE-Funktionen nicht erlaubt" -#: gram.y:16473 +#: gram.y:16488 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "mehrere COLLATE-Klauseln sind nicht erlaubt" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:16511 gram.y:16524 +#: gram.y:16526 gram.y:16539 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "%s-Constraints können nicht als DEFERRABLE markiert werden" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:16537 +#: gram.y:16552 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "%s-Constraints können nicht als NOT VALID markiert werden" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:16550 +#: gram.y:16565 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "%s-Constraints können nicht als NO INHERIT markiert werden" @@ -12690,7 +12709,7 @@ msgid "configuration file recursion in \"%s\"" msgstr "Konfigurationsdateirekursion in »%s«" -#: guc-file.l:633 libpq/hba.c:2193 libpq/hba.c:2613 +#: guc-file.l:633 libpq/hba.c:2197 libpq/hba.c:2617 #, c-format msgid "could not open configuration file \"%s\": %m" msgstr "konnte Konfigurationsdatei »%s« nicht öffnen: %m" @@ -13400,7 +13419,7 @@ msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "RADIUS-Authentifizierung unterstützt keine Passwörter länger als %d Zeichen" -#: libpq/auth.c:3111 libpq/hba.c:1946 +#: libpq/auth.c:3111 libpq/hba.c:1950 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "konnte RADIUS-Servername »%s« nicht in Adresse übersetzen: %s" @@ -13480,67 +13499,67 @@ msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "RADIUS-Antwort von %s hat ungültigen Code (%d) für Benutzer »%s«" -#: libpq/be-fsstubs.c:119 libpq/be-fsstubs.c:150 libpq/be-fsstubs.c:178 -#: libpq/be-fsstubs.c:204 libpq/be-fsstubs.c:229 libpq/be-fsstubs.c:277 -#: libpq/be-fsstubs.c:300 libpq/be-fsstubs.c:553 +#: libpq/be-fsstubs.c:128 libpq/be-fsstubs.c:157 libpq/be-fsstubs.c:185 +#: libpq/be-fsstubs.c:211 libpq/be-fsstubs.c:236 libpq/be-fsstubs.c:274 +#: libpq/be-fsstubs.c:297 libpq/be-fsstubs.c:545 #, c-format msgid "invalid large-object descriptor: %d" msgstr "ungültiger Large-Object-Deskriptor: %d" -#: libpq/be-fsstubs.c:161 +#: libpq/be-fsstubs.c:168 #, c-format msgid "large object descriptor %d was not opened for reading" msgstr "Large-Objekt-Deskriptor %d wurde nicht zum Lesen geöffnet" -#: libpq/be-fsstubs.c:185 libpq/be-fsstubs.c:560 +#: libpq/be-fsstubs.c:192 libpq/be-fsstubs.c:552 #, c-format msgid "large object descriptor %d was not opened for writing" msgstr "Large-Objekt-Deskriptor %d wurde nicht zum Schreiben geöffnet" -#: libpq/be-fsstubs.c:212 +#: libpq/be-fsstubs.c:219 #, c-format msgid "lo_lseek result out of range for large-object descriptor %d" msgstr "Ergebnis von lo_lseek ist außerhalb des gültigen Bereichs für Large-Object-Deskriptor %d" -#: libpq/be-fsstubs.c:285 +#: libpq/be-fsstubs.c:282 #, c-format msgid "lo_tell result out of range for large-object descriptor %d" msgstr "Ergebnis von lo_tell ist außerhalb des gültigen Bereichs für Large-Object-Deskriptor: %d" -#: libpq/be-fsstubs.c:432 +#: libpq/be-fsstubs.c:424 #, c-format msgid "could not open server file \"%s\": %m" msgstr "konnte Serverdatei »%s« nicht öffnen: %m" -#: libpq/be-fsstubs.c:454 +#: libpq/be-fsstubs.c:447 #, c-format msgid "could not read server file \"%s\": %m" msgstr "konnte Serverdatei »%s« nicht lesen: %m" -#: libpq/be-fsstubs.c:514 +#: libpq/be-fsstubs.c:506 #, c-format msgid "could not create server file \"%s\": %m" msgstr "konnte Serverdatei »%s« nicht erstellen: %m" -#: libpq/be-fsstubs.c:526 +#: libpq/be-fsstubs.c:518 #, c-format msgid "could not write server file \"%s\": %m" msgstr "konnte Serverdatei »%s« nicht schreiben: %m" -#: libpq/be-fsstubs.c:760 +#: libpq/be-fsstubs.c:758 #, c-format msgid "large object read request is too large" msgstr "Large-Object-Leseaufforderung ist zu groß" -#: libpq/be-fsstubs.c:802 utils/adt/genfile.c:265 utils/adt/genfile.c:304 +#: libpq/be-fsstubs.c:800 utils/adt/genfile.c:265 utils/adt/genfile.c:304 #: utils/adt/genfile.c:340 #, c-format msgid "requested length cannot be negative" msgstr "verlangte Länge darf nicht negativ sein" -#: libpq/be-fsstubs.c:855 storage/large_object/inv_api.c:297 -#: storage/large_object/inv_api.c:309 storage/large_object/inv_api.c:513 -#: storage/large_object/inv_api.c:624 storage/large_object/inv_api.c:814 +#: libpq/be-fsstubs.c:851 storage/large_object/inv_api.c:299 +#: storage/large_object/inv_api.c:311 storage/large_object/inv_api.c:508 +#: storage/large_object/inv_api.c:619 storage/large_object/inv_api.c:809 #, c-format msgid "permission denied for large object %u" msgstr "keine Berechtigung für Large Object %u" @@ -13560,22 +13579,22 @@ msgid "could not access private key file \"%s\": %m" msgstr "konnte auf private Schlüsseldatei »%s« nicht zugreifen: %m" -#: libpq/be-secure-common.c:150 +#: libpq/be-secure-common.c:151 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "private Schlüsseldatei »%s« ist keine normale Datei" -#: libpq/be-secure-common.c:165 +#: libpq/be-secure-common.c:176 #, c-format msgid "private key file \"%s\" must be owned by the database user or root" msgstr "private Schlüsseldatei »%s« muss als Eigentümer den Datenbankbenutzer oder »root« haben" -#: libpq/be-secure-common.c:188 +#: libpq/be-secure-common.c:186 #, c-format msgid "private key file \"%s\" has group or world access" msgstr "private Schlüsseldatei »%s« erlaubt Zugriff von Gruppe oder Welt" -#: libpq/be-secure-common.c:190 +#: libpq/be-secure-common.c:188 #, c-format msgid "File must have permissions u=rw (0600) or less if owned by the database user, or permissions u=rw,g=r (0640) or less if owned by root." msgstr "Dateirechte müssen u=rw (0600) oder weniger sein, wenn der Eigentümer der Datenbankbenutzer ist, oder u=rw,g=r (0640) oder weniger, wenn der Eigentümer »root« ist." @@ -13738,56 +13757,56 @@ msgid "SSL error: %s" msgstr "SSL-Fehler: %s" -#: libpq/be-secure-openssl.c:888 +#: libpq/be-secure-openssl.c:889 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "konnte DH-Parameterdatei »%s« nicht öffnen: %m" -#: libpq/be-secure-openssl.c:900 +#: libpq/be-secure-openssl.c:901 #, c-format msgid "could not load DH parameters file: %s" msgstr "konnte DH-Parameterdatei nicht laden: %s" -#: libpq/be-secure-openssl.c:910 +#: libpq/be-secure-openssl.c:911 #, c-format msgid "invalid DH parameters: %s" msgstr "ungültige DH-Parameter: %s" -#: libpq/be-secure-openssl.c:919 +#: libpq/be-secure-openssl.c:920 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "ungültige DH-Parameter: p ist keine Primzahl" -#: libpq/be-secure-openssl.c:928 +#: libpq/be-secure-openssl.c:929 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "ungültige DH-Parameter: weder geeigneter Generator noch sichere Primzahl" -#: libpq/be-secure-openssl.c:1085 +#: libpq/be-secure-openssl.c:1086 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: konnte DH-Parameter nicht laden" -#: libpq/be-secure-openssl.c:1093 +#: libpq/be-secure-openssl.c:1094 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: konnte DH-Parameter nicht setzen: %s" -#: libpq/be-secure-openssl.c:1120 +#: libpq/be-secure-openssl.c:1121 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: unbekannter Kurvenname: %s" -#: libpq/be-secure-openssl.c:1129 +#: libpq/be-secure-openssl.c:1130 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: konnte Schlüssel nicht erzeugen" -#: libpq/be-secure-openssl.c:1157 +#: libpq/be-secure-openssl.c:1158 msgid "no SSL error reported" msgstr "kein SSL-Fehler berichtet" -#: libpq/be-secure-openssl.c:1161 +#: libpq/be-secure-openssl.c:1162 #, c-format msgid "SSL error code %lu" msgstr "SSL-Fehlercode %lu" @@ -13855,10 +13874,10 @@ #: libpq/hba.c:1281 libpq/hba.c:1297 libpq/hba.c:1309 libpq/hba.c:1346 #: libpq/hba.c:1387 libpq/hba.c:1400 libpq/hba.c:1422 libpq/hba.c:1434 #: libpq/hba.c:1452 libpq/hba.c:1502 libpq/hba.c:1546 libpq/hba.c:1557 -#: libpq/hba.c:1573 libpq/hba.c:1590 libpq/hba.c:1600 libpq/hba.c:1658 -#: libpq/hba.c:1696 libpq/hba.c:1718 libpq/hba.c:1730 libpq/hba.c:1817 -#: libpq/hba.c:1835 libpq/hba.c:1929 libpq/hba.c:1948 libpq/hba.c:1977 -#: libpq/hba.c:1990 libpq/hba.c:2013 libpq/hba.c:2035 libpq/hba.c:2049 +#: libpq/hba.c:1573 libpq/hba.c:1590 libpq/hba.c:1600 libpq/hba.c:1662 +#: libpq/hba.c:1700 libpq/hba.c:1722 libpq/hba.c:1734 libpq/hba.c:1821 +#: libpq/hba.c:1839 libpq/hba.c:1933 libpq/hba.c:1952 libpq/hba.c:1981 +#: libpq/hba.c:1994 libpq/hba.c:2017 libpq/hba.c:2039 libpq/hba.c:2053 #: tsearch/ts_locale.c:217 #, c-format msgid "line %d of configuration file \"%s\"" @@ -14070,124 +14089,124 @@ msgid "list of RADIUS secrets cannot be empty" msgstr "Liste der RADIUS-Geheimnisse darf nicht leer sein" -#: libpq/hba.c:1652 +#: libpq/hba.c:1656 #, c-format msgid "the number of %s (%d) must be 1 or the same as the number of %s (%d)" msgstr "die Anzahl %s (%d) muss 1 oder gleich der Anzahl %s (%d) sein" -#: libpq/hba.c:1686 +#: libpq/hba.c:1690 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi und cert" -#: libpq/hba.c:1695 +#: libpq/hba.c:1699 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert kann nur für »hostssl«-Zeilen konfiguriert werden" -#: libpq/hba.c:1717 +#: libpq/hba.c:1721 #, c-format msgid "clientcert cannot be set to \"no-verify\" when using \"cert\" authentication" msgstr "clientcert kann nicht auf »no-verify« gesetzt sein, wenn »cert«-Authentifizierung verwendet wird" -#: libpq/hba.c:1729 +#: libpq/hba.c:1733 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "ungültiger Wert für clientcert: »%s«" -#: libpq/hba.c:1763 +#: libpq/hba.c:1767 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "konnte LDAP-URL »%s« nicht interpretieren: %s" -#: libpq/hba.c:1774 +#: libpq/hba.c:1778 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "nicht unterstütztes LDAP-URL-Schema: %s" -#: libpq/hba.c:1798 +#: libpq/hba.c:1802 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "LDAP-URLs werden auf dieser Plattform nicht unterstützt" -#: libpq/hba.c:1816 +#: libpq/hba.c:1820 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "ungültiger ldapscheme-Wert: »%s«" -#: libpq/hba.c:1834 +#: libpq/hba.c:1838 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "ungültige LDAP-Portnummer: »%s«" -#: libpq/hba.c:1880 libpq/hba.c:1887 +#: libpq/hba.c:1884 libpq/hba.c:1891 msgid "gssapi and sspi" msgstr "gssapi und sspi" -#: libpq/hba.c:1896 libpq/hba.c:1905 +#: libpq/hba.c:1900 libpq/hba.c:1909 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:1927 +#: libpq/hba.c:1931 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "konnte RADIUS-Serverliste »%s« nicht parsen" -#: libpq/hba.c:1975 +#: libpq/hba.c:1979 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "konnte RADIUS-Portliste »%s« nicht parsen" -#: libpq/hba.c:1989 +#: libpq/hba.c:1993 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "ungültige RADIUS-Portnummer: »%s«" -#: libpq/hba.c:2011 +#: libpq/hba.c:2015 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "konnte RADIUS-Geheimnisliste »%s« nicht parsen" -#: libpq/hba.c:2033 +#: libpq/hba.c:2037 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "konnte RADIUS-Bezeichnerliste »%s« nicht parsen" -#: libpq/hba.c:2047 +#: libpq/hba.c:2051 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "unbekannter Authentifizierungsoptionsname: »%s«" -#: libpq/hba.c:2244 +#: libpq/hba.c:2248 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "Konfigurationsdatei »%s« enthält keine Einträge" -#: libpq/hba.c:2768 +#: libpq/hba.c:2772 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "ungültiger regulärer Ausdruck »%s«: %s" -#: libpq/hba.c:2828 +#: libpq/hba.c:2832 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "Suche nach regulärem Ausdruck für »%s« fehlgeschlagen: %s" -#: libpq/hba.c:2847 +#: libpq/hba.c:2851 #, c-format msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\"" msgstr "regulärer Ausdruck »%s« hat keine Teilausdrücke wie von der Backreference in »%s« verlangt" -#: libpq/hba.c:2943 +#: libpq/hba.c:2947 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "angegebener Benutzername (%s) und authentifizierter Benutzername (%s) stimmen nicht überein" -#: libpq/hba.c:2963 +#: libpq/hba.c:2967 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "kein passender Eintrag in Usermap »%s« für Benutzer »%s«, authentifiziert als »%s«" -#: libpq/hba.c:2996 +#: libpq/hba.c:3000 #, c-format msgid "could not open usermap file \"%s\": %m" msgstr "konnte Usermap-Datei »%s« nicht öffnen: %m" @@ -14315,27 +14334,27 @@ msgid "could not receive data from client: %m" msgstr "konnte Daten vom Client nicht empfangen: %m" -#: libpq/pqcomm.c:1203 tcop/postgres.c:4164 +#: libpq/pqcomm.c:1215 tcop/postgres.c:4174 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "Verbindung wird abgebrochen, weil Protokollsynchronisierung verloren wurde" -#: libpq/pqcomm.c:1269 +#: libpq/pqcomm.c:1281 #, c-format msgid "unexpected EOF within message length word" msgstr "unerwartetes EOF im Message-Längenwort" -#: libpq/pqcomm.c:1280 +#: libpq/pqcomm.c:1292 #, c-format msgid "invalid message length" msgstr "ungültige Message-Länge" -#: libpq/pqcomm.c:1302 libpq/pqcomm.c:1315 +#: libpq/pqcomm.c:1314 libpq/pqcomm.c:1327 #, c-format msgid "incomplete message from client" msgstr "unvollständige Message vom Client" -#: libpq/pqcomm.c:1448 +#: libpq/pqcomm.c:1460 #, c-format msgid "could not send data to client: %m" msgstr "konnte Daten nicht an den Client senden: %m" @@ -14666,9 +14685,9 @@ msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "ExtensibleNodeMethods »%s« wurde nicht registriert" -#: nodes/nodeFuncs.c:122 nodes/nodeFuncs.c:153 parser/parse_coerce.c:2215 -#: parser/parse_coerce.c:2324 parser/parse_coerce.c:2359 -#: parser/parse_expr.c:2207 parser/parse_func.c:701 parser/parse_oper.c:967 +#: nodes/nodeFuncs.c:122 nodes/nodeFuncs.c:153 parser/parse_coerce.c:2295 +#: parser/parse_coerce.c:2404 parser/parse_coerce.c:2439 +#: parser/parse_expr.c:2212 parser/parse_func.c:701 parser/parse_oper.c:967 #: utils/fmgr/funcapi.c:528 #, c-format msgid "could not find array type for data type %s" @@ -14696,44 +14715,44 @@ msgstr "%s kann nicht auf die nullbare Seite eines äußeren Verbundes angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1922 parser/analyze.c:1639 parser/analyze.c:1855 +#: optimizer/plan/planner.c:1923 parser/analyze.c:1639 parser/analyze.c:1855 #: parser/analyze.c:2682 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s ist nicht in UNION/INTERSECT/EXCEPT erlaubt" -#: optimizer/plan/planner.c:2509 optimizer/plan/planner.c:4162 +#: optimizer/plan/planner.c:2510 optimizer/plan/planner.c:4163 #, c-format msgid "could not implement GROUP BY" msgstr "konnte GROUP BY nicht implementieren" -#: optimizer/plan/planner.c:2510 optimizer/plan/planner.c:4163 -#: optimizer/plan/planner.c:4890 optimizer/prep/prepunion.c:1045 +#: optimizer/plan/planner.c:2511 optimizer/plan/planner.c:4164 +#: optimizer/plan/planner.c:4891 optimizer/prep/prepunion.c:1045 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "Einige Datentypen unterstützen nur Hashing, während andere nur Sortieren unterstützen." -#: optimizer/plan/planner.c:4889 +#: optimizer/plan/planner.c:4890 #, c-format msgid "could not implement DISTINCT" msgstr "konnte DISTINCT nicht implementieren" -#: optimizer/plan/planner.c:5737 +#: optimizer/plan/planner.c:5738 #, c-format msgid "could not implement window PARTITION BY" msgstr "konnte PARTITION BY für Fenster nicht implementieren" -#: optimizer/plan/planner.c:5738 +#: optimizer/plan/planner.c:5739 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Fensterpartitionierungsspalten müssen sortierbare Datentypen haben." -#: optimizer/plan/planner.c:5742 +#: optimizer/plan/planner.c:5743 #, c-format msgid "could not implement window ORDER BY" msgstr "konnte ORDER BY für Fenster nicht implementieren" -#: optimizer/plan/planner.c:5743 +#: optimizer/plan/planner.c:5744 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Fenstersortierspalten müssen sortierbare Datentypen haben." @@ -14815,7 +14834,7 @@ msgstr "SELECT ... INTO ist hier nicht erlaubt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1542 parser/analyze.c:2861 +#: parser/analyze.c:1542 parser/analyze.c:2876 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s kann nicht auf VALUES angewendet werden" @@ -14950,43 +14969,43 @@ msgstr "%s ist nicht mit Funktionen mit Ergebnismenge in der Targetliste erlaubt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2803 +#: parser/analyze.c:2816 #, c-format msgid "%s must specify unqualified relation names" msgstr "%s muss unqualifizierte Relationsnamen angeben" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2834 +#: parser/analyze.c:2849 #, c-format msgid "%s cannot be applied to a join" msgstr "%s kann nicht auf einen Verbund angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2843 +#: parser/analyze.c:2858 #, c-format msgid "%s cannot be applied to a function" msgstr "%s kann nicht auf eine Funktion angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2852 +#: parser/analyze.c:2867 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s kann nicht auf eine Tabellenfunktion angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2870 +#: parser/analyze.c:2885 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s kann nicht auf eine WITH-Anfrage angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2879 +#: parser/analyze.c:2894 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s kann nicht auf einen benannten Tupelstore angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2899 +#: parser/analyze.c:2914 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "Relation »%s« in %s nicht in der FROM-Klausel gefunden" @@ -15170,128 +15189,128 @@ msgid "grouping operations are not allowed in %s" msgstr "Gruppieroperationen sind in %s nicht erlaubt" -#: parser/parse_agg.c:678 +#: parser/parse_agg.c:671 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "Aggregatfunktion auf äußerer Ebene kann keine Variable einer unteren Ebene in ihren direkten Argumenten haben" -#: parser/parse_agg.c:757 +#: parser/parse_agg.c:750 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "Aufrufe von Aggregatfunktionen können keine Aufrufe von Funktionen mit Ergebnismenge enthalten" -#: parser/parse_agg.c:758 parser/parse_expr.c:1845 parser/parse_expr.c:2332 +#: parser/parse_agg.c:751 parser/parse_expr.c:1850 parser/parse_expr.c:2337 #: parser/parse_func.c:872 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Sie können möglicherweise die Funktion mit Ergebnismenge in ein LATERAL-FROM-Element verschieben." -#: parser/parse_agg.c:763 +#: parser/parse_agg.c:756 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "Aufrufe von Aggregatfunktionen können keine Aufrufe von Fensterfunktionen enthalten" -#: parser/parse_agg.c:842 +#: parser/parse_agg.c:835 msgid "window functions are not allowed in JOIN conditions" msgstr "Fensterfunktionen sind in JOIN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:849 +#: parser/parse_agg.c:842 msgid "window functions are not allowed in functions in FROM" msgstr "Fensterfunktionen sind in Funktionen in FROM nicht erlaubt" -#: parser/parse_agg.c:855 +#: parser/parse_agg.c:848 msgid "window functions are not allowed in policy expressions" msgstr "Fensterfunktionen sind in Policy-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:868 +#: parser/parse_agg.c:861 msgid "window functions are not allowed in window definitions" msgstr "Fensterfunktionen sind in Fensterdefinitionen nicht erlaubt" -#: parser/parse_agg.c:900 +#: parser/parse_agg.c:893 msgid "window functions are not allowed in check constraints" msgstr "Fensterfunktionen sind in Check-Constraints nicht erlaubt" -#: parser/parse_agg.c:904 +#: parser/parse_agg.c:897 msgid "window functions are not allowed in DEFAULT expressions" msgstr "Fensterfunktionen sind in DEFAULT-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:907 +#: parser/parse_agg.c:900 msgid "window functions are not allowed in index expressions" msgstr "Fensterfunktionen sind in Indexausdrücken nicht erlaubt" -#: parser/parse_agg.c:910 +#: parser/parse_agg.c:903 msgid "window functions are not allowed in index predicates" msgstr "Fensterfunktionen sind in Indexprädikaten nicht erlaubt" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:906 msgid "window functions are not allowed in transform expressions" msgstr "Fensterfunktionen sind in Umwandlungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:916 +#: parser/parse_agg.c:909 msgid "window functions are not allowed in EXECUTE parameters" msgstr "Fensterfunktionen sind in EXECUTE-Parametern nicht erlaubt" -#: parser/parse_agg.c:919 +#: parser/parse_agg.c:912 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "Fensterfunktionen sind in der WHEN-Bedingung eines Triggers nicht erlaubt" -#: parser/parse_agg.c:922 +#: parser/parse_agg.c:915 msgid "window functions are not allowed in partition bound" msgstr "Fensterfunktionen sind in Partitionsbegrenzungen nicht erlaubt" -#: parser/parse_agg.c:925 +#: parser/parse_agg.c:918 msgid "window functions are not allowed in partition key expressions" msgstr "Fensterfunktionen sind in Partitionierungsschlüsselausdrücken nicht erlaubt" -#: parser/parse_agg.c:928 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in CALL arguments" msgstr "Fensterfunktionen sind in CALL-Argumenten nicht erlaubt" -#: parser/parse_agg.c:931 +#: parser/parse_agg.c:924 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "Fensterfunktionen sind in COPY-FROM-WHERE-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:934 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in column generation expressions" msgstr "Fensterfunktionen sind in Spaltengenerierungsausdrücken nicht erlaubt" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:954 parser/parse_clause.c:1837 +#: parser/parse_agg.c:947 parser/parse_clause.c:1837 #, c-format msgid "window functions are not allowed in %s" msgstr "Fensterfunktionen sind in %s nicht erlaubt" -#: parser/parse_agg.c:988 parser/parse_clause.c:2671 +#: parser/parse_agg.c:981 parser/parse_clause.c:2671 #, c-format msgid "window \"%s\" does not exist" msgstr "Fenster »%s« existiert nicht" -#: parser/parse_agg.c:1072 +#: parser/parse_agg.c:1065 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "zu viele Grouping-Sets vorhanden (maximal 4096)" -#: parser/parse_agg.c:1212 +#: parser/parse_agg.c:1205 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "Aggregatfunktionen sind nicht im rekursiven Ausdruck einer rekursiven Anfrage erlaubt" -#: parser/parse_agg.c:1405 +#: parser/parse_agg.c:1398 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "Spalte »%s.%s« muss in der GROUP-BY-Klausel erscheinen oder in einer Aggregatfunktion verwendet werden" -#: parser/parse_agg.c:1408 +#: parser/parse_agg.c:1401 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Direkte Argumente einer Ordered-Set-Aggregatfunktion dürfen nur gruppierte Spalten verwenden." -#: parser/parse_agg.c:1413 +#: parser/parse_agg.c:1406 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "Unteranfrage verwendet nicht gruppierte Spalte »%s.%s« aus äußerer Anfrage" -#: parser/parse_agg.c:1577 +#: parser/parse_agg.c:1570 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "Argumente von GROUPING müssen Gruppierausdrücke der zugehörigen Anfrageebene sein" @@ -15572,148 +15591,153 @@ msgid "Cast the offset value to the exact intended type." msgstr "Wandeln Sie den Offset-Wert in den genauen beabsichtigten Typ um." -#: parser/parse_coerce.c:1031 parser/parse_coerce.c:1069 -#: parser/parse_coerce.c:1087 parser/parse_coerce.c:1102 -#: parser/parse_expr.c:2241 parser/parse_expr.c:2819 parser/parse_target.c:967 +#: parser/parse_coerce.c:1047 parser/parse_coerce.c:1085 +#: parser/parse_coerce.c:1103 parser/parse_coerce.c:1118 +#: parser/parse_expr.c:2246 parser/parse_expr.c:2824 parser/parse_target.c:966 #, c-format msgid "cannot cast type %s to %s" msgstr "kann Typ %s nicht in Typ %s umwandeln" -#: parser/parse_coerce.c:1072 +#: parser/parse_coerce.c:1088 #, c-format msgid "Input has too few columns." msgstr "Eingabe hat zu wenige Spalten." -#: parser/parse_coerce.c:1090 +#: parser/parse_coerce.c:1106 #, c-format msgid "Cannot cast type %s to %s in column %d." msgstr "Kann in Spalte %3$d Typ %1$s nicht in Typ %2$s umwandeln." -#: parser/parse_coerce.c:1105 +#: parser/parse_coerce.c:1121 #, c-format msgid "Input has too many columns." msgstr "Eingabe hat zu viele Spalten." #. translator: first %s is name of a SQL construct, eg WHERE #. translator: first %s is name of a SQL construct, eg LIMIT -#: parser/parse_coerce.c:1160 parser/parse_coerce.c:1208 +#: parser/parse_coerce.c:1176 parser/parse_coerce.c:1224 #, c-format msgid "argument of %s must be type %s, not type %s" msgstr "Argument von %s muss Typ %s haben, nicht Typ %s" #. translator: %s is name of a SQL construct, eg WHERE #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_coerce.c:1171 parser/parse_coerce.c:1220 +#: parser/parse_coerce.c:1187 parser/parse_coerce.c:1236 #, c-format msgid "argument of %s must not return a set" msgstr "Argument von %s darf keine Ergebnismenge zurückgeben" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1360 +#: parser/parse_coerce.c:1380 #, c-format msgid "%s types %s and %s cannot be matched" msgstr "%s-Typen %s und %s passen nicht zusammen" -#: parser/parse_coerce.c:1472 +#: parser/parse_coerce.c:1496 #, c-format msgid "argument types %s and %s cannot be matched" msgstr "Argumenttypen %s und %s passen nicht zusammen" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1524 +#: parser/parse_coerce.c:1548 #, c-format msgid "%s could not convert type %s to %s" msgstr "%s konnte Typ %s nicht in %s umwandeln" -#: parser/parse_coerce.c:1941 +#: parser/parse_coerce.c:2013 #, c-format msgid "arguments declared \"anyelement\" are not all alike" msgstr "als »anyelement« deklariert Argumente sind nicht alle gleich" -#: parser/parse_coerce.c:1961 +#: parser/parse_coerce.c:2033 #, c-format msgid "arguments declared \"anyarray\" are not all alike" msgstr "als »anyarray« deklarierte Argumente sind nicht alle gleich" -#: parser/parse_coerce.c:1981 +#: parser/parse_coerce.c:2053 #, c-format msgid "arguments declared \"anyrange\" are not all alike" msgstr "als »anyrange« deklarierte Argumente sind nicht alle gleich" -#: parser/parse_coerce.c:2015 parser/parse_coerce.c:2095 +#: parser/parse_coerce.c:2087 parser/parse_coerce.c:2167 #: utils/fmgr/funcapi.c:487 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "als %s deklariertes Argument ist kein Array sondern Typ %s" -#: parser/parse_coerce.c:2036 +#: parser/parse_coerce.c:2108 #, c-format msgid "arguments declared \"anycompatiblerange\" are not all alike" msgstr "als »anycompatiblerange« deklarierte Argumente sind nicht alle gleich" -#: parser/parse_coerce.c:2048 parser/parse_coerce.c:2129 +#: parser/parse_coerce.c:2120 parser/parse_coerce.c:2201 #: utils/fmgr/funcapi.c:501 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "als %s deklariertes Argument ist kein Bereichstyp sondern Typ %s" -#: parser/parse_coerce.c:2086 +#: parser/parse_coerce.c:2158 #, c-format msgid "cannot determine element type of \"anyarray\" argument" msgstr "kann Elementtyp des Arguments mit Typ »anyarray« nicht bestimmen" -#: parser/parse_coerce.c:2112 parser/parse_coerce.c:2146 +#: parser/parse_coerce.c:2184 parser/parse_coerce.c:2218 #, c-format msgid "argument declared %s is not consistent with argument declared %s" msgstr "als %s deklariertes Argument ist nicht mit als %s deklariertem Argument konsistent" -#: parser/parse_coerce.c:2170 +#: parser/parse_coerce.c:2242 #, c-format msgid "could not determine polymorphic type because input has type %s" msgstr "konnte polymorphischen Typ nicht bestimmen, weil Eingabe Typ %s hat" -#: parser/parse_coerce.c:2184 +#: parser/parse_coerce.c:2256 #, c-format msgid "type matched to anynonarray is an array type: %s" msgstr "mit »anynonarray« gepaarter Typ ist ein Array-Typ: %s" -#: parser/parse_coerce.c:2194 +#: parser/parse_coerce.c:2266 #, c-format msgid "type matched to anyenum is not an enum type: %s" msgstr "mit »anyenum« gepaarter Typ ist kein Enum-Typ: %s" -#: parser/parse_coerce.c:2225 parser/parse_coerce.c:2274 -#: parser/parse_coerce.c:2336 parser/parse_coerce.c:2372 +#: parser/parse_coerce.c:2287 +#, c-format +msgid "arguments of anycompatible family cannot be cast to a common type" +msgstr "Argumente der anycompatible-Familie können nicht in einen gemeinsamen Typ umgewandelt werden" + +#: parser/parse_coerce.c:2305 parser/parse_coerce.c:2354 +#: parser/parse_coerce.c:2416 parser/parse_coerce.c:2452 #, c-format msgid "could not determine polymorphic type %s because input has type %s" msgstr "konnte polymorphischen Typ %s nicht bestimmen, weil Eingabe Typ %s hat" -#: parser/parse_coerce.c:2235 +#: parser/parse_coerce.c:2315 #, c-format msgid "anycompatiblerange type %s does not match anycompatible type %s" msgstr "anycompatiblerange-Typ %s stimmt nicht mit anycompatible-Typ %s überein" -#: parser/parse_coerce.c:2249 +#: parser/parse_coerce.c:2329 #, c-format msgid "type matched to anycompatiblenonarray is an array type: %s" msgstr "mit »anycompatiblenonarray« gepaarter Typ ist ein Array-Typ: %s" -#: parser/parse_coerce.c:2440 +#: parser/parse_coerce.c:2520 #, c-format msgid "A result of type %s requires at least one input of type %s." msgstr "Ein Ergebnis mit Typ %s benötigt mindestens eine Eingabe mit Typ %s." -#: parser/parse_coerce.c:2452 +#: parser/parse_coerce.c:2532 #, c-format msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, or anyrange." msgstr "Ein Ergebnis mit Typ %s benötigt mindestens eine Eingabe mit Typ anyelement, anyarray, anynonarray, anyenum oder anyrange." -#: parser/parse_coerce.c:2464 +#: parser/parse_coerce.c:2544 #, c-format msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, or anycompatiblerange." msgstr "Ein Ergebnis mit Typ %s benötigt mindestens eine Eingabe mit Typ anycompatible, anycompatiblearray, anycompatiblenonarray oder anycompatiblerange." -#: parser/parse_coerce.c:2494 +#: parser/parse_coerce.c:2574 msgid "A result of type internal requires at least one input of type internal." msgstr "Ein Ergebnis mit Typ internal benötigt mindestens eine Eingabe mit Typ internal." @@ -15860,7 +15884,7 @@ msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "Spaltenschreibweise .%s mit Typ %s verwendet, der kein zusammengesetzter Typ ist" -#: parser/parse_expr.c:457 parser/parse_target.c:729 +#: parser/parse_expr.c:457 parser/parse_target.c:728 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "Zeilenexpansion mit »*« wird hier nicht unterstützt" @@ -15874,7 +15898,7 @@ msgstr "Spaltenverweise können nicht in Partitionsbegrenzungsausdrücken verwendet werden" #: parser/parse_expr.c:850 parser/parse_relation.c:799 -#: parser/parse_relation.c:881 parser/parse_target.c:1207 +#: parser/parse_relation.c:881 parser/parse_target.c:1206 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "Spaltenverweis »%s« ist nicht eindeutig" @@ -15891,166 +15915,166 @@ msgstr "NULLIF erfordert, dass Operator = boolean ergibt" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1155 parser/parse_expr.c:3135 +#: parser/parse_expr.c:1155 parser/parse_expr.c:3140 #, c-format msgid "%s must not return a set" msgstr "%s darf keine Ergebnismenge zurückgeben" -#: parser/parse_expr.c:1603 parser/parse_expr.c:1635 +#: parser/parse_expr.c:1608 parser/parse_expr.c:1640 #, c-format msgid "number of columns does not match number of values" msgstr "Anzahl der Spalten stimmt nicht mit der Anzahl der Werte überein" -#: parser/parse_expr.c:1649 +#: parser/parse_expr.c:1654 #, c-format msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" msgstr "die Quelle für ein UPDATE-Element mit mehreren Spalten muss ein Sub-SELECT oder ein ROW()-Ausdruck sein" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1843 parser/parse_expr.c:2330 parser/parse_func.c:2540 +#: parser/parse_expr.c:1848 parser/parse_expr.c:2335 parser/parse_func.c:2540 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "Funktionen mit Ergebnismenge sind in %s nicht erlaubt" -#: parser/parse_expr.c:1904 +#: parser/parse_expr.c:1909 msgid "cannot use subquery in check constraint" msgstr "Unteranfragen können nicht in Check-Constraints verwendet werden" -#: parser/parse_expr.c:1908 +#: parser/parse_expr.c:1913 msgid "cannot use subquery in DEFAULT expression" msgstr "Unteranfragen können nicht in DEFAULT-Ausdrücken verwendet werden" -#: parser/parse_expr.c:1911 +#: parser/parse_expr.c:1916 msgid "cannot use subquery in index expression" msgstr "Unteranfragen können nicht in Indexausdrücken verwendet werden" -#: parser/parse_expr.c:1914 +#: parser/parse_expr.c:1919 msgid "cannot use subquery in index predicate" msgstr "Unteranfragen können nicht im Indexprädikat verwendet werden" -#: parser/parse_expr.c:1917 +#: parser/parse_expr.c:1922 msgid "cannot use subquery in transform expression" msgstr "Unteranfragen können in Umwandlungsausdrücken nicht verwendet werden" -#: parser/parse_expr.c:1920 +#: parser/parse_expr.c:1925 msgid "cannot use subquery in EXECUTE parameter" msgstr "Unteranfragen können nicht in EXECUTE-Parameter verwendet werden" -#: parser/parse_expr.c:1923 +#: parser/parse_expr.c:1928 msgid "cannot use subquery in trigger WHEN condition" msgstr "Unteranfragen können nicht in der WHEN-Bedingung eines Triggers verwendet werden" -#: parser/parse_expr.c:1926 +#: parser/parse_expr.c:1931 msgid "cannot use subquery in partition bound" msgstr "Unteranfragen können nicht in Partitionsbegrenzungen verwendet werden" -#: parser/parse_expr.c:1929 +#: parser/parse_expr.c:1934 msgid "cannot use subquery in partition key expression" msgstr "Unteranfragen können nicht in Partitionierungsschlüsselausdrücken verwendet werden" -#: parser/parse_expr.c:1932 +#: parser/parse_expr.c:1937 msgid "cannot use subquery in CALL argument" msgstr "Unteranfragen können nicht in CALL-Argument verwendet werden" -#: parser/parse_expr.c:1935 +#: parser/parse_expr.c:1940 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "Unteranfragen können nicht in COPY-FROM-WHERE-Bedingungen verwendet werden" -#: parser/parse_expr.c:1938 +#: parser/parse_expr.c:1943 msgid "cannot use subquery in column generation expression" msgstr "Unteranfragen können nicht in Spaltengenerierungsausdrücken verwendet werden" -#: parser/parse_expr.c:1991 +#: parser/parse_expr.c:1996 #, c-format msgid "subquery must return only one column" msgstr "Unteranfrage darf nur eine Spalte zurückgeben" -#: parser/parse_expr.c:2075 +#: parser/parse_expr.c:2080 #, c-format msgid "subquery has too many columns" msgstr "Unteranfrage hat zu viele Spalten" -#: parser/parse_expr.c:2080 +#: parser/parse_expr.c:2085 #, c-format msgid "subquery has too few columns" msgstr "Unteranfrage hat zu wenige Spalten" -#: parser/parse_expr.c:2181 +#: parser/parse_expr.c:2186 #, c-format msgid "cannot determine type of empty array" msgstr "kann Typ eines leeren Arrays nicht bestimmen" -#: parser/parse_expr.c:2182 +#: parser/parse_expr.c:2187 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "Wandeln Sie ausdrücklich in den gewünschten Typ um, zum Beispiel ARRAY[]::integer[]." -#: parser/parse_expr.c:2196 +#: parser/parse_expr.c:2201 #, c-format msgid "could not find element type for data type %s" msgstr "konnte Elementtyp für Datentyp %s nicht finden" -#: parser/parse_expr.c:2481 +#: parser/parse_expr.c:2486 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "unbenannter XML-Attributwert muss ein Spaltenverweis sein" -#: parser/parse_expr.c:2482 +#: parser/parse_expr.c:2487 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "unbenannter XML-Elementwert muss ein Spaltenverweis sein" -#: parser/parse_expr.c:2497 +#: parser/parse_expr.c:2502 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "XML-Attributname »%s« einscheint mehrmals" -#: parser/parse_expr.c:2604 +#: parser/parse_expr.c:2609 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "kann das Ergebnis von XMLSERIALIZE nicht in Typ %s umwandeln" -#: parser/parse_expr.c:2892 parser/parse_expr.c:3088 +#: parser/parse_expr.c:2897 parser/parse_expr.c:3093 #, c-format msgid "unequal number of entries in row expressions" msgstr "ungleiche Anzahl Einträge in Zeilenausdrücken" -#: parser/parse_expr.c:2902 +#: parser/parse_expr.c:2907 #, c-format msgid "cannot compare rows of zero length" msgstr "kann Zeilen mit Länge null nicht vergleichen" -#: parser/parse_expr.c:2927 +#: parser/parse_expr.c:2932 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "Zeilenvergleichsoperator muss Typ boolean zurückgeben, nicht Typ %s" -#: parser/parse_expr.c:2934 +#: parser/parse_expr.c:2939 #, c-format msgid "row comparison operator must not return a set" msgstr "Zeilenvergleichsoperator darf keine Ergebnismenge zurückgeben" -#: parser/parse_expr.c:2993 parser/parse_expr.c:3034 +#: parser/parse_expr.c:2998 parser/parse_expr.c:3039 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "konnte Interpretation des Zeilenvergleichsoperators %s nicht bestimmen" -#: parser/parse_expr.c:2995 +#: parser/parse_expr.c:3000 #, c-format msgid "Row comparison operators must be associated with btree operator families." msgstr "Zeilenvergleichsoperatoren müssen einer »btree«-Operatorfamilie zugeordnet sein." -#: parser/parse_expr.c:3036 +#: parser/parse_expr.c:3041 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "Es gibt mehrere gleichermaßen plausible Kandidaten." -#: parser/parse_expr.c:3129 +#: parser/parse_expr.c:3134 #, c-format msgid "IS DISTINCT FROM requires = operator to yield boolean" msgstr "IS DISTINCT FROM erfordert, dass Operator = boolean ergibt" -#: parser/parse_expr.c:3448 parser/parse_expr.c:3466 +#: parser/parse_expr.c:3453 parser/parse_expr.c:3471 #, c-format msgid "operator precedence change: %s is now lower precedence than %s" msgstr "Änderung der Operatorrangfolge: %s hat jetzt niedrigere Priorität als %s" @@ -16579,47 +16603,47 @@ msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "Vielleicht wurde beabsichtigt, auf die Spalte »%s.%s« oder die Spalte »%s.%s« zu verweisen." -#: parser/parse_target.c:478 parser/parse_target.c:792 +#: parser/parse_target.c:477 parser/parse_target.c:791 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "kann Systemspalte »%s« keinen Wert zuweisen" -#: parser/parse_target.c:506 +#: parser/parse_target.c:505 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "kann Arrayelement nicht auf DEFAULT setzen" -#: parser/parse_target.c:511 +#: parser/parse_target.c:510 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "kann Subfeld nicht auf DEFAULT setzen" -#: parser/parse_target.c:584 +#: parser/parse_target.c:583 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "Spalte »%s« hat Typ %s, aber der Ausdruck hat Typ %s" -#: parser/parse_target.c:776 +#: parser/parse_target.c:775 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type" msgstr "kann Feld »%s« in Spalte »%s« nicht setzen, weil ihr Typ %s kein zusammengesetzter Typ ist" -#: parser/parse_target.c:785 +#: parser/parse_target.c:784 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "kann Feld »%s« in Spalte »%s« nicht setzen, weil es keine solche Spalte in Datentyp %s gibt" -#: parser/parse_target.c:864 +#: parser/parse_target.c:863 #, c-format msgid "array assignment to \"%s\" requires type %s but expression is of type %s" msgstr "Wertzuweisung für »%s« erfordert Typ %s, aber Ausdruck hat Typ %s" -#: parser/parse_target.c:874 +#: parser/parse_target.c:873 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "Subfeld »%s« hat Typ %s, aber der Ausdruck hat Typ %s" -#: parser/parse_target.c:1295 +#: parser/parse_target.c:1294 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * ist nicht gültig, wenn keine Tabellen angegeben sind" @@ -16878,122 +16902,122 @@ msgid "cannot refer to NEW within WITH query" msgstr "in WITH-Anfrage kann nicht auf NEW verwiesen werden" -#: parser/parse_utilcmd.c:3577 +#: parser/parse_utilcmd.c:3578 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "falsch platzierte DEFERRABLE-Klausel" -#: parser/parse_utilcmd.c:3582 parser/parse_utilcmd.c:3597 +#: parser/parse_utilcmd.c:3583 parser/parse_utilcmd.c:3598 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "mehrere DEFERRABLE/NOT DEFERRABLE-Klauseln sind nicht erlaubt" -#: parser/parse_utilcmd.c:3592 +#: parser/parse_utilcmd.c:3593 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "falsch platzierte NOT DEFERRABLE-Klausel" -#: parser/parse_utilcmd.c:3613 +#: parser/parse_utilcmd.c:3614 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "falsch platzierte INITIALLY DEFERRED-Klausel" -#: parser/parse_utilcmd.c:3618 parser/parse_utilcmd.c:3644 +#: parser/parse_utilcmd.c:3619 parser/parse_utilcmd.c:3645 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "mehrere INITIALLY IMMEDIATE/DEFERRED-Klauseln sind nicht erlaubt" -#: parser/parse_utilcmd.c:3639 +#: parser/parse_utilcmd.c:3640 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "falsch platzierte INITIALLY IMMEDIATE-Klausel" -#: parser/parse_utilcmd.c:3830 +#: parser/parse_utilcmd.c:3831 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "CREATE gibt ein Schema an (%s) welches nicht gleich dem zu erzeugenden Schema ist (%s)" -#: parser/parse_utilcmd.c:3865 +#: parser/parse_utilcmd.c:3866 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "»%s« ist keine partitionierte Tabelle" -#: parser/parse_utilcmd.c:3872 +#: parser/parse_utilcmd.c:3873 #, c-format msgid "table \"%s\" is not partitioned" msgstr "Tabelle »%s« ist nicht partitioniert" -#: parser/parse_utilcmd.c:3879 +#: parser/parse_utilcmd.c:3880 #, c-format msgid "index \"%s\" is not partitioned" msgstr "Index »%s« ist nicht partitioniert" -#: parser/parse_utilcmd.c:3919 +#: parser/parse_utilcmd.c:3920 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "eine hashpartitionierte Tabelle kann keine Standardpartition haben" -#: parser/parse_utilcmd.c:3936 +#: parser/parse_utilcmd.c:3937 #, c-format msgid "invalid bound specification for a hash partition" msgstr "ungültige Begrenzungsangabe für eine Hash-Partition" -#: parser/parse_utilcmd.c:3942 +#: parser/parse_utilcmd.c:3943 partitioning/partbounds.c:4640 #, c-format -msgid "modulus for hash partition must be a positive integer" -msgstr "Modulus für Hashpartition muss eine positive ganze Zahl sein" +msgid "modulus for hash partition must be an integer value greater than zero" +msgstr "Modulus für Hashpartition muss eine ganze Zahl größer als null sein" -#: parser/parse_utilcmd.c:3949 partitioning/partbounds.c:4648 +#: parser/parse_utilcmd.c:3950 partitioning/partbounds.c:4648 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "Rest für Hashpartition muss kleiner als Modulus sein" -#: parser/parse_utilcmd.c:3962 +#: parser/parse_utilcmd.c:3963 #, c-format msgid "invalid bound specification for a list partition" msgstr "ungültige Begrenzungsangabe für eine Listenpartition" -#: parser/parse_utilcmd.c:4015 +#: parser/parse_utilcmd.c:4016 #, c-format msgid "invalid bound specification for a range partition" msgstr "ungültige Begrenzungsangabe für eine Bereichspartition" -#: parser/parse_utilcmd.c:4021 +#: parser/parse_utilcmd.c:4022 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "FROM muss genau einen Wert pro Partitionierungsspalte angeben" -#: parser/parse_utilcmd.c:4025 +#: parser/parse_utilcmd.c:4026 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "TO muss genau einen Wert pro Partitionierungsspalte angeben" -#: parser/parse_utilcmd.c:4139 +#: parser/parse_utilcmd.c:4140 #, c-format msgid "cannot specify NULL in range bound" msgstr "NULL kann nicht in der Bereichsgrenze angegeben werden" -#: parser/parse_utilcmd.c:4188 +#: parser/parse_utilcmd.c:4189 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "jede Begrenzung, die auf MAXVALUE folgt, muss auch MAXVALUE sein" -#: parser/parse_utilcmd.c:4195 +#: parser/parse_utilcmd.c:4196 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "jede Begrenzung, die auf MINVALUE folgt, muss auch MINVALUE sein" -#: parser/parse_utilcmd.c:4237 +#: parser/parse_utilcmd.c:4238 #, c-format msgid "could not determine which collation to use for partition bound expression" msgstr "konnte die für den Partitionsbegrenzungsausdruck zu verwendende Sortierfolge nicht bestimmen" -#: parser/parse_utilcmd.c:4254 +#: parser/parse_utilcmd.c:4255 #, c-format msgid "collation of partition bound value for column \"%s\" does not match partition key collation \"%s\"" msgstr "Sortierfolge des Partitionsbegrenzungswerts für Spalte »%s« stimmt nicht mit der Sortierfolge des Partitionierungsschlüssels »%s« überein" -#: parser/parse_utilcmd.c:4271 +#: parser/parse_utilcmd.c:4272 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "angegebener Wert kann nicht in Typ %s für Spalte »%s« umgewandelt werden" @@ -17061,11 +17085,6 @@ msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\"" msgstr "Scannen von Fremdtabelle »%s«, die eine Partition der Standardpartition »%s« ist, wurde übersprungen" -#: partitioning/partbounds.c:4640 -#, c-format -msgid "modulus for hash partition must be an integer value greater than zero" -msgstr "Modulus für Hashpartition muss eine ganze Zahl größer als null sein" - #: partitioning/partbounds.c:4644 #, c-format msgid "remainder for hash partition must be an integer value greater than or equal to zero" @@ -17086,23 +17105,23 @@ msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" msgstr "Spalte %d des Partitionierungsschlüssels hat Typ »%s«, aber der angegebene Wert hat Typ »%s«" -#: port/pg_sema.c:209 port/pg_shmem.c:640 port/posix_sema.c:209 -#: port/sysv_sema.c:327 port/sysv_shmem.c:640 +#: port/pg_sema.c:209 port/pg_shmem.c:650 port/posix_sema.c:209 +#: port/sysv_sema.c:327 port/sysv_shmem.c:650 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "konnte »stat« für Datenverzeichnis »%s« nicht ausführen: %m" -#: port/pg_shmem.c:216 port/sysv_shmem.c:216 +#: port/pg_shmem.c:226 port/sysv_shmem.c:226 #, c-format msgid "could not create shared memory segment: %m" msgstr "konnte Shared-Memory-Segment nicht erzeugen: %m" -#: port/pg_shmem.c:217 port/sysv_shmem.c:217 +#: port/pg_shmem.c:227 port/sysv_shmem.c:227 #, c-format msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)." msgstr "Fehlgeschlagener Systemaufruf war shmget(Key=%lu, Größe=%zu, 0%o)." -#: port/pg_shmem.c:221 port/sysv_shmem.c:221 +#: port/pg_shmem.c:231 port/sysv_shmem.c:231 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter, or possibly that it is less than your kernel's SHMMIN parameter.\n" @@ -17111,7 +17130,7 @@ "Dieser Fehler bedeutet gewöhnlich, dass das von PostgreSQL angeforderte Shared-Memory-Segment den Kernel-Parameter SHMMAX überschreitet, oder eventuell, dass es kleiner als der Kernel-Parameter SHMMIN ist.\n" "Die PostgreSQL-Dokumentation enthält weitere Informationen über die Konfiguration von Shared Memory." -#: port/pg_shmem.c:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:238 port/sysv_shmem.c:238 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMALL parameter. You might need to reconfigure the kernel with larger SHMALL.\n" @@ -17120,7 +17139,7 @@ "Dieser Fehler bedeutet gewöhnlich, dass das von PostgreSQL angeforderte Shared-Memory-Segment den Kernel-Parameter SHMALL überschreitet. Sie müssen eventuell den Kernel mit einem größeren SHMALL neu konfigurieren.\n" "Die PostgreSQL-Dokumentation enthält weitere Informationen über die Konfiguration von Shared Memory." -#: port/pg_shmem.c:234 port/sysv_shmem.c:234 +#: port/pg_shmem.c:244 port/sysv_shmem.c:244 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs either if all available shared memory IDs have been taken, in which case you need to raise the SHMMNI parameter in your kernel, or because the system's overall limit for shared memory has been reached.\n" @@ -17129,29 +17148,34 @@ "Dieser Fehler bedeutet *nicht*, dass kein Platz mehr auf der Festplatte ist. Er tritt auf, wenn entweder alle verfügbaren Shared-Memory-IDs aufgebraucht sind, dann müssen den Kernelparameter SHMMNI erhöhen, oder weil die Systemhöchstgrenze für Shared Memory insgesamt erreicht wurde.\n" "Die PostgreSQL-Dokumentation enthält weitere Informationen über die Konfiguration von Shared Memory." -#: port/pg_shmem.c:578 port/sysv_shmem.c:578 +#: port/pg_shmem.c:588 port/sysv_shmem.c:588 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "konnte anonymes Shared Memory nicht mappen: %m" -#: port/pg_shmem.c:580 port/sysv_shmem.c:580 +#: port/pg_shmem.c:590 port/sysv_shmem.c:590 #, c-format msgid "This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently %zu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections." msgstr "" "Dieser Fehler bedeutet gewöhnlich, dass das von PostgreSQL angeforderte Shared-Memory-Segment den verfügbaren Speicher, Swap-Space oder Huge Pages überschreitet. Um die benötigte Shared-Memory-Größe zu reduzieren (aktuell %zu Bytes), reduzieren Sie den Shared-Memory-Verbrauch von PostgreSQL, beispielsweise indem Sie »shared_buffers« oder »max_connections« reduzieren.\n" "Die PostgreSQL-Dokumentation enthält weitere Informationen über die Konfiguration von Shared Memory." -#: port/pg_shmem.c:648 port/sysv_shmem.c:648 +#: port/pg_shmem.c:658 port/sysv_shmem.c:658 #, c-format msgid "huge pages not supported on this platform" msgstr "Huge Pages werden auf dieser Plattform nicht unterstützt" -#: port/pg_shmem.c:709 port/sysv_shmem.c:709 utils/init/miscinit.c:1137 +#: port/pg_shmem.c:665 port/sysv_shmem.c:665 +#, c-format +msgid "huge pages not supported with the current shared_memory_type setting" +msgstr "Huge Pages werden mit der aktuellen shared_memory_type-Einstellung nicht unterstützt" + +#: port/pg_shmem.c:725 port/sysv_shmem.c:725 utils/init/miscinit.c:1136 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "bereits bestehender Shared-Memory-Block (Schlüssel %lu, ID %lu) wird noch benutzt" -#: port/pg_shmem.c:712 port/sysv_shmem.c:712 utils/init/miscinit.c:1139 +#: port/pg_shmem.c:728 port/sysv_shmem.c:728 utils/init/miscinit.c:1138 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Beenden Sie alle alten Serverprozesse, die zum Datenverzeichnis »%s« gehören." @@ -17482,7 +17506,7 @@ msgid "archive command was terminated by exception 0x%X" msgstr "Archivbefehl wurde durch Ausnahme 0x%X beendet" -#: postmaster/pgarch.c:605 postmaster/postmaster.c:3725 +#: postmaster/pgarch.c:605 postmaster/postmaster.c:3749 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "Sehen Sie die Beschreibung des Hexadezimalwerts in der C-Include-Datei »ntstatus.h« nach." @@ -17577,53 +17601,53 @@ msgid "Target must be \"archiver\" or \"bgwriter\"." msgstr "Das Reset-Ziel muss »archiver« oder »bgwriter« sein." -#: postmaster/pgstat.c:4567 +#: postmaster/pgstat.c:4570 #, c-format msgid "could not read statistics message: %m" msgstr "konnte Statistiknachricht nicht lesen: %m" -#: postmaster/pgstat.c:4889 postmaster/pgstat.c:5052 +#: postmaster/pgstat.c:4892 postmaster/pgstat.c:5055 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "konnte temporäre Statistikdatei »%s« nicht öffnen: %m" -#: postmaster/pgstat.c:4962 postmaster/pgstat.c:5097 +#: postmaster/pgstat.c:4965 postmaster/pgstat.c:5100 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "konnte temporäre Statistikdatei »%s« nicht schreiben: %m" -#: postmaster/pgstat.c:4971 postmaster/pgstat.c:5106 +#: postmaster/pgstat.c:4974 postmaster/pgstat.c:5109 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "konnte temporäre Statistikdatei »%s« nicht schließen: %m" -#: postmaster/pgstat.c:4979 postmaster/pgstat.c:5114 +#: postmaster/pgstat.c:4982 postmaster/pgstat.c:5117 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "konnte temporäre Statistikdatei »%s« nicht in »%s« umbenennen: %m" -#: postmaster/pgstat.c:5211 postmaster/pgstat.c:5428 postmaster/pgstat.c:5582 +#: postmaster/pgstat.c:5214 postmaster/pgstat.c:5431 postmaster/pgstat.c:5585 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "konnte Statistikdatei »%s« nicht öffnen: %m" -#: postmaster/pgstat.c:5223 postmaster/pgstat.c:5233 postmaster/pgstat.c:5254 -#: postmaster/pgstat.c:5265 postmaster/pgstat.c:5287 postmaster/pgstat.c:5302 -#: postmaster/pgstat.c:5365 postmaster/pgstat.c:5440 postmaster/pgstat.c:5460 -#: postmaster/pgstat.c:5478 postmaster/pgstat.c:5494 postmaster/pgstat.c:5512 -#: postmaster/pgstat.c:5528 postmaster/pgstat.c:5594 postmaster/pgstat.c:5606 -#: postmaster/pgstat.c:5618 postmaster/pgstat.c:5629 postmaster/pgstat.c:5654 -#: postmaster/pgstat.c:5676 +#: postmaster/pgstat.c:5226 postmaster/pgstat.c:5236 postmaster/pgstat.c:5257 +#: postmaster/pgstat.c:5268 postmaster/pgstat.c:5290 postmaster/pgstat.c:5305 +#: postmaster/pgstat.c:5368 postmaster/pgstat.c:5443 postmaster/pgstat.c:5463 +#: postmaster/pgstat.c:5481 postmaster/pgstat.c:5497 postmaster/pgstat.c:5515 +#: postmaster/pgstat.c:5531 postmaster/pgstat.c:5597 postmaster/pgstat.c:5609 +#: postmaster/pgstat.c:5621 postmaster/pgstat.c:5632 postmaster/pgstat.c:5657 +#: postmaster/pgstat.c:5679 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "verfälschte Statistikdatei »%s«" -#: postmaster/pgstat.c:5805 +#: postmaster/pgstat.c:5808 #, c-format msgid "using stale statistics instead of current ones because stats collector is not responding" msgstr "verwende veraltete Statistiken anstatt aktueller, weil der Statistiksammelprozess nicht antwortet" -#: postmaster/pgstat.c:6135 +#: postmaster/pgstat.c:6138 #, c-format msgid "database hash table corrupted during cleanup --- abort" msgstr "Datenbank-Hash-Tabelle beim Aufräumen verfälscht --- Abbruch" @@ -17684,7 +17708,7 @@ msgstr "%s startet" #: postmaster/postmaster.c:1154 postmaster/postmaster.c:1252 -#: utils/init/miscinit.c:1597 +#: utils/init/miscinit.c:1596 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "ungültige Listensyntax für Parameter »%s«" @@ -17785,371 +17809,386 @@ msgid "failed to send SSL negotiation response: %m" msgstr "konnte SSL-Verhandlungsantwort nicht senden: %m" -#: postmaster/postmaster.c:2075 +#: postmaster/postmaster.c:2061 +#, c-format +msgid "received unencrypted data after SSL request" +msgstr "unverschlüsselte Daten nach SSL-Anforderung empfangen" + +#: postmaster/postmaster.c:2062 postmaster/postmaster.c:2106 +#, c-format +msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." +msgstr "Das könnte entweder ein Fehler in der Client-Software oder ein Hinweis auf einen versuchten Man-in-the-Middle-Angriff sein." + +#: postmaster/postmaster.c:2087 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "konnte GSSAPI-Verhandlungsantwort nicht senden: %m" #: postmaster/postmaster.c:2105 #, c-format +msgid "received unencrypted data after GSSAPI encryption request" +msgstr "unverschlüsselte Daten nach GSSAPI-Verschlüsselungsanforderung empfangen" + +#: postmaster/postmaster.c:2129 +#, c-format msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "nicht unterstütztes Frontend-Protokoll %u.%u: Server unterstützt %u.0 bis %u.%u" -#: postmaster/postmaster.c:2169 utils/misc/guc.c:6769 utils/misc/guc.c:6805 +#: postmaster/postmaster.c:2193 utils/misc/guc.c:6769 utils/misc/guc.c:6805 #: utils/misc/guc.c:6875 utils/misc/guc.c:8226 utils/misc/guc.c:11088 #: utils/misc/guc.c:11129 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "ungültiger Wert für Parameter »%s«: »%s«" -#: postmaster/postmaster.c:2172 +#: postmaster/postmaster.c:2196 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "Gültige Werte sind: »false«, 0, »true«, 1, »database«." -#: postmaster/postmaster.c:2217 +#: postmaster/postmaster.c:2241 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "ungültiges Layout des Startpakets: Abschluss als letztes Byte erwartet" -#: postmaster/postmaster.c:2255 +#: postmaster/postmaster.c:2279 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "kein PostgreSQL-Benutzername im Startpaket angegeben" -#: postmaster/postmaster.c:2319 +#: postmaster/postmaster.c:2343 #, c-format msgid "the database system is starting up" msgstr "das Datenbanksystem startet" -#: postmaster/postmaster.c:2324 +#: postmaster/postmaster.c:2348 #, c-format msgid "the database system is shutting down" msgstr "das Datenbanksystem fährt herunter" -#: postmaster/postmaster.c:2329 +#: postmaster/postmaster.c:2353 #, c-format msgid "the database system is in recovery mode" msgstr "das Datenbanksystem ist im Wiederherstellungsmodus" -#: postmaster/postmaster.c:2334 storage/ipc/procarray.c:293 +#: postmaster/postmaster.c:2358 storage/ipc/procarray.c:298 #: storage/ipc/sinvaladt.c:297 storage/lmgr/proc.c:362 #, c-format msgid "sorry, too many clients already" msgstr "tut mir leid, schon zu viele Verbindungen" -#: postmaster/postmaster.c:2424 +#: postmaster/postmaster.c:2448 #, c-format msgid "wrong key in cancel request for process %d" msgstr "falscher Schlüssel in Stornierungsanfrage für Prozess %d" -#: postmaster/postmaster.c:2436 +#: postmaster/postmaster.c:2460 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "PID %d in Stornierungsanfrage stimmte mit keinem Prozess überein" -#: postmaster/postmaster.c:2689 +#: postmaster/postmaster.c:2713 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "SIGHUP empfangen, Konfigurationsdateien werden neu geladen" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2715 postmaster/postmaster.c:2719 +#: postmaster/postmaster.c:2739 postmaster/postmaster.c:2743 #, c-format msgid "%s was not reloaded" msgstr "%s wurde nicht neu geladen" -#: postmaster/postmaster.c:2729 +#: postmaster/postmaster.c:2753 #, c-format msgid "SSL configuration was not reloaded" msgstr "SSL-Konfiguration wurde nicht neu geladen" -#: postmaster/postmaster.c:2785 +#: postmaster/postmaster.c:2809 #, c-format msgid "received smart shutdown request" msgstr "intelligentes Herunterfahren verlangt" -#: postmaster/postmaster.c:2831 +#: postmaster/postmaster.c:2855 #, c-format msgid "received fast shutdown request" msgstr "schnelles Herunterfahren verlangt" -#: postmaster/postmaster.c:2849 +#: postmaster/postmaster.c:2873 #, c-format msgid "aborting any active transactions" msgstr "etwaige aktive Transaktionen werden abgebrochen" -#: postmaster/postmaster.c:2873 +#: postmaster/postmaster.c:2897 #, c-format msgid "received immediate shutdown request" msgstr "sofortiges Herunterfahren verlangt" -#: postmaster/postmaster.c:2948 +#: postmaster/postmaster.c:2972 #, c-format msgid "shutdown at recovery target" msgstr "Herunterfahren beim Wiederherstellungsziel" -#: postmaster/postmaster.c:2966 postmaster/postmaster.c:3002 +#: postmaster/postmaster.c:2990 postmaster/postmaster.c:3026 msgid "startup process" msgstr "Startprozess" -#: postmaster/postmaster.c:2969 +#: postmaster/postmaster.c:2993 #, c-format msgid "aborting startup due to startup process failure" msgstr "Serverstart abgebrochen wegen Startprozessfehler" -#: postmaster/postmaster.c:3044 +#: postmaster/postmaster.c:3068 #, c-format msgid "database system is ready to accept connections" msgstr "Datenbanksystem ist bereit, um Verbindungen anzunehmen" -#: postmaster/postmaster.c:3065 +#: postmaster/postmaster.c:3089 msgid "background writer process" msgstr "Background-Writer-Prozess" -#: postmaster/postmaster.c:3119 +#: postmaster/postmaster.c:3143 msgid "checkpointer process" msgstr "Checkpointer-Prozess" -#: postmaster/postmaster.c:3135 +#: postmaster/postmaster.c:3159 msgid "WAL writer process" msgstr "WAL-Schreibprozess" -#: postmaster/postmaster.c:3150 +#: postmaster/postmaster.c:3174 msgid "WAL receiver process" msgstr "WAL-Receiver-Prozess" -#: postmaster/postmaster.c:3165 +#: postmaster/postmaster.c:3189 msgid "autovacuum launcher process" msgstr "Autovacuum-Launcher-Prozess" -#: postmaster/postmaster.c:3180 +#: postmaster/postmaster.c:3204 msgid "archiver process" msgstr "Archivierprozess" -#: postmaster/postmaster.c:3196 +#: postmaster/postmaster.c:3220 msgid "statistics collector process" msgstr "Statistiksammelprozess" -#: postmaster/postmaster.c:3210 +#: postmaster/postmaster.c:3234 msgid "system logger process" msgstr "Systemlogger-Prozess" -#: postmaster/postmaster.c:3274 +#: postmaster/postmaster.c:3298 #, c-format msgid "background worker \"%s\"" msgstr "Background-Worker »%s«" -#: postmaster/postmaster.c:3358 postmaster/postmaster.c:3378 -#: postmaster/postmaster.c:3385 postmaster/postmaster.c:3403 +#: postmaster/postmaster.c:3382 postmaster/postmaster.c:3402 +#: postmaster/postmaster.c:3409 postmaster/postmaster.c:3427 msgid "server process" msgstr "Serverprozess" -#: postmaster/postmaster.c:3457 +#: postmaster/postmaster.c:3481 #, c-format msgid "terminating any other active server processes" msgstr "aktive Serverprozesse werden abgebrochen" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3712 +#: postmaster/postmaster.c:3736 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) beendete mit Status %d" -#: postmaster/postmaster.c:3714 postmaster/postmaster.c:3726 -#: postmaster/postmaster.c:3736 postmaster/postmaster.c:3747 +#: postmaster/postmaster.c:3738 postmaster/postmaster.c:3750 +#: postmaster/postmaster.c:3760 postmaster/postmaster.c:3771 #, c-format msgid "Failed process was running: %s" msgstr "Der fehlgeschlagene Prozess führte aus: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3723 +#: postmaster/postmaster.c:3747 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d) wurde durch Ausnahme 0x%X beendet" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3733 +#: postmaster/postmaster.c:3757 #, c-format msgid "%s (PID %d) was terminated by signal %d: %s" msgstr "%s (PID %d) wurde von Signal %d beendet: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3745 +#: postmaster/postmaster.c:3769 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) beendete mit unbekanntem Status %d" -#: postmaster/postmaster.c:3960 +#: postmaster/postmaster.c:3984 #, c-format msgid "abnormal database system shutdown" msgstr "abnormales Herunterfahren des Datenbanksystems" -#: postmaster/postmaster.c:4000 +#: postmaster/postmaster.c:4024 #, c-format msgid "all server processes terminated; reinitializing" msgstr "alle Serverprozesse beendet; initialisiere neu" -#: postmaster/postmaster.c:4170 postmaster/postmaster.c:5579 -#: postmaster/postmaster.c:5966 +#: postmaster/postmaster.c:4194 postmaster/postmaster.c:5603 +#: postmaster/postmaster.c:5990 #, c-format msgid "could not generate random cancel key" msgstr "konnte zufälligen Stornierungsschlüssel nicht erzeugen" -#: postmaster/postmaster.c:4224 +#: postmaster/postmaster.c:4248 #, c-format msgid "could not fork new process for connection: %m" msgstr "konnte neuen Prozess für Verbindung nicht starten (fork-Fehler): %m" -#: postmaster/postmaster.c:4266 +#: postmaster/postmaster.c:4290 msgid "could not fork new process for connection: " msgstr "konnte neuen Prozess für Verbindung nicht starten (fork-Fehler): " -#: postmaster/postmaster.c:4383 +#: postmaster/postmaster.c:4407 #, c-format msgid "connection received: host=%s port=%s" msgstr "Verbindung empfangen: Host=%s Port=%s" -#: postmaster/postmaster.c:4388 +#: postmaster/postmaster.c:4412 #, c-format msgid "connection received: host=%s" msgstr "Verbindung empfangen: Host=%s" -#: postmaster/postmaster.c:4658 +#: postmaster/postmaster.c:4682 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "konnte Serverprozess »%s« nicht ausführen: %m" -#: postmaster/postmaster.c:4817 +#: postmaster/postmaster.c:4841 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "Aufgabe nach zu vielen Versuchen, Shared Memory zu reservieren" -#: postmaster/postmaster.c:4818 +#: postmaster/postmaster.c:4842 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "Dies kann durch ASLR oder Antivirus-Software verursacht werden." -#: postmaster/postmaster.c:5012 +#: postmaster/postmaster.c:5036 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "SSL-Konfiguration konnte im Kindprozess nicht geladen werden" -#: postmaster/postmaster.c:5144 +#: postmaster/postmaster.c:5168 #, c-format msgid "Please report this to <%s>." msgstr "Bitte berichten Sie dies an <%s>." -#: postmaster/postmaster.c:5231 +#: postmaster/postmaster.c:5255 #, c-format msgid "database system is ready to accept read only connections" msgstr "Datenbanksystem ist bereit, um lesende Verbindungen anzunehmen" -#: postmaster/postmaster.c:5507 +#: postmaster/postmaster.c:5531 #, c-format msgid "could not fork startup process: %m" msgstr "konnte Startprozess nicht starten (fork-Fehler): %m" -#: postmaster/postmaster.c:5511 +#: postmaster/postmaster.c:5535 #, c-format msgid "could not fork background writer process: %m" msgstr "konnte Background-Writer-Prozess nicht starten (fork-Fehler): %m" -#: postmaster/postmaster.c:5515 +#: postmaster/postmaster.c:5539 #, c-format msgid "could not fork checkpointer process: %m" msgstr "konnte Checkpointer-Prozess nicht starten (fork-Fehler): %m" -#: postmaster/postmaster.c:5519 +#: postmaster/postmaster.c:5543 #, c-format msgid "could not fork WAL writer process: %m" msgstr "konnte WAL-Writer-Prozess nicht starten (fork-Fehler): %m" -#: postmaster/postmaster.c:5523 +#: postmaster/postmaster.c:5547 #, c-format msgid "could not fork WAL receiver process: %m" msgstr "konnte WAL-Receiver-Prozess nicht starten (fork-Fehler): %m" -#: postmaster/postmaster.c:5527 +#: postmaster/postmaster.c:5551 #, c-format msgid "could not fork process: %m" msgstr "konnte Prozess nicht starten (fork-Fehler): %m" -#: postmaster/postmaster.c:5724 postmaster/postmaster.c:5747 +#: postmaster/postmaster.c:5748 postmaster/postmaster.c:5771 #, c-format msgid "database connection requirement not indicated during registration" msgstr "die Notwendigkeit, Datenbankverbindungen zu erzeugen, wurde bei der Registrierung nicht angezeigt" -#: postmaster/postmaster.c:5731 postmaster/postmaster.c:5754 +#: postmaster/postmaster.c:5755 postmaster/postmaster.c:5778 #, c-format msgid "invalid processing mode in background worker" msgstr "ungültiger Verarbeitungsmodus in Background-Worker" -#: postmaster/postmaster.c:5827 +#: postmaster/postmaster.c:5851 #, c-format msgid "starting background worker process \"%s\"" msgstr "starte Background-Worker-Prozess »%s«" -#: postmaster/postmaster.c:5839 +#: postmaster/postmaster.c:5863 #, c-format msgid "could not fork worker process: %m" msgstr "konnte Worker-Prozess nicht starten (fork-Fehler): %m" -#: postmaster/postmaster.c:5952 +#: postmaster/postmaster.c:5976 #, c-format msgid "no slot available for new worker process" msgstr "kein Slot für neuen Worker-Prozess verfügbar" -#: postmaster/postmaster.c:6287 +#: postmaster/postmaster.c:6311 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "konnte Socket %d nicht für Verwendung in Backend duplizieren: Fehlercode %d" -#: postmaster/postmaster.c:6319 +#: postmaster/postmaster.c:6343 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "konnte geerbtes Socket nicht erzeugen: Fehlercode %d\n" -#: postmaster/postmaster.c:6348 +#: postmaster/postmaster.c:6372 #, c-format msgid "could not open backend variables file \"%s\": %s\n" msgstr "konnte Servervariablendatei »%s« nicht öffnen: %s\n" -#: postmaster/postmaster.c:6355 +#: postmaster/postmaster.c:6379 #, c-format msgid "could not read from backend variables file \"%s\": %s\n" msgstr "konnte nicht aus Servervariablendatei »%s« lesen: %s\n" -#: postmaster/postmaster.c:6364 +#: postmaster/postmaster.c:6388 #, c-format msgid "could not remove file \"%s\": %s\n" msgstr "konnte Datei »%s« nicht löschen: %s\n" -#: postmaster/postmaster.c:6381 +#: postmaster/postmaster.c:6405 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "konnte Sicht der Backend-Variablen nicht mappen: Fehlercode %lu\n" -#: postmaster/postmaster.c:6390 +#: postmaster/postmaster.c:6414 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "konnte Sicht der Backend-Variablen nicht unmappen: Fehlercode %lu\n" -#: postmaster/postmaster.c:6397 +#: postmaster/postmaster.c:6421 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "konnte Handle für Backend-Parametervariablen nicht schließen: Fehlercode %lu\n" -#: postmaster/postmaster.c:6575 +#: postmaster/postmaster.c:6599 #, c-format msgid "could not read exit code for process\n" msgstr "konnte Exitcode des Prozesses nicht lesen\n" -#: postmaster/postmaster.c:6580 +#: postmaster/postmaster.c:6604 #, c-format msgid "could not post child completion status\n" msgstr "konnte Child-Completion-Status nicht versenden\n" @@ -18219,16 +18258,16 @@ msgid "nondeterministic collations are not supported for regular expressions" msgstr "nichtdeterministische Sortierfolgen werden von regulären Ausdrücken nicht unterstützt" -#: repl_gram.y:349 repl_gram.y:381 +#: repl_gram.y:345 repl_gram.y:377 #, c-format msgid "invalid timeline %u" msgstr "ungültige Zeitleiste %u" -#: repl_scanner.l:131 +#: repl_scanner.l:150 msgid "invalid streaming start location" msgstr "ungültige Streaming-Startposition" -#: repl_scanner.l:182 scan.l:717 +#: repl_scanner.l:206 scan.l:717 msgid "unterminated quoted string" msgstr "Zeichenkette in Anführungszeichen nicht abgeschlossen" @@ -18237,22 +18276,22 @@ msgid "expected end timeline %u but found timeline %u" msgstr "End-Zeitleiste %u wurde erwartet, aber Zeitleiste %u wurde gefunden" -#: replication/backup_manifest.c:253 +#: replication/backup_manifest.c:260 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "Start-Zeitleiste %u wurde erwartet, aber Zeitleiste %u wurde gefunden" -#: replication/backup_manifest.c:280 +#: replication/backup_manifest.c:287 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "Start-Zeitleiste %u nicht in der History der Zeitleiste %u gefunden" -#: replication/backup_manifest.c:327 +#: replication/backup_manifest.c:334 #, c-format msgid "could not rewind temporary file" msgstr "konnte Position in temporärer Datei nicht auf Anfang setzen" -#: replication/backup_manifest.c:354 +#: replication/backup_manifest.c:361 #, c-format msgid "could not read from temporary file: %m" msgstr "konnte nicht aus temporärer Datei lesen: %m" @@ -18729,19 +18768,19 @@ msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" msgstr "Zielrelation für logische Replikation »%s.%s« verwendet Systemspalten in REPLICA-IDENTITY-Index" -#: replication/logical/reorderbuffer.c:2686 +#: replication/logical/reorderbuffer.c:2685 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "konnte nicht in Datendatei für XID %u schreiben: %m" -#: replication/logical/reorderbuffer.c:2874 -#: replication/logical/reorderbuffer.c:2899 +#: replication/logical/reorderbuffer.c:2873 +#: replication/logical/reorderbuffer.c:2898 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "konnte nicht aus Reorder-Buffer-Spill-Datei lesen: %m" -#: replication/logical/reorderbuffer.c:2878 -#: replication/logical/reorderbuffer.c:2903 +#: replication/logical/reorderbuffer.c:2877 +#: replication/logical/reorderbuffer.c:2902 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "konnte nicht aus Reorder-Buffer-Spill-Datei lesen: %d statt %u Bytes gelesen" @@ -18751,7 +18790,7 @@ msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m" msgstr "konnte Datei »%s« nicht löschen, bei Löschen von pg_replslot/%s/xid*: %m" -#: replication/logical/reorderbuffer.c:3631 +#: replication/logical/reorderbuffer.c:3640 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "konnte nicht aus Datei »%s« lesen: %d statt %d Bytes gelesen" @@ -18768,58 +18807,58 @@ msgstr[0] "logischer Dekodierungs-Snapshot exportiert: »%s« mit %u Transaktions-ID" msgstr[1] "logischer Dekodierungs-Snapshot exportiert: »%s« mit %u Transaktions-IDs" -#: replication/logical/snapbuild.c:1265 replication/logical/snapbuild.c:1358 -#: replication/logical/snapbuild.c:1915 +#: replication/logical/snapbuild.c:1281 replication/logical/snapbuild.c:1374 +#: replication/logical/snapbuild.c:1931 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "logisches Dekodieren fand konsistenten Punkt bei %X/%X" -#: replication/logical/snapbuild.c:1267 +#: replication/logical/snapbuild.c:1283 #, c-format msgid "There are no running transactions." msgstr "Keine laufenden Transaktionen." -#: replication/logical/snapbuild.c:1309 +#: replication/logical/snapbuild.c:1325 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "logisches Dekodieren fand initialen Startpunkt bei %X/%X" -#: replication/logical/snapbuild.c:1311 replication/logical/snapbuild.c:1335 +#: replication/logical/snapbuild.c:1327 replication/logical/snapbuild.c:1351 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "Warten auf Abschluss der Transaktionen (ungefähr %d), die älter als %u sind." -#: replication/logical/snapbuild.c:1333 +#: replication/logical/snapbuild.c:1349 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "logisches Dekodieren fand initialen konsistenten Punkt bei %X/%X" -#: replication/logical/snapbuild.c:1360 +#: replication/logical/snapbuild.c:1376 #, c-format msgid "There are no old transactions anymore." msgstr "Es laufen keine alten Transaktionen mehr." -#: replication/logical/snapbuild.c:1757 +#: replication/logical/snapbuild.c:1773 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "Scanbuild-State-Datei »%s« hat falsche magische Zahl %u statt %u" -#: replication/logical/snapbuild.c:1763 +#: replication/logical/snapbuild.c:1779 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "Snapbuild-State-Datei »%s« hat nicht unterstützte Version: %u statt %u" -#: replication/logical/snapbuild.c:1862 +#: replication/logical/snapbuild.c:1878 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "Prüfsummenfehler bei Snapbuild-State-Datei »%s«: ist %u, sollte %u sein" -#: replication/logical/snapbuild.c:1917 +#: replication/logical/snapbuild.c:1933 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Logische Dekodierung beginnt mit gespeichertem Snapshot." -#: replication/logical/snapbuild.c:1989 +#: replication/logical/snapbuild.c:2005 #, c-format msgid "could not parse file name \"%s\"" msgstr "konnte Dateinamen »%s« nicht parsen" @@ -18869,82 +18908,82 @@ msgid "ORIGIN message sent out of order" msgstr "ORIGIN-Nachricht in falscher Reihenfolge gesendet" -#: replication/logical/worker.c:739 +#: replication/logical/worker.c:742 #, c-format msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\"" msgstr "Publikationsserver hat nicht die Replikidentitätsspalten gesendet, die von Replikationszielrelation »%s.%s« erwartet wurden" -#: replication/logical/worker.c:746 +#: replication/logical/worker.c:749 #, c-format msgid "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY index nor PRIMARY KEY and published relation does not have REPLICA IDENTITY FULL" msgstr "Zielrelation für logische Replikation »%s.%s« hat weder REPLICA-IDENTITY-Index noch Primärschlüssel und die publizierte Relation hat kein REPLICA IDENTITY FULL" -#: replication/logical/worker.c:1432 +#: replication/logical/worker.c:1435 #, c-format msgid "invalid logical replication message type \"%c\"" msgstr "ungültiger Nachrichtentyp für logische Replikation »%c«" -#: replication/logical/worker.c:1575 +#: replication/logical/worker.c:1578 #, c-format msgid "data stream from publisher has ended" msgstr "Datenstrom vom Publikationsserver endete" -#: replication/logical/worker.c:1730 +#: replication/logical/worker.c:1733 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "Arbeitsprozess für logische Replikation wird abgebrochen wegen Zeitüberschreitung" -#: replication/logical/worker.c:1876 +#: replication/logical/worker.c:1879 #, c-format msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was removed" msgstr "Apply-Worker für logische Replikation für Subskription »%s« wird anhalten, weil die Subskription entfernt wurde" -#: replication/logical/worker.c:1890 +#: replication/logical/worker.c:1893 #, c-format msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was disabled" msgstr "Apply-Worker für logische Replikation für Subskription »%s« wird anhalten, weil die Subskription deaktiviert wurde" -#: replication/logical/worker.c:1904 +#: replication/logical/worker.c:1907 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because the connection information was changed" msgstr "Apply-Worker für logische Replikation für Subskription »%s« wird neu starten, weil die Verbindungsinformationen geändert wurden" -#: replication/logical/worker.c:1918 +#: replication/logical/worker.c:1921 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because subscription was renamed" msgstr "Apply-Worker für logische Replikation für Subskription »%s« wird neu starten, weil die Subskription umbenannt wurde" -#: replication/logical/worker.c:1935 +#: replication/logical/worker.c:1938 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because the replication slot name was changed" msgstr "Apply-Worker für logische Replikation für Subskription »%s« wird neu starten, weil der Replikations-Slot-Name geändert wurde" -#: replication/logical/worker.c:1949 +#: replication/logical/worker.c:1952 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because subscription's publications were changed" msgstr "Apply-Worker für logische Replikation für Subskription »%s« wird neu starten, weil die Publikationen der Subskription geandert wurden" -#: replication/logical/worker.c:2045 +#: replication/logical/worker.c:2048 #, c-format msgid "logical replication apply worker for subscription %u will not start because the subscription was removed during startup" msgstr "Apply-Worker für logische Replikation für Subskription %u« wird nicht starten, weil die Subskription während des Starts deaktiviert wurde" -#: replication/logical/worker.c:2057 +#: replication/logical/worker.c:2060 #, c-format msgid "logical replication apply worker for subscription \"%s\" will not start because the subscription was disabled during startup" msgstr "Apply-Worker für logische Replikation für Subskription »%s« wird nicht starten, weil die Subskription während des Starts deaktiviert wurde" -#: replication/logical/worker.c:2075 +#: replication/logical/worker.c:2078 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" msgstr "Arbeitsprozess für logische Replikation für Tabellensynchronisation für Subskription »%s«, Tabelle »%s« hat gestartet" -#: replication/logical/worker.c:2079 +#: replication/logical/worker.c:2082 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "Apply-Worker für logische Replikation für Subskription »%s« hat gestartet" -#: replication/logical/worker.c:2118 +#: replication/logical/worker.c:2121 #, c-format msgid "subscription has no replication slot set" msgstr "für die Subskription ist kein Replikations-Slot gesetzt" @@ -19184,82 +19223,82 @@ msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "Anzahl synchroner Standbys (%d) muss größer als null sein" -#: replication/walreceiver.c:171 +#: replication/walreceiver.c:172 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "WAL-Receiver-Prozess wird abgebrochen aufgrund von Anweisung des Administrators" -#: replication/walreceiver.c:297 +#: replication/walreceiver.c:298 #, c-format msgid "could not connect to the primary server: %s" msgstr "konnte nicht mit dem Primärserver verbinden: %s" -#: replication/walreceiver.c:343 +#: replication/walreceiver.c:344 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "Datenbanksystemidentifikator unterscheidet sich zwischen Primär- und Standby-Server" -#: replication/walreceiver.c:344 +#: replication/walreceiver.c:345 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "Identifikator des Primärservers ist %s, Identifikator des Standby ist %s." -#: replication/walreceiver.c:354 +#: replication/walreceiver.c:355 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "höchste Zeitleiste %u des primären Servers liegt hinter Wiederherstellungszeitleiste %u zurück" -#: replication/walreceiver.c:408 +#: replication/walreceiver.c:409 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "WAL-Streaming vom Primärserver gestartet bei %X/%X auf Zeitleiste %u" -#: replication/walreceiver.c:413 +#: replication/walreceiver.c:414 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "WAL-Streaming neu gestartet bei %X/%X auf Zeitleiste %u" -#: replication/walreceiver.c:442 +#: replication/walreceiver.c:443 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "kann WAL-Streaming nicht fortsetzen, Wiederherstellung ist bereits beendet" -#: replication/walreceiver.c:479 +#: replication/walreceiver.c:480 #, c-format msgid "replication terminated by primary server" msgstr "Replikation wurde durch Primärserver beendet" -#: replication/walreceiver.c:480 +#: replication/walreceiver.c:481 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "WAL-Ende erreicht auf Zeitleiste %u bei %X/%X." -#: replication/walreceiver.c:568 +#: replication/walreceiver.c:569 #, c-format msgid "terminating walreceiver due to timeout" msgstr "WAL-Receiver-Prozess wird abgebrochen wegen Zeitüberschreitung" -#: replication/walreceiver.c:606 +#: replication/walreceiver.c:607 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "Primärserver enthält kein WAL mehr auf angeforderter Zeitleiste %u" -#: replication/walreceiver.c:622 replication/walreceiver.c:938 +#: replication/walreceiver.c:623 replication/walreceiver.c:1065 #, c-format msgid "could not close log segment %s: %m" msgstr "konnte Logsegment %s nicht schließen: %m" -#: replication/walreceiver.c:742 +#: replication/walreceiver.c:743 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "hole Zeitleisten-History-Datei für Zeitleiste %u vom Primärserver" -#: replication/walreceiver.c:985 +#: replication/walreceiver.c:955 #, c-format msgid "could not write to log segment %s at offset %u, length %lu: %m" msgstr "konnte nicht in Logsegment %s bei Position %u, Länge %lu schreiben: %m" -#: replication/walsender.c:527 storage/smgr/md.c:1329 +#: replication/walsender.c:527 storage/smgr/md.c:1330 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "konnte Positionszeiger nicht ans Ende der Datei »%s« setzen: %m" @@ -19339,49 +19378,49 @@ msgid "terminating walsender process after promotion" msgstr "WAL-Sender-Prozess wird nach Beförderung abgebrochen" -#: replication/walsender.c:1538 +#: replication/walsender.c:1539 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "während der WAL-Sender im Stoppmodus ist können keine neuen Befehle ausgeführt werden" -#: replication/walsender.c:1575 +#: replication/walsender.c:1574 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "im WAL-Sender für physische Replikation können keine SQL-Befehle ausgeführt werden" -#: replication/walsender.c:1598 +#: replication/walsender.c:1607 #, c-format msgid "received replication command: %s" msgstr "Replikationsbefehl empfangen: %s" -#: replication/walsender.c:1606 tcop/fastpath.c:285 tcop/postgres.c:1103 +#: replication/walsender.c:1615 tcop/fastpath.c:285 tcop/postgres.c:1103 #: tcop/postgres.c:1455 tcop/postgres.c:1716 tcop/postgres.c:2174 #: tcop/postgres.c:2535 tcop/postgres.c:2614 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "aktuelle Transaktion wurde abgebrochen, Befehle werden bis zum Ende der Transaktion ignoriert" -#: replication/walsender.c:1730 replication/walsender.c:1746 +#: replication/walsender.c:1739 replication/walsender.c:1755 #, c-format msgid "unexpected EOF on standby connection" msgstr "unerwartetes EOF auf Standby-Verbindung" -#: replication/walsender.c:1785 +#: replication/walsender.c:1794 #, c-format msgid "invalid standby message type \"%c\"" msgstr "ungültiger Standby-Message-Typ »%c«" -#: replication/walsender.c:1826 +#: replication/walsender.c:1835 #, c-format msgid "unexpected message type \"%c\"" msgstr "unerwarteter Message-Typ »%c«" -#: replication/walsender.c:2238 +#: replication/walsender.c:2247 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "WAL-Sender-Prozess wird abgebrochen wegen Zeitüberschreitung bei der Replikation" -#: replication/walsender.c:2315 +#: replication/walsender.c:2324 #, c-format msgid "\"%s\" has now caught up with upstream server" msgstr "»%s« hat jetzt den Upstream-Server eingeholt" @@ -19597,193 +19636,198 @@ msgid "renaming an ON SELECT rule is not allowed" msgstr "Umbenennen einer ON-SELECT-Regel ist nicht erlaubt" -#: rewrite/rewriteHandler.c:546 +#: rewrite/rewriteHandler.c:549 #, c-format msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "WITH-Anfragename »%s« erscheint sowohl in der Regelaktion als auch in der umzuschreibenden Anfrage" -#: rewrite/rewriteHandler.c:606 +#: rewrite/rewriteHandler.c:576 +#, c-format +msgid "INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH" +msgstr "INSTEAD...SELECT-Regelaktionen werden für Anfrangen mit datenmodifizierenden Anweisungen in WITH nicht unterstützt" + +#: rewrite/rewriteHandler.c:629 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "RETURNING-Listen können nicht in mehreren Regeln auftreten" -#: rewrite/rewriteHandler.c:817 rewrite/rewriteHandler.c:829 +#: rewrite/rewriteHandler.c:840 rewrite/rewriteHandler.c:852 #, c-format msgid "cannot insert into column \"%s\"" msgstr "kann nicht in Spalte »%s« einfügen" -#: rewrite/rewriteHandler.c:818 rewrite/rewriteHandler.c:840 +#: rewrite/rewriteHandler.c:841 rewrite/rewriteHandler.c:863 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "Spalte »%s« ist eine Identitätsspalte, die als GENERATED ALWAYS definiert ist." -#: rewrite/rewriteHandler.c:820 +#: rewrite/rewriteHandler.c:843 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Verwenden Sie OVERRIDING SYSTEM VALUE, um diese Einschränkung außer Kraft zu setzen." -#: rewrite/rewriteHandler.c:839 rewrite/rewriteHandler.c:846 +#: rewrite/rewriteHandler.c:862 rewrite/rewriteHandler.c:869 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "Spalte »%s« kann nur auf DEFAULT aktualisiert werden" -#: rewrite/rewriteHandler.c:1015 rewrite/rewriteHandler.c:1033 +#: rewrite/rewriteHandler.c:1038 rewrite/rewriteHandler.c:1056 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "mehrere Zuweisungen zur selben Spalte »%s«" -#: rewrite/rewriteHandler.c:2015 rewrite/rewriteHandler.c:3837 +#: rewrite/rewriteHandler.c:2038 rewrite/rewriteHandler.c:3860 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "unendliche Rekursion entdeckt in Regeln für Relation »%s«" -#: rewrite/rewriteHandler.c:2100 +#: rewrite/rewriteHandler.c:2123 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "unendliche Rekursion entdeckt in Policys für Relation »%s«" -#: rewrite/rewriteHandler.c:2420 +#: rewrite/rewriteHandler.c:2443 msgid "Junk view columns are not updatable." msgstr "Junk-Sichtspalten sind nicht aktualisierbar." -#: rewrite/rewriteHandler.c:2425 +#: rewrite/rewriteHandler.c:2448 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Sichtspalten, die nicht Spalten ihrer Basisrelation sind, sind nicht aktualisierbar." -#: rewrite/rewriteHandler.c:2428 +#: rewrite/rewriteHandler.c:2451 msgid "View columns that refer to system columns are not updatable." msgstr "Sichtspalten, die auf Systemspalten verweisen, sind nicht aktualisierbar." -#: rewrite/rewriteHandler.c:2431 +#: rewrite/rewriteHandler.c:2454 msgid "View columns that return whole-row references are not updatable." msgstr "Sichtspalten, die Verweise auf ganze Zeilen zurückgeben, sind nicht aktualisierbar." -#: rewrite/rewriteHandler.c:2492 +#: rewrite/rewriteHandler.c:2515 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Sichten, die DISTINCT enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2495 +#: rewrite/rewriteHandler.c:2518 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Sichten, die GROUP BY enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2498 +#: rewrite/rewriteHandler.c:2521 msgid "Views containing HAVING are not automatically updatable." msgstr "Sichten, die HAVING enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2501 +#: rewrite/rewriteHandler.c:2524 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Sichten, die UNION, INTERSECT oder EXCEPT enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2504 +#: rewrite/rewriteHandler.c:2527 msgid "Views containing WITH are not automatically updatable." msgstr "Sichten, die WITH enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2507 +#: rewrite/rewriteHandler.c:2530 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Sichten, die LIMIT oder OFFSET enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2519 +#: rewrite/rewriteHandler.c:2542 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Sichten, die Aggregatfunktionen zurückgeben, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2522 +#: rewrite/rewriteHandler.c:2545 msgid "Views that return window functions are not automatically updatable." msgstr "Sichten, die Fensterfunktionen zurückgeben, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2525 +#: rewrite/rewriteHandler.c:2548 msgid "Views that return set-returning functions are not automatically updatable." msgstr "Sichten, die Funktionen mit Ergebnismenge zurückgeben, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2532 rewrite/rewriteHandler.c:2536 -#: rewrite/rewriteHandler.c:2544 +#: rewrite/rewriteHandler.c:2555 rewrite/rewriteHandler.c:2559 +#: rewrite/rewriteHandler.c:2567 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Sichten, die nicht aus einer einzigen Tabelle oder Sicht lesen, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2547 +#: rewrite/rewriteHandler.c:2570 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Sichten, die TABLESAMPLE enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2571 +#: rewrite/rewriteHandler.c:2594 msgid "Views that have no updatable columns are not automatically updatable." msgstr "Sichten, die keine aktualisierbaren Spalten haben, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:3048 +#: rewrite/rewriteHandler.c:3071 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "kann nicht in Spalte »%s« von Sicht »%s« einfügen" -#: rewrite/rewriteHandler.c:3056 +#: rewrite/rewriteHandler.c:3079 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "kann Spalte »%s« von Sicht »%s« nicht aktualisieren" -#: rewrite/rewriteHandler.c:3537 +#: rewrite/rewriteHandler.c:3560 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "DO-INSTEAD-NOTIFY-Regeln werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:3548 +#: rewrite/rewriteHandler.c:3571 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "DO-INSTEAD-NOTHING-Regeln werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:3562 +#: rewrite/rewriteHandler.c:3585 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "DO-INSTEAD-Regeln mit Bedingung werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:3566 +#: rewrite/rewriteHandler.c:3589 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "DO-ALSO-Regeln werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:3571 +#: rewrite/rewriteHandler.c:3594 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "DO-INSTEAD-Regeln mit mehreren Anweisungen werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:3765 rewrite/rewriteHandler.c:3773 -#: rewrite/rewriteHandler.c:3781 +#: rewrite/rewriteHandler.c:3788 rewrite/rewriteHandler.c:3796 +#: rewrite/rewriteHandler.c:3804 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Sichten mit DO-INSTEAD-Regeln mit Bedingung sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:3874 +#: rewrite/rewriteHandler.c:3897 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "INSERT RETURNING kann in Relation »%s« nicht ausgeführt werden" -#: rewrite/rewriteHandler.c:3876 +#: rewrite/rewriteHandler.c:3899 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "Sie benötigen eine ON INSERT DO INSTEAD Regel ohne Bedingung, mit RETURNING-Klausel." -#: rewrite/rewriteHandler.c:3881 +#: rewrite/rewriteHandler.c:3904 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "UPDATE RETURNING kann in Relation »%s« nicht ausgeführt werden" -#: rewrite/rewriteHandler.c:3883 +#: rewrite/rewriteHandler.c:3906 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "Sie benötigen eine ON UPDATE DO INSTEAD Regel ohne Bedingung, mit RETURNING-Klausel." -#: rewrite/rewriteHandler.c:3888 +#: rewrite/rewriteHandler.c:3911 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "DELETE RETURNING kann in Relation »%s« nicht ausgeführt werden" -#: rewrite/rewriteHandler.c:3890 +#: rewrite/rewriteHandler.c:3913 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "Sie benötigen eine ON DELETE DO INSTEAD Regel ohne Bedingung, mit RETURNING-Klausel." -#: rewrite/rewriteHandler.c:3908 +#: rewrite/rewriteHandler.c:3931 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT mit ON-CONFLICT-Klausel kann nicht mit Tabelle verwendet werden, die INSERT- oder UPDATE-Regeln hat" -#: rewrite/rewriteHandler.c:3965 +#: rewrite/rewriteHandler.c:3988 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH kann nicht in einer Anfrage verwendet werden, die durch Regeln in mehrere Anfragen umgeschrieben wird" @@ -19928,7 +19972,7 @@ msgid "missing Language parameter" msgstr "Parameter »Language« fehlt" -#: statistics/dependencies.c:667 statistics/dependencies.c:720 +#: statistics/dependencies.c:677 statistics/dependencies.c:730 #: statistics/mcv.c:1477 statistics/mcv.c:1508 statistics/mvdistinct.c:348 #: statistics/mvdistinct.c:401 utils/adt/pseudotypes.c:42 #: utils/adt/pseudotypes.c:76 @@ -19936,7 +19980,7 @@ msgid "cannot accept a value of type %s" msgstr "kann keinen Wert vom Typ %s annehmen" -#: statistics/extended_stats.c:145 +#: statistics/extended_stats.c:147 #, c-format msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" msgstr "Statistikobjekt »%s.%s« konnte für Relation »%s.%s« nicht berechnet werden" @@ -19951,37 +19995,42 @@ msgid "cannot access temporary tables of other sessions" msgstr "auf temporäre Tabellen anderer Sitzungen kann nicht zugegriffen werden" -#: storage/buffer/bufmgr.c:826 +#: storage/buffer/bufmgr.c:748 +#, c-format +msgid "cannot extend relation %s beyond %u blocks" +msgstr "kann Relation %s nicht auf über %u Blöcke erweitern" + +#: storage/buffer/bufmgr.c:835 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "unerwartete Daten hinter Dateiende in Block %u von Relation %s" -#: storage/buffer/bufmgr.c:828 +#: storage/buffer/bufmgr.c:837 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "Das scheint mit fehlerhaften Kernels vorzukommen; Sie sollten eine Systemaktualisierung in Betracht ziehen." -#: storage/buffer/bufmgr.c:927 +#: storage/buffer/bufmgr.c:936 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "ungültige Seite in Block %u von Relation %s; fülle Seite mit Nullen" -#: storage/buffer/bufmgr.c:4213 +#: storage/buffer/bufmgr.c:4224 #, c-format msgid "could not write block %u of %s" msgstr "konnte Block %u von %s nicht schreiben" -#: storage/buffer/bufmgr.c:4215 +#: storage/buffer/bufmgr.c:4226 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Mehrere Fehlschläge --- Schreibfehler ist möglicherweise dauerhaft." -#: storage/buffer/bufmgr.c:4236 storage/buffer/bufmgr.c:4255 +#: storage/buffer/bufmgr.c:4247 storage/buffer/bufmgr.c:4266 #, c-format msgid "writing block %u of relation %s" msgstr "schreibe Block %u von Relation %s" -#: storage/buffer/bufmgr.c:4558 +#: storage/buffer/bufmgr.c:4569 #, c-format msgid "snapshot too old" msgstr "Snapshot zu alt" @@ -20184,17 +20233,17 @@ msgid "%s failed: %m" msgstr "%s fehlgeschlagen: %m" -#: storage/ipc/procarray.c:3021 +#: storage/ipc/procarray.c:3104 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "Datenbank »%s« wird von vorbereiteten Transaktionen verwendet" -#: storage/ipc/procarray.c:3053 storage/ipc/signalfuncs.c:142 +#: storage/ipc/procarray.c:3136 storage/ipc/signalfuncs.c:142 #, c-format msgid "must be a superuser to terminate superuser process" msgstr "nur Superuser können Prozesse eines Superusers beenden" -#: storage/ipc/procarray.c:3060 storage/ipc/signalfuncs.c:147 +#: storage/ipc/procarray.c:3143 storage/ipc/signalfuncs.c:147 #, c-format msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend" msgstr "muss Mitglied der Rolle sein, deren Prozess beendet wird, oder Mitglied von pg_signal_backend" @@ -20210,8 +20259,8 @@ msgstr "ungültige Nachrichtengröße %zu in Shared-Memory-Queue" #: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:982 -#: storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4248 -#: storage/lmgr/lock.c:4313 storage/lmgr/lock.c:4620 +#: storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4252 +#: storage/lmgr/lock.c:4317 storage/lmgr/lock.c:4667 #: storage/lmgr/predicate.c:2476 storage/lmgr/predicate.c:2491 #: storage/lmgr/predicate.c:3973 storage/lmgr/predicate.c:5084 #: utils/hash/dynahash.c:1067 @@ -20280,12 +20329,12 @@ msgid "rotation not possible because log collection not active" msgstr "Rotierung nicht möglich, weil Logsammlung nicht aktiv ist" -#: storage/ipc/standby.c:683 tcop/postgres.c:3199 +#: storage/ipc/standby.c:690 tcop/postgres.c:3199 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "storniere Anfrage wegen Konflikt mit der Wiederherstellung" -#: storage/ipc/standby.c:684 tcop/postgres.c:2469 +#: storage/ipc/standby.c:691 tcop/postgres.c:2469 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "Benutzertransaktion hat Verklemmung (Deadlock) mit Wiederherstellung verursacht." @@ -20295,17 +20344,17 @@ msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "pg_largeobject-Eintrag für OID %u, Seite %d hat ungültige Datenfeldgröße %d" -#: storage/large_object/inv_api.c:272 +#: storage/large_object/inv_api.c:274 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "ungültige Flags zum Öffnen eines Large Objects: %d" -#: storage/large_object/inv_api.c:462 +#: storage/large_object/inv_api.c:457 #, c-format msgid "invalid whence setting: %d" msgstr "ungültige »whence«-Angabe: %d" -#: storage/large_object/inv_api.c:634 +#: storage/large_object/inv_api.c:629 #, c-format msgid "invalid large object write request size: %d" msgstr "ungültige Größe der Large-Object-Schreibaufforderung: %d" @@ -20370,62 +20419,62 @@ msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "beim Prüfen eines Exclusion-Constraints für Tupel (%u,%u) in Relation »%s«" -#: storage/lmgr/lmgr.c:1105 +#: storage/lmgr/lmgr.c:1106 #, c-format msgid "relation %u of database %u" msgstr "Relation %u der Datenbank %u" -#: storage/lmgr/lmgr.c:1111 +#: storage/lmgr/lmgr.c:1112 #, c-format msgid "extension of relation %u of database %u" msgstr "Erweiterung von Relation %u in Datenbank %u" -#: storage/lmgr/lmgr.c:1117 +#: storage/lmgr/lmgr.c:1118 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid der Datenbank %u" -#: storage/lmgr/lmgr.c:1122 +#: storage/lmgr/lmgr.c:1123 #, c-format msgid "page %u of relation %u of database %u" msgstr "Seite %u von Relation %u von Datenbank %u" -#: storage/lmgr/lmgr.c:1129 +#: storage/lmgr/lmgr.c:1130 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "Tupel (%u, %u) von Relation %u von Datenbank %u" -#: storage/lmgr/lmgr.c:1137 +#: storage/lmgr/lmgr.c:1138 #, c-format msgid "transaction %u" msgstr "Transaktion %u" -#: storage/lmgr/lmgr.c:1142 +#: storage/lmgr/lmgr.c:1143 #, c-format msgid "virtual transaction %d/%u" msgstr "virtuelle Transaktion %d/%u" -#: storage/lmgr/lmgr.c:1148 +#: storage/lmgr/lmgr.c:1149 #, c-format msgid "speculative token %u of transaction %u" msgstr "spekulatives Token %u von Transaktion %u" -#: storage/lmgr/lmgr.c:1154 +#: storage/lmgr/lmgr.c:1155 #, c-format msgid "object %u of class %u of database %u" msgstr "Objekt %u von Klasse %u von Datenbank %u" -#: storage/lmgr/lmgr.c:1162 +#: storage/lmgr/lmgr.c:1163 #, c-format msgid "user lock [%u,%u,%u]" msgstr "Benutzersperre [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1169 +#: storage/lmgr/lmgr.c:1170 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "Benutzersperre [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1177 +#: storage/lmgr/lmgr.c:1178 #, c-format msgid "unrecognized locktag type %d" msgstr "unbekannter Locktag-Typ %d" @@ -20441,12 +20490,12 @@ msgstr "Nur Sperren gleich oder unter RowExclusiveLock können während der Wiederherstellung auf Datenbankobjekte gesetzt werden." #: storage/lmgr/lock.c:983 storage/lmgr/lock.c:1021 storage/lmgr/lock.c:2846 -#: storage/lmgr/lock.c:4249 storage/lmgr/lock.c:4314 storage/lmgr/lock.c:4621 +#: storage/lmgr/lock.c:4253 storage/lmgr/lock.c:4318 storage/lmgr/lock.c:4668 #, c-format msgid "You might need to increase max_locks_per_transaction." msgstr "Sie müssen möglicherweise max_locks_per_transaction erhöhen." -#: storage/lmgr/lock.c:3297 storage/lmgr/lock.c:3365 storage/lmgr/lock.c:3481 +#: storage/lmgr/lock.c:3301 storage/lmgr/lock.c:3369 storage/lmgr/lock.c:3485 #, c-format msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object" msgstr "PREPARE kann nicht ausgeführt werden, wenn für das selbe Objekt Sperren auf Sitzungsebene und auf Transaktionsebene gehalten werden" @@ -20486,13 +20535,13 @@ msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "eine Transaktion, die einen Snapshot importiert, must READ ONLY DEFERRABLE sein" -#: storage/lmgr/predicate.c:1830 utils/time/snapmgr.c:623 -#: utils/time/snapmgr.c:629 +#: storage/lmgr/predicate.c:1830 utils/time/snapmgr.c:625 +#: utils/time/snapmgr.c:631 #, c-format msgid "could not import the requested snapshot" msgstr "konnte den angeforderten Snapshot nicht importieren" -#: storage/lmgr/predicate.c:1831 utils/time/snapmgr.c:630 +#: storage/lmgr/predicate.c:1831 utils/time/snapmgr.c:632 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "Der Ausgangsprozess mit PID %d läuft nicht mehr." @@ -20589,77 +20638,77 @@ msgid "corrupted line pointer: offset = %u, size = %u" msgstr "verfälschter Line-Pointer: offset = %u, size = %u" -#: storage/smgr/md.c:317 storage/smgr/md.c:874 +#: storage/smgr/md.c:317 storage/smgr/md.c:875 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "kann Datei »%s« nicht kürzen: %m" -#: storage/smgr/md.c:445 +#: storage/smgr/md.c:446 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "kann Datei »%s« nicht auf über %u Blöcke erweitern" -#: storage/smgr/md.c:460 +#: storage/smgr/md.c:461 #, c-format msgid "could not extend file \"%s\": %m" msgstr "konnte Datei »%s« nicht erweitern: %m" -#: storage/smgr/md.c:462 storage/smgr/md.c:469 storage/smgr/md.c:757 +#: storage/smgr/md.c:463 storage/smgr/md.c:470 storage/smgr/md.c:758 #, c-format msgid "Check free disk space." msgstr "Prüfen Sie den freien Festplattenplatz." -#: storage/smgr/md.c:466 +#: storage/smgr/md.c:467 #, c-format msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" msgstr "konnte Datei »%s« nicht erweitern: es wurden nur %d von %d Bytes bei Block %u geschrieben" -#: storage/smgr/md.c:678 +#: storage/smgr/md.c:679 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "konnte Block %u in Datei »%s« nicht lesen: %m" -#: storage/smgr/md.c:694 +#: storage/smgr/md.c:695 #, c-format msgid "could not read block %u in file \"%s\": read only %d of %d bytes" msgstr "konnte Block %u in Datei »%s« nicht lesen: es wurden nur %d von %d Bytes gelesen" -#: storage/smgr/md.c:748 +#: storage/smgr/md.c:749 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "konnte Block %u in Datei »%s« nicht schreiben: %m" -#: storage/smgr/md.c:753 +#: storage/smgr/md.c:754 #, c-format msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" msgstr "konnte Block %u in Datei »%s« nicht schreiben: es wurden nur %d von %d Bytes geschrieben" -#: storage/smgr/md.c:845 +#: storage/smgr/md.c:846 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "konnte Datei »%s« nicht auf %u Blöcke kürzen: es sind jetzt nur %u Blöcke" -#: storage/smgr/md.c:900 +#: storage/smgr/md.c:901 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "konnte Datei »%s« nicht auf %u Blöcke kürzen: %m" -#: storage/smgr/md.c:995 +#: storage/smgr/md.c:996 #, c-format msgid "could not forward fsync request because request queue is full" msgstr "konnte fsync-Anfrage nicht weiterleiten, weil Anfrageschlange voll ist" -#: storage/smgr/md.c:1294 +#: storage/smgr/md.c:1295 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "konnte Datei »%s« nicht öffnen (Zielblock %u): vorhergehendes Segment hat nur %u Blöcke" -#: storage/smgr/md.c:1308 +#: storage/smgr/md.c:1309 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "konnte Datei »%s« nicht öffnen (Zielblock %u): %m" -#: storage/sync/sync.c:401 +#: storage/sync/sync.c:438 #, c-format msgid "could not fsync file \"%s\" but retrying: %m" msgstr "konnte Datei »%s« nicht fsyncen, versuche erneut: %m" @@ -20711,7 +20760,7 @@ msgstr "unerwartetes EOF auf Client-Verbindung" #: tcop/postgres.c:441 tcop/postgres.c:453 tcop/postgres.c:464 -#: tcop/postgres.c:476 tcop/postgres.c:4563 +#: tcop/postgres.c:476 tcop/postgres.c:4571 #, c-format msgid "invalid frontend message type %d" msgstr "ungültiger Frontend-Message-Typ %d" @@ -20919,82 +20968,82 @@ msgid "terminating connection due to idle-in-transaction timeout" msgstr "Verbindung wird abgebrochen wegen Zeitüberschreitung in inaktiver Transaktion" -#: tcop/postgres.c:3340 +#: tcop/postgres.c:3350 #, c-format msgid "stack depth limit exceeded" msgstr "Grenze für Stacktiefe überschritten" -#: tcop/postgres.c:3341 +#: tcop/postgres.c:3351 #, c-format msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." msgstr "Erhöhen Sie den Konfigurationsparameter »max_stack_depth« (aktuell %dkB), nachdem Sie sichergestellt haben, dass die Stacktiefenbegrenzung Ihrer Plattform ausreichend ist." -#: tcop/postgres.c:3404 +#: tcop/postgres.c:3414 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "»max_stack_depth« darf %ldkB nicht überschreiten." -#: tcop/postgres.c:3406 +#: tcop/postgres.c:3416 #, c-format msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." msgstr "Erhöhen Sie die Stacktiefenbegrenzung Ihrer Plattform mit »ulimit -s« oder der lokalen Entsprechung." -#: tcop/postgres.c:3766 +#: tcop/postgres.c:3776 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "ungültiges Kommandozeilenargument für Serverprozess: %s" -#: tcop/postgres.c:3767 tcop/postgres.c:3773 +#: tcop/postgres.c:3777 tcop/postgres.c:3783 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: tcop/postgres.c:3771 +#: tcop/postgres.c:3781 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: ungültiges Kommandozeilenargument: %s" -#: tcop/postgres.c:3833 +#: tcop/postgres.c:3843 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: weder Datenbankname noch Benutzername angegeben" -#: tcop/postgres.c:4471 +#: tcop/postgres.c:4479 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "ungültiger Subtyp %d von CLOSE-Message" -#: tcop/postgres.c:4506 +#: tcop/postgres.c:4514 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "ungültiger Subtyp %d von DESCRIBE-Message" -#: tcop/postgres.c:4584 +#: tcop/postgres.c:4592 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "Fastpath-Funktionsaufrufe werden auf einer Replikationsverbindung nicht unterstützt" -#: tcop/postgres.c:4588 +#: tcop/postgres.c:4596 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "erweitertes Anfrageprotokoll wird nicht auf einer Replikationsverbindung unterstützt" -#: tcop/postgres.c:4765 +#: tcop/postgres.c:4773 #, c-format msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s" msgstr "Verbindungsende: Sitzungszeit: %d:%02d:%02d.%03d Benutzer=%s Datenbank=%s Host=%s%s%s" -#: tcop/pquery.c:636 +#: tcop/pquery.c:638 #, c-format msgid "bind message has %d result formats but query has %d columns" msgstr "Bind-Message hat %d Ergebnisspalten, aber Anfrage hat %d Spalten" -#: tcop/pquery.c:939 +#: tcop/pquery.c:941 tcop/pquery.c:1700 #, c-format msgid "cursor can only scan forward" msgstr "Cursor kann nur vorwärts scannen" -#: tcop/pquery.c:940 +#: tcop/pquery.c:942 tcop/pquery.c:1701 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "Deklarieren Sie ihn mit der Option SCROLL, um rückwarts scannen zu können." @@ -21023,7 +21072,13 @@ msgid "cannot execute %s within security-restricted operation" msgstr "kann %s nicht in einer sicherheitsbeschränkten Operation ausführen" -#: tcop/utility.c:912 +#. translator: %s is name of a SQL command, eg LISTEN +#: tcop/utility.c:804 +#, c-format +msgid "cannot execute %s within a background process" +msgstr "%s kann nicht in einem Hintergrundprozess ausgeführt werden" + +#: tcop/utility.c:929 #, c-format msgid "must be superuser to do CHECKPOINT" msgstr "nur Superuser können CHECKPOINT ausführen" @@ -21745,8 +21800,8 @@ #: utils/adt/jsonpath.c:182 utils/adt/mac.c:94 utils/adt/mac8.c:93 #: utils/adt/mac8.c:166 utils/adt/mac8.c:184 utils/adt/mac8.c:202 #: utils/adt/mac8.c:221 utils/adt/network.c:100 utils/adt/numeric.c:593 -#: utils/adt/numeric.c:620 utils/adt/numeric.c:5996 utils/adt/numeric.c:6020 -#: utils/adt/numeric.c:6044 utils/adt/numeric.c:6866 utils/adt/numeric.c:6892 +#: utils/adt/numeric.c:620 utils/adt/numeric.c:5997 utils/adt/numeric.c:6021 +#: utils/adt/numeric.c:6045 utils/adt/numeric.c:6867 utils/adt/numeric.c:6893 #: utils/adt/numutils.c:116 utils/adt/numutils.c:126 utils/adt/numutils.c:170 #: utils/adt/numutils.c:246 utils/adt/numutils.c:322 utils/adt/oid.c:44 #: utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86 @@ -21771,8 +21826,8 @@ #: utils/adt/int.c:1020 utils/adt/int.c:1082 utils/adt/int.c:1120 #: utils/adt/int.c:1148 utils/adt/int8.c:593 utils/adt/int8.c:651 #: utils/adt/int8.c:978 utils/adt/int8.c:1058 utils/adt/int8.c:1120 -#: utils/adt/int8.c:1200 utils/adt/numeric.c:7430 utils/adt/numeric.c:7720 -#: utils/adt/numeric.c:9356 utils/adt/timestamp.c:3275 +#: utils/adt/int8.c:1200 utils/adt/numeric.c:7431 utils/adt/numeric.c:7721 +#: utils/adt/numeric.c:9366 utils/adt/timestamp.c:3275 #, c-format msgid "division by zero" msgstr "Division durch Null" @@ -21895,7 +21950,7 @@ msgid "\"time with time zone\" units \"%s\" not recognized" msgstr "»time with time zone«-Einheit »%s« nicht erkannt" -#: utils/adt/date.c:2854 utils/adt/datetime.c:906 utils/adt/datetime.c:1813 +#: utils/adt/date.c:2856 utils/adt/datetime.c:906 utils/adt/datetime.c:1813 #: utils/adt/datetime.c:4601 utils/adt/timestamp.c:513 #: utils/adt/timestamp.c:540 utils/adt/timestamp.c:4161 #: utils/adt/timestamp.c:5111 utils/adt/timestamp.c:5363 @@ -21903,7 +21958,7 @@ msgid "time zone \"%s\" not recognized" msgstr "Zeitzone »%s« nicht erkannt" -#: utils/adt/date.c:2886 utils/adt/timestamp.c:5141 utils/adt/timestamp.c:5394 +#: utils/adt/date.c:2888 utils/adt/timestamp.c:5141 utils/adt/timestamp.c:5394 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "Intervall-Zeitzone »%s« darf keine Monate oder Tage enthalten" @@ -22058,12 +22113,12 @@ #: utils/adt/float.c:1268 utils/adt/float.c:1342 utils/adt/int.c:336 #: utils/adt/int.c:874 utils/adt/int.c:896 utils/adt/int.c:910 #: utils/adt/int.c:924 utils/adt/int.c:956 utils/adt/int.c:1194 -#: utils/adt/int8.c:1313 utils/adt/numeric.c:3548 utils/adt/numeric.c:3557 +#: utils/adt/int8.c:1313 utils/adt/numeric.c:3550 utils/adt/numeric.c:3555 #, c-format msgid "smallint out of range" msgstr "smallint ist außerhalb des gültigen Bereichs" -#: utils/adt/float.c:1468 utils/adt/numeric.c:8313 +#: utils/adt/float.c:1468 utils/adt/numeric.c:8314 #, c-format msgid "cannot take square root of a negative number" msgstr "Quadratwurzel von negativer Zahl kann nicht ermittelt werden" @@ -22073,17 +22128,17 @@ msgid "zero raised to a negative power is undefined" msgstr "null hoch eine negative Zahl ist undefiniert" -#: utils/adt/float.c:1540 utils/adt/numeric.c:9213 +#: utils/adt/float.c:1540 utils/adt/numeric.c:9219 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "eine negative Zahl hoch eine nicht ganze Zahl ergibt ein komplexes Ergebnis" -#: utils/adt/float.c:1614 utils/adt/float.c:1647 utils/adt/numeric.c:8983 +#: utils/adt/float.c:1614 utils/adt/float.c:1647 utils/adt/numeric.c:8992 #, c-format msgid "cannot take logarithm of zero" msgstr "Logarithmus von null kann nicht ermittelt werden" -#: utils/adt/float.c:1618 utils/adt/float.c:1651 utils/adt/numeric.c:8987 +#: utils/adt/float.c:1618 utils/adt/float.c:1651 utils/adt/numeric.c:8996 #, c-format msgid "cannot take logarithm of a negative number" msgstr "Logarithmus negativer Zahlen kann nicht ermittelt werden" @@ -22513,7 +22568,7 @@ msgstr "oidvector-Wert hat zu viele Elemente" #: utils/adt/int.c:1510 utils/adt/int8.c:1439 utils/adt/numeric.c:1409 -#: utils/adt/timestamp.c:5456 utils/adt/timestamp.c:5536 +#: utils/adt/timestamp.c:5470 utils/adt/timestamp.c:5564 #, c-format msgid "step size cannot equal zero" msgstr "Schrittgröße kann nicht gleich null sein" @@ -22527,7 +22582,7 @@ #: utils/adt/int8.c:1030 utils/adt/int8.c:1044 utils/adt/int8.c:1077 #: utils/adt/int8.c:1091 utils/adt/int8.c:1105 utils/adt/int8.c:1136 #: utils/adt/int8.c:1158 utils/adt/int8.c:1172 utils/adt/int8.c:1186 -#: utils/adt/int8.c:1348 utils/adt/int8.c:1383 utils/adt/numeric.c:3503 +#: utils/adt/int8.c:1348 utils/adt/int8.c:1383 utils/adt/numeric.c:3505 #: utils/adt/varbit.c:1662 #, c-format msgid "bigint out of range" @@ -23239,9 +23294,9 @@ msgid "step size cannot be NaN" msgstr "Schrittgröße kann nicht NaN sein" -#: utils/adt/numeric.c:2957 utils/adt/numeric.c:6059 utils/adt/numeric.c:6506 -#: utils/adt/numeric.c:8788 utils/adt/numeric.c:9266 utils/adt/numeric.c:9392 -#: utils/adt/numeric.c:9465 +#: utils/adt/numeric.c:2957 utils/adt/numeric.c:6060 utils/adt/numeric.c:6507 +#: utils/adt/numeric.c:8789 utils/adt/numeric.c:9276 utils/adt/numeric.c:9402 +#: utils/adt/numeric.c:9475 #, c-format msgid "value overflows numeric format" msgstr "Wert verursacht Überlauf im »numeric«-Format" @@ -23251,27 +23306,27 @@ msgid "cannot convert NaN to integer" msgstr "kann NaN nicht in integer umwandeln" -#: utils/adt/numeric.c:3495 +#: utils/adt/numeric.c:3497 #, c-format msgid "cannot convert NaN to bigint" msgstr "kann NaN nicht in bigint umwandeln" -#: utils/adt/numeric.c:3540 +#: utils/adt/numeric.c:3542 #, c-format msgid "cannot convert NaN to smallint" msgstr "kann NaN nicht in smallint umwandeln" -#: utils/adt/numeric.c:3577 utils/adt/numeric.c:3648 +#: utils/adt/numeric.c:3578 utils/adt/numeric.c:3649 #, c-format msgid "cannot convert infinity to numeric" msgstr "kann Unendlich nicht in numeric umwandeln" -#: utils/adt/numeric.c:6590 +#: utils/adt/numeric.c:6591 #, c-format msgid "numeric field overflow" msgstr "Feldüberlauf bei Typ »numeric«" -#: utils/adt/numeric.c:6591 +#: utils/adt/numeric.c:6592 #, c-format msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d." msgstr "Ein Feld mit Präzision %d, Skala %d muss beim Runden einen Betrag von weniger als %s%d ergeben." @@ -23541,7 +23596,7 @@ msgstr "es gibt mehrere Operatoren namens %s" #: utils/adt/regproc.c:697 utils/adt/regproc.c:738 utils/adt/regproc.c:2018 -#: utils/adt/ruleutils.c:9298 utils/adt/ruleutils.c:9467 +#: utils/adt/ruleutils.c:9314 utils/adt/ruleutils.c:9483 #, c-format msgid "too many arguments" msgstr "zu viele Argumente" @@ -23712,7 +23767,7 @@ msgid "cannot compare record types with different numbers of columns" msgstr "kann Record-Typen mit unterschiedlicher Anzahl Spalten nicht vergleichen" -#: utils/adt/ruleutils.c:4822 +#: utils/adt/ruleutils.c:4824 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "Regel »%s« hat nicht unterstützten Ereignistyp %d" @@ -23840,6 +23895,16 @@ msgid "interval units \"%s\" not recognized" msgstr "»interval«-Einheit »%s« nicht erkannt" +#: utils/adt/timestamp.c:5434 utils/adt/timestamp.c:5528 +#, c-format +msgid "start value cannot be infinity" +msgstr "Startwert kann nicht unendlich sein" + +#: utils/adt/timestamp.c:5439 utils/adt/timestamp.c:5533 +#, c-format +msgid "stop value cannot be infinity" +msgstr "Stoppwert kann nicht unendlich sein" + #: utils/adt/trigfuncs.c:42 #, c-format msgid "suppress_redundant_updates_trigger: must be called as trigger" @@ -23865,10 +23930,10 @@ msgid "gtsvector_in not implemented" msgstr "gtsvector_in ist nicht implementiert" -#: utils/adt/tsquery.c:200 +#: utils/adt/tsquery.c:200 utils/adt/tsquery_op.c:124 #, c-format -msgid "distance in phrase operator should not be greater than %d" -msgstr "Abstand im Phrasenoperator sollte nicht größer als %d sein" +msgid "distance in phrase operator must be an integer value between zero and %d inclusive" +msgstr "Abstand im Phrasenoperator muss eine ganze Zahl zwischen einschließlich null und %d sein" #: utils/adt/tsquery.c:310 utils/adt/tsquery.c:725 #: utils/adt/tsvector_parser.c:133 @@ -23911,11 +23976,6 @@ msgid "text-search query contains only stop words or doesn't contain lexemes, ignored" msgstr "Textsucheanfrage enthält nur Stoppwörter oder enthält keine Lexeme, ignoriert" -#: utils/adt/tsquery_op.c:124 -#, c-format -msgid "distance in phrase operator must be an integer value between zero and %d inclusive" -msgstr "Abstand im Phrasenoperator muss eine ganze Zahl zwischen einschließlich null und %d sein" - #: utils/adt/tsquery_rewrite.c:321 #, c-format msgid "ts_rewrite query must return two tsquery columns" @@ -24414,17 +24474,17 @@ msgid "cached plan must not change result type" msgstr "gecachter Plan darf den Ergebnistyp nicht ändern" -#: utils/cache/relcache.c:6101 +#: utils/cache/relcache.c:6204 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "konnte Initialisierungsdatei für Relationscache »%s« nicht erzeugen: %m" -#: utils/cache/relcache.c:6103 +#: utils/cache/relcache.c:6206 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Setze trotzdem fort, aber irgendwas stimmt nicht." -#: utils/cache/relcache.c:6425 +#: utils/cache/relcache.c:6528 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "konnte Cache-Datei »%s« nicht löschen: %m" @@ -24683,183 +24743,183 @@ msgid "could not determine row description for function returning record" msgstr "konnte Zeilenbeschreibung für Funktion, die »record« zurückgibt, nicht ermitteln" -#: utils/init/miscinit.c:285 +#: utils/init/miscinit.c:284 #, c-format msgid "data directory \"%s\" does not exist" msgstr "Datenverzeichnis »%s« existiert nicht" -#: utils/init/miscinit.c:290 +#: utils/init/miscinit.c:289 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "konnte Zugriffsrechte von Verzeichnis »%s« nicht lesen: %m" -#: utils/init/miscinit.c:298 +#: utils/init/miscinit.c:297 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "angegebenes Datenverzeichnis »%s« ist kein Verzeichnis" -#: utils/init/miscinit.c:314 +#: utils/init/miscinit.c:313 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "Datenverzeichnis »%s« hat falschen Eigentümer" -#: utils/init/miscinit.c:316 +#: utils/init/miscinit.c:315 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "Der Server muss von dem Benutzer gestartet werden, dem das Datenverzeichnis gehört." -#: utils/init/miscinit.c:334 +#: utils/init/miscinit.c:333 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "Datenverzeichnis »%s« hat ungültige Zugriffsrechte" -#: utils/init/miscinit.c:336 +#: utils/init/miscinit.c:335 #, c-format msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "Rechte sollten u=rwx (0700) oder u=rwx,g=rx (0750) sein." -#: utils/init/miscinit.c:615 utils/misc/guc.c:7139 +#: utils/init/miscinit.c:614 utils/misc/guc.c:7139 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "kann Parameter »%s« nicht in einer sicherheitsbeschränkten Operation setzen" -#: utils/init/miscinit.c:683 +#: utils/init/miscinit.c:682 #, c-format msgid "role with OID %u does not exist" msgstr "Rolle mit OID %u existiert nicht" -#: utils/init/miscinit.c:713 +#: utils/init/miscinit.c:712 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "Rolle »%s« hat keine Berechtigung zum Einloggen" -#: utils/init/miscinit.c:731 +#: utils/init/miscinit.c:730 #, c-format msgid "too many connections for role \"%s\"" msgstr "zu viele Verbindungen von Rolle »%s«" -#: utils/init/miscinit.c:791 +#: utils/init/miscinit.c:790 #, c-format msgid "permission denied to set session authorization" msgstr "keine Berechtigung, um Sitzungsautorisierung zu setzen" -#: utils/init/miscinit.c:874 +#: utils/init/miscinit.c:873 #, c-format msgid "invalid role OID: %u" msgstr "ungültige Rollen-OID: %u" -#: utils/init/miscinit.c:928 +#: utils/init/miscinit.c:927 #, c-format msgid "database system is shut down" msgstr "Datenbanksystem ist heruntergefahren" -#: utils/init/miscinit.c:1015 +#: utils/init/miscinit.c:1014 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "konnte Sperrdatei »%s« nicht erstellen: %m" -#: utils/init/miscinit.c:1029 +#: utils/init/miscinit.c:1028 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "konnte Sperrdatei »%s« nicht öffnen: %m" -#: utils/init/miscinit.c:1036 +#: utils/init/miscinit.c:1035 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "konnte Sperrdatei »%s« nicht lesen: %m" -#: utils/init/miscinit.c:1045 +#: utils/init/miscinit.c:1044 #, c-format msgid "lock file \"%s\" is empty" msgstr "Sperrdatei »%s« ist leer" -#: utils/init/miscinit.c:1046 +#: utils/init/miscinit.c:1045 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "Entweder startet gerade ein anderer Server oder die Sperrdatei ist von einen Absturz übrig geblieben." -#: utils/init/miscinit.c:1090 +#: utils/init/miscinit.c:1089 #, c-format msgid "lock file \"%s\" already exists" msgstr "Sperrdatei »%s« existiert bereits" -#: utils/init/miscinit.c:1094 +#: utils/init/miscinit.c:1093 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "Läuft bereits ein anderer postgres-Prozess (PID %d) im Datenverzeichnis »%s«?" -#: utils/init/miscinit.c:1096 +#: utils/init/miscinit.c:1095 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "Läuft bereits ein anderer postmaster-Prozess (PID %d) im Datenverzeichnis »%s«?" -#: utils/init/miscinit.c:1099 +#: utils/init/miscinit.c:1098 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Verwendet bereits ein anderer postgres-Prozess (PID %d) die Socketdatei »%s«?" -#: utils/init/miscinit.c:1101 +#: utils/init/miscinit.c:1100 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Verwendet bereits ein anderer postmaster-Prozess (PID %d) die Socketdatei »%s«?" -#: utils/init/miscinit.c:1152 +#: utils/init/miscinit.c:1151 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "konnte alte Sperrdatei »%s« nicht löschen: %m" -#: utils/init/miscinit.c:1154 +#: utils/init/miscinit.c:1153 #, c-format msgid "The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again." msgstr "Die Datei ist anscheinend aus Versehen übrig geblieben, konnte aber nicht gelöscht werden. Bitte entfernen Sie die Datei von Hand und versuchen Sie es erneut." -#: utils/init/miscinit.c:1191 utils/init/miscinit.c:1205 -#: utils/init/miscinit.c:1216 +#: utils/init/miscinit.c:1190 utils/init/miscinit.c:1204 +#: utils/init/miscinit.c:1215 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "konnte Sperrdatei »%s« nicht schreiben: %m" -#: utils/init/miscinit.c:1327 utils/init/miscinit.c:1469 utils/misc/guc.c:10066 +#: utils/init/miscinit.c:1326 utils/init/miscinit.c:1468 utils/misc/guc.c:10066 #, c-format msgid "could not read from file \"%s\": %m" msgstr "konnte nicht aus Datei »%s« lesen: %m" -#: utils/init/miscinit.c:1457 +#: utils/init/miscinit.c:1456 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "konnte Datei »%s« nicht öffnen: %m; setze trotzdem fort" -#: utils/init/miscinit.c:1482 +#: utils/init/miscinit.c:1481 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "Sperrdatei »%s« enthält falsche PID: %ld statt %ld" -#: utils/init/miscinit.c:1521 utils/init/miscinit.c:1537 +#: utils/init/miscinit.c:1520 utils/init/miscinit.c:1536 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "»%s« ist kein gültiges Datenverzeichnis" -#: utils/init/miscinit.c:1523 +#: utils/init/miscinit.c:1522 #, c-format msgid "File \"%s\" is missing." msgstr "Die Datei »%s« fehlt." -#: utils/init/miscinit.c:1539 +#: utils/init/miscinit.c:1538 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Die Datei »%s« enthält keine gültigen Daten." -#: utils/init/miscinit.c:1541 +#: utils/init/miscinit.c:1540 #, c-format msgid "You might need to initdb." msgstr "Sie müssen möglicherweise initdb ausführen." -#: utils/init/miscinit.c:1549 +#: utils/init/miscinit.c:1548 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "Das Datenverzeichnis wurde von PostgreSQL Version %s initialisiert, welche nicht mit dieser Version %s kompatibel ist." -#: utils/init/miscinit.c:1616 +#: utils/init/miscinit.c:1615 #, c-format msgid "loaded library \"%s\"" msgstr "Bibliothek »%s« geladen" @@ -27295,27 +27355,27 @@ msgid "closing existing cursor \"%s\"" msgstr "bestehender Cursor »%s« wird geschlossen" -#: utils/mmgr/portalmem.c:400 +#: utils/mmgr/portalmem.c:401 #, c-format msgid "portal \"%s\" cannot be run" msgstr "Portal »%s« kann nicht ausgeführt werden" -#: utils/mmgr/portalmem.c:478 +#: utils/mmgr/portalmem.c:479 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "gepinntes Portal »%s« kann nicht gelöscht werden" -#: utils/mmgr/portalmem.c:486 +#: utils/mmgr/portalmem.c:487 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "aktives Portal »%s« kann nicht gelöscht werden" -#: utils/mmgr/portalmem.c:736 +#: utils/mmgr/portalmem.c:738 #, c-format msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD" msgstr "PREPARE kann nicht in einer Transaktion ausgeführt werden, die einen Cursor mit WITH HOLD erzeugt hat" -#: utils/mmgr/portalmem.c:1275 +#: utils/mmgr/portalmem.c:1279 #, c-format msgid "cannot perform transaction commands inside a cursor loop that is not read-only" msgstr "in einer Cursor-Schleife, die nicht nur liest, können keine Transaktionsbefehle ausgeführt werden" @@ -27352,22 +27412,22 @@ msgid "could not read from shared tuplestore temporary file: read only %zu of %zu bytes" msgstr "konnte nicht aus temporärer Datei für Shared-Tuplestore lesen: es wurden nur %zu von %zu Bytes gelesen" -#: utils/sort/tuplesort.c:3140 +#: utils/sort/tuplesort.c:3142 #, c-format msgid "cannot have more than %d runs for an external sort" msgstr "ein externer Sortiervorgang kann nicht mehr als %d Durchgänge haben" -#: utils/sort/tuplesort.c:4221 +#: utils/sort/tuplesort.c:4223 #, c-format msgid "could not create unique index \"%s\"" msgstr "konnte Unique Index »%s« nicht erstellen" -#: utils/sort/tuplesort.c:4223 +#: utils/sort/tuplesort.c:4225 #, c-format msgid "Key %s is duplicated." msgstr "Schlüssel %s ist doppelt vorhanden." -#: utils/sort/tuplesort.c:4224 +#: utils/sort/tuplesort.c:4226 #, c-format msgid "Duplicate keys exist." msgstr "Es existieren doppelte Schlüssel." @@ -27387,55 +27447,52 @@ msgid "could not read from tuplestore temporary file: read only %zu of %zu bytes" msgstr "konnte nicht aus temporärer Datei für Tuplestore lesen: es wurden nur %zu von %zu Bytes gelesen" -#: utils/time/snapmgr.c:624 +#: utils/time/snapmgr.c:626 #, c-format msgid "The source transaction is not running anymore." msgstr "Die Quelltransaktion läuft nicht mehr." -#: utils/time/snapmgr.c:1232 +#: utils/time/snapmgr.c:1249 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "aus einer Subtransaktion kann kein Snapshot exportiert werden" -#: utils/time/snapmgr.c:1391 utils/time/snapmgr.c:1396 -#: utils/time/snapmgr.c:1401 utils/time/snapmgr.c:1416 -#: utils/time/snapmgr.c:1421 utils/time/snapmgr.c:1426 -#: utils/time/snapmgr.c:1441 utils/time/snapmgr.c:1446 -#: utils/time/snapmgr.c:1451 utils/time/snapmgr.c:1553 -#: utils/time/snapmgr.c:1569 utils/time/snapmgr.c:1594 +#: utils/time/snapmgr.c:1408 utils/time/snapmgr.c:1413 +#: utils/time/snapmgr.c:1418 utils/time/snapmgr.c:1433 +#: utils/time/snapmgr.c:1438 utils/time/snapmgr.c:1443 +#: utils/time/snapmgr.c:1458 utils/time/snapmgr.c:1463 +#: utils/time/snapmgr.c:1468 utils/time/snapmgr.c:1570 +#: utils/time/snapmgr.c:1586 utils/time/snapmgr.c:1611 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "ungültige Snapshot-Daten in Datei »%s«" -#: utils/time/snapmgr.c:1488 +#: utils/time/snapmgr.c:1505 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "SET TRANSACTION SNAPSHOT muss vor allen Anfragen aufgerufen werden" -#: utils/time/snapmgr.c:1497 +#: utils/time/snapmgr.c:1514 #, c-format msgid "a snapshot-importing transaction must have isolation level SERIALIZABLE or REPEATABLE READ" msgstr "eine Snapshot-importierende Transaktion muss Isolationsgrad SERIALIZABLE oder REPEATABLE READ haben" -#: utils/time/snapmgr.c:1506 utils/time/snapmgr.c:1515 +#: utils/time/snapmgr.c:1523 utils/time/snapmgr.c:1532 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "ungültiger Snapshot-Bezeichner: »%s«" -#: utils/time/snapmgr.c:1607 +#: utils/time/snapmgr.c:1624 #, c-format msgid "a serializable transaction cannot import a snapshot from a non-serializable transaction" msgstr "eine serialisierbare Transaktion kann keinen Snapshot aus einer nicht-serialisierbaren Transaktion importieren" -#: utils/time/snapmgr.c:1611 +#: utils/time/snapmgr.c:1628 #, c-format msgid "a non-read-only serializable transaction cannot import a snapshot from a read-only transaction" msgstr "eine serialisierbare Transaktion, die nicht im Read-Only-Modus ist, kann keinen Snapshot aus einer Read-Only-Transaktion importieren" -#: utils/time/snapmgr.c:1626 +#: utils/time/snapmgr.c:1643 #, c-format msgid "cannot import a snapshot from a different database" msgstr "kann keinen Snapshot aus einer anderen Datenbank importieren" - -#~ msgid "distance in phrase operator should be non-negative and less than %d" -#~ msgstr "Abstand im Phrasenoperator sollte nicht negativ und kleiner als %d sein" diff -Nru postgresql-13-13.4/src/backend/po/fr.po postgresql-13-13.7/src/backend/po/fr.po --- postgresql-13-13.4/src/backend/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 12\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-07-22 07:22+0000\n" -"PO-Revision-Date: 2021-07-23 13:15+0200\n" +"POT-Creation-Date: 2022-05-03 01:54+0000\n" +"PO-Revision-Date: 2022-05-03 15:19+0200\n" "Last-Translator: Christophe Courtois \n" "Language-Team: French \n" "Language: fr\n" @@ -17,7 +17,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.0.1\n" #: ../common/config_info.c:134 ../common/config_info.c:142 ../common/config_info.c:150 ../common/config_info.c:158 ../common/config_info.c:166 ../common/config_info.c:174 ../common/config_info.c:182 ../common/config_info.c:190 msgid "not recorded" @@ -28,26 +28,26 @@ msgid "could not open file \"%s\" for reading: %m" msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %m" -#: ../common/controldata_utils.c:86 ../common/controldata_utils.c:89 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1276 access/transam/xlog.c:3501 access/transam/xlog.c:4726 access/transam/xlog.c:11121 access/transam/xlog.c:11134 access/transam/xlog.c:11587 access/transam/xlog.c:11667 access/transam/xlog.c:11706 access/transam/xlog.c:11749 access/transam/xlogfuncs.c:662 access/transam/xlogfuncs.c:681 commands/extension.c:3454 libpq/hba.c:499 replication/logical/origin.c:717 replication/logical/origin.c:753 replication/logical/reorderbuffer.c:3624 replication/logical/snapbuild.c:1744 replication/logical/snapbuild.c:1786 -#: replication/logical/snapbuild.c:1814 replication/logical/snapbuild.c:1841 replication/slot.c:1709 replication/slot.c:1750 replication/walsender.c:547 storage/file/buffile.c:441 storage/file/copydir.c:195 utils/adt/genfile.c:200 utils/adt/misc.c:763 utils/cache/relmapper.c:744 +#: ../common/controldata_utils.c:86 ../common/controldata_utils.c:89 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1334 access/transam/xlog.c:3525 access/transam/xlog.c:4763 access/transam/xlog.c:11297 access/transam/xlog.c:11310 access/transam/xlog.c:11763 access/transam/xlog.c:11843 access/transam/xlog.c:11882 access/transam/xlog.c:11925 access/transam/xlogfuncs.c:662 access/transam/xlogfuncs.c:681 commands/extension.c:3454 libpq/hba.c:499 replication/logical/origin.c:717 replication/logical/origin.c:753 replication/logical/reorderbuffer.c:3633 replication/logical/snapbuild.c:1760 replication/logical/snapbuild.c:1802 +#: replication/logical/snapbuild.c:1830 replication/logical/snapbuild.c:1857 replication/slot.c:1709 replication/slot.c:1750 replication/walsender.c:547 storage/file/buffile.c:441 storage/file/copydir.c:195 utils/adt/genfile.c:200 utils/adt/misc.c:763 utils/cache/relmapper.c:744 #, c-format msgid "could not read file \"%s\": %m" msgstr "n'a pas pu lire le fichier « %s » : %m" -#: ../common/controldata_utils.c:97 ../common/controldata_utils.c:101 access/transam/twophase.c:1279 access/transam/xlog.c:3506 access/transam/xlog.c:4731 replication/logical/origin.c:722 replication/logical/origin.c:761 replication/logical/snapbuild.c:1749 replication/logical/snapbuild.c:1791 replication/logical/snapbuild.c:1819 replication/logical/snapbuild.c:1846 replication/slot.c:1713 replication/slot.c:1754 replication/walsender.c:552 utils/cache/relmapper.c:748 +#: ../common/controldata_utils.c:97 ../common/controldata_utils.c:101 access/transam/twophase.c:1337 access/transam/xlog.c:3530 access/transam/xlog.c:4768 replication/logical/origin.c:722 replication/logical/origin.c:761 replication/logical/snapbuild.c:1765 replication/logical/snapbuild.c:1807 replication/logical/snapbuild.c:1835 replication/logical/snapbuild.c:1862 replication/slot.c:1713 replication/slot.c:1754 replication/walsender.c:552 utils/cache/relmapper.c:748 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %zu" -#: ../common/controldata_utils.c:112 ../common/controldata_utils.c:117 ../common/controldata_utils.c:256 ../common/controldata_utils.c:259 access/heap/rewriteheap.c:1185 access/heap/rewriteheap.c:1288 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:516 access/transam/twophase.c:1288 access/transam/twophase.c:1689 access/transam/xlog.c:3373 access/transam/xlog.c:3541 access/transam/xlog.c:3546 access/transam/xlog.c:3874 access/transam/xlog.c:4696 access/transam/xlog.c:5620 access/transam/xlogfuncs.c:687 commands/copy.c:1810 libpq/be-fsstubs.c:462 libpq/be-fsstubs.c:533 replication/logical/origin.c:655 replication/logical/origin.c:794 -#: replication/logical/reorderbuffer.c:3682 replication/logical/snapbuild.c:1653 replication/logical/snapbuild.c:1854 replication/slot.c:1600 replication/slot.c:1761 replication/walsender.c:562 storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:704 storage/file/fd.c:3439 storage/file/fd.c:3542 utils/cache/relmapper.c:759 utils/cache/relmapper.c:898 +#: ../common/controldata_utils.c:112 ../common/controldata_utils.c:117 ../common/controldata_utils.c:256 ../common/controldata_utils.c:259 access/heap/rewriteheap.c:1185 access/heap/rewriteheap.c:1288 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:516 access/transam/twophase.c:1346 access/transam/twophase.c:1757 access/transam/xlog.c:3397 access/transam/xlog.c:3565 access/transam/xlog.c:3570 access/transam/xlog.c:3898 access/transam/xlog.c:4733 access/transam/xlog.c:5657 access/transam/xlogfuncs.c:687 commands/copy.c:1810 libpq/be-fsstubs.c:455 libpq/be-fsstubs.c:525 replication/logical/origin.c:655 replication/logical/origin.c:794 +#: replication/logical/reorderbuffer.c:3691 replication/logical/snapbuild.c:1669 replication/logical/snapbuild.c:1870 replication/slot.c:1600 replication/slot.c:1761 replication/walsender.c:562 storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:704 storage/file/fd.c:3439 storage/file/fd.c:3542 utils/cache/relmapper.c:759 utils/cache/relmapper.c:898 #, c-format msgid "could not close file \"%s\": %m" msgstr "n'a pas pu fermer le fichier « %s » : %m" #: ../common/controldata_utils.c:135 msgid "byte ordering mismatch" -msgstr "incohérence dans l'ordre des octets" +msgstr "différence de l'ordre des octets" #: ../common/controldata_utils.c:137 #, c-format @@ -63,60 +63,60 @@ "résultats ci-dessous sont incorrects, et l'installation de PostgreSQL\n" "est incompatible avec ce répertoire des données." -#: ../common/controldata_utils.c:197 ../common/controldata_utils.c:203 ../common/file_utils.c:224 ../common/file_utils.c:283 ../common/file_utils.c:357 access/heap/rewriteheap.c:1271 access/transam/timeline.c:111 access/transam/timeline.c:251 access/transam/timeline.c:348 access/transam/twophase.c:1232 access/transam/xlog.c:3275 access/transam/xlog.c:3415 access/transam/xlog.c:3456 access/transam/xlog.c:3654 access/transam/xlog.c:3739 access/transam/xlog.c:3842 access/transam/xlog.c:4716 access/transam/xlogutils.c:807 postmaster/syslogger.c:1488 replication/basebackup.c:621 replication/basebackup.c:1593 replication/logical/origin.c:707 replication/logical/reorderbuffer.c:2487 -#: replication/logical/reorderbuffer.c:2849 replication/logical/reorderbuffer.c:3604 replication/logical/snapbuild.c:1608 replication/logical/snapbuild.c:1715 replication/slot.c:1681 replication/walsender.c:520 replication/walsender.c:2515 storage/file/copydir.c:161 storage/file/fd.c:679 storage/file/fd.c:3426 storage/file/fd.c:3513 storage/smgr/md.c:513 utils/cache/relmapper.c:724 utils/cache/relmapper.c:842 utils/error/elog.c:1858 utils/init/miscinit.c:1316 utils/init/miscinit.c:1450 utils/init/miscinit.c:1527 utils/misc/guc.c:8280 utils/misc/guc.c:8312 +#: ../common/controldata_utils.c:197 ../common/controldata_utils.c:203 ../common/file_utils.c:224 ../common/file_utils.c:283 ../common/file_utils.c:357 access/heap/rewriteheap.c:1271 access/transam/timeline.c:111 access/transam/timeline.c:251 access/transam/timeline.c:348 access/transam/twophase.c:1290 access/transam/xlog.c:3299 access/transam/xlog.c:3439 access/transam/xlog.c:3480 access/transam/xlog.c:3678 access/transam/xlog.c:3763 access/transam/xlog.c:3866 access/transam/xlog.c:4753 access/transam/xlogutils.c:807 postmaster/syslogger.c:1488 replication/basebackup.c:621 replication/basebackup.c:1593 replication/logical/origin.c:707 replication/logical/reorderbuffer.c:2486 +#: replication/logical/reorderbuffer.c:2848 replication/logical/reorderbuffer.c:3613 replication/logical/snapbuild.c:1624 replication/logical/snapbuild.c:1731 replication/slot.c:1681 replication/walsender.c:520 replication/walsender.c:2524 storage/file/copydir.c:161 storage/file/fd.c:679 storage/file/fd.c:3426 storage/file/fd.c:3513 storage/smgr/md.c:514 utils/cache/relmapper.c:724 utils/cache/relmapper.c:842 utils/error/elog.c:1858 utils/init/miscinit.c:1315 utils/init/miscinit.c:1449 utils/init/miscinit.c:1526 utils/misc/guc.c:8280 utils/misc/guc.c:8312 #, c-format msgid "could not open file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier « %s » : %m" -#: ../common/controldata_utils.c:221 ../common/controldata_utils.c:224 access/transam/twophase.c:1662 access/transam/twophase.c:1671 access/transam/xlog.c:10878 access/transam/xlog.c:10916 access/transam/xlog.c:11329 access/transam/xlogfuncs.c:741 postmaster/syslogger.c:1499 postmaster/syslogger.c:1512 utils/cache/relmapper.c:876 +#: ../common/controldata_utils.c:221 ../common/controldata_utils.c:224 access/transam/twophase.c:1730 access/transam/twophase.c:1739 access/transam/xlog.c:11054 access/transam/xlog.c:11092 access/transam/xlog.c:11505 access/transam/xlogfuncs.c:741 postmaster/syslogger.c:1499 postmaster/syslogger.c:1512 utils/cache/relmapper.c:876 #, c-format msgid "could not write file \"%s\": %m" msgstr "impossible d'écrire le fichier « %s » : %m" -#: ../common/controldata_utils.c:239 ../common/controldata_utils.c:245 ../common/file_utils.c:295 ../common/file_utils.c:365 access/heap/rewriteheap.c:965 access/heap/rewriteheap.c:1179 access/heap/rewriteheap.c:1282 access/transam/timeline.c:432 access/transam/timeline.c:510 access/transam/twophase.c:1683 access/transam/xlog.c:3366 access/transam/xlog.c:3535 access/transam/xlog.c:4689 access/transam/xlog.c:10386 access/transam/xlog.c:10413 replication/logical/snapbuild.c:1646 replication/slot.c:1586 replication/slot.c:1691 storage/file/fd.c:696 storage/file/fd.c:3534 storage/smgr/md.c:959 storage/smgr/md.c:1000 storage/sync/sync.c:396 utils/cache/relmapper.c:891 +#: ../common/controldata_utils.c:239 ../common/controldata_utils.c:245 ../common/file_utils.c:295 ../common/file_utils.c:365 access/heap/rewriteheap.c:965 access/heap/rewriteheap.c:1179 access/heap/rewriteheap.c:1282 access/transam/timeline.c:432 access/transam/timeline.c:510 access/transam/twophase.c:1751 access/transam/xlog.c:3390 access/transam/xlog.c:3559 access/transam/xlog.c:4726 access/transam/xlog.c:10562 access/transam/xlog.c:10589 replication/logical/snapbuild.c:1662 replication/slot.c:1586 replication/slot.c:1691 storage/file/fd.c:696 storage/file/fd.c:3534 storage/smgr/md.c:960 storage/smgr/md.c:1001 storage/sync/sync.c:433 utils/cache/relmapper.c:891 #: utils/misc/guc.c:8063 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" -#: ../common/exec.c:137 ../common/exec.c:254 ../common/exec.c:300 +#: ../common/exec.c:142 ../common/exec.c:259 ../common/exec.c:305 #, c-format msgid "could not identify current directory: %m" msgstr "n'a pas pu identifier le répertoire courant : %m" -#: ../common/exec.c:156 +#: ../common/exec.c:161 #, c-format msgid "invalid binary \"%s\"" msgstr "binaire « %s » invalide" -#: ../common/exec.c:206 +#: ../common/exec.c:211 #, c-format msgid "could not read binary \"%s\"" msgstr "n'a pas pu lire le binaire « %s »" -#: ../common/exec.c:214 +#: ../common/exec.c:219 #, c-format msgid "could not find a \"%s\" to execute" msgstr "n'a pas pu trouver un « %s » à exécuter" -#: ../common/exec.c:270 ../common/exec.c:309 utils/init/miscinit.c:395 +#: ../common/exec.c:275 ../common/exec.c:314 utils/init/miscinit.c:394 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "n'a pas pu modifier le répertoire par « %s » : %m" -#: ../common/exec.c:287 access/transam/xlog.c:10750 replication/basebackup.c:1418 utils/adt/misc.c:337 +#: ../common/exec.c:292 access/transam/xlog.c:10926 replication/basebackup.c:1418 utils/adt/misc.c:337 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "n'a pas pu lire le lien symbolique « %s » : %m" -#: ../common/exec.c:410 +#: ../common/exec.c:415 #, c-format msgid "pclose failed: %m" msgstr "échec de pclose : %m" -#: ../common/exec.c:539 ../common/exec.c:584 ../common/exec.c:676 ../common/psprintf.c:143 ../common/stringinfo.c:305 ../port/path.c:630 ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1346 access/transam/xlog.c:6485 lib/dshash.c:246 libpq/auth.c:1478 libpq/auth.c:1546 libpq/auth.c:2076 libpq/be-secure-gssapi.c:520 postmaster/bgworker.c:349 postmaster/bgworker.c:963 postmaster/postmaster.c:2519 postmaster/postmaster.c:4156 postmaster/postmaster.c:4858 postmaster/postmaster.c:5615 postmaster/postmaster.c:5975 replication/libpqwalreceiver/libpqwalreceiver.c:282 replication/logical/logical.c:176 replication/walsender.c:594 storage/buffer/localbuf.c:442 -#: storage/file/fd.c:848 storage/file/fd.c:1318 storage/file/fd.c:1479 storage/file/fd.c:2284 storage/ipc/procarray.c:1045 storage/ipc/procarray.c:1541 storage/ipc/procarray.c:1548 storage/ipc/procarray.c:1972 storage/ipc/procarray.c:2597 utils/adt/cryptohashes.c:45 utils/adt/cryptohashes.c:65 utils/adt/formatting.c:1700 utils/adt/formatting.c:1824 utils/adt/formatting.c:1949 utils/adt/pg_locale.c:484 utils/adt/pg_locale.c:648 utils/adt/regexp.c:223 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:450 utils/hash/dynahash.c:559 utils/hash/dynahash.c:1071 utils/mb/mbutils.c:401 utils/mb/mbutils.c:428 utils/mb/mbutils.c:757 utils/mb/mbutils.c:783 utils/misc/guc.c:4846 +#: ../common/exec.c:544 ../common/exec.c:589 ../common/exec.c:681 ../common/psprintf.c:143 ../common/stringinfo.c:305 ../port/path.c:630 ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1404 access/transam/xlog.c:6531 lib/dshash.c:246 libpq/auth.c:1478 libpq/auth.c:1546 libpq/auth.c:2076 libpq/be-secure-gssapi.c:520 postmaster/bgworker.c:349 postmaster/bgworker.c:963 postmaster/postmaster.c:2543 postmaster/postmaster.c:4180 postmaster/postmaster.c:4882 postmaster/postmaster.c:5639 postmaster/postmaster.c:5999 replication/libpqwalreceiver/libpqwalreceiver.c:282 replication/logical/logical.c:176 replication/walsender.c:594 storage/buffer/localbuf.c:442 +#: storage/file/fd.c:848 storage/file/fd.c:1318 storage/file/fd.c:1479 storage/file/fd.c:2284 storage/ipc/procarray.c:1063 storage/ipc/procarray.c:1559 storage/ipc/procarray.c:1566 storage/ipc/procarray.c:2002 storage/ipc/procarray.c:2680 utils/adt/cryptohashes.c:45 utils/adt/cryptohashes.c:65 utils/adt/formatting.c:1700 utils/adt/formatting.c:1824 utils/adt/formatting.c:1949 utils/adt/pg_locale.c:484 utils/adt/pg_locale.c:648 utils/adt/regexp.c:223 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:450 utils/hash/dynahash.c:559 utils/hash/dynahash.c:1071 utils/mb/mbutils.c:401 utils/mb/mbutils.c:428 utils/mb/mbutils.c:757 utils/mb/mbutils.c:783 utils/misc/guc.c:4846 #: utils/misc/guc.c:4862 utils/misc/guc.c:4875 utils/misc/guc.c:8041 utils/misc/tzparser.c:467 utils/mmgr/aset.c:475 utils/mmgr/dsa.c:701 utils/mmgr/dsa.c:723 utils/mmgr/dsa.c:804 utils/mmgr/generation.c:233 utils/mmgr/mcxt.c:821 utils/mmgr/mcxt.c:857 utils/mmgr/mcxt.c:895 utils/mmgr/mcxt.c:933 utils/mmgr/mcxt.c:969 utils/mmgr/mcxt.c:1000 utils/mmgr/mcxt.c:1036 utils/mmgr/mcxt.c:1088 utils/mmgr/mcxt.c:1123 utils/mmgr/mcxt.c:1158 utils/mmgr/slab.c:235 #, c-format msgid "out of memory" @@ -132,13 +132,13 @@ msgid "cannot duplicate null pointer (internal error)\n" msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" -#: ../common/file_utils.c:79 ../common/file_utils.c:181 access/transam/twophase.c:1244 access/transam/xlog.c:10854 access/transam/xlog.c:10892 access/transam/xlog.c:11109 access/transam/xlogarchive.c:110 access/transam/xlogarchive.c:226 commands/copy.c:1938 commands/copy.c:3506 commands/extension.c:3433 commands/tablespace.c:807 commands/tablespace.c:898 guc-file.l:1061 replication/basebackup.c:444 replication/basebackup.c:627 replication/basebackup.c:700 replication/logical/snapbuild.c:1522 storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1830 storage/file/fd.c:3110 storage/file/fd.c:3292 storage/file/fd.c:3378 utils/adt/dbsize.c:70 utils/adt/dbsize.c:222 +#: ../common/file_utils.c:79 ../common/file_utils.c:181 access/transam/twophase.c:1302 access/transam/xlog.c:11030 access/transam/xlog.c:11068 access/transam/xlog.c:11285 access/transam/xlogarchive.c:110 access/transam/xlogarchive.c:226 commands/copy.c:1938 commands/copy.c:3506 commands/extension.c:3433 commands/tablespace.c:803 commands/tablespace.c:894 guc-file.l:1063 replication/basebackup.c:444 replication/basebackup.c:627 replication/basebackup.c:700 replication/logical/snapbuild.c:1538 storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1830 storage/file/fd.c:3110 storage/file/fd.c:3292 storage/file/fd.c:3378 utils/adt/dbsize.c:70 utils/adt/dbsize.c:222 #: utils/adt/dbsize.c:302 utils/adt/genfile.c:416 utils/adt/genfile.c:642 #, c-format msgid "could not stat file \"%s\": %m" msgstr "n'a pas pu tester le fichier « %s » : %m" -#: ../common/file_utils.c:158 ../common/pgfnames.c:48 commands/tablespace.c:730 commands/tablespace.c:740 postmaster/postmaster.c:1509 storage/file/fd.c:2687 storage/file/reinit.c:122 utils/adt/misc.c:259 utils/misc/tzparser.c:338 +#: ../common/file_utils.c:158 ../common/pgfnames.c:48 commands/tablespace.c:726 commands/tablespace.c:736 postmaster/postmaster.c:1509 storage/file/fd.c:2687 storage/file/reinit.c:122 utils/adt/misc.c:259 utils/misc/tzparser.c:338 #, c-format msgid "could not open directory \"%s\": %m" msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" @@ -148,7 +148,7 @@ msgid "could not read directory \"%s\": %m" msgstr "n'a pas pu lire le répertoire « %s » : %m" -#: ../common/file_utils.c:375 access/transam/xlogarchive.c:411 postmaster/syslogger.c:1523 replication/logical/snapbuild.c:1665 replication/slot.c:650 replication/slot.c:1472 replication/slot.c:1614 storage/file/fd.c:714 storage/file/fd.c:812 utils/time/snapmgr.c:1350 +#: ../common/file_utils.c:375 access/transam/xlogarchive.c:411 postmaster/syslogger.c:1523 replication/logical/snapbuild.c:1681 replication/slot.c:650 replication/slot.c:1472 replication/slot.c:1614 storage/file/fd.c:714 storage/file/fd.c:812 utils/time/snapmgr.c:1367 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" @@ -469,7 +469,7 @@ msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "requête de résumé d'intervalle BRIN pour la page « %s » de l'index « %u » n'a pas été enregistrée" -#: access/brin/brin.c:873 access/brin/brin.c:950 access/gin/ginfast.c:1035 access/transam/xlog.c:10522 access/transam/xlog.c:11060 access/transam/xlogfuncs.c:274 access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:340 access/transam/xlogfuncs.c:361 access/transam/xlogfuncs.c:382 access/transam/xlogfuncs.c:452 access/transam/xlogfuncs.c:509 +#: access/brin/brin.c:873 access/brin/brin.c:950 access/gin/ginfast.c:1035 access/transam/xlog.c:10698 access/transam/xlog.c:11236 access/transam/xlogfuncs.c:274 access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:340 access/transam/xlogfuncs.c:361 access/transam/xlogfuncs.c:382 access/transam/xlogfuncs.c:452 access/transam/xlogfuncs.c:509 #, c-format msgid "recovery is in progress" msgstr "restauration en cours" @@ -804,12 +804,12 @@ "la famille d'opérateur « %s » de la méthode d'accès %s contient la spécification opfamily ORDER BY\n" "incorrecte pour l'opérateur %s" -#: access/hash/hashfunc.c:255 access/hash/hashfunc.c:311 utils/adt/varchar.c:993 utils/adt/varchar.c:1053 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 utils/adt/varchar.c:993 utils/adt/varchar.c:1053 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "n'a pas pu déterminer le collationnement à utiliser pour le hachage de chaîne" -#: access/hash/hashfunc.c:256 access/hash/hashfunc.c:312 catalog/heap.c:711 catalog/heap.c:717 commands/createas.c:206 commands/createas.c:489 commands/indexcmds.c:1816 commands/tablecmds.c:16250 commands/view.c:86 parser/parse_utilcmd.c:4238 regex/regc_pg_locale.c:263 utils/adt/formatting.c:1667 utils/adt/formatting.c:1791 utils/adt/formatting.c:1916 utils/adt/like.c:194 utils/adt/like_support.c:1003 utils/adt/varchar.c:733 utils/adt/varchar.c:994 utils/adt/varchar.c:1054 utils/adt/varlena.c:1486 +#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:335 catalog/heap.c:711 catalog/heap.c:717 commands/createas.c:206 commands/createas.c:489 commands/indexcmds.c:1816 commands/tablecmds.c:16358 commands/view.c:86 parser/parse_utilcmd.c:4239 regex/regc_pg_locale.c:263 utils/adt/formatting.c:1667 utils/adt/formatting.c:1791 utils/adt/formatting.c:1916 utils/adt/like.c:194 utils/adt/like_support.c:1003 utils/adt/varchar.c:733 utils/adt/varchar.c:994 utils/adt/varchar.c:1054 utils/adt/varlena.c:1486 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "Utilisez la clause COLLARE pour configurer explicitement le collationnement." @@ -861,32 +861,32 @@ msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "il manque un opérateur inter-type pour la famille d'opérateur « %s » de la méthode d'accès %s" -#: access/heap/heapam.c:2040 +#: access/heap/heapam.c:2068 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "ne peut pas insérer de lignes dans un processus parallèle" -#: access/heap/heapam.c:2458 +#: access/heap/heapam.c:2486 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "ne peut pas supprimer les lignes lors d'une opération parallèle" -#: access/heap/heapam.c:2504 +#: access/heap/heapam.c:2532 #, c-format msgid "attempted to delete invisible tuple" msgstr "tentative de supprimer une ligne invisible" -#: access/heap/heapam.c:2934 access/heap/heapam.c:5734 +#: access/heap/heapam.c:2963 access/heap/heapam.c:5822 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "ne peut pas mettre à jour les lignes lors d'une opération parallèle" -#: access/heap/heapam.c:3067 +#: access/heap/heapam.c:3104 #, c-format msgid "attempted to update invisible tuple" msgstr "tentative de mettre à jour une ligne invisible" -#: access/heap/heapam.c:4389 access/heap/heapam.c:4427 access/heap/heapam.c:4684 access/heap/heapam_handler.c:450 +#: access/heap/heapam.c:4468 access/heap/heapam.c:4506 access/heap/heapam.c:4772 access/heap/heapam_handler.c:455 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "n'a pas pu obtenir un verrou sur la relation « %s »" @@ -906,7 +906,7 @@ msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "n'a pas pu écrire le fichier « %s », a écrit %d de %d : %m" -#: access/heap/rewriteheap.c:1019 access/heap/rewriteheap.c:1138 access/transam/timeline.c:329 access/transam/timeline.c:485 access/transam/xlog.c:3298 access/transam/xlog.c:3470 access/transam/xlog.c:4668 access/transam/xlog.c:10869 access/transam/xlog.c:10907 access/transam/xlog.c:11312 access/transam/xlogfuncs.c:735 postmaster/postmaster.c:4619 replication/logical/origin.c:575 replication/slot.c:1533 storage/file/copydir.c:167 storage/smgr/md.c:218 utils/time/snapmgr.c:1329 +#: access/heap/rewriteheap.c:1019 access/heap/rewriteheap.c:1138 access/transam/timeline.c:329 access/transam/timeline.c:485 access/transam/xlog.c:3322 access/transam/xlog.c:3494 access/transam/xlog.c:4705 access/transam/xlog.c:11045 access/transam/xlog.c:11083 access/transam/xlog.c:11488 access/transam/xlogfuncs.c:735 postmaster/postmaster.c:4643 replication/logical/origin.c:575 replication/slot.c:1533 storage/file/copydir.c:167 storage/smgr/md.c:218 utils/time/snapmgr.c:1346 #, c-format msgid "could not create file \"%s\": %m" msgstr "n'a pas pu créer le fichier « %s » : %m" @@ -916,13 +916,13 @@ msgid "could not truncate file \"%s\" to %u: %m" msgstr "n'a pas pu tronquer le fichier « %s » en %u : %m" -#: access/heap/rewriteheap.c:1166 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:502 access/transam/xlog.c:3354 access/transam/xlog.c:3526 access/transam/xlog.c:4680 postmaster/postmaster.c:4629 postmaster/postmaster.c:4639 replication/logical/origin.c:587 replication/logical/origin.c:629 replication/logical/origin.c:648 replication/logical/snapbuild.c:1622 replication/slot.c:1568 storage/file/buffile.c:502 storage/file/copydir.c:207 utils/init/miscinit.c:1391 utils/init/miscinit.c:1402 utils/init/miscinit.c:1410 utils/misc/guc.c:8024 utils/misc/guc.c:8055 utils/misc/guc.c:9975 utils/misc/guc.c:9989 utils/time/snapmgr.c:1334 -#: utils/time/snapmgr.c:1341 +#: access/heap/rewriteheap.c:1166 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:502 access/transam/xlog.c:3378 access/transam/xlog.c:3550 access/transam/xlog.c:4717 postmaster/postmaster.c:4653 postmaster/postmaster.c:4663 replication/logical/origin.c:587 replication/logical/origin.c:629 replication/logical/origin.c:648 replication/logical/snapbuild.c:1638 replication/slot.c:1568 storage/file/buffile.c:502 storage/file/copydir.c:207 utils/init/miscinit.c:1390 utils/init/miscinit.c:1401 utils/init/miscinit.c:1409 utils/misc/guc.c:8024 utils/misc/guc.c:8055 utils/misc/guc.c:9975 utils/misc/guc.c:9989 utils/time/snapmgr.c:1351 +#: utils/time/snapmgr.c:1358 #, c-format msgid "could not write to file \"%s\": %m" msgstr "n'a pas pu écrire dans le fichier « %s » : %m" -#: access/heap/rewriteheap.c:1256 access/transam/twophase.c:1622 access/transam/xlogarchive.c:118 access/transam/xlogarchive.c:421 postmaster/postmaster.c:1092 postmaster/syslogger.c:1465 replication/logical/origin.c:563 replication/logical/reorderbuffer.c:3104 replication/logical/snapbuild.c:1564 replication/logical/snapbuild.c:2009 replication/slot.c:1665 storage/file/fd.c:754 storage/file/fd.c:3130 storage/file/fd.c:3192 storage/file/reinit.c:255 storage/ipc/dsm.c:302 storage/smgr/md.c:355 storage/smgr/md.c:405 storage/sync/sync.c:210 utils/time/snapmgr.c:1674 +#: access/heap/rewriteheap.c:1256 access/transam/twophase.c:1690 access/transam/xlogarchive.c:118 access/transam/xlogarchive.c:421 postmaster/postmaster.c:1092 postmaster/syslogger.c:1465 replication/logical/origin.c:563 replication/logical/reorderbuffer.c:3104 replication/logical/snapbuild.c:1580 replication/logical/snapbuild.c:2025 replication/slot.c:1665 storage/file/fd.c:754 storage/file/fd.c:3130 storage/file/fd.c:3192 storage/file/reinit.c:255 storage/ipc/dsm.c:302 storage/smgr/md.c:355 storage/smgr/md.c:405 storage/sync/sync.c:229 utils/time/snapmgr.c:1691 #, c-format msgid "could not remove file \"%s\": %m" msgstr "n'a pas pu supprimer le fichier « %s » : %m" @@ -1093,37 +1093,37 @@ msgid "\"%s\": suspending truncate due to conflicting lock request" msgstr "« %s » : mis en suspens du TRUNCATE à cause d'un conflit dans la demande de verrou" -#: access/heap/vacuumlazy.c:3586 +#: access/heap/vacuumlazy.c:3592 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "lors du parcours du bloc %u de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3589 +#: access/heap/vacuumlazy.c:3595 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "lors du parcours de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3595 +#: access/heap/vacuumlazy.c:3601 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "lors du VACUUM du bloc %u de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3598 +#: access/heap/vacuumlazy.c:3604 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "lors du vacuum de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3603 +#: access/heap/vacuumlazy.c:3609 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "lors du nettoyage de l'index « %s » dans la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3608 +#: access/heap/vacuumlazy.c:3614 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "lors du nettoyage de l'index « %s » dans la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3614 +#: access/heap/vacuumlazy.c:3620 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "lors du tronquage de la relation « %s.%s » à %u blocs" @@ -1138,7 +1138,7 @@ msgid "index access method \"%s\" does not have a handler" msgstr "la méthode d'accès « %s » n'a pas de handler" -#: access/index/indexam.c:142 catalog/objectaddress.c:1260 commands/indexcmds.c:2518 commands/tablecmds.c:254 commands/tablecmds.c:278 commands/tablecmds.c:15948 commands/tablecmds.c:17403 +#: access/index/indexam.c:142 catalog/objectaddress.c:1260 commands/indexcmds.c:2518 commands/tablecmds.c:254 commands/tablecmds.c:278 commands/tablecmds.c:16056 commands/tablecmds.c:17546 #, c-format msgid "\"%s\" is not an index" msgstr "« %s » n'est pas un index" @@ -1233,7 +1233,7 @@ msgid "\"%s\" is an index" msgstr "« %s » est un index" -#: access/table/table.c:54 access/table/table.c:83 access/table/table.c:116 catalog/aclchk.c:1816 commands/tablecmds.c:12705 commands/tablecmds.c:15957 +#: access/table/table.c:54 access/table/table.c:83 access/table/table.c:116 catalog/aclchk.c:1816 commands/tablecmds.c:12807 commands/tablecmds.c:16065 #, c-format msgid "\"%s\" is a composite type" msgstr "« %s » est un type composite" @@ -1268,22 +1268,22 @@ msgid "sample percentage must be between 0 and 100" msgstr "le pourcentage de l'échantillonnage doit être compris entre 0 et 100" -#: access/transam/commit_ts.c:295 +#: access/transam/commit_ts.c:297 #, c-format msgid "cannot retrieve commit timestamp for transaction %u" msgstr "ne peut pas récupérer l'horodatage de la validation pour la transaction %u" -#: access/transam/commit_ts.c:393 +#: access/transam/commit_ts.c:395 #, c-format msgid "could not get commit timestamp data" msgstr "n'a pas pu récupérer les données d'horodatage de la validation" -#: access/transam/commit_ts.c:395 +#: access/transam/commit_ts.c:397 #, c-format msgid "Make sure the configuration parameter \"%s\" is set on the master server." msgstr "Assurez-vous que le paramètre de configuration « %s » soit configuré sur le serveur primaire." -#: access/transam/commit_ts.c:397 +#: access/transam/commit_ts.c:399 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Assurez-vous que le paramètre de configuration « %s » soit configuré." @@ -1412,36 +1412,36 @@ msgid "invalid MultiXactId: %u" msgstr "MultiXactId invalide : %u" -#: access/transam/parallel.c:706 access/transam/parallel.c:825 +#: access/transam/parallel.c:717 access/transam/parallel.c:836 #, c-format msgid "parallel worker failed to initialize" msgstr "échec de l'initialisation du worker parallèle" -#: access/transam/parallel.c:707 access/transam/parallel.c:826 +#: access/transam/parallel.c:718 access/transam/parallel.c:837 #, c-format msgid "More details may be available in the server log." msgstr "Plus de détails sont disponibles dans les traces du serveur." -#: access/transam/parallel.c:887 +#: access/transam/parallel.c:898 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster a quitté pendant une transaction parallèle" -#: access/transam/parallel.c:1074 +#: access/transam/parallel.c:1085 #, c-format msgid "lost connection to parallel worker" msgstr "perte de la connexion au processus parallèle" -#: access/transam/parallel.c:1140 access/transam/parallel.c:1142 +#: access/transam/parallel.c:1151 access/transam/parallel.c:1153 msgid "parallel worker" msgstr "processus parallèle" -#: access/transam/parallel.c:1293 +#: access/transam/parallel.c:1306 #, c-format msgid "could not map dynamic shared memory segment" msgstr "n'a pas pu mapper le segment de mémoire partagée dynamique" -#: access/transam/parallel.c:1298 +#: access/transam/parallel.c:1311 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "numéro magique invalide dans le segment de mémoire partagée dynamique" @@ -1568,142 +1568,147 @@ msgid "transaction identifier \"%s\" is already in use" msgstr "l'identifiant de la transaction « %s » est déjà utilisé" -#: access/transam/twophase.c:417 access/transam/twophase.c:2381 +#: access/transam/twophase.c:417 access/transam/twophase.c:2450 #, c-format msgid "maximum number of prepared transactions reached" msgstr "nombre maximum de transactions préparées obtenu" -#: access/transam/twophase.c:418 access/transam/twophase.c:2382 +#: access/transam/twophase.c:418 access/transam/twophase.c:2451 #, c-format msgid "Increase max_prepared_transactions (currently %d)." msgstr "Augmentez max_prepared_transactions (actuellement %d)." -#: access/transam/twophase.c:586 +#: access/transam/twophase.c:597 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "la transaction préparée d'identifiant « %s » est occupée" -#: access/transam/twophase.c:592 +#: access/transam/twophase.c:603 #, c-format msgid "permission denied to finish prepared transaction" msgstr "droit refusé pour terminer la transaction préparée" -#: access/transam/twophase.c:593 +#: access/transam/twophase.c:604 #, c-format msgid "Must be superuser or the user that prepared the transaction." msgstr "Doit être super-utilisateur ou l'utilisateur qui a préparé la transaction." -#: access/transam/twophase.c:604 +#: access/transam/twophase.c:615 #, c-format msgid "prepared transaction belongs to another database" msgstr "la transaction préparée appartient à une autre base de données" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:616 #, c-format msgid "Connect to the database where the transaction was prepared to finish it." msgstr "" "Connectez-vous à la base de données où la transaction a été préparée pour\n" "la terminer." -#: access/transam/twophase.c:620 +#: access/transam/twophase.c:631 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "la transaction préparée d'identifiant « %s » n'existe pas" -#: access/transam/twophase.c:1098 +#: access/transam/twophase.c:1155 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "" "longueur maximale dépassée pour le fichier de statut de la validation en\n" "deux phase" -#: access/transam/twophase.c:1252 +#: access/transam/twophase.c:1310 #, c-format msgid "incorrect size of file \"%s\": %zu byte" msgid_plural "incorrect size of file \"%s\": %zu bytes" msgstr[0] "taille incorrecte du fichier « %s » : %zu octet" msgstr[1] "taille incorrecte du fichier « %s » : %zu octets" -#: access/transam/twophase.c:1261 +#: access/transam/twophase.c:1319 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "alignement incorrect du décalage CRC pour le fichier « %s »" -#: access/transam/twophase.c:1294 +#: access/transam/twophase.c:1352 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "nombre magique invalide dans le fichier « %s »" -#: access/transam/twophase.c:1300 +#: access/transam/twophase.c:1358 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "taille invalide stockée dans le fichier « %s »" -#: access/transam/twophase.c:1312 +#: access/transam/twophase.c:1370 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "la somme de contrôle CRC calculée ne correspond par à la valeur enregistrée dans le fichier « %s »" -#: access/transam/twophase.c:1347 access/transam/xlog.c:6486 +#: access/transam/twophase.c:1405 access/transam/xlog.c:6532 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Échec lors de l'allocation d'un processeur de lecture de journaux de transactions." -#: access/transam/twophase.c:1362 +#: access/transam/twophase.c:1422 +#, c-format +msgid "could not read two-phase state from WAL at %X/%X: %s" +msgstr "n'a pas pu lire le fichier d'état de la validation en deux phases depuis les journaux de transactions à %X/%X : %s" + +#: access/transam/twophase.c:1429 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "n'a pas pu lire le fichier d'état de la validation en deux phases depuis les journaux de transactions à %X/%X" -#: access/transam/twophase.c:1370 +#: access/transam/twophase.c:1438 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "" "le fichier d'état de la validation en deux phases attendu n'est pas présent\n" "dans les journaux de transaction à %X/%X" -#: access/transam/twophase.c:1650 +#: access/transam/twophase.c:1718 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "n'a pas pu recréer le fichier « %s » : %m" -#: access/transam/twophase.c:1777 +#: access/transam/twophase.c:1845 #, c-format msgid "%u two-phase state file was written for a long-running prepared transaction" msgid_plural "%u two-phase state files were written for long-running prepared transactions" msgstr[0] "le fichier d'état de la validation en deux phases %u a été écrit pour une transaction préparée de longue durée" msgstr[1] "les fichiers d'état de la validation en deux phases %u ont été écrits pour des transactions préparées de longue durée" -#: access/transam/twophase.c:2011 +#: access/transam/twophase.c:2079 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "récupération de la transaction préparée %u à partir de la mémoire partagée" -#: access/transam/twophase.c:2102 +#: access/transam/twophase.c:2170 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "suppression du vieux fichier d'état de la validation en deux phases pour la transaction %u" -#: access/transam/twophase.c:2109 +#: access/transam/twophase.c:2177 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "suppression du vieux fichier d'état de la validation en deux phases de la mémoire pour la transaction %u" -#: access/transam/twophase.c:2122 +#: access/transam/twophase.c:2190 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "suppression du futur fichier d'état de la validation en deux phases pour la transaction %u" -#: access/transam/twophase.c:2129 +#: access/transam/twophase.c:2197 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "suppression du futur fichier d'état de la validation en deux phases en mémoire pour la transaction %u" -#: access/transam/twophase.c:2154 +#: access/transam/twophase.c:2222 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "fichier d'état de la validation en deux phases pour la transaction %u corrompu" -#: access/transam/twophase.c:2159 +#: access/transam/twophase.c:2227 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "mémoire d'état de la validation en deux phases pour la transaction %u corrompue" @@ -1756,29 +1761,29 @@ "la limite de réinitialisation de l'identifiant de transaction est %u,\n" "limité par la base de données d'OID %u" -#: access/transam/xact.c:1030 +#: access/transam/xact.c:1031 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "ne peux pas avoir plus de 2^32-2 commandes dans une transaction" -#: access/transam/xact.c:1555 +#: access/transam/xact.c:1557 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "nombre maximum de sous-transactions validées (%d) dépassé" -#: access/transam/xact.c:2396 +#: access/transam/xact.c:2408 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "" "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur des\n" "objets temporaires" -#: access/transam/xact.c:2406 +#: access/transam/xact.c:2418 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "ne peut pas préparer (PREPARE) une transaction qui a exporté des snapshots" -#: access/transam/xact.c:2415 +#: access/transam/xact.c:2427 #, c-format msgid "cannot PREPARE a transaction that has manipulated logical replication workers" msgstr "" @@ -1786,167 +1791,167 @@ "workers de réplication logique" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3367 +#: access/transam/xact.c:3388 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s ne peut pas être exécuté dans un bloc de transaction" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3377 +#: access/transam/xact.c:3398 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s ne peut pas être exécuté dans une sous-transaction" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3387 +#: access/transam/xact.c:3408 #, c-format msgid "%s cannot be executed from a function" msgstr "%s ne peut pas être exécuté à partir d'une fonction" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3456 access/transam/xact.c:3762 access/transam/xact.c:3841 access/transam/xact.c:3964 access/transam/xact.c:4115 access/transam/xact.c:4184 access/transam/xact.c:4295 +#: access/transam/xact.c:3477 access/transam/xact.c:3783 access/transam/xact.c:3862 access/transam/xact.c:3985 access/transam/xact.c:4136 access/transam/xact.c:4205 access/transam/xact.c:4316 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s peut seulement être utilisé dans des blocs de transaction" -#: access/transam/xact.c:3648 +#: access/transam/xact.c:3669 #, c-format msgid "there is already a transaction in progress" msgstr "une transaction est déjà en cours" -#: access/transam/xact.c:3767 access/transam/xact.c:3846 access/transam/xact.c:3969 +#: access/transam/xact.c:3788 access/transam/xact.c:3867 access/transam/xact.c:3990 #, c-format msgid "there is no transaction in progress" msgstr "aucune transaction en cours" -#: access/transam/xact.c:3857 +#: access/transam/xact.c:3878 #, c-format msgid "cannot commit during a parallel operation" msgstr "ne peut pas valider pendant une opération parallèle" -#: access/transam/xact.c:3980 +#: access/transam/xact.c:4001 #, c-format msgid "cannot abort during a parallel operation" msgstr "ne peut pas annuler pendant une opération en parallèle" -#: access/transam/xact.c:4079 +#: access/transam/xact.c:4100 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "ne peut pas définir de points de sauvegarde lors d'une opération parallèle" -#: access/transam/xact.c:4166 +#: access/transam/xact.c:4187 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "ne peut pas relâcher de points de sauvegarde pendant une opération parallèle" -#: access/transam/xact.c:4176 access/transam/xact.c:4227 access/transam/xact.c:4287 access/transam/xact.c:4336 +#: access/transam/xact.c:4197 access/transam/xact.c:4248 access/transam/xact.c:4308 access/transam/xact.c:4357 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "le point de sauvegarde « %s » n'existe pas" -#: access/transam/xact.c:4233 access/transam/xact.c:4342 +#: access/transam/xact.c:4254 access/transam/xact.c:4363 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "le point de sauvegarde « %s » n'existe pas dans le niveau de point de sauvegarde actuel" -#: access/transam/xact.c:4275 +#: access/transam/xact.c:4296 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "ne peut pas retourner à un point de sauvegarde pendant un opération parallèle" -#: access/transam/xact.c:4403 +#: access/transam/xact.c:4424 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "ne peut pas lancer de sous-transactions pendant une opération parallèle" -#: access/transam/xact.c:4471 +#: access/transam/xact.c:4492 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "ne peut pas valider de sous-transactions pendant une opération parallèle" -#: access/transam/xact.c:5111 +#: access/transam/xact.c:5138 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "ne peut pas avoir plus de 2^32-1 sous-transactions dans une transaction" -#: access/transam/xlog.c:2552 +#: access/transam/xlog.c:2576 #, c-format msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "n'a pas pu écrire le fichier de transactions %s au décalage %u, longueur %zu : %m" -#: access/transam/xlog.c:2828 +#: access/transam/xlog.c:2852 #, c-format msgid "updated min recovery point to %X/%X on timeline %u" msgstr "mise à jour du point minimum de restauration sur %X/%X pour la timeline %u" -#: access/transam/xlog.c:3942 access/transam/xlogutils.c:802 replication/walsender.c:2509 +#: access/transam/xlog.c:3966 access/transam/xlogutils.c:802 replication/walsender.c:2518 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "le segment demandé du journal de transaction, %s, a déjà été supprimé" -#: access/transam/xlog.c:4185 +#: access/transam/xlog.c:4209 #, c-format msgid "recycled write-ahead log file \"%s\"" msgstr "recyclage du journal de transactions « %s »" -#: access/transam/xlog.c:4197 +#: access/transam/xlog.c:4221 #, c-format msgid "removing write-ahead log file \"%s\"" msgstr "suppression du journal de transactions « %s »" -#: access/transam/xlog.c:4217 +#: access/transam/xlog.c:4241 #, c-format msgid "could not rename file \"%s\": %m" msgstr "n'a pas pu renommer le fichier « %s » : %m" -#: access/transam/xlog.c:4259 access/transam/xlog.c:4269 +#: access/transam/xlog.c:4283 access/transam/xlog.c:4293 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "le répertoire « %s » requis pour les journaux de transactions n'existe pas" -#: access/transam/xlog.c:4275 +#: access/transam/xlog.c:4299 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "création du répertoire manquant pour les journaux de transactions « %s »" -#: access/transam/xlog.c:4278 +#: access/transam/xlog.c:4302 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » manquant : %m" -#: access/transam/xlog.c:4381 +#: access/transam/xlog.c:4418 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "identifiant timeline %u inattendu dans le journal de transactions %s, décalage %u" -#: access/transam/xlog.c:4519 +#: access/transam/xlog.c:4556 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "la nouvelle timeline %u n'est pas une enfant de la timeline %u du système" -#: access/transam/xlog.c:4533 +#: access/transam/xlog.c:4570 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "" "la nouvelle timeline %u a été créée à partir de la timeline de la base de données système %u\n" "avant le point de restauration courant %X/%X" -#: access/transam/xlog.c:4552 +#: access/transam/xlog.c:4589 #, c-format msgid "new target timeline is %u" msgstr "la nouvelle timeline cible est %u" -#: access/transam/xlog.c:4588 +#: access/transam/xlog.c:4625 #, c-format msgid "could not generate secret authorization token" msgstr "n'a pas pu générer le jeton secret d'autorisation" -#: access/transam/xlog.c:4747 access/transam/xlog.c:4756 access/transam/xlog.c:4780 access/transam/xlog.c:4787 access/transam/xlog.c:4794 access/transam/xlog.c:4799 access/transam/xlog.c:4806 access/transam/xlog.c:4813 access/transam/xlog.c:4820 access/transam/xlog.c:4827 access/transam/xlog.c:4834 access/transam/xlog.c:4841 access/transam/xlog.c:4850 access/transam/xlog.c:4857 utils/init/miscinit.c:1548 +#: access/transam/xlog.c:4784 access/transam/xlog.c:4793 access/transam/xlog.c:4817 access/transam/xlog.c:4824 access/transam/xlog.c:4831 access/transam/xlog.c:4836 access/transam/xlog.c:4843 access/transam/xlog.c:4850 access/transam/xlog.c:4857 access/transam/xlog.c:4864 access/transam/xlog.c:4871 access/transam/xlog.c:4878 access/transam/xlog.c:4887 access/transam/xlog.c:4894 utils/init/miscinit.c:1547 #, c-format msgid "database files are incompatible with server" msgstr "les fichiers de la base de données sont incompatibles avec le serveur" -#: access/transam/xlog.c:4748 +#: access/transam/xlog.c:4785 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), but the server was compiled with PG_CONTROL_VERSION %d (0x%08x)." msgstr "" @@ -1954,149 +1959,149 @@ "%d (0x%08x) alors que le serveur a été compilé avec un PG_CONTROL_VERSION à\n" "%d (0x%08x)." -#: access/transam/xlog.c:4752 +#: access/transam/xlog.c:4789 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "" "Ceci peut être un problème d'incohérence dans l'ordre des octets.\n" "Il se peut que vous ayez besoin d'initdb." -#: access/transam/xlog.c:4757 +#: access/transam/xlog.c:4794 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "" "Le cluster de base de données a été initialisé avec un PG_CONTROL_VERSION à\n" "%d alors que le serveur a été compilé avec un PG_CONTROL_VERSION à %d." -#: access/transam/xlog.c:4760 access/transam/xlog.c:4784 access/transam/xlog.c:4791 access/transam/xlog.c:4796 +#: access/transam/xlog.c:4797 access/transam/xlog.c:4821 access/transam/xlog.c:4828 access/transam/xlog.c:4833 #, c-format msgid "It looks like you need to initdb." msgstr "Il semble que vous avez besoin d'initdb." -#: access/transam/xlog.c:4771 +#: access/transam/xlog.c:4808 #, c-format msgid "incorrect checksum in control file" msgstr "somme de contrôle incorrecte dans le fichier de contrôle" -#: access/transam/xlog.c:4781 +#: access/transam/xlog.c:4818 #, c-format msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." msgstr "" "Le cluster de base de données a été initialisé avec un CATALOG_VERSION_NO à\n" "%d alors que le serveur a été compilé avec un CATALOG_VERSION_NO à %d." -#: access/transam/xlog.c:4788 +#: access/transam/xlog.c:4825 #, c-format msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." msgstr "" "Le cluster de bases de données a été initialisé avec un MAXALIGN à %d alors\n" "que le serveur a été compilé avec un MAXALIGN à %d." -#: access/transam/xlog.c:4795 +#: access/transam/xlog.c:4832 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "" "Le cluster de bases de données semble utiliser un format différent pour les\n" "nombres à virgule flottante de celui de l'exécutable serveur." -#: access/transam/xlog.c:4800 +#: access/transam/xlog.c:4837 #, c-format msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." msgstr "" "Le cluster de base de données a été initialisé avec un BLCKSZ à %d alors que\n" "le serveur a été compilé avec un BLCKSZ à %d." -#: access/transam/xlog.c:4803 access/transam/xlog.c:4810 access/transam/xlog.c:4817 access/transam/xlog.c:4824 access/transam/xlog.c:4831 access/transam/xlog.c:4838 access/transam/xlog.c:4845 access/transam/xlog.c:4853 access/transam/xlog.c:4860 +#: access/transam/xlog.c:4840 access/transam/xlog.c:4847 access/transam/xlog.c:4854 access/transam/xlog.c:4861 access/transam/xlog.c:4868 access/transam/xlog.c:4875 access/transam/xlog.c:4882 access/transam/xlog.c:4890 access/transam/xlog.c:4897 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Il semble que vous avez besoin de recompiler ou de relancer initdb." -#: access/transam/xlog.c:4807 +#: access/transam/xlog.c:4844 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "" "Le cluster de bases de données a été initialisé avec un RELSEG_SIZE à %d\n" "alors que le serveur a été compilé avec un RELSEG_SIZE à %d." -#: access/transam/xlog.c:4814 +#: access/transam/xlog.c:4851 #, c-format msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." msgstr "" "Le cluster de base de données a été initialisé avec un XLOG_BLCKSZ à %d\n" "alors que le serveur a été compilé avec un XLOG_BLCKSZ à %d." -#: access/transam/xlog.c:4821 +#: access/transam/xlog.c:4858 #, c-format msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." msgstr "" "Le cluster de bases de données a été initialisé avec un NAMEDATALEN à %d\n" "alors que le serveur a été compilé avec un NAMEDATALEN à %d." -#: access/transam/xlog.c:4828 +#: access/transam/xlog.c:4865 #, c-format msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." msgstr "" "Le groupe de bases de données a été initialisé avec un INDEX_MAX_KEYS à %d\n" "alors que le serveur a été compilé avec un INDEX_MAX_KEYS à %d." -#: access/transam/xlog.c:4835 +#: access/transam/xlog.c:4872 #, c-format msgid "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the server was compiled with TOAST_MAX_CHUNK_SIZE %d." msgstr "" "Le cluster de bases de données a été initialisé avec un TOAST_MAX_CHUNK_SIZE\n" "à %d alors que le serveur a été compilé avec un TOAST_MAX_CHUNK_SIZE à %d." -#: access/transam/xlog.c:4842 +#: access/transam/xlog.c:4879 #, c-format msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." msgstr "" "Le cluster de base de données a été initialisé avec un LOBLKSIZE à %d alors que\n" "le serveur a été compilé avec un LOBLKSIZE à %d." -#: access/transam/xlog.c:4851 +#: access/transam/xlog.c:4888 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "" "Le cluster de base de données a été initialisé sans USE_FLOAT8_BYVAL\n" "alors que le serveur a été compilé avec USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4858 +#: access/transam/xlog.c:4895 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "" "Le cluster de base de données a été initialisé avec USE_FLOAT8_BYVAL\n" "alors que le serveur a été compilé sans USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4867 +#: access/transam/xlog.c:4904 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes" msgstr[0] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octet" msgstr[1] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octets" -#: access/transam/xlog.c:4879 +#: access/transam/xlog.c:4916 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "« min_wal_size » doit être au moins le double de « wal_segment_size »" -#: access/transam/xlog.c:4883 +#: access/transam/xlog.c:4920 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "« max_wal_size » doit être au moins le double de « wal_segment_size »" -#: access/transam/xlog.c:5316 +#: access/transam/xlog.c:5353 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "n'a pas pu écrire le « bootstrap » du journal des transactions : %m" -#: access/transam/xlog.c:5324 +#: access/transam/xlog.c:5361 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "" "n'a pas pu synchroniser sur disque (fsync) le « bootstrap » du journal des\n" "transactions : %m" -#: access/transam/xlog.c:5330 +#: access/transam/xlog.c:5367 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "n'a pas pu fermer le « bootstrap » du journal des transactions : %m" @@ -2104,104 +2109,104 @@ # /* # * Check for old recovery API file: recovery.conf # */ -#: access/transam/xlog.c:5391 +#: access/transam/xlog.c:5428 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "utiliser le fichier de commande de la restauration « %s » n'est plus supporté" -#: access/transam/xlog.c:5456 +#: access/transam/xlog.c:5493 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "le mode de restauration n'est pas supporté pour les serveurs mono-utilisateur" -#: access/transam/xlog.c:5473 +#: access/transam/xlog.c:5510 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "ni primary_conninfo ni restore_command n'est spécifié" -#: access/transam/xlog.c:5474 +#: access/transam/xlog.c:5511 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "" "Le serveur de la base de données va régulièrement interroger le sous-répertoire\n" "pg_wal pour vérifier les fichiers placés ici." -#: access/transam/xlog.c:5482 +#: access/transam/xlog.c:5519 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "doit spécifier une restore_command quand le mode standby n'est pas activé" -#: access/transam/xlog.c:5520 +#: access/transam/xlog.c:5557 #, c-format msgid "recovery target timeline %u does not exist" msgstr "le timeline cible, %u, de la restauration n'existe pas" -#: access/transam/xlog.c:5642 +#: access/transam/xlog.c:5679 #, c-format msgid "archive recovery complete" msgstr "restauration de l'archive terminée" -#: access/transam/xlog.c:5708 access/transam/xlog.c:5981 +#: access/transam/xlog.c:5745 access/transam/xlog.c:6018 #, c-format msgid "recovery stopping after reaching consistency" msgstr "arrêt de la restauration après avoir atteint le point de cohérence" -#: access/transam/xlog.c:5729 +#: access/transam/xlog.c:5766 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "arrêt de la restauration avant l'emplacement WAL (LSN) « %X/%X »" -#: access/transam/xlog.c:5815 +#: access/transam/xlog.c:5852 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "arrêt de la restauration avant validation de la transaction %u, %s" -#: access/transam/xlog.c:5822 +#: access/transam/xlog.c:5859 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "arrêt de la restauration avant annulation de la transaction %u, %s" -#: access/transam/xlog.c:5875 +#: access/transam/xlog.c:5912 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "restauration en arrêt au point de restauration « %s », heure %s" -#: access/transam/xlog.c:5893 +#: access/transam/xlog.c:5930 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "arrêt de la restauration après l'emplacement WAL (LSN) « %X/%X »" -#: access/transam/xlog.c:5961 +#: access/transam/xlog.c:5998 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "arrêt de la restauration après validation de la transaction %u, %s" -#: access/transam/xlog.c:5969 +#: access/transam/xlog.c:6006 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "arrêt de la restauration après annulation de la transaction %u, %s" -#: access/transam/xlog.c:6018 +#: access/transam/xlog.c:6055 #, c-format msgid "pausing at the end of recovery" msgstr "pause à la fin de la restauration" -#: access/transam/xlog.c:6019 +#: access/transam/xlog.c:6056 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Exécuter pg_wal_replay_resume() pour promouvoir." -#: access/transam/xlog.c:6022 +#: access/transam/xlog.c:6059 #, c-format msgid "recovery has paused" msgstr "restauration en pause" -#: access/transam/xlog.c:6023 +#: access/transam/xlog.c:6060 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Exécuter pg_wal_replay_resume() pour continuer." -#: access/transam/xlog.c:6234 +#: access/transam/xlog.c:6280 #, c-format msgid "hot standby is not possible because %s = %d is a lower setting than on the master server (its value was %d)" msgstr "" @@ -2209,134 +2214,134 @@ "paramètrage plus bas que celui du serveur maître des journaux de transactions\n" "(la valeur était %d)" -#: access/transam/xlog.c:6258 +#: access/transam/xlog.c:6304 #, c-format msgid "WAL was generated with wal_level=minimal, data may be missing" msgstr "le journal de transactions a été généré avec le paramètre wal_level=minimal, des données peuvent manquer" -#: access/transam/xlog.c:6259 +#: access/transam/xlog.c:6305 #, c-format msgid "This happens if you temporarily set wal_level=minimal without taking a new base backup." msgstr "" "Ceci peut arriver si vous configurez temporairement wal_level à minimal sans avoir\n" "pris une nouvelle sauvegarde de base." -#: access/transam/xlog.c:6270 +#: access/transam/xlog.c:6316 #, c-format msgid "hot standby is not possible because wal_level was not set to \"replica\" or higher on the master server" msgstr "" "les connexions en lecture seules ne sont pas possibles parce que le paramètre wal_level\n" "n'a pas été positionné à « replica » ou plus sur le serveur maître" -#: access/transam/xlog.c:6271 +#: access/transam/xlog.c:6317 #, c-format msgid "Either set wal_level to \"replica\" on the master, or turn off hot_standby here." msgstr "" "Vous devez soit positionner le paramètre wal_level à « replica » sur le maître,\n" "soit désactiver le hot_standby ici." -#: access/transam/xlog.c:6333 +#: access/transam/xlog.c:6379 #, c-format msgid "control file contains invalid checkpoint location" msgstr "le fichier de contrôle contient un emplacement de checkpoint invalide" -#: access/transam/xlog.c:6344 +#: access/transam/xlog.c:6390 #, c-format msgid "database system was shut down at %s" msgstr "le système de bases de données a été arrêté à %s" -#: access/transam/xlog.c:6350 +#: access/transam/xlog.c:6396 #, c-format msgid "database system was shut down in recovery at %s" msgstr "le système de bases de données a été arrêté pendant la restauration à %s" -#: access/transam/xlog.c:6356 +#: access/transam/xlog.c:6402 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "le système de bases de données a été interrompu ; dernier lancement connu à %s" -#: access/transam/xlog.c:6362 +#: access/transam/xlog.c:6408 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "le système de bases de données a été interrompu lors d'une restauration à %s" -#: access/transam/xlog.c:6364 +#: access/transam/xlog.c:6410 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "" "Ceci signifie probablement que des données ont été corrompues et que vous\n" "devrez utiliser la dernière sauvegarde pour la restauration." -#: access/transam/xlog.c:6370 +#: access/transam/xlog.c:6416 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "" "le système de bases de données a été interrompu lors d'une récupération à %s\n" "(moment de la journalisation)" -#: access/transam/xlog.c:6372 +#: access/transam/xlog.c:6418 #, c-format msgid "If this has occurred more than once some data might be corrupted and you might need to choose an earlier recovery target." msgstr "" "Si c'est arrivé plus d'une fois, des données ont pu être corrompues et vous\n" "pourriez avoir besoin de choisir une cible de récupération antérieure." -#: access/transam/xlog.c:6378 +#: access/transam/xlog.c:6424 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "le système de bases de données a été interrompu ; dernier lancement connu à %s" -#: access/transam/xlog.c:6384 +#: access/transam/xlog.c:6430 #, c-format msgid "control file contains invalid database cluster state" msgstr "le fichier de contrôle contient un état invalide de l'instance" -#: access/transam/xlog.c:6441 +#: access/transam/xlog.c:6487 #, c-format msgid "entering standby mode" msgstr "entre en mode standby" -#: access/transam/xlog.c:6444 +#: access/transam/xlog.c:6490 #, c-format msgid "starting point-in-time recovery to XID %u" msgstr "début de la restauration de l'archive au XID %u" -#: access/transam/xlog.c:6448 +#: access/transam/xlog.c:6494 #, c-format msgid "starting point-in-time recovery to %s" msgstr "début de la restauration de l'archive à %s" -#: access/transam/xlog.c:6452 +#: access/transam/xlog.c:6498 #, c-format msgid "starting point-in-time recovery to \"%s\"" msgstr "début de la restauration PITR à « %s »" -#: access/transam/xlog.c:6456 +#: access/transam/xlog.c:6502 #, c-format msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" msgstr "début de la restauration PITR à l'emplacement WAL (LSN) « %X/%X »" -#: access/transam/xlog.c:6461 +#: access/transam/xlog.c:6507 #, c-format msgid "starting point-in-time recovery to earliest consistent point" msgstr "début de la restauration de l'archive jusqu'au point de cohérence le plus proche" -#: access/transam/xlog.c:6464 +#: access/transam/xlog.c:6510 #, c-format msgid "starting archive recovery" msgstr "début de la restauration de l'archive" -#: access/transam/xlog.c:6523 access/transam/xlog.c:6656 +#: access/transam/xlog.c:6569 access/transam/xlog.c:6702 #, c-format msgid "checkpoint record is at %X/%X" msgstr "l'enregistrement du point de vérification est à %X/%X" -#: access/transam/xlog.c:6538 +#: access/transam/xlog.c:6584 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "n'a pas pu localiser l'enregistrement redo référencé par le point de vérification" -#: access/transam/xlog.c:6539 access/transam/xlog.c:6549 +#: access/transam/xlog.c:6585 access/transam/xlog.c:6595 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" @@ -2347,138 +2352,138 @@ "Si vous ne restaurez pas depuis une sauvegarde, essayez de supprimer « %s/backup_label ».\n" "Attention : supprimer « %s/backup_label » lors d'une restauration de sauvegarde entraînera la corruption de l'instance." -#: access/transam/xlog.c:6548 +#: access/transam/xlog.c:6594 #, c-format msgid "could not locate required checkpoint record" msgstr "n'a pas pu localiser l'enregistrement d'un point de vérification requis" -#: access/transam/xlog.c:6577 commands/tablespace.c:666 +#: access/transam/xlog.c:6623 commands/tablespace.c:662 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "n'a pas pu créer le lien symbolique « %s » : %m" -#: access/transam/xlog.c:6609 access/transam/xlog.c:6615 +#: access/transam/xlog.c:6655 access/transam/xlog.c:6661 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "ignore le fichier « %s » car le fichier « %s » n'existe pas" -#: access/transam/xlog.c:6611 access/transam/xlog.c:11828 +#: access/transam/xlog.c:6657 access/transam/xlog.c:12004 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Le fichier « %s » a été renommé en « %s »." -#: access/transam/xlog.c:6617 +#: access/transam/xlog.c:6663 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "N'a pas pu renommer le fichier « %s » en « %s » : %m." -#: access/transam/xlog.c:6668 +#: access/transam/xlog.c:6714 #, c-format msgid "could not locate a valid checkpoint record" msgstr "n'a pas pu localiser un enregistrement d'un point de vérification valide" -#: access/transam/xlog.c:6706 +#: access/transam/xlog.c:6752 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "la timeline requise %u n'est pas un fils de l'historique de ce serveur" -#: access/transam/xlog.c:6708 +#: access/transam/xlog.c:6754 #, c-format msgid "Latest checkpoint is at %X/%X on timeline %u, but in the history of the requested timeline, the server forked off from that timeline at %X/%X." msgstr "Le dernier checkpoint est à %X/%X sur la timeline %u, mais dans l'historique de la timeline demandée, le serveur est sorti de cette timeline à %X/%X." -#: access/transam/xlog.c:6724 +#: access/transam/xlog.c:6770 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "la timeline requise, %u, ne contient pas le point de restauration minimum (%X/%X) sur la timeline %u" -#: access/transam/xlog.c:6755 +#: access/transam/xlog.c:6801 #, c-format msgid "invalid next transaction ID" msgstr "prochain ID de transaction invalide" -#: access/transam/xlog.c:6849 +#: access/transam/xlog.c:6895 #, c-format msgid "invalid redo in checkpoint record" msgstr "ré-exécution invalide dans l'enregistrement du point de vérification" -#: access/transam/xlog.c:6860 +#: access/transam/xlog.c:6906 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "enregistrement de ré-exécution invalide dans le point de vérification d'arrêt" -#: access/transam/xlog.c:6894 +#: access/transam/xlog.c:6946 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "" "le système de bases de données n'a pas été arrêté proprement ; restauration\n" "automatique en cours" -#: access/transam/xlog.c:6898 +#: access/transam/xlog.c:6950 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "la restauration après crash commence par la timeline %u et a la timeline %u en cible" -#: access/transam/xlog.c:6945 +#: access/transam/xlog.c:6997 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label contient des données incohérentes avec le fichier de contrôle" -#: access/transam/xlog.c:6946 +#: access/transam/xlog.c:6998 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "" "Ceci signifie que la sauvegarde a été corrompue et que vous devrez utiliser\n" "la dernière sauvegarde pour la restauration." -#: access/transam/xlog.c:7037 +#: access/transam/xlog.c:7089 #, c-format msgid "initializing for hot standby" msgstr "initialisation pour « Hot Standby »" -#: access/transam/xlog.c:7170 +#: access/transam/xlog.c:7222 #, c-format msgid "redo starts at %X/%X" msgstr "la ré-exécution commence à %X/%X" -#: access/transam/xlog.c:7394 +#: access/transam/xlog.c:7446 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "" "le point d'arrêt de la restauration demandée se trouve avant le point\n" "cohérent de restauration" -#: access/transam/xlog.c:7432 +#: access/transam/xlog.c:7484 #, c-format msgid "redo done at %X/%X" msgstr "ré-exécution faite à %X/%X" -#: access/transam/xlog.c:7437 +#: access/transam/xlog.c:7489 #, c-format msgid "last completed transaction was at log time %s" msgstr "la dernière transaction a eu lieu à %s (moment de la journalisation)" -#: access/transam/xlog.c:7446 +#: access/transam/xlog.c:7498 #, c-format msgid "redo is not required" msgstr "la ré-exécution n'est pas nécessaire" -#: access/transam/xlog.c:7458 +#: access/transam/xlog.c:7510 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "la restauration s'est terminée avant d'avoir atteint la cible configurée pour la restauration" -#: access/transam/xlog.c:7537 access/transam/xlog.c:7541 +#: access/transam/xlog.c:7594 access/transam/xlog.c:7598 #, c-format msgid "WAL ends before end of online backup" msgstr "le journal de transactions se termine avant la fin de la sauvegarde de base" -#: access/transam/xlog.c:7538 +#: access/transam/xlog.c:7595 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "Tous les journaux de transactions générés pendant la sauvegarde en ligne doivent être disponibles pour la restauration." -#: access/transam/xlog.c:7542 +#: access/transam/xlog.c:7599 #, c-format msgid "Online backup started with pg_start_backup() must be ended with pg_stop_backup(), and all WAL up to that point must be available at recovery." msgstr "" @@ -2486,180 +2491,185 @@ "pg_stop_backup() et tous les journaux de transactions générés entre les deux\n" "doivent être disponibles pour la restauration." -#: access/transam/xlog.c:7545 +#: access/transam/xlog.c:7602 #, c-format msgid "WAL ends before consistent recovery point" msgstr "Le journal de transaction se termine avant un point de restauration cohérent" -#: access/transam/xlog.c:7580 +#: access/transam/xlog.c:7637 #, c-format msgid "selected new timeline ID: %u" msgstr "identifiant d'un timeline nouvellement sélectionné : %u" -#: access/transam/xlog.c:8028 +#: access/transam/xlog.c:8112 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "état de restauration cohérent atteint à %X/%X" -#: access/transam/xlog.c:8238 +#: access/transam/xlog.c:8322 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "lien du point de vérification primaire invalide dans le fichier de contrôle" -#: access/transam/xlog.c:8242 +#: access/transam/xlog.c:8326 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "lien du point de vérification invalide dans le fichier backup_label" -#: access/transam/xlog.c:8260 +#: access/transam/xlog.c:8344 #, c-format msgid "invalid primary checkpoint record" msgstr "enregistrement du point de vérification primaire invalide" -#: access/transam/xlog.c:8264 +#: access/transam/xlog.c:8348 #, c-format msgid "invalid checkpoint record" msgstr "enregistrement du point de vérification invalide" -#: access/transam/xlog.c:8275 +#: access/transam/xlog.c:8359 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "identifiant du gestionnaire de ressource invalide dans l'enregistrement primaire du point de vérification" -#: access/transam/xlog.c:8279 +#: access/transam/xlog.c:8363 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "identifiant du gestionnaire de ressource invalide dans l'enregistrement du point de vérification" -#: access/transam/xlog.c:8292 +#: access/transam/xlog.c:8376 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "xl_info invalide dans l'enregistrement du point de vérification primaire" -#: access/transam/xlog.c:8296 +#: access/transam/xlog.c:8380 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "xl_info invalide dans l'enregistrement du point de vérification" -#: access/transam/xlog.c:8307 +#: access/transam/xlog.c:8391 #, c-format msgid "invalid length of primary checkpoint record" msgstr "longueur invalide de l'enregistrement primaire du point de vérification" -#: access/transam/xlog.c:8311 +#: access/transam/xlog.c:8395 #, c-format msgid "invalid length of checkpoint record" msgstr "longueur invalide de l'enregistrement du point de vérification" -#: access/transam/xlog.c:8491 +#: access/transam/xlog.c:8575 #, c-format msgid "shutting down" msgstr "arrêt en cours" -#: access/transam/xlog.c:8797 +#: access/transam/xlog.c:8882 #, c-format msgid "checkpoint skipped because system is idle" msgstr "checkpoint ignoré car le système est inactif" -#: access/transam/xlog.c:8997 +#: access/transam/xlog.c:9092 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "" "activité en cours du journal de transactions alors que le système de bases\n" "de données est en cours d'arrêt" -#: access/transam/xlog.c:9262 +#: access/transam/xlog.c:9404 #, c-format msgid "skipping restartpoint, recovery has already ended" msgstr "restartpoint ignoré, la récupération est déjà terminée" -#: access/transam/xlog.c:9285 +#: access/transam/xlog.c:9427 #, c-format msgid "skipping restartpoint, already performed at %X/%X" msgstr "ignore le point de redémarrage, déjà réalisé à %X/%X" -#: access/transam/xlog.c:9461 +#: access/transam/xlog.c:9603 #, c-format msgid "recovery restart point at %X/%X" msgstr "la ré-exécution en restauration commence à %X/%X" -#: access/transam/xlog.c:9463 +#: access/transam/xlog.c:9605 #, c-format msgid "Last completed transaction was at log time %s." msgstr "La dernière transaction a eu lieu à %s (moment de la journalisation)." -#: access/transam/xlog.c:9711 +#: access/transam/xlog.c:9853 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "point de restauration « %s » créé à %X/%X" -#: access/transam/xlog.c:9856 +#: access/transam/xlog.c:9998 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "identifiant de timeline précédent %u inattendu (identifiant de la timeline courante %u) dans l'enregistrement du point de vérification" -#: access/transam/xlog.c:9865 +#: access/transam/xlog.c:10007 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "" "identifiant timeline %u inattendu (après %u) dans l'enregistrement du point\n" "de vérification" -#: access/transam/xlog.c:9881 +#: access/transam/xlog.c:10023 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "identifiant timeline %u inattendu dans l'enregistrement du checkpoint, avant d'atteindre le point de restauration minimum %X/%X sur la timeline %u" -#: access/transam/xlog.c:9957 +#: access/transam/xlog.c:10099 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "la sauvegarde en ligne a été annulée, la restauration ne peut pas continuer" -#: access/transam/xlog.c:10013 access/transam/xlog.c:10069 access/transam/xlog.c:10092 +#: access/transam/xlog.c:10155 access/transam/xlog.c:10211 access/transam/xlog.c:10241 #, c-format msgid "unexpected timeline ID %u (should be %u) in checkpoint record" msgstr "" "identifiant timeline %u inattendu (devrait être %u) dans l'enregistrement du\n" "point de vérification" -#: access/transam/xlog.c:10418 +#: access/transam/xlog.c:10401 +#, c-format +msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" +msgstr "a ignoré avec succès le contrecord manquant à %X/%X, surchargé à %s" + +#: access/transam/xlog.c:10594 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier %s : %m" -#: access/transam/xlog.c:10424 +#: access/transam/xlog.c:10600 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "n'a pas pu synchroniser sur disque (fdatasync) le fichier « %s » : %m" -#: access/transam/xlog.c:10523 access/transam/xlog.c:11061 access/transam/xlogfuncs.c:275 access/transam/xlogfuncs.c:302 access/transam/xlogfuncs.c:341 access/transam/xlogfuncs.c:362 access/transam/xlogfuncs.c:383 +#: access/transam/xlog.c:10699 access/transam/xlog.c:11237 access/transam/xlogfuncs.c:275 access/transam/xlogfuncs.c:302 access/transam/xlogfuncs.c:341 access/transam/xlogfuncs.c:362 access/transam/xlogfuncs.c:383 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "les fonctions de contrôle des journaux de transactions ne peuvent pas être exécutées lors de la restauration." -#: access/transam/xlog.c:10532 access/transam/xlog.c:11070 +#: access/transam/xlog.c:10708 access/transam/xlog.c:11246 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "Le niveau de journalisation n'est pas suffisant pour faire une sauvegarde en ligne" -#: access/transam/xlog.c:10533 access/transam/xlog.c:11071 access/transam/xlogfuncs.c:308 +#: access/transam/xlog.c:10709 access/transam/xlog.c:11247 access/transam/xlogfuncs.c:308 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "" "wal_level doit être configuré à « replica » ou « logical »\n" "au démarrage du serveur." -#: access/transam/xlog.c:10538 +#: access/transam/xlog.c:10714 #, c-format msgid "backup label too long (max %d bytes)" msgstr "label de sauvegarde trop long (%d octets maximum)" -#: access/transam/xlog.c:10575 access/transam/xlog.c:10860 access/transam/xlog.c:10898 +#: access/transam/xlog.c:10751 access/transam/xlog.c:11036 access/transam/xlog.c:11074 #, c-format msgid "a backup is already in progress" msgstr "une sauvegarde est déjà en cours" -#: access/transam/xlog.c:10576 +#: access/transam/xlog.c:10752 #, c-format msgid "Run pg_stop_backup() and try again." msgstr "Exécutez pg_stop_backup() et tentez de nouveau." @@ -2669,12 +2679,12 @@ # * (i.e., since last restartpoint used as backup starting # * checkpoint) contain full-page writes. # */ -#: access/transam/xlog.c:10672 +#: access/transam/xlog.c:10848 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "Un journal de transaction généré avec full_page_writes=off a été rejoué depuis le dernier point de reprise (restartpoint)" -#: access/transam/xlog.c:10674 access/transam/xlog.c:11266 +#: access/transam/xlog.c:10850 access/transam/xlog.c:11442 #, c-format msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the master, and then try an online backup again." msgstr "" @@ -2682,162 +2692,162 @@ "corrompue et ne doit pas être utilisée. Activez full_page_writes et lancez\n" "CHECKPOINT sur le maître, puis recommencez la sauvegarde." -#: access/transam/xlog.c:10757 replication/basebackup.c:1423 utils/adt/misc.c:342 +#: access/transam/xlog.c:10933 replication/basebackup.c:1423 utils/adt/misc.c:342 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "la cible du lien symbolique « %s » est trop long" -#: access/transam/xlog.c:10810 commands/tablespace.c:402 commands/tablespace.c:578 replication/basebackup.c:1438 utils/adt/misc.c:350 +#: access/transam/xlog.c:10986 commands/tablespace.c:402 commands/tablespace.c:578 replication/basebackup.c:1438 utils/adt/misc.c:350 #, c-format msgid "tablespaces are not supported on this platform" msgstr "les tablespaces ne sont pas supportés sur cette plateforme" -#: access/transam/xlog.c:10861 access/transam/xlog.c:10899 +#: access/transam/xlog.c:11037 access/transam/xlog.c:11075 #, c-format msgid "If you're sure there is no backup in progress, remove file \"%s\" and try again." msgstr "" "Si vous êtes certain qu'aucune sauvegarde n'est en cours, supprimez le\n" "fichier « %s » et recommencez de nouveau." -#: access/transam/xlog.c:11086 +#: access/transam/xlog.c:11262 #, c-format msgid "exclusive backup not in progress" msgstr "une sauvegarde exclusive n'est pas en cours" -#: access/transam/xlog.c:11113 +#: access/transam/xlog.c:11289 #, c-format msgid "a backup is not in progress" msgstr "aucune sauvegarde n'est en cours" -#: access/transam/xlog.c:11199 access/transam/xlog.c:11212 access/transam/xlog.c:11601 access/transam/xlog.c:11607 access/transam/xlog.c:11655 access/transam/xlog.c:11728 access/transam/xlogfuncs.c:692 +#: access/transam/xlog.c:11375 access/transam/xlog.c:11388 access/transam/xlog.c:11777 access/transam/xlog.c:11783 access/transam/xlog.c:11831 access/transam/xlog.c:11904 access/transam/xlogfuncs.c:692 #, c-format msgid "invalid data in file \"%s\"" msgstr "données invalides dans le fichier « %s »" -#: access/transam/xlog.c:11216 replication/basebackup.c:1271 +#: access/transam/xlog.c:11392 replication/basebackup.c:1271 #, c-format msgid "the standby was promoted during online backup" msgstr "le standby a été promu lors de la sauvegarde en ligne" -#: access/transam/xlog.c:11217 replication/basebackup.c:1272 +#: access/transam/xlog.c:11393 replication/basebackup.c:1272 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "" "Cela signifie que la sauvegarde en cours de réalisation est corrompue et ne\n" "doit pas être utilisée. Recommencez la sauvegarde." -#: access/transam/xlog.c:11264 +#: access/transam/xlog.c:11440 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "Un journal de transaction généré avec full_page_writes=off a été rejoué pendant la sauvegarde en ligne" -#: access/transam/xlog.c:11384 +#: access/transam/xlog.c:11560 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "backup de base terminé, en attente de l'archivage des journaux de transactions nécessaires" -#: access/transam/xlog.c:11396 +#: access/transam/xlog.c:11572 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "toujours en attente de la fin de l'archivage de tous les segments de journaux de transactions requis (%d secondes passées)" -#: access/transam/xlog.c:11398 +#: access/transam/xlog.c:11574 #, c-format msgid "Check that your archive_command is executing properly. You can safely cancel this backup, but the database backup will not be usable without all the WAL segments." msgstr "Vérifiez que votre archive_command s'exécute correctement. Vous pouvez annuler cette sauvegarde sans souci, mais elle ne sera pas utilisable sans tous les segments WAL." -#: access/transam/xlog.c:11405 +#: access/transam/xlog.c:11581 #, c-format msgid "all required WAL segments have been archived" msgstr "tous les journaux de transactions requis ont été archivés" -#: access/transam/xlog.c:11409 +#: access/transam/xlog.c:11585 #, c-format msgid "WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup" msgstr "L'archivage des journaux de transactions n'est pas activé ; vous devez vous assurer que tous les des journaux de transactions requis sont copiés par d'autres moyens pour terminer la sauvegarde" -#: access/transam/xlog.c:11462 +#: access/transam/xlog.c:11638 #, c-format msgid "aborting backup due to backend exiting before pg_stop_backup was called" msgstr "annulation de la sauvegarde due à la déconnexion du processus serveur avant que pg_stop_backup ne soit appelé" -#: access/transam/xlog.c:11638 +#: access/transam/xlog.c:11814 #, c-format msgid "backup time %s in file \"%s\"" msgstr "heure de sauvegarde %s dans le fichier « %s »" -#: access/transam/xlog.c:11643 +#: access/transam/xlog.c:11819 #, c-format msgid "backup label %s in file \"%s\"" msgstr "label de sauvegarde %s dans le fichier « %s »" -#: access/transam/xlog.c:11656 +#: access/transam/xlog.c:11832 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "L'identifiant de timeline parsé est %u, mais %u était attendu." -#: access/transam/xlog.c:11660 +#: access/transam/xlog.c:11836 #, c-format msgid "backup timeline %u in file \"%s\"" msgstr "timeline de sauvegarde %u dans le fichier « %s »" #. translator: %s is a WAL record description -#: access/transam/xlog.c:11768 +#: access/transam/xlog.c:11944 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "rejeu des WAL à %X/%X pour %s" -#: access/transam/xlog.c:11817 +#: access/transam/xlog.c:11993 #, c-format msgid "online backup mode was not canceled" msgstr "le mode de sauvegarde en ligne n'a pas été annulé" -#: access/transam/xlog.c:11818 +#: access/transam/xlog.c:11994 #, c-format msgid "File \"%s\" could not be renamed to \"%s\": %m." msgstr "Le fichier « %s » n'a pas pu être renommé en « %s » : %m." -#: access/transam/xlog.c:11827 access/transam/xlog.c:11839 access/transam/xlog.c:11849 +#: access/transam/xlog.c:12003 access/transam/xlog.c:12015 access/transam/xlog.c:12025 #, c-format msgid "online backup mode canceled" msgstr "mode de sauvegarde en ligne annulé" -#: access/transam/xlog.c:11840 +#: access/transam/xlog.c:12016 #, c-format msgid "Files \"%s\" and \"%s\" were renamed to \"%s\" and \"%s\", respectively." msgstr "Les fichiers « %s » et « %s » sont renommés respectivement « %s » et « %s »." -#: access/transam/xlog.c:11850 +#: access/transam/xlog.c:12026 #, c-format msgid "File \"%s\" was renamed to \"%s\", but file \"%s\" could not be renamed to \"%s\": %m." msgstr "Le fichier « %s » a été renommé en « %s », mais le fichier « %s » n'a pas pu être renommé en « %s » : %m." -#: access/transam/xlog.c:11983 access/transam/xlogutils.c:971 +#: access/transam/xlog.c:12159 access/transam/xlogutils.c:971 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "n'a pas pu lire le journal de transactions %s, décalage %u : %m" -#: access/transam/xlog.c:11989 access/transam/xlogutils.c:978 +#: access/transam/xlog.c:12165 access/transam/xlogutils.c:978 #, c-format msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "n'a pas pu lire à partir du segment %s du journal de transactions, décalage %u: lu %d sur %zu" -#: access/transam/xlog.c:12523 +#: access/transam/xlog.c:12702 #, c-format msgid "WAL receiver process shutdown requested" msgstr "le processus wal receiver a reçu une demande d'arrêt" -#: access/transam/xlog.c:12629 +#: access/transam/xlog.c:12808 #, c-format msgid "received promote request" msgstr "a reçu une demande de promotion" -#: access/transam/xlog.c:12642 +#: access/transam/xlog.c:12821 #, c-format msgid "promote trigger file found: %s" msgstr "fichier trigger de promotion trouvé : %s" -#: access/transam/xlog.c:12651 +#: access/transam/xlog.c:12830 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "n'a pas pu récupérer les propriétés du fichier trigger pour la promotion « %s » : %m" @@ -2890,15 +2900,15 @@ msgid "Did you mean to use pg_stop_backup('f')?" msgstr "Souhaitiez-vous utiliser pg_stop_backup('f') ?" -#: access/transam/xlogfuncs.c:185 commands/event_trigger.c:1332 commands/event_trigger.c:1890 commands/extension.c:1944 commands/extension.c:2052 commands/extension.c:2337 commands/prepare.c:716 executor/execExpr.c:2241 executor/execSRF.c:728 executor/functions.c:1040 foreign/foreign.c:520 libpq/hba.c:2666 replication/logical/launcher.c:1086 replication/logical/logicalfuncs.c:157 replication/logical/origin.c:1486 replication/slotfuncs.c:252 replication/walsender.c:3264 storage/ipc/shmem.c:550 utils/adt/datetime.c:4765 utils/adt/genfile.c:505 utils/adt/genfile.c:588 utils/adt/jsonfuncs.c:1792 utils/adt/jsonfuncs.c:1904 utils/adt/jsonfuncs.c:2092 utils/adt/jsonfuncs.c:2201 -#: utils/adt/jsonfuncs.c:3663 utils/adt/misc.c:215 utils/adt/pgstatfuncs.c:476 utils/adt/pgstatfuncs.c:584 utils/adt/pgstatfuncs.c:1719 utils/fmgr/funcapi.c:72 utils/misc/guc.c:9676 utils/mmgr/portalmem.c:1141 +#: access/transam/xlogfuncs.c:185 commands/event_trigger.c:1332 commands/event_trigger.c:1890 commands/extension.c:1944 commands/extension.c:2052 commands/extension.c:2337 commands/prepare.c:716 executor/execExpr.c:2241 executor/execSRF.c:728 executor/functions.c:1040 foreign/foreign.c:520 libpq/hba.c:2670 replication/logical/launcher.c:1086 replication/logical/logicalfuncs.c:157 replication/logical/origin.c:1486 replication/slotfuncs.c:252 replication/walsender.c:3273 storage/ipc/shmem.c:550 utils/adt/datetime.c:4765 utils/adt/genfile.c:505 utils/adt/genfile.c:588 utils/adt/jsonfuncs.c:1792 utils/adt/jsonfuncs.c:1904 utils/adt/jsonfuncs.c:2092 utils/adt/jsonfuncs.c:2201 +#: utils/adt/jsonfuncs.c:3663 utils/adt/misc.c:215 utils/adt/pgstatfuncs.c:476 utils/adt/pgstatfuncs.c:584 utils/adt/pgstatfuncs.c:1719 utils/fmgr/funcapi.c:72 utils/misc/guc.c:9676 utils/mmgr/portalmem.c:1145 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" "la fonction avec set-value a été appelé dans un contexte qui n'accepte pas\n" "un ensemble" -#: access/transam/xlogfuncs.c:189 commands/event_trigger.c:1336 commands/event_trigger.c:1894 commands/extension.c:1948 commands/extension.c:2056 commands/extension.c:2341 commands/prepare.c:720 foreign/foreign.c:525 libpq/hba.c:2670 replication/logical/launcher.c:1090 replication/logical/logicalfuncs.c:161 replication/logical/origin.c:1490 replication/slotfuncs.c:256 replication/walsender.c:3268 storage/ipc/shmem.c:554 utils/adt/datetime.c:4769 utils/adt/genfile.c:509 utils/adt/genfile.c:592 utils/adt/misc.c:219 utils/adt/pgstatfuncs.c:480 utils/adt/pgstatfuncs.c:588 utils/adt/pgstatfuncs.c:1723 utils/misc/guc.c:9680 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1145 +#: access/transam/xlogfuncs.c:189 commands/event_trigger.c:1336 commands/event_trigger.c:1894 commands/extension.c:1948 commands/extension.c:2056 commands/extension.c:2341 commands/prepare.c:720 foreign/foreign.c:525 libpq/hba.c:2674 replication/logical/launcher.c:1090 replication/logical/logicalfuncs.c:161 replication/logical/origin.c:1490 replication/slotfuncs.c:256 replication/walsender.c:3277 storage/ipc/shmem.c:554 utils/adt/datetime.c:4769 utils/adt/genfile.c:509 utils/adt/genfile.c:592 utils/adt/misc.c:219 utils/adt/pgstatfuncs.c:480 utils/adt/pgstatfuncs.c:588 utils/adt/pgstatfuncs.c:1723 utils/misc/guc.c:9680 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1149 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "mode matérialisé requis mais interdit dans ce contexte" @@ -2965,139 +2975,139 @@ msgid "server did not promote within %d seconds" msgstr "le serveur ne s'est pas promu dans les %d secondes" -#: access/transam/xlogreader.c:349 +#: access/transam/xlogreader.c:354 #, c-format msgid "invalid record offset at %X/%X" msgstr "décalage invalide de l'enregistrement %X/%X" -#: access/transam/xlogreader.c:357 +#: access/transam/xlogreader.c:362 #, c-format msgid "contrecord is requested by %X/%X" msgstr "« contrecord » est requis par %X/%X" -#: access/transam/xlogreader.c:398 access/transam/xlogreader.c:695 +#: access/transam/xlogreader.c:403 access/transam/xlogreader.c:733 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "longueur invalide de l'enregistrement à %X/%X : voulait %u, a eu %u" -#: access/transam/xlogreader.c:422 +#: access/transam/xlogreader.c:429 #, c-format msgid "record length %u at %X/%X too long" msgstr "longueur trop importante de l'enregistrement %u à %X/%X" -#: access/transam/xlogreader.c:454 +#: access/transam/xlogreader.c:478 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "il n'existe pas de drapeau contrecord à %X/%X" -#: access/transam/xlogreader.c:467 +#: access/transam/xlogreader.c:491 #, c-format msgid "invalid contrecord length %u at %X/%X" msgstr "longueur %u invalide du contrecord à %X/%X" -#: access/transam/xlogreader.c:703 +#: access/transam/xlogreader.c:741 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "identifiant du gestionnaire de ressources invalide %u à %X/%X" -#: access/transam/xlogreader.c:717 access/transam/xlogreader.c:734 +#: access/transam/xlogreader.c:755 access/transam/xlogreader.c:772 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "enregistrement avec prev-link %X/%X incorrect à %X/%X" -#: access/transam/xlogreader.c:771 +#: access/transam/xlogreader.c:809 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "somme de contrôle des données du gestionnaire de ressources incorrecte à\n" "l'enregistrement %X/%X" -#: access/transam/xlogreader.c:808 +#: access/transam/xlogreader.c:846 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "numéro magique invalide %04X dans le segment %s, décalage %u" -#: access/transam/xlogreader.c:822 access/transam/xlogreader.c:863 +#: access/transam/xlogreader.c:860 access/transam/xlogreader.c:901 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "bits d'information %04X invalides dans le segment %s, décalage %u" -#: access/transam/xlogreader.c:837 +#: access/transam/xlogreader.c:875 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "le fichier WAL provient d'un système différent : l'identifiant système de la base dans le fichier WAL est %llu, alors que l'identifiant système de la base dans pg_control est %llu" -#: access/transam/xlogreader.c:845 +#: access/transam/xlogreader.c:883 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Le fichier WAL provient d'un système différent : taille invalide du segment dans l'en-tête de page" -#: access/transam/xlogreader.c:851 +#: access/transam/xlogreader.c:889 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "le fichier WAL provient d'une instance différente : XLOG_BLCKSZ incorrect dans l'en-tête de page" -#: access/transam/xlogreader.c:882 +#: access/transam/xlogreader.c:920 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "pageaddr %X/%X inattendue dans le journal de transactions %s, segment %u" -#: access/transam/xlogreader.c:907 +#: access/transam/xlogreader.c:945 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "identifiant timeline %u hors de la séquence (après %u) dans le segment %s, décalage %u" -#: access/transam/xlogreader.c:1247 +#: access/transam/xlogreader.c:1285 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u désordonné à %X/%X" -#: access/transam/xlogreader.c:1270 +#: access/transam/xlogreader.c:1308 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA configuré, mais aucune donnée inclus à %X/%X" -#: access/transam/xlogreader.c:1277 +#: access/transam/xlogreader.c:1315 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA non configuré, mais la longueur des données est %u à %X/%X" -#: access/transam/xlogreader.c:1313 +#: access/transam/xlogreader.c:1351 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE configué, mais du trou rencontré à l'offset %u longueur %u longueur de l'image du bloc %u à %X/%X" -#: access/transam/xlogreader.c:1329 +#: access/transam/xlogreader.c:1367 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE non configuré, mais trou rencontré à l'offset %u longueur %u à %X/%X" -#: access/transam/xlogreader.c:1344 +#: access/transam/xlogreader.c:1382 #, c-format msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_IS_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: access/transam/xlogreader.c:1359 +#: access/transam/xlogreader.c:1397 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_IS_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: access/transam/xlogreader.c:1375 +#: access/transam/xlogreader.c:1413 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL configuré, mais pas de relation précédente à %X/%X" -#: access/transam/xlogreader.c:1387 +#: access/transam/xlogreader.c:1425 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "block_id %u invalide à %X/%X" -#: access/transam/xlogreader.c:1476 +#: access/transam/xlogreader.c:1514 #, c-format msgid "record with invalid length at %X/%X" msgstr "enregistrement de longueur invalide à %X/%X" -#: access/transam/xlogreader.c:1565 +#: access/transam/xlogreader.c:1603 #, c-format msgid "invalid compressed image at %X/%X, block %d" msgstr "image compressée invalide à %X/%X, bloc %d" @@ -3107,12 +3117,12 @@ msgid "-X requires a power of two value between 1 MB and 1 GB" msgstr "-X nécessite une puissance de deux entre 1 MB et 1 GB" -#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:842 tcop/postgres.c:3727 +#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:842 tcop/postgres.c:3737 #, c-format msgid "--%s requires a value" msgstr "--%s requiert une valeur" -#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:847 tcop/postgres.c:3732 +#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:847 tcop/postgres.c:3742 #, c-format msgid "-c %s requires a value" msgstr "-c %s requiert une valeur" @@ -3247,14 +3257,14 @@ msgid "column privileges are only valid for relations" msgstr "les droits sur la colonne sont seulement valides pour les relations" -#: catalog/aclchk.c:681 catalog/aclchk.c:4103 catalog/aclchk.c:4885 catalog/objectaddress.c:965 catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:285 +#: catalog/aclchk.c:681 catalog/aclchk.c:4103 catalog/aclchk.c:4885 catalog/objectaddress.c:965 catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:287 #, c-format msgid "large object %u does not exist" msgstr "le « Large Object » %u n'existe pas" #: catalog/aclchk.c:910 catalog/aclchk.c:919 commands/collationcmds.c:118 commands/copy.c:1134 commands/copy.c:1154 commands/copy.c:1163 commands/copy.c:1172 commands/copy.c:1181 commands/copy.c:1190 commands/copy.c:1199 commands/copy.c:1208 commands/copy.c:1226 commands/copy.c:1242 commands/copy.c:1262 commands/copy.c:1279 commands/dbcommands.c:157 commands/dbcommands.c:166 commands/dbcommands.c:175 commands/dbcommands.c:184 commands/dbcommands.c:193 commands/dbcommands.c:202 commands/dbcommands.c:211 commands/dbcommands.c:220 commands/dbcommands.c:229 commands/dbcommands.c:238 commands/dbcommands.c:260 commands/dbcommands.c:1502 commands/dbcommands.c:1511 -#: commands/dbcommands.c:1520 commands/dbcommands.c:1529 commands/extension.c:1735 commands/extension.c:1745 commands/extension.c:1755 commands/extension.c:3055 commands/foreigncmds.c:539 commands/foreigncmds.c:548 commands/functioncmds.c:571 commands/functioncmds.c:737 commands/functioncmds.c:746 commands/functioncmds.c:755 commands/functioncmds.c:764 commands/functioncmds.c:2015 commands/functioncmds.c:2023 commands/publicationcmds.c:90 commands/publicationcmds.c:133 commands/sequence.c:1267 commands/sequence.c:1277 commands/sequence.c:1287 commands/sequence.c:1297 commands/sequence.c:1307 commands/sequence.c:1317 commands/sequence.c:1327 commands/sequence.c:1337 -#: commands/sequence.c:1347 commands/subscriptioncmds.c:105 commands/subscriptioncmds.c:115 commands/subscriptioncmds.c:125 commands/subscriptioncmds.c:135 commands/subscriptioncmds.c:151 commands/subscriptioncmds.c:162 commands/subscriptioncmds.c:176 commands/tablecmds.c:7120 commands/typecmds.c:322 commands/typecmds.c:1357 commands/typecmds.c:1366 commands/typecmds.c:1374 commands/typecmds.c:1382 commands/typecmds.c:1390 commands/user.c:133 commands/user.c:147 commands/user.c:156 commands/user.c:165 commands/user.c:174 commands/user.c:183 commands/user.c:192 commands/user.c:201 commands/user.c:210 commands/user.c:219 commands/user.c:228 commands/user.c:237 commands/user.c:246 +#: commands/dbcommands.c:1520 commands/dbcommands.c:1529 commands/extension.c:1735 commands/extension.c:1745 commands/extension.c:1755 commands/extension.c:3055 commands/foreigncmds.c:539 commands/foreigncmds.c:548 commands/functioncmds.c:572 commands/functioncmds.c:738 commands/functioncmds.c:747 commands/functioncmds.c:756 commands/functioncmds.c:765 commands/functioncmds.c:2017 commands/functioncmds.c:2025 commands/publicationcmds.c:87 commands/publicationcmds.c:130 commands/sequence.c:1267 commands/sequence.c:1277 commands/sequence.c:1287 commands/sequence.c:1297 commands/sequence.c:1307 commands/sequence.c:1317 commands/sequence.c:1327 commands/sequence.c:1337 +#: commands/sequence.c:1347 commands/subscriptioncmds.c:105 commands/subscriptioncmds.c:115 commands/subscriptioncmds.c:125 commands/subscriptioncmds.c:135 commands/subscriptioncmds.c:151 commands/subscriptioncmds.c:162 commands/subscriptioncmds.c:176 commands/tablecmds.c:7223 commands/typecmds.c:322 commands/typecmds.c:1357 commands/typecmds.c:1366 commands/typecmds.c:1374 commands/typecmds.c:1382 commands/typecmds.c:1390 commands/user.c:133 commands/user.c:147 commands/user.c:156 commands/user.c:165 commands/user.c:174 commands/user.c:183 commands/user.c:192 commands/user.c:201 commands/user.c:210 commands/user.c:219 commands/user.c:228 commands/user.c:237 commands/user.c:246 #: commands/user.c:582 commands/user.c:590 commands/user.c:598 commands/user.c:606 commands/user.c:614 commands/user.c:622 commands/user.c:630 commands/user.c:638 commands/user.c:647 commands/user.c:655 commands/user.c:663 parser/parse_utilcmd.c:403 replication/pgoutput/pgoutput.c:141 replication/pgoutput/pgoutput.c:162 replication/walsender.c:890 replication/walsender.c:901 replication/walsender.c:911 #, c-format msgid "conflicting or redundant options" @@ -3270,13 +3280,13 @@ msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "ne peut pas utiliser la clause IN SCHEMA lors de l'utilisation de GRANT/REVOKE ON SCHEMAS" -#: catalog/aclchk.c:1561 catalog/catalog.c:506 catalog/objectaddress.c:1427 commands/analyze.c:389 commands/copy.c:5088 commands/sequence.c:1702 commands/tablecmds.c:6596 commands/tablecmds.c:6739 commands/tablecmds.c:6789 commands/tablecmds.c:6863 commands/tablecmds.c:6933 commands/tablecmds.c:7045 commands/tablecmds.c:7139 commands/tablecmds.c:7198 commands/tablecmds.c:7287 commands/tablecmds.c:7316 commands/tablecmds.c:7471 commands/tablecmds.c:7553 commands/tablecmds.c:7646 commands/tablecmds.c:7801 commands/tablecmds.c:11122 commands/tablecmds.c:11304 commands/tablecmds.c:11464 commands/tablecmds.c:12548 commands/trigger.c:884 parser/analyze.c:2338 parser/parse_relation.c:713 -#: parser/parse_target.c:1036 parser/parse_type.c:144 parser/parse_utilcmd.c:3324 parser/parse_utilcmd.c:3359 parser/parse_utilcmd.c:3401 utils/adt/acl.c:2869 utils/adt/ruleutils.c:2535 +#: catalog/aclchk.c:1561 catalog/catalog.c:506 catalog/objectaddress.c:1427 commands/analyze.c:389 commands/copy.c:5088 commands/sequence.c:1702 commands/tablecmds.c:6686 commands/tablecmds.c:6842 commands/tablecmds.c:6892 commands/tablecmds.c:6966 commands/tablecmds.c:7036 commands/tablecmds.c:7148 commands/tablecmds.c:7242 commands/tablecmds.c:7301 commands/tablecmds.c:7390 commands/tablecmds.c:7419 commands/tablecmds.c:7574 commands/tablecmds.c:7656 commands/tablecmds.c:7749 commands/tablecmds.c:7904 commands/tablecmds.c:11225 commands/tablecmds.c:11406 commands/tablecmds.c:11566 commands/tablecmds.c:12650 commands/trigger.c:884 parser/analyze.c:2338 parser/parse_relation.c:713 +#: parser/parse_target.c:1035 parser/parse_type.c:144 parser/parse_utilcmd.c:3324 parser/parse_utilcmd.c:3360 parser/parse_utilcmd.c:3402 utils/adt/acl.c:2869 utils/adt/ruleutils.c:2537 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "la colonne « %s » de la relation « %s » n'existe pas" -#: catalog/aclchk.c:1824 catalog/objectaddress.c:1267 commands/sequence.c:1140 commands/tablecmds.c:236 commands/tablecmds.c:15921 utils/adt/acl.c:2059 utils/adt/acl.c:2089 utils/adt/acl.c:2121 utils/adt/acl.c:2153 utils/adt/acl.c:2181 utils/adt/acl.c:2211 +#: catalog/aclchk.c:1824 catalog/objectaddress.c:1267 commands/sequence.c:1140 commands/tablecmds.c:236 commands/tablecmds.c:16029 utils/adt/acl.c:2059 utils/adt/acl.c:2089 utils/adt/acl.c:2121 utils/adt/acl.c:2153 utils/adt/acl.c:2181 utils/adt/acl.c:2211 #, c-format msgid "\"%s\" is not a sequence" msgstr "« %s » n'est pas une séquence" @@ -3686,7 +3696,7 @@ msgid "language with OID %u does not exist" msgstr "le langage d'OID %u n'existe pas" -#: catalog/aclchk.c:4188 catalog/aclchk.c:4912 commands/collationcmds.c:533 +#: catalog/aclchk.c:4188 catalog/aclchk.c:4912 commands/collationcmds.c:552 #, c-format msgid "schema with OID %u does not exist" msgstr "le schéma d'OID %u n'existe pas" @@ -3741,7 +3751,7 @@ msgid "event trigger with OID %u does not exist" msgstr "le trigger sur événement d'OID %u n'existe pas" -#: catalog/aclchk.c:5180 commands/collationcmds.c:367 +#: catalog/aclchk.c:5180 commands/collationcmds.c:386 #, c-format msgid "collation with OID %u does not exist" msgstr "le collationnement d'OID %u n'existe pas" @@ -3756,7 +3766,7 @@ msgid "extension with OID %u does not exist" msgstr "l'extension d'OID %u n'existe pas" -#: catalog/aclchk.c:5274 commands/publicationcmds.c:794 +#: catalog/aclchk.c:5274 commands/publicationcmds.c:819 #, c-format msgid "publication with OID %u does not exist" msgstr "la publication d'OID %u n'existe pas" @@ -3806,27 +3816,27 @@ msgid "You can drop %s instead." msgstr "Vous pouvez supprimer %s à la place." -#: catalog/dependency.c:933 catalog/pg_shdepend.c:696 +#: catalog/dependency.c:933 catalog/pg_shdepend.c:697 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "n'a pas pu supprimer %s car il est requis par le système de bases de données" -#: catalog/dependency.c:1129 +#: catalog/dependency.c:1133 #, c-format msgid "drop auto-cascades to %s" msgstr "DROP cascade automatiquement sur %s" -#: catalog/dependency.c:1141 catalog/dependency.c:1150 +#: catalog/dependency.c:1147 catalog/dependency.c:1156 #, c-format msgid "%s depends on %s" msgstr "%s dépend de %s" -#: catalog/dependency.c:1162 catalog/dependency.c:1171 +#: catalog/dependency.c:1171 catalog/dependency.c:1180 #, c-format msgid "drop cascades to %s" msgstr "DROP cascade sur %s" -#: catalog/dependency.c:1179 catalog/pg_shdepend.c:825 +#: catalog/dependency.c:1188 catalog/pg_shdepend.c:826 #, c-format msgid "" "\n" @@ -3841,35 +3851,35 @@ "\n" "et %d autres objets (voir le journal applicatif du serveur pour une liste)" -#: catalog/dependency.c:1191 +#: catalog/dependency.c:1200 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "n'a pas pu supprimer %s car d'autres objets en dépendent" -#: catalog/dependency.c:1193 catalog/dependency.c:1194 catalog/dependency.c:1200 catalog/dependency.c:1201 catalog/dependency.c:1212 catalog/dependency.c:1213 commands/tablecmds.c:1252 commands/tablecmds.c:13167 commands/tablespace.c:481 commands/user.c:1095 commands/view.c:495 libpq/auth.c:334 replication/syncrep.c:1032 storage/lmgr/deadlock.c:1154 storage/lmgr/proc.c:1350 utils/adt/acl.c:5332 utils/adt/jsonfuncs.c:614 utils/adt/jsonfuncs.c:620 utils/misc/guc.c:6771 utils/misc/guc.c:6807 utils/misc/guc.c:6877 utils/misc/guc.c:10982 utils/misc/guc.c:11016 utils/misc/guc.c:11050 utils/misc/guc.c:11093 utils/misc/guc.c:11135 +#: catalog/dependency.c:1202 catalog/dependency.c:1203 catalog/dependency.c:1209 catalog/dependency.c:1210 catalog/dependency.c:1221 catalog/dependency.c:1222 commands/tablecmds.c:1258 commands/tablecmds.c:13269 commands/tablespace.c:481 commands/user.c:1095 commands/view.c:495 libpq/auth.c:334 replication/syncrep.c:1032 storage/lmgr/deadlock.c:1154 storage/lmgr/proc.c:1350 utils/adt/acl.c:5332 utils/adt/jsonfuncs.c:614 utils/adt/jsonfuncs.c:620 utils/misc/guc.c:6771 utils/misc/guc.c:6807 utils/misc/guc.c:6877 utils/misc/guc.c:10982 utils/misc/guc.c:11016 utils/misc/guc.c:11050 utils/misc/guc.c:11093 utils/misc/guc.c:11135 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1195 catalog/dependency.c:1202 +#: catalog/dependency.c:1204 catalog/dependency.c:1211 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Utilisez DROP ... CASCADE pour supprimer aussi les objets dépendants." -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1208 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "ne peut pas supprimer les objets désirés car d'autres objets en dépendent" #. translator: %d always has a value larger than 1 -#: catalog/dependency.c:1208 +#: catalog/dependency.c:1217 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" msgstr[0] "DROP cascade sur %d autre objet" msgstr[1] "DROP cascade sur %d autres objets" -#: catalog/dependency.c:1875 +#: catalog/dependency.c:1884 #, c-format msgid "constant of the type %s cannot be used here" msgstr "la constante de type %s ne peut pas être utilisée ici" @@ -3884,12 +3894,12 @@ msgid "System catalog modifications are currently disallowed." msgstr "Les modifications du catalogue système sont actuellement interdites." -#: catalog/heap.c:509 commands/tablecmds.c:2148 commands/tablecmds.c:2748 commands/tablecmds.c:6193 +#: catalog/heap.c:509 commands/tablecmds.c:2173 commands/tablecmds.c:2773 commands/tablecmds.c:6283 #, c-format msgid "tables can have at most %d columns" msgstr "les tables peuvent avoir au plus %d colonnes" -#: catalog/heap.c:527 commands/tablecmds.c:6486 +#: catalog/heap.c:527 commands/tablecmds.c:6576 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "le nom de la colonne « %s » entre en conflit avec le nom d'une colonne système" @@ -3926,12 +3936,12 @@ msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "aucun collationnement n'a été dérivé pour la colonne « %s » de type collationnable %s" -#: catalog/heap.c:1164 catalog/index.c:865 commands/tablecmds.c:3523 +#: catalog/heap.c:1164 catalog/index.c:866 commands/tablecmds.c:3572 #, c-format msgid "relation \"%s\" already exists" msgstr "la relation « %s » existe déjà" -#: catalog/heap.c:1180 catalog/pg_type.c:428 catalog/pg_type.c:775 commands/typecmds.c:238 commands/typecmds.c:250 commands/typecmds.c:719 commands/typecmds.c:1127 commands/typecmds.c:1339 commands/typecmds.c:2126 +#: catalog/heap.c:1180 catalog/pg_type.c:429 catalog/pg_type.c:783 commands/typecmds.c:238 commands/typecmds.c:250 commands/typecmds.c:719 commands/typecmds.c:1127 commands/typecmds.c:1339 commands/typecmds.c:2126 #, c-format msgid "type \"%s\" already exists" msgstr "le type « %s » existe déjà" @@ -3956,7 +3966,7 @@ msgid "check constraint \"%s\" already exists" msgstr "la contrainte de vérification « %s » existe déjà" -#: catalog/heap.c:2857 catalog/index.c:879 catalog/pg_constraint.c:668 commands/tablecmds.c:8151 +#: catalog/heap.c:2857 catalog/index.c:880 catalog/pg_constraint.c:668 commands/tablecmds.c:8254 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "la contrainte « %s » de la relation « %s » existe déjà" @@ -4006,12 +4016,12 @@ msgid "generation expression is not immutable" msgstr "l'expression de génération n'est pas immuable" -#: catalog/heap.c:3085 rewrite/rewriteHandler.c:1193 +#: catalog/heap.c:3085 rewrite/rewriteHandler.c:1216 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "la colonne « %s » est de type %s alors que l'expression par défaut est de type %s" -#: catalog/heap.c:3090 commands/prepare.c:371 parser/parse_node.c:412 parser/parse_target.c:589 parser/parse_target.c:869 parser/parse_target.c:879 rewrite/rewriteHandler.c:1198 +#: catalog/heap.c:3090 commands/prepare.c:371 parser/parse_node.c:412 parser/parse_target.c:588 parser/parse_target.c:868 parser/parse_target.c:878 rewrite/rewriteHandler.c:1221 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Vous devez réécrire l'expression ou lui appliquer une transformation de type." @@ -4048,251 +4058,251 @@ msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Tronquez la table « %s » en même temps, ou utilisez TRUNCATE ... CASCADE." -#: catalog/index.c:219 parser/parse_utilcmd.c:2131 +#: catalog/index.c:220 parser/parse_utilcmd.c:2131 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "les clés primaires multiples ne sont pas autorisées pour la table « %s »" -#: catalog/index.c:237 +#: catalog/index.c:238 #, c-format msgid "primary keys cannot be expressions" msgstr "les clés primaires ne peuvent pas être des expressions" -#: catalog/index.c:254 +#: catalog/index.c:255 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "la colonne de clé primaire « %s » n'est pas marquée NOT NULL" -#: catalog/index.c:764 catalog/index.c:1902 +#: catalog/index.c:765 catalog/index.c:1912 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "les index définis par l'utilisateur sur les tables du catalogue système ne sont pas supportés" -#: catalog/index.c:804 +#: catalog/index.c:805 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "les collationnements non-déterministes ne sont pas supportés pour la classe d'opérateurs « %s »" -#: catalog/index.c:819 +#: catalog/index.c:820 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "" "la création en parallèle d'un index sur les tables du catalogue système\n" "n'est pas supportée" -#: catalog/index.c:828 catalog/index.c:1281 +#: catalog/index.c:829 catalog/index.c:1282 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "la création de manière concurrente d'un index pour les contraintes d'exclusion n'est pas supportée" -#: catalog/index.c:837 +#: catalog/index.c:838 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "les index partagés ne peuvent pas être créés après initdb" -#: catalog/index.c:857 commands/createas.c:252 commands/sequence.c:154 parser/parse_utilcmd.c:211 +#: catalog/index.c:858 commands/createas.c:252 commands/sequence.c:154 parser/parse_utilcmd.c:211 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "la relation « %s » existe déjà, poursuite du traitement" -#: catalog/index.c:907 +#: catalog/index.c:908 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "OID de l'index de pg_class non configuré en mode de mise à jour binaire" -#: catalog/index.c:2187 +#: catalog/index.c:2208 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY doit être la première action dans une transaction" -#: catalog/index.c:2918 +#: catalog/index.c:2939 #, c-format msgid "building index \"%s\" on table \"%s\" serially" msgstr "construction de l'index « %s » sur la table « %s » séquentiellement" -#: catalog/index.c:2923 +#: catalog/index.c:2944 #, c-format msgid "building index \"%s\" on table \"%s\" with request for %d parallel worker" msgid_plural "building index \"%s\" on table \"%s\" with request for %d parallel workers" msgstr[0] "construction de l'index « %s » sur la table « %s » avec une demande de %d processus parallèle" msgstr[1] "construction de l'index « %s » sur la table « %s » avec une demande de %d processus parallèles" -#: catalog/index.c:3540 +#: catalog/index.c:3561 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "ne peut pas ré-indexer les tables temporaires des autres sessions" -#: catalog/index.c:3551 commands/indexcmds.c:3005 +#: catalog/index.c:3572 commands/indexcmds.c:3005 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "ne peut pas réindexer un index invalide sur une table TOAST" -#: catalog/index.c:3673 +#: catalog/index.c:3694 #, c-format msgid "index \"%s\" was reindexed" msgstr "l'index « %s » a été réindexée" -#: catalog/index.c:3749 commands/indexcmds.c:3026 +#: catalog/index.c:3770 commands/indexcmds.c:3026 #, c-format msgid "REINDEX of partitioned tables is not yet implemented, skipping \"%s\"" msgstr "REINDEX n'est pas encore implémenté pour les tables partitionnées, « %s » ignoré" -#: catalog/index.c:3804 +#: catalog/index.c:3825 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "ne peut pas réindexer l'index invalide « %s.%s » sur une table TOAST, ignoré" -#: catalog/namespace.c:257 catalog/namespace.c:461 catalog/namespace.c:553 commands/trigger.c:5072 +#: catalog/namespace.c:258 catalog/namespace.c:462 catalog/namespace.c:554 commands/trigger.c:5072 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "les références entre bases de données ne sont pas implémentées : « %s.%s.%s »" -#: catalog/namespace.c:314 +#: catalog/namespace.c:315 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "les tables temporaires ne peuvent pas spécifier un nom de schéma" -#: catalog/namespace.c:395 +#: catalog/namespace.c:396 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "n'a pas pu obtenir un verrou sur la relation « %s.%s »" -#: catalog/namespace.c:400 commands/lockcmds.c:143 commands/lockcmds.c:228 +#: catalog/namespace.c:401 commands/lockcmds.c:143 commands/lockcmds.c:228 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "n'a pas pu obtenir un verrou sur la relation « %s »" -#: catalog/namespace.c:428 parser/parse_relation.c:1354 +#: catalog/namespace.c:429 parser/parse_relation.c:1354 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "la relation « %s.%s » n'existe pas" -#: catalog/namespace.c:433 parser/parse_relation.c:1367 parser/parse_relation.c:1375 +#: catalog/namespace.c:434 parser/parse_relation.c:1367 parser/parse_relation.c:1375 #, c-format msgid "relation \"%s\" does not exist" msgstr "la relation « %s » n'existe pas" -#: catalog/namespace.c:499 catalog/namespace.c:3030 commands/extension.c:1519 commands/extension.c:1525 +#: catalog/namespace.c:500 catalog/namespace.c:3031 commands/extension.c:1519 commands/extension.c:1525 #, c-format msgid "no schema has been selected to create in" msgstr "aucun schéma n'a été sélectionné pour cette création" -#: catalog/namespace.c:651 catalog/namespace.c:664 +#: catalog/namespace.c:652 catalog/namespace.c:665 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "ne peut pas créer les relations dans les schémas temporaires d'autres sessions" -#: catalog/namespace.c:655 +#: catalog/namespace.c:656 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "ne peut pas créer une relation temporaire dans un schéma non temporaire" -#: catalog/namespace.c:670 +#: catalog/namespace.c:671 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "seules les relations temporaires peuvent être créées dans des schémas temporaires" -#: catalog/namespace.c:2222 +#: catalog/namespace.c:2223 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "l'objet statistique « %s » n'existe pas" -#: catalog/namespace.c:2345 +#: catalog/namespace.c:2346 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "l'analyseur de recherche plein texte « %s » n'existe pas" -#: catalog/namespace.c:2471 +#: catalog/namespace.c:2472 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "le dictionnaire de recherche plein texte « %s » n'existe pas" -#: catalog/namespace.c:2598 +#: catalog/namespace.c:2599 #, c-format msgid "text search template \"%s\" does not exist" msgstr "le modèle de recherche plein texte « %s » n'existe pas" -#: catalog/namespace.c:2724 commands/tsearchcmds.c:1194 utils/cache/ts_cache.c:617 +#: catalog/namespace.c:2725 commands/tsearchcmds.c:1194 utils/cache/ts_cache.c:617 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "la configuration de recherche plein texte « %s » n'existe pas" -#: catalog/namespace.c:2837 parser/parse_expr.c:872 parser/parse_target.c:1228 +#: catalog/namespace.c:2838 parser/parse_expr.c:872 parser/parse_target.c:1227 #, c-format msgid "cross-database references are not implemented: %s" msgstr "les références entre bases de données ne sont pas implémentées : %s" -#: catalog/namespace.c:2843 gram.y:14982 gram.y:16436 parser/parse_expr.c:879 parser/parse_target.c:1235 +#: catalog/namespace.c:2844 gram.y:14982 gram.y:16451 parser/parse_expr.c:879 parser/parse_target.c:1234 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "mauvaise qualification du nom (trop de points entre les noms) : %s" -#: catalog/namespace.c:2973 +#: catalog/namespace.c:2974 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "ne peut pas déplacer les objets dans ou à partir des schémas temporaires" -#: catalog/namespace.c:2979 +#: catalog/namespace.c:2980 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "ne peut pas déplacer les objets dans ou à partir des schémas TOAST" -#: catalog/namespace.c:3052 commands/schemacmds.c:256 commands/schemacmds.c:336 commands/tablecmds.c:1197 +#: catalog/namespace.c:3053 commands/schemacmds.c:256 commands/schemacmds.c:336 commands/tablecmds.c:1203 #, c-format msgid "schema \"%s\" does not exist" msgstr "le schéma « %s » n'existe pas" -#: catalog/namespace.c:3083 +#: catalog/namespace.c:3084 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "nom de relation incorrecte (trop de points entre les noms) : %s" -#: catalog/namespace.c:3646 +#: catalog/namespace.c:3647 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "le collationnement « %s » pour l'encodage « %s » n'existe pas" -#: catalog/namespace.c:3701 +#: catalog/namespace.c:3702 #, c-format msgid "conversion \"%s\" does not exist" msgstr "la conversion « %s » n'existe pas" -#: catalog/namespace.c:3965 +#: catalog/namespace.c:3966 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "droit refusé pour la création de tables temporaires dans la base de données « %s »" -#: catalog/namespace.c:3981 +#: catalog/namespace.c:3982 #, c-format msgid "cannot create temporary tables during recovery" msgstr "ne peut pas créer des tables temporaires lors de la restauration" -#: catalog/namespace.c:3987 +#: catalog/namespace.c:3988 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "ne peut pas créer de tables temporaires pendant une opération parallèle" -#: catalog/namespace.c:4286 commands/tablespace.c:1217 commands/variable.c:64 utils/misc/guc.c:11167 utils/misc/guc.c:11245 +#: catalog/namespace.c:4289 commands/tablespace.c:1213 commands/variable.c:64 utils/misc/guc.c:11167 utils/misc/guc.c:11245 #, c-format msgid "List syntax is invalid." msgstr "La syntaxe de la liste est invalide." -#: catalog/objectaddress.c:1275 catalog/pg_publication.c:57 commands/policy.c:96 commands/policy.c:376 commands/tablecmds.c:230 commands/tablecmds.c:272 commands/tablecmds.c:1992 commands/tablecmds.c:5635 commands/tablecmds.c:11239 +#: catalog/objectaddress.c:1275 catalog/pg_publication.c:58 commands/policy.c:96 commands/policy.c:376 commands/tablecmds.c:230 commands/tablecmds.c:272 commands/tablecmds.c:2017 commands/tablecmds.c:5725 commands/tablecmds.c:11342 #, c-format msgid "\"%s\" is not a table" msgstr "« %s » n'est pas une table" -#: catalog/objectaddress.c:1282 commands/tablecmds.c:242 commands/tablecmds.c:5674 commands/tablecmds.c:15926 commands/view.c:119 +#: catalog/objectaddress.c:1282 commands/tablecmds.c:242 commands/tablecmds.c:5764 commands/tablecmds.c:16034 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "« %s » n'est pas une vue" -#: catalog/objectaddress.c:1289 commands/matview.c:175 commands/tablecmds.c:248 commands/tablecmds.c:15931 +#: catalog/objectaddress.c:1289 commands/matview.c:175 commands/tablecmds.c:248 commands/tablecmds.c:16039 #, c-format msgid "\"%s\" is not a materialized view" msgstr "« %s » n'est pas une vue matérialisée" -#: catalog/objectaddress.c:1296 commands/tablecmds.c:266 commands/tablecmds.c:5677 commands/tablecmds.c:15936 +#: catalog/objectaddress.c:1296 commands/tablecmds.c:266 commands/tablecmds.c:5767 commands/tablecmds.c:16044 #, c-format msgid "\"%s\" is not a foreign table" msgstr "« %s » n'est pas une table distante" @@ -4312,7 +4322,7 @@ msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "la valeur par défaut de la colonne « %s » de la relation « %s » n'existe pas" -#: catalog/objectaddress.c:1550 commands/functioncmds.c:134 commands/tablecmds.c:258 commands/typecmds.c:263 commands/typecmds.c:3282 parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:845 utils/adt/acl.c:4435 +#: catalog/objectaddress.c:1550 commands/functioncmds.c:135 commands/tablecmds.c:258 commands/typecmds.c:263 commands/typecmds.c:3283 parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:845 utils/adt/acl.c:4435 #, c-format msgid "type \"%s\" does not exist" msgstr "le type « %s » n'existe pas" @@ -4392,12 +4402,12 @@ msgid "argument list length must be exactly %d" msgstr "la longueur de la liste d'arguments doit être %d exactement" -#: catalog/objectaddress.c:2393 libpq/be-fsstubs.c:321 +#: catalog/objectaddress.c:2393 libpq/be-fsstubs.c:318 #, c-format msgid "must be owner of large object %u" msgstr "doit être le propriétaire du Large Object %u" -#: catalog/objectaddress.c:2408 commands/functioncmds.c:1446 +#: catalog/objectaddress.c:2408 commands/functioncmds.c:1448 #, c-format msgid "must be owner of type %s or type %s" msgstr "doit être le propriétaire du type %s ou du type %s" @@ -4412,80 +4422,80 @@ msgid "must have CREATEROLE privilege" msgstr "doit avoir l'attribut CREATEROLE" -#: catalog/objectaddress.c:2544 +#: catalog/objectaddress.c:2545 #, c-format msgid "unrecognized object type \"%s\"" msgstr "type d'objet non reconnu « %s »" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2772 +#: catalog/objectaddress.c:2773 #, c-format msgid "column %s of %s" msgstr "colonne %s de %s" -#: catalog/objectaddress.c:2782 +#: catalog/objectaddress.c:2783 #, c-format msgid "function %s" msgstr "fonction %s" -#: catalog/objectaddress.c:2787 +#: catalog/objectaddress.c:2788 #, c-format msgid "type %s" msgstr "type %s" -#: catalog/objectaddress.c:2817 +#: catalog/objectaddress.c:2818 #, c-format msgid "cast from %s to %s" msgstr "conversion de %s en %s" -#: catalog/objectaddress.c:2845 +#: catalog/objectaddress.c:2846 #, c-format msgid "collation %s" msgstr "collationnement %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2871 +#: catalog/objectaddress.c:2872 #, c-format msgid "constraint %s on %s" msgstr "contrainte %s sur %s" -#: catalog/objectaddress.c:2877 +#: catalog/objectaddress.c:2878 #, c-format msgid "constraint %s" msgstr "contrainte %s" -#: catalog/objectaddress.c:2904 +#: catalog/objectaddress.c:2905 #, c-format msgid "conversion %s" msgstr "conversion %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:2943 +#: catalog/objectaddress.c:2944 #, c-format msgid "default value for %s" msgstr "valeur par défaut pour %s" -#: catalog/objectaddress.c:2952 +#: catalog/objectaddress.c:2953 #, c-format msgid "language %s" msgstr "langage %s" -#: catalog/objectaddress.c:2957 +#: catalog/objectaddress.c:2958 #, c-format msgid "large object %u" msgstr "« Large Object » %u" -#: catalog/objectaddress.c:2962 +#: catalog/objectaddress.c:2963 #, c-format msgid "operator %s" msgstr "opérateur %s" -#: catalog/objectaddress.c:2994 +#: catalog/objectaddress.c:2995 #, c-format msgid "operator class %s for access method %s" msgstr "classe d'opérateur %s pour la méthode d'accès %s" -#: catalog/objectaddress.c:3017 +#: catalog/objectaddress.c:3018 #, c-format msgid "access method %s" msgstr "méthode d'accès %s" @@ -4494,7 +4504,7 @@ #. first two %s's are data type names, the third %s is the #. description of the operator family, and the last %s is the #. textual form of the operator with arguments. -#: catalog/objectaddress.c:3059 +#: catalog/objectaddress.c:3060 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "opérateur %d (%s, %s) de %s : %s" @@ -4503,221 +4513,221 @@ #. are data type names, the third %s is the description of the #. operator family, and the last %s is the textual form of the #. function with arguments. -#: catalog/objectaddress.c:3109 +#: catalog/objectaddress.c:3110 #, c-format msgid "function %d (%s, %s) of %s: %s" msgstr "fonction %d (%s, %s) de %s : %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3153 +#: catalog/objectaddress.c:3154 #, c-format msgid "rule %s on %s" msgstr "règle %s sur %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3191 +#: catalog/objectaddress.c:3192 #, c-format msgid "trigger %s on %s" msgstr "trigger %s sur %s" -#: catalog/objectaddress.c:3207 +#: catalog/objectaddress.c:3208 #, c-format msgid "schema %s" msgstr "schéma %s" -#: catalog/objectaddress.c:3230 +#: catalog/objectaddress.c:3231 #, c-format msgid "statistics object %s" msgstr "objet statistique %s" -#: catalog/objectaddress.c:3257 +#: catalog/objectaddress.c:3258 #, c-format msgid "text search parser %s" msgstr "analyseur %s de la recherche plein texte" -#: catalog/objectaddress.c:3283 +#: catalog/objectaddress.c:3284 #, c-format msgid "text search dictionary %s" msgstr "dictionnaire %s de la recherche plein texte" -#: catalog/objectaddress.c:3309 +#: catalog/objectaddress.c:3310 #, c-format msgid "text search template %s" msgstr "modèle %s de la recherche plein texte" -#: catalog/objectaddress.c:3335 +#: catalog/objectaddress.c:3336 #, c-format msgid "text search configuration %s" msgstr "configuration %s de recherche plein texte" -#: catalog/objectaddress.c:3344 +#: catalog/objectaddress.c:3345 #, c-format msgid "role %s" msgstr "rôle %s" -#: catalog/objectaddress.c:3357 +#: catalog/objectaddress.c:3358 #, c-format msgid "database %s" msgstr "base de données %s" -#: catalog/objectaddress.c:3369 +#: catalog/objectaddress.c:3370 #, c-format msgid "tablespace %s" msgstr "tablespace %s" -#: catalog/objectaddress.c:3378 +#: catalog/objectaddress.c:3379 #, c-format msgid "foreign-data wrapper %s" msgstr "wrapper de données distantes %s" -#: catalog/objectaddress.c:3387 +#: catalog/objectaddress.c:3388 #, c-format msgid "server %s" msgstr "serveur %s" -#: catalog/objectaddress.c:3415 +#: catalog/objectaddress.c:3416 #, c-format msgid "user mapping for %s on server %s" msgstr "correspondance utilisateur pour %s sur le serveur %s" -#: catalog/objectaddress.c:3460 +#: catalog/objectaddress.c:3461 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "droits par défaut pour les nouvelles relations appartenant au rôle %s dans le schéma %s" -#: catalog/objectaddress.c:3464 +#: catalog/objectaddress.c:3465 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "droits par défaut pour les nouvelles relations appartenant au rôle %s" -#: catalog/objectaddress.c:3470 +#: catalog/objectaddress.c:3471 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "droits par défaut pour les nouvelles séquences appartenant au rôle %s dans le schéma %s" -#: catalog/objectaddress.c:3474 +#: catalog/objectaddress.c:3475 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "droits par défaut pour les nouvelles séquences appartenant au rôle %s" -#: catalog/objectaddress.c:3480 +#: catalog/objectaddress.c:3481 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "droits par défaut pour les nouvelles fonctions appartenant au rôle %s dans le schéma %s" -#: catalog/objectaddress.c:3484 +#: catalog/objectaddress.c:3485 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "droits par défaut pour les nouvelles fonctions appartenant au rôle %s" -#: catalog/objectaddress.c:3490 +#: catalog/objectaddress.c:3491 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "droits par défaut pour les nouveaux types appartenant au rôle %s dans le schéma %s" -#: catalog/objectaddress.c:3494 +#: catalog/objectaddress.c:3495 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "droits par défaut pour les nouveaux types appartenant au rôle %s" -#: catalog/objectaddress.c:3500 +#: catalog/objectaddress.c:3501 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "droits par défaut pour les nouveaux schémas appartenant au rôle %s" -#: catalog/objectaddress.c:3507 +#: catalog/objectaddress.c:3508 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "droits par défaut appartenant au rôle %s dans le schéma %s" -#: catalog/objectaddress.c:3511 +#: catalog/objectaddress.c:3512 #, c-format msgid "default privileges belonging to role %s" msgstr "droits par défaut appartenant au rôle %s" -#: catalog/objectaddress.c:3529 +#: catalog/objectaddress.c:3530 #, c-format msgid "extension %s" msgstr "extension %s" -#: catalog/objectaddress.c:3542 +#: catalog/objectaddress.c:3543 #, c-format msgid "event trigger %s" msgstr "trigger sur événement %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3578 +#: catalog/objectaddress.c:3579 #, c-format msgid "policy %s on %s" msgstr "politique %s sur %s" -#: catalog/objectaddress.c:3588 +#: catalog/objectaddress.c:3589 #, c-format msgid "publication %s" msgstr "publication %s" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:3614 +#: catalog/objectaddress.c:3615 #, c-format msgid "publication of %s in publication %s" msgstr "publication de %s dans la publication %s" -#: catalog/objectaddress.c:3623 +#: catalog/objectaddress.c:3624 #, c-format msgid "subscription %s" msgstr "souscription %s" -#: catalog/objectaddress.c:3642 +#: catalog/objectaddress.c:3643 #, c-format msgid "transform for %s language %s" msgstr "transformation pour %s langage %s" -#: catalog/objectaddress.c:3705 +#: catalog/objectaddress.c:3706 #, c-format msgid "table %s" msgstr "table %s" -#: catalog/objectaddress.c:3710 +#: catalog/objectaddress.c:3711 #, c-format msgid "index %s" msgstr "index %s" -#: catalog/objectaddress.c:3714 +#: catalog/objectaddress.c:3715 #, c-format msgid "sequence %s" msgstr "séquence %s" -#: catalog/objectaddress.c:3718 +#: catalog/objectaddress.c:3719 #, c-format msgid "toast table %s" msgstr "table TOAST %s" -#: catalog/objectaddress.c:3722 +#: catalog/objectaddress.c:3723 #, c-format msgid "view %s" msgstr "vue %s" -#: catalog/objectaddress.c:3726 +#: catalog/objectaddress.c:3727 #, c-format msgid "materialized view %s" msgstr "vue matérialisée %s" -#: catalog/objectaddress.c:3730 +#: catalog/objectaddress.c:3731 #, c-format msgid "composite type %s" msgstr "type composite %s" -#: catalog/objectaddress.c:3734 +#: catalog/objectaddress.c:3735 #, c-format msgid "foreign table %s" msgstr "table distante %s" -#: catalog/objectaddress.c:3739 +#: catalog/objectaddress.c:3740 #, c-format msgid "relation %s" msgstr "relation %s" -#: catalog/objectaddress.c:3776 +#: catalog/objectaddress.c:3777 #, c-format msgid "operator family %s for access method %s" msgstr "famille d'opérateur %s pour la méthode d'accès %s" @@ -4777,7 +4787,7 @@ msgid "return type of combine function %s is not %s" msgstr "le type de retour de la fonction de d'unification %s n'est pas %s" -#: catalog/pg_aggregate.c:438 executor/nodeAgg.c:4197 +#: catalog/pg_aggregate.c:438 executor/nodeAgg.c:4194 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "la fonction d'unification avec le type de transaction %s ne doit pas être déclaré STRICT" @@ -4837,7 +4847,7 @@ msgid "cannot change number of direct arguments of an aggregate function" msgstr "ne peut pas changer le nombre d'arguments directs d'une fonction d'agrégation" -#: catalog/pg_aggregate.c:870 commands/functioncmds.c:668 commands/typecmds.c:1660 commands/typecmds.c:1706 commands/typecmds.c:1758 commands/typecmds.c:1795 commands/typecmds.c:1829 commands/typecmds.c:1863 commands/typecmds.c:1897 commands/typecmds.c:1974 commands/typecmds.c:2016 parser/parse_func.c:414 parser/parse_func.c:443 parser/parse_func.c:468 parser/parse_func.c:482 parser/parse_func.c:602 parser/parse_func.c:622 parser/parse_func.c:2129 parser/parse_func.c:2320 +#: catalog/pg_aggregate.c:870 commands/functioncmds.c:669 commands/typecmds.c:1660 commands/typecmds.c:1706 commands/typecmds.c:1758 commands/typecmds.c:1795 commands/typecmds.c:1829 commands/typecmds.c:1863 commands/typecmds.c:1897 commands/typecmds.c:1974 commands/typecmds.c:2016 parser/parse_func.c:414 parser/parse_func.c:443 parser/parse_func.c:468 parser/parse_func.c:482 parser/parse_func.c:602 parser/parse_func.c:622 parser/parse_func.c:2129 parser/parse_func.c:2320 #, c-format msgid "function %s does not exist" msgstr "la fonction %s n'existe pas" @@ -4907,12 +4917,12 @@ msgid "default conversion for %s to %s already exists" msgstr "la conversion par défaut de %s vers %s existe déjà" -#: catalog/pg_depend.c:162 commands/extension.c:3332 +#: catalog/pg_depend.c:169 commands/extension.c:3332 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "%s est déjà un membre de l'extension « %s »" -#: catalog/pg_depend.c:538 +#: catalog/pg_depend.c:545 #, c-format msgid "cannot remove dependency on %s because it is a system object" msgstr "ne peut pas supprimer la dépendance sur %s car il s'agit d'un objet système" @@ -5112,42 +5122,42 @@ msgid "SQL function \"%s\"" msgstr "Fonction SQL « %s »" -#: catalog/pg_publication.c:59 +#: catalog/pg_publication.c:60 #, c-format msgid "Only tables can be added to publications." msgstr "Seules des tables peuvent être ajoutées aux publications." -#: catalog/pg_publication.c:65 +#: catalog/pg_publication.c:66 #, c-format msgid "\"%s\" is a system table" msgstr "« %s » est une table système" -#: catalog/pg_publication.c:67 +#: catalog/pg_publication.c:68 #, c-format msgid "System tables cannot be added to publications." msgstr "Les tables systèmes ne peuvent pas être ajoutées à une publication." -#: catalog/pg_publication.c:73 +#: catalog/pg_publication.c:74 #, c-format msgid "table \"%s\" cannot be replicated" msgstr "la table « %s » ne peut pas être répliquée" -#: catalog/pg_publication.c:75 +#: catalog/pg_publication.c:76 #, c-format msgid "Temporary and unlogged relations cannot be replicated." msgstr "Les tables tremporaires et les tables non journalisées ne peuvent pas être répliquées." -#: catalog/pg_publication.c:174 +#: catalog/pg_publication.c:251 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "la relation « %s » est déjà un membre de la publication « %s »" -#: catalog/pg_publication.c:470 commands/publicationcmds.c:451 commands/publicationcmds.c:762 +#: catalog/pg_publication.c:533 commands/publicationcmds.c:458 commands/publicationcmds.c:787 #, c-format msgid "publication \"%s\" does not exist" msgstr "la publication « %s » n'existe pas" -#: catalog/pg_shdepend.c:832 +#: catalog/pg_shdepend.c:833 #, c-format msgid "" "\n" @@ -5162,55 +5172,55 @@ "\n" "et des objets dans %d autres bases de données (voir le journal applicatif du serveur pour une liste)" -#: catalog/pg_shdepend.c:1138 +#: catalog/pg_shdepend.c:1139 #, c-format msgid "role %u was concurrently dropped" msgstr "le rôle %u a été supprimé simultanément" -#: catalog/pg_shdepend.c:1150 +#: catalog/pg_shdepend.c:1151 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "le tablespace %u a été supprimé simultanément" -#: catalog/pg_shdepend.c:1164 +#: catalog/pg_shdepend.c:1165 #, c-format msgid "database %u was concurrently dropped" msgstr "la base de données %u a été supprimé simultanément" -#: catalog/pg_shdepend.c:1209 +#: catalog/pg_shdepend.c:1216 #, c-format msgid "owner of %s" msgstr "propriétaire de %s" -#: catalog/pg_shdepend.c:1211 +#: catalog/pg_shdepend.c:1218 #, c-format msgid "privileges for %s" msgstr "droits pour %s" -#: catalog/pg_shdepend.c:1213 +#: catalog/pg_shdepend.c:1220 #, c-format msgid "target of %s" msgstr "cible de %s" -#: catalog/pg_shdepend.c:1215 +#: catalog/pg_shdepend.c:1222 #, c-format msgid "tablespace for %s" msgstr "tablespace pour %s" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1223 +#: catalog/pg_shdepend.c:1230 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" msgstr[0] "%d objet dans %s" msgstr[1] "%d objets dans %s" -#: catalog/pg_shdepend.c:1334 +#: catalog/pg_shdepend.c:1341 #, c-format msgid "cannot drop objects owned by %s because they are required by the database system" msgstr "n'a pas pu supprimer les objets appartenant à %s car ils sont nécessaires au système de bases de données" -#: catalog/pg_shdepend.c:1481 +#: catalog/pg_shdepend.c:1488 #, c-format msgid "cannot reassign ownership of objects owned by %s because they are required by the database system" msgstr "" @@ -5222,47 +5232,47 @@ msgid "subscription \"%s\" does not exist" msgstr "la souscription « %s » n'existe pas" -#: catalog/pg_type.c:131 catalog/pg_type.c:468 +#: catalog/pg_type.c:131 catalog/pg_type.c:469 #, c-format msgid "pg_type OID value not set when in binary upgrade mode" msgstr "OID de pg_type non configuré en mode de mise à jour binaire" -#: catalog/pg_type.c:249 +#: catalog/pg_type.c:250 #, c-format msgid "invalid type internal size %d" msgstr "taille interne de type invalide %d" -#: catalog/pg_type.c:265 catalog/pg_type.c:273 catalog/pg_type.c:281 catalog/pg_type.c:290 +#: catalog/pg_type.c:266 catalog/pg_type.c:274 catalog/pg_type.c:282 catalog/pg_type.c:291 #, c-format msgid "alignment \"%c\" is invalid for passed-by-value type of size %d" msgstr "l'alignement « %c » est invalide pour le type passé par valeur de taille %d" -#: catalog/pg_type.c:297 +#: catalog/pg_type.c:298 #, c-format msgid "internal size %d is invalid for passed-by-value type" msgstr "la taille interne %d est invalide pour le type passé par valeur" -#: catalog/pg_type.c:307 catalog/pg_type.c:313 +#: catalog/pg_type.c:308 catalog/pg_type.c:314 #, c-format msgid "alignment \"%c\" is invalid for variable-length type" msgstr "l'alignement « %c » est invalide pour le type de longueur variable" -#: catalog/pg_type.c:321 commands/typecmds.c:3734 +#: catalog/pg_type.c:322 commands/typecmds.c:3735 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "les types de taille fixe doivent avoir un stockage de base" -#: catalog/pg_type.c:839 +#: catalog/pg_type.c:847 #, c-format msgid "could not form array type name for type \"%s\"" msgstr "n'a pas pu former le nom du type array pour le type de données « %s »" -#: catalog/storage.c:450 storage/buffer/bufmgr.c:935 +#: catalog/storage.c:477 storage/buffer/bufmgr.c:944 #, c-format msgid "invalid page in block %u of relation %s" msgstr "page invalide dans le bloc %u de la relation %s" -#: catalog/toasting.c:106 commands/indexcmds.c:639 commands/tablecmds.c:5647 commands/tablecmds.c:15791 +#: catalog/toasting.c:112 commands/indexcmds.c:639 commands/tablecmds.c:5737 commands/tablecmds.c:15899 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "« %s » n'est ni une table ni une vue matérialisée" @@ -5347,7 +5357,7 @@ msgid "must specify both or neither of serialization and deserialization functions" msgstr "doit spécifier soit toutes soit aucunes des fonctions de sérialisation et désérialisation" -#: commands/aggregatecmds.c:436 commands/functioncmds.c:616 +#: commands/aggregatecmds.c:436 commands/functioncmds.c:617 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "le paramètre « parallel » doit être SAFE, RESTRICTED ou UNSAFE" @@ -5377,7 +5387,7 @@ msgid "language \"%s\" already exists" msgstr "le langage « %s » existe déjà" -#: commands/alter.c:96 commands/publicationcmds.c:183 +#: commands/alter.c:96 commands/publicationcmds.c:180 #, c-format msgid "publication \"%s\" already exists" msgstr "la publication « %s » existe déjà" @@ -5491,64 +5501,64 @@ msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "la colonne « %s » de la relation « %s » apparait plus d'une fois" -#: commands/analyze.c:710 +#: commands/analyze.c:726 #, c-format msgid "automatic analyze of table \"%s.%s.%s\" system usage: %s" msgstr "ANALYZE automatique de la table « %s.%s.%s » ; utilisation système : %s" -#: commands/analyze.c:1179 +#: commands/analyze.c:1184 #, c-format msgid "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead rows; %d rows in sample, %.0f estimated total rows" msgstr "« %s » : %d pages parcourues parmi %u, contenant %.0f lignes à conserver et %.0f lignes à supprimer ; %d lignes dans l'échantillon, %.0f lignes totales estimées" -#: commands/analyze.c:1259 +#: commands/analyze.c:1264 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables" msgstr "ignore l'analyse de l'arbre d'héritage « %s.%s » --- cet arbre d'héritage ne contient pas de tables enfants" -#: commands/analyze.c:1357 +#: commands/analyze.c:1362 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "ignore l'analyse de l'arbre d'héritage « %s.%s » --- cet arbre d'héritage ne contient pas de tables enfants analysables" -#: commands/async.c:643 +#: commands/async.c:650 #, c-format msgid "channel name cannot be empty" msgstr "le nom du canal ne peut pas être vide" -#: commands/async.c:649 +#: commands/async.c:656 #, c-format msgid "channel name too long" msgstr "nom du canal trop long" -#: commands/async.c:654 +#: commands/async.c:661 #, c-format msgid "payload string too long" msgstr "chaîne de charge trop longue" -#: commands/async.c:873 +#: commands/async.c:880 #, c-format msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "" "ne peut pas exécuter PREPARE sur une transaction qui a exécuté LISTEN,\n" "UNLISTEN ou NOTIFY" -#: commands/async.c:979 +#: commands/async.c:984 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "trop de notifications dans la queue NOTIFY" -#: commands/async.c:1650 +#: commands/async.c:1620 #, c-format msgid "NOTIFY queue is %.0f%% full" msgstr "la queue NOTIFY est pleine à %.0f%%" -#: commands/async.c:1652 +#: commands/async.c:1622 #, c-format msgid "The server process with PID %d is among those with the oldest transactions." msgstr "Le processus serveur de PID %d est parmi ceux qui ont les transactions les plus anciennes." -#: commands/async.c:1655 +#: commands/async.c:1625 #, c-format msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction." msgstr "" @@ -5570,7 +5580,7 @@ msgid "there is no previously clustered index for table \"%s\"" msgstr "il n'y a pas d'index CLUSTER précédent pour la table « %s »" -#: commands/cluster.c:165 commands/tablecmds.c:13004 commands/tablecmds.c:14874 +#: commands/cluster.c:165 commands/tablecmds.c:13106 commands/tablecmds.c:14982 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "l'index « %s » pour la table « %s » n'existe pas" @@ -5585,7 +5595,7 @@ msgid "cannot vacuum temporary tables of other sessions" msgstr "ne peut pas exécuter VACUUM sur les tables temporaires des autres sessions" -#: commands/cluster.c:432 commands/tablecmds.c:14884 +#: commands/cluster.c:432 commands/tablecmds.c:14992 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "« %s » n'est pas un index de la table « %s »" @@ -5666,42 +5676,47 @@ msgid "nondeterministic collations not supported with this provider" msgstr "les collationnements non déterministes ne sont pas supportés avec ce fournisseur" -#: commands/collationcmds.c:265 +#: commands/collationcmds.c:226 +#, c-format +msgid "current database's encoding is not supported with this provider" +msgstr "l'encodage de la base de données courante n'est pas supporté avec ce fournisseur" + +#: commands/collationcmds.c:284 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "le collationnament « %s » pour l'encodage « %s » existe déjà dans le schéma « %s »" -#: commands/collationcmds.c:276 +#: commands/collationcmds.c:295 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "le collationnement « %s » existe déjà dans le schéma « %s »" -#: commands/collationcmds.c:324 +#: commands/collationcmds.c:343 #, c-format msgid "changing version from %s to %s" msgstr "changement de version de %s à %s" -#: commands/collationcmds.c:339 +#: commands/collationcmds.c:358 #, c-format msgid "version has not changed" msgstr "la version n'a pas changé" -#: commands/collationcmds.c:470 +#: commands/collationcmds.c:489 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "n'a pas pu convertir le nom de locale « %s » en balise de langage : %s" -#: commands/collationcmds.c:528 +#: commands/collationcmds.c:547 #, c-format msgid "must be superuser to import system collations" msgstr "doit être super-utilisateur pour importer les collationnements systèmes" -#: commands/collationcmds.c:556 commands/copy.c:1894 commands/copy.c:3481 libpq/be-secure-common.c:81 +#: commands/collationcmds.c:575 commands/copy.c:1894 commands/copy.c:3481 libpq/be-secure-common.c:81 #, c-format msgid "could not execute command \"%s\": %m" msgstr "n'a pas pu exécuter la commande « %s » : %m" -#: commands/collationcmds.c:687 +#: commands/collationcmds.c:706 #, c-format msgid "no usable system locales were found" msgstr "aucune locale système utilisable n'a été trouvée" @@ -6258,12 +6273,12 @@ msgid "Generated columns cannot be used in COPY." msgstr "Les colonnes générées ne peuvent pas être utilisées dans COPY." -#: commands/copy.c:5093 commands/indexcmds.c:1701 commands/statscmds.c:224 commands/tablecmds.c:2179 commands/tablecmds.c:2798 commands/tablecmds.c:3185 parser/parse_relation.c:3508 parser/parse_relation.c:3528 utils/adt/tsvector_op.c:2680 +#: commands/copy.c:5093 commands/indexcmds.c:1701 commands/statscmds.c:224 commands/tablecmds.c:2204 commands/tablecmds.c:2823 commands/tablecmds.c:3210 parser/parse_relation.c:3508 parser/parse_relation.c:3528 utils/adt/tsvector_op.c:2680 #, c-format msgid "column \"%s\" does not exist" msgstr "la colonne « %s » n'existe pas" -#: commands/copy.c:5100 commands/tablecmds.c:2205 commands/trigger.c:893 parser/parse_target.c:1052 parser/parse_target.c:1063 +#: commands/copy.c:5100 commands/tablecmds.c:2230 commands/trigger.c:893 parser/parse_target.c:1051 parser/parse_target.c:1062 #, c-format msgid "column \"%s\" specified more than once" msgstr "la colonne « %s » est spécifiée plus d'une fois" @@ -6490,7 +6505,7 @@ "Vous devez d'abord les déplacer dans le tablespace par défaut de la base\n" "de données avant d'utiliser cette commande." -#: commands/dbcommands.c:1404 commands/dbcommands.c:1980 commands/dbcommands.c:2203 commands/dbcommands.c:2261 commands/tablespace.c:631 +#: commands/dbcommands.c:1404 commands/dbcommands.c:1980 commands/dbcommands.c:2203 commands/dbcommands.c:2261 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "" @@ -6529,7 +6544,7 @@ msgstr[0] "%d autre session utilise la base de données." msgstr[1] "%d autres sessions utilisent la base de données." -#: commands/dbcommands.c:2094 storage/ipc/procarray.c:3023 +#: commands/dbcommands.c:2094 storage/ipc/procarray.c:3106 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -6571,7 +6586,7 @@ msgid "invalid argument for %s: \"%s\"" msgstr "argument invalide pour %s : « %s »" -#: commands/dropcmds.c:100 commands/functioncmds.c:1275 utils/adt/ruleutils.c:2633 +#: commands/dropcmds.c:100 commands/functioncmds.c:1276 utils/adt/ruleutils.c:2635 #, c-format msgid "\"%s\" is an aggregate function" msgstr "« %s » est une fonction d'agrégat" @@ -6581,12 +6596,12 @@ msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Utiliser DROP AGGREGATE pour supprimer les fonctions d'agrégat." -#: commands/dropcmds.c:158 commands/sequence.c:447 commands/tablecmds.c:3269 commands/tablecmds.c:3427 commands/tablecmds.c:3472 commands/tablecmds.c:15253 tcop/utility.c:1307 +#: commands/dropcmds.c:158 commands/sequence.c:447 commands/tablecmds.c:3294 commands/tablecmds.c:3452 commands/tablecmds.c:3505 commands/tablecmds.c:15361 tcop/utility.c:1324 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "la relation « %s » n'existe pas, poursuite du traitement" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1202 +#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1208 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "le schéma « %s » n'existe pas, poursuite du traitement" @@ -7174,346 +7189,346 @@ msgid "importing foreign table \"%s\"" msgstr "import de la table distante « %s »" -#: commands/functioncmds.c:105 +#: commands/functioncmds.c:106 #, c-format msgid "SQL function cannot return shell type %s" msgstr "la fonction SQL ne peut pas retourner le type shell %s" -#: commands/functioncmds.c:110 +#: commands/functioncmds.c:111 #, c-format msgid "return type %s is only a shell" msgstr "le type de retour %s est seulement un shell" -#: commands/functioncmds.c:140 parser/parse_type.c:354 +#: commands/functioncmds.c:141 parser/parse_type.c:354 #, c-format msgid "type modifier cannot be specified for shell type \"%s\"" msgstr "le modificateur de type ne peut pas être précisé pour le type shell « %s »" -#: commands/functioncmds.c:146 +#: commands/functioncmds.c:147 #, c-format msgid "type \"%s\" is not yet defined" msgstr "le type « %s » n'est pas encore défini" -#: commands/functioncmds.c:147 +#: commands/functioncmds.c:148 #, c-format msgid "Creating a shell type definition." msgstr "Création d'une définition d'un type shell." -#: commands/functioncmds.c:239 +#: commands/functioncmds.c:240 #, c-format msgid "SQL function cannot accept shell type %s" msgstr "la fonction SQL ne peut pas accepter le type shell %s" -#: commands/functioncmds.c:245 +#: commands/functioncmds.c:246 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "l'agrégat ne peut pas accepter le type shell %s" -#: commands/functioncmds.c:250 +#: commands/functioncmds.c:251 #, c-format msgid "argument type %s is only a shell" msgstr "le type d'argument %s n'est qu'une enveloppe" -#: commands/functioncmds.c:260 +#: commands/functioncmds.c:261 #, c-format msgid "type %s does not exist" msgstr "le type %s n'existe pas" -#: commands/functioncmds.c:274 +#: commands/functioncmds.c:275 #, c-format msgid "aggregates cannot accept set arguments" msgstr "les agrégats ne peuvent pas utiliser des ensembles comme arguments" -#: commands/functioncmds.c:278 +#: commands/functioncmds.c:279 #, c-format msgid "procedures cannot accept set arguments" msgstr "les procédures ne peuvent pas utiliser des arguments d'ensemble" -#: commands/functioncmds.c:282 +#: commands/functioncmds.c:283 #, c-format msgid "functions cannot accept set arguments" msgstr "les fonctions ne peuvent pas accepter des arguments d'ensemble" -#: commands/functioncmds.c:290 +#: commands/functioncmds.c:291 #, c-format msgid "procedures cannot have OUT arguments" msgstr "les procédures ne peuvent pas avoir d'argument OUT" -#: commands/functioncmds.c:291 +#: commands/functioncmds.c:292 #, c-format msgid "INOUT arguments are permitted." msgstr "les arguments INOUT ne sont pas autorisés." -#: commands/functioncmds.c:301 +#: commands/functioncmds.c:302 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "le paramètre VARIADIC doit être le dernier paramètre en entrée" -#: commands/functioncmds.c:332 +#: commands/functioncmds.c:333 #, c-format msgid "VARIADIC parameter must be an array" msgstr "le paramètre VARIADIC doit être un tableau" -#: commands/functioncmds.c:372 +#: commands/functioncmds.c:373 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "le nom du paramètre « %s » est utilisé plus d'une fois" -#: commands/functioncmds.c:387 +#: commands/functioncmds.c:388 #, c-format msgid "only input parameters can have default values" msgstr "seuls les paramètres en entrée peuvent avoir des valeurs par défaut" -#: commands/functioncmds.c:402 +#: commands/functioncmds.c:403 #, c-format msgid "cannot use table references in parameter default value" msgstr "" "ne peut pas utiliser les références de tables dans la valeur par défaut des\n" "paramètres" -#: commands/functioncmds.c:426 +#: commands/functioncmds.c:427 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "les paramètres en entrée suivant un paramètre avec valeur par défaut doivent aussi avoir des valeurs par défaut" -#: commands/functioncmds.c:578 commands/functioncmds.c:769 +#: commands/functioncmds.c:579 commands/functioncmds.c:770 #, c-format msgid "invalid attribute in procedure definition" msgstr "attribute invalide dans la définition de la procédure" -#: commands/functioncmds.c:674 +#: commands/functioncmds.c:675 #, c-format msgid "support function %s must return type %s" msgstr "la fonction de support %s doit renvoyer le type %s" -#: commands/functioncmds.c:685 +#: commands/functioncmds.c:686 #, c-format msgid "must be superuser to specify a support function" msgstr "doit être super-utilisateur pour spécifier une fonction de support" -#: commands/functioncmds.c:801 +#: commands/functioncmds.c:802 #, c-format msgid "no function body specified" msgstr "aucun corps de fonction spécifié" -#: commands/functioncmds.c:811 +#: commands/functioncmds.c:812 #, c-format msgid "no language specified" msgstr "aucun langage spécifié" -#: commands/functioncmds.c:836 commands/functioncmds.c:1320 +#: commands/functioncmds.c:837 commands/functioncmds.c:1321 #, c-format msgid "COST must be positive" msgstr "COST doit être positif" -#: commands/functioncmds.c:844 commands/functioncmds.c:1328 +#: commands/functioncmds.c:845 commands/functioncmds.c:1329 #, c-format msgid "ROWS must be positive" msgstr "ROWS doit être positif" -#: commands/functioncmds.c:898 +#: commands/functioncmds.c:899 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "seul un élément AS est nécessaire pour le langage « %s »" -#: commands/functioncmds.c:996 commands/functioncmds.c:2049 commands/proclang.c:259 +#: commands/functioncmds.c:997 commands/functioncmds.c:2051 commands/proclang.c:259 #, c-format msgid "language \"%s\" does not exist" msgstr "le langage « %s » n'existe pas" -#: commands/functioncmds.c:998 commands/functioncmds.c:2051 +#: commands/functioncmds.c:999 commands/functioncmds.c:2053 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "Utiliser CREATE EXTENSION pour charger le langage dans la base de données." -#: commands/functioncmds.c:1033 commands/functioncmds.c:1312 +#: commands/functioncmds.c:1034 commands/functioncmds.c:1313 #, c-format msgid "only superuser can define a leakproof function" msgstr "seul un superutilisateur peut définir une fonction leakproof" -#: commands/functioncmds.c:1082 +#: commands/functioncmds.c:1083 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "le type de résultat de la fonction doit être %s à cause des paramètres OUT" -#: commands/functioncmds.c:1095 +#: commands/functioncmds.c:1096 #, c-format msgid "function result type must be specified" msgstr "le type de résultat de la fonction doit être spécifié" -#: commands/functioncmds.c:1147 commands/functioncmds.c:1332 +#: commands/functioncmds.c:1148 commands/functioncmds.c:1333 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "ROWS n'est pas applicable quand la fonction ne renvoie pas un ensemble" -#: commands/functioncmds.c:1432 +#: commands/functioncmds.c:1434 #, c-format msgid "source data type %s is a pseudo-type" msgstr "le type de données source %s est un pseudo-type" -#: commands/functioncmds.c:1438 +#: commands/functioncmds.c:1440 #, c-format msgid "target data type %s is a pseudo-type" msgstr "le type de données cible %s est un pseudo-type" -#: commands/functioncmds.c:1462 +#: commands/functioncmds.c:1464 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "la conversion sera ignorée car le type de données source est un domaine" -#: commands/functioncmds.c:1467 +#: commands/functioncmds.c:1469 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "la conversion sera ignorée car le type de données cible est un domaine" -#: commands/functioncmds.c:1492 +#: commands/functioncmds.c:1494 #, c-format msgid "cast function must take one to three arguments" msgstr "la fonction de conversion doit prendre de un à trois arguments" -#: commands/functioncmds.c:1496 +#: commands/functioncmds.c:1498 #, c-format msgid "argument of cast function must match or be binary-coercible from source data type" msgstr "l'argument de la fonction de conversion doit correspondre ou être binary-coercible à partir du type de la donnée source" -#: commands/functioncmds.c:1500 +#: commands/functioncmds.c:1502 #, c-format msgid "second argument of cast function must be type %s" msgstr "le second argument de la fonction de conversion doit être de type %s" -#: commands/functioncmds.c:1505 +#: commands/functioncmds.c:1507 #, c-format msgid "third argument of cast function must be type %s" msgstr "le troisième argument de la fonction de conversion doit être de type %s" -#: commands/functioncmds.c:1510 +#: commands/functioncmds.c:1512 #, c-format msgid "return data type of cast function must match or be binary-coercible to target data type" msgstr "" "le type de donnée en retour de la fonction de conversion doit correspondre\n" "ou être coercible binairement au type de données cible" -#: commands/functioncmds.c:1521 +#: commands/functioncmds.c:1523 #, c-format msgid "cast function must not be volatile" msgstr "la fonction de conversion ne doit pas être volatile" -#: commands/functioncmds.c:1526 +#: commands/functioncmds.c:1528 #, c-format msgid "cast function must be a normal function" msgstr "la fonction de conversion doit être une fonction normale" -#: commands/functioncmds.c:1530 +#: commands/functioncmds.c:1532 #, c-format msgid "cast function must not return a set" msgstr "la fonction de conversion ne doit pas renvoyer un ensemble" -#: commands/functioncmds.c:1556 +#: commands/functioncmds.c:1558 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "doit être super-utilisateur pour créer une fonction de conversion SANS FONCTION" -#: commands/functioncmds.c:1571 +#: commands/functioncmds.c:1573 #, c-format msgid "source and target data types are not physically compatible" msgstr "les types de données source et cible ne sont pas physiquement compatibles" -#: commands/functioncmds.c:1586 +#: commands/functioncmds.c:1588 #, c-format msgid "composite data types are not binary-compatible" msgstr "les types de données composites ne sont pas compatibles binairement" -#: commands/functioncmds.c:1592 +#: commands/functioncmds.c:1594 #, c-format msgid "enum data types are not binary-compatible" msgstr "les types de données enum ne sont pas compatibles binairement" -#: commands/functioncmds.c:1598 +#: commands/functioncmds.c:1600 #, c-format msgid "array data types are not binary-compatible" msgstr "les types de données tableau ne sont pas compatibles binairement" -#: commands/functioncmds.c:1615 +#: commands/functioncmds.c:1617 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "les types de données domaines ne sont pas compatibles binairement" -#: commands/functioncmds.c:1625 +#: commands/functioncmds.c:1627 #, c-format msgid "source data type and target data type are the same" msgstr "les types de données source et cible sont identiques" -#: commands/functioncmds.c:1683 +#: commands/functioncmds.c:1685 #, c-format msgid "transform function must not be volatile" msgstr "la fonction de transformation ne doit pas être volatile" -#: commands/functioncmds.c:1687 +#: commands/functioncmds.c:1689 #, c-format msgid "transform function must be a normal function" msgstr "la fonction de transformation doit être une fonction normale" -#: commands/functioncmds.c:1691 +#: commands/functioncmds.c:1693 #, c-format msgid "transform function must not return a set" msgstr "la fonction de transformation ne doit pas renvoyer un ensemble" -#: commands/functioncmds.c:1695 +#: commands/functioncmds.c:1697 #, c-format msgid "transform function must take one argument" msgstr "la fonction de transformation doit prendre de un argument" -#: commands/functioncmds.c:1699 +#: commands/functioncmds.c:1701 #, c-format msgid "first argument of transform function must be type %s" msgstr "le premier argument de la fonction de transformation doit être de type %s" -#: commands/functioncmds.c:1737 +#: commands/functioncmds.c:1739 #, c-format msgid "data type %s is a pseudo-type" msgstr "le type de données %s est un pseudo-type" -#: commands/functioncmds.c:1743 +#: commands/functioncmds.c:1745 #, c-format msgid "data type %s is a domain" msgstr "le type de données %s est un domaine" -#: commands/functioncmds.c:1783 +#: commands/functioncmds.c:1785 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "le type de donnée en retour de la fonction FROM SQL doit être %s" -#: commands/functioncmds.c:1809 +#: commands/functioncmds.c:1811 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "le type de donnée en retour de la fonction TO SQL doit être du type de données de la transformation" -#: commands/functioncmds.c:1838 +#: commands/functioncmds.c:1840 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "la transformation pour le type %s et le langage « %s » existe déjà" -#: commands/functioncmds.c:1930 +#: commands/functioncmds.c:1932 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "la transformation pour le type %s et le langage « %s » n'existe pas" -#: commands/functioncmds.c:1981 +#: commands/functioncmds.c:1983 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "la fonction %s existe déjà dans le schéma « %s »" -#: commands/functioncmds.c:2036 +#: commands/functioncmds.c:2038 #, c-format msgid "no inline code specified" msgstr "aucun code en ligne spécifié" -#: commands/functioncmds.c:2082 +#: commands/functioncmds.c:2084 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "le langage « %s » ne supporte pas l'exécution de code en ligne" -#: commands/functioncmds.c:2194 +#: commands/functioncmds.c:2196 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" @@ -7550,12 +7565,12 @@ msgid "cannot create indexes on temporary tables of other sessions" msgstr "ne peut pas créer les index sur les tables temporaires des autres sessions" -#: commands/indexcmds.c:717 commands/tablecmds.c:707 commands/tablespace.c:1185 +#: commands/indexcmds.c:717 commands/tablecmds.c:713 commands/tablespace.c:1181 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "ne peut pas spécifier un tablespace par défaut pour les relations partitionnées" -#: commands/indexcmds.c:749 commands/tablecmds.c:742 commands/tablecmds.c:13313 commands/tablecmds.c:13427 +#: commands/indexcmds.c:749 commands/tablecmds.c:748 commands/tablecmds.c:13415 commands/tablecmds.c:13529 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "seules les relations partagées peuvent être placées dans le tablespace pg_global" @@ -7620,12 +7635,12 @@ msgid "%s %s will create implicit index \"%s\" for table \"%s\"" msgstr "%s %s créera un index implicite « %s » pour la table « %s »" -#: commands/indexcmds.c:1199 tcop/utility.c:1493 +#: commands/indexcmds.c:1199 tcop/utility.c:1510 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "ne peut pas créer un index unique sur la table partitionnée « %s »" -#: commands/indexcmds.c:1201 tcop/utility.c:1495 +#: commands/indexcmds.c:1201 tcop/utility.c:1512 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "La table « %s » contient des partitionso qui ne sont pas des tables distantes." @@ -7677,7 +7692,7 @@ msgid "could not determine which collation to use for index expression" msgstr "n'a pas pu déterminer le collationnement à utiliser pour l'expression d'index" -#: commands/indexcmds.c:1823 commands/tablecmds.c:16257 commands/typecmds.c:771 parser/parse_expr.c:2850 parser/parse_type.c:566 parser/parse_utilcmd.c:3684 parser/parse_utilcmd.c:4245 utils/adt/misc.c:503 +#: commands/indexcmds.c:1823 commands/tablecmds.c:16365 commands/typecmds.c:771 parser/parse_expr.c:2855 parser/parse_type.c:566 parser/parse_utilcmd.c:3685 parser/parse_utilcmd.c:4246 utils/adt/misc.c:503 #, c-format msgid "collations are not supported by type %s" msgstr "les collationnements ne sont pas supportés par le type %s" @@ -7714,7 +7729,7 @@ msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "la méthode d'accès « %s » ne supporte pas les options NULLS FIRST/LAST" -#: commands/indexcmds.c:1978 commands/tablecmds.c:16282 commands/tablecmds.c:16288 commands/typecmds.c:1947 +#: commands/indexcmds.c:1978 commands/tablecmds.c:16390 commands/tablecmds.c:16396 commands/typecmds.c:1947 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "" @@ -7800,7 +7815,7 @@ msgid "REINDEX is not yet implemented for partitioned indexes" msgstr "REINDEX n'est pas implémenté pour des index partitionnés" -#: commands/lockcmds.c:92 commands/tablecmds.c:5638 commands/trigger.c:303 rewrite/rewriteDefine.c:272 rewrite/rewriteDefine.c:939 +#: commands/lockcmds.c:92 commands/tablecmds.c:5728 commands/trigger.c:303 rewrite/rewriteDefine.c:272 rewrite/rewriteDefine.c:939 #, c-format msgid "\"%s\" is not a table or view" msgstr "« %s » n'est ni une table ni une vue" @@ -7810,27 +7825,27 @@ msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "CONCURRENTLY ne peut pas être utilisé quand la vue matérialisée n'est pas peuplée" -#: commands/matview.c:188 +#: commands/matview.c:188 gram.y:16177 #, c-format -msgid "CONCURRENTLY and WITH NO DATA options cannot be used together" -msgstr "Les options CONCURRENTLY et WITH NO DATA ne peuvent pas être utilisées ensemble" +msgid "%s and %s options cannot be used together" +msgstr "les options %s et %s ne peuvent pas être utilisées ensemble" -#: commands/matview.c:244 +#: commands/matview.c:245 #, c-format msgid "cannot refresh materialized view \"%s\" concurrently" msgstr "ne peut pas rafraîchir de manière concurrente la vue matérialisée « %s »" -#: commands/matview.c:247 +#: commands/matview.c:248 #, c-format msgid "Create a unique index with no WHERE clause on one or more columns of the materialized view." msgstr "Crée un index unique sans clause WHERE sur une ou plusieurs colonnes de la vue matérialisée." -#: commands/matview.c:641 +#: commands/matview.c:649 #, c-format msgid "new data for materialized view \"%s\" contains duplicate rows without any null columns" msgstr "les nouvelles données pour la vue matérialisée « %s » contiennent des lignes dupliquées sans colonnes NULL" -#: commands/matview.c:643 +#: commands/matview.c:651 #, c-format msgid "Row: %s" msgstr "Ligne : %s" @@ -8107,7 +8122,7 @@ msgid "operator attribute \"%s\" cannot be changed" msgstr "l'attribut « %s » de l'opérateur ne peut pas être changé" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:143 commands/tablecmds.c:1515 commands/tablecmds.c:1997 commands/tablecmds.c:3079 commands/tablecmds.c:5617 commands/tablecmds.c:8429 commands/tablecmds.c:15847 commands/tablecmds.c:15882 commands/trigger.c:309 commands/trigger.c:1214 commands/trigger.c:1323 rewrite/rewriteDefine.c:278 rewrite/rewriteDefine.c:944 rewrite/rewriteRemove.c:80 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:143 commands/tablecmds.c:1539 commands/tablecmds.c:2022 commands/tablecmds.c:3104 commands/tablecmds.c:5707 commands/tablecmds.c:8532 commands/tablecmds.c:15955 commands/tablecmds.c:15990 commands/trigger.c:309 commands/trigger.c:1214 commands/trigger.c:1323 rewrite/rewriteDefine.c:278 rewrite/rewriteDefine.c:944 rewrite/rewriteRemove.c:80 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "droit refusé : « %s » est un catalogue système" @@ -8214,57 +8229,57 @@ msgid "must be superuser to create custom procedural language" msgstr "doit être super-utilisateur pour créer un langage de procédures personnalisé" -#: commands/publicationcmds.c:107 +#: commands/publicationcmds.c:104 #, c-format msgid "invalid list syntax for \"publish\" option" msgstr "syntaxe de liste invalide pour l'option « publish »" -#: commands/publicationcmds.c:125 +#: commands/publicationcmds.c:122 #, c-format msgid "unrecognized \"publish\" value: \"%s\"" msgstr "type « publish » non reconnu : « %s »" -#: commands/publicationcmds.c:140 +#: commands/publicationcmds.c:137 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "paramètre de publication non reconnu : « %s »" -#: commands/publicationcmds.c:172 +#: commands/publicationcmds.c:169 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "doit être super-utilisateur pour créer une publication « FOR ALL TABLES »" -#: commands/publicationcmds.c:248 +#: commands/publicationcmds.c:250 #, c-format msgid "wal_level is insufficient to publish logical changes" msgstr "la valeur de wal_level est insuffisante pour publier des modifications logiques" -#: commands/publicationcmds.c:249 +#: commands/publicationcmds.c:251 #, c-format msgid "Set wal_level to logical before creating subscriptions." msgstr "Configurez wal_level à la valeur logical pour créer des souscriptions." -#: commands/publicationcmds.c:369 +#: commands/publicationcmds.c:376 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "la publication « %s » est définie avec FOR ALL TABLES" -#: commands/publicationcmds.c:371 +#: commands/publicationcmds.c:378 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "Les tables ne peuvent pas être ajoutées ou supprimées à des publications FOR ALL TABLES." -#: commands/publicationcmds.c:683 +#: commands/publicationcmds.c:708 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "la relation « %s » ne fait pas partie de la publication" -#: commands/publicationcmds.c:726 +#: commands/publicationcmds.c:751 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "droit refusé pour modifier le propriétaire de la publication « %s »" -#: commands/publicationcmds.c:728 +#: commands/publicationcmds.c:753 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "Le propriétaire d'une publication FOR ALL TABLES doit être un super-utilisateur." @@ -8421,7 +8436,7 @@ msgid "cannot change ownership of identity sequence" msgstr "ne peut pas modifier le propriétaire de la séquence d'identité" -#: commands/sequence.c:1718 commands/tablecmds.c:12695 commands/tablecmds.c:15273 +#: commands/sequence.c:1718 commands/tablecmds.c:12797 commands/tablecmds.c:15381 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "La séquence « %s » est liée à la table « %s »." @@ -8481,12 +8496,12 @@ msgid "unrecognized statistics kind \"%s\"" msgstr "type de statistique « %s » non reconnu" -#: commands/statscmds.c:451 commands/tablecmds.c:7450 +#: commands/statscmds.c:451 commands/tablecmds.c:7553 #, c-format msgid "statistics target %d is too low" msgstr "la cible statistique %d est trop basse" -#: commands/statscmds.c:459 commands/tablecmds.c:7458 +#: commands/statscmds.c:459 commands/tablecmds.c:7561 #, c-format msgid "lowering statistics target to %d" msgstr "abaissement de la cible statistique à %d" @@ -8523,7 +8538,7 @@ msgid "must be superuser to create subscriptions" msgstr "doit être super-utilisateur pour créer des souscriptions" -#: commands/subscriptioncmds.c:445 commands/subscriptioncmds.c:534 replication/logical/tablesync.c:861 replication/logical/worker.c:2135 +#: commands/subscriptioncmds.c:445 commands/subscriptioncmds.c:534 replication/logical/tablesync.c:861 replication/logical/worker.c:2138 #, c-format msgid "could not connect to the publisher: %s" msgstr "n'a pas pu se connecter au publieur : %s" @@ -8676,7 +8691,7 @@ msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Utilisez DROP MATERIALIZED VIEW pour supprimer une vue matérialisée." -#: commands/tablecmds.c:252 commands/tablecmds.c:276 commands/tablecmds.c:17446 parser/parse_utilcmd.c:2206 +#: commands/tablecmds.c:252 commands/tablecmds.c:276 commands/tablecmds.c:17589 parser/parse_utilcmd.c:2206 #, c-format msgid "index \"%s\" does not exist" msgstr "l'index « %s » n'existe pas" @@ -8699,7 +8714,7 @@ msgid "Use DROP TYPE to remove a type." msgstr "Utilisez DROP TYPE pour supprimer un type." -#: commands/tablecmds.c:264 commands/tablecmds.c:12534 commands/tablecmds.c:15053 +#: commands/tablecmds.c:264 commands/tablecmds.c:12636 commands/tablecmds.c:15161 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "la table distante « %s » n'existe pas" @@ -8713,272 +8728,272 @@ msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "Utilisez DROP FOREIGN TABLE pour supprimer une table distante." -#: commands/tablecmds.c:623 +#: commands/tablecmds.c:629 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMIT peut seulement être utilisé sur des tables temporaires" -#: commands/tablecmds.c:654 +#: commands/tablecmds.c:660 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "" "ne peut pas créer une table temporaire à l'intérieur d'une fonction\n" "restreinte pour sécurité" -#: commands/tablecmds.c:690 commands/tablecmds.c:13897 +#: commands/tablecmds.c:696 commands/tablecmds.c:13999 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "la relation « %s » serait héritée plus d'une fois" -#: commands/tablecmds.c:871 +#: commands/tablecmds.c:877 #, c-format msgid "specifying a table access method is not supported on a partitioned table" msgstr "spécifier une méthode d'accès à la table n'est pas supporté sur une partitionnée" -#: commands/tablecmds.c:967 +#: commands/tablecmds.c:973 #, c-format msgid "\"%s\" is not partitioned" msgstr "« %s » n'est pas partitionné" -#: commands/tablecmds.c:1061 +#: commands/tablecmds.c:1067 #, c-format msgid "cannot partition using more than %d columns" msgstr "ne peut pas partitionner en utilisant plus de %d colonnes" -#: commands/tablecmds.c:1117 +#: commands/tablecmds.c:1123 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "ne peut pas créer une partition distante sur la table partitionnée « %s »" -#: commands/tablecmds.c:1119 +#: commands/tablecmds.c:1125 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "La table « %s » contient des index qui sont uniques." -#: commands/tablecmds.c:1282 +#: commands/tablecmds.c:1288 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY ne permet pas de supprimer plusieurs objets" -#: commands/tablecmds.c:1286 +#: commands/tablecmds.c:1292 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY ne permet pas la CASCADE" -#: commands/tablecmds.c:1387 +#: commands/tablecmds.c:1396 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "ne peut pas supprimer l'index partitionné « %s » de manière concurrente" -#: commands/tablecmds.c:1657 +#: commands/tablecmds.c:1682 #, c-format msgid "cannot truncate only a partitioned table" msgstr "ne peut pas seulement tronquer une table partitionnée" -#: commands/tablecmds.c:1658 +#: commands/tablecmds.c:1683 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." msgstr "Ne spécifiez pas le mot clé ONLY ou utilisez TRUNCATE ONLY directement sur les partitions." -#: commands/tablecmds.c:1727 +#: commands/tablecmds.c:1752 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "TRUNCATE cascade sur la table « %s »" -#: commands/tablecmds.c:2034 +#: commands/tablecmds.c:2059 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "ne peut pas tronquer les tables temporaires des autres sessions" -#: commands/tablecmds.c:2262 commands/tablecmds.c:13794 +#: commands/tablecmds.c:2287 commands/tablecmds.c:13896 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "ne peut pas hériter de la table partitionnée « %s »" -#: commands/tablecmds.c:2267 +#: commands/tablecmds.c:2292 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "ne peut pas hériter de la partition « %s »" -#: commands/tablecmds.c:2275 parser/parse_utilcmd.c:2436 parser/parse_utilcmd.c:2578 +#: commands/tablecmds.c:2300 parser/parse_utilcmd.c:2436 parser/parse_utilcmd.c:2578 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "la relation héritée « %s » n'est ni une table ni une table distante" -#: commands/tablecmds.c:2287 +#: commands/tablecmds.c:2312 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "ne peut pas créer une relation temporaire comme partition de la relation permanente « %s »" -#: commands/tablecmds.c:2296 commands/tablecmds.c:13773 +#: commands/tablecmds.c:2321 commands/tablecmds.c:13875 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "ine peut pas hériter à partir d'une relation temporaire « %s »" -#: commands/tablecmds.c:2306 commands/tablecmds.c:13781 +#: commands/tablecmds.c:2331 commands/tablecmds.c:13883 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "ne peut pas hériter de la table temporaire d'une autre session" -#: commands/tablecmds.c:2360 +#: commands/tablecmds.c:2385 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "assemblage de plusieurs définitions d'héritage pour la colonne « %s »" -#: commands/tablecmds.c:2368 +#: commands/tablecmds.c:2393 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "la colonne héritée « %s » a un conflit de type" -#: commands/tablecmds.c:2370 commands/tablecmds.c:2393 commands/tablecmds.c:2642 commands/tablecmds.c:2672 parser/parse_coerce.c:1942 parser/parse_coerce.c:1962 parser/parse_coerce.c:1982 parser/parse_coerce.c:2037 parser/parse_coerce.c:2114 parser/parse_coerce.c:2148 parser/parse_param.c:218 +#: commands/tablecmds.c:2395 commands/tablecmds.c:2418 commands/tablecmds.c:2667 commands/tablecmds.c:2697 parser/parse_coerce.c:2014 parser/parse_coerce.c:2034 parser/parse_coerce.c:2054 parser/parse_coerce.c:2109 parser/parse_coerce.c:2186 parser/parse_coerce.c:2220 parser/parse_param.c:218 #, c-format msgid "%s versus %s" msgstr "%s versus %s" -#: commands/tablecmds.c:2379 +#: commands/tablecmds.c:2404 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "la colonne héritée « %s » a un conflit sur le collationnement" -#: commands/tablecmds.c:2381 commands/tablecmds.c:2654 commands/tablecmds.c:6124 +#: commands/tablecmds.c:2406 commands/tablecmds.c:2679 commands/tablecmds.c:6214 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "« %s » versus « %s »" -#: commands/tablecmds.c:2391 +#: commands/tablecmds.c:2416 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "la colonne héritée « %s » a un conflit de paramètre de stockage" -#: commands/tablecmds.c:2407 +#: commands/tablecmds.c:2432 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "la colonne héritée « %s » a un conflit de génération" -#: commands/tablecmds.c:2493 commands/tablecmds.c:2548 commands/tablecmds.c:11338 parser/parse_utilcmd.c:1286 parser/parse_utilcmd.c:1329 parser/parse_utilcmd.c:1737 parser/parse_utilcmd.c:1846 +#: commands/tablecmds.c:2518 commands/tablecmds.c:2573 commands/tablecmds.c:11440 parser/parse_utilcmd.c:1286 parser/parse_utilcmd.c:1329 parser/parse_utilcmd.c:1737 parser/parse_utilcmd.c:1846 #, c-format msgid "cannot convert whole-row table reference" msgstr "ne peut pas convertir une référence de ligne complète de table" -#: commands/tablecmds.c:2494 parser/parse_utilcmd.c:1287 +#: commands/tablecmds.c:2519 parser/parse_utilcmd.c:1287 #, c-format msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." msgstr "L'expression de génération de la colonne « %s » contient une référence de ligne complète vers la table « %s »." -#: commands/tablecmds.c:2549 parser/parse_utilcmd.c:1330 +#: commands/tablecmds.c:2574 parser/parse_utilcmd.c:1330 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "La constrainte « %s » contient une référence de ligne complète vers la table « %s »." -#: commands/tablecmds.c:2628 +#: commands/tablecmds.c:2653 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "assemblage de la colonne « %s » avec une définition héritée" -#: commands/tablecmds.c:2632 +#: commands/tablecmds.c:2657 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "déplacement et assemblage de la colonne « %s » avec une définition héritée" -#: commands/tablecmds.c:2633 +#: commands/tablecmds.c:2658 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "Colonne utilisateur déplacée à la position de la colonne héritée." -#: commands/tablecmds.c:2640 +#: commands/tablecmds.c:2665 #, c-format msgid "column \"%s\" has a type conflict" msgstr "la colonne « %s » a un conflit de type" -#: commands/tablecmds.c:2652 +#: commands/tablecmds.c:2677 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "la colonne « %s » a un conflit sur le collationnement" -#: commands/tablecmds.c:2670 +#: commands/tablecmds.c:2695 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "la colonne « %s » a un conflit de paramètre de stockage" -#: commands/tablecmds.c:2698 +#: commands/tablecmds.c:2723 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "la colonne enfant « %s » précise une expression de génération" -#: commands/tablecmds.c:2700 +#: commands/tablecmds.c:2725 #, c-format msgid "Omit the generation expression in the definition of the child table column to inherit the generation expression from the parent table." msgstr "Omettre l'expression de génération dans la définition de la colonne de la table fille pour hériter de l'expression de génération de la table parent." -#: commands/tablecmds.c:2704 +#: commands/tablecmds.c:2729 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "la colonne « %s » hérite d'une colonne générée mais indique une valeur par défaut" -#: commands/tablecmds.c:2709 +#: commands/tablecmds.c:2734 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "la colonne « %s » hérite d'une colonne générée mais précise une identité" -#: commands/tablecmds.c:2818 +#: commands/tablecmds.c:2843 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "la colonne « %s » hérite d'expressions de génération en conflit" -#: commands/tablecmds.c:2823 +#: commands/tablecmds.c:2848 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "la colonne « %s » hérite de valeurs par défaut conflictuelles" -#: commands/tablecmds.c:2825 +#: commands/tablecmds.c:2850 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "Pour résoudre le conflit, spécifiez explicitement une valeur par défaut." -#: commands/tablecmds.c:2871 +#: commands/tablecmds.c:2896 #, c-format msgid "check constraint name \"%s\" appears multiple times but with different expressions" msgstr "" "le nom de la contrainte de vérification, « %s », apparaît plusieurs fois\n" "mais avec des expressions différentes" -#: commands/tablecmds.c:3048 +#: commands/tablecmds.c:3073 #, c-format msgid "cannot rename column of typed table" msgstr "ne peut pas renommer une colonne d'une table typée" -#: commands/tablecmds.c:3067 +#: commands/tablecmds.c:3092 #, c-format msgid "\"%s\" is not a table, view, materialized view, composite type, index, or foreign table" msgstr "« %s » n'est ni une table, ni une vue, ni une vue matérialisée, ni un type composite, ni un index, ni une table distante" -#: commands/tablecmds.c:3161 +#: commands/tablecmds.c:3186 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "la colonne héritée « %s » doit aussi être renommée pour les tables filles" -#: commands/tablecmds.c:3193 +#: commands/tablecmds.c:3218 #, c-format msgid "cannot rename system column \"%s\"" msgstr "ne peut pas renommer la colonne système « %s »" -#: commands/tablecmds.c:3208 +#: commands/tablecmds.c:3233 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "ne peut pas renommer la colonne héritée « %s »" -#: commands/tablecmds.c:3360 +#: commands/tablecmds.c:3385 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "la contrainte héritée « %s » doit aussi être renommée pour les tables enfants" -#: commands/tablecmds.c:3367 +#: commands/tablecmds.c:3392 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "ne peut pas renommer la colonne héritée « %s »" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:3600 +#: commands/tablecmds.c:3690 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "" @@ -8986,1091 +9001,1096 @@ "des requêtes actives dans cette session" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:3609 +#: commands/tablecmds.c:3699 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "ne peut pas exécuter %s « %s » car il reste des événements sur les triggers" -#: commands/tablecmds.c:4240 commands/tablecmds.c:4255 +#: commands/tablecmds.c:4330 commands/tablecmds.c:4345 #, c-format msgid "cannot change persistence setting twice" msgstr "ne peut pas modifier la configuration de la persistence deux fois" -#: commands/tablecmds.c:4975 +#: commands/tablecmds.c:5065 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "ne peut pas ré-écrire la relation système « %s »" -#: commands/tablecmds.c:4981 +#: commands/tablecmds.c:5071 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "ne peut pas réécrire la table « %s » utilisée comme une table catalogue" -#: commands/tablecmds.c:4991 +#: commands/tablecmds.c:5081 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "ne peut pas ré-écrire les tables temporaires des autres sessions" -#: commands/tablecmds.c:5280 +#: commands/tablecmds.c:5370 #, c-format msgid "rewriting table \"%s\"" msgstr "ré-écriture de la table « %s »" -#: commands/tablecmds.c:5284 +#: commands/tablecmds.c:5374 #, c-format msgid "verifying table \"%s\"" msgstr "vérification de la table « %s »" -#: commands/tablecmds.c:5452 +#: commands/tablecmds.c:5542 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "la colonne « %s » de la table « %s » contient des valeurs NULL" -#: commands/tablecmds.c:5469 +#: commands/tablecmds.c:5559 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "la contrainte de vérification « %s » de la relation « %s » est violée par une ligne" -#: commands/tablecmds.c:5488 partitioning/partbounds.c:3225 +#: commands/tablecmds.c:5578 partitioning/partbounds.c:3225 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "la contrainte de partition mise à jour pour la partition par défaut « %s » serait transgressée par des lignes" -#: commands/tablecmds.c:5494 +#: commands/tablecmds.c:5584 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "la contrainte de partition de la relation « %s » est violée par une ligne" -#: commands/tablecmds.c:5641 commands/trigger.c:1208 commands/trigger.c:1314 +#: commands/tablecmds.c:5731 commands/trigger.c:1208 commands/trigger.c:1314 #, c-format msgid "\"%s\" is not a table, view, or foreign table" msgstr "« %s » n'est ni une table, ni une vue, ni une table distante" -#: commands/tablecmds.c:5644 +#: commands/tablecmds.c:5734 #, c-format msgid "\"%s\" is not a table, view, materialized view, or index" msgstr "« %s » n'est ni une table, ni une vue, ni une vue matérialisée, ni une séquence, ni une table distante" -#: commands/tablecmds.c:5650 +#: commands/tablecmds.c:5740 #, c-format msgid "\"%s\" is not a table, materialized view, or index" msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un index" -#: commands/tablecmds.c:5653 +#: commands/tablecmds.c:5743 #, c-format msgid "\"%s\" is not a table, materialized view, index, or partitioned index" msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un index, ni un index partitionné" -#: commands/tablecmds.c:5656 +#: commands/tablecmds.c:5746 #, c-format msgid "\"%s\" is not a table, materialized view, index, partitioned index, or foreign table" msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un index (partitionné ou pas) ni une table distante" -#: commands/tablecmds.c:5659 +#: commands/tablecmds.c:5749 #, c-format msgid "\"%s\" is not a table, materialized view, or foreign table" msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni une table distante" -#: commands/tablecmds.c:5662 +#: commands/tablecmds.c:5752 #, c-format msgid "\"%s\" is not a table or foreign table" msgstr "« %s » n'est ni une table ni une table distante" -#: commands/tablecmds.c:5665 +#: commands/tablecmds.c:5755 #, c-format msgid "\"%s\" is not a table, composite type, or foreign table" msgstr "« %s » n'est ni une table, ni un type composite, ni une table distante" -#: commands/tablecmds.c:5668 +#: commands/tablecmds.c:5758 #, c-format msgid "\"%s\" is not a table, materialized view, index, or foreign table" msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un index, ni une table distante" -#: commands/tablecmds.c:5671 +#: commands/tablecmds.c:5761 #, c-format msgid "\"%s\" is not a table or partitioned index" msgstr "« %s » n'est pas une table ou un index partitionné" -#: commands/tablecmds.c:5681 +#: commands/tablecmds.c:5771 #, c-format msgid "\"%s\" is of the wrong type" msgstr "« %s » est du mauvais type" -#: commands/tablecmds.c:5884 commands/tablecmds.c:5891 +#: commands/tablecmds.c:5974 commands/tablecmds.c:5981 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "ne peux pas modifier le type « %s » car la colonne « %s.%s » l'utilise" -#: commands/tablecmds.c:5898 +#: commands/tablecmds.c:5988 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "" "ne peut pas modifier la table distante « %s » car la colonne « %s.%s » utilise\n" "son type de ligne" -#: commands/tablecmds.c:5905 +#: commands/tablecmds.c:5995 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "" "ne peut pas modifier la table « %s » car la colonne « %s.%s » utilise\n" "son type de ligne" -#: commands/tablecmds.c:5961 +#: commands/tablecmds.c:6051 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "ne peut pas modifier le type « %s » car il s'agit du type d'une table de type" -#: commands/tablecmds.c:5963 +#: commands/tablecmds.c:6053 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "Utilisez ALTER ... CASCADE pour modifier aussi les tables de type." -#: commands/tablecmds.c:6009 +#: commands/tablecmds.c:6099 #, c-format msgid "type %s is not a composite type" msgstr "le type %s n'est pas un type composite" -#: commands/tablecmds.c:6036 +#: commands/tablecmds.c:6126 #, c-format msgid "cannot add column to typed table" msgstr "ne peut pas ajouter une colonne à une table typée" -#: commands/tablecmds.c:6087 +#: commands/tablecmds.c:6177 #, c-format msgid "cannot add column to a partition" msgstr "ne peut pas ajouter une colonne à une partition" -#: commands/tablecmds.c:6116 commands/tablecmds.c:14024 +#: commands/tablecmds.c:6206 commands/tablecmds.c:14126 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "la table fille « %s » a un type différent pour la colonne « %s »" -#: commands/tablecmds.c:6122 commands/tablecmds.c:14031 +#: commands/tablecmds.c:6212 commands/tablecmds.c:14133 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "la table fille « %s » a un collationnement différent pour la colonne « %s »" -#: commands/tablecmds.c:6136 +#: commands/tablecmds.c:6226 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "assemblage de la définition de la colonne « %s » pour le fils « %s »" -#: commands/tablecmds.c:6179 +#: commands/tablecmds.c:6269 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "ne peut pas ajouter récursivement la colonne identité à une table qui a des tables filles" -#: commands/tablecmds.c:6416 +#: commands/tablecmds.c:6506 #, c-format msgid "column must be added to child tables too" msgstr "la colonne doit aussi être ajoutée aux tables filles" -#: commands/tablecmds.c:6494 +#: commands/tablecmds.c:6584 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "la colonne « %s » de la relation « %s » existe déjà, poursuite du traitement" -#: commands/tablecmds.c:6501 +#: commands/tablecmds.c:6591 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "la colonne « %s » de la relation « %s » existe déjà" -#: commands/tablecmds.c:6567 commands/tablecmds.c:10976 +#: commands/tablecmds.c:6657 commands/tablecmds.c:11079 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "ne peut pas supprimer une contrainte uniquement d'une table partitionnée quand des partitions existent" -#: commands/tablecmds.c:6568 commands/tablecmds.c:6872 commands/tablecmds.c:7868 commands/tablecmds.c:10977 +#: commands/tablecmds.c:6658 commands/tablecmds.c:6975 commands/tablecmds.c:7971 commands/tablecmds.c:11080 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Ne spécifiez pas le mot clé ONLY." -#: commands/tablecmds.c:6605 commands/tablecmds.c:6798 commands/tablecmds.c:6940 commands/tablecmds.c:7054 commands/tablecmds.c:7148 commands/tablecmds.c:7207 commands/tablecmds.c:7325 commands/tablecmds.c:7491 commands/tablecmds.c:7561 commands/tablecmds.c:7654 commands/tablecmds.c:11131 commands/tablecmds.c:12557 +#: commands/tablecmds.c:6695 commands/tablecmds.c:6901 commands/tablecmds.c:7043 commands/tablecmds.c:7157 commands/tablecmds.c:7251 commands/tablecmds.c:7310 commands/tablecmds.c:7428 commands/tablecmds.c:7594 commands/tablecmds.c:7664 commands/tablecmds.c:7757 commands/tablecmds.c:11234 commands/tablecmds.c:12659 #, c-format msgid "cannot alter system column \"%s\"" msgstr "n'a pas pu modifier la colonne système « %s »" -#: commands/tablecmds.c:6611 commands/tablecmds.c:6946 +#: commands/tablecmds.c:6701 commands/tablecmds.c:7049 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité" -#: commands/tablecmds.c:6647 +#: commands/tablecmds.c:6744 #, c-format msgid "column \"%s\" is in a primary key" msgstr "la colonne « %s » est dans une clé primaire" -#: commands/tablecmds.c:6669 +#: commands/tablecmds.c:6749 +#, c-format +msgid "column \"%s\" is in index used as replica identity" +msgstr "la colonne « %s » est dans un index utilisé comme identité de réplicat" + +#: commands/tablecmds.c:6772 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "la colonne « %s » est marquée NOT NULL dans la table parent" -#: commands/tablecmds.c:6869 commands/tablecmds.c:8327 +#: commands/tablecmds.c:6972 commands/tablecmds.c:8430 #, c-format msgid "constraint must be added to child tables too" msgstr "la contrainte doit aussi être ajoutée aux tables filles" -#: commands/tablecmds.c:6870 +#: commands/tablecmds.c:6973 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "la colonne « %s » de la relation « %s » n'est pas déjà NOT NULL." -#: commands/tablecmds.c:6905 +#: commands/tablecmds.c:7008 #, c-format msgid "existing constraints on column \"%s.%s\" are sufficient to prove that it does not contain nulls" msgstr "les contraintes existantes sur la colonne « %s.%s » sont suffisantes pour prouver qu'elle ne contient aucun NULL" -#: commands/tablecmds.c:6948 +#: commands/tablecmds.c:7051 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." msgstr "Utilisez à la place ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY." -#: commands/tablecmds.c:6953 +#: commands/tablecmds.c:7056 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "la colonne « %s » de la relation « %s » est une colonne générée" -#: commands/tablecmds.c:6956 +#: commands/tablecmds.c:7059 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." msgstr "Utilisez à la place ALTER TABLE ... ALTER COLUMN ... DROP EXTENSION." -#: commands/tablecmds.c:7065 +#: commands/tablecmds.c:7168 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "la colonne « %s » de la relation « %s » doit être déclarée NOT NULL avant que la colonne identité puisse être ajoutée" -#: commands/tablecmds.c:7071 +#: commands/tablecmds.c:7174 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "la colonne « %s » de la relation « %s » est déjà une colonne d'identité" -#: commands/tablecmds.c:7077 +#: commands/tablecmds.c:7180 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "la colonne « %s » de la relation « %s » a déjà une valeur par défaut" -#: commands/tablecmds.c:7154 commands/tablecmds.c:7215 +#: commands/tablecmds.c:7257 commands/tablecmds.c:7318 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité" -#: commands/tablecmds.c:7220 +#: commands/tablecmds.c:7323 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité, poursuite du traitement" -#: commands/tablecmds.c:7273 +#: commands/tablecmds.c:7376 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION doit aussi être appliqué aux tables filles" -#: commands/tablecmds.c:7295 +#: commands/tablecmds.c:7398 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "ne peut pas supprimer l'expression de génération à partir d'une colonne héritée" -#: commands/tablecmds.c:7333 +#: commands/tablecmds.c:7436 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne générée stockée" -#: commands/tablecmds.c:7338 +#: commands/tablecmds.c:7441 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne générée stockée, ignoré" -#: commands/tablecmds.c:7438 +#: commands/tablecmds.c:7541 #, c-format msgid "cannot refer to non-index column by number" msgstr "impossible de référence une colonne non liée à une table par un nombre" -#: commands/tablecmds.c:7481 +#: commands/tablecmds.c:7584 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "la colonne numéro %d de la relation « %s » n'existe pas" -#: commands/tablecmds.c:7500 +#: commands/tablecmds.c:7603 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "ne peut modifier les statistiques sur la colonne incluse « %s » de l'index « %s »" -#: commands/tablecmds.c:7505 +#: commands/tablecmds.c:7608 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "ne peut modifier les statistiques sur la colonne « %s » de l'index « %s », qui n'est pas une expression" -#: commands/tablecmds.c:7507 +#: commands/tablecmds.c:7610 #, c-format msgid "Alter statistics on table column instead." msgstr "Modifie les statistiques sur la colonne de la table à la place." -#: commands/tablecmds.c:7634 +#: commands/tablecmds.c:7737 #, c-format msgid "invalid storage type \"%s\"" msgstr "type de stockage « %s » invalide" -#: commands/tablecmds.c:7666 +#: commands/tablecmds.c:7769 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "le type de données %s de la colonne peut seulement avoir un stockage PLAIN" -#: commands/tablecmds.c:7748 +#: commands/tablecmds.c:7851 #, c-format msgid "cannot drop column from typed table" msgstr "ne peut pas supprimer une colonne à une table typée" -#: commands/tablecmds.c:7807 +#: commands/tablecmds.c:7910 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "la colonne « %s » de la relation « %s » n'existe pas, ignore" -#: commands/tablecmds.c:7820 +#: commands/tablecmds.c:7923 #, c-format msgid "cannot drop system column \"%s\"" msgstr "ne peut pas supprimer la colonne système « %s »" -#: commands/tablecmds.c:7830 +#: commands/tablecmds.c:7933 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "ne peut pas supprimer la colonne héritée « %s »" -#: commands/tablecmds.c:7843 +#: commands/tablecmds.c:7946 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "ne peut supprimer la colonne « %s » car elle fait partie de la clé de partitionnement de la relation « %s »" -#: commands/tablecmds.c:7867 +#: commands/tablecmds.c:7970 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "ne peut pas supprimer une colonne sur une seule partition quand plusieurs partitions existent" -#: commands/tablecmds.c:8048 +#: commands/tablecmds.c:8151 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX n'est pas supporté sur les tables partitionnées" -#: commands/tablecmds.c:8073 +#: commands/tablecmds.c:8176 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX renommera l'index « %s » en « %s »" -#: commands/tablecmds.c:8407 +#: commands/tablecmds.c:8510 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "ne peut pas utiliser ONLY pour une clé étrangère sur la table partitionnée « %s » référençant la relation « %s »" -#: commands/tablecmds.c:8413 +#: commands/tablecmds.c:8516 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "ne peut pas ajouter de clé étrangère NOT VALID sur la table partitionnée « %s » référençant la relation « %s »" -#: commands/tablecmds.c:8416 +#: commands/tablecmds.c:8519 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Cette fonctionnalité n'est pas encore implémentée sur les tables partitionnées." -#: commands/tablecmds.c:8423 commands/tablecmds.c:8828 +#: commands/tablecmds.c:8526 commands/tablecmds.c:8931 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "la relation référencée « %s » n'est pas une table" -#: commands/tablecmds.c:8446 +#: commands/tablecmds.c:8549 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "les contraintes sur les tables permanentes peuvent seulement référencer des tables permanentes" -#: commands/tablecmds.c:8453 +#: commands/tablecmds.c:8556 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "les contraintes sur les tables non tracées peuvent seulement référencer des tables permanentes ou non tracées" -#: commands/tablecmds.c:8459 +#: commands/tablecmds.c:8562 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "" "les constraintes sur des tables temporaires ne peuvent référencer que des\n" "tables temporaires" -#: commands/tablecmds.c:8463 +#: commands/tablecmds.c:8566 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "" "les contraintes sur des tables temporaires doivent référencer les tables\n" "temporaires de cette session" -#: commands/tablecmds.c:8529 commands/tablecmds.c:8535 +#: commands/tablecmds.c:8632 commands/tablecmds.c:8638 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "action %s invalide pour une clé étrangère contenant une colonne générée" -#: commands/tablecmds.c:8551 +#: commands/tablecmds.c:8654 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "nombre de colonnes de référence et référencées pour la clé étrangère en désaccord" -#: commands/tablecmds.c:8658 +#: commands/tablecmds.c:8761 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "la contrainte de clé étrangère « %s » ne peut pas être implémentée" -#: commands/tablecmds.c:8660 +#: commands/tablecmds.c:8763 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Les colonnes clés « %s » et « %s » sont de types incompatibles : %s et %s." -#: commands/tablecmds.c:9023 commands/tablecmds.c:9416 parser/parse_utilcmd.c:790 parser/parse_utilcmd.c:919 +#: commands/tablecmds.c:9126 commands/tablecmds.c:9519 parser/parse_utilcmd.c:790 parser/parse_utilcmd.c:919 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "les clés étrangères ne sont pas supportées par les tables distantes" -#: commands/tablecmds.c:9783 commands/tablecmds.c:10061 commands/tablecmds.c:10933 commands/tablecmds.c:11008 +#: commands/tablecmds.c:9886 commands/tablecmds.c:10164 commands/tablecmds.c:11036 commands/tablecmds.c:11111 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "la contrainte « %s » de la relation « %s » n'existe pas" -#: commands/tablecmds.c:9790 +#: commands/tablecmds.c:9893 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "la contrainte « %s » de la relation « %s » n'est pas une clé étrangère" -#: commands/tablecmds.c:9828 +#: commands/tablecmds.c:9931 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "ne peut pas modifier la contrainte « %s » sur la relation « %s »" -#: commands/tablecmds.c:9831 +#: commands/tablecmds.c:9934 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "La contrainte « %s » est dérivée de la contrainte « %s » de la relation « %s »." -#: commands/tablecmds.c:9833 +#: commands/tablecmds.c:9936 #, c-format msgid "You may alter the constraint it derives from, instead." msgstr "Vous pouvez modifier la contrainte qui en dérive à la place." -#: commands/tablecmds.c:10069 +#: commands/tablecmds.c:10172 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "la contrainte « %s » de la relation « %s » n'est pas une clé étrangère ou une contrainte de vérification" -#: commands/tablecmds.c:10147 +#: commands/tablecmds.c:10250 #, c-format msgid "constraint must be validated on child tables too" msgstr "la contrainte doit aussi être validées sur les tables enfants" -#: commands/tablecmds.c:10231 +#: commands/tablecmds.c:10334 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "la colonne « %s » référencée dans la contrainte de clé étrangère n'existe pas" -#: commands/tablecmds.c:10236 +#: commands/tablecmds.c:10339 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "ne peut pas avoir plus de %d clés dans une clé étrangère" -#: commands/tablecmds.c:10301 +#: commands/tablecmds.c:10404 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "ne peut pas utiliser une clé primaire déferrable pour la table « %s » référencée" -#: commands/tablecmds.c:10318 +#: commands/tablecmds.c:10421 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "il n'y a pas de clé primaire pour la table « %s » référencée" -#: commands/tablecmds.c:10383 +#: commands/tablecmds.c:10486 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "la liste de colonnes référencées dans la clé étrangère ne doit pas contenir de duplicats" -#: commands/tablecmds.c:10477 +#: commands/tablecmds.c:10580 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "" "ne peut pas utiliser une contrainte unique déferrable pour la table\n" "référencée « %s »" -#: commands/tablecmds.c:10482 +#: commands/tablecmds.c:10585 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "il n'existe aucune contrainte unique correspondant aux clés données pour la table « %s » référencée" -#: commands/tablecmds.c:10570 +#: commands/tablecmds.c:10673 #, c-format msgid "validating foreign key constraint \"%s\"" msgstr "validation de la contraintes de clé étrangère « %s »" -#: commands/tablecmds.c:10889 +#: commands/tablecmds.c:10992 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "ne peut pas supprimer la contrainte héritée « %s » de la relation « %s »" -#: commands/tablecmds.c:10939 +#: commands/tablecmds.c:11042 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "la contrainte « %s » de la relation « %s » n'existe pas, ignore" -#: commands/tablecmds.c:11115 +#: commands/tablecmds.c:11218 #, c-format msgid "cannot alter column type of typed table" msgstr "ne peut pas modifier le type d'une colonne appartenant à une table typée" -#: commands/tablecmds.c:11142 +#: commands/tablecmds.c:11245 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "ne peut pas modifier la colonne héritée « %s »" -#: commands/tablecmds.c:11151 +#: commands/tablecmds.c:11254 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "ne peut pas modifier la colonne « %s » car elle fait partie de la clé de partitionnement de la relation « %s »" -#: commands/tablecmds.c:11201 +#: commands/tablecmds.c:11304 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "le résultat de la clause USING pour la colonne « %s » ne peut pas être converti automatiquement vers le type %s" -#: commands/tablecmds.c:11204 +#: commands/tablecmds.c:11307 #, c-format msgid "You might need to add an explicit cast." msgstr "Vous pouvez avoir besoin d'ajouter une conversion explicite." -#: commands/tablecmds.c:11208 +#: commands/tablecmds.c:11311 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "la colonne « %s » ne peut pas être convertie vers le type %s" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:11211 +#: commands/tablecmds.c:11314 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Vous pouvez avoir besoin de spécifier \"USING %s::%s\"." -#: commands/tablecmds.c:11311 +#: commands/tablecmds.c:11413 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "ne peut pas modifier la colonne héritée « %s » de la relation « %s »" -#: commands/tablecmds.c:11339 +#: commands/tablecmds.c:11441 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "l'expression USING contient une référence de table de ligne complète." -#: commands/tablecmds.c:11350 +#: commands/tablecmds.c:11452 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "le type de colonne héritée « %s » doit aussi être renommée pour les tables filles" -#: commands/tablecmds.c:11475 +#: commands/tablecmds.c:11577 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "ne peut pas modifier la colonne « %s » deux fois" -#: commands/tablecmds.c:11513 +#: commands/tablecmds.c:11615 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "l'expression de génération de la colonne « %s » ne peut pas être convertie vers le type %s automatiquement" -#: commands/tablecmds.c:11518 +#: commands/tablecmds.c:11620 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "" "la valeur par défaut de la colonne « %s » ne peut pas être convertie vers le\n" "type %s automatiquement" -#: commands/tablecmds.c:11596 +#: commands/tablecmds.c:11698 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "ne peut pas modifier le type d'une colonne utilisée dans colonne générée" -#: commands/tablecmds.c:11597 +#: commands/tablecmds.c:11699 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "La colonne « %s » est utilisée par la colonne générée « %s »" -#: commands/tablecmds.c:11618 +#: commands/tablecmds.c:11720 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "ne peut pas modifier le type d'une colonne utilisée dans une vue ou une règle" -#: commands/tablecmds.c:11619 commands/tablecmds.c:11638 commands/tablecmds.c:11656 +#: commands/tablecmds.c:11721 commands/tablecmds.c:11740 commands/tablecmds.c:11758 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s dépend de la colonne « %s »" -#: commands/tablecmds.c:11637 +#: commands/tablecmds.c:11739 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "ne peut pas modifier le type d'une colonne utilisée dans la définition d'un trigger" -#: commands/tablecmds.c:11655 +#: commands/tablecmds.c:11757 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "ne peut pas modifier le type d'une colonne utilisée dans la définition d'une politique" -#: commands/tablecmds.c:12665 commands/tablecmds.c:12677 +#: commands/tablecmds.c:12767 commands/tablecmds.c:12779 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "ne peut pas modifier le propriétaire de l'index « %s »" -#: commands/tablecmds.c:12667 commands/tablecmds.c:12679 +#: commands/tablecmds.c:12769 commands/tablecmds.c:12781 #, c-format msgid "Change the ownership of the index's table, instead." msgstr "Modifier à la place le propriétaire de la table concernée par l'index." -#: commands/tablecmds.c:12693 +#: commands/tablecmds.c:12795 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "ne peut pas modifier le propriétaire de la séquence « %s »" -#: commands/tablecmds.c:12707 commands/tablecmds.c:15958 +#: commands/tablecmds.c:12809 commands/tablecmds.c:16066 #, c-format msgid "Use ALTER TYPE instead." msgstr "Utilisez ALTER TYPE à la place." -#: commands/tablecmds.c:12716 +#: commands/tablecmds.c:12818 #, c-format msgid "\"%s\" is not a table, view, sequence, or foreign table" msgstr "« %s » n'est ni une table, ni une vue, ni une séquence, ni une table distante" -#: commands/tablecmds.c:13056 +#: commands/tablecmds.c:13158 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "ne peut pas avoir de nombreuses sous-commandes SET TABLESPACE" -#: commands/tablecmds.c:13133 +#: commands/tablecmds.c:13235 #, c-format msgid "\"%s\" is not a table, view, materialized view, index, or TOAST table" msgstr "« %s » n'est ni une table, ni une vue, ni une vue matérialisée, ni un index, ni une table TOAST" -#: commands/tablecmds.c:13166 commands/view.c:494 +#: commands/tablecmds.c:13268 commands/view.c:494 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION est uniquement accepté pour les vues dont la mise à jour est automatique" -#: commands/tablecmds.c:13306 +#: commands/tablecmds.c:13408 #, c-format msgid "cannot move system relation \"%s\"" msgstr "ne peut pas déplacer la colonne système « %s »" -#: commands/tablecmds.c:13322 +#: commands/tablecmds.c:13424 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "ne peut pas déplacer les tables temporaires d'autres sessions" -#: commands/tablecmds.c:13496 +#: commands/tablecmds.c:13598 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "seuls les tables, index et vues matérialisées existent dans les tablespaces" -#: commands/tablecmds.c:13508 +#: commands/tablecmds.c:13610 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "ne peut pas déplacer les relations dans ou à partir du tablespace pg_global" -#: commands/tablecmds.c:13600 +#: commands/tablecmds.c:13702 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "annulation car le verrou sur la relation « %s.%s » n'est pas disponible" -#: commands/tablecmds.c:13616 +#: commands/tablecmds.c:13718 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "aucune relation correspondante trouvée dans le tablespace « %s »" -#: commands/tablecmds.c:13732 +#: commands/tablecmds.c:13834 #, c-format msgid "cannot change inheritance of typed table" msgstr "ne peut pas modifier l'héritage d'une table typée" -#: commands/tablecmds.c:13737 commands/tablecmds.c:14293 +#: commands/tablecmds.c:13839 commands/tablecmds.c:14395 #, c-format msgid "cannot change inheritance of a partition" msgstr "ne peut pas modifier l'héritage d'une partition" -#: commands/tablecmds.c:13742 +#: commands/tablecmds.c:13844 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "ne peut pas modifier l'héritage d'une table partitionnée" -#: commands/tablecmds.c:13788 +#: commands/tablecmds.c:13890 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "ne peut pas hériter à partir d'une relation temporaire d'une autre session" -#: commands/tablecmds.c:13801 +#: commands/tablecmds.c:13903 #, c-format msgid "cannot inherit from a partition" msgstr "ne peut pas hériter d'une partition" -#: commands/tablecmds.c:13823 commands/tablecmds.c:16598 +#: commands/tablecmds.c:13925 commands/tablecmds.c:16706 #, c-format msgid "circular inheritance not allowed" msgstr "héritage circulaire interdit" -#: commands/tablecmds.c:13824 commands/tablecmds.c:16599 +#: commands/tablecmds.c:13926 commands/tablecmds.c:16707 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "« %s » est déjà un enfant de « %s »." -#: commands/tablecmds.c:13837 +#: commands/tablecmds.c:13939 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "le trigger « %s » empêche la table « %s » de devenir une fille dans l'héritage" -#: commands/tablecmds.c:13839 +#: commands/tablecmds.c:13941 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "les triggers ROW avec des tables de transition ne sont pas supportés dans les hiérarchies d'héritage." -#: commands/tablecmds.c:14042 +#: commands/tablecmds.c:14144 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "la colonne « %s » de la table enfant doit être marquée comme NOT NULL" -#: commands/tablecmds.c:14051 +#: commands/tablecmds.c:14153 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "la colonne « %s » de la table enfant doit être une colonne générée" -#: commands/tablecmds.c:14101 +#: commands/tablecmds.c:14203 #, c-format msgid "column \"%s\" in child table has a conflicting generation expression" msgstr "la colonne « %s » de la table enfant a une expression de génération en conflit" -#: commands/tablecmds.c:14129 +#: commands/tablecmds.c:14231 #, c-format msgid "child table is missing column \"%s\"" msgstr "la table enfant n'a pas de colonne « %s »" -#: commands/tablecmds.c:14217 +#: commands/tablecmds.c:14319 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "la table fille « %s » a un type différent pour la contrainte de vérification « %s »" -#: commands/tablecmds.c:14225 +#: commands/tablecmds.c:14327 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "la contrainte « %s » entre en conflit avec une contrainte non héritée sur la table fille « %s »" -#: commands/tablecmds.c:14236 +#: commands/tablecmds.c:14338 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "la contrainte « %s » entre en conflit avec une contrainte NOT VALID sur la table fille « %s »" -#: commands/tablecmds.c:14271 +#: commands/tablecmds.c:14373 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "la table enfant n'a pas de contrainte « %s »" -#: commands/tablecmds.c:14360 +#: commands/tablecmds.c:14462 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "la relation « %s » n'est pas une partition de la relation « %s »" -#: commands/tablecmds.c:14366 +#: commands/tablecmds.c:14468 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "la relation « %s » n'est pas un parent de la relation « %s »" -#: commands/tablecmds.c:14594 +#: commands/tablecmds.c:14696 #, c-format msgid "typed tables cannot inherit" msgstr "les tables avec type ne peuvent pas hériter d'autres tables" -#: commands/tablecmds.c:14624 +#: commands/tablecmds.c:14726 #, c-format msgid "table is missing column \"%s\"" msgstr "la colonne « %s » manque à la table" -#: commands/tablecmds.c:14635 +#: commands/tablecmds.c:14737 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "la table a une colonne « %s » alors que le type impose « %s »" -#: commands/tablecmds.c:14644 +#: commands/tablecmds.c:14746 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "la table « %s » a un type différent pour la colonne « %s »" -#: commands/tablecmds.c:14658 +#: commands/tablecmds.c:14760 #, c-format msgid "table has extra column \"%s\"" msgstr "la table a une colonne supplémentaire « %s »" -#: commands/tablecmds.c:14710 +#: commands/tablecmds.c:14812 #, c-format msgid "\"%s\" is not a typed table" msgstr "« %s » n'est pas une table typée" -#: commands/tablecmds.c:14892 +#: commands/tablecmds.c:15000 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "ne peut pas utiliser l'index non unique « %s » comme identité de réplicat" -#: commands/tablecmds.c:14898 +#: commands/tablecmds.c:15006 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "ne peut pas utiliser l'index « %s » immédiat comme identité de réplicat" -#: commands/tablecmds.c:14904 +#: commands/tablecmds.c:15012 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "ne peut pas utiliser un index par expression « %s » comme identité de réplicat" -#: commands/tablecmds.c:14910 +#: commands/tablecmds.c:15018 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "ne peut pas utiliser l'index partiel « %s » comme identité de réplicat" -#: commands/tablecmds.c:14916 +#: commands/tablecmds.c:15024 #, c-format msgid "cannot use invalid index \"%s\" as replica identity" msgstr "ne peut pas utiliser l'index invalide « %s » comme identité de réplicat" -#: commands/tablecmds.c:14933 +#: commands/tablecmds.c:15041 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "l'index « %s » ne peut pas être utilisé comme identité de réplicat car la colonne %d est une colonne système" -#: commands/tablecmds.c:14940 +#: commands/tablecmds.c:15048 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "l'index « %s » ne peut pas être utilisé comme identité de réplicat car la colonne « %s » peut être NULL" -#: commands/tablecmds.c:15133 +#: commands/tablecmds.c:15241 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "ne peut pas modifier le statut de journalisation de la table « %s » parce qu'elle est temporaire" -#: commands/tablecmds.c:15157 +#: commands/tablecmds.c:15265 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "ne peut pas modifier la table « %s » en non journalisée car elle fait partie d'une publication" -#: commands/tablecmds.c:15159 +#: commands/tablecmds.c:15267 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Les relations non journalisées ne peuvent pas être répliquées." -#: commands/tablecmds.c:15204 +#: commands/tablecmds.c:15312 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "n'a pas pu passer la table « %s » en journalisé car elle référence la table non journalisée « %s »" -#: commands/tablecmds.c:15214 +#: commands/tablecmds.c:15322 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "n'a pas pu passer la table « %s » en non journalisé car elle référence la table journalisée « %s »" -#: commands/tablecmds.c:15272 +#: commands/tablecmds.c:15380 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "ne peut pas déplacer une séquence OWNED BY dans un autre schéma" -#: commands/tablecmds.c:15378 +#: commands/tablecmds.c:15486 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "la relation « %s » existe déjà dans le schéma « %s »" -#: commands/tablecmds.c:15941 +#: commands/tablecmds.c:16049 #, c-format msgid "\"%s\" is not a composite type" msgstr "« %s » n'est pas un type composite" -#: commands/tablecmds.c:15973 +#: commands/tablecmds.c:16081 #, c-format msgid "\"%s\" is not a table, view, materialized view, sequence, or foreign table" msgstr "« %s » n'est ni une table, ni une vue, ni une vue matérialisée, ni une séquence, ni une table distante" -#: commands/tablecmds.c:16008 +#: commands/tablecmds.c:16116 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "stratégie de partitionnement « %s » non reconnue" -#: commands/tablecmds.c:16016 +#: commands/tablecmds.c:16124 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "ne peut pas utiliser la stratégie de partitionnement « list » avec plus d'une colonne" -#: commands/tablecmds.c:16082 +#: commands/tablecmds.c:16190 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "la colonne « %s » nommée dans la clé de partitionnement n'existe pas" -#: commands/tablecmds.c:16090 +#: commands/tablecmds.c:16198 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "ne peut pas utiliser la colonne système « %s » comme clé de partitionnement" -#: commands/tablecmds.c:16101 commands/tablecmds.c:16215 +#: commands/tablecmds.c:16209 commands/tablecmds.c:16323 #, c-format msgid "cannot use generated column in partition key" msgstr "ne peut pas utiliser une colonne générée dans une clé de partitionnement" -#: commands/tablecmds.c:16102 commands/tablecmds.c:16216 commands/trigger.c:649 rewrite/rewriteHandler.c:830 rewrite/rewriteHandler.c:847 +#: commands/tablecmds.c:16210 commands/tablecmds.c:16324 commands/trigger.c:649 rewrite/rewriteHandler.c:853 rewrite/rewriteHandler.c:870 #, c-format msgid "Column \"%s\" is a generated column." msgstr "la colonne « %s » est une colonne générée." -#: commands/tablecmds.c:16178 +#: commands/tablecmds.c:16286 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "" "les fonctions dans une expression de clé de partitionnement doivent être marquées comme\n" "IMMUTABLE" -#: commands/tablecmds.c:16198 +#: commands/tablecmds.c:16306 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "les expressions de la clé de partitionnement ne peuvent pas contenir des références aux colonnes systèmes" -#: commands/tablecmds.c:16228 +#: commands/tablecmds.c:16336 #, c-format msgid "cannot use constant expression as partition key" msgstr "ne peut pas utiliser une expression constante comme clé de partitionnement" -#: commands/tablecmds.c:16249 +#: commands/tablecmds.c:16357 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "n'a pas pu déterminer le collationnement à utiliser pour l'expression de partitionnement" -#: commands/tablecmds.c:16284 +#: commands/tablecmds.c:16392 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "" "Vous devez spécifier une classe d'opérateur hash ou définir une\n" "classe d'opérateur hash par défaut pour le type de données." -#: commands/tablecmds.c:16290 +#: commands/tablecmds.c:16398 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "" "Vous devez spécifier une classe d'opérateur btree ou définir une\n" "classe d'opérateur btree par défaut pour le type de données." -#: commands/tablecmds.c:16435 +#: commands/tablecmds.c:16543 #, c-format msgid "partition constraint for table \"%s\" is implied by existing constraints" msgstr "la contrainte de partitionnement pour la table « %s » provient des contraintes existantes" -#: commands/tablecmds.c:16439 partitioning/partbounds.c:3119 partitioning/partbounds.c:3170 +#: commands/tablecmds.c:16547 partitioning/partbounds.c:3119 partitioning/partbounds.c:3170 #, c-format msgid "updated partition constraint for default partition \"%s\" is implied by existing constraints" msgstr "la contrainte de partitionnement pour la partition par défaut « %s » est implicite du fait de contraintes existantes" -#: commands/tablecmds.c:16538 +#: commands/tablecmds.c:16646 #, c-format msgid "\"%s\" is already a partition" msgstr "« %s » est déjà une partition" -#: commands/tablecmds.c:16544 +#: commands/tablecmds.c:16652 #, c-format msgid "cannot attach a typed table as partition" msgstr "ne peut pas attacher une table typée à une partition" -#: commands/tablecmds.c:16560 +#: commands/tablecmds.c:16668 #, c-format msgid "cannot attach inheritance child as partition" msgstr "ne peut pas ajouter la table en héritage comme une partition" -#: commands/tablecmds.c:16574 +#: commands/tablecmds.c:16682 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "ne peut pas attacher le parent d'héritage comme partition" -#: commands/tablecmds.c:16608 +#: commands/tablecmds.c:16716 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "ne peut pas attacher une relation temporaire comme partition de la relation permanente « %s »" -#: commands/tablecmds.c:16616 +#: commands/tablecmds.c:16724 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "ne peut pas attacher une relation permanente comme partition de la relation temporaire « %s »" -#: commands/tablecmds.c:16624 +#: commands/tablecmds.c:16732 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "ne peut pas attacher comme partition d'une relation temporaire d'une autre session" -#: commands/tablecmds.c:16631 +#: commands/tablecmds.c:16739 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "ne peut pas attacher une relation temporaire d'une autre session comme partition" -#: commands/tablecmds.c:16651 +#: commands/tablecmds.c:16759 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "la table « %s » contient la colonne « %s » introuvable dans le parent « %s »" -#: commands/tablecmds.c:16654 +#: commands/tablecmds.c:16762 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "La nouvelle partition pourrait seulement contenir les colonnes présentes dans le parent." -#: commands/tablecmds.c:16666 +#: commands/tablecmds.c:16774 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "le trigger « %s » empêche la table « %s » de devenir une partition" -#: commands/tablecmds.c:16668 commands/trigger.c:455 +#: commands/tablecmds.c:16776 commands/trigger.c:455 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "les triggers ROW avec des tables de transition ne sont pas supportés sur les partitions" -#: commands/tablecmds.c:16831 +#: commands/tablecmds.c:16955 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "ne peut pas attacher la table distante « %s » comme partition de la table partitionnée « %s »" -#: commands/tablecmds.c:16834 +#: commands/tablecmds.c:16958 #, c-format msgid "Table \"%s\" contains unique indexes." msgstr "La table « %s » contient des index uniques." -#: commands/tablecmds.c:17480 commands/tablecmds.c:17500 commands/tablecmds.c:17520 commands/tablecmds.c:17539 commands/tablecmds.c:17581 +#: commands/tablecmds.c:17623 commands/tablecmds.c:17643 commands/tablecmds.c:17663 commands/tablecmds.c:17682 commands/tablecmds.c:17724 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "ne peut pas attacher l'index « %s » comme une partition de l'index « %s »" -#: commands/tablecmds.c:17483 +#: commands/tablecmds.c:17626 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "L'index « %s » est déjà attaché à un autre index." -#: commands/tablecmds.c:17503 +#: commands/tablecmds.c:17646 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "L'index « %s » n'est un index sur aucune des partitions de la table « %s »." -#: commands/tablecmds.c:17523 +#: commands/tablecmds.c:17666 #, c-format msgid "The index definitions do not match." msgstr "La définition de l'index correspond pas." -#: commands/tablecmds.c:17542 +#: commands/tablecmds.c:17685 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "L'index « %s » appartient à une contrainte dans la table « %s » mais aucune contrainte n'existe pour l'index « %s »." -#: commands/tablecmds.c:17584 +#: commands/tablecmds.c:17727 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "Un autre index est déjà attaché pour la partition « %s »." -#: commands/tablespace.c:162 commands/tablespace.c:179 commands/tablespace.c:190 commands/tablespace.c:198 commands/tablespace.c:650 replication/slot.c:1460 storage/file/copydir.c:47 +#: commands/tablespace.c:162 commands/tablespace.c:179 commands/tablespace.c:190 commands/tablespace.c:198 commands/tablespace.c:636 replication/slot.c:1460 storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » : %m" -#: commands/tablespace.c:209 +#: commands/tablespace.c:209 commands/tablespace.c:631 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "n'a pas pu lire les informations sur le répertoire « %s » : %m" -#: commands/tablespace.c:218 +#: commands/tablespace.c:218 commands/tablespace.c:642 #, c-format msgid "\"%s\" exists but is not a directory" msgstr "« %s » existe mais n'est pas un répertoire" @@ -10105,22 +10125,22 @@ msgid "tablespace location should not be inside the data directory" msgstr "l'emplacement du tablespace ne doit pas être dans le répertoire de données" -#: commands/tablespace.c:305 commands/tablespace.c:977 +#: commands/tablespace.c:305 commands/tablespace.c:973 #, c-format msgid "unacceptable tablespace name \"%s\"" msgstr "nom inacceptable pour le tablespace « %s »" -#: commands/tablespace.c:307 commands/tablespace.c:978 +#: commands/tablespace.c:307 commands/tablespace.c:974 #, c-format msgid "The prefix \"pg_\" is reserved for system tablespaces." msgstr "Le préfixe « pg_ » est réservé pour les tablespaces système." -#: commands/tablespace.c:326 commands/tablespace.c:999 +#: commands/tablespace.c:326 commands/tablespace.c:995 #, c-format msgid "tablespace \"%s\" already exists" msgstr "le tablespace « %s » existe déjà" -#: commands/tablespace.c:444 commands/tablespace.c:960 commands/tablespace.c:1049 commands/tablespace.c:1118 commands/tablespace.c:1264 commands/tablespace.c:1467 +#: commands/tablespace.c:444 commands/tablespace.c:956 commands/tablespace.c:1045 commands/tablespace.c:1114 commands/tablespace.c:1260 commands/tablespace.c:1463 #, c-format msgid "tablespace \"%s\" does not exist" msgstr "le tablespace « %s » n'existe pas" @@ -10155,37 +10175,37 @@ msgid "could not set permissions on directory \"%s\": %m" msgstr "n'a pas pu configurer les droits du répertoire « %s » : %m" -#: commands/tablespace.c:645 +#: commands/tablespace.c:647 #, c-format msgid "directory \"%s\" already in use as a tablespace" msgstr "répertoire « %s » déjà utilisé comme tablespace" -#: commands/tablespace.c:769 commands/tablespace.c:782 commands/tablespace.c:818 commands/tablespace.c:910 storage/file/fd.c:3122 storage/file/fd.c:3462 +#: commands/tablespace.c:765 commands/tablespace.c:778 commands/tablespace.c:814 commands/tablespace.c:906 storage/file/fd.c:3122 storage/file/fd.c:3462 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "n'a pas pu supprimer le répertoire « %s » : %m" -#: commands/tablespace.c:831 commands/tablespace.c:919 +#: commands/tablespace.c:827 commands/tablespace.c:915 #, c-format msgid "could not remove symbolic link \"%s\": %m" msgstr "n'a pas pu supprimer le lien symbolique « %s » : %m" -#: commands/tablespace.c:841 commands/tablespace.c:928 +#: commands/tablespace.c:837 commands/tablespace.c:924 #, c-format msgid "\"%s\" is not a directory or symbolic link" msgstr "« %s » n'est ni un répertoire ni un lien symbolique" -#: commands/tablespace.c:1123 +#: commands/tablespace.c:1119 #, c-format msgid "Tablespace \"%s\" does not exist." msgstr "Le tablespace « %s » n'existe pas." -#: commands/tablespace.c:1566 +#: commands/tablespace.c:1562 #, c-format msgid "directories for tablespace %u could not be removed" msgstr "les répertoires du tablespace %u n'ont pas pu être supprimés" -#: commands/tablespace.c:1568 +#: commands/tablespace.c:1564 #, c-format msgid "You can remove the directories manually if necessary." msgstr "Vous pouvez supprimer les répertoires manuellement si nécessaire." @@ -10544,7 +10564,7 @@ msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE." msgstr "Créez le type comme un type shell, puis créez ses fonctions I/O, puis faites un vrai CREATE TYPE." -#: commands/typecmds.c:314 commands/typecmds.c:1396 commands/typecmds.c:3839 +#: commands/typecmds.c:314 commands/typecmds.c:1396 commands/typecmds.c:3840 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "attribut du type « %s » non reconnu" @@ -10564,7 +10584,7 @@ msgid "alignment \"%s\" not recognized" msgstr "alignement « %s » non reconnu" -#: commands/typecmds.c:438 commands/typecmds.c:3725 +#: commands/typecmds.c:438 commands/typecmds.c:3726 #, c-format msgid "storage \"%s\" not recognized" msgstr "stockage « %s » non reconnu" @@ -10606,27 +10626,27 @@ msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "les contraintes CHECK pour les domaines ne peuvent pas être marquées NO INHERIT" -#: commands/typecmds.c:936 commands/typecmds.c:2538 +#: commands/typecmds.c:936 commands/typecmds.c:2539 #, c-format msgid "unique constraints not possible for domains" msgstr "contraintes uniques impossible pour les domaines" -#: commands/typecmds.c:942 commands/typecmds.c:2544 +#: commands/typecmds.c:942 commands/typecmds.c:2545 #, c-format msgid "primary key constraints not possible for domains" msgstr "contraintes de clé primaire impossible pour les domaines" -#: commands/typecmds.c:948 commands/typecmds.c:2550 +#: commands/typecmds.c:948 commands/typecmds.c:2551 #, c-format msgid "exclusion constraints not possible for domains" msgstr "contraintes d'exclusion impossible pour les domaines" -#: commands/typecmds.c:954 commands/typecmds.c:2556 +#: commands/typecmds.c:954 commands/typecmds.c:2557 #, c-format msgid "foreign key constraints not possible for domains" msgstr "contraintes de clé étrangère impossible pour les domaines" -#: commands/typecmds.c:963 commands/typecmds.c:2565 +#: commands/typecmds.c:963 commands/typecmds.c:2566 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "spécifier des contraintes déferrantes n'est pas supporté par les domaines" @@ -10772,91 +10792,91 @@ msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "les valeurs d'OID du tableau pgtype ne sont pas positionnées en mode de mise à jour binaire" -#: commands/typecmds.c:2354 +#: commands/typecmds.c:2355 #, c-format msgid "column \"%s\" of table \"%s\" contains null values" msgstr "la colonne « %s » de la table « %s » contient des valeurs NULL" -#: commands/typecmds.c:2467 commands/typecmds.c:2669 +#: commands/typecmds.c:2468 commands/typecmds.c:2670 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "la contrainte « %s » du domaine « %s » n'existe pas" -#: commands/typecmds.c:2471 +#: commands/typecmds.c:2472 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "la contrainte « %s » du domaine « %s » n'existe pas, ignore" -#: commands/typecmds.c:2676 +#: commands/typecmds.c:2677 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "la contrainte « %s » du domaine « %s » n'est pas une contrainte de vérification" -#: commands/typecmds.c:2782 +#: commands/typecmds.c:2783 #, c-format msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint" msgstr "" "la colonne « %s » de la table « %s » contient des valeurs violant la\n" "nouvelle contrainte" -#: commands/typecmds.c:3011 commands/typecmds.c:3214 commands/typecmds.c:3296 commands/typecmds.c:3483 +#: commands/typecmds.c:3012 commands/typecmds.c:3215 commands/typecmds.c:3297 commands/typecmds.c:3484 #, c-format msgid "%s is not a domain" msgstr "%s n'est pas un domaine" -#: commands/typecmds.c:3043 +#: commands/typecmds.c:3044 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "la contrainte « %s » du domaine « %s » existe déjà" -#: commands/typecmds.c:3099 +#: commands/typecmds.c:3100 #, c-format msgid "cannot use table references in domain check constraint" msgstr "" "ne peut pas utiliser les références de table dans la contrainte de\n" "vérification du domaine" -#: commands/typecmds.c:3226 commands/typecmds.c:3308 commands/typecmds.c:3600 +#: commands/typecmds.c:3227 commands/typecmds.c:3309 commands/typecmds.c:3601 #, c-format msgid "%s is a table's row type" msgstr "« %s » est du type ligne de table" -#: commands/typecmds.c:3228 commands/typecmds.c:3310 commands/typecmds.c:3602 +#: commands/typecmds.c:3229 commands/typecmds.c:3311 commands/typecmds.c:3603 #, c-format msgid "Use ALTER TABLE instead." msgstr "Utilisez ALTER TABLE à la place." -#: commands/typecmds.c:3235 commands/typecmds.c:3317 commands/typecmds.c:3515 +#: commands/typecmds.c:3236 commands/typecmds.c:3318 commands/typecmds.c:3516 #, c-format msgid "cannot alter array type %s" msgstr "ne peut pas modifier le type array %s" -#: commands/typecmds.c:3237 commands/typecmds.c:3319 commands/typecmds.c:3517 +#: commands/typecmds.c:3238 commands/typecmds.c:3320 commands/typecmds.c:3518 #, c-format msgid "You can alter type %s, which will alter the array type as well." msgstr "Vous pouvez modifier le type %s, ce qui va modifier aussi le type tableau." -#: commands/typecmds.c:3585 +#: commands/typecmds.c:3586 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "le type « %s » existe déjà dans le schéma « %s »" -#: commands/typecmds.c:3753 +#: commands/typecmds.c:3754 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "ne peut pas modifier le stockage du type en PLAIN" -#: commands/typecmds.c:3834 +#: commands/typecmds.c:3835 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "l'attribut du type « %s » ne peut pas être changé" -#: commands/typecmds.c:3852 +#: commands/typecmds.c:3853 #, c-format msgid "must be superuser to alter a type" msgstr "doit être super-utilisateur pour modifier un type" -#: commands/typecmds.c:3873 commands/typecmds.c:3883 +#: commands/typecmds.c:3874 commands/typecmds.c:3884 #, c-format msgid "%s is not a base type" msgstr "« %s » n'est pas un type de base" @@ -10941,7 +10961,7 @@ msgid "cannot use special role specifier in DROP ROLE" msgstr "ne peut pas être le spécificateur de rôle spécial dans DROP ROLE" -#: commands/user.c:1040 commands/user.c:1197 commands/variable.c:778 commands/variable.c:781 commands/variable.c:865 commands/variable.c:868 utils/adt/acl.c:5187 utils/adt/acl.c:5234 utils/adt/acl.c:5262 utils/adt/acl.c:5280 utils/init/miscinit.c:675 +#: commands/user.c:1040 commands/user.c:1197 commands/variable.c:778 commands/variable.c:781 commands/variable.c:865 commands/variable.c:868 utils/adt/acl.c:5187 utils/adt/acl.c:5234 utils/adt/acl.c:5262 utils/adt/acl.c:5280 utils/init/miscinit.c:674 #, c-format msgid "role \"%s\" does not exist" msgstr "le rôle « %s » n'existe pas" @@ -11379,14 +11399,14 @@ #: executor/execCurrent.c:280 executor/execExprInterp.c:2434 #, c-format msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)" -msgstr "le type de paramètre %d (%s) ne correspond pas à ce qui est préparé dans le plan (%s)" +msgstr "le type de paramètre %d (%s) ne correspond pas à celui préparé dans le plan (%s)" #: executor/execCurrent.c:292 executor/execExprInterp.c:2446 #, c-format msgid "no value found for parameter %d" msgstr "aucune valeur trouvée pour le paramètre %d" -#: executor/execExpr.c:890 parser/parse_agg.c:816 +#: executor/execExpr.c:890 parser/parse_agg.c:809 #, c-format msgid "window function calls cannot be nested" msgstr "les appels à la fonction window ne peuvent pas être imbriqués" @@ -11475,24 +11495,24 @@ msgid "value for domain %s violates check constraint \"%s\"" msgstr "la valeur pour le domaine %s viole la contrainte de vérification « %s »" -#: executor/execExprInterp.c:4006 executor/execExprInterp.c:4023 executor/execExprInterp.c:4124 executor/nodeModifyTable.c:109 executor/nodeModifyTable.c:120 executor/nodeModifyTable.c:137 executor/nodeModifyTable.c:145 +#: executor/execExprInterp.c:4002 executor/execExprInterp.c:4019 executor/execExprInterp.c:4118 executor/nodeModifyTable.c:109 executor/nodeModifyTable.c:120 executor/nodeModifyTable.c:137 executor/nodeModifyTable.c:145 #, c-format msgid "table row type and query-specified row type do not match" msgstr "le type de ligne de la table et celui spécifié par la requête ne correspondent pas" -#: executor/execExprInterp.c:4007 +#: executor/execExprInterp.c:4003 #, c-format msgid "Table row contains %d attribute, but query expects %d." msgid_plural "Table row contains %d attributes, but query expects %d." msgstr[0] "La ligne de la table contient %d attribut alors que la requête en attend %d." msgstr[1] "La ligne de la table contient %d attributs alors que la requête en attend %d." -#: executor/execExprInterp.c:4024 executor/nodeModifyTable.c:121 +#: executor/execExprInterp.c:4020 executor/nodeModifyTable.c:121 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "La table a le type %s à la position ordinale %d alors que la requête attend %s." -#: executor/execExprInterp.c:4125 executor/execSRF.c:967 +#: executor/execExprInterp.c:4119 executor/execSRF.c:967 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "" @@ -11544,32 +11564,32 @@ msgid "cannot change TOAST relation \"%s\"" msgstr "ne peut pas modifier la relation TOAST « %s »" -#: executor/execMain.c:1101 rewrite/rewriteHandler.c:2972 rewrite/rewriteHandler.c:3763 +#: executor/execMain.c:1101 rewrite/rewriteHandler.c:2995 rewrite/rewriteHandler.c:3786 #, c-format msgid "cannot insert into view \"%s\"" msgstr "ne peut pas insérer dans la vue « %s »" -#: executor/execMain.c:1103 rewrite/rewriteHandler.c:2975 rewrite/rewriteHandler.c:3766 +#: executor/execMain.c:1103 rewrite/rewriteHandler.c:2998 rewrite/rewriteHandler.c:3789 #, c-format msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." msgstr "Pour activer l'insertion dans la vue, fournissez un trigger INSTEAD OF INSERT ou une règle ON INSERT DO INSTEAD sans condition." -#: executor/execMain.c:1109 rewrite/rewriteHandler.c:2980 rewrite/rewriteHandler.c:3771 +#: executor/execMain.c:1109 rewrite/rewriteHandler.c:3003 rewrite/rewriteHandler.c:3794 #, c-format msgid "cannot update view \"%s\"" msgstr "ne peut pas mettre à jour la vue « %s »" -#: executor/execMain.c:1111 rewrite/rewriteHandler.c:2983 rewrite/rewriteHandler.c:3774 +#: executor/execMain.c:1111 rewrite/rewriteHandler.c:3006 rewrite/rewriteHandler.c:3797 #, c-format msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." msgstr "Pour activer la mise à jour dans la vue, fournissez un trigger INSTEAD OF UPDATE ou une règle ON UPDATE DO INSTEAD sans condition." -#: executor/execMain.c:1117 rewrite/rewriteHandler.c:2988 rewrite/rewriteHandler.c:3779 +#: executor/execMain.c:1117 rewrite/rewriteHandler.c:3011 rewrite/rewriteHandler.c:3802 #, c-format msgid "cannot delete from view \"%s\"" msgstr "ne peut pas supprimer à partir de la vue « %s »" -#: executor/execMain.c:1119 rewrite/rewriteHandler.c:2991 rewrite/rewriteHandler.c:3782 +#: executor/execMain.c:1119 rewrite/rewriteHandler.c:3014 rewrite/rewriteHandler.c:3805 #, c-format msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." msgstr "Pour activer la suppression dans la vue, fournissez un trigger INSTEAD OF DELETE ou une règle ON DELETE DO INSTEAD sans condition." @@ -11887,17 +11907,17 @@ msgid "return type %s is not supported for SQL functions" msgstr "le type de retour %s n'est pas supporté pour les fonctions SQL" -#: executor/nodeAgg.c:3091 executor/nodeAgg.c:3100 executor/nodeAgg.c:3112 +#: executor/nodeAgg.c:3096 executor/nodeAgg.c:3105 executor/nodeAgg.c:3117 #, c-format msgid "unexpected EOF for tape %d: requested %zu bytes, read %zu bytes" msgstr "fin de fichier inattendu pour la cassette %d : attendait %zu octets, a lu %zu octets" -#: executor/nodeAgg.c:4046 parser/parse_agg.c:655 parser/parse_agg.c:685 +#: executor/nodeAgg.c:4043 parser/parse_agg.c:650 parser/parse_agg.c:678 #, c-format msgid "aggregate function calls cannot be nested" msgstr "les appels à la fonction d'agrégat ne peuvent pas être imbriqués" -#: executor/nodeAgg.c:4254 executor/nodeWindowAgg.c:2836 +#: executor/nodeAgg.c:4251 executor/nodeWindowAgg.c:2836 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "l'agrégat %u a besoin d'avoir des types compatibles en entrée et en transition" @@ -11917,7 +11937,7 @@ msgid "could not read from hash-join temporary file: read only %zu of %zu bytes" msgstr "n'a pas pu lire le fichier temporaire pour la jointure de hachage : a lu seulement %zu octets sur %zu" -#: executor/nodeIndexonlyscan.c:242 +#: executor/nodeIndexonlyscan.c:240 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "les fonctions de distance à perte ne sont pas supportés dans les parcours d'index seul" @@ -12239,7 +12259,7 @@ msgid "duplicate trigger events specified" msgstr "événements de trigger dupliqués spécifiés" -#: gram.y:5594 parser/parse_utilcmd.c:3605 parser/parse_utilcmd.c:3631 +#: gram.y:5594 parser/parse_utilcmd.c:3606 parser/parse_utilcmd.c:3632 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "la contrainte déclarée INITIALLY DEFERRED doit être DEFERRABLE" @@ -12453,35 +12473,35 @@ msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "WITH TIES ne peut pas être indiqué sans clause ORDER BY" -#: gram.y:16173 +#: gram.y:16188 #, c-format msgid "multiple WITH clauses not allowed" msgstr "clauses WITH multiples non autorisées" -#: gram.y:16377 +#: gram.y:16392 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "les arguments OUT et INOUT ne sont pas autorisés dans des fonctions TABLE" -#: gram.y:16473 +#: gram.y:16488 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "clauses COLLATE multiples non autorisées" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:16511 gram.y:16524 +#: gram.y:16526 gram.y:16539 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "les contraintes %s ne peuvent pas être marquées comme DEFERRABLE" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:16537 +#: gram.y:16552 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "les contraintes %s ne peuvent pas être marquées comme NOT VALID" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:16550 +#: gram.y:16565 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "les contraintes %s ne peuvent pas être marquées NO INHERIT" @@ -12491,86 +12511,86 @@ msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %u" msgstr "paramètre de configuration « %s » non reconnu dans le fichier « %s », ligne %u" -#: guc-file.l:352 utils/misc/guc.c:7018 utils/misc/guc.c:7216 utils/misc/guc.c:7310 utils/misc/guc.c:7404 utils/misc/guc.c:7524 utils/misc/guc.c:7623 +#: guc-file.l:354 utils/misc/guc.c:7018 utils/misc/guc.c:7216 utils/misc/guc.c:7310 utils/misc/guc.c:7404 utils/misc/guc.c:7524 utils/misc/guc.c:7623 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "le paramètre « %s » ne peut pas être modifié sans redémarrer le serveur" -#: guc-file.l:388 +#: guc-file.l:390 #, c-format msgid "parameter \"%s\" removed from configuration file, reset to default" msgstr "" "paramètre « %s » supprimé du fichier de configuration ;\n" "réinitialisation à la valeur par défaut" -#: guc-file.l:454 +#: guc-file.l:456 #, c-format msgid "parameter \"%s\" changed to \"%s\"" msgstr "paramètre « %s » modifié par « %s »" -#: guc-file.l:496 +#: guc-file.l:498 #, c-format msgid "configuration file \"%s\" contains errors" msgstr "le fichier de configuration « %s » contient des erreurs" -#: guc-file.l:501 +#: guc-file.l:503 #, c-format msgid "configuration file \"%s\" contains errors; unaffected changes were applied" msgstr "le fichier de configuration « %s » contient des erreurs ; les modifications non affectées ont été appliquées" -#: guc-file.l:506 +#: guc-file.l:508 #, c-format msgid "configuration file \"%s\" contains errors; no changes were applied" msgstr "le fichier de configuration « %s » contient des erreurs ; aucune modification n'a été appliquée" -#: guc-file.l:578 +#: guc-file.l:580 #, c-format msgid "empty configuration file name: \"%s\"" msgstr "nom de fichier de configuration vide : « %s »" -#: guc-file.l:595 +#: guc-file.l:597 #, c-format msgid "could not open configuration file \"%s\": maximum nesting depth exceeded" msgstr "" "n'a pas pu ouvrir le fichier de configuration « %s » : profondeur\n" "d'imbrication dépassé" -#: guc-file.l:615 +#: guc-file.l:617 #, c-format msgid "configuration file recursion in \"%s\"" msgstr "le fichier de configuration « %s » contient une récursion" -#: guc-file.l:631 libpq/hba.c:2193 libpq/hba.c:2613 +#: guc-file.l:633 libpq/hba.c:2197 libpq/hba.c:2617 #, c-format msgid "could not open configuration file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier de configuration « %s » : %m" -#: guc-file.l:642 +#: guc-file.l:644 #, c-format msgid "skipping missing configuration file \"%s\"" msgstr "ignore le fichier de configuration « %s » manquant" -#: guc-file.l:896 +#: guc-file.l:898 #, c-format msgid "syntax error in file \"%s\" line %u, near end of line" msgstr "erreur de syntaxe dans le fichier « %s », ligne %u, près de la fin de ligne" -#: guc-file.l:906 +#: guc-file.l:908 #, c-format msgid "syntax error in file \"%s\" line %u, near token \"%s\"" msgstr "erreur de syntaxe dans le fichier « %s », ligne %u, près du mot clé « %s »" -#: guc-file.l:926 +#: guc-file.l:928 #, c-format msgid "too many syntax errors found, abandoning file \"%s\"" msgstr "trop d'erreurs de syntaxe trouvées, abandon du fichier « %s »" -#: guc-file.l:981 +#: guc-file.l:983 #, c-format msgid "empty configuration directory name: \"%s\"" msgstr "nom de répertoire de configuration vide : « %s »" -#: guc-file.l:1000 +#: guc-file.l:1002 #, c-format msgid "could not open configuration directory \"%s\": %m" msgstr "n'a pas pu ouvrir le répertoire de configuration « %s » : %m" @@ -13258,7 +13278,7 @@ msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "l'authentification RADIUS ne supporte pas les mots de passe de plus de %d caractères" -#: libpq/auth.c:3111 libpq/hba.c:1946 +#: libpq/auth.c:3111 libpq/hba.c:1950 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "n'a pas pu traduire le nom du serveur RADIUS « %s » en une adresse : %s" @@ -13338,62 +13358,62 @@ msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "la réponse RADIUS de %s a un code invalide (%d) pour l'utilisateur « %s »" -#: libpq/be-fsstubs.c:119 libpq/be-fsstubs.c:150 libpq/be-fsstubs.c:178 libpq/be-fsstubs.c:204 libpq/be-fsstubs.c:229 libpq/be-fsstubs.c:277 libpq/be-fsstubs.c:300 libpq/be-fsstubs.c:553 +#: libpq/be-fsstubs.c:128 libpq/be-fsstubs.c:157 libpq/be-fsstubs.c:185 libpq/be-fsstubs.c:211 libpq/be-fsstubs.c:236 libpq/be-fsstubs.c:274 libpq/be-fsstubs.c:297 libpq/be-fsstubs.c:545 #, c-format msgid "invalid large-object descriptor: %d" msgstr "descripteur invalide de « Large Object » : %d" -#: libpq/be-fsstubs.c:161 +#: libpq/be-fsstubs.c:168 #, c-format msgid "large object descriptor %d was not opened for reading" msgstr "le descripteur %d du « Large Object » n'a pas été ouvert pour la lecture" -#: libpq/be-fsstubs.c:185 libpq/be-fsstubs.c:560 +#: libpq/be-fsstubs.c:192 libpq/be-fsstubs.c:552 #, c-format msgid "large object descriptor %d was not opened for writing" msgstr "le descripteur %d du « Large Object » n'a pas été ouvert pour l'écriture" -#: libpq/be-fsstubs.c:212 +#: libpq/be-fsstubs.c:219 #, c-format msgid "lo_lseek result out of range for large-object descriptor %d" msgstr "résultat de lo_lseek en dehors de l'intervalle pour le descripteur de Large Object %d" -#: libpq/be-fsstubs.c:285 +#: libpq/be-fsstubs.c:282 #, c-format msgid "lo_tell result out of range for large-object descriptor %d" msgstr "résultat de lo_tell en dehors de l'intervalle pour le descripteur de Large Object %d" -#: libpq/be-fsstubs.c:432 +#: libpq/be-fsstubs.c:424 #, c-format msgid "could not open server file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier serveur « %s » : %m" -#: libpq/be-fsstubs.c:454 +#: libpq/be-fsstubs.c:447 #, c-format msgid "could not read server file \"%s\": %m" msgstr "n'a pas pu lire le fichier serveur « %s » : %m" -#: libpq/be-fsstubs.c:514 +#: libpq/be-fsstubs.c:506 #, c-format msgid "could not create server file \"%s\": %m" msgstr "n'a pas pu créer le fichier serveur « %s » : %m" -#: libpq/be-fsstubs.c:526 +#: libpq/be-fsstubs.c:518 #, c-format msgid "could not write server file \"%s\": %m" msgstr "n'a pas pu écrire le fichier serveur « %s » : %m" -#: libpq/be-fsstubs.c:760 +#: libpq/be-fsstubs.c:758 #, c-format msgid "large object read request is too large" msgstr "la demande de lecture du Large Object est trop grande" -#: libpq/be-fsstubs.c:802 utils/adt/genfile.c:265 utils/adt/genfile.c:304 utils/adt/genfile.c:340 +#: libpq/be-fsstubs.c:800 utils/adt/genfile.c:265 utils/adt/genfile.c:304 utils/adt/genfile.c:340 #, c-format msgid "requested length cannot be negative" msgstr "la longueur demandée ne peut pas être négative" -#: libpq/be-fsstubs.c:855 storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309 storage/large_object/inv_api.c:513 storage/large_object/inv_api.c:624 storage/large_object/inv_api.c:814 +#: libpq/be-fsstubs.c:851 storage/large_object/inv_api.c:299 storage/large_object/inv_api.c:311 storage/large_object/inv_api.c:508 storage/large_object/inv_api.c:619 storage/large_object/inv_api.c:809 #, c-format msgid "permission denied for large object %u" msgstr "droit refusé pour le Large Object %u" @@ -13413,24 +13433,24 @@ msgid "could not access private key file \"%s\": %m" msgstr "n'a pas pu accéder au fichier de la clé privée « %s » : %m" -#: libpq/be-secure-common.c:150 +#: libpq/be-secure-common.c:151 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "le fichier de clé privée « %s » n'est pas un fichier" -#: libpq/be-secure-common.c:165 +#: libpq/be-secure-common.c:176 #, c-format msgid "private key file \"%s\" must be owned by the database user or root" msgstr "le fichier de clé privée « %s » doit avoir le même propriétaire que la base de donnée ou root" -#: libpq/be-secure-common.c:188 +#: libpq/be-secure-common.c:186 #, c-format msgid "private key file \"%s\" has group or world access" msgstr "" "le fichier de clé privé « %s » est accessible par le groupe et/ou par les\n" "autres" -#: libpq/be-secure-common.c:190 +#: libpq/be-secure-common.c:188 #, c-format msgid "File must have permissions u=rw (0600) or less if owned by the database user, or permissions u=rw,g=r (0640) or less if owned by root." msgstr "" @@ -13444,7 +13464,7 @@ #: libpq/be-secure-gssapi.c:211 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" -msgstr "le message sortant GSSAPI n'utilliserait pas la confidentialité" +msgstr "le message sortant GSSAPI n'utiliserait pas la confidentialité" #: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:622 #, c-format @@ -13463,7 +13483,7 @@ #: libpq/be-secure-gssapi.c:396 #, c-format msgid "incoming GSSAPI message did not use confidentiality" -msgstr "le message GSSAPI en entrée n'a pas utilisé la confidentialité" +msgstr "le message entrant GSSAPI n'a pas utilisé la confidentialité" #: libpq/be-secure-gssapi.c:570 #, c-format @@ -13476,7 +13496,7 @@ #: libpq/be-secure-gssapi.c:689 msgid "GSSAPI size check error" -msgstr "erreur de vérification de taille GSSAPI" +msgstr "erreur de vérification de la taille GSSAPI" #: libpq/be-secure-openssl.c:115 #, c-format @@ -13597,59 +13617,59 @@ msgid "SSL error: %s" msgstr "erreur SSL : %s" -#: libpq/be-secure-openssl.c:888 +#: libpq/be-secure-openssl.c:889 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier de paramètres DH « %s » : %m" -#: libpq/be-secure-openssl.c:900 +#: libpq/be-secure-openssl.c:901 #, c-format msgid "could not load DH parameters file: %s" msgstr "n'a pas pu charger le fichier de paramètres DH : %s" -#: libpq/be-secure-openssl.c:910 +#: libpq/be-secure-openssl.c:911 #, c-format msgid "invalid DH parameters: %s" msgstr "paramètres DH invalides : %s" -#: libpq/be-secure-openssl.c:919 +#: libpq/be-secure-openssl.c:920 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "paramètres DH invalides : p n'est pas premier" -#: libpq/be-secure-openssl.c:928 +#: libpq/be-secure-openssl.c:929 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "paramètres DH invalides : pas de générateur convenable ou de premier sûr" -#: libpq/be-secure-openssl.c:1085 +#: libpq/be-secure-openssl.c:1086 #, c-format msgid "DH: could not load DH parameters" msgstr "DH : n'a pas pu charger les paramètres DH" -#: libpq/be-secure-openssl.c:1093 +#: libpq/be-secure-openssl.c:1094 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH : n'a pas pu configurer les paramètres DH : %s" -#: libpq/be-secure-openssl.c:1120 +#: libpq/be-secure-openssl.c:1121 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH : nome de courbe non reconnu : %s" -#: libpq/be-secure-openssl.c:1129 +#: libpq/be-secure-openssl.c:1130 #, c-format msgid "ECDH: could not create key" msgstr "ECDH : n'a pas pu créer la clé" -#: libpq/be-secure-openssl.c:1157 +#: libpq/be-secure-openssl.c:1158 msgid "no SSL error reported" msgstr "aucune erreur SSL reportée" -#: libpq/be-secure-openssl.c:1161 +#: libpq/be-secure-openssl.c:1162 #, c-format msgid "SSL error code %lu" -msgstr "erreur SSL de code %lu" +msgstr "code d'erreur SSL %lu" #: libpq/be-secure.c:122 #, c-format @@ -13708,8 +13728,8 @@ msgid "authentication file line too long" msgstr "ligne du fichier d'authentification trop longue" -#: libpq/hba.c:510 libpq/hba.c:867 libpq/hba.c:887 libpq/hba.c:925 libpq/hba.c:975 libpq/hba.c:989 libpq/hba.c:1013 libpq/hba.c:1022 libpq/hba.c:1035 libpq/hba.c:1056 libpq/hba.c:1069 libpq/hba.c:1089 libpq/hba.c:1111 libpq/hba.c:1123 libpq/hba.c:1182 libpq/hba.c:1202 libpq/hba.c:1216 libpq/hba.c:1236 libpq/hba.c:1247 libpq/hba.c:1262 libpq/hba.c:1281 libpq/hba.c:1297 libpq/hba.c:1309 libpq/hba.c:1346 libpq/hba.c:1387 libpq/hba.c:1400 libpq/hba.c:1422 libpq/hba.c:1434 libpq/hba.c:1452 libpq/hba.c:1502 libpq/hba.c:1546 libpq/hba.c:1557 libpq/hba.c:1573 libpq/hba.c:1590 libpq/hba.c:1600 libpq/hba.c:1658 libpq/hba.c:1696 libpq/hba.c:1718 libpq/hba.c:1730 libpq/hba.c:1817 -#: libpq/hba.c:1835 libpq/hba.c:1929 libpq/hba.c:1948 libpq/hba.c:1977 libpq/hba.c:1990 libpq/hba.c:2013 libpq/hba.c:2035 libpq/hba.c:2049 tsearch/ts_locale.c:217 +#: libpq/hba.c:510 libpq/hba.c:867 libpq/hba.c:887 libpq/hba.c:925 libpq/hba.c:975 libpq/hba.c:989 libpq/hba.c:1013 libpq/hba.c:1022 libpq/hba.c:1035 libpq/hba.c:1056 libpq/hba.c:1069 libpq/hba.c:1089 libpq/hba.c:1111 libpq/hba.c:1123 libpq/hba.c:1182 libpq/hba.c:1202 libpq/hba.c:1216 libpq/hba.c:1236 libpq/hba.c:1247 libpq/hba.c:1262 libpq/hba.c:1281 libpq/hba.c:1297 libpq/hba.c:1309 libpq/hba.c:1346 libpq/hba.c:1387 libpq/hba.c:1400 libpq/hba.c:1422 libpq/hba.c:1434 libpq/hba.c:1452 libpq/hba.c:1502 libpq/hba.c:1546 libpq/hba.c:1557 libpq/hba.c:1573 libpq/hba.c:1590 libpq/hba.c:1600 libpq/hba.c:1662 libpq/hba.c:1700 libpq/hba.c:1722 libpq/hba.c:1734 libpq/hba.c:1821 +#: libpq/hba.c:1839 libpq/hba.c:1933 libpq/hba.c:1952 libpq/hba.c:1981 libpq/hba.c:1994 libpq/hba.c:2017 libpq/hba.c:2039 libpq/hba.c:2053 tsearch/ts_locale.c:217 #, c-format msgid "line %d of configuration file \"%s\"" msgstr "ligne %d du fichier de configuration « %s »" @@ -13926,130 +13946,130 @@ msgid "list of RADIUS secrets cannot be empty" msgstr "la liste des secrets RADIUS ne peut pas être vide" -#: libpq/hba.c:1652 +#: libpq/hba.c:1656 #, c-format msgid "the number of %s (%d) must be 1 or the same as the number of %s (%d)" msgstr "le nombre de %s (%d) doit valoir 1 ou être identique au nombre de %s (%d)" -#: libpq/hba.c:1686 +#: libpq/hba.c:1690 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi et cert" -#: libpq/hba.c:1695 +#: libpq/hba.c:1699 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert ne peut être configuré que pour les lignes « hostssl »" -#: libpq/hba.c:1717 +#: libpq/hba.c:1721 #, c-format msgid "clientcert cannot be set to \"no-verify\" when using \"cert\" authentication" msgstr "clientcert ne peut être positionné à « no-verify » si vous utilisez l'authentification « cert »" -#: libpq/hba.c:1729 +#: libpq/hba.c:1733 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "valeur invalide pour clientcert : « %s »" -#: libpq/hba.c:1763 +#: libpq/hba.c:1767 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "n'a pas pu analyser l'URL LDAP « %s » : %s" -#: libpq/hba.c:1774 +#: libpq/hba.c:1778 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "méthode URL LDAP non supporté : %s" -#: libpq/hba.c:1798 +#: libpq/hba.c:1802 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "URLs LDAP non supportées sur cette plateforme" -#: libpq/hba.c:1816 +#: libpq/hba.c:1820 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "valeur ldapscheme invalide : « %s »" -#: libpq/hba.c:1834 +#: libpq/hba.c:1838 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "numéro de port LDAP invalide : « %s »" -#: libpq/hba.c:1880 libpq/hba.c:1887 +#: libpq/hba.c:1884 libpq/hba.c:1891 msgid "gssapi and sspi" msgstr "gssapi et sspi" -#: libpq/hba.c:1896 libpq/hba.c:1905 +#: libpq/hba.c:1900 libpq/hba.c:1909 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:1927 +#: libpq/hba.c:1931 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "n'a pas pu analyser la liste de serveurs RADIUS « %s »" -#: libpq/hba.c:1975 +#: libpq/hba.c:1979 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "n'a pas pu analyser la liste de ports RADIUS « %s »" -#: libpq/hba.c:1989 +#: libpq/hba.c:1993 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "numéro de port RADIUS invalide : « %s »" -#: libpq/hba.c:2011 +#: libpq/hba.c:2015 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "n'a pas pu analyser la liste de secrets RADIUS « %s »" -#: libpq/hba.c:2033 +#: libpq/hba.c:2037 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "n'a pas pu analyser la liste des identifieurs RADIUS « %s »" -#: libpq/hba.c:2047 +#: libpq/hba.c:2051 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "nom d'option de l'authentification inconnu : « %s »" -#: libpq/hba.c:2244 +#: libpq/hba.c:2248 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "le fichier de configuration « %s » ne contient aucun enregistrement" -#: libpq/hba.c:2768 +#: libpq/hba.c:2772 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "expression rationnelle invalide « %s » : %s" -#: libpq/hba.c:2828 +#: libpq/hba.c:2832 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "la correspondance de l'expression rationnelle pour « %s » a échoué : %s" -#: libpq/hba.c:2847 +#: libpq/hba.c:2851 #, c-format msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\"" msgstr "" "l'expression rationnelle « %s » n'a pas de sous-expressions comme celle\n" "demandée par la référence dans « %s »" -#: libpq/hba.c:2943 +#: libpq/hba.c:2947 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "" "le nom d'utilisateur (%s) et le nom d'utilisateur authentifié (%s) fournis ne\n" "correspondent pas" -#: libpq/hba.c:2963 +#: libpq/hba.c:2967 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "" "pas de correspondance dans la usermap « %s » pour l'utilisateur « %s »\n" "authentifié en tant que « %s »" -#: libpq/hba.c:2996 +#: libpq/hba.c:3000 #, c-format msgid "could not open usermap file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier usermap « %s » : %m" @@ -14179,27 +14199,27 @@ msgid "could not receive data from client: %m" msgstr "n'a pas pu recevoir les données du client : %m" -#: libpq/pqcomm.c:1203 tcop/postgres.c:4164 +#: libpq/pqcomm.c:1215 tcop/postgres.c:4174 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "arrêt de la connexion à cause d'une perte de synchronisation du protocole" -#: libpq/pqcomm.c:1269 +#: libpq/pqcomm.c:1281 #, c-format msgid "unexpected EOF within message length word" msgstr "fin de fichier (EOF) inattendue à l'intérieur de la longueur du message" -#: libpq/pqcomm.c:1280 +#: libpq/pqcomm.c:1292 #, c-format msgid "invalid message length" msgstr "longueur du message invalide" -#: libpq/pqcomm.c:1302 libpq/pqcomm.c:1315 +#: libpq/pqcomm.c:1314 libpq/pqcomm.c:1327 #, c-format msgid "incomplete message from client" msgstr "message incomplet du client" -#: libpq/pqcomm.c:1448 +#: libpq/pqcomm.c:1460 #, c-format msgid "could not send data to client: %m" msgstr "n'a pas pu envoyer les données au client : %m" @@ -14257,7 +14277,7 @@ #: main/main.c:313 #, c-format msgid " -B NBUFFERS number of shared buffers\n" -msgstr " -B NBUFFERS nombre de tampons partagés (shared buffers)\n" +msgstr " -B NBUFFERS nombre de blocs pour le cache disque de PostgreSQL\n" #: main/main.c:314 #, c-format @@ -14267,9 +14287,7 @@ #: main/main.c:315 #, c-format msgid " -C NAME print value of run-time parameter, then exit\n" -msgstr "" -" -C NOM affiche la valeur d'un paramètre en exécution,\n" -" puis quitte\n" +msgstr " -C NOM affiche la valeur d'un paramètre en exécution, puis quitte\n" #: main/main.c:316 #, c-format @@ -14279,7 +14297,7 @@ #: main/main.c:317 #, c-format msgid " -D DATADIR database directory\n" -msgstr " -D RÉPDONNEES répertoire de la base de données\n" +msgstr " -D RÉP_DONNEES répertoire de la base de données\n" #: main/main.c:318 #, c-format @@ -14380,9 +14398,7 @@ #: main/main.c:339 #, c-format msgid " -O allow system table structure changes\n" -msgstr "" -" -O autorise les modifications de structure des tables\n" -" système\n" +msgstr " -O autorise les modifications de structure des tables systèmes\n" #: main/main.c:340 #, c-format @@ -14398,8 +14414,8 @@ #, c-format msgid " -T send SIGSTOP to all backend processes if one dies\n" msgstr "" -" -T envoie SIGSTOP à tous les processus serveur si l'un\n" -" d'entre eux meurt\n" +" -T envoie SIGSTOP à tous les processus serveur si l'un d'entre\n" +" eux meurt\n" #: main/main.c:343 #, c-format @@ -14421,8 +14437,8 @@ #, c-format msgid " --single selects single-user mode (must be first argument)\n" msgstr "" -" --single sélectionne le mode mono-utilisateur (doit être le\n" -" premier argument)\n" +" --single sélectionne le mode mono-utilisateur (doit être le premier\n" +" argument)\n" #: main/main.c:347 #, c-format @@ -14464,8 +14480,8 @@ #, c-format msgid " --boot selects bootstrapping mode (must be first argument)\n" msgstr "" -" --boot sélectionne le mode « bootstrapping » (doit être le\n" -" premier argument)\n" +" --boot sélectionne le mode « bootstrapping » (doit être le premier\n" +" argument)\n" #: main/main.c:355 #, c-format @@ -14490,9 +14506,9 @@ "Report bugs to <%s>.\n" msgstr "" "\n" -"Merci de lire la documentation pour la liste complète des paramètres\n" -"de configuration et pour savoir comment les configurer sur la\n" -"ligne de commande ou dans le fichier de configuration.\n" +"Merci de lire la documentation pour la liste complète des paramètres de\n" +"configuration et pour savoir comment les configurer sur la ligne de commande\n" +"ou dans le fichier de configuration.\n" "\n" "Rapportez les bogues à <%s>.\n" @@ -14543,7 +14559,7 @@ msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "ExtensibleNodeMethods \"%s\" n'a pas été enregistré" -#: nodes/nodeFuncs.c:122 nodes/nodeFuncs.c:153 parser/parse_coerce.c:2215 parser/parse_coerce.c:2324 parser/parse_coerce.c:2359 parser/parse_expr.c:2207 parser/parse_func.c:701 parser/parse_oper.c:967 utils/fmgr/funcapi.c:528 +#: nodes/nodeFuncs.c:122 nodes/nodeFuncs.c:153 parser/parse_coerce.c:2295 parser/parse_coerce.c:2404 parser/parse_coerce.c:2439 parser/parse_expr.c:2212 parser/parse_func.c:701 parser/parse_oper.c:967 utils/fmgr/funcapi.c:528 #, c-format msgid "could not find array type for data type %s" msgstr "n'a pas pu trouver de type tableau pour le type de données %s" @@ -14572,46 +14588,46 @@ msgstr "%s ne peut être appliqué sur le côté possiblement NULL d'une jointure externe" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1922 parser/analyze.c:1639 parser/analyze.c:1855 parser/analyze.c:2682 +#: optimizer/plan/planner.c:1923 parser/analyze.c:1639 parser/analyze.c:1855 parser/analyze.c:2682 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s n'est pas autorisé avec UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2509 optimizer/plan/planner.c:4162 +#: optimizer/plan/planner.c:2510 optimizer/plan/planner.c:4163 #, c-format msgid "could not implement GROUP BY" msgstr "n'a pas pu implanter GROUP BY" -#: optimizer/plan/planner.c:2510 optimizer/plan/planner.c:4163 optimizer/plan/planner.c:4890 optimizer/prep/prepunion.c:1045 +#: optimizer/plan/planner.c:2511 optimizer/plan/planner.c:4164 optimizer/plan/planner.c:4891 optimizer/prep/prepunion.c:1045 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "" "Certains des types de données supportent seulement le hachage,\n" "alors que les autres supportent seulement le tri." -#: optimizer/plan/planner.c:4889 +#: optimizer/plan/planner.c:4890 #, c-format msgid "could not implement DISTINCT" msgstr "n'a pas pu implanter DISTINCT" -#: optimizer/plan/planner.c:5737 +#: optimizer/plan/planner.c:5738 #, c-format msgid "could not implement window PARTITION BY" msgstr "n'a pas pu implanter PARTITION BY de window" -#: optimizer/plan/planner.c:5738 +#: optimizer/plan/planner.c:5739 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "" "Les colonnes de partitionnement de window doivent être d'un type de données\n" "triables." -#: optimizer/plan/planner.c:5742 +#: optimizer/plan/planner.c:5743 #, c-format msgid "could not implement window ORDER BY" msgstr "n'a pas pu implanter ORDER BY dans le window" -#: optimizer/plan/planner.c:5743 +#: optimizer/plan/planner.c:5744 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Les colonnes de tri de la window doivent être d'un type de données triable." @@ -14696,7 +14712,7 @@ msgstr "SELECT ... INTO n'est pas autorisé ici" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1542 parser/analyze.c:2861 +#: parser/analyze.c:1542 parser/analyze.c:2876 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s ne peut pas être appliqué à VALUES" @@ -14835,43 +14851,43 @@ msgstr "%s n'est pas autorisé avec les fonctions renvoyant plusieurs lignes dans la liste cible" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2803 +#: parser/analyze.c:2816 #, c-format msgid "%s must specify unqualified relation names" msgstr "%s doit indiquer les noms de relation non qualifiés" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2834 +#: parser/analyze.c:2849 #, c-format msgid "%s cannot be applied to a join" msgstr "%s ne peut pas être appliqué à une jointure" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2843 +#: parser/analyze.c:2858 #, c-format msgid "%s cannot be applied to a function" msgstr "%s ne peut pas être appliqué à une fonction" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2852 +#: parser/analyze.c:2867 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s ne peut pas être appliqué à une fonction de table" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2870 +#: parser/analyze.c:2885 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s ne peut pas être appliqué à une requête WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2879 +#: parser/analyze.c:2894 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s ne peut pas être appliqué à une tuplestore nommé" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2899 +#: parser/analyze.c:2914 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "relation « %s » dans une clause %s introuvable dans la clause FROM" @@ -15055,129 +15071,129 @@ msgid "grouping operations are not allowed in %s" msgstr "les fonctions de regroupement ne sont pas autorisés dans %s" -#: parser/parse_agg.c:678 +#: parser/parse_agg.c:671 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "un aggrégat de niveau externe ne peut pas contenir de variable de niveau inférieur dans ses arguments directs" -#: parser/parse_agg.c:757 +#: parser/parse_agg.c:750 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "les appels à la fonction d'agrégat ne peuvent pas contenir des appels à des fonctions retournant des ensembles" -#: parser/parse_agg.c:758 parser/parse_expr.c:1845 parser/parse_expr.c:2332 parser/parse_func.c:872 +#: parser/parse_agg.c:751 parser/parse_expr.c:1850 parser/parse_expr.c:2337 parser/parse_func.c:872 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Vous devriez être capable de déplacer la fonction SETOF dans un élément LATERAL FROM." -#: parser/parse_agg.c:763 +#: parser/parse_agg.c:756 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "les appels à la fonction d'agrégat ne peuvent pas contenir des appels à une fonction de fenêtrage" -#: parser/parse_agg.c:842 +#: parser/parse_agg.c:835 msgid "window functions are not allowed in JOIN conditions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les conditions de jointure" -#: parser/parse_agg.c:849 +#: parser/parse_agg.c:842 msgid "window functions are not allowed in functions in FROM" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les fonctions contenues dans la clause FROM" -#: parser/parse_agg.c:855 +#: parser/parse_agg.c:848 msgid "window functions are not allowed in policy expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions de politique" -#: parser/parse_agg.c:868 +#: parser/parse_agg.c:861 msgid "window functions are not allowed in window definitions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les définitions de fenêtres" -#: parser/parse_agg.c:900 +#: parser/parse_agg.c:893 msgid "window functions are not allowed in check constraints" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les contraintes CHECK" -#: parser/parse_agg.c:904 +#: parser/parse_agg.c:897 msgid "window functions are not allowed in DEFAULT expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions par défaut" -#: parser/parse_agg.c:907 +#: parser/parse_agg.c:900 msgid "window functions are not allowed in index expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions d'index" -#: parser/parse_agg.c:910 +#: parser/parse_agg.c:903 msgid "window functions are not allowed in index predicates" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les prédicats d'index" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:906 msgid "window functions are not allowed in transform expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions de transformation" -#: parser/parse_agg.c:916 +#: parser/parse_agg.c:909 msgid "window functions are not allowed in EXECUTE parameters" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les paramètres d'EXECUTE" -#: parser/parse_agg.c:919 +#: parser/parse_agg.c:912 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les conditions WHEN des triggers" -#: parser/parse_agg.c:922 +#: parser/parse_agg.c:915 msgid "window functions are not allowed in partition bound" msgstr "les fonctions de fenêtrage ne sont pas autorisées dans les limites de partition" -#: parser/parse_agg.c:925 +#: parser/parse_agg.c:918 msgid "window functions are not allowed in partition key expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions de clé de partitionnement" -#: parser/parse_agg.c:928 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in CALL arguments" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les arguments de CALL" -#: parser/parse_agg.c:931 +#: parser/parse_agg.c:924 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "les fonctions de fenêtrage ne sont pas autorisées dans les conditions WHERE d'un COPY FROM" -#: parser/parse_agg.c:934 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in column generation expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisées dans les expressions de génération de colonne" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:954 parser/parse_clause.c:1837 +#: parser/parse_agg.c:947 parser/parse_clause.c:1837 #, c-format msgid "window functions are not allowed in %s" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans %s" -#: parser/parse_agg.c:988 parser/parse_clause.c:2671 +#: parser/parse_agg.c:981 parser/parse_clause.c:2671 #, c-format msgid "window \"%s\" does not exist" msgstr "le window « %s » n'existe pas" -#: parser/parse_agg.c:1072 +#: parser/parse_agg.c:1065 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "trop d'ensembles de regroupement présents (4096 maximum)" -#: parser/parse_agg.c:1212 +#: parser/parse_agg.c:1205 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "les fonctions d'agrégat ne sont pas autorisées dans le terme récursif d'une requête récursive" -#: parser/parse_agg.c:1405 +#: parser/parse_agg.c:1398 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "la colonne « %s.%s » doit apparaître dans la clause GROUP BY ou doit être utilisé dans une fonction d'agrégat" -#: parser/parse_agg.c:1408 +#: parser/parse_agg.c:1401 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Les arguments directs d'un agégat par ensemble ordonné doivent seulement utiliser des colonnes groupées." -#: parser/parse_agg.c:1413 +#: parser/parse_agg.c:1406 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "" "la sous-requête utilise une colonne « %s.%s » non groupée dans la requête\n" "externe" -#: parser/parse_agg.c:1577 +#: parser/parse_agg.c:1570 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "les arguments de la clause GROUPING doivent être des expressions de regroupement du niveau associé de la requête" @@ -15472,145 +15488,150 @@ msgid "Cast the offset value to the exact intended type." msgstr "Transtypez la valeur d'offset vers exactement le type attendu." -#: parser/parse_coerce.c:1031 parser/parse_coerce.c:1069 parser/parse_coerce.c:1087 parser/parse_coerce.c:1102 parser/parse_expr.c:2241 parser/parse_expr.c:2819 parser/parse_target.c:967 +#: parser/parse_coerce.c:1047 parser/parse_coerce.c:1085 parser/parse_coerce.c:1103 parser/parse_coerce.c:1118 parser/parse_expr.c:2246 parser/parse_expr.c:2824 parser/parse_target.c:966 #, c-format msgid "cannot cast type %s to %s" msgstr "ne peut pas convertir le type %s en %s" -#: parser/parse_coerce.c:1072 +#: parser/parse_coerce.c:1088 #, c-format msgid "Input has too few columns." msgstr "L'entrée n'a pas assez de colonnes." -#: parser/parse_coerce.c:1090 +#: parser/parse_coerce.c:1106 #, c-format msgid "Cannot cast type %s to %s in column %d." msgstr "Ne peut pas convertir le type %s en %s dans la colonne %d." -#: parser/parse_coerce.c:1105 +#: parser/parse_coerce.c:1121 #, c-format msgid "Input has too many columns." msgstr "L'entrée a trop de colonnes." #. translator: first %s is name of a SQL construct, eg WHERE #. translator: first %s is name of a SQL construct, eg LIMIT -#: parser/parse_coerce.c:1160 parser/parse_coerce.c:1208 +#: parser/parse_coerce.c:1176 parser/parse_coerce.c:1224 #, c-format msgid "argument of %s must be type %s, not type %s" msgstr "l'argument de %s doit être de type %s, et non du type %s" #. translator: %s is name of a SQL construct, eg WHERE #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_coerce.c:1171 parser/parse_coerce.c:1220 +#: parser/parse_coerce.c:1187 parser/parse_coerce.c:1236 #, c-format msgid "argument of %s must not return a set" msgstr "l'argument de %s ne doit pas renvoyer un ensemble" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1360 +#: parser/parse_coerce.c:1380 #, c-format msgid "%s types %s and %s cannot be matched" msgstr "les %s types %s et %s ne peuvent pas correspondre" -#: parser/parse_coerce.c:1472 +#: parser/parse_coerce.c:1496 #, c-format msgid "argument types %s and %s cannot be matched" msgstr "les types d'argument %s et %s ne se correspondent pas" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1524 +#: parser/parse_coerce.c:1548 #, c-format msgid "%s could not convert type %s to %s" msgstr "%s n'a pas pu convertir le type %s en %s" -#: parser/parse_coerce.c:1941 +#: parser/parse_coerce.c:2013 #, c-format msgid "arguments declared \"anyelement\" are not all alike" msgstr "les arguments déclarés « anyelement » ne sont pas tous identiques" -#: parser/parse_coerce.c:1961 +#: parser/parse_coerce.c:2033 #, c-format msgid "arguments declared \"anyarray\" are not all alike" msgstr "les arguments déclarés « anyarray » ne sont pas tous identiques" -#: parser/parse_coerce.c:1981 +#: parser/parse_coerce.c:2053 #, c-format msgid "arguments declared \"anyrange\" are not all alike" msgstr "les arguments déclarés « anyrange » ne sont pas tous identiques" -#: parser/parse_coerce.c:2015 parser/parse_coerce.c:2095 utils/fmgr/funcapi.c:487 +#: parser/parse_coerce.c:2087 parser/parse_coerce.c:2167 utils/fmgr/funcapi.c:487 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "l'argument déclaré %s n'est pas un tableau mais est du type %s" -#: parser/parse_coerce.c:2036 +#: parser/parse_coerce.c:2108 #, c-format msgid "arguments declared \"anycompatiblerange\" are not all alike" msgstr "les arguments déclarés « anycompatiblerange » ne sont pas tous identiques" -#: parser/parse_coerce.c:2048 parser/parse_coerce.c:2129 utils/fmgr/funcapi.c:501 +#: parser/parse_coerce.c:2120 parser/parse_coerce.c:2201 utils/fmgr/funcapi.c:501 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "l'argument déclaré %s n'est pas un type d'intervalle mais est du type %s" -#: parser/parse_coerce.c:2086 +#: parser/parse_coerce.c:2158 #, c-format msgid "cannot determine element type of \"anyarray\" argument" msgstr "ne peut pas déterminer le type d'élément d'un argument « anyarray »" -#: parser/parse_coerce.c:2112 parser/parse_coerce.c:2146 +#: parser/parse_coerce.c:2184 parser/parse_coerce.c:2218 #, c-format msgid "argument declared %s is not consistent with argument declared %s" msgstr "l'argument déclaré %s n'est pas cohérent avec l'argument déclaré %s" -#: parser/parse_coerce.c:2170 +#: parser/parse_coerce.c:2242 #, c-format msgid "could not determine polymorphic type because input has type %s" msgstr "" "n'a pas pu déterminer le type polymorphique car l'entrée dispose\n" "du type %s" -#: parser/parse_coerce.c:2184 +#: parser/parse_coerce.c:2256 #, c-format msgid "type matched to anynonarray is an array type: %s" msgstr "le type déclaré anynonarray est un type tableau : %s" -#: parser/parse_coerce.c:2194 +#: parser/parse_coerce.c:2266 #, c-format msgid "type matched to anyenum is not an enum type: %s" msgstr "le type déclaré anyenum n'est pas un type enum : %s" -#: parser/parse_coerce.c:2225 parser/parse_coerce.c:2274 parser/parse_coerce.c:2336 parser/parse_coerce.c:2372 +#: parser/parse_coerce.c:2287 +#, c-format +msgid "arguments of anycompatible family cannot be cast to a common type" +msgstr "les arguments d'une famille anycompatible ne peuvent pas être convertis vers un type commun" + +#: parser/parse_coerce.c:2305 parser/parse_coerce.c:2354 parser/parse_coerce.c:2416 parser/parse_coerce.c:2452 #, c-format msgid "could not determine polymorphic type %s because input has type %s" msgstr "n'a pas pu déterminer le type polymorphique %s car l'entrée dispose du type %s" -#: parser/parse_coerce.c:2235 +#: parser/parse_coerce.c:2315 #, c-format msgid "anycompatiblerange type %s does not match anycompatible type %s" msgstr "le type anycompatiblerange %s ne correspond pas au type anycompatible %s." -#: parser/parse_coerce.c:2249 +#: parser/parse_coerce.c:2329 #, c-format msgid "type matched to anycompatiblenonarray is an array type: %s" msgstr "le type correspondant à anycompatiblenonarray est un type tableau : %s" -#: parser/parse_coerce.c:2440 +#: parser/parse_coerce.c:2520 #, c-format msgid "A result of type %s requires at least one input of type %s." msgstr "Un résultat de type %s nécessite au moins une entrée de type %s." -#: parser/parse_coerce.c:2452 +#: parser/parse_coerce.c:2532 #, c-format msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, or anyrange." msgstr "Un résultat de type %s requiert au moins une entrée de type anyelement, anyarray, anynonarray, anyenum ou anyrange." -#: parser/parse_coerce.c:2464 +#: parser/parse_coerce.c:2544 #, c-format msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, or anycompatiblerange." msgstr "Un résultat de type %s requiert au moins une entrée de type anycompatible, anycompatiblearray, anycompatiblenonarray ou anycompatiblerange." -#: parser/parse_coerce.c:2494 +#: parser/parse_coerce.c:2574 msgid "A result of type internal requires at least one input of type internal." msgstr "Un résultat de type internal nécessite au moins une entrée de type internal." @@ -15768,7 +15789,7 @@ msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "notation d'attribut .%s appliqué au type %s, qui n'est pas un type composé" -#: parser/parse_expr.c:457 parser/parse_target.c:729 +#: parser/parse_expr.c:457 parser/parse_target.c:728 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "l'expansion de ligne via « * » n'est pas supporté ici" @@ -15781,10 +15802,10 @@ msgid "cannot use column reference in partition bound expression" msgstr "ne peut pas utiliser une référence de colonne dans une expression de limite de partition" -#: parser/parse_expr.c:850 parser/parse_relation.c:799 parser/parse_relation.c:881 parser/parse_target.c:1207 +#: parser/parse_expr.c:850 parser/parse_relation.c:799 parser/parse_relation.c:881 parser/parse_target.c:1206 #, c-format msgid "column reference \"%s\" is ambiguous" -msgstr "la référence à la colonne « %s » est ambigu" +msgstr "la référence à la colonne « %s » est ambigüe" #: parser/parse_expr.c:906 parser/parse_param.c:110 parser/parse_param.c:142 parser/parse_param.c:199 parser/parse_param.c:298 #, c-format @@ -15797,170 +15818,170 @@ msgstr "NULLIF requiert l'opérateur = pour comparer des booleéns" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1155 parser/parse_expr.c:3135 +#: parser/parse_expr.c:1155 parser/parse_expr.c:3140 #, c-format msgid "%s must not return a set" msgstr "%s ne doit pas renvoyer un ensemble" -#: parser/parse_expr.c:1603 parser/parse_expr.c:1635 +#: parser/parse_expr.c:1608 parser/parse_expr.c:1640 #, c-format msgid "number of columns does not match number of values" msgstr "le nombre de colonnes ne correspond pas au nombre de valeurs" -#: parser/parse_expr.c:1649 +#: parser/parse_expr.c:1654 #, c-format msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" msgstr "la source d'un élément UPDATE multi-colonnes doit être un sous-SELECT ou une expression ROW()" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1843 parser/parse_expr.c:2330 parser/parse_func.c:2540 +#: parser/parse_expr.c:1848 parser/parse_expr.c:2335 parser/parse_func.c:2540 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "les fonctions renvoyant un ensemble ne sont pas autorisés dans %s" -#: parser/parse_expr.c:1904 +#: parser/parse_expr.c:1909 msgid "cannot use subquery in check constraint" msgstr "ne peut pas utiliser une sous-requête dans la contrainte de vérification" -#: parser/parse_expr.c:1908 +#: parser/parse_expr.c:1913 msgid "cannot use subquery in DEFAULT expression" msgstr "ne peut pas utiliser de sous-requête dans une expression DEFAULT" -#: parser/parse_expr.c:1911 +#: parser/parse_expr.c:1916 msgid "cannot use subquery in index expression" msgstr "ne peut pas utiliser la sous-requête dans l'expression de l'index" -#: parser/parse_expr.c:1914 +#: parser/parse_expr.c:1919 msgid "cannot use subquery in index predicate" msgstr "ne peut pas utiliser une sous-requête dans un prédicat d'index" -#: parser/parse_expr.c:1917 +#: parser/parse_expr.c:1922 msgid "cannot use subquery in transform expression" msgstr "ne peut pas utiliser une sous-requête dans l'expression de transformation" -#: parser/parse_expr.c:1920 +#: parser/parse_expr.c:1925 msgid "cannot use subquery in EXECUTE parameter" msgstr "ne peut pas utiliser les sous-requêtes dans le paramètre EXECUTE" -#: parser/parse_expr.c:1923 +#: parser/parse_expr.c:1928 msgid "cannot use subquery in trigger WHEN condition" msgstr "ne peut pas utiliser une sous-requête dans la condition WHEN d'un trigger" -#: parser/parse_expr.c:1926 +#: parser/parse_expr.c:1931 msgid "cannot use subquery in partition bound" msgstr "ne peut pas utiliser de sous-requête dans une limite de partition" -#: parser/parse_expr.c:1929 +#: parser/parse_expr.c:1934 msgid "cannot use subquery in partition key expression" msgstr "ne peut pas utiliser de sous-requête dans l'expression de clé de partitionnement" -#: parser/parse_expr.c:1932 +#: parser/parse_expr.c:1937 msgid "cannot use subquery in CALL argument" msgstr "ne peut pas utiliser de sous-requête dans l'argument CALL" -#: parser/parse_expr.c:1935 +#: parser/parse_expr.c:1940 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "ne peut pas utiliser une sous-requête dans la condition WHERE d'un COPY FROM" -#: parser/parse_expr.c:1938 +#: parser/parse_expr.c:1943 msgid "cannot use subquery in column generation expression" msgstr "ne peut pas utiliser une sous-requête dans l'expression de génération d'une colonne" -#: parser/parse_expr.c:1991 +#: parser/parse_expr.c:1996 #, c-format msgid "subquery must return only one column" msgstr "la sous-requête doit renvoyer une seule colonne" -#: parser/parse_expr.c:2075 +#: parser/parse_expr.c:2080 #, c-format msgid "subquery has too many columns" msgstr "la sous-requête a trop de colonnes" -#: parser/parse_expr.c:2080 +#: parser/parse_expr.c:2085 #, c-format msgid "subquery has too few columns" msgstr "la sous-requête n'a pas assez de colonnes" -#: parser/parse_expr.c:2181 +#: parser/parse_expr.c:2186 #, c-format msgid "cannot determine type of empty array" msgstr "ne peut pas déterminer le type d'un tableau vide" -#: parser/parse_expr.c:2182 +#: parser/parse_expr.c:2187 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "Convertit explicitement vers le type désiré, par exemple ARRAY[]::integer[]." -#: parser/parse_expr.c:2196 +#: parser/parse_expr.c:2201 #, c-format msgid "could not find element type for data type %s" msgstr "n'a pas pu trouver le type d'élément pour le type de données %s" -#: parser/parse_expr.c:2481 +#: parser/parse_expr.c:2486 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "la valeur d'un attribut XML sans nom doit être une référence de colonne" -#: parser/parse_expr.c:2482 +#: parser/parse_expr.c:2487 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "la valeur d'un élément XML sans nom doit être une référence de colonne" -#: parser/parse_expr.c:2497 +#: parser/parse_expr.c:2502 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "le nom de l'attribut XML « %s » apparaît plus d'une fois" -#: parser/parse_expr.c:2604 +#: parser/parse_expr.c:2609 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "ne peut pas convertir le résultat XMLSERIALIZE en %s" -#: parser/parse_expr.c:2892 parser/parse_expr.c:3088 +#: parser/parse_expr.c:2897 parser/parse_expr.c:3093 #, c-format msgid "unequal number of entries in row expressions" msgstr "nombre différent d'entrées dans les expressions de ligne" -#: parser/parse_expr.c:2902 +#: parser/parse_expr.c:2907 #, c-format msgid "cannot compare rows of zero length" msgstr "n'a pas pu comparer des lignes de taille zéro" -#: parser/parse_expr.c:2927 +#: parser/parse_expr.c:2932 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "" "l'opérateur de comparaison de ligne doit renvoyer le type booléen, et non le\n" "type %s" -#: parser/parse_expr.c:2934 +#: parser/parse_expr.c:2939 #, c-format msgid "row comparison operator must not return a set" msgstr "l'opérateur de comparaison de ligne ne doit pas renvoyer un ensemble" -#: parser/parse_expr.c:2993 parser/parse_expr.c:3034 +#: parser/parse_expr.c:2998 parser/parse_expr.c:3039 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "n'a pas pu déterminer l'interprétation de l'opérateur de comparaison de ligne %s" -#: parser/parse_expr.c:2995 +#: parser/parse_expr.c:3000 #, c-format msgid "Row comparison operators must be associated with btree operator families." msgstr "" "Les opérateurs de comparaison de lignes doivent être associés à des familles\n" "d'opérateurs btree." -#: parser/parse_expr.c:3036 +#: parser/parse_expr.c:3041 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "Il existe de nombreus candidats également plausibles." -#: parser/parse_expr.c:3129 +#: parser/parse_expr.c:3134 #, c-format msgid "IS DISTINCT FROM requires = operator to yield boolean" msgstr "IS DISTINCT FROM requiert l'opérateur = pour comparer des booléens" -#: parser/parse_expr.c:3448 parser/parse_expr.c:3466 +#: parser/parse_expr.c:3453 parser/parse_expr.c:3471 #, c-format msgid "operator precedence change: %s is now lower precedence than %s" msgstr "la précédence d'opérateur change : %s a maintenant une précédence inférieure à %s" @@ -16512,51 +16533,51 @@ msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "Peut-être que vous souhaitiez référencer la colonne « %s.%s » ou la colonne « %s.%s »." -#: parser/parse_target.c:478 parser/parse_target.c:792 +#: parser/parse_target.c:477 parser/parse_target.c:791 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "ne peut pas affecter à une colonne système « %s »" -#: parser/parse_target.c:506 +#: parser/parse_target.c:505 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "ne peut pas initialiser un élément d'un tableau avec DEFAULT" -#: parser/parse_target.c:511 +#: parser/parse_target.c:510 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "ne peut pas initialiser un sous-champ avec DEFAULT" -#: parser/parse_target.c:584 +#: parser/parse_target.c:583 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "la colonne « %s » est de type %s mais l'expression est de type %s" -#: parser/parse_target.c:776 +#: parser/parse_target.c:775 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type" msgstr "" "ne peut pas l'affecter au champ « %s » de la colonne « %s » parce que son\n" "type %s n'est pas un type composé" -#: parser/parse_target.c:785 +#: parser/parse_target.c:784 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "" "ne peut pas l'affecter au champ « %s » de la colonne « %s » parce qu'il n'existe\n" "pas une telle colonne dans le type de données %s" -#: parser/parse_target.c:864 +#: parser/parse_target.c:863 #, c-format msgid "array assignment to \"%s\" requires type %s but expression is of type %s" msgstr "l'affectation d'un tableau avec « %s » requiert le type %s mais l'expression est de type %s" -#: parser/parse_target.c:874 +#: parser/parse_target.c:873 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "le sous-champ « %s » est de type %s mais l'expression est de type %s" -#: parser/parse_target.c:1295 +#: parser/parse_target.c:1294 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "Un SELECT * sans table spécifiée n'est pas valide" @@ -16579,7 +16600,7 @@ #: parser/parse_type.c:278 parser/parse_type.c:857 utils/cache/typcache.c:383 utils/cache/typcache.c:437 #, c-format msgid "type \"%s\" is only a shell" -msgstr "le type « %s » est seulement un shell" +msgstr "le type « %s » n'est qu'une coquille" #: parser/parse_type.c:363 #, c-format @@ -16817,122 +16838,122 @@ msgid "cannot refer to NEW within WITH query" msgstr "ne peut référencer NEW dans une requête WITH" -#: parser/parse_utilcmd.c:3577 +#: parser/parse_utilcmd.c:3578 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "clause DEFERRABLE mal placée" -#: parser/parse_utilcmd.c:3582 parser/parse_utilcmd.c:3597 +#: parser/parse_utilcmd.c:3583 parser/parse_utilcmd.c:3598 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "clauses DEFERRABLE/NOT DEFERRABLE multiples non autorisées" -#: parser/parse_utilcmd.c:3592 +#: parser/parse_utilcmd.c:3593 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "clause NOT DEFERRABLE mal placée" -#: parser/parse_utilcmd.c:3613 +#: parser/parse_utilcmd.c:3614 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "clause INITIALLY DEFERRED mal placée" -#: parser/parse_utilcmd.c:3618 parser/parse_utilcmd.c:3644 +#: parser/parse_utilcmd.c:3619 parser/parse_utilcmd.c:3645 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "clauses INITIALLY IMMEDIATE/DEFERRED multiples non autorisées" -#: parser/parse_utilcmd.c:3639 +#: parser/parse_utilcmd.c:3640 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "clause INITIALLY IMMEDIATE mal placée" -#: parser/parse_utilcmd.c:3830 +#: parser/parse_utilcmd.c:3831 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "CREATE spécifie un schéma (%s) différent de celui tout juste créé (%s)" -#: parser/parse_utilcmd.c:3865 +#: parser/parse_utilcmd.c:3866 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "« %s » n'est pas une table partitionnée" -#: parser/parse_utilcmd.c:3872 +#: parser/parse_utilcmd.c:3873 #, c-format msgid "table \"%s\" is not partitioned" msgstr "la table « %s » n'est pas partitionné" -#: parser/parse_utilcmd.c:3879 +#: parser/parse_utilcmd.c:3880 #, c-format msgid "index \"%s\" is not partitioned" msgstr "l'index « %s » n'est pas partitionné" -#: parser/parse_utilcmd.c:3919 +#: parser/parse_utilcmd.c:3920 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "une table partitionnées par hash ne peut pas avoir de partition par défaut" -#: parser/parse_utilcmd.c:3936 +#: parser/parse_utilcmd.c:3937 #, c-format msgid "invalid bound specification for a hash partition" msgstr "spécification de limite invalide pour une partition par hash" -#: parser/parse_utilcmd.c:3942 partitioning/partbounds.c:4640 +#: parser/parse_utilcmd.c:3943 partitioning/partbounds.c:4640 #, c-format -msgid "modulus for hash partition must be a positive integer" -msgstr "le modulus pour une partition par hash doit être un entier positif" +msgid "modulus for hash partition must be an integer value greater than zero" +msgstr "le modulus pour une partition par hash doit être un entier dont la valeur est supérieure à zéro" -#: parser/parse_utilcmd.c:3949 partitioning/partbounds.c:4648 +#: parser/parse_utilcmd.c:3950 partitioning/partbounds.c:4648 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "le modulus pour une partition par hash doit être inférieur au modulus" -#: parser/parse_utilcmd.c:3962 +#: parser/parse_utilcmd.c:3963 #, c-format msgid "invalid bound specification for a list partition" msgstr "spécification de limite invalide pour une partition par liste" -#: parser/parse_utilcmd.c:4015 +#: parser/parse_utilcmd.c:4016 #, c-format msgid "invalid bound specification for a range partition" msgstr "spécification de limite invalide pour une partition par intervalle" -#: parser/parse_utilcmd.c:4021 +#: parser/parse_utilcmd.c:4022 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "FROM doit spécifier exactement une valeur par colonne de partitionnement" -#: parser/parse_utilcmd.c:4025 +#: parser/parse_utilcmd.c:4026 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "TO doit spécifier exactement une valeur par colonne de partitionnement" -#: parser/parse_utilcmd.c:4139 +#: parser/parse_utilcmd.c:4140 #, c-format msgid "cannot specify NULL in range bound" msgstr "ne peut pas spécifier NULL dans la limite de l'intervalle" -#: parser/parse_utilcmd.c:4188 +#: parser/parse_utilcmd.c:4189 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "chaque limite suivant MAXVALUE doit aussi être MAXVALUE" -#: parser/parse_utilcmd.c:4195 +#: parser/parse_utilcmd.c:4196 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "chaque limite suivant MINVALUE doit aussi être MINVALUE" -#: parser/parse_utilcmd.c:4237 +#: parser/parse_utilcmd.c:4238 #, c-format msgid "could not determine which collation to use for partition bound expression" msgstr "n'a pas pu déterminer le collationnement à utiliser pour l'expression de limites de partitionnement" -#: parser/parse_utilcmd.c:4254 +#: parser/parse_utilcmd.c:4255 #, c-format msgid "collation of partition bound value for column \"%s\" does not match partition key collation \"%s\"" msgstr "le collationnement de la valeur limite de partition de la colonne « %s » ne correspond pas à celui de la clé de partition « %s »" -#: parser/parse_utilcmd.c:4271 +#: parser/parse_utilcmd.c:4272 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "la valeur spécifiée ne peut pas être convertie vers le type %s pour la colonne « %s »" @@ -17002,8 +17023,8 @@ #: partitioning/partbounds.c:4644 #, c-format -msgid "remainder for hash partition must be a non-negative integer" -msgstr "le reste pour une partition hash doit être un entier non négatif" +msgid "remainder for hash partition must be an integer value greater than or equal to zero" +msgstr "le reste pour une partition hash doit être un entier dont la valeur est égale ou supérieure à 0" #: partitioning/partbounds.c:4668 #, c-format @@ -17020,22 +17041,22 @@ msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" msgstr "la colonne %d de la clé de partitionnement a pour type « %s », mais la valeur fournie a pour type « %s »" -#: port/pg_sema.c:209 port/pg_shmem.c:640 port/posix_sema.c:209 port/sysv_sema.c:327 port/sysv_shmem.c:640 +#: port/pg_sema.c:209 port/pg_shmem.c:650 port/posix_sema.c:209 port/sysv_sema.c:327 port/sysv_shmem.c:650 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "n'a pas pu lire les informations sur le répertoire des données « %s » : %m" -#: port/pg_shmem.c:216 port/sysv_shmem.c:216 +#: port/pg_shmem.c:226 port/sysv_shmem.c:226 #, c-format msgid "could not create shared memory segment: %m" msgstr "n'a pas pu créer le segment de mémoire partagée : %m" -#: port/pg_shmem.c:217 port/sysv_shmem.c:217 +#: port/pg_shmem.c:227 port/sysv_shmem.c:227 #, c-format msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)." msgstr "L'appel système qui a échoué était shmget(clé=%lu, taille=%zu, 0%o)." -#: port/pg_shmem.c:221 port/sysv_shmem.c:221 +#: port/pg_shmem.c:231 port/sysv_shmem.c:231 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter, or possibly that it is less than your kernel's SHMMIN parameter.\n" @@ -17044,7 +17065,7 @@ "Cette erreur signifie habituellement que la demande de PostgreSQL pour un segment de mémoire partagée dépasse la valeur du paramètre SHMMAX du noyau, ou est plus petite\n" "que votre paramètre SHMMIN du noyau. La documentation PostgreSQL contient plus d'information sur la configuration de la mémoire partagée." -#: port/pg_shmem.c:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:238 port/sysv_shmem.c:238 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMALL parameter. You might need to reconfigure the kernel with larger SHMALL.\n" @@ -17053,7 +17074,7 @@ "Cette erreur signifie habituellement que la demande de PostgreSQL pour un segment de mémoire partagée dépasse le paramètre SHMALL du noyau. Vous pourriez avoir besoin de reconfigurer\n" "le noyau avec un SHMALL plus important. La documentation PostgreSQL contient plus d'information sur la configuration de la mémoire partagée." -#: port/pg_shmem.c:234 port/sysv_shmem.c:234 +#: port/pg_shmem.c:244 port/sysv_shmem.c:244 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs either if all available shared memory IDs have been taken, in which case you need to raise the SHMMNI parameter in your kernel, or because the system's overall limit for shared memory has been reached.\n" @@ -17062,12 +17083,12 @@ "Cette erreur ne signifie *pas* que vous manquez d'espace disque. Elle survient si tous les identifiants de mémoire partagé disponibles ont été pris, auquel cas vous devez augmenter le paramètre SHMMNI de votre noyau, ou parce que la limite maximum de la mémoire partagée\n" "de votre système a été atteinte. La documentation de PostgreSQL contient plus d'informations sur la configuration de la mémoire partagée." -#: port/pg_shmem.c:578 port/sysv_shmem.c:578 +#: port/pg_shmem.c:588 port/sysv_shmem.c:588 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "n'a pas pu créer le segment de mémoire partagée anonyme : %m" -#: port/pg_shmem.c:580 port/sysv_shmem.c:580 +#: port/pg_shmem.c:590 port/sysv_shmem.c:590 #, c-format msgid "This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently %zu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections." msgstr "" @@ -17078,19 +17099,24 @@ "valeur du paramètre shared_buffers de PostgreSQL ou le paramètre\n" "max_connections." -#: port/pg_shmem.c:648 port/sysv_shmem.c:648 +#: port/pg_shmem.c:658 port/sysv_shmem.c:658 #, c-format msgid "huge pages not supported on this platform" msgstr "Huge Pages non supportées sur cette plateforme" -#: port/pg_shmem.c:709 port/sysv_shmem.c:709 utils/init/miscinit.c:1137 +#: port/pg_shmem.c:665 port/sysv_shmem.c:665 +#, c-format +msgid "huge pages not supported with the current shared_memory_type setting" +msgstr "huge pages non supportées avec la configuration actuelle de shared_memory_type" + +#: port/pg_shmem.c:725 port/sysv_shmem.c:725 utils/init/miscinit.c:1136 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "" "le bloc de mémoire partagé pré-existant (clé %lu, ID %lu) est en cours\n" "d'utilisation" -#: port/pg_shmem.c:712 port/sysv_shmem.c:712 utils/init/miscinit.c:1139 +#: port/pg_shmem.c:728 port/sysv_shmem.c:728 utils/init/miscinit.c:1138 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Termine les anciens processus serveurs associés avec le répertoire de données « %s »." @@ -17436,7 +17462,7 @@ msgid "archive command was terminated by exception 0x%X" msgstr "la commande d'archivage a été terminée par l'exception 0x%X" -#: postmaster/pgarch.c:605 postmaster/postmaster.c:3725 +#: postmaster/pgarch.c:605 postmaster/postmaster.c:3749 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "" @@ -17547,51 +17573,51 @@ msgid "Target must be \"archiver\" or \"bgwriter\"." msgstr "La cible doit être « archiver » ou « bgwriter »." -#: postmaster/pgstat.c:4567 +#: postmaster/pgstat.c:4570 #, c-format msgid "could not read statistics message: %m" msgstr "n'a pas pu lire le message des statistiques : %m" -#: postmaster/pgstat.c:4889 postmaster/pgstat.c:5052 +#: postmaster/pgstat.c:4892 postmaster/pgstat.c:5055 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier temporaire des statistiques « %s » : %m" -#: postmaster/pgstat.c:4962 postmaster/pgstat.c:5097 +#: postmaster/pgstat.c:4965 postmaster/pgstat.c:5100 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "n'a pas pu écrire le fichier temporaire des statistiques « %s » : %m" -#: postmaster/pgstat.c:4971 postmaster/pgstat.c:5106 +#: postmaster/pgstat.c:4974 postmaster/pgstat.c:5109 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "n'a pas pu fermer le fichier temporaire des statistiques « %s » : %m" -#: postmaster/pgstat.c:4979 postmaster/pgstat.c:5114 +#: postmaster/pgstat.c:4982 postmaster/pgstat.c:5117 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "" "n'a pas pu renommer le fichier temporaire des statistiques « %s » en\n" "« %s » : %m" -#: postmaster/pgstat.c:5211 postmaster/pgstat.c:5428 postmaster/pgstat.c:5582 +#: postmaster/pgstat.c:5214 postmaster/pgstat.c:5431 postmaster/pgstat.c:5585 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier de statistiques « %s » : %m" -#: postmaster/pgstat.c:5223 postmaster/pgstat.c:5233 postmaster/pgstat.c:5254 postmaster/pgstat.c:5265 postmaster/pgstat.c:5287 postmaster/pgstat.c:5302 postmaster/pgstat.c:5365 postmaster/pgstat.c:5440 postmaster/pgstat.c:5460 postmaster/pgstat.c:5478 postmaster/pgstat.c:5494 postmaster/pgstat.c:5512 postmaster/pgstat.c:5528 postmaster/pgstat.c:5594 postmaster/pgstat.c:5606 postmaster/pgstat.c:5618 postmaster/pgstat.c:5629 postmaster/pgstat.c:5654 postmaster/pgstat.c:5676 +#: postmaster/pgstat.c:5226 postmaster/pgstat.c:5236 postmaster/pgstat.c:5257 postmaster/pgstat.c:5268 postmaster/pgstat.c:5290 postmaster/pgstat.c:5305 postmaster/pgstat.c:5368 postmaster/pgstat.c:5443 postmaster/pgstat.c:5463 postmaster/pgstat.c:5481 postmaster/pgstat.c:5497 postmaster/pgstat.c:5515 postmaster/pgstat.c:5531 postmaster/pgstat.c:5597 postmaster/pgstat.c:5609 postmaster/pgstat.c:5621 postmaster/pgstat.c:5632 postmaster/pgstat.c:5657 postmaster/pgstat.c:5679 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "fichier de statistiques « %s » corrompu" -#: postmaster/pgstat.c:5805 +#: postmaster/pgstat.c:5808 #, c-format msgid "using stale statistics instead of current ones because stats collector is not responding" msgstr "" "utilise de vieilles statistiques à la place des actuelles car le collecteur de\n" "statistiques ne répond pas" -#: postmaster/pgstat.c:6135 +#: postmaster/pgstat.c:6138 #, c-format msgid "database hash table corrupted during cleanup --- abort" msgstr "" @@ -17653,7 +17679,7 @@ msgid "starting %s" msgstr "démarrage de %s" -#: postmaster/postmaster.c:1154 postmaster/postmaster.c:1252 utils/init/miscinit.c:1597 +#: postmaster/postmaster.c:1154 postmaster/postmaster.c:1252 utils/init/miscinit.c:1596 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "syntaxe de liste invalide pour le paramètre « %s »" @@ -17754,379 +17780,394 @@ msgid "failed to send SSL negotiation response: %m" msgstr "échec lors de l'envoi de la réponse de négotiation SSL : %m" -#: postmaster/postmaster.c:2075 +#: postmaster/postmaster.c:2061 +#, c-format +msgid "received unencrypted data after SSL request" +msgstr "a reçu des données non chiffrées après la demande SSL" + +#: postmaster/postmaster.c:2062 postmaster/postmaster.c:2106 +#, c-format +msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." +msgstr "Ceci peut être soit un bug du client soit la preuve d'une tentative d'attaque du type man-in-the-middle." + +#: postmaster/postmaster.c:2087 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "échec lors de l'envoi de la réponse à la négociation GSSAPI : %m" #: postmaster/postmaster.c:2105 #, c-format +msgid "received unencrypted data after GSSAPI encryption request" +msgstr "a reçu des données non chiffrées après la demande de chiffrement GSSAPI" + +#: postmaster/postmaster.c:2129 +#, c-format msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "protocole frontal %u.%u non supporté : le serveur supporte de %u.0 à %u.%u" -#: postmaster/postmaster.c:2169 utils/misc/guc.c:6769 utils/misc/guc.c:6805 utils/misc/guc.c:6875 utils/misc/guc.c:8226 utils/misc/guc.c:11088 utils/misc/guc.c:11129 +#: postmaster/postmaster.c:2193 utils/misc/guc.c:6769 utils/misc/guc.c:6805 utils/misc/guc.c:6875 utils/misc/guc.c:8226 utils/misc/guc.c:11088 utils/misc/guc.c:11129 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "valeur invalide pour le paramètre « %s » : « %s »" -#: postmaster/postmaster.c:2172 +#: postmaster/postmaster.c:2196 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "Les valeurs valides sont : « false », « 0 », « true », « 1 », « database »." -#: postmaster/postmaster.c:2217 +#: postmaster/postmaster.c:2241 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "" "configuration invalide du paquet de démarrage : terminaison attendue comme\n" "dernier octet" -#: postmaster/postmaster.c:2255 +#: postmaster/postmaster.c:2279 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "aucun nom d'utilisateur PostgreSQL n'a été spécifié dans le paquet de démarrage" -#: postmaster/postmaster.c:2319 +#: postmaster/postmaster.c:2343 #, c-format msgid "the database system is starting up" msgstr "le système de bases de données se lance" -#: postmaster/postmaster.c:2324 +#: postmaster/postmaster.c:2348 #, c-format msgid "the database system is shutting down" msgstr "le système de base de données s'arrête" -#: postmaster/postmaster.c:2329 +#: postmaster/postmaster.c:2353 #, c-format msgid "the database system is in recovery mode" msgstr "le système de bases de données est en cours de restauration" -#: postmaster/postmaster.c:2334 storage/ipc/procarray.c:293 storage/ipc/sinvaladt.c:297 storage/lmgr/proc.c:362 +#: postmaster/postmaster.c:2358 storage/ipc/procarray.c:298 storage/ipc/sinvaladt.c:297 storage/lmgr/proc.c:362 #, c-format msgid "sorry, too many clients already" msgstr "désolé, trop de clients sont déjà connectés" -#: postmaster/postmaster.c:2424 +#: postmaster/postmaster.c:2448 #, c-format msgid "wrong key in cancel request for process %d" msgstr "mauvaise clé dans la demande d'annulation pour le processus %d" -#: postmaster/postmaster.c:2436 +#: postmaster/postmaster.c:2460 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "le PID %d dans la demande d'annulation ne correspond à aucun processus" -#: postmaster/postmaster.c:2689 +#: postmaster/postmaster.c:2713 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "a reçu SIGHUP, rechargement des fichiers de configuration" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2715 postmaster/postmaster.c:2719 +#: postmaster/postmaster.c:2739 postmaster/postmaster.c:2743 #, c-format msgid "%s was not reloaded" msgstr "%s n'a pas été rechargé" -#: postmaster/postmaster.c:2729 +#: postmaster/postmaster.c:2753 #, c-format msgid "SSL configuration was not reloaded" msgstr "la configuration SSL n'a pas été rechargée" -#: postmaster/postmaster.c:2785 +#: postmaster/postmaster.c:2809 #, c-format msgid "received smart shutdown request" msgstr "a reçu une demande d'arrêt intelligent" -#: postmaster/postmaster.c:2831 +#: postmaster/postmaster.c:2855 #, c-format msgid "received fast shutdown request" msgstr "a reçu une demande d'arrêt rapide" -#: postmaster/postmaster.c:2849 +#: postmaster/postmaster.c:2873 #, c-format msgid "aborting any active transactions" msgstr "annulation des transactions actives" -#: postmaster/postmaster.c:2873 +#: postmaster/postmaster.c:2897 #, c-format msgid "received immediate shutdown request" msgstr "a reçu une demande d'arrêt immédiat" -#: postmaster/postmaster.c:2948 +#: postmaster/postmaster.c:2972 #, c-format msgid "shutdown at recovery target" msgstr "arrêt sur la cible de restauration" -#: postmaster/postmaster.c:2966 postmaster/postmaster.c:3002 +#: postmaster/postmaster.c:2990 postmaster/postmaster.c:3026 msgid "startup process" msgstr "processus de lancement" -#: postmaster/postmaster.c:2969 +#: postmaster/postmaster.c:2993 #, c-format msgid "aborting startup due to startup process failure" msgstr "annulation du démarrage à cause d'un échec dans le processus de lancement" -#: postmaster/postmaster.c:3044 +#: postmaster/postmaster.c:3068 #, c-format msgid "database system is ready to accept connections" msgstr "le système de bases de données est prêt pour accepter les connexions" -#: postmaster/postmaster.c:3065 +#: postmaster/postmaster.c:3089 msgid "background writer process" msgstr "processus d'écriture en tâche de fond" -#: postmaster/postmaster.c:3119 +#: postmaster/postmaster.c:3143 msgid "checkpointer process" msgstr "processus checkpointer" -#: postmaster/postmaster.c:3135 +#: postmaster/postmaster.c:3159 msgid "WAL writer process" msgstr "processus d'écriture des journaux de transaction" -#: postmaster/postmaster.c:3150 +#: postmaster/postmaster.c:3174 msgid "WAL receiver process" msgstr "processus de réception des journaux de transaction" -#: postmaster/postmaster.c:3165 +#: postmaster/postmaster.c:3189 msgid "autovacuum launcher process" msgstr "processus de lancement de l'autovacuum" -#: postmaster/postmaster.c:3180 +#: postmaster/postmaster.c:3204 msgid "archiver process" msgstr "processus d'archivage" -#: postmaster/postmaster.c:3196 +#: postmaster/postmaster.c:3220 msgid "statistics collector process" msgstr "processus de récupération des statistiques" -#: postmaster/postmaster.c:3210 +#: postmaster/postmaster.c:3234 msgid "system logger process" msgstr "processus des journaux applicatifs" -#: postmaster/postmaster.c:3274 +#: postmaster/postmaster.c:3298 #, c-format msgid "background worker \"%s\"" msgstr "processus en tâche de fond « %s »" -#: postmaster/postmaster.c:3358 postmaster/postmaster.c:3378 postmaster/postmaster.c:3385 postmaster/postmaster.c:3403 +#: postmaster/postmaster.c:3382 postmaster/postmaster.c:3402 postmaster/postmaster.c:3409 postmaster/postmaster.c:3427 msgid "server process" msgstr "processus serveur" -#: postmaster/postmaster.c:3457 +#: postmaster/postmaster.c:3481 #, c-format msgid "terminating any other active server processes" msgstr "arrêt des autres processus serveur actifs" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3712 +#: postmaster/postmaster.c:3736 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) a quitté avec le code de sortie %d" -#: postmaster/postmaster.c:3714 postmaster/postmaster.c:3726 postmaster/postmaster.c:3736 postmaster/postmaster.c:3747 +#: postmaster/postmaster.c:3738 postmaster/postmaster.c:3750 postmaster/postmaster.c:3760 postmaster/postmaster.c:3771 #, c-format msgid "Failed process was running: %s" msgstr "Le processus qui a échoué exécutait : %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3723 +#: postmaster/postmaster.c:3747 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d) a été arrêté par l'exception 0x%X" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3733 +#: postmaster/postmaster.c:3757 #, c-format msgid "%s (PID %d) was terminated by signal %d: %s" msgstr "%s (PID %d) a été arrêté par le signal %d : %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3745 +#: postmaster/postmaster.c:3769 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) a quitté avec le statut inattendu %d" -#: postmaster/postmaster.c:3960 +#: postmaster/postmaster.c:3984 #, c-format msgid "abnormal database system shutdown" msgstr "le système de base de données a été arrêté anormalement" -#: postmaster/postmaster.c:4000 +#: postmaster/postmaster.c:4024 #, c-format msgid "all server processes terminated; reinitializing" msgstr "tous les processus serveur sont arrêtés ; réinitialisation" -#: postmaster/postmaster.c:4170 postmaster/postmaster.c:5579 postmaster/postmaster.c:5966 +#: postmaster/postmaster.c:4194 postmaster/postmaster.c:5603 postmaster/postmaster.c:5990 #, c-format msgid "could not generate random cancel key" msgstr "n'a pas pu générer la clé d'annulation aléatoire" -#: postmaster/postmaster.c:4224 +#: postmaster/postmaster.c:4248 #, c-format msgid "could not fork new process for connection: %m" msgstr "n'a pas pu lancer le nouveau processus fils pour la connexion : %m" -#: postmaster/postmaster.c:4266 +#: postmaster/postmaster.c:4290 msgid "could not fork new process for connection: " msgstr "n'a pas pu lancer le nouveau processus fils pour la connexion : " -#: postmaster/postmaster.c:4383 +#: postmaster/postmaster.c:4407 #, c-format msgid "connection received: host=%s port=%s" msgstr "connexion reçue : hôte=%s port=%s" -#: postmaster/postmaster.c:4388 +#: postmaster/postmaster.c:4412 #, c-format msgid "connection received: host=%s" msgstr "connexion reçue : hôte=%s" -#: postmaster/postmaster.c:4658 +#: postmaster/postmaster.c:4682 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "n'a pas pu exécuter le processus serveur « %s » : %m" -#: postmaster/postmaster.c:4817 +#: postmaster/postmaster.c:4841 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "abandon après trop de tentatives pour réserver la mémoire partagée" -#: postmaster/postmaster.c:4818 +#: postmaster/postmaster.c:4842 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "Ceci pourrait être causé par un logiciel ASLR ou un antivirus." -#: postmaster/postmaster.c:5012 +#: postmaster/postmaster.c:5036 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "la configuration SSL n'a pas pu être chargée dans le processus fils" -#: postmaster/postmaster.c:5144 +#: postmaster/postmaster.c:5168 #, c-format msgid "Please report this to <%s>." msgstr "Merci de signaler ceci à <%s>." -#: postmaster/postmaster.c:5231 +#: postmaster/postmaster.c:5255 #, c-format msgid "database system is ready to accept read only connections" msgstr "le système de bases de données est prêt pour accepter les connexions en lecture seule" -#: postmaster/postmaster.c:5507 +#: postmaster/postmaster.c:5531 #, c-format msgid "could not fork startup process: %m" msgstr "n'a pas pu lancer le processus fils de démarrage : %m" -#: postmaster/postmaster.c:5511 +#: postmaster/postmaster.c:5535 #, c-format msgid "could not fork background writer process: %m" msgstr "" "n'a pas pu créer un processus fils du processus d'écriture en tâche de\n" "fond : %m" -#: postmaster/postmaster.c:5515 +#: postmaster/postmaster.c:5539 #, c-format msgid "could not fork checkpointer process: %m" msgstr "n'a pas pu créer le processus checkpointer : %m" -#: postmaster/postmaster.c:5519 +#: postmaster/postmaster.c:5543 #, c-format msgid "could not fork WAL writer process: %m" msgstr "" "n'a pas pu créer un processus fils du processus d'écriture des journaux de\n" "transaction : %m" -#: postmaster/postmaster.c:5523 +#: postmaster/postmaster.c:5547 #, c-format msgid "could not fork WAL receiver process: %m" msgstr "" "n'a pas pu créer un processus fils de réception des journaux de\n" "transactions : %m" -#: postmaster/postmaster.c:5527 +#: postmaster/postmaster.c:5551 #, c-format msgid "could not fork process: %m" msgstr "n'a pas pu lancer le processus fils : %m" -#: postmaster/postmaster.c:5724 postmaster/postmaster.c:5747 +#: postmaster/postmaster.c:5748 postmaster/postmaster.c:5771 #, c-format msgid "database connection requirement not indicated during registration" msgstr "pré-requis de la connexion à la base non indiqué lors de l'enregistrement" -#: postmaster/postmaster.c:5731 postmaster/postmaster.c:5754 +#: postmaster/postmaster.c:5755 postmaster/postmaster.c:5778 #, c-format msgid "invalid processing mode in background worker" msgstr "mode de traitement invalide dans le processus en tâche de fond" -#: postmaster/postmaster.c:5827 +#: postmaster/postmaster.c:5851 #, c-format msgid "starting background worker process \"%s\"" msgstr "démarrage du processus d'écriture en tâche de fond « %s »" -#: postmaster/postmaster.c:5839 +#: postmaster/postmaster.c:5863 #, c-format msgid "could not fork worker process: %m" msgstr "n'a pas pu créer un processus fils du processus en tâche de fond : %m" -#: postmaster/postmaster.c:5952 +#: postmaster/postmaster.c:5976 #, c-format msgid "no slot available for new worker process" msgstr "aucun slot disponible pour le nouveau processus worker" -#: postmaster/postmaster.c:6287 +#: postmaster/postmaster.c:6311 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "n'a pas pu dupliquer la socket %d pour le serveur : code d'erreur %d" -#: postmaster/postmaster.c:6319 +#: postmaster/postmaster.c:6343 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "n'a pas pu créer la socket héritée : code d'erreur %d\n" -#: postmaster/postmaster.c:6348 +#: postmaster/postmaster.c:6372 #, c-format msgid "could not open backend variables file \"%s\": %s\n" msgstr "n'a pas pu ouvrir le fichier des variables moteurs « %s » : %s\n" -#: postmaster/postmaster.c:6355 +#: postmaster/postmaster.c:6379 #, c-format msgid "could not read from backend variables file \"%s\": %s\n" msgstr "n'a pas pu lire le fichier de configuration serveur « %s » : %s\n" -#: postmaster/postmaster.c:6364 +#: postmaster/postmaster.c:6388 #, c-format msgid "could not remove file \"%s\": %s\n" msgstr "n'a pas pu supprimer le fichier « %s » : %s\n" -#: postmaster/postmaster.c:6381 +#: postmaster/postmaster.c:6405 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "" "n'a pas pu exécuter \"map\" la vue des variables serveurs : code\n" "d'erreur %lu\n" -#: postmaster/postmaster.c:6390 +#: postmaster/postmaster.c:6414 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "" "n'a pas pu exécuter \"unmap\" sur la vue des variables serveurs : code\n" "d'erreur %lu\n" -#: postmaster/postmaster.c:6397 +#: postmaster/postmaster.c:6421 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "" "n'a pas pu fermer le lien vers les variables des paramètres du serveur :\n" "code d'erreur %lu\n" -#: postmaster/postmaster.c:6575 +#: postmaster/postmaster.c:6599 #, c-format msgid "could not read exit code for process\n" msgstr "n'a pas pu lire le code de sortie du processus\n" -#: postmaster/postmaster.c:6580 +#: postmaster/postmaster.c:6604 #, c-format msgid "could not post child completion status\n" msgstr "n'a pas pu poster le statut de fin de l'enfant\n" @@ -18179,7 +18220,7 @@ #: postmaster/syslogger.c:1225 #, c-format msgid "could not open log file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier applicatif « %s » : %m" +msgstr "n'a pas pu ouvrir le journal applicatif « %s » : %m" #: postmaster/syslogger.c:1287 postmaster/syslogger.c:1337 #, c-format @@ -18196,16 +18237,16 @@ msgid "nondeterministic collations are not supported for regular expressions" msgstr "les collationnements non déterministes ne sont pas supportés pour les expressions rationnelles" -#: repl_gram.y:349 repl_gram.y:381 +#: repl_gram.y:345 repl_gram.y:377 #, c-format msgid "invalid timeline %u" msgstr "timeline %u invalide" -#: repl_scanner.l:131 +#: repl_scanner.l:150 msgid "invalid streaming start location" msgstr "emplacement de démarrage du flux de réplication invalide" -#: repl_scanner.l:182 scan.l:717 +#: repl_scanner.l:206 scan.l:717 msgid "unterminated quoted string" msgstr "chaîne entre guillemets non terminée" @@ -18214,22 +18255,22 @@ msgid "expected end timeline %u but found timeline %u" msgstr "timeline de fin attendue %u mais a trouvé la timeline %u" -#: replication/backup_manifest.c:253 +#: replication/backup_manifest.c:260 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "timeline de début attendue %u mais a trouvé la timeline %u" -#: replication/backup_manifest.c:280 +#: replication/backup_manifest.c:287 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "timeline de début %u non trouvée dans l'historique de la timeline %u" -#: replication/backup_manifest.c:327 +#: replication/backup_manifest.c:334 #, c-format msgid "could not rewind temporary file" msgstr "n'a pas pu revenir au début du fichier temporaire" -#: replication/backup_manifest.c:354 +#: replication/backup_manifest.c:361 #, c-format msgid "could not read from temporary file: %m" msgstr "n'a pas pu lire le fichier temporaire : %m" @@ -18698,17 +18739,17 @@ msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" msgstr "la relation cible « %s.%s » de réplication logique utilise des colonnes systèmes dans l'index REPLICA IDENTITY" -#: replication/logical/reorderbuffer.c:2686 +#: replication/logical/reorderbuffer.c:2685 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "n'a pas pu écrire dans le fichier pour le XID %u : %m" -#: replication/logical/reorderbuffer.c:2874 replication/logical/reorderbuffer.c:2899 +#: replication/logical/reorderbuffer.c:2873 replication/logical/reorderbuffer.c:2898 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "n'a pas pu lire le fichier « reorderbuffer spill » : %m" -#: replication/logical/reorderbuffer.c:2878 replication/logical/reorderbuffer.c:2903 +#: replication/logical/reorderbuffer.c:2877 replication/logical/reorderbuffer.c:2902 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "" @@ -18720,7 +18761,7 @@ msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m" msgstr "n'a pas pu supprimer le fichier « %s » pendant la suppression de pg_replslot/%s/xid* : %m" -#: replication/logical/reorderbuffer.c:3631 +#: replication/logical/reorderbuffer.c:3640 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "n'a pas pu lire à partir du fichier « %s » : lu %d octets au lieu de %d octets" @@ -18737,59 +18778,59 @@ msgstr[0] "snapshot exporté pour le décodage logique : « %s » avec %u identifiant de transaction" msgstr[1] "snapshot exporté pour le décodage logique : « %s » avec %u identifiants de transaction" -#: replication/logical/snapbuild.c:1265 replication/logical/snapbuild.c:1358 replication/logical/snapbuild.c:1915 +#: replication/logical/snapbuild.c:1281 replication/logical/snapbuild.c:1374 replication/logical/snapbuild.c:1931 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "le décodage logique a trouvé le point de cohérence à %X/%X" -#: replication/logical/snapbuild.c:1267 +#: replication/logical/snapbuild.c:1283 #, c-format msgid "There are no running transactions." msgstr "Il n'existe pas de transactions en cours." -#: replication/logical/snapbuild.c:1309 +#: replication/logical/snapbuild.c:1325 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "le décodage logique a trouvé le point de démarrage à %X/%X" -#: replication/logical/snapbuild.c:1311 replication/logical/snapbuild.c:1335 +#: replication/logical/snapbuild.c:1327 replication/logical/snapbuild.c:1351 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "En attente de transactions (approximativement %d) plus anciennes que %u pour terminer." -#: replication/logical/snapbuild.c:1333 +#: replication/logical/snapbuild.c:1349 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "le décodage logique a trouvé le point de cohérence initial à %X/%X" -#: replication/logical/snapbuild.c:1360 +#: replication/logical/snapbuild.c:1376 #, c-format msgid "There are no old transactions anymore." msgstr "Il n'existe plus d'anciennes transactions." -#: replication/logical/snapbuild.c:1757 +#: replication/logical/snapbuild.c:1773 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "le fichier d'état snapbuild « %s » a le nombre magique: %u au lieu de %u" -#: replication/logical/snapbuild.c:1763 +#: replication/logical/snapbuild.c:1779 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "le fichier d'état snapbuild « %s » a une version non supportée : %u au lieu de %u" -#: replication/logical/snapbuild.c:1862 +#: replication/logical/snapbuild.c:1878 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "" "différence de somme de contrôle pour lefichier d'état snapbuild %s :\n" "est %u, devrait être %u" -#: replication/logical/snapbuild.c:1917 +#: replication/logical/snapbuild.c:1933 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Le décodage logique commencera en utilisant un snapshot sauvegardé." -#: replication/logical/snapbuild.c:1989 +#: replication/logical/snapbuild.c:2005 #, c-format msgid "could not parse file name \"%s\"" msgstr "n'a pas pu analyser le mode du fichier « %s »" @@ -18839,82 +18880,82 @@ msgid "ORIGIN message sent out of order" msgstr "message ORIGIN en désordre" -#: replication/logical/worker.c:739 +#: replication/logical/worker.c:742 #, c-format msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\"" msgstr "le publieur n'a pas envoyé la colonne d'identité du réplicat attendue par la relation cible « %s.%s » de la réplication logique" -#: replication/logical/worker.c:746 +#: replication/logical/worker.c:749 #, c-format msgid "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY index nor PRIMARY KEY and published relation does not have REPLICA IDENTITY FULL" msgstr "la relation cible « %s.%s » de réplication logique n'a ni un index REPLICA IDENTITY ni une clé primaire, et la relation publiée n'a pas REPLICA IDENTITY FULL" -#: replication/logical/worker.c:1432 +#: replication/logical/worker.c:1435 #, c-format msgid "invalid logical replication message type \"%c\"" msgstr "type de message « %c » de la réplication logique invalide" -#: replication/logical/worker.c:1575 +#: replication/logical/worker.c:1578 #, c-format msgid "data stream from publisher has ended" msgstr "le flux de données provenant du publieur s'est terminé" -#: replication/logical/worker.c:1730 +#: replication/logical/worker.c:1733 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "arrêt du processus worker de la réplication logique suite à l'expiration du délai de réplication" -#: replication/logical/worker.c:1876 +#: replication/logical/worker.c:1879 #, c-format msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was removed" msgstr "le processus apply de réplication logique pour la souscription « %s » s'arrêtera car la souscription a été supprimée" -#: replication/logical/worker.c:1890 +#: replication/logical/worker.c:1893 #, c-format msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was disabled" msgstr "le processus apply de réplication logique pour la souscription « %s » s'arrêtera car la souscription a été désactivée" -#: replication/logical/worker.c:1904 +#: replication/logical/worker.c:1907 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because the connection information was changed" msgstr "le processus apply de réplication logique pour la souscription « %s » redémarrera car la souscription a été modifiée" -#: replication/logical/worker.c:1918 +#: replication/logical/worker.c:1921 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because subscription was renamed" msgstr "le processus apply de réplication logique pour la souscription « %s » redémarrera car la souscription a été renommée" -#: replication/logical/worker.c:1935 +#: replication/logical/worker.c:1938 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because the replication slot name was changed" msgstr "le processus apply de réplication logique pour la souscription « %s » redémarrera car le nom du slot de réplication a été modifiée" -#: replication/logical/worker.c:1949 +#: replication/logical/worker.c:1952 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because subscription's publications were changed" msgstr "le processus apply de réplication logique pour la souscription « %s » redémarrera car les publications ont été modifiées" -#: replication/logical/worker.c:2045 +#: replication/logical/worker.c:2048 #, c-format msgid "logical replication apply worker for subscription %u will not start because the subscription was removed during startup" msgstr "le processus apply de réplication logique pour la souscription %u ne démarrera pas car la souscription a été désactivée au démarrage" -#: replication/logical/worker.c:2057 +#: replication/logical/worker.c:2060 #, c-format msgid "logical replication apply worker for subscription \"%s\" will not start because the subscription was disabled during startup" msgstr "le processus apply de réplication logique pour la souscription « %s » ne démarrera pas car la souscription a été désactivée au démarrage" -#: replication/logical/worker.c:2075 +#: replication/logical/worker.c:2078 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" msgstr "le processus de synchronisation des tables en réplication logique pour la souscription « %s », table « %s » a démarré" -#: replication/logical/worker.c:2079 +#: replication/logical/worker.c:2082 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "le processus apply de réplication logique pour la souscription « %s » a démarré" -#: replication/logical/worker.c:2118 +#: replication/logical/worker.c:2121 #, c-format msgid "subscription has no replication slot set" msgstr "la souscription n'a aucun ensemble de slot de réplication" @@ -19160,86 +19201,86 @@ msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "le nombre de standbys synchrones (%d) doit être supérieur à zéro" -#: replication/walreceiver.c:171 +#: replication/walreceiver.c:172 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "arrêt du processus walreceiver suite à la demande de l'administrateur" -#: replication/walreceiver.c:297 +#: replication/walreceiver.c:298 #, c-format msgid "could not connect to the primary server: %s" msgstr "n'a pas pu se connecter au serveur principal : %s" -#: replication/walreceiver.c:343 +#: replication/walreceiver.c:344 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "" "l'identifiant du système de bases de données diffère entre le serveur principal\n" "et le serveur en attente" -#: replication/walreceiver.c:344 +#: replication/walreceiver.c:345 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "" "L'identifiant du serveur principal est %s, l'identifiant du serveur en attente\n" "est %s." -#: replication/walreceiver.c:354 +#: replication/walreceiver.c:355 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "la plus grande timeline %u du serveur principal est derrière la timeline de restauration %u" -#: replication/walreceiver.c:408 +#: replication/walreceiver.c:409 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "démarré le flux des journaux depuis le principal à %X/%X sur la timeline %u" -#: replication/walreceiver.c:413 +#: replication/walreceiver.c:414 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "recommence le flux WAL à %X/%X sur la timeline %u" -#: replication/walreceiver.c:442 +#: replication/walreceiver.c:443 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "ne peut pas continuer le flux de journaux de transactions, la récupération est déjà terminée" -#: replication/walreceiver.c:479 +#: replication/walreceiver.c:480 #, c-format msgid "replication terminated by primary server" msgstr "réplication terminée par le serveur primaire" -#: replication/walreceiver.c:480 +#: replication/walreceiver.c:481 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "Fin du WAL atteint sur la timeline %u à %X/%X." -#: replication/walreceiver.c:568 +#: replication/walreceiver.c:569 #, c-format msgid "terminating walreceiver due to timeout" msgstr "arrêt du processus walreceiver suite à l'expiration du délai de réplication" -#: replication/walreceiver.c:606 +#: replication/walreceiver.c:607 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "le serveur principal ne contient plus de WAL sur la timeline %u demandée" -#: replication/walreceiver.c:622 replication/walreceiver.c:938 +#: replication/walreceiver.c:623 replication/walreceiver.c:1065 #, c-format msgid "could not close log segment %s: %m" msgstr "n'a pas pu fermer le journal de transactions %s : %m" -#: replication/walreceiver.c:742 +#: replication/walreceiver.c:743 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "récupération du fichier historique pour la timeline %u à partir du serveur principal" -#: replication/walreceiver.c:985 +#: replication/walreceiver.c:955 #, c-format msgid "could not write to log segment %s at offset %u, length %lu: %m" msgstr "n'a pas pu écrire le journal de transactions %s au décalage %u, longueur %lu : %m" -#: replication/walsender.c:527 storage/smgr/md.c:1329 +#: replication/walsender.c:527 storage/smgr/md.c:1330 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "n'a pas pu trouver la fin du fichier « %s » : %m" @@ -19319,49 +19360,49 @@ msgid "terminating walsender process after promotion" msgstr "arrêt du processus walreceiver suite promotion" -#: replication/walsender.c:1538 +#: replication/walsender.c:1539 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "ne peut pas exécuter de nouvelles commandes alors que le walsender est en mode d'arrêt" -#: replication/walsender.c:1575 +#: replication/walsender.c:1574 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "ne peut pas exécuter des commandes SQL dans le walsender pour la réplication physique" -#: replication/walsender.c:1598 +#: replication/walsender.c:1607 #, c-format msgid "received replication command: %s" msgstr "commande de réplication reçu : %s" -#: replication/walsender.c:1606 tcop/fastpath.c:285 tcop/postgres.c:1103 tcop/postgres.c:1455 tcop/postgres.c:1716 tcop/postgres.c:2174 tcop/postgres.c:2535 tcop/postgres.c:2614 +#: replication/walsender.c:1615 tcop/fastpath.c:285 tcop/postgres.c:1103 tcop/postgres.c:1455 tcop/postgres.c:1716 tcop/postgres.c:2174 tcop/postgres.c:2535 tcop/postgres.c:2614 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "" "la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc\n" "de la transaction" -#: replication/walsender.c:1730 replication/walsender.c:1746 +#: replication/walsender.c:1739 replication/walsender.c:1755 #, c-format msgid "unexpected EOF on standby connection" msgstr "fin de fichier (EOF) inattendue de la connexion du serveur en attente" -#: replication/walsender.c:1785 +#: replication/walsender.c:1794 #, c-format msgid "invalid standby message type \"%c\"" msgstr "type de message « %c » invalide pour le serveur en standby" -#: replication/walsender.c:1826 +#: replication/walsender.c:1835 #, c-format msgid "unexpected message type \"%c\"" msgstr "type de message « %c » inattendu" -#: replication/walsender.c:2238 +#: replication/walsender.c:2247 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "arrêt du processus walreceiver suite à l'expiration du délai de réplication" -#: replication/walsender.c:2315 +#: replication/walsender.c:2324 #, c-format msgid "\"%s\" has now caught up with upstream server" msgstr "« %s » a maintenant rattrapé le serveur en amont" @@ -19582,201 +19623,206 @@ msgid "renaming an ON SELECT rule is not allowed" msgstr "le renommage d'une règle ON SELECT n'est pas autorisé" -#: rewrite/rewriteHandler.c:546 +#: rewrite/rewriteHandler.c:549 #, c-format msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "Le nom de la requête WITH « %s » apparaît à la fois dans l'action d'une règle et dans la requête en cours de ré-écriture" -#: rewrite/rewriteHandler.c:606 +#: rewrite/rewriteHandler.c:576 +#, c-format +msgid "INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH" +msgstr "les actions de règle INSERT...SELECT ne sont pas supportées par les requêtes de modification de données dans WITH" + +#: rewrite/rewriteHandler.c:629 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "ne peut pas avoir des listes RETURNING dans plusieurs règles" -#: rewrite/rewriteHandler.c:817 rewrite/rewriteHandler.c:829 +#: rewrite/rewriteHandler.c:840 rewrite/rewriteHandler.c:852 #, c-format msgid "cannot insert into column \"%s\"" msgstr "ne peut pas insérer dans la colonne « %s »" -#: rewrite/rewriteHandler.c:818 rewrite/rewriteHandler.c:840 +#: rewrite/rewriteHandler.c:841 rewrite/rewriteHandler.c:863 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "La colonne « %s » est une colonne d'identité définie comme GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:820 +#: rewrite/rewriteHandler.c:843 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Utilisez OVERRIDING SYSTEM VALUE pour surcharger." -#: rewrite/rewriteHandler.c:839 rewrite/rewriteHandler.c:846 +#: rewrite/rewriteHandler.c:862 rewrite/rewriteHandler.c:869 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "la colonne « %s » peut seulement être mise à jour en DEFAULT" -#: rewrite/rewriteHandler.c:1015 rewrite/rewriteHandler.c:1033 +#: rewrite/rewriteHandler.c:1038 rewrite/rewriteHandler.c:1056 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "affectations multiples pour la même colonne « %s »" -#: rewrite/rewriteHandler.c:2015 rewrite/rewriteHandler.c:3837 +#: rewrite/rewriteHandler.c:2038 rewrite/rewriteHandler.c:3860 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "récursion infinie détectée dans les règles de la relation « %s »" -#: rewrite/rewriteHandler.c:2100 +#: rewrite/rewriteHandler.c:2123 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "récursion infinie détectée dans la politique pour la relation « %s »" -#: rewrite/rewriteHandler.c:2420 +#: rewrite/rewriteHandler.c:2443 msgid "Junk view columns are not updatable." msgstr "Les colonnes « junk » des vues ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2425 +#: rewrite/rewriteHandler.c:2448 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Les colonnes des vues qui ne font pas référence à des colonnes de la relation de base ne sont pas automatiquement modifiables." -#: rewrite/rewriteHandler.c:2428 +#: rewrite/rewriteHandler.c:2451 msgid "View columns that refer to system columns are not updatable." msgstr "Les colonnes des vues qui font référence à des colonnes systèmes ne sont pas automatiquement modifiables." -#: rewrite/rewriteHandler.c:2431 +#: rewrite/rewriteHandler.c:2454 msgid "View columns that return whole-row references are not updatable." msgstr "Les colonnes de vue qui font références à des lignes complètes ne sont pas automatiquement modifiables." -#: rewrite/rewriteHandler.c:2492 +#: rewrite/rewriteHandler.c:2515 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Les vues contenant DISTINCT ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2495 +#: rewrite/rewriteHandler.c:2518 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Les vues contenant GROUP BY ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2498 +#: rewrite/rewriteHandler.c:2521 msgid "Views containing HAVING are not automatically updatable." msgstr "Les vues contenant HAVING ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2501 +#: rewrite/rewriteHandler.c:2524 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Les vues contenant UNION, INTERSECT ou EXCEPT ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2504 +#: rewrite/rewriteHandler.c:2527 msgid "Views containing WITH are not automatically updatable." msgstr "Les vues contenant WITH ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2507 +#: rewrite/rewriteHandler.c:2530 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Les vues contenant LIMIT ou OFFSET ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2519 +#: rewrite/rewriteHandler.c:2542 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Les vues qui renvoient des fonctions d'agrégat ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2522 +#: rewrite/rewriteHandler.c:2545 msgid "Views that return window functions are not automatically updatable." msgstr "Les vues qui renvoient des fonctions de fenêtrage ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2525 +#: rewrite/rewriteHandler.c:2548 msgid "Views that return set-returning functions are not automatically updatable." msgstr "Les vues qui renvoient des fonctions à plusieurs lignes ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2532 rewrite/rewriteHandler.c:2536 rewrite/rewriteHandler.c:2544 +#: rewrite/rewriteHandler.c:2555 rewrite/rewriteHandler.c:2559 rewrite/rewriteHandler.c:2567 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Les vues qui lisent plusieurs tables ou vues ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2547 +#: rewrite/rewriteHandler.c:2570 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Les vues contenant TABLESAMPLE ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2571 +#: rewrite/rewriteHandler.c:2594 msgid "Views that have no updatable columns are not automatically updatable." msgstr "Les vues qui possèdent des colonnes non modifiables ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:3048 +#: rewrite/rewriteHandler.c:3071 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "ne peut pas insérer dans la colonne « %s » de la vue « %s »" -#: rewrite/rewriteHandler.c:3056 +#: rewrite/rewriteHandler.c:3079 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "ne peut pas mettre à jour la colonne « %s » de la vue « %s »" -#: rewrite/rewriteHandler.c:3537 +#: rewrite/rewriteHandler.c:3560 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "les règles DO INSTEAD NOTHING ne sont pas supportées par les instructions de modification de données dans WITH" -#: rewrite/rewriteHandler.c:3548 +#: rewrite/rewriteHandler.c:3571 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "les règles DO INSTEAD NOTHING ne sont pas supportées par les instructions de modification de données dans WITH" -#: rewrite/rewriteHandler.c:3562 +#: rewrite/rewriteHandler.c:3585 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "" "les règles DO INSTEAD conditionnelles ne sont pas supportées par les\n" "instructions de modification de données dans WITH" -#: rewrite/rewriteHandler.c:3566 +#: rewrite/rewriteHandler.c:3589 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "les règles DO ALSO ne sont pas supportées par les instructions de modification de données dans WITH" -#: rewrite/rewriteHandler.c:3571 +#: rewrite/rewriteHandler.c:3594 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "" "les règles DO INSTEAD multi-instructions ne sont pas supportées pour les\n" "instructions de modification de données dans WITH" -#: rewrite/rewriteHandler.c:3765 rewrite/rewriteHandler.c:3773 rewrite/rewriteHandler.c:3781 +#: rewrite/rewriteHandler.c:3788 rewrite/rewriteHandler.c:3796 rewrite/rewriteHandler.c:3804 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Les vues contenant des règles DO INSTEAD conditionnelles ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:3874 +#: rewrite/rewriteHandler.c:3897 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "ne peut pas exécuter INSERT RETURNING sur la relation « %s »" -#: rewrite/rewriteHandler.c:3876 +#: rewrite/rewriteHandler.c:3899 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "" "Vous avez besoin d'une règle ON INSERT DO INSTEAD sans condition avec une\n" "clause RETURNING." -#: rewrite/rewriteHandler.c:3881 +#: rewrite/rewriteHandler.c:3904 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "ne peut pas exécuter UPDATE RETURNING sur la relation « %s »" -#: rewrite/rewriteHandler.c:3883 +#: rewrite/rewriteHandler.c:3906 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "" "Vous avez besoin d'une règle ON UPDATE DO INSTEAD sans condition avec une\n" "clause RETURNING." -#: rewrite/rewriteHandler.c:3888 +#: rewrite/rewriteHandler.c:3911 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "ne peut pas exécuter DELETE RETURNING sur la relation « %s »" -#: rewrite/rewriteHandler.c:3890 +#: rewrite/rewriteHandler.c:3913 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "" "Vous avez besoin d'une règle ON DELETE DO INSTEAD sans condition avec une\n" "clause RETURNING." -#: rewrite/rewriteHandler.c:3908 +#: rewrite/rewriteHandler.c:3931 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT avec une clause ON CONFLICT ne peut pas être utilisée avec une table qui a des règles pour INSERT ou UPDATE" -#: rewrite/rewriteHandler.c:3965 +#: rewrite/rewriteHandler.c:3988 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH ne peut pas être utilisé dans une requête réécrite par des règles en plusieurs requêtes" @@ -19802,11 +19848,11 @@ #: scan.l:478 msgid "unterminated bit string literal" -msgstr "chaîne littérale bit non terminée" +msgstr "chaîne bit litérale non terminée" #: scan.l:492 msgid "unterminated hexadecimal string literal" -msgstr "chaîne littérale hexadécimale non terminée" +msgstr "chaîne hexadécimale litérale non terminée" #: scan.l:542 #, c-format @@ -19928,12 +19974,12 @@ msgid "missing Language parameter" msgstr "paramètre Language manquant" -#: statistics/dependencies.c:667 statistics/dependencies.c:720 statistics/mcv.c:1477 statistics/mcv.c:1508 statistics/mvdistinct.c:348 statistics/mvdistinct.c:401 utils/adt/pseudotypes.c:42 utils/adt/pseudotypes.c:76 +#: statistics/dependencies.c:677 statistics/dependencies.c:730 statistics/mcv.c:1477 statistics/mcv.c:1508 statistics/mvdistinct.c:348 statistics/mvdistinct.c:401 utils/adt/pseudotypes.c:42 utils/adt/pseudotypes.c:76 #, c-format msgid "cannot accept a value of type %s" msgstr "ne peut pas accepter une valeur de type %s" -#: statistics/extended_stats.c:145 +#: statistics/extended_stats.c:147 #, c-format msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" msgstr "l'objet de statistiques « %s.%s » n'a pas pu être calculé pour la relation « %s.%s »" @@ -19950,41 +19996,46 @@ msgid "cannot access temporary tables of other sessions" msgstr "ne peut pas accéder aux tables temporaires d'autres sessions" -#: storage/buffer/bufmgr.c:826 +#: storage/buffer/bufmgr.c:748 +#, c-format +msgid "cannot extend relation %s beyond %u blocks" +msgstr "ne peut pas étendre le fichier %s de plus de %u blocs" + +#: storage/buffer/bufmgr.c:835 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "" "données inattendues après la fin de fichier dans le bloc %u de la relation\n" "%s" -#: storage/buffer/bufmgr.c:828 +#: storage/buffer/bufmgr.c:837 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "" "Ceci s'est déjà vu avec des noyaux buggés ; pensez à mettre à jour votre\n" "système." -#: storage/buffer/bufmgr.c:927 +#: storage/buffer/bufmgr.c:936 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "page invalide dans le bloc %u de la relation %s ; remplacement de la page par des zéros" -#: storage/buffer/bufmgr.c:4213 +#: storage/buffer/bufmgr.c:4224 #, c-format msgid "could not write block %u of %s" msgstr "n'a pas pu écrire le bloc %u de %s" -#: storage/buffer/bufmgr.c:4215 +#: storage/buffer/bufmgr.c:4226 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Échecs multiples --- l'erreur d'écriture pourrait être permanent." -#: storage/buffer/bufmgr.c:4236 storage/buffer/bufmgr.c:4255 +#: storage/buffer/bufmgr.c:4247 storage/buffer/bufmgr.c:4266 #, c-format msgid "writing block %u of relation %s" msgstr "écriture du bloc %u de la relation %s" -#: storage/buffer/bufmgr.c:4558 +#: storage/buffer/bufmgr.c:4569 #, c-format msgid "snapshot too old" msgstr "snapshot trop ancien" @@ -20180,17 +20231,17 @@ msgid "%s failed: %m" msgstr "échec de %s : %m" -#: storage/ipc/procarray.c:3021 +#: storage/ipc/procarray.c:3104 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "la base de données « %s » est utilisée par des transactions préparées." -#: storage/ipc/procarray.c:3053 storage/ipc/signalfuncs.c:142 +#: storage/ipc/procarray.c:3136 storage/ipc/signalfuncs.c:142 #, c-format msgid "must be a superuser to terminate superuser process" msgstr "doit être super-utilisateur pour terminer le processus d'un super-utilisateur" -#: storage/ipc/procarray.c:3060 storage/ipc/signalfuncs.c:147 +#: storage/ipc/procarray.c:3143 storage/ipc/signalfuncs.c:147 #, c-format msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend" msgstr "doit être un membre du rôle dont le processus est en cours d'arrêt ou membre de pg_signal_backend" @@ -20205,7 +20256,7 @@ msgid "invalid message size %zu in shared memory queue" msgstr "taille %zu invalide pour le message dans la queue de mémoire partagée" -#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:982 storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4167 storage/lmgr/lock.c:4232 storage/lmgr/lock.c:4539 storage/lmgr/predicate.c:2476 storage/lmgr/predicate.c:2491 storage/lmgr/predicate.c:3973 storage/lmgr/predicate.c:5084 utils/hash/dynahash.c:1067 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:982 storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4252 storage/lmgr/lock.c:4317 storage/lmgr/lock.c:4667 storage/lmgr/predicate.c:2476 storage/lmgr/predicate.c:2491 storage/lmgr/predicate.c:3973 storage/lmgr/predicate.c:5084 utils/hash/dynahash.c:1067 #, c-format msgid "out of shared memory" msgstr "mémoire partagée épuisée" @@ -20271,12 +20322,12 @@ msgid "rotation not possible because log collection not active" msgstr "rotation impossible car la récupération des journaux applicatifs n'est pas activée" -#: storage/ipc/standby.c:683 tcop/postgres.c:3199 +#: storage/ipc/standby.c:690 tcop/postgres.c:3199 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "annulation de la requête à cause d'un conflit avec la restauration" -#: storage/ipc/standby.c:684 tcop/postgres.c:2469 +#: storage/ipc/standby.c:691 tcop/postgres.c:2469 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "La transaction de l'utilisateur causait un verrou mortel lors de la restauration." @@ -20286,17 +20337,17 @@ msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "l'entrée du Large Object d'OID %u, en page %d, a une taille de champ de données invalide, %d" -#: storage/large_object/inv_api.c:272 +#: storage/large_object/inv_api.c:274 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "drapeaux invalides pour l'ouverture d'un « Large Object » : %d" -#: storage/large_object/inv_api.c:462 +#: storage/large_object/inv_api.c:457 #, c-format msgid "invalid whence setting: %d" msgstr "paramètrage de « whence » invalide : %d" -#: storage/large_object/inv_api.c:634 +#: storage/large_object/inv_api.c:629 #, c-format msgid "invalid large object write request size: %d" msgstr "taille de la requête d'écriture du « Large Object » invalide : %d" @@ -20361,62 +20412,62 @@ msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "lors de la vérification de la contrainte d'exclusion sur l'enregistrement (%u,%u) dans la relation « %s »" -#: storage/lmgr/lmgr.c:1105 +#: storage/lmgr/lmgr.c:1106 #, c-format msgid "relation %u of database %u" msgstr "relation %u de la base de données %u" -#: storage/lmgr/lmgr.c:1111 +#: storage/lmgr/lmgr.c:1112 #, c-format msgid "extension of relation %u of database %u" msgstr "extension de la relation %u de la base de données %u" -#: storage/lmgr/lmgr.c:1117 +#: storage/lmgr/lmgr.c:1118 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid de la base %u" -#: storage/lmgr/lmgr.c:1122 +#: storage/lmgr/lmgr.c:1123 #, c-format msgid "page %u of relation %u of database %u" msgstr "page %u de la relation %u de la base de données %u" -#: storage/lmgr/lmgr.c:1129 +#: storage/lmgr/lmgr.c:1130 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "ligne (%u,%u) de la relation %u de la base de données %u" -#: storage/lmgr/lmgr.c:1137 +#: storage/lmgr/lmgr.c:1138 #, c-format msgid "transaction %u" msgstr "transaction %u" -#: storage/lmgr/lmgr.c:1142 +#: storage/lmgr/lmgr.c:1143 #, c-format msgid "virtual transaction %d/%u" msgstr "transaction virtuelle %d/%u" -#: storage/lmgr/lmgr.c:1148 +#: storage/lmgr/lmgr.c:1149 #, c-format msgid "speculative token %u of transaction %u" msgstr "jeton spéculatif %u de la transaction %u" -#: storage/lmgr/lmgr.c:1154 +#: storage/lmgr/lmgr.c:1155 #, c-format msgid "object %u of class %u of database %u" msgstr "objet %u de la classe %u de la base de données %u" -#: storage/lmgr/lmgr.c:1162 +#: storage/lmgr/lmgr.c:1163 #, c-format msgid "user lock [%u,%u,%u]" msgstr "verrou utilisateur [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1169 +#: storage/lmgr/lmgr.c:1170 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "verrou informatif [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1177 +#: storage/lmgr/lmgr.c:1178 #, c-format msgid "unrecognized locktag type %d" msgstr "type locktag non reconnu %d" @@ -20435,12 +20486,12 @@ "Seuls RowExclusiveLock et les verrous inférieurs peuvent être acquis sur les\n" "objets d'une base pendant une restauration." -#: storage/lmgr/lock.c:983 storage/lmgr/lock.c:1021 storage/lmgr/lock.c:2846 storage/lmgr/lock.c:4168 storage/lmgr/lock.c:4233 storage/lmgr/lock.c:4540 +#: storage/lmgr/lock.c:983 storage/lmgr/lock.c:1021 storage/lmgr/lock.c:2846 storage/lmgr/lock.c:4253 storage/lmgr/lock.c:4318 storage/lmgr/lock.c:4668 #, c-format msgid "You might need to increase max_locks_per_transaction." msgstr "Vous pourriez avoir besoin d'augmenter max_locks_per_transaction." -#: storage/lmgr/lock.c:3284 storage/lmgr/lock.c:3400 +#: storage/lmgr/lock.c:3301 storage/lmgr/lock.c:3369 storage/lmgr/lock.c:3485 #, c-format msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object" msgstr "ne peut pas utiliser PREPARE lorsque des verrous de niveau session et deniveau transaction sont détenus sur le même objet" @@ -20484,12 +20535,12 @@ msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "une transaction important un snapshot ne doit pas être READ ONLY DEFERRABLE" -#: storage/lmgr/predicate.c:1830 utils/time/snapmgr.c:623 utils/time/snapmgr.c:629 +#: storage/lmgr/predicate.c:1830 utils/time/snapmgr.c:625 utils/time/snapmgr.c:631 #, c-format msgid "could not import the requested snapshot" msgstr "n'a pas pu importer le snapshot demandé" -#: storage/lmgr/predicate.c:1831 utils/time/snapmgr.c:630 +#: storage/lmgr/predicate.c:1831 utils/time/snapmgr.c:632 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "Le processus source de PID %d n'est plus en cours d'exécution." @@ -20582,83 +20633,83 @@ msgid "corrupted line pointer: offset = %u, size = %u" msgstr "pointeur de ligne corrompu : décalage = %u, taille = %u" -#: storage/smgr/md.c:317 storage/smgr/md.c:874 +#: storage/smgr/md.c:317 storage/smgr/md.c:875 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "n'a pas pu tronquer le fichier « %s » : %m" -#: storage/smgr/md.c:445 +#: storage/smgr/md.c:446 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "ne peut pas étendre le fichier « %s » de plus de %u blocs" -#: storage/smgr/md.c:460 +#: storage/smgr/md.c:461 #, c-format msgid "could not extend file \"%s\": %m" msgstr "n'a pas pu étendre le fichier « %s » : %m" -#: storage/smgr/md.c:462 storage/smgr/md.c:469 storage/smgr/md.c:757 +#: storage/smgr/md.c:463 storage/smgr/md.c:470 storage/smgr/md.c:758 #, c-format msgid "Check free disk space." msgstr "Vérifiez l'espace disque disponible." -#: storage/smgr/md.c:466 +#: storage/smgr/md.c:467 #, c-format msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" msgstr "" "n'a pas pu étendre le fichier « %s » : a écrit seulement %d octets sur %d\n" "au bloc %u" -#: storage/smgr/md.c:678 +#: storage/smgr/md.c:679 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "n'a pas pu lire le bloc %u dans le fichier « %s » : %m" -#: storage/smgr/md.c:694 +#: storage/smgr/md.c:695 #, c-format msgid "could not read block %u in file \"%s\": read only %d of %d bytes" msgstr "" "n'a pas pu lire le bloc %u du fichier « %s » : a lu seulement %d octets\n" "sur %d" -#: storage/smgr/md.c:748 +#: storage/smgr/md.c:749 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "n'a pas pu écrire le bloc %u dans le fichier « %s » : %m" -#: storage/smgr/md.c:753 +#: storage/smgr/md.c:754 #, c-format msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" msgstr "" "n'a pas pu écrire le bloc %u du fichier « %s » : a seulement écrit %d\n" "octets sur %d" -#: storage/smgr/md.c:845 +#: storage/smgr/md.c:846 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "n'a pas pu tronquer le fichier « %s » en %u blocs : il y a seulement %u blocs" -#: storage/smgr/md.c:900 +#: storage/smgr/md.c:901 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "n'a pas pu tronquer le fichier « %s » en %u blocs : %m" -#: storage/smgr/md.c:995 +#: storage/smgr/md.c:996 #, c-format msgid "could not forward fsync request because request queue is full" msgstr "n'a pas pu envoyer la requête fsync car la queue des requêtes est pleine" -#: storage/smgr/md.c:1294 +#: storage/smgr/md.c:1295 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "n'a pas pu ouvrir le fichier « %s » (bloc cible %u) : le segment précédent ne fait que %u blocs" -#: storage/smgr/md.c:1308 +#: storage/smgr/md.c:1309 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "n'a pas pu ouvrir le fichier « %s » (bloc cible %u) : %m" -#: storage/sync/sync.c:401 +#: storage/sync/sync.c:438 #, c-format msgid "could not fsync file \"%s\" but retrying: %m" msgstr "" @@ -20714,7 +20765,7 @@ msgid "unexpected EOF on client connection" msgstr "fin de fichier (EOF) inattendue de la connexion du client" -#: tcop/postgres.c:441 tcop/postgres.c:453 tcop/postgres.c:464 tcop/postgres.c:476 tcop/postgres.c:4563 +#: tcop/postgres.c:441 tcop/postgres.c:453 tcop/postgres.c:464 tcop/postgres.c:476 tcop/postgres.c:4571 #, c-format msgid "invalid frontend message type %d" msgstr "type %d du message de l'interface invalide" @@ -20929,12 +20980,12 @@ msgid "terminating connection due to idle-in-transaction timeout" msgstr "arrêt des connexions suite à l'expiration du délai d'inactivité en transaction" -#: tcop/postgres.c:3340 +#: tcop/postgres.c:3350 #, c-format msgid "stack depth limit exceeded" msgstr "dépassement de limite (en profondeur) de la pile" -#: tcop/postgres.c:3341 +#: tcop/postgres.c:3351 #, c-format msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." msgstr "" @@ -20942,76 +20993,76 @@ "être assuré que la limite de profondeur de la pile de la plateforme est\n" "adéquate." -#: tcop/postgres.c:3404 +#: tcop/postgres.c:3414 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "« max_stack_depth » ne doit pas dépasser %ld ko." -#: tcop/postgres.c:3406 +#: tcop/postgres.c:3416 #, c-format msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." msgstr "" "Augmenter la limite de profondeur de la pile sur votre plateforme via\n" "« ulimit -s » ou l'équivalent local." -#: tcop/postgres.c:3766 +#: tcop/postgres.c:3776 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "argument invalide en ligne de commande pour le processus serveur : %s" -#: tcop/postgres.c:3767 tcop/postgres.c:3773 +#: tcop/postgres.c:3777 tcop/postgres.c:3783 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: tcop/postgres.c:3771 +#: tcop/postgres.c:3781 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s : argument invalide en ligne de commande : %s" -#: tcop/postgres.c:3833 +#: tcop/postgres.c:3843 #, c-format msgid "%s: no database nor user name specified" msgstr "%s : ni base de données ni utilisateur spécifié" -#: tcop/postgres.c:4471 +#: tcop/postgres.c:4479 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "sous-type %d du message CLOSE invalide" -#: tcop/postgres.c:4506 +#: tcop/postgres.c:4514 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "sous-type %d du message DESCRIBE invalide" -#: tcop/postgres.c:4584 +#: tcop/postgres.c:4592 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "appels à la fonction fastpath non supportés dans une connexion de réplication" -#: tcop/postgres.c:4588 +#: tcop/postgres.c:4596 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "protocole étendu de requêtes non supporté dans une connexion de réplication" -#: tcop/postgres.c:4765 +#: tcop/postgres.c:4773 #, c-format msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s" msgstr "" "déconnexion : durée de la session : %d:%02d:%02d.%03d\n" "utilisateur=%s base=%s hôte=%s%s%s" -#: tcop/pquery.c:636 +#: tcop/pquery.c:638 #, c-format msgid "bind message has %d result formats but query has %d columns" msgstr "le message bind a %d formats de résultat mais la requête a %d colonnes" -#: tcop/pquery.c:939 +#: tcop/pquery.c:941 tcop/pquery.c:1700 #, c-format msgid "cursor can only scan forward" msgstr "le curseur peut seulement parcourir en avant" -#: tcop/pquery.c:940 +#: tcop/pquery.c:942 tcop/pquery.c:1701 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "Déclarez-le avec l'option SCROLL pour activer le parcours inverse." @@ -21042,7 +21093,13 @@ "ne peut pas exécuter %s à l'intérieur d'une fonction restreinte\n" "pour sécurité" -#: tcop/utility.c:912 +#. translator: %s is name of a SQL command, eg LISTEN +#: tcop/utility.c:804 +#, c-format +msgid "cannot execute %s within a background process" +msgstr "ne peut pas exécuter %s dans un processus en tâche de fond" + +#: tcop/utility.c:929 #, c-format msgid "must be superuser to do CHECKPOINT" msgstr "doit être super-utilisateur pour exécuter un point de vérification (CHECKPOINT)" @@ -21421,7 +21478,7 @@ msgid "input data type is not an array" msgstr "le type de données en entrée n'est pas un tableau" -#: utils/adt/array_userfuncs.c:129 utils/adt/array_userfuncs.c:181 utils/adt/float.c:1243 utils/adt/float.c:1317 utils/adt/float.c:3960 utils/adt/float.c:3974 utils/adt/int.c:759 utils/adt/int.c:781 utils/adt/int.c:795 utils/adt/int.c:809 utils/adt/int.c:840 utils/adt/int.c:861 utils/adt/int.c:978 utils/adt/int.c:992 utils/adt/int.c:1006 utils/adt/int.c:1039 utils/adt/int.c:1053 utils/adt/int.c:1067 utils/adt/int.c:1098 utils/adt/int.c:1180 utils/adt/int.c:1244 utils/adt/int.c:1312 utils/adt/int.c:1318 utils/adt/int8.c:1292 utils/adt/numeric.c:1560 utils/adt/numeric.c:3443 utils/adt/varbit.c:1194 utils/adt/varbit.c:1582 utils/adt/varlena.c:1097 utils/adt/varlena.c:3395 +#: utils/adt/array_userfuncs.c:129 utils/adt/array_userfuncs.c:181 utils/adt/float.c:1243 utils/adt/float.c:1317 utils/adt/float.c:3960 utils/adt/float.c:3974 utils/adt/int.c:759 utils/adt/int.c:781 utils/adt/int.c:795 utils/adt/int.c:809 utils/adt/int.c:840 utils/adt/int.c:861 utils/adt/int.c:978 utils/adt/int.c:992 utils/adt/int.c:1006 utils/adt/int.c:1039 utils/adt/int.c:1053 utils/adt/int.c:1067 utils/adt/int.c:1098 utils/adt/int.c:1180 utils/adt/int.c:1244 utils/adt/int.c:1312 utils/adt/int.c:1318 utils/adt/int8.c:1292 utils/adt/numeric.c:1551 utils/adt/numeric.c:3430 utils/adt/varbit.c:1194 utils/adt/varbit.c:1582 utils/adt/varlena.c:1097 utils/adt/varlena.c:3395 #, c-format msgid "integer out of range" msgstr "entier en dehors des limites" @@ -21710,7 +21767,7 @@ #. translator: first %s is inet or cidr #: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:3757 utils/adt/float.c:187 utils/adt/float.c:271 utils/adt/float.c:295 utils/adt/float.c:412 utils/adt/float.c:497 utils/adt/float.c:525 utils/adt/geo_ops.c:220 utils/adt/geo_ops.c:230 utils/adt/geo_ops.c:242 utils/adt/geo_ops.c:274 utils/adt/geo_ops.c:316 utils/adt/geo_ops.c:326 utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1378 utils/adt/geo_ops.c:1413 utils/adt/geo_ops.c:1421 utils/adt/geo_ops.c:3476 utils/adt/geo_ops.c:4645 utils/adt/geo_ops.c:4660 utils/adt/geo_ops.c:4667 utils/adt/int8.c:126 utils/adt/jsonpath.c:182 utils/adt/mac.c:94 utils/adt/mac8.c:93 utils/adt/mac8.c:166 utils/adt/mac8.c:184 -#: utils/adt/mac8.c:202 utils/adt/mac8.c:221 utils/adt/network.c:100 utils/adt/numeric.c:602 utils/adt/numeric.c:629 utils/adt/numeric.c:6009 utils/adt/numeric.c:6033 utils/adt/numeric.c:6057 utils/adt/numeric.c:6890 utils/adt/numeric.c:6916 utils/adt/numutils.c:116 utils/adt/numutils.c:126 utils/adt/numutils.c:170 utils/adt/numutils.c:246 utils/adt/numutils.c:322 utils/adt/oid.c:44 utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86 utils/adt/pg_lsn.c:73 utils/adt/tid.c:74 utils/adt/tid.c:82 utils/adt/tid.c:90 utils/adt/timestamp.c:494 utils/adt/uuid.c:136 utils/adt/xid8funcs.c:346 +#: utils/adt/mac8.c:202 utils/adt/mac8.c:221 utils/adt/network.c:100 utils/adt/numeric.c:593 utils/adt/numeric.c:620 utils/adt/numeric.c:5997 utils/adt/numeric.c:6021 utils/adt/numeric.c:6045 utils/adt/numeric.c:6867 utils/adt/numeric.c:6893 utils/adt/numutils.c:116 utils/adt/numutils.c:126 utils/adt/numutils.c:170 utils/adt/numutils.c:246 utils/adt/numutils.c:322 utils/adt/oid.c:44 utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86 utils/adt/pg_lsn.c:73 utils/adt/tid.c:74 utils/adt/tid.c:82 utils/adt/tid.c:90 utils/adt/timestamp.c:494 utils/adt/uuid.c:136 utils/adt/xid8funcs.c:346 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "syntaxe en entrée invalide pour le type %s : « %s »" @@ -21720,7 +21777,7 @@ msgid "value \"%s\" is out of range for type %s" msgstr "la valeur « %s » est en dehors des limites pour le type %s" -#: utils/adt/cash.c:652 utils/adt/cash.c:702 utils/adt/cash.c:753 utils/adt/cash.c:802 utils/adt/cash.c:854 utils/adt/cash.c:904 utils/adt/float.c:104 utils/adt/int.c:824 utils/adt/int.c:940 utils/adt/int.c:1020 utils/adt/int.c:1082 utils/adt/int.c:1120 utils/adt/int.c:1148 utils/adt/int8.c:593 utils/adt/int8.c:651 utils/adt/int8.c:978 utils/adt/int8.c:1058 utils/adt/int8.c:1120 utils/adt/int8.c:1200 utils/adt/numeric.c:7454 utils/adt/numeric.c:7744 utils/adt/numeric.c:9326 utils/adt/timestamp.c:3275 +#: utils/adt/cash.c:652 utils/adt/cash.c:702 utils/adt/cash.c:753 utils/adt/cash.c:802 utils/adt/cash.c:854 utils/adt/cash.c:904 utils/adt/float.c:104 utils/adt/int.c:824 utils/adt/int.c:940 utils/adt/int.c:1020 utils/adt/int.c:1082 utils/adt/int.c:1120 utils/adt/int.c:1148 utils/adt/int8.c:593 utils/adt/int8.c:651 utils/adt/int8.c:978 utils/adt/int8.c:1058 utils/adt/int8.c:1120 utils/adt/int8.c:1200 utils/adt/numeric.c:7431 utils/adt/numeric.c:7721 utils/adt/numeric.c:9366 utils/adt/timestamp.c:3275 #, c-format msgid "division by zero" msgstr "division par zéro" @@ -21792,7 +21849,7 @@ msgid "time field value out of range: %d:%02d:%02g" msgstr "valeur du champ time en dehors des limites : %d:%02d:%02g" -#: utils/adt/date.c:1933 utils/adt/date.c:2435 utils/adt/float.c:1071 utils/adt/float.c:1140 utils/adt/int.c:616 utils/adt/int.c:663 utils/adt/int.c:698 utils/adt/int8.c:492 utils/adt/numeric.c:2198 utils/adt/timestamp.c:3324 utils/adt/timestamp.c:3355 utils/adt/timestamp.c:3386 +#: utils/adt/date.c:1933 utils/adt/date.c:2435 utils/adt/float.c:1071 utils/adt/float.c:1140 utils/adt/int.c:616 utils/adt/int.c:663 utils/adt/int.c:698 utils/adt/int8.c:492 utils/adt/numeric.c:2189 utils/adt/timestamp.c:3324 utils/adt/timestamp.c:3355 utils/adt/timestamp.c:3386 #, c-format msgid "invalid preceding or following size in window function" msgstr "taille précédente ou suivante invalide dans la fonction de fenêtrage" @@ -21812,12 +21869,12 @@ msgid "\"time with time zone\" units \"%s\" not recognized" msgstr "unités « %s » non reconnues pour le type « time with time zone »" -#: utils/adt/date.c:2854 utils/adt/datetime.c:906 utils/adt/datetime.c:1813 utils/adt/datetime.c:4601 utils/adt/timestamp.c:513 utils/adt/timestamp.c:540 utils/adt/timestamp.c:4161 utils/adt/timestamp.c:5111 utils/adt/timestamp.c:5363 +#: utils/adt/date.c:2856 utils/adt/datetime.c:906 utils/adt/datetime.c:1813 utils/adt/datetime.c:4601 utils/adt/timestamp.c:513 utils/adt/timestamp.c:540 utils/adt/timestamp.c:4161 utils/adt/timestamp.c:5111 utils/adt/timestamp.c:5363 #, c-format msgid "time zone \"%s\" not recognized" msgstr "le fuseau horaire « %s » n'est pas reconnu" -#: utils/adt/date.c:2886 utils/adt/timestamp.c:5141 utils/adt/timestamp.c:5394 +#: utils/adt/date.c:2888 utils/adt/timestamp.c:5141 utils/adt/timestamp.c:5394 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "l'intervalle de fuseau horaire « %s » ne doit pas spécifier de mois ou de jours" @@ -21967,32 +22024,32 @@ msgid "\"%s\" is out of range for type double precision" msgstr "« %s » est en dehors des limites du type double precision" -#: utils/adt/float.c:1268 utils/adt/float.c:1342 utils/adt/int.c:336 utils/adt/int.c:874 utils/adt/int.c:896 utils/adt/int.c:910 utils/adt/int.c:924 utils/adt/int.c:956 utils/adt/int.c:1194 utils/adt/int8.c:1313 utils/adt/numeric.c:3561 utils/adt/numeric.c:3570 +#: utils/adt/float.c:1268 utils/adt/float.c:1342 utils/adt/int.c:336 utils/adt/int.c:874 utils/adt/int.c:896 utils/adt/int.c:910 utils/adt/int.c:924 utils/adt/int.c:956 utils/adt/int.c:1194 utils/adt/int8.c:1313 utils/adt/numeric.c:3550 utils/adt/numeric.c:3555 #, c-format msgid "smallint out of range" msgstr "smallint en dehors des limites" -#: utils/adt/float.c:1468 utils/adt/numeric.c:8337 +#: utils/adt/float.c:1468 utils/adt/numeric.c:8314 #, c-format msgid "cannot take square root of a negative number" msgstr "ne peut pas calculer la racine carré d'un nombre négatif" -#: utils/adt/float.c:1536 utils/adt/numeric.c:3247 +#: utils/adt/float.c:1536 utils/adt/numeric.c:3240 #, c-format msgid "zero raised to a negative power is undefined" msgstr "zéro à une puissance négative est indéfini" -#: utils/adt/float.c:1540 utils/adt/numeric.c:3253 +#: utils/adt/float.c:1540 utils/adt/numeric.c:9219 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "un nombre négatif élevé à une puissance non entière donne un résultat complexe" -#: utils/adt/float.c:1614 utils/adt/float.c:1647 utils/adt/numeric.c:9001 +#: utils/adt/float.c:1614 utils/adt/float.c:1647 utils/adt/numeric.c:8992 #, c-format msgid "cannot take logarithm of zero" msgstr "ne peut pas calculer le logarithme de zéro" -#: utils/adt/float.c:1618 utils/adt/float.c:1651 utils/adt/numeric.c:9005 +#: utils/adt/float.c:1618 utils/adt/float.c:1651 utils/adt/numeric.c:8996 #, c-format msgid "cannot take logarithm of a negative number" msgstr "ne peut pas calculer le logarithme sur un nombre négatif" @@ -22007,12 +22064,12 @@ msgid "setseed parameter %g is out of allowed range [-1,1]" msgstr "le paramètre setseed %g est en dehors de la fenêtre permise [-1,1]" -#: utils/adt/float.c:3938 utils/adt/numeric.c:1510 +#: utils/adt/float.c:3938 utils/adt/numeric.c:1501 #, c-format msgid "count must be greater than zero" msgstr "le total doit être supérieur à zéro" -#: utils/adt/float.c:3943 utils/adt/numeric.c:1517 +#: utils/adt/float.c:3943 utils/adt/numeric.c:1508 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "la limite inférieure et supérieure de l'opérande ne peuvent pas être NaN" @@ -22022,7 +22079,7 @@ msgid "lower and upper bounds must be finite" msgstr "les limites basse et haute doivent être finies" -#: utils/adt/float.c:3983 utils/adt/numeric.c:1530 +#: utils/adt/float.c:3983 utils/adt/numeric.c:1521 #, c-format msgid "lower bound cannot equal upper bound" msgstr "la limite inférieure ne peut pas être plus égale à la limite supérieure" @@ -22411,12 +22468,12 @@ msgid "oidvector has too many elements" msgstr "oidvector a trop d'éléments" -#: utils/adt/int.c:1510 utils/adt/int8.c:1439 utils/adt/numeric.c:1418 utils/adt/timestamp.c:5456 utils/adt/timestamp.c:5536 +#: utils/adt/int.c:1510 utils/adt/int8.c:1439 utils/adt/numeric.c:1409 utils/adt/timestamp.c:5470 utils/adt/timestamp.c:5564 #, c-format msgid "step size cannot equal zero" msgstr "la taille du pas ne peut pas valoir zéro" -#: utils/adt/int8.c:527 utils/adt/int8.c:550 utils/adt/int8.c:564 utils/adt/int8.c:578 utils/adt/int8.c:609 utils/adt/int8.c:633 utils/adt/int8.c:715 utils/adt/int8.c:783 utils/adt/int8.c:789 utils/adt/int8.c:815 utils/adt/int8.c:829 utils/adt/int8.c:853 utils/adt/int8.c:866 utils/adt/int8.c:935 utils/adt/int8.c:949 utils/adt/int8.c:963 utils/adt/int8.c:994 utils/adt/int8.c:1016 utils/adt/int8.c:1030 utils/adt/int8.c:1044 utils/adt/int8.c:1077 utils/adt/int8.c:1091 utils/adt/int8.c:1105 utils/adt/int8.c:1136 utils/adt/int8.c:1158 utils/adt/int8.c:1172 utils/adt/int8.c:1186 utils/adt/int8.c:1348 utils/adt/int8.c:1383 utils/adt/numeric.c:3516 utils/adt/varbit.c:1662 +#: utils/adt/int8.c:527 utils/adt/int8.c:550 utils/adt/int8.c:564 utils/adt/int8.c:578 utils/adt/int8.c:609 utils/adt/int8.c:633 utils/adt/int8.c:715 utils/adt/int8.c:783 utils/adt/int8.c:789 utils/adt/int8.c:815 utils/adt/int8.c:829 utils/adt/int8.c:853 utils/adt/int8.c:866 utils/adt/int8.c:935 utils/adt/int8.c:949 utils/adt/int8.c:963 utils/adt/int8.c:994 utils/adt/int8.c:1016 utils/adt/int8.c:1030 utils/adt/int8.c:1044 utils/adt/int8.c:1077 utils/adt/int8.c:1091 utils/adt/int8.c:1105 utils/adt/int8.c:1136 utils/adt/int8.c:1158 utils/adt/int8.c:1172 utils/adt/int8.c:1186 utils/adt/int8.c:1348 utils/adt/int8.c:1383 utils/adt/numeric.c:3505 utils/adt/varbit.c:1662 #, c-format msgid "bigint out of range" msgstr "bigint en dehors des limites" @@ -23077,82 +23134,82 @@ msgid "cannot subtract inet values of different sizes" msgstr "ne peut pas soustraire des valeurs inet de tailles différentes" -#: utils/adt/numeric.c:828 +#: utils/adt/numeric.c:819 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "signe invalide dans la valeur externe « numeric »" -#: utils/adt/numeric.c:834 +#: utils/adt/numeric.c:825 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "échelle invalide dans la valeur externe « numeric »" -#: utils/adt/numeric.c:843 +#: utils/adt/numeric.c:834 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "chiffre invalide dans la valeur externe « numeric »" -#: utils/adt/numeric.c:1041 utils/adt/numeric.c:1055 +#: utils/adt/numeric.c:1032 utils/adt/numeric.c:1046 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "la précision NUMERIC %d doit être comprise entre 1 et %d" -#: utils/adt/numeric.c:1046 +#: utils/adt/numeric.c:1037 #, c-format msgid "NUMERIC scale %d must be between 0 and precision %d" msgstr "l'échelle NUMERIC %d doit être comprise entre 0 et le précision %d" -#: utils/adt/numeric.c:1064 +#: utils/adt/numeric.c:1055 #, c-format msgid "invalid NUMERIC type modifier" msgstr "modificateur de type NUMERIC invalide" -#: utils/adt/numeric.c:1396 +#: utils/adt/numeric.c:1387 #, c-format msgid "start value cannot be NaN" msgstr "la valeur de démarrage ne peut pas être NaN" -#: utils/adt/numeric.c:1401 +#: utils/adt/numeric.c:1392 #, c-format msgid "stop value cannot be NaN" msgstr "la valeur d'arrêt ne peut pas être NaN" -#: utils/adt/numeric.c:1411 +#: utils/adt/numeric.c:1402 #, c-format msgid "step size cannot be NaN" msgstr "la taille du pas ne peut pas être NaN" -#: utils/adt/numeric.c:2966 utils/adt/numeric.c:6072 utils/adt/numeric.c:6530 utils/adt/numeric.c:8810 utils/adt/numeric.c:9248 utils/adt/numeric.c:9362 utils/adt/numeric.c:9435 +#: utils/adt/numeric.c:2957 utils/adt/numeric.c:6060 utils/adt/numeric.c:6507 utils/adt/numeric.c:8789 utils/adt/numeric.c:9276 utils/adt/numeric.c:9402 utils/adt/numeric.c:9475 #, c-format msgid "value overflows numeric format" msgstr "la valeur dépasse le format numeric" -#: utils/adt/numeric.c:3425 +#: utils/adt/numeric.c:3412 #, c-format msgid "cannot convert NaN to integer" msgstr "ne peut pas convertir NaN en un entier" -#: utils/adt/numeric.c:3508 +#: utils/adt/numeric.c:3497 #, c-format msgid "cannot convert NaN to bigint" msgstr "ne peut pas convertir NaN en un entier de type bigint" -#: utils/adt/numeric.c:3553 +#: utils/adt/numeric.c:3542 #, c-format msgid "cannot convert NaN to smallint" msgstr "ne peut pas convertir NaN en un entier de type smallint" -#: utils/adt/numeric.c:3590 utils/adt/numeric.c:3661 +#: utils/adt/numeric.c:3578 utils/adt/numeric.c:3649 #, c-format msgid "cannot convert infinity to numeric" msgstr "ne peut pas convertir infinity en un type numeric" -#: utils/adt/numeric.c:6614 +#: utils/adt/numeric.c:6591 #, c-format msgid "numeric field overflow" msgstr "champ numérique en dehors des limites" -#: utils/adt/numeric.c:6615 +#: utils/adt/numeric.c:6592 #, c-format msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d." msgstr "Un champ de précision %d et d'échelle %d doit être arrondi à une valeur absolue inférieure à %s%d." @@ -23419,7 +23476,7 @@ msgid "more than one operator named %s" msgstr "il existe plus d'un opérateur nommé%s" -#: utils/adt/regproc.c:697 utils/adt/regproc.c:738 utils/adt/regproc.c:2018 utils/adt/ruleutils.c:9298 utils/adt/ruleutils.c:9467 +#: utils/adt/regproc.c:697 utils/adt/regproc.c:738 utils/adt/regproc.c:2018 utils/adt/ruleutils.c:9314 utils/adt/ruleutils.c:9483 #, c-format msgid "too many arguments" msgstr "trop d'arguments" @@ -23594,7 +23651,7 @@ "ne peut pas comparer les types d'enregistrement avec des numéros différents\n" "des colonnes" -#: utils/adt/ruleutils.c:4822 +#: utils/adt/ruleutils.c:4824 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "la règle « %s » a un type d'événement %d non supporté" @@ -23709,6 +23766,16 @@ msgid "interval units \"%s\" not recognized" msgstr "les unités « %s » ne sont pas reconnues pour le type interval" +#: utils/adt/timestamp.c:5434 utils/adt/timestamp.c:5528 +#, c-format +msgid "start value cannot be infinity" +msgstr "la valeur de démarrage ne peut pas être infinity" + +#: utils/adt/timestamp.c:5439 utils/adt/timestamp.c:5533 +#, c-format +msgid "stop value cannot be infinity" +msgstr "la valeur d'arrêt ne peut pas être infinity" + #: utils/adt/trigfuncs.c:42 #, c-format msgid "suppress_redundant_updates_trigger: must be called as trigger" @@ -23734,10 +23801,10 @@ msgid "gtsvector_in not implemented" msgstr "gtsvector_in n'est pas encore implémenté" -#: utils/adt/tsquery.c:200 +#: utils/adt/tsquery.c:200 utils/adt/tsquery_op.c:124 #, c-format -msgid "distance in phrase operator should not be greater than %d" -msgstr "la distance dans l'opérateur de phrase ne devrait pas être plus que %d" +msgid "distance in phrase operator must be an integer value between zero and %d inclusive" +msgstr "la distance dans l'opérateur de phrase doit être un entier compris entre zéro et %d inclus" #: utils/adt/tsquery.c:310 utils/adt/tsquery.c:725 utils/adt/tsvector_parser.c:133 #, c-format @@ -23781,11 +23848,6 @@ "la requête de recherche plein texte ne contient que des termes courants\n" "ou ne contient pas de lexemes, ignoré" -#: utils/adt/tsquery_op.c:124 -#, c-format -msgid "distance in phrase operator should be non-negative and less than %d" -msgstr "la distance dans l'opérateur de phrase devrait pas positif et inférieur à %d" - #: utils/adt/tsquery_rewrite.c:321 #, c-format msgid "ts_rewrite query must return two tsquery columns" @@ -24289,17 +24351,17 @@ msgid "cached plan must not change result type" msgstr "le plan en cache ne doit pas modifier le type en résultat" -#: utils/cache/relcache.c:6101 +#: utils/cache/relcache.c:6204 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "n'a pas pu créer le fichier d'initialisation relation-cache « %s » : %m" -#: utils/cache/relcache.c:6103 +#: utils/cache/relcache.c:6206 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Continue malgré tout, mais quelque chose s'est mal passé." -#: utils/cache/relcache.c:6425 +#: utils/cache/relcache.c:6528 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "n'a pas pu supprimer le fichier cache « %s » : %m" @@ -24567,194 +24629,194 @@ "n'a pas pu déterminer la description de la ligne pour la fonction renvoyant\n" "l'enregistrement" -#: utils/init/miscinit.c:285 +#: utils/init/miscinit.c:284 #, c-format msgid "data directory \"%s\" does not exist" msgstr "le répertoire des données « %s » n'existe pas" -#: utils/init/miscinit.c:290 +#: utils/init/miscinit.c:289 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "n'a pas pu lire les droits du répertoire « %s » : %m" -#: utils/init/miscinit.c:298 +#: utils/init/miscinit.c:297 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "le répertoire des données « %s » n'est pas un répertoire" -#: utils/init/miscinit.c:314 +#: utils/init/miscinit.c:313 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "le répertoire des données « %s » a un mauvais propriétaire" -#: utils/init/miscinit.c:316 +#: utils/init/miscinit.c:315 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "" "Le serveur doit être en cours d'exécution par l'utilisateur qui possède le\n" "répertoire des données." -#: utils/init/miscinit.c:334 +#: utils/init/miscinit.c:333 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "le répertoire des données « %s » a des permissions non valides" -#: utils/init/miscinit.c:336 +#: utils/init/miscinit.c:335 #, c-format msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "Les droits devraient être u=rwx (0700) ou u=rwx,g=rx (0750)." -#: utils/init/miscinit.c:615 utils/misc/guc.c:7139 +#: utils/init/miscinit.c:614 utils/misc/guc.c:7139 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "" "ne peut pas configurer le paramètre « %s » à l'intérieur d'une fonction\n" "restreinte pour sécurité" -#: utils/init/miscinit.c:683 +#: utils/init/miscinit.c:682 #, c-format msgid "role with OID %u does not exist" msgstr "le rôle d'OID %u n'existe pas" -#: utils/init/miscinit.c:713 +#: utils/init/miscinit.c:712 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "le rôle « %s » n'est pas autorisé à se connecter" -#: utils/init/miscinit.c:731 +#: utils/init/miscinit.c:730 #, c-format msgid "too many connections for role \"%s\"" msgstr "trop de connexions pour le rôle « %s »" -#: utils/init/miscinit.c:791 +#: utils/init/miscinit.c:790 #, c-format msgid "permission denied to set session authorization" msgstr "droit refusé pour initialiser une autorisation de session" -#: utils/init/miscinit.c:874 +#: utils/init/miscinit.c:873 #, c-format msgid "invalid role OID: %u" msgstr "OID du rôle invalide : %u" -#: utils/init/miscinit.c:928 +#: utils/init/miscinit.c:927 #, c-format msgid "database system is shut down" msgstr "le système de base de données est arrêté" -#: utils/init/miscinit.c:1015 +#: utils/init/miscinit.c:1014 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "n'a pas pu créer le fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1029 +#: utils/init/miscinit.c:1028 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1036 +#: utils/init/miscinit.c:1035 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "n'a pas pu lire le fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1045 +#: utils/init/miscinit.c:1044 #, c-format msgid "lock file \"%s\" is empty" msgstr "le fichier verrou « %s » est vide" -#: utils/init/miscinit.c:1046 +#: utils/init/miscinit.c:1045 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "Soit un autre serveur est en cours de démarrage, soit le fichier verrou est un reste d'un précédent crash au démarrage du serveur." -#: utils/init/miscinit.c:1090 +#: utils/init/miscinit.c:1089 #, c-format msgid "lock file \"%s\" already exists" msgstr "le fichier verrou « %s » existe déjà" -#: utils/init/miscinit.c:1094 +#: utils/init/miscinit.c:1093 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "" "Un autre postgres (de PID %d) est-il déjà lancé avec comme répertoire de\n" "données « %s » ?" -#: utils/init/miscinit.c:1096 +#: utils/init/miscinit.c:1095 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "" "Un autre postmaster (de PID %d) est-il déjà lancé avec comme répertoire de\n" "données « %s » ?" -#: utils/init/miscinit.c:1099 +#: utils/init/miscinit.c:1098 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Un autre postgres (de PID %d) est-il déjà lancé en utilisant la socket « %s » ?" -#: utils/init/miscinit.c:1101 +#: utils/init/miscinit.c:1100 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Un autre postmaster (de PID %d) est-il déjà lancé en utilisant la socket « %s » ?" -#: utils/init/miscinit.c:1152 +#: utils/init/miscinit.c:1151 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "n'a pas pu supprimer le vieux fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1154 +#: utils/init/miscinit.c:1153 #, c-format msgid "The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again." msgstr "" "Le fichier semble avoir été oublié accidentellement mais il ne peut pas être\n" "supprimé. Merci de supprimer ce fichier manuellement et de ré-essayer." -#: utils/init/miscinit.c:1191 utils/init/miscinit.c:1205 utils/init/miscinit.c:1216 +#: utils/init/miscinit.c:1190 utils/init/miscinit.c:1204 utils/init/miscinit.c:1215 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "n'a pas pu écrire le fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1327 utils/init/miscinit.c:1469 utils/misc/guc.c:10066 +#: utils/init/miscinit.c:1326 utils/init/miscinit.c:1468 utils/misc/guc.c:10066 #, c-format msgid "could not read from file \"%s\": %m" msgstr "n'a pas pu lire à partir du fichier « %s » : %m" -#: utils/init/miscinit.c:1457 +#: utils/init/miscinit.c:1456 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "n'a pas pu ouvrir le fichier « %s » : %m ; poursuite du traitement" -#: utils/init/miscinit.c:1482 +#: utils/init/miscinit.c:1481 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "le fichier de verrou « %s » contient le mauvais PID : %ld au lieu de %ld" -#: utils/init/miscinit.c:1521 utils/init/miscinit.c:1537 +#: utils/init/miscinit.c:1520 utils/init/miscinit.c:1536 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "« %s » n'est pas un répertoire de données valide" -#: utils/init/miscinit.c:1523 +#: utils/init/miscinit.c:1522 #, c-format msgid "File \"%s\" is missing." msgstr "Le fichier « %s » est manquant." -#: utils/init/miscinit.c:1539 +#: utils/init/miscinit.c:1538 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Le fichier « %s » ne contient aucune donnée valide." -#: utils/init/miscinit.c:1541 +#: utils/init/miscinit.c:1540 #, c-format msgid "You might need to initdb." msgstr "Vous pouvez avoir besoin d'exécuter initdb." -#: utils/init/miscinit.c:1549 +#: utils/init/miscinit.c:1548 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "" "Le répertoire des données a été initialisé avec PostgreSQL version %s,\n" "qui est non compatible avec cette version %s." -#: utils/init/miscinit.c:1616 +#: utils/init/miscinit.c:1615 #, c-format msgid "loaded library \"%s\"" msgstr "bibliothèque « %s » chargée" @@ -27370,27 +27432,27 @@ msgid "closing existing cursor \"%s\"" msgstr "fermeture du curseur existant « %s »" -#: utils/mmgr/portalmem.c:400 +#: utils/mmgr/portalmem.c:401 #, c-format msgid "portal \"%s\" cannot be run" msgstr "le portail « %s » ne peut pas être exécuté de nouveau" -#: utils/mmgr/portalmem.c:478 +#: utils/mmgr/portalmem.c:479 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "ne peut pas supprimer le portail épinglé « %s »" -#: utils/mmgr/portalmem.c:486 +#: utils/mmgr/portalmem.c:487 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "ne peut pas supprimer le portail actif « %s »" -#: utils/mmgr/portalmem.c:736 +#: utils/mmgr/portalmem.c:738 #, c-format msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD" msgstr "ne peut pas préparer une transaction qui a créé un curseur WITH HOLD" -#: utils/mmgr/portalmem.c:1275 +#: utils/mmgr/portalmem.c:1279 #, c-format msgid "cannot perform transaction commands inside a cursor loop that is not read-only" msgstr "ne peut pas effectuer de commandes de transaction dans une boucle de curseur qui n'est pas en lecture seule" @@ -27425,22 +27487,22 @@ msgid "could not read from shared tuplestore temporary file: read only %zu of %zu bytes" msgstr "n'a pas pu lire le fichier temporaire tuplestore partagé : a lu seulement %zu octets sur %zu" -#: utils/sort/tuplesort.c:3140 +#: utils/sort/tuplesort.c:3142 #, c-format msgid "cannot have more than %d runs for an external sort" msgstr "ne peut pas avoir plus de %d exécutions pour un tri externe" -#: utils/sort/tuplesort.c:4221 +#: utils/sort/tuplesort.c:4223 #, c-format msgid "could not create unique index \"%s\"" msgstr "n'a pas pu créer l'index unique « %s »" -#: utils/sort/tuplesort.c:4223 +#: utils/sort/tuplesort.c:4225 #, c-format msgid "Key %s is duplicated." msgstr "La clé %s est dupliquée." -#: utils/sort/tuplesort.c:4224 +#: utils/sort/tuplesort.c:4226 #, c-format msgid "Duplicate keys exist." msgstr "Des clés dupliquées existent." @@ -27455,1740 +27517,1736 @@ msgid "could not read from tuplestore temporary file: read only %zu of %zu bytes" msgstr "n'a pas pu lire le fichier temporaire tuplestore : a lu seulement %zu octets sur %zu" -#: utils/time/snapmgr.c:624 +#: utils/time/snapmgr.c:626 #, c-format msgid "The source transaction is not running anymore." msgstr "La transaction source n'est plus en cours d'exécution." -#: utils/time/snapmgr.c:1232 +#: utils/time/snapmgr.c:1249 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "ne peut pas exporter un snapshot dans un sous-transaction" -#: utils/time/snapmgr.c:1391 utils/time/snapmgr.c:1396 utils/time/snapmgr.c:1401 utils/time/snapmgr.c:1416 utils/time/snapmgr.c:1421 utils/time/snapmgr.c:1426 utils/time/snapmgr.c:1441 utils/time/snapmgr.c:1446 utils/time/snapmgr.c:1451 utils/time/snapmgr.c:1553 utils/time/snapmgr.c:1569 utils/time/snapmgr.c:1594 +#: utils/time/snapmgr.c:1408 utils/time/snapmgr.c:1413 utils/time/snapmgr.c:1418 utils/time/snapmgr.c:1433 utils/time/snapmgr.c:1438 utils/time/snapmgr.c:1443 utils/time/snapmgr.c:1458 utils/time/snapmgr.c:1463 utils/time/snapmgr.c:1468 utils/time/snapmgr.c:1570 utils/time/snapmgr.c:1586 utils/time/snapmgr.c:1611 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "données invalides du snapshot dans le fichier « %s »" -#: utils/time/snapmgr.c:1488 +#: utils/time/snapmgr.c:1505 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "SET TRANSACTION SNAPSHOT doit être appelé avant toute requête" -#: utils/time/snapmgr.c:1497 +#: utils/time/snapmgr.c:1514 #, c-format msgid "a snapshot-importing transaction must have isolation level SERIALIZABLE or REPEATABLE READ" msgstr "une transaction important un snapshot doit avoir le niveau d'isolation SERIALIZABLE ou REPEATABLE READ" -#: utils/time/snapmgr.c:1506 utils/time/snapmgr.c:1515 +#: utils/time/snapmgr.c:1523 utils/time/snapmgr.c:1532 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "identifiant invalide du snapshot : « %s »" -#: utils/time/snapmgr.c:1607 +#: utils/time/snapmgr.c:1624 #, c-format msgid "a serializable transaction cannot import a snapshot from a non-serializable transaction" msgstr "une transaction sérialisable ne peut pas importer un snapshot provenant d'une transaction non sérialisable" -#: utils/time/snapmgr.c:1611 +#: utils/time/snapmgr.c:1628 #, c-format msgid "a non-read-only serializable transaction cannot import a snapshot from a read-only transaction" msgstr "une transaction sérialisable en écriture ne peut pas importer un snapshot provenant d'une transaction en lecture seule" -#: utils/time/snapmgr.c:1626 +#: utils/time/snapmgr.c:1643 #, c-format msgid "cannot import a snapshot from a different database" msgstr "ne peut pas importer un snapshot à partir d'une base de données différente" -#~ msgid "moving row to another partition during a BEFORE trigger is not supported" -#~ msgstr "déplacer une ligne vers une autre partition lors de l'exécution d'un trigger BEFORE n'est pas supporté" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help affiche cette aide, puis quitte\n" -#~ msgid "scanned index \"%s\" to remove %d row versions by parallel vacuum worker" -#~ msgstr "a parcouru l'index « %s » pour supprimer %d versions de lignes par le worker parallélisé du VACUUM" +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version affiche la version, puis quitte\n" -#~ msgid "index \"%s\" now contains %.0f row versions in %u pages as reported by parallel vacuum worker" -#~ msgstr "l'index « %s » contient maintenant %.0f versions de lignes dans %u pages, comme indiqué par le worker parallélisé du VACUUM" +#~ msgid " -A 1|0 enable/disable run-time assert checking\n" +#~ msgstr "" +#~ " -A 1|0 active/désactive la vérification des limites (assert) à\n" +#~ " l'exécution\n" -#~ msgid "cannot reindex invalid index on TOAST table concurrently" -#~ msgstr "ne peut pas réindexer un index invalide sur une table TOAST de manière concurrente" +#~ msgid " in schema %s" +#~ msgstr " dans le schéma %s" -#~ msgid "insufficient columns in %s constraint definition" -#~ msgstr "colonnes infuffisantes dans la définition de contrainte de %s" +#~ msgid "\"%s\" is already an attribute of type %s" +#~ msgstr "« %s » est déjà un attribut du type %s" -#~ msgid "%s: could not open file \"%s\" for reading: %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » en lecture : %s\n" +#~ msgid "\"%s\" is not a table or a view" +#~ msgstr "« %s » n'est pas une table ou une vue" -#~ msgid "%s: could not read file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le fichier « %s » : %s\n" +#~ msgid "\"%s\" is not a table, materialized view, composite type, or foreign table" +#~ msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un type composite, ni une table distante" -#~ msgid "could not read file \"%s\": read %d of %d" -#~ msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %d" +#~ msgid "\"%s\" is not a table, view, or composite type" +#~ msgstr "« %s » n'est pas une table, une vue ou un type composite" -#~ msgid "%s: could not read file \"%s\": read %d of %d\n" -#~ msgstr "%s : n'a pas pu lire le fichier « %s » : a lu %d sur %d\n" +#~ msgid "\"%s\": moved %u row versions, truncated %u to %u pages" +#~ msgstr "« %s » : %u versions de ligne déplacées, %u pages tronquées sur %u" -#~ msgid "" -#~ "WARNING: possible byte ordering mismatch\n" -#~ "The byte ordering used to store the pg_control file might not match the one\n" -#~ "used by this program. In that case the results below would be incorrect, and\n" -#~ "the PostgreSQL installation would be incompatible with this data directory.\n" -#~ msgstr "" -#~ "ATTENTION : possible incohérence dans l'ordre des octets\n" -#~ "L'ordre des octets utilisé pour enregistrer le fichier pg_control peut ne\n" -#~ "pas correspondre à celui utilisé par ce programme. Dans ce cas, les\n" -#~ "résultats ci-dessous sont incorrects, et l'installation PostgreSQL\n" -#~ "incompatible avec ce répertoire des données.\n" +#~ msgid "\"%s.%s\" is a partitioned table." +#~ msgstr "« %s.%s » est une table partitionnée." -#~ msgid "could not identify current directory: %s" -#~ msgstr "n'a pas pu identifier le répertoire courant : %s" +#~ msgid "\"TZ\"/\"tz\" not supported" +#~ msgstr "« TZ »/« tz » non supporté" -#~ msgid "could not change directory to \"%s\": %s" -#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s" +#~ msgid "\"TZ\"/\"tz\"/\"OF\" format patterns are not supported in to_date" +#~ msgstr "les motifs de format « TZ »/« tz »/« OF » ne sont pas supportés dans to_date" -#~ msgid "could not read symbolic link \"%s\"" -#~ msgstr "n'a pas pu lire le lien symbolique « %s »" +#~ msgid "\"interval\" time zone \"%s\" not valid" +#~ msgstr "le fuseau horaire « %s » n'est pas valide pour le type « interval »" -#~ msgid "%s: could not stat file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu récupérer les informations sur le fichier « %s » : %s\n" +#~ msgid "" +#~ "%.0f dead row versions cannot be removed yet.\n" +#~ "Nonremovable row versions range from %lu to %lu bytes long.\n" +#~ "There were %.0f unused item pointers.\n" +#~ "Total free space (including removable row versions) is %.0f bytes.\n" +#~ "%u pages are or will become empty, including %u at the end of the table.\n" +#~ "%u pages containing %.0f free bytes are potential move destinations.\n" +#~ "%s." +#~ msgstr "" +#~ "%.0f versions de lignes mortes ne peuvent pas encore être supprimées.\n" +#~ "Les versions non supprimables de ligne vont de %lu to %lu octets.\n" +#~ "Il existait %.0f pointeurs d'éléments inutilisés.\n" +#~ "L'espace libre total (incluant les versions supprimables de ligne) est de\n" +#~ "%.0f octets.\n" +#~ "%u pages sont ou deviendront vides, ceci incluant %u pages en fin de la\n" +#~ "table.\n" +#~ "%u pages contenant %.0f octets libres sont des destinations de déplacement\n" +#~ "disponibles.\n" +#~ "%s." -#~ msgid "%s: could not open directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le répertoire « %s » : %s\n" +#~ msgid "" +#~ "%.0f dead row versions cannot be removed yet.\n" +#~ "There were %.0f unused item pointers.\n" +#~ "%u pages are entirely empty.\n" +#~ "%s." +#~ msgstr "" +#~ "%.0f versions de lignes mortes ne peuvent pas encore être supprimées.\n" +#~ "Il y avait %.0f pointeurs d'éléments inutilisés.\n" +#~ "%u pages sont entièrement vides.\n" +#~ "%s." -#~ msgid "%s: could not read directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n" +#~ msgid "%s \"%s\": return code %d" +#~ msgstr "%s « %s » : code de retour %d" -#~ msgid "%s: could not open file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n" +#~ msgid "%s (%x)" +#~ msgstr "%s (%x)" -#~ msgid "%s: could not fsync file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu synchroniser sur disque le fichier « %s » : %s\n" +#~ msgid "%s (PID %d) was terminated by signal %d" +#~ msgstr "%s (PID %d) a été arrêté par le signal %d" -#~ msgid "%s: could not rename file \"%s\" to \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu renommer le fichier « %s » en « %s » : %s\n" +#~ msgid "%s already exists in schema \"%s\"" +#~ msgstr "%s existe déjà dans le schéma « %s »" -#~ msgid "could not open directory \"%s\": %s\n" -#~ msgstr "n'a pas pu ouvrir le répertoire « %s » : %s\n" +#~ msgid "%s cannot be executed from a function or multi-command string" +#~ msgstr "" +#~ "%s ne peut pas être exécuté à partir d'une fonction ou d'une chaîne\n" +#~ "contenant plusieurs commandes" -#~ msgid "could not read directory \"%s\": %s\n" -#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n" +#~ msgid "%s in publication %s" +#~ msgstr "%s dans la publication %s" -#~ msgid "could not close directory \"%s\": %s\n" -#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n" +#~ msgid "%s is already in schema \"%s\"" +#~ msgstr "%s existe déjà dans le schéma « %s »" #~ msgid "%s: WARNING: cannot create restricted tokens on this platform\n" #~ msgstr "%s : ATTENTION : ne peut pas créer les jetons restreints sur cette plateforme\n" -#~ msgid "%s: could not open process token: error code %lu\n" -#~ msgstr "%s : n'a pas pu ouvrir le jeton du processus : code d'erreur %lu\n" - #~ msgid "%s: could not allocate SIDs: error code %lu\n" #~ msgstr "%s : n'a pas pu allouer les SID : code d'erreur %lu\n" #~ msgid "%s: could not create restricted token: error code %lu\n" #~ msgstr "%s : n'a pas pu créer le jeton restreint : code d'erreur %lu\n" -#~ msgid "%s: could not start process for command \"%s\": error code %lu\n" -#~ msgstr "%s : n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu\n" +#~ msgid "%s: could not determine user name (GetUserName failed)\n" +#~ msgstr "%s : n'a pas pu déterminer le nom de l'utilisateur (GetUserName a échoué)\n" -#~ msgid "%s: could not re-execute with restricted token: error code %lu\n" -#~ msgstr "%s : n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu\n" +#~ msgid "%s: could not dissociate from controlling TTY: %s\n" +#~ msgstr "%s : n'a pas pu se dissocier du TTY contrôlant : %s\n" + +#~ msgid "%s: could not fork background process: %s\n" +#~ msgstr "%s : n'a pas pu créer un processus fils : %s\n" + +#~ msgid "%s: could not fsync file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu synchroniser sur disque le fichier « %s » : %s\n" #~ msgid "%s: could not get exit code from subprocess: error code %lu\n" #~ msgstr "%s : n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu\n" -#~ msgid "could not stat file or directory \"%s\": %s\n" -#~ msgstr "" -#~ "n'a pas pu récupérer les informations sur le fichier ou répertoire\n" -#~ "« %s » : %s\n" - -#~ msgid "could not remove file or directory \"%s\": %s\n" -#~ msgstr "n'a pas pu supprimer le fichier ou répertoire « %s » : %s\n" +#~ msgid "%s: could not open directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le répertoire « %s » : %s\n" -#~ msgid "child process was terminated by signal %s" -#~ msgstr "le processus fils a été terminé par le signal %s" +#~ msgid "%s: could not open file \"%s\" for reading: %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » en lecture : %s\n" -#~ msgid "child process was terminated by signal %d" -#~ msgstr "le processus fils a été terminé par le signal %d" +#~ msgid "%s: could not open file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n" -#~ msgid "unrecognized error %d" -#~ msgstr "erreur %d non reconnue" +#~ msgid "%s: could not open log file \"%s/%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le journal applicatif « %s/%s » : %s\n" -#~ msgid "could not open two-phase state file \"%s\": %m" -#~ msgstr "" -#~ "n'a pas pu ouvrir le fichier d'état de la validation en deux phases nommé\n" -#~ "« %s » : %m" - -#~ msgid "could not stat two-phase state file \"%s\": %m" -#~ msgstr "" -#~ "n'a pas pu récupérer des informations sur le fichier d'état de la validation\n" -#~ "en deux phases nommé « %s » : %m" +#~ msgid "%s: could not open process token: error code %lu\n" +#~ msgstr "%s : n'a pas pu ouvrir le jeton du processus : code d'erreur %lu\n" -#~ msgid "could not read two-phase state file \"%s\": %m" -#~ msgstr "" -#~ "n'a pas pu lire le fichier d'état de la validation en deux phases nommé\n" -#~ "« %s » : %m" +#~ msgid "%s: could not re-execute with restricted token: error code %lu\n" +#~ msgstr "%s : n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu\n" -#~ msgid "could not remove two-phase state file \"%s\": %m" -#~ msgstr "" -#~ "n'a pas pu supprimer le fichier d'état de la validation en deux phases\n" -#~ "« %s » : %m" +#~ msgid "%s: could not read directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n" -#~ msgid "could not recreate two-phase state file \"%s\": %m" -#~ msgstr "" -#~ "n'a pas pu re-créer le fichier d'état de la validation en deux phases nommé\n" -#~ "« %s » : %m" +#~ msgid "%s: could not read file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu lire le fichier « %s » : %s\n" -#~ msgid "could not write two-phase state file: %m" -#~ msgstr "n'a pas pu écrire dans le fichier d'état de la validation en deux phases : %m" +#~ msgid "%s: could not read file \"%s\": read %d of %d\n" +#~ msgstr "%s : n'a pas pu lire le fichier « %s » : a lu %d sur %d\n" -#~ msgid "could not fsync two-phase state file: %m" -#~ msgstr "" -#~ "n'a pas pu synchroniser sur disque (fsync) le fichier d'état de la\n" -#~ "validation en deux phases : %m" +#~ msgid "%s: could not rename file \"%s\" to \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu renommer le fichier « %s » en « %s » : %s\n" -#~ msgid "could not close two-phase state file: %m" -#~ msgstr "n'a pas pu fermer le fichier d'état de la validation en deux phases : %m" +#~ msgid "%s: could not start process for command \"%s\": error code %lu\n" +#~ msgstr "%s : n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu\n" -#~ msgid "cannot PREPARE a transaction that has operated on temporary tables" -#~ msgstr "" -#~ "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur des\n" -#~ "tables temporaires" +#~ msgid "%s: could not stat file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu récupérer les informations sur le fichier « %s » : %s\n" -#~ msgid "could not seek in log file %s to offset %u: %m" -#~ msgstr "n'a pas pu se déplacer dans le fichier de transactions « %s » au décalage %u : %m" +#~ msgid "%s: invalid effective UID: %d\n" +#~ msgstr "%s : UID effectif invalide : %d\n" -#~ msgid "not enough data in file \"%s\"" -#~ msgstr "données insuffisantes dans le fichier « %s »" +#~ msgid "%s: max_wal_senders must be less than max_connections\n" +#~ msgstr "%s : max_wal_senders doit être inférieur à max_connections\n" -#~ msgid "could not open write-ahead log file \"%s\": %m" -#~ msgstr "n'a pas pu écrire dans le journal de transactions « %s » : %m" +#~ msgid "%s: setsysinfo failed: %s\n" +#~ msgstr "%s : setsysinfo a échoué : %s\n" -#~ msgid "could not close log file %s: %m" -#~ msgstr "n'a pas pu fermer le fichier de transactions « %s » : %m" +#~ msgid "%s: the number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16\n" +#~ msgstr "" +#~ "%s : le nombre de tampons (-B) doit être au moins deux fois le nombre de\n" +#~ "connexions disponibles (-N) et au moins 16\n" -#~ msgid "could not rename old write-ahead log file \"%s\": %m" -#~ msgstr "n'a pas pu renommer l'ancien journal de transactions « %s » : %m" +#~ msgid "" +#~ "%u index pages have been deleted, %u are currently reusable.\n" +#~ "%s." +#~ msgstr "" +#~ "%u pages d'index ont été supprimées, %u sont actuellement réutilisables.\n" +#~ "%s." -#~ msgid "could not create control file \"%s\": %m" -#~ msgstr "n'a pas pu créer le fichier de contrôle « %s » : %m" +#~ msgid "%u transaction needs to finish." +#~ msgid_plural "%u transactions need to finish." +#~ msgstr[0] "La transaction %u doit se terminer." +#~ msgstr[1] "Les transactions %u doivent se terminer." -#~ msgid "could not write to control file: %m" -#~ msgstr "n'a pas pu écrire le fichier de contrôle : %m" +#~ msgid "=> is deprecated as an operator name" +#~ msgstr "=> est un nom d'opérateur obsolète" -#~ msgid "could not fsync control file: %m" -#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier de contrôle : %m" +#~ msgid "@@ operator does not support lexeme weight restrictions in GIN index searches" +#~ msgstr "" +#~ "l'opérateur @@ ne supporte pas les restrictions de poids de lexeme dans les\n" +#~ "recherches par index GIN" -#~ msgid "could not close control file: %m" -#~ msgstr "n'a pas pu fermer le fichier de contrôle : %m" +#~ msgid "A function returning \"anyrange\" must have at least one \"anyrange\" argument." +#~ msgstr "Une fonction renvoyant « anyrange » doit avoir au moins un argument du type « anyrange »." -#~ msgid "could not open control file \"%s\": %m" -#~ msgstr "n'a pas pu ouvrir le fichier de contrôle « %s » : %m" +#~ msgid "A function returning \"internal\" must have at least one \"internal\" argument." +#~ msgstr "Une fonction renvoyant « internal » doit avoir au moins un argument du type « internal »." -#~ msgid "could not read from control file: %m" -#~ msgstr "n'a pas pu lire le fichier de contrôle : %m" +#~ msgid "A function returning ANYRANGE must have at least one ANYRANGE argument." +#~ msgstr "" +#~ "Une fonction renvoyant ANYRANGE doit avoir au moins un argument du type\n" +#~ "ANYRANGE." -#~ msgid "could not read from control file: read %d bytes, expected %d" -#~ msgstr "n'a pas pu lire le fichier de contrôle : lu %d octets, %d attendus" +#~ msgid "A function returning a polymorphic type must have at least one polymorphic argument." +#~ msgstr "Une fonction renvoyant un type polymorphique doit avoir au moins un argument de type polymorphique." -#~ msgid "could not open recovery command file \"%s\": %m" -#~ msgstr "n'a pas pu ouvrir le fichier de restauration « %s » : %m" +#~ msgid "" +#~ "A total of %.0f page slots are in use (including overhead).\n" +#~ "%.0f page slots are required to track all free space.\n" +#~ "Current limits are: %d page slots, %d relations, using %.0f kB." +#~ msgstr "" +#~ "Un total de %.0f emplacements de pages est utilisé (ceci incluant la\n" +#~ "surcharge).\n" +#~ "%.0f emplacements de pages sont requis pour tracer tout l'espace libre.\n" +#~ "Les limites actuelles sont : %d emplacements de pages, %d relations,\n" +#~ "utilisant %.0f Ko." -#~ msgid "invalid value for recovery parameter \"%s\": \"%s\"" -#~ msgstr "valeur invalide pour le paramètre de restauration « %s » : « %s »" +#~ msgid "ALTER TYPE USING is only supported on plain tables" +#~ msgstr "ALTER TYPE USING est seulement supportés sur les tables standards" -#~ msgid "Valid values are \"pause\", \"promote\", and \"shutdown\"." -#~ msgstr "Les valeurs valides sont « pause », « promote » et « shutdown »." +#~ msgid "AM/PM hour must be between 1 and 12" +#~ msgstr "l'heure AM/PM doit être compris entre 1 et 12" -#~ msgid "recovery_target_xid is not a valid number: \"%s\"" -#~ msgstr "recovery_target_xid n'est pas un nombre valide : « %s »" +#~ msgid "Adding partitioned tables to publications is not supported." +#~ msgstr "Ajouter des tables partitionnées à des publications n'est pas supporté." -#~ msgid "recovery_target_time is not a valid timestamp: \"%s\"" -#~ msgstr "recovery_target_timeline n'est pas un horodatage valide : « %s »" +#~ msgid "All SQL statements that cause an error of the specified level or a higher level are logged." +#~ msgstr "" +#~ "Toutes les instructions SQL causant une erreur du niveau spécifié ou d'un\n" +#~ "niveau supérieur sont tracées." -#~ msgid "parameter \"%s\" requires a temporal value" -#~ msgstr "le paramètre « %s » requiert une valeur temporelle" +#~ msgid "An aggregate returning a polymorphic type must have at least one polymorphic argument." +#~ msgstr "Un agrégat renvoyant un type polymorphique doit avoir au moins un argument de type polymorphique." -#~ msgid "unrecognized recovery parameter \"%s\"" -#~ msgstr "paramètre de restauration « %s » non reconnu" +#~ msgid "An aggregate using a polymorphic transition type must have at least one polymorphic argument." +#~ msgstr "Un agrégat utilisant un type de transition polymorphique doit avoir au moins un argument polymorphique." -#~ msgid "If you are not restoring from a backup, try removing the file \"%s/backup_label\"." -#~ msgstr "" -#~ "Si vous n'avez pas pu restaurer une sauvegarde, essayez de supprimer le\n" -#~ "fichier « %s/backup_label »." +#~ msgid "Anyone can use the client-side lo_export() provided by libpq." +#~ msgstr "Tout le monde peut utiliser lo_export(), fournie par libpq, du côté client." -#~ msgid "could not fsync log segment %s: %m" -#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le segment du journal des transactions %s : %m" +#~ msgid "Anyone can use the client-side lo_import() provided by libpq." +#~ msgstr "Tout le monde peut utiliser lo_import(), fourni par libpq, du côté client." -#~ msgid "could not fsync log file %s: %m" -#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier de transactions « %s » : %m" +#~ msgid "Apr" +#~ msgstr "Avr" -#~ msgid "could not fdatasync log file %s: %m" -#~ msgstr "n'a pas pu synchroniser sur disque (fdatasync) le journal de transactions %s : %m" +#~ msgid "April" +#~ msgstr "Avril" -#~ msgid "pg_walfile_name_offset() cannot be executed during recovery." -#~ msgstr "pg_walfile_name_offset() ne peut pas être exécuté lors de la restauration." +#~ msgid "Aug" +#~ msgstr "Aoû" -#~ msgid "pg_walfile_name() cannot be executed during recovery." -#~ msgstr "pg_walfile_name() ne peut pas être exécuté lors de la restauration." +#~ msgid "August" +#~ msgstr "Août" -#~ msgid "shared tables cannot be toasted after initdb" +#~ msgid "Automatically adds missing table references to FROM clauses." #~ msgstr "" -#~ "les tables partagées ne peuvent pas avoir une table TOAST après la commande\n" -#~ "initdb" +#~ "Ajoute automatiquement les références à la table manquant dans les clauses\n" +#~ "FROM." -#~ msgid "table \"%s\" does not have OIDs" -#~ msgstr "la table « %s » n'a pas d'OID" +#~ msgid "CREATE TABLE AS cannot specify INTO" +#~ msgstr "CREATE TABLE AS ne peut pas spécifier INTO" -#~ msgid "missing data for OID column" -#~ msgstr "données manquantes pour la colonne OID" +#~ msgid "CREATE TABLE AS specifies too many column names" +#~ msgstr "CREATE TABLE AS spécifie trop de noms de colonnes" -#~ msgid "null OID in COPY data" -#~ msgstr "OID NULL dans les données du COPY" +#~ msgid "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT must not be called inside a transaction" +#~ msgstr "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT ne doit pas être appelé dans une sous-transaction" -#~ msgid "invalid OID in COPY data" -#~ msgstr "OID invalide dans les données du COPY" +#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called before any query" +#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT doit être appelé avant toute requête" -#~ msgid "server does not exist, skipping" -#~ msgstr "le serveur n'existe pas, poursuite du traitement" +#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called inside a transaction" +#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT doit être appelé dans une transaction" -#~ msgid "\"%s\" is not a table or a view" -#~ msgstr "« %s » n'est pas une table ou une vue" +#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must not be called in a subtransaction" +#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT ne doit pas être appelé dans une sous-transaction" -#~ msgid "connect = false and create_slot = true are mutually exclusive options" -#~ msgstr "connect = false et create_slot = true sont des options mutuellement exclusives" +#~ msgid "Causes subtables to be included by default in various commands." +#~ msgstr "" +#~ "Fait que les sous-tables soient incluses par défaut dans les différentes\n" +#~ "commandes." -#~ msgid "connect = false and copy_data = true are mutually exclusive options" -#~ msgstr "connect = false et copy_data = true sont des options mutuellement exclusives" +#~ msgid "Certificates will not be checked against revocation list." +#~ msgstr "Les certificats ne seront pas vérifiés avec la liste de révocation." -#~ msgid "slot_name = NONE and enabled = true are mutually exclusive options" -#~ msgstr "slot_name = NONE et enabled = true sont des options mutuellement exclusives" +#~ msgid "Close open transactions soon to avoid wraparound problems." +#~ msgstr "" +#~ "Fermez les transactions ouvertes rapidement pour éviter des problèmes de\n" +#~ "réinitialisation." -#~ msgid "slot_name = NONE and create_slot = true are mutually exclusive options" -#~ msgstr "slot_name = NONE et create_slot = true sont des options mutuellement exclusives" +#~ msgid "Consider increasing the configuration parameter \"checkpoint_segments\"." +#~ msgstr "Considèrez l'augmentation du paramètre « checkpoint_segments »." -#~ msgid "subscription with slot_name = NONE must also set create_slot = false" -#~ msgstr "la souscription avec slot_name = NONE doit aussi être configurée avec create_slot = false" +#~ msgid "Consider increasing the configuration parameter \"max_fsm_pages\" to a value over %.0f." +#~ msgstr "" +#~ "Considérez l'augmentation du paramètre de configuration « max_fsm_pages »\n" +#~ "à une valeur supérieure à %.0f." -#~ msgid "cannot create table with OIDs as partition of table without OIDs" -#~ msgstr "ne peut pas créer une table avec OID comme partition d'une table sans OID" +#~ msgid "Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\"." +#~ msgstr "" +#~ "Pensez à compacter cette relation en utilisant VACUUM FULL ou à augmenter le\n" +#~ "paramètre de configuration « max_fsm_pages »." -#~ msgid "child table \"%s\" has a conflicting \"%s\" column" -#~ msgstr "la table fille « %s » a une colonne conflictuelle, « %s »" +#~ msgid "Consider using pg_logfile_rotate(), which is part of core, instead." +#~ msgstr "Considérer l'utilisation de pg_logfile_rotate(), qui est présent par défaut, à la place." -#~ msgid "cannot drop column named in partition key" -#~ msgstr "ne peut pas supprimer une colonne nommée dans une clé de partitionnement" +#~ msgid "Create new tables with OIDs by default." +#~ msgstr "Crée des nouvelles tables avec des OID par défaut." -#~ msgid "cannot reference partitioned table \"%s\"" -#~ msgstr "ne peut pas référencer la table partitionnée « %s »" +#~ msgid "DECLARE CURSOR cannot specify INTO" +#~ msgstr "DECLARE CURSOR ne peut pas spécifier INTO" -#~ msgid "cannot alter type of column named in partition key" -#~ msgstr "ne peut pas modifier le type d'une colonne nommée dans une clé de partitionnement" +#~ msgid "DEFAULT can only appear in a VALUES list within INSERT" +#~ msgstr "DEFAULT peut seulement apparaître dans la liste VALUES comprise dans un INSERT" -#~ msgid "cannot alter type of column referenced in partition key expression" -#~ msgstr "ne peut pas utiliser le type d'une colonne référencée dans l'expression d'une clé de partitionnement" +#~ msgid "DISTINCT is supported only for single-argument aggregates" +#~ msgstr "DISTINCT est seulement supporté pour les agrégats à un seul argument" -#~ msgid "table \"%s\" without OIDs cannot inherit from table \"%s\" with OIDs" -#~ msgstr "la table « %s » qui n'a pas d'OID ne peut pas hériter de la table « %s » qui en a" - -#~ msgid "data type %s has no default hash operator class" -#~ msgstr "le type de données %s n'a pas de classe d'opérateurs hash par défaut" +#~ msgid "DROP ASSERTION is not yet implemented" +#~ msgstr "DROP ASSERTION n'est pas encore implémenté" -#~ msgid "data type %s has no default btree operator class" -#~ msgstr "le type de données %s n'a pas de classe d'opérateurs btree par défaut" +#~ msgid "Dec" +#~ msgstr "Déc" -#~ msgid "cannot attach table \"%s\" without OIDs as partition of table \"%s\" with OIDs" -#~ msgstr "ne peut pas attacher la table « %s » sans OID comme partition de la table « %s » avec OID" +#~ msgid "December" +#~ msgstr "Décembre" -#~ msgid "cannot attach table \"%s\" with OIDs as partition of table \"%s\" without OIDs" -#~ msgstr "ne peut pas attacher la table « %s » avec OID comme partition de la table « %s » sans OID" +#~ msgid "During recovery, allows connections and queries. During normal running, causes additional info to be written to WAL to enable hot standby mode on WAL standby nodes." +#~ msgstr "" +#~ "Lors de la restauration, autorise les connexions et les requêtes. Lors d'une\n" +#~ "exécution normale, fait que des informations supplémentaires sont écrites dans\n" +#~ "les journaux de transactions pour activer le mode Hot Standby sur les nœuds\n" +#~ "en attente." -#~ msgid "relation \"%s\" page %u is uninitialized --- fixing" -#~ msgstr "relation « %s » : la page %u n'est pas initialisée --- correction en cours" +#~ msgid "EXPLAIN option BUFFERS requires ANALYZE" +#~ msgstr "l'option BUFFERS d'EXPLAIN nécessite ANALYZE" -#~ msgid "logical replication target relation \"%s.%s\" is not a table" -#~ msgstr "la relation cible de la réplication logique « %s.%s » n'est pas une table" +#~ msgid "Each SQL transaction has an isolation level, which can be either \"read uncommitted\", \"read committed\", \"repeatable read\", or \"serializable\"." +#~ msgstr "" +#~ "Chaque transaction SQL a un niveau d'isolation qui peut être soit « read\n" +#~ "uncommitted », soit « read committed », soit « repeatable read », soit\n" +#~ "« serializable »." -#~ msgid "tuple to be deleted was already moved to another partition due to concurrent update" -#~ msgstr "la ligne à supprimer était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente" +#~ msgid "Each session can be either \"origin\", \"replica\", or \"local\"." +#~ msgstr "Chaque session peut valoir soit « origin » soit « replica » soit « local »." -#~ msgid "tuple to be updated was already moved to another partition due to concurrent update" -#~ msgstr "la ligne à mettre à jour était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente, nouvelle tentative" +#~ msgid "Encrypt passwords." +#~ msgstr "Chiffre les mots de passe." -#~ msgid "DROP ASSERTION is not yet implemented" -#~ msgstr "DROP ASSERTION n'est pas encore implémenté" +#~ msgid "EnumValuesCreate() can only set a single OID" +#~ msgstr "EnumValuesCreate() peut seulement initialiser un seul OID" -#~ msgid "The cast requires a non-immutable conversion." -#~ msgstr "Cette conversion requiert une conversion non immutable." +#~ msgid "Expected 1 tuple with 3 fields, got %d tuples with %d fields." +#~ msgstr "Attendait 1 ligne avec 3 champs, a obtenu %d lignes avec %d champs." -#~ msgid "Try putting the literal value in single quotes." -#~ msgstr "Placer la valeur littérale en guillemets simples." +#~ msgid "Expected a transaction log switchpoint location." +#~ msgstr "Attendait un emplacement de bascule dans le journal de transactions." -#~ msgid "archive command was terminated by signal %d" -#~ msgstr "la commande d'archivage a été terminée par le signal %d" +#~ msgid "FROM version must be different from installation target version \"%s\"" +#~ msgstr "la version FROM doit être différente de la version cible d'installation « %s »" -#~ msgid "pg_ident.conf was not reloaded" -#~ msgstr "pg_ident.conf n'a pas été rechargé" +#~ msgid "Feb" +#~ msgstr "Fév" -#~ msgid "%s (PID %d) was terminated by signal %d" -#~ msgstr "%s (PID %d) a été arrêté par le signal %d" +#~ msgid "February" +#~ msgstr "Février" -#~ msgid "could not stat control file \"%s\": %m" -#~ msgstr "n'a pas pu récupérer des informations sur le fichier de contrôle « %s » : %m" +#~ msgid "File must be owned by the database user and must have no permissions for \"group\" or \"other\"." +#~ msgstr "" +#~ "Le fichier doit appartenir au propriétaire de la base de données et ne doit\n" +#~ "pas avoir de droits pour un groupe ou pour les autres." -#~ msgid "replication identifier %d is already active for PID %d" -#~ msgstr "l'identificateur de réplication %d est déjà actif pour le PID %d" +#~ msgid "For RAID arrays, this should be approximately the number of drive spindles in the array." +#~ msgstr "" +#~ "Pour les systèmes RAID, cela devrait être approximativement le nombre de\n" +#~ "têtes de lecture du système." -#~ msgid "could not read file \"%s\", read %d of %d: %m" -#~ msgstr "n'a pas pu lire le fichier « %s », lu %d sur %d : %m" +#~ msgid "Found referenced table's DELETE trigger." +#~ msgstr "Trigger DELETE de la table référencée trouvé." -#~ msgid "could not read file \"%s\", read %d of %u: %m" -#~ msgstr "n'a pas pu lire le fichier « %s », a lu %d sur %u : %m" +#~ msgid "Found referenced table's UPDATE trigger." +#~ msgstr "Trigger UPDATE de la table référencée trouvé." -#~ msgid "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT must not be called inside a transaction" -#~ msgstr "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT ne doit pas être appelé dans une sous-transaction" +#~ msgid "Found referencing table's trigger." +#~ msgstr "Trigger de la table référencée trouvé." -#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called inside a transaction" -#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT doit être appelé dans une transaction" +#~ msgid "Fri" +#~ msgstr "Ven" -#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called before any query" -#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT doit être appelé avant toute requête" +#~ msgid "Friday" +#~ msgstr "Vendredi" -#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must not be called in a subtransaction" -#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT ne doit pas être appelé dans une sous-transaction" +#~ msgid "GIN index does not support search with void query" +#~ msgstr "les index GIN ne supportent pas la recherche avec des requêtes vides" -#~ msgid "invalid zero-length item array in MVDependencies" -#~ msgstr "tableau d'éléments de longueur zéro invalide dans MVDependencies" +#~ msgid "GSSAPI encryption can only be used with gss, trust, or reject authentication methods" +#~ msgstr "le chiffrement GSSAPI ne peut être utilisé qu'avec les méthodes d'authentification gss, trust ou reject" -#~ msgid "invalid ndistinct magic %08x (expected %08x)" -#~ msgstr "nombre magique ndistinct invalide %08x (attendu %08x)" +#~ msgid "GSSAPI encryption only supports gss, trust, or reject authentication" +#~ msgstr "le chiffrement GSSAPI ne supporte que l'authentification gss, trust ou reject" -#~ msgid "invalid ndistinct type %d (expected %d)" -#~ msgstr "type ndistinct invalide %d (%d attendu)" +#~ msgid "GSSAPI not implemented on this server" +#~ msgstr "GSSAPI non implémenté sur ce serveur" -#~ msgid "invalid zero-length item array in MVNDistinct" -#~ msgstr "tableau d'élément de longueur zéro invalide dans MVNDistinct" +#~ msgid "INSERT ... SELECT cannot specify INTO" +#~ msgstr "INSERT ... SELECT ne peut pas avoir INTO" -#~ msgid "invalid MVNDistinct size %zd (expected at least %zd)" -#~ msgstr "taille MVNDistinct %zd invalide (attendue au moins %zd)" +#~ msgid "IS DISTINCT FROM does not support set arguments" +#~ msgstr "IS DISTINCT FROM ne supporte pas les arguments d'ensemble" -#~ msgid "could not rmdir directory \"%s\": %m" -#~ msgstr "n'a pas pu supprimer le répertoire « %s » : %m" +#~ msgid "Ident authentication is not supported on local connections on this platform" +#~ msgstr "l'authentification Ident n'est pas supportée sur les connexions locales sur cette plateforme" -#~ msgid "dynamic shared memory is disabled" -#~ msgstr "la mémoire partagée dynamique est désactivée" +#~ msgid "Ident protocol identifies remote user as \"%s\"" +#~ msgstr "le protocole Ident identifie l'utilisateur distant comme « %s »" -#~ msgid "Set dynamic_shared_memory_type to a value other than \"none\"." -#~ msgstr "Configurez dynamic_shared_memory_type à une valeur autre que « none »." +#~ msgid "If this parameter is set, the server will automatically run in the background and any controlling terminals are dissociated." +#~ msgstr "" +#~ "Si ce paramètre est initialisé, le serveur sera exécuté automatiquement en\n" +#~ "tâche de fond et les terminaux de contrôles seront dés-associés." -#~ msgid "epoll_ctl() failed: %m" -#~ msgstr "échec de epoll_ctl() : %m" +#~ msgid "If you are not restoring from a backup, try removing the file \"%s/backup_label\"." +#~ msgstr "" +#~ "Si vous n'avez pas pu restaurer une sauvegarde, essayez de supprimer le\n" +#~ "fichier « %s/backup_label »." -#~ msgid "epoll_wait() failed: %m" -#~ msgstr "échec de epoll_wait() : %m" +#~ msgid "If you're sure there are no old server processes still running, remove the shared memory block or just delete the file \"%s\"." +#~ msgstr "" +#~ "Si vous êtes sûr qu'aucun processus serveur n'est toujours en cours\n" +#~ "d'exécution, supprimez le bloc de mémoire partagée\n" +#~ "ou supprimez simplement le fichier « %s »." -#~ msgid "poll() failed: %m" -#~ msgstr "échec de poll() : %m" +#~ msgid "Incomplete insertion detected during crash replay." +#~ msgstr "" +#~ "Insertion incomplète détectée lors de la ré-exécution des requêtes suite à\n" +#~ "l'arrêt brutal." -#~ msgid "corrupted item pointer: offset = %u, length = %u" -#~ msgstr "pointeur d'élément corrompu : décalage = %u, longueur = %u" +#~ msgid "Incorrect XLOG_BLCKSZ in page header." +#~ msgstr "XLOG_BLCKSZ incorrect dans l'en-tête de page." -#~ msgid "could not seek to block %u in file \"%s\": %m" -#~ msgstr "n'a pas pu trouver le bloc %u dans le fichier « %s » : %m" +#~ msgid "Incorrect XLOG_SEG_SIZE in page header." +#~ msgstr "XLOG_SEG_SIZE incorrecte dans l'en-tête de page." -#~ msgid "date/time value \"current\" is no longer supported" -#~ msgstr "la valeur « current » pour la date et heure n'est plus supportée" +#~ msgid "It looks like you need to initdb or install locale support." +#~ msgstr "" +#~ "Il semble que vous avez besoin d'exécuter initdb ou d'installer le support\n" +#~ "des locales." -#~ msgid "cannot convert reserved abstime value to date" -#~ msgstr "ne peut pas convertir la valeur réservée abstime en date" +#~ msgid "It's just here so that we won't choke on SET AUTOCOMMIT TO ON from 7.3-vintage clients." +#~ msgstr "" +#~ "C'est ici uniquement pour ne pas avoir de problèmes avec le SET AUTOCOMMIT\n" +#~ "TO ON des clients 7.3." -#~ msgid "abstime out of range for date" -#~ msgstr "abstime en dehors des limites pour une date" +#~ msgid "JOIN/ON clause refers to \"%s\", which is not part of JOIN" +#~ msgstr "la clause JOIN/ON se réfère à « %s », qui ne fait pas partie du JOIN" -#~ msgid "could not determine which collation to use for upper() function" -#~ msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction upper()" +#~ msgid "JSON does not support infinite date values." +#~ msgstr "JSON ne supporte pas les valeurs infinies de date." -#~ msgid "could not determine which collation to use for initcap() function" -#~ msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction initcap()" +#~ msgid "JSON does not support infinite timestamp values." +#~ msgstr "JSON ne supporte pas les valeurs infinies de timestamp." -#~ msgid "cannot create bounding box for empty polygon" -#~ msgstr "ne peut pas créer une boîte entourée pour un polygône vide" +#~ msgid "Jan" +#~ msgstr "Jan" -#~ msgid "cannot convert empty polygon to circle" -#~ msgstr "ne peut pas convertir un polygône vide en cercle" +#~ msgid "January" +#~ msgstr "Janvier" -#~ msgid "invalid input syntax for integer: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour l'entier : « %s »" +#~ msgid "Jul" +#~ msgstr "Juil" -#~ msgid "The arguments of jsonb_build_object() must consist of alternating keys and values." -#~ msgstr "Les arguments de jsonb_build_object() doivent consister en des clés et valeurs alternées" +#~ msgid "July" +#~ msgstr "Juillet" -#~ msgid "Consider using pg_logfile_rotate(), which is part of core, instead." -#~ msgstr "Considérer l'utilisation de pg_logfile_rotate(), qui est présent par défaut, à la place." +#~ msgid "Jun" +#~ msgstr "Juin" -#~ msgid "invalid time zone name: \"%s\"" -#~ msgstr "nom du fuseau horaire invalide : « %s »" +#~ msgid "June" +#~ msgstr "Juin" -#~ msgid "cannot convert abstime \"invalid\" to timestamp" -#~ msgstr "ne peut pas convertir un abstime « invalid » en timestamp" +#~ msgid "Kerberos 5 authentication failed for user \"%s\"" +#~ msgstr "authentification Kerberos 5 échouée pour l'utilisateur « %s »" -#~ msgid "invalid status in external \"tinterval\" value" -#~ msgstr "statut invalide dans la valeur externe « tinterval »" +#~ msgid "Kerberos 5 not implemented on this server" +#~ msgstr "Kerberos 5 non implémenté sur ce serveur" -#~ msgid "cannot convert reltime \"invalid\" to interval" -#~ msgstr "ne peut pas convertir reltime « invalid » en interval" +#~ msgid "Kerberos initialization returned error %d" +#~ msgstr "l'initialisation de Kerberos a retourné l'erreur %d" -#~ msgid "ucnv_toUChars failed: %s" -#~ msgstr "échec de ucnv_toUChars : %s" +#~ msgid "Kerberos keytab resolving returned error %d" +#~ msgstr "la résolution keytab de Kerberos a renvoyé l'erreur %d" -#~ msgid "ucnv_fromUChars failed: %s" -#~ msgstr "échec de ucnv_fromUChars : %s" +#~ msgid "Kerberos recvauth returned error %d" +#~ msgstr "recvauth de Kerberos a renvoyé l'erreur %d" -#~ msgid "invalid regexp option: \"%c\"" -#~ msgstr "option invalide de l'expression rationnelle : « %c »" +#~ msgid "Kerberos sname_to_principal(\"%s\", \"%s\") returned error %d" +#~ msgstr "sname_to_principal(« %s », « %s ») de Kerberos a renvoyé l'erreur %d" -#~ msgid "regexp_split_to_table does not support the global option" -#~ msgstr "regexp_split_to_table ne supporte pas l'option globale" +#~ msgid "Kerberos unparse_name returned error %d" +#~ msgstr "unparse_name de Kerberos a renvoyé l'erreur %d" -#~ msgid "regexp_split_to_array does not support the global option" -#~ msgstr "regexp_split_to_array ne supporte pas l'option globale" +#~ msgid "LDAP search failed for filter \"%s\" on server \"%s\": user is not unique (%ld matches)" +#~ msgstr "" +#~ "échec de la recherche LDAP pour le filtre « %s » sur le serveur « %s » :\n" +#~ "utilisateur non unique (%ld correspondances)" -#~ msgid "date/time value \"%s\" is no longer supported" -#~ msgstr "la valeur date/time « %s » n'est plus supportée" +#~ msgid "Lines should have the format parameter = 'value'." +#~ msgstr "Les lignes devraient avoir le format paramètre = 'valeur'" -#~ msgid "invalid input syntax for numeric time zone: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le fuseau horaire numérique : « %s »" +#~ msgid "Lower bound of dimension array must be one." +#~ msgstr "La limite inférieure du tableau doit valoir un." -#~ msgid "could not open relation mapping file \"%s\": %m" -#~ msgstr "n'a pas pu ouvrir le fichier de correspondance des relations « %s » : %m" +#~ msgid "Make sure the root.crt file is present and readable." +#~ msgstr "Assurez-vous que le certificat racine (root.crt) est présent et lisible" -#~ msgid "could not read relation mapping file \"%s\": %m" -#~ msgstr "n'a pas pu lire le fichier de correspondance des relations « %s » : %m" +#~ msgid "Mar" +#~ msgstr "Mar" -#~ msgid "could not write to relation mapping file \"%s\": %m" -#~ msgstr "n'a pas pu écrire le fichier de correspondance des relations « %s » : %m" +#~ msgid "March" +#~ msgstr "Mars" -#~ msgid "could not fsync relation mapping file \"%s\": %m" -#~ msgstr "n'a pas pu synchroniser (fsync) le fichier de correspondance des relations « %s » : %m" +#~ msgid "May" +#~ msgstr "Mai" -#~ msgid "could not close relation mapping file \"%s\": %m" -#~ msgstr "n'a pas pu fermer le fichier de correspondance des relations « %s » : %m" +#~ msgid "Mon" +#~ msgstr "Lun" -#~ msgid "Create new tables with OIDs by default." -#~ msgstr "Crée des nouvelles tables avec des OID par défaut." +#~ msgid "Monday" +#~ msgstr "Lundi" -#~ msgid "parameter \"%s\" requires a numeric value" -#~ msgstr "le paramètre « %s » requiert une valeur numérique" +#~ msgid "Must be superuser to drop a foreign-data wrapper." +#~ msgstr "Doit être super-utilisateur pour supprimer un wrapper de données distantes." -#~ msgid "could not open BufFile \"%s\"" -#~ msgstr "n'a pas pu ouvrir le BufFile « %s »" +#~ msgid "NEW used in query that is not in a rule" +#~ msgstr "NEW utilisé dans une requête qui ne fait pas partie d'une règle" -#~ msgid "%s cannot be executed from a function or multi-command string" -#~ msgstr "" -#~ "%s ne peut pas être exécuté à partir d'une fonction ou d'une chaîne\n" -#~ "contenant plusieurs commandes" +#~ msgid "NULLIF does not support set arguments" +#~ msgstr "NULLIF ne supporte pas les arguments d'ensemble" -#~ msgid "no such savepoint" -#~ msgstr "aucun point de sauvegarde" +#~ msgid "No description available." +#~ msgstr "Aucune description disponible." -#~ msgid "could not open write-ahead log directory \"%s\": %m" -#~ msgstr "n'a pas pu ouvrir le répertoire des journaux de transactions « %s » : %m" +#~ msgid "No rows were found in \"%s\"." +#~ msgstr "Aucune ligne trouvée dans « %s »." -#~ msgid "The database cluster was initialized with XLOG_SEG_SIZE %d, but the server was compiled with XLOG_SEG_SIZE %d." -#~ msgstr "" -#~ "Le cluster de bases de données a été initialisé avec un XLOG_SEG_SIZE à %d\n" -#~ "alors que le serveur a été compilé avec un XLOG_SEG_SIZE à %d." +#~ msgid "Not enough memory for reassigning the prepared transaction's locks." +#~ msgstr "Pas assez de mémoire pour réaffecter les verrous des transactions préparées." -#~ msgid "using previous checkpoint record at %X/%X" -#~ msgstr "utilisation du précédent enregistrement d'un point de vérification à %X/%X" +#~ msgid "Not safe to send CSV data\n" +#~ msgstr "Envoi non sûr des données CSV\n" -#~ msgid "invalid secondary checkpoint link in control file" -#~ msgstr "lien du point de vérification secondaire invalide dans le fichier de contrôle" +#~ msgid "Nov" +#~ msgstr "Nov" -#~ msgid "invalid secondary checkpoint record" -#~ msgstr "enregistrement du point de vérification secondaire invalide" +#~ msgid "November" +#~ msgstr "Novembre" -#~ msgid "invalid resource manager ID in secondary checkpoint record" -#~ msgstr "identifiant du gestionnaire de ressource invalide dans l'enregistrement secondaire du point de vérification" +#~ msgid "OLD used in query that is not in a rule" +#~ msgstr "OLD utilisé dans une requête qui n'est pas une règle" -#~ msgid "invalid xl_info in secondary checkpoint record" -#~ msgstr "xl_info invalide dans l'enregistrement du point de vérification secondaire" +#~ msgid "ON CONFLICT clause is not supported with partitioned tables" +#~ msgstr "la clause ON CONFLICT n'est pas supporté avec les tables partitionnées" -#~ msgid "invalid length of secondary checkpoint record" -#~ msgstr "longueur invalide de l'enregistrement secondaire du point de vérification" +#~ msgid "Oct" +#~ msgstr "Oct" -#~ msgid "WAL file is from different database system: incorrect XLOG_SEG_SIZE in page header" -#~ msgstr "le fichier WAL provient d'un système différent : XLOG_SEG_SIZE invalide dans l'en-tête de page" +#~ msgid "October" +#~ msgstr "Octobre" -#~ msgid " in schema %s" -#~ msgstr " dans le schéma %s" +#~ msgid "Only superusers can use untrusted languages." +#~ msgstr "" +#~ "Seuls les super-utilisateurs peuvent utiliser des langages qui ne sont pas\n" +#~ "de confiance." -#~ msgid "%s in publication %s" -#~ msgstr "%s dans la publication %s" +#~ msgid "PID %d is among the slowest backends." +#~ msgstr "Le PID %d est parmi les processus serveur les plus lents." -#~ msgid "table \"%s\" has multiple constraints named \"%s\"" -#~ msgstr "la table « %s » a de nombreuses contraintes nommées « %s »" +#~ msgid "Partitioned tables cannot have BEFORE / FOR EACH ROW triggers." +#~ msgstr "Les tables partitionnées ne peuvent pas avoir de triggers BEFORE / FOR EACH ROW." -#~ msgid "domain %s has multiple constraints named \"%s\"" -#~ msgstr "le domaine %s a plusieurs contraintes nommées « %s »" +#~ msgid "Perhaps out of disk space?" +#~ msgstr "Peut-être manquez-vous de place disque ?" -#~ msgid "\"%s\" is already an attribute of type %s" -#~ msgstr "« %s » est déjà un attribut du type %s" +#~ msgid "Permissions should be u=rw (0600) or less." +#~ msgstr "Les droits devraient être u=rwx (0600) ou inférieures." -#~ msgid "function \"%s\" is an aggregate function" -#~ msgstr "la fonction « %s » est une fonction d'agrégat" +#~ msgid "Please report this to ." +#~ msgstr "Veuillez rapporter ceci à ." -#~ msgid "function \"%s\" is not an aggregate function" -#~ msgstr "la fonction « %s » n'est pas une fonction d'agrégat" +#~ msgid "Prints the execution plan to server log." +#~ msgstr "Affiche le plan d'exécution dans les journaux applicatifs du serveur." -#~ msgid "function \"%s\" is not a window function" -#~ msgstr "la fonction « %s » n'est pas une fonction window" +#~ msgid "Prints the parse tree after rewriting to server log." +#~ msgstr "Affiche l'arbre d'analyse après ré-écriture dans les journaux applicatifs du serveur." -#~ msgid "must be superuser to COPY to or from a file" -#~ msgstr "doit être super-utilisateur pour utiliser COPY à partir ou vers un fichier" +#~ msgid "Prints the parse tree to the server log." +#~ msgstr "Affiche l'arbre d'analyse dans les journaux applicatifs du serveur." -#~ msgid "cannot copy to foreign table \"%s\"" -#~ msgstr "ne peut pas copier vers la table distante « %s »" +#~ msgid "Proceeding with relation creation anyway." +#~ msgstr "Poursuit malgré tout la création de la relation." -#~ msgid "cannot route inserted tuples to a foreign table" -#~ msgstr "ne peut pas envoyer les lignes insérées dans une table distante" +#~ msgid "RANGE FOLLOWING is only supported with UNBOUNDED" +#~ msgstr "RANGE FOLLOWING est seulement supporté avec UNBOUNDED" -#~ msgid "unrecognized function attribute \"%s\" ignored" -#~ msgstr "l'attribut « %s » non reconnu de la fonction a été ignoré" +#~ msgid "RANGE PRECEDING is only supported with UNBOUNDED" +#~ msgstr "RANGE PRECEDING est seulement supporté avec UNBOUNDED" -#~ msgid "cast function must not be an aggregate function" -#~ msgstr "la fonction de conversion ne doit pas être une fonction d'agrégat" +#~ msgid "RETURNING cannot contain references to other relations" +#~ msgstr "RETURNING ne doit pas contenir de références à d'autres relations" -#~ msgid "transform function must not be an aggregate function" -#~ msgstr "la fonction de transformation ne doit pas être une fonction d'agrégat" +#~ msgid "Rebuild the index with REINDEX." +#~ msgstr "Reconstruisez l'index avec REINDEX." -#~ msgid "invalid procedure number %d, must be between 1 and %d" -#~ msgstr "numéro de procédure %d invalide, doit être compris entre 1 et %d" +#~ msgid "Runs the server silently." +#~ msgstr "Lance le serveur de manière silencieuse." -#~ msgid "procedure number %d for (%s,%s) appears more than once" -#~ msgstr "le numéro de procédure %d pour (%s, %s) apparaît plus d'une fois" +#~ msgid "S:May" +#~ msgstr "S:Mai" -#~ msgid "operator procedure must be specified" -#~ msgstr "la procédure de l'opérateur doit être spécifiée" +#~ msgid "SELECT FOR UPDATE/SHARE cannot be used with foreign table \"%s\"" +#~ msgstr "SELECT FOR UPDATE/SHARE ne peut pas être utilisé avec une table distante « %s »" -#~ msgid "column \"%s\" appears more than once in partition key" -#~ msgstr "la colonne « %s » apparaît plus d'une fois dans la clé de partitionnement" +#~ msgid "SELECT FOR UPDATE/SHARE is not allowed in subqueries" +#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé dans les sous-requêtes" -#~ msgid "Close open transactions soon to avoid wraparound problems." -#~ msgstr "" -#~ "Fermez les transactions ouvertes rapidement pour éviter des problèmes de\n" -#~ "réinitialisation." +#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with GROUP BY clause" +#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec la clause GROUP BY" -#~ msgid "combine function for aggregate %u must be declared as STRICT" -#~ msgstr "la fonction d'unification pour l'aggrégat %u doit être déclarée comme STRICT" +#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with HAVING clause" +#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec la clause HAVING" -#~ msgid "RANGE PRECEDING is only supported with UNBOUNDED" -#~ msgstr "RANGE PRECEDING est seulement supporté avec UNBOUNDED" +#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with aggregate functions" +#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec les fonctions d'agrégats" -#~ msgid "RANGE FOLLOWING is only supported with UNBOUNDED" -#~ msgstr "RANGE FOLLOWING est seulement supporté avec UNBOUNDED" +#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with window functions" +#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec les fonctions window" -#~ msgid "client requires SCRAM channel binding, but it is not supported" -#~ msgstr "le client requiert le lien de canal SCRAM mais ceci n'est pas supporté" +#~ msgid "SELECT FOR UPDATE/SHARE is not supported for inheritance queries" +#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas supporté pour les requêtes d'héritage" -#~ msgid "must be superuser to use server-side lo_import()" -#~ msgstr "doit être super-utilisateur pour utiliser lo_import() du côté serveur" +#~ msgid "SELECT FOR UPDATE/SHARE is not supported within a query with multiple result relations" +#~ msgstr "" +#~ "SELECT FOR UPDATE/SHARE n'est pas supporté dans une requête avec plusieurs\n" +#~ "relations" -#~ msgid "Anyone can use the client-side lo_import() provided by libpq." -#~ msgstr "Tout le monde peut utiliser lo_import(), fourni par libpq, du côté client." +#~ msgid "SSL certificate revocation list file \"%s\" ignored" +#~ msgstr "liste de révocation des certificats SSL « %s » ignorée" -#~ msgid "must be superuser to use server-side lo_export()" -#~ msgstr "doit être super-utilisateur pour utiliser lo_export() du côté serveur" +#~ msgid "SSL certificate revocation list file \"%s\" not found, skipping: %s" +#~ msgstr "liste de révocation des certificats SSL « %s » introuvable, continue : %s" -#~ msgid "Anyone can use the client-side lo_export() provided by libpq." -#~ msgstr "Tout le monde peut utiliser lo_export(), fournie par libpq, du côté client." +#~ msgid "SSL failed to renegotiate connection before limit expired" +#~ msgstr "SSL a échoué à renégotier la connexion avant l'expiration du délai" -#~ msgid "ON CONFLICT clause is not supported with partitioned tables" -#~ msgstr "la clause ON CONFLICT n'est pas supporté avec les tables partitionnées" +#~ msgid "SSL failure during renegotiation start" +#~ msgstr "échec SSL au début de la re-négotiation" -#~ msgid "foreign key constraints are not supported on partitioned tables" -#~ msgstr "les clés étrangères ne sont pas supportées sur les tables partitionnées" +#~ msgid "SSL handshake failure on renegotiation, retrying" +#~ msgstr "échec du handshake SSL lors de la renégotiation, nouvelle tentative" -#~ msgid "could not open archive status directory \"%s\": %m" -#~ msgstr "n'a pas pu accéder au répertoire du statut des archives « %s » : %m" +#~ msgid "SSL library does not support certificate revocation lists." +#~ msgstr "La bibliothèque SSL ne supporte pas les listes de révocation des certificats." -#~ msgid "%s: max_wal_senders must be less than max_connections\n" -#~ msgstr "%s : max_wal_senders doit être inférieur à max_connections\n" +#~ msgid "SSL renegotiation failure" +#~ msgstr "échec lors de la re-négotiation SSL" -#~ msgid "data directory \"%s\" has group or world access" -#~ msgstr "" -#~ "le répertoire des données « %s » est accessible par le groupe et/ou par les\n" -#~ "autres" +#~ msgid "SSPI error %x" +#~ msgstr "erreur SSPI : %x" -#~ msgid "worker process" -#~ msgstr "processus de travail" +#~ msgid "Sat" +#~ msgstr "Sam" -#~ msgid "built-in type %u not found" -#~ msgstr "type interne %u non trouvé" +#~ msgid "Saturday" +#~ msgstr "Samedi" -#~ msgid "This can be caused by having a publisher with a higher PostgreSQL major version than the subscriber." -#~ msgstr "Ceci peut avoir pour cause un publieur ayant une version majeure de PostgreSQL supérieure à l'abonné" +#~ msgid "Security-barrier views are not automatically updatable." +#~ msgstr "Les vues avec barrière de sécurité ne sont pas automatiquement disponibles en écriture." -#~ msgid "data type \"%s.%s\" required for logical replication does not exist" -#~ msgstr "le type de données « %s/%s » requis par la réplication logique n'existe pas" +#~ msgid "See server log for details." +#~ msgstr "Voir les journaux applicatifs du serveur pour plus de détails." -#~ msgid "logical replication could not find row for delete in replication target relation \"%s\"" -#~ msgstr "la réplication logique n'a pas pu trouver la ligne à supprimer dans la relation cible de réplication %s" +#~ msgid "Sep" +#~ msgstr "Sep" -#~ msgid "memory for serializable conflict tracking is nearly exhausted" -#~ msgstr "la mémoire pour tracer les conflits sérialisables est pratiquement pleine" +#~ msgid "September" +#~ msgstr "Septembre" -#~ msgid "There might be an idle transaction or a forgotten prepared transaction causing this." -#~ msgstr "" -#~ "Il pourait y avoir une transaction en attente ou une transaction préparée\n" -#~ "oubliée causant cela." +#~ msgid "Server has FLOAT4PASSBYVAL = %s, library has %s." +#~ msgstr "Le serveur a FLOAT4PASSBYVAL = %s, la bibliothèque a %s." -#~ msgid "could not open tablespace directory \"%s\": %m" -#~ msgstr "n'a pas pu ouvrir le répertoire du tablespace « %s » : %m" +#~ msgid "Set dynamic_shared_memory_type to a value other than \"none\"." +#~ msgstr "Configurez dynamic_shared_memory_type à une valeur autre que « none »." -#~ msgid "must be superuser to get file information" -#~ msgstr "doit être super-utilisateur pour obtenir des informations sur le fichier" +#~ msgid "Set the amount of traffic to send and receive before renegotiating the encryption keys." +#~ msgstr "" +#~ "Configure la quantité de trafic à envoyer et recevoir avant la renégotiation\n" +#~ "des clés d'enchiffrement." -#~ msgid "must be superuser to get directory listings" -#~ msgstr "doit être super-utilisateur pour obtenir le contenu du répertoire" +#~ msgid "Sets immediate fsync at commit." +#~ msgstr "Configure un fsync immédiat lors du commit." -#~ msgid "Sets the maximum number of tuples to be sorted using replacement selection." -#~ msgstr "Configure le nombre maximum de lignes à trier en utilisant la sélection de remplacement." - -#~ msgid "When more tuples than this are present, quicksort will be used." -#~ msgstr "Quand plus de lignes que ça sont présentes, quicksort sera utilisé." - -#~ msgid "cannot create range partition with empty range" -#~ msgstr "ne peut pas créer une partition par intervalle avec un intervalle vide" - -#~ msgid "could not get keyword values for locale \"%s\": %s" -#~ msgstr "n'a pas pu obtenir les valeurs des mots clés pour la locale « %s » : %s" - -#~ msgid "invalid publish list" -#~ msgstr "liste de publication invalide" - -#~ msgid "column \"%s\" referenced in statistics does not exist" -#~ msgstr "la colonne « %s » référencée dans les statistiques n'existe pas" - -#~ msgid "added subscription for table %s.%s" -#~ msgstr "souscription ajoutée pour la table %s.%s" - -#~ msgid "removed subscription for table %s.%s" -#~ msgstr "a supprimé une souscription pour la table %s.%s" - -#~ msgid "User \"%s\" has an empty password." -#~ msgstr "L'utilisateur « %s » a un mot de passe vide." - -#~ msgid "not connected to database" -#~ msgstr "non connecté à une base de données" - -#~ msgid "invalid input syntax for %s: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type %s : « %s »" - -#~ msgid "transaction ID " -#~ msgstr "ID de transaction " - -#~ msgid "in progress" -#~ msgstr "en cours" - -#~ msgid "committed" -#~ msgstr "validé" +#~ msgid "Sets realm to match Kerberos and GSSAPI users against." +#~ msgstr "" +#~ "Indique le royaume pour l'authentification des utilisateurs via Kerberos et\n" +#~ "GSSAPI." -#~ msgid "aborted" -#~ msgstr "annulé" +#~ msgid "Sets the hostname of the Kerberos server." +#~ msgstr "Initalise le nom d'hôte du serveur Kerberos." -#~ msgid "Lower bound of dimension array must be one." -#~ msgstr "La limite inférieure du tableau doit valoir un." +#~ msgid "Sets the language used in DO statement if LANGUAGE is not specified." +#~ msgstr "" +#~ "Configure le langage utilisé dans une instruction DO si la clause LANGUAGE n'est\n" +#~ "pas spécifiée." -#~ msgid "huge TLB pages not supported on this platform" -#~ msgstr "Huge Pages TLB non supporté sur cette plateforme." +#~ msgid "Sets the list of known custom variable classes." +#~ msgstr "Initialise la liste des classes variables personnalisées connues." -#~ msgid "Only superusers can use untrusted languages." +#~ msgid "Sets the maximum distance in log segments between automatic WAL checkpoints." #~ msgstr "" -#~ "Seuls les super-utilisateurs peuvent utiliser des langages qui ne sont pas\n" -#~ "de confiance." +#~ "Initialise la distance maximale dans les journaux de transaction entre chaque\n" +#~ "point de vérification (checkpoints) des journaux." -#~ msgid "function returning set of rows cannot return null value" +#~ msgid "Sets the maximum number of tables and indexes for which free space is tracked." #~ msgstr "" -#~ "la fonction renvoyant un ensemble de lignes ne peut pas renvoyer une valeur\n" -#~ "NULL" - -#~ msgid "system columns cannot be used in an ON CONFLICT clause" -#~ msgstr "les colonnes systèmes ne peuvent pas être utilisées dans une clause ON CONFLICT" +#~ "Initialise le nombre maximum de tables et index pour lesquels l'espace libre\n" +#~ "est tracé." -#~ msgid "role \"%s\" is reserved" -#~ msgstr "le rôle « %s » est réservé" +#~ msgid "Sets the maximum number of tuples to be sorted using replacement selection." +#~ msgstr "Configure le nombre maximum de lignes à trier en utilisant la sélection de remplacement." -#~ msgid "time zone abbreviation \"%s\" is not used in time zone \"%s\"" -#~ msgstr "l'abréviation « %s » du fuseau horaire n'est pas utilisée dans le fuseau horaire « %s »" +#~ msgid "Sets the name of the Kerberos service." +#~ msgstr "Initialise le nom du service Kerberos." -#~ msgid "invalid length in external \"numeric\" value" -#~ msgstr "longueur invalide dans la valeur externe « numeric »" +#~ msgid "Sets the regular expression \"flavor\"." +#~ msgstr "Initialise l'expression rationnelle « flavor »." -#~ msgid "too few arguments for format" -#~ msgstr "trop peu d'arguments pour le format" +#~ msgid "Specify a USING expression to perform the conversion." +#~ msgstr "Donnez une expression USING pour réaliser la conversion." -#~ msgid "mapped win32 error code %lu to %d" -#~ msgstr "correspondance du code d'erreur win32 %lu en %d" +#~ msgid "Specify a relation name as well as a rule name." +#~ msgstr "Spécifier un nom de relation ainsi qu'un nom de règle." -#~ msgid "unrecognized win32 error code: %lu" -#~ msgstr "code d'erreur win32 non reconnu : %lu" +#~ msgid "Sun" +#~ msgstr "Dim" -#~ msgid "invalid value for recovery parameter \"recovery_target\"" -#~ msgstr "valeur invalide pour le paramètre de restauration « recovery_target »" +#~ msgid "Sunday" +#~ msgstr "Dimanche" -#~ msgid "redo record is at %X/%X; shutdown %s" -#~ msgstr "l'enregistrement à ré-exécuter se trouve à %X/%X ; arrêt %s" +#~ msgid "Table contains duplicated values." +#~ msgstr "La table contient des valeurs dupliquées." -#~ msgid "next transaction ID: %u/%u; next OID: %u" -#~ msgstr "prochain identifiant de transaction : %u/%u ; prochain OID : %u" +#~ msgid "The arguments of jsonb_build_object() must consist of alternating keys and values." +#~ msgstr "Les arguments de jsonb_build_object() doivent consister en des clés et valeurs alternées" -#~ msgid "next MultiXactId: %u; next MultiXactOffset: %u" -#~ msgstr "prochain MultiXactId : %u ; prochain MultiXactOffset : %u" +#~ msgid "The cast requires a non-immutable conversion." +#~ msgstr "Cette conversion requiert une conversion non immutable." -#~ msgid "oldest unfrozen transaction ID: %u, in database %u" +#~ msgid "The database cluster was initialized with HAVE_INT64_TIMESTAMP but the server was compiled without HAVE_INT64_TIMESTAMP." #~ msgstr "" -#~ "identifiant de transaction non gelé le plus ancien : %u, dans la base de\n" -#~ "données %u" - -#~ msgid "invalid xlog switch record at %X/%X" -#~ msgstr "enregistrement de basculement du journal de transaction invalide à %X/%X" - -#~ msgid "record with zero length at %X/%X" -#~ msgstr "enregistrement de longueur nulle à %X/%X" - -#~ msgid "invalid backup block size in record at %X/%X" -#~ msgstr "taille du bloc de sauvegarde invalide dans l'enregistrement à %X/%X" - -#~ msgid "incorrect hole size in record at %X/%X" -#~ msgstr "taille du trou incorrect à l'enregistrement %X/%X" - -#~ msgid "incorrect total length in record at %X/%X" -#~ msgstr "longueur totale incorrecte à l'enregistrement %X/%X" +#~ "Le cluster de bases de données a été initialisé avec HAVE_INT64_TIMESTAMP\n" +#~ "alors que le serveur a été compilé sans." -#~ msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s." +#~ msgid "The database cluster was initialized with LOCALE_NAME_BUFLEN %d, but the server was compiled with LOCALE_NAME_BUFLEN %d." #~ msgstr "" -#~ "L'identifiant du journal de transactions du système de base de données est %s,\n" -#~ "l'identifiant pg_control du système de base de données dans pg_control est %s." +#~ "Le cluster de bases de données a été initialisé avec un LOCALE_NAME_BUFLEN\n" +#~ "à %d alors que le serveur a été compilé avec un LOCALE_NAME_BUFLEN à %d." -#~ msgid "WAL file is from different database system: Incorrect XLOG_SEG_SIZE in page header." +#~ msgid "The database cluster was initialized with USE_FLOAT4_BYVAL but the server was compiled without USE_FLOAT4_BYVAL." #~ msgstr "" -#~ "le journal de transactions provient d'un système de bases de données différent :\n" -#~ "XLOG_SEG_SIZE incorrect dans l'en-tête de page." +#~ "Le cluster de base de données a été initialisé avec USE_FLOAT4_BYVAL\n" +#~ "alors que le serveur a été compilé sans USE_FLOAT4_BYVAL." -#~ msgid "WAL file is from different database system: Incorrect XLOG_BLCKSZ in page header." +#~ msgid "The database cluster was initialized with XLOG_SEG_SIZE %d, but the server was compiled with XLOG_SEG_SIZE %d." #~ msgstr "" -#~ "le journal de transactions provient d'un système de bases de données différent :\n" -#~ "XLOG_BLCKSZ incorrect dans l'en-tête de page." - -#~ msgid "=> is deprecated as an operator name" -#~ msgstr "=> est un nom d'opérateur obsolète" - -#~ msgid "This name may be disallowed altogether in future versions of PostgreSQL." -#~ msgstr "Ce nom pourrait être interdit dans les prochaines versions de PostgreSQL." - -#~ msgid "\"%s\" is not a table, materialized view, composite type, or foreign table" -#~ msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un type composite, ni une table distante" - -#~ msgid "Specify a USING expression to perform the conversion." -#~ msgstr "Donnez une expression USING pour réaliser la conversion." +#~ "Le cluster de bases de données a été initialisé avec un XLOG_SEG_SIZE à %d\n" +#~ "alors que le serveur a été compilé avec un XLOG_SEG_SIZE à %d." -#~ msgid "" -#~ "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" -#~ "pages: %d removed, %d remain\n" -#~ "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable\n" -#~ "buffer usage: %d hits, %d misses, %d dirtied\n" -#~ "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" -#~ "system usage: %s" -#~ msgstr "" -#~ "VACUUM automatique de la table « %s.%s.%s » : parcours d'index : %d\n" -#~ "pages : %d supprimées, %d restantes\n" -#~ "lignes : %.0f supprimées, %.0f restantes, %.0f sont mortes mais non supprimables\n" -#~ "utilisation des tampons : %d lus dans le cache, %d lus hors du cache, %d modifiés\n" -#~ "taux moyen de lecture : %.3f Mo/s, taux moyen d'écriture : %.3f Mo/s\n" -#~ "utilisation système : %s" +#~ msgid "The database cluster was initialized without HAVE_INT64_TIMESTAMP but the server was compiled with HAVE_INT64_TIMESTAMP." +#~ msgstr "Le cluster de bases de données a été initialisé sans HAVE_INT64_TIMESTAMPalors que le serveur a été compilé avec." -#~ msgid "" -#~ "%.0f dead row versions cannot be removed yet.\n" -#~ "There were %.0f unused item pointers.\n" -#~ "%u pages are entirely empty.\n" -#~ "%s." +#~ msgid "The database cluster was initialized without USE_FLOAT4_BYVAL but the server was compiled with USE_FLOAT4_BYVAL." #~ msgstr "" -#~ "%.0f versions de lignes mortes ne peuvent pas encore être supprimées.\n" -#~ "Il y avait %.0f pointeurs d'éléments inutilisés.\n" -#~ "%u pages sont entièrement vides.\n" -#~ "%s." - -#~ msgid "interval precision specified twice" -#~ msgstr "précision d'intervalle spécifiée deux fois" - -#~ msgid "received password packet" -#~ msgstr "paquet du mot de passe reçu" - -#~ msgid "SSL failure during renegotiation start" -#~ msgstr "échec SSL au début de la re-négotiation" - -#~ msgid "SSL handshake failure on renegotiation, retrying" -#~ msgstr "échec du handshake SSL lors de la renégotiation, nouvelle tentative" - -#~ msgid "could not complete SSL handshake on renegotiation, too many failures" -#~ msgstr "n'a pas pu terminer la poignée de main de renégotiation, trop d'échecs" +#~ "Le cluster de base de données a été initialisé sans USE_FLOAT4_BYVAL\n" +#~ "alors que le serveur a été compilé avec USE_FLOAT4_BYVAL." -#~ msgid "SSL failed to renegotiate connection before limit expired" -#~ msgstr "SSL a échoué à renégotier la connexion avant l'expiration du délai" +#~ msgid "The supported languages are listed in the pg_pltemplate system catalog." +#~ msgstr "Les langages supportés sont listés dans le catalogue système pg_pltemplate." -#~ msgid "could not set socket to blocking mode: %m" -#~ msgstr "n'a pas pu activer le mode bloquant pour la socket : %m" +#~ msgid "There might be an idle transaction or a forgotten prepared transaction causing this." +#~ msgstr "" +#~ "Il pourait y avoir une transaction en attente ou une transaction préparée\n" +#~ "oubliée causant cela." -#~ msgid "%s: setsysinfo failed: %s\n" -#~ msgstr "%s : setsysinfo a échoué : %s\n" +#~ msgid "This can be caused by having a publisher with a higher PostgreSQL major version than the subscriber." +#~ msgstr "Ceci peut avoir pour cause un publieur ayant une version majeure de PostgreSQL supérieure à l'abonné" -#~ msgid " -A 1|0 enable/disable run-time assert checking\n" +#~ msgid "This can be set to advanced, extended, or basic." #~ msgstr "" -#~ " -A 1|0 active/désactive la vérification des limites (assert) à\n" -#~ " l'exécution\n" - -#~ msgid "subquery must return a column" -#~ msgstr "la sous-requête doit renvoyer une colonne" +#~ "Ceci peut être initialisé avec advanced (avancé), extended (étendu) ou\n" +#~ "basic (basique)." -#~ msgid "Consider increasing the configuration parameter \"checkpoint_segments\"." -#~ msgstr "Considèrez l'augmentation du paramètre « checkpoint_segments »." +#~ msgid "This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by \"client_encoding\"." +#~ msgstr "" +#~ "Cette erreur peut aussi survenir si la séquence d'octets ne correspond pas\n" +#~ "au jeu de caractères attendu par le serveur, le jeu étant contrôlé par\n" +#~ "« client_encoding »." -#~ msgid "WAL archival (archive_mode=on) requires wal_level \"archive\", \"hot_standby\", or \"logical\"" +#~ msgid "" +#~ "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently %lu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.\n" +#~ "If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.\n" +#~ "The PostgreSQL documentation contains more information about shared memory configuration." #~ msgstr "" -#~ "l'archivage des journaux de transactions (archive_mode=on) nécessite que\n" -#~ "le paramètre wal_level soit initialisé avec « archive », « hot_standby » ou « logical »" +#~ "Cette erreur signifie habituellement que la demande de PostgreSQL pour un\n" +#~ "segment de mémoire partagée a dépassé le paramètre SHMMAX de votre noyau.\n" +#~ "Vous pouvez soit réduire la taille de la requête soit reconfigurer le noyau\n" +#~ "avec un SHMMAX plus important. Pour réduire la taille de la requête\n" +#~ "(actuellement %lu octets), réduisez l'utilisation de la mémoire partagée par PostgreSQL,par exemple en réduisant shared_buffers ou max_connections\n" +#~ "Si la taille de la requête est déjà petite, il est possible qu'elle soit\n" +#~ "moindre que le paramètre SHMMIN de votre noyau, auquel cas, augmentez la\n" +#~ "taille de la requête ou reconfigurez SHMMIN.\n" +#~ "La documentation de PostgreSQL contient plus d'informations sur la\n" +#~ "configuration de la mémoire partagée." -#~ msgid "invalid value for parameter \"replication\"" -#~ msgstr "valeur invalide pour le paramètre « replication »" +#~ msgid "This is a debugging aid." +#~ msgstr "C'est une aide de débogage." -#~ msgid "postmaster became multithreaded" -#~ msgstr "le postmaster est devenu multithreadé" +#~ msgid "This name may be disallowed altogether in future versions of PostgreSQL." +#~ msgstr "Ce nom pourrait être interdit dans les prochaines versions de PostgreSQL." -#~ msgid "archive member \"%s\" too large for tar format" -#~ msgstr "membre « %s » de l'archive trop volumineux pour le format tar" +#~ msgid "This parameter cannot be changed after server start." +#~ msgstr "Ce paramètre ne peut pas être modifié après le lancement du serveur" -#~ msgid "could not determine input data types" -#~ msgstr "n'a pas pu déterminer les types de données en entrée" +#~ msgid "This parameter doesn't do anything." +#~ msgstr "Ce paramètre ne fait rien." -#~ msgid "neither input type is an array" -#~ msgstr "aucun type de données n'est un tableau" +#~ msgid "Thu" +#~ msgstr "Jeu" -#~ msgid "unexpected \"=\"" -#~ msgstr "« = » inattendu" +#~ msgid "Thursday" +#~ msgstr "Jeudi" -#~ msgid "invalid symbol" -#~ msgstr "symbole invalide" +#~ msgid "Transaction ID %u finished; no more running transactions." +#~ msgstr "Identifiant de transaction %u terminé ; plus de transactions en cours." -#~ msgid "must be superuser or have the same role to cancel queries running in other server processes" -#~ msgstr "" -#~ "doit être super-utilisateur ou avoir le même rôle pour annuler des requêtes\n" -#~ "exécutées dans les autres processus serveur" +#~ msgid "Try putting the literal value in single quotes." +#~ msgstr "Placer la valeur littérale en guillemets simples." -#~ msgid "must be superuser or have the same role to terminate other server processes" -#~ msgstr "" -#~ "doit être super-utilisateur ou avoir le même rôle pour fermer les connexions\n" -#~ "exécutées dans les autres processus serveur" +#~ msgid "Tue" +#~ msgstr "Mar" -#~ msgid "cannot accept a value of type pg_node_tree" -#~ msgstr "ne peut pas accepter une valeur de type pg_node_tree" +#~ msgid "Tuesday" +#~ msgstr "Mardi" #~ msgid "Turns on various assertion checks." #~ msgstr "Active les différentes vérifications des assertions." -#~ msgid "This is a debugging aid." -#~ msgstr "C'est une aide de débogage." - -#~ msgid "This parameter doesn't do anything." -#~ msgstr "Ce paramètre ne fait rien." +#~ msgid "UTF-16 to UTF-8 translation failed: %lu" +#~ msgstr "échec de la conversion d'UTF16 vers UTF8 : %lu" -#~ msgid "It's just here so that we won't choke on SET AUTOCOMMIT TO ON from 7.3-vintage clients." +#~ msgid "Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8" #~ msgstr "" -#~ "C'est ici uniquement pour ne pas avoir de problèmes avec le SET AUTOCOMMIT\n" -#~ "TO ON des clients 7.3." +#~ "Les valeurs d'échappement unicode ne peuvent pas être utilisées pour les\n" +#~ "valeurs de point de code au-dessus de 007F quand l'encodage serveur n'est\n" +#~ "pas UTF8" -#~ msgid "Sets the maximum distance in log segments between automatic WAL checkpoints." +#~ msgid "Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8." #~ msgstr "" -#~ "Initialise la distance maximale dans les journaux de transaction entre chaque\n" -#~ "point de vérification (checkpoints) des journaux." +#~ "Les valeurs d'échappement unicode ne peuvent pas être utilisées pour les valeurs de point de code\n" +#~ "au-dessus de 007F quand l'encodage serveur n'est pas UTF8." -#~ msgid "Set the amount of traffic to send and receive before renegotiating the encryption keys." -#~ msgstr "" -#~ "Configure la quantité de trafic à envoyer et recevoir avant la renégotiation\n" -#~ "des clés d'enchiffrement." +#~ msgid "Use ALTER AGGREGATE to change owner of aggregate functions." +#~ msgstr "Utiliser ALTER AGGREGATE pour changer le propriétaire des fonctions d'agrégat." -#~ msgid "assertion checking is not supported by this build" -#~ msgstr "la vérification de l'assertion n'a pas été intégrée lors de la compilation" +#~ msgid "Use ALTER AGGREGATE to rename aggregate functions." +#~ msgstr "Utiliser ALTER AGGREGATE pour renommer les fonctions d'agrégat." -#~ msgid "%s \"%s\": return code %d" -#~ msgstr "%s « %s » : code de retour %d" +#~ msgid "Use ALTER FOREIGN TABLE instead." +#~ msgstr "Utilisez ALTER FOREIGN TABLE à la place." -#~ msgid "could not parse transaction log location \"%s\"" -#~ msgstr "n'a pas pu analyser l'emplacement du journal des transactions « %s »" +#~ msgid "Use SELECT ... UNION ALL ... instead." +#~ msgstr "Utilisez à la place SELECT ... UNION ALL ..." -#~ msgid "invalid input syntax for transaction log location: \"%s\"" -#~ msgstr "syntaxe invalide en entrée pour l'emplacement du journal de transactions : « %s »" +#~ msgid "User \"%s\" has an empty password." +#~ msgstr "L'utilisateur « %s » a un mot de passe vide." -#~ msgid "trigger \"%s\" for table \"%s\" does not exist, skipping" -#~ msgstr "le trigger « %s » pour la table « %s » n'existe pas, poursuite du traitement" +#~ msgid "Uses the indented output format for EXPLAIN VERBOSE." +#~ msgstr "Utilise le format de sortie indenté pour EXPLAIN VERBOSE." -#~ msgid "Kerberos 5 authentication failed for user \"%s\"" -#~ msgstr "authentification Kerberos 5 échouée pour l'utilisateur « %s »" +#~ msgid "VALUES must not contain OLD or NEW references" +#~ msgstr "VALUES ne doit pas contenir des références à OLD et NEW" -#~ msgid "Kerberos initialization returned error %d" -#~ msgstr "l'initialisation de Kerberos a retourné l'erreur %d" +#~ msgid "VALUES must not contain table references" +#~ msgstr "VALUES ne doit pas contenir de références de table" -#~ msgid "Kerberos keytab resolving returned error %d" -#~ msgstr "la résolution keytab de Kerberos a renvoyé l'erreur %d" +#~ msgid "Valid values are \"pause\", \"promote\", and \"shutdown\"." +#~ msgstr "Les valeurs valides sont « pause », « promote » et « shutdown »." -#~ msgid "Kerberos sname_to_principal(\"%s\", \"%s\") returned error %d" -#~ msgstr "sname_to_principal(« %s », « %s ») de Kerberos a renvoyé l'erreur %d" +#~ msgid "Valid values are '[]', '[)', '(]', and '()'." +#~ msgstr "Les valeurs valides sont « [] », « [) », « (] » et « () »." -#~ msgid "Kerberos recvauth returned error %d" -#~ msgstr "recvauth de Kerberos a renvoyé l'erreur %d" +#~ msgid "Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, and PANIC. Each level includes all the levels that follow it." +#~ msgstr "" +#~ "Les valeurs valides sont DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO,\n" +#~ "NOTICE, WARNING, ERROR, LOG, FATAL et PANIC. Chaque niveau incut tous les\n" +#~ "niveaux qui le suit." -#~ msgid "Kerberos unparse_name returned error %d" -#~ msgstr "unparse_name de Kerberos a renvoyé l'erreur %d" +#~ msgid "Valid values are DOCUMENT and CONTENT." +#~ msgstr "Les valeurs valides sont DOCUMENT et CONTENT." -#~ msgid "local user with ID %d does not exist" -#~ msgstr "l'utilisateur local dont l'identifiant est %d n'existe pas" +#~ msgid "Valid values are LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7." +#~ msgstr "" +#~ "Les valeurs valides sont LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5,\n" +#~ "LOCAL6, LOCAL7." -#~ msgid "SSL renegotiation failure" -#~ msgstr "échec lors de la re-négotiation SSL" +#~ msgid "Valid values are ON, OFF, and SAFE_ENCODING." +#~ msgstr "Les valeurs valides sont ON, OFF et SAFE_ENCODING." -#~ msgid "krb5 authentication is not supported on local sockets" -#~ msgstr "" -#~ "l'authentification krb5 n'est pas supportée sur les connexions locales par\n" -#~ "socket" +#~ msgid "Views that return the same column more than once are not automatically updatable." +#~ msgstr "Les vues qui renvoient la même colonne plus d'une fois ne sont pas automatiquement disponibles en écriture." -#~ msgid "%s: invalid effective UID: %d\n" -#~ msgstr "%s : UID effectif invalide : %d\n" +#~ msgid "WAL archival (archive_mode=on) requires wal_level \"archive\", \"hot_standby\", or \"logical\"" +#~ msgstr "" +#~ "l'archivage des journaux de transactions (archive_mode=on) nécessite que\n" +#~ "le paramètre wal_level soit initialisé avec « archive », « hot_standby » ou « logical »" -#~ msgid "%s: could not determine user name (GetUserName failed)\n" -#~ msgstr "%s : n'a pas pu déterminer le nom de l'utilisateur (GetUserName a échoué)\n" +#~ msgid "WAL archiving is not active" +#~ msgstr "l'archivage des journaux de transactions n'est pas actif" -#~ msgid "Expected 1 tuple with 3 fields, got %d tuples with %d fields." -#~ msgstr "Attendait 1 ligne avec 3 champs, a obtenu %d lignes avec %d champs." +#~ msgid "WAL file SYSID is %s, pg_control SYSID is %s" +#~ msgstr "le SYSID du journal de transactions WAL est %s, celui de pg_control est %s" -#~ msgid "Security-barrier views are not automatically updatable." -#~ msgstr "Les vues avec barrière de sécurité ne sont pas automatiquement disponibles en écriture." +#~ msgid "WAL file is from different database system: Incorrect XLOG_BLCKSZ in page header." +#~ msgstr "" +#~ "le journal de transactions provient d'un système de bases de données différent :\n" +#~ "XLOG_BLCKSZ incorrect dans l'en-tête de page." -#~ msgid "Views that return the same column more than once are not automatically updatable." -#~ msgstr "Les vues qui renvoient la même colonne plus d'une fois ne sont pas automatiquement disponibles en écriture." +#~ msgid "WAL file is from different database system: Incorrect XLOG_SEG_SIZE in page header." +#~ msgstr "" +#~ "le journal de transactions provient d'un système de bases de données différent :\n" +#~ "XLOG_SEG_SIZE incorrect dans l'en-tête de page." -#~ msgid "wrong affix file format for flag" -#~ msgstr "mauvais format de fichier affixe pour le drapeau" +#~ msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s" +#~ msgstr "le fichier WAL provient d'une instance différente : l'identifiant système de la base dans le fichier WAL est %s, alors que l'identifiant système de l'instance dans pg_control est %s" -#~ msgid "missing assignment operator" -#~ msgstr "opérateur d'affectation manquant" +#~ msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s." +#~ msgstr "" +#~ "L'identifiant du journal de transactions du système de base de données est %s,\n" +#~ "l'identifiant pg_control du système de base de données dans pg_control est %s." -#~ msgid "cannot call json_object_keys on an array" -#~ msgstr "ne peut pas appeler json_object_keys sur un tableau" +#~ msgid "WAL file is from different database system: incorrect XLOG_SEG_SIZE in page header" +#~ msgstr "le fichier WAL provient d'un système différent : XLOG_SEG_SIZE invalide dans l'en-tête de page" -#~ msgid "cannot extract array element from a non-array" -#~ msgstr "ne peut pas extraire un élément du tableau à partir d'un objet qui n'est pas un tableau" +#~ msgid "WAL sender sleep time between WAL replications." +#~ msgstr "" +#~ "Temps d'endormissement du processus d'envoi des journaux de transactions entre\n" +#~ "les réplications des journaux de transactions." -#~ msgid "cannot extract field from a non-object" -#~ msgstr "ne peut pas extraire le chemin à partir d'un non-objet" +#~ msgid "WAL writer sleep time between WAL flushes." +#~ msgstr "" +#~ "Temps d'endormissement du processus d'écriture pendant le vidage des\n" +#~ "journaux de transactions en millisecondes." -#~ msgid "cannot call json_array_elements on a non-array" -#~ msgstr "ne peut pas appeler json_array_elements sur un objet qui n'est pas un tableau" +#~ msgid "" +#~ "WARNING: Calculated CRC checksum does not match value stored in file.\n" +#~ "Either the file is corrupt, or it has a different layout than this program\n" +#~ "is expecting. The results below are untrustworthy.\n" +#~ "\n" +#~ msgstr "" +#~ "ATTENTION : Les sommes de contrôle (CRC) calculées ne correspondent pas aux\n" +#~ "valeurs stockées dans le fichier.\n" +#~ "Soit le fichier est corrompu, soit son organisation diffère de celle\n" +#~ "attendue par le programme.\n" +#~ "Les résultats ci-dessous ne sont pas dignes de confiance.\n" +#~ "\n" -#~ msgid "cannot call json_array_elements on a scalar" -#~ msgstr "ne peut pas appeler json_array_elements sur un scalaire" +#~ msgid "" +#~ "WARNING: possible byte ordering mismatch\n" +#~ "The byte ordering used to store the pg_control file might not match the one\n" +#~ "used by this program. In that case the results below would be incorrect, and\n" +#~ "the PostgreSQL installation would be incompatible with this data directory.\n" +#~ msgstr "" +#~ "ATTENTION : possible incohérence dans l'ordre des octets\n" +#~ "L'ordre des octets utilisé pour enregistrer le fichier pg_control peut ne\n" +#~ "pas correspondre à celui utilisé par ce programme. Dans ce cas, les\n" +#~ "résultats ci-dessous sont incorrects, et l'installation PostgreSQL\n" +#~ "incompatible avec ce répertoire des données.\n" -#~ msgid "first argument of json_populate_record must be a row type" -#~ msgstr "le premier argument de json_populate_record doit être un type ROW" +#~ msgid "WHERE CURRENT OF is not supported on a view with grouping or aggregation" +#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue avec regroupement ou agrégat" -#~ msgid "first argument of json_populate_recordset must be a row type" -#~ msgstr "le premier argument de json_populate_recordset doit être un type ROW" +#~ msgid "WHERE CURRENT OF is not supported on a view with more than one underlying relation" +#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue avec plus d'une table sous-jacente" -#~ msgid "cannot call json_populate_recordset on an object" -#~ msgstr "ne peut pas appeler json_populate_recordset sur un objet" +#~ msgid "WHERE CURRENT OF is not supported on a view with no underlying relation" +#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue sans table sous-jacente" -#~ msgid "cannot call json_populate_recordset with nested objects" -#~ msgstr "ne peut pas appeler json_populate_recordset sur des objets imbriqués" +#~ msgid "Wed" +#~ msgstr "Mer" -#~ msgid "must call json_populate_recordset on an array of objects" -#~ msgstr "doit appeler json_populate_recordset sur un tableau d'objets" +#~ msgid "Wednesday" +#~ msgstr "Mercredi" -#~ msgid "cannot call json_populate_recordset with nested arrays" -#~ msgstr "ne peut pas appeler json_populate_recordset avec des tableaux imbriqués" +#~ msgid "When a password is specified in CREATE USER or ALTER USER without writing either ENCRYPTED or UNENCRYPTED, this parameter determines whether the password is to be encrypted." +#~ msgstr "" +#~ "Lorsqu'un mot de passe est spécifié dans CREATE USER ou ALTER USER sans\n" +#~ "indiquer ENCRYPTED ou UNENCRYPTED, ce paramètre détermine si le mot de passe\n" +#~ "doit être chiffré." -#~ msgid "cannot call json_populate_recordset on a scalar" -#~ msgstr "ne peut pas appeler json_populate_recordset sur un scalaire" +#~ msgid "When more tuples than this are present, quicksort will be used." +#~ msgstr "Quand plus de lignes que ça sont présentes, quicksort sera utilisé." -#~ msgid "cannot call json_populate_recordset on a nested object" -#~ msgstr "ne peut pas appeler json_populate_recordset sur un objet imbriqué" +#~ msgid "Write-Ahead Log / Streaming Replication" +#~ msgstr "Write-Ahead Log / Réplication en flux" -#~ msgid "No description available." -#~ msgstr "Aucune description disponible." +#~ msgid "You can add the table partitions individually." +#~ msgstr "Vous pouvez ajouter les partitions de table individuellement." -#~ msgid "Sets the name of the Kerberos service." -#~ msgstr "Initialise le nom du service Kerberos." +#~ msgid "You have at least %d relations. Consider increasing the configuration parameter \"max_fsm_relations\"." +#~ msgstr "" +#~ "Vous avez au moins %d relations.Considèrez l'augmentation du paramètre de\n" +#~ "configuration « max_fsm_relations »." -#~ msgid "time zone offset %d is not a multiple of 900 sec (15 min) in time zone file \"%s\", line %d" +#~ msgid "You might be able to work around this by marking column \"%s\" NOT NULL, or use ALTER TABLE ... SET WITHOUT CLUSTER to remove the cluster specification from the table." #~ msgstr "" -#~ "le décalage %d du fuseau horaire n'est pas un multiples de 900 secondes\n" -#~ "(15 minutes) dans le fichier des fuseaux horaires « %s », ligne %d" +#~ "Vous pourriez contourner ceci en marquant la colonne « %s » avec la\n" +#~ "contrainte NOT NULL ou en utilisant ALTER TABLE ... SET WITHOUT CLUSTER pour\n" +#~ "supprimer la spécification CLUSTER de la table." -#~ msgid "Perhaps out of disk space?" -#~ msgstr "Peut-être manquez-vous de place disque ?" +#~ msgid "You might be able to work around this by marking column \"%s\" NOT NULL." +#~ msgstr "Vous pouvez contourner ceci en marquant la colonne « %s » comme NOT NULL." -#~ msgid "could not change directory to \"%s\"" -#~ msgstr "n'a pas pu accéder au répertoire « %s »" +#~ msgid "You need an unconditional ON DELETE DO INSTEAD rule or an INSTEAD OF DELETE trigger." +#~ msgstr "Vous avez besoin d'une règle inconditionnelle ON DELETE DO INSTEAD ou d'un trigger INSTEAD OF DELETE." -#~ msgid "unlogged GiST indexes are not supported" -#~ msgstr "les index GiST non tracés ne sont pas supportés" +#~ msgid "You need an unconditional ON INSERT DO INSTEAD rule or an INSTEAD OF INSERT trigger." +#~ msgstr "Vous avez besoin d'une règle ON INSERT DO INSTEAD sans condition ou d'un trigger INSTEAD OF INSERT." -#~ msgid "could not open file \"%s\" (log file %u, segment %u): %m" -#~ msgstr "n'a pas pu ouvrir le fichier « %s » (journal de transactions %u, segment %u) : %m" +#~ msgid "You need an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE trigger." +#~ msgstr "Vous avez besoin d'une règle non conditionnelle ON UPDATE DO INSTEAD ou d'un trigger INSTEAD OF UPDATE." -#~ msgid "there is no contrecord flag in log file %u, segment %u, offset %u" -#~ msgstr "" -#~ "il n'y a pas de drapeaux « contrecord » dans le journal de transactions %u,\n" -#~ "segment %u, décalage %u" +#~ msgid "aborted" +#~ msgstr "annulé" -#~ msgid "invalid contrecord length %u in log file %u, segment %u, offset %u" -#~ msgstr "" -#~ "longueur invalide du « contrecord » %u dans le journal de tranasctions %u,\n" -#~ "segment %u, décalage %u" +#~ msgid "abstime out of range for date" +#~ msgstr "abstime en dehors des limites pour une date" -#~ msgid "Incorrect XLOG_SEG_SIZE in page header." -#~ msgstr "XLOG_SEG_SIZE incorrecte dans l'en-tête de page." +#~ msgid "access method name cannot be qualified" +#~ msgstr "le nom de la méthode d'accès ne peut pas être qualifiée" -#~ msgid "Incorrect XLOG_BLCKSZ in page header." -#~ msgstr "XLOG_BLCKSZ incorrect dans l'en-tête de page." +#~ msgid "added subscription for table %s.%s" +#~ msgstr "souscription ajoutée pour la table %s.%s" -#~ msgid "xrecoff \"%X\" is out of valid range, 0..%X" -#~ msgstr "xrecoff « %X » en dehors des limites valides, 0..%X" +#~ msgid "adding missing FROM-clause entry for table \"%s\"" +#~ msgstr "ajout d'une entrée manquante dans FROM (table « %s »)" -#~ msgid "uncataloged table %s" -#~ msgstr "table %s sans catalogue" +#~ msgid "adding missing FROM-clause entry in subquery for table \"%s\"" +#~ msgstr "entrée manquante de la clause FROM dans la sous-requête pour la table « %s »" -#~ msgid "cannot use window function in default expression" -#~ msgstr "ne peut pas utiliser une fonction window dans une expression par défaut" +#~ msgid "aggregates not allowed in WHERE clause" +#~ msgstr "agrégats non autorisés dans une clause WHERE" -#~ msgid "cannot use window function in check constraint" -#~ msgstr "ne peut pas utiliser une fonction window dans une contrainte de vérification" +#~ msgid "archive command was terminated by signal %d" +#~ msgstr "la commande d'archivage a été terminée par le signal %d" -#~ msgid "A function returning ANYRANGE must have at least one ANYRANGE argument." +#~ msgid "archive member \"%s\" too large for tar format" +#~ msgstr "membre « %s » de l'archive trop volumineux pour le format tar" + +#~ msgid "archive_command must be defined before online backups can be made safely." #~ msgstr "" -#~ "Une fonction renvoyant ANYRANGE doit avoir au moins un argument du type\n" -#~ "ANYRANGE." +#~ "archive_command doit être défini avant que les sauvegardes à chaud puissent\n" +#~ "s'effectuer correctement." -#~ msgid "%s already exists in schema \"%s\"" -#~ msgstr "%s existe déjà dans le schéma « %s »" +#~ msgid "archive_mode must be enabled at server start." +#~ msgstr "archive_mode doit être activé au lancement du serveur." -#~ msgid "CREATE TABLE AS specifies too many column names" -#~ msgstr "CREATE TABLE AS spécifie trop de noms de colonnes" +#~ msgid "archived transaction log file \"%s\"" +#~ msgstr "journal des transactions archivé « %s »" -#~ msgid "cannot use subquery in parameter default value" -#~ msgstr "ne peut pas utiliser une sous-requête dans une valeur par défaut d'un paramètre" +#~ msgid "argument %d: could not determine data type" +#~ msgstr "argument %d : n'a pas pu déterminer le type de données" -#~ msgid "cannot use aggregate function in parameter default value" +#~ msgid "argument declared \"anyrange\" is not consistent with argument declared \"anyelement\"" #~ msgstr "" -#~ "ne peut pas utiliser une fonction d'agrégat dans la valeur par défaut d'un\n" -#~ "paramètre" - -#~ msgid "cannot use window function in parameter default value" -#~ msgstr "ne peut pas utiliser la fonction window dans la valeur par défaut d'un paramètre" +#~ "l'argument déclaré « anyrange » n'est pas cohérent avec l'argument déclaré\n" +#~ "« anyelement »" -#~ msgid "Use ALTER AGGREGATE to rename aggregate functions." -#~ msgstr "Utiliser ALTER AGGREGATE pour renommer les fonctions d'agrégat." +#~ msgid "argument for function \"exp\" too big" +#~ msgstr "l'argument de la fonction « exp » est trop gros" -#~ msgid "Use ALTER AGGREGATE to change owner of aggregate functions." -#~ msgstr "Utiliser ALTER AGGREGATE pour changer le propriétaire des fonctions d'agrégat." +#~ msgid "argument number is out of range" +#~ msgstr "le nombre en argument est en dehors des limites" -#~ msgid "function \"%s\" already exists in schema \"%s\"" -#~ msgstr "la fonction « %s » existe déjà dans le schéma « %s »" +#~ msgid "argument of %s must be type boolean, not type %s" +#~ msgstr "l'argument de %s doit être de type booléen, et non du type %s" -#~ msgid "cannot use aggregate in index predicate" -#~ msgstr "ne peut pas utiliser un agrégat dans un prédicat d'index" +#~ msgid "argument of %s must not contain aggregate functions" +#~ msgstr "l'argument de %s ne doit pas contenir de fonctions d'agrégats" -#~ msgid "cannot use window function in EXECUTE parameter" -#~ msgstr "ne peut pas utiliser une fonction window dans le paramètre EXECUTE" +#~ msgid "argument of %s must not contain window functions" +#~ msgstr "l'argument de %s ne doit pas contenir des fonctions window" -#~ msgid "constraints on foreign tables are not supported" -#~ msgstr "les contraintes sur les tables distantes ne sont pas supportées" +#~ msgid "argument to pg_get_expr() must come from system catalogs" +#~ msgstr "l'argument de pg_get_expr() doit provenir des catalogues systèmes" -#~ msgid "default values on foreign tables are not supported" -#~ msgstr "les valeurs par défaut ne sont pas supportées sur les tables distantes" +#~ msgid "arguments of row IN must all be row expressions" +#~ msgstr "les arguments de la ligne IN doivent tous être des expressions de ligne" -#~ msgid "cannot use window function in transform expression" -#~ msgstr "ne peut pas utiliser la fonction window dans l'expression de la transformation" +#~ msgid "assertion checking is not supported by this build" +#~ msgstr "la vérification de l'assertion n'a pas été intégrée lors de la compilation" -#~ msgid "Use ALTER FOREIGN TABLE instead." -#~ msgstr "Utilisez ALTER FOREIGN TABLE à la place." +#~ msgid "attempted change of parameter \"%s\" ignored" +#~ msgstr "tentative de modification du paramètre « %s » ignoré" -#~ msgid "cannot use window function in trigger WHEN condition" -#~ msgstr "ne peut pas utiliser la fonction window dans la condition WHEN d'un trigger" +#~ msgid "automatic vacuum of table \"%s.%s.%s\": cannot (re)acquire exclusive lock for truncate scan" +#~ msgstr "vacuum automatique de la table « %s.%s.%s » : ne peut pas acquérir le verrou exclusif pour la tronquer" -#~ msgid "must be superuser to rename text search parsers" +#~ msgid "" +#~ "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" +#~ "pages: %d removed, %d remain\n" +#~ "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable\n" +#~ "buffer usage: %d hits, %d misses, %d dirtied\n" +#~ "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" +#~ "system usage: %s" #~ msgstr "" -#~ "doit être super-utilisateur pour renommer les analyseurs de recherche plein\n" -#~ "texte" +#~ "VACUUM automatique de la table « %s.%s.%s » : parcours d'index : %d\n" +#~ "pages : %d supprimées, %d restantes\n" +#~ "lignes : %.0f supprimées, %.0f restantes, %.0f sont mortes mais non supprimables\n" +#~ "utilisation des tampons : %d lus dans le cache, %d lus hors du cache, %d modifiés\n" +#~ "taux moyen de lecture : %.3f Mo/s, taux moyen d'écriture : %.3f Mo/s\n" +#~ "utilisation système : %s" -#~ msgid "must be superuser to rename text search templates" -#~ msgstr "doit être super-utilisateur pour renommer les modèles de recherche plein texte" +#~ msgid "autovacuum: found orphan temp table \"%s\".\"%s\" in database \"%s\"" +#~ msgstr "" +#~ "autovacuum : a trouvé la table temporaire orpheline « %s.%s » dans la base de\n" +#~ "données « %s »" -#~ msgid "automatic vacuum of table \"%s.%s.%s\": cannot (re)acquire exclusive lock for truncate scan" -#~ msgstr "vacuum automatique de la table « %s.%s.%s » : ne peut pas acquérir le verrou exclusif pour la tronquer" +#~ msgid "binary value is out of range for type bigint" +#~ msgstr "la valeur binaire est en dehors des limites du type bigint" -#~ msgid "You need an unconditional ON INSERT DO INSTEAD rule or an INSTEAD OF INSERT trigger." -#~ msgstr "Vous avez besoin d'une règle ON INSERT DO INSTEAD sans condition ou d'un trigger INSTEAD OF INSERT." +#~ msgid "brin operator family \"%s\" contains function %s with invalid support number %d" +#~ msgstr "" +#~ "la famille d'opérateur brin « %s » contient la fonction %s\n" +#~ "avec le numéro de support %d invalide" -#~ msgid "You need an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE trigger." -#~ msgstr "Vous avez besoin d'une règle non conditionnelle ON UPDATE DO INSTEAD ou d'un trigger INSTEAD OF UPDATE." +#~ msgid "brin operator family \"%s\" contains function %s with wrong signature for support number %d" +#~ msgstr "" +#~ "la famille d'opérateur brin « %s » contient la fonction %s\n" +#~ "avec une mauvaise signature pour le numéro de support %d" -#~ msgid "You need an unconditional ON DELETE DO INSTEAD rule or an INSTEAD OF DELETE trigger." -#~ msgstr "Vous avez besoin d'une règle inconditionnelle ON DELETE DO INSTEAD ou d'un trigger INSTEAD OF DELETE." +#~ msgid "brin operator family \"%s\" contains invalid ORDER BY specification for operator %s" +#~ msgstr "" +#~ "la famille d'opérateur brin « %s » contient une spécification\n" +#~ "ORDER BY invalide pour l'opérateur %s" -#~ msgid "LDAP search failed for filter \"%s\" on server \"%s\": user is not unique (%ld matches)" +#~ msgid "brin operator family \"%s\" contains operator %s with invalid strategy number %d" #~ msgstr "" -#~ "échec de la recherche LDAP pour le filtre « %s » sur le serveur « %s » :\n" -#~ "utilisateur non unique (%ld correspondances)" +#~ "la famille d'opérateur brin « %s » contient l'opérateur %s\n" +#~ "avec le numéro de stratégie %d invalide" -#~ msgid "VALUES must not contain table references" -#~ msgstr "VALUES ne doit pas contenir de références de table" +#~ msgid "brin operator family \"%s\" contains operator %s with wrong signature" +#~ msgstr "la famille d'opérateur brin « %s » contient l'opérateur %s avec une mauvaise signature" -#~ msgid "VALUES must not contain OLD or NEW references" -#~ msgstr "VALUES ne doit pas contenir des références à OLD et NEW" +#~ msgid "btree operator class \"%s\" is missing operator(s)" +#~ msgstr "il manque des opérateurs pour la classe d'opérateur btree « %s »" -#~ msgid "Use SELECT ... UNION ALL ... instead." -#~ msgstr "Utilisez à la place SELECT ... UNION ALL ..." +#~ msgid "btree operator family \"%s\" contains function %s with invalid support number %d" +#~ msgstr "" +#~ "la famille d'opérateur btree « %s » contient la fonction %s\n" +#~ "avec le numéro de support invalide %d" -#~ msgid "cannot use aggregate function in VALUES" -#~ msgstr "ne peut pas utiliser la fonction d'agrégat dans un VALUES" +#~ msgid "btree operator family \"%s\" contains function %s with wrong signature for support number %d" +#~ msgstr "" +#~ "la famille d'opérateur btree « %s » contient la fonction %s\n" +#~ "avec une mauvaise signature pour le numéro de support %d" -#~ msgid "cannot use window function in VALUES" -#~ msgstr "ne peut pas utiliser la fonction window dans un VALUES" +#~ msgid "btree operator family \"%s\" contains invalid ORDER BY specification for operator %s" +#~ msgstr "" +#~ "la famille d'opérateur btree « %s » contient une spécification\n" +#~ "ORDER BY invalide pour l'opérateur %s" -#~ msgid "cannot use aggregate function in UPDATE" -#~ msgstr "ne peut pas utiliser une fonction d'agrégat dans un UPDATE" +#~ msgid "btree operator family \"%s\" contains operator %s with invalid strategy number %d" +#~ msgstr "" +#~ "la famille d'opérateur btree « %s » contient l'opérateur %s\n" +#~ "avec le numéro de stratégie invalide %d" -#~ msgid "cannot use window function in UPDATE" -#~ msgstr "ne peut pas utiliser une fonction window dans un UPDATE" +#~ msgid "btree operator family \"%s\" contains operator %s with wrong signature" +#~ msgstr "la famille d'opérateur btree « %s » contient l'opérateur %s avec une mauvaise signature" -#~ msgid "cannot use aggregate function in RETURNING" -#~ msgstr "ne peut pas utiliser une fonction d'agrégat dans RETURNING" +#~ msgid "btree operator family \"%s\" is missing cross-type operator(s)" +#~ msgstr "il manque des opérateurs inter-type pour la famille d'opérateur btree « %s »" -#~ msgid "cannot use window function in RETURNING" -#~ msgstr "ne peut pas utiliser une fonction window dans RETURNING" +#~ msgid "btree operator family \"%s\" is missing operator(s) for types %s and %s" +#~ msgstr "" +#~ "la famille d'opérateur btree « %s » nécessite des opérateurs supplémentaires\n" +#~ "pour les types %s et %s" -#~ msgid "RETURNING cannot contain references to other relations" -#~ msgstr "RETURNING ne doit pas contenir de références à d'autres relations" +#~ msgid "built-in type %u not found" +#~ msgstr "type interne %u non trouvé" -#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with GROUP BY clause" -#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec la clause GROUP BY" +#~ msgid "cannot PREPARE a transaction that has operated on temporary namespace" +#~ msgstr "" +#~ "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur un\n" +#~ "schéma temporaire" -#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with HAVING clause" -#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec la clause HAVING" +#~ msgid "cannot PREPARE a transaction that has operated on temporary tables" +#~ msgstr "" +#~ "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur des\n" +#~ "tables temporaires" -#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with aggregate functions" -#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec les fonctions d'agrégats" +#~ msgid "cannot accept a value of type any" +#~ msgstr "ne peut pas accepter une valeur de type any" -#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with window functions" -#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec les fonctions window" +#~ msgid "cannot accept a value of type anyarray" +#~ msgstr "ne peut pas accepter une valeur de type anyarray" -#~ msgid "SELECT FOR UPDATE/SHARE cannot be used with foreign table \"%s\"" -#~ msgstr "SELECT FOR UPDATE/SHARE ne peut pas être utilisé avec une table distante « %s »" +#~ msgid "cannot accept a value of type anyelement" +#~ msgstr "ne peut pas accepter une valeur de type anyelement" -#~ msgid "aggregates not allowed in WHERE clause" -#~ msgstr "agrégats non autorisés dans une clause WHERE" +#~ msgid "cannot accept a value of type anyenum" +#~ msgstr "ne peut pas accepter une valeur de type anyenum" -#~ msgid "window functions not allowed in GROUP BY clause" -#~ msgstr "fonctions window non autorisées dans une clause GROUP BY" +#~ msgid "cannot accept a value of type anynonarray" +#~ msgstr "ne peut pas accepter une valeur de type anynonarray" -#~ msgid "JOIN/ON clause refers to \"%s\", which is not part of JOIN" -#~ msgstr "la clause JOIN/ON se réfère à « %s », qui ne fait pas partie du JOIN" +#~ msgid "cannot accept a value of type anyrange" +#~ msgstr "ne peut pas accepter une valeur de type anyrange" -#~ msgid "subquery in FROM cannot refer to other relations of same query level" -#~ msgstr "" -#~ "la sous-requête du FROM ne peut pas faire référence à d'autres relations\n" -#~ "dans le même niveau de la requête" +#~ msgid "cannot accept a value of type event_trigger" +#~ msgstr "ne peut pas accepter une valeur de type event_trigger" -#~ msgid "function expression in FROM cannot refer to other relations of same query level" -#~ msgstr "" -#~ "l'expression de la fonction du FROM ne peut pas faire référence à d'autres\n" -#~ "relations sur le même niveau de la requête" +#~ msgid "cannot accept a value of type fdw_handler" +#~ msgstr "ne peut pas accepter une valeur de type fdw_handler" -#~ msgid "cannot use window function in function expression in FROM" -#~ msgstr "" -#~ "ne peut pas utiliser la fonction window dans l'expression de la fonction\n" -#~ "du FROM" +#~ msgid "cannot accept a value of type index_am_handler" +#~ msgstr "ne peut pas accepter une valeur de type index_am_handler" -#~ msgid "argument of %s must not contain aggregate functions" -#~ msgstr "l'argument de %s ne doit pas contenir de fonctions d'agrégats" +#~ msgid "cannot accept a value of type internal" +#~ msgstr "ne peut pas accepter une valeur de type internal" -#~ msgid "argument of %s must not contain window functions" -#~ msgstr "l'argument de %s ne doit pas contenir des fonctions window" +#~ msgid "cannot accept a value of type language_handler" +#~ msgstr "ne peut pas accepter une valeur de type language_handler" -#~ msgid "arguments of row IN must all be row expressions" -#~ msgstr "les arguments de la ligne IN doivent tous être des expressions de ligne" +#~ msgid "cannot accept a value of type opaque" +#~ msgstr "ne peut pas accepter une valeur de type opaque" + +#~ msgid "cannot accept a value of type pg_node_tree" +#~ msgstr "ne peut pas accepter une valeur de type pg_node_tree" + +#~ msgid "cannot accept a value of type trigger" +#~ msgstr "ne peut pas accepter une valeur de type trigger" -#~ msgid "cannot use aggregate function in rule WHERE condition" -#~ msgstr "ne peut pas utiliser la fonction d'agrégat dans la condition d'une règle WHERE" +#~ msgid "cannot accept a value of type tsm_handler" +#~ msgstr "ne peut pas accepter une valeur de type tsm_handler" -#~ msgid "cannot use window function in rule WHERE condition" -#~ msgstr "ne peut pas utiliser la fonction window dans la condition d'une règle WHERE" +#~ msgid "cannot advance replication slot that has not previously reserved WAL" +#~ msgstr "impossible d'avancer un slot de réplication qui n'a pas auparavant réservé de WAL" -#~ msgid "" -#~ "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently %lu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.\n" -#~ "If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.\n" -#~ "The PostgreSQL documentation contains more information about shared memory configuration." -#~ msgstr "" -#~ "Cette erreur signifie habituellement que la demande de PostgreSQL pour un\n" -#~ "segment de mémoire partagée a dépassé le paramètre SHMMAX de votre noyau.\n" -#~ "Vous pouvez soit réduire la taille de la requête soit reconfigurer le noyau\n" -#~ "avec un SHMMAX plus important. Pour réduire la taille de la requête\n" -#~ "(actuellement %lu octets), réduisez l'utilisation de la mémoire partagée par PostgreSQL,par exemple en réduisant shared_buffers ou max_connections\n" -#~ "Si la taille de la requête est déjà petite, il est possible qu'elle soit\n" -#~ "moindre que le paramètre SHMMIN de votre noyau, auquel cas, augmentez la\n" -#~ "taille de la requête ou reconfigurez SHMMIN.\n" -#~ "La documentation de PostgreSQL contient plus d'informations sur la\n" -#~ "configuration de la mémoire partagée." +#~ msgid "cannot alter type of column named in partition key" +#~ msgstr "ne peut pas modifier le type d'une colonne nommée dans une clé de partitionnement" -#~ msgid "terminating all walsender processes to force cascaded standby(s) to update timeline and reconnect" -#~ msgstr "" -#~ "arrêt de tous les processus walsender pour forcer les serveurs standby en\n" -#~ "cascade à mettre à jour la timeline et à se reconnecter" +#~ msgid "cannot alter type of column referenced in partition key expression" +#~ msgstr "ne peut pas utiliser le type d'une colonne référencée dans l'expression d'une clé de partitionnement" -#~ msgid "shutdown requested, aborting active base backup" -#~ msgstr "arrêt demandé, annulation de la sauvegarde active de base" +#~ msgid "cannot attach table \"%s\" with OIDs as partition of table \"%s\" without OIDs" +#~ msgstr "ne peut pas attacher la table « %s » avec OID comme partition de la table « %s » sans OID" -#~ msgid "streaming replication successfully connected to primary" -#~ msgstr "réplication de flux connecté avec succès au serveur principal" +#~ msgid "cannot attach table \"%s\" without OIDs as partition of table \"%s\" with OIDs" +#~ msgstr "ne peut pas attacher la table « %s » sans OID comme partition de la table « %s » avec OID" -#~ msgid "invalid standby handshake message type %d" -#~ msgstr "type %d du message de handshake du serveur en attente invalide" +#~ msgid "cannot calculate week number without year information" +#~ msgstr "ne peut pas calculer le numéro de la semaine sans informations sur l'année" -#~ msgid "terminating walsender process to force cascaded standby to update timeline and reconnect" -#~ msgstr "" -#~ "arrêt du processus walreceiver pour forcer le serveur standby en cascade à\n" -#~ "mettre à jour la timeline et à se reconnecter" +#~ msgid "cannot call json_array_elements on a non-array" +#~ msgstr "ne peut pas appeler json_array_elements sur un objet qui n'est pas un tableau" -#~ msgid "invalid standby query string: %s" -#~ msgstr "chaîne de requête invalide sur le serveur en attente : %s" +#~ msgid "cannot call json_array_elements on a scalar" +#~ msgstr "ne peut pas appeler json_array_elements sur un scalaire" -#~ msgid "large object %u was not opened for writing" -#~ msgstr "le « Large Object » %u n'a pas été ouvert en écriture" +#~ msgid "cannot call json_object_keys on an array" +#~ msgstr "ne peut pas appeler json_object_keys sur un tableau" -#~ msgid "large object %u was already dropped" -#~ msgstr "le « Large Object » %u a déjà été supprimé" +#~ msgid "cannot call json_populate_recordset on a nested object" +#~ msgstr "ne peut pas appeler json_populate_recordset sur un objet imbriqué" -#~ msgid "Not enough memory for reassigning the prepared transaction's locks." -#~ msgstr "Pas assez de mémoire pour réaffecter les verrous des transactions préparées." +#~ msgid "cannot call json_populate_recordset on a scalar" +#~ msgstr "ne peut pas appeler json_populate_recordset sur un scalaire" -#~ msgid "\"interval\" time zone \"%s\" not valid" -#~ msgstr "le fuseau horaire « %s » n'est pas valide pour le type « interval »" +#~ msgid "cannot call json_populate_recordset on an object" +#~ msgstr "ne peut pas appeler json_populate_recordset sur un objet" -#~ msgid "inconsistent use of year %04d and \"BC\"" -#~ msgstr "utilisation non cohérente de l'année %04d et de « BC »" +#~ msgid "cannot call json_populate_recordset with nested arrays" +#~ msgstr "ne peut pas appeler json_populate_recordset avec des tableaux imbriqués" -#~ msgid "No rows were found in \"%s\"." -#~ msgstr "Aucune ligne trouvée dans « %s »." +#~ msgid "cannot call json_populate_recordset with nested objects" +#~ msgstr "ne peut pas appeler json_populate_recordset sur des objets imbriqués" -#~ msgid "argument number is out of range" -#~ msgstr "le nombre en argument est en dehors des limites" +#~ msgid "cannot change number of columns in view" +#~ msgstr "ne peut pas modifier le nombre de colonnes dans la vue" -#~ msgid "index \"%s\" is not ready" -#~ msgstr "l'index « %s » n'est pas prêt" +#~ msgid "cannot cluster on expressional index \"%s\" because its index access method does not handle null values" +#~ msgstr "" +#~ "ne peut pas exécuter CLUSTER sur l'index à expression « %s » car sa méthode\n" +#~ "d'accès ne gère pas les valeurs NULL" -#~ msgid "could not remove database directory \"%s\"" -#~ msgstr "n'a pas pu supprimer le répertoire de bases de données « %s »" +#~ msgid "cannot cluster on index \"%s\" because access method does not handle null values" +#~ msgstr "" +#~ "ne peut pas créer un cluster sur l'index « %s » car la méthode d'accès de\n" +#~ "l'index ne gère pas les valeurs NULL" -#~ msgid "unexpected end of line at line %d of thesaurus file \"%s\"" -#~ msgstr "fin de ligne inattendue à la ligne %d du thésaurus « %s »" +#~ msgid "cannot convert abstime \"invalid\" to timestamp" +#~ msgstr "ne peut pas convertir un abstime « invalid » en timestamp" -#~ msgid "unexpected end of line or lexeme at line %d of thesaurus file \"%s\"" -#~ msgstr "fin de ligne ou de lexeme inattendu sur la ligne %d du thesaurus « %s »" +#~ msgid "cannot convert empty polygon to circle" +#~ msgstr "ne peut pas convertir un polygône vide en cercle" -#~ msgid "unexpected delimiter at line %d of thesaurus file \"%s\"" -#~ msgstr "délimiteur inattendu sur la ligne %d du thesaurus « %s »" +#~ msgid "cannot convert reltime \"invalid\" to interval" +#~ msgstr "ne peut pas convertir reltime « invalid » en interval" -#~ msgid "@@ operator does not support lexeme weight restrictions in GIN index searches" -#~ msgstr "" -#~ "l'opérateur @@ ne supporte pas les restrictions de poids de lexeme dans les\n" -#~ "recherches par index GIN" +#~ msgid "cannot convert reserved abstime value to date" +#~ msgstr "ne peut pas convertir la valeur réservée abstime en date" -#~ msgid "query requires full scan, which is not supported by GIN indexes" -#~ msgstr "" -#~ "la requête nécessite un parcours complet, ce qui n'est pas supporté par les\n" -#~ "index GIN" +#~ msgid "cannot copy to foreign table \"%s\"" +#~ msgstr "ne peut pas copier vers la table distante « %s »" -#~ msgid "cannot calculate week number without year information" -#~ msgstr "ne peut pas calculer le numéro de la semaine sans informations sur l'année" +#~ msgid "cannot create bounding box for empty polygon" +#~ msgstr "ne peut pas créer une boîte entourée pour un polygône vide" -#~ msgid "UTF-16 to UTF-8 translation failed: %lu" -#~ msgstr "échec de la conversion d'UTF16 vers UTF8 : %lu" +#~ msgid "cannot create range partition with empty range" +#~ msgstr "ne peut pas créer une partition par intervalle avec un intervalle vide" -#~ msgid "AM/PM hour must be between 1 and 12" -#~ msgstr "l'heure AM/PM doit être compris entre 1 et 12" +#~ msgid "cannot create restricted tokens on this platform" +#~ msgstr "ne peut pas créer les jetons restreints sur cette plateforme" -#~ msgid "Sat" -#~ msgstr "Sam" +#~ msgid "cannot create table with OIDs as partition of table without OIDs" +#~ msgstr "ne peut pas créer une table avec OID comme partition d'une table sans OID" -#~ msgid "Fri" -#~ msgstr "Ven" +#~ msgid "cannot display a value of type anyelement" +#~ msgstr "ne peut pas afficher une valeur de type anyelement" -#~ msgid "Thu" -#~ msgstr "Jeu" +#~ msgid "cannot display a value of type anynonarray" +#~ msgstr "ne peut pas afficher une valeur de type anynonarray" -#~ msgid "Wed" -#~ msgstr "Mer" +#~ msgid "cannot display a value of type event_trigger" +#~ msgstr "ne peut pas afficher une valeur de type event_trigger" -#~ msgid "Tue" -#~ msgstr "Mar" +#~ msgid "cannot display a value of type fdw_handler" +#~ msgstr "ne peut pas afficher une valeur de type fdw_handler" -#~ msgid "Mon" -#~ msgstr "Lun" +#~ msgid "cannot display a value of type index_am_handler" +#~ msgstr "ne peut pas afficher une valeur de type index_am_handler" -#~ msgid "Sun" -#~ msgstr "Dim" +#~ msgid "cannot display a value of type internal" +#~ msgstr "ne peut pas afficher une valeur de type internal" -#~ msgid "Saturday" -#~ msgstr "Samedi" +#~ msgid "cannot display a value of type language_handler" +#~ msgstr "ne peut pas afficher une valeur de type language_handler" -#~ msgid "Friday" -#~ msgstr "Vendredi" +#~ msgid "cannot display a value of type opaque" +#~ msgstr "ne peut pas afficher une valeur de type opaque" -#~ msgid "Thursday" -#~ msgstr "Jeudi" +#~ msgid "cannot display a value of type trigger" +#~ msgstr "ne peut pas afficher une valeur de type trigger" -#~ msgid "Wednesday" -#~ msgstr "Mercredi" +#~ msgid "cannot display a value of type tsm_handler" +#~ msgstr "ne peut pas afficher une valeur de type tsm_handler" -#~ msgid "Tuesday" -#~ msgstr "Mardi" +#~ msgid "cannot drop \"%s\" because it is being used by active queries in this session" +#~ msgstr "" +#~ "ne peut pas supprimer « %s » car cet objet est en cours d'utilisation par\n" +#~ "des requêtes actives dans cette session" -#~ msgid "Monday" -#~ msgstr "Lundi" +#~ msgid "cannot drop column named in partition key" +#~ msgstr "ne peut pas supprimer une colonne nommée dans une clé de partitionnement" -#~ msgid "Sunday" -#~ msgstr "Dimanche" +#~ msgid "cannot extract array element from a non-array" +#~ msgstr "ne peut pas extraire un élément du tableau à partir d'un objet qui n'est pas un tableau" -#~ msgid "Dec" -#~ msgstr "Déc" +#~ msgid "cannot extract field from a non-object" +#~ msgstr "ne peut pas extraire le chemin à partir d'un non-objet" -#~ msgid "Nov" -#~ msgstr "Nov" +#~ msgid "cannot output a value of type %s" +#~ msgstr "ne peut pas afficher une valeur de type %s" -#~ msgid "Oct" -#~ msgstr "Oct" +#~ msgid "cannot override frame clause of window \"%s\"" +#~ msgstr "ne peut pas surcharger la frame clause du window « %s »" -#~ msgid "Sep" -#~ msgstr "Sep" +#~ msgid "cannot reference partitioned table \"%s\"" +#~ msgstr "ne peut pas référencer la table partitionnée « %s »" -#~ msgid "Aug" -#~ msgstr "Aoû" +#~ msgid "cannot reference permanent table from temporary table constraint" +#~ msgstr "" +#~ "ne peut pas référencer une table permanente à partir de la contrainte de\n" +#~ "table temporaire" -#~ msgid "Jul" -#~ msgstr "Juil" +#~ msgid "cannot reference temporary table from permanent table constraint" +#~ msgstr "" +#~ "ne peut pas référencer une table temporaire à partir d'une contrainte de\n" +#~ "table permanente" -#~ msgid "Jun" -#~ msgstr "Juin" +#~ msgid "cannot reindex invalid index on TOAST table concurrently" +#~ msgstr "ne peut pas réindexer un index invalide sur une table TOAST de manière concurrente" -#~ msgid "S:May" -#~ msgstr "S:Mai" +#~ msgid "cannot route inserted tuples to a foreign table" +#~ msgstr "ne peut pas envoyer les lignes insérées dans une table distante" -#~ msgid "Apr" -#~ msgstr "Avr" +#~ msgid "cannot set session authorization within security-definer function" +#~ msgstr "ne peut pas exécuter SESSION AUTHORIZATION sur la fonction SECURITY DEFINER" -#~ msgid "Mar" -#~ msgstr "Mar" +#~ msgid "cannot specify CSV in BINARY mode" +#~ msgstr "ne peut pas spécifier CSV en mode binaire (BINARY)" -#~ msgid "Feb" -#~ msgstr "Fév" +#~ msgid "cannot truncate system relation \"%s\"" +#~ msgstr "ne peut pas tronquer la relation système « %s »" -#~ msgid "Jan" -#~ msgstr "Jan" +#~ msgid "cannot use Ident authentication without usermap field" +#~ msgstr "n'a pas pu utiliser l'authentication Ident sans le champ usermap" -#~ msgid "December" -#~ msgstr "Décembre" +#~ msgid "cannot use advisory locks during a parallel operation" +#~ msgstr "ne peut pas utiliser les verrous informatifs lors d'une opération parallèle" -#~ msgid "November" -#~ msgstr "Novembre" +#~ msgid "cannot use aggregate function in RETURNING" +#~ msgstr "ne peut pas utiliser une fonction d'agrégat dans RETURNING" -#~ msgid "October" -#~ msgstr "Octobre" +#~ msgid "cannot use aggregate function in UPDATE" +#~ msgstr "ne peut pas utiliser une fonction d'agrégat dans un UPDATE" -#~ msgid "September" -#~ msgstr "Septembre" +#~ msgid "cannot use aggregate function in VALUES" +#~ msgstr "ne peut pas utiliser la fonction d'agrégat dans un VALUES" -#~ msgid "August" -#~ msgstr "Août" +#~ msgid "cannot use aggregate function in parameter default value" +#~ msgstr "" +#~ "ne peut pas utiliser une fonction d'agrégat dans la valeur par défaut d'un\n" +#~ "paramètre" -#~ msgid "July" -#~ msgstr "Juillet" +#~ msgid "cannot use aggregate function in rule WHERE condition" +#~ msgstr "ne peut pas utiliser la fonction d'agrégat dans la condition d'une règle WHERE" -#~ msgid "June" -#~ msgstr "Juin" +#~ msgid "cannot use aggregate in index predicate" +#~ msgstr "ne peut pas utiliser un agrégat dans un prédicat d'index" -#~ msgid "May" -#~ msgstr "Mai" +#~ msgid "cannot use authentication method \"crypt\" because password is MD5-encrypted" +#~ msgstr "" +#~ "n'a pas pu utiliser la méthode d'authentification « crypt » car le mot de\n" +#~ "passe est chiffré avec MD5" -#~ msgid "April" -#~ msgstr "Avril" +#~ msgid "cannot use subquery in parameter default value" +#~ msgstr "ne peut pas utiliser une sous-requête dans une valeur par défaut d'un paramètre" -#~ msgid "March" -#~ msgstr "Mars" +#~ msgid "cannot use window function in EXECUTE parameter" +#~ msgstr "ne peut pas utiliser une fonction window dans le paramètre EXECUTE" -#~ msgid "February" -#~ msgstr "Février" +#~ msgid "cannot use window function in RETURNING" +#~ msgstr "ne peut pas utiliser une fonction window dans RETURNING" -#~ msgid "January" -#~ msgstr "Janvier" +#~ msgid "cannot use window function in UPDATE" +#~ msgstr "ne peut pas utiliser une fonction window dans un UPDATE" -#~ msgid "\"TZ\"/\"tz\" not supported" -#~ msgstr "« TZ »/« tz » non supporté" +#~ msgid "cannot use window function in VALUES" +#~ msgstr "ne peut pas utiliser la fonction window dans un VALUES" -#~ msgid "not unique \"S\"" -#~ msgstr "« S » non unique" +#~ msgid "cannot use window function in check constraint" +#~ msgstr "ne peut pas utiliser une fonction window dans une contrainte de vérification" -#~ msgid "Valid values are DOCUMENT and CONTENT." -#~ msgstr "Les valeurs valides sont DOCUMENT et CONTENT." +#~ msgid "cannot use window function in default expression" +#~ msgstr "ne peut pas utiliser une fonction window dans une expression par défaut" -#~ msgid "Valid values are LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7." +#~ msgid "cannot use window function in function expression in FROM" #~ msgstr "" -#~ "Les valeurs valides sont LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5,\n" -#~ "LOCAL6, LOCAL7." +#~ "ne peut pas utiliser la fonction window dans l'expression de la fonction\n" +#~ "du FROM" -#~ msgid "This can be set to advanced, extended, or basic." -#~ msgstr "" -#~ "Ceci peut être initialisé avec advanced (avancé), extended (étendu) ou\n" -#~ "basic (basique)." +#~ msgid "cannot use window function in parameter default value" +#~ msgstr "ne peut pas utiliser la fonction window dans la valeur par défaut d'un paramètre" -#~ msgid "Sets the hostname of the Kerberos server." -#~ msgstr "Initalise le nom d'hôte du serveur Kerberos." +#~ msgid "cannot use window function in rule WHERE condition" +#~ msgstr "ne peut pas utiliser la fonction window dans la condition d'une règle WHERE" -#~ msgid "Sets realm to match Kerberos and GSSAPI users against." -#~ msgstr "" -#~ "Indique le royaume pour l'authentification des utilisateurs via Kerberos et\n" -#~ "GSSAPI." +#~ msgid "cannot use window function in transform expression" +#~ msgstr "ne peut pas utiliser la fonction window dans l'expression de la transformation" -#~ msgid "Each session can be either \"origin\", \"replica\", or \"local\"." -#~ msgstr "Chaque session peut valoir soit « origin » soit « replica » soit « local »." +#~ msgid "cannot use window function in trigger WHEN condition" +#~ msgstr "ne peut pas utiliser la fonction window dans la condition WHEN d'un trigger" -#~ msgid "Each SQL transaction has an isolation level, which can be either \"read uncommitted\", \"read committed\", \"repeatable read\", or \"serializable\"." -#~ msgstr "" -#~ "Chaque transaction SQL a un niveau d'isolation qui peut être soit « read\n" -#~ "uncommitted », soit « read committed », soit « repeatable read », soit\n" -#~ "« serializable »." +#~ msgid "cast function must not be an aggregate function" +#~ msgstr "la fonction de conversion ne doit pas être une fonction d'agrégat" -#~ msgid "All SQL statements that cause an error of the specified level or a higher level are logged." -#~ msgstr "" -#~ "Toutes les instructions SQL causant une erreur du niveau spécifié ou d'un\n" -#~ "niveau supérieur sont tracées." +#~ msgid "changing argument type of function %s from \"opaque\" to \"cstring\"" +#~ msgstr "changement du type d'argument de la fonction %s d'« opaque » à « cstring »" -#~ msgid "Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, and PANIC. Each level includes all the levels that follow it." -#~ msgstr "" -#~ "Les valeurs valides sont DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO,\n" -#~ "NOTICE, WARNING, ERROR, LOG, FATAL et PANIC. Chaque niveau incut tous les\n" -#~ "niveaux qui le suit." +#~ msgid "changing argument type of function %s from \"opaque\" to %s" +#~ msgstr "changement du type d'argument de la fonction %s d'« opaque » à %s" -#~ msgid "Valid values are ON, OFF, and SAFE_ENCODING." -#~ msgstr "Les valeurs valides sont ON, OFF et SAFE_ENCODING." +#~ msgid "changing return type of function %s from \"opaque\" to \"cstring\"" +#~ msgstr "changement du type de retour de la fonction %s d'« opaque » vers « cstring »" -#~ msgid "Sets the maximum number of tables and indexes for which free space is tracked." +#~ msgid "changing return type of function %s from \"opaque\" to \"language_handler\"" #~ msgstr "" -#~ "Initialise le nombre maximum de tables et index pour lesquels l'espace libre\n" -#~ "est tracé." +#~ "changement du type du code retour de la fonction %s d'« opaque » à\n" +#~ "« language_handler »" -#~ msgid "Uses the indented output format for EXPLAIN VERBOSE." -#~ msgstr "Utilise le format de sortie indenté pour EXPLAIN VERBOSE." +#~ msgid "changing return type of function %s from \"opaque\" to \"trigger\"" +#~ msgstr "changement du type de retour de la fonction %s de « opaque » vers « trigger »" -#~ msgid "Prints the execution plan to server log." -#~ msgstr "Affiche le plan d'exécution dans les journaux applicatifs du serveur." +#~ msgid "changing return type of function %s from %s to %s" +#~ msgstr "changement du type de retour de la fonction %s de %s vers %s" -#~ msgid "Prints the parse tree after rewriting to server log." -#~ msgstr "Affiche l'arbre d'analyse après ré-écriture dans les journaux applicatifs du serveur." +#~ msgid "child process was terminated by signal %d" +#~ msgstr "le processus fils a été terminé par le signal %d" -#~ msgid "Prints the parse tree to the server log." -#~ msgstr "Affiche l'arbre d'analyse dans les journaux applicatifs du serveur." +#~ msgid "child process was terminated by signal %s" +#~ msgstr "le processus fils a été terminé par le signal %s" -#~ msgid "Consider increasing the configuration parameter \"max_fsm_pages\" to a value over %.0f." -#~ msgstr "" -#~ "Considérez l'augmentation du paramètre de configuration « max_fsm_pages »\n" -#~ "à une valeur supérieure à %.0f." +#~ msgid "child table \"%s\" has a conflicting \"%s\" column" +#~ msgstr "la table fille « %s » a une colonne conflictuelle, « %s »" -#~ msgid "number of page slots needed (%.0f) exceeds max_fsm_pages (%d)" -#~ msgstr "le nombre d'emplacements de pages nécessaires (%.0f) dépasse max_fsm_pages (%d)" +#~ msgid "client requires SCRAM channel binding, but it is not supported" +#~ msgstr "le client requiert le lien de canal SCRAM mais ceci n'est pas supporté" -#~ msgid "You have at least %d relations. Consider increasing the configuration parameter \"max_fsm_relations\"." -#~ msgstr "" -#~ "Vous avez au moins %d relations.Considèrez l'augmentation du paramètre de\n" -#~ "configuration « max_fsm_relations »." +#~ msgid "clustering \"%s.%s\"" +#~ msgstr "exécution de CLUSTER sur « %s.%s »" -#~ msgid "max_fsm_relations(%d) equals the number of relations checked" -#~ msgstr "max_fsm_relations(%d) équivaut au nombre de relations tracées" +#~ msgid "column \"%s\" appears more than once in partition key" +#~ msgstr "la colonne « %s » apparaît plus d'une fois dans la clé de partitionnement" -#~ msgid "" -#~ "A total of %.0f page slots are in use (including overhead).\n" -#~ "%.0f page slots are required to track all free space.\n" -#~ "Current limits are: %d page slots, %d relations, using %.0f kB." -#~ msgstr "" -#~ "Un total de %.0f emplacements de pages est utilisé (ceci incluant la\n" -#~ "surcharge).\n" -#~ "%.0f emplacements de pages sont requis pour tracer tout l'espace libre.\n" -#~ "Les limites actuelles sont : %d emplacements de pages, %d relations,\n" -#~ "utilisant %.0f Ko." +#~ msgid "column \"%s\" contains null values" +#~ msgstr "la colonne « %s » contient des valeurs NULL" -#~ msgid "free space map contains %d pages in %d relations" -#~ msgstr "la structure FSM contient %d pages dans %d relations" +#~ msgid "column \"%s\" has type \"unknown\"" +#~ msgstr "la colonne « %s » est de type « unknown »" -#~ msgid "max_fsm_pages must exceed max_fsm_relations * %d" -#~ msgstr "max_fsm_pages doit excéder max_fsm_relations * %d" +#~ msgid "column \"%s\" referenced in statistics does not exist" +#~ msgstr "la colonne « %s » référencée dans les statistiques n'existe pas" -#~ msgid "insufficient shared memory for free space map" -#~ msgstr "mémoire partagée insuffisante pour la structure FSM" +#~ msgid "column name list not allowed in CREATE TABLE / AS EXECUTE" +#~ msgstr "la liste de noms de colonnes n'est pas autorisée dans CREATE TABLE / AS EXECUTE" -#~ msgid "could not set statistics collector timer: %m" -#~ msgstr "n'a pas pu configurer le timer du récupérateur de statistiques : %m" +#~ msgid "combine function for aggregate %u must be declared as STRICT" +#~ msgstr "la fonction d'unification pour l'aggrégat %u doit être déclarée comme STRICT" -#~ msgid "%s: the number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16\n" -#~ msgstr "" -#~ "%s : le nombre de tampons (-B) doit être au moins deux fois le nombre de\n" -#~ "connexions disponibles (-N) et au moins 16\n" +#~ msgid "committed" +#~ msgstr "validé" -#~ msgid "adding missing FROM-clause entry in subquery for table \"%s\"" -#~ msgstr "entrée manquante de la clause FROM dans la sous-requête pour la table « %s »" +#~ msgid "composite type must have at least one attribute" +#~ msgstr "le type composite doit avoir au moins un attribut" -#~ msgid "missing FROM-clause entry in subquery for table \"%s\"" -#~ msgstr "entrée manquante de la clause FROM dans la sous-requête de la table « %s »" +#~ msgid "connect = false and copy_data = true are mutually exclusive options" +#~ msgstr "connect = false et copy_data = true sont des options mutuellement exclusives" -#~ msgid "SELECT FOR UPDATE/SHARE is not supported for inheritance queries" -#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas supporté pour les requêtes d'héritage" +#~ msgid "connect = false and create_slot = true are mutually exclusive options" +#~ msgstr "connect = false et create_slot = true sont des options mutuellement exclusives" -#~ msgid "Ident protocol identifies remote user as \"%s\"" -#~ msgstr "le protocole Ident identifie l'utilisateur distant comme « %s »" +#~ msgid "connection authorized: user=%s database=%s" +#~ msgstr "connexion autorisée : utilisateur=%s, base de données=%s" -#~ msgid "cannot use Ident authentication without usermap field" -#~ msgstr "n'a pas pu utiliser l'authentication Ident sans le champ usermap" +#~ msgid "connection authorized: user=%s database=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" +#~ msgstr "connexion autorisée : utilisateur=%s, base de données=%s, SSL activé (protocole=%s, chiffrement=%s, bits=%d, compression=%s)" -#~ msgid "missing field in file \"%s\" at end of line %d" -#~ msgstr "champ manquant dans le fichier « %s » à la fin de la ligne %d" +#~ msgid "connection authorized: user=%s database=%s application_name=%s" +#~ msgstr "connexion autorisée : utilisateur=%s base de données=%s nom d'application=%s" -#~ msgid "invalid entry in file \"%s\" at line %d, token \"%s\"" -#~ msgstr "entrée invalide dans le fichier « %s » à la ligne %d, jeton « %s »" +#~ msgid "connection authorized: user=%s database=%s application_name=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" +#~ msgstr "connexion autorisée : utilisateur=%s base de données=%s nom d'application=%s SSL activé (protocole=%s, chiffrement=%s, bits=%d, compression=%s)" -#~ msgid "cannot use authentication method \"crypt\" because password is MD5-encrypted" -#~ msgstr "" -#~ "n'a pas pu utiliser la méthode d'authentification « crypt » car le mot de\n" -#~ "passe est chiffré avec MD5" +#~ msgid "connection limit exceeded for non-superusers" +#~ msgstr "limite de connexions dépassée pour les utilisateurs standards" -#~ msgid "File must be owned by the database user and must have no permissions for \"group\" or \"other\"." +#~ msgid "consistent state delayed because recovery snapshot incomplete" +#~ msgstr "état de cohérence pas encore atteint à cause d'un snapshot de restauration incomplet" + +#~ msgid "constraint definition for check constraint \"%s\" does not match" #~ msgstr "" -#~ "Le fichier doit appartenir au propriétaire de la base de données et ne doit\n" -#~ "pas avoir de droits pour un groupe ou pour les autres." +#~ "la définition de la contrainte « %s » pour la contrainte de vérification ne\n" +#~ "correspond pas" -#~ msgid "unsafe permissions on private key file \"%s\"" -#~ msgstr "droits non sûrs sur le fichier de la clé privée « %s »" +#~ msgid "constraints on foreign tables are not supported" +#~ msgstr "les contraintes sur les tables distantes ne sont pas supportées" -#~ msgid "could not get security token from context" -#~ msgstr "n'a pas pu récupérer le jeton de sécurité à partir du contexte" +#~ msgid "converting trigger group into constraint \"%s\" %s" +#~ msgstr "conversion du groupe de trigger en une contrainte « %s » %s" -#~ msgid "GSSAPI not implemented on this server" -#~ msgstr "GSSAPI non implémenté sur ce serveur" +#~ msgid "corrupted item pointer: offset = %u, length = %u" +#~ msgstr "pointeur d'élément corrompu : décalage = %u, longueur = %u" -#~ msgid "Kerberos 5 not implemented on this server" -#~ msgstr "Kerberos 5 non implémenté sur ce serveur" +#~ msgid "could not access root certificate file \"%s\": %m" +#~ msgstr "n'a pas pu accéder au fichier du certificat racine « %s » : %m" -#~ msgid "unexpected Kerberos user name received from client (received \"%s\", expected \"%s\")" -#~ msgstr "" -#~ "nom d'utilisateur Kerberos inattendu reçu à partir du client (reçu « %s »,\n" -#~ "attendu « %s »)" +#~ msgid "could not bind %s socket: %m" +#~ msgstr "n'a pas pu se lier à la socket %s : %m" -#~ msgid "cannot change number of columns in view" -#~ msgstr "ne peut pas modifier le nombre de colonnes dans la vue" +#~ msgid "could not change directory to \"%s\"" +#~ msgstr "n'a pas pu accéder au répertoire « %s »" -#~ msgid "Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\"." -#~ msgstr "" -#~ "Pensez à compacter cette relation en utilisant VACUUM FULL ou à augmenter le\n" -#~ "paramètre de configuration « max_fsm_pages »." +#~ msgid "could not change directory to \"%s\": %s" +#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s" + +#~ msgid "could not close control file: %m" +#~ msgstr "n'a pas pu fermer le fichier de contrôle : %m" + +#~ msgid "could not close directory \"%s\": %s\n" +#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n" -#~ msgid "relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space" -#~ msgstr "" -#~ "la relation « %s.%s » contient plus de « max_fsm_pages » pages d'espace\n" -#~ "libre utile" +#~ msgid "could not close log file %s: %m" +#~ msgstr "n'a pas pu fermer le fichier de transactions « %s » : %m" -#~ msgid "constraint definition for check constraint \"%s\" does not match" +#~ msgid "could not close relation mapping file \"%s\": %m" +#~ msgstr "n'a pas pu fermer le fichier de correspondance des relations « %s » : %m" + +#~ msgid "could not close two-phase state file \"%s\": %m" #~ msgstr "" -#~ "la définition de la contrainte « %s » pour la contrainte de vérification ne\n" -#~ "correspond pas" +#~ "n'a pas pu fermer le fichier d'état de la validation en deux phases nommé\n" +#~ "« %s » : %m" -#~ msgid "multiple constraints named \"%s\" were dropped" -#~ msgstr "les contraintes multiples nommées « %s » ont été supprimées" +#~ msgid "could not close two-phase state file: %m" +#~ msgstr "n'a pas pu fermer le fichier d'état de la validation en deux phases : %m" -#~ msgid "there are objects dependent on %s" -#~ msgstr "des objets dépendent de %s" +#~ msgid "could not complete SSL handshake on renegotiation, too many failures" +#~ msgstr "n'a pas pu terminer la poignée de main de renégotiation, trop d'échecs" -#~ msgid "failed to drop all objects depending on %s" -#~ msgstr "échec lors de la suppression de tous les objets dépendant de %s" +#~ msgid "could not create %s socket: %m" +#~ msgstr "n'a pas pu créer le socket %s : %m" -#~ msgid "parser stack overflow" -#~ msgstr "saturation de la pile de l'analyseur" +#~ msgid "could not create XPath object" +#~ msgstr "n'a pas pu créer l'objet XPath" -#~ msgid "syntax error; also virtual memory exhausted" -#~ msgstr "erreur de syntaxe ; de plus, mémoire virtuelle saturée" +#~ msgid "could not create control file \"%s\": %m" +#~ msgstr "n'a pas pu créer le fichier de contrôle « %s » : %m" -#~ msgid "syntax error: cannot back up" -#~ msgstr "erreur de syntaxe : n'a pas pu revenir" +#~ msgid "could not create log file \"%s\": %m" +#~ msgstr "n'a pas pu créer le journal applicatif « %s » : %m" -#~ msgid "log_restartpoints = %s" -#~ msgstr "log_restartpoints = %s" +#~ msgid "could not create signal dispatch thread: error code %lu\n" +#~ msgstr "n'a pas pu créer le thread de répartition des signaux : code d'erreur %lu\n" -#~ msgid "It looks like you need to initdb or install locale support." +#~ msgid "could not create two-phase state file \"%s\": %m" #~ msgstr "" -#~ "Il semble que vous avez besoin d'exécuter initdb ou d'installer le support\n" -#~ "des locales." +#~ "n'a pas pu créer le fichier de statut de la validation en deux phases nommé\n" +#~ "« %s » : %m" -#~ msgid "The database cluster was initialized with LOCALE_NAME_BUFLEN %d, but the server was compiled with LOCALE_NAME_BUFLEN %d." +#~ msgid "could not determine actual result type for function declared to return type %s" #~ msgstr "" -#~ "Le cluster de bases de données a été initialisé avec un LOCALE_NAME_BUFLEN\n" -#~ "à %d alors que le serveur a été compilé avec un LOCALE_NAME_BUFLEN à %d." +#~ "n'a pas pu déterminer le type du résultat actuel pour la fonction déclarant\n" +#~ "renvoyer le type %s" -#~ msgid "invalid LC_CTYPE setting" -#~ msgstr "paramètre LC_CTYPE invalide" +#~ msgid "could not determine data type for argument 1" +#~ msgstr "n'a pas pu déterminer le type de données pour l'argument 1" -#~ msgid "GIN index does not support search with void query" -#~ msgstr "les index GIN ne supportent pas la recherche avec des requêtes vides" +#~ msgid "could not determine data type for argument 2" +#~ msgstr "n'a pas pu déterminer le type de données pour l'argument 2" -#~ msgid "fillfactor=%d is out of range (should be between %d and 100)" -#~ msgstr "le facteur de remplissage (%d) est en dehors des limites (il devrait être entre %d et 100)" +#~ msgid "could not determine input data types" +#~ msgstr "n'a pas pu déterminer les types de données en entrée" -#, fuzzy -#~ msgid "wrong number of array_subscripts" -#~ msgstr "mauvais nombre d'indices du tableau" +#~ msgid "could not determine which collation to use for initcap() function" +#~ msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction initcap()" -#~ msgid "could not create XPath object" -#~ msgstr "n'a pas pu créer l'objet XPath" +#~ msgid "could not determine which collation to use for upper() function" +#~ msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction upper()" -#~ msgid "multiple TRUNCATE events specified" -#~ msgstr "multiples événements TRUNCATE spécifiés" +#~ msgid "could not enable credential reception: %m" +#~ msgstr "n'a pas pu activer la réception de lettres de créance : %m" -#~ msgid "multiple DELETE events specified" -#~ msgstr "multiples événements DELETE spécifiés" +#~ msgid "could not extend relation %s: %m" +#~ msgstr "n'a pas pu étendre la relation %s : %m" -#~ msgid "hurrying in-progress restartpoint" -#~ msgstr "accélération du restartpoint en cours" +#~ msgid "could not fdatasync log file %s: %m" +#~ msgstr "n'a pas pu synchroniser sur disque (fdatasync) le journal de transactions %s : %m" -#~ msgid "NEW used in query that is not in a rule" -#~ msgstr "NEW utilisé dans une requête qui ne fait pas partie d'une règle" +#~ msgid "could not find range type for data type %s" +#~ msgstr "n'a pas pu trouver le type range pour le type de données %s" -#~ msgid "OLD used in query that is not in a rule" -#~ msgstr "OLD utilisé dans une requête qui n'est pas une règle" +#~ msgid "could not format \"circle\" value" +#~ msgstr "n'a pas pu formater la valeur « circle »" -#~ msgid "adding missing FROM-clause entry for table \"%s\"" -#~ msgstr "ajout d'une entrée manquante dans FROM (table « %s »)" +#~ msgid "could not format \"path\" value" +#~ msgstr "n'a pas pu formater la valeur « path »" -#~ msgid "SELECT FOR UPDATE/SHARE is not allowed in subqueries" -#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé dans les sous-requêtes" +#~ msgid "could not fsync control file: %m" +#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier de contrôle : %m" -#~ msgid "unsupported PAM conversation %d/%s" -#~ msgstr "conversation PAM %d/%s non supportée" +#~ msgid "could not fsync log file %s: %m" +#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier de transactions « %s » : %m" -#~ msgid "could not seek to end of segment %u of relation %s: %m" -#~ msgstr "n'a pas pu se déplacer à la fin du segment %u de la relation %s : %m" +#~ msgid "could not fsync log segment %s: %m" +#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le segment du journal des transactions %s : %m" + +#~ msgid "could not fsync relation mapping file \"%s\": %m" +#~ msgstr "n'a pas pu synchroniser (fsync) le fichier de correspondance des relations « %s » : %m" #~ msgid "could not fsync segment %u of relation %s but retrying: %m" #~ msgstr "" @@ -29200,185 +29258,224 @@ #~ "n'a pas pu synchroniser sur disque (fsync) le segment %u de la relation\n" #~ "%s : %m" -#~ msgid "could not open segment %u of relation %s: %m" -#~ msgstr "n'a pas pu ouvrir le segment %u de la relation %s : %m" +#~ msgid "could not fsync two-phase state file \"%s\": %m" +#~ msgstr "" +#~ "n'a pas pu synchroniser sur disque (fsync) le fichier d'état de la\n" +#~ "validation en deux phases nommé « %s » : %m" -#~ msgid "could not write block %u of relation %s: %m" -#~ msgstr "n'a pas pu écrire le bloc %u de la relation %s : %m" +#~ msgid "could not fsync two-phase state file: %m" +#~ msgstr "" +#~ "n'a pas pu synchroniser sur disque (fsync) le fichier d'état de la\n" +#~ "validation en deux phases : %m" -#~ msgid "could not read block %u of relation %s: %m" -#~ msgstr "n'a pas pu lire le bloc %u de la relation %s : %m" +#~ msgid "could not get effective UID from peer credentials: %m" +#~ msgstr "n'a pas pu obtenir l'UID réel à partir des pièces d'identité de l'autre : %m" + +#~ msgid "could not get keyword values for locale \"%s\": %s" +#~ msgstr "n'a pas pu obtenir les valeurs des mots clés pour la locale « %s » : %s" + +#~ msgid "could not get security token from context" +#~ msgstr "n'a pas pu récupérer le jeton de sécurité à partir du contexte" + +#~ msgid "could not identify current directory: %s" +#~ msgstr "n'a pas pu identifier le répertoire courant : %s" + +#~ msgid "could not link file \"%s\" to \"%s\" (initialization of log file): %m" +#~ msgstr "n'a pas pu lier le fichier « %s » à « %s » (initialisation du journal de transactions) : %m" + +#~ msgid "could not load wldap32.dll" +#~ msgstr "n'a pas pu charger wldap32.dll" + +#~ msgid "could not open BufFile \"%s\"" +#~ msgstr "n'a pas pu ouvrir le BufFile « %s »" + +#~ msgid "could not open archive status directory \"%s\": %m" +#~ msgstr "n'a pas pu accéder au répertoire du statut des archives « %s » : %m" + +#~ msgid "could not open control file \"%s\": %m" +#~ msgstr "n'a pas pu ouvrir le fichier de contrôle « %s » : %m" + +#~ msgid "could not open directory \"%s\": %s\n" +#~ msgstr "n'a pas pu ouvrir le répertoire « %s » : %s\n" + +#~ msgid "could not open directory \"pg_tblspc\": %m" +#~ msgstr "n'a pas pu ouvrir le répertoire « pg_tblspc » : %m" + +#~ msgid "could not open file \"%s\" (log file %u, segment %u): %m" +#~ msgstr "n'a pas pu ouvrir le fichier « %s » (journal de transactions %u, segment %u) : %m" + +#~ msgid "could not open new log file \"%s\": %m" +#~ msgstr "n'a pas pu ouvrir le nouveau journal applicatif « %s » : %m" + +#~ msgid "could not open recovery command file \"%s\": %m" +#~ msgstr "n'a pas pu ouvrir le fichier de restauration « %s » : %m" #~ msgid "could not open relation %s: %m" #~ msgstr "n'a pas pu ouvrir la relation %s : %m" -#~ msgid "could not extend relation %s: %m" -#~ msgstr "n'a pas pu étendre la relation %s : %m" +#~ msgid "could not open relation mapping file \"%s\": %m" +#~ msgstr "n'a pas pu ouvrir le fichier de correspondance des relations « %s » : %m" -#~ msgid "could not seek to block %u of relation %s: %m" -#~ msgstr "n'a pas pu se positionner sur le bloc %u de la relation %s : %m" +#~ msgid "could not open segment %u of relation %s: %m" +#~ msgstr "n'a pas pu ouvrir le segment %u de la relation %s : %m" -#~ msgid "could not remove segment %u of relation %s: %m" -#~ msgstr "n'a pas pu supprimer le segment %u de la relation %s : %m" +#~ msgid "could not open tablespace directory \"%s\": %m" +#~ msgstr "n'a pas pu ouvrir le répertoire du tablespace « %s » : %m" -#~ msgid "could not remove relation %s: %m" -#~ msgstr "n'a pas pu supprimer la relation %s : %m" +#~ msgid "could not open transaction log file \"%s\": %m" +#~ msgstr "n'a pas pu ouvrir le journal des transactions « %s » : %m" -#~ msgid "SELECT FOR UPDATE/SHARE is not supported within a query with multiple result relations" +#~ msgid "could not open two-phase state file \"%s\": %m" #~ msgstr "" -#~ "SELECT FOR UPDATE/SHARE n'est pas supporté dans une requête avec plusieurs\n" -#~ "relations" +#~ "n'a pas pu ouvrir le fichier d'état de la validation en deux phases nommé\n" +#~ "« %s » : %m" -#~ msgid "cannot set session authorization within security-definer function" -#~ msgstr "ne peut pas exécuter SESSION AUTHORIZATION sur la fonction SECURITY DEFINER" +#~ msgid "could not open write-ahead log directory \"%s\": %m" +#~ msgstr "n'a pas pu ouvrir le répertoire des journaux de transactions « %s » : %m" -#~ msgid "cannot specify CSV in BINARY mode" -#~ msgstr "ne peut pas spécifier CSV en mode binaire (BINARY)" +#~ msgid "could not open write-ahead log file \"%s\": %m" +#~ msgstr "n'a pas pu écrire dans le journal de transactions « %s » : %m" -#~ msgid "invalid role password \"%s\"" -#~ msgstr "mot de passe « %s » de l'utilisateur invalide" +#~ msgid "could not parse transaction log location \"%s\"" +#~ msgstr "n'a pas pu analyser l'emplacement du journal des transactions « %s »" -#~ msgid "invalid role name \"%s\"" -#~ msgstr "nom de rôle « %s » invalide" +#~ msgid "could not read block %u of relation %s: %m" +#~ msgstr "n'a pas pu lire le bloc %u de la relation %s : %m" -#~ msgid "invalid database name \"%s\"" -#~ msgstr "nom de base de données « %s » invalide" +#~ msgid "could not read directory \"%s\": %s\n" +#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n" -#~ msgid "This parameter cannot be changed after server start." -#~ msgstr "Ce paramètre ne peut pas être modifié après le lancement du serveur" +#~ msgid "could not read file \"%s\", read %d of %d: %m" +#~ msgstr "n'a pas pu lire le fichier « %s », lu %d sur %d : %m" -#~ msgid "attempted change of parameter \"%s\" ignored" -#~ msgstr "tentative de modification du paramètre « %s » ignoré" +#~ msgid "could not read file \"%s\", read %d of %u: %m" +#~ msgstr "n'a pas pu lire le fichier « %s », a lu %d sur %u : %m" -#~ msgid "Sets the regular expression \"flavor\"." -#~ msgstr "Initialise l'expression rationnelle « flavor »." +#~ msgid "could not read file \"%s\": read %d of %d" +#~ msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %d" -#~ msgid "Automatically adds missing table references to FROM clauses." +#~ msgid "could not read from control file: %m" +#~ msgstr "n'a pas pu lire le fichier de contrôle : %m" + +#~ msgid "could not read from control file: read %d bytes, expected %d" +#~ msgstr "n'a pas pu lire le fichier de contrôle : lu %d octets, %d attendus" + +#~ msgid "could not read from log segment %s, offset %u, length %lu: %m" +#~ msgstr "n'a pas pu lire le journal de transactions %s, décalage %u, longueur %lu : %m" + +#~ msgid "could not read from log segment %s, offset %u, length %zu: %m" +#~ msgstr "n'a pas pu lire le segment %s du journal de transactions, décalage %u, longueur %zu : %m" + +#~ msgid "could not read relation mapping file \"%s\": %m" +#~ msgstr "n'a pas pu lire le fichier de correspondance des relations « %s » : %m" + +#~ msgid "could not read symbolic link \"%s\"" +#~ msgstr "n'a pas pu lire le lien symbolique « %s »" + +#~ msgid "could not read two-phase state file \"%s\": %m" #~ msgstr "" -#~ "Ajoute automatiquement les références à la table manquant dans les clauses\n" -#~ "FROM." +#~ "n'a pas pu lire le fichier d'état de la validation en deux phases nommé\n" +#~ "« %s » : %m" -#~ msgid "Table contains duplicated values." -#~ msgstr "La table contient des valeurs dupliquées." +#~ msgid "could not recreate two-phase state file \"%s\": %m" +#~ msgstr "" +#~ "n'a pas pu re-créer le fichier d'état de la validation en deux phases nommé\n" +#~ "« %s » : %m" -#~ msgid "index row size %lu exceeds btree maximum, %lu" -#~ msgstr "la taille de la ligne index %lu dépasse le maximum de btree, %lu" +#~ msgid "could not remove database directory \"%s\"" +#~ msgstr "n'a pas pu supprimer le répertoire de bases de données « %s »" -#~ msgid "DISTINCT is supported only for single-argument aggregates" -#~ msgstr "DISTINCT est seulement supporté pour les agrégats à un seul argument" +#~ msgid "could not remove file or directory \"%s\": %s\n" +#~ msgstr "n'a pas pu supprimer le fichier ou répertoire « %s » : %s\n" -#~ msgid "database system is in consistent recovery mode" -#~ msgstr "le système de bases de données est dans un mode de restauration cohérent" +#~ msgid "could not remove old transaction log file \"%s\": %m" +#~ msgstr "n'a pas pu supprimer l'ancien journal de transaction « %s » : %m" -#~ msgid "frame start at CURRENT ROW is not implemented" -#~ msgstr "début du frame à CURRENT ROW n'est pas implémenté" +#~ msgid "could not remove relation %s: %m" +#~ msgstr "n'a pas pu supprimer la relation %s : %m" -#~ msgid "Rebuild the index with REINDEX." -#~ msgstr "Reconstruisez l'index avec REINDEX." +#~ msgid "could not remove segment %u of relation %s: %m" +#~ msgstr "n'a pas pu supprimer le segment %u de la relation %s : %m" -#~ msgid "index \"%s\" contains %.0f row versions, but table contains %.0f row versions" +#~ msgid "could not remove two-phase state file \"%s\": %m" #~ msgstr "" -#~ "l'index « %s » contient %.0f versions de ligne, mais la table contient %.0f\n" -#~ "versions de ligne" +#~ "n'a pas pu supprimer le fichier d'état de la validation en deux phases\n" +#~ "« %s » : %m" -#~ msgid "" -#~ "%u index pages have been deleted, %u are currently reusable.\n" -#~ "%s." -#~ msgstr "" -#~ "%u pages d'index ont été supprimées, %u sont actuellement réutilisables.\n" -#~ "%s." +#~ msgid "could not rename file \"%s\" to \"%s\" (initialization of log file): %m" +#~ msgstr "n'a pas pu renommer le fichier « %s » en « %s » (initialisation du journal de transactions) : %m" -#~ msgid "\"%s\": moved %u row versions, truncated %u to %u pages" -#~ msgstr "« %s » : %u versions de ligne déplacées, %u pages tronquées sur %u" +#~ msgid "could not rename old write-ahead log file \"%s\": %m" +#~ msgstr "n'a pas pu renommer l'ancien journal de transactions « %s » : %m" -#~ msgid "" -#~ "%.0f dead row versions cannot be removed yet.\n" -#~ "Nonremovable row versions range from %lu to %lu bytes long.\n" -#~ "There were %.0f unused item pointers.\n" -#~ "Total free space (including removable row versions) is %.0f bytes.\n" -#~ "%u pages are or will become empty, including %u at the end of the table.\n" -#~ "%u pages containing %.0f free bytes are potential move destinations.\n" -#~ "%s." -#~ msgstr "" -#~ "%.0f versions de lignes mortes ne peuvent pas encore être supprimées.\n" -#~ "Les versions non supprimables de ligne vont de %lu to %lu octets.\n" -#~ "Il existait %.0f pointeurs d'éléments inutilisés.\n" -#~ "L'espace libre total (incluant les versions supprimables de ligne) est de\n" -#~ "%.0f octets.\n" -#~ "%u pages sont ou deviendront vides, ceci incluant %u pages en fin de la\n" -#~ "table.\n" -#~ "%u pages contenant %.0f octets libres sont des destinations de déplacement\n" -#~ "disponibles.\n" -#~ "%s." +#~ msgid "could not reposition held cursor" +#~ msgstr "n'a pas pu repositionner le curseur détenu" -#~ msgid "relation \"%s\" TID %u/%u: DeleteTransactionInProgress %u --- cannot shrink relation" -#~ msgstr "" -#~ "relation « %s », TID %u/%u : DeleteTransactionInProgress %u --- n'a pas pu\n" -#~ "diminuer la taille de la relation" +#~ msgid "could not rmdir directory \"%s\": %m" +#~ msgstr "n'a pas pu supprimer le répertoire « %s » : %m" -#~ msgid "relation \"%s\" TID %u/%u: InsertTransactionInProgress %u --- cannot shrink relation" -#~ msgstr "" -#~ "relation « %s », TID %u/%u : InsertTransactionInProgress %u --- n'a pas pu\n" -#~ "diminuer la taille de la relation" +#~ msgid "could not seek in log file %s to offset %u: %m" +#~ msgstr "n'a pas pu se déplacer dans le fichier de transactions « %s » au décalage %u : %m" -#~ msgid "relation \"%s\" TID %u/%u: dead HOT-updated tuple --- cannot shrink relation" -#~ msgstr "" -#~ "relation « %s », TID %u/%u : ligne morte mise à jour par HOT --- n'a pas pu\n" -#~ "diminuer la taille de la relation" +#~ msgid "could not seek in log segment %s to offset %u: %m" +#~ msgstr "n'a pas pu se déplacer dans le journal de transactions %s au décalage %u : %m" -#~ msgid "relation \"%s\" TID %u/%u: XMIN_COMMITTED not set for transaction %u --- cannot shrink relation" +#~ msgid "could not seek in two-phase state file: %m" #~ msgstr "" -#~ "relation « %s », TID %u/%u : XMIN_COMMITTED non configuré pour la\n" -#~ "transaction %u --- n'a pas pu diminuer la taille de la relation" +#~ "n'a pas pu se déplacer dans le fichier de statut de la validation en deux\n" +#~ "phases : %m" -#~ msgid "directory \"%s\" is not empty" -#~ msgstr "le répertoire « %s » n'est pas vide" +#~ msgid "could not seek to block %u in file \"%s\": %m" +#~ msgstr "n'a pas pu trouver le bloc %u dans le fichier « %s » : %m" -#~ msgid "number of distinct values %g is too low" -#~ msgstr "le nombre de valeurs distinctes %g est trop basse" +#~ msgid "could not seek to block %u of relation %s: %m" +#~ msgstr "n'a pas pu se positionner sur le bloc %u de la relation %s : %m" -#~ msgid "cannot truncate system relation \"%s\"" -#~ msgstr "ne peut pas tronquer la relation système « %s »" +#~ msgid "could not seek to end of segment %u of relation %s: %m" +#~ msgstr "n'a pas pu se déplacer à la fin du segment %u de la relation %s : %m" -#~ msgid "shared table \"%s\" can only be reindexed in stand-alone mode" -#~ msgstr "la table partagée « %s » peut seulement être réindexé en mode autonome" +#~ msgid "could not set socket to blocking mode: %m" +#~ msgstr "n'a pas pu activer le mode bloquant pour la socket : %m" -#~ msgid "shared index \"%s\" can only be reindexed in stand-alone mode" -#~ msgstr "un index partagé « %s » peut seulement être réindexé en mode autonome" +#~ msgid "could not set statistics collector timer: %m" +#~ msgstr "n'a pas pu configurer le timer du récupérateur de statistiques : %m" -#~ msgid "Sets the language used in DO statement if LANGUAGE is not specified." +#~ msgid "could not stat control file \"%s\": %m" +#~ msgstr "n'a pas pu récupérer des informations sur le fichier de contrôle « %s » : %m" + +#~ msgid "could not stat file or directory \"%s\": %s\n" #~ msgstr "" -#~ "Configure le langage utilisé dans une instruction DO si la clause LANGUAGE n'est\n" -#~ "pas spécifiée." +#~ "n'a pas pu récupérer les informations sur le fichier ou répertoire\n" +#~ "« %s » : %s\n" -#~ msgid "This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by \"client_encoding\"." +#~ msgid "could not stat two-phase state file \"%s\": %m" #~ msgstr "" -#~ "Cette erreur peut aussi survenir si la séquence d'octets ne correspond pas\n" -#~ "au jeu de caractères attendu par le serveur, le jeu étant contrôlé par\n" -#~ "« client_encoding »." +#~ "n'a pas pu récupérer des informations sur le fichier d'état de la validation\n" +#~ "en deux phases nommé « %s » : %m" -#~ msgid "redo starts at %X/%X, consistency will be reached at %X/%X" -#~ msgstr "la restauration comme à %X/%X, la cohérence sera atteinte à %X/%X" +#~ msgid "could not write block %ld of temporary file: %m" +#~ msgstr "n'a pas pu écrire le bloc %ld du fichier temporaire : %m" -#~ msgid "binary value is out of range for type bigint" -#~ msgstr "la valeur binaire est en dehors des limites du type bigint" +#~ msgid "could not write block %u of relation %s: %m" +#~ msgstr "n'a pas pu écrire le bloc %u de la relation %s : %m" -#~ msgid "transaction is read-only" -#~ msgstr "la transaction est en lecture seule" +#~ msgid "could not write to control file: %m" +#~ msgstr "n'a pas pu écrire le fichier de contrôle : %m" -#~ msgid "PID %d is among the slowest backends." -#~ msgstr "Le PID %d est parmi les processus serveur les plus lents." +#~ msgid "could not write to hash-join temporary file: %m" +#~ msgstr "n'a pas pu écrire le fichier temporaire de la jointure hâchée : %m" -#, fuzzy -#~ msgid "invalid WAL message received from primary" -#~ msgstr "format du message invalide" +#~ msgid "could not write to relation mapping file \"%s\": %m" +#~ msgstr "n'a pas pu écrire le fichier de correspondance des relations « %s » : %m" -#, fuzzy -#~ msgid "sorry, too many standbys already" -#~ msgstr "désolé, trop de clients sont déjà connectés" +#~ msgid "could not write to temporary file: %m" +#~ msgstr "n'a pas pu écrire dans le fichier temporaire : %m" -#~ msgid "WAL file SYSID is %s, pg_control SYSID is %s" -#~ msgstr "le SYSID du journal de transactions WAL est %s, celui de pg_control est %s" +#~ msgid "could not write to tuplestore temporary file: %m" +#~ msgstr "n'a pas pu écrire le fichier temporaire tuplestore : %m" + +#~ msgid "could not write two-phase state file: %m" +#~ msgstr "n'a pas pu écrire dans le fichier d'état de la validation en deux phases : %m" #, fuzzy #~ msgid "couldn't put socket to blocking mode: %m" @@ -29388,1217 +29485,1185 @@ #~ msgid "couldn't put socket to non-blocking mode: %m" #~ msgstr "n'a pas pu activer le mode non-bloquant pour la socket : %s\n" -#~ msgid "not enough shared memory for background writer" -#~ msgstr "pas assez de mémoire partagée pour le processus d'écriture en tâche de fond" - -#~ msgid "connection limit exceeded for non-superusers" -#~ msgstr "limite de connexions dépassée pour les utilisateurs standards" - -#~ msgid "not enough shared memory for walreceiver" +#~ msgid "data directory \"%s\" has group or world access" #~ msgstr "" -#~ "pas assez de mémoire partagée pour le processus de réception des journaux de\n" -#~ "transactions" +#~ "le répertoire des données « %s » est accessible par le groupe et/ou par les\n" +#~ "autres" -#~ msgid "not enough shared memory for walsender" -#~ msgstr "pas assez de mémoire partagée pour le processus d'envoi des journaux de transactions" +#~ msgid "data type \"%s.%s\" required for logical replication does not exist" +#~ msgstr "le type de données « %s/%s » requis par la réplication logique n'existe pas" -#~ msgid "unlogged operation performed, data may be missing" -#~ msgstr "opération réalisée non tracée, les données pourraient manquer" +#~ msgid "data type %s has no default btree operator class" +#~ msgstr "le type de données %s n'a pas de classe d'opérateurs btree par défaut" -#~ msgid "During recovery, allows connections and queries. During normal running, causes additional info to be written to WAL to enable hot standby mode on WAL standby nodes." -#~ msgstr "" -#~ "Lors de la restauration, autorise les connexions et les requêtes. Lors d'une\n" -#~ "exécution normale, fait que des informations supplémentaires sont écrites dans\n" -#~ "les journaux de transactions pour activer le mode Hot Standby sur les nœuds\n" -#~ "en attente." +#~ msgid "data type %s has no default hash operator class" +#~ msgstr "le type de données %s n'a pas de classe d'opérateurs hash par défaut" -#~ msgid "archive_command must be defined before online backups can be made safely." -#~ msgstr "" -#~ "archive_command doit être défini avant que les sauvegardes à chaud puissent\n" -#~ "s'effectuer correctement." +#~ msgid "database \"%s\" not found" +#~ msgstr "base de données « %s » non trouvée" -#~ msgid "archive_mode must be enabled at server start." -#~ msgstr "archive_mode doit être activé au lancement du serveur." +#~ msgid "database name cannot be qualified" +#~ msgstr "le nom de la base de donnée ne peut être qualifié" -#~ msgid "WAL archiving is not active" -#~ msgstr "l'archivage des journaux de transactions n'est pas actif" +#~ msgid "database system is in consistent recovery mode" +#~ msgstr "le système de bases de données est dans un mode de restauration cohérent" -#~ msgid "usermap \"%s\"" -#~ msgstr "correspondance utilisateur « %s »" +#~ msgid "date/time value \"%s\" is no longer supported" +#~ msgstr "la valeur date/time « %s » n'est plus supportée" -#~ msgid "restartpoint_command = '%s'" -#~ msgstr "restartpoint_command = '%s'" +#~ msgid "date/time value \"current\" is no longer supported" +#~ msgstr "la valeur « current » pour la date et heure n'est plus supportée" -#~ msgid "recovery restart point at %X/%X with latest known log time %s" -#~ msgstr "" -#~ "point de relancement de la restauration sur %X/%X avec %s comme dernière\n" -#~ "date connue du journal" +#~ msgid "default expression must not return a set" +#~ msgstr "l'expression par défaut ne doit pas renvoyer un ensemble" -#~ msgid "Not safe to send CSV data\n" -#~ msgstr "Envoi non sûr des données CSV\n" +#~ msgid "default values on foreign tables are not supported" +#~ msgstr "les valeurs par défaut ne sont pas supportées sur les tables distantes" -#~ msgid "parameter \"standby_mode\" requires a Boolean value" -#~ msgstr "le paramètre « standby_mode » requiert une valeur booléenne" +#~ msgid "directory \"%s\" is not empty" +#~ msgstr "le répertoire « %s » n'est pas vide" -#~ msgid "parameter \"recovery_target_inclusive\" requires a Boolean value" -#~ msgstr "le paramètre « recovery_target_inclusive » requiert une valeur booléenne" +#~ msgid "distance in phrase operator should be non-negative and less than %d" +#~ msgstr "la distance dans l'opérateur de phrase devrait pas positif et inférieur à %d" -#~ msgid "cannot drop \"%s\" because it is being used by active queries in this session" -#~ msgstr "" -#~ "ne peut pas supprimer « %s » car cet objet est en cours d'utilisation par\n" -#~ "des requêtes actives dans cette session" +#~ msgid "domain %s has multiple constraints named \"%s\"" +#~ msgstr "le domaine %s a plusieurs contraintes nommées « %s »" -#~ msgid "unrecognized \"log_destination\" key word: \"%s\"" -#~ msgstr "mot clé « log_destination » non reconnu : « %s »" +#~ msgid "dynamic shared memory is disabled" +#~ msgstr "la mémoire partagée dynamique est désactivée" -#~ msgid "invalid list syntax for parameter \"log_destination\"" -#~ msgstr "syntaxe de liste invalide pour le paramètre « log_destination »" +#~ msgid "encoding name too long" +#~ msgstr "nom d'encodage trop long" -#~ msgid "Sets immediate fsync at commit." -#~ msgstr "Configure un fsync immédiat lors du commit." +#~ msgid "epoll_ctl() failed: %m" +#~ msgstr "échec de epoll_ctl() : %m" -#~ msgid "could not open new log file \"%s\": %m" -#~ msgstr "n'a pas pu ouvrir le nouveau journal applicatif « %s » : %m" +#~ msgid "epoll_wait() failed: %m" +#~ msgstr "échec de epoll_wait() : %m" -#~ msgid "could not create log file \"%s\": %m" -#~ msgstr "n'a pas pu créer le journal applicatif « %s » : %m" +#~ msgid "event trigger name cannot be qualified" +#~ msgstr "le nom du trigger sur événement ne peut pas être qualifié" -#~ msgid "Ident authentication is not supported on local connections on this platform" -#~ msgstr "l'authentification Ident n'est pas supportée sur les connexions locales sur cette plateforme" +#~ msgid "extension name cannot be qualified" +#~ msgstr "le nom de l'extension ne peut pas être qualifié" -#~ msgid "could not get effective UID from peer credentials: %m" -#~ msgstr "n'a pas pu obtenir l'UID réel à partir des pièces d'identité de l'autre : %m" +#~ msgid "failed to drop all objects depending on %s" +#~ msgstr "échec lors de la suppression de tous les objets dépendant de %s" -#~ msgid "could not enable credential reception: %m" -#~ msgstr "n'a pas pu activer la réception de lettres de créance : %m" +#~ msgid "fillfactor=%d is out of range (should be between %d and 100)" +#~ msgstr "le facteur de remplissage (%d) est en dehors des limites (il devrait être entre %d et 100)" -#~ msgid "argument to pg_get_expr() must come from system catalogs" -#~ msgstr "l'argument de pg_get_expr() doit provenir des catalogues systèmes" +#~ msgid "first argument of json_populate_record must be a row type" +#~ msgstr "le premier argument de json_populate_record doit être un type ROW" -#~ msgid "invalid interval value for time zone: day not allowed" -#~ msgstr "valeur d'intervalle invalide pour le fuseau horaire : jour non autorisé" +#~ msgid "first argument of json_populate_recordset must be a row type" +#~ msgstr "le premier argument de json_populate_recordset doit être un type ROW" -#~ msgid "invalid interval value for time zone: month not allowed" -#~ msgstr "valeur d'intervalle invalide pour le fuseau horaire : les mois ne sont pas autorisés" +#~ msgid "foreign key constraint \"%s\" of relation \"%s\" does not exist" +#~ msgstr "la clé étrangère « %s » de la relation « %s » n'existe pas" -#~ msgid "unrecognized \"datestyle\" key word: \"%s\"" -#~ msgstr "mot clé « datestyle » non reconnu : « %s »" +#~ msgid "foreign key constraints are not supported on partitioned tables" +#~ msgstr "les clés étrangères ne sont pas supportées sur les tables partitionnées" -#~ msgid "invalid list syntax for parameter \"datestyle\"" -#~ msgstr "syntaxe de liste invalide pour le paramètre « datestyle »" +#~ msgid "foreign key referencing partitioned table \"%s\" must not be ONLY" +#~ msgstr "la clé étrangère référençant la table partitionnée « %s » ne doit pas être ONLY" -#~ msgid "database \"%s\" not found" -#~ msgstr "base de données « %s » non trouvée" +#~ msgid "foreign-data wrapper name cannot be qualified" +#~ msgstr "le nom du wrapper de données distantes ne peut pas être qualifié" -#~ msgid "composite type must have at least one attribute" -#~ msgstr "le type composite doit avoir au moins un attribut" +#~ msgid "frame start at CURRENT ROW is not implemented" +#~ msgstr "début du frame à CURRENT ROW n'est pas implémenté" -#~ msgid "cannot reference permanent table from temporary table constraint" -#~ msgstr "" -#~ "ne peut pas référencer une table permanente à partir de la contrainte de\n" -#~ "table temporaire" +#~ msgid "free space map contains %d pages in %d relations" +#~ msgstr "la structure FSM contient %d pages dans %d relations" -#~ msgid "cannot reference temporary table from permanent table constraint" -#~ msgstr "" -#~ "ne peut pas référencer une table temporaire à partir d'une contrainte de\n" -#~ "table permanente" +#~ msgid "function \"%s\" already exists in schema \"%s\"" +#~ msgstr "la fonction « %s » existe déjà dans le schéma « %s »" #~ msgid "function \"%s\" is already in schema \"%s\"" #~ msgstr "la fonction « %s » existe déjà dans le schéma « %s »" -#~ msgid "must be superuser to comment on text search template" -#~ msgstr "" -#~ "doit être super-utilisateur pour ajouter un commentaire sur un modèle de\n" -#~ "recherche plein texte" +#~ msgid "function \"%s\" is an aggregate function" +#~ msgstr "la fonction « %s » est une fonction d'agrégat" -#~ msgid "must be superuser to comment on text search parser" -#~ msgstr "" -#~ "doit être super-utilisateur pour ajouter un commentaire sur l'analyseur de\n" -#~ "recherche plein texte" +#~ msgid "function \"%s\" is not a window function" +#~ msgstr "la fonction « %s » n'est pas une fonction window" -#~ msgid "must be superuser to comment on procedural language" -#~ msgstr "" -#~ "doit être super-utilisateur pour ajouter un commentaire sur un langage de\n" -#~ "procédures" +#~ msgid "function \"%s\" is not an aggregate function" +#~ msgstr "la fonction « %s » n'est pas une fonction d'agrégat" -#~ msgid "\"%s\" is not a table, view, or composite type" -#~ msgstr "« %s » n'est pas une table, une vue ou un type composite" +#~ msgid "function \"%s\" must return type \"event_trigger\"" +#~ msgstr "la fonction « %s » doit renvoyer le type « event_trigger »" -#~ msgid "cannot cluster on expressional index \"%s\" because its index access method does not handle null values" -#~ msgstr "" -#~ "ne peut pas exécuter CLUSTER sur l'index à expression « %s » car sa méthode\n" -#~ "d'accès ne gère pas les valeurs NULL" +#~ msgid "function %s must return type \"fdw_handler\"" +#~ msgstr "la fonction %s doit renvoyer le type « fdw_handler »" -#~ msgid "You might be able to work around this by marking column \"%s\" NOT NULL." -#~ msgstr "Vous pouvez contourner ceci en marquant la colonne « %s » comme NOT NULL." +#~ msgid "function %s must return type \"language_handler\"" +#~ msgstr "la fonction %s doit renvoyer le type « language_handler »" -#~ msgid "You might be able to work around this by marking column \"%s\" NOT NULL, or use ALTER TABLE ... SET WITHOUT CLUSTER to remove the cluster specification from the table." -#~ msgstr "" -#~ "Vous pourriez contourner ceci en marquant la colonne « %s » avec la\n" -#~ "contrainte NOT NULL ou en utilisant ALTER TABLE ... SET WITHOUT CLUSTER pour\n" -#~ "supprimer la spécification CLUSTER de la table." +#~ msgid "function %s must return type \"trigger\"" +#~ msgstr "la fonction %s doit renvoyer le type « trigger »" -#~ msgid "cannot cluster on index \"%s\" because access method does not handle null values" -#~ msgstr "" -#~ "ne peut pas créer un cluster sur l'index « %s » car la méthode d'accès de\n" -#~ "l'index ne gère pas les valeurs NULL" +#~ msgid "function %s must return type \"tsm_handler\"" +#~ msgstr "la fonction %s doit renvoyer le type « tsm_handler »" -#~ msgid "clustering \"%s.%s\"" -#~ msgstr "exécution de CLUSTER sur « %s.%s »" +#~ msgid "function %u has too many arguments (%d, maximum is %d)" +#~ msgstr "la fonction %u a trop d'arguments (%d, le maximum étant %d)" -#~ msgid "EnumValuesCreate() can only set a single OID" -#~ msgstr "EnumValuesCreate() peut seulement initialiser un seul OID" +#~ msgid "function expression in FROM cannot refer to other relations of same query level" +#~ msgstr "" +#~ "l'expression de la fonction du FROM ne peut pas faire référence à d'autres\n" +#~ "relations sur le même niveau de la requête" -#~ msgid "index \"%s\" needs VACUUM FULL or REINDEX to finish crash recovery" +#~ msgid "function returning set of rows cannot return null value" #~ msgstr "" -#~ "l'index « %s » a besoin d'un VACUUM FULL ou d'un REINDEX pour terminer la\n" -#~ "récupération suite à un arrêt brutal" +#~ "la fonction renvoyant un ensemble de lignes ne peut pas renvoyer une valeur\n" +#~ "NULL" -#~ msgid "index \"%s\" needs VACUUM or REINDEX to finish crash recovery" +#~ msgid "functions and operators can take at most one set argument" +#~ msgstr "les fonctions et opérateurs peuvent prendre au plus un argument d'ensemble" + +#~ msgid "gist operator family \"%s\" contains function %s with invalid support number %d" #~ msgstr "" -#~ "l'index « %s » a besoin d'un VACUUM ou d'un REINDEX pour terminer la\n" -#~ "récupération suite à un arrêt brutal" +#~ "la famille d'opérateur gist « %s » contient la fonction %s avec\n" +#~ "le numéro de support invalide %d" -#~ msgid "Incomplete insertion detected during crash replay." +#~ msgid "gist operator family \"%s\" contains function %s with wrong signature for support number %d" #~ msgstr "" -#~ "Insertion incomplète détectée lors de la ré-exécution des requêtes suite à\n" -#~ "l'arrêt brutal." +#~ "la famille d'opérateur gist « %s » contient la fonction %s avec une mauvaise\n" +#~ "signature pour le numéro de support %d" -#~ msgid "index %u/%u/%u needs VACUUM FULL or REINDEX to finish crash recovery" +#~ msgid "gist operator family \"%s\" contains operator %s with invalid strategy number %d" #~ msgstr "" -#~ "l'index %u/%u/%u a besoin d'un VACUUM FULL ou d'un REINDEX pour terminer la\n" -#~ "récupération suite à un arrêt brutal" +#~ "la famille d'opérateur gist « %s » contient l'opérateur %s avec le numéro\n" +#~ "de stratégie invalide %d" -#~ msgid "Lines should have the format parameter = 'value'." -#~ msgstr "Les lignes devraient avoir le format paramètre = 'valeur'" +#~ msgid "gist operator family \"%s\" contains operator %s with wrong signature" +#~ msgstr "la famille d'opérateur gist « %s » contient l'opérateur %s avec une mauvaise signature" -#~ msgid "syntax error in recovery command file: %s" -#~ msgstr "erreur de syntaxe dans le fichier de restauration : %s" +#~ msgid "gist operator family \"%s\" contains support procedure %s with cross-type registration" +#~ msgstr "" +#~ "la famille d'opérateur gist « %s » contient la procédure de support\n" +#~ "%s avec un enregistrement inter-type" -#~ msgid "Write-Ahead Log / Streaming Replication" -#~ msgstr "Write-Ahead Log / Réplication en flux" +#~ msgid "hash indexes are not WAL-logged and their use is discouraged" +#~ msgstr "les index hash ne sont pas journalisés, leur utilisation est donc déconseillée" -#~ msgid "unable to open directory pg_tblspc: %m" -#~ msgstr "impossible d'ouvrir le répertoire p_tblspc : %m" +#~ msgid "hash operator class \"%s\" is missing operator(s)" +#~ msgstr "il manque des opérateurs pour la classe d'opérateur hash « %s »" -#~ msgid "unable to read symbolic link %s: %m" -#~ msgstr "incapable de lire le lien symbolique %s : %m" +#~ msgid "hash operator family \"%s\" contains function %s with invalid support number %d" +#~ msgstr "" +#~ "la famille d'opérateur hash « %s » contient la fonction %s avec\n" +#~ "le numéro de support invalide %d" -#~ msgid "index \"%s\" is not a b-tree" -#~ msgstr "l'index « %s » n'est pas un btree" +#~ msgid "hash operator family \"%s\" contains function %s with wrong signature for support number %d" +#~ msgstr "" +#~ "la famille d'opérateur hash « %s » contient la fonction %s avec une mauvaise\n" +#~ "signature pour le numéro de support %d" -#~ msgid "ALTER TYPE USING is only supported on plain tables" -#~ msgstr "ALTER TYPE USING est seulement supportés sur les tables standards" +#~ msgid "hash operator family \"%s\" contains invalid ORDER BY specification for operator %s" +#~ msgstr "" +#~ "la famille d'opérateur hash « %s » contient la spécification ORDER BY\n" +#~ "non supportée pour l'opérateur %s" -#~ msgid "resetting unlogged relations: cleanup %d init %d" -#~ msgstr "réinitialisation des relations non tracées : nettoyage %d initialisation %d" +#~ msgid "hash operator family \"%s\" contains operator %s with invalid strategy number %d" +#~ msgstr "" +#~ "la famille d'opérateur hash « %s » contient l'opérateur %s avec le numéro\n" +#~ "de stratégie invalide %d" -#~ msgid "%s (%x)" -#~ msgstr "%s (%x)" +#~ msgid "hash operator family \"%s\" contains operator %s with wrong signature" +#~ msgstr "la famille d'opérateur hash « %s » contient l'opérateur %s avec une mauvaise signature" -#~ msgid "SSPI error %x" -#~ msgstr "erreur SSPI : %x" +#~ msgid "hash operator family \"%s\" contains support procedure %s with cross-type registration" +#~ msgstr "" +#~ "la famille d'opérateur hash « %s » contient la procédure de support\n" +#~ "%s avec un enregistrement inter-type" -#~ msgid "consistent state delayed because recovery snapshot incomplete" -#~ msgstr "état de cohérence pas encore atteint à cause d'un snapshot de restauration incomplet" +#~ msgid "hash operator family \"%s\" is missing operator(s) for types %s and %s" +#~ msgstr "" +#~ "la famille d'opérateur hash « %s » nécessite des opérateurs supplémentaires\n" +#~ "pour les types %s et %s" -#~ msgid "tablespace %u is not empty" -#~ msgstr "le tablespace %u n'est pas vide" +#~ msgid "hostssl requires SSL to be turned on" +#~ msgstr "hostssl requiert que SSL soit activé" -#~ msgid "subquery in WITH cannot have SELECT INTO" -#~ msgstr "la sous-requête du WITH ne peut pas avoir de SELECT INTO" +#~ msgid "huge TLB pages not supported on this platform" +#~ msgstr "Huge Pages TLB non supporté sur cette plateforme." -#~ msgid "subquery cannot have SELECT INTO" -#~ msgstr "la sous-requête ne peut pas avoir de SELECT INTO" +#~ msgid "hurrying in-progress restartpoint" +#~ msgstr "accélération du restartpoint en cours" -#~ msgid "subquery in FROM cannot have SELECT INTO" -#~ msgstr "la sous-requête du FROM ne peut pas avoir de SELECT INTO" +#~ msgid "ignoring \"%s\" file because no \"%s\" file exists" +#~ msgstr "ignore le fichier « %s » parce que le fichier « %s » n'existe pas" -#~ msgid "DECLARE CURSOR cannot specify INTO" -#~ msgstr "DECLARE CURSOR ne peut pas spécifier INTO" +#~ msgid "ignoring incomplete trigger group for constraint \"%s\" %s" +#~ msgstr "ignore le groupe de trigger incomplet pour la contrainte « %s » %s" -#~ msgid "INSERT ... SELECT cannot specify INTO" -#~ msgstr "INSERT ... SELECT ne peut pas avoir INTO" +#~ msgid "in progress" +#~ msgstr "en cours" -#~ msgid "column name list not allowed in CREATE TABLE / AS EXECUTE" -#~ msgstr "la liste de noms de colonnes n'est pas autorisée dans CREATE TABLE / AS EXECUTE" +#~ msgid "inconsistent use of year %04d and \"BC\"" +#~ msgstr "utilisation non cohérente de l'année %04d et de « BC »" -#~ msgid "CREATE TABLE AS cannot specify INTO" -#~ msgstr "CREATE TABLE AS ne peut pas spécifier INTO" +#~ msgid "incorrect hole size in record at %X/%X" +#~ msgstr "taille du trou incorrect à l'enregistrement %X/%X" -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version, puis quitte\n" +#~ msgid "incorrect total length in record at %X/%X" +#~ msgstr "longueur totale incorrecte à l'enregistrement %X/%X" -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide, puis quitte\n" +#~ msgid "index \"%s\" contains %.0f row versions, but table contains %.0f row versions" +#~ msgstr "" +#~ "l'index « %s » contient %.0f versions de ligne, mais la table contient %.0f\n" +#~ "versions de ligne" -#~ msgid "Make sure the root.crt file is present and readable." -#~ msgstr "Assurez-vous que le certificat racine (root.crt) est présent et lisible" +#~ msgid "index \"%s\" is not a b-tree" +#~ msgstr "l'index « %s » n'est pas un btree" -#~ msgid "See server log for details." -#~ msgstr "Voir les journaux applicatifs du serveur pour plus de détails." +#~ msgid "index \"%s\" is not ready" +#~ msgstr "l'index « %s » n'est pas prêt" -#~ msgid "missing or erroneous pg_hba.conf file" -#~ msgstr "fichier pg_hba.conf manquant ou erroné" +#~ msgid "index \"%s\" needs VACUUM FULL or REINDEX to finish crash recovery" +#~ msgstr "" +#~ "l'index « %s » a besoin d'un VACUUM FULL ou d'un REINDEX pour terminer la\n" +#~ "récupération suite à un arrêt brutal" -#~ msgid "Certificates will not be checked against revocation list." -#~ msgstr "Les certificats ne seront pas vérifiés avec la liste de révocation." +#~ msgid "index \"%s\" needs VACUUM or REINDEX to finish crash recovery" +#~ msgstr "" +#~ "l'index « %s » a besoin d'un VACUUM ou d'un REINDEX pour terminer la\n" +#~ "récupération suite à un arrêt brutal" -#~ msgid "SSL certificate revocation list file \"%s\" not found, skipping: %s" -#~ msgstr "liste de révocation des certificats SSL « %s » introuvable, continue : %s" +#~ msgid "index \"%s\" now contains %.0f row versions in %u pages as reported by parallel vacuum worker" +#~ msgstr "l'index « %s » contient maintenant %.0f versions de lignes dans %u pages, comme indiqué par le worker parallélisé du VACUUM" -#~ msgid "could not access root certificate file \"%s\": %m" -#~ msgstr "n'a pas pu accéder au fichier du certificat racine « %s » : %m" +#~ msgid "index %u/%u/%u needs VACUUM FULL or REINDEX to finish crash recovery" +#~ msgstr "" +#~ "l'index %u/%u/%u a besoin d'un VACUUM FULL ou d'un REINDEX pour terminer la\n" +#~ "récupération suite à un arrêt brutal" -#~ msgid "could not open directory \"pg_tblspc\": %m" -#~ msgstr "n'a pas pu ouvrir le répertoire « pg_tblspc » : %m" +#~ msgid "index expression cannot return a set" +#~ msgstr "l'expression de l'index ne peut pas renvoyer un ensemble" + +#~ msgid "index row size %lu exceeds btree maximum, %lu" +#~ msgstr "la taille de la ligne index %lu dépasse le maximum de btree, %lu" -#~ msgid "standby connections not allowed because wal_level=minimal" -#~ msgstr "connexions standby non autorisées car wal_level=minimal" +#~ msgid "index row size %lu exceeds maximum %lu for index \"%s\"" +#~ msgstr "la taille de la ligne index, %lu, dépasse le maximum, %lu, pour l'index « %s »" -#~ msgid "recovery is still in progress, can't accept WAL streaming connections" -#~ msgstr "la restauration est en cours, ne peut pas accepter les connexions de flux WAL" +#~ msgid "insufficient columns in %s constraint definition" +#~ msgstr "colonnes infuffisantes dans la définition de contrainte de %s" -#~ msgid "must be superuser to drop text search templates" -#~ msgstr "doit être super-utilisateur pour supprimer des modèles de recherche plein texte" +#~ msgid "insufficient shared memory for free space map" +#~ msgstr "mémoire partagée insuffisante pour la structure FSM" -#~ msgid "must be superuser to drop text search parsers" -#~ msgstr "" -#~ "doit être super-utilisateur pour supprimer des analyseurs de recherche plein\n" -#~ "texte" +#~ msgid "interval precision specified twice" +#~ msgstr "précision d'intervalle spécifiée deux fois" -#~ msgid "Must be superuser to drop a foreign-data wrapper." -#~ msgstr "Doit être super-utilisateur pour supprimer un wrapper de données distantes." +#~ msgid "invalid LC_CTYPE setting" +#~ msgstr "paramètre LC_CTYPE invalide" -#~ msgid "permission denied to drop foreign-data wrapper \"%s\"" -#~ msgstr "droit refusé pour supprimer le wrapper de données distantes « %s »" +#~ msgid "invalid MVNDistinct size %zd (expected at least %zd)" +#~ msgstr "taille MVNDistinct %zd invalide (attendue au moins %zd)" -#~ msgid "removing built-in function \"%s\"" -#~ msgstr "suppression de la fonction interne « %s »" +#~ msgid "invalid OID in COPY data" +#~ msgstr "OID invalide dans les données du COPY" -#~ msgid "foreign key constraint \"%s\" of relation \"%s\" does not exist" -#~ msgstr "la clé étrangère « %s » de la relation « %s » n'existe pas" +#, fuzzy +#~ msgid "invalid WAL message received from primary" +#~ msgstr "format du message invalide" -#~ msgid "Sets the list of known custom variable classes." -#~ msgstr "Initialise la liste des classes variables personnalisées connues." +#~ msgid "invalid backup block size in record at %X/%X" +#~ msgstr "taille du bloc de sauvegarde invalide dans l'enregistrement à %X/%X" -#~ msgid "WAL sender sleep time between WAL replications." -#~ msgstr "" -#~ "Temps d'endormissement du processus d'envoi des journaux de transactions entre\n" -#~ "les réplications des journaux de transactions." +#~ msgid "invalid concatenation of jsonb objects" +#~ msgstr "concaténation invalide d'objets jsonb" -#~ msgid "If this parameter is set, the server will automatically run in the background and any controlling terminals are dissociated." +#~ msgid "invalid contrecord length %u in log file %u, segment %u, offset %u" #~ msgstr "" -#~ "Si ce paramètre est initialisé, le serveur sera exécuté automatiquement en\n" -#~ "tâche de fond et les terminaux de contrôles seront dés-associés." +#~ "longueur invalide du « contrecord » %u dans le journal de tranasctions %u,\n" +#~ "segment %u, décalage %u" -#~ msgid "Runs the server silently." -#~ msgstr "Lance le serveur de manière silencieuse." +#~ msgid "invalid database name \"%s\"" +#~ msgstr "nom de base de données « %s » invalide" -#~ msgid "%s: could not dissociate from controlling TTY: %s\n" -#~ msgstr "%s : n'a pas pu se dissocier du TTY contrôlant : %s\n" +#~ msgid "invalid entry in file \"%s\" at line %d, token \"%s\"" +#~ msgstr "entrée invalide dans le fichier « %s » à la ligne %d, jeton « %s »" -#~ msgid "%s: could not fork background process: %s\n" -#~ msgstr "%s : n'a pas pu créer un processus fils : %s\n" +#~ msgid "invalid input syntax for %s: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type %s : « %s »" -#~ msgid "%s: could not open log file \"%s/%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le journal applicatif « %s/%s » : %s\n" +#~ msgid "invalid input syntax for integer: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour l'entier : « %s »" -#~ msgid "select() failed in logger process: %m" -#~ msgstr "échec de select() dans le processus des journaux applicatifs : %m" +#~ msgid "invalid input syntax for numeric time zone: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le fuseau horaire numérique : « %s »" -#~ msgid "poll() failed in statistics collector: %m" -#~ msgstr "échec du poll() dans le récupérateur de statistiques : %m" +#~ msgid "invalid input syntax for transaction log location: \"%s\"" +#~ msgstr "syntaxe invalide en entrée pour l'emplacement du journal de transactions : « %s »" -#~ msgid "Valid values are '[]', '[)', '(]', and '()'." -#~ msgstr "Les valeurs valides sont « [] », « [) », « (] » et « () »." +#~ msgid "invalid input syntax for type boolean: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type booléen : « %s »" -#~ msgid "invalid list syntax for \"unix_socket_directories\"" -#~ msgstr "syntaxe de liste invalide pour le paramètre « unix_socket_directories »" +#~ msgid "invalid input syntax for type box: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type box : « %s »" -#~ msgid "window functions cannot use named arguments" -#~ msgstr "les fonctions window ne peuvent pas renvoyer des arguments nommés" +#~ msgid "invalid input syntax for type bytea" +#~ msgstr "syntaxe en entrée invalide pour le type bytea" -#~ msgid "cannot override frame clause of window \"%s\"" -#~ msgstr "ne peut pas surcharger la frame clause du window « %s »" +#~ msgid "invalid input syntax for type circle: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type circle : « %s »" -#~ msgid "JSON does not support infinite timestamp values." -#~ msgstr "JSON ne supporte pas les valeurs infinies de timestamp." +#~ msgid "invalid input syntax for type double precision: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type double precision : « %s »" -#~ msgid "JSON does not support infinite date values." -#~ msgstr "JSON ne supporte pas les valeurs infinies de date." +#~ msgid "invalid input syntax for type line: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type line: « %s »" -#~ msgid "WAL writer sleep time between WAL flushes." -#~ msgstr "" -#~ "Temps d'endormissement du processus d'écriture pendant le vidage des\n" -#~ "journaux de transactions en millisecondes." +#~ msgid "invalid input syntax for type lseg: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type lseg : « %s »" -#~ msgid "argument for function \"exp\" too big" -#~ msgstr "l'argument de la fonction « exp » est trop gros" +#~ msgid "invalid input syntax for type macaddr: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type macaddr : « %s »" -#~ msgid "must be superuser to signal the postmaster" -#~ msgstr "doit être super-utilisateur pour envoyer un signal au postmaster" +#~ msgid "invalid input syntax for type money: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type money : « %s »" -#~ msgid "could not format \"circle\" value" -#~ msgstr "n'a pas pu formater la valeur « circle »" +#~ msgid "invalid input syntax for type numeric: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type numeric : « %s »" -#~ msgid "invalid input syntax for type circle: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type circle : « %s »" +#~ msgid "invalid input syntax for type oid: \"%s\"" +#~ msgstr "syntaxe invalide en entrée pour le type oid : « %s »" -#~ msgid "invalid input syntax for type polygon: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type polygon : « %s »" +#~ msgid "invalid input syntax for type path: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type path : « %s »" -#~ msgid "invalid input syntax for type lseg: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type lseg : « %s »" +#~ msgid "invalid input syntax for type pg_lsn: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type pg_lsn : « %s »" #~ msgid "invalid input syntax for type point: \"%s\"" #~ msgstr "syntaxe en entrée invalide pour le type point : « %s »" -#~ msgid "invalid input syntax for type path: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type path : « %s »" +#~ msgid "invalid input syntax for type polygon: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type polygon : « %s »" -#~ msgid "invalid input syntax for type line: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type line: « %s »" +#~ msgid "invalid input syntax for type real: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type real : « %s »" -#~ msgid "invalid input syntax for type box: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type box : « %s »" +#~ msgid "invalid input syntax for type tid: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type tid : « %s »" -#~ msgid "could not format \"path\" value" -#~ msgstr "n'a pas pu formater la valeur « path »" +#~ msgid "invalid input syntax for type tinterval: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type tinterval : « %s »" -#~ msgid "multibyte flag character is not allowed" -#~ msgstr "un caractère drapeau multi-octet n'est pas autorisé" +#~ msgid "invalid input syntax for type txid_snapshot: \"%s\"" +#~ msgstr "syntaxe en entrée invalide pour le type txid_snapshot : « %s »" -#~ msgid "socket not open" -#~ msgstr "socket non ouvert" +#~ msgid "invalid input syntax for uuid: \"%s\"" +#~ msgstr "syntaxe invalide en entrée pour l'uuid : « %s »" -#~ msgid "must be superuser to reset statistics counters" -#~ msgstr "doit être super-utilisateur pour réinitialiser les compteurs statistiques" +#~ msgid "invalid interval value for time zone: day not allowed" +#~ msgstr "valeur d'intervalle invalide pour le fuseau horaire : jour non autorisé" -#~ msgid "function %s must return type \"tsm_handler\"" -#~ msgstr "la fonction %s doit renvoyer le type « tsm_handler »" +#~ msgid "invalid interval value for time zone: month not allowed" +#~ msgstr "valeur d'intervalle invalide pour le fuseau horaire : les mois ne sont pas autorisés" -#~ msgid "Permissions should be u=rw (0600) or less." -#~ msgstr "Les droits devraient être u=rwx (0600) ou inférieures." +#~ msgid "invalid length in external \"numeric\" value" +#~ msgstr "longueur invalide dans la valeur externe « numeric »" -#~ msgid "typmod_in function %s must return type \"integer\"" -#~ msgstr "la fonction typmod_in %s doit renvoyer le type « entier »" +#~ msgid "invalid length of secondary checkpoint record" +#~ msgstr "longueur invalide de l'enregistrement secondaire du point de vérification" -#~ msgid "type send function %s must return type \"bytea\"" -#~ msgstr "la fonction send du type %s doit renvoyer le type « bytea »" +#~ msgid "invalid list syntax for \"unix_socket_directories\"" +#~ msgstr "syntaxe de liste invalide pour le paramètre « unix_socket_directories »" -#~ msgid "type output function %s must return type \"cstring\"" -#~ msgstr "le type de sortie de la fonction %s doit être « cstring »" +#~ msgid "invalid list syntax for parameter \"datestyle\"" +#~ msgstr "syntaxe de liste invalide pour le paramètre « datestyle »" -#~ msgid "changing return type of function %s from \"opaque\" to \"cstring\"" -#~ msgstr "changement du type de retour de la fonction %s d'« opaque » vers « cstring »" +#~ msgid "invalid list syntax for parameter \"log_destination\"" +#~ msgstr "syntaxe de liste invalide pour le paramètre « log_destination »" -#~ msgid "function %s must return type \"trigger\"" -#~ msgstr "la fonction %s doit renvoyer le type « trigger »" +#~ msgid "invalid ndistinct magic %08x (expected %08x)" +#~ msgstr "nombre magique ndistinct invalide %08x (attendu %08x)" -#~ msgid "function %s must return type \"language_handler\"" -#~ msgstr "la fonction %s doit renvoyer le type « language_handler »" +#~ msgid "invalid ndistinct type %d (expected %d)" +#~ msgstr "type ndistinct invalide %d (%d attendu)" -#~ msgid "could not reposition held cursor" -#~ msgstr "n'a pas pu repositionner le curseur détenu" +#~ msgid "invalid number of arguments: object must be matched key value pairs" +#~ msgstr "nombre d'arguments invalide : l'objet doit correspond aux paires clé/valeur" -#~ msgid "function %s must return type \"fdw_handler\"" -#~ msgstr "la fonction %s doit renvoyer le type « fdw_handler »" +#~ msgid "invalid privilege type USAGE for table" +#~ msgstr "droit USAGE invalide pour la table" -#~ msgid "function \"%s\" must return type \"event_trigger\"" -#~ msgstr "la fonction « %s » doit renvoyer le type « event_trigger »" +#~ msgid "invalid procedure number %d, must be between 1 and %d" +#~ msgstr "numéro de procédure %d invalide, doit être compris entre 1 et %d" -#~ msgid "%s is already in schema \"%s\"" -#~ msgstr "%s existe déjà dans le schéma « %s »" +#~ msgid "invalid publish list" +#~ msgstr "liste de publication invalide" #~ msgid "invalid record length at %X/%X" #~ msgstr "longueur invalide de l'enregistrement à %X/%X" -#~ msgid "must be superuser to control recovery" -#~ msgstr "doit être super-utilisateur pour contrôler la restauration" +#~ msgid "invalid regexp option: \"%c\"" +#~ msgstr "option invalide de l'expression rationnelle : « %c »" -#~ msgid "must be superuser to create a restore point" -#~ msgstr "doit être super-utilisateur pour créer un point de restauration" +#~ msgid "invalid resource manager ID in secondary checkpoint record" +#~ msgstr "identifiant du gestionnaire de ressource invalide dans l'enregistrement secondaire du point de vérification" -#~ msgid "must be superuser to switch transaction log files" -#~ msgstr "doit être super-utilisateur pour changer de journal de transactions" +#~ msgid "invalid role name \"%s\"" +#~ msgstr "nom de rôle « %s » invalide" -#~ msgid "must be superuser or replication role to run a backup" -#~ msgstr "doit être super-utilisateur ou avoir l'attribut de réplication pour exécuter une sauvegarde" +#~ msgid "invalid role password \"%s\"" +#~ msgstr "mot de passe « %s » de l'utilisateur invalide" -#~ msgid "ignoring \"%s\" file because no \"%s\" file exists" -#~ msgstr "ignore le fichier « %s » parce que le fichier « %s » n'existe pas" +#~ msgid "invalid secondary checkpoint link in control file" +#~ msgstr "lien du point de vérification secondaire invalide dans le fichier de contrôle" -#~ msgid "could not rename file \"%s\" to \"%s\" (initialization of log file): %m" -#~ msgstr "n'a pas pu renommer le fichier « %s » en « %s » (initialisation du journal de transactions) : %m" +#~ msgid "invalid secondary checkpoint record" +#~ msgstr "enregistrement du point de vérification secondaire invalide" -#~ msgid "could not link file \"%s\" to \"%s\" (initialization of log file): %m" -#~ msgstr "n'a pas pu lier le fichier « %s » à « %s » (initialisation du journal de transactions) : %m" +#~ msgid "invalid socket: %s" +#~ msgstr "socket invalide : %s" -#~ msgid "could not close two-phase state file \"%s\": %m" -#~ msgstr "" -#~ "n'a pas pu fermer le fichier d'état de la validation en deux phases nommé\n" -#~ "« %s » : %m" +#~ msgid "invalid standby handshake message type %d" +#~ msgstr "type %d du message de handshake du serveur en attente invalide" -#~ msgid "could not fsync two-phase state file \"%s\": %m" -#~ msgstr "" -#~ "n'a pas pu synchroniser sur disque (fsync) le fichier d'état de la\n" -#~ "validation en deux phases nommé « %s » : %m" +#~ msgid "invalid standby query string: %s" +#~ msgstr "chaîne de requête invalide sur le serveur en attente : %s" -#~ msgid "two-phase state file for transaction %u is corrupt" -#~ msgstr "" -#~ "le fichier d'état de la validation en deux phases est corrompu pour la\n" -#~ "transaction %u" +#~ msgid "invalid status in external \"tinterval\" value" +#~ msgstr "statut invalide dans la valeur externe « tinterval »" -#~ msgid "could not seek in two-phase state file: %m" -#~ msgstr "" -#~ "n'a pas pu se déplacer dans le fichier de statut de la validation en deux\n" -#~ "phases : %m" +#~ msgid "invalid symbol" +#~ msgstr "symbole invalide" -#~ msgid "could not create two-phase state file \"%s\": %m" -#~ msgstr "" -#~ "n'a pas pu créer le fichier de statut de la validation en deux phases nommé\n" -#~ "« %s » : %m" +#~ msgid "invalid time zone name: \"%s\"" +#~ msgstr "nom du fuseau horaire invalide : « %s »" -#~ msgid "Causes subtables to be included by default in various commands." -#~ msgstr "" -#~ "Fait que les sous-tables soient incluses par défaut dans les différentes\n" -#~ "commandes." +#~ msgid "invalid value for \"buffering\" option" +#~ msgstr "valeur invalide pour l'option « buffering »" -#~ msgid "function %u has too many arguments (%d, maximum is %d)" -#~ msgstr "la fonction %u a trop d'arguments (%d, le maximum étant %d)" +#~ msgid "invalid value for \"check_option\" option" +#~ msgstr "valeur invalide pour l'option « check_option »" -#~ msgid "invalid input syntax for uuid: \"%s\"" -#~ msgstr "syntaxe invalide en entrée pour l'uuid : « %s »" +#~ msgid "invalid value for parameter \"replication\"" +#~ msgstr "valeur invalide pour le paramètre « replication »" -#~ msgid "invalid input syntax for type txid_snapshot: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type txid_snapshot : « %s »" +#~ msgid "invalid value for recovery parameter \"%s\": \"%s\"" +#~ msgstr "valeur invalide pour le paramètre de restauration « %s » : « %s »" -#~ msgid "invalid input syntax for type tid: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type tid : « %s »" +#~ msgid "invalid value for recovery parameter \"recovery_target\"" +#~ msgstr "valeur invalide pour le paramètre de restauration « recovery_target »" -#~ msgid "cannot display a value of type anynonarray" -#~ msgstr "ne peut pas afficher une valeur de type anynonarray" +#~ msgid "invalid xl_info in secondary checkpoint record" +#~ msgstr "xl_info invalide dans l'enregistrement du point de vérification secondaire" -#~ msgid "cannot accept a value of type anynonarray" -#~ msgstr "ne peut pas accepter une valeur de type anynonarray" +#~ msgid "invalid xlog switch record at %X/%X" +#~ msgstr "enregistrement de basculement du journal de transaction invalide à %X/%X" -#~ msgid "cannot display a value of type anyelement" -#~ msgstr "ne peut pas afficher une valeur de type anyelement" +#~ msgid "invalid zero-length item array in MVDependencies" +#~ msgstr "tableau d'éléments de longueur zéro invalide dans MVDependencies" -#~ msgid "cannot accept a value of type anyelement" -#~ msgstr "ne peut pas accepter une valeur de type anyelement" +#~ msgid "invalid zero-length item array in MVNDistinct" +#~ msgstr "tableau d'élément de longueur zéro invalide dans MVNDistinct" -#~ msgid "cannot display a value of type opaque" -#~ msgstr "ne peut pas afficher une valeur de type opaque" +#~ msgid "krb5 authentication is not supported on local sockets" +#~ msgstr "" +#~ "l'authentification krb5 n'est pas supportée sur les connexions locales par\n" +#~ "socket" -#~ msgid "cannot accept a value of type opaque" -#~ msgstr "ne peut pas accepter une valeur de type opaque" +#~ msgid "language name cannot be qualified" +#~ msgstr "le nom du langage ne peut pas être qualifié" -#~ msgid "cannot display a value of type internal" -#~ msgstr "ne peut pas afficher une valeur de type internal" +#~ msgid "large object %u was already dropped" +#~ msgstr "le « Large Object » %u a déjà été supprimé" -#~ msgid "cannot accept a value of type internal" -#~ msgstr "ne peut pas accepter une valeur de type internal" +#~ msgid "large object %u was not opened for writing" +#~ msgstr "le « Large Object » %u n'a pas été ouvert en écriture" -#~ msgid "cannot display a value of type tsm_handler" -#~ msgstr "ne peut pas afficher une valeur de type tsm_handler" +#~ msgid "leftover placeholder tuple detected in BRIN index \"%s\", deleting" +#~ msgstr "reste d'espace de ligne réservé dans l'index BRIN « %s », suppression" -#~ msgid "cannot accept a value of type tsm_handler" -#~ msgstr "ne peut pas accepter une valeur de type tsm_handler" +#~ msgid "local user with ID %d does not exist" +#~ msgstr "l'utilisateur local dont l'identifiant est %d n'existe pas" -#~ msgid "cannot display a value of type index_am_handler" -#~ msgstr "ne peut pas afficher une valeur de type index_am_handler" +#~ msgid "log_restartpoints = %s" +#~ msgstr "log_restartpoints = %s" -#~ msgid "cannot accept a value of type index_am_handler" -#~ msgstr "ne peut pas accepter une valeur de type index_am_handler" +#~ msgid "logical replication could not find row for delete in replication target relation \"%s\"" +#~ msgstr "la réplication logique n'a pas pu trouver la ligne à supprimer dans la relation cible de réplication %s" -#~ msgid "cannot display a value of type fdw_handler" -#~ msgstr "ne peut pas afficher une valeur de type fdw_handler" +#~ msgid "logical replication target relation \"%s.%s\" is not a table" +#~ msgstr "la relation cible de la réplication logique « %s.%s » n'est pas une table" -#~ msgid "cannot accept a value of type fdw_handler" -#~ msgstr "ne peut pas accepter une valeur de type fdw_handler" +#~ msgid "mapped win32 error code %lu to %d" +#~ msgstr "correspondance du code d'erreur win32 %lu en %d" -#~ msgid "cannot display a value of type language_handler" -#~ msgstr "ne peut pas afficher une valeur de type language_handler" +#~ msgid "max_fsm_pages must exceed max_fsm_relations * %d" +#~ msgstr "max_fsm_pages doit excéder max_fsm_relations * %d" -#~ msgid "cannot accept a value of type language_handler" -#~ msgstr "ne peut pas accepter une valeur de type language_handler" +#~ msgid "max_fsm_relations(%d) equals the number of relations checked" +#~ msgstr "max_fsm_relations(%d) équivaut au nombre de relations tracées" -#~ msgid "cannot display a value of type event_trigger" -#~ msgstr "ne peut pas afficher une valeur de type event_trigger" +#~ msgid "memory for serializable conflict tracking is nearly exhausted" +#~ msgstr "la mémoire pour tracer les conflits sérialisables est pratiquement pleine" -#~ msgid "cannot accept a value of type event_trigger" -#~ msgstr "ne peut pas accepter une valeur de type event_trigger" +#~ msgid "missing FROM-clause entry in subquery for table \"%s\"" +#~ msgstr "entrée manquante de la clause FROM dans la sous-requête de la table « %s »" -#~ msgid "cannot display a value of type trigger" -#~ msgstr "ne peut pas afficher une valeur de type trigger" +#~ msgid "missing assignment operator" +#~ msgstr "opérateur d'affectation manquant" -#~ msgid "cannot accept a value of type trigger" -#~ msgstr "ne peut pas accepter une valeur de type trigger" +#~ msgid "missing data for OID column" +#~ msgstr "données manquantes pour la colonne OID" -#~ msgid "cannot accept a value of type anyrange" -#~ msgstr "ne peut pas accepter une valeur de type anyrange" +#~ msgid "missing field in file \"%s\" at end of line %d" +#~ msgstr "champ manquant dans le fichier « %s » à la fin de la ligne %d" -#~ msgid "cannot accept a value of type anyenum" -#~ msgstr "ne peut pas accepter une valeur de type anyenum" +#~ msgid "missing or erroneous pg_hba.conf file" +#~ msgstr "fichier pg_hba.conf manquant ou erroné" -#~ msgid "cannot accept a value of type anyarray" -#~ msgstr "ne peut pas accepter une valeur de type anyarray" +#~ msgid "moving row to another partition during a BEFORE trigger is not supported" +#~ msgstr "déplacer une ligne vers une autre partition lors de l'exécution d'un trigger BEFORE n'est pas supporté" -#~ msgid "cannot accept a value of type any" -#~ msgstr "ne peut pas accepter une valeur de type any" +#~ msgid "multibyte flag character is not allowed" +#~ msgstr "un caractère drapeau multi-octet n'est pas autorisé" -#~ msgid "invalid input syntax for type pg_lsn: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type pg_lsn : « %s »" +#~ msgid "multiple DELETE events specified" +#~ msgstr "multiples événements DELETE spécifiés" -#~ msgid "invalid input syntax for type oid: \"%s\"" -#~ msgstr "syntaxe invalide en entrée pour le type oid : « %s »" +#~ msgid "multiple TRUNCATE events specified" +#~ msgstr "multiples événements TRUNCATE spécifiés" -#~ msgid "value \"%s\" is out of range for type smallint" -#~ msgstr "la valeur « %s » est en dehors des limites du type smallint" +#~ msgid "multiple constraints named \"%s\" were dropped" +#~ msgstr "les contraintes multiples nommées « %s » ont été supprimées" -#~ msgid "value \"%s\" is out of range for type integer" -#~ msgstr "la valeur « %s » est en dehors des limites du type integer" +#~ msgid "must be superuser or have the same role to cancel queries running in other server processes" +#~ msgstr "" +#~ "doit être super-utilisateur ou avoir le même rôle pour annuler des requêtes\n" +#~ "exécutées dans les autres processus serveur" -#~ msgid "invalid input syntax for type double precision: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type double precision : « %s »" +#~ msgid "must be superuser or have the same role to terminate other server processes" +#~ msgstr "" +#~ "doit être super-utilisateur ou avoir le même rôle pour fermer les connexions\n" +#~ "exécutées dans les autres processus serveur" -#~ msgid "invalid input syntax for type numeric: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type numeric : « %s »" +#~ msgid "must be superuser or replication role to run a backup" +#~ msgstr "doit être super-utilisateur ou avoir l'attribut de réplication pour exécuter une sauvegarde" -#~ msgid "invalid input syntax for type tinterval: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type tinterval : « %s »" +#~ msgid "must be superuser to COPY to or from a file" +#~ msgstr "doit être super-utilisateur pour utiliser COPY à partir ou vers un fichier" -#~ msgid "invalid input syntax for type macaddr: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type macaddr : « %s »" +#~ msgid "must be superuser to comment on procedural language" +#~ msgstr "" +#~ "doit être super-utilisateur pour ajouter un commentaire sur un langage de\n" +#~ "procédures" -#~ msgid "argument %d: could not determine data type" -#~ msgstr "argument %d : n'a pas pu déterminer le type de données" +#~ msgid "must be superuser to comment on text search parser" +#~ msgstr "" +#~ "doit être super-utilisateur pour ajouter un commentaire sur l'analyseur de\n" +#~ "recherche plein texte" -#~ msgid "could not determine data type for argument 2" -#~ msgstr "n'a pas pu déterminer le type de données pour l'argument 2" +#~ msgid "must be superuser to comment on text search template" +#~ msgstr "" +#~ "doit être super-utilisateur pour ajouter un commentaire sur un modèle de\n" +#~ "recherche plein texte" -#~ msgid "could not determine data type for argument 1" -#~ msgstr "n'a pas pu déterminer le type de données pour l'argument 1" +#~ msgid "must be superuser to control recovery" +#~ msgstr "doit être super-utilisateur pour contrôler la restauration" -#~ msgid "value \"%s\" is out of range for type bigint" -#~ msgstr "la valeur « %s » est en dehors des limites du type bigint" +#~ msgid "must be superuser to create a restore point" +#~ msgstr "doit être super-utilisateur pour créer un point de restauration" -#~ msgid "\"TZ\"/\"tz\"/\"OF\" format patterns are not supported in to_date" -#~ msgstr "les motifs de format « TZ »/« tz »/« OF » ne sont pas supportés dans to_date" +#~ msgid "must be superuser to create procedural language \"%s\"" +#~ msgstr "doit être super-utilisateur pour créer le langage de procédures « %s »" -#~ msgid "invalid input syntax for type real: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type real : « %s »" +#~ msgid "must be superuser to drop text search parsers" +#~ msgstr "" +#~ "doit être super-utilisateur pour supprimer des analyseurs de recherche plein\n" +#~ "texte" -#~ msgid "invalid input syntax for type bytea" -#~ msgstr "syntaxe en entrée invalide pour le type bytea" +#~ msgid "must be superuser to drop text search templates" +#~ msgstr "doit être super-utilisateur pour supprimer des modèles de recherche plein texte" -#~ msgid "invalid input syntax for type money: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type money : « %s »" +#~ msgid "must be superuser to get directory listings" +#~ msgstr "doit être super-utilisateur pour obtenir le contenu du répertoire" -#~ msgid "invalid input syntax for type boolean: \"%s\"" -#~ msgstr "syntaxe en entrée invalide pour le type booléen : « %s »" +#~ msgid "must be superuser to get file information" +#~ msgstr "doit être super-utilisateur pour obtenir des informations sur le fichier" -#~ msgid "not enough shared memory for elements of data structure \"%s\" (%zu bytes requested)" +#~ msgid "must be superuser to rename text search parsers" #~ msgstr "" -#~ "pas assez de mémoire partagée pour les éléments de la structure de données\n" -#~ "« %s » (%zu octets demandés)" +#~ "doit être super-utilisateur pour renommer les analyseurs de recherche plein\n" +#~ "texte" -#~ msgid "Specify a relation name as well as a rule name." -#~ msgstr "Spécifier un nom de relation ainsi qu'un nom de règle." +#~ msgid "must be superuser to rename text search templates" +#~ msgstr "doit être super-utilisateur pour renommer les modèles de recherche plein texte" -#~ msgid "there are multiple rules named \"%s\"" -#~ msgstr "il existe de nombreuses règles nommées « %s »" +#~ msgid "must be superuser to reset statistics counters" +#~ msgstr "doit être super-utilisateur pour réinitialiser les compteurs statistiques" -#~ msgid "rule \"%s\" does not exist" -#~ msgstr "la règle « %s » n'existe pas" +#~ msgid "must be superuser to signal the postmaster" +#~ msgstr "doit être super-utilisateur pour envoyer un signal au postmaster" -#~ msgid "%u transaction needs to finish." -#~ msgid_plural "%u transactions need to finish." -#~ msgstr[0] "La transaction %u doit se terminer." -#~ msgstr[1] "Les transactions %u doivent se terminer." +#~ msgid "must be superuser to switch transaction log files" +#~ msgstr "doit être super-utilisateur pour changer de journal de transactions" -#~ msgid "Transaction ID %u finished; no more running transactions." -#~ msgstr "Identifiant de transaction %u terminé ; plus de transactions en cours." +#~ msgid "must be superuser to use server-side lo_export()" +#~ msgstr "doit être super-utilisateur pour utiliser lo_export() du côté serveur" -#~ msgid "select() failed: %m" -#~ msgstr "échec de select() : %m" +#~ msgid "must be superuser to use server-side lo_import()" +#~ msgstr "doit être super-utilisateur pour utiliser lo_import() du côté serveur" -#~ msgid "invalid socket: %s" -#~ msgstr "socket invalide : %s" +#~ msgid "must call json_populate_recordset on an array of objects" +#~ msgstr "doit appeler json_populate_recordset sur un tableau d'objets" -#~ msgid "syntax error: unexpected character \"%s\"" -#~ msgstr "erreur de syntaxe : caractère « %s » inattendu" +#~ msgid "neither input type is an array" +#~ msgstr "aucun type de données n'est un tableau" -#~ msgid "archived transaction log file \"%s\"" -#~ msgstr "journal des transactions archivé « %s »" +#~ msgid "next MultiXactId: %u; next MultiXactOffset: %u" +#~ msgstr "prochain MultiXactId : %u ; prochain MultiXactOffset : %u" -#~ msgid "transaction log switch forced (archive_timeout=%d)" -#~ msgstr "changement forcé du journal de transaction (archive_timeout=%d)" +#~ msgid "next transaction ID: %u/%u; next OID: %u" +#~ msgstr "prochain identifiant de transaction : %u/%u ; prochain OID : %u" -#~ msgid "autovacuum: found orphan temp table \"%s\".\"%s\" in database \"%s\"" +#~ msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\"" #~ msgstr "" -#~ "autovacuum : a trouvé la table temporaire orpheline « %s.%s » dans la base de\n" -#~ "données « %s »" +#~ "aucune entrée dans pg_hba.conf pour l'hôte « %s », utilisateur « %s »,\n" +#~ "base de données « %s »" -#~ msgid "transform expression must not return a set" -#~ msgstr "l'expression de transformation ne doit pas renvoyer un ensemble" +#~ msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\"" +#~ msgstr "" +#~ "aucune entrée dans pg_hba.conf pour la connexion de la réplication à partir de\n" +#~ "l'hôte « %s », utilisateur « %s »" -#~ msgid "index expression cannot return a set" -#~ msgstr "l'expression de l'index ne peut pas renvoyer un ensemble" +#~ msgid "no such savepoint" +#~ msgstr "aucun point de sauvegarde" -#~ msgid "argument declared \"anyrange\" is not consistent with argument declared \"anyelement\"" -#~ msgstr "" -#~ "l'argument déclaré « anyrange » n'est pas cohérent avec l'argument déclaré\n" -#~ "« anyelement »" +#~ msgid "not connected to database" +#~ msgstr "non connecté à une base de données" -#~ msgid "argument of %s must be type boolean, not type %s" -#~ msgstr "l'argument de %s doit être de type booléen, et non du type %s" +#~ msgid "not enough data in file \"%s\"" +#~ msgstr "données insuffisantes dans le fichier « %s »" -#~ msgid "DEFAULT can only appear in a VALUES list within INSERT" -#~ msgstr "DEFAULT peut seulement apparaître dans la liste VALUES comprise dans un INSERT" +#~ msgid "not enough shared memory for background writer" +#~ msgstr "pas assez de mémoire partagée pour le processus d'écriture en tâche de fond" -#~ msgid "WHERE CURRENT OF is not supported on a view with grouping or aggregation" -#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue avec regroupement ou agrégat" +#~ msgid "not enough shared memory for elements of data structure \"%s\" (%zu bytes requested)" +#~ msgstr "" +#~ "pas assez de mémoire partagée pour les éléments de la structure de données\n" +#~ "« %s » (%zu octets demandés)" -#~ msgid "WHERE CURRENT OF is not supported on a view with more than one underlying relation" -#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue avec plus d'une table sous-jacente" +#~ msgid "not enough shared memory for walreceiver" +#~ msgstr "" +#~ "pas assez de mémoire partagée pour le processus de réception des journaux de\n" +#~ "transactions" -#~ msgid "WHERE CURRENT OF is not supported on a view with no underlying relation" -#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue sans table sous-jacente" +#~ msgid "not enough shared memory for walsender" +#~ msgstr "pas assez de mémoire partagée pour le processus d'envoi des journaux de transactions" -#~ msgid "could not bind %s socket: %m" -#~ msgstr "n'a pas pu se lier à la socket %s : %m" +#~ msgid "not unique \"S\"" +#~ msgstr "« S » non unique" -#~ msgid "could not create %s socket: %m" -#~ msgstr "n'a pas pu créer le socket %s : %m" +#~ msgid "null OID in COPY data" +#~ msgstr "OID NULL dans les données du COPY" -#~ msgid "hostssl requires SSL to be turned on" -#~ msgstr "hostssl requiert que SSL soit activé" +#~ msgid "number of distinct values %g is too low" +#~ msgstr "le nombre de valeurs distinctes %g est trop basse" -#~ msgid "NULLIF does not support set arguments" -#~ msgstr "NULLIF ne supporte pas les arguments d'ensemble" +#~ msgid "number of page slots needed (%.0f) exceeds max_fsm_pages (%d)" +#~ msgstr "le nombre d'emplacements de pages nécessaires (%.0f) dépasse max_fsm_pages (%d)" + +#~ msgid "oldest unfrozen transaction ID: %u, in database %u" +#~ msgstr "" +#~ "identifiant de transaction non gelé le plus ancien : %u, dans la base de\n" +#~ "données %u" #~ msgid "op ANY/ALL (array) does not support set arguments" #~ msgstr "" #~ "l'opérateur ANY/ALL (pour les types array) ne supporte pas les arguments\n" #~ "d'ensemble" -#~ msgid "IS DISTINCT FROM does not support set arguments" -#~ msgstr "IS DISTINCT FROM ne supporte pas les arguments d'ensemble" +#~ msgid "operator procedure must be specified" +#~ msgstr "la procédure de l'opérateur doit être spécifiée" -#~ msgid "functions and operators can take at most one set argument" -#~ msgstr "les fonctions et opérateurs peuvent prendre au plus un argument d'ensemble" +#~ msgid "parameter \"%s\" requires a numeric value" +#~ msgstr "le paramètre « %s » requiert une valeur numérique" -#~ msgid "changing return type of function %s from \"opaque\" to \"trigger\"" -#~ msgstr "changement du type de retour de la fonction %s de « opaque » vers « trigger »" +#~ msgid "parameter \"%s\" requires a temporal value" +#~ msgstr "le paramètre « %s » requiert une valeur temporelle" -#~ msgid "changing return type of function %s from \"opaque\" to \"language_handler\"" -#~ msgstr "" -#~ "changement du type du code retour de la fonction %s d'« opaque » à\n" -#~ "« language_handler »" +#~ msgid "parameter \"recovery_target_inclusive\" requires a Boolean value" +#~ msgstr "le paramètre « recovery_target_inclusive » requiert une valeur booléenne" -#~ msgid "hash indexes are not WAL-logged and their use is discouraged" -#~ msgstr "les index hash ne sont pas journalisés, leur utilisation est donc déconseillée" +#~ msgid "parameter \"standby_mode\" requires a Boolean value" +#~ msgstr "le paramètre « standby_mode » requiert une valeur booléenne" -#~ msgid "event trigger name cannot be qualified" -#~ msgstr "le nom du trigger sur événement ne peut pas être qualifié" +#~ msgid "parser stack overflow" +#~ msgstr "saturation de la pile de l'analyseur" -#~ msgid "server name cannot be qualified" -#~ msgstr "le nom du serveur ne peut pas être qualifié" +#~ msgid "partition key expressions cannot contain whole-row references" +#~ msgstr "les expressions de clé de partitionnement ne peuvent pas contenir des références à des lignes complètes" -#~ msgid "foreign-data wrapper name cannot be qualified" -#~ msgstr "le nom du wrapper de données distantes ne peut pas être qualifié" +#~ msgid "permission denied to drop foreign-data wrapper \"%s\"" +#~ msgstr "droit refusé pour supprimer le wrapper de données distantes « %s »" -#~ msgid "language name cannot be qualified" -#~ msgstr "le nom du langage ne peut pas être qualifié" +#~ msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\"" +#~ msgstr "" +#~ "pg_hba.conf rejette la connexion pour l'hôte « %s », utilisateur « %s », base\n" +#~ "de données « %s »" -#~ msgid "schema name cannot be qualified" -#~ msgstr "le nom du schéma ne peut pas être qualifié" +#~ msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\"" +#~ msgstr "" +#~ "pg_hba.conf rejette la connexion de la réplication pour l'hôte « %s »,\n" +#~ "utilisateur « %s »" -#~ msgid "role name cannot be qualified" -#~ msgstr "le nom du rôle ne peut pas être qualifié" +#~ msgid "pg_ident.conf was not reloaded" +#~ msgstr "pg_ident.conf n'a pas été rechargé" -#~ msgid "tablespace name cannot be qualified" -#~ msgstr "le nom du tablespace ne peut pas être qualifié" +#~ msgid "pg_walfile_name() cannot be executed during recovery." +#~ msgstr "pg_walfile_name() ne peut pas être exécuté lors de la restauration." -#~ msgid "extension name cannot be qualified" -#~ msgstr "le nom de l'extension ne peut pas être qualifié" +#~ msgid "pg_walfile_name_offset() cannot be executed during recovery." +#~ msgstr "pg_walfile_name_offset() ne peut pas être exécuté lors de la restauration." -#~ msgid "database name cannot be qualified" -#~ msgstr "le nom de la base de donnée ne peut être qualifié" +#~ msgid "poll() failed in statistics collector: %m" +#~ msgstr "échec du poll() dans le récupérateur de statistiques : %m" -#~ msgid "access method name cannot be qualified" -#~ msgstr "le nom de la méthode d'accès ne peut pas être qualifiée" +#~ msgid "poll() failed: %m" +#~ msgstr "échec de poll() : %m" -#~ msgid "default expression must not return a set" -#~ msgstr "l'expression par défaut ne doit pas renvoyer un ensemble" +#~ msgid "postmaster became multithreaded" +#~ msgstr "le postmaster est devenu multithreadé" -#~ msgid "Proceeding with relation creation anyway." -#~ msgstr "Poursuit malgré tout la création de la relation." +#~ msgid "procedure number %d for (%s,%s) appears more than once" +#~ msgstr "le numéro de procédure %d pour (%s, %s) apparaît plus d'une fois" -#~ msgid "column \"%s\" has type \"unknown\"" -#~ msgstr "la colonne « %s » est de type « unknown »" +#~ msgid "query requires full scan, which is not supported by GIN indexes" +#~ msgstr "" +#~ "la requête nécessite un parcours complet, ce qui n'est pas supporté par les\n" +#~ "index GIN" -#~ msgid "invalid privilege type USAGE for table" -#~ msgstr "droit USAGE invalide pour la table" +#~ msgid "received password packet" +#~ msgstr "paquet du mot de passe reçu" -#~ msgid "The database cluster was initialized with HAVE_INT64_TIMESTAMP but the server was compiled without HAVE_INT64_TIMESTAMP." -#~ msgstr "" -#~ "Le cluster de bases de données a été initialisé avec HAVE_INT64_TIMESTAMP\n" -#~ "alors que le serveur a été compilé sans." +#~ msgid "record with zero length at %X/%X" +#~ msgstr "enregistrement de longueur nulle à %X/%X" -#~ msgid "The database cluster was initialized without HAVE_INT64_TIMESTAMP but the server was compiled with HAVE_INT64_TIMESTAMP." -#~ msgstr "Le cluster de bases de données a été initialisé sans HAVE_INT64_TIMESTAMPalors que le serveur a été compilé avec." +#~ msgid "recovery is still in progress, can't accept WAL streaming connections" +#~ msgstr "la restauration est en cours, ne peut pas accepter les connexions de flux WAL" -#~ msgid "removing transaction log backup history file \"%s\"" -#~ msgstr "suppression du fichier historique des journaux de transaction « %s »" +#~ msgid "recovery restart point at %X/%X with latest known log time %s" +#~ msgstr "" +#~ "point de relancement de la restauration sur %X/%X avec %s comme dernière\n" +#~ "date connue du journal" -#~ msgid "could not remove old transaction log file \"%s\": %m" -#~ msgstr "n'a pas pu supprimer l'ancien journal de transaction « %s » : %m" +#~ msgid "recovery_target_time is not a valid timestamp: \"%s\"" +#~ msgstr "recovery_target_timeline n'est pas un horodatage valide : « %s »" -#~ msgid "could not open transaction log file \"%s\": %m" -#~ msgstr "n'a pas pu ouvrir le journal des transactions « %s » : %m" +#~ msgid "recovery_target_xid is not a valid number: \"%s\"" +#~ msgstr "recovery_target_xid n'est pas un nombre valide : « %s »" -#~ msgid "Expected a transaction log switchpoint location." -#~ msgstr "Attendait un emplacement de bascule dans le journal de transactions." +#~ msgid "redo record is at %X/%X; shutdown %s" +#~ msgstr "l'enregistrement à ré-exécuter se trouve à %X/%X ; arrêt %s" -#~ msgid "spgist operator class \"%s\" is missing operator(s)" -#~ msgstr "il manque des opérateurs pour la classe d'opérateur spgist « %s »" +#~ msgid "redo starts at %X/%X, consistency will be reached at %X/%X" +#~ msgstr "la restauration comme à %X/%X, la cohérence sera atteinte à %X/%X" -#~ msgid "spgist operator family \"%s\" is missing operator(s) for types %s and %s" -#~ msgstr "" -#~ "la famille d'opérateur spgist « %s » nécessite des opérateurs supplémentaires\n" -#~ "pour les types %s et %s" +#~ msgid "regexp_split_to_array does not support the global option" +#~ msgstr "regexp_split_to_array ne supporte pas l'option globale" -#~ msgid "spgist operator family \"%s\" contains operator %s with wrong signature" -#~ msgstr "la famille d'opérateur spgist « %s » contient l'opérateur %s avec une mauvaise signature" +#~ msgid "regexp_split_to_table does not support the global option" +#~ msgstr "regexp_split_to_table ne supporte pas l'option globale" -#~ msgid "spgist operator family \"%s\" contains invalid ORDER BY specification for operator %s" +#~ msgid "relation \"%s\" TID %u/%u: DeleteTransactionInProgress %u --- cannot shrink relation" #~ msgstr "" -#~ "la famille d'opérateur spgist « %s » contient une spécification\n" -#~ "ORDER BY invalide pour l'opérateur %s" +#~ "relation « %s », TID %u/%u : DeleteTransactionInProgress %u --- n'a pas pu\n" +#~ "diminuer la taille de la relation" -#~ msgid "spgist operator family \"%s\" contains operator %s with invalid strategy number %d" +#~ msgid "relation \"%s\" TID %u/%u: InsertTransactionInProgress %u --- cannot shrink relation" #~ msgstr "" -#~ "la famille d'opérateur spgist « %s » contient l'opérateur %s\n" -#~ "avec le numéro de stratégie invalide %d" +#~ "relation « %s », TID %u/%u : InsertTransactionInProgress %u --- n'a pas pu\n" +#~ "diminuer la taille de la relation" -#~ msgid "spgist operator family \"%s\" contains function %s with wrong signature for support number %d" +#~ msgid "relation \"%s\" TID %u/%u: XMIN_COMMITTED not set for transaction %u --- cannot shrink relation" #~ msgstr "" -#~ "la famille d'opérateur spgist « %s » contient la fonction %s\n" -#~ "avec une mauvaise signature pour le numéro de support %d" +#~ "relation « %s », TID %u/%u : XMIN_COMMITTED non configuré pour la\n" +#~ "transaction %u --- n'a pas pu diminuer la taille de la relation" -#~ msgid "spgist operator family \"%s\" contains function %s with invalid support number %d" +#~ msgid "relation \"%s\" TID %u/%u: dead HOT-updated tuple --- cannot shrink relation" #~ msgstr "" -#~ "la famille d'opérateur spgist « %s » contient la fonction %s\n" -#~ "avec le numéro de support %d invalide" +#~ "relation « %s », TID %u/%u : ligne morte mise à jour par HOT --- n'a pas pu\n" +#~ "diminuer la taille de la relation" -#~ msgid "spgist operator family \"%s\" contains support procedure %s with cross-type registration" +#~ msgid "relation \"%s\" page %u is uninitialized --- fixing" +#~ msgstr "relation « %s » : la page %u n'est pas initialisée --- correction en cours" + +#~ msgid "relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space" #~ msgstr "" -#~ "la famille d'opérateur spgist « %s » contient la procédure de support\n" -#~ "%s avec un enregistrement inter-type" +#~ "la relation « %s.%s » contient plus de « max_fsm_pages » pages d'espace\n" +#~ "libre utile" -#~ msgid "btree operator family \"%s\" is missing cross-type operator(s)" -#~ msgstr "il manque des opérateurs inter-type pour la famille d'opérateur btree « %s »" +#~ msgid "removed subscription for table %s.%s" +#~ msgstr "a supprimé une souscription pour la table %s.%s" -#~ msgid "btree operator class \"%s\" is missing operator(s)" -#~ msgstr "il manque des opérateurs pour la classe d'opérateur btree « %s »" +#~ msgid "removing built-in function \"%s\"" +#~ msgstr "suppression de la fonction interne « %s »" -#~ msgid "btree operator family \"%s\" is missing operator(s) for types %s and %s" -#~ msgstr "" -#~ "la famille d'opérateur btree « %s » nécessite des opérateurs supplémentaires\n" -#~ "pour les types %s et %s" +#~ msgid "removing transaction log backup history file \"%s\"" +#~ msgstr "suppression du fichier historique des journaux de transaction « %s »" + +#~ msgid "replication connection authorized: user=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" +#~ msgstr "connexion autorisée : utilisateur=%s, SSL activé (protocole=%s, chiffrement=%s, bits=%d, compression=%s)" + +#~ msgid "replication connection authorized: user=%s application_name=%s" +#~ msgstr "connexion de réplication autorisée : utilisateur=%s nom d'application=%s" + +#~ msgid "replication connection authorized: user=%s application_name=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" +#~ msgstr "connexion de réplication autorisée : utilisateur=%s, nom d'application=%s, SSL activé (protocole=%s, chiffrement=%s, bits=%d, compression=%s)" + +#~ msgid "replication identifier %d is already active for PID %d" +#~ msgstr "l'identificateur de réplication %d est déjà actif pour le PID %d" + +#~ msgid "replication origin %d is already active for PID %d" +#~ msgstr "l'origine de réplication %d est déjà active pour le PID %d" + +#~ msgid "resetting unlogged relations: cleanup %d init %d" +#~ msgstr "réinitialisation des relations non tracées : nettoyage %d initialisation %d" -#~ msgid "btree operator family \"%s\" contains operator %s with wrong signature" -#~ msgstr "la famille d'opérateur btree « %s » contient l'opérateur %s avec une mauvaise signature" +#~ msgid "restartpoint_command = '%s'" +#~ msgstr "restartpoint_command = '%s'" -#~ msgid "btree operator family \"%s\" contains invalid ORDER BY specification for operator %s" -#~ msgstr "" -#~ "la famille d'opérateur btree « %s » contient une spécification\n" -#~ "ORDER BY invalide pour l'opérateur %s" +#~ msgid "role \"%s\" could not be removed from policy \"%s\" on \"%s\"" +#~ msgstr "le rôle « %s » n'a pas pu être supprimé de la politique « %s » sur « %s »" -#~ msgid "btree operator family \"%s\" contains operator %s with invalid strategy number %d" -#~ msgstr "" -#~ "la famille d'opérateur btree « %s » contient l'opérateur %s\n" -#~ "avec le numéro de stratégie invalide %d" +#~ msgid "role \"%s\" is reserved" +#~ msgstr "le rôle « %s » est réservé" -#~ msgid "btree operator family \"%s\" contains function %s with wrong signature for support number %d" -#~ msgstr "" -#~ "la famille d'opérateur btree « %s » contient la fonction %s\n" -#~ "avec une mauvaise signature pour le numéro de support %d" +#~ msgid "role name cannot be qualified" +#~ msgstr "le nom du rôle ne peut pas être qualifié" -#~ msgid "btree operator family \"%s\" contains function %s with invalid support number %d" -#~ msgstr "" -#~ "la famille d'opérateur btree « %s » contient la fonction %s\n" -#~ "avec le numéro de support invalide %d" +#~ msgid "rule \"%s\" does not exist" +#~ msgstr "la règle « %s » n'existe pas" -#~ msgid "hash operator class \"%s\" is missing operator(s)" -#~ msgstr "il manque des opérateurs pour la classe d'opérateur hash « %s »" +#~ msgid "scanned index \"%s\" to remove %d row versions by parallel vacuum worker" +#~ msgstr "a parcouru l'index « %s » pour supprimer %d versions de lignes par le worker parallélisé du VACUUM" -#~ msgid "hash operator family \"%s\" is missing operator(s) for types %s and %s" -#~ msgstr "" -#~ "la famille d'opérateur hash « %s » nécessite des opérateurs supplémentaires\n" -#~ "pour les types %s et %s" +#~ msgid "schema name cannot be qualified" +#~ msgstr "le nom du schéma ne peut pas être qualifié" -#~ msgid "hash operator family \"%s\" contains operator %s with wrong signature" -#~ msgstr "la famille d'opérateur hash « %s » contient l'opérateur %s avec une mauvaise signature" +#~ msgid "select() failed in logger process: %m" +#~ msgstr "échec de select() dans le processus des journaux applicatifs : %m" -#~ msgid "hash operator family \"%s\" contains invalid ORDER BY specification for operator %s" -#~ msgstr "" -#~ "la famille d'opérateur hash « %s » contient la spécification ORDER BY\n" -#~ "non supportée pour l'opérateur %s" +#~ msgid "select() failed: %m" +#~ msgstr "échec de select() : %m" -#~ msgid "hash operator family \"%s\" contains operator %s with invalid strategy number %d" -#~ msgstr "" -#~ "la famille d'opérateur hash « %s » contient l'opérateur %s avec le numéro\n" -#~ "de stratégie invalide %d" +#~ msgid "server does not exist, skipping" +#~ msgstr "le serveur n'existe pas, poursuite du traitement" -#~ msgid "hash operator family \"%s\" contains function %s with invalid support number %d" -#~ msgstr "" -#~ "la famille d'opérateur hash « %s » contient la fonction %s avec\n" -#~ "le numéro de support invalide %d" +#~ msgid "server name cannot be qualified" +#~ msgstr "le nom du serveur ne peut pas être qualifié" -#~ msgid "hash operator family \"%s\" contains function %s with wrong signature for support number %d" -#~ msgstr "" -#~ "la famille d'opérateur hash « %s » contient la fonction %s avec une mauvaise\n" -#~ "signature pour le numéro de support %d" +#~ msgid "shared index \"%s\" can only be reindexed in stand-alone mode" +#~ msgstr "un index partagé « %s » peut seulement être réindexé en mode autonome" -#~ msgid "hash operator family \"%s\" contains support procedure %s with cross-type registration" +#~ msgid "shared table \"%s\" can only be reindexed in stand-alone mode" +#~ msgstr "la table partagée « %s » peut seulement être réindexé en mode autonome" + +#~ msgid "shared tables cannot be toasted after initdb" #~ msgstr "" -#~ "la famille d'opérateur hash « %s » contient la procédure de support\n" -#~ "%s avec un enregistrement inter-type" +#~ "les tables partagées ne peuvent pas avoir une table TOAST après la commande\n" +#~ "initdb" -#~ msgid "gist operator family \"%s\" contains operator %s with wrong signature" -#~ msgstr "la famille d'opérateur gist « %s » contient l'opérateur %s avec une mauvaise signature" +#~ msgid "shutdown requested, aborting active base backup" +#~ msgstr "arrêt demandé, annulation de la sauvegarde active de base" -#~ msgid "gist operator family \"%s\" contains operator %s with invalid strategy number %d" -#~ msgstr "" -#~ "la famille d'opérateur gist « %s » contient l'opérateur %s avec le numéro\n" -#~ "de stratégie invalide %d" +#~ msgid "skipping redundant vacuum to prevent wraparound of table \"%s.%s.%s\"" +#~ msgstr "ignore un VACUUM redondant pour éviter le rebouclage des identifiants dans la table \"%s.%s.%s\"" -#~ msgid "gist operator family \"%s\" contains function %s with wrong signature for support number %d" -#~ msgstr "" -#~ "la famille d'opérateur gist « %s » contient la fonction %s avec une mauvaise\n" -#~ "signature pour le numéro de support %d" +#~ msgid "slot_name = NONE and create_slot = true are mutually exclusive options" +#~ msgstr "slot_name = NONE et create_slot = true sont des options mutuellement exclusives" -#~ msgid "gist operator family \"%s\" contains function %s with invalid support number %d" -#~ msgstr "" -#~ "la famille d'opérateur gist « %s » contient la fonction %s avec\n" -#~ "le numéro de support invalide %d" +#~ msgid "slot_name = NONE and enabled = true are mutually exclusive options" +#~ msgstr "slot_name = NONE et enabled = true sont des options mutuellement exclusives" -#~ msgid "gist operator family \"%s\" contains support procedure %s with cross-type registration" -#~ msgstr "" -#~ "la famille d'opérateur gist « %s » contient la procédure de support\n" -#~ "%s avec un enregistrement inter-type" +#~ msgid "socket not open" +#~ msgstr "socket non ouvert" -#~ msgid "brin operator family \"%s\" contains operator %s with wrong signature" -#~ msgstr "la famille d'opérateur brin « %s » contient l'opérateur %s avec une mauvaise signature" +#, fuzzy +#~ msgid "sorry, too many standbys already" +#~ msgstr "désolé, trop de clients sont déjà connectés" -#~ msgid "brin operator family \"%s\" contains invalid ORDER BY specification for operator %s" -#~ msgstr "" -#~ "la famille d'opérateur brin « %s » contient une spécification\n" -#~ "ORDER BY invalide pour l'opérateur %s" +#~ msgid "spgist operator class \"%s\" is missing operator(s)" +#~ msgstr "il manque des opérateurs pour la classe d'opérateur spgist « %s »" -#~ msgid "brin operator family \"%s\" contains operator %s with invalid strategy number %d" +#~ msgid "spgist operator family \"%s\" contains function %s with invalid support number %d" #~ msgstr "" -#~ "la famille d'opérateur brin « %s » contient l'opérateur %s\n" -#~ "avec le numéro de stratégie %d invalide" +#~ "la famille d'opérateur spgist « %s » contient la fonction %s\n" +#~ "avec le numéro de support %d invalide" -#~ msgid "brin operator family \"%s\" contains function %s with wrong signature for support number %d" +#~ msgid "spgist operator family \"%s\" contains function %s with wrong signature for support number %d" #~ msgstr "" -#~ "la famille d'opérateur brin « %s » contient la fonction %s\n" +#~ "la famille d'opérateur spgist « %s » contient la fonction %s\n" #~ "avec une mauvaise signature pour le numéro de support %d" -#~ msgid "brin operator family \"%s\" contains function %s with invalid support number %d" +#~ msgid "spgist operator family \"%s\" contains invalid ORDER BY specification for operator %s" #~ msgstr "" -#~ "la famille d'opérateur brin « %s » contient la fonction %s\n" -#~ "avec le numéro de support %d invalide" - -#~ msgid "index row size %lu exceeds maximum %lu for index \"%s\"" -#~ msgstr "la taille de la ligne index, %lu, dépasse le maximum, %lu, pour l'index « %s »" +#~ "la famille d'opérateur spgist « %s » contient une spécification\n" +#~ "ORDER BY invalide pour l'opérateur %s" -#~ msgid "" -#~ "WARNING: Calculated CRC checksum does not match value stored in file.\n" -#~ "Either the file is corrupt, or it has a different layout than this program\n" -#~ "is expecting. The results below are untrustworthy.\n" -#~ "\n" +#~ msgid "spgist operator family \"%s\" contains operator %s with invalid strategy number %d" #~ msgstr "" -#~ "ATTENTION : Les sommes de contrôle (CRC) calculées ne correspondent pas aux\n" -#~ "valeurs stockées dans le fichier.\n" -#~ "Soit le fichier est corrompu, soit son organisation diffère de celle\n" -#~ "attendue par le programme.\n" -#~ "Les résultats ci-dessous ne sont pas dignes de confiance.\n" -#~ "\n" - -#~ msgid "invalid number of arguments: object must be matched key value pairs" -#~ msgstr "nombre d'arguments invalide : l'objet doit correspond aux paires clé/valeur" +#~ "la famille d'opérateur spgist « %s » contient l'opérateur %s\n" +#~ "avec le numéro de stratégie invalide %d" -#~ msgid "foreign key referencing partitioned table \"%s\" must not be ONLY" -#~ msgstr "la clé étrangère référençant la table partitionnée « %s » ne doit pas être ONLY" +#~ msgid "spgist operator family \"%s\" contains operator %s with wrong signature" +#~ msgstr "la famille d'opérateur spgist « %s » contient l'opérateur %s avec une mauvaise signature" -#~ msgid "If you're sure there are no old server processes still running, remove the shared memory block or just delete the file \"%s\"." +#~ msgid "spgist operator family \"%s\" contains support procedure %s with cross-type registration" #~ msgstr "" -#~ "Si vous êtes sûr qu'aucun processus serveur n'est toujours en cours\n" -#~ "d'exécution, supprimez le bloc de mémoire partagée\n" -#~ "ou supprimez simplement le fichier « %s »." - -#~ msgid "view must have at least one column" -#~ msgstr "la vue doit avoir au moins une colonne" +#~ "la famille d'opérateur spgist « %s » contient la procédure de support\n" +#~ "%s avec un enregistrement inter-type" -#~ msgid "cannot PREPARE a transaction that has operated on temporary namespace" +#~ msgid "spgist operator family \"%s\" is missing operator(s) for types %s and %s" #~ msgstr "" -#~ "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur un\n" -#~ "schéma temporaire" - -#~ msgid "could not write to tuplestore temporary file: %m" -#~ msgstr "n'a pas pu écrire le fichier temporaire tuplestore : %m" +#~ "la famille d'opérateur spgist « %s » nécessite des opérateurs supplémentaires\n" +#~ "pour les types %s et %s" -#~ msgid "could not write to temporary file: %m" -#~ msgstr "n'a pas pu écrire dans le fichier temporaire : %m" +#~ msgid "standby connections not allowed because wal_level=minimal" +#~ msgstr "connexions standby non autorisées car wal_level=minimal" -#~ msgid "When a password is specified in CREATE USER or ALTER USER without writing either ENCRYPTED or UNENCRYPTED, this parameter determines whether the password is to be encrypted." -#~ msgstr "" -#~ "Lorsqu'un mot de passe est spécifié dans CREATE USER ou ALTER USER sans\n" -#~ "indiquer ENCRYPTED ou UNENCRYPTED, ce paramètre détermine si le mot de passe\n" -#~ "doit être chiffré." +#~ msgid "streaming replication successfully connected to primary" +#~ msgstr "réplication de flux connecté avec succès au serveur principal" -#~ msgid "Encrypt passwords." -#~ msgstr "Chiffre les mots de passe." +#~ msgid "subquery cannot have SELECT INTO" +#~ msgstr "la sous-requête ne peut pas avoir de SELECT INTO" -#~ msgid "encoding name too long" -#~ msgstr "nom d'encodage trop long" +#~ msgid "subquery in FROM cannot have SELECT INTO" +#~ msgstr "la sous-requête du FROM ne peut pas avoir de SELECT INTO" -#~ msgid "Server has FLOAT4PASSBYVAL = %s, library has %s." -#~ msgstr "Le serveur a FLOAT4PASSBYVAL = %s, la bibliothèque a %s." +#~ msgid "subquery in FROM cannot refer to other relations of same query level" +#~ msgstr "" +#~ "la sous-requête du FROM ne peut pas faire référence à d'autres relations\n" +#~ "dans le même niveau de la requête" -#~ msgid "cannot output a value of type %s" -#~ msgstr "ne peut pas afficher une valeur de type %s" +#~ msgid "subquery in WITH cannot have SELECT INTO" +#~ msgstr "la sous-requête du WITH ne peut pas avoir de SELECT INTO" -#~ msgid "cannot use advisory locks during a parallel operation" -#~ msgstr "ne peut pas utiliser les verrous informatifs lors d'une opération parallèle" +#~ msgid "subquery must return a column" +#~ msgstr "la sous-requête doit renvoyer une colonne" -#~ msgid "Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8" -#~ msgstr "" -#~ "Les valeurs d'échappement unicode ne peuvent pas être utilisées pour les\n" -#~ "valeurs de point de code au-dessus de 007F quand l'encodage serveur n'est\n" -#~ "pas UTF8" +#~ msgid "subscription with slot_name = NONE must also set create_slot = false" +#~ msgstr "la souscription avec slot_name = NONE doit aussi être configurée avec create_slot = false" -#~ msgid "could not read from log segment %s, offset %u, length %zu: %m" -#~ msgstr "n'a pas pu lire le segment %s du journal de transactions, décalage %u, longueur %zu : %m" +#~ msgid "syntax error in recovery command file: %s" +#~ msgstr "erreur de syntaxe dans le fichier de restauration : %s" -#~ msgid "cannot advance replication slot that has not previously reserved WAL" -#~ msgstr "impossible d'avancer un slot de réplication qui n'a pas auparavant réservé de WAL" +#~ msgid "syntax error: cannot back up" +#~ msgstr "erreur de syntaxe : n'a pas pu revenir" -#~ msgid "replication origin %d is already active for PID %d" -#~ msgstr "l'origine de réplication %d est déjà active pour le PID %d" +#~ msgid "syntax error: unexpected character \"%s\"" +#~ msgstr "erreur de syntaxe : caractère « %s » inattendu" -#~ msgid "Please report this to ." -#~ msgstr "Veuillez rapporter ceci à ." +#~ msgid "syntax error; also virtual memory exhausted" +#~ msgstr "erreur de syntaxe ; de plus, mémoire virtuelle saturée" -#~ msgid "could not create signal dispatch thread: error code %lu\n" -#~ msgstr "n'a pas pu créer le thread de répartition des signaux : code d'erreur %lu\n" +#~ msgid "system columns cannot be used in an ON CONFLICT clause" +#~ msgstr "les colonnes systèmes ne peuvent pas être utilisées dans une clause ON CONFLICT" -#~ msgid "could not find range type for data type %s" -#~ msgstr "n'a pas pu trouver le type range pour le type de données %s" +#~ msgid "table \"%s\" does not have OIDs" +#~ msgstr "la table « %s » n'a pas d'OID" -#~ msgid "SSL library does not support certificate revocation lists." -#~ msgstr "La bibliothèque SSL ne supporte pas les listes de révocation des certificats." +#~ msgid "table \"%s\" has multiple constraints named \"%s\"" +#~ msgstr "la table « %s » a de nombreuses contraintes nommées « %s »" -#~ msgid "SSL certificate revocation list file \"%s\" ignored" -#~ msgstr "liste de révocation des certificats SSL « %s » ignorée" +#~ msgid "table \"%s\" without OIDs cannot inherit from table \"%s\" with OIDs" +#~ msgstr "la table « %s » qui n'a pas d'OID ne peut pas hériter de la table « %s » qui en a" -#~ msgid "could not load wldap32.dll" -#~ msgstr "n'a pas pu charger wldap32.dll" +#~ msgid "tablespace %u is not empty" +#~ msgstr "le tablespace %u n'est pas vide" -#~ msgid "Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8." -#~ msgstr "" -#~ "Les valeurs d'échappement unicode ne peuvent pas être utilisées pour les valeurs de point de code\n" -#~ "au-dessus de 007F quand l'encodage serveur n'est pas UTF8." +#~ msgid "tablespace name cannot be qualified" +#~ msgstr "le nom du tablespace ne peut pas être qualifié" -#~ msgid "could not write to hash-join temporary file: %m" -#~ msgstr "n'a pas pu écrire le fichier temporaire de la jointure hâchée : %m" +#~ msgid "terminating all walsender processes to force cascaded standby(s) to update timeline and reconnect" +#~ msgstr "" +#~ "arrêt de tous les processus walsender pour forcer les serveurs standby en\n" +#~ "cascade à mettre à jour la timeline et à se reconnecter" -#~ msgid "could not determine actual result type for function declared to return type %s" +#~ msgid "terminating walsender process to force cascaded standby to update timeline and reconnect" #~ msgstr "" -#~ "n'a pas pu déterminer le type du résultat actuel pour la fonction déclarant\n" -#~ "renvoyer le type %s" +#~ "arrêt du processus walreceiver pour forcer le serveur standby en cascade à\n" +#~ "mettre à jour la timeline et à se reconnecter" -#~ msgid "\"%s.%s\" is a partitioned table." -#~ msgstr "« %s.%s » est une table partitionnée." +#~ msgid "there are multiple rules named \"%s\"" +#~ msgstr "il existe de nombreuses règles nommées « %s »" -#~ msgid "invalid value for \"check_option\" option" -#~ msgstr "valeur invalide pour l'option « check_option »" +#~ msgid "there are objects dependent on %s" +#~ msgstr "des objets dépendent de %s" -#~ msgid "changing argument type of function %s from \"opaque\" to %s" -#~ msgstr "changement du type d'argument de la fonction %s d'« opaque » à %s" +#~ msgid "there is no contrecord flag in log file %u, segment %u, offset %u" +#~ msgstr "" +#~ "il n'y a pas de drapeaux « contrecord » dans le journal de transactions %u,\n" +#~ "segment %u, décalage %u" -#~ msgid "changing argument type of function %s from \"opaque\" to \"cstring\"" -#~ msgstr "changement du type d'argument de la fonction %s d'« opaque » à « cstring »" +#~ msgid "time zone abbreviation \"%s\" is not used in time zone \"%s\"" +#~ msgstr "l'abréviation « %s » du fuseau horaire n'est pas utilisée dans le fuseau horaire « %s »" -#~ msgid "converting trigger group into constraint \"%s\" %s" -#~ msgstr "conversion du groupe de trigger en une contrainte « %s » %s" +#~ msgid "time zone offset %d is not a multiple of 900 sec (15 min) in time zone file \"%s\", line %d" +#~ msgstr "" +#~ "le décalage %d du fuseau horaire n'est pas un multiples de 900 secondes\n" +#~ "(15 minutes) dans le fichier des fuseaux horaires « %s », ligne %d" -#~ msgid "ignoring incomplete trigger group for constraint \"%s\" %s" -#~ msgstr "ignore le groupe de trigger incomplet pour la contrainte « %s » %s" +#~ msgid "too few arguments for format" +#~ msgstr "trop peu d'arguments pour le format" -#~ msgid "Found referencing table's trigger." -#~ msgstr "Trigger de la table référencée trouvé." +#~ msgid "transaction ID " +#~ msgstr "ID de transaction " -#~ msgid "Found referenced table's DELETE trigger." -#~ msgstr "Trigger DELETE de la table référencée trouvé." +#~ msgid "transaction is read-only" +#~ msgstr "la transaction est en lecture seule" -#~ msgid "Found referenced table's UPDATE trigger." -#~ msgstr "Trigger UPDATE de la table référencée trouvé." +#~ msgid "transaction log switch forced (archive_timeout=%d)" +#~ msgstr "changement forcé du journal de transaction (archive_timeout=%d)" -#~ msgid "Partitioned tables cannot have BEFORE / FOR EACH ROW triggers." -#~ msgstr "Les tables partitionnées ne peuvent pas avoir de triggers BEFORE / FOR EACH ROW." +#~ msgid "transform expression must not return a set" +#~ msgstr "l'expression de transformation ne doit pas renvoyer un ensemble" -#~ msgid "partition key expressions cannot contain whole-row references" -#~ msgstr "les expressions de clé de partitionnement ne peuvent pas contenir des références à des lignes complètes" +#~ msgid "transform function must not be an aggregate function" +#~ msgstr "la fonction de transformation ne doit pas être une fonction d'agrégat" -#~ msgid "updated partition constraint for default partition would be violated by some row" -#~ msgstr "la contrainte de partition mise à jour pour la partition par défaut serait transgressée par des lignes" +#~ msgid "trigger \"%s\" for table \"%s\" does not exist, skipping" +#~ msgstr "le trigger « %s » pour la table « %s » n'existe pas, poursuite du traitement" -#~ msgid "column \"%s\" contains null values" -#~ msgstr "la colonne « %s » contient des valeurs NULL" +#~ msgid "tuple to be deleted was already moved to another partition due to concurrent update" +#~ msgstr "la ligne à supprimer était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente" -#~ msgid "changing return type of function %s from %s to %s" -#~ msgstr "changement du type de retour de la fonction %s de %s vers %s" +#~ msgid "tuple to be updated was already moved to another partition due to concurrent update" +#~ msgstr "la ligne à mettre à jour était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente, nouvelle tentative" -#~ msgid "The supported languages are listed in the pg_pltemplate system catalog." -#~ msgstr "Les langages supportés sont listés dans le catalogue système pg_pltemplate." +#~ msgid "two-phase state file for transaction %u is corrupt" +#~ msgstr "" +#~ "le fichier d'état de la validation en deux phases est corrompu pour la\n" +#~ "transaction %u" -#~ msgid "unsupported language \"%s\"" -#~ msgstr "langage non supporté « %s »" +#~ msgid "type output function %s must return type \"cstring\"" +#~ msgstr "le type de sortie de la fonction %s doit être « cstring »" -#~ msgid "must be superuser to create procedural language \"%s\"" -#~ msgstr "doit être super-utilisateur pour créer le langage de procédures « %s »" +#~ msgid "type send function %s must return type \"bytea\"" +#~ msgstr "la fonction send du type %s doit renvoyer le type « bytea »" -#~ msgid "using pg_pltemplate information instead of CREATE LANGUAGE parameters" -#~ msgstr "" -#~ "utilisation des informations de pg_pltemplate au lieu des paramètres de\n" -#~ "CREATE LANGUAGE" +#~ msgid "typmod_in function %s must return type \"integer\"" +#~ msgstr "la fonction typmod_in %s doit renvoyer le type « entier »" -#~ msgid "FROM version must be different from installation target version \"%s\"" -#~ msgstr "la version FROM doit être différente de la version cible d'installation « %s »" +#~ msgid "ucnv_fromUChars failed: %s" +#~ msgstr "échec de ucnv_fromUChars : %s" -#~ msgid "EXPLAIN option BUFFERS requires ANALYZE" -#~ msgstr "l'option BUFFERS d'EXPLAIN nécessite ANALYZE" +#~ msgid "ucnv_toUChars failed: %s" +#~ msgstr "échec de ucnv_toUChars : %s" -#~ msgid "You can add the table partitions individually." -#~ msgstr "Vous pouvez ajouter les partitions de table individuellement." +#~ msgid "unable to open directory pg_tblspc: %m" +#~ msgstr "impossible d'ouvrir le répertoire p_tblspc : %m" -#~ msgid "Adding partitioned tables to publications is not supported." -#~ msgstr "Ajouter des tables partitionnées à des publications n'est pas supporté." +#~ msgid "unable to read symbolic link %s: %m" +#~ msgstr "incapable de lire le lien symbolique %s : %m" -#~ msgid "A function returning \"anyrange\" must have at least one \"anyrange\" argument." -#~ msgstr "Une fonction renvoyant « anyrange » doit avoir au moins un argument du type « anyrange »." +#~ msgid "uncataloged table %s" +#~ msgstr "table %s sans catalogue" -#~ msgid "A function returning a polymorphic type must have at least one polymorphic argument." -#~ msgstr "Une fonction renvoyant un type polymorphique doit avoir au moins un argument de type polymorphique." +#~ msgid "unexpected \"=\"" +#~ msgstr "« = » inattendu" -#~ msgid "A function returning \"internal\" must have at least one \"internal\" argument." -#~ msgstr "Une fonction renvoyant « internal » doit avoir au moins un argument du type « internal »." +#~ msgid "unexpected Kerberos user name received from client (received \"%s\", expected \"%s\")" +#~ msgstr "" +#~ "nom d'utilisateur Kerberos inattendu reçu à partir du client (reçu « %s »,\n" +#~ "attendu « %s »)" -#~ msgid "An aggregate returning a polymorphic type must have at least one polymorphic argument." -#~ msgstr "Un agrégat renvoyant un type polymorphique doit avoir au moins un argument de type polymorphique." +#~ msgid "unexpected delimiter at line %d of thesaurus file \"%s\"" +#~ msgstr "délimiteur inattendu sur la ligne %d du thesaurus « %s »" -#~ msgid "An aggregate using a polymorphic transition type must have at least one polymorphic argument." -#~ msgstr "Un agrégat utilisant un type de transition polymorphique doit avoir au moins un argument polymorphique." +#~ msgid "unexpected end of line at line %d of thesaurus file \"%s\"" +#~ msgstr "fin de ligne inattendue à la ligne %d du thésaurus « %s »" -#~ msgid "could not read from log segment %s, offset %u, length %lu: %m" -#~ msgstr "n'a pas pu lire le journal de transactions %s, décalage %u, longueur %lu : %m" +#~ msgid "unexpected end of line or lexeme at line %d of thesaurus file \"%s\"" +#~ msgstr "fin de ligne ou de lexeme inattendu sur la ligne %d du thesaurus « %s »" -#~ msgid "could not seek in log segment %s to offset %u: %m" -#~ msgstr "n'a pas pu se déplacer dans le journal de transactions %s au décalage %u : %m" +#~ msgid "unexpected standby message type \"%c\", after receiving CopyDone" +#~ msgstr "type de message standby « %c » inattendu, après avoir reçu CopyDone" -#~ msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s" -#~ msgstr "le fichier WAL provient d'une instance différente : l'identifiant système de la base dans le fichier WAL est %s, alors que l'identifiant système de l'instance dans pg_control est %s" +#~ msgid "unlogged GiST indexes are not supported" +#~ msgstr "les index GiST non tracés ne sont pas supportés" -#~ msgid "The database cluster was initialized with USE_FLOAT4_BYVAL but the server was compiled without USE_FLOAT4_BYVAL." -#~ msgstr "" -#~ "Le cluster de base de données a été initialisé avec USE_FLOAT4_BYVAL\n" -#~ "alors que le serveur a été compilé sans USE_FLOAT4_BYVAL." +#~ msgid "unlogged operation performed, data may be missing" +#~ msgstr "opération réalisée non tracée, les données pourraient manquer" -#~ msgid "The database cluster was initialized without USE_FLOAT4_BYVAL but the server was compiled with USE_FLOAT4_BYVAL." -#~ msgstr "" -#~ "Le cluster de base de données a été initialisé sans USE_FLOAT4_BYVAL\n" -#~ "alors que le serveur a été compilé avec USE_FLOAT4_BYVAL." +#~ msgid "unrecognized \"datestyle\" key word: \"%s\"" +#~ msgstr "mot clé « datestyle » non reconnu : « %s »" -#~ msgid "skipping redundant vacuum to prevent wraparound of table \"%s.%s.%s\"" -#~ msgstr "ignore un VACUUM redondant pour éviter le rebouclage des identifiants dans la table \"%s.%s.%s\"" +#~ msgid "unrecognized \"log_destination\" key word: \"%s\"" +#~ msgstr "mot clé « log_destination » non reconnu : « %s »" -#~ msgid "could not write block %ld of temporary file: %m" -#~ msgstr "n'a pas pu écrire le bloc %ld du fichier temporaire : %m" +#~ msgid "unrecognized error %d" +#~ msgstr "erreur %d non reconnue" -#~ msgid "invalid value for \"buffering\" option" -#~ msgstr "valeur invalide pour l'option « buffering »" +#~ msgid "unrecognized function attribute \"%s\" ignored" +#~ msgstr "l'attribut « %s » non reconnu de la fonction a été ignoré" -#~ msgid "leftover placeholder tuple detected in BRIN index \"%s\", deleting" -#~ msgstr "reste d'espace de ligne réservé dans l'index BRIN « %s », suppression" +#~ msgid "unrecognized recovery parameter \"%s\"" +#~ msgstr "paramètre de restauration « %s » non reconnu" -#~ msgid "cannot create restricted tokens on this platform" -#~ msgstr "ne peut pas créer les jetons restreints sur cette plateforme" +#~ msgid "unrecognized win32 error code: %lu" +#~ msgstr "code d'erreur win32 non reconnu : %lu" -#~ msgid "connection authorized: user=%s database=%s" -#~ msgstr "connexion autorisée : utilisateur=%s, base de données=%s" +#~ msgid "unsafe permissions on private key file \"%s\"" +#~ msgstr "droits non sûrs sur le fichier de la clé privée « %s »" -#~ msgid "connection authorized: user=%s database=%s application_name=%s" -#~ msgstr "connexion autorisée : utilisateur=%s base de données=%s nom d'application=%s" +#~ msgid "unsupported PAM conversation %d/%s" +#~ msgstr "conversation PAM %d/%s non supportée" -#~ msgid "connection authorized: user=%s database=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" -#~ msgstr "connexion autorisée : utilisateur=%s, base de données=%s, SSL activé (protocole=%s, chiffrement=%s, bits=%d, compression=%s)" +#~ msgid "unsupported language \"%s\"" +#~ msgstr "langage non supporté « %s »" -#~ msgid "connection authorized: user=%s database=%s application_name=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" -#~ msgstr "connexion autorisée : utilisateur=%s base de données=%s nom d'application=%s SSL activé (protocole=%s, chiffrement=%s, bits=%d, compression=%s)" +#~ msgid "updated partition constraint for default partition would be violated by some row" +#~ msgstr "la contrainte de partition mise à jour pour la partition par défaut serait transgressée par des lignes" -#~ msgid "replication connection authorized: user=%s application_name=%s" -#~ msgstr "connexion de réplication autorisée : utilisateur=%s nom d'application=%s" +#~ msgid "usermap \"%s\"" +#~ msgstr "correspondance utilisateur « %s »" -#~ msgid "replication connection authorized: user=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" -#~ msgstr "connexion autorisée : utilisateur=%s, SSL activé (protocole=%s, chiffrement=%s, bits=%d, compression=%s)" +#~ msgid "using pg_pltemplate information instead of CREATE LANGUAGE parameters" +#~ msgstr "" +#~ "utilisation des informations de pg_pltemplate au lieu des paramètres de\n" +#~ "CREATE LANGUAGE" -#~ msgid "replication connection authorized: user=%s application_name=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" -#~ msgstr "connexion de réplication autorisée : utilisateur=%s, nom d'application=%s, SSL activé (protocole=%s, chiffrement=%s, bits=%d, compression=%s)" +#~ msgid "using previous checkpoint record at %X/%X" +#~ msgstr "utilisation du précédent enregistrement d'un point de vérification à %X/%X" -#~ msgid "invalid concatenation of jsonb objects" -#~ msgstr "concaténation invalide d'objets jsonb" +#~ msgid "value \"%s\" is out of range for type bigint" +#~ msgstr "la valeur « %s » est en dehors des limites du type bigint" -#~ msgid "unexpected standby message type \"%c\", after receiving CopyDone" -#~ msgstr "type de message standby « %c » inattendu, après avoir reçu CopyDone" +#~ msgid "value \"%s\" is out of range for type integer" +#~ msgstr "la valeur « %s » est en dehors des limites du type integer" -#~ msgid "GSSAPI encryption only supports gss, trust, or reject authentication" -#~ msgstr "le chiffrement GSSAPI ne supporte que l'authentification gss, trust ou reject" +#~ msgid "value \"%s\" is out of range for type smallint" +#~ msgstr "la valeur « %s » est en dehors des limites du type smallint" -#~ msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\"" -#~ msgstr "" -#~ "aucune entrée dans pg_hba.conf pour l'hôte « %s », utilisateur « %s »,\n" -#~ "base de données « %s »" +#~ msgid "view must have at least one column" +#~ msgstr "la vue doit avoir au moins une colonne" -#~ msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\"" -#~ msgstr "" -#~ "aucune entrée dans pg_hba.conf pour la connexion de la réplication à partir de\n" -#~ "l'hôte « %s », utilisateur « %s »" +#~ msgid "window functions cannot use named arguments" +#~ msgstr "les fonctions window ne peuvent pas renvoyer des arguments nommés" -#~ msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\"" -#~ msgstr "" -#~ "pg_hba.conf rejette la connexion pour l'hôte « %s », utilisateur « %s », base\n" -#~ "de données « %s »" +#~ msgid "window functions not allowed in GROUP BY clause" +#~ msgstr "fonctions window non autorisées dans une clause GROUP BY" -#~ msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\"" -#~ msgstr "" -#~ "pg_hba.conf rejette la connexion de la réplication pour l'hôte « %s »,\n" -#~ "utilisateur « %s »" +#~ msgid "worker process" +#~ msgstr "processus de travail" -#~ msgid "GSSAPI encryption can only be used with gss, trust, or reject authentication methods" -#~ msgstr "le chiffrement GSSAPI ne peut être utilisé qu'avec les méthodes d'authentification gss, trust ou reject" +#~ msgid "wrong affix file format for flag" +#~ msgstr "mauvais format de fichier affixe pour le drapeau" -#~ msgid "For RAID arrays, this should be approximately the number of drive spindles in the array." -#~ msgstr "" -#~ "Pour les systèmes RAID, cela devrait être approximativement le nombre de\n" -#~ "têtes de lecture du système." +#, fuzzy +#~ msgid "wrong number of array_subscripts" +#~ msgstr "mauvais nombre d'indices du tableau" -#~ msgid "role \"%s\" could not be removed from policy \"%s\" on \"%s\"" -#~ msgstr "le rôle « %s » n'a pas pu être supprimé de la politique « %s » sur « %s »" +#~ msgid "xrecoff \"%X\" is out of valid range, 0..%X" +#~ msgstr "xrecoff « %X » en dehors des limites valides, 0..%X" diff -Nru postgresql-13-13.4/src/backend/po/ru.po postgresql-13-13.7/src/backend/po/ru.po --- postgresql-13-13.4/src/backend/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -4,13 +4,14 @@ # Serguei A. Mokhov , 2001-2005. # Oleg Bartunov , 2004-2005. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022. +# Maxim Yablokov , 2021. msgid "" msgstr "" "Project-Id-Version: postgres (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-02-08 07:28+0300\n" -"PO-Revision-Date: 2021-02-08 08:35+0300\n" +"POT-Creation-Date: 2022-05-06 12:21+0300\n" +"PO-Revision-Date: 2022-05-07 06:38+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -28,59 +29,59 @@ msgstr "не записано" #: ../common/controldata_utils.c:68 ../common/controldata_utils.c:73 -#: commands/copy.c:3495 commands/extension.c:3436 utils/adt/genfile.c:125 +#: commands/copy.c:3496 commands/extension.c:3444 utils/adt/genfile.c:125 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не удалось открыть файл \"%s\" для чтения: %m" #: ../common/controldata_utils.c:86 ../common/controldata_utils.c:89 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1276 access/transam/xlog.c:3503 -#: access/transam/xlog.c:4728 access/transam/xlog.c:11101 -#: access/transam/xlog.c:11114 access/transam/xlog.c:11567 -#: access/transam/xlog.c:11647 access/transam/xlog.c:11686 -#: access/transam/xlog.c:11729 access/transam/xlogfuncs.c:662 -#: access/transam/xlogfuncs.c:681 commands/extension.c:3446 libpq/hba.c:499 +#: access/transam/twophase.c:1334 access/transam/xlog.c:3525 +#: access/transam/xlog.c:4763 access/transam/xlog.c:11297 +#: access/transam/xlog.c:11310 access/transam/xlog.c:11763 +#: access/transam/xlog.c:11843 access/transam/xlog.c:11882 +#: access/transam/xlog.c:11925 access/transam/xlogfuncs.c:662 +#: access/transam/xlogfuncs.c:681 commands/extension.c:3454 libpq/hba.c:499 #: replication/logical/origin.c:717 replication/logical/origin.c:753 -#: replication/logical/reorderbuffer.c:3599 -#: replication/logical/snapbuild.c:1744 replication/logical/snapbuild.c:1786 -#: replication/logical/snapbuild.c:1814 replication/logical/snapbuild.c:1841 -#: replication/slot.c:1622 replication/slot.c:1663 replication/walsender.c:547 +#: replication/logical/reorderbuffer.c:3633 +#: replication/logical/snapbuild.c:1760 replication/logical/snapbuild.c:1802 +#: replication/logical/snapbuild.c:1830 replication/logical/snapbuild.c:1857 +#: replication/slot.c:1709 replication/slot.c:1750 replication/walsender.c:547 #: storage/file/buffile.c:441 storage/file/copydir.c:195 -#: utils/adt/genfile.c:200 utils/adt/misc.c:763 utils/cache/relmapper.c:741 +#: utils/adt/genfile.c:200 utils/adt/misc.c:763 utils/cache/relmapper.c:744 #, c-format msgid "could not read file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" #: ../common/controldata_utils.c:97 ../common/controldata_utils.c:101 -#: access/transam/twophase.c:1279 access/transam/xlog.c:3508 -#: access/transam/xlog.c:4733 replication/logical/origin.c:722 -#: replication/logical/origin.c:761 replication/logical/snapbuild.c:1749 -#: replication/logical/snapbuild.c:1791 replication/logical/snapbuild.c:1819 -#: replication/logical/snapbuild.c:1846 replication/slot.c:1626 -#: replication/slot.c:1667 replication/walsender.c:552 -#: utils/cache/relmapper.c:745 +#: access/transam/twophase.c:1337 access/transam/xlog.c:3530 +#: access/transam/xlog.c:4768 replication/logical/origin.c:722 +#: replication/logical/origin.c:761 replication/logical/snapbuild.c:1765 +#: replication/logical/snapbuild.c:1807 replication/logical/snapbuild.c:1835 +#: replication/logical/snapbuild.c:1862 replication/slot.c:1713 +#: replication/slot.c:1754 replication/walsender.c:552 +#: utils/cache/relmapper.c:748 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" #: ../common/controldata_utils.c:112 ../common/controldata_utils.c:117 #: ../common/controldata_utils.c:256 ../common/controldata_utils.c:259 -#: access/heap/rewriteheap.c:1181 access/heap/rewriteheap.c:1284 +#: access/heap/rewriteheap.c:1185 access/heap/rewriteheap.c:1288 #: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:516 access/transam/twophase.c:1288 -#: access/transam/twophase.c:1676 access/transam/xlog.c:3375 -#: access/transam/xlog.c:3543 access/transam/xlog.c:3548 -#: access/transam/xlog.c:3876 access/transam/xlog.c:4698 -#: access/transam/xlog.c:5622 access/transam/xlogfuncs.c:687 -#: commands/copy.c:1810 libpq/be-fsstubs.c:462 libpq/be-fsstubs.c:533 +#: access/transam/timeline.c:516 access/transam/twophase.c:1346 +#: access/transam/twophase.c:1757 access/transam/xlog.c:3397 +#: access/transam/xlog.c:3565 access/transam/xlog.c:3570 +#: access/transam/xlog.c:3898 access/transam/xlog.c:4733 +#: access/transam/xlog.c:5657 access/transam/xlogfuncs.c:687 +#: commands/copy.c:1810 libpq/be-fsstubs.c:455 libpq/be-fsstubs.c:525 #: replication/logical/origin.c:655 replication/logical/origin.c:794 -#: replication/logical/reorderbuffer.c:3657 -#: replication/logical/snapbuild.c:1653 replication/logical/snapbuild.c:1854 -#: replication/slot.c:1513 replication/slot.c:1674 replication/walsender.c:562 +#: replication/logical/reorderbuffer.c:3691 +#: replication/logical/snapbuild.c:1669 replication/logical/snapbuild.c:1870 +#: replication/slot.c:1600 replication/slot.c:1761 replication/walsender.c:562 #: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:704 -#: storage/file/fd.c:3425 storage/file/fd.c:3528 utils/cache/relmapper.c:753 -#: utils/cache/relmapper.c:892 +#: storage/file/fd.c:3439 storage/file/fd.c:3542 utils/cache/relmapper.c:759 +#: utils/cache/relmapper.c:898 #, c-format msgid "could not close file \"%s\": %m" msgstr "не удалось закрыть файл \"%s\": %m" @@ -105,106 +106,106 @@ #: ../common/controldata_utils.c:197 ../common/controldata_utils.c:203 #: ../common/file_utils.c:224 ../common/file_utils.c:283 -#: ../common/file_utils.c:357 access/heap/rewriteheap.c:1267 +#: ../common/file_utils.c:357 access/heap/rewriteheap.c:1271 #: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1232 -#: access/transam/xlog.c:3277 access/transam/xlog.c:3417 -#: access/transam/xlog.c:3458 access/transam/xlog.c:3656 -#: access/transam/xlog.c:3741 access/transam/xlog.c:3844 -#: access/transam/xlog.c:4718 access/transam/xlogutils.c:807 +#: access/transam/timeline.c:348 access/transam/twophase.c:1290 +#: access/transam/xlog.c:3299 access/transam/xlog.c:3439 +#: access/transam/xlog.c:3480 access/transam/xlog.c:3678 +#: access/transam/xlog.c:3763 access/transam/xlog.c:3866 +#: access/transam/xlog.c:4753 access/transam/xlogutils.c:807 #: postmaster/syslogger.c:1488 replication/basebackup.c:621 #: replication/basebackup.c:1593 replication/logical/origin.c:707 -#: replication/logical/reorderbuffer.c:2465 -#: replication/logical/reorderbuffer.c:2825 -#: replication/logical/reorderbuffer.c:3579 -#: replication/logical/snapbuild.c:1608 replication/logical/snapbuild.c:1715 -#: replication/slot.c:1594 replication/walsender.c:520 -#: replication/walsender.c:2509 storage/file/copydir.c:161 -#: storage/file/fd.c:679 storage/file/fd.c:3412 storage/file/fd.c:3499 -#: storage/smgr/md.c:513 utils/cache/relmapper.c:724 -#: utils/cache/relmapper.c:836 utils/error/elog.c:1858 -#: utils/init/miscinit.c:1316 utils/init/miscinit.c:1450 -#: utils/init/miscinit.c:1527 utils/misc/guc.c:8280 utils/misc/guc.c:8312 +#: replication/logical/reorderbuffer.c:2486 +#: replication/logical/reorderbuffer.c:2848 +#: replication/logical/reorderbuffer.c:3613 +#: replication/logical/snapbuild.c:1624 replication/logical/snapbuild.c:1731 +#: replication/slot.c:1681 replication/walsender.c:520 +#: replication/walsender.c:2524 storage/file/copydir.c:161 +#: storage/file/fd.c:679 storage/file/fd.c:3426 storage/file/fd.c:3513 +#: storage/smgr/md.c:514 utils/cache/relmapper.c:724 +#: utils/cache/relmapper.c:842 utils/error/elog.c:1858 +#: utils/init/miscinit.c:1315 utils/init/miscinit.c:1449 +#: utils/init/miscinit.c:1526 utils/misc/guc.c:8280 utils/misc/guc.c:8312 #, c-format msgid "could not open file \"%s\": %m" msgstr "не удалось открыть файл \"%s\": %m" #: ../common/controldata_utils.c:221 ../common/controldata_utils.c:224 -#: access/transam/twophase.c:1649 access/transam/twophase.c:1658 -#: access/transam/xlog.c:10858 access/transam/xlog.c:10896 -#: access/transam/xlog.c:11309 access/transam/xlogfuncs.c:741 +#: access/transam/twophase.c:1730 access/transam/twophase.c:1739 +#: access/transam/xlog.c:11054 access/transam/xlog.c:11092 +#: access/transam/xlog.c:11505 access/transam/xlogfuncs.c:741 #: postmaster/syslogger.c:1499 postmaster/syslogger.c:1512 -#: utils/cache/relmapper.c:870 +#: utils/cache/relmapper.c:876 #, c-format msgid "could not write file \"%s\": %m" msgstr "не удалось записать файл \"%s\": %m" #: ../common/controldata_utils.c:239 ../common/controldata_utils.c:245 #: ../common/file_utils.c:295 ../common/file_utils.c:365 -#: access/heap/rewriteheap.c:961 access/heap/rewriteheap.c:1175 -#: access/heap/rewriteheap.c:1278 access/transam/timeline.c:432 -#: access/transam/timeline.c:510 access/transam/twophase.c:1670 -#: access/transam/xlog.c:3368 access/transam/xlog.c:3537 -#: access/transam/xlog.c:4691 access/transam/xlog.c:10366 -#: access/transam/xlog.c:10393 replication/logical/snapbuild.c:1646 -#: replication/slot.c:1499 replication/slot.c:1604 storage/file/fd.c:696 -#: storage/file/fd.c:3520 storage/smgr/md.c:959 storage/smgr/md.c:1000 -#: storage/sync/sync.c:396 utils/cache/relmapper.c:885 utils/misc/guc.c:8063 +#: access/heap/rewriteheap.c:965 access/heap/rewriteheap.c:1179 +#: access/heap/rewriteheap.c:1282 access/transam/timeline.c:432 +#: access/transam/timeline.c:510 access/transam/twophase.c:1751 +#: access/transam/xlog.c:3390 access/transam/xlog.c:3559 +#: access/transam/xlog.c:4726 access/transam/xlog.c:10562 +#: access/transam/xlog.c:10589 replication/logical/snapbuild.c:1662 +#: replication/slot.c:1586 replication/slot.c:1691 storage/file/fd.c:696 +#: storage/file/fd.c:3534 storage/smgr/md.c:960 storage/smgr/md.c:1001 +#: storage/sync/sync.c:433 utils/cache/relmapper.c:891 utils/misc/guc.c:8063 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" -#: ../common/exec.c:137 ../common/exec.c:254 ../common/exec.c:300 +#: ../common/exec.c:142 ../common/exec.c:259 ../common/exec.c:305 #, c-format msgid "could not identify current directory: %m" msgstr "не удалось определить текущий каталог: %m" -#: ../common/exec.c:156 +#: ../common/exec.c:161 #, c-format msgid "invalid binary \"%s\"" msgstr "неверный исполняемый файл \"%s\"" -#: ../common/exec.c:206 +#: ../common/exec.c:211 #, c-format msgid "could not read binary \"%s\"" msgstr "не удалось прочитать исполняемый файл \"%s\"" -#: ../common/exec.c:214 +#: ../common/exec.c:219 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../common/exec.c:270 ../common/exec.c:309 utils/init/miscinit.c:395 +#: ../common/exec.c:275 ../common/exec.c:314 utils/init/miscinit.c:394 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: ../common/exec.c:287 access/transam/xlog.c:10730 +#: ../common/exec.c:292 access/transam/xlog.c:10926 #: replication/basebackup.c:1418 utils/adt/misc.c:337 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "не удалось прочитать символическую ссылку \"%s\": %m" -#: ../common/exec.c:410 +#: ../common/exec.c:415 #, c-format msgid "pclose failed: %m" msgstr "ошибка pclose: %m" -#: ../common/exec.c:539 ../common/exec.c:584 ../common/exec.c:676 +#: ../common/exec.c:544 ../common/exec.c:589 ../common/exec.c:681 #: ../common/psprintf.c:143 ../common/stringinfo.c:305 ../port/path.c:630 -#: ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1341 -#: access/transam/xlog.c:6487 lib/dshash.c:246 libpq/auth.c:1469 -#: libpq/auth.c:1537 libpq/auth.c:2067 libpq/be-secure-gssapi.c:520 -#: postmaster/bgworker.c:347 postmaster/bgworker.c:952 -#: postmaster/postmaster.c:2519 postmaster/postmaster.c:4156 -#: postmaster/postmaster.c:4858 postmaster/postmaster.c:5615 -#: postmaster/postmaster.c:5975 -#: replication/libpqwalreceiver/libpqwalreceiver.c:276 +#: ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1404 +#: access/transam/xlog.c:6531 lib/dshash.c:246 libpq/auth.c:1478 +#: libpq/auth.c:1546 libpq/auth.c:2076 libpq/be-secure-gssapi.c:520 +#: postmaster/bgworker.c:349 postmaster/bgworker.c:963 +#: postmaster/postmaster.c:2543 postmaster/postmaster.c:4180 +#: postmaster/postmaster.c:4882 postmaster/postmaster.c:5639 +#: postmaster/postmaster.c:5999 +#: replication/libpqwalreceiver/libpqwalreceiver.c:282 #: replication/logical/logical.c:176 replication/walsender.c:594 -#: storage/buffer/localbuf.c:442 storage/file/fd.c:834 storage/file/fd.c:1304 -#: storage/file/fd.c:1465 storage/file/fd.c:2270 storage/ipc/procarray.c:1045 -#: storage/ipc/procarray.c:1541 storage/ipc/procarray.c:1548 -#: storage/ipc/procarray.c:1972 storage/ipc/procarray.c:2597 +#: storage/buffer/localbuf.c:442 storage/file/fd.c:848 storage/file/fd.c:1318 +#: storage/file/fd.c:1479 storage/file/fd.c:2284 storage/ipc/procarray.c:1063 +#: storage/ipc/procarray.c:1559 storage/ipc/procarray.c:1566 +#: storage/ipc/procarray.c:2002 storage/ipc/procarray.c:2680 #: utils/adt/cryptohashes.c:45 utils/adt/cryptohashes.c:65 #: utils/adt/formatting.c:1700 utils/adt/formatting.c:1824 #: utils/adt/formatting.c:1949 utils/adt/pg_locale.c:484 @@ -238,38 +239,38 @@ msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" #: ../common/file_utils.c:79 ../common/file_utils.c:181 -#: access/transam/twophase.c:1244 access/transam/xlog.c:10834 -#: access/transam/xlog.c:10872 access/transam/xlog.c:11089 +#: access/transam/twophase.c:1302 access/transam/xlog.c:11030 +#: access/transam/xlog.c:11068 access/transam/xlog.c:11285 #: access/transam/xlogarchive.c:110 access/transam/xlogarchive.c:226 -#: commands/copy.c:1938 commands/copy.c:3505 commands/extension.c:3425 -#: commands/tablespace.c:807 commands/tablespace.c:898 +#: commands/copy.c:1938 commands/copy.c:3506 commands/extension.c:3433 +#: commands/tablespace.c:803 commands/tablespace.c:894 #: replication/basebackup.c:444 replication/basebackup.c:627 -#: replication/basebackup.c:700 replication/logical/snapbuild.c:1522 -#: storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1816 -#: storage/file/fd.c:3096 storage/file/fd.c:3278 storage/file/fd.c:3364 +#: replication/basebackup.c:700 replication/logical/snapbuild.c:1538 +#: storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1830 +#: storage/file/fd.c:3110 storage/file/fd.c:3292 storage/file/fd.c:3378 #: utils/adt/dbsize.c:70 utils/adt/dbsize.c:222 utils/adt/dbsize.c:302 -#: utils/adt/genfile.c:416 utils/adt/genfile.c:642 guc-file.l:1061 +#: utils/adt/genfile.c:416 utils/adt/genfile.c:642 guc-file.l:1063 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не удалось получить информацию о файле \"%s\": %m" -#: ../common/file_utils.c:158 ../common/pgfnames.c:48 commands/tablespace.c:730 -#: commands/tablespace.c:740 postmaster/postmaster.c:1509 -#: storage/file/fd.c:2673 storage/file/reinit.c:122 utils/adt/misc.c:259 +#: ../common/file_utils.c:158 ../common/pgfnames.c:48 commands/tablespace.c:726 +#: commands/tablespace.c:736 postmaster/postmaster.c:1509 +#: storage/file/fd.c:2687 storage/file/reinit.c:122 utils/adt/misc.c:259 #: utils/misc/tzparser.c:338 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: ../common/file_utils.c:192 ../common/pgfnames.c:69 storage/file/fd.c:2685 +#: ../common/file_utils.c:192 ../common/pgfnames.c:69 storage/file/fd.c:2699 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не удалось прочитать каталог \"%s\": %m" #: ../common/file_utils.c:375 access/transam/xlogarchive.c:411 -#: postmaster/syslogger.c:1523 replication/logical/snapbuild.c:1665 -#: replication/slot.c:650 replication/slot.c:1385 replication/slot.c:1527 -#: storage/file/fd.c:714 utils/time/snapmgr.c:1350 +#: postmaster/syslogger.c:1523 replication/logical/snapbuild.c:1681 +#: replication/slot.c:650 replication/slot.c:1472 replication/slot.c:1614 +#: storage/file/fd.c:714 storage/file/fd.c:812 utils/time/snapmgr.c:1367 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" @@ -392,7 +393,7 @@ msgid "Valid fork names are \"main\", \"fsm\", \"vm\", and \"init\"." msgstr "Допустимые имена слоёв: \"main\", \"fsm\", \"vm\" и \"init\"." -#: ../common/restricted_token.c:64 libpq/auth.c:1499 libpq/auth.c:2498 +#: ../common/restricted_token.c:64 libpq/auth.c:1508 libpq/auth.c:2507 #, c-format msgid "could not load library \"%s\": error code %lu" msgstr "не удалось загрузить библиотеку \"%s\" (код ошибки: %lu)" @@ -471,7 +472,7 @@ msgid "could not look up effective user ID %ld: %s" msgstr "выяснить эффективный идентификатор пользователя (%ld) не удалось: %s" -#: ../common/username.c:45 libpq/auth.c:2005 +#: ../common/username.c:45 libpq/auth.c:2014 msgid "user does not exist" msgstr "пользователь не существует" @@ -605,7 +606,7 @@ "записан" #: access/brin/brin.c:873 access/brin/brin.c:950 access/gin/ginfast.c:1035 -#: access/transam/xlog.c:10502 access/transam/xlog.c:11040 +#: access/transam/xlog.c:10698 access/transam/xlog.c:11236 #: access/transam/xlogfuncs.c:274 access/transam/xlogfuncs.c:301 #: access/transam/xlogfuncs.c:340 access/transam/xlogfuncs.c:361 #: access/transam/xlogfuncs.c:382 access/transam/xlogfuncs.c:452 @@ -632,11 +633,12 @@ #: access/brin/brin.c:921 access/brin/brin.c:998 #, c-format msgid "could not open parent table of index %s" -msgstr "не удалось родительскую таблицу индекса %s" +msgstr "не удалось открыть родительскую таблицу индекса %s" #: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 #: access/brin/brin_pageops.c:843 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1438 access/spgist/spgdoinsert.c:1957 +#: access/gist/gist.c:1438 access/spgist/spgdoinsert.c:1962 +#: access/spgist/spgdoinsert.c:2230 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "" @@ -784,7 +786,7 @@ msgid "index row requires %zu bytes, maximum size is %zu" msgstr "строка индекса требует байт: %zu, при максимуме: %zu" -#: access/common/printtup.c:369 tcop/fastpath.c:180 tcop/fastpath.c:530 +#: access/common/printtup.c:369 tcop/fastpath.c:180 tcop/fastpath.c:536 #: tcop/postgres.c:1904 #, c-format msgid "unsupported format code: %d" @@ -813,7 +815,7 @@ msgid "unrecognized parameter namespace \"%s\"" msgstr "нераспознанное пространство имён параметров \"%s\"" -#: access/common/reloptions.c:1277 utils/misc/guc.c:12032 +#: access/common/reloptions.c:1277 utils/misc/guc.c:12056 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "таблицы со свойством WITH OIDS не поддерживаются" @@ -864,7 +866,7 @@ msgstr "неверное значение для параметра-перечисления \"%s\": %s" #: access/common/tupdesc.c:842 parser/parse_clause.c:772 -#: parser/parse_relation.c:1803 +#: parser/parse_relation.c:1800 #, c-format msgid "column \"%s\" cannot be declared SETOF" msgstr "столбец \"%s\" не может быть объявлен как SETOF" @@ -910,8 +912,8 @@ msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Для исправления выполните REINDEX INDEX \"%s\"." -#: access/gin/ginutil.c:144 executor/execExpr.c:1862 -#: utils/adt/arrayfuncs.c:3790 utils/adt/arrayfuncs.c:6418 +#: access/gin/ginutil.c:144 executor/execExpr.c:1900 +#: utils/adt/arrayfuncs.c:3792 utils/adt/arrayfuncs.c:6426 #: utils/adt/rowtypes.c:936 #, c-format msgid "could not identify a comparison function for type %s" @@ -952,8 +954,8 @@ #: access/gist/gist.c:759 access/gist/gistutil.c:786 access/gist/gistutil.c:797 #: access/gist/gistvacuum.c:411 access/hash/hashutil.c:227 #: access/hash/hashutil.c:238 access/hash/hashutil.c:250 -#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:741 -#: access/nbtree/nbtpage.c:752 +#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:739 +#: access/nbtree/nbtpage.c:750 #, c-format msgid "Please REINDEX it." msgstr "Пожалуйста, выполните REINDEX для него." @@ -974,13 +976,13 @@ "вторым." #: access/gist/gistutil.c:783 access/hash/hashutil.c:224 -#: access/nbtree/nbtpage.c:738 +#: access/nbtree/nbtpage.c:736 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "в индексе \"%s\" неожиданно оказалась нулевая страница в блоке %u" #: access/gist/gistutil.c:794 access/hash/hashutil.c:235 -#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:749 +#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:747 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "индекс \"%s\" содержит испорченную страницу в блоке %u" @@ -1003,7 +1005,7 @@ "семейство операторов \"%s\" метода доступа %s содержит некорректное " "определение ORDER BY для оператора %s" -#: access/hash/hashfunc.c:255 access/hash/hashfunc.c:311 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 #: utils/adt/varchar.c:993 utils/adt/varchar.c:1053 #, c-format msgid "could not determine which collation to use for string hashing" @@ -1011,10 +1013,10 @@ "не удалось определить, какое правило сортировки использовать для хеширования " "строк" -#: access/hash/hashfunc.c:256 access/hash/hashfunc.c:312 catalog/heap.c:711 +#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:335 catalog/heap.c:711 #: catalog/heap.c:717 commands/createas.c:206 commands/createas.c:489 -#: commands/indexcmds.c:1816 commands/tablecmds.c:16057 commands/view.c:86 -#: parser/parse_utilcmd.c:4228 regex/regc_pg_locale.c:263 +#: commands/indexcmds.c:1816 commands/tablecmds.c:16358 commands/view.c:86 +#: parser/parse_utilcmd.c:4239 regex/regc_pg_locale.c:263 #: utils/adt/formatting.c:1667 utils/adt/formatting.c:1791 #: utils/adt/formatting.c:1916 utils/adt/like.c:194 #: utils/adt/like_support.c:1003 utils/adt/varchar.c:733 @@ -1028,8 +1030,8 @@ msgid "index row size %zu exceeds hash maximum %zu" msgstr "размер строки индекса (%zu) больше предельного размера хеша (%zu)" -#: access/hash/hashinsert.c:84 access/spgist/spgdoinsert.c:1961 -#: access/spgist/spgutils.c:764 +#: access/hash/hashinsert.c:84 access/spgist/spgdoinsert.c:1966 +#: access/spgist/spgdoinsert.c:2234 access/spgist/spgutils.c:764 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "Значения, не умещающиеся в страницу буфера, нельзя проиндексировать." @@ -1075,33 +1077,33 @@ msgstr "" "в семействе операторов \"%s\" метода доступа %s нет межтипового оператора(ов)" -#: access/heap/heapam.c:2036 +#: access/heap/heapam.c:2068 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "вставлять кортежи в параллельном исполнителе нельзя" -#: access/heap/heapam.c:2454 +#: access/heap/heapam.c:2486 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "удалять кортежи во время параллельных операций нельзя" -#: access/heap/heapam.c:2500 +#: access/heap/heapam.c:2532 #, c-format msgid "attempted to delete invisible tuple" msgstr "попытка удаления невидимого кортежа" -#: access/heap/heapam.c:2926 access/heap/heapam.c:5715 +#: access/heap/heapam.c:2963 access/heap/heapam.c:5822 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "изменять кортежи во время параллельных операций нельзя" -#: access/heap/heapam.c:3059 +#: access/heap/heapam.c:3104 #, c-format msgid "attempted to update invisible tuple" msgstr "попытка изменения невидимого кортежа" -#: access/heap/heapam.c:4370 access/heap/heapam.c:4408 -#: access/heap/heapam.c:4665 access/heap/heapam_handler.c:450 +#: access/heap/heapam.c:4468 access/heap/heapam.c:4506 +#: access/heap/heapam.c:4772 access/heap/heapam_handler.c:455 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "не удалось получить блокировку строки в таблице \"%s\"" @@ -1115,58 +1117,58 @@ "кортеж, подлежащий блокировке, был перемещён в другую секцию в результате " "параллельного изменения" -#: access/heap/hio.c:345 access/heap/rewriteheap.c:662 +#: access/heap/hio.c:349 access/heap/rewriteheap.c:666 #, c-format msgid "row is too big: size %zu, maximum size %zu" msgstr "размер строки (%zu) превышает предел (%zu)" -#: access/heap/rewriteheap.c:921 +#: access/heap/rewriteheap.c:925 #, c-format msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "не удалось записать в файл \"%s\" (записано байт: %d из %d): %m" -#: access/heap/rewriteheap.c:1015 access/heap/rewriteheap.c:1134 +#: access/heap/rewriteheap.c:1019 access/heap/rewriteheap.c:1138 #: access/transam/timeline.c:329 access/transam/timeline.c:485 -#: access/transam/xlog.c:3300 access/transam/xlog.c:3472 -#: access/transam/xlog.c:4670 access/transam/xlog.c:10849 -#: access/transam/xlog.c:10887 access/transam/xlog.c:11292 -#: access/transam/xlogfuncs.c:735 postmaster/postmaster.c:4619 -#: replication/logical/origin.c:575 replication/slot.c:1446 -#: storage/file/copydir.c:167 storage/smgr/md.c:218 utils/time/snapmgr.c:1329 +#: access/transam/xlog.c:3322 access/transam/xlog.c:3494 +#: access/transam/xlog.c:4705 access/transam/xlog.c:11045 +#: access/transam/xlog.c:11083 access/transam/xlog.c:11488 +#: access/transam/xlogfuncs.c:735 postmaster/postmaster.c:4643 +#: replication/logical/origin.c:575 replication/slot.c:1533 +#: storage/file/copydir.c:167 storage/smgr/md.c:218 utils/time/snapmgr.c:1346 #, c-format msgid "could not create file \"%s\": %m" -msgstr "создать файл \"%s\" не удалось: %m" +msgstr "не удалось создать файл \"%s\": %m" -#: access/heap/rewriteheap.c:1144 +#: access/heap/rewriteheap.c:1148 #, c-format msgid "could not truncate file \"%s\" to %u: %m" msgstr "не удалось обрезать файл \"%s\" до нужного размера (%u): %m" -#: access/heap/rewriteheap.c:1162 access/transam/timeline.c:384 +#: access/heap/rewriteheap.c:1166 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:502 -#: access/transam/xlog.c:3356 access/transam/xlog.c:3528 -#: access/transam/xlog.c:4682 postmaster/postmaster.c:4629 -#: postmaster/postmaster.c:4639 replication/logical/origin.c:587 +#: access/transam/xlog.c:3378 access/transam/xlog.c:3550 +#: access/transam/xlog.c:4717 postmaster/postmaster.c:4653 +#: postmaster/postmaster.c:4663 replication/logical/origin.c:587 #: replication/logical/origin.c:629 replication/logical/origin.c:648 -#: replication/logical/snapbuild.c:1622 replication/slot.c:1481 +#: replication/logical/snapbuild.c:1638 replication/slot.c:1568 #: storage/file/buffile.c:502 storage/file/copydir.c:207 -#: utils/init/miscinit.c:1391 utils/init/miscinit.c:1402 -#: utils/init/miscinit.c:1410 utils/misc/guc.c:8024 utils/misc/guc.c:8055 -#: utils/misc/guc.c:9975 utils/misc/guc.c:9989 utils/time/snapmgr.c:1334 -#: utils/time/snapmgr.c:1341 +#: utils/init/miscinit.c:1390 utils/init/miscinit.c:1401 +#: utils/init/miscinit.c:1409 utils/misc/guc.c:8024 utils/misc/guc.c:8055 +#: utils/misc/guc.c:9975 utils/misc/guc.c:9989 utils/time/snapmgr.c:1351 +#: utils/time/snapmgr.c:1358 #, c-format msgid "could not write to file \"%s\": %m" -msgstr "записать в файл \"%s\" не удалось: %m" +msgstr "не удалось записать в файл \"%s\": %m" -#: access/heap/rewriteheap.c:1252 access/transam/twophase.c:1609 +#: access/heap/rewriteheap.c:1256 access/transam/twophase.c:1690 #: access/transam/xlogarchive.c:118 access/transam/xlogarchive.c:421 #: postmaster/postmaster.c:1092 postmaster/syslogger.c:1465 -#: replication/logical/origin.c:563 replication/logical/reorderbuffer.c:3079 -#: replication/logical/snapbuild.c:1564 replication/logical/snapbuild.c:2009 -#: replication/slot.c:1578 storage/file/fd.c:754 storage/file/fd.c:3116 -#: storage/file/fd.c:3178 storage/file/reinit.c:255 storage/ipc/dsm.c:302 -#: storage/smgr/md.c:355 storage/smgr/md.c:405 storage/sync/sync.c:210 -#: utils/time/snapmgr.c:1674 +#: replication/logical/origin.c:563 replication/logical/reorderbuffer.c:3104 +#: replication/logical/snapbuild.c:1580 replication/logical/snapbuild.c:2025 +#: replication/slot.c:1665 storage/file/fd.c:754 storage/file/fd.c:3130 +#: storage/file/fd.c:3192 storage/file/reinit.c:255 storage/ipc/dsm.c:302 +#: storage/smgr/md.c:355 storage/smgr/md.c:405 storage/sync/sync.c:229 +#: utils/time/snapmgr.c:1691 #, c-format msgid "could not remove file \"%s\": %m" msgstr "не удалось стереть файл \"%s\": %m" @@ -1262,23 +1264,23 @@ "отключение параллельного режима очистки \"%s\" --- создавать временные " "таблицы в параллельном режиме нельзя" -#: access/heap/vacuumlazy.c:1725 +#: access/heap/vacuumlazy.c:1726 #, c-format msgid "\"%s\": removed %.0f row versions in %u pages" msgstr "\"%s\": удалено версий строк: %.0f, обработано страниц: %u" -#: access/heap/vacuumlazy.c:1735 +#: access/heap/vacuumlazy.c:1736 #, c-format msgid "%.0f dead row versions cannot be removed yet, oldest xmin: %u\n" msgstr "" "В данный момент нельзя удалить \"мёртвых\" строк: %.0f, старейший xmin: %u\n" -#: access/heap/vacuumlazy.c:1737 +#: access/heap/vacuumlazy.c:1738 #, c-format msgid "There were %.0f unused item identifiers.\n" msgstr "Найдено неиспользованных идентификаторов элементов: %.0f.\n" -#: access/heap/vacuumlazy.c:1739 +#: access/heap/vacuumlazy.c:1740 #, c-format msgid "Skipped %u page due to buffer pins, " msgid_plural "Skipped %u pages due to buffer pins, " @@ -1286,7 +1288,7 @@ msgstr[1] "Пропущено страниц, закреплённых в буфере: %u," msgstr[2] "Пропущено страниц, закреплённых в буфере: %u," -#: access/heap/vacuumlazy.c:1743 +#: access/heap/vacuumlazy.c:1744 #, c-format msgid "%u frozen page.\n" msgid_plural "%u frozen pages.\n" @@ -1294,7 +1296,7 @@ msgstr[1] "замороженных страниц: %u.\n" msgstr[2] "замороженных страниц: %u.\n" -#: access/heap/vacuumlazy.c:1747 +#: access/heap/vacuumlazy.c:1748 #, c-format msgid "%u page is entirely empty.\n" msgid_plural "%u pages are entirely empty.\n" @@ -1302,13 +1304,13 @@ msgstr[1] "Полностью пустых страниц: %u.\n" msgstr[2] "Полностью пустых страниц: %u.\n" -#: access/heap/vacuumlazy.c:1751 commands/indexcmds.c:3490 +#: access/heap/vacuumlazy.c:1752 commands/indexcmds.c:3490 #: commands/indexcmds.c:3508 #, c-format msgid "%s." msgstr "%s." -#: access/heap/vacuumlazy.c:1754 +#: access/heap/vacuumlazy.c:1755 #, c-format msgid "" "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u out of %u " @@ -1317,12 +1319,12 @@ "\"%s\": найдено удаляемых версий строк: %.0f, неудаляемых - %.0f, обработано " "страниц: %u, всего страниц: %u" -#: access/heap/vacuumlazy.c:1888 +#: access/heap/vacuumlazy.c:1889 #, c-format msgid "\"%s\": removed %d row versions in %d pages" msgstr "\"%s\": удалено версий строк: %d, обработано страниц: %d" -#: access/heap/vacuumlazy.c:2143 +#: access/heap/vacuumlazy.c:2144 #, c-format msgid "launched %d parallel vacuum worker for index cleanup (planned: %d)" msgid_plural "" @@ -1337,7 +1339,7 @@ "запущено %d параллельных процессов очистки для уборки индекса " "(планировалось: %d)" -#: access/heap/vacuumlazy.c:2149 +#: access/heap/vacuumlazy.c:2150 #, c-format msgid "launched %d parallel vacuum worker for index vacuuming (planned: %d)" msgid_plural "" @@ -1352,17 +1354,17 @@ "запущено %d параллельных процессов очистки для очистки индекса " "(планировалось: %d)" -#: access/heap/vacuumlazy.c:2440 +#: access/heap/vacuumlazy.c:2441 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "просканирован индекс \"%s\", удалено версий строк: %d" -#: access/heap/vacuumlazy.c:2494 +#: access/heap/vacuumlazy.c:2495 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "индекс \"%s\" теперь содержит версий строк: %.0f, в страницах: %u" -#: access/heap/vacuumlazy.c:2498 +#: access/heap/vacuumlazy.c:2499 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -1373,52 +1375,52 @@ "Удалено индексных страниц: %u, пригодно для повторного использования: %u.\n" "%s." -#: access/heap/vacuumlazy.c:2601 +#: access/heap/vacuumlazy.c:2602 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\": остановка усечения из-за конфликтующего запроса блокировки" -#: access/heap/vacuumlazy.c:2667 +#: access/heap/vacuumlazy.c:2668 #, c-format msgid "\"%s\": truncated %u to %u pages" msgstr "\"%s\": усечение (было страниц: %u, стало: %u)" -#: access/heap/vacuumlazy.c:2732 +#: access/heap/vacuumlazy.c:2733 #, c-format msgid "\"%s\": suspending truncate due to conflicting lock request" msgstr "\"%s\": приостановка усечения из-за конфликтующего запроса блокировки" -#: access/heap/vacuumlazy.c:3581 +#: access/heap/vacuumlazy.c:3592 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "при сканировании блока %u отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3584 +#: access/heap/vacuumlazy.c:3595 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "при сканировании отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3590 +#: access/heap/vacuumlazy.c:3601 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "при очистке блока %u отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3593 +#: access/heap/vacuumlazy.c:3604 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "при очистке отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3598 +#: access/heap/vacuumlazy.c:3609 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "при очистке индекса \"%s\" отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3603 +#: access/heap/vacuumlazy.c:3614 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "при уборке индекса \"%s\" отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3609 +#: access/heap/vacuumlazy.c:3620 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "при усечении отношения \"%s.%s\" до %u блок." @@ -1435,7 +1437,7 @@ #: access/index/indexam.c:142 catalog/objectaddress.c:1260 #: commands/indexcmds.c:2518 commands/tablecmds.c:254 commands/tablecmds.c:278 -#: commands/tablecmds.c:15755 commands/tablecmds.c:17210 +#: commands/tablecmds.c:16056 commands/tablecmds.c:17546 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" - это не индекс" @@ -1460,13 +1462,13 @@ msgid "This may be because of a non-immutable index expression." msgstr "Возможно, это вызвано переменной природой индексного выражения." -#: access/nbtree/nbtpage.c:150 access/nbtree/nbtpage.c:538 -#: parser/parse_utilcmd.c:2268 +#: access/nbtree/nbtpage.c:150 access/nbtree/nbtpage.c:536 +#: parser/parse_utilcmd.c:2278 #, c-format msgid "index \"%s\" is not a btree" msgstr "индекс \"%s\" не является b-деревом" -#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:545 +#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:543 #, c-format msgid "" "version mismatch in index \"%s\": file version %d, current version %d, " @@ -1475,12 +1477,12 @@ "несовпадение версии в индексе \"%s\": версия файла: %d, версия кода: %d, " "минимальная поддерживаемая версия: %d" -#: access/nbtree/nbtpage.c:1501 +#: access/nbtree/nbtpage.c:1499 #, c-format msgid "index \"%s\" contains a half-dead internal page" msgstr "индекс \"%s\" содержит полумёртвую внутреннюю страницу" -#: access/nbtree/nbtpage.c:1503 +#: access/nbtree/nbtpage.c:1501 #, c-format msgid "" "This can be caused by an interrupted VACUUM in version 9.3 or older, before " @@ -1552,7 +1554,7 @@ msgstr "\"%s\" - это индекс" #: access/table/table.c:54 access/table/table.c:83 access/table/table.c:116 -#: catalog/aclchk.c:1816 commands/tablecmds.c:12572 commands/tablecmds.c:15764 +#: catalog/aclchk.c:1816 commands/tablecmds.c:12807 commands/tablecmds.c:16065 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" - это составной тип" @@ -1568,7 +1570,7 @@ msgstr "Значение %s не может быть пустым." # well-spelled: симв -#: access/table/tableamapi.c:122 utils/misc/guc.c:11956 +#: access/table/tableamapi.c:122 utils/misc/guc.c:11980 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "Длина %s превышает предел (%d симв.)." @@ -1588,24 +1590,24 @@ msgid "sample percentage must be between 0 and 100" msgstr "процент выборки должен задаваться числом от 0 до 100" -#: access/transam/commit_ts.c:295 +#: access/transam/commit_ts.c:297 #, c-format msgid "cannot retrieve commit timestamp for transaction %u" msgstr "не удалось получить метку времени фиксации транзакции %u" -#: access/transam/commit_ts.c:393 +#: access/transam/commit_ts.c:395 #, c-format msgid "could not get commit timestamp data" msgstr "не удалось получить отметку времени фиксации" -#: access/transam/commit_ts.c:395 +#: access/transam/commit_ts.c:397 #, c-format msgid "" "Make sure the configuration parameter \"%s\" is set on the master server." msgstr "" "Убедитесь, что в конфигурации главного сервера установлен параметр \"%s\"." -#: access/transam/commit_ts.c:397 +#: access/transam/commit_ts.c:399 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Убедитесь, что в конфигурации установлен параметр \"%s\"." @@ -1640,7 +1642,7 @@ "база данных не принимает команды, создающие новые MultiXactId, во избежание " "потери данных из-за зацикливания в базе данных с OID %u" -#: access/transam/multixact.c:1030 access/transam/multixact.c:2322 +#: access/transam/multixact.c:1030 access/transam/multixact.c:2325 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "" @@ -1655,7 +1657,7 @@ "база данных \"%s\" должна быть очищена, прежде чем будут использованы " "оставшиеся MultiXactId (%u)" -#: access/transam/multixact.c:1039 access/transam/multixact.c:2331 +#: access/transam/multixact.c:1039 access/transam/multixact.c:2334 #, c-format msgid "" "database with OID %u must be vacuumed before %u more MultiXactId is used" @@ -1731,7 +1733,7 @@ "Выполните очистку (VACUUM) всей этой базы данных, уменьшив значения " "vacuum_multixact_freeze_min_age и vacuum_multixact_freeze_table_age." -#: access/transam/multixact.c:1279 +#: access/transam/multixact.c:1281 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u прекратил существование: видимо, произошло зацикливание" @@ -1741,14 +1743,14 @@ msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u ещё не был создан: видимо, произошло зацикливание" -#: access/transam/multixact.c:2272 +#: access/transam/multixact.c:2275 #, c-format msgid "MultiXactId wrap limit is %u, limited by database with OID %u" msgstr "" "предел зацикливания MultiXactId равен %u, источник ограничения - база данных " "с OID %u" -#: access/transam/multixact.c:2327 access/transam/multixact.c:2336 +#: access/transam/multixact.c:2330 access/transam/multixact.c:2339 #: access/transam/varsup.c:149 access/transam/varsup.c:156 #: access/transam/varsup.c:447 access/transam/varsup.c:454 #, c-format @@ -1762,12 +1764,12 @@ "Возможно, вам также придётся зафиксировать или откатить старые " "подготовленные транзакции и удалить неиспользуемые слоты репликации." -#: access/transam/multixact.c:2606 +#: access/transam/multixact.c:2609 #, c-format msgid "oldest MultiXactId member is at offset %u" msgstr "смещение членов старейшей мультитранзакции: %u" -#: access/transam/multixact.c:2610 +#: access/transam/multixact.c:2613 #, c-format msgid "" "MultiXact member wraparound protections are disabled because oldest " @@ -1776,19 +1778,19 @@ "Защита от зацикливания членов мультитранзакций отключена, так как старейшая " "отмеченная мультитранзакция %u не найдена на диске" -#: access/transam/multixact.c:2632 +#: access/transam/multixact.c:2635 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "Защита от зацикливания мультитранзакций сейчас включена" -#: access/transam/multixact.c:2635 +#: access/transam/multixact.c:2638 #, c-format msgid "MultiXact member stop limit is now %u based on MultiXact %u" msgstr "" "Граница членов мультитранзакции сейчас: %u (при старейшей мультитранзакции " "%u)" -#: access/transam/multixact.c:3023 +#: access/transam/multixact.c:3026 #, c-format msgid "" "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" @@ -1796,7 +1798,7 @@ "старейшая мультитранзакция %u не найдена, новейшая мультитранзакция: %u, " "усечение пропускается" -#: access/transam/multixact.c:3041 +#: access/transam/multixact.c:3044 #, c-format msgid "" "cannot truncate up to MultiXact %u because it does not exist on disk, " @@ -1805,41 +1807,41 @@ "выполнить усечение до мультитранзакции %u нельзя ввиду её отсутствия на " "диске, усечение пропускается" -#: access/transam/multixact.c:3355 +#: access/transam/multixact.c:3358 #, c-format msgid "invalid MultiXactId: %u" msgstr "неверный MultiXactId: %u" -#: access/transam/parallel.c:706 access/transam/parallel.c:825 +#: access/transam/parallel.c:717 access/transam/parallel.c:836 #, c-format msgid "parallel worker failed to initialize" msgstr "не удалось инициализировать параллельный исполнитель" -#: access/transam/parallel.c:707 access/transam/parallel.c:826 +#: access/transam/parallel.c:718 access/transam/parallel.c:837 #, c-format msgid "More details may be available in the server log." msgstr "Дополнительная информация может быть в журнале сервера." -#: access/transam/parallel.c:887 +#: access/transam/parallel.c:898 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster завершился в процессе параллельной транзакции" -#: access/transam/parallel.c:1074 +#: access/transam/parallel.c:1085 #, c-format msgid "lost connection to parallel worker" msgstr "потеряно подключение к параллельному исполнителю" -#: access/transam/parallel.c:1140 access/transam/parallel.c:1142 +#: access/transam/parallel.c:1151 access/transam/parallel.c:1153 msgid "parallel worker" msgstr "параллельный исполнитель" -#: access/transam/parallel.c:1293 +#: access/transam/parallel.c:1306 #, c-format msgid "could not map dynamic shared memory segment" msgstr "не удалось отобразить динамический сегмент разделяемой памяти" -#: access/transam/parallel.c:1298 +#: access/transam/parallel.c:1311 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "неверное магическое число в динамическом сегменте разделяемой памяти" @@ -1970,39 +1972,39 @@ msgid "transaction identifier \"%s\" is already in use" msgstr "идентификатор транзакции \"%s\" уже используется" -#: access/transam/twophase.c:417 access/transam/twophase.c:2368 +#: access/transam/twophase.c:417 access/transam/twophase.c:2450 #, c-format msgid "maximum number of prepared transactions reached" msgstr "достигнут предел числа подготовленных транзакций" -#: access/transam/twophase.c:418 access/transam/twophase.c:2369 +#: access/transam/twophase.c:418 access/transam/twophase.c:2451 #, c-format msgid "Increase max_prepared_transactions (currently %d)." msgstr "Увеличьте параметр max_prepared_transactions (текущее значение %d)." -#: access/transam/twophase.c:586 +#: access/transam/twophase.c:597 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "подготовленная транзакция с идентификатором \"%s\" занята" -#: access/transam/twophase.c:592 +#: access/transam/twophase.c:603 #, c-format msgid "permission denied to finish prepared transaction" msgstr "нет доступа для завершения подготовленной транзакции" -#: access/transam/twophase.c:593 +#: access/transam/twophase.c:604 #, c-format msgid "Must be superuser or the user that prepared the transaction." msgstr "" "Это разрешено только суперпользователю и пользователю, подготовившему " "транзакцию." -#: access/transam/twophase.c:604 +#: access/transam/twophase.c:615 #, c-format msgid "prepared transaction belongs to another database" msgstr "подготовленная транзакция относится к другой базе данных" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:616 #, c-format msgid "" "Connect to the database where the transaction was prepared to finish it." @@ -2011,17 +2013,17 @@ "подготовлена." # [SM]: TO REVIEW -#: access/transam/twophase.c:620 +#: access/transam/twophase.c:631 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "подготовленной транзакции с идентификатором \"%s\" нет" -#: access/transam/twophase.c:1098 +#: access/transam/twophase.c:1155 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "превышен предельный размер файла состояния 2PC" -#: access/transam/twophase.c:1252 +#: access/transam/twophase.c:1310 #, c-format msgid "incorrect size of file \"%s\": %zu byte" msgid_plural "incorrect size of file \"%s\": %zu bytes" @@ -2029,51 +2031,56 @@ msgstr[1] "некорректный размер файла \"%s\": %zu Б" msgstr[2] "некорректный размер файла \"%s\": %zu Б" -#: access/transam/twophase.c:1261 +#: access/transam/twophase.c:1319 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "некорректное выравнивание смещения CRC для файла \"%s\"" -#: access/transam/twophase.c:1294 +#: access/transam/twophase.c:1352 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "в файле \"%s\" содержится неверная сигнатура" -#: access/transam/twophase.c:1300 +#: access/transam/twophase.c:1358 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "в файле \"%s\" содержится неверный размер" -#: access/transam/twophase.c:1312 +#: access/transam/twophase.c:1370 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "" "вычисленная контрольная сумма (CRC) не соответствует значению, сохранённому " "в файле \"%s\"" -#: access/transam/twophase.c:1342 access/transam/xlog.c:6488 +#: access/transam/twophase.c:1405 access/transam/xlog.c:6532 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Не удалось разместить обработчик журнала транзакций." -#: access/transam/twophase.c:1349 +#: access/transam/twophase.c:1422 +#, c-format +msgid "could not read two-phase state from WAL at %X/%X: %s" +msgstr "не удалось прочитать состояние 2PC из WAL в позиции %X/%X: %s" + +#: access/transam/twophase.c:1429 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "не удалось прочитать состояние 2PC из WAL в позиции %X/%X" -#: access/transam/twophase.c:1357 +#: access/transam/twophase.c:1438 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "" "ожидаемые данные состояния двухфазной фиксации отсутствуют в WAL в позиции " "%X/%X" -#: access/transam/twophase.c:1637 +#: access/transam/twophase.c:1718 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "пересоздать файл \"%s\" не удалось: %m" -#: access/transam/twophase.c:1764 +#: access/transam/twophase.c:1845 #, c-format msgid "" "%u two-phase state file was written for a long-running prepared transaction" @@ -2086,37 +2093,37 @@ msgstr[2] "" "для длительных подготовленных транзакций записано файлов состояния 2PC: %u" -#: access/transam/twophase.c:1998 +#: access/transam/twophase.c:2079 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "восстановление подготовленной транзакции %u из разделяемой памяти" -#: access/transam/twophase.c:2089 +#: access/transam/twophase.c:2170 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "удаление устаревшего файла состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2096 +#: access/transam/twophase.c:2177 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "удаление из памяти устаревшего состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2109 +#: access/transam/twophase.c:2190 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "удаление файла будущего состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2116 +#: access/transam/twophase.c:2197 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "удаление из памяти будущего состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2141 +#: access/transam/twophase.c:2222 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "испорчен файл состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2146 +#: access/transam/twophase.c:2227 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "испорчено состояние 2PC в памяти для транзакции %u" @@ -2170,28 +2177,28 @@ "предел зацикливания ID транзакций равен %u, источник ограничения - база " "данных с OID %u" -#: access/transam/xact.c:1030 +#: access/transam/xact.c:1031 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "в одной транзакции не может быть больше 2^32-2 команд" -#: access/transam/xact.c:1555 +#: access/transam/xact.c:1557 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "превышен предел числа зафиксированных подтранзакций (%d)" -#: access/transam/xact.c:2396 +#: access/transam/xact.c:2408 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "" "нельзя выполнить PREPARE для транзакции, оперирующей с временными объектами" -#: access/transam/xact.c:2406 +#: access/transam/xact.c:2418 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "нельзя выполнить PREPARE для транзакции, снимки которой экспортированы" -#: access/transam/xact.c:2415 +#: access/transam/xact.c:2427 #, c-format msgid "" "cannot PREPARE a transaction that has manipulated logical replication workers" @@ -2200,153 +2207,153 @@ "репликации" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3360 +#: access/transam/xact.c:3388 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s не может выполняться внутри блока транзакции" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3370 +#: access/transam/xact.c:3398 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s не может выполняться внутри подтранзакции" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3380 +#: access/transam/xact.c:3408 #, c-format msgid "%s cannot be executed from a function" msgstr "%s нельзя выполнять внутри функции" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3449 access/transam/xact.c:3755 -#: access/transam/xact.c:3834 access/transam/xact.c:3957 -#: access/transam/xact.c:4108 access/transam/xact.c:4177 -#: access/transam/xact.c:4288 +#: access/transam/xact.c:3477 access/transam/xact.c:3783 +#: access/transam/xact.c:3862 access/transam/xact.c:3985 +#: access/transam/xact.c:4136 access/transam/xact.c:4205 +#: access/transam/xact.c:4316 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s может выполняться только внутри блоков транзакций" -#: access/transam/xact.c:3641 +#: access/transam/xact.c:3669 #, c-format msgid "there is already a transaction in progress" msgstr "транзакция уже выполняется" -#: access/transam/xact.c:3760 access/transam/xact.c:3839 -#: access/transam/xact.c:3962 +#: access/transam/xact.c:3788 access/transam/xact.c:3867 +#: access/transam/xact.c:3990 #, c-format msgid "there is no transaction in progress" msgstr "нет незавершённой транзакции" -#: access/transam/xact.c:3850 +#: access/transam/xact.c:3878 #, c-format msgid "cannot commit during a parallel operation" msgstr "фиксировать транзакции во время параллельных операций нельзя" -#: access/transam/xact.c:3973 +#: access/transam/xact.c:4001 #, c-format msgid "cannot abort during a parallel operation" msgstr "прерывание во время параллельных операций невозможно" -#: access/transam/xact.c:4072 +#: access/transam/xact.c:4100 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "определять точки сохранения во время параллельных операций нельзя" -#: access/transam/xact.c:4159 +#: access/transam/xact.c:4187 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "высвобождать точки сохранения во время параллельных операций нельзя" -#: access/transam/xact.c:4169 access/transam/xact.c:4220 -#: access/transam/xact.c:4280 access/transam/xact.c:4329 +#: access/transam/xact.c:4197 access/transam/xact.c:4248 +#: access/transam/xact.c:4308 access/transam/xact.c:4357 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "точка сохранения \"%s\" не существует" -#: access/transam/xact.c:4226 access/transam/xact.c:4335 +#: access/transam/xact.c:4254 access/transam/xact.c:4363 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "" "точка сохранения \"%s\" на текущем уровне точек сохранения не существует" -#: access/transam/xact.c:4268 +#: access/transam/xact.c:4296 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "откатиться к точке сохранения во время параллельных операций нельзя" -#: access/transam/xact.c:4396 +#: access/transam/xact.c:4424 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "запускать подтранзакции во время параллельных операций нельзя" -#: access/transam/xact.c:4464 +#: access/transam/xact.c:4492 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "фиксировать подтранзакции во время параллельных операций нельзя" -#: access/transam/xact.c:5104 +#: access/transam/xact.c:5138 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "в одной транзакции не может быть больше 2^32-1 подтранзакций" -#: access/transam/xlog.c:2554 +#: access/transam/xlog.c:2576 #, c-format msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "не удалось записать в файл журнала %s (смещение: %u, длина: %zu): %m" -#: access/transam/xlog.c:2830 +#: access/transam/xlog.c:2852 #, c-format msgid "updated min recovery point to %X/%X on timeline %u" msgstr "минимальная точка восстановления изменена на %X/%X на линии времени %u" -#: access/transam/xlog.c:3944 access/transam/xlogutils.c:802 -#: replication/walsender.c:2503 +#: access/transam/xlog.c:3966 access/transam/xlogutils.c:802 +#: replication/walsender.c:2518 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "запрошенный сегмент WAL %s уже удалён" -#: access/transam/xlog.c:4187 +#: access/transam/xlog.c:4209 #, c-format msgid "recycled write-ahead log file \"%s\"" msgstr "файл журнала предзаписи \"%s\" используется повторно" -#: access/transam/xlog.c:4199 +#: access/transam/xlog.c:4221 #, c-format msgid "removing write-ahead log file \"%s\"" msgstr "файл журнала предзаписи \"%s\" удаляется" -#: access/transam/xlog.c:4219 +#: access/transam/xlog.c:4241 #, c-format msgid "could not rename file \"%s\": %m" msgstr "не удалось переименовать файл \"%s\": %m" -#: access/transam/xlog.c:4261 access/transam/xlog.c:4271 +#: access/transam/xlog.c:4283 access/transam/xlog.c:4293 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "требуемый каталог WAL \"%s\" не существует" -#: access/transam/xlog.c:4277 +#: access/transam/xlog.c:4299 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "создаётся отсутствующий каталог WAL \"%s\"" -#: access/transam/xlog.c:4280 +#: access/transam/xlog.c:4302 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "не удалось создать отсутствующий каталог \"%s\": %m" -#: access/transam/xlog.c:4383 +#: access/transam/xlog.c:4418 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "неожиданный ID линии времени %u в сегменте журнала %s, смещение %u" -#: access/transam/xlog.c:4521 +#: access/transam/xlog.c:4556 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "" "новая линия времени %u не является ответвлением линии времени системы БД %u" -#: access/transam/xlog.c:4535 +#: access/transam/xlog.c:4570 #, c-format msgid "" "new timeline %u forked off current database system timeline %u before " @@ -2355,29 +2362,29 @@ "новая линия времени %u ответвилась от текущей линии времени базы данных %u " "до текущей точки восстановления %X/%X" -#: access/transam/xlog.c:4554 +#: access/transam/xlog.c:4589 #, c-format msgid "new target timeline is %u" msgstr "новая целевая линия времени %u" -#: access/transam/xlog.c:4590 +#: access/transam/xlog.c:4625 #, c-format msgid "could not generate secret authorization token" msgstr "не удалось сгенерировать случайное число для аутентификации" -#: access/transam/xlog.c:4749 access/transam/xlog.c:4758 -#: access/transam/xlog.c:4782 access/transam/xlog.c:4789 -#: access/transam/xlog.c:4796 access/transam/xlog.c:4801 -#: access/transam/xlog.c:4808 access/transam/xlog.c:4815 -#: access/transam/xlog.c:4822 access/transam/xlog.c:4829 -#: access/transam/xlog.c:4836 access/transam/xlog.c:4843 -#: access/transam/xlog.c:4852 access/transam/xlog.c:4859 -#: utils/init/miscinit.c:1548 +#: access/transam/xlog.c:4784 access/transam/xlog.c:4793 +#: access/transam/xlog.c:4817 access/transam/xlog.c:4824 +#: access/transam/xlog.c:4831 access/transam/xlog.c:4836 +#: access/transam/xlog.c:4843 access/transam/xlog.c:4850 +#: access/transam/xlog.c:4857 access/transam/xlog.c:4864 +#: access/transam/xlog.c:4871 access/transam/xlog.c:4878 +#: access/transam/xlog.c:4887 access/transam/xlog.c:4894 +#: utils/init/miscinit.c:1547 #, c-format msgid "database files are incompatible with server" -msgstr "файлы базы данных не совместимы с сервером" +msgstr "файлы базы данных несовместимы с сервером" -#: access/transam/xlog.c:4750 +#: access/transam/xlog.c:4785 #, c-format msgid "" "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), " @@ -2386,7 +2393,7 @@ "Кластер баз данных был инициализирован с PG_CONTROL_VERSION %d (0x%08x), но " "сервер скомпилирован с PG_CONTROL_VERSION %d (0x%08x)." -#: access/transam/xlog.c:4754 +#: access/transam/xlog.c:4789 #, c-format msgid "" "This could be a problem of mismatched byte ordering. It looks like you need " @@ -2395,7 +2402,7 @@ "Возможно, проблема вызвана разным порядком байт. Кажется, вам надо выполнить " "initdb." -#: access/transam/xlog.c:4759 +#: access/transam/xlog.c:4794 #, c-format msgid "" "The database cluster was initialized with PG_CONTROL_VERSION %d, but the " @@ -2404,18 +2411,18 @@ "Кластер баз данных был инициализирован с PG_CONTROL_VERSION %d, но сервер " "скомпилирован с PG_CONTROL_VERSION %d." -#: access/transam/xlog.c:4762 access/transam/xlog.c:4786 -#: access/transam/xlog.c:4793 access/transam/xlog.c:4798 +#: access/transam/xlog.c:4797 access/transam/xlog.c:4821 +#: access/transam/xlog.c:4828 access/transam/xlog.c:4833 #, c-format msgid "It looks like you need to initdb." msgstr "Кажется, вам надо выполнить initdb." -#: access/transam/xlog.c:4773 +#: access/transam/xlog.c:4808 #, c-format msgid "incorrect checksum in control file" msgstr "ошибка контрольной суммы в файле pg_control" -#: access/transam/xlog.c:4783 +#: access/transam/xlog.c:4818 #, c-format msgid "" "The database cluster was initialized with CATALOG_VERSION_NO %d, but the " @@ -2424,7 +2431,7 @@ "Кластер баз данных был инициализирован с CATALOG_VERSION_NO %d, но сервер " "скомпилирован с CATALOG_VERSION_NO %d." -#: access/transam/xlog.c:4790 +#: access/transam/xlog.c:4825 #, c-format msgid "" "The database cluster was initialized with MAXALIGN %d, but the server was " @@ -2433,7 +2440,7 @@ "Кластер баз данных был инициализирован с MAXALIGN %d, но сервер " "скомпилирован с MAXALIGN %d." -#: access/transam/xlog.c:4797 +#: access/transam/xlog.c:4832 #, c-format msgid "" "The database cluster appears to use a different floating-point number format " @@ -2442,7 +2449,7 @@ "Кажется, в кластере баз данных и в программе сервера используются разные " "форматы чисел с плавающей точкой." -#: access/transam/xlog.c:4802 +#: access/transam/xlog.c:4837 #, c-format msgid "" "The database cluster was initialized with BLCKSZ %d, but the server was " @@ -2451,16 +2458,16 @@ "Кластер баз данных был инициализирован с BLCKSZ %d, но сервер скомпилирован " "с BLCKSZ %d." -#: access/transam/xlog.c:4805 access/transam/xlog.c:4812 -#: access/transam/xlog.c:4819 access/transam/xlog.c:4826 -#: access/transam/xlog.c:4833 access/transam/xlog.c:4840 -#: access/transam/xlog.c:4847 access/transam/xlog.c:4855 -#: access/transam/xlog.c:4862 +#: access/transam/xlog.c:4840 access/transam/xlog.c:4847 +#: access/transam/xlog.c:4854 access/transam/xlog.c:4861 +#: access/transam/xlog.c:4868 access/transam/xlog.c:4875 +#: access/transam/xlog.c:4882 access/transam/xlog.c:4890 +#: access/transam/xlog.c:4897 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Кажется, вам надо перекомпилировать сервер или выполнить initdb." -#: access/transam/xlog.c:4809 +#: access/transam/xlog.c:4844 #, c-format msgid "" "The database cluster was initialized with RELSEG_SIZE %d, but the server was " @@ -2469,7 +2476,7 @@ "Кластер баз данных был инициализирован с RELSEG_SIZE %d, но сервер " "скомпилирован с RELSEG_SIZE %d." -#: access/transam/xlog.c:4816 +#: access/transam/xlog.c:4851 #, c-format msgid "" "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was " @@ -2478,7 +2485,7 @@ "Кластер баз данных был инициализирован с XLOG_BLCKSZ %d, но сервер " "скомпилирован с XLOG_BLCKSZ %d." -#: access/transam/xlog.c:4823 +#: access/transam/xlog.c:4858 #, c-format msgid "" "The database cluster was initialized with NAMEDATALEN %d, but the server was " @@ -2487,7 +2494,7 @@ "Кластер баз данных был инициализирован с NAMEDATALEN %d, но сервер " "скомпилирован с NAMEDATALEN %d." -#: access/transam/xlog.c:4830 +#: access/transam/xlog.c:4865 #, c-format msgid "" "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server " @@ -2496,7 +2503,7 @@ "Кластер баз данных был инициализирован с INDEX_MAX_KEYS %d, но сервер " "скомпилирован с INDEX_MAX_KEYS %d." -#: access/transam/xlog.c:4837 +#: access/transam/xlog.c:4872 #, c-format msgid "" "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the " @@ -2505,7 +2512,7 @@ "Кластер баз данных был инициализирован с TOAST_MAX_CHUNK_SIZE %d, но сервер " "скомпилирован с TOAST_MAX_CHUNK_SIZE %d." -#: access/transam/xlog.c:4844 +#: access/transam/xlog.c:4879 #, c-format msgid "" "The database cluster was initialized with LOBLKSIZE %d, but the server was " @@ -2514,7 +2521,7 @@ "Кластер баз данных был инициализирован с LOBLKSIZE %d, но сервер " "скомпилирован с LOBLKSIZE %d." -#: access/transam/xlog.c:4853 +#: access/transam/xlog.c:4888 #, c-format msgid "" "The database cluster was initialized without USE_FLOAT8_BYVAL but the server " @@ -2523,7 +2530,7 @@ "Кластер баз данных был инициализирован без USE_FLOAT8_BYVAL, но сервер " "скомпилирован с USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4860 +#: access/transam/xlog.c:4895 #, c-format msgid "" "The database cluster was initialized with USE_FLOAT8_BYVAL but the server " @@ -2532,7 +2539,7 @@ "Кластер баз данных был инициализирован с USE_FLOAT8_BYVAL, но сервер был " "скомпилирован без USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4869 +#: access/transam/xlog.c:4904 #, c-format msgid "" "WAL segment size must be a power of two between 1 MB and 1 GB, but the " @@ -2550,49 +2557,49 @@ "размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " "ГБ, но в управляющем файле указано значение: %d" -#: access/transam/xlog.c:4881 +#: access/transam/xlog.c:4916 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"min_wal_size\" должен быть минимум вдвое больше \"wal_segment_size\"" -#: access/transam/xlog.c:4885 +#: access/transam/xlog.c:4920 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"max_wal_size\" должен быть минимум вдвое больше \"wal_segment_size\"" -#: access/transam/xlog.c:5318 +#: access/transam/xlog.c:5353 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "не удалось записать начальный файл журнала предзаписи: %m" -#: access/transam/xlog.c:5326 +#: access/transam/xlog.c:5361 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "не удалось сбросить на диск начальный файл журнала предзаписи: %m" -#: access/transam/xlog.c:5332 +#: access/transam/xlog.c:5367 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "не удалось закрыть начальный файл журнала предзаписи: %m" -#: access/transam/xlog.c:5393 +#: access/transam/xlog.c:5428 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "" "использование файла с конфигурацией восстановления \"%s\" не поддерживается" -#: access/transam/xlog.c:5458 +#: access/transam/xlog.c:5493 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "" "режим резервного сервера не поддерживается однопользовательским сервером" -#: access/transam/xlog.c:5475 +#: access/transam/xlog.c:5510 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "не указано ни primary_conninfo, ни restore_command" -#: access/transam/xlog.c:5476 +#: access/transam/xlog.c:5511 #, c-format msgid "" "The database server will regularly poll the pg_wal subdirectory to check for " @@ -2601,88 +2608,88 @@ "Сервер БД будет регулярно опрашивать подкаталог pg_wal и проверять " "содержащиеся в нём файлы." -#: access/transam/xlog.c:5484 +#: access/transam/xlog.c:5519 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "" "необходимо задать restore_command, если не выбран режим резервного сервера" -#: access/transam/xlog.c:5522 +#: access/transam/xlog.c:5557 #, c-format msgid "recovery target timeline %u does not exist" msgstr "целевая линия времени для восстановления %u не существует" -#: access/transam/xlog.c:5644 +#: access/transam/xlog.c:5679 #, c-format msgid "archive recovery complete" msgstr "восстановление архива завершено" -#: access/transam/xlog.c:5710 access/transam/xlog.c:5983 +#: access/transam/xlog.c:5745 access/transam/xlog.c:6018 #, c-format msgid "recovery stopping after reaching consistency" msgstr "" "восстановление останавливается после достижения согласованного состояния" -#: access/transam/xlog.c:5731 +#: access/transam/xlog.c:5766 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "восстановление останавливается перед позицией в WAL (LSN) \"%X/%X\"" -#: access/transam/xlog.c:5817 +#: access/transam/xlog.c:5852 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "" "восстановление останавливается перед фиксированием транзакции %u, время %s" -#: access/transam/xlog.c:5824 +#: access/transam/xlog.c:5859 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "" "восстановление останавливается перед прерыванием транзакции %u, время %s" -#: access/transam/xlog.c:5877 +#: access/transam/xlog.c:5912 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "восстановление останавливается в точке восстановления \"%s\", время %s" -#: access/transam/xlog.c:5895 +#: access/transam/xlog.c:5930 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "восстановление останавливается после позиции в WAL (LSN) \"%X/%X\"" -#: access/transam/xlog.c:5963 +#: access/transam/xlog.c:5998 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "" "восстановление останавливается после фиксирования транзакции %u, время %s" -#: access/transam/xlog.c:5971 +#: access/transam/xlog.c:6006 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "" "восстановление останавливается после прерывания транзакции %u, время %s" -#: access/transam/xlog.c:6020 +#: access/transam/xlog.c:6055 #, c-format msgid "pausing at the end of recovery" msgstr "остановка в конце восстановления" -#: access/transam/xlog.c:6021 +#: access/transam/xlog.c:6056 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Выполните pg_wal_replay_resume() для повышения." -#: access/transam/xlog.c:6024 +#: access/transam/xlog.c:6059 #, c-format msgid "recovery has paused" msgstr "восстановление приостановлено" -#: access/transam/xlog.c:6025 +#: access/transam/xlog.c:6060 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Выполните pg_wal_replay_resume() для продолжения." -#: access/transam/xlog.c:6236 +#: access/transam/xlog.c:6280 #, c-format msgid "" "hot standby is not possible because %s = %d is a lower setting than on the " @@ -2691,12 +2698,12 @@ "режим горячего резерва невозможен, так как параметр %s = %d, меньше чем на " "главном сервере (на нём было значение %d)" -#: access/transam/xlog.c:6260 +#: access/transam/xlog.c:6304 #, c-format msgid "WAL was generated with wal_level=minimal, data may be missing" msgstr "WAL был создан с параметром wal_level=minimal, возможна потеря данных" -#: access/transam/xlog.c:6261 +#: access/transam/xlog.c:6305 #, c-format msgid "" "This happens if you temporarily set wal_level=minimal without taking a new " @@ -2705,7 +2712,7 @@ "Это происходит, если вы на время установили wal_level=minimal и не сделали " "резервную копию базу данных." -#: access/transam/xlog.c:6272 +#: access/transam/xlog.c:6316 #, c-format msgid "" "hot standby is not possible because wal_level was not set to \"replica\" or " @@ -2714,7 +2721,7 @@ "режим горячего резерва невозможен, так как на главном сервере установлен " "неподходящий wal_level (должен быть \"replica\" или выше)" -#: access/transam/xlog.c:6273 +#: access/transam/xlog.c:6317 #, c-format msgid "" "Either set wal_level to \"replica\" on the master, or turn off hot_standby " @@ -2723,32 +2730,32 @@ "Либо установите для wal_level значение \"replica\" на главном сервере, либо " "выключите hot_standby здесь." -#: access/transam/xlog.c:6335 +#: access/transam/xlog.c:6379 #, c-format msgid "control file contains invalid checkpoint location" msgstr "файл pg_control содержит неправильную позицию контрольной точки" -#: access/transam/xlog.c:6346 +#: access/transam/xlog.c:6390 #, c-format msgid "database system was shut down at %s" msgstr "система БД была выключена: %s" -#: access/transam/xlog.c:6352 +#: access/transam/xlog.c:6396 #, c-format msgid "database system was shut down in recovery at %s" msgstr "система БД была выключена в процессе восстановления: %s" -#: access/transam/xlog.c:6358 +#: access/transam/xlog.c:6402 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "выключение системы БД было прервано; последний момент работы: %s" -#: access/transam/xlog.c:6364 +#: access/transam/xlog.c:6408 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "работа системы БД была прервана во время восстановления: %s" -#: access/transam/xlog.c:6366 +#: access/transam/xlog.c:6410 #, c-format msgid "" "This probably means that some data is corrupted and you will have to use the " @@ -2757,14 +2764,14 @@ "Это скорее всего означает, что некоторые данные повреждены и вам придётся " "восстановить БД из последней резервной копии." -#: access/transam/xlog.c:6372 +#: access/transam/xlog.c:6416 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "" "работа системы БД была прервана в процессе восстановления, время в журнале: " "%s" -#: access/transam/xlog.c:6374 +#: access/transam/xlog.c:6418 #, c-format msgid "" "If this has occurred more than once some data might be corrupted and you " @@ -2773,64 +2780,64 @@ "Если это происходит постоянно, возможно, какие-то данные были испорчены и " "для восстановления стоит выбрать более раннюю точку." -#: access/transam/xlog.c:6380 +#: access/transam/xlog.c:6424 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "работа системы БД была прервана; последний момент работы: %s" -#: access/transam/xlog.c:6386 +#: access/transam/xlog.c:6430 #, c-format msgid "control file contains invalid database cluster state" msgstr "файл pg_control содержит неверный код состояния кластера" -#: access/transam/xlog.c:6443 +#: access/transam/xlog.c:6487 #, c-format msgid "entering standby mode" msgstr "переход в режим резервного сервера" -#: access/transam/xlog.c:6446 +#: access/transam/xlog.c:6490 #, c-format msgid "starting point-in-time recovery to XID %u" msgstr "начинается восстановление точки во времени до XID %u" -#: access/transam/xlog.c:6450 +#: access/transam/xlog.c:6494 #, c-format msgid "starting point-in-time recovery to %s" msgstr "начинается восстановление точки во времени до %s" -#: access/transam/xlog.c:6454 +#: access/transam/xlog.c:6498 #, c-format msgid "starting point-in-time recovery to \"%s\"" msgstr "начинается восстановление точки во времени до \"%s\"" -#: access/transam/xlog.c:6458 +#: access/transam/xlog.c:6502 #, c-format msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" msgstr "" "начинается восстановление точки во времени до позиции в WAL (LSN) \"%X/%X\"" -#: access/transam/xlog.c:6463 +#: access/transam/xlog.c:6507 #, c-format msgid "starting point-in-time recovery to earliest consistent point" msgstr "" "начинается восстановление точки во времени до первой точки согласованности" -#: access/transam/xlog.c:6466 +#: access/transam/xlog.c:6510 #, c-format msgid "starting archive recovery" msgstr "начинается восстановление архива" -#: access/transam/xlog.c:6525 access/transam/xlog.c:6658 +#: access/transam/xlog.c:6569 access/transam/xlog.c:6702 #, c-format msgid "checkpoint record is at %X/%X" msgstr "запись о контрольной точке по смещению %X/%X" -#: access/transam/xlog.c:6540 +#: access/transam/xlog.c:6584 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "не удалось найти положение REDO, указанное записью контрольной точки" -#: access/transam/xlog.c:6541 access/transam/xlog.c:6551 +#: access/transam/xlog.c:6585 access/transam/xlog.c:6595 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add " @@ -2846,42 +2853,42 @@ "Будьте осторожны: при восстановлении резервной копии удаление \"%s/" "backup_label\" приведёт к повреждению кластера." -#: access/transam/xlog.c:6550 +#: access/transam/xlog.c:6594 #, c-format msgid "could not locate required checkpoint record" msgstr "не удалось считать нужную запись контрольной точки" -#: access/transam/xlog.c:6579 commands/tablespace.c:666 +#: access/transam/xlog.c:6623 commands/tablespace.c:662 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не удалось создать символическую ссылку \"%s\": %m" -#: access/transam/xlog.c:6611 access/transam/xlog.c:6617 +#: access/transam/xlog.c:6655 access/transam/xlog.c:6661 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "файл \"%s\" игнорируется ввиду отсутствия файла \"%s\"" -#: access/transam/xlog.c:6613 access/transam/xlog.c:11808 +#: access/transam/xlog.c:6657 access/transam/xlog.c:12004 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Файл \"%s\" был переименован в \"%s\"." -#: access/transam/xlog.c:6619 +#: access/transam/xlog.c:6663 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Не удалось переименовать файл \"%s\" в \"%s\" (%m)." -#: access/transam/xlog.c:6670 +#: access/transam/xlog.c:6714 #, c-format msgid "could not locate a valid checkpoint record" msgstr "не удалось считать правильную запись контрольной точки" -#: access/transam/xlog.c:6708 +#: access/transam/xlog.c:6752 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "в истории сервера нет ответвления запрошенной линии времени %u" -#: access/transam/xlog.c:6710 +#: access/transam/xlog.c:6754 #, c-format msgid "" "Latest checkpoint is at %X/%X on timeline %u, but in the history of the " @@ -2890,7 +2897,7 @@ "Последняя контрольная точка: %X/%X на линии времени %u, но в истории " "запрошенной линии времени сервер ответвился с этой линии в %X/%X." -#: access/transam/xlog.c:6726 +#: access/transam/xlog.c:6770 #, c-format msgid "" "requested timeline %u does not contain minimum recovery point %X/%X on " @@ -2899,22 +2906,22 @@ "запрошенная линия времени %u не содержит минимальную точку восстановления %X/" "%X на линии времени %u" -#: access/transam/xlog.c:6757 +#: access/transam/xlog.c:6801 #, c-format msgid "invalid next transaction ID" msgstr "неверный ID следующей транзакции" -#: access/transam/xlog.c:6851 +#: access/transam/xlog.c:6895 #, c-format msgid "invalid redo in checkpoint record" msgstr "неверная запись REDO в контрольной точке" -#: access/transam/xlog.c:6862 +#: access/transam/xlog.c:6906 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "неверная запись REDO в контрольной точке выключения" -#: access/transam/xlog.c:6896 +#: access/transam/xlog.c:6946 #, c-format msgid "" "database system was not properly shut down; automatic recovery in progress" @@ -2922,19 +2929,19 @@ "система БД была остановлена нештатно; производится автоматическое " "восстановление" -#: access/transam/xlog.c:6900 +#: access/transam/xlog.c:6950 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "" "восстановление после сбоя начинается на линии времени %u, целевая линия " "времени: %u" -#: access/transam/xlog.c:6947 +#: access/transam/xlog.c:6997 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label содержит данные, не согласованные с файлом pg_control" -#: access/transam/xlog.c:6948 +#: access/transam/xlog.c:6998 #, c-format msgid "" "This means that the backup is corrupted and you will have to use another " @@ -2943,49 +2950,49 @@ "Это означает, что резервная копия повреждена и для восстановления БД " "придётся использовать другую копию." -#: access/transam/xlog.c:7039 +#: access/transam/xlog.c:7089 #, c-format msgid "initializing for hot standby" msgstr "инициализация для горячего резерва" -#: access/transam/xlog.c:7172 +#: access/transam/xlog.c:7222 #, c-format msgid "redo starts at %X/%X" msgstr "запись REDO начинается со смещения %X/%X" -#: access/transam/xlog.c:7396 +#: access/transam/xlog.c:7446 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "" "запрошенная точка остановки восстановления предшествует согласованной точке " "восстановления" -#: access/transam/xlog.c:7434 +#: access/transam/xlog.c:7484 #, c-format msgid "redo done at %X/%X" msgstr "записи REDO обработаны до смещения %X/%X" -#: access/transam/xlog.c:7439 +#: access/transam/xlog.c:7489 #, c-format msgid "last completed transaction was at log time %s" msgstr "последняя завершённая транзакция была выполнена в %s" -#: access/transam/xlog.c:7448 +#: access/transam/xlog.c:7498 #, c-format msgid "redo is not required" msgstr "данные REDO не требуются" -#: access/transam/xlog.c:7460 +#: access/transam/xlog.c:7510 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "восстановление окончилось до достижения заданной цели восстановления" -#: access/transam/xlog.c:7539 access/transam/xlog.c:7543 +#: access/transam/xlog.c:7594 access/transam/xlog.c:7598 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL закончился без признака окончания копирования" -#: access/transam/xlog.c:7540 +#: access/transam/xlog.c:7595 #, c-format msgid "" "All WAL generated while online backup was taken must be available at " @@ -2994,7 +3001,7 @@ "Все журналы WAL, созданные во время резервного копирования \"на ходу\", " "должны быть в наличии для восстановления." -#: access/transam/xlog.c:7544 +#: access/transam/xlog.c:7599 #, c-format msgid "" "Online backup started with pg_start_backup() must be ended with " @@ -3004,82 +3011,82 @@ "должно закончиться pg_stop_backup(), и для восстановления должны быть " "доступны все журналы WAL." -#: access/transam/xlog.c:7547 +#: access/transam/xlog.c:7602 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL закончился до согласованной точки восстановления" -#: access/transam/xlog.c:7582 +#: access/transam/xlog.c:7637 #, c-format msgid "selected new timeline ID: %u" msgstr "выбранный ID новой линии времени: %u" -#: access/transam/xlog.c:8030 +#: access/transam/xlog.c:8112 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "согласованное состояние восстановления достигнуто по смещению %X/%X" -#: access/transam/xlog.c:8240 +#: access/transam/xlog.c:8322 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "неверная ссылка на первичную контрольную точку в файле pg_control" -#: access/transam/xlog.c:8244 +#: access/transam/xlog.c:8326 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "неверная ссылка на контрольную точку в файле backup_label" -#: access/transam/xlog.c:8262 +#: access/transam/xlog.c:8344 #, c-format msgid "invalid primary checkpoint record" msgstr "неверная запись первичной контрольной точки" -#: access/transam/xlog.c:8266 +#: access/transam/xlog.c:8348 #, c-format msgid "invalid checkpoint record" msgstr "неверная запись контрольной точки" -#: access/transam/xlog.c:8277 +#: access/transam/xlog.c:8359 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "неверный ID менеджера ресурсов в записи первичной контрольной точки" -#: access/transam/xlog.c:8281 +#: access/transam/xlog.c:8363 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "неверный ID менеджера ресурсов в записи контрольной точки" -#: access/transam/xlog.c:8294 +#: access/transam/xlog.c:8376 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "неверные флаги xl_info в записи первичной контрольной точки" -#: access/transam/xlog.c:8298 +#: access/transam/xlog.c:8380 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "неверные флаги xl_info в записи контрольной точки" -#: access/transam/xlog.c:8309 +#: access/transam/xlog.c:8391 #, c-format msgid "invalid length of primary checkpoint record" msgstr "неверная длина записи первичной контрольной точки" -#: access/transam/xlog.c:8313 +#: access/transam/xlog.c:8395 #, c-format msgid "invalid length of checkpoint record" msgstr "неверная длина записи контрольной точки" -#: access/transam/xlog.c:8493 +#: access/transam/xlog.c:8575 #, c-format msgid "shutting down" msgstr "выключение" -#: access/transam/xlog.c:8799 +#: access/transam/xlog.c:8882 #, c-format msgid "checkpoint skipped because system is idle" msgstr "контрольная точка пропущена ввиду простоя системы" -#: access/transam/xlog.c:8999 +#: access/transam/xlog.c:9092 #, c-format msgid "" "concurrent write-ahead log activity while database system is shutting down" @@ -3087,34 +3094,34 @@ "во время выключения системы баз данных отмечена активность в журнале " "предзаписи" -#: access/transam/xlog.c:9256 +#: access/transam/xlog.c:9404 #, c-format msgid "skipping restartpoint, recovery has already ended" msgstr "" "создание точки перезапуска пропускается, восстановление уже закончилось" -#: access/transam/xlog.c:9279 +#: access/transam/xlog.c:9427 #, c-format msgid "skipping restartpoint, already performed at %X/%X" msgstr "" "создание точки перезапуска пропускается, она уже создана по смещению %X/%X" -#: access/transam/xlog.c:9447 +#: access/transam/xlog.c:9603 #, c-format msgid "recovery restart point at %X/%X" msgstr "точка перезапуска восстановления по смещению %X/%X" -#: access/transam/xlog.c:9449 +#: access/transam/xlog.c:9605 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Последняя завершённая транзакция была выполнена в %s." -#: access/transam/xlog.c:9691 +#: access/transam/xlog.c:9853 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "точка восстановления \"%s\" создана по смещению %X/%X" -#: access/transam/xlog.c:9836 +#: access/transam/xlog.c:9998 #, c-format msgid "" "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint " @@ -3123,13 +3130,13 @@ "неожиданный ID предыдущей линии времени %u (ID текущей линии времени %u) в " "записи контрольной точки" -#: access/transam/xlog.c:9845 +#: access/transam/xlog.c:10007 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "неожиданный ID линии времени %u (после %u) в записи контрольной точки" # skip-rule: capital-letter-first -#: access/transam/xlog.c:9861 +#: access/transam/xlog.c:10023 #, c-format msgid "" "unexpected timeline ID %u in checkpoint record, before reaching minimum " @@ -3138,32 +3145,39 @@ "неожиданный ID линии времени %u в записи контрольной точки, до достижения " "минимальной к. т. %X/%X на линии времени %u" -#: access/transam/xlog.c:9937 +#: access/transam/xlog.c:10099 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "" "резервное копирование \"на ходу\" было отменено, продолжить восстановление " "нельзя" -#: access/transam/xlog.c:9993 access/transam/xlog.c:10049 -#: access/transam/xlog.c:10072 +#: access/transam/xlog.c:10155 access/transam/xlog.c:10211 +#: access/transam/xlog.c:10241 #, c-format msgid "unexpected timeline ID %u (should be %u) in checkpoint record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в записи точки " "восстановления" -#: access/transam/xlog.c:10398 +#: access/transam/xlog.c:10401 +#, c-format +msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" +msgstr "" +"успешно пропущена отсутствующая запись contrecord в %X/%X, перезаписанная в " +"%s" + +#: access/transam/xlog.c:10594 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "не удалось синхронизировать с ФС файл сквозной записи %s: %m" -#: access/transam/xlog.c:10404 +#: access/transam/xlog.c:10600 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "не удалось синхронизировать с ФС данные (fdatasync) файла \"%s\": %m" -#: access/transam/xlog.c:10503 access/transam/xlog.c:11041 +#: access/transam/xlog.c:10699 access/transam/xlog.c:11237 #: access/transam/xlogfuncs.c:275 access/transam/xlogfuncs.c:302 #: access/transam/xlogfuncs.c:341 access/transam/xlogfuncs.c:362 #: access/transam/xlogfuncs.c:383 @@ -3171,35 +3185,35 @@ msgid "WAL control functions cannot be executed during recovery." msgstr "Функции управления WAL нельзя использовать в процессе восстановления." -#: access/transam/xlog.c:10512 access/transam/xlog.c:11050 +#: access/transam/xlog.c:10708 access/transam/xlog.c:11246 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "" "Выбранный уровень WAL недостаточен для резервного копирования \"на ходу\"" -#: access/transam/xlog.c:10513 access/transam/xlog.c:11051 +#: access/transam/xlog.c:10709 access/transam/xlog.c:11247 #: access/transam/xlogfuncs.c:308 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "Установите wal_level \"replica\" или \"logical\" при запуске сервера." -#: access/transam/xlog.c:10518 +#: access/transam/xlog.c:10714 #, c-format msgid "backup label too long (max %d bytes)" msgstr "длина метки резервной копии превышает предел (%d байт)" -#: access/transam/xlog.c:10555 access/transam/xlog.c:10840 -#: access/transam/xlog.c:10878 +#: access/transam/xlog.c:10751 access/transam/xlog.c:11036 +#: access/transam/xlog.c:11074 #, c-format msgid "a backup is already in progress" msgstr "резервное копирование уже выполняется" -#: access/transam/xlog.c:10556 +#: access/transam/xlog.c:10752 #, c-format msgid "Run pg_stop_backup() and try again." msgstr "Выполните pg_stop_backup() и повторите операцию." -#: access/transam/xlog.c:10652 +#: access/transam/xlog.c:10848 #, c-format msgid "" "WAL generated with full_page_writes=off was replayed since last restartpoint" @@ -3207,7 +3221,7 @@ "После последней точки перезапуска был воспроизведён WAL, созданный в режиме " "full_page_writes=off." -#: access/transam/xlog.c:10654 access/transam/xlog.c:11246 +#: access/transam/xlog.c:10850 access/transam/xlog.c:11442 #, c-format msgid "" "This means that the backup being taken on the standby is corrupt and should " @@ -3219,19 +3233,19 @@ "CHECKPOINT на главном сервере, а затем попробуйте резервное копирование \"на " "ходу\" ещё раз." -#: access/transam/xlog.c:10737 replication/basebackup.c:1423 +#: access/transam/xlog.c:10933 replication/basebackup.c:1423 #: utils/adt/misc.c:342 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "целевой путь символической ссылки \"%s\" слишком длинный" -#: access/transam/xlog.c:10790 commands/tablespace.c:402 +#: access/transam/xlog.c:10986 commands/tablespace.c:402 #: commands/tablespace.c:578 replication/basebackup.c:1438 utils/adt/misc.c:350 #, c-format msgid "tablespaces are not supported on this platform" msgstr "табличные пространства не поддерживаются на этой платформе" -#: access/transam/xlog.c:10841 access/transam/xlog.c:10879 +#: access/transam/xlog.c:11037 access/transam/xlog.c:11075 #, c-format msgid "" "If you're sure there is no backup in progress, remove file \"%s\" and try " @@ -3240,31 +3254,31 @@ "Если вы считаете, что информация о резервном копировании неверна, удалите " "файл \"%s\" и попробуйте снова." -#: access/transam/xlog.c:11066 +#: access/transam/xlog.c:11262 #, c-format msgid "exclusive backup not in progress" msgstr "монопольное резервное копирование не выполняется" -#: access/transam/xlog.c:11093 +#: access/transam/xlog.c:11289 #, c-format msgid "a backup is not in progress" msgstr "резервное копирование не выполняется" -#: access/transam/xlog.c:11179 access/transam/xlog.c:11192 -#: access/transam/xlog.c:11581 access/transam/xlog.c:11587 -#: access/transam/xlog.c:11635 access/transam/xlog.c:11708 +#: access/transam/xlog.c:11375 access/transam/xlog.c:11388 +#: access/transam/xlog.c:11777 access/transam/xlog.c:11783 +#: access/transam/xlog.c:11831 access/transam/xlog.c:11904 #: access/transam/xlogfuncs.c:692 #, c-format msgid "invalid data in file \"%s\"" msgstr "неверные данные в файле \"%s\"" -#: access/transam/xlog.c:11196 replication/basebackup.c:1271 +#: access/transam/xlog.c:11392 replication/basebackup.c:1271 #, c-format msgid "the standby was promoted during online backup" msgstr "" "дежурный сервер был повышен в процессе резервного копирования \"на ходу\"" -#: access/transam/xlog.c:11197 replication/basebackup.c:1272 +#: access/transam/xlog.c:11393 replication/basebackup.c:1272 #, c-format msgid "" "This means that the backup being taken is corrupt and should not be used. " @@ -3273,7 +3287,7 @@ "Это означает, что создаваемая резервная копия испорчена и использовать её не " "следует. Попробуйте резервное копирование \"на ходу\" ещё раз." -#: access/transam/xlog.c:11244 +#: access/transam/xlog.c:11440 #, c-format msgid "" "WAL generated with full_page_writes=off was replayed during online backup" @@ -3281,13 +3295,13 @@ "В процессе резервного копирования \"на ходу\" был воспроизведён WAL, " "созданный в режиме full_page_writes=off" -#: access/transam/xlog.c:11364 +#: access/transam/xlog.c:11560 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "" "базовое копирование выполнено, ожидается архивация нужных сегментов WAL" -#: access/transam/xlog.c:11376 +#: access/transam/xlog.c:11572 #, c-format msgid "" "still waiting for all required WAL segments to be archived (%d seconds " @@ -3295,7 +3309,7 @@ msgstr "" "продолжается ожидание архивации всех нужных сегментов WAL (прошло %d сек.)" -#: access/transam/xlog.c:11378 +#: access/transam/xlog.c:11574 #, c-format msgid "" "Check that your archive_command is executing properly. You can safely " @@ -3306,12 +3320,12 @@ "копирования можно отменить безопасно, но резервная копия базы будет " "непригодна без всех сегментов WAL." -#: access/transam/xlog.c:11385 +#: access/transam/xlog.c:11581 #, c-format msgid "all required WAL segments have been archived" msgstr "все нужные сегменты WAL заархивированы" -#: access/transam/xlog.c:11389 +#: access/transam/xlog.c:11585 #, c-format msgid "" "WAL archiving is not enabled; you must ensure that all required WAL segments " @@ -3320,63 +3334,63 @@ "архивация WAL не настроена; вы должны обеспечить копирование всех требуемых " "сегментов WAL другими средствами для получения резервной копии" -#: access/transam/xlog.c:11442 +#: access/transam/xlog.c:11638 #, c-format msgid "aborting backup due to backend exiting before pg_stop_backup was called" msgstr "" "прерывание резервного копирования из-за завершения обслуживающего процесса " "до вызова pg_stop_backup" -#: access/transam/xlog.c:11618 +#: access/transam/xlog.c:11814 #, c-format msgid "backup time %s in file \"%s\"" msgstr "время резервного копирования %s в файле \"%s\"" -#: access/transam/xlog.c:11623 +#: access/transam/xlog.c:11819 #, c-format msgid "backup label %s in file \"%s\"" msgstr "метка резервного копирования %s в файле \"%s\"" -#: access/transam/xlog.c:11636 +#: access/transam/xlog.c:11832 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Получен идентификатор линии времени %u, но ожидался %u." -#: access/transam/xlog.c:11640 +#: access/transam/xlog.c:11836 #, c-format msgid "backup timeline %u in file \"%s\"" msgstr "линия времени резервной копии %u в файле \"%s\"" #. translator: %s is a WAL record description -#: access/transam/xlog.c:11748 +#: access/transam/xlog.c:11944 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "запись REDO в WAL в позиции %X/%X для %s" -#: access/transam/xlog.c:11797 +#: access/transam/xlog.c:11993 #, c-format msgid "online backup mode was not canceled" msgstr "режим копирования \"на ходу\" не был отменён" -#: access/transam/xlog.c:11798 +#: access/transam/xlog.c:11994 #, c-format msgid "File \"%s\" could not be renamed to \"%s\": %m." msgstr "Не удалось переименовать файл \"%s\" в \"%s\": %m." -#: access/transam/xlog.c:11807 access/transam/xlog.c:11819 -#: access/transam/xlog.c:11829 +#: access/transam/xlog.c:12003 access/transam/xlog.c:12015 +#: access/transam/xlog.c:12025 #, c-format msgid "online backup mode canceled" msgstr "режим копирования \"на ходу\" отменён" -#: access/transam/xlog.c:11820 +#: access/transam/xlog.c:12016 #, c-format msgid "" "Files \"%s\" and \"%s\" were renamed to \"%s\" and \"%s\", respectively." msgstr "" "Файлы \"%s\" и \"%s\" были переименованы в \"%s\" и \"%s\", соответственно." -#: access/transam/xlog.c:11830 +#: access/transam/xlog.c:12026 #, c-format msgid "" "File \"%s\" was renamed to \"%s\", but file \"%s\" could not be renamed to " @@ -3385,34 +3399,34 @@ "Файл \"%s\" был переименован в \"%s\", но переименовать \"%s\" в \"%s\" не " "удалось: %m." -#: access/transam/xlog.c:11963 access/transam/xlogutils.c:971 +#: access/transam/xlog.c:12159 access/transam/xlogutils.c:971 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "не удалось прочитать сегмент журнала %s, смещение %u: %m" -#: access/transam/xlog.c:11969 access/transam/xlogutils.c:978 +#: access/transam/xlog.c:12165 access/transam/xlogutils.c:978 #, c-format msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "" "не удалось прочитать из сегмента журнала %s по смещению %u (прочитано байт: " "%d из %zu)" -#: access/transam/xlog.c:12495 +#: access/transam/xlog.c:12702 #, c-format msgid "WAL receiver process shutdown requested" msgstr "получен запрос на выключение процесса приёмника WAL" -#: access/transam/xlog.c:12601 +#: access/transam/xlog.c:12808 #, c-format msgid "received promote request" msgstr "получен запрос повышения статуса" -#: access/transam/xlog.c:12614 +#: access/transam/xlog.c:12821 #, c-format msgid "promote trigger file found: %s" msgstr "найден файл триггера повышения: %s" -#: access/transam/xlog.c:12623 +#: access/transam/xlog.c:12830 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "не удалось получить информацию о файле триггера повышения \"%s\": %m" @@ -3467,18 +3481,18 @@ #: access/transam/xlogfuncs.c:185 commands/event_trigger.c:1332 #: commands/event_trigger.c:1890 commands/extension.c:1944 -#: commands/extension.c:2052 commands/extension.c:2337 commands/prepare.c:712 -#: executor/execExpr.c:2203 executor/execSRF.c:728 executor/functions.c:1040 -#: foreign/foreign.c:520 libpq/hba.c:2666 replication/logical/launcher.c:1086 +#: commands/extension.c:2052 commands/extension.c:2337 commands/prepare.c:716 +#: executor/execExpr.c:2241 executor/execSRF.c:728 executor/functions.c:1040 +#: foreign/foreign.c:520 libpq/hba.c:2670 replication/logical/launcher.c:1086 #: replication/logical/logicalfuncs.c:157 replication/logical/origin.c:1486 -#: replication/slotfuncs.c:252 replication/walsender.c:3258 +#: replication/slotfuncs.c:252 replication/walsender.c:3273 #: storage/ipc/shmem.c:550 utils/adt/datetime.c:4765 utils/adt/genfile.c:505 #: utils/adt/genfile.c:588 utils/adt/jsonfuncs.c:1792 #: utils/adt/jsonfuncs.c:1904 utils/adt/jsonfuncs.c:2092 #: utils/adt/jsonfuncs.c:2201 utils/adt/jsonfuncs.c:3663 utils/adt/misc.c:215 #: utils/adt/pgstatfuncs.c:476 utils/adt/pgstatfuncs.c:584 #: utils/adt/pgstatfuncs.c:1719 utils/fmgr/funcapi.c:72 utils/misc/guc.c:9676 -#: utils/mmgr/portalmem.c:1136 +#: utils/mmgr/portalmem.c:1145 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" @@ -3486,14 +3500,14 @@ #: access/transam/xlogfuncs.c:189 commands/event_trigger.c:1336 #: commands/event_trigger.c:1894 commands/extension.c:1948 -#: commands/extension.c:2056 commands/extension.c:2341 commands/prepare.c:716 -#: foreign/foreign.c:525 libpq/hba.c:2670 replication/logical/launcher.c:1090 +#: commands/extension.c:2056 commands/extension.c:2341 commands/prepare.c:720 +#: foreign/foreign.c:525 libpq/hba.c:2674 replication/logical/launcher.c:1090 #: replication/logical/logicalfuncs.c:161 replication/logical/origin.c:1490 -#: replication/slotfuncs.c:256 replication/walsender.c:3262 +#: replication/slotfuncs.c:256 replication/walsender.c:3277 #: storage/ipc/shmem.c:554 utils/adt/datetime.c:4769 utils/adt/genfile.c:509 #: utils/adt/genfile.c:592 utils/adt/misc.c:219 utils/adt/pgstatfuncs.c:480 #: utils/adt/pgstatfuncs.c:588 utils/adt/pgstatfuncs.c:1723 -#: utils/misc/guc.c:9680 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1140 +#: utils/misc/guc.c:9680 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1149 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "требуется режим материализации, но он недопустим в этом контексте" @@ -3563,64 +3577,64 @@ msgid "server did not promote within %d seconds" msgstr "повышение сервера не завершилось за %d сек." -#: access/transam/xlogreader.c:349 +#: access/transam/xlogreader.c:354 #, c-format msgid "invalid record offset at %X/%X" msgstr "неверное смещение записи: %X/%X" -#: access/transam/xlogreader.c:357 +#: access/transam/xlogreader.c:362 #, c-format msgid "contrecord is requested by %X/%X" msgstr "по смещению %X/%X запрошено продолжение записи" -#: access/transam/xlogreader.c:398 access/transam/xlogreader.c:695 +#: access/transam/xlogreader.c:403 access/transam/xlogreader.c:733 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "неверная длина записи по смещению %X/%X: ожидалось %u, получено %u" -#: access/transam/xlogreader.c:422 +#: access/transam/xlogreader.c:429 #, c-format msgid "record length %u at %X/%X too long" msgstr "длина записи %u по смещению %X/%X слишком велика" -#: access/transam/xlogreader.c:454 +#: access/transam/xlogreader.c:478 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "нет флага contrecord в позиции %X/%X" -#: access/transam/xlogreader.c:467 +#: access/transam/xlogreader.c:491 #, c-format msgid "invalid contrecord length %u at %X/%X" msgstr "неверная длина contrecord (%u) в позиции %X/%X" -#: access/transam/xlogreader.c:703 +#: access/transam/xlogreader.c:741 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "неверный ID менеджера ресурсов %u по смещению %X/%X" -#: access/transam/xlogreader.c:717 access/transam/xlogreader.c:734 +#: access/transam/xlogreader.c:755 access/transam/xlogreader.c:772 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запись с неверной ссылкой назад %X/%X по смещению %X/%X" -#: access/transam/xlogreader.c:771 +#: access/transam/xlogreader.c:809 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "некорректная контрольная сумма данных менеджера ресурсов в записи по " "смещению %X/%X" -#: access/transam/xlogreader.c:808 +#: access/transam/xlogreader.c:846 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "неверное магическое число %04X в сегменте журнала %s, смещение %u" -#: access/transam/xlogreader.c:822 access/transam/xlogreader.c:863 +#: access/transam/xlogreader.c:860 access/transam/xlogreader.c:901 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "неверные информационные биты %04X в сегменте журнала %s, смещение %u" -#: access/transam/xlogreader.c:837 +#: access/transam/xlogreader.c:875 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -3629,7 +3643,7 @@ "файл WAL принадлежит другой СУБД: в нём указан идентификатор системы БД " "%llu, а идентификатор системы pg_control: %llu" -#: access/transam/xlogreader.c:845 +#: access/transam/xlogreader.c:883 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -3638,7 +3652,7 @@ "файл WAL принадлежит другой СУБД: некорректный размер сегмента в заголовке " "страницы" -#: access/transam/xlogreader.c:851 +#: access/transam/xlogreader.c:889 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -3647,35 +3661,35 @@ "файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке " "страницы" -#: access/transam/xlogreader.c:882 +#: access/transam/xlogreader.c:920 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "неожиданный pageaddr %X/%X в сегменте журнала %s, смещение %u" -#: access/transam/xlogreader.c:907 +#: access/transam/xlogreader.c:945 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "" "нарушение последовательности ID линии времени %u (после %u) в сегменте " "журнала %s, смещение %u" -#: access/transam/xlogreader.c:1247 +#: access/transam/xlogreader.c:1285 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "идентификатор блока %u идёт не по порядку в позиции %X/%X" -#: access/transam/xlogreader.c:1270 +#: access/transam/xlogreader.c:1308 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA установлен, но данных в позиции %X/%X нет" -#: access/transam/xlogreader.c:1277 +#: access/transam/xlogreader.c:1315 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "" "BKPBLOCK_HAS_DATA не установлен, но длина данных равна %u в позиции %X/%X" -#: access/transam/xlogreader.c:1313 +#: access/transam/xlogreader.c:1351 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -3684,21 +3698,21 @@ "BKPIMAGE_HAS_HOLE установлен, но для пропуска заданы смещение %u и длина %u " "при длине образа блока %u в позиции %X/%X" -#: access/transam/xlogreader.c:1329 +#: access/transam/xlogreader.c:1367 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "" "BKPIMAGE_HAS_HOLE не установлен, но для пропуска заданы смещение %u и длина " "%u в позиции %X/%X" -#: access/transam/xlogreader.c:1344 +#: access/transam/xlogreader.c:1382 #, c-format msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_IS_COMPRESSED установлен, но длина образа блока равна %u в позиции " "%X/%X" -#: access/transam/xlogreader.c:1359 +#: access/transam/xlogreader.c:1397 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image " @@ -3707,24 +3721,24 @@ "ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_IS_COMPRESSED не установлены, но длина " "образа блока равна %u в позиции %X/%X" -#: access/transam/xlogreader.c:1375 +#: access/transam/xlogreader.c:1413 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "" "BKPBLOCK_SAME_REL установлен, но предыдущее значение не задано в позиции %X/" "%X" -#: access/transam/xlogreader.c:1387 +#: access/transam/xlogreader.c:1425 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "неверный идентификатор блока %u в позиции %X/%X" -#: access/transam/xlogreader.c:1476 +#: access/transam/xlogreader.c:1514 #, c-format msgid "record with invalid length at %X/%X" msgstr "запись с неверной длиной в позиции %X/%X" -#: access/transam/xlogreader.c:1565 +#: access/transam/xlogreader.c:1603 #, c-format msgid "invalid compressed image at %X/%X, block %d" msgstr "неверный сжатый образ в позиции %X/%X, блок %d" @@ -3735,12 +3749,12 @@ msgstr "" "для -X требуется число, равное степени двух, в интервале от 1 МБ до 1 ГБ" -#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:842 tcop/postgres.c:3717 +#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:842 tcop/postgres.c:3737 #, c-format msgid "--%s requires a value" msgstr "для --%s требуется значение" -#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:847 tcop/postgres.c:3722 +#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:847 tcop/postgres.c:3742 #, c-format msgid "-c %s requires a value" msgstr "для -c %s требуется значение" @@ -3880,7 +3894,7 @@ #: catalog/aclchk.c:681 catalog/aclchk.c:4103 catalog/aclchk.c:4885 #: catalog/objectaddress.c:965 catalog/pg_largeobject.c:116 -#: storage/large_object/inv_api.c:285 +#: storage/large_object/inv_api.c:287 #, c-format msgid "large object %u does not exist" msgstr "большой объект %u не существует" @@ -3900,20 +3914,20 @@ #: commands/dbcommands.c:1529 commands/extension.c:1735 #: commands/extension.c:1745 commands/extension.c:1755 #: commands/extension.c:3055 commands/foreigncmds.c:539 -#: commands/foreigncmds.c:548 commands/functioncmds.c:570 -#: commands/functioncmds.c:736 commands/functioncmds.c:745 -#: commands/functioncmds.c:754 commands/functioncmds.c:763 -#: commands/functioncmds.c:2014 commands/functioncmds.c:2022 -#: commands/publicationcmds.c:90 commands/publicationcmds.c:133 +#: commands/foreigncmds.c:548 commands/functioncmds.c:572 +#: commands/functioncmds.c:738 commands/functioncmds.c:747 +#: commands/functioncmds.c:756 commands/functioncmds.c:765 +#: commands/functioncmds.c:2017 commands/functioncmds.c:2025 +#: commands/publicationcmds.c:87 commands/publicationcmds.c:130 #: commands/sequence.c:1267 commands/sequence.c:1277 commands/sequence.c:1287 #: commands/sequence.c:1297 commands/sequence.c:1307 commands/sequence.c:1317 #: commands/sequence.c:1327 commands/sequence.c:1337 commands/sequence.c:1347 -#: commands/subscriptioncmds.c:104 commands/subscriptioncmds.c:114 -#: commands/subscriptioncmds.c:124 commands/subscriptioncmds.c:134 -#: commands/subscriptioncmds.c:148 commands/subscriptioncmds.c:159 -#: commands/subscriptioncmds.c:173 commands/tablecmds.c:7104 -#: commands/typecmds.c:322 commands/typecmds.c:1355 commands/typecmds.c:1364 -#: commands/typecmds.c:1372 commands/typecmds.c:1380 commands/typecmds.c:1388 +#: commands/subscriptioncmds.c:105 commands/subscriptioncmds.c:115 +#: commands/subscriptioncmds.c:125 commands/subscriptioncmds.c:135 +#: commands/subscriptioncmds.c:151 commands/subscriptioncmds.c:162 +#: commands/subscriptioncmds.c:176 commands/tablecmds.c:7223 +#: commands/typecmds.c:322 commands/typecmds.c:1357 commands/typecmds.c:1366 +#: commands/typecmds.c:1374 commands/typecmds.c:1382 commands/typecmds.c:1390 #: commands/user.c:133 commands/user.c:147 commands/user.c:156 #: commands/user.c:165 commands/user.c:174 commands/user.c:183 #: commands/user.c:192 commands/user.c:201 commands/user.c:210 @@ -3940,26 +3954,26 @@ msgstr "предложение IN SCHEMA нельзя использовать в GRANT/REVOKE ON SCHEMAS" #: catalog/aclchk.c:1561 catalog/catalog.c:506 catalog/objectaddress.c:1427 -#: commands/analyze.c:389 commands/copy.c:5087 commands/sequence.c:1702 -#: commands/tablecmds.c:6580 commands/tablecmds.c:6723 -#: commands/tablecmds.c:6773 commands/tablecmds.c:6847 -#: commands/tablecmds.c:6917 commands/tablecmds.c:7029 -#: commands/tablecmds.c:7123 commands/tablecmds.c:7182 -#: commands/tablecmds.c:7271 commands/tablecmds.c:7300 -#: commands/tablecmds.c:7455 commands/tablecmds.c:7537 -#: commands/tablecmds.c:7630 commands/tablecmds.c:7785 -#: commands/tablecmds.c:10990 commands/tablecmds.c:11172 -#: commands/tablecmds.c:11332 commands/tablecmds.c:12415 commands/trigger.c:876 -#: parser/analyze.c:2338 parser/parse_relation.c:713 parser/parse_target.c:1036 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3314 -#: parser/parse_utilcmd.c:3349 parser/parse_utilcmd.c:3391 utils/adt/acl.c:2869 -#: utils/adt/ruleutils.c:2535 +#: commands/analyze.c:389 commands/copy.c:5088 commands/sequence.c:1702 +#: commands/tablecmds.c:6686 commands/tablecmds.c:6842 +#: commands/tablecmds.c:6892 commands/tablecmds.c:6966 +#: commands/tablecmds.c:7036 commands/tablecmds.c:7148 +#: commands/tablecmds.c:7242 commands/tablecmds.c:7301 +#: commands/tablecmds.c:7390 commands/tablecmds.c:7419 +#: commands/tablecmds.c:7574 commands/tablecmds.c:7656 +#: commands/tablecmds.c:7749 commands/tablecmds.c:7904 +#: commands/tablecmds.c:11225 commands/tablecmds.c:11406 +#: commands/tablecmds.c:11566 commands/tablecmds.c:12650 commands/trigger.c:884 +#: parser/analyze.c:2338 parser/parse_relation.c:713 parser/parse_target.c:1035 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3324 +#: parser/parse_utilcmd.c:3360 parser/parse_utilcmd.c:3402 utils/adt/acl.c:2869 +#: utils/adt/ruleutils.c:2537 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "столбец \"%s\" в таблице \"%s\" не существует" #: catalog/aclchk.c:1824 catalog/objectaddress.c:1267 commands/sequence.c:1140 -#: commands/tablecmds.c:236 commands/tablecmds.c:15728 utils/adt/acl.c:2059 +#: commands/tablecmds.c:236 commands/tablecmds.c:16029 utils/adt/acl.c:2059 #: utils/adt/acl.c:2089 utils/adt/acl.c:2121 utils/adt/acl.c:2153 #: utils/adt/acl.c:2181 utils/adt/acl.c:2211 #, c-format @@ -4369,7 +4383,7 @@ msgid "database with OID %u does not exist" msgstr "база данных с OID %u не существует" -#: catalog/aclchk.c:3970 catalog/aclchk.c:4814 tcop/fastpath.c:221 +#: catalog/aclchk.c:3970 catalog/aclchk.c:4814 tcop/fastpath.c:218 #: utils/fmgr/fmgr.c:2055 #, c-format msgid "function with OID %u does not exist" @@ -4380,7 +4394,7 @@ msgid "language with OID %u does not exist" msgstr "язык с OID %u не существует" -#: catalog/aclchk.c:4188 catalog/aclchk.c:4912 +#: catalog/aclchk.c:4188 catalog/aclchk.c:4912 commands/collationcmds.c:552 #, c-format msgid "schema with OID %u does not exist" msgstr "схема с OID %u не существует" @@ -4436,7 +4450,7 @@ msgid "event trigger with OID %u does not exist" msgstr "событийный триггер с OID %u не существует" -#: catalog/aclchk.c:5180 commands/collationcmds.c:367 +#: catalog/aclchk.c:5180 commands/collationcmds.c:386 #, c-format msgid "collation with OID %u does not exist" msgstr "правило сортировки с OID %u не существует" @@ -4451,12 +4465,12 @@ msgid "extension with OID %u does not exist" msgstr "расширение с OID %u не существует" -#: catalog/aclchk.c:5274 commands/publicationcmds.c:794 +#: catalog/aclchk.c:5274 commands/publicationcmds.c:819 #, c-format msgid "publication with OID %u does not exist" msgstr "публикация с OID %u не существует" -#: catalog/aclchk.c:5300 commands/subscriptioncmds.c:1112 +#: catalog/aclchk.c:5300 commands/subscriptioncmds.c:1116 #, c-format msgid "subscription with OID %u does not exist" msgstr "подписка с OID %u не существует" @@ -4476,7 +4490,7 @@ msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() можно использовать только для системных каталогов" -#: catalog/catalog.c:498 parser/parse_utilcmd.c:2215 +#: catalog/catalog.c:498 parser/parse_utilcmd.c:2225 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "индекс \"%s\" не принадлежит таблице \"%s\"" @@ -4501,27 +4515,27 @@ msgid "You can drop %s instead." msgstr "Однако можно удалить %s." -#: catalog/dependency.c:933 catalog/pg_shdepend.c:696 +#: catalog/dependency.c:933 catalog/pg_shdepend.c:697 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "удалить объект %s нельзя, так как он нужен системе баз данных" -#: catalog/dependency.c:1129 +#: catalog/dependency.c:1133 #, c-format msgid "drop auto-cascades to %s" msgstr "удаление автоматически распространяется на объект %s" -#: catalog/dependency.c:1141 catalog/dependency.c:1150 +#: catalog/dependency.c:1147 catalog/dependency.c:1156 #, c-format msgid "%s depends on %s" msgstr "%s зависит от объекта %s" -#: catalog/dependency.c:1162 catalog/dependency.c:1171 +#: catalog/dependency.c:1171 catalog/dependency.c:1180 #, c-format msgid "drop cascades to %s" msgstr "удаление распространяется на объект %s" -#: catalog/dependency.c:1179 catalog/pg_shdepend.c:825 +#: catalog/dependency.c:1188 catalog/pg_shdepend.c:826 #, c-format msgid "" "\n" @@ -4539,38 +4553,38 @@ "\n" "и ещё %d объектов (см. список в протоколе сервера)" -#: catalog/dependency.c:1191 +#: catalog/dependency.c:1200 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "удалить объект %s нельзя, так как от него зависят другие объекты" -#: catalog/dependency.c:1193 catalog/dependency.c:1194 -#: catalog/dependency.c:1200 catalog/dependency.c:1201 -#: catalog/dependency.c:1212 catalog/dependency.c:1213 -#: commands/tablecmds.c:1249 commands/tablecmds.c:13034 +#: catalog/dependency.c:1202 catalog/dependency.c:1203 +#: catalog/dependency.c:1209 catalog/dependency.c:1210 +#: catalog/dependency.c:1221 catalog/dependency.c:1222 +#: commands/tablecmds.c:1258 commands/tablecmds.c:13269 #: commands/tablespace.c:481 commands/user.c:1095 commands/view.c:495 #: libpq/auth.c:334 replication/syncrep.c:1032 storage/lmgr/deadlock.c:1154 #: storage/lmgr/proc.c:1350 utils/adt/acl.c:5332 utils/adt/jsonfuncs.c:614 #: utils/adt/jsonfuncs.c:620 utils/misc/guc.c:6771 utils/misc/guc.c:6807 -#: utils/misc/guc.c:6877 utils/misc/guc.c:10975 utils/misc/guc.c:11009 -#: utils/misc/guc.c:11043 utils/misc/guc.c:11077 utils/misc/guc.c:11112 +#: utils/misc/guc.c:6877 utils/misc/guc.c:10982 utils/misc/guc.c:11016 +#: utils/misc/guc.c:11050 utils/misc/guc.c:11093 utils/misc/guc.c:11135 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1195 catalog/dependency.c:1202 +#: catalog/dependency.c:1204 catalog/dependency.c:1211 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Для удаления зависимых объектов используйте DROP ... CASCADE." -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1208 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "" "удалить запрошенные объекты нельзя, так как от них зависят другие объекты" #. translator: %d always has a value larger than 1 -#: catalog/dependency.c:1208 +#: catalog/dependency.c:1217 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" @@ -4578,7 +4592,7 @@ msgstr[1] "удаление распространяется на ещё %d объекта" msgstr[2] "удаление распространяется на ещё %d объектов" -#: catalog/dependency.c:1875 +#: catalog/dependency.c:1884 #, c-format msgid "constant of the type %s cannot be used here" msgstr "константу типа %s здесь использовать нельзя" @@ -4593,13 +4607,13 @@ msgid "System catalog modifications are currently disallowed." msgstr "Изменение системного каталога в текущем состоянии запрещено." -#: catalog/heap.c:509 commands/tablecmds.c:2145 commands/tablecmds.c:2745 -#: commands/tablecmds.c:6177 +#: catalog/heap.c:509 commands/tablecmds.c:2173 commands/tablecmds.c:2773 +#: commands/tablecmds.c:6283 #, c-format msgid "tables can have at most %d columns" msgstr "максимальное число столбцов в таблице: %d" -#: catalog/heap.c:527 commands/tablecmds.c:6470 +#: catalog/heap.c:527 commands/tablecmds.c:6576 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "имя столбца \"%s\" конфликтует с системным столбцом" @@ -4641,14 +4655,14 @@ "для столбца \"%s\" с сортируемым типом %s не удалось получить правило " "сортировки" -#: catalog/heap.c:1164 catalog/index.c:865 commands/tablecmds.c:3520 +#: catalog/heap.c:1164 catalog/index.c:866 commands/tablecmds.c:3572 #, c-format msgid "relation \"%s\" already exists" msgstr "отношение \"%s\" уже существует" -#: catalog/heap.c:1180 catalog/pg_type.c:428 catalog/pg_type.c:775 +#: catalog/heap.c:1180 catalog/pg_type.c:429 catalog/pg_type.c:783 #: commands/typecmds.c:238 commands/typecmds.c:250 commands/typecmds.c:719 -#: commands/typecmds.c:1125 commands/typecmds.c:1337 commands/typecmds.c:2124 +#: commands/typecmds.c:1127 commands/typecmds.c:1339 commands/typecmds.c:2126 #, c-format msgid "type \"%s\" already exists" msgstr "тип \"%s\" уже существует" @@ -4667,38 +4681,38 @@ msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "значение OID кучи в pg_class не задано в режиме двоичного обновления" -#: catalog/heap.c:2409 +#: catalog/heap.c:2417 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "" "добавить ограничение NO INHERIT к секционированной таблице \"%s\" нельзя" -#: catalog/heap.c:2679 +#: catalog/heap.c:2687 #, c-format msgid "check constraint \"%s\" already exists" msgstr "ограничение-проверка \"%s\" уже существует" -#: catalog/heap.c:2849 catalog/index.c:879 catalog/pg_constraint.c:668 -#: commands/tablecmds.c:8135 +#: catalog/heap.c:2857 catalog/index.c:880 catalog/pg_constraint.c:668 +#: commands/tablecmds.c:8254 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "ограничение \"%s\" для отношения \"%s\" уже существует" -#: catalog/heap.c:2856 +#: catalog/heap.c:2864 #, c-format msgid "" "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "" "ограничение \"%s\" конфликтует с ненаследуемым ограничением таблицы \"%s\"" -#: catalog/heap.c:2867 +#: catalog/heap.c:2875 #, c-format msgid "" "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "" "ограничение \"%s\" конфликтует с наследуемым ограничением таблицы \"%s\"" -#: catalog/heap.c:2877 +#: catalog/heap.c:2885 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" @@ -4706,52 +4720,64 @@ "ограничение \"%s\" конфликтует с непроверенным (NOT VALID) ограничением " "таблицы \"%s\"" -#: catalog/heap.c:2882 +#: catalog/heap.c:2890 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "слияние ограничения \"%s\" с унаследованным определением" -#: catalog/heap.c:2984 +#: catalog/heap.c:2995 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "" "использовать генерируемый столбец \"%s\" в выражении генерируемого столбца " "нельзя" -#: catalog/heap.c:2986 +#: catalog/heap.c:2997 #, c-format msgid "A generated column cannot reference another generated column." msgstr "" "Генерируемый столбец не может ссылаться на другой генерируемый столбец." -#: catalog/heap.c:3038 +#: catalog/heap.c:3003 +#, c-format +msgid "cannot use whole-row variable in column generation expression" +msgstr "" +"в выражении генерируемого столбца нельзя использовать переменные «вся строка»" + +#: catalog/heap.c:3004 +#, c-format +msgid "This would cause the generated column to depend on its own value." +msgstr "" +"Это сделало бы генерируемый столбец зависимым от собственного значения." + +#: catalog/heap.c:3057 #, c-format msgid "generation expression is not immutable" msgstr "генерирующее выражение не является постоянным" -#: catalog/heap.c:3066 rewrite/rewriteHandler.c:1193 +#: catalog/heap.c:3085 rewrite/rewriteHandler.c:1216 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "столбец \"%s\" имеет тип %s, но тип выражения по умолчанию %s" -#: catalog/heap.c:3071 commands/prepare.c:367 parser/parse_node.c:412 -#: parser/parse_target.c:589 parser/parse_target.c:869 -#: parser/parse_target.c:879 rewrite/rewriteHandler.c:1198 +#: catalog/heap.c:3090 commands/prepare.c:371 parser/parse_node.c:412 +#: parser/parse_target.c:588 parser/parse_target.c:868 +#: parser/parse_target.c:878 rewrite/rewriteHandler.c:1221 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Перепишите выражение или преобразуйте его тип." -#: catalog/heap.c:3118 +#: catalog/heap.c:3137 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "в ограничении-проверке можно ссылаться только на таблицу \"%s\"" -#: catalog/heap.c:3416 +#: catalog/heap.c:3435 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "неподдерживаемое сочетание внешнего ключа с ON COMMIT" -#: catalog/heap.c:3417 +#: catalog/heap.c:3436 #, c-format msgid "" "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT " @@ -4759,91 +4785,91 @@ msgstr "" "Таблица \"%s\" ссылается на \"%s\", и для них задан разный режим ON COMMIT." -#: catalog/heap.c:3422 +#: catalog/heap.c:3441 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "опустошить таблицу, на которую ссылается внешний ключ, нельзя" -#: catalog/heap.c:3423 +#: catalog/heap.c:3442 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Таблица \"%s\" ссылается на \"%s\"." -#: catalog/heap.c:3425 +#: catalog/heap.c:3444 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "" "Опустошите таблицу \"%s\" параллельно или используйте TRUNCATE ... CASCADE." -#: catalog/index.c:219 parser/parse_utilcmd.c:2121 +#: catalog/index.c:220 parser/parse_utilcmd.c:2131 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "таблица \"%s\" не может иметь несколько первичных ключей" -#: catalog/index.c:237 +#: catalog/index.c:238 #, c-format msgid "primary keys cannot be expressions" msgstr "первичные ключи не могут быть выражениями" -#: catalog/index.c:254 +#: catalog/index.c:255 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "столбец первичного ключа \"%s\" не помечен как NOT NULL" -#: catalog/index.c:764 catalog/index.c:1846 +#: catalog/index.c:765 catalog/index.c:1912 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "" "пользовательские индексы в таблицах системного каталога не поддерживаются" -#: catalog/index.c:804 +#: catalog/index.c:805 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "" "недетерминированные правила сортировки не поддерживаются для класса " "операторов \"%s\"" -#: catalog/index.c:819 +#: catalog/index.c:820 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "" "параллельное создание индекса в таблицах системного каталога не " "поддерживается" -#: catalog/index.c:828 catalog/index.c:1281 +#: catalog/index.c:829 catalog/index.c:1282 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "" "параллельное создание индекса для ограничений-исключений не поддерживается" -#: catalog/index.c:837 +#: catalog/index.c:838 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "нельзя создать разделяемые индексы после initdb" -#: catalog/index.c:857 commands/createas.c:252 commands/sequence.c:154 +#: catalog/index.c:858 commands/createas.c:252 commands/sequence.c:154 #: parser/parse_utilcmd.c:211 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "отношение \"%s\" уже существует, пропускается" -#: catalog/index.c:907 +#: catalog/index.c:908 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "" "значение OID индекса в pg_class не задано в режиме двоичного обновления" -#: catalog/index.c:2131 +#: catalog/index.c:2208 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY должен быть первым действием в транзакции" -#: catalog/index.c:2862 +#: catalog/index.c:2939 #, c-format msgid "building index \"%s\" on table \"%s\" serially" msgstr "создание индекса \"%s\" для таблицы \"%s\" в непараллельном режиме" -#: catalog/index.c:2867 +#: catalog/index.c:2944 #, c-format msgid "" "building index \"%s\" on table \"%s\" with request for %d parallel worker" @@ -4859,198 +4885,198 @@ "создание индекса \"%s\" для таблицы \"%s\" с расчётом на %d параллельных " "исполнителей" -#: catalog/index.c:3495 +#: catalog/index.c:3561 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "переиндексировать временные таблицы других сеансов нельзя" -#: catalog/index.c:3506 commands/indexcmds.c:3005 +#: catalog/index.c:3572 commands/indexcmds.c:3005 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "перестроить нерабочий индекс в таблице TOAST нельзя" -#: catalog/index.c:3628 +#: catalog/index.c:3694 #, c-format msgid "index \"%s\" was reindexed" msgstr "индекс \"%s\" был перестроен" -#: catalog/index.c:3704 commands/indexcmds.c:3026 +#: catalog/index.c:3770 commands/indexcmds.c:3026 #, c-format msgid "REINDEX of partitioned tables is not yet implemented, skipping \"%s\"" msgstr "" "REINDEX для секционированных таблицы ещё не реализован, \"%s\" пропускается" -#: catalog/index.c:3759 +#: catalog/index.c:3825 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "" "перестроить нерабочий индекс \"%s.%s\" в таблице TOAST нельзя, он " "пропускается" -#: catalog/namespace.c:257 catalog/namespace.c:461 catalog/namespace.c:553 -#: commands/trigger.c:5027 +#: catalog/namespace.c:258 catalog/namespace.c:462 catalog/namespace.c:554 +#: commands/trigger.c:5072 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "ссылки между базами не реализованы: \"%s.%s.%s\"" -#: catalog/namespace.c:314 +#: catalog/namespace.c:315 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "для временных таблиц имя схемы не указывается" -#: catalog/namespace.c:395 +#: catalog/namespace.c:396 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "не удалось получить блокировку таблицы \"%s.%s\"" -#: catalog/namespace.c:400 commands/lockcmds.c:143 commands/lockcmds.c:228 +#: catalog/namespace.c:401 commands/lockcmds.c:143 commands/lockcmds.c:228 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "не удалось получить блокировку таблицы \"%s\"" -#: catalog/namespace.c:428 parser/parse_relation.c:1357 +#: catalog/namespace.c:429 parser/parse_relation.c:1354 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "отношение \"%s.%s\" не существует" -#: catalog/namespace.c:433 parser/parse_relation.c:1370 -#: parser/parse_relation.c:1378 +#: catalog/namespace.c:434 parser/parse_relation.c:1367 +#: parser/parse_relation.c:1375 #, c-format msgid "relation \"%s\" does not exist" msgstr "отношение \"%s\" не существует" -#: catalog/namespace.c:499 catalog/namespace.c:3030 commands/extension.c:1519 +#: catalog/namespace.c:500 catalog/namespace.c:3031 commands/extension.c:1519 #: commands/extension.c:1525 #, c-format msgid "no schema has been selected to create in" msgstr "схема для создания объектов не выбрана" -#: catalog/namespace.c:651 catalog/namespace.c:664 +#: catalog/namespace.c:652 catalog/namespace.c:665 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "во временных схемах других сеансов нельзя создавать отношения" -#: catalog/namespace.c:655 +#: catalog/namespace.c:656 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "создавать временные отношения можно только во временных схемах" -#: catalog/namespace.c:670 +#: catalog/namespace.c:671 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "во временных схемах можно создавать только временные отношения" -#: catalog/namespace.c:2222 +#: catalog/namespace.c:2223 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "объект статистики \"%s\" не существует" -#: catalog/namespace.c:2345 +#: catalog/namespace.c:2346 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "анализатор текстового поиска \"%s\" не существует" -#: catalog/namespace.c:2471 +#: catalog/namespace.c:2472 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "словарь текстового поиска \"%s\" не существует" -#: catalog/namespace.c:2598 +#: catalog/namespace.c:2599 #, c-format msgid "text search template \"%s\" does not exist" msgstr "шаблон текстового поиска \"%s\" не существует" -#: catalog/namespace.c:2724 commands/tsearchcmds.c:1194 +#: catalog/namespace.c:2725 commands/tsearchcmds.c:1194 #: utils/cache/ts_cache.c:617 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "конфигурация текстового поиска \"%s\" не существует" -#: catalog/namespace.c:2837 parser/parse_expr.c:872 parser/parse_target.c:1228 +#: catalog/namespace.c:2838 parser/parse_expr.c:872 parser/parse_target.c:1227 #, c-format msgid "cross-database references are not implemented: %s" msgstr "ссылки между базами не реализованы: %s" -#: catalog/namespace.c:2843 parser/parse_expr.c:879 parser/parse_target.c:1235 -#: gram.y:14982 gram.y:16436 +#: catalog/namespace.c:2844 parser/parse_expr.c:879 parser/parse_target.c:1234 +#: gram.y:14982 gram.y:16451 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неверное полное имя (слишком много компонентов): %s" -#: catalog/namespace.c:2973 +#: catalog/namespace.c:2974 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "перемещать объекты в/из внутренних схем нельзя" -#: catalog/namespace.c:2979 +#: catalog/namespace.c:2980 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "перемещать объекты в/из схем TOAST нельзя" -#: catalog/namespace.c:3052 commands/schemacmds.c:256 commands/schemacmds.c:336 -#: commands/tablecmds.c:1194 +#: catalog/namespace.c:3053 commands/schemacmds.c:256 commands/schemacmds.c:336 +#: commands/tablecmds.c:1203 #, c-format msgid "schema \"%s\" does not exist" msgstr "схема \"%s\" не существует" -#: catalog/namespace.c:3083 +#: catalog/namespace.c:3084 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неверное имя отношения (слишком много компонентов): %s" -#: catalog/namespace.c:3646 +#: catalog/namespace.c:3647 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "правило сортировки \"%s\" для кодировки \"%s\" не существует" -#: catalog/namespace.c:3701 +#: catalog/namespace.c:3702 #, c-format msgid "conversion \"%s\" does not exist" msgstr "преобразование \"%s\" не существует" -#: catalog/namespace.c:3965 +#: catalog/namespace.c:3966 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "нет прав для создания временных таблиц в базе \"%s\"" -#: catalog/namespace.c:3981 +#: catalog/namespace.c:3982 #, c-format msgid "cannot create temporary tables during recovery" msgstr "создавать временные таблицы в процессе восстановления нельзя" -#: catalog/namespace.c:3987 +#: catalog/namespace.c:3988 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "создавать временные таблицы во время параллельных операций нельзя" -#: catalog/namespace.c:4286 commands/tablespace.c:1217 commands/variable.c:64 -#: utils/misc/guc.c:11144 utils/misc/guc.c:11222 +#: catalog/namespace.c:4289 commands/tablespace.c:1213 commands/variable.c:64 +#: utils/misc/guc.c:11167 utils/misc/guc.c:11245 #, c-format msgid "List syntax is invalid." msgstr "Ошибка синтаксиса в списке." -#: catalog/objectaddress.c:1275 catalog/pg_publication.c:57 -#: commands/policy.c:95 commands/policy.c:375 commands/policy.c:465 -#: commands/tablecmds.c:230 commands/tablecmds.c:272 commands/tablecmds.c:1989 -#: commands/tablecmds.c:5628 commands/tablecmds.c:11107 +#: catalog/objectaddress.c:1275 catalog/pg_publication.c:58 +#: commands/policy.c:96 commands/policy.c:376 commands/tablecmds.c:230 +#: commands/tablecmds.c:272 commands/tablecmds.c:2017 commands/tablecmds.c:5725 +#: commands/tablecmds.c:11342 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" - это не таблица" #: catalog/objectaddress.c:1282 commands/tablecmds.c:242 -#: commands/tablecmds.c:5658 commands/tablecmds.c:15733 commands/view.c:119 +#: commands/tablecmds.c:5764 commands/tablecmds.c:16034 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" - это не представление" #: catalog/objectaddress.c:1289 commands/matview.c:175 commands/tablecmds.c:248 -#: commands/tablecmds.c:15738 +#: commands/tablecmds.c:16039 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" - это не материализованное представление" #: catalog/objectaddress.c:1296 commands/tablecmds.c:266 -#: commands/tablecmds.c:5661 commands/tablecmds.c:15743 +#: commands/tablecmds.c:5767 commands/tablecmds.c:16044 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" - это не сторонняя таблица" @@ -5071,8 +5097,8 @@ msgstr "" "значение по умолчанию для столбца \"%s\" отношения \"%s\" не существует" -#: catalog/objectaddress.c:1550 commands/functioncmds.c:133 -#: commands/tablecmds.c:258 commands/typecmds.c:263 commands/typecmds.c:3275 +#: catalog/objectaddress.c:1550 commands/functioncmds.c:135 +#: commands/tablecmds.c:258 commands/typecmds.c:263 commands/typecmds.c:3283 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:845 #: utils/adt/acl.c:4435 #, c-format @@ -5162,12 +5188,12 @@ msgid "argument list length must be exactly %d" msgstr "длина списка аргументов должна быть равна %d" -#: catalog/objectaddress.c:2393 libpq/be-fsstubs.c:321 +#: catalog/objectaddress.c:2393 libpq/be-fsstubs.c:318 #, c-format msgid "must be owner of large object %u" msgstr "нужно быть владельцем большого объекта %u" -#: catalog/objectaddress.c:2408 commands/functioncmds.c:1445 +#: catalog/objectaddress.c:2408 commands/functioncmds.c:1448 #, c-format msgid "must be owner of type %s or type %s" msgstr "это разрешено только владельцу типа %s или %s" @@ -5182,80 +5208,80 @@ msgid "must have CREATEROLE privilege" msgstr "требуется право CREATEROLE" -#: catalog/objectaddress.c:2544 +#: catalog/objectaddress.c:2545 #, c-format msgid "unrecognized object type \"%s\"" msgstr "нераспознанный тип объекта \"%s\"" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2772 +#: catalog/objectaddress.c:2773 #, c-format msgid "column %s of %s" msgstr "столбец %s отношения %s" -#: catalog/objectaddress.c:2782 +#: catalog/objectaddress.c:2783 #, c-format msgid "function %s" msgstr "функция %s" -#: catalog/objectaddress.c:2787 +#: catalog/objectaddress.c:2788 #, c-format msgid "type %s" msgstr "тип %s" -#: catalog/objectaddress.c:2817 +#: catalog/objectaddress.c:2818 #, c-format msgid "cast from %s to %s" msgstr "приведение %s к %s" -#: catalog/objectaddress.c:2845 +#: catalog/objectaddress.c:2846 #, c-format msgid "collation %s" msgstr "правило сортировки %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2871 +#: catalog/objectaddress.c:2872 #, c-format msgid "constraint %s on %s" msgstr "ограничение %s в отношении %s" -#: catalog/objectaddress.c:2877 +#: catalog/objectaddress.c:2878 #, c-format msgid "constraint %s" msgstr "ограничение %s" -#: catalog/objectaddress.c:2904 +#: catalog/objectaddress.c:2905 #, c-format msgid "conversion %s" msgstr "преобразование %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:2943 +#: catalog/objectaddress.c:2944 #, c-format msgid "default value for %s" msgstr "значение по умолчанию для %s" -#: catalog/objectaddress.c:2952 +#: catalog/objectaddress.c:2953 #, c-format msgid "language %s" msgstr "язык %s" -#: catalog/objectaddress.c:2957 +#: catalog/objectaddress.c:2958 #, c-format msgid "large object %u" msgstr "большой объект %u" -#: catalog/objectaddress.c:2962 +#: catalog/objectaddress.c:2963 #, c-format msgid "operator %s" msgstr "оператор %s" -#: catalog/objectaddress.c:2994 +#: catalog/objectaddress.c:2995 #, c-format msgid "operator class %s for access method %s" msgstr "класс операторов %s для метода доступа %s" -#: catalog/objectaddress.c:3017 +#: catalog/objectaddress.c:3018 #, c-format msgid "access method %s" msgstr "метод доступа %s" @@ -5264,7 +5290,7 @@ #. first two %s's are data type names, the third %s is the #. description of the operator family, and the last %s is the #. textual form of the operator with arguments. -#: catalog/objectaddress.c:3059 +#: catalog/objectaddress.c:3060 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "оператор %d (%s, %s) из семейства \"%s\": %s" @@ -5273,226 +5299,226 @@ #. are data type names, the third %s is the description of the #. operator family, and the last %s is the textual form of the #. function with arguments. -#: catalog/objectaddress.c:3109 +#: catalog/objectaddress.c:3110 #, c-format msgid "function %d (%s, %s) of %s: %s" msgstr "функция %d (%s, %s) из семейства \"%s\": %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3153 +#: catalog/objectaddress.c:3154 #, c-format msgid "rule %s on %s" msgstr "правило %s для отношения %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3191 +#: catalog/objectaddress.c:3192 #, c-format msgid "trigger %s on %s" msgstr "триггер %s в отношении %s" -#: catalog/objectaddress.c:3207 +#: catalog/objectaddress.c:3208 #, c-format msgid "schema %s" msgstr "схема %s" -#: catalog/objectaddress.c:3230 +#: catalog/objectaddress.c:3231 #, c-format msgid "statistics object %s" msgstr "объект статистики %s" -#: catalog/objectaddress.c:3257 +#: catalog/objectaddress.c:3258 #, c-format msgid "text search parser %s" msgstr "анализатор текстового поиска %s" -#: catalog/objectaddress.c:3283 +#: catalog/objectaddress.c:3284 #, c-format msgid "text search dictionary %s" msgstr "словарь текстового поиска %s" -#: catalog/objectaddress.c:3309 +#: catalog/objectaddress.c:3310 #, c-format msgid "text search template %s" msgstr "шаблон текстового поиска %s" -#: catalog/objectaddress.c:3335 +#: catalog/objectaddress.c:3336 #, c-format msgid "text search configuration %s" msgstr "конфигурация текстового поиска %s" -#: catalog/objectaddress.c:3344 +#: catalog/objectaddress.c:3345 #, c-format msgid "role %s" msgstr "роль %s" -#: catalog/objectaddress.c:3357 +#: catalog/objectaddress.c:3358 #, c-format msgid "database %s" msgstr "база данных %s" -#: catalog/objectaddress.c:3369 +#: catalog/objectaddress.c:3370 #, c-format msgid "tablespace %s" msgstr "табличное пространство %s" -#: catalog/objectaddress.c:3378 +#: catalog/objectaddress.c:3379 #, c-format msgid "foreign-data wrapper %s" msgstr "обёртка сторонних данных %s" -#: catalog/objectaddress.c:3387 +#: catalog/objectaddress.c:3388 #, c-format msgid "server %s" msgstr "сервер %s" -#: catalog/objectaddress.c:3415 +#: catalog/objectaddress.c:3416 #, c-format msgid "user mapping for %s on server %s" msgstr "сопоставление для пользователя %s на сервере %s" -#: catalog/objectaddress.c:3460 +#: catalog/objectaddress.c:3461 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "" "права по умолчанию для новых отношений, принадлежащих роли %s в схеме %s" -#: catalog/objectaddress.c:3464 +#: catalog/objectaddress.c:3465 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "права по умолчанию для новых отношений, принадлежащих роли %s" -#: catalog/objectaddress.c:3470 +#: catalog/objectaddress.c:3471 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "" "права по умолчанию для новых последовательностей, принадлежащих роли %s в " "схеме %s" -#: catalog/objectaddress.c:3474 +#: catalog/objectaddress.c:3475 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "" "права по умолчанию для новых последовательностей, принадлежащих роли %s" -#: catalog/objectaddress.c:3480 +#: catalog/objectaddress.c:3481 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "права по умолчанию для новых функций, принадлежащих роли %s в схеме %s" -#: catalog/objectaddress.c:3484 +#: catalog/objectaddress.c:3485 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "права по умолчанию для новых функций, принадлежащих роли %s" -#: catalog/objectaddress.c:3490 +#: catalog/objectaddress.c:3491 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "права по умолчанию для новых типов, принадлежащих роли %s в схеме %s" -#: catalog/objectaddress.c:3494 +#: catalog/objectaddress.c:3495 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "права по умолчанию для новых типов, принадлежащих роли %s" -#: catalog/objectaddress.c:3500 +#: catalog/objectaddress.c:3501 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "права по умолчанию для новых схем, принадлежащих роли %s" -#: catalog/objectaddress.c:3507 +#: catalog/objectaddress.c:3508 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "" "права по умолчанию для новых объектов, принадлежащих роли %s в схеме %s" -#: catalog/objectaddress.c:3511 +#: catalog/objectaddress.c:3512 #, c-format msgid "default privileges belonging to role %s" msgstr "права по умолчанию для новых объектов, принадлежащих роли %s" -#: catalog/objectaddress.c:3529 +#: catalog/objectaddress.c:3530 #, c-format msgid "extension %s" msgstr "расширение %s" -#: catalog/objectaddress.c:3542 +#: catalog/objectaddress.c:3543 #, c-format msgid "event trigger %s" msgstr "событийный триггер %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3578 +#: catalog/objectaddress.c:3579 #, c-format msgid "policy %s on %s" msgstr "политика %s отношения %s" -#: catalog/objectaddress.c:3588 +#: catalog/objectaddress.c:3589 #, c-format msgid "publication %s" msgstr "публикация %s" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:3614 +#: catalog/objectaddress.c:3615 #, c-format msgid "publication of %s in publication %s" msgstr "публикуемое отношение %s в публикации %s" -#: catalog/objectaddress.c:3623 +#: catalog/objectaddress.c:3624 #, c-format msgid "subscription %s" msgstr "подписка %s" -#: catalog/objectaddress.c:3642 +#: catalog/objectaddress.c:3643 #, c-format msgid "transform for %s language %s" msgstr "преобразование для %s, языка %s" -#: catalog/objectaddress.c:3705 +#: catalog/objectaddress.c:3706 #, c-format msgid "table %s" msgstr "таблица %s" -#: catalog/objectaddress.c:3710 +#: catalog/objectaddress.c:3711 #, c-format msgid "index %s" msgstr "индекс %s" -#: catalog/objectaddress.c:3714 +#: catalog/objectaddress.c:3715 #, c-format msgid "sequence %s" msgstr "последовательность %s" -#: catalog/objectaddress.c:3718 +#: catalog/objectaddress.c:3719 #, c-format msgid "toast table %s" msgstr "TOAST-таблица %s" -#: catalog/objectaddress.c:3722 +#: catalog/objectaddress.c:3723 #, c-format msgid "view %s" msgstr "представление %s" -#: catalog/objectaddress.c:3726 +#: catalog/objectaddress.c:3727 #, c-format msgid "materialized view %s" msgstr "материализованное представление %s" -#: catalog/objectaddress.c:3730 +#: catalog/objectaddress.c:3731 #, c-format msgid "composite type %s" msgstr "составной тип %s" -#: catalog/objectaddress.c:3734 +#: catalog/objectaddress.c:3735 #, c-format msgid "foreign table %s" msgstr "сторонняя таблица %s" -#: catalog/objectaddress.c:3739 +#: catalog/objectaddress.c:3740 #, c-format msgid "relation %s" msgstr "отношение %s" -#: catalog/objectaddress.c:3776 +#: catalog/objectaddress.c:3777 #, c-format msgid "operator family %s for access method %s" msgstr "семейство операторов %s для метода доступа %s" @@ -5564,7 +5590,7 @@ msgid "return type of combine function %s is not %s" msgstr "комбинирующая функция %s должна возвращать тип %s" -#: catalog/pg_aggregate.c:438 executor/nodeAgg.c:4197 +#: catalog/pg_aggregate.c:438 executor/nodeAgg.c:4194 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "" @@ -5632,10 +5658,10 @@ msgid "cannot change number of direct arguments of an aggregate function" msgstr "изменить число непосредственных аргументов агрегатной функции нельзя" -#: catalog/pg_aggregate.c:870 commands/functioncmds.c:667 -#: commands/typecmds.c:1658 commands/typecmds.c:1704 commands/typecmds.c:1756 -#: commands/typecmds.c:1793 commands/typecmds.c:1827 commands/typecmds.c:1861 -#: commands/typecmds.c:1895 commands/typecmds.c:1972 commands/typecmds.c:2014 +#: catalog/pg_aggregate.c:870 commands/functioncmds.c:669 +#: commands/typecmds.c:1660 commands/typecmds.c:1706 commands/typecmds.c:1758 +#: commands/typecmds.c:1795 commands/typecmds.c:1829 commands/typecmds.c:1863 +#: commands/typecmds.c:1897 commands/typecmds.c:1974 commands/typecmds.c:2016 #: parser/parse_func.c:414 parser/parse_func.c:443 parser/parse_func.c:468 #: parser/parse_func.c:482 parser/parse_func.c:602 parser/parse_func.c:622 #: parser/parse_func.c:2129 parser/parse_func.c:2320 @@ -5711,12 +5737,12 @@ msgid "default conversion for %s to %s already exists" msgstr "преобразование по умолчанию из %s в %s уже существует" -#: catalog/pg_depend.c:162 commands/extension.c:3324 +#: catalog/pg_depend.c:169 commands/extension.c:3332 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "%s уже относится к расширению \"%s\"" -#: catalog/pg_depend.c:538 +#: catalog/pg_depend.c:545 #, c-format msgid "cannot remove dependency on %s because it is a system object" msgstr "" @@ -5926,43 +5952,43 @@ msgid "SQL function \"%s\"" msgstr "SQL-функция \"%s\"" -#: catalog/pg_publication.c:59 +#: catalog/pg_publication.c:60 #, c-format msgid "Only tables can be added to publications." msgstr "В публикации можно добавлять только таблицы." -#: catalog/pg_publication.c:65 +#: catalog/pg_publication.c:66 #, c-format msgid "\"%s\" is a system table" msgstr "\"%s\" - это системная таблица" -#: catalog/pg_publication.c:67 +#: catalog/pg_publication.c:68 #, c-format msgid "System tables cannot be added to publications." msgstr "Системные таблицы нельзя добавлять в публикации." -#: catalog/pg_publication.c:73 +#: catalog/pg_publication.c:74 #, c-format msgid "table \"%s\" cannot be replicated" msgstr "реплицировать таблицу \"%s\" нельзя" -#: catalog/pg_publication.c:75 +#: catalog/pg_publication.c:76 #, c-format msgid "Temporary and unlogged relations cannot be replicated." msgstr "Временные и нежурналируемые отношения не поддерживают репликацию." -#: catalog/pg_publication.c:174 +#: catalog/pg_publication.c:251 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "отношение \"%s\" уже включено в публикацию \"%s\"" -#: catalog/pg_publication.c:470 commands/publicationcmds.c:451 -#: commands/publicationcmds.c:762 +#: catalog/pg_publication.c:533 commands/publicationcmds.c:458 +#: commands/publicationcmds.c:787 #, c-format msgid "publication \"%s\" does not exist" msgstr "публикация \"%s\" не существует" -#: catalog/pg_shdepend.c:832 +#: catalog/pg_shdepend.c:833 #, c-format msgid "" "\n" @@ -5980,43 +6006,43 @@ "\n" "и объекты в %d других базах данных (см. список в протоколе сервера)" -#: catalog/pg_shdepend.c:1138 +#: catalog/pg_shdepend.c:1139 #, c-format msgid "role %u was concurrently dropped" msgstr "роль %u удалена другим процессом" -#: catalog/pg_shdepend.c:1150 +#: catalog/pg_shdepend.c:1151 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "табличное пространство %u удалено другим процессом" -#: catalog/pg_shdepend.c:1164 +#: catalog/pg_shdepend.c:1165 #, c-format msgid "database %u was concurrently dropped" msgstr "база данных %u удалена другим процессом" -#: catalog/pg_shdepend.c:1209 +#: catalog/pg_shdepend.c:1216 #, c-format msgid "owner of %s" msgstr "владелец объекта %s" -#: catalog/pg_shdepend.c:1211 +#: catalog/pg_shdepend.c:1218 #, c-format msgid "privileges for %s" msgstr "права доступа к объекту %s" -#: catalog/pg_shdepend.c:1213 +#: catalog/pg_shdepend.c:1220 #, c-format msgid "target of %s" msgstr "субъект политики %s" -#: catalog/pg_shdepend.c:1215 +#: catalog/pg_shdepend.c:1222 #, c-format msgid "tablespace for %s" msgstr "табличное пространство для %s" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1223 +#: catalog/pg_shdepend.c:1230 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" @@ -6024,7 +6050,7 @@ msgstr[1] "%d объекта (%s)" msgstr[2] "%d объектов (%s)" -#: catalog/pg_shdepend.c:1334 +#: catalog/pg_shdepend.c:1341 #, c-format msgid "" "cannot drop objects owned by %s because they are required by the database " @@ -6033,7 +6059,7 @@ "удалить объекты, принадлежащие роли %s, нельзя, так как они нужны системе " "баз данных" -#: catalog/pg_shdepend.c:1481 +#: catalog/pg_shdepend.c:1488 #, c-format msgid "" "cannot reassign ownership of objects owned by %s because they are required " @@ -6042,57 +6068,57 @@ "изменить владельца объектов, принадлежащих роли %s, нельзя, так как они " "нужны системе баз данных" -#: catalog/pg_subscription.c:171 commands/subscriptioncmds.c:644 -#: commands/subscriptioncmds.c:858 commands/subscriptioncmds.c:1080 +#: catalog/pg_subscription.c:171 commands/subscriptioncmds.c:648 +#: commands/subscriptioncmds.c:862 commands/subscriptioncmds.c:1084 #, c-format msgid "subscription \"%s\" does not exist" msgstr "подписка \"%s\" не существует" -#: catalog/pg_type.c:131 catalog/pg_type.c:468 +#: catalog/pg_type.c:131 catalog/pg_type.c:469 #, c-format msgid "pg_type OID value not set when in binary upgrade mode" msgstr "значение OID в pg_type не задано в режиме двоичного обновления" -#: catalog/pg_type.c:249 +#: catalog/pg_type.c:250 #, c-format msgid "invalid type internal size %d" msgstr "неверный внутренний размер типа: %d" -#: catalog/pg_type.c:265 catalog/pg_type.c:273 catalog/pg_type.c:281 -#: catalog/pg_type.c:290 +#: catalog/pg_type.c:266 catalog/pg_type.c:274 catalog/pg_type.c:282 +#: catalog/pg_type.c:291 #, c-format msgid "alignment \"%c\" is invalid for passed-by-value type of size %d" msgstr "" "выравнивание \"%c\" не подходит для типа, передаваемого по значению (с " "размером: %d)" -#: catalog/pg_type.c:297 +#: catalog/pg_type.c:298 #, c-format msgid "internal size %d is invalid for passed-by-value type" msgstr "внутренний размер %d не подходит для типа, передаваемого по значению" -#: catalog/pg_type.c:307 catalog/pg_type.c:313 +#: catalog/pg_type.c:308 catalog/pg_type.c:314 #, c-format msgid "alignment \"%c\" is invalid for variable-length type" msgstr "выравнивание \"%c\" не подходит для типа переменной длины" -#: catalog/pg_type.c:321 commands/typecmds.c:3727 +#: catalog/pg_type.c:322 commands/typecmds.c:3735 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "для типов постоянного размера применим только режим хранения PLAIN" -#: catalog/pg_type.c:839 +#: catalog/pg_type.c:847 #, c-format msgid "could not form array type name for type \"%s\"" msgstr "не удалось сформировать имя типа массива для типа \"%s\"" -#: catalog/storage.c:450 storage/buffer/bufmgr.c:935 +#: catalog/storage.c:477 storage/buffer/bufmgr.c:944 #, c-format msgid "invalid page in block %u of relation %s" msgstr "неверная страница в блоке %u отношения %s" -#: catalog/toasting.c:106 commands/indexcmds.c:639 commands/tablecmds.c:5640 -#: commands/tablecmds.c:15598 +#: catalog/toasting.c:112 commands/indexcmds.c:639 commands/tablecmds.c:5737 +#: commands/tablecmds.c:15899 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" - это не таблица и не материализованное представление" @@ -6182,7 +6208,7 @@ "must specify both or neither of serialization and deserialization functions" msgstr "функции сериализации и десериализации должны задаваться совместно" -#: commands/aggregatecmds.c:436 commands/functioncmds.c:615 +#: commands/aggregatecmds.c:436 commands/functioncmds.c:617 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "" @@ -6215,12 +6241,12 @@ msgid "language \"%s\" already exists" msgstr "язык \"%s\" уже существует" -#: commands/alter.c:96 commands/publicationcmds.c:183 +#: commands/alter.c:96 commands/publicationcmds.c:180 #, c-format msgid "publication \"%s\" already exists" msgstr "публикация \"%s\" уже существует" -#: commands/alter.c:99 commands/subscriptioncmds.c:371 +#: commands/alter.c:99 commands/subscriptioncmds.c:374 #, c-format msgid "subscription \"%s\" already exists" msgstr "подписка \"%s\" уже существует" @@ -6297,7 +6323,7 @@ msgstr "не указана функция-обработчик" #: commands/amcmds.c:291 commands/event_trigger.c:183 -#: commands/foreigncmds.c:489 commands/proclang.c:79 commands/trigger.c:687 +#: commands/foreigncmds.c:489 commands/proclang.c:79 commands/trigger.c:695 #: parser/parse_clause.c:941 #, c-format msgid "function %s must return type %s" @@ -6330,12 +6356,12 @@ msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "столбец \"%s\" отношения \"%s\" указан неоднократно" -#: commands/analyze.c:700 +#: commands/analyze.c:726 #, c-format msgid "automatic analyze of table \"%s.%s.%s\" system usage: %s" msgstr "автоматический анализ таблицы \"%s.%s.%s\"; нагрузка системы: %s" -#: commands/analyze.c:1169 +#: commands/analyze.c:1184 #, c-format msgid "" "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead " @@ -6345,7 +6371,7 @@ "%.0f, \"мёртвых\" строк: %.0f; строк в выборке: %d, примерное общее число " "строк: %.0f" -#: commands/analyze.c:1249 +#: commands/analyze.c:1264 #, c-format msgid "" "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree " @@ -6354,7 +6380,7 @@ "пропускается анализ дерева наследования \"%s.%s\" --- это дерево " "наследования не содержит дочерних таблиц" -#: commands/analyze.c:1347 +#: commands/analyze.c:1362 #, c-format msgid "" "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree " @@ -6363,22 +6389,22 @@ "пропускается анализ дерева наследования \"%s.%s\" --- это дерево " "наследования не содержит анализируемых дочерних таблиц" -#: commands/async.c:643 +#: commands/async.c:650 #, c-format msgid "channel name cannot be empty" msgstr "имя канала не может быть пустым" -#: commands/async.c:649 +#: commands/async.c:656 #, c-format msgid "channel name too long" msgstr "слишком длинное имя канала" -#: commands/async.c:654 +#: commands/async.c:661 #, c-format msgid "payload string too long" msgstr "слишком длинная строка сообщения-нагрузки" -#: commands/async.c:873 +#: commands/async.c:880 #, c-format msgid "" "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" @@ -6386,17 +6412,17 @@ "выполнить PREPARE для транзакции с командами LISTEN, UNLISTEN или NOTIFY " "нельзя" -#: commands/async.c:979 +#: commands/async.c:984 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "слишком много уведомлений в очереди NOTIFY" -#: commands/async.c:1650 +#: commands/async.c:1620 #, c-format msgid "NOTIFY queue is %.0f%% full" msgstr "очередь NOTIFY заполнена на %.0f%%" -#: commands/async.c:1652 +#: commands/async.c:1622 #, c-format msgid "" "The server process with PID %d is among those with the oldest transactions." @@ -6404,7 +6430,7 @@ "В число серверных процессов с самыми старыми транзакциями входит процесс с " "PID %d." -#: commands/async.c:1655 +#: commands/async.c:1625 #, c-format msgid "" "The NOTIFY queue cannot be emptied until that process ends its current " @@ -6428,7 +6454,7 @@ msgid "there is no previously clustered index for table \"%s\"" msgstr "таблица \"%s\" ранее не кластеризовалась по какому-либо индексу" -#: commands/cluster.c:165 commands/tablecmds.c:12871 commands/tablecmds.c:14681 +#: commands/cluster.c:165 commands/tablecmds.c:13106 commands/tablecmds.c:14982 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "индекс \"%s\" для таблицы \"%s\" не существует" @@ -6443,7 +6469,7 @@ msgid "cannot vacuum temporary tables of other sessions" msgstr "очищать временные таблицы других сеансов нельзя" -#: commands/cluster.c:432 commands/tablecmds.c:14691 +#: commands/cluster.c:432 commands/tablecmds.c:14992 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" не является индексом таблицы \"%s\"" @@ -6512,7 +6538,7 @@ #: commands/collationcmds.c:181 #, c-format msgid "unrecognized collation provider: %s" -msgstr "нераспознанный поставщик правил сортировки: %s" +msgstr "нераспознанный провайдер правил сортировки: %s" #: commands/collationcmds.c:190 #, c-format @@ -6528,47 +6554,52 @@ #, c-format msgid "nondeterministic collations not supported with this provider" msgstr "" -"недетерминированные правила сортировки с этим провайдером не поддерживаются" +"недетерминированные правила сортировки не поддерживаются данным провайдером" + +#: commands/collationcmds.c:226 +#, c-format +msgid "current database's encoding is not supported with this provider" +msgstr "кодировка текущей БД не поддерживается данным провайдером" -#: commands/collationcmds.c:265 +#: commands/collationcmds.c:284 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "" "правило сортировки \"%s\" для кодировки \"%s\" уже существует в схеме \"%s\"" -#: commands/collationcmds.c:276 +#: commands/collationcmds.c:295 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "правило сортировки \"%s\" уже существует в схеме \"%s\"" -#: commands/collationcmds.c:324 +#: commands/collationcmds.c:343 #, c-format msgid "changing version from %s to %s" msgstr "изменение версии с %s на %s" -#: commands/collationcmds.c:339 +#: commands/collationcmds.c:358 #, c-format msgid "version has not changed" msgstr "версия не была изменена" -#: commands/collationcmds.c:470 +#: commands/collationcmds.c:489 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "не удалось получить из названия локали \"%s\" метку языка: %s" -#: commands/collationcmds.c:531 +#: commands/collationcmds.c:547 #, c-format msgid "must be superuser to import system collations" msgstr "" "импортировать системные правила сортировки может только суперпользователь" -#: commands/collationcmds.c:554 commands/copy.c:1894 commands/copy.c:3480 +#: commands/collationcmds.c:575 commands/copy.c:1894 commands/copy.c:3481 #: libpq/be-secure-common.c:81 #, c-format msgid "could not execute command \"%s\": %m" msgstr "не удалось выполнить команду \"%s\": %m" -#: commands/collationcmds.c:685 +#: commands/collationcmds.c:706 #, c-format msgid "no usable system locales were found" msgstr "пригодные системные локали не найдены" @@ -6582,7 +6613,7 @@ msgid "database \"%s\" does not exist" msgstr "база данных \"%s\" не существует" -#: commands/comment.c:101 commands/seclabel.c:117 parser/parse_utilcmd.c:973 +#: commands/comment.c:101 commands/seclabel.c:117 parser/parse_utilcmd.c:983 #, c-format msgid "" "\"%s\" is not a table, view, materialized view, composite type, or foreign " @@ -6954,7 +6985,7 @@ "Возможно, на самом деле вам нужно клиентское средство, например, \\copy в " "psql." -#: commands/copy.c:1944 commands/copy.c:3511 +#: commands/copy.c:1944 commands/copy.c:3512 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\" - это каталог" @@ -7030,7 +7061,7 @@ "выполнить COPY FREEZE нельзя, так как таблица не была создана или усечена в " "текущей подтранзакции" -#: commands/copy.c:3498 +#: commands/copy.c:3499 #, c-format msgid "" "COPY FROM instructs the PostgreSQL server process to read a file. You may " @@ -7040,146 +7071,146 @@ "файла. Возможно, на самом деле вам нужно клиентское средство, например, " "\\copy в psql." -#: commands/copy.c:3526 +#: commands/copy.c:3527 #, c-format msgid "COPY file signature not recognized" msgstr "подпись COPY-файла не распознана" -#: commands/copy.c:3531 +#: commands/copy.c:3532 #, c-format msgid "invalid COPY file header (missing flags)" msgstr "неверный заголовок файла COPY (отсутствуют флаги)" -#: commands/copy.c:3535 +#: commands/copy.c:3536 #, c-format msgid "invalid COPY file header (WITH OIDS)" msgstr "неверный заголовок файла COPY (WITH OIDS)" -#: commands/copy.c:3540 +#: commands/copy.c:3541 #, c-format msgid "unrecognized critical flags in COPY file header" msgstr "не распознаны важные флаги в заголовке файла COPY" -#: commands/copy.c:3546 +#: commands/copy.c:3547 #, c-format msgid "invalid COPY file header (missing length)" msgstr "неверный заголовок файла COPY (отсутствует длина)" -#: commands/copy.c:3553 +#: commands/copy.c:3554 #, c-format msgid "invalid COPY file header (wrong length)" msgstr "неверный заголовок файла COPY (неправильная длина)" -#: commands/copy.c:3671 commands/copy.c:4344 commands/copy.c:4574 +#: commands/copy.c:3672 commands/copy.c:4345 commands/copy.c:4575 #, c-format msgid "extra data after last expected column" msgstr "лишние данные после содержимого последнего столбца" -#: commands/copy.c:3685 +#: commands/copy.c:3686 #, c-format msgid "missing data for column \"%s\"" msgstr "нет данных для столбца \"%s\"" -#: commands/copy.c:3768 +#: commands/copy.c:3769 #, c-format msgid "received copy data after EOF marker" msgstr "после маркера конца файла продолжаются данные COPY" -#: commands/copy.c:3775 +#: commands/copy.c:3776 #, c-format msgid "row field count is %d, expected %d" msgstr "количество полей в строке: %d, ожидалось: %d" -#: commands/copy.c:4095 commands/copy.c:4112 +#: commands/copy.c:4096 commands/copy.c:4113 #, c-format msgid "literal carriage return found in data" msgstr "в данных обнаружен явный возврат каретки" -#: commands/copy.c:4096 commands/copy.c:4113 +#: commands/copy.c:4097 commands/copy.c:4114 #, c-format msgid "unquoted carriage return found in data" msgstr "в данных обнаружен возврат каретки не в кавычках" -#: commands/copy.c:4098 commands/copy.c:4115 +#: commands/copy.c:4099 commands/copy.c:4116 #, c-format msgid "Use \"\\r\" to represent carriage return." msgstr "Представьте возврат каретки как \"\\r\"." -#: commands/copy.c:4099 commands/copy.c:4116 +#: commands/copy.c:4100 commands/copy.c:4117 #, c-format msgid "Use quoted CSV field to represent carriage return." msgstr "Заключите возврат каретки в кавычки CSV." -#: commands/copy.c:4128 +#: commands/copy.c:4129 #, c-format msgid "literal newline found in data" msgstr "в данных обнаружен явный символ новой строки" -#: commands/copy.c:4129 +#: commands/copy.c:4130 #, c-format msgid "unquoted newline found in data" msgstr "в данных обнаружен явный символ новой строки не в кавычках" -#: commands/copy.c:4131 +#: commands/copy.c:4132 #, c-format msgid "Use \"\\n\" to represent newline." msgstr "Представьте символ новой строки как \"\\n\"." -#: commands/copy.c:4132 +#: commands/copy.c:4133 #, c-format msgid "Use quoted CSV field to represent newline." msgstr "Заключите символ новой строки в кавычки CSV." -#: commands/copy.c:4178 commands/copy.c:4214 +#: commands/copy.c:4179 commands/copy.c:4215 #, c-format msgid "end-of-copy marker does not match previous newline style" msgstr "маркер \"конец копии\" не соответствует предыдущему стилю новой строки" -#: commands/copy.c:4187 commands/copy.c:4203 +#: commands/copy.c:4188 commands/copy.c:4204 #, c-format msgid "end-of-copy marker corrupt" msgstr "маркер \"конец копии\" испорчен" -#: commands/copy.c:4658 +#: commands/copy.c:4659 #, c-format msgid "unterminated CSV quoted field" msgstr "незавершённое поле в кавычках CSV" -#: commands/copy.c:4735 commands/copy.c:4754 +#: commands/copy.c:4736 commands/copy.c:4755 #, c-format msgid "unexpected EOF in COPY data" msgstr "неожиданный конец данных COPY" -#: commands/copy.c:4744 +#: commands/copy.c:4745 #, c-format msgid "invalid field size" msgstr "неверный размер поля" -#: commands/copy.c:4767 +#: commands/copy.c:4768 #, c-format msgid "incorrect binary data format" msgstr "неверный двоичный формат данных" -#: commands/copy.c:5075 +#: commands/copy.c:5076 #, c-format msgid "column \"%s\" is a generated column" msgstr "столбец \"%s\" — генерируемый" -#: commands/copy.c:5077 +#: commands/copy.c:5078 #, c-format msgid "Generated columns cannot be used in COPY." msgstr "Генерируемые столбцы нельзя использовать в COPY." -#: commands/copy.c:5092 commands/indexcmds.c:1701 commands/statscmds.c:224 -#: commands/tablecmds.c:2176 commands/tablecmds.c:2795 -#: commands/tablecmds.c:3182 parser/parse_relation.c:3507 -#: parser/parse_relation.c:3527 utils/adt/tsvector_op.c:2668 +#: commands/copy.c:5093 commands/indexcmds.c:1701 commands/statscmds.c:224 +#: commands/tablecmds.c:2204 commands/tablecmds.c:2823 +#: commands/tablecmds.c:3210 parser/parse_relation.c:3508 +#: parser/parse_relation.c:3528 utils/adt/tsvector_op.c:2680 #, c-format msgid "column \"%s\" does not exist" msgstr "столбец \"%s\" не существует" -#: commands/copy.c:5099 commands/tablecmds.c:2202 commands/trigger.c:885 -#: parser/parse_target.c:1052 parser/parse_target.c:1063 +#: commands/copy.c:5100 commands/tablecmds.c:2230 commands/trigger.c:893 +#: parser/parse_target.c:1051 parser/parse_target.c:1062 #, c-format msgid "column \"%s\" specified more than once" msgstr "столбец \"%s\" указан неоднократно" @@ -7429,7 +7460,6 @@ #: commands/dbcommands.c:1404 commands/dbcommands.c:1980 #: commands/dbcommands.c:2203 commands/dbcommands.c:2261 -#: commands/tablespace.c:631 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "в старом каталоге базы данных \"%s\" могли остаться ненужные файлы" @@ -7471,7 +7501,7 @@ msgstr[1] "Эта база данных используется ещё в %d сеансах." msgstr[2] "Эта база данных используется ещё в %d сеансах." -#: commands/dbcommands.c:2094 storage/ipc/procarray.c:3023 +#: commands/dbcommands.c:2094 storage/ipc/procarray.c:3106 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -7516,8 +7546,8 @@ msgid "invalid argument for %s: \"%s\"" msgstr "неверный аргумент для %s: \"%s\"" -#: commands/dropcmds.c:100 commands/functioncmds.c:1274 -#: utils/adt/ruleutils.c:2633 +#: commands/dropcmds.c:100 commands/functioncmds.c:1276 +#: utils/adt/ruleutils.c:2635 #, c-format msgid "\"%s\" is an aggregate function" msgstr "функция \"%s\" является агрегатной" @@ -7527,14 +7557,14 @@ msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Используйте DROP AGGREGATE для удаления агрегатных функций." -#: commands/dropcmds.c:158 commands/sequence.c:447 commands/tablecmds.c:3266 -#: commands/tablecmds.c:3424 commands/tablecmds.c:3469 -#: commands/tablecmds.c:15060 tcop/utility.c:1307 +#: commands/dropcmds.c:158 commands/sequence.c:447 commands/tablecmds.c:3294 +#: commands/tablecmds.c:3452 commands/tablecmds.c:3505 +#: commands/tablecmds.c:15361 tcop/utility.c:1324 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "отношение \"%s\" не существует, пропускается" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1199 +#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1208 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "схема \"%s\" не существует, пропускается" @@ -7843,7 +7873,7 @@ #: commands/extension.c:577 #, c-format msgid "\"%s\" is not a valid encoding name" -msgstr "неверное имя кодировки %s" +msgstr "\"%s\" не является верным названием кодировки" #: commands/extension.c:591 #, c-format @@ -8015,7 +8045,7 @@ msgid "version \"%s\" of extension \"%s\" is already installed" msgstr "версия \"%s\" расширения \"%s\" уже установлена" -#: commands/extension.c:3336 +#: commands/extension.c:3344 #, c-format msgid "" "cannot add schema \"%s\" to extension \"%s\" because the schema contains the " @@ -8024,12 +8054,12 @@ "добавить схему \"%s\" к расширению \"%s\" нельзя, так как схема содержит " "расширение" -#: commands/extension.c:3364 +#: commands/extension.c:3372 #, c-format msgid "%s is not a member of extension \"%s\"" msgstr "%s не относится к расширению \"%s\"" -#: commands/extension.c:3430 +#: commands/extension.c:3438 #, c-format msgid "file \"%s\" is too large" msgstr "файл \"%s\" слишком большой" @@ -8147,209 +8177,209 @@ msgid "importing foreign table \"%s\"" msgstr "импорт сторонней таблицы \"%s\"" -#: commands/functioncmds.c:104 +#: commands/functioncmds.c:106 #, c-format msgid "SQL function cannot return shell type %s" msgstr "SQL-функция не может возвращать тип-пустышку %s" -#: commands/functioncmds.c:109 +#: commands/functioncmds.c:111 #, c-format msgid "return type %s is only a shell" msgstr "возвращаемый тип %s - лишь пустышка" -#: commands/functioncmds.c:139 parser/parse_type.c:354 +#: commands/functioncmds.c:141 parser/parse_type.c:354 #, c-format msgid "type modifier cannot be specified for shell type \"%s\"" msgstr "для типа-пустышки \"%s\" нельзя указать модификатор типа" -#: commands/functioncmds.c:145 +#: commands/functioncmds.c:147 #, c-format msgid "type \"%s\" is not yet defined" msgstr "тип \"%s\" ещё не определён" -#: commands/functioncmds.c:146 +#: commands/functioncmds.c:148 #, c-format msgid "Creating a shell type definition." msgstr "Создание определения типа-пустышки." -#: commands/functioncmds.c:238 +#: commands/functioncmds.c:240 #, c-format msgid "SQL function cannot accept shell type %s" msgstr "SQL-функция не может принимать значение типа-пустышки %s" -#: commands/functioncmds.c:244 +#: commands/functioncmds.c:246 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "агрегатная функция не может принимать значение типа-пустышки %s" -#: commands/functioncmds.c:249 +#: commands/functioncmds.c:251 #, c-format msgid "argument type %s is only a shell" msgstr "тип аргумента %s - лишь пустышка" -#: commands/functioncmds.c:259 +#: commands/functioncmds.c:261 #, c-format msgid "type %s does not exist" msgstr "тип %s не существует" -#: commands/functioncmds.c:273 +#: commands/functioncmds.c:275 #, c-format msgid "aggregates cannot accept set arguments" msgstr "агрегатные функции не принимают в аргументах множества" -#: commands/functioncmds.c:277 +#: commands/functioncmds.c:279 #, c-format msgid "procedures cannot accept set arguments" msgstr "процедуры не принимают в аргументах множества" -#: commands/functioncmds.c:281 +#: commands/functioncmds.c:283 #, c-format msgid "functions cannot accept set arguments" msgstr "функции не принимают аргументы-множества" -#: commands/functioncmds.c:289 +#: commands/functioncmds.c:291 #, c-format msgid "procedures cannot have OUT arguments" msgstr "у процедур не может быть аргументов OUT" -#: commands/functioncmds.c:290 +#: commands/functioncmds.c:292 #, c-format msgid "INOUT arguments are permitted." msgstr "Аргументы INOUT допускаются." -#: commands/functioncmds.c:300 +#: commands/functioncmds.c:302 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "параметр VARIADIC должен быть последним в списке входных параметров" -#: commands/functioncmds.c:331 +#: commands/functioncmds.c:333 #, c-format msgid "VARIADIC parameter must be an array" msgstr "параметр VARIADIC должен быть массивом" -#: commands/functioncmds.c:371 +#: commands/functioncmds.c:373 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "имя параметра \"%s\" указано неоднократно" -#: commands/functioncmds.c:386 +#: commands/functioncmds.c:388 #, c-format msgid "only input parameters can have default values" msgstr "значения по умолчанию могут быть только у входных параметров" -#: commands/functioncmds.c:401 +#: commands/functioncmds.c:403 #, c-format msgid "cannot use table references in parameter default value" msgstr "в значениях параметров по умолчанию нельзя ссылаться на таблицы" -#: commands/functioncmds.c:425 +#: commands/functioncmds.c:427 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "" "входные параметры, следующие за параметром со значением по умолчанию, также " "должны иметь значения по умолчанию" -#: commands/functioncmds.c:577 commands/functioncmds.c:768 +#: commands/functioncmds.c:579 commands/functioncmds.c:770 #, c-format msgid "invalid attribute in procedure definition" msgstr "некорректный атрибут в определении процедуры" -#: commands/functioncmds.c:673 +#: commands/functioncmds.c:675 #, c-format msgid "support function %s must return type %s" msgstr "вспомогательная функция %s должна возвращать тип %s" -#: commands/functioncmds.c:684 +#: commands/functioncmds.c:686 #, c-format msgid "must be superuser to specify a support function" msgstr "для указания вспомогательной функции нужно быть суперпользователем" -#: commands/functioncmds.c:800 +#: commands/functioncmds.c:802 #, c-format msgid "no function body specified" msgstr "не указано тело функции" -#: commands/functioncmds.c:810 +#: commands/functioncmds.c:812 #, c-format msgid "no language specified" msgstr "язык не указан" -#: commands/functioncmds.c:835 commands/functioncmds.c:1319 +#: commands/functioncmds.c:837 commands/functioncmds.c:1321 #, c-format msgid "COST must be positive" msgstr "значение COST должно быть положительным" -#: commands/functioncmds.c:843 commands/functioncmds.c:1327 +#: commands/functioncmds.c:845 commands/functioncmds.c:1329 #, c-format msgid "ROWS must be positive" msgstr "значение ROWS должно быть положительным" -#: commands/functioncmds.c:897 +#: commands/functioncmds.c:899 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "для языка \"%s\" нужно только одно выражение AS" -#: commands/functioncmds.c:995 commands/functioncmds.c:2048 +#: commands/functioncmds.c:997 commands/functioncmds.c:2051 #: commands/proclang.c:259 #, c-format msgid "language \"%s\" does not exist" msgstr "язык \"%s\" не существует" -#: commands/functioncmds.c:997 commands/functioncmds.c:2050 +#: commands/functioncmds.c:999 commands/functioncmds.c:2053 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "Выполните CREATE EXTENSION, чтобы загрузить язык в базу данных." -#: commands/functioncmds.c:1032 commands/functioncmds.c:1311 +#: commands/functioncmds.c:1034 commands/functioncmds.c:1313 #, c-format msgid "only superuser can define a leakproof function" msgstr "" "только суперпользователь может определить функцию с атрибутом LEAKPROOF" -#: commands/functioncmds.c:1081 +#: commands/functioncmds.c:1083 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "" "результат функции должен иметь тип %s (в соответствии с параметрами OUT)" -#: commands/functioncmds.c:1094 +#: commands/functioncmds.c:1096 #, c-format msgid "function result type must be specified" msgstr "необходимо указать тип результата функции" -#: commands/functioncmds.c:1146 commands/functioncmds.c:1331 +#: commands/functioncmds.c:1148 commands/functioncmds.c:1333 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "указание ROWS неприменимо, когда функция возвращает не множество" -#: commands/functioncmds.c:1431 +#: commands/functioncmds.c:1434 #, c-format msgid "source data type %s is a pseudo-type" msgstr "исходный тип данных %s является псевдотипом" -#: commands/functioncmds.c:1437 +#: commands/functioncmds.c:1440 #, c-format msgid "target data type %s is a pseudo-type" msgstr "целевой тип данных %s является псевдотипом" -#: commands/functioncmds.c:1461 +#: commands/functioncmds.c:1464 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "" "приведение будет проигнорировано, так как исходные данные имеют тип домен" -#: commands/functioncmds.c:1466 +#: commands/functioncmds.c:1469 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "" "приведение будет проигнорировано, так как целевые данные имеют тип домен" -#: commands/functioncmds.c:1491 +#: commands/functioncmds.c:1494 #, c-format msgid "cast function must take one to three arguments" msgstr "функция приведения должна принимать от одного до трёх аргументов" -#: commands/functioncmds.c:1495 +#: commands/functioncmds.c:1498 #, c-format msgid "" "argument of cast function must match or be binary-coercible from source data " @@ -8358,17 +8388,17 @@ "аргумент функции приведения должен совпадать или быть двоично-совместимым с " "исходным типом данных" -#: commands/functioncmds.c:1499 +#: commands/functioncmds.c:1502 #, c-format msgid "second argument of cast function must be type %s" msgstr "второй аргумент функции приведения должен иметь тип %s" -#: commands/functioncmds.c:1504 +#: commands/functioncmds.c:1507 #, c-format msgid "third argument of cast function must be type %s" msgstr "третий аргумент функции приведения должен иметь тип %s" -#: commands/functioncmds.c:1509 +#: commands/functioncmds.c:1512 #, c-format msgid "" "return data type of cast function must match or be binary-coercible to " @@ -8377,127 +8407,127 @@ "тип возвращаемых данных функции приведения должен совпадать или быть двоично-" "совместимым с целевым типом данных" -#: commands/functioncmds.c:1520 +#: commands/functioncmds.c:1523 #, c-format msgid "cast function must not be volatile" msgstr "функция приведения не может быть изменчивой (volatile)" -#: commands/functioncmds.c:1525 +#: commands/functioncmds.c:1528 #, c-format msgid "cast function must be a normal function" msgstr "функция приведения должна быть обычной функцией" -#: commands/functioncmds.c:1529 +#: commands/functioncmds.c:1532 #, c-format msgid "cast function must not return a set" msgstr "функция приведения не может возвращать множество" -#: commands/functioncmds.c:1555 +#: commands/functioncmds.c:1558 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "для создания приведения WITHOUT FUNCTION нужно быть суперпользователем" -#: commands/functioncmds.c:1570 +#: commands/functioncmds.c:1573 #, c-format msgid "source and target data types are not physically compatible" -msgstr "исходный и целевой типы данных не совместимы физически" +msgstr "исходный и целевой типы данных несовместимы физически" -#: commands/functioncmds.c:1585 +#: commands/functioncmds.c:1588 #, c-format msgid "composite data types are not binary-compatible" -msgstr "составные типы данных не совместимы на двоичном уровне" +msgstr "составные типы данных несовместимы на двоичном уровне" -#: commands/functioncmds.c:1591 +#: commands/functioncmds.c:1594 #, c-format msgid "enum data types are not binary-compatible" -msgstr "типы-перечисления не совместимы на двоичном уровне" +msgstr "типы-перечисления несовместимы на двоичном уровне" -#: commands/functioncmds.c:1597 +#: commands/functioncmds.c:1600 #, c-format msgid "array data types are not binary-compatible" -msgstr "типы-массивы не совместимы на двоичном уровне" +msgstr "типы-массивы несовместимы на двоичном уровне" -#: commands/functioncmds.c:1614 +#: commands/functioncmds.c:1617 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "типы-домены не могут считаться двоично-совместимыми" -#: commands/functioncmds.c:1624 +#: commands/functioncmds.c:1627 #, c-format msgid "source data type and target data type are the same" msgstr "исходный тип данных совпадает с целевым" -#: commands/functioncmds.c:1682 +#: commands/functioncmds.c:1685 #, c-format msgid "transform function must not be volatile" msgstr "функция преобразования не может быть изменчивой" -#: commands/functioncmds.c:1686 +#: commands/functioncmds.c:1689 #, c-format msgid "transform function must be a normal function" msgstr "функция преобразования должна быть обычной функцией" -#: commands/functioncmds.c:1690 +#: commands/functioncmds.c:1693 #, c-format msgid "transform function must not return a set" msgstr "функция преобразования не может возвращать множество" -#: commands/functioncmds.c:1694 +#: commands/functioncmds.c:1697 #, c-format msgid "transform function must take one argument" msgstr "функция преобразования должна принимать один аргумент" -#: commands/functioncmds.c:1698 +#: commands/functioncmds.c:1701 #, c-format msgid "first argument of transform function must be type %s" msgstr "первый аргумент функции преобразования должен иметь тип %s" -#: commands/functioncmds.c:1736 +#: commands/functioncmds.c:1739 #, c-format msgid "data type %s is a pseudo-type" msgstr "тип данных %s является псевдотипом" -#: commands/functioncmds.c:1742 +#: commands/functioncmds.c:1745 #, c-format msgid "data type %s is a domain" msgstr "тип данных \"%s\" является доменом" -#: commands/functioncmds.c:1782 +#: commands/functioncmds.c:1785 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "результат функции FROM SQL должен иметь тип %s" -#: commands/functioncmds.c:1808 +#: commands/functioncmds.c:1811 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "результат функции TO SQL должен иметь тип данных преобразования" -#: commands/functioncmds.c:1837 +#: commands/functioncmds.c:1840 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "преобразование для типа %s, языка \"%s\" уже существует" -#: commands/functioncmds.c:1929 +#: commands/functioncmds.c:1932 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "преобразование для типа %s, языка \"%s\" не существует" -#: commands/functioncmds.c:1980 +#: commands/functioncmds.c:1983 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "функция %s уже существует в схеме \"%s\"" -#: commands/functioncmds.c:2035 +#: commands/functioncmds.c:2038 #, c-format msgid "no inline code specified" msgstr "нет внедрённого кода" -#: commands/functioncmds.c:2081 +#: commands/functioncmds.c:2084 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "язык \"%s\" не поддерживает выполнение внедрённого кода" -#: commands/functioncmds.c:2193 +#: commands/functioncmds.c:2196 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" @@ -8537,15 +8567,15 @@ msgid "cannot create indexes on temporary tables of other sessions" msgstr "создавать индексы во временных таблицах других сеансов нельзя" -#: commands/indexcmds.c:717 commands/tablecmds.c:704 commands/tablespace.c:1185 +#: commands/indexcmds.c:717 commands/tablecmds.c:713 commands/tablespace.c:1181 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "" "для секционированных отношений нельзя назначить табличное пространство по " "умолчанию" -#: commands/indexcmds.c:749 commands/tablecmds.c:739 commands/tablecmds.c:13180 -#: commands/tablecmds.c:13294 +#: commands/indexcmds.c:749 commands/tablecmds.c:748 commands/tablecmds.c:13415 +#: commands/tablecmds.c:13529 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "" @@ -8623,12 +8653,12 @@ msgid "%s %s will create implicit index \"%s\" for table \"%s\"" msgstr "%s %s создаст неявный индекс \"%s\" для таблицы \"%s\"" -#: commands/indexcmds.c:1199 tcop/utility.c:1493 +#: commands/indexcmds.c:1199 tcop/utility.c:1510 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "создать уникальный индекс в секционированной таблице \"%s\" нельзя" -#: commands/indexcmds.c:1201 tcop/utility.c:1495 +#: commands/indexcmds.c:1201 tcop/utility.c:1512 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "Таблица \"%s\" содержит секции, являющиеся сторонними таблицами." @@ -8638,13 +8668,13 @@ msgid "functions in index predicate must be marked IMMUTABLE" msgstr "функции в предикате индекса должны быть помечены как IMMUTABLE" -#: commands/indexcmds.c:1696 parser/parse_utilcmd.c:2464 -#: parser/parse_utilcmd.c:2599 +#: commands/indexcmds.c:1696 parser/parse_utilcmd.c:2474 +#: parser/parse_utilcmd.c:2609 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "указанный в ключе столбец \"%s\" не существует" -#: commands/indexcmds.c:1720 parser/parse_utilcmd.c:1800 +#: commands/indexcmds.c:1720 parser/parse_utilcmd.c:1810 #, c-format msgid "expressions are not supported in included columns" msgstr "выражения во включаемых столбцах не поддерживаются" @@ -8679,9 +8709,9 @@ msgid "could not determine which collation to use for index expression" msgstr "не удалось определить правило сортировки для индексного выражения" -#: commands/indexcmds.c:1823 commands/tablecmds.c:16064 commands/typecmds.c:771 -#: parser/parse_expr.c:2850 parser/parse_type.c:566 parser/parse_utilcmd.c:3674 -#: parser/parse_utilcmd.c:4235 utils/adt/misc.c:503 +#: commands/indexcmds.c:1823 commands/tablecmds.c:16365 commands/typecmds.c:771 +#: parser/parse_expr.c:2855 parser/parse_type.c:566 parser/parse_utilcmd.c:3685 +#: parser/parse_utilcmd.c:4246 utils/adt/misc.c:503 #, c-format msgid "collations are not supported by type %s" msgstr "тип %s не поддерживает сортировку (COLLATION)" @@ -8722,8 +8752,8 @@ msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "метод доступа \"%s\" не поддерживает параметр NULLS FIRST/LAST" -#: commands/indexcmds.c:1978 commands/tablecmds.c:16089 -#: commands/tablecmds.c:16095 commands/typecmds.c:1945 +#: commands/indexcmds.c:1978 commands/tablecmds.c:16390 +#: commands/tablecmds.c:16396 commands/typecmds.c:1947 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "" @@ -8745,7 +8775,7 @@ msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "класс операторов \"%s\" для метода доступа \"%s\" не существует" -#: commands/indexcmds.c:2031 commands/typecmds.c:1933 +#: commands/indexcmds.c:2031 commands/typecmds.c:1935 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "класс операторов \"%s\" не принимает тип данных %s" @@ -8821,7 +8851,7 @@ msgid "REINDEX is not yet implemented for partitioned indexes" msgstr "REINDEX для секционированных индексов ещё не реализован" -#: commands/lockcmds.c:92 commands/tablecmds.c:5631 commands/trigger.c:295 +#: commands/lockcmds.c:92 commands/tablecmds.c:5728 commands/trigger.c:303 #: rewrite/rewriteDefine.c:272 rewrite/rewriteDefine.c:939 #, c-format msgid "\"%s\" is not a table or view" @@ -8834,17 +8864,17 @@ "CONCURRENTLY нельзя использовать, когда материализованное представление не " "наполнено" -#: commands/matview.c:188 +#: commands/matview.c:188 gram.y:16177 #, c-format -msgid "CONCURRENTLY and WITH NO DATA options cannot be used together" -msgstr "параметры CONCURRENTLY и WITH NO DATA исключают друг друга" +msgid "%s and %s options cannot be used together" +msgstr "параметры %s и %s исключают друг друга" -#: commands/matview.c:244 +#: commands/matview.c:245 #, c-format msgid "cannot refresh materialized view \"%s\" concurrently" msgstr "обновить материализованное представление \"%s\" параллельно нельзя" -#: commands/matview.c:247 +#: commands/matview.c:248 #, c-format msgid "" "Create a unique index with no WHERE clause on one or more columns of the " @@ -8853,7 +8883,7 @@ "Создайте уникальный индекс без предложения WHERE для одного или нескольких " "столбцов материализованного представления." -#: commands/matview.c:641 +#: commands/matview.c:649 #, c-format msgid "" "new data for materialized view \"%s\" contains duplicate rows without any " @@ -8862,7 +8892,7 @@ "новые данные для материализованного представления \"%s\" содержат " "дублирующиеся строки (без учёта столбцов с NULL)" -#: commands/matview.c:643 +#: commands/matview.c:651 #, c-format msgid "Row: %s" msgstr "Строка: %s" @@ -9150,53 +9180,48 @@ msgid "operator attribute \"%s\" cannot be changed" msgstr "атрибут оператора \"%s\" нельзя изменить" -#: commands/policy.c:88 commands/policy.c:381 commands/policy.c:471 -#: commands/statscmds.c:143 commands/tablecmds.c:1512 commands/tablecmds.c:1994 -#: commands/tablecmds.c:3076 commands/tablecmds.c:5610 -#: commands/tablecmds.c:8413 commands/tablecmds.c:15654 -#: commands/tablecmds.c:15689 commands/trigger.c:301 commands/trigger.c:1206 -#: commands/trigger.c:1315 rewrite/rewriteDefine.c:278 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:143 +#: commands/tablecmds.c:1539 commands/tablecmds.c:2022 +#: commands/tablecmds.c:3104 commands/tablecmds.c:5707 +#: commands/tablecmds.c:8532 commands/tablecmds.c:15955 +#: commands/tablecmds.c:15990 commands/trigger.c:309 commands/trigger.c:1214 +#: commands/trigger.c:1323 rewrite/rewriteDefine.c:278 #: rewrite/rewriteDefine.c:944 rewrite/rewriteRemove.c:80 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "доступ запрещён: \"%s\" - это системный каталог" -#: commands/policy.c:171 +#: commands/policy.c:172 #, c-format msgid "ignoring specified roles other than PUBLIC" msgstr "все указанные роли, кроме PUBLIC, игнорируются" -#: commands/policy.c:172 +#: commands/policy.c:173 #, c-format msgid "All roles are members of the PUBLIC role." msgstr "Роль PUBLIC включает в себя все остальные роли." -#: commands/policy.c:495 -#, c-format -msgid "role \"%s\" could not be removed from policy \"%s\" on \"%s\"" -msgstr "роль \"%s\" нельзя удалить из политики \"%s\" отношения \"%s\"" - -#: commands/policy.c:704 +#: commands/policy.c:607 #, c-format msgid "WITH CHECK cannot be applied to SELECT or DELETE" msgstr "WITH CHECK нельзя применить к SELECT или DELETE" -#: commands/policy.c:713 commands/policy.c:1018 +#: commands/policy.c:616 commands/policy.c:921 #, c-format msgid "only WITH CHECK expression allowed for INSERT" msgstr "для INSERT допускается только выражение WITH CHECK" -#: commands/policy.c:788 commands/policy.c:1241 +#: commands/policy.c:691 commands/policy.c:1144 #, c-format msgid "policy \"%s\" for table \"%s\" already exists" msgstr "политика \"%s\" для таблицы \"%s\" уже существует" -#: commands/policy.c:990 commands/policy.c:1269 commands/policy.c:1340 +#: commands/policy.c:893 commands/policy.c:1172 commands/policy.c:1243 #, c-format msgid "policy \"%s\" for table \"%s\" does not exist" msgstr "политика \"%s\" для таблицы \"%s\" не существует" -#: commands/policy.c:1008 +#: commands/policy.c:911 #, c-format msgid "only USING expression allowed for SELECT, DELETE" msgstr "для SELECT, DELETE допускается только выражение USING" @@ -9235,34 +9260,34 @@ msgstr "служебные SQL-операторы нельзя подготовить" # [SM]: TO REVIEW -#: commands/prepare.c:256 commands/prepare.c:261 +#: commands/prepare.c:267 commands/prepare.c:272 #, c-format msgid "prepared statement is not a SELECT" msgstr "подготовленный оператор - не SELECT" -#: commands/prepare.c:328 +#: commands/prepare.c:332 #, c-format msgid "wrong number of parameters for prepared statement \"%s\"" msgstr "неверное число параметров для подготовленного оператора \"%s\"" -#: commands/prepare.c:330 +#: commands/prepare.c:334 #, c-format msgid "Expected %d parameters but got %d." msgstr "Ожидалось параметров: %d, получено: %d." -#: commands/prepare.c:363 +#: commands/prepare.c:367 #, c-format msgid "parameter $%d of type %s cannot be coerced to the expected type %s" msgstr "параметр $%d типа %s нельзя привести к ожидаемому типу %s" # [SM]: TO REVIEW -#: commands/prepare.c:449 +#: commands/prepare.c:453 #, c-format msgid "prepared statement \"%s\" already exists" msgstr "подготовленный оператор \"%s\" уже существует" # [SM]: TO REVIEW -#: commands/prepare.c:488 +#: commands/prepare.c:492 #, c-format msgid "prepared statement \"%s\" does not exist" msgstr "подготовленный оператор \"%s\" не существует" @@ -9273,57 +9298,57 @@ msgstr "" "для создания дополнительного процедурного языка нужно быть суперпользователем" -#: commands/publicationcmds.c:107 +#: commands/publicationcmds.c:104 #, c-format msgid "invalid list syntax for \"publish\" option" msgstr "неверный синтаксис параметра \"publish\"" -#: commands/publicationcmds.c:125 +#: commands/publicationcmds.c:122 #, c-format msgid "unrecognized \"publish\" value: \"%s\"" msgstr "нераспознанное значение \"publish\": \"%s\"" -#: commands/publicationcmds.c:140 +#: commands/publicationcmds.c:137 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "нераспознанный параметр репликации: \"%s\"" -#: commands/publicationcmds.c:172 +#: commands/publicationcmds.c:169 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "для создания публикации всех таблиц нужно быть суперпользователем" -#: commands/publicationcmds.c:248 +#: commands/publicationcmds.c:250 #, c-format msgid "wal_level is insufficient to publish logical changes" msgstr "уровень wal_level недостаточен для публикации логических изменений" -#: commands/publicationcmds.c:249 +#: commands/publicationcmds.c:251 #, c-format msgid "Set wal_level to logical before creating subscriptions." msgstr "Задайте для wal_level значение logical до создания подписок." -#: commands/publicationcmds.c:369 +#: commands/publicationcmds.c:376 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "публикация \"%s\" определена для всех таблиц (FOR ALL TABLES)" -#: commands/publicationcmds.c:371 +#: commands/publicationcmds.c:378 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "В публикации всех таблиц нельзя добавлять или удалять таблицы." -#: commands/publicationcmds.c:683 +#: commands/publicationcmds.c:708 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "отношение \"%s\" не включено в публикацию" -#: commands/publicationcmds.c:726 +#: commands/publicationcmds.c:751 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "нет прав на изменение владельца публикации \"%s\"" -#: commands/publicationcmds.c:728 +#: commands/publicationcmds.c:753 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "" @@ -9493,8 +9518,8 @@ msgid "cannot change ownership of identity sequence" msgstr "сменить владельца последовательности идентификации нельзя" -#: commands/sequence.c:1718 commands/tablecmds.c:12562 -#: commands/tablecmds.c:15080 +#: commands/sequence.c:1718 commands/tablecmds.c:12797 +#: commands/tablecmds.c:15381 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "Последовательность \"%s\" связана с таблицей \"%s\"." @@ -9560,12 +9585,12 @@ msgid "unrecognized statistics kind \"%s\"" msgstr "нераспознанный вид статистики \"%s\"" -#: commands/statscmds.c:451 commands/tablecmds.c:7434 +#: commands/statscmds.c:451 commands/tablecmds.c:7553 #, c-format msgid "statistics target %d is too low" msgstr "ориентир статистики слишком мал (%d)" -#: commands/statscmds.c:459 commands/tablecmds.c:7442 +#: commands/statscmds.c:459 commands/tablecmds.c:7561 #, c-format msgid "lowering statistics target to %d" msgstr "ориентир статистики снижается до %d" @@ -9575,48 +9600,48 @@ msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "объект статистики \"%s.%s\" не существует, пропускается" -#: commands/subscriptioncmds.c:181 +#: commands/subscriptioncmds.c:184 #, c-format msgid "unrecognized subscription parameter: \"%s\"" msgstr "нераспознанный параметр подписки: \"%s\"" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:195 commands/subscriptioncmds.c:201 -#: commands/subscriptioncmds.c:207 commands/subscriptioncmds.c:226 -#: commands/subscriptioncmds.c:232 +#: commands/subscriptioncmds.c:198 commands/subscriptioncmds.c:204 +#: commands/subscriptioncmds.c:210 commands/subscriptioncmds.c:229 +#: commands/subscriptioncmds.c:235 #, c-format msgid "%s and %s are mutually exclusive options" msgstr "указания %s и %s являются взаимоисключающими" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:239 commands/subscriptioncmds.c:245 +#: commands/subscriptioncmds.c:242 commands/subscriptioncmds.c:248 #, c-format msgid "subscription with %s must also set %s" msgstr "для подписки с параметром %s необходимо также задать %s" -#: commands/subscriptioncmds.c:287 +#: commands/subscriptioncmds.c:290 #, c-format msgid "publication name \"%s\" used more than once" msgstr "имя публикации \"%s\" используется неоднократно" -#: commands/subscriptioncmds.c:351 +#: commands/subscriptioncmds.c:354 #, c-format msgid "must be superuser to create subscriptions" msgstr "для создания подписок нужно быть суперпользователем" -#: commands/subscriptioncmds.c:442 commands/subscriptioncmds.c:530 -#: replication/logical/tablesync.c:857 replication/logical/worker.c:2095 +#: commands/subscriptioncmds.c:445 commands/subscriptioncmds.c:534 +#: replication/logical/tablesync.c:861 replication/logical/worker.c:2138 #, c-format msgid "could not connect to the publisher: %s" msgstr "не удалось подключиться к серверу публикации: %s" -#: commands/subscriptioncmds.c:484 +#: commands/subscriptioncmds.c:487 #, c-format msgid "created replication slot \"%s\" on publisher" msgstr "на сервере публикации создан слот репликации \"%s\"" #. translator: %s is an SQL ALTER statement -#: commands/subscriptioncmds.c:497 +#: commands/subscriptioncmds.c:500 #, c-format msgid "" "tables were not subscribed, you will have to run %s to subscribe the tables" @@ -9624,51 +9649,51 @@ "в подписке отсутствуют таблицы; потребуется выполнить %s, чтобы подписаться " "на таблицы" -#: commands/subscriptioncmds.c:586 +#: commands/subscriptioncmds.c:590 #, c-format msgid "table \"%s.%s\" added to subscription \"%s\"" msgstr "таблица \"%s.%s\" добавлена в подписку \"%s\"" -#: commands/subscriptioncmds.c:610 +#: commands/subscriptioncmds.c:614 #, c-format msgid "table \"%s.%s\" removed from subscription \"%s\"" msgstr "таблица \"%s.%s\" удалена из подписки \"%s\"" -#: commands/subscriptioncmds.c:682 +#: commands/subscriptioncmds.c:686 #, c-format msgid "cannot set %s for enabled subscription" msgstr "для включённой подписки нельзя задать %s" -#: commands/subscriptioncmds.c:717 +#: commands/subscriptioncmds.c:721 #, c-format msgid "cannot enable subscription that does not have a slot name" msgstr "включить подписку, для которой не задано имя слота, нельзя" -#: commands/subscriptioncmds.c:763 +#: commands/subscriptioncmds.c:767 #, c-format msgid "" "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" msgstr "" "ALTER SUBSCRIPTION с обновлением для отключённых подписок не допускается" -#: commands/subscriptioncmds.c:764 +#: commands/subscriptioncmds.c:768 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." msgstr "" "Выполните ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." -#: commands/subscriptioncmds.c:782 +#: commands/subscriptioncmds.c:786 #, c-format msgid "" "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION ... REFRESH для отключённых подписок не допускается" -#: commands/subscriptioncmds.c:862 +#: commands/subscriptioncmds.c:866 #, c-format msgid "subscription \"%s\" does not exist, skipping" msgstr "подписка \"%s\" не существует, пропускается" -#: commands/subscriptioncmds.c:987 +#: commands/subscriptioncmds.c:991 #, c-format msgid "" "could not connect to publisher when attempting to drop the replication slot " @@ -9677,39 +9702,39 @@ "не удалось подключиться к серверу публикации для удаления слота репликации " "\"%s\"" -#: commands/subscriptioncmds.c:989 commands/subscriptioncmds.c:1004 -#: replication/logical/tablesync.c:906 replication/logical/tablesync.c:928 +#: commands/subscriptioncmds.c:993 commands/subscriptioncmds.c:1008 +#: replication/logical/tablesync.c:910 replication/logical/tablesync.c:932 #, c-format msgid "The error was: %s" msgstr "Произошла ошибка: %s" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:991 +#: commands/subscriptioncmds.c:995 #, c-format msgid "Use %s to disassociate the subscription from the slot." msgstr "Выполните %s, чтобы отвязать подписку от слота." -#: commands/subscriptioncmds.c:1002 +#: commands/subscriptioncmds.c:1006 #, c-format msgid "could not drop the replication slot \"%s\" on publisher" msgstr "слот репликации \"%s\" на сервере публикации не был удалён" -#: commands/subscriptioncmds.c:1007 +#: commands/subscriptioncmds.c:1011 #, c-format msgid "dropped replication slot \"%s\" on publisher" msgstr "слот репликации \"%s\" удалён на сервере репликации" -#: commands/subscriptioncmds.c:1044 +#: commands/subscriptioncmds.c:1048 #, c-format msgid "permission denied to change owner of subscription \"%s\"" msgstr "нет прав на изменение владельца подписки \"%s\"" -#: commands/subscriptioncmds.c:1046 +#: commands/subscriptioncmds.c:1050 #, c-format msgid "The owner of a subscription must be a superuser." msgstr "Владельцем подписки должен быть суперпользователь." -#: commands/subscriptioncmds.c:1161 +#: commands/subscriptioncmds.c:1165 #, c-format msgid "could not receive list of replicated tables from the publisher: %s" msgstr "" @@ -9773,8 +9798,8 @@ "Выполните DROP MATERIALIZED VIEW для удаления материализованного " "представления." -#: commands/tablecmds.c:252 commands/tablecmds.c:276 commands/tablecmds.c:17253 -#: parser/parse_utilcmd.c:2196 +#: commands/tablecmds.c:252 commands/tablecmds.c:276 commands/tablecmds.c:17589 +#: parser/parse_utilcmd.c:2206 #, c-format msgid "index \"%s\" does not exist" msgstr "индекс \"%s\" не существует" @@ -9797,8 +9822,8 @@ msgid "Use DROP TYPE to remove a type." msgstr "Выполните DROP TYPE для удаления типа." -#: commands/tablecmds.c:264 commands/tablecmds.c:12401 -#: commands/tablecmds.c:14860 +#: commands/tablecmds.c:264 commands/tablecmds.c:12636 +#: commands/tablecmds.c:15161 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "сторонняя таблица \"%s\" не существует" @@ -9812,24 +9837,24 @@ msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "Выполните DROP FOREIGN TABLE для удаления сторонней таблицы." -#: commands/tablecmds.c:620 +#: commands/tablecmds.c:629 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMIT можно использовать только для временных таблиц" -#: commands/tablecmds.c:651 +#: commands/tablecmds.c:660 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "" "в рамках операции с ограничениями по безопасности нельзя создать временную " "таблицу" -#: commands/tablecmds.c:687 commands/tablecmds.c:13764 +#: commands/tablecmds.c:696 commands/tablecmds.c:13999 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "отношение \"%s\" наследуется неоднократно" -#: commands/tablecmds.c:868 +#: commands/tablecmds.c:877 #, c-format msgid "" "specifying a table access method is not supported on a partitioned table" @@ -9837,47 +9862,47 @@ "указание табличного метода доступа для секционированных таблиц не " "поддерживаются" -#: commands/tablecmds.c:964 +#: commands/tablecmds.c:973 #, c-format msgid "\"%s\" is not partitioned" msgstr "отношение \"%s\" не является секционированным" -#: commands/tablecmds.c:1058 +#: commands/tablecmds.c:1067 #, c-format msgid "cannot partition using more than %d columns" msgstr "число столбцов в ключе секционирования не может превышать %d" -#: commands/tablecmds.c:1114 +#: commands/tablecmds.c:1123 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "создать стороннюю секцию для секционированной таблицы \"%s\" нельзя" -#: commands/tablecmds.c:1116 +#: commands/tablecmds.c:1125 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "Таблица \"%s\" содержит индексы, являющиеся уникальными." -#: commands/tablecmds.c:1279 +#: commands/tablecmds.c:1288 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY не поддерживает удаление нескольких объектов" -#: commands/tablecmds.c:1283 +#: commands/tablecmds.c:1292 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY не поддерживает режим CASCADE" -#: commands/tablecmds.c:1384 +#: commands/tablecmds.c:1396 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "удалить секционированный индекс \"%s\" параллельным способом нельзя" -#: commands/tablecmds.c:1654 +#: commands/tablecmds.c:1682 #, c-format msgid "cannot truncate only a partitioned table" msgstr "опустошить собственно секционированную таблицу нельзя" -#: commands/tablecmds.c:1655 +#: commands/tablecmds.c:1683 #, c-format msgid "" "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions " @@ -9886,34 +9911,34 @@ "Не указывайте ключевое слово ONLY или выполните TRUNCATE ONLY " "непосредственно для секций." -#: commands/tablecmds.c:1724 +#: commands/tablecmds.c:1752 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "опустошение распространяется на таблицу %s" -#: commands/tablecmds.c:2031 +#: commands/tablecmds.c:2059 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "временные таблицы других сеансов нельзя опустошить" -#: commands/tablecmds.c:2259 commands/tablecmds.c:13661 +#: commands/tablecmds.c:2287 commands/tablecmds.c:13896 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "наследование от секционированной таблицы \"%s\" не допускается" -#: commands/tablecmds.c:2264 +#: commands/tablecmds.c:2292 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "наследование от секции \"%s\" не допускается" -#: commands/tablecmds.c:2272 parser/parse_utilcmd.c:2426 -#: parser/parse_utilcmd.c:2568 +#: commands/tablecmds.c:2300 parser/parse_utilcmd.c:2436 +#: parser/parse_utilcmd.c:2578 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "" "наследуемое отношение \"%s\" не является таблицей или сторонней таблицей" -#: commands/tablecmds.c:2284 +#: commands/tablecmds.c:2312 #, c-format msgid "" "cannot create a temporary relation as partition of permanent relation \"%s\"" @@ -9921,66 +9946,66 @@ "создать временное отношение в качестве секции постоянного отношения \"%s\" " "нельзя" -#: commands/tablecmds.c:2293 commands/tablecmds.c:13640 +#: commands/tablecmds.c:2321 commands/tablecmds.c:13875 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "временное отношение \"%s\" не может наследоваться" -#: commands/tablecmds.c:2303 commands/tablecmds.c:13648 +#: commands/tablecmds.c:2331 commands/tablecmds.c:13883 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "наследование от временного отношения другого сеанса невозможно" -#: commands/tablecmds.c:2357 +#: commands/tablecmds.c:2385 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "слияние нескольких наследованных определений столбца \"%s\"" -#: commands/tablecmds.c:2365 +#: commands/tablecmds.c:2393 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "конфликт типов в наследованном столбце \"%s\"" -#: commands/tablecmds.c:2367 commands/tablecmds.c:2390 -#: commands/tablecmds.c:2639 commands/tablecmds.c:2669 -#: parser/parse_coerce.c:1935 parser/parse_coerce.c:1955 -#: parser/parse_coerce.c:1975 parser/parse_coerce.c:2030 -#: parser/parse_coerce.c:2107 parser/parse_coerce.c:2141 +#: commands/tablecmds.c:2395 commands/tablecmds.c:2418 +#: commands/tablecmds.c:2667 commands/tablecmds.c:2697 +#: parser/parse_coerce.c:2014 parser/parse_coerce.c:2034 +#: parser/parse_coerce.c:2054 parser/parse_coerce.c:2109 +#: parser/parse_coerce.c:2186 parser/parse_coerce.c:2220 #: parser/parse_param.c:218 #, c-format msgid "%s versus %s" msgstr "%s и %s" -#: commands/tablecmds.c:2376 +#: commands/tablecmds.c:2404 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "конфликт правил сортировки в наследованном столбце \"%s\"" -#: commands/tablecmds.c:2378 commands/tablecmds.c:2651 -#: commands/tablecmds.c:6108 +#: commands/tablecmds.c:2406 commands/tablecmds.c:2679 +#: commands/tablecmds.c:6214 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "\"%s\" и \"%s\"" -#: commands/tablecmds.c:2388 +#: commands/tablecmds.c:2416 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "конфликт параметров хранения в наследованном столбце \"%s\"" -#: commands/tablecmds.c:2404 +#: commands/tablecmds.c:2432 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "конфликт свойства генерирования в наследованном столбце \"%s\"" -#: commands/tablecmds.c:2490 commands/tablecmds.c:2545 -#: commands/tablecmds.c:11206 parser/parse_utilcmd.c:1276 -#: parser/parse_utilcmd.c:1319 parser/parse_utilcmd.c:1727 -#: parser/parse_utilcmd.c:1836 +#: commands/tablecmds.c:2518 commands/tablecmds.c:2573 +#: commands/tablecmds.c:11440 parser/parse_utilcmd.c:1286 +#: parser/parse_utilcmd.c:1329 parser/parse_utilcmd.c:1737 +#: parser/parse_utilcmd.c:1846 #, c-format msgid "cannot convert whole-row table reference" msgstr "преобразовать ссылку на тип всей строки таблицы нельзя" -#: commands/tablecmds.c:2491 parser/parse_utilcmd.c:1277 +#: commands/tablecmds.c:2519 parser/parse_utilcmd.c:1287 #, c-format msgid "" "Generation expression for column \"%s\" contains a whole-row reference to " @@ -9989,48 +10014,48 @@ "Генерирующее выражение столбца \"%s\" ссылается на тип всей строки в таблице " "\"%s\"." -#: commands/tablecmds.c:2546 parser/parse_utilcmd.c:1320 +#: commands/tablecmds.c:2574 parser/parse_utilcmd.c:1330 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Ограничение \"%s\" ссылается на тип всей строки в таблице \"%s\"." -#: commands/tablecmds.c:2625 +#: commands/tablecmds.c:2653 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "слияние столбца \"%s\" с наследованным определением" -#: commands/tablecmds.c:2629 +#: commands/tablecmds.c:2657 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "перемещение и слияние столбца \"%s\" с наследуемым определением" -#: commands/tablecmds.c:2630 +#: commands/tablecmds.c:2658 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "" "Определённый пользователем столбец перемещён в позицию наследуемого столбца." -#: commands/tablecmds.c:2637 +#: commands/tablecmds.c:2665 #, c-format msgid "column \"%s\" has a type conflict" msgstr "конфликт типов в столбце \"%s\"" -#: commands/tablecmds.c:2649 +#: commands/tablecmds.c:2677 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "конфликт правил сортировки в столбце \"%s\"" -#: commands/tablecmds.c:2667 +#: commands/tablecmds.c:2695 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "конфликт параметров хранения в столбце \"%s\"" -#: commands/tablecmds.c:2695 +#: commands/tablecmds.c:2723 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "для дочернего столбца \"%s\" указано генерирующее выражение" -#: commands/tablecmds.c:2697 +#: commands/tablecmds.c:2725 #, c-format msgid "" "Omit the generation expression in the definition of the child table column " @@ -10039,36 +10064,36 @@ "Уберите генерирующее выражение из определения столбца в дочерней таблице, " "чтобы это выражение наследовалось из родительской." -#: commands/tablecmds.c:2701 +#: commands/tablecmds.c:2729 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "" "столбец \"%s\" наследуется от генерируемого столбца, но для него задано " "значение по умолчанию" -#: commands/tablecmds.c:2706 +#: commands/tablecmds.c:2734 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "" "столбец \"%s\" наследуется от генерируемого столбца, но для него задано " "свойство идентификации" -#: commands/tablecmds.c:2815 +#: commands/tablecmds.c:2843 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "столбец \"%s\" наследует конфликтующие генерирующие выражения" -#: commands/tablecmds.c:2820 +#: commands/tablecmds.c:2848 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "столбец \"%s\" наследует конфликтующие значения по умолчанию" -#: commands/tablecmds.c:2822 +#: commands/tablecmds.c:2850 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "Для решения конфликта укажите желаемое значение по умолчанию." -#: commands/tablecmds.c:2868 +#: commands/tablecmds.c:2896 #, c-format msgid "" "check constraint name \"%s\" appears multiple times but with different " @@ -10077,12 +10102,12 @@ "имя ограничения-проверки \"%s\" фигурирует несколько раз, но с разными " "выражениями" -#: commands/tablecmds.c:3045 +#: commands/tablecmds.c:3073 #, c-format msgid "cannot rename column of typed table" msgstr "переименовать столбец типизированной таблицы нельзя" -#: commands/tablecmds.c:3064 +#: commands/tablecmds.c:3092 #, c-format msgid "" "\"%s\" is not a table, view, materialized view, composite type, index, or " @@ -10091,37 +10116,37 @@ "\"%s\" - это не таблица, представление, материализованное представление, " "составной тип, индекс или сторонняя таблица" -#: commands/tablecmds.c:3158 +#: commands/tablecmds.c:3186 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "" "наследованный столбец \"%s\" должен быть также переименован в дочерних " "таблицах" -#: commands/tablecmds.c:3190 +#: commands/tablecmds.c:3218 #, c-format msgid "cannot rename system column \"%s\"" msgstr "нельзя переименовать системный столбец \"%s\"" -#: commands/tablecmds.c:3205 +#: commands/tablecmds.c:3233 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "нельзя переименовать наследованный столбец \"%s\"" -#: commands/tablecmds.c:3357 +#: commands/tablecmds.c:3385 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "" "наследуемое ограничение \"%s\" должно быть также переименовано в дочерних " "таблицах" -#: commands/tablecmds.c:3364 +#: commands/tablecmds.c:3392 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "нельзя переименовать наследованное ограничение \"%s\"" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:3597 +#: commands/tablecmds.c:3690 #, c-format msgid "" "cannot %s \"%s\" because it is being used by active queries in this session" @@ -10130,54 +10155,54 @@ "запросами в данном сеансе" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:3606 +#: commands/tablecmds.c:3699 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "" "нельзя выполнить %s \"%s\", так как с этим объектом связаны отложенные " "события триггеров" -#: commands/tablecmds.c:4237 commands/tablecmds.c:4252 +#: commands/tablecmds.c:4330 commands/tablecmds.c:4345 #, c-format msgid "cannot change persistence setting twice" msgstr "изменить характеристику хранения дважды нельзя" -#: commands/tablecmds.c:4971 +#: commands/tablecmds.c:5065 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "перезаписать системное отношение \"%s\" нельзя" -#: commands/tablecmds.c:4977 +#: commands/tablecmds.c:5071 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "перезаписать таблицу \"%s\", используемую как таблицу каталога, нельзя" -#: commands/tablecmds.c:4987 +#: commands/tablecmds.c:5081 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "перезаписывать временные таблицы других сеансов нельзя" -#: commands/tablecmds.c:5276 +#: commands/tablecmds.c:5370 #, c-format msgid "rewriting table \"%s\"" msgstr "перезапись таблицы \"%s\"" -#: commands/tablecmds.c:5280 +#: commands/tablecmds.c:5374 #, c-format msgid "verifying table \"%s\"" msgstr "проверка таблицы \"%s\"" -#: commands/tablecmds.c:5445 +#: commands/tablecmds.c:5542 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "столбец \"%s\" отношения \"%s\" содержит значения NULL" -#: commands/tablecmds.c:5462 +#: commands/tablecmds.c:5559 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "ограничение-проверку \"%s\" отношения \"%s\" нарушает некоторая строка" -#: commands/tablecmds.c:5481 partitioning/partbounds.c:3225 +#: commands/tablecmds.c:5578 partitioning/partbounds.c:3225 #, c-format msgid "" "updated partition constraint for default partition \"%s\" would be violated " @@ -10186,64 +10211,85 @@ "изменённое ограничение секции для секции по умолчанию \"%s\" будет нарушено " "некоторыми строками" -#: commands/tablecmds.c:5487 +#: commands/tablecmds.c:5584 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "ограничение секции отношения \"%s\" нарушает некоторая строка" -#: commands/tablecmds.c:5634 commands/trigger.c:1200 commands/trigger.c:1306 +#: commands/tablecmds.c:5731 commands/trigger.c:1208 commands/trigger.c:1314 #, c-format msgid "\"%s\" is not a table, view, or foreign table" msgstr "\"%s\" - это не таблица, представление и не сторонняя таблица" -#: commands/tablecmds.c:5637 +#: commands/tablecmds.c:5734 #, c-format msgid "\"%s\" is not a table, view, materialized view, or index" msgstr "" "\"%s\" - это не таблица, представление, материализованное представление или " "индекс" -#: commands/tablecmds.c:5643 +#: commands/tablecmds.c:5740 #, c-format msgid "\"%s\" is not a table, materialized view, or index" msgstr "\"%s\" - это не таблица, материализованное представление или индекс" -#: commands/tablecmds.c:5646 +#: commands/tablecmds.c:5743 +#, c-format +msgid "\"%s\" is not a table, materialized view, index, or partitioned index" +msgstr "" +"\"%s\" - это не таблица, материализованное представление, индекс или " +"секционированный индекс" + +#: commands/tablecmds.c:5746 +#, c-format +msgid "" +"\"%s\" is not a table, materialized view, index, partitioned index, or " +"foreign table" +msgstr "" +"\"%s\" - это не таблица, материализованное представление, индекс, " +"секционированный индекс или сторонняя таблица" + +#: commands/tablecmds.c:5749 #, c-format msgid "\"%s\" is not a table, materialized view, or foreign table" msgstr "" "\"%s\" - это не таблица, материализованное представление или сторонняя " "таблица" -#: commands/tablecmds.c:5649 +#: commands/tablecmds.c:5752 #, c-format msgid "\"%s\" is not a table or foreign table" msgstr "\"%s\" - это не таблица и не сторонняя таблица" -#: commands/tablecmds.c:5652 +#: commands/tablecmds.c:5755 #, c-format msgid "\"%s\" is not a table, composite type, or foreign table" msgstr "\"%s\" - это не таблица, составной тип или сторонняя таблица" -#: commands/tablecmds.c:5655 +#: commands/tablecmds.c:5758 #, c-format msgid "\"%s\" is not a table, materialized view, index, or foreign table" msgstr "" "\"%s\" - это не таблица, материализованное представление, индекс или " "сторонняя таблица" -#: commands/tablecmds.c:5665 +#: commands/tablecmds.c:5761 +#, c-format +msgid "\"%s\" is not a table or partitioned index" +msgstr "\"%s\" - это не таблица и не секционированный индекс" + +#: commands/tablecmds.c:5771 #, c-format msgid "\"%s\" is of the wrong type" msgstr "неправильный тип \"%s\"" -#: commands/tablecmds.c:5868 commands/tablecmds.c:5875 +#: commands/tablecmds.c:5974 commands/tablecmds.c:5981 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "" "изменить тип \"%s\" нельзя, так как он задействован в столбце \"%s.%s\"" -#: commands/tablecmds.c:5882 +#: commands/tablecmds.c:5988 #, c-format msgid "" "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" @@ -10251,77 +10297,77 @@ "изменить стороннюю таблицу \"%s\" нельзя, так как столбец \"%s.%s\" " "задействует тип её строки" -#: commands/tablecmds.c:5889 +#: commands/tablecmds.c:5995 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "" "изменить таблицу \"%s\" нельзя, так как столбец \"%s.%s\" задействует тип её " "строки" -#: commands/tablecmds.c:5945 +#: commands/tablecmds.c:6051 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "изменить тип \"%s\", так как это тип типизированной таблицы" -#: commands/tablecmds.c:5947 +#: commands/tablecmds.c:6053 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "" "Чтобы изменить также типизированные таблицы, выполните ALTER ... CASCADE." -#: commands/tablecmds.c:5993 +#: commands/tablecmds.c:6099 #, c-format msgid "type %s is not a composite type" msgstr "тип %s не является составным" -#: commands/tablecmds.c:6020 +#: commands/tablecmds.c:6126 #, c-format msgid "cannot add column to typed table" msgstr "добавить столбец в типизированную таблицу нельзя" -#: commands/tablecmds.c:6071 +#: commands/tablecmds.c:6177 #, c-format msgid "cannot add column to a partition" msgstr "добавить столбец в секцию нельзя" -#: commands/tablecmds.c:6100 commands/tablecmds.c:13891 +#: commands/tablecmds.c:6206 commands/tablecmds.c:14126 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "дочерняя таблица \"%s\" имеет другой тип для столбца \"%s\"" -#: commands/tablecmds.c:6106 commands/tablecmds.c:13898 +#: commands/tablecmds.c:6212 commands/tablecmds.c:14133 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "" "дочерняя таблица \"%s\" имеет другое правило сортировки для столбца \"%s\"" -#: commands/tablecmds.c:6120 +#: commands/tablecmds.c:6226 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "объединение определений столбца \"%s\" для потомка \"%s\"" -#: commands/tablecmds.c:6163 +#: commands/tablecmds.c:6269 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "" "добавить столбец идентификации в таблицу, у которой есть дочерние, нельзя" -#: commands/tablecmds.c:6400 +#: commands/tablecmds.c:6506 #, c-format msgid "column must be added to child tables too" msgstr "столбец также должен быть добавлен к дочерним таблицам" -#: commands/tablecmds.c:6478 +#: commands/tablecmds.c:6584 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "столбец \"%s\" отношения \"%s\" уже существует, пропускается" -#: commands/tablecmds.c:6485 +#: commands/tablecmds.c:6591 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "столбец \"%s\" отношения \"%s\" уже существует" -#: commands/tablecmds.c:6551 commands/tablecmds.c:10844 +#: commands/tablecmds.c:6657 commands/tablecmds.c:11079 #, c-format msgid "" "cannot remove constraint from only the partitioned table when partitions " @@ -10330,48 +10376,53 @@ "удалить ограничение только из секционированной таблицы, когда существуют " "секции, нельзя" -#: commands/tablecmds.c:6552 commands/tablecmds.c:6856 -#: commands/tablecmds.c:7852 commands/tablecmds.c:10845 +#: commands/tablecmds.c:6658 commands/tablecmds.c:6975 +#: commands/tablecmds.c:7971 commands/tablecmds.c:11080 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Не указывайте ключевое слово ONLY." -#: commands/tablecmds.c:6589 commands/tablecmds.c:6782 -#: commands/tablecmds.c:6924 commands/tablecmds.c:7038 -#: commands/tablecmds.c:7132 commands/tablecmds.c:7191 -#: commands/tablecmds.c:7309 commands/tablecmds.c:7475 -#: commands/tablecmds.c:7545 commands/tablecmds.c:7638 -#: commands/tablecmds.c:10999 commands/tablecmds.c:12424 +#: commands/tablecmds.c:6695 commands/tablecmds.c:6901 +#: commands/tablecmds.c:7043 commands/tablecmds.c:7157 +#: commands/tablecmds.c:7251 commands/tablecmds.c:7310 +#: commands/tablecmds.c:7428 commands/tablecmds.c:7594 +#: commands/tablecmds.c:7664 commands/tablecmds.c:7757 +#: commands/tablecmds.c:11234 commands/tablecmds.c:12659 #, c-format msgid "cannot alter system column \"%s\"" msgstr "системный столбец \"%s\" нельзя изменить" -#: commands/tablecmds.c:6595 commands/tablecmds.c:6930 +#: commands/tablecmds.c:6701 commands/tablecmds.c:7049 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "столбец \"%s\" отношения \"%s\" является столбцом идентификации" -#: commands/tablecmds.c:6631 +#: commands/tablecmds.c:6744 #, c-format msgid "column \"%s\" is in a primary key" msgstr "столбец \"%s\" входит в первичный ключ" -#: commands/tablecmds.c:6653 +#: commands/tablecmds.c:6749 +#, c-format +msgid "column \"%s\" is in index used as replica identity" +msgstr "столбец \"%s\" входит в индекс, используемый для идентификации реплики" + +#: commands/tablecmds.c:6772 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "столбец \"%s\" в родительской таблице помечен как NOT NULL" -#: commands/tablecmds.c:6853 commands/tablecmds.c:8311 +#: commands/tablecmds.c:6972 commands/tablecmds.c:8430 #, c-format msgid "constraint must be added to child tables too" msgstr "ограничение также должно быть добавлено к дочерним таблицам" -#: commands/tablecmds.c:6854 +#: commands/tablecmds.c:6973 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Столбец \"%s\" отношения \"%s\" уже имеет свойство NOT NULL." -#: commands/tablecmds.c:6889 +#: commands/tablecmds.c:7008 #, c-format msgid "" "existing constraints on column \"%s.%s\" are sufficient to prove that it " @@ -10380,23 +10431,23 @@ "существующие ограничения для столбца \"%s.%s\" гарантируют, что он не " "содержит NULL" -#: commands/tablecmds.c:6932 +#: commands/tablecmds.c:7051 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." msgstr "Вместо этого выполните ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY." -#: commands/tablecmds.c:6937 +#: commands/tablecmds.c:7056 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "столбец \"%s\" отношения \"%s\" является генерируемым" -#: commands/tablecmds.c:6940 +#: commands/tablecmds.c:7059 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." msgstr "" "Вместо этого выполните ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION." -#: commands/tablecmds.c:7049 +#: commands/tablecmds.c:7168 #, c-format msgid "" "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity " @@ -10405,46 +10456,46 @@ "столбец \"%s\" отношения \"%s\" должен быть объявлен как NOT NULL, чтобы его " "можно было сделать столбцом идентификации" -#: commands/tablecmds.c:7055 +#: commands/tablecmds.c:7174 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "столбец \"%s\" отношения \"%s\" уже является столбцом идентификации" -#: commands/tablecmds.c:7061 +#: commands/tablecmds.c:7180 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "столбец \"%s\" отношения \"%s\" уже имеет значение по умолчанию" -#: commands/tablecmds.c:7138 commands/tablecmds.c:7199 +#: commands/tablecmds.c:7257 commands/tablecmds.c:7318 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "столбец \"%s\" отношения \"%s\" не является столбцом идентификации" -#: commands/tablecmds.c:7204 +#: commands/tablecmds.c:7323 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "" "столбец \"%s\" отношения \"%s\" не является столбцом идентификации, " "пропускается" -#: commands/tablecmds.c:7257 +#: commands/tablecmds.c:7376 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "" "ALTER TABLE / DROP EXPRESSION нужно применять также к дочерним таблицам" -#: commands/tablecmds.c:7279 +#: commands/tablecmds.c:7398 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "нельзя удалить генерирующее выражение из наследуемого столбца" -#: commands/tablecmds.c:7317 +#: commands/tablecmds.c:7436 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "" "столбец \"%s\" отношения \"%s\" не является сохранённым генерируемым столбцом" -#: commands/tablecmds.c:7322 +#: commands/tablecmds.c:7441 #, c-format msgid "" "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" @@ -10452,63 +10503,63 @@ "столбец \"%s\" отношения \"%s\" пропускается, так как не является " "сохранённым генерируемым столбцом" -#: commands/tablecmds.c:7422 +#: commands/tablecmds.c:7541 #, c-format msgid "cannot refer to non-index column by number" msgstr "по номеру можно ссылаться только на столбец в индексе" -#: commands/tablecmds.c:7465 +#: commands/tablecmds.c:7584 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "столбец с номером %d отношения \"%s\" не существует" -#: commands/tablecmds.c:7484 +#: commands/tablecmds.c:7603 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "изменить статистику включённого столбца \"%s\" индекса \"%s\" нельзя" -#: commands/tablecmds.c:7489 +#: commands/tablecmds.c:7608 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "" "изменить статистику столбца \"%s\" (не выражения) индекса \"%s\" нельзя" -#: commands/tablecmds.c:7491 +#: commands/tablecmds.c:7610 #, c-format msgid "Alter statistics on table column instead." msgstr "Вместо этого измените статистику для столбца в таблице." -#: commands/tablecmds.c:7618 +#: commands/tablecmds.c:7737 #, c-format msgid "invalid storage type \"%s\"" msgstr "неверный тип хранилища \"%s\"" -#: commands/tablecmds.c:7650 +#: commands/tablecmds.c:7769 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "тип данных столбца %s совместим только с хранилищем PLAIN" -#: commands/tablecmds.c:7732 +#: commands/tablecmds.c:7851 #, c-format msgid "cannot drop column from typed table" msgstr "нельзя удалить столбец в типизированной таблице" -#: commands/tablecmds.c:7791 +#: commands/tablecmds.c:7910 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "столбец \"%s\" в таблице\"%s\" не существует, пропускается" -#: commands/tablecmds.c:7804 +#: commands/tablecmds.c:7923 #, c-format msgid "cannot drop system column \"%s\"" msgstr "нельзя удалить системный столбец \"%s\"" -#: commands/tablecmds.c:7814 +#: commands/tablecmds.c:7933 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "нельзя удалить наследованный столбец \"%s\"" -#: commands/tablecmds.c:7827 +#: commands/tablecmds.c:7946 #, c-format msgid "" "cannot drop column \"%s\" because it is part of the partition key of " @@ -10517,7 +10568,7 @@ "удалить столбец \"%s\" нельзя, так как он входит в ключ разбиения отношения " "\"%s\"" -#: commands/tablecmds.c:7851 +#: commands/tablecmds.c:7970 #, c-format msgid "" "cannot drop column from only the partitioned table when partitions exist" @@ -10525,7 +10576,7 @@ "удалить столбец только из секционированной таблицы, когда существуют секции, " "нельзя" -#: commands/tablecmds.c:8032 +#: commands/tablecmds.c:8151 #, c-format msgid "" "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned " @@ -10534,14 +10585,14 @@ "ALTER TABLE / ADD CONSTRAINT USING INDEX не поддерживается с " "секционированными таблицами" -#: commands/tablecmds.c:8057 +#: commands/tablecmds.c:8176 #, c-format msgid "" "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "" "ALTER TABLE / ADD CONSTRAINT USING INDEX переименует индекс \"%s\" в \"%s\"" -#: commands/tablecmds.c:8391 +#: commands/tablecmds.c:8510 #, c-format msgid "" "cannot use ONLY for foreign key on partitioned table \"%s\" referencing " @@ -10550,7 +10601,7 @@ "нельзя использовать ONLY для стороннего ключа в секционированной таблице \"%s" "\", ссылающегося на отношение \"%s\"" -#: commands/tablecmds.c:8397 +#: commands/tablecmds.c:8516 #, c-format msgid "" "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing " @@ -10559,25 +10610,25 @@ "нельзя добавить с характеристикой NOT VALID сторонний ключ в " "секционированной таблице \"%s\", ссылающийся на отношение \"%s\"" -#: commands/tablecmds.c:8400 +#: commands/tablecmds.c:8519 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "" "Эта функциональность с секционированными таблицами пока не поддерживается." -#: commands/tablecmds.c:8407 commands/tablecmds.c:8812 +#: commands/tablecmds.c:8526 commands/tablecmds.c:8931 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "указанный объект \"%s\" не является таблицей" -#: commands/tablecmds.c:8430 +#: commands/tablecmds.c:8549 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "" "ограничения в постоянных таблицах могут ссылаться только на постоянные " "таблицы" -#: commands/tablecmds.c:8437 +#: commands/tablecmds.c:8556 #, c-format msgid "" "constraints on unlogged tables may reference only permanent or unlogged " @@ -10586,13 +10637,13 @@ "ограничения в нежурналируемых таблицах могут ссылаться только на постоянные " "или нежурналируемые таблицы" -#: commands/tablecmds.c:8443 +#: commands/tablecmds.c:8562 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "" "ограничения во временных таблицах могут ссылаться только на временные таблицы" -#: commands/tablecmds.c:8447 +#: commands/tablecmds.c:8566 #, c-format msgid "" "constraints on temporary tables must involve temporary tables of this session" @@ -10600,7 +10651,7 @@ "ограничения во временных таблицах должны ссылаться только на временные " "таблицы текущего сеанса" -#: commands/tablecmds.c:8513 commands/tablecmds.c:8519 +#: commands/tablecmds.c:8632 commands/tablecmds.c:8638 #, c-format msgid "" "invalid %s action for foreign key constraint containing generated column" @@ -10608,39 +10659,55 @@ "некорректное действие %s для ограничения внешнего ключа, содержащего " "генерируемый столбец" -#: commands/tablecmds.c:8535 +#: commands/tablecmds.c:8654 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "число столбцов в источнике и назначении внешнего ключа не совпадает" -#: commands/tablecmds.c:8642 +#: commands/tablecmds.c:8761 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "ограничение внешнего ключа \"%s\" нельзя реализовать" -#: commands/tablecmds.c:8644 +#: commands/tablecmds.c:8763 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Столбцы ключа \"%s\" и \"%s\" имеют несовместимые типы: %s и %s." -#: commands/tablecmds.c:9007 commands/tablecmds.c:9400 -#: parser/parse_utilcmd.c:780 parser/parse_utilcmd.c:909 +#: commands/tablecmds.c:9126 commands/tablecmds.c:9519 +#: parser/parse_utilcmd.c:790 parser/parse_utilcmd.c:919 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "ограничения внешнего ключа для сторонних таблиц не поддерживаются" -#: commands/tablecmds.c:9766 commands/tablecmds.c:9929 -#: commands/tablecmds.c:10801 commands/tablecmds.c:10876 +#: commands/tablecmds.c:9886 commands/tablecmds.c:10164 +#: commands/tablecmds.c:11036 commands/tablecmds.c:11111 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "ограничение \"%s\" в таблице \"%s\" не существует" -#: commands/tablecmds.c:9773 +#: commands/tablecmds.c:9893 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "ограничение \"%s\" в таблице \"%s\" не является внешним ключом" -#: commands/tablecmds.c:9937 +#: commands/tablecmds.c:9931 +#, c-format +msgid "cannot alter constraint \"%s\" on relation \"%s\"" +msgstr "изменить ограничение \"%s\" таблицы \"%s\" нельзя" + +#: commands/tablecmds.c:9934 +#, c-format +msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." +msgstr "" +"Ограничение \"%s\" является производным от ограничения \"%s\" таблицы \"%s\"." + +#: commands/tablecmds.c:9936 +#, c-format +msgid "You may alter the constraint it derives from, instead." +msgstr "Вместо этого вы можете изменить родительское ограничение." + +#: commands/tablecmds.c:10172 #, c-format msgid "" "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" @@ -10648,46 +10715,46 @@ "ограничение \"%s\" в таблице \"%s\" не является внешним ключом или " "ограничением-проверкой" -#: commands/tablecmds.c:10015 +#: commands/tablecmds.c:10250 #, c-format msgid "constraint must be validated on child tables too" msgstr "ограничение также должно соблюдаться в дочерних таблицах" -#: commands/tablecmds.c:10099 +#: commands/tablecmds.c:10334 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "столбец \"%s\", указанный в ограничении внешнего ключа, не существует" -#: commands/tablecmds.c:10104 +#: commands/tablecmds.c:10339 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "во внешнем ключе не может быть больше %d столбцов" -#: commands/tablecmds.c:10169 +#: commands/tablecmds.c:10404 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "" "использовать откладываемый первичный ключ в целевой внешней таблице \"%s\" " "нельзя" -#: commands/tablecmds.c:10186 +#: commands/tablecmds.c:10421 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "в целевой внешней таблице \"%s\" нет первичного ключа" -#: commands/tablecmds.c:10251 +#: commands/tablecmds.c:10486 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "в списке столбцов внешнего ключа не должно быть повторений" -#: commands/tablecmds.c:10345 +#: commands/tablecmds.c:10580 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "" "использовать откладываемое ограничение уникальности в целевой внешней " "таблице \"%s\" нельзя" -#: commands/tablecmds.c:10350 +#: commands/tablecmds.c:10585 #, c-format msgid "" "there is no unique constraint matching given keys for referenced table \"%s\"" @@ -10695,32 +10762,32 @@ "в целевой внешней таблице \"%s\" нет ограничения уникальности, " "соответствующего данным ключам" -#: commands/tablecmds.c:10438 +#: commands/tablecmds.c:10673 #, c-format msgid "validating foreign key constraint \"%s\"" msgstr "проверка ограничения внешнего ключа \"%s\"" -#: commands/tablecmds.c:10757 +#: commands/tablecmds.c:10992 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "удалить наследованное ограничение \"%s\" таблицы \"%s\" нельзя" -#: commands/tablecmds.c:10807 +#: commands/tablecmds.c:11042 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "ограничение \"%s\" в таблице \"%s\" не существует, пропускается" -#: commands/tablecmds.c:10983 +#: commands/tablecmds.c:11218 #, c-format msgid "cannot alter column type of typed table" msgstr "изменить тип столбца в типизированной таблице нельзя" -#: commands/tablecmds.c:11010 +#: commands/tablecmds.c:11245 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "изменить наследованный столбец \"%s\" нельзя" -#: commands/tablecmds.c:11019 +#: commands/tablecmds.c:11254 #, c-format msgid "" "cannot alter column \"%s\" because it is part of the partition key of " @@ -10729,7 +10796,7 @@ "изменить столбец \"%s\" нельзя, так как он входит в ключ разбиения отношения " "\"%s\"" -#: commands/tablecmds.c:11069 +#: commands/tablecmds.c:11304 #, c-format msgid "" "result of USING clause for column \"%s\" cannot be cast automatically to " @@ -10737,45 +10804,45 @@ msgstr "" "результат USING для столбца \"%s\" нельзя автоматически привести к типу %s" -#: commands/tablecmds.c:11072 +#: commands/tablecmds.c:11307 #, c-format msgid "You might need to add an explicit cast." msgstr "Возможно, необходимо добавить явное приведение." -#: commands/tablecmds.c:11076 +#: commands/tablecmds.c:11311 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "столбец \"%s\" нельзя автоматически привести к типу %s" # skip-rule: double-colons #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:11079 +#: commands/tablecmds.c:11314 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Возможно, необходимо указать \"USING %s::%s\"." -#: commands/tablecmds.c:11179 +#: commands/tablecmds.c:11413 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "изменить наследованный столбец \"%s\" отношения \"%s\" нельзя" -#: commands/tablecmds.c:11207 +#: commands/tablecmds.c:11441 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "Выражение USING ссылается на тип всей строки таблицы." -#: commands/tablecmds.c:11218 +#: commands/tablecmds.c:11452 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "" "тип наследованного столбца \"%s\" должен быть изменён и в дочерних таблицах" -#: commands/tablecmds.c:11343 +#: commands/tablecmds.c:11577 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "нельзя изменить тип столбца \"%s\" дважды" -#: commands/tablecmds.c:11381 +#: commands/tablecmds.c:11615 #, c-format msgid "" "generation expression for column \"%s\" cannot be cast automatically to type " @@ -10784,166 +10851,166 @@ "генерирующее выражение для столбца \"%s\" нельзя автоматически привести к " "типу %s" -#: commands/tablecmds.c:11386 +#: commands/tablecmds.c:11620 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "" "значение по умолчанию для столбца \"%s\" нельзя автоматически привести к " "типу %s" -#: commands/tablecmds.c:11464 +#: commands/tablecmds.c:11698 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "изменить тип столбца, задействованного в генерируемом столбце, нельзя" -#: commands/tablecmds.c:11465 +#: commands/tablecmds.c:11699 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Столбец \"%s\" используется генерируемым столбцом \"%s\"." -#: commands/tablecmds.c:11486 +#: commands/tablecmds.c:11720 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "" "изменить тип столбца, задействованного в представлении или правиле, нельзя" -#: commands/tablecmds.c:11487 commands/tablecmds.c:11506 -#: commands/tablecmds.c:11524 +#: commands/tablecmds.c:11721 commands/tablecmds.c:11740 +#: commands/tablecmds.c:11758 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s зависит от столбца \"%s\"" -#: commands/tablecmds.c:11505 +#: commands/tablecmds.c:11739 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "изменить тип столбца, задействованного в определении триггера, нельзя" -#: commands/tablecmds.c:11523 +#: commands/tablecmds.c:11757 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "изменить тип столбца, задействованного в определении политики, нельзя" -#: commands/tablecmds.c:12532 commands/tablecmds.c:12544 +#: commands/tablecmds.c:12767 commands/tablecmds.c:12779 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "сменить владельца индекса \"%s\" нельзя" -#: commands/tablecmds.c:12534 commands/tablecmds.c:12546 +#: commands/tablecmds.c:12769 commands/tablecmds.c:12781 #, c-format msgid "Change the ownership of the index's table, instead." msgstr "Однако возможно сменить владельца таблицы, содержащей этот индекс." -#: commands/tablecmds.c:12560 +#: commands/tablecmds.c:12795 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "сменить владельца последовательности \"%s\" нельзя" -#: commands/tablecmds.c:12574 commands/tablecmds.c:15765 +#: commands/tablecmds.c:12809 commands/tablecmds.c:16066 #, c-format msgid "Use ALTER TYPE instead." msgstr "Используйте ALTER TYPE." -#: commands/tablecmds.c:12583 +#: commands/tablecmds.c:12818 #, c-format msgid "\"%s\" is not a table, view, sequence, or foreign table" msgstr "" "\"%s\" - это не таблица, TOAST-таблица, индекс, представление или " "последовательность" -#: commands/tablecmds.c:12923 +#: commands/tablecmds.c:13158 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "в одной инструкции не может быть несколько подкоманд SET TABLESPACE" -#: commands/tablecmds.c:13000 +#: commands/tablecmds.c:13235 #, c-format msgid "\"%s\" is not a table, view, materialized view, index, or TOAST table" msgstr "" "\"%s\" - это не таблица, представление, материализованное представление, " "индекс или TOAST-таблица" -#: commands/tablecmds.c:13033 commands/view.c:494 +#: commands/tablecmds.c:13268 commands/view.c:494 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "" "WITH CHECK OPTION поддерживается только с автообновляемыми представлениями" -#: commands/tablecmds.c:13173 +#: commands/tablecmds.c:13408 #, c-format msgid "cannot move system relation \"%s\"" msgstr "переместить системную таблицу \"%s\" нельзя" -#: commands/tablecmds.c:13189 +#: commands/tablecmds.c:13424 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "перемещать временные таблицы других сеансов нельзя" -#: commands/tablecmds.c:13363 +#: commands/tablecmds.c:13598 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "" "в табличных пространствах есть только таблицы, индексы и материализованные " "представления" -#: commands/tablecmds.c:13375 +#: commands/tablecmds.c:13610 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "перемещать объекты в/из табличного пространства pg_global нельзя" -#: commands/tablecmds.c:13467 +#: commands/tablecmds.c:13702 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "" "обработка прерывается из-за невозможности заблокировать отношение \"%s.%s\"" -#: commands/tablecmds.c:13483 +#: commands/tablecmds.c:13718 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "в табличном пространстве \"%s\" не найдены подходящие отношения" -#: commands/tablecmds.c:13599 +#: commands/tablecmds.c:13834 #, c-format msgid "cannot change inheritance of typed table" msgstr "изменить наследование типизированной таблицы нельзя" -#: commands/tablecmds.c:13604 commands/tablecmds.c:14100 +#: commands/tablecmds.c:13839 commands/tablecmds.c:14395 #, c-format msgid "cannot change inheritance of a partition" msgstr "изменить наследование секции нельзя" -#: commands/tablecmds.c:13609 +#: commands/tablecmds.c:13844 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "изменить наследование секционированной таблицы нельзя" -#: commands/tablecmds.c:13655 +#: commands/tablecmds.c:13890 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "наследование для временного отношения другого сеанса невозможно" -#: commands/tablecmds.c:13668 +#: commands/tablecmds.c:13903 #, c-format msgid "cannot inherit from a partition" msgstr "наследование от секции невозможно" -#: commands/tablecmds.c:13690 commands/tablecmds.c:16405 +#: commands/tablecmds.c:13925 commands/tablecmds.c:16706 #, c-format msgid "circular inheritance not allowed" msgstr "циклическое наследование недопустимо" -#: commands/tablecmds.c:13691 commands/tablecmds.c:16406 +#: commands/tablecmds.c:13926 commands/tablecmds.c:16707 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" уже является потомком \"%s\"." -#: commands/tablecmds.c:13704 +#: commands/tablecmds.c:13939 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "" "триггер \"%s\" не позволяет таблице \"%s\" стать потомком в иерархии " "наследования" -#: commands/tablecmds.c:13706 +#: commands/tablecmds.c:13941 #, c-format msgid "" "ROW triggers with transition tables are not supported in inheritance " @@ -10952,24 +11019,36 @@ "Триггеры ROW с переходными таблицами не поддерживаются в иерархиях " "наследования." -#: commands/tablecmds.c:13909 +#: commands/tablecmds.c:14144 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "столбец \"%s\" в дочерней таблице должен быть помечен как NOT NULL" -#: commands/tablecmds.c:13936 +#: commands/tablecmds.c:14153 +#, c-format +msgid "column \"%s\" in child table must be a generated column" +msgstr "столбец \"%s\" в дочерней таблице должен быть генерируемым" + +#: commands/tablecmds.c:14203 +#, c-format +msgid "column \"%s\" in child table has a conflicting generation expression" +msgstr "" +"столбец \"%s\" в дочерней таблице содержит конфликтующее генерирующее " +"выражение" + +#: commands/tablecmds.c:14231 #, c-format msgid "child table is missing column \"%s\"" msgstr "в дочерней таблице не хватает столбца \"%s\"" -#: commands/tablecmds.c:14024 +#: commands/tablecmds.c:14319 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "" "дочерняя таблица \"%s\" содержит другое определение ограничения-проверки \"%s" "\"" -#: commands/tablecmds.c:14032 +#: commands/tablecmds.c:14327 #, c-format msgid "" "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s" @@ -10978,7 +11057,7 @@ "ограничение \"%s\" конфликтует с ненаследуемым ограничением дочерней таблицы " "\"%s\"" -#: commands/tablecmds.c:14043 +#: commands/tablecmds.c:14338 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" @@ -10986,81 +11065,81 @@ "ограничение \"%s\" конфликтует с непроверенным (NOT VALID) ограничением " "дочерней таблицы \"%s\"" -#: commands/tablecmds.c:14078 +#: commands/tablecmds.c:14373 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "в дочерней таблице не хватает ограничения \"%s\"" -#: commands/tablecmds.c:14167 +#: commands/tablecmds.c:14462 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "отношение \"%s\" не является секцией отношения \"%s\"" -#: commands/tablecmds.c:14173 +#: commands/tablecmds.c:14468 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "отношение \"%s\" не является предком отношения \"%s\"" -#: commands/tablecmds.c:14401 +#: commands/tablecmds.c:14696 #, c-format msgid "typed tables cannot inherit" msgstr "типизированные таблицы не могут наследоваться" -#: commands/tablecmds.c:14431 +#: commands/tablecmds.c:14726 #, c-format msgid "table is missing column \"%s\"" msgstr "в таблице не хватает столбца \"%s\"" -#: commands/tablecmds.c:14442 +#: commands/tablecmds.c:14737 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "таблица содержит столбец \"%s\", тогда как тип требует \"%s\"" -#: commands/tablecmds.c:14451 +#: commands/tablecmds.c:14746 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "таблица \"%s\" содержит столбец \"%s\" другого типа" -#: commands/tablecmds.c:14465 +#: commands/tablecmds.c:14760 #, c-format msgid "table has extra column \"%s\"" msgstr "таблица содержит лишний столбец \"%s\"" -#: commands/tablecmds.c:14517 +#: commands/tablecmds.c:14812 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" - это не типизированная таблица" -#: commands/tablecmds.c:14699 +#: commands/tablecmds.c:15000 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "" "для идентификации реплики нельзя использовать неуникальный индекс \"%s\"" -#: commands/tablecmds.c:14705 +#: commands/tablecmds.c:15006 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "" "для идентификации реплики нельзя использовать не непосредственный индекс \"%s" "\"" -#: commands/tablecmds.c:14711 +#: commands/tablecmds.c:15012 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "" "для идентификации реплики нельзя использовать индекс с выражением \"%s\"" -#: commands/tablecmds.c:14717 +#: commands/tablecmds.c:15018 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "для идентификации реплики нельзя использовать частичный индекс \"%s\"" -#: commands/tablecmds.c:14723 +#: commands/tablecmds.c:15024 #, c-format msgid "cannot use invalid index \"%s\" as replica identity" msgstr "для идентификации реплики нельзя использовать нерабочий индекс \"%s\"" -#: commands/tablecmds.c:14740 +#: commands/tablecmds.c:15041 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column %d is a " @@ -11069,7 +11148,7 @@ "индекс \"%s\" нельзя использовать для идентификации реплики, так как столбец " "%d - системный" -#: commands/tablecmds.c:14747 +#: commands/tablecmds.c:15048 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column \"%s\" is " @@ -11078,13 +11157,13 @@ "индекс \"%s\" нельзя использовать для идентификации реплики, так как столбец " "\"%s\" допускает NULL" -#: commands/tablecmds.c:14940 +#: commands/tablecmds.c:15241 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "" "изменить состояние журналирования таблицы %s нельзя, так как она временная" -#: commands/tablecmds.c:14964 +#: commands/tablecmds.c:15265 #, c-format msgid "" "cannot change table \"%s\" to unlogged because it is part of a publication" @@ -11092,12 +11171,12 @@ "таблицу \"%s\" нельзя сделать нежурналируемой, так как она включена в " "публикацию" -#: commands/tablecmds.c:14966 +#: commands/tablecmds.c:15267 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Нежурналируемые отношения не поддерживают репликацию." -#: commands/tablecmds.c:15011 +#: commands/tablecmds.c:15312 #, c-format msgid "" "could not change table \"%s\" to logged because it references unlogged table " @@ -11106,7 +11185,7 @@ "не удалось сделать таблицу \"%s\" журналируемой, так как она ссылается на " "нежурналируемую таблицу \"%s\"" -#: commands/tablecmds.c:15021 +#: commands/tablecmds.c:15322 #, c-format msgid "" "could not change table \"%s\" to unlogged because it references logged table " @@ -11115,22 +11194,22 @@ "не удалось сделать таблицу \"%s\" нежурналируемой, так как она ссылается на " "журналируемую таблицу \"%s\"" -#: commands/tablecmds.c:15079 +#: commands/tablecmds.c:15380 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "переместить последовательность с владельцем в другую схему нельзя" -#: commands/tablecmds.c:15185 +#: commands/tablecmds.c:15486 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "отношение \"%s\" уже существует в схеме \"%s\"" -#: commands/tablecmds.c:15748 +#: commands/tablecmds.c:16049 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" - это не составной тип" -#: commands/tablecmds.c:15780 +#: commands/tablecmds.c:16081 #, c-format msgid "" "\"%s\" is not a table, view, materialized view, sequence, or foreign table" @@ -11138,62 +11217,62 @@ "\"%s\" - это не таблица, представление, мат. представление, " "последовательность или сторонняя таблица" -#: commands/tablecmds.c:15815 +#: commands/tablecmds.c:16116 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "нераспознанная стратегия секционирования \"%s\"" -#: commands/tablecmds.c:15823 +#: commands/tablecmds.c:16124 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "стратегия секционирования по списку не поддерживает несколько столбцов" -#: commands/tablecmds.c:15889 +#: commands/tablecmds.c:16190 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "столбец \"%s\", упомянутый в ключе секционирования, не существует" -#: commands/tablecmds.c:15897 +#: commands/tablecmds.c:16198 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "системный столбец \"%s\" нельзя использовать в ключе секционирования" -#: commands/tablecmds.c:15908 commands/tablecmds.c:16022 +#: commands/tablecmds.c:16209 commands/tablecmds.c:16323 #, c-format msgid "cannot use generated column in partition key" msgstr "генерируемый столбец нельзя использовать в ключе секционирования" -#: commands/tablecmds.c:15909 commands/tablecmds.c:16023 commands/trigger.c:641 -#: rewrite/rewriteHandler.c:830 rewrite/rewriteHandler.c:847 +#: commands/tablecmds.c:16210 commands/tablecmds.c:16324 commands/trigger.c:649 +#: rewrite/rewriteHandler.c:853 rewrite/rewriteHandler.c:870 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Столбец \"%s\" является генерируемым." -#: commands/tablecmds.c:15985 +#: commands/tablecmds.c:16286 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "" "функции в выражении ключа секционирования должны быть помечены как IMMUTABLE" -#: commands/tablecmds.c:16005 +#: commands/tablecmds.c:16306 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "" "выражения ключей секционирования не могут содержать ссылки на системный " "столбец" -#: commands/tablecmds.c:16035 +#: commands/tablecmds.c:16336 #, c-format msgid "cannot use constant expression as partition key" msgstr "" "в качестве ключа секционирования нельзя использовать константное выражение" -#: commands/tablecmds.c:16056 +#: commands/tablecmds.c:16357 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "не удалось определить правило сортировки для выражения секционирования" -#: commands/tablecmds.c:16091 +#: commands/tablecmds.c:16392 #, c-format msgid "" "You must specify a hash operator class or define a default hash operator " @@ -11202,7 +11281,7 @@ "Вы должны указать класс операторов хеширования или определить класс " "операторов хеширования по умолчанию для этого типа данных." -#: commands/tablecmds.c:16097 +#: commands/tablecmds.c:16398 #, c-format msgid "" "You must specify a btree operator class or define a default btree operator " @@ -11211,7 +11290,7 @@ "Вы должны указать класс операторов B-дерева или определить класс операторов " "B-дерева по умолчанию для этого типа данных." -#: commands/tablecmds.c:16242 +#: commands/tablecmds.c:16543 #, c-format msgid "" "partition constraint for table \"%s\" is implied by existing constraints" @@ -11219,7 +11298,7 @@ "ограничение секции для таблицы \"%s\" подразумевается существующими " "ограничениями" -#: commands/tablecmds.c:16246 partitioning/partbounds.c:3119 +#: commands/tablecmds.c:16547 partitioning/partbounds.c:3119 #: partitioning/partbounds.c:3170 #, c-format msgid "" @@ -11229,27 +11308,27 @@ "изменённое ограничение секции для секции по умолчанию \"%s\" подразумевается " "существующими ограничениями" -#: commands/tablecmds.c:16345 +#: commands/tablecmds.c:16646 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" уже является секцией" -#: commands/tablecmds.c:16351 +#: commands/tablecmds.c:16652 #, c-format msgid "cannot attach a typed table as partition" msgstr "подключить типизированную таблицу в качестве секции нельзя" -#: commands/tablecmds.c:16367 +#: commands/tablecmds.c:16668 #, c-format msgid "cannot attach inheritance child as partition" msgstr "подключить потомок в иерархии наследования в качестве секции нельзя" -#: commands/tablecmds.c:16381 +#: commands/tablecmds.c:16682 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "подключить родитель в иерархии наследования в качестве секции нельзя" -#: commands/tablecmds.c:16415 +#: commands/tablecmds.c:16716 #, c-format msgid "" "cannot attach a temporary relation as partition of permanent relation \"%s\"" @@ -11257,7 +11336,7 @@ "подключить временное отношение в качестве секции постоянного отношения \"%s" "\" нельзя" -#: commands/tablecmds.c:16423 +#: commands/tablecmds.c:16724 #, c-format msgid "" "cannot attach a permanent relation as partition of temporary relation \"%s\"" @@ -11265,75 +11344,75 @@ "подключить постоянное отношение в качестве секции временного отношения \"%s" "\" нельзя" -#: commands/tablecmds.c:16431 +#: commands/tablecmds.c:16732 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "подключить секцию к временному отношению в другом сеансе нельзя" -#: commands/tablecmds.c:16438 +#: commands/tablecmds.c:16739 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "" "подключить временное отношение из другого сеанса в качестве секции нельзя" -#: commands/tablecmds.c:16458 +#: commands/tablecmds.c:16759 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "" "таблица \"%s\" содержит столбец \"%s\", отсутствующий в родителе \"%s\"" -#: commands/tablecmds.c:16461 +#: commands/tablecmds.c:16762 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "" "Новая секция может содержать только столбцы, имеющиеся в родительской " "таблице." -#: commands/tablecmds.c:16473 +#: commands/tablecmds.c:16774 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "триггер \"%s\" не позволяет сделать таблицу \"%s\" секцией" -#: commands/tablecmds.c:16475 commands/trigger.c:447 +#: commands/tablecmds.c:16776 commands/trigger.c:455 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "триггеры ROW с переходными таблицами для секций не поддерживаются" -#: commands/tablecmds.c:16638 +#: commands/tablecmds.c:16955 #, c-format msgid "" "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "" "нельзя присоединить стороннюю таблицу \"%s\" в качестве секции таблицы \"%s\"" -#: commands/tablecmds.c:16641 +#: commands/tablecmds.c:16958 #, c-format msgid "Table \"%s\" contains unique indexes." msgstr "Таблица \"%s\" содержит уникальные индексы." -#: commands/tablecmds.c:17287 commands/tablecmds.c:17307 -#: commands/tablecmds.c:17327 commands/tablecmds.c:17346 -#: commands/tablecmds.c:17388 +#: commands/tablecmds.c:17623 commands/tablecmds.c:17643 +#: commands/tablecmds.c:17663 commands/tablecmds.c:17682 +#: commands/tablecmds.c:17724 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "нельзя присоединить индекс \"%s\" в качестве секции индекса \"%s\"" -#: commands/tablecmds.c:17290 +#: commands/tablecmds.c:17626 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Индекс \"%s\" уже присоединён к другому индексу." -#: commands/tablecmds.c:17310 +#: commands/tablecmds.c:17646 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Индекс \"%s\" не является индексом какой-либо секции таблицы \"%s\"." -#: commands/tablecmds.c:17330 +#: commands/tablecmds.c:17666 #, c-format msgid "The index definitions do not match." msgstr "Определения индексов не совпадают." -#: commands/tablecmds.c:17349 +#: commands/tablecmds.c:17685 #, c-format msgid "" "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint " @@ -11342,24 +11421,24 @@ "Индекс \"%s\" принадлежит ограничению в таблице \"%s\", но для индекса \"%s" "\" ограничения нет." -#: commands/tablecmds.c:17391 +#: commands/tablecmds.c:17727 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "К секции \"%s\" уже присоединён другой индекс." #: commands/tablespace.c:162 commands/tablespace.c:179 #: commands/tablespace.c:190 commands/tablespace.c:198 -#: commands/tablespace.c:650 replication/slot.c:1373 storage/file/copydir.c:47 +#: commands/tablespace.c:636 replication/slot.c:1460 storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не удалось создать каталог \"%s\": %m" -#: commands/tablespace.c:209 +#: commands/tablespace.c:209 commands/tablespace.c:631 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "не удалось получить информацию о каталоге \"%s\": %m" -#: commands/tablespace.c:218 +#: commands/tablespace.c:218 commands/tablespace.c:642 #, c-format msgid "\"%s\" exists but is not a directory" msgstr "\"%s\" существует, но это не каталог" @@ -11394,24 +11473,24 @@ msgid "tablespace location should not be inside the data directory" msgstr "табличное пространство не должно располагаться внутри каталога данных" -#: commands/tablespace.c:305 commands/tablespace.c:977 +#: commands/tablespace.c:305 commands/tablespace.c:973 #, c-format msgid "unacceptable tablespace name \"%s\"" msgstr "неприемлемое имя табличного пространства: \"%s\"" -#: commands/tablespace.c:307 commands/tablespace.c:978 +#: commands/tablespace.c:307 commands/tablespace.c:974 #, c-format msgid "The prefix \"pg_\" is reserved for system tablespaces." msgstr "Префикс \"pg_\" зарезервирован для системных табличных пространств." -#: commands/tablespace.c:326 commands/tablespace.c:999 +#: commands/tablespace.c:326 commands/tablespace.c:995 #, c-format msgid "tablespace \"%s\" already exists" msgstr "табличное пространство \"%s\" уже существует" -#: commands/tablespace.c:444 commands/tablespace.c:960 -#: commands/tablespace.c:1049 commands/tablespace.c:1118 -#: commands/tablespace.c:1264 commands/tablespace.c:1467 +#: commands/tablespace.c:444 commands/tablespace.c:956 +#: commands/tablespace.c:1045 commands/tablespace.c:1114 +#: commands/tablespace.c:1260 commands/tablespace.c:1463 #, c-format msgid "tablespace \"%s\" does not exist" msgstr "табличное пространство \"%s\" не существует" @@ -11449,142 +11528,142 @@ msgid "could not set permissions on directory \"%s\": %m" msgstr "не удалось установить права для каталога \"%s\": %m" -#: commands/tablespace.c:645 +#: commands/tablespace.c:647 #, c-format msgid "directory \"%s\" already in use as a tablespace" msgstr "каталог \"%s\" уже используется как табличное пространство" -#: commands/tablespace.c:769 commands/tablespace.c:782 -#: commands/tablespace.c:818 commands/tablespace.c:910 storage/file/fd.c:3108 -#: storage/file/fd.c:3448 +#: commands/tablespace.c:765 commands/tablespace.c:778 +#: commands/tablespace.c:814 commands/tablespace.c:906 storage/file/fd.c:3122 +#: storage/file/fd.c:3462 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "ошибка при удалении каталога \"%s\": %m" -#: commands/tablespace.c:831 commands/tablespace.c:919 +#: commands/tablespace.c:827 commands/tablespace.c:915 #, c-format msgid "could not remove symbolic link \"%s\": %m" msgstr "ошибка при удалении символической ссылки \"%s\": %m" -#: commands/tablespace.c:841 commands/tablespace.c:928 +#: commands/tablespace.c:837 commands/tablespace.c:924 #, c-format msgid "\"%s\" is not a directory or symbolic link" msgstr "\"%s\" - это не каталог или символическая ссылка" -#: commands/tablespace.c:1123 +#: commands/tablespace.c:1119 #, c-format msgid "Tablespace \"%s\" does not exist." msgstr "Табличное пространство \"%s\" не существует." -#: commands/tablespace.c:1566 +#: commands/tablespace.c:1562 #, c-format msgid "directories for tablespace %u could not be removed" msgstr "удалить каталоги табличного пространства %u не удалось" -#: commands/tablespace.c:1568 +#: commands/tablespace.c:1564 #, c-format msgid "You can remove the directories manually if necessary." msgstr "При необходимости вы можете удалить их вручную." -#: commands/trigger.c:204 commands/trigger.c:215 +#: commands/trigger.c:212 commands/trigger.c:223 #, c-format msgid "\"%s\" is a table" msgstr "\"%s\" - это таблица" -#: commands/trigger.c:206 commands/trigger.c:217 +#: commands/trigger.c:214 commands/trigger.c:225 #, c-format msgid "Tables cannot have INSTEAD OF triggers." msgstr "У таблиц не может быть триггеров INSTEAD OF." -#: commands/trigger.c:238 +#: commands/trigger.c:246 #, c-format msgid "\"%s\" is a partitioned table" msgstr "\"%s\" - секционированная таблица" -#: commands/trigger.c:240 +#: commands/trigger.c:248 #, c-format msgid "Triggers on partitioned tables cannot have transition tables." msgstr "" "Триггеры секционированных таблиц не могут использовать переходные таблицы." -#: commands/trigger.c:252 commands/trigger.c:259 commands/trigger.c:429 +#: commands/trigger.c:260 commands/trigger.c:267 commands/trigger.c:437 #, c-format msgid "\"%s\" is a view" msgstr "\"%s\" - это представление" -#: commands/trigger.c:254 +#: commands/trigger.c:262 #, c-format msgid "Views cannot have row-level BEFORE or AFTER triggers." msgstr "У представлений не может быть строковых триггеров BEFORE/AFTER." -#: commands/trigger.c:261 +#: commands/trigger.c:269 #, c-format msgid "Views cannot have TRUNCATE triggers." msgstr "У представлений не может быть триггеров TRUNCATE." -#: commands/trigger.c:269 commands/trigger.c:276 commands/trigger.c:288 -#: commands/trigger.c:422 +#: commands/trigger.c:277 commands/trigger.c:284 commands/trigger.c:296 +#: commands/trigger.c:430 #, c-format msgid "\"%s\" is a foreign table" msgstr "\"%s\" - сторонняя таблица" -#: commands/trigger.c:271 +#: commands/trigger.c:279 #, c-format msgid "Foreign tables cannot have INSTEAD OF triggers." msgstr "У сторонних таблиц не может быть триггеров INSTEAD OF." -#: commands/trigger.c:278 +#: commands/trigger.c:286 #, c-format msgid "Foreign tables cannot have TRUNCATE triggers." msgstr "У сторонних таблиц не может быть триггеров TRUNCATE." -#: commands/trigger.c:290 +#: commands/trigger.c:298 #, c-format msgid "Foreign tables cannot have constraint triggers." msgstr "У сторонних таблиц не может быть ограничивающих триггеров." -#: commands/trigger.c:365 +#: commands/trigger.c:373 #, c-format msgid "TRUNCATE FOR EACH ROW triggers are not supported" msgstr "триггеры TRUNCATE FOR EACH ROW не поддерживаются" -#: commands/trigger.c:373 +#: commands/trigger.c:381 #, c-format msgid "INSTEAD OF triggers must be FOR EACH ROW" msgstr "триггеры INSTEAD OF должны иметь тип FOR EACH ROW" -#: commands/trigger.c:377 +#: commands/trigger.c:385 #, c-format msgid "INSTEAD OF triggers cannot have WHEN conditions" msgstr "триггеры INSTEAD OF несовместимы с условиями WHEN" -#: commands/trigger.c:381 +#: commands/trigger.c:389 #, c-format msgid "INSTEAD OF triggers cannot have column lists" msgstr "для триггеров INSTEAD OF нельзя задать список столбцов" -#: commands/trigger.c:410 +#: commands/trigger.c:418 #, c-format msgid "ROW variable naming in the REFERENCING clause is not supported" msgstr "" "указание переменной типа кортеж в предложении REFERENCING не поддерживается" -#: commands/trigger.c:411 +#: commands/trigger.c:419 #, c-format msgid "Use OLD TABLE or NEW TABLE for naming transition tables." msgstr "Используйте OLD TABLE или NEW TABLE для именования переходных таблиц." -#: commands/trigger.c:424 +#: commands/trigger.c:432 #, c-format msgid "Triggers on foreign tables cannot have transition tables." msgstr "Триггеры сторонних таблиц не могут использовать переходные таблицы." -#: commands/trigger.c:431 +#: commands/trigger.c:439 #, c-format msgid "Triggers on views cannot have transition tables." msgstr "Триггеры представлений не могут использовать переходные таблицы." -#: commands/trigger.c:451 +#: commands/trigger.c:459 #, c-format msgid "" "ROW triggers with transition tables are not supported on inheritance children" @@ -11592,17 +11671,17 @@ "триггеры ROW с переходными таблицами для потомков в иерархии наследования не " "поддерживаются" -#: commands/trigger.c:457 +#: commands/trigger.c:465 #, c-format msgid "transition table name can only be specified for an AFTER trigger" msgstr "имя переходной таблицы можно задать только для триггера AFTER" -#: commands/trigger.c:462 +#: commands/trigger.c:470 #, c-format msgid "TRUNCATE triggers with transition tables are not supported" msgstr "триггеры TRUNCATE с переходными таблицами не поддерживаются" -#: commands/trigger.c:479 +#: commands/trigger.c:487 #, c-format msgid "" "transition tables cannot be specified for triggers with more than one event" @@ -11610,100 +11689,100 @@ "переходные таблицы нельзя задать для триггеров, назначаемых для нескольких " "событий" -#: commands/trigger.c:490 +#: commands/trigger.c:498 #, c-format msgid "transition tables cannot be specified for triggers with column lists" msgstr "переходные таблицы нельзя задать для триггеров со списками столбцов" -#: commands/trigger.c:507 +#: commands/trigger.c:515 #, c-format msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger" msgstr "NEW TABLE можно задать только для триггеров INSERT или UPDATE" -#: commands/trigger.c:512 +#: commands/trigger.c:520 #, c-format msgid "NEW TABLE cannot be specified multiple times" msgstr "NEW TABLE нельзя задать несколько раз" -#: commands/trigger.c:522 +#: commands/trigger.c:530 #, c-format msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger" msgstr "OLD TABLE можно задать только для триггеров DELETE или UPDATE" -#: commands/trigger.c:527 +#: commands/trigger.c:535 #, c-format msgid "OLD TABLE cannot be specified multiple times" msgstr "OLD TABLE нельзя задать несколько раз" -#: commands/trigger.c:537 +#: commands/trigger.c:545 #, c-format msgid "OLD TABLE name and NEW TABLE name cannot be the same" msgstr "имя OLD TABLE не должно совпадать с именем NEW TABLE" -#: commands/trigger.c:601 commands/trigger.c:614 +#: commands/trigger.c:609 commands/trigger.c:622 #, c-format msgid "statement trigger's WHEN condition cannot reference column values" msgstr "" "в условии WHEN для операторного триггера нельзя ссылаться на значения " "столбцов" -#: commands/trigger.c:606 +#: commands/trigger.c:614 #, c-format msgid "INSERT trigger's WHEN condition cannot reference OLD values" msgstr "в условии WHEN для триггера INSERT нельзя ссылаться на значения OLD" -#: commands/trigger.c:619 +#: commands/trigger.c:627 #, c-format msgid "DELETE trigger's WHEN condition cannot reference NEW values" msgstr "в условии WHEN для триггера DELETE нельзя ссылаться на значения NEW" -#: commands/trigger.c:624 +#: commands/trigger.c:632 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns" msgstr "" "в условии WHEN для триггера BEFORE нельзя ссылаться на системные столбцы NEW" -#: commands/trigger.c:632 commands/trigger.c:640 +#: commands/trigger.c:640 commands/trigger.c:648 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns" msgstr "" "в условии WHEN для триггера BEFORE нельзя ссылаться на генерируемые столбцы " "NEW" -#: commands/trigger.c:633 +#: commands/trigger.c:641 #, c-format msgid "A whole-row reference is used and the table contains generated columns." msgstr "" "Используется ссылка на всю строку таблицы, а таблица содержит генерируемые " "столбцы." -#: commands/trigger.c:780 commands/trigger.c:1385 +#: commands/trigger.c:788 commands/trigger.c:1393 #, c-format msgid "trigger \"%s\" for relation \"%s\" already exists" msgstr "триггер \"%s\" для отношения \"%s\" уже существует" -#: commands/trigger.c:1271 commands/trigger.c:1432 commands/trigger.c:1547 +#: commands/trigger.c:1279 commands/trigger.c:1440 commands/trigger.c:1555 #, c-format msgid "trigger \"%s\" for table \"%s\" does not exist" msgstr "триггер \"%s\" для таблицы \"%s\" не существует" -#: commands/trigger.c:1515 +#: commands/trigger.c:1523 #, c-format msgid "permission denied: \"%s\" is a system trigger" msgstr "нет доступа: \"%s\" - это системный триггер" -#: commands/trigger.c:2095 +#: commands/trigger.c:2103 #, c-format msgid "trigger function %u returned null value" msgstr "триггерная функция %u вернула значение NULL" -#: commands/trigger.c:2155 commands/trigger.c:2369 commands/trigger.c:2604 -#: commands/trigger.c:2902 +#: commands/trigger.c:2163 commands/trigger.c:2377 commands/trigger.c:2615 +#: commands/trigger.c:2916 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "триггер BEFORE STATEMENT не может возвращать значение" -#: commands/trigger.c:2229 +#: commands/trigger.c:2237 #, c-format msgid "" "moving row to another partition during a BEFORE FOR EACH ROW trigger is not " @@ -11711,7 +11790,7 @@ msgstr "" "в триггере BEFORE FOR EACH ROW нельзя перемещать строку в другую секцию" -#: commands/trigger.c:2230 +#: commands/trigger.c:2238 #, c-format msgid "" "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." @@ -11719,8 +11798,8 @@ "До выполнения триггера \"%s\" строка должна была находиться в секции \"%s.%s" "\"." -#: commands/trigger.c:2968 executor/nodeModifyTable.c:1380 -#: executor/nodeModifyTable.c:1449 +#: commands/trigger.c:2982 executor/nodeModifyTable.c:1451 +#: executor/nodeModifyTable.c:1520 #, c-format msgid "" "tuple to be updated was already modified by an operation triggered by the " @@ -11729,9 +11808,9 @@ "кортеж, который должен быть изменён, уже модифицирован в операции, вызванной " "текущей командой" -#: commands/trigger.c:2969 executor/nodeModifyTable.c:840 -#: executor/nodeModifyTable.c:914 executor/nodeModifyTable.c:1381 -#: executor/nodeModifyTable.c:1450 +#: commands/trigger.c:2983 executor/nodeModifyTable.c:901 +#: executor/nodeModifyTable.c:975 executor/nodeModifyTable.c:1452 +#: executor/nodeModifyTable.c:1521 #, c-format msgid "" "Consider using an AFTER trigger instead of a BEFORE trigger to propagate " @@ -11740,33 +11819,33 @@ "Возможно, для распространения изменений в другие строки следует использовать " "триггер AFTER вместо BEFORE." -#: commands/trigger.c:2998 executor/nodeLockRows.c:225 -#: executor/nodeLockRows.c:234 executor/nodeModifyTable.c:220 -#: executor/nodeModifyTable.c:856 executor/nodeModifyTable.c:1397 -#: executor/nodeModifyTable.c:1613 +#: commands/trigger.c:3012 executor/nodeLockRows.c:225 +#: executor/nodeLockRows.c:234 executor/nodeModifyTable.c:226 +#: executor/nodeModifyTable.c:917 executor/nodeModifyTable.c:1468 +#: executor/nodeModifyTable.c:1686 #, c-format msgid "could not serialize access due to concurrent update" msgstr "не удалось сериализовать доступ из-за параллельного изменения" -#: commands/trigger.c:3006 executor/nodeModifyTable.c:946 -#: executor/nodeModifyTable.c:1467 executor/nodeModifyTable.c:1637 +#: commands/trigger.c:3020 executor/nodeModifyTable.c:1007 +#: executor/nodeModifyTable.c:1538 executor/nodeModifyTable.c:1710 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "не удалось сериализовать доступ из-за параллельного удаления" -#: commands/trigger.c:4065 +#: commands/trigger.c:4081 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "" "в рамках операции с ограничениями по безопасности нельзя вызвать отложенный " "триггер" -#: commands/trigger.c:5078 +#: commands/trigger.c:5123 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "ограничение \"%s\" не является откладываемым" -#: commands/trigger.c:5101 +#: commands/trigger.c:5146 #, c-format msgid "constraint \"%s\" does not exist" msgstr "ограничение \"%s\" не существует" @@ -11881,7 +11960,7 @@ "Создайте тип в виде оболочки, затем определите для него функции ввода-вывода " "и в завершение выполните полноценную команду CREATE TYPE." -#: commands/typecmds.c:314 commands/typecmds.c:1394 commands/typecmds.c:3832 +#: commands/typecmds.c:314 commands/typecmds.c:1396 commands/typecmds.c:3840 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "атрибут типа \"%s\" не распознан" @@ -11901,7 +11980,7 @@ msgid "alignment \"%s\" not recognized" msgstr "тип выравнивания \"%s\" не распознан" -#: commands/typecmds.c:438 commands/typecmds.c:3718 +#: commands/typecmds.c:438 commands/typecmds.c:3726 #, c-format msgid "storage \"%s\" not recognized" msgstr "неизвестная стратегия хранения \"%s\"" @@ -11935,73 +12014,73 @@ msgid "multiple default expressions" msgstr "неоднократное определение значения типа по умолчанию" -#: commands/typecmds.c:900 commands/typecmds.c:909 +#: commands/typecmds.c:902 commands/typecmds.c:911 #, c-format msgid "conflicting NULL/NOT NULL constraints" msgstr "конфликтующие ограничения NULL/NOT NULL" -#: commands/typecmds.c:925 +#: commands/typecmds.c:927 #, c-format msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "" "ограничения-проверки для доменов не могут иметь характеристики NO INHERIT" -#: commands/typecmds.c:934 commands/typecmds.c:2536 +#: commands/typecmds.c:936 commands/typecmds.c:2539 #, c-format msgid "unique constraints not possible for domains" msgstr "ограничения уникальности невозможны для доменов" -#: commands/typecmds.c:940 commands/typecmds.c:2542 +#: commands/typecmds.c:942 commands/typecmds.c:2545 #, c-format msgid "primary key constraints not possible for domains" msgstr "ограничения первичного ключа невозможны для доменов" -#: commands/typecmds.c:946 commands/typecmds.c:2548 +#: commands/typecmds.c:948 commands/typecmds.c:2551 #, c-format msgid "exclusion constraints not possible for domains" msgstr "ограничения-исключения невозможны для доменов" -#: commands/typecmds.c:952 commands/typecmds.c:2554 +#: commands/typecmds.c:954 commands/typecmds.c:2557 #, c-format msgid "foreign key constraints not possible for domains" msgstr "ограничения внешних ключей невозможны для доменов" -#: commands/typecmds.c:961 commands/typecmds.c:2563 +#: commands/typecmds.c:963 commands/typecmds.c:2566 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "" "возможность определения отложенных ограничений для доменов не поддерживается" -#: commands/typecmds.c:1271 utils/cache/typcache.c:2430 +#: commands/typecmds.c:1273 utils/cache/typcache.c:2448 #, c-format msgid "%s is not an enum" msgstr "\"%s\" не является перечислением" -#: commands/typecmds.c:1402 +#: commands/typecmds.c:1404 #, c-format msgid "type attribute \"subtype\" is required" msgstr "требуется атрибут типа \"subtype\"" -#: commands/typecmds.c:1407 +#: commands/typecmds.c:1409 #, c-format msgid "range subtype cannot be %s" msgstr "%s не может быть подтипом диапазона" -#: commands/typecmds.c:1426 +#: commands/typecmds.c:1428 #, c-format msgid "range collation specified but subtype does not support collation" msgstr "" "указано правило сортировки для диапазона, но подтип не поддерживает " "сортировку" -#: commands/typecmds.c:1436 +#: commands/typecmds.c:1438 #, c-format msgid "cannot specify a canonical function without a pre-created shell type" msgstr "" "функцию получения канонического диапазона нельзя задать без предварительно " "созданного типа-пустышки" -#: commands/typecmds.c:1437 +#: commands/typecmds.c:1439 #, c-format msgid "" "Create the type as a shell type, then create its canonicalization function, " @@ -12010,82 +12089,82 @@ "Создайте тип в виде оболочки, затем определите для него функции приведения к " "каноническому виду и в завершение выполните полноценную команду CREATE TYPE." -#: commands/typecmds.c:1648 +#: commands/typecmds.c:1650 #, c-format msgid "type input function %s has multiple matches" msgstr "функция ввода типа %s присутствует в нескольких экземплярах" -#: commands/typecmds.c:1666 +#: commands/typecmds.c:1668 #, c-format msgid "type input function %s must return type %s" msgstr "функция ввода типа %s должна возвращать тип %s" -#: commands/typecmds.c:1682 +#: commands/typecmds.c:1684 #, c-format msgid "type input function %s should not be volatile" msgstr "функция ввода типа %s не должна быть изменчивой" -#: commands/typecmds.c:1710 +#: commands/typecmds.c:1712 #, c-format msgid "type output function %s must return type %s" msgstr "функция вывода типа %s должна возвращать тип %s" -#: commands/typecmds.c:1717 +#: commands/typecmds.c:1719 #, c-format msgid "type output function %s should not be volatile" msgstr "функция вывода типа %s не должна быть изменчивой" -#: commands/typecmds.c:1746 +#: commands/typecmds.c:1748 #, c-format msgid "type receive function %s has multiple matches" msgstr "функция получения типа %s присутствует в нескольких экземплярах" -#: commands/typecmds.c:1764 +#: commands/typecmds.c:1766 #, c-format msgid "type receive function %s must return type %s" msgstr "функция получения типа %s должна возвращать тип %s" -#: commands/typecmds.c:1771 +#: commands/typecmds.c:1773 #, c-format msgid "type receive function %s should not be volatile" msgstr "функция получения типа %s не должна быть изменчивой" -#: commands/typecmds.c:1799 +#: commands/typecmds.c:1801 #, c-format msgid "type send function %s must return type %s" msgstr "функция отправки типа %s должна возвращать тип %s" -#: commands/typecmds.c:1806 +#: commands/typecmds.c:1808 #, c-format msgid "type send function %s should not be volatile" msgstr "функция отправки типа %s не должна быть изменчивой" -#: commands/typecmds.c:1833 +#: commands/typecmds.c:1835 #, c-format msgid "typmod_in function %s must return type %s" msgstr "функция TYPMOD_IN %s должна возвращать тип %s" -#: commands/typecmds.c:1840 +#: commands/typecmds.c:1842 #, c-format msgid "type modifier input function %s should not be volatile" msgstr "функция ввода модификатора типа %s не должна быть изменчивой" -#: commands/typecmds.c:1867 +#: commands/typecmds.c:1869 #, c-format msgid "typmod_out function %s must return type %s" msgstr "функция TYPMOD_OUT %s должна возвращать тип %s" -#: commands/typecmds.c:1874 +#: commands/typecmds.c:1876 #, c-format msgid "type modifier output function %s should not be volatile" msgstr "функция вывода модификатора типа %s не должна быть изменчивой" -#: commands/typecmds.c:1901 +#: commands/typecmds.c:1903 #, c-format msgid "type analyze function %s must return type %s" msgstr "функция анализа типа %s должна возвращать тип %s" -#: commands/typecmds.c:1947 +#: commands/typecmds.c:1949 #, c-format msgid "" "You must specify an operator class for the range type or define a default " @@ -12094,121 +12173,121 @@ "Вы должны указать класс операторов для типа диапазона или определить класс " "операторов по умолчанию для этого подтипа." -#: commands/typecmds.c:1978 +#: commands/typecmds.c:1980 #, c-format msgid "range canonical function %s must return range type" msgstr "" "функция получения канонического диапазона %s должна возвращать диапазон" -#: commands/typecmds.c:1984 +#: commands/typecmds.c:1986 #, c-format msgid "range canonical function %s must be immutable" msgstr "" "функция получения канонического диапазона %s должна быть постоянной " "(IMMUTABLE)" -#: commands/typecmds.c:2020 +#: commands/typecmds.c:2022 #, c-format msgid "range subtype diff function %s must return type %s" msgstr "функция различий для подтипа диапазона (%s) должна возвращать тип %s" -#: commands/typecmds.c:2027 +#: commands/typecmds.c:2029 #, c-format msgid "range subtype diff function %s must be immutable" msgstr "" "функция различий для подтипа диапазона (%s) должна быть постоянной " "(IMMUTABLE)" -#: commands/typecmds.c:2054 +#: commands/typecmds.c:2056 #, c-format msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "значение OID массива в pg_type не задано в режиме двоичного обновления" -#: commands/typecmds.c:2352 +#: commands/typecmds.c:2355 #, c-format msgid "column \"%s\" of table \"%s\" contains null values" msgstr "столбец \"%s\" таблицы \"%s\" содержит значения NULL" -#: commands/typecmds.c:2465 commands/typecmds.c:2667 +#: commands/typecmds.c:2468 commands/typecmds.c:2670 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "ограничение \"%s\" для домена \"%s\" не существует" -#: commands/typecmds.c:2469 +#: commands/typecmds.c:2472 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "ограничение \"%s\" для домена \"%s\" не существует, пропускается" -#: commands/typecmds.c:2674 +#: commands/typecmds.c:2677 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "" "ограничение \"%s\" для домена \"%s\" не является ограничением-проверкой" -#: commands/typecmds.c:2780 +#: commands/typecmds.c:2783 #, c-format msgid "" "column \"%s\" of table \"%s\" contains values that violate the new constraint" msgstr "" "столбец \"%s\" таблицы \"%s\" содержит значения, нарушающие новое ограничение" -#: commands/typecmds.c:3009 commands/typecmds.c:3207 commands/typecmds.c:3289 -#: commands/typecmds.c:3476 +#: commands/typecmds.c:3012 commands/typecmds.c:3215 commands/typecmds.c:3297 +#: commands/typecmds.c:3484 #, c-format msgid "%s is not a domain" msgstr "\"%s\" - это не домен" -#: commands/typecmds.c:3041 +#: commands/typecmds.c:3044 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "ограничение \"%s\" для домена \"%s\" уже существует" -#: commands/typecmds.c:3092 +#: commands/typecmds.c:3100 #, c-format msgid "cannot use table references in domain check constraint" msgstr "в ограничении-проверке для домена нельзя ссылаться на таблицы" -#: commands/typecmds.c:3219 commands/typecmds.c:3301 commands/typecmds.c:3593 +#: commands/typecmds.c:3227 commands/typecmds.c:3309 commands/typecmds.c:3601 #, c-format msgid "%s is a table's row type" msgstr "%s - это тип строк таблицы" -#: commands/typecmds.c:3221 commands/typecmds.c:3303 commands/typecmds.c:3595 +#: commands/typecmds.c:3229 commands/typecmds.c:3311 commands/typecmds.c:3603 #, c-format msgid "Use ALTER TABLE instead." msgstr "Изменить его можно с помощью ALTER TABLE." -#: commands/typecmds.c:3228 commands/typecmds.c:3310 commands/typecmds.c:3508 +#: commands/typecmds.c:3236 commands/typecmds.c:3318 commands/typecmds.c:3516 #, c-format msgid "cannot alter array type %s" msgstr "изменить тип массива \"%s\" нельзя" -#: commands/typecmds.c:3230 commands/typecmds.c:3312 commands/typecmds.c:3510 +#: commands/typecmds.c:3238 commands/typecmds.c:3320 commands/typecmds.c:3518 #, c-format msgid "You can alter type %s, which will alter the array type as well." msgstr "Однако можно изменить тип %s, что повлечёт изменение типа массива." -#: commands/typecmds.c:3578 +#: commands/typecmds.c:3586 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "тип \"%s\" уже существует в схеме \"%s\"" -#: commands/typecmds.c:3746 +#: commands/typecmds.c:3754 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "сменить вариант хранения типа на PLAIN нельзя" -#: commands/typecmds.c:3827 +#: commands/typecmds.c:3835 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "у типа нельзя изменить атрибут \"%s\"" -#: commands/typecmds.c:3845 +#: commands/typecmds.c:3853 #, c-format msgid "must be superuser to alter a type" msgstr "для модификации типа нужно быть суперпользователем" -#: commands/typecmds.c:3866 commands/typecmds.c:3876 +#: commands/typecmds.c:3874 commands/typecmds.c:3884 #, c-format msgid "%s is not a base type" msgstr "%s — не базовый тип" @@ -12296,9 +12375,10 @@ msgid "cannot use special role specifier in DROP ROLE" msgstr "использовать специальную роль в DROP ROLE нельзя" -#: commands/user.c:1040 commands/user.c:1197 commands/variable.c:770 -#: commands/variable.c:844 utils/adt/acl.c:5187 utils/adt/acl.c:5234 -#: utils/adt/acl.c:5262 utils/adt/acl.c:5280 utils/init/miscinit.c:675 +#: commands/user.c:1040 commands/user.c:1197 commands/variable.c:778 +#: commands/variable.c:781 commands/variable.c:865 commands/variable.c:868 +#: utils/adt/acl.c:5187 utils/adt/acl.c:5234 utils/adt/acl.c:5262 +#: utils/adt/acl.c:5280 utils/init/miscinit.c:674 #, c-format msgid "role \"%s\" does not exist" msgstr "роль \"%s\" не существует" @@ -12405,8 +12485,9 @@ #: commands/vacuum.c:163 #, c-format -msgid "parallel vacuum degree must be between 0 and %d" -msgstr "степень параллельности для очистки должна задаваться числом от 0 до %d" +msgid "parallel workers for vacuum must be between 0 and %d" +msgstr "" +"число параллельных исполнителей для выполнения очистки должно быть от 0 до %d" #: commands/vacuum.c:180 #, c-format @@ -12544,7 +12625,7 @@ "\"%s\" пропускается --- очищать не таблицы или специальные системные таблицы " "нельзя" -#: commands/variable.c:165 utils/misc/guc.c:11184 utils/misc/guc.c:11246 +#: commands/variable.c:165 utils/misc/guc.c:11207 utils/misc/guc.c:11269 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "нераспознанное ключевое слово: \"%s\"." @@ -12649,7 +12730,12 @@ msgid "cannot change client_encoding during a parallel operation" msgstr "изменить клиентскую кодировку во время параллельной операции нельзя" -#: commands/variable.c:863 +#: commands/variable.c:890 +#, c-format +msgid "permission will be denied to set role \"%s\"" +msgstr "нет прав установить роль \"%s\"" + +#: commands/variable.c:895 #, c-format msgid "permission denied to set role \"%s\"" msgstr "нет прав установить роль \"%s\"" @@ -12743,7 +12829,7 @@ msgstr "" "для курсора \"%s\" не выполняется обновляемое сканирование таблицы \"%s\"" -#: executor/execCurrent.c:280 executor/execExprInterp.c:2404 +#: executor/execCurrent.c:280 executor/execExprInterp.c:2434 #, c-format msgid "" "type of parameter %d (%s) does not match that when preparing the plan (%s)" @@ -12751,27 +12837,27 @@ "тип параметра %d (%s) не соответствует тому, с которым подготавливался план " "(%s)" -#: executor/execCurrent.c:292 executor/execExprInterp.c:2416 +#: executor/execCurrent.c:292 executor/execExprInterp.c:2446 #, c-format msgid "no value found for parameter %d" msgstr "не найдено значение параметра %d" -#: executor/execExpr.c:859 parser/parse_agg.c:816 +#: executor/execExpr.c:890 parser/parse_agg.c:809 #, c-format msgid "window function calls cannot be nested" msgstr "вложенные вызовы оконных функций недопустимы" -#: executor/execExpr.c:1318 +#: executor/execExpr.c:1349 #, c-format msgid "target type is not an array" msgstr "целевой тип не является массивом" -#: executor/execExpr.c:1651 +#: executor/execExpr.c:1689 #, c-format msgid "ROW() column has type %s instead of type %s" msgstr "столбец ROW() имеет тип %s, а должен - %s" -#: executor/execExpr.c:2176 executor/execSRF.c:708 parser/parse_func.c:135 +#: executor/execExpr.c:2214 executor/execSRF.c:708 parser/parse_func.c:135 #: parser/parse_func.c:646 parser/parse_func.c:1020 #, c-format msgid "cannot pass more than %d argument to a function" @@ -12780,42 +12866,50 @@ msgstr[1] "функции нельзя передать больше %d аргументов" msgstr[2] "функции нельзя передать больше %d аргументов" -#: executor/execExpr.c:2587 executor/execExpr.c:2593 -#: executor/execExprInterp.c:2730 utils/adt/arrayfuncs.c:262 -#: utils/adt/arrayfuncs.c:560 utils/adt/arrayfuncs.c:1302 -#: utils/adt/arrayfuncs.c:3348 utils/adt/arrayfuncs.c:5308 -#: utils/adt/arrayfuncs.c:5821 +#: executor/execExpr.c:2625 executor/execExpr.c:2631 +#: executor/execExprInterp.c:2759 utils/adt/arrayfuncs.c:262 +#: utils/adt/arrayfuncs.c:562 utils/adt/arrayfuncs.c:1304 +#: utils/adt/arrayfuncs.c:3348 utils/adt/arrayfuncs.c:5310 +#: utils/adt/arrayfuncs.c:5827 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "число размерностей массива (%d) превышает предел (%d)" -#: executor/execExprInterp.c:1894 +#: executor/execExprInterp.c:1899 #, c-format msgid "attribute %d of type %s has been dropped" msgstr "атрибут %d типа %s был удалён" -#: executor/execExprInterp.c:1900 +#: executor/execExprInterp.c:1905 #, c-format msgid "attribute %d of type %s has wrong type" msgstr "атрибут %d типа %s имеет неправильный тип" -#: executor/execExprInterp.c:1902 executor/execExprInterp.c:3002 -#: executor/execExprInterp.c:3049 +#: executor/execExprInterp.c:1907 executor/execExprInterp.c:3035 +#: executor/execExprInterp.c:3081 #, c-format msgid "Table has type %s, but query expects %s." msgstr "В таблице задан тип %s, а в запросе ожидается %s." -#: executor/execExprInterp.c:2494 +#: executor/execExprInterp.c:1986 utils/adt/expandedrecord.c:99 +#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1632 +#: utils/cache/typcache.c:1788 utils/cache/typcache.c:1936 +#: utils/fmgr/funcapi.c:456 +#, c-format +msgid "type %s is not composite" +msgstr "тип %s не является составным" + +#: executor/execExprInterp.c:2524 #, c-format msgid "WHERE CURRENT OF is not supported for this table type" msgstr "WHERE CURRENT OF для таблиц такого типа не поддерживается" -#: executor/execExprInterp.c:2708 +#: executor/execExprInterp.c:2737 #, c-format msgid "cannot merge incompatible arrays" msgstr "не удалось объединить несовместимые массивы" -#: executor/execExprInterp.c:2709 +#: executor/execExprInterp.c:2738 #, c-format msgid "" "Array with element type %s cannot be included in ARRAY construct with " @@ -12824,7 +12918,7 @@ "Массив с типом элементов %s нельзя включить в конструкцию ARRAY с типом " "элементов %s." -#: executor/execExprInterp.c:2750 executor/execExprInterp.c:2780 +#: executor/execExprInterp.c:2779 executor/execExprInterp.c:2809 #, c-format msgid "" "multidimensional arrays must have array expressions with matching dimensions" @@ -12832,35 +12926,35 @@ "для многомерных массивов должны задаваться выражения с соответствующими " "размерностями" -#: executor/execExprInterp.c:3001 executor/execExprInterp.c:3048 +#: executor/execExprInterp.c:3034 executor/execExprInterp.c:3080 #, c-format msgid "attribute %d has wrong type" msgstr "атрибут %d имеет неверный тип" -#: executor/execExprInterp.c:3158 +#: executor/execExprInterp.c:3194 #, c-format msgid "array subscript in assignment must not be null" msgstr "индекс элемента массива в присваивании не может быть NULL" -#: executor/execExprInterp.c:3588 utils/adt/domains.c:149 +#: executor/execExprInterp.c:3621 utils/adt/domains.c:149 #, c-format msgid "domain %s does not allow null values" msgstr "домен %s не допускает значения null" -#: executor/execExprInterp.c:3603 utils/adt/domains.c:184 +#: executor/execExprInterp.c:3636 utils/adt/domains.c:184 #, c-format msgid "value for domain %s violates check constraint \"%s\"" msgstr "значение домена %s нарушает ограничение-проверку \"%s\"" -#: executor/execExprInterp.c:3973 executor/execExprInterp.c:3990 -#: executor/execExprInterp.c:4091 executor/nodeModifyTable.c:109 +#: executor/execExprInterp.c:4002 executor/execExprInterp.c:4019 +#: executor/execExprInterp.c:4118 executor/nodeModifyTable.c:109 #: executor/nodeModifyTable.c:120 executor/nodeModifyTable.c:137 #: executor/nodeModifyTable.c:145 #, c-format msgid "table row type and query-specified row type do not match" msgstr "тип строки таблицы отличается от типа строки-результата запроса" -#: executor/execExprInterp.c:3974 +#: executor/execExprInterp.c:4003 #, c-format msgid "Table row contains %d attribute, but query expects %d." msgid_plural "Table row contains %d attributes, but query expects %d." @@ -12868,14 +12962,14 @@ msgstr[1] "Строка таблицы содержит %d атрибута, а в запросе ожидается %d." msgstr[2] "Строка таблицы содержит %d атрибутов, а в запросе ожидается %d." -#: executor/execExprInterp.c:3991 executor/nodeModifyTable.c:121 +#: executor/execExprInterp.c:4020 executor/nodeModifyTable.c:121 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "" "В таблице определён тип %s (номер столбца: %d), а в запросе предполагается " "%s." -#: executor/execExprInterp.c:4092 executor/execSRF.c:967 +#: executor/execExprInterp.c:4119 executor/execSRF.c:967 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "" @@ -12921,24 +13015,24 @@ msgid "Key conflicts with existing key." msgstr "Ключ конфликтует с уже существующим." -#: executor/execMain.c:1091 +#: executor/execMain.c:1077 #, c-format msgid "cannot change sequence \"%s\"" msgstr "последовательность \"%s\" изменить нельзя" -#: executor/execMain.c:1097 +#: executor/execMain.c:1083 #, c-format msgid "cannot change TOAST relation \"%s\"" msgstr "TOAST-отношение \"%s\" изменить нельзя" -#: executor/execMain.c:1115 rewrite/rewriteHandler.c:2972 -#: rewrite/rewriteHandler.c:3749 +#: executor/execMain.c:1101 rewrite/rewriteHandler.c:2995 +#: rewrite/rewriteHandler.c:3786 #, c-format msgid "cannot insert into view \"%s\"" msgstr "вставить данные в представление \"%s\" нельзя" -#: executor/execMain.c:1117 rewrite/rewriteHandler.c:2975 -#: rewrite/rewriteHandler.c:3752 +#: executor/execMain.c:1103 rewrite/rewriteHandler.c:2998 +#: rewrite/rewriteHandler.c:3789 #, c-format msgid "" "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or " @@ -12947,14 +13041,14 @@ "Чтобы представление допускало добавление данных, установите триггер INSTEAD " "OF INSERT или безусловное правило ON INSERT DO INSTEAD." -#: executor/execMain.c:1123 rewrite/rewriteHandler.c:2980 -#: rewrite/rewriteHandler.c:3757 +#: executor/execMain.c:1109 rewrite/rewriteHandler.c:3003 +#: rewrite/rewriteHandler.c:3794 #, c-format msgid "cannot update view \"%s\"" msgstr "изменить данные в представлении \"%s\" нельзя" -#: executor/execMain.c:1125 rewrite/rewriteHandler.c:2983 -#: rewrite/rewriteHandler.c:3760 +#: executor/execMain.c:1111 rewrite/rewriteHandler.c:3006 +#: rewrite/rewriteHandler.c:3797 #, c-format msgid "" "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an " @@ -12963,14 +13057,14 @@ "Чтобы представление допускало изменение данных, установите триггер INSTEAD " "OF UPDATE или безусловное правило ON UPDATE DO INSTEAD." -#: executor/execMain.c:1131 rewrite/rewriteHandler.c:2988 -#: rewrite/rewriteHandler.c:3765 +#: executor/execMain.c:1117 rewrite/rewriteHandler.c:3011 +#: rewrite/rewriteHandler.c:3802 #, c-format msgid "cannot delete from view \"%s\"" msgstr "удалить данные из представления \"%s\" нельзя" -#: executor/execMain.c:1133 rewrite/rewriteHandler.c:2991 -#: rewrite/rewriteHandler.c:3768 +#: executor/execMain.c:1119 rewrite/rewriteHandler.c:3014 +#: rewrite/rewriteHandler.c:3805 #, c-format msgid "" "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an " @@ -12979,119 +13073,119 @@ "Чтобы представление допускало удаление данных, установите триггер INSTEAD OF " "DELETE или безусловное правило ON DELETE DO INSTEAD." -#: executor/execMain.c:1144 +#: executor/execMain.c:1130 #, c-format msgid "cannot change materialized view \"%s\"" msgstr "изменить материализованное представление \"%s\" нельзя" -#: executor/execMain.c:1156 +#: executor/execMain.c:1142 #, c-format msgid "cannot insert into foreign table \"%s\"" msgstr "вставлять данные в стороннюю таблицу \"%s\" нельзя" -#: executor/execMain.c:1162 +#: executor/execMain.c:1148 #, c-format msgid "foreign table \"%s\" does not allow inserts" msgstr "сторонняя таблица \"%s\" не допускает добавления" -#: executor/execMain.c:1169 +#: executor/execMain.c:1155 #, c-format msgid "cannot update foreign table \"%s\"" msgstr "изменять данные в сторонней таблице \"%s\"" -#: executor/execMain.c:1175 +#: executor/execMain.c:1161 #, c-format msgid "foreign table \"%s\" does not allow updates" msgstr "сторонняя таблица \"%s\" не допускает изменения" -#: executor/execMain.c:1182 +#: executor/execMain.c:1168 #, c-format msgid "cannot delete from foreign table \"%s\"" msgstr "удалять данные из сторонней таблицы \"%s\" нельзя" -#: executor/execMain.c:1188 +#: executor/execMain.c:1174 #, c-format msgid "foreign table \"%s\" does not allow deletes" msgstr "сторонняя таблица \"%s\" не допускает удаления" -#: executor/execMain.c:1199 +#: executor/execMain.c:1185 #, c-format msgid "cannot change relation \"%s\"" msgstr "отношение \"%s\" изменить нельзя" -#: executor/execMain.c:1226 +#: executor/execMain.c:1212 #, c-format msgid "cannot lock rows in sequence \"%s\"" msgstr "блокировать строки в последовательности \"%s\" нельзя" -#: executor/execMain.c:1233 +#: executor/execMain.c:1219 #, c-format msgid "cannot lock rows in TOAST relation \"%s\"" msgstr "блокировать строки в TOAST-отношении \"%s\" нельзя" -#: executor/execMain.c:1240 +#: executor/execMain.c:1226 #, c-format msgid "cannot lock rows in view \"%s\"" msgstr "блокировать строки в представлении \"%s\" нельзя" -#: executor/execMain.c:1248 +#: executor/execMain.c:1234 #, c-format msgid "cannot lock rows in materialized view \"%s\"" msgstr "блокировать строки в материализованном представлении \"%s\" нельзя" -#: executor/execMain.c:1257 executor/execMain.c:2627 +#: executor/execMain.c:1243 executor/execMain.c:2618 #: executor/nodeLockRows.c:132 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "блокировать строки в сторонней таблице \"%s\" нельзя" -#: executor/execMain.c:1263 +#: executor/execMain.c:1249 #, c-format msgid "cannot lock rows in relation \"%s\"" msgstr "блокировать строки в отношении \"%s\" нельзя" -#: executor/execMain.c:1879 +#: executor/execMain.c:1867 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "новая строка в отношении \"%s\" нарушает ограничение секции" -#: executor/execMain.c:1881 executor/execMain.c:1964 executor/execMain.c:2012 -#: executor/execMain.c:2120 +#: executor/execMain.c:1869 executor/execMain.c:1952 executor/execMain.c:2002 +#: executor/execMain.c:2111 #, c-format msgid "Failing row contains %s." msgstr "Ошибочная строка содержит %s." -#: executor/execMain.c:1961 +#: executor/execMain.c:1949 #, c-format msgid "" "null value in column \"%s\" of relation \"%s\" violates not-null constraint" msgstr "" "значение NULL в столбце \"%s\" отношения \"%s\" нарушает ограничение NOT NULL" -#: executor/execMain.c:2010 +#: executor/execMain.c:2000 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "новая строка в отношении \"%s\" нарушает ограничение-проверку \"%s\"" -#: executor/execMain.c:2118 +#: executor/execMain.c:2109 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "новая строка нарушает ограничение-проверку для представления \"%s\"" -#: executor/execMain.c:2128 +#: executor/execMain.c:2119 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "" "новая строка нарушает политику защиты на уровне строк \"%s\" для таблицы \"%s" "\"" -#: executor/execMain.c:2133 +#: executor/execMain.c:2124 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "" "новая строка нарушает политику защиты на уровне строк для таблицы \"%s\"" -#: executor/execMain.c:2140 +#: executor/execMain.c:2131 #, c-format msgid "" "new row violates row-level security policy \"%s\" (USING expression) for " @@ -13100,7 +13194,7 @@ "новая строка нарушает политику защиты на уровне строк \"%s\" (выражение " "USING) для таблицы \"%s\"" -#: executor/execMain.c:2145 +#: executor/execMain.c:2136 #, c-format msgid "" "new row violates row-level security policy (USING expression) for table \"%s" @@ -13109,12 +13203,12 @@ "новая строка нарушает политику защиты на уровне строк (выражение USING) для " "таблицы \"%s\"" -#: executor/execPartition.c:341 +#: executor/execPartition.c:342 #, c-format msgid "no partition of relation \"%s\" found for row" msgstr "для строки не найдена секция в отношении \"%s\"" -#: executor/execPartition.c:344 +#: executor/execPartition.c:345 #, c-format msgid "Partition key of the failing row contains %s." msgstr "Ключ секционирования для неподходящей строки содержит %s." @@ -13139,9 +13233,9 @@ msgstr "параллельное удаление; следует повторная попытка" #: executor/execReplication.c:269 parser/parse_oper.c:228 -#: utils/adt/array_userfuncs.c:719 utils/adt/array_userfuncs.c:858 -#: utils/adt/arrayfuncs.c:3626 utils/adt/arrayfuncs.c:4146 -#: utils/adt/arrayfuncs.c:6132 utils/adt/rowtypes.c:1182 +#: utils/adt/array_userfuncs.c:720 utils/adt/array_userfuncs.c:859 +#: utils/adt/arrayfuncs.c:3628 utils/adt/arrayfuncs.c:4148 +#: utils/adt/arrayfuncs.c:6140 utils/adt/rowtypes.c:1182 #, c-format msgid "could not identify an equality operator for type %s" msgstr "не удалось найти оператор равенства для типа %s" @@ -13240,12 +13334,18 @@ msgid "Returned type %s at ordinal position %d, but query expects %s." msgstr "Возвращён тип %s (номер столбца: %d), а в запросе предполагается %s." -#: executor/execUtils.c:750 +#: executor/execTuples.c:146 executor/execTuples.c:353 +#: executor/execTuples.c:521 executor/execTuples.c:712 +#, c-format +msgid "cannot retrieve a system column in this context" +msgstr "системный столбец нельзя получить в данном контексте" + +#: executor/execUtils.c:751 #, c-format msgid "materialized view \"%s\" has not been populated" msgstr "материализованное представление \"%s\" не было наполнено" -#: executor/execUtils.c:752 +#: executor/execUtils.c:753 #, c-format msgid "Use the REFRESH MATERIALIZED VIEW command." msgstr "Примените команду REFRESH MATERIALIZED VIEW." @@ -13267,7 +13367,7 @@ msgstr "%s нельзя использовать в SQL-функции" #. translator: %s is a SQL statement name -#: executor/functions.c:542 executor/spi.c:1471 executor/spi.c:2257 +#: executor/functions.c:542 executor/spi.c:1470 executor/spi.c:2283 #, c-format msgid "%s is not allowed in a non-volatile function" msgstr "%s нельзя использовать в не изменчивой (volatile) функции" @@ -13334,18 +13434,18 @@ msgid "return type %s is not supported for SQL functions" msgstr "для SQL-функций тип возврата %s не поддерживается" -#: executor/nodeAgg.c:3091 executor/nodeAgg.c:3100 executor/nodeAgg.c:3112 +#: executor/nodeAgg.c:3096 executor/nodeAgg.c:3105 executor/nodeAgg.c:3117 #, c-format msgid "unexpected EOF for tape %d: requested %zu bytes, read %zu bytes" msgstr "" "неожиданный конец файла для ленты %d: запрашивалось байт: %zu, прочитано: %zu" -#: executor/nodeAgg.c:4046 parser/parse_agg.c:655 parser/parse_agg.c:685 +#: executor/nodeAgg.c:4043 parser/parse_agg.c:650 parser/parse_agg.c:678 #, c-format msgid "aggregate function calls cannot be nested" msgstr "вложенные вызовы агрегатных функций недопустимы" -#: executor/nodeAgg.c:4254 executor/nodeWindowAgg.c:2836 +#: executor/nodeAgg.c:4251 executor/nodeWindowAgg.c:2836 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "" @@ -13369,11 +13469,12 @@ "не удалось прочитать временный файл хеш-соединения (прочитано байт: %zu из " "%zu)" -#: executor/nodeIndexonlyscan.c:242 +#: executor/nodeIndexonlyscan.c:240 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "" -"функции неточной дистанции не поддерживаются в сканировании только по индексу" +"функции неточного расстояния не поддерживаются в сканировании только по " +"индексу" #: executor/nodeLimit.c:374 #, c-format @@ -13414,7 +13515,7 @@ msgid "Query has too few columns." msgstr "Запрос возвращает меньше столбцов." -#: executor/nodeModifyTable.c:839 executor/nodeModifyTable.c:913 +#: executor/nodeModifyTable.c:900 executor/nodeModifyTable.c:974 #, c-format msgid "" "tuple to be deleted was already modified by an operation triggered by the " @@ -13423,12 +13524,12 @@ "кортеж, который должен быть удалён, уже модифицирован в операции, вызванной " "текущей командой" -#: executor/nodeModifyTable.c:1220 +#: executor/nodeModifyTable.c:1290 #, c-format msgid "invalid ON UPDATE specification" msgstr "неверное указание ON UPDATE" -#: executor/nodeModifyTable.c:1221 +#: executor/nodeModifyTable.c:1291 #, c-format msgid "" "The result tuple would appear in a different partition than the original " @@ -13437,12 +13538,12 @@ "Результирующий кортеж окажется перемещённым из секции исходного кортежа в " "другую." -#: executor/nodeModifyTable.c:1592 +#: executor/nodeModifyTable.c:1665 #, c-format msgid "ON CONFLICT DO UPDATE command cannot affect row a second time" msgstr "команда ON CONFLICT DO UPDATE не может менять строку повторно" -#: executor/nodeModifyTable.c:1593 +#: executor/nodeModifyTable.c:1666 #, c-format msgid "" "Ensure that no rows proposed for insertion within the same command have " @@ -13524,7 +13625,7 @@ "агрегатная функция %s не поддерживает использование в качестве оконной " "функции" -#: executor/spi.c:228 executor/spi.c:297 +#: executor/spi.c:228 executor/spi.c:293 #, c-format msgid "invalid transaction termination" msgstr "неверное завершение транзакции" @@ -13534,48 +13635,48 @@ msgid "cannot commit while a subtransaction is active" msgstr "фиксировать транзакцию при наличии активных подтранзакций нельзя" -#: executor/spi.c:303 +#: executor/spi.c:299 #, c-format msgid "cannot roll back while a subtransaction is active" msgstr "откатить транзакцию при наличии активных подтранзакций нельзя" -#: executor/spi.c:372 +#: executor/spi.c:371 #, c-format msgid "transaction left non-empty SPI stack" msgstr "после транзакции остался непустой стек SPI" -#: executor/spi.c:373 executor/spi.c:435 +#: executor/spi.c:372 executor/spi.c:434 #, c-format msgid "Check for missing \"SPI_finish\" calls." msgstr "Проверьте наличие вызова \"SPI_finish\"." -#: executor/spi.c:434 +#: executor/spi.c:433 #, c-format msgid "subtransaction left non-empty SPI stack" msgstr "после подтранзакции остался непустой стек SPI" -#: executor/spi.c:1335 +#: executor/spi.c:1334 #, c-format msgid "cannot open multi-query plan as cursor" msgstr "не удалось открыть план нескольких запросов как курсор" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:1340 +#: executor/spi.c:1339 #, c-format msgid "cannot open %s query as cursor" msgstr "не удалось открыть запрос %s как курсор" -#: executor/spi.c:1445 +#: executor/spi.c:1444 #, c-format msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE не поддерживается" -#: executor/spi.c:1446 parser/analyze.c:2475 +#: executor/spi.c:1445 parser/analyze.c:2475 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Прокручиваемые курсоры должны быть READ ONLY." -#: executor/spi.c:2560 +#: executor/spi.c:2585 #, c-format msgid "SQL statement \"%s\"" msgstr "SQL-оператор: \"%s\"" @@ -14007,206 +14108,206 @@ msgid "accepting GSS security context failed" msgstr "принять контекст безопасности GSS не удалось" -#: libpq/auth.c:1204 +#: libpq/auth.c:1205 msgid "retrieving GSS user name failed" msgstr "получить имя пользователя GSS не удалось" -#: libpq/auth.c:1337 +#: libpq/auth.c:1346 #, c-format msgid "SSPI is not supported in protocol version 2" msgstr "SSPI не поддерживается в протоколе версии 2" -#: libpq/auth.c:1352 +#: libpq/auth.c:1361 msgid "could not acquire SSPI credentials" msgstr "не удалось получить удостоверение SSPI" -#: libpq/auth.c:1377 +#: libpq/auth.c:1386 #, c-format msgid "expected SSPI response, got message type %d" msgstr "ожидался ответ SSPI, но получено сообщение %d" -#: libpq/auth.c:1455 +#: libpq/auth.c:1464 msgid "could not accept SSPI security context" msgstr "принять контекст безопасности SSPI не удалось" -#: libpq/auth.c:1517 +#: libpq/auth.c:1526 msgid "could not get token from SSPI security context" msgstr "не удалось получить маркер из контекста безопасности SSPI" -#: libpq/auth.c:1636 libpq/auth.c:1655 +#: libpq/auth.c:1645 libpq/auth.c:1664 #, c-format msgid "could not translate name" msgstr "не удалось преобразовать имя" -#: libpq/auth.c:1668 +#: libpq/auth.c:1677 #, c-format msgid "realm name too long" msgstr "имя области слишком длинное" -#: libpq/auth.c:1683 +#: libpq/auth.c:1692 #, c-format msgid "translated account name too long" msgstr "преобразованное имя учётной записи слишком длинное" -#: libpq/auth.c:1864 +#: libpq/auth.c:1873 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "не удалось создать сокет для подключения к серверу Ident: %m" -#: libpq/auth.c:1879 +#: libpq/auth.c:1888 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "не удалось привязаться к локальному адресу \"%s\": %m" -#: libpq/auth.c:1891 +#: libpq/auth.c:1900 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "не удалось подключиться к серверу Ident по адресу \"%s\", порт %s: %m" -#: libpq/auth.c:1913 +#: libpq/auth.c:1922 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "" "не удалось отправить запрос серверу Ident по адресу \"%s\", порт %s: %m" -#: libpq/auth.c:1930 +#: libpq/auth.c:1939 #, c-format msgid "" "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "" "не удалось получить ответ от сервера Ident по адресу \"%s\", порт %s: %m" -#: libpq/auth.c:1940 +#: libpq/auth.c:1949 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "неверно форматированный ответ от сервера Ident: \"%s\"" -#: libpq/auth.c:1987 +#: libpq/auth.c:1996 #, c-format msgid "peer authentication is not supported on this platform" msgstr "проверка подлинности peer в этой ОС не поддерживается" -#: libpq/auth.c:1991 +#: libpq/auth.c:2000 #, c-format msgid "could not get peer credentials: %m" msgstr "не удалось получить данные пользователя через механизм peer: %m" -#: libpq/auth.c:2003 +#: libpq/auth.c:2012 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "найти локального пользователя по идентификатору (%ld) не удалось: %s" -#: libpq/auth.c:2102 +#: libpq/auth.c:2111 #, c-format msgid "error from underlying PAM layer: %s" msgstr "ошибка в нижележащем слое PAM: %s" -#: libpq/auth.c:2172 +#: libpq/auth.c:2181 #, c-format msgid "could not create PAM authenticator: %s" msgstr "не удалось создать аутентификатор PAM: %s" -#: libpq/auth.c:2183 +#: libpq/auth.c:2192 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "ошибка в pam_set_item(PAM_USER): %s" -#: libpq/auth.c:2215 +#: libpq/auth.c:2224 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "ошибка в pam_set_item(PAM_RHOST): %s" -#: libpq/auth.c:2227 +#: libpq/auth.c:2236 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "ошибка в pam_set_item(PAM_CONV): %s" -#: libpq/auth.c:2240 +#: libpq/auth.c:2249 #, c-format msgid "pam_authenticate failed: %s" msgstr "ошибка в pam_authenticate: %s" -#: libpq/auth.c:2253 +#: libpq/auth.c:2262 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "ошибка в pam_acct_mgmt: %s" -#: libpq/auth.c:2264 +#: libpq/auth.c:2273 #, c-format msgid "could not release PAM authenticator: %s" msgstr "не удалось освободить аутентификатор PAM: %s" -#: libpq/auth.c:2340 +#: libpq/auth.c:2349 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "не удалось инициализировать LDAP (код ошибки: %d)" -#: libpq/auth.c:2377 +#: libpq/auth.c:2386 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "не удалось извлечь имя домена из ldapbasedn" -#: libpq/auth.c:2385 +#: libpq/auth.c:2394 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "для аутентификации LDAP не удалось найти записи DNS SRV для \"%s\"" -#: libpq/auth.c:2387 +#: libpq/auth.c:2396 #, c-format msgid "Set an LDAP server name explicitly." msgstr "Задайте имя сервера LDAP явным образом." -#: libpq/auth.c:2439 +#: libpq/auth.c:2448 #, c-format msgid "could not initialize LDAP: %s" msgstr "не удалось инициализировать LDAP: %s" -#: libpq/auth.c:2449 +#: libpq/auth.c:2458 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "протокол ldaps с текущей библиотекой LDAP не поддерживается" -#: libpq/auth.c:2457 +#: libpq/auth.c:2466 #, c-format msgid "could not initialize LDAP: %m" msgstr "не удалось инициализировать LDAP: %m" -#: libpq/auth.c:2467 +#: libpq/auth.c:2476 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "не удалось задать версию протокола LDAP: %s" -#: libpq/auth.c:2507 +#: libpq/auth.c:2516 #, c-format msgid "could not load function _ldap_start_tls_sA in wldap32.dll" msgstr "не удалось найти функцию _ldap_start_tls_sA в wldap32.dll" -#: libpq/auth.c:2508 +#: libpq/auth.c:2517 #, c-format msgid "LDAP over SSL is not supported on this platform." msgstr "LDAP через SSL не поддерживается в этой ОС." -#: libpq/auth.c:2524 +#: libpq/auth.c:2533 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "не удалось начать сеанс LDAP TLS: %s" -#: libpq/auth.c:2595 +#: libpq/auth.c:2604 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "LDAP-сервер не задан и значение ldapbasedn не определено" -#: libpq/auth.c:2602 +#: libpq/auth.c:2611 #, c-format msgid "LDAP server not specified" msgstr "LDAP-сервер не определён" -#: libpq/auth.c:2664 +#: libpq/auth.c:2673 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "недопустимый символ в имени пользователя для проверки подлинности LDAP" -#: libpq/auth.c:2681 +#: libpq/auth.c:2690 #, c-format msgid "" "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": " @@ -14215,28 +14316,28 @@ "не удалось выполнить начальную привязку LDAP для ldapbinddn \"%s\" на " "сервере \"%s\": %s" -#: libpq/auth.c:2710 +#: libpq/auth.c:2719 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "" "не удалось выполнить LDAP-поиск по фильтру \"%s\" на сервере \"%s\": %s" -#: libpq/auth.c:2724 +#: libpq/auth.c:2733 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "в LDAP нет пользователя \"%s\"" -#: libpq/auth.c:2725 +#: libpq/auth.c:2734 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "LDAP-поиск по фильтру \"%s\" на сервере \"%s\" не вернул результатов" -#: libpq/auth.c:2729 +#: libpq/auth.c:2738 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "пользователь LDAP \"%s\" не уникален" -#: libpq/auth.c:2730 +#: libpq/auth.c:2739 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "" @@ -14245,7 +14346,7 @@ msgstr[1] "LDAP-поиск по фильтру \"%s\" на сервере \"%s\" вернул %d записи." msgstr[2] "LDAP-поиск по фильтру \"%s\" на сервере \"%s\" вернул %d записей." -#: libpq/auth.c:2750 +#: libpq/auth.c:2759 #, c-format msgid "" "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" @@ -14253,24 +14354,24 @@ "не удалось получить dn для первого результата, соответствующего \"%s\" на " "сервере \"%s\": %s" -#: libpq/auth.c:2771 +#: libpq/auth.c:2780 #, c-format msgid "could not unbind after searching for user \"%s\" on server \"%s\"" msgstr "" "не удалось отвязаться после поиска пользователя \"%s\" на сервере \"%s\"" -#: libpq/auth.c:2802 +#: libpq/auth.c:2811 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "" "ошибка при регистрации в LDAP пользователя \"%s\" на сервере \"%s\": %s" -#: libpq/auth.c:2831 +#: libpq/auth.c:2840 #, c-format msgid "LDAP diagnostics: %s" msgstr "Диагностика LDAP: %s" -#: libpq/auth.c:2858 +#: libpq/auth.c:2867 #, c-format msgid "" "certificate authentication failed for user \"%s\": client certificate " @@ -14279,7 +14380,7 @@ "ошибка проверки подлинности пользователя \"%s\" по сертификату: сертификат " "клиента не содержит имя пользователя" -#: libpq/auth.c:2875 +#: libpq/auth.c:2884 #, c-format msgid "" "certificate validation (clientcert=verify-full) failed for user \"%s\": CN " @@ -14288,168 +14389,168 @@ "проверка сертификата (clientcert=verify-full) для пользователя \"%s\" не " "прошла: отличается CN" -#: libpq/auth.c:2976 +#: libpq/auth.c:2985 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS-сервер не определён" -#: libpq/auth.c:2983 +#: libpq/auth.c:2992 #, c-format msgid "RADIUS secret not specified" msgstr "секрет RADIUS не определён" # well-spelled: симв -#: libpq/auth.c:2997 +#: libpq/auth.c:3006 #, c-format msgid "" "RADIUS authentication does not support passwords longer than %d characters" msgstr "проверка подлинности RADIUS не поддерживает пароли длиннее %d симв." -#: libpq/auth.c:3102 libpq/hba.c:1946 +#: libpq/auth.c:3111 libpq/hba.c:1950 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "не удалось преобразовать имя сервера RADIUS \"%s\" в адрес: %s" -#: libpq/auth.c:3116 +#: libpq/auth.c:3125 #, c-format msgid "could not generate random encryption vector" msgstr "не удалось сгенерировать случайный вектор шифрования" -#: libpq/auth.c:3150 +#: libpq/auth.c:3159 #, c-format msgid "could not perform MD5 encryption of password" msgstr "не удалось вычислить MD5-хеш пароля" -#: libpq/auth.c:3176 +#: libpq/auth.c:3185 #, c-format msgid "could not create RADIUS socket: %m" msgstr "не удалось создать сокет RADIUS: %m" -#: libpq/auth.c:3198 +#: libpq/auth.c:3207 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "не удалось привязаться к локальному сокету RADIUS: %m" -#: libpq/auth.c:3208 +#: libpq/auth.c:3217 #, c-format msgid "could not send RADIUS packet: %m" msgstr "не удалось отправить пакет RADIUS: %m" -#: libpq/auth.c:3241 libpq/auth.c:3267 +#: libpq/auth.c:3250 libpq/auth.c:3276 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "превышено время ожидания ответа RADIUS от %s" -#: libpq/auth.c:3260 +#: libpq/auth.c:3269 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "не удалось проверить состояние сокета RADIUS: %m" -#: libpq/auth.c:3290 +#: libpq/auth.c:3299 #, c-format msgid "could not read RADIUS response: %m" msgstr "не удалось прочитать ответ RADIUS: %m" -#: libpq/auth.c:3303 libpq/auth.c:3307 +#: libpq/auth.c:3312 libpq/auth.c:3316 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "ответ RADIUS от %s был отправлен с неверного порта: %d" -#: libpq/auth.c:3316 +#: libpq/auth.c:3325 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "слишком короткий ответ RADIUS от %s: %d" -#: libpq/auth.c:3323 +#: libpq/auth.c:3332 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "в ответе RADIUS от %s испорчена длина: %d (фактическая длина %d)" -#: libpq/auth.c:3331 +#: libpq/auth.c:3340 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "пришёл ответ RADIUS от %s на другой запрос: %d (ожидался %d)" -#: libpq/auth.c:3356 +#: libpq/auth.c:3365 #, c-format msgid "could not perform MD5 encryption of received packet" msgstr "не удалось вычислить MD5 для принятого пакета" -#: libpq/auth.c:3365 +#: libpq/auth.c:3374 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "ответ RADIUS от %s содержит неверную подпись MD5" -#: libpq/auth.c:3383 +#: libpq/auth.c:3392 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "ответ RADIUS от %s содержит неверный код (%d) для пользователя \"%s\"" -#: libpq/be-fsstubs.c:119 libpq/be-fsstubs.c:150 libpq/be-fsstubs.c:178 -#: libpq/be-fsstubs.c:204 libpq/be-fsstubs.c:229 libpq/be-fsstubs.c:277 -#: libpq/be-fsstubs.c:300 libpq/be-fsstubs.c:553 +#: libpq/be-fsstubs.c:128 libpq/be-fsstubs.c:157 libpq/be-fsstubs.c:185 +#: libpq/be-fsstubs.c:211 libpq/be-fsstubs.c:236 libpq/be-fsstubs.c:274 +#: libpq/be-fsstubs.c:297 libpq/be-fsstubs.c:545 #, c-format msgid "invalid large-object descriptor: %d" msgstr "неверный дескриптор большого объекта: %d" -#: libpq/be-fsstubs.c:161 +#: libpq/be-fsstubs.c:168 #, c-format msgid "large object descriptor %d was not opened for reading" msgstr "дескриптор большого объекта %d не был открыт для чтения" -#: libpq/be-fsstubs.c:185 libpq/be-fsstubs.c:560 +#: libpq/be-fsstubs.c:192 libpq/be-fsstubs.c:552 #, c-format msgid "large object descriptor %d was not opened for writing" msgstr "дескриптор большого объекта %d не был открыт для записи" -#: libpq/be-fsstubs.c:212 +#: libpq/be-fsstubs.c:219 #, c-format msgid "lo_lseek result out of range for large-object descriptor %d" msgstr "" "результат lo_lseek для дескриптора большого объекта %d вне допустимого " "диапазона" -#: libpq/be-fsstubs.c:285 +#: libpq/be-fsstubs.c:282 #, c-format msgid "lo_tell result out of range for large-object descriptor %d" msgstr "" "результат lo_tell для дескриптора большого объекта %d вне допустимого " "диапазона" -#: libpq/be-fsstubs.c:432 +#: libpq/be-fsstubs.c:424 #, c-format msgid "could not open server file \"%s\": %m" msgstr "не удалось открыть файл сервера \"%s\": %m" -#: libpq/be-fsstubs.c:454 +#: libpq/be-fsstubs.c:447 #, c-format msgid "could not read server file \"%s\": %m" msgstr "не удалось прочитать файл сервера \"%s\": %m" -#: libpq/be-fsstubs.c:514 +#: libpq/be-fsstubs.c:506 #, c-format msgid "could not create server file \"%s\": %m" msgstr "не удалось создать файл сервера \"%s\": %m" -#: libpq/be-fsstubs.c:526 +#: libpq/be-fsstubs.c:518 #, c-format msgid "could not write server file \"%s\": %m" msgstr "не удалось записать файл сервера \"%s\": %m" -#: libpq/be-fsstubs.c:760 +#: libpq/be-fsstubs.c:758 #, c-format msgid "large object read request is too large" msgstr "при чтении большого объекта запрошен чрезмерный размер" -#: libpq/be-fsstubs.c:802 utils/adt/genfile.c:265 utils/adt/genfile.c:304 +#: libpq/be-fsstubs.c:800 utils/adt/genfile.c:265 utils/adt/genfile.c:304 #: utils/adt/genfile.c:340 #, c-format msgid "requested length cannot be negative" msgstr "запрошенная длина не может быть отрицательной" -#: libpq/be-fsstubs.c:855 storage/large_object/inv_api.c:297 -#: storage/large_object/inv_api.c:309 storage/large_object/inv_api.c:513 -#: storage/large_object/inv_api.c:624 storage/large_object/inv_api.c:814 +#: libpq/be-fsstubs.c:851 storage/large_object/inv_api.c:299 +#: storage/large_object/inv_api.c:311 storage/large_object/inv_api.c:508 +#: storage/large_object/inv_api.c:619 storage/large_object/inv_api.c:809 #, c-format msgid "permission denied for large object %u" msgstr "нет доступа к большому объекту %u" @@ -14469,24 +14570,24 @@ msgid "could not access private key file \"%s\": %m" msgstr "не удалось обратиться к файлу закрытого ключа \"%s\": %m" -#: libpq/be-secure-common.c:150 +#: libpq/be-secure-common.c:151 #, c-format msgid "private key file \"%s\" is not a regular file" -msgstr "файл закрытого ключа \"%s\" не является обычным" +msgstr "файл закрытого ключа \"%s\" - не обычный файл" -#: libpq/be-secure-common.c:165 +#: libpq/be-secure-common.c:176 #, c-format msgid "private key file \"%s\" must be owned by the database user or root" msgstr "" "файл закрытого ключа \"%s\" должен принадлежать пользователю, запускающему " "сервер, или root" -#: libpq/be-secure-common.c:188 +#: libpq/be-secure-common.c:186 #, c-format msgid "private key file \"%s\" has group or world access" msgstr "к файлу закрытого ключа \"%s\" имеют доступ все или группа" -#: libpq/be-secure-common.c:190 +#: libpq/be-secure-common.c:188 #, c-format msgid "" "File must have permissions u=rw (0600) or less if owned by the database " @@ -14537,107 +14638,107 @@ msgid "GSSAPI size check error" msgstr "ошибка проверки размера в GSSAPI" -#: libpq/be-secure-openssl.c:112 +#: libpq/be-secure-openssl.c:115 #, c-format msgid "could not create SSL context: %s" msgstr "не удалось создать контекст SSL: %s" -#: libpq/be-secure-openssl.c:138 +#: libpq/be-secure-openssl.c:141 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "не удалось загрузить сертификат сервера \"%s\": %s" -#: libpq/be-secure-openssl.c:158 +#: libpq/be-secure-openssl.c:161 #, c-format msgid "" "private key file \"%s\" cannot be reloaded because it requires a passphrase" msgstr "" "файл закрытого ключа \"%s\" нельзя перезагрузить, так как он защищён паролем" -#: libpq/be-secure-openssl.c:163 +#: libpq/be-secure-openssl.c:166 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "не удалось загрузить файл закрытого ключа \"%s\": %s" -#: libpq/be-secure-openssl.c:172 +#: libpq/be-secure-openssl.c:175 #, c-format msgid "check of private key failed: %s" msgstr "ошибка при проверке закрытого ключа: %s" #. translator: first %s is a GUC option name, second %s is its value -#: libpq/be-secure-openssl.c:185 libpq/be-secure-openssl.c:208 +#: libpq/be-secure-openssl.c:188 libpq/be-secure-openssl.c:211 #, c-format msgid "\"%s\" setting \"%s\" not supported by this build" msgstr "для параметра \"%s\" значение \"%s\" не поддерживается в данной сборке" -#: libpq/be-secure-openssl.c:195 +#: libpq/be-secure-openssl.c:198 #, c-format msgid "could not set minimum SSL protocol version" msgstr "не удалось задать минимальную версию протокола SSL" -#: libpq/be-secure-openssl.c:218 +#: libpq/be-secure-openssl.c:221 #, c-format msgid "could not set maximum SSL protocol version" msgstr "не удалось задать максимальную версию протокола SSL" -#: libpq/be-secure-openssl.c:234 +#: libpq/be-secure-openssl.c:237 #, c-format msgid "could not set SSL protocol version range" msgstr "не удалось задать диапазон версий протокола SSL" -#: libpq/be-secure-openssl.c:235 +#: libpq/be-secure-openssl.c:238 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "Версия \"%s\" не может быть выше \"%s\"" -#: libpq/be-secure-openssl.c:259 +#: libpq/be-secure-openssl.c:272 #, c-format msgid "could not set the cipher list (no valid ciphers available)" msgstr "не удалось установить список шифров (подходящие шифры отсутствуют)" -#: libpq/be-secure-openssl.c:277 +#: libpq/be-secure-openssl.c:292 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "не удалось загрузить файл корневых сертификатов \"%s\": %s" -#: libpq/be-secure-openssl.c:304 +#: libpq/be-secure-openssl.c:338 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" msgstr "" -"не удалось загрузить файл со списком отзыва сертификатов SSL \"%s\": %s" +"не удалось загрузить список отзыва сертификатов SSL из файла \"%s\": %s" -#: libpq/be-secure-openssl.c:380 +#: libpq/be-secure-openssl.c:395 #, c-format msgid "could not initialize SSL connection: SSL context not set up" msgstr "" "инициализировать SSL-подключение не удалось: контекст SSL не установлен" -#: libpq/be-secure-openssl.c:388 +#: libpq/be-secure-openssl.c:403 #, c-format msgid "could not initialize SSL connection: %s" msgstr "инициализировать SSL-подключение не удалось: %s" -#: libpq/be-secure-openssl.c:396 +#: libpq/be-secure-openssl.c:411 #, c-format msgid "could not set SSL socket: %s" msgstr "не удалось создать SSL-сокет: %s" -#: libpq/be-secure-openssl.c:451 +#: libpq/be-secure-openssl.c:466 #, c-format msgid "could not accept SSL connection: %m" msgstr "не удалось принять SSL-подключение: %m" -#: libpq/be-secure-openssl.c:455 libpq/be-secure-openssl.c:508 +#: libpq/be-secure-openssl.c:470 libpq/be-secure-openssl.c:523 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "не удалось принять SSL-подключение: обрыв данных" -#: libpq/be-secure-openssl.c:494 +#: libpq/be-secure-openssl.c:509 #, c-format msgid "could not accept SSL connection: %s" msgstr "не удалось принять SSL-подключение: %s" -#: libpq/be-secure-openssl.c:497 +#: libpq/be-secure-openssl.c:512 #, c-format msgid "" "This may indicate that the client does not support any SSL protocol version " @@ -14646,74 +14747,74 @@ "Это может указывать на то, что клиент не поддерживает ни одну версию " "протокола SSL между %s и %s." -#: libpq/be-secure-openssl.c:513 libpq/be-secure-openssl.c:644 -#: libpq/be-secure-openssl.c:708 +#: libpq/be-secure-openssl.c:528 libpq/be-secure-openssl.c:659 +#: libpq/be-secure-openssl.c:723 #, c-format msgid "unrecognized SSL error code: %d" msgstr "нераспознанный код ошибки SSL: %d" -#: libpq/be-secure-openssl.c:555 +#: libpq/be-secure-openssl.c:570 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "Имя SSL-сертификата включает нулевой байт" -#: libpq/be-secure-openssl.c:633 libpq/be-secure-openssl.c:692 +#: libpq/be-secure-openssl.c:648 libpq/be-secure-openssl.c:707 #, c-format msgid "SSL error: %s" msgstr "ошибка SSL: %s" -#: libpq/be-secure-openssl.c:873 +#: libpq/be-secure-openssl.c:889 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "не удалось открыть файл параметров DH \"%s\": %m" -#: libpq/be-secure-openssl.c:885 +#: libpq/be-secure-openssl.c:901 #, c-format msgid "could not load DH parameters file: %s" msgstr "не удалось загрузить файл параметров DH: %s" -#: libpq/be-secure-openssl.c:895 +#: libpq/be-secure-openssl.c:911 #, c-format msgid "invalid DH parameters: %s" msgstr "неверные параметры DH: %s" -#: libpq/be-secure-openssl.c:903 +#: libpq/be-secure-openssl.c:920 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "неверные параметры DH: p - не простое число" -#: libpq/be-secure-openssl.c:911 +#: libpq/be-secure-openssl.c:929 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "" "неверные параметры DH: нет подходящего генератора или небезопасное простое " "число" -#: libpq/be-secure-openssl.c:1067 +#: libpq/be-secure-openssl.c:1086 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: не удалось загрузить параметры DH" -#: libpq/be-secure-openssl.c:1075 +#: libpq/be-secure-openssl.c:1094 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: не удалось задать параметры DH: %s" -#: libpq/be-secure-openssl.c:1102 +#: libpq/be-secure-openssl.c:1121 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: нераспознанное имя кривой: %s" -#: libpq/be-secure-openssl.c:1111 +#: libpq/be-secure-openssl.c:1130 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: не удалось создать ключ" -#: libpq/be-secure-openssl.c:1139 +#: libpq/be-secure-openssl.c:1158 msgid "no SSL error reported" msgstr "нет сообщения об ошибке SSL" -#: libpq/be-secure-openssl.c:1143 +#: libpq/be-secure-openssl.c:1162 #, c-format msgid "SSL error code %lu" msgstr "код ошибки SSL: %lu" @@ -14741,7 +14842,7 @@ #: libpq/crypt.c:77 #, c-format msgid "User \"%s\" has an expired password." -msgstr "Срок пароля пользователя \"%s\" истёк." +msgstr "Срок действия пароля пользователя \"%s\" истёк." #: libpq/crypt.c:179 #, c-format @@ -14786,10 +14887,10 @@ #: libpq/hba.c:1281 libpq/hba.c:1297 libpq/hba.c:1309 libpq/hba.c:1346 #: libpq/hba.c:1387 libpq/hba.c:1400 libpq/hba.c:1422 libpq/hba.c:1434 #: libpq/hba.c:1452 libpq/hba.c:1502 libpq/hba.c:1546 libpq/hba.c:1557 -#: libpq/hba.c:1573 libpq/hba.c:1590 libpq/hba.c:1600 libpq/hba.c:1658 -#: libpq/hba.c:1696 libpq/hba.c:1718 libpq/hba.c:1730 libpq/hba.c:1817 -#: libpq/hba.c:1835 libpq/hba.c:1929 libpq/hba.c:1948 libpq/hba.c:1977 -#: libpq/hba.c:1990 libpq/hba.c:2013 libpq/hba.c:2035 libpq/hba.c:2049 +#: libpq/hba.c:1573 libpq/hba.c:1590 libpq/hba.c:1600 libpq/hba.c:1662 +#: libpq/hba.c:1700 libpq/hba.c:1722 libpq/hba.c:1734 libpq/hba.c:1821 +#: libpq/hba.c:1839 libpq/hba.c:1933 libpq/hba.c:1952 libpq/hba.c:1981 +#: libpq/hba.c:1994 libpq/hba.c:2017 libpq/hba.c:2039 libpq/hba.c:2053 #: tsearch/ts_locale.c:217 #, c-format msgid "line %d of configuration file \"%s\"" @@ -15019,23 +15120,23 @@ msgid "list of RADIUS secrets cannot be empty" msgstr "список секретов RADIUS не может быть пустым" -#: libpq/hba.c:1652 +#: libpq/hba.c:1656 #, c-format msgid "the number of %s (%d) must be 1 or the same as the number of %s (%d)" msgstr "" "количество элементов %s (%d) должно равняться 1 или количеству элементов %s " "(%d)" -#: libpq/hba.c:1686 +#: libpq/hba.c:1690 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi и cert" -#: libpq/hba.c:1695 +#: libpq/hba.c:1699 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert можно определить только в строках \"hostssl\"" -#: libpq/hba.c:1717 +#: libpq/hba.c:1721 #, c-format msgid "" "clientcert cannot be set to \"no-verify\" when using \"cert\" authentication" @@ -15043,95 +15144,95 @@ "clientcert не может иметь значение \"no-verify\" при использовании проверки " "подлинности \"cert\"" -#: libpq/hba.c:1729 +#: libpq/hba.c:1733 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "неверное значение для clientcert: \"%s\"" -#: libpq/hba.c:1763 +#: libpq/hba.c:1767 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "не удалось разобрать URL-адрес LDAP \"%s\": %s" -#: libpq/hba.c:1774 +#: libpq/hba.c:1778 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "неподдерживаемая схема в URL-адресе LDAP: %s" -#: libpq/hba.c:1798 +#: libpq/hba.c:1802 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "URL-адреса LDAP не поддерживаются в этой ОС" -#: libpq/hba.c:1816 +#: libpq/hba.c:1820 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "неверное значение ldapscheme: \"%s\"" -#: libpq/hba.c:1834 +#: libpq/hba.c:1838 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "неверный номер порта LDAP: \"%s\"" -#: libpq/hba.c:1880 libpq/hba.c:1887 +#: libpq/hba.c:1884 libpq/hba.c:1891 msgid "gssapi and sspi" msgstr "gssapi и sspi" -#: libpq/hba.c:1896 libpq/hba.c:1905 +#: libpq/hba.c:1900 libpq/hba.c:1909 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:1927 +#: libpq/hba.c:1931 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "не удалось разобрать список серверов RADIUS \"%s\"" -#: libpq/hba.c:1975 +#: libpq/hba.c:1979 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "не удалось разобрать список портов RADIUS \"%s\"" -#: libpq/hba.c:1989 +#: libpq/hba.c:1993 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "неверный номер порта RADIUS: \"%s\"" -#: libpq/hba.c:2011 +#: libpq/hba.c:2015 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "не удалось разобрать список секретов RADIUS \"%s\"" -#: libpq/hba.c:2033 +#: libpq/hba.c:2037 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "не удалось разобрать список идентификаторов RADIUS \"%s\"" -#: libpq/hba.c:2047 +#: libpq/hba.c:2051 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "нераспознанное имя атрибута проверки подлинности: \"%s\"" -#: libpq/hba.c:2193 libpq/hba.c:2613 guc-file.l:631 +#: libpq/hba.c:2197 libpq/hba.c:2617 guc-file.l:633 #, c-format msgid "could not open configuration file \"%s\": %m" msgstr "открыть файл конфигурации \"%s\" не удалось: %m" -#: libpq/hba.c:2244 +#: libpq/hba.c:2248 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "файл конфигурации \"%s\" не содержит записей" -#: libpq/hba.c:2768 +#: libpq/hba.c:2772 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "неверное регулярное выражение \"%s\": %s" -#: libpq/hba.c:2828 +#: libpq/hba.c:2832 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "ошибка при поиске по регулярному выражению для \"%s\": %s" -#: libpq/hba.c:2847 +#: libpq/hba.c:2851 #, c-format msgid "" "regular expression \"%s\" has no subexpressions as requested by " @@ -15140,21 +15241,21 @@ "в регулярном выражении \"%s\" нет подвыражений, требуемых для обратной " "ссылки в \"%s\"" -#: libpq/hba.c:2943 +#: libpq/hba.c:2947 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "" "указанное имя пользователя (%s) не совпадает с именем прошедшего проверку " "(%s)" -#: libpq/hba.c:2963 +#: libpq/hba.c:2967 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "" "нет соответствия в файле сопоставлений \"%s\" для пользователя \"%s\", " "прошедшего проверку как \"%s\"" -#: libpq/hba.c:2996 +#: libpq/hba.c:3000 #, c-format msgid "could not open usermap file \"%s\": %m" msgstr "не удалось открыть файл сопоставлений пользователей \"%s\": %m" @@ -15233,7 +15334,7 @@ "Is another postmaster already running on port %d? If not, remove socket file " "\"%s\" and retry." msgstr "" -"Возможно порт %d занят другим процессом postmaster? Если нет, удалите файл " +"Возможно, порт %d занят другим процессом postmaster? Если нет, удалите файл " "\"%s\" и повторите попытку." #: libpq/pqcomm.c:539 @@ -15242,7 +15343,7 @@ "Is another postmaster already running on port %d? If not, wait a few seconds " "and retry." msgstr "" -"Возможно порт %d занят другим процессом postmaster? Если нет, повторите " +"Возможно, порт %d занят другим процессом postmaster? Если нет, повторите " "попытку через несколько секунд." #. translator: first %s is IPv4, IPv6, or Unix @@ -15292,27 +15393,27 @@ msgid "could not receive data from client: %m" msgstr "не удалось получить данные от клиента: %m" -#: libpq/pqcomm.c:1203 tcop/postgres.c:4154 +#: libpq/pqcomm.c:1215 tcop/postgres.c:4174 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "закрытие подключения из-за потери синхронизации протокола" -#: libpq/pqcomm.c:1269 +#: libpq/pqcomm.c:1281 #, c-format msgid "unexpected EOF within message length word" msgstr "неожиданный обрыв данных в слове длины сообщения" -#: libpq/pqcomm.c:1280 +#: libpq/pqcomm.c:1292 #, c-format msgid "invalid message length" msgstr "неверная длина сообщения" -#: libpq/pqcomm.c:1302 libpq/pqcomm.c:1315 +#: libpq/pqcomm.c:1314 libpq/pqcomm.c:1327 #, c-format msgid "incomplete message from client" msgstr "неполное сообщение от клиента" -#: libpq/pqcomm.c:1448 +#: libpq/pqcomm.c:1460 #, c-format msgid "could not send data to client: %m" msgstr "не удалось послать данные клиенту: %m" @@ -15323,7 +15424,7 @@ msgstr "в сообщении не осталось данных" #: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 -#: utils/adt/arrayfuncs.c:1471 utils/adt/rowtypes.c:567 +#: utils/adt/arrayfuncs.c:1460 utils/adt/rowtypes.c:567 #, c-format msgid "insufficient data left in message" msgstr "недостаточно данных осталось в сообщении" @@ -15663,9 +15764,9 @@ msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "методы расширенного узла \"%s\" не зарегистрированы" -#: nodes/nodeFuncs.c:122 nodes/nodeFuncs.c:153 parser/parse_coerce.c:2208 -#: parser/parse_coerce.c:2317 parser/parse_coerce.c:2352 -#: parser/parse_expr.c:2207 parser/parse_func.c:701 parser/parse_oper.c:967 +#: nodes/nodeFuncs.c:122 nodes/nodeFuncs.c:153 parser/parse_coerce.c:2295 +#: parser/parse_coerce.c:2404 parser/parse_coerce.c:2439 +#: parser/parse_expr.c:2212 parser/parse_func.c:701 parser/parse_oper.c:967 #: utils/fmgr/funcapi.c:528 #, c-format msgid "could not find array type for data type %s" @@ -15697,19 +15798,19 @@ msgstr "%s не может применяться к NULL-содержащей стороне внешнего соединения" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1922 parser/analyze.c:1639 parser/analyze.c:1855 +#: optimizer/plan/planner.c:1923 parser/analyze.c:1639 parser/analyze.c:1855 #: parser/analyze.c:2682 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s несовместимо с UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2509 optimizer/plan/planner.c:4162 +#: optimizer/plan/planner.c:2510 optimizer/plan/planner.c:4163 #, c-format msgid "could not implement GROUP BY" msgstr "не удалось реализовать GROUP BY" -#: optimizer/plan/planner.c:2510 optimizer/plan/planner.c:4163 -#: optimizer/plan/planner.c:4890 optimizer/prep/prepunion.c:1045 +#: optimizer/plan/planner.c:2511 optimizer/plan/planner.c:4164 +#: optimizer/plan/planner.c:4891 optimizer/prep/prepunion.c:1045 #, c-format msgid "" "Some of the datatypes only support hashing, while others only support " @@ -15718,27 +15819,27 @@ "Одни типы данных поддерживают только хеширование, а другие - только " "сортировку." -#: optimizer/plan/planner.c:4889 +#: optimizer/plan/planner.c:4890 #, c-format msgid "could not implement DISTINCT" msgstr "не удалось реализовать DISTINCT" -#: optimizer/plan/planner.c:5737 +#: optimizer/plan/planner.c:5738 #, c-format msgid "could not implement window PARTITION BY" msgstr "не удалось реализовать PARTITION BY для окна" -#: optimizer/plan/planner.c:5738 +#: optimizer/plan/planner.c:5739 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Столбцы, разбивающие окна, должны иметь сортируемые типы данных." -#: optimizer/plan/planner.c:5742 +#: optimizer/plan/planner.c:5743 #, c-format msgid "could not implement window ORDER BY" msgstr "не удалось реализовать ORDER BY для окна" -#: optimizer/plan/planner.c:5743 +#: optimizer/plan/planner.c:5744 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Столбцы, сортирующие окна, должны иметь сортируемые типы данных." @@ -15832,7 +15933,7 @@ msgstr "SELECT ... INTO здесь не допускается" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1542 parser/analyze.c:2861 +#: parser/analyze.c:1542 parser/analyze.c:2876 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s нельзя применять к VALUES" @@ -15982,43 +16083,43 @@ "%s не допускается с функциями, возвращающие множества, в списке результатов" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2803 +#: parser/analyze.c:2816 #, c-format msgid "%s must specify unqualified relation names" msgstr "для %s нужно указывать неполные имена отношений" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2834 +#: parser/analyze.c:2849 #, c-format msgid "%s cannot be applied to a join" msgstr "%s нельзя применить к соединению" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2843 +#: parser/analyze.c:2858 #, c-format msgid "%s cannot be applied to a function" msgstr "%s нельзя применить к функции" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2852 +#: parser/analyze.c:2867 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s нельзя применить к табличной функции" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2870 +#: parser/analyze.c:2885 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s нельзя применить к запросу WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2879 +#: parser/analyze.c:2894 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s нельзя применить к именованному хранилищу кортежей" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2899 +#: parser/analyze.c:2914 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "отношение \"%s\" в определении %s отсутствует в предложении FROM" @@ -16208,7 +16309,7 @@ msgid "grouping operations are not allowed in %s" msgstr "операции группировки нельзя применять в конструкции %s" -#: parser/parse_agg.c:678 +#: parser/parse_agg.c:671 #, c-format msgid "" "outer-level aggregate cannot contain a lower-level variable in its direct " @@ -16217,14 +16318,14 @@ "агрегатная функция внешнего уровня не может содержать в своих аргументах " "переменные нижнего уровня" -#: parser/parse_agg.c:757 +#: parser/parse_agg.c:750 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "" "вызовы агрегатных функций не могут включать вызовы функций, возвращающих " "множества" -#: parser/parse_agg.c:758 parser/parse_expr.c:1845 parser/parse_expr.c:2332 +#: parser/parse_agg.c:751 parser/parse_expr.c:1850 parser/parse_expr.c:2337 #: parser/parse_func.c:872 #, c-format msgid "" @@ -16234,99 +16335,99 @@ "Исправить ситуацию можно, переместив функцию, возвращающую множество, в " "элемент LATERAL FROM." -#: parser/parse_agg.c:763 +#: parser/parse_agg.c:756 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "вызовы агрегатных функций не могут включать вызовы оконных функции" -#: parser/parse_agg.c:842 +#: parser/parse_agg.c:835 msgid "window functions are not allowed in JOIN conditions" msgstr "оконные функции нельзя применять в условиях JOIN" -#: parser/parse_agg.c:849 +#: parser/parse_agg.c:842 msgid "window functions are not allowed in functions in FROM" msgstr "оконные функции нельзя применять в функциях во FROM" -#: parser/parse_agg.c:855 +#: parser/parse_agg.c:848 msgid "window functions are not allowed in policy expressions" msgstr "оконные функции нельзя применять в выражениях политик" -#: parser/parse_agg.c:868 +#: parser/parse_agg.c:861 msgid "window functions are not allowed in window definitions" msgstr "оконные функции нельзя применять в определении окна" -#: parser/parse_agg.c:900 +#: parser/parse_agg.c:893 msgid "window functions are not allowed in check constraints" msgstr "оконные функции нельзя применять в ограничениях-проверках" -#: parser/parse_agg.c:904 +#: parser/parse_agg.c:897 msgid "window functions are not allowed in DEFAULT expressions" msgstr "оконные функции нельзя применять в выражениях DEFAULT" -#: parser/parse_agg.c:907 +#: parser/parse_agg.c:900 msgid "window functions are not allowed in index expressions" msgstr "оконные функции нельзя применять в выражениях индексов" -#: parser/parse_agg.c:910 +#: parser/parse_agg.c:903 msgid "window functions are not allowed in index predicates" msgstr "оконные функции нельзя применять в предикатах индексов" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:906 msgid "window functions are not allowed in transform expressions" msgstr "оконные функции нельзя применять в выражениях преобразований" -#: parser/parse_agg.c:916 +#: parser/parse_agg.c:909 msgid "window functions are not allowed in EXECUTE parameters" msgstr "оконные функции нельзя применять в параметрах EXECUTE" -#: parser/parse_agg.c:919 +#: parser/parse_agg.c:912 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "оконные функции нельзя применять в условиях WHEN для триггеров" -#: parser/parse_agg.c:922 +#: parser/parse_agg.c:915 msgid "window functions are not allowed in partition bound" msgstr "оконные функции нельзя применять в выражении границы секции" -#: parser/parse_agg.c:925 +#: parser/parse_agg.c:918 msgid "window functions are not allowed in partition key expressions" msgstr "оконные функции нельзя применять в выражениях ключа секционирования" -#: parser/parse_agg.c:928 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in CALL arguments" msgstr "оконные функции нельзя применять в аргументах CALL" -#: parser/parse_agg.c:931 +#: parser/parse_agg.c:924 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "оконные функции нельзя применять в условиях COPY FROM WHERE" -#: parser/parse_agg.c:934 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in column generation expressions" msgstr "оконные функции нельзя применять в выражениях генерируемых столбцов" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:954 parser/parse_clause.c:1837 +#: parser/parse_agg.c:947 parser/parse_clause.c:1837 #, c-format msgid "window functions are not allowed in %s" msgstr "оконные функции нельзя применять в конструкции %s" -#: parser/parse_agg.c:988 parser/parse_clause.c:2671 +#: parser/parse_agg.c:981 parser/parse_clause.c:2671 #, c-format msgid "window \"%s\" does not exist" msgstr "окно \"%s\" не существует" -#: parser/parse_agg.c:1072 +#: parser/parse_agg.c:1065 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "слишком много наборов группирования (при максимуме 4096)" -#: parser/parse_agg.c:1212 +#: parser/parse_agg.c:1205 #, c-format msgid "" "aggregate functions are not allowed in a recursive query's recursive term" msgstr "" "в рекурсивной части рекурсивного запроса агрегатные функции недопустимы" -#: parser/parse_agg.c:1405 +#: parser/parse_agg.c:1398 #, c-format msgid "" "column \"%s.%s\" must appear in the GROUP BY clause or be used in an " @@ -16335,7 +16436,7 @@ "столбец \"%s.%s\" должен фигурировать в предложении GROUP BY или " "использоваться в агрегатной функции" -#: parser/parse_agg.c:1408 +#: parser/parse_agg.c:1401 #, c-format msgid "" "Direct arguments of an ordered-set aggregate must use only grouped columns." @@ -16343,13 +16444,13 @@ "Прямые аргументы сортирующей агрегатной функции могут включать только " "группируемые столбцы." -#: parser/parse_agg.c:1413 +#: parser/parse_agg.c:1406 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "" "подзапрос использует негруппированный столбец \"%s.%s\" из внешнего запроса" -#: parser/parse_agg.c:1577 +#: parser/parse_agg.c:1570 #, c-format msgid "" "arguments to GROUPING must be grouping expressions of the associated query " @@ -16405,8 +16506,8 @@ "Use separate UNNEST() calls inside ROWS FROM(), and attach a column " "definition list to each one." msgstr "" -"Напишите отдельные вызовы UNNEST() внутри ROWS FROM() и добавьте список с " -"определениями столбцов к каждому." +"Напишите отдельные вызовы UNNEST() внутри ROWS FROM() и добавьте список " +"определений столбцов к каждому." #: parser/parse_clause.c:659 #, c-format @@ -16417,7 +16518,7 @@ #: parser/parse_clause.c:660 #, c-format msgid "Put the column definition list inside ROWS FROM()." -msgstr "Поместите список с определениями столбцов внутрь ROWS FROM()." +msgstr "Поместите список определений столбцов внутрь ROWS FROM()." #: parser/parse_clause.c:760 #, c-format @@ -16680,148 +16781,154 @@ msgid "Cast the offset value to the exact intended type." msgstr "Приведите значение смещения в точности к желаемому типу." -#: parser/parse_coerce.c:1024 parser/parse_coerce.c:1062 -#: parser/parse_coerce.c:1080 parser/parse_coerce.c:1095 -#: parser/parse_expr.c:2241 parser/parse_expr.c:2819 parser/parse_target.c:967 +#: parser/parse_coerce.c:1047 parser/parse_coerce.c:1085 +#: parser/parse_coerce.c:1103 parser/parse_coerce.c:1118 +#: parser/parse_expr.c:2246 parser/parse_expr.c:2824 parser/parse_target.c:966 #, c-format msgid "cannot cast type %s to %s" msgstr "привести тип %s к %s нельзя" -#: parser/parse_coerce.c:1065 +#: parser/parse_coerce.c:1088 #, c-format msgid "Input has too few columns." msgstr "Во входных данных недостаточно столбцов." -#: parser/parse_coerce.c:1083 +#: parser/parse_coerce.c:1106 #, c-format msgid "Cannot cast type %s to %s in column %d." msgstr "Не удалось привести тип %s к %s в столбце %d." -#: parser/parse_coerce.c:1098 +#: parser/parse_coerce.c:1121 #, c-format msgid "Input has too many columns." msgstr "Во входных данных больше столбцов." #. translator: first %s is name of a SQL construct, eg WHERE #. translator: first %s is name of a SQL construct, eg LIMIT -#: parser/parse_coerce.c:1153 parser/parse_coerce.c:1201 +#: parser/parse_coerce.c:1176 parser/parse_coerce.c:1224 #, c-format msgid "argument of %s must be type %s, not type %s" msgstr "аргумент конструкции %s должен иметь тип %s, а не %s" #. translator: %s is name of a SQL construct, eg WHERE #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_coerce.c:1164 parser/parse_coerce.c:1213 +#: parser/parse_coerce.c:1187 parser/parse_coerce.c:1236 #, c-format msgid "argument of %s must not return a set" msgstr "аргумент конструкции %s не должен возвращать множество" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1353 +#: parser/parse_coerce.c:1380 #, c-format msgid "%s types %s and %s cannot be matched" msgstr "в конструкции %s типы %s и %s не имеют общего" -#: parser/parse_coerce.c:1465 +#: parser/parse_coerce.c:1496 #, c-format msgid "argument types %s and %s cannot be matched" msgstr "типы аргументов %s и %s не имеют общего" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1517 +#: parser/parse_coerce.c:1548 #, c-format msgid "%s could not convert type %s to %s" msgstr "в конструкции %s нельзя преобразовать тип %s в %s" -#: parser/parse_coerce.c:1934 +#: parser/parse_coerce.c:2013 #, c-format msgid "arguments declared \"anyelement\" are not all alike" msgstr "аргументы, объявленные как \"anyelement\", должны быть однотипными" -#: parser/parse_coerce.c:1954 +#: parser/parse_coerce.c:2033 #, c-format msgid "arguments declared \"anyarray\" are not all alike" msgstr "аргументы, объявленные как \"anyarray\", должны быть однотипными" -#: parser/parse_coerce.c:1974 +#: parser/parse_coerce.c:2053 #, c-format msgid "arguments declared \"anyrange\" are not all alike" msgstr "аргументы, объявленные как \"anyrange\", должны быть однотипными" -#: parser/parse_coerce.c:2008 parser/parse_coerce.c:2088 +#: parser/parse_coerce.c:2087 parser/parse_coerce.c:2167 #: utils/fmgr/funcapi.c:487 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "аргумент, объявленный как \"%s\", оказался не массивом, а типом %s" -#: parser/parse_coerce.c:2029 +#: parser/parse_coerce.c:2108 #, c-format msgid "arguments declared \"anycompatiblerange\" are not all alike" msgstr "" "аргументы, объявленные как \"anycompatiblerange\", должны быть однотипными" -#: parser/parse_coerce.c:2041 parser/parse_coerce.c:2122 +#: parser/parse_coerce.c:2120 parser/parse_coerce.c:2201 #: utils/fmgr/funcapi.c:501 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "аргумент, объявленный как \"%s\", имеет не диапазонный тип, а %s" -#: parser/parse_coerce.c:2079 +#: parser/parse_coerce.c:2158 #, c-format msgid "cannot determine element type of \"anyarray\" argument" msgstr "тип элемента аргумента \"anyarray\" определить нельзя" -#: parser/parse_coerce.c:2105 parser/parse_coerce.c:2139 +#: parser/parse_coerce.c:2184 parser/parse_coerce.c:2218 #, c-format msgid "argument declared %s is not consistent with argument declared %s" msgstr "аргумент, объявленный как \"%s\", не согласуется с аргументом %s" -#: parser/parse_coerce.c:2163 +#: parser/parse_coerce.c:2242 #, c-format msgid "could not determine polymorphic type because input has type %s" msgstr "" "не удалось определить полиморфный тип, так как входные аргументы имеют тип %s" -#: parser/parse_coerce.c:2177 +#: parser/parse_coerce.c:2256 #, c-format msgid "type matched to anynonarray is an array type: %s" msgstr "" "в нарушение объявления \"anynonarray\" соответствующий аргумент оказался " "массивом: %s" -#: parser/parse_coerce.c:2187 +#: parser/parse_coerce.c:2266 #, c-format msgid "type matched to anyenum is not an enum type: %s" msgstr "" "в нарушение объявления \"anyenum\" соответствующий аргумент оказался не " "перечислением: %s" -#: parser/parse_coerce.c:2218 parser/parse_coerce.c:2267 -#: parser/parse_coerce.c:2329 parser/parse_coerce.c:2365 +#: parser/parse_coerce.c:2287 +#, c-format +msgid "arguments of anycompatible family cannot be cast to a common type" +msgstr "" +"аргументы семейства anycompatible не могут быть приведены к общему типу" + +#: parser/parse_coerce.c:2305 parser/parse_coerce.c:2354 +#: parser/parse_coerce.c:2416 parser/parse_coerce.c:2452 #, c-format msgid "could not determine polymorphic type %s because input has type %s" msgstr "" "не удалось определить полиморфный тип %s, так как входные аргументы имеют " "тип %s" -#: parser/parse_coerce.c:2228 +#: parser/parse_coerce.c:2315 #, c-format msgid "anycompatiblerange type %s does not match anycompatible type %s" msgstr "тип %s (anycompatiblerange) не соответствует типу %s (anycompatible)" -#: parser/parse_coerce.c:2242 +#: parser/parse_coerce.c:2329 #, c-format msgid "type matched to anycompatiblenonarray is an array type: %s" msgstr "" "в нарушение объявления \"anycompatiblenonarray\" соответствующий аргумент " "оказался массивом: %s" -#: parser/parse_coerce.c:2433 +#: parser/parse_coerce.c:2520 #, c-format msgid "A result of type %s requires at least one input of type %s." msgstr "Для результата типа %s требуется минимум один аргумент типа %s." -#: parser/parse_coerce.c:2445 +#: parser/parse_coerce.c:2532 #, c-format msgid "" "A result of type %s requires at least one input of type anyelement, " @@ -16830,7 +16937,7 @@ "Для результата типа %s требуется минимум один аргумент типа anyelement, " "anyarray, anynonarray, anyenum или anyrange." -#: parser/parse_coerce.c:2457 +#: parser/parse_coerce.c:2544 #, c-format msgid "" "A result of type %s requires at least one input of type anycompatible, " @@ -16839,7 +16946,7 @@ "Для результата типа %s требуется минимум один аргумент типа anycompatible, " "anycompatiblearray, anycompatiblenonarray или anycompatiblerange." -#: parser/parse_coerce.c:2487 +#: parser/parse_coerce.c:2574 msgid "A result of type internal requires at least one input of type internal." msgstr "" "Для результата типа internal требуется минимум один аргумент типа internal." @@ -16996,8 +17103,8 @@ msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT не допускается в данном контексте" -#: parser/parse_expr.c:402 parser/parse_relation.c:3506 -#: parser/parse_relation.c:3526 +#: parser/parse_expr.c:402 parser/parse_relation.c:3507 +#: parser/parse_relation.c:3527 #, c-format msgid "column %s.%s does not exist" msgstr "столбец %s.%s не существует" @@ -17019,7 +17126,7 @@ msgstr "" "запись имени столбца .%s применена к типу %s, который не является составным" -#: parser/parse_expr.c:457 parser/parse_target.c:729 +#: parser/parse_expr.c:457 parser/parse_target.c:728 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "расширение строки через \"*\" здесь не поддерживается" @@ -17033,7 +17140,7 @@ msgstr "в выражении границы секции нельзя ссылаться на столбцы" #: parser/parse_expr.c:850 parser/parse_relation.c:799 -#: parser/parse_relation.c:881 parser/parse_target.c:1207 +#: parser/parse_relation.c:881 parser/parse_target.c:1206 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "неоднозначная ссылка на столбец \"%s\"" @@ -17050,17 +17157,17 @@ msgstr "для NULLIF требуется, чтобы оператор = возвращал логическое значение" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1155 parser/parse_expr.c:3135 +#: parser/parse_expr.c:1155 parser/parse_expr.c:3140 #, c-format msgid "%s must not return a set" msgstr "%s не должна возвращать множество" -#: parser/parse_expr.c:1603 parser/parse_expr.c:1635 +#: parser/parse_expr.c:1608 parser/parse_expr.c:1640 #, c-format msgid "number of columns does not match number of values" msgstr "число столбцов не равно числу значений" -#: parser/parse_expr.c:1649 +#: parser/parse_expr.c:1654 #, c-format msgid "" "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() " @@ -17070,156 +17177,156 @@ "SELECT или выражение ROW()" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1843 parser/parse_expr.c:2330 parser/parse_func.c:2540 +#: parser/parse_expr.c:1848 parser/parse_expr.c:2335 parser/parse_func.c:2540 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "функции, возвращающие множества, нельзя применять в конструкции %s" -#: parser/parse_expr.c:1904 +#: parser/parse_expr.c:1909 msgid "cannot use subquery in check constraint" msgstr "в ограничении-проверке нельзя использовать подзапросы" -#: parser/parse_expr.c:1908 +#: parser/parse_expr.c:1913 msgid "cannot use subquery in DEFAULT expression" msgstr "в выражении DEFAULT нельзя использовать подзапросы" -#: parser/parse_expr.c:1911 +#: parser/parse_expr.c:1916 msgid "cannot use subquery in index expression" msgstr "в индексном выражении нельзя использовать подзапросы" -#: parser/parse_expr.c:1914 +#: parser/parse_expr.c:1919 msgid "cannot use subquery in index predicate" msgstr "в предикате индекса нельзя использовать подзапросы" -#: parser/parse_expr.c:1917 +#: parser/parse_expr.c:1922 msgid "cannot use subquery in transform expression" msgstr "нельзя использовать подзапрос в выражении преобразования" -#: parser/parse_expr.c:1920 +#: parser/parse_expr.c:1925 msgid "cannot use subquery in EXECUTE parameter" msgstr "в качестве параметра EXECUTE нельзя использовать подзапрос" -#: parser/parse_expr.c:1923 +#: parser/parse_expr.c:1928 msgid "cannot use subquery in trigger WHEN condition" msgstr "в условии WHEN для триггера нельзя использовать подзапросы" -#: parser/parse_expr.c:1926 +#: parser/parse_expr.c:1931 msgid "cannot use subquery in partition bound" msgstr "в выражении границы секции нельзя использовать подзапросы" -#: parser/parse_expr.c:1929 +#: parser/parse_expr.c:1934 msgid "cannot use subquery in partition key expression" msgstr "в выражении ключа секционирования нельзя использовать подзапросы" -#: parser/parse_expr.c:1932 +#: parser/parse_expr.c:1937 msgid "cannot use subquery in CALL argument" msgstr "в качестве аргумента CALL нельзя использовать подзапрос" -#: parser/parse_expr.c:1935 +#: parser/parse_expr.c:1940 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "в условии COPY FROM WHERE нельзя использовать подзапросы" -#: parser/parse_expr.c:1938 +#: parser/parse_expr.c:1943 msgid "cannot use subquery in column generation expression" msgstr "в выражении генерируемого столбца нельзя использовать подзапросы" -#: parser/parse_expr.c:1991 +#: parser/parse_expr.c:1996 #, c-format msgid "subquery must return only one column" msgstr "подзапрос должен вернуть только один столбец" -#: parser/parse_expr.c:2075 +#: parser/parse_expr.c:2080 #, c-format msgid "subquery has too many columns" msgstr "в подзапросе слишком много столбцов" -#: parser/parse_expr.c:2080 +#: parser/parse_expr.c:2085 #, c-format msgid "subquery has too few columns" msgstr "в подзапросе недостаточно столбцов" -#: parser/parse_expr.c:2181 +#: parser/parse_expr.c:2186 #, c-format msgid "cannot determine type of empty array" msgstr "тип пустого массива определить нельзя" -#: parser/parse_expr.c:2182 +#: parser/parse_expr.c:2187 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "" "Приведите его к желаемому типу явным образом, например ARRAY[]::integer[]." -#: parser/parse_expr.c:2196 +#: parser/parse_expr.c:2201 #, c-format msgid "could not find element type for data type %s" msgstr "не удалось определить тип элемента для типа данных %s" -#: parser/parse_expr.c:2481 +#: parser/parse_expr.c:2486 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "вместо значения XML-атрибута без имени должен указываться столбец" -#: parser/parse_expr.c:2482 +#: parser/parse_expr.c:2487 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "вместо значения XML-элемента без имени должен указываться столбец" -#: parser/parse_expr.c:2497 +#: parser/parse_expr.c:2502 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "имя XML-атрибута \"%s\" указано неоднократно" -#: parser/parse_expr.c:2604 +#: parser/parse_expr.c:2609 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "привести результат XMLSERIALIZE к типу %s нельзя" -#: parser/parse_expr.c:2892 parser/parse_expr.c:3088 +#: parser/parse_expr.c:2897 parser/parse_expr.c:3093 #, c-format msgid "unequal number of entries in row expressions" msgstr "разное число элементов в строках" -#: parser/parse_expr.c:2902 +#: parser/parse_expr.c:2907 #, c-format msgid "cannot compare rows of zero length" msgstr "строки нулевой длины сравнивать нельзя" -#: parser/parse_expr.c:2927 +#: parser/parse_expr.c:2932 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "" "оператор сравнения строк должен выдавать результат логического типа, а не %s" -#: parser/parse_expr.c:2934 +#: parser/parse_expr.c:2939 #, c-format msgid "row comparison operator must not return a set" msgstr "оператор сравнения строк не должен возвращать множество" -#: parser/parse_expr.c:2993 parser/parse_expr.c:3034 +#: parser/parse_expr.c:2998 parser/parse_expr.c:3039 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "не удалось выбрать интерпретацию оператора сравнения строк %s" -#: parser/parse_expr.c:2995 +#: parser/parse_expr.c:3000 #, c-format msgid "" "Row comparison operators must be associated with btree operator families." msgstr "" "Операторы сравнения строк должны быть связаны с семейством операторов btree." -#: parser/parse_expr.c:3036 +#: parser/parse_expr.c:3041 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "Оказалось несколько равноценных кандидатур." -#: parser/parse_expr.c:3129 +#: parser/parse_expr.c:3134 #, c-format msgid "IS DISTINCT FROM requires = operator to yield boolean" msgstr "" "для IS DISTINCT FROM требуется, чтобы оператор = возвращал логическое " "значение" -#: parser/parse_expr.c:3448 parser/parse_expr.c:3466 +#: parser/parse_expr.c:3453 parser/parse_expr.c:3471 #, c-format msgid "operator precedence change: %s is now lower precedence than %s" msgstr "" @@ -17718,12 +17825,12 @@ msgid "table name \"%s\" specified more than once" msgstr "имя таблицы \"%s\" указано больше одного раза" -#: parser/parse_relation.c:473 parser/parse_relation.c:3446 +#: parser/parse_relation.c:473 parser/parse_relation.c:3447 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "в элементе предложения FROM неверная ссылка на таблицу \"%s\"" -#: parser/parse_relation.c:477 parser/parse_relation.c:3451 +#: parser/parse_relation.c:477 parser/parse_relation.c:3452 #, c-format msgid "" "There is an entry for table \"%s\", but it cannot be referenced from this " @@ -17749,13 +17856,13 @@ "системный столбец \"%s\" нельзя использовать в выражении генерируемого " "столбца" -#: parser/parse_relation.c:1170 parser/parse_relation.c:1620 -#: parser/parse_relation.c:2262 +#: parser/parse_relation.c:1167 parser/parse_relation.c:1617 +#: parser/parse_relation.c:2259 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "в таблице \"%s\" содержится столбцов: %d, но указано: %d" -#: parser/parse_relation.c:1372 +#: parser/parse_relation.c:1369 #, c-format msgid "" "There is a WITH item named \"%s\", but it cannot be referenced from this " @@ -17764,7 +17871,7 @@ "В WITH есть элемент \"%s\", но на него нельзя ссылаться из этой части " "запроса." -#: parser/parse_relation.c:1374 +#: parser/parse_relation.c:1371 #, c-format msgid "" "Use WITH RECURSIVE, or re-order the WITH items to remove forward references." @@ -17772,62 +17879,61 @@ "Используйте WITH RECURSIVE или исключите ссылки вперёд, переупорядочив " "элементы WITH." -#: parser/parse_relation.c:1747 +#: parser/parse_relation.c:1744 #, c-format msgid "" "a column definition list is only allowed for functions returning \"record\"" msgstr "" -"список с определением столбцов может быть только у функций, возвращающих " -"запись" +"список определений столбцов может быть только у функций, возвращающих запись" -#: parser/parse_relation.c:1756 +#: parser/parse_relation.c:1753 #, c-format msgid "a column definition list is required for functions returning \"record\"" msgstr "" -"у функций, возвращающих запись, должен быть список с определением столбцов" +"у функций, возвращающих запись, должен быть список определений столбцов" -#: parser/parse_relation.c:1845 +#: parser/parse_relation.c:1842 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" msgstr "" "функция \"%s\", используемая во FROM, возвращает неподдерживаемый тип %s" -#: parser/parse_relation.c:2054 +#: parser/parse_relation.c:2051 #, c-format msgid "VALUES lists \"%s\" have %d columns available but %d columns specified" msgstr "в списках VALUES \"%s\" содержится столбцов: %d, но указано: %d" -#: parser/parse_relation.c:2125 +#: parser/parse_relation.c:2122 #, c-format msgid "joins can have at most %d columns" msgstr "число столбцов в соединениях ограничено %d" -#: parser/parse_relation.c:2235 +#: parser/parse_relation.c:2232 #, c-format msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "в запросе \"%s\" в WITH нет предложения RETURNING" -#: parser/parse_relation.c:3221 parser/parse_relation.c:3231 +#: parser/parse_relation.c:3222 parser/parse_relation.c:3232 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "столбец %d отношения \"%s\" не существует" -#: parser/parse_relation.c:3449 +#: parser/parse_relation.c:3450 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Возможно, предполагалась ссылка на псевдоним таблицы \"%s\"." -#: parser/parse_relation.c:3457 +#: parser/parse_relation.c:3458 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "таблица \"%s\" отсутствует в предложении FROM" -#: parser/parse_relation.c:3509 +#: parser/parse_relation.c:3510 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "Возможно, предполагалась ссылка на столбец \"%s.%s\"." -#: parser/parse_relation.c:3511 +#: parser/parse_relation.c:3512 #, c-format msgid "" "There is a column named \"%s\" in table \"%s\", but it cannot be referenced " @@ -17836,34 +17942,34 @@ "Столбец \"%s\" есть в таблице \"%s\", но на него нельзя ссылаться из этой " "части запроса." -#: parser/parse_relation.c:3528 +#: parser/parse_relation.c:3529 #, c-format msgid "" "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "" "Возможно, предполагалась ссылка на столбец \"%s.%s\" или столбец \"%s.%s\"." -#: parser/parse_target.c:478 parser/parse_target.c:792 +#: parser/parse_target.c:477 parser/parse_target.c:791 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "присвоить значение системному столбцу \"%s\" нельзя" -#: parser/parse_target.c:506 +#: parser/parse_target.c:505 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "элементу массива нельзя присвоить значение по умолчанию" -#: parser/parse_target.c:511 +#: parser/parse_target.c:510 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "вложенному полю нельзя присвоить значение по умолчанию" -#: parser/parse_target.c:584 +#: parser/parse_target.c:583 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "столбец \"%s\" имеет тип %s, а выражение - %s" -#: parser/parse_target.c:776 +#: parser/parse_target.c:775 #, c-format msgid "" "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a " @@ -17872,7 +17978,7 @@ "присвоить значение полю \"%s\" столбца \"%s\" нельзя, так как тип %s не " "является составным" -#: parser/parse_target.c:785 +#: parser/parse_target.c:784 #, c-format msgid "" "cannot assign to field \"%s\" of column \"%s\" because there is no such " @@ -17881,7 +17987,7 @@ "присвоить значение полю \"%s\" столбца \"%s\" нельзя, так как в типе данных " "%s нет такого столбца" -#: parser/parse_target.c:864 +#: parser/parse_target.c:863 #, c-format msgid "" "array assignment to \"%s\" requires type %s but expression is of type %s" @@ -17889,12 +17995,12 @@ "для присваивания массива полю \"%s\" требуется тип %s, однако выражение " "имеет тип %s" -#: parser/parse_target.c:874 +#: parser/parse_target.c:873 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "вложенное поле \"%s\" имеет тип %s, а выражение - %s" -#: parser/parse_target.c:1295 +#: parser/parse_target.c:1294 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * должен ссылаться на таблицы" @@ -17918,7 +18024,7 @@ #: utils/cache/typcache.c:437 #, c-format msgid "type \"%s\" is only a shell" -msgstr "тип \"%s\" - лишь пустышка" +msgstr "тип \"%s\" является пустышкой" #: parser/parse_type.c:363 #, c-format @@ -17951,6 +18057,7 @@ msgstr "массивы с типом serial не реализованы" #: parser/parse_utilcmd.c:653 parser/parse_utilcmd.c:665 +#: parser/parse_utilcmd.c:724 #, c-format msgid "" "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" @@ -17978,40 +18085,40 @@ msgstr "" "для столбца \"%s\" таблицы \"%s\" свойство identity задано неоднократно" -#: parser/parse_utilcmd.c:727 +#: parser/parse_utilcmd.c:737 #, c-format msgid "generated columns are not supported on typed tables" msgstr "генерируемые столбцы не поддерживаются с типизированными таблицами" -#: parser/parse_utilcmd.c:731 +#: parser/parse_utilcmd.c:741 #, c-format msgid "generated columns are not supported on partitions" msgstr "генерируемые столбцы не поддерживаются с секциями" -#: parser/parse_utilcmd.c:736 +#: parser/parse_utilcmd.c:746 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" указано несколько генерирующих выражений" -#: parser/parse_utilcmd.c:754 parser/parse_utilcmd.c:869 +#: parser/parse_utilcmd.c:764 parser/parse_utilcmd.c:879 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "ограничения первичного ключа для сторонних таблиц не поддерживаются" -#: parser/parse_utilcmd.c:763 parser/parse_utilcmd.c:879 +#: parser/parse_utilcmd.c:773 parser/parse_utilcmd.c:889 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "ограничения уникальности для сторонних таблиц не поддерживаются" -#: parser/parse_utilcmd.c:808 +#: parser/parse_utilcmd.c:818 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" задано и значение по умолчанию, и свойство " "identity" -#: parser/parse_utilcmd.c:816 +#: parser/parse_utilcmd.c:826 #, c-format msgid "" "both default and generation expression specified for column \"%s\" of table " @@ -18020,7 +18127,7 @@ "для столбца \"%s\" таблицы \"%s\" задано и значение по умолчанию, и " "генерирующее выражение" -#: parser/parse_utilcmd.c:824 +#: parser/parse_utilcmd.c:834 #, c-format msgid "" "both identity and generation expression specified for column \"%s\" of table " @@ -18029,93 +18136,93 @@ "для столбца \"%s\" таблицы \"%s\" задано и генерирующее выражение, и " "свойство identity" -#: parser/parse_utilcmd.c:889 +#: parser/parse_utilcmd.c:899 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "ограничения-исключения для сторонних таблиц не поддерживаются" -#: parser/parse_utilcmd.c:895 +#: parser/parse_utilcmd.c:905 #, c-format msgid "exclusion constraints are not supported on partitioned tables" msgstr "ограничения-исключения для секционированных таблиц не поддерживаются" -#: parser/parse_utilcmd.c:960 +#: parser/parse_utilcmd.c:970 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE при создании сторонних таблиц не поддерживается" -#: parser/parse_utilcmd.c:1728 parser/parse_utilcmd.c:1837 +#: parser/parse_utilcmd.c:1738 parser/parse_utilcmd.c:1847 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "Индекс \"%s\" ссылается на тип всей строки таблицы." -#: parser/parse_utilcmd.c:2187 +#: parser/parse_utilcmd.c:2197 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "в CREATE TABLE нельзя использовать существующий индекс" -#: parser/parse_utilcmd.c:2207 +#: parser/parse_utilcmd.c:2217 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "индекс \"%s\" уже связан с ограничением" -#: parser/parse_utilcmd.c:2222 +#: parser/parse_utilcmd.c:2232 #, c-format msgid "index \"%s\" is not valid" msgstr "индекс \"%s\" - нерабочий" -#: parser/parse_utilcmd.c:2228 +#: parser/parse_utilcmd.c:2238 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" не является уникальным индексом" -#: parser/parse_utilcmd.c:2229 parser/parse_utilcmd.c:2236 -#: parser/parse_utilcmd.c:2243 parser/parse_utilcmd.c:2320 +#: parser/parse_utilcmd.c:2239 parser/parse_utilcmd.c:2246 +#: parser/parse_utilcmd.c:2253 parser/parse_utilcmd.c:2330 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "" "Создать первичный ключ или ограничение уникальности для такого индекса " "нельзя." -#: parser/parse_utilcmd.c:2235 +#: parser/parse_utilcmd.c:2245 #, c-format msgid "index \"%s\" contains expressions" msgstr "индекс \"%s\" содержит выражения" -#: parser/parse_utilcmd.c:2242 +#: parser/parse_utilcmd.c:2252 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" - частичный индекс" -#: parser/parse_utilcmd.c:2254 +#: parser/parse_utilcmd.c:2264 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" - откладываемый индекс" -#: parser/parse_utilcmd.c:2255 +#: parser/parse_utilcmd.c:2265 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "" "Создать не откладываемое ограничение на базе откладываемого индекса нельзя." -#: parser/parse_utilcmd.c:2319 +#: parser/parse_utilcmd.c:2329 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "" "в индексе \"%s\" для столбца номер %d не определено поведение сортировки по " "умолчанию" -#: parser/parse_utilcmd.c:2476 +#: parser/parse_utilcmd.c:2486 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "столбец \"%s\" фигурирует в первичном ключе дважды" -#: parser/parse_utilcmd.c:2482 +#: parser/parse_utilcmd.c:2492 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "столбец \"%s\" фигурирует в ограничении уникальности дважды" -#: parser/parse_utilcmd.c:2835 +#: parser/parse_utilcmd.c:2845 #, c-format msgid "" "index expressions and predicates can refer only to the table being indexed" @@ -18123,17 +18230,17 @@ "индексные выражения и предикаты могут ссылаться только на индексируемую " "таблицу" -#: parser/parse_utilcmd.c:2881 +#: parser/parse_utilcmd.c:2891 #, c-format msgid "rules on materialized views are not supported" msgstr "правила для материализованных представлений не поддерживаются" -#: parser/parse_utilcmd.c:2944 +#: parser/parse_utilcmd.c:2954 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "в условиях WHERE для правил нельзя ссылаться на другие отношения" -#: parser/parse_utilcmd.c:3018 +#: parser/parse_utilcmd.c:3028 #, c-format msgid "" "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE " @@ -18142,164 +18249,164 @@ "правила с условиями WHERE могут содержать только действия SELECT, INSERT, " "UPDATE или DELETE" -#: parser/parse_utilcmd.c:3036 parser/parse_utilcmd.c:3137 +#: parser/parse_utilcmd.c:3046 parser/parse_utilcmd.c:3147 #: rewrite/rewriteHandler.c:503 rewrite/rewriteManip.c:1018 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "условные операторы UNION/INTERSECT/EXCEPT не реализованы" -#: parser/parse_utilcmd.c:3054 +#: parser/parse_utilcmd.c:3064 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "в правиле ON SELECT нельзя использовать OLD" -#: parser/parse_utilcmd.c:3058 +#: parser/parse_utilcmd.c:3068 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "в правиле ON SELECT нельзя использовать NEW" -#: parser/parse_utilcmd.c:3067 +#: parser/parse_utilcmd.c:3077 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "в правиле ON INSERT нельзя использовать OLD" -#: parser/parse_utilcmd.c:3073 +#: parser/parse_utilcmd.c:3083 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "в правиле ON DELETE нельзя использовать NEW" -#: parser/parse_utilcmd.c:3101 +#: parser/parse_utilcmd.c:3111 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "в запросе WITH нельзя ссылаться на OLD" -#: parser/parse_utilcmd.c:3108 +#: parser/parse_utilcmd.c:3118 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "в запросе WITH нельзя ссылаться на NEW" -#: parser/parse_utilcmd.c:3567 +#: parser/parse_utilcmd.c:3578 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "предложение DEFERRABLE расположено неправильно" -#: parser/parse_utilcmd.c:3572 parser/parse_utilcmd.c:3587 +#: parser/parse_utilcmd.c:3583 parser/parse_utilcmd.c:3598 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "DEFERRABLE/NOT DEFERRABLE можно указать только один раз" -#: parser/parse_utilcmd.c:3582 +#: parser/parse_utilcmd.c:3593 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "предложение NOT DEFERRABLE расположено неправильно" -#: parser/parse_utilcmd.c:3595 parser/parse_utilcmd.c:3621 gram.y:5594 +#: parser/parse_utilcmd.c:3606 parser/parse_utilcmd.c:3632 gram.y:5594 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "" "ограничение с характеристикой INITIALLY DEFERRED должно быть объявлено как " "DEFERRABLE" -#: parser/parse_utilcmd.c:3603 +#: parser/parse_utilcmd.c:3614 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "предложение INITIALLY DEFERRED расположено неправильно" -#: parser/parse_utilcmd.c:3608 parser/parse_utilcmd.c:3634 +#: parser/parse_utilcmd.c:3619 parser/parse_utilcmd.c:3645 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "INITIALLY IMMEDIATE/DEFERRED можно указать только один раз" -#: parser/parse_utilcmd.c:3629 +#: parser/parse_utilcmd.c:3640 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "предложение INITIALLY IMMEDIATE расположено неправильно" -#: parser/parse_utilcmd.c:3820 +#: parser/parse_utilcmd.c:3831 #, c-format msgid "" "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "в CREATE указана схема (%s), отличная от создаваемой (%s)" -#: parser/parse_utilcmd.c:3855 +#: parser/parse_utilcmd.c:3866 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "\"%s\" — не секционированная таблица" -#: parser/parse_utilcmd.c:3862 +#: parser/parse_utilcmd.c:3873 #, c-format msgid "table \"%s\" is not partitioned" msgstr "таблица \"%s\" не является секционированной" -#: parser/parse_utilcmd.c:3869 +#: parser/parse_utilcmd.c:3880 #, c-format msgid "index \"%s\" is not partitioned" msgstr "индекс \"%s\" не секционирован" -#: parser/parse_utilcmd.c:3909 +#: parser/parse_utilcmd.c:3920 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "у секционированной по хешу таблицы не может быть секции по умолчанию" -#: parser/parse_utilcmd.c:3926 +#: parser/parse_utilcmd.c:3937 #, c-format msgid "invalid bound specification for a hash partition" msgstr "неправильное указание ограничения для хеш-секции" -#: parser/parse_utilcmd.c:3932 partitioning/partbounds.c:4640 +#: parser/parse_utilcmd.c:3943 partitioning/partbounds.c:4640 #, c-format -msgid "modulus for hash partition must be a positive integer" +msgid "modulus for hash partition must be an integer value greater than zero" msgstr "модуль для хеш-секции должен быть положительным целым" -#: parser/parse_utilcmd.c:3939 partitioning/partbounds.c:4648 +#: parser/parse_utilcmd.c:3950 partitioning/partbounds.c:4648 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "остаток для хеш-секции должен быть меньше модуля" -#: parser/parse_utilcmd.c:3952 +#: parser/parse_utilcmd.c:3963 #, c-format msgid "invalid bound specification for a list partition" msgstr "неправильное указание ограничения для секции по списку" -#: parser/parse_utilcmd.c:4005 +#: parser/parse_utilcmd.c:4016 #, c-format msgid "invalid bound specification for a range partition" msgstr "неправильное указание ограничения для секции по диапазону" -#: parser/parse_utilcmd.c:4011 +#: parser/parse_utilcmd.c:4022 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "" "во FROM должно указываться ровно одно значение для секционирующего столбца" -#: parser/parse_utilcmd.c:4015 +#: parser/parse_utilcmd.c:4026 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "" "в TO должно указываться ровно одно значение для секционирующего столбца" -#: parser/parse_utilcmd.c:4129 +#: parser/parse_utilcmd.c:4140 #, c-format msgid "cannot specify NULL in range bound" msgstr "указать NULL в диапазонном ограничении нельзя" -#: parser/parse_utilcmd.c:4178 +#: parser/parse_utilcmd.c:4189 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "за границей MAXVALUE могут следовать только границы MAXVALUE" -#: parser/parse_utilcmd.c:4185 +#: parser/parse_utilcmd.c:4196 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "за границей MINVALUE могут следовать только границы MINVALUE" -#: parser/parse_utilcmd.c:4227 +#: parser/parse_utilcmd.c:4238 #, c-format msgid "" "could not determine which collation to use for partition bound expression" msgstr "не удалось определить правило сортировки для выражения границы секции" -#: parser/parse_utilcmd.c:4244 +#: parser/parse_utilcmd.c:4255 #, c-format msgid "" "collation of partition bound value for column \"%s\" does not match " @@ -18308,7 +18415,7 @@ "правило сортировки для выражения границы секции в столбце \"%s\" не " "соответствует правилу сортировки для ключа секционирования \"%s\"" -#: parser/parse_utilcmd.c:4261 +#: parser/parse_utilcmd.c:4272 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "указанное значение нельзя привести к типу %s столбца \"%s\"" @@ -18384,8 +18491,10 @@ #: partitioning/partbounds.c:4644 #, c-format -msgid "remainder for hash partition must be a non-negative integer" -msgstr "остаток для хеш-секции должен быть неотрицательным целым" +msgid "" +"remainder for hash partition must be an integer value greater than or equal " +"to zero" +msgstr "значение остатка для хеш-секции должно быть неотрицательным целым" #: partitioning/partbounds.c:4668 #, c-format @@ -18410,23 +18519,23 @@ "столбец %d ключа секционирования имеет тип \"%s\", но для него передано " "значение типа \"%s\"" -#: port/pg_sema.c:209 port/pg_shmem.c:640 port/posix_sema.c:209 -#: port/sysv_sema.c:327 port/sysv_shmem.c:640 +#: port/pg_sema.c:209 port/pg_shmem.c:650 port/posix_sema.c:209 +#: port/sysv_sema.c:327 port/sysv_shmem.c:650 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "не удалось получить информацию о каталоге данных \"%s\": %m" -#: port/pg_shmem.c:216 port/sysv_shmem.c:216 +#: port/pg_shmem.c:226 port/sysv_shmem.c:226 #, c-format msgid "could not create shared memory segment: %m" msgstr "не удалось создать сегмент разделяемой памяти: %m" -#: port/pg_shmem.c:217 port/sysv_shmem.c:217 +#: port/pg_shmem.c:227 port/sysv_shmem.c:227 #, c-format msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)." msgstr "Ошибка в системном вызове shmget(ключ=%lu, размер=%zu, 0%o)." -#: port/pg_shmem.c:221 port/sysv_shmem.c:221 +#: port/pg_shmem.c:231 port/sysv_shmem.c:231 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory " @@ -18440,7 +18549,7 @@ "Подробная информация о настройке разделяемой памяти содержится в " "документации PostgreSQL." -#: port/pg_shmem.c:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:238 port/sysv_shmem.c:238 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory " @@ -18455,7 +18564,7 @@ "Подробная информация о настройке разделяемой памяти содержится в " "документации PostgreSQL." -#: port/pg_shmem.c:234 port/sysv_shmem.c:234 +#: port/pg_shmem.c:244 port/sysv_shmem.c:244 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs " @@ -18472,12 +18581,12 @@ "Подробная информация о настройке разделяемой памяти содержится в " "документации PostgreSQL." -#: port/pg_shmem.c:578 port/sysv_shmem.c:578 +#: port/pg_shmem.c:588 port/sysv_shmem.c:588 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "не удалось получить анонимную разделяемую память: %m" -#: port/pg_shmem.c:580 port/sysv_shmem.c:580 +#: port/pg_shmem.c:590 port/sysv_shmem.c:590 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory " @@ -18487,23 +18596,29 @@ msgstr "" "Эта ошибка обычно возникает, когда PostgreSQL запрашивает сегмент " "разделяемой памяти, превышая объём доступной физической либо виртуальной " -"памяти или гигантских страниц. Для уменьшения запроса (текущий размер: %zu " -"Б) можно снизить использование разделяемой памяти, возможно, уменьшив " +"памяти или огромных страниц. Для уменьшения запроса (текущий размер: %zu Б) " +"можно снизить использование разделяемой памяти, возможно, уменьшив " "shared_buffers или max_connections." -#: port/pg_shmem.c:648 port/sysv_shmem.c:648 +#: port/pg_shmem.c:658 port/sysv_shmem.c:658 #, c-format msgid "huge pages not supported on this platform" -msgstr "гигантские страницы на этой платформе не поддерживаются" +msgstr "огромные страницы на этой платформе не поддерживаются" -#: port/pg_shmem.c:709 port/sysv_shmem.c:709 utils/init/miscinit.c:1137 +#: port/pg_shmem.c:665 port/sysv_shmem.c:665 +#, c-format +msgid "huge pages not supported with the current shared_memory_type setting" +msgstr "" +"огромные страницы не поддерживаются с текущим значением shared_memory_type" + +#: port/pg_shmem.c:725 port/sysv_shmem.c:725 utils/init/miscinit.c:1136 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "" "ранее выделенный блок разделяемой памяти (ключ %lu, ID %lu) по-прежнему " "используется" -#: port/pg_shmem.c:712 port/sysv_shmem.c:712 utils/init/miscinit.c:1139 +#: port/pg_shmem.c:728 port/sysv_shmem.c:728 utils/init/miscinit.c:1138 #, c-format msgid "" "Terminate any old server processes associated with data directory \"%s\"." @@ -18739,17 +18854,17 @@ msgid "Enable the \"track_counts\" option." msgstr "Включите параметр \"track_counts\"." -#: postmaster/bgworker.c:405 postmaster/bgworker.c:900 +#: postmaster/bgworker.c:407 postmaster/bgworker.c:911 #, c-format msgid "registering background worker \"%s\"" msgstr "регистрация фонового процесса \"%s\"" -#: postmaster/bgworker.c:437 +#: postmaster/bgworker.c:448 #, c-format msgid "unregistering background worker \"%s\"" msgstr "разрегистрация фонового процесса \"%s\"" -#: postmaster/bgworker.c:650 +#: postmaster/bgworker.c:661 #, c-format msgid "" "background worker \"%s\": must attach to shared memory in order to request a " @@ -18758,7 +18873,7 @@ "фоновый процесс \"%s\" должен иметь доступ к общей памяти, чтобы запросить " "подключение к БД" -#: postmaster/bgworker.c:659 +#: postmaster/bgworker.c:670 #, c-format msgid "" "background worker \"%s\": cannot request database access if starting at " @@ -18767,12 +18882,12 @@ "фоновый процесс \"%s\" не может получить доступ к БД, если он запущен при " "старте главного процесса" -#: postmaster/bgworker.c:673 +#: postmaster/bgworker.c:684 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "фоновый процесс \"%s\": неправильный интервал перезапуска" -#: postmaster/bgworker.c:688 +#: postmaster/bgworker.c:699 #, c-format msgid "" "background worker \"%s\": parallel workers may not be configured for restart" @@ -18780,19 +18895,19 @@ "фоновый процесс \"%s\": параллельные исполнители не могут быть настроены для " "перезапуска" -#: postmaster/bgworker.c:712 +#: postmaster/bgworker.c:723 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "завершение фонового процесса \"%s\" по команде администратора" -#: postmaster/bgworker.c:908 +#: postmaster/bgworker.c:919 #, c-format msgid "" "background worker \"%s\": must be registered in shared_preload_libraries" msgstr "" "фоновой процесс \"%s\" должен быть зарегистрирован в shared_preload_libraries" -#: postmaster/bgworker.c:920 +#: postmaster/bgworker.c:931 #, c-format msgid "" "background worker \"%s\": only dynamic background workers can request " @@ -18801,12 +18916,12 @@ "фоновый процесс \"%s\": только динамические фоновые процессы могут " "запрашивать уведомление" -#: postmaster/bgworker.c:935 +#: postmaster/bgworker.c:946 #, c-format msgid "too many background workers" msgstr "слишком много фоновых процессов" -#: postmaster/bgworker.c:936 +#: postmaster/bgworker.c:947 #, c-format msgid "Up to %d background worker can be registered with the current settings." msgid_plural "" @@ -18818,7 +18933,7 @@ msgstr[2] "" "Максимально возможное число фоновых процессов при текущих параметрах: %d." -#: postmaster/bgworker.c:940 +#: postmaster/bgworker.c:951 #, c-format msgid "" "Consider increasing the configuration parameter \"max_worker_processes\"." @@ -18901,7 +19016,7 @@ msgid "archive command was terminated by exception 0x%X" msgstr "команда архивации была прервана исключением 0x%X" -#: postmaster/pgarch.c:605 postmaster/postmaster.c:3725 +#: postmaster/pgarch.c:605 postmaster/postmaster.c:3749 #, c-format msgid "" "See C include file \"ntstatus.h\" for a description of the hexadecimal value." @@ -19003,49 +19118,49 @@ msgid "Target must be \"archiver\" or \"bgwriter\"." msgstr "Допустимый счётчик: \"archiver\" или \"bgwriter\"." -#: postmaster/pgstat.c:4567 +#: postmaster/pgstat.c:4570 #, c-format msgid "could not read statistics message: %m" msgstr "не удалось прочитать сообщение статистики: %m" -#: postmaster/pgstat.c:4889 postmaster/pgstat.c:5052 +#: postmaster/pgstat.c:4892 postmaster/pgstat.c:5055 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "не удалось открыть временный файл статистики \"%s\": %m" -#: postmaster/pgstat.c:4962 postmaster/pgstat.c:5097 +#: postmaster/pgstat.c:4965 postmaster/pgstat.c:5100 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "не удалось записать во временный файл статистики \"%s\": %m" -#: postmaster/pgstat.c:4971 postmaster/pgstat.c:5106 +#: postmaster/pgstat.c:4974 postmaster/pgstat.c:5109 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "не удалось закрыть временный файл статистики \"%s\": %m" -#: postmaster/pgstat.c:4979 postmaster/pgstat.c:5114 +#: postmaster/pgstat.c:4982 postmaster/pgstat.c:5117 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "" "не удалось переименовать временный файл статистики из \"%s\" в \"%s\": %m" -#: postmaster/pgstat.c:5211 postmaster/pgstat.c:5428 postmaster/pgstat.c:5582 +#: postmaster/pgstat.c:5214 postmaster/pgstat.c:5431 postmaster/pgstat.c:5585 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "не удалось открыть файл статистики \"%s\": %m" -#: postmaster/pgstat.c:5223 postmaster/pgstat.c:5233 postmaster/pgstat.c:5254 -#: postmaster/pgstat.c:5265 postmaster/pgstat.c:5287 postmaster/pgstat.c:5302 -#: postmaster/pgstat.c:5365 postmaster/pgstat.c:5440 postmaster/pgstat.c:5460 -#: postmaster/pgstat.c:5478 postmaster/pgstat.c:5494 postmaster/pgstat.c:5512 -#: postmaster/pgstat.c:5528 postmaster/pgstat.c:5594 postmaster/pgstat.c:5606 -#: postmaster/pgstat.c:5618 postmaster/pgstat.c:5629 postmaster/pgstat.c:5654 -#: postmaster/pgstat.c:5676 +#: postmaster/pgstat.c:5226 postmaster/pgstat.c:5236 postmaster/pgstat.c:5257 +#: postmaster/pgstat.c:5268 postmaster/pgstat.c:5290 postmaster/pgstat.c:5305 +#: postmaster/pgstat.c:5368 postmaster/pgstat.c:5443 postmaster/pgstat.c:5463 +#: postmaster/pgstat.c:5481 postmaster/pgstat.c:5497 postmaster/pgstat.c:5515 +#: postmaster/pgstat.c:5531 postmaster/pgstat.c:5597 postmaster/pgstat.c:5609 +#: postmaster/pgstat.c:5621 postmaster/pgstat.c:5632 postmaster/pgstat.c:5657 +#: postmaster/pgstat.c:5679 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "файл статистики \"%s\" испорчен" -#: postmaster/pgstat.c:5805 +#: postmaster/pgstat.c:5808 #, c-format msgid "" "using stale statistics instead of current ones because stats collector is " @@ -19054,7 +19169,7 @@ "используется просроченная статистика вместо текущей, так как сборщик " "статистики не отвечает" -#: postmaster/pgstat.c:6135 +#: postmaster/pgstat.c:6138 #, c-format msgid "database hash table corrupted during cleanup --- abort" msgstr "таблица хеша базы данных испорчена при очистке --- прерывание" @@ -19123,7 +19238,7 @@ msgstr "запускается %s" #: postmaster/postmaster.c:1154 postmaster/postmaster.c:1252 -#: utils/init/miscinit.c:1597 +#: utils/init/miscinit.c:1596 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "неверный формат списка в параметре \"%s\"" @@ -19230,381 +19345,400 @@ msgid "failed to send SSL negotiation response: %m" msgstr "не удалось отправить ответ в процессе SSL-согласования: %m" -#: postmaster/postmaster.c:2075 +#: postmaster/postmaster.c:2061 +#, c-format +msgid "received unencrypted data after SSL request" +msgstr "после запроса SSL получены незашифрованные данные" + +#: postmaster/postmaster.c:2062 postmaster/postmaster.c:2106 +#, c-format +msgid "" +"This could be either a client-software bug or evidence of an attempted man-" +"in-the-middle attack." +msgstr "" +"Это может свидетельствовать об ошибке в клиентском ПО или о попытке атаки " +"MITM." + +#: postmaster/postmaster.c:2087 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "не удалось отправить ответ в процессе согласования GSSAPI: %m" #: postmaster/postmaster.c:2105 #, c-format +msgid "received unencrypted data after GSSAPI encryption request" +msgstr "после запроса шифрования GSSAPI получены незашифрованные данные" + +#: postmaster/postmaster.c:2129 +#, c-format msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "" "неподдерживаемый протокол клиентского приложения %u.%u; сервер поддерживает " "%u.0 - %u.%u" -#: postmaster/postmaster.c:2169 utils/misc/guc.c:6769 utils/misc/guc.c:6805 -#: utils/misc/guc.c:6875 utils/misc/guc.c:8226 utils/misc/guc.c:11072 -#: utils/misc/guc.c:11106 +#: postmaster/postmaster.c:2193 utils/misc/guc.c:6769 utils/misc/guc.c:6805 +#: utils/misc/guc.c:6875 utils/misc/guc.c:8226 utils/misc/guc.c:11088 +#: utils/misc/guc.c:11129 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "неверное значение для параметра \"%s\": \"%s\"" -#: postmaster/postmaster.c:2172 +#: postmaster/postmaster.c:2196 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "Допустимые значения: \"false\", 0, \"true\", 1, \"database\"." -#: postmaster/postmaster.c:2217 +#: postmaster/postmaster.c:2241 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "" "неверная структура стартового пакета: последним байтом должен быть терминатор" -#: postmaster/postmaster.c:2255 +#: postmaster/postmaster.c:2279 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "в стартовом пакете не указано имя пользователя PostgreSQL" -#: postmaster/postmaster.c:2319 +#: postmaster/postmaster.c:2343 #, c-format msgid "the database system is starting up" msgstr "система баз данных запускается" -#: postmaster/postmaster.c:2324 +#: postmaster/postmaster.c:2348 #, c-format msgid "the database system is shutting down" msgstr "система баз данных останавливается" -#: postmaster/postmaster.c:2329 +#: postmaster/postmaster.c:2353 #, c-format msgid "the database system is in recovery mode" msgstr "система баз данных в режиме восстановления" -#: postmaster/postmaster.c:2334 storage/ipc/procarray.c:293 +#: postmaster/postmaster.c:2358 storage/ipc/procarray.c:298 #: storage/ipc/sinvaladt.c:297 storage/lmgr/proc.c:362 #, c-format msgid "sorry, too many clients already" msgstr "извините, уже слишком много клиентов" -#: postmaster/postmaster.c:2424 +#: postmaster/postmaster.c:2448 #, c-format msgid "wrong key in cancel request for process %d" msgstr "неправильный ключ в запросе на отмену процесса %d" -#: postmaster/postmaster.c:2436 +#: postmaster/postmaster.c:2460 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "процесс с кодом %d, полученным в запросе на отмену, не найден" -#: postmaster/postmaster.c:2689 +#: postmaster/postmaster.c:2713 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "получен SIGHUP, файлы конфигурации перезагружаются" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2715 postmaster/postmaster.c:2719 +#: postmaster/postmaster.c:2739 postmaster/postmaster.c:2743 #, c-format msgid "%s was not reloaded" msgstr "%s не был перезагружен" -#: postmaster/postmaster.c:2729 +#: postmaster/postmaster.c:2753 #, c-format msgid "SSL configuration was not reloaded" msgstr "конфигурация SSL не была перезагружена" -#: postmaster/postmaster.c:2785 +#: postmaster/postmaster.c:2809 #, c-format msgid "received smart shutdown request" msgstr "получен запрос на \"вежливое\" выключение" -#: postmaster/postmaster.c:2831 +#: postmaster/postmaster.c:2855 #, c-format msgid "received fast shutdown request" msgstr "получен запрос на быстрое выключение" -#: postmaster/postmaster.c:2849 +#: postmaster/postmaster.c:2873 #, c-format msgid "aborting any active transactions" msgstr "прерывание всех активных транзакций" -#: postmaster/postmaster.c:2873 +#: postmaster/postmaster.c:2897 #, c-format msgid "received immediate shutdown request" msgstr "получен запрос на немедленное выключение" -#: postmaster/postmaster.c:2948 +#: postmaster/postmaster.c:2972 #, c-format msgid "shutdown at recovery target" msgstr "выключение при достижении цели восстановления" -#: postmaster/postmaster.c:2966 postmaster/postmaster.c:3002 +#: postmaster/postmaster.c:2990 postmaster/postmaster.c:3026 msgid "startup process" msgstr "стартовый процесс" -#: postmaster/postmaster.c:2969 +#: postmaster/postmaster.c:2993 #, c-format msgid "aborting startup due to startup process failure" msgstr "прерывание запуска из-за ошибки в стартовом процессе" -#: postmaster/postmaster.c:3044 +#: postmaster/postmaster.c:3068 #, c-format msgid "database system is ready to accept connections" msgstr "система БД готова принимать подключения" -#: postmaster/postmaster.c:3065 +#: postmaster/postmaster.c:3089 msgid "background writer process" msgstr "процесс фоновой записи" -#: postmaster/postmaster.c:3119 +#: postmaster/postmaster.c:3143 msgid "checkpointer process" msgstr "процесс контрольных точек" -#: postmaster/postmaster.c:3135 +#: postmaster/postmaster.c:3159 msgid "WAL writer process" msgstr "процесс записи WAL" -#: postmaster/postmaster.c:3150 +#: postmaster/postmaster.c:3174 msgid "WAL receiver process" msgstr "процесс считывания WAL" -#: postmaster/postmaster.c:3165 +#: postmaster/postmaster.c:3189 msgid "autovacuum launcher process" msgstr "процесс запуска автоочистки" -#: postmaster/postmaster.c:3180 +#: postmaster/postmaster.c:3204 msgid "archiver process" msgstr "процесс архивации" -#: postmaster/postmaster.c:3196 +#: postmaster/postmaster.c:3220 msgid "statistics collector process" msgstr "процесс сбора статистики" -#: postmaster/postmaster.c:3210 +#: postmaster/postmaster.c:3234 msgid "system logger process" msgstr "процесс системного протоколирования" -#: postmaster/postmaster.c:3274 +#: postmaster/postmaster.c:3298 #, c-format msgid "background worker \"%s\"" msgstr "фоновый процесс \"%s\"" -#: postmaster/postmaster.c:3358 postmaster/postmaster.c:3378 -#: postmaster/postmaster.c:3385 postmaster/postmaster.c:3403 +#: postmaster/postmaster.c:3382 postmaster/postmaster.c:3402 +#: postmaster/postmaster.c:3409 postmaster/postmaster.c:3427 msgid "server process" msgstr "процесс сервера" -#: postmaster/postmaster.c:3457 +#: postmaster/postmaster.c:3481 #, c-format msgid "terminating any other active server processes" msgstr "завершение всех остальных активных серверных процессов" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3712 +#: postmaster/postmaster.c:3736 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) завершился с кодом выхода %d" -#: postmaster/postmaster.c:3714 postmaster/postmaster.c:3726 -#: postmaster/postmaster.c:3736 postmaster/postmaster.c:3747 +#: postmaster/postmaster.c:3738 postmaster/postmaster.c:3750 +#: postmaster/postmaster.c:3760 postmaster/postmaster.c:3771 #, c-format msgid "Failed process was running: %s" msgstr "Завершившийся процесс выполнял действие: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3723 +#: postmaster/postmaster.c:3747 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d) был прерван исключением 0x%X" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3733 +#: postmaster/postmaster.c:3757 #, c-format msgid "%s (PID %d) was terminated by signal %d: %s" msgstr "%s (PID %d) был завершён по сигналу %d: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3745 +#: postmaster/postmaster.c:3769 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) завершился с неизвестным кодом состояния %d" -#: postmaster/postmaster.c:3960 +#: postmaster/postmaster.c:3984 #, c-format msgid "abnormal database system shutdown" msgstr "аварийное выключение системы БД" -#: postmaster/postmaster.c:4000 +#: postmaster/postmaster.c:4024 #, c-format msgid "all server processes terminated; reinitializing" msgstr "все серверные процессы завершены... переинициализация" -#: postmaster/postmaster.c:4170 postmaster/postmaster.c:5579 -#: postmaster/postmaster.c:5966 +#: postmaster/postmaster.c:4194 postmaster/postmaster.c:5603 +#: postmaster/postmaster.c:5990 #, c-format msgid "could not generate random cancel key" msgstr "не удалось сгенерировать случайный ключ отмены" -#: postmaster/postmaster.c:4224 +#: postmaster/postmaster.c:4248 #, c-format msgid "could not fork new process for connection: %m" msgstr "породить новый процесс для соединения не удалось: %m" -#: postmaster/postmaster.c:4266 +#: postmaster/postmaster.c:4290 msgid "could not fork new process for connection: " msgstr "породить новый процесс для соединения не удалось: " -#: postmaster/postmaster.c:4383 +#: postmaster/postmaster.c:4407 #, c-format msgid "connection received: host=%s port=%s" msgstr "принято подключение: узел=%s порт=%s" -#: postmaster/postmaster.c:4388 +#: postmaster/postmaster.c:4412 #, c-format msgid "connection received: host=%s" msgstr "принято подключение: узел=%s" -#: postmaster/postmaster.c:4658 +#: postmaster/postmaster.c:4682 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "запустить серверный процесс \"%s\" не удалось: %m" -#: postmaster/postmaster.c:4817 +#: postmaster/postmaster.c:4841 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "" "число повторных попыток резервирования разделяемой памяти достигло предела" -#: postmaster/postmaster.c:4818 +#: postmaster/postmaster.c:4842 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "Это может быть вызвано антивирусным ПО или механизмом ASLR." -#: postmaster/postmaster.c:5012 +#: postmaster/postmaster.c:5036 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "не удалось загрузить конфигурацию SSL в дочерний процесс" -#: postmaster/postmaster.c:5144 +#: postmaster/postmaster.c:5168 #, c-format msgid "Please report this to <%s>." msgstr "Пожалуйста, напишите об этой ошибке по адресу <%s>." -#: postmaster/postmaster.c:5231 +#: postmaster/postmaster.c:5255 #, c-format msgid "database system is ready to accept read only connections" -msgstr "система БД готова к подключениям в режиме \"только чтение\"" +msgstr "система БД готова принимать подключения в режиме \"только чтение\"" -#: postmaster/postmaster.c:5507 +#: postmaster/postmaster.c:5531 #, c-format msgid "could not fork startup process: %m" msgstr "породить стартовый процесс не удалось: %m" -#: postmaster/postmaster.c:5511 +#: postmaster/postmaster.c:5535 #, c-format msgid "could not fork background writer process: %m" msgstr "породить процесс фоновой записи не удалось: %m" -#: postmaster/postmaster.c:5515 +#: postmaster/postmaster.c:5539 #, c-format msgid "could not fork checkpointer process: %m" msgstr "породить процесс контрольных точек не удалось: %m" -#: postmaster/postmaster.c:5519 +#: postmaster/postmaster.c:5543 #, c-format msgid "could not fork WAL writer process: %m" msgstr "породить процесс записи WAL не удалось: %m" -#: postmaster/postmaster.c:5523 +#: postmaster/postmaster.c:5547 #, c-format msgid "could not fork WAL receiver process: %m" msgstr "породить процесс считывания WAL не удалось: %m" -#: postmaster/postmaster.c:5527 +#: postmaster/postmaster.c:5551 #, c-format msgid "could not fork process: %m" msgstr "породить процесс не удалось: %m" -#: postmaster/postmaster.c:5724 postmaster/postmaster.c:5747 +#: postmaster/postmaster.c:5748 postmaster/postmaster.c:5771 #, c-format msgid "database connection requirement not indicated during registration" msgstr "" "при регистрации фонового процесса не указывалось, что ему требуется " "подключение к БД" -#: postmaster/postmaster.c:5731 postmaster/postmaster.c:5754 +#: postmaster/postmaster.c:5755 postmaster/postmaster.c:5778 #, c-format msgid "invalid processing mode in background worker" msgstr "неправильный режим обработки в фоновом процессе" -#: postmaster/postmaster.c:5827 +#: postmaster/postmaster.c:5851 #, c-format msgid "starting background worker process \"%s\"" msgstr "запуск фонового рабочего процесса \"%s\"" -#: postmaster/postmaster.c:5839 +#: postmaster/postmaster.c:5863 #, c-format msgid "could not fork worker process: %m" msgstr "породить рабочий процесс не удалось: %m" -#: postmaster/postmaster.c:5952 +#: postmaster/postmaster.c:5976 #, c-format msgid "no slot available for new worker process" msgstr "для нового рабочего процесса не нашлось свободного слота" -#: postmaster/postmaster.c:6287 +#: postmaster/postmaster.c:6311 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "" "продублировать сокет %d для серверного процесса не удалось (код ошибки: %d)" -#: postmaster/postmaster.c:6319 +#: postmaster/postmaster.c:6343 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "создать наследуемый сокет не удалось (код ошибки: %d)\n" -#: postmaster/postmaster.c:6348 +#: postmaster/postmaster.c:6372 #, c-format msgid "could not open backend variables file \"%s\": %s\n" msgstr "открыть файл серверных переменных \"%s\" не удалось: %s\n" -#: postmaster/postmaster.c:6355 +#: postmaster/postmaster.c:6379 #, c-format msgid "could not read from backend variables file \"%s\": %s\n" msgstr "прочитать файл серверных переменных \"%s\" не удалось: %s\n" -#: postmaster/postmaster.c:6364 +#: postmaster/postmaster.c:6388 #, c-format msgid "could not remove file \"%s\": %s\n" msgstr "не удалось стереть файл \"%s\": %s\n" -#: postmaster/postmaster.c:6381 +#: postmaster/postmaster.c:6405 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "отобразить файл серверных переменных не удалось (код ошибки: %lu)\n" -#: postmaster/postmaster.c:6390 +#: postmaster/postmaster.c:6414 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "" "отключить отображение файла серверных переменных не удалось (код ошибки: " "%lu)\n" -#: postmaster/postmaster.c:6397 +#: postmaster/postmaster.c:6421 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "" "закрыть указатель файла серверных переменных не удалось (код ошибки: %lu)\n" -#: postmaster/postmaster.c:6575 +#: postmaster/postmaster.c:6599 #, c-format msgid "could not read exit code for process\n" msgstr "прочитать код завершения процесса не удалось\n" -#: postmaster/postmaster.c:6580 +#: postmaster/postmaster.c:6604 #, c-format msgid "could not post child completion status\n" msgstr "отправить состояние завершения потомка не удалось\n" @@ -19683,22 +19817,22 @@ msgid "expected end timeline %u but found timeline %u" msgstr "ожидался конец линии времени %u, но обнаружена линия времени %u" -#: replication/backup_manifest.c:253 +#: replication/backup_manifest.c:260 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "ожидалось начало линии времени %u, но обнаружена линия времени %u" -#: replication/backup_manifest.c:280 +#: replication/backup_manifest.c:287 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "начальная линия времени %u не найдена в истории линии времени %u" -#: replication/backup_manifest.c:327 +#: replication/backup_manifest.c:334 #, c-format msgid "could not rewind temporary file" msgstr "не удалось переместиться во временном файле" -#: replication/backup_manifest.c:354 +#: replication/backup_manifest.c:361 #, c-format msgid "could not read from temporary file: %m" msgstr "не удалось прочитать из временного файла: %m" @@ -19844,17 +19978,17 @@ msgid "could not clear search path: %s" msgstr "не удалось очистить путь поиска: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:251 +#: replication/libpqwalreceiver/libpqwalreceiver.c:256 #, c-format msgid "invalid connection string syntax: %s" msgstr "ошибочный синтаксис строки подключения: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:275 +#: replication/libpqwalreceiver/libpqwalreceiver.c:281 #, c-format msgid "could not parse connection string: %s" msgstr "не удалось разобрать строку подключения: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:347 +#: replication/libpqwalreceiver/libpqwalreceiver.c:353 #, c-format msgid "" "could not receive database system identifier and timeline ID from the " @@ -19863,13 +19997,13 @@ "не удалось получить идентификатор СУБД и код линии времени с главного " "сервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:358 -#: replication/libpqwalreceiver/libpqwalreceiver.c:576 +#: replication/libpqwalreceiver/libpqwalreceiver.c:364 +#: replication/libpqwalreceiver/libpqwalreceiver.c:582 #, c-format msgid "invalid response from primary server" msgstr "неверный ответ главного сервера" -#: replication/libpqwalreceiver/libpqwalreceiver.c:359 +#: replication/libpqwalreceiver/libpqwalreceiver.c:365 #, c-format msgid "" "Could not identify system: got %d rows and %d fields, expected %d rows and " @@ -19878,82 +20012,82 @@ "Не удалось идентифицировать систему, получено строк: %d, полей: %d " "(ожидалось: %d и %d (или более))." -#: replication/libpqwalreceiver/libpqwalreceiver.c:432 #: replication/libpqwalreceiver/libpqwalreceiver.c:438 -#: replication/libpqwalreceiver/libpqwalreceiver.c:463 +#: replication/libpqwalreceiver/libpqwalreceiver.c:444 +#: replication/libpqwalreceiver/libpqwalreceiver.c:469 #, c-format msgid "could not start WAL streaming: %s" msgstr "не удалось начать трансляцию WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:486 +#: replication/libpqwalreceiver/libpqwalreceiver.c:492 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "не удалось отправить главному серверу сообщение о конце передачи: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:508 +#: replication/libpqwalreceiver/libpqwalreceiver.c:514 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "неожиданный набор данных после конца передачи" -#: replication/libpqwalreceiver/libpqwalreceiver.c:522 +#: replication/libpqwalreceiver/libpqwalreceiver.c:528 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "ошибка при остановке потоковой операции COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:531 +#: replication/libpqwalreceiver/libpqwalreceiver.c:537 #, c-format msgid "error reading result of streaming command: %s" msgstr "ошибка при чтении результата команды передачи: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:539 -#: replication/libpqwalreceiver/libpqwalreceiver.c:773 +#: replication/libpqwalreceiver/libpqwalreceiver.c:545 +#: replication/libpqwalreceiver/libpqwalreceiver.c:779 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "неожиданный результат после CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:565 +#: replication/libpqwalreceiver/libpqwalreceiver.c:571 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "не удалось получить файл истории линии времени с главного сервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:577 +#: replication/libpqwalreceiver/libpqwalreceiver.c:583 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Ожидался 1 кортеж с 2 полями, однако получено кортежей: %d, полей: %d." -#: replication/libpqwalreceiver/libpqwalreceiver.c:737 -#: replication/libpqwalreceiver/libpqwalreceiver.c:788 +#: replication/libpqwalreceiver/libpqwalreceiver.c:743 #: replication/libpqwalreceiver/libpqwalreceiver.c:794 +#: replication/libpqwalreceiver/libpqwalreceiver.c:800 #, c-format msgid "could not receive data from WAL stream: %s" -msgstr "не удалось извлечь данные из потока WAL: %s" +msgstr "не удалось получить данные из потока WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:813 +#: replication/libpqwalreceiver/libpqwalreceiver.c:819 #, c-format msgid "could not send data to WAL stream: %s" msgstr "не удалось отправить данные в поток WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:866 +#: replication/libpqwalreceiver/libpqwalreceiver.c:872 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "не удалось создать слот репликации \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:911 +#: replication/libpqwalreceiver/libpqwalreceiver.c:917 #, c-format msgid "invalid query response" msgstr "неверный ответ на запрос" -#: replication/libpqwalreceiver/libpqwalreceiver.c:912 +#: replication/libpqwalreceiver/libpqwalreceiver.c:918 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Ожидалось полей: %d, получено: %d." -#: replication/libpqwalreceiver/libpqwalreceiver.c:981 +#: replication/libpqwalreceiver/libpqwalreceiver.c:987 #, c-format msgid "the query interface requires a database connection" msgstr "для интерфейса запросов требуется подключение к БД" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1012 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1018 msgid "empty query" msgstr "пустой запрос" @@ -20194,7 +20328,7 @@ "репликации с OID %u" #: replication/logical/origin.c:929 replication/logical/origin.c:1116 -#: replication/slot.c:1762 +#: replication/slot.c:1849 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Увеличьте параметр max_replication_slots и повторите попытку." @@ -20220,12 +20354,12 @@ msgid "Origin names starting with \"pg_\" are reserved." msgstr "Имена источников, начинающиеся с \"pg_\", зарезервированы." -#: replication/logical/relation.c:302 +#: replication/logical/relation.c:287 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "целевое отношение логической репликации \"%s.%s\" не существует" -#: replication/logical/relation.c:345 +#: replication/logical/relation.c:330 #, c-format msgid "" "logical replication target relation \"%s.%s\" is missing some replicated " @@ -20234,7 +20368,7 @@ "в целевом отношении логической репликации (\"%s.%s\") отсутствуют некоторые " "реплицируемые столбцы" -#: replication/logical/relation.c:385 +#: replication/logical/relation.c:370 #, c-format msgid "" "logical replication target relation \"%s.%s\" uses system columns in REPLICA " @@ -20243,19 +20377,19 @@ "в целевом отношении логической репликации (\"%s.%s\") в индексе REPLICA " "IDENTITY используются системные столбцы" -#: replication/logical/reorderbuffer.c:2663 +#: replication/logical/reorderbuffer.c:2685 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "не удалось записать в файл данных для XID %u: %m" -#: replication/logical/reorderbuffer.c:2850 -#: replication/logical/reorderbuffer.c:2875 +#: replication/logical/reorderbuffer.c:2873 +#: replication/logical/reorderbuffer.c:2898 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "не удалось прочитать из файла подкачки буфера пересортировки: %m" -#: replication/logical/reorderbuffer.c:2854 -#: replication/logical/reorderbuffer.c:2879 +#: replication/logical/reorderbuffer.c:2877 +#: replication/logical/reorderbuffer.c:2902 #, c-format msgid "" "could not read from reorderbuffer spill file: read %d instead of %u bytes" @@ -20263,13 +20397,13 @@ "не удалось прочитать из файла подкачки буфера пересортировки (прочитано " "байт: %d, требовалось: %u)" -#: replication/logical/reorderbuffer.c:3114 +#: replication/logical/reorderbuffer.c:3139 #, c-format msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m" msgstr "" "ошибка при удалении файла \"%s\" в процессе удаления pg_replslot/%s/xid*: %m" -#: replication/logical/reorderbuffer.c:3606 +#: replication/logical/reorderbuffer.c:3640 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "" @@ -20293,63 +20427,63 @@ msgstr[2] "" "экспортирован снимок логического декодирования: \"%s\" (ид. транзакций: %u)" -#: replication/logical/snapbuild.c:1265 replication/logical/snapbuild.c:1358 -#: replication/logical/snapbuild.c:1915 +#: replication/logical/snapbuild.c:1281 replication/logical/snapbuild.c:1374 +#: replication/logical/snapbuild.c:1931 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "процесс логического декодирования достиг точки согласованности в %X/%X" -#: replication/logical/snapbuild.c:1267 +#: replication/logical/snapbuild.c:1283 #, c-format msgid "There are no running transactions." msgstr "Больше активных транзакций нет." -#: replication/logical/snapbuild.c:1309 +#: replication/logical/snapbuild.c:1325 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "" "процесс логического декодирования нашёл начальную стартовую точку в %X/%X" -#: replication/logical/snapbuild.c:1311 replication/logical/snapbuild.c:1335 +#: replication/logical/snapbuild.c:1327 replication/logical/snapbuild.c:1351 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "Ожидание транзакций (примерно %d), старее %u до конца." -#: replication/logical/snapbuild.c:1333 +#: replication/logical/snapbuild.c:1349 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "" "при логическом декодировании найдена начальная точка согласованности в %X/%X" -#: replication/logical/snapbuild.c:1360 +#: replication/logical/snapbuild.c:1376 #, c-format msgid "There are no old transactions anymore." msgstr "Больше старых транзакций нет." -#: replication/logical/snapbuild.c:1757 +#: replication/logical/snapbuild.c:1773 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "" "файл состояния snapbuild \"%s\" имеет неправильную сигнатуру (%u вместо %u)" -#: replication/logical/snapbuild.c:1763 +#: replication/logical/snapbuild.c:1779 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "" "файл состояния snapbuild \"%s\" имеет неправильную версию (%u вместо %u)" -#: replication/logical/snapbuild.c:1862 +#: replication/logical/snapbuild.c:1878 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "" "в файле состояния snapbuild \"%s\" неверная контрольная сумма (%u вместо %u)" -#: replication/logical/snapbuild.c:1917 +#: replication/logical/snapbuild.c:1933 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Логическое декодирование начнётся с сохранённого снимка." -#: replication/logical/snapbuild.c:1989 +#: replication/logical/snapbuild.c:2005 #, c-format msgid "could not parse file name \"%s\"" msgstr "не удалось разобрать имя файла \"%s\"" @@ -20363,55 +20497,55 @@ "процесс синхронизации таблицы при логической репликации для подписки \"%s\", " "таблицы \"%s\" закончил обработку" -#: replication/logical/tablesync.c:664 +#: replication/logical/tablesync.c:665 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "" "не удалось получить информацию о таблице \"%s.%s\" с сервера публикации: %s" -#: replication/logical/tablesync.c:670 +#: replication/logical/tablesync.c:671 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "таблица \"%s.%s\" не найдена на сервере публикации" -#: replication/logical/tablesync.c:704 +#: replication/logical/tablesync.c:707 #, c-format msgid "could not fetch table info for table \"%s.%s\": %s" msgstr "не удалось получить информацию о таблице \"%s.%s\": %s" -#: replication/logical/tablesync.c:791 +#: replication/logical/tablesync.c:794 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "" "не удалось начать копирование начального содержимого таблицы \"%s.%s\": %s" -#: replication/logical/tablesync.c:905 +#: replication/logical/tablesync.c:909 #, c-format msgid "table copy could not start transaction on publisher" msgstr "" "при копировании таблицы не удалось начать транзакцию на сервере публикации" -#: replication/logical/tablesync.c:927 +#: replication/logical/tablesync.c:931 #, c-format msgid "table copy could not finish transaction on publisher" msgstr "" "при копировании таблицы не удалось завершить транзакцию на сервере публикации" -#: replication/logical/worker.c:311 +#: replication/logical/worker.c:360 #, c-format msgid "" "processing remote data for replication target relation \"%s.%s\" column \"%s" -"\", remote type %s, local type %s" +"\"" msgstr "" "обработка внешних данных для целевого отношения репликации \"%s.%s\" столбца " -"\"%s\", удалённый тип %s, локальный тип %s" +"\"%s\"" -#: replication/logical/worker.c:550 +#: replication/logical/worker.c:597 #, c-format msgid "ORIGIN message sent out of order" msgstr "сообщение ORIGIN отправлено неуместно" -#: replication/logical/worker.c:700 +#: replication/logical/worker.c:742 #, c-format msgid "" "publisher did not send replica identity column expected by the logical " @@ -20420,7 +20554,7 @@ "сервер публикации не передал столбец идентификации реплики, ожидаемый для " "целевого отношения логической репликации \"%s.%s\"" -#: replication/logical/worker.c:707 +#: replication/logical/worker.c:749 #, c-format msgid "" "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY " @@ -20431,22 +20565,22 @@ "IDENTITY, ни ключа PRIMARY KEY, и публикуемое отношение не имеет " "характеристики REPLICA IDENTITY FULL" -#: replication/logical/worker.c:1393 +#: replication/logical/worker.c:1435 #, c-format msgid "invalid logical replication message type \"%c\"" msgstr "неверный тип сообщения логической репликации \"%c\"" -#: replication/logical/worker.c:1536 +#: replication/logical/worker.c:1578 #, c-format msgid "data stream from publisher has ended" msgstr "поток данных с сервера публикации закончился" -#: replication/logical/worker.c:1691 +#: replication/logical/worker.c:1733 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "завершение обработчика логической репликации из-за тайм-аута" -#: replication/logical/worker.c:1836 +#: replication/logical/worker.c:1879 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will stop because " @@ -20455,7 +20589,7 @@ "применяющий процесс логической репликации для подписки \"%s\" будет " "остановлен, так как подписка была удалена" -#: replication/logical/worker.c:1850 +#: replication/logical/worker.c:1893 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will stop because " @@ -20464,7 +20598,7 @@ "применяющий процесс логической репликации для подписки \"%s\" будет " "остановлен, так как подписка была отключена" -#: replication/logical/worker.c:1864 +#: replication/logical/worker.c:1907 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will restart " @@ -20473,7 +20607,7 @@ "применяющий процесс логической репликации для подписки \"%s\" будет " "перезапущен из-за изменения информации о подключении" -#: replication/logical/worker.c:1878 +#: replication/logical/worker.c:1921 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will restart " @@ -20482,7 +20616,7 @@ "применяющий процесс логической репликации для подписки \"%s\" будет " "перезапущен, так как подписка была переименована" -#: replication/logical/worker.c:1895 +#: replication/logical/worker.c:1938 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will restart " @@ -20491,7 +20625,7 @@ "применяющий процесс логической репликации для подписки \"%s\" будет " "перезапущен, так как было изменено имя слота репликации" -#: replication/logical/worker.c:1909 +#: replication/logical/worker.c:1952 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will restart " @@ -20500,7 +20634,7 @@ "применяющий процесс логической репликации для подписки \"%s\" будет " "перезапущен из-за изменения публикаций подписки" -#: replication/logical/worker.c:2005 +#: replication/logical/worker.c:2048 #, c-format msgid "" "logical replication apply worker for subscription %u will not start because " @@ -20509,7 +20643,7 @@ "применяющий процесс логической репликации для подписки %u не будет запущен, " "так как подписка была удалена при старте" -#: replication/logical/worker.c:2017 +#: replication/logical/worker.c:2060 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will not start " @@ -20518,7 +20652,7 @@ "применяющий процесс логической репликации для подписки \"%s\" не будет " "запущен, так как подписка была отключена при старте" -#: replication/logical/worker.c:2035 +#: replication/logical/worker.c:2078 #, c-format msgid "" "logical replication table synchronization worker for subscription \"%s\", " @@ -20527,13 +20661,13 @@ "процесс синхронизации таблицы при логической репликации для подписки \"%s\", " "таблицы \"%s\" запущен" -#: replication/logical/worker.c:2039 +#: replication/logical/worker.c:2082 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "" "запускается применяющий процесс логической репликации для подписки \"%s\"" -#: replication/logical/worker.c:2078 +#: replication/logical/worker.c:2121 #, c-format msgid "subscription has no replication slot set" msgstr "для подписки не задан слот репликации" @@ -20619,7 +20753,7 @@ msgid "replication slot \"%s\" is active for PID %d" msgstr "слот репликации \"%s\" занят процессом с PID %d" -#: replication/slot.c:683 replication/slot.c:1314 replication/slot.c:1697 +#: replication/slot.c:683 replication/slot.c:1401 replication/slot.c:1784 #, c-format msgid "could not remove directory \"%s\"" msgstr "ошибка при удалении каталога \"%s\"" @@ -20635,15 +20769,12 @@ msgid "replication slots can only be used if wal_level >= replica" msgstr "слоты репликации можно использовать, только если wal_level >= replica" -#: replication/slot.c:1202 +#: replication/slot.c:1231 #, c-format -msgid "" -"terminating process %d because replication slot \"%s\" is too far behind" -msgstr "" -"завершение процесса %d из-за слишком большого отставания слота репликации " -"\"%s\"" +msgid "terminating process %d to release replication slot \"%s\"" +msgstr "завершение процесса %d для освобождения слота репликации \"%s\"" -#: replication/slot.c:1221 +#: replication/slot.c:1269 #, c-format msgid "" "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds " @@ -20652,49 +20783,49 @@ "слот \"%s\" аннулируется, так как его позиция restart_lsn %X/%X превышает " "max_slot_wal_keep_size" -#: replication/slot.c:1635 +#: replication/slot.c:1722 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "" "файл слота репликации \"%s\" имеет неправильную сигнатуру (%u вместо %u)" -#: replication/slot.c:1642 +#: replication/slot.c:1729 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "файл состояния snapbuild \"%s\" имеет неподдерживаемую версию %u" -#: replication/slot.c:1649 +#: replication/slot.c:1736 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "у файла слота репликации \"%s\" неверная длина: %u" -#: replication/slot.c:1685 +#: replication/slot.c:1772 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "" "в файле слота репликации \"%s\" неверная контрольная сумма (%u вместо %u)" -#: replication/slot.c:1719 +#: replication/slot.c:1806 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "существует слот логической репликации \"%s\", но wal_level < logical" -#: replication/slot.c:1721 +#: replication/slot.c:1808 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Смените wal_level на logical или более высокий уровень." -#: replication/slot.c:1725 +#: replication/slot.c:1812 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "существует слот физической репликации \"%s\", но wal_level < replica" -#: replication/slot.c:1727 +#: replication/slot.c:1814 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Смените wal_level на replica или более высокий уровень." -#: replication/slot.c:1761 +#: replication/slot.c:1848 #, c-format msgid "too many replication slots active before shutdown" msgstr "перед завершением активно слишком много слотов репликации" @@ -20779,7 +20910,7 @@ "The transaction has already committed locally, but might not have been " "replicated to the standby." msgstr "" -"Транзакция уже была зафиксирована локально, но возможно не была " +"Транзакция уже была зафиксирована локально, но, возможно, не была " "реплицирована на резервный сервер." #: replication/syncrep.c:274 @@ -20815,87 +20946,87 @@ msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "число синхронных резервных серверов (%d) должно быть больше нуля" -#: replication/walreceiver.c:171 +#: replication/walreceiver.c:172 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "завершение процесса считывания журнала по команде администратора" -#: replication/walreceiver.c:297 +#: replication/walreceiver.c:298 #, c-format msgid "could not connect to the primary server: %s" msgstr "не удалось подключиться к главному серверу: %s" -#: replication/walreceiver.c:343 +#: replication/walreceiver.c:344 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "идентификаторы СУБД на главном и резервном серверах различаются" -#: replication/walreceiver.c:344 +#: replication/walreceiver.c:345 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "Идентификатор на главном сервере: %s, на резервном: %s." -#: replication/walreceiver.c:354 +#: replication/walreceiver.c:355 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "" "последняя линия времени %u на главном сервере отстаёт от восстанавливаемой " "линии времени %u" -#: replication/walreceiver.c:408 +#: replication/walreceiver.c:409 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "" "начало передачи журнала с главного сервера, с позиции %X/%X на линии времени " "%u" -#: replication/walreceiver.c:413 +#: replication/walreceiver.c:414 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "перезапуск передачи журнала с позиции %X/%X на линии времени %u" -#: replication/walreceiver.c:442 +#: replication/walreceiver.c:443 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "продолжить передачу WAL нельзя, восстановление уже окончено" -#: replication/walreceiver.c:479 +#: replication/walreceiver.c:480 #, c-format msgid "replication terminated by primary server" msgstr "репликация прекращена главным сервером" -#: replication/walreceiver.c:480 +#: replication/walreceiver.c:481 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "На линии времени %u в %X/%X достигнут конец журнала." -#: replication/walreceiver.c:568 +#: replication/walreceiver.c:569 #, c-format msgid "terminating walreceiver due to timeout" msgstr "завершение приёма журнала из-за тайм-аута" -#: replication/walreceiver.c:606 +#: replication/walreceiver.c:607 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "" "на главном сервере больше нет журналов для запрошенной линии времени %u" -#: replication/walreceiver.c:622 replication/walreceiver.c:938 +#: replication/walreceiver.c:623 replication/walreceiver.c:1065 #, c-format msgid "could not close log segment %s: %m" msgstr "не удалось закрыть сегмент журнала %s: %m" -#: replication/walreceiver.c:742 +#: replication/walreceiver.c:743 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "загрузка файла истории для линии времени %u с главного сервера" -#: replication/walreceiver.c:985 +#: replication/walreceiver.c:955 #, c-format msgid "could not write to log segment %s at offset %u, length %lu: %m" msgstr "не удалось записать в сегмент журнала %s (смещение %u, длина %lu): %m" -#: replication/walsender.c:527 storage/smgr/md.c:1329 +#: replication/walsender.c:527 storage/smgr/md.c:1330 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "не удалось перейти к концу файла \"%s\": %m" @@ -20985,19 +21116,26 @@ msgid "terminating walsender process after promotion" msgstr "завершение процесса передачи журнала после повышения" -#: replication/walsender.c:1538 +#: replication/walsender.c:1539 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "" "нельзя выполнять новые команды, пока процесс передачи WAL находится в режиме " "остановки" -#: replication/walsender.c:1571 +#: replication/walsender.c:1574 +#, c-format +msgid "cannot execute SQL commands in WAL sender for physical replication" +msgstr "" +"нельзя выполнять команды SQL в процессе, передающем WAL для физической " +"репликации" + +#: replication/walsender.c:1607 #, c-format msgid "received replication command: %s" msgstr "получена команда репликации: %s" -#: replication/walsender.c:1587 tcop/fastpath.c:279 tcop/postgres.c:1103 +#: replication/walsender.c:1615 tcop/fastpath.c:285 tcop/postgres.c:1103 #: tcop/postgres.c:1455 tcop/postgres.c:1716 tcop/postgres.c:2174 #: tcop/postgres.c:2535 tcop/postgres.c:2614 #, c-format @@ -21007,34 +21145,27 @@ msgstr "" "текущая транзакция прервана, команды до конца блока транзакции игнорируются" -#: replication/walsender.c:1674 -#, c-format -msgid "cannot execute SQL commands in WAL sender for physical replication" -msgstr "" -"нельзя выполнять команды SQL в процессе, передающем WAL для физической " -"репликации" - -#: replication/walsender.c:1724 replication/walsender.c:1740 +#: replication/walsender.c:1739 replication/walsender.c:1755 #, c-format msgid "unexpected EOF on standby connection" msgstr "неожиданный обрыв соединения с резервным сервером" -#: replication/walsender.c:1779 +#: replication/walsender.c:1794 #, c-format msgid "invalid standby message type \"%c\"" msgstr "неверный тип сообщения резервного сервера: \"%c\"" -#: replication/walsender.c:1820 +#: replication/walsender.c:1835 #, c-format msgid "unexpected message type \"%c\"" msgstr "неожиданный тип сообщения \"%c\"" -#: replication/walsender.c:2232 +#: replication/walsender.c:2247 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "завершение процесса передачи журнала из-за тайм-аута репликации" -#: replication/walsender.c:2309 +#: replication/walsender.c:2324 #, c-format msgid "\"%s\" has now caught up with upstream server" msgstr "ведомый сервер \"%s\" нагнал ведущий" @@ -21279,7 +21410,7 @@ msgid "renaming an ON SELECT rule is not allowed" msgstr "переименовывать правило ON SELECT нельзя" -#: rewrite/rewriteHandler.c:546 +#: rewrite/rewriteHandler.c:549 #, c-format msgid "" "WITH query name \"%s\" appears in both a rule action and the query being " @@ -21288,113 +21419,122 @@ "имя запроса WITH \"%s\" оказалось и в действии правила, и в переписываемом " "запросе" -#: rewrite/rewriteHandler.c:606 +#: rewrite/rewriteHandler.c:576 +#, c-format +msgid "" +"INSERT...SELECT rule actions are not supported for queries having data-" +"modifying statements in WITH" +msgstr "" +"правила INSERT...SELECT не поддерживаются для запросов с операторами, " +"изменяющими данные, в WITH" + +#: rewrite/rewriteHandler.c:629 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "RETURNING можно определить только для одного правила" -#: rewrite/rewriteHandler.c:817 rewrite/rewriteHandler.c:829 +#: rewrite/rewriteHandler.c:840 rewrite/rewriteHandler.c:852 #, c-format msgid "cannot insert into column \"%s\"" msgstr "вставить данные в столбец \"%s\" нельзя" -#: rewrite/rewriteHandler.c:818 rewrite/rewriteHandler.c:840 +#: rewrite/rewriteHandler.c:841 rewrite/rewriteHandler.c:863 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "" "Столбец \"%s\" является столбцом идентификации со свойством GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:820 +#: rewrite/rewriteHandler.c:843 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Для переопределения укажите OVERRIDING SYSTEM VALUE." -#: rewrite/rewriteHandler.c:839 rewrite/rewriteHandler.c:846 +#: rewrite/rewriteHandler.c:862 rewrite/rewriteHandler.c:869 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "столбцу \"%s\" можно присвоить только значение DEFAULT" -#: rewrite/rewriteHandler.c:1015 rewrite/rewriteHandler.c:1033 +#: rewrite/rewriteHandler.c:1038 rewrite/rewriteHandler.c:1056 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "многочисленные присвоения одному столбцу \"%s\"" -#: rewrite/rewriteHandler.c:2015 rewrite/rewriteHandler.c:3823 +#: rewrite/rewriteHandler.c:2038 rewrite/rewriteHandler.c:3860 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "обнаружена бесконечная рекурсия в правилах для отношения \"%s\"" -#: rewrite/rewriteHandler.c:2100 +#: rewrite/rewriteHandler.c:2123 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "обнаружена бесконечная рекурсия в политике для отношения \"%s\"" -#: rewrite/rewriteHandler.c:2420 +#: rewrite/rewriteHandler.c:2443 msgid "Junk view columns are not updatable." msgstr "Утилизируемые столбцы представлений не обновляются." -#: rewrite/rewriteHandler.c:2425 +#: rewrite/rewriteHandler.c:2448 msgid "" "View columns that are not columns of their base relation are not updatable." msgstr "" "Столбцы представлений, не являющиеся столбцами базовых отношений, не " "обновляются." -#: rewrite/rewriteHandler.c:2428 +#: rewrite/rewriteHandler.c:2451 msgid "View columns that refer to system columns are not updatable." msgstr "" "Столбцы представлений, ссылающиеся на системные столбцы, не обновляются." -#: rewrite/rewriteHandler.c:2431 +#: rewrite/rewriteHandler.c:2454 msgid "View columns that return whole-row references are not updatable." msgstr "" "Столбцы представлений, возвращающие ссылки на всю строку, не обновляются." -#: rewrite/rewriteHandler.c:2492 +#: rewrite/rewriteHandler.c:2515 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Представления с DISTINCT не обновляются автоматически." -#: rewrite/rewriteHandler.c:2495 +#: rewrite/rewriteHandler.c:2518 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Представления с GROUP BY не обновляются автоматически." -#: rewrite/rewriteHandler.c:2498 +#: rewrite/rewriteHandler.c:2521 msgid "Views containing HAVING are not automatically updatable." msgstr "Представления с HAVING не обновляются автоматически." -#: rewrite/rewriteHandler.c:2501 +#: rewrite/rewriteHandler.c:2524 msgid "" "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "" "Представления с UNION, INTERSECT или EXCEPT не обновляются автоматически." -#: rewrite/rewriteHandler.c:2504 +#: rewrite/rewriteHandler.c:2527 msgid "Views containing WITH are not automatically updatable." msgstr "Представления с WITH не обновляются автоматически." -#: rewrite/rewriteHandler.c:2507 +#: rewrite/rewriteHandler.c:2530 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Представления с LIMIT или OFFSET не обновляются автоматически." -#: rewrite/rewriteHandler.c:2519 +#: rewrite/rewriteHandler.c:2542 msgid "Views that return aggregate functions are not automatically updatable." msgstr "" "Представления, возвращающие агрегатные функции, не обновляются автоматически." -#: rewrite/rewriteHandler.c:2522 +#: rewrite/rewriteHandler.c:2545 msgid "Views that return window functions are not automatically updatable." msgstr "" "Представления, возвращающие оконные функции, не обновляются автоматически." -#: rewrite/rewriteHandler.c:2525 +#: rewrite/rewriteHandler.c:2548 msgid "" "Views that return set-returning functions are not automatically updatable." msgstr "" "Представления, возвращающие функции с результатом-множеством, не обновляются " "автоматически." -#: rewrite/rewriteHandler.c:2532 rewrite/rewriteHandler.c:2536 -#: rewrite/rewriteHandler.c:2544 +#: rewrite/rewriteHandler.c:2555 rewrite/rewriteHandler.c:2559 +#: rewrite/rewriteHandler.c:2567 msgid "" "Views that do not select from a single table or view are not automatically " "updatable." @@ -21402,27 +21542,36 @@ "Представления, выбирающие данные не из одной таблицы или представления, не " "обновляются автоматически." -#: rewrite/rewriteHandler.c:2547 +#: rewrite/rewriteHandler.c:2570 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Представления, содержащие TABLESAMPLE, не обновляются автоматически." -#: rewrite/rewriteHandler.c:2571 +#: rewrite/rewriteHandler.c:2594 msgid "Views that have no updatable columns are not automatically updatable." msgstr "" "Представления, не содержащие обновляемых столбцов, не обновляются " "автоматически." -#: rewrite/rewriteHandler.c:3048 +#: rewrite/rewriteHandler.c:3071 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "вставить данные в столбец \"%s\" представления \"%s\" нельзя" -#: rewrite/rewriteHandler.c:3056 +#: rewrite/rewriteHandler.c:3079 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "изменить данные в столбце \"%s\" представления \"%s\" нельзя" -#: rewrite/rewriteHandler.c:3534 +#: rewrite/rewriteHandler.c:3560 +#, c-format +msgid "" +"DO INSTEAD NOTIFY rules are not supported for data-modifying statements in " +"WITH" +msgstr "" +"правила DO INSTEAD NOTIFY не поддерживаются в операторах, изменяющих данные, " +"в WITH" + +#: rewrite/rewriteHandler.c:3571 #, c-format msgid "" "DO INSTEAD NOTHING rules are not supported for data-modifying statements in " @@ -21431,7 +21580,7 @@ "правила DO INSTEAD NOTHING не поддерживаются в операторах, изменяющих " "данные, в WITH" -#: rewrite/rewriteHandler.c:3548 +#: rewrite/rewriteHandler.c:3585 #, c-format msgid "" "conditional DO INSTEAD rules are not supported for data-modifying statements " @@ -21440,13 +21589,13 @@ "условные правила DO INSTEAD не поддерживаются для операторов, изменяющих " "данные, в WITH" -#: rewrite/rewriteHandler.c:3552 +#: rewrite/rewriteHandler.c:3589 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "" "правила DO ALSO не поддерживаются для операторов, изменяющих данные, в WITH" -#: rewrite/rewriteHandler.c:3557 +#: rewrite/rewriteHandler.c:3594 #, c-format msgid "" "multi-statement DO INSTEAD rules are not supported for data-modifying " @@ -21455,8 +21604,8 @@ "составные правила DO INSTEAD не поддерживаются для операторов, изменяющих " "данные, в WITH" -#: rewrite/rewriteHandler.c:3751 rewrite/rewriteHandler.c:3759 -#: rewrite/rewriteHandler.c:3767 +#: rewrite/rewriteHandler.c:3788 rewrite/rewriteHandler.c:3796 +#: rewrite/rewriteHandler.c:3804 #, c-format msgid "" "Views with conditional DO INSTEAD rules are not automatically updatable." @@ -21464,43 +21613,43 @@ "Представления в сочетании с правилами DO INSTEAD с условиями не обновляются " "автоматически." -#: rewrite/rewriteHandler.c:3860 +#: rewrite/rewriteHandler.c:3897 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "выполнить INSERT RETURNING для отношения \"%s\" нельзя" -#: rewrite/rewriteHandler.c:3862 +#: rewrite/rewriteHandler.c:3899 #, c-format msgid "" "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "" "Необходимо безусловное правило ON INSERT DO INSTEAD с предложением RETURNING." -#: rewrite/rewriteHandler.c:3867 +#: rewrite/rewriteHandler.c:3904 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "выполнить UPDATE RETURNING для отношения \"%s\" нельзя" -#: rewrite/rewriteHandler.c:3869 +#: rewrite/rewriteHandler.c:3906 #, c-format msgid "" "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "" "Необходимо безусловное правило ON UPDATE DO INSTEAD с предложением RETURNING." -#: rewrite/rewriteHandler.c:3874 +#: rewrite/rewriteHandler.c:3911 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "выполнить DELETE RETURNING для отношения \"%s\" нельзя" -#: rewrite/rewriteHandler.c:3876 +#: rewrite/rewriteHandler.c:3913 #, c-format msgid "" "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "" "Необходимо безусловное правило ON DELETE DO INSTEAD с предложением RETURNING." -#: rewrite/rewriteHandler.c:3894 +#: rewrite/rewriteHandler.c:3931 #, c-format msgid "" "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or " @@ -21509,7 +21658,7 @@ "INSERT c предложением ON CONFLICT нельзя использовать с таблицей, для " "которой заданы правила INSERT или UPDATE" -#: rewrite/rewriteHandler.c:3951 +#: rewrite/rewriteHandler.c:3988 #, c-format msgid "" "WITH cannot be used in a query that is rewritten by rules into multiple " @@ -21563,7 +21712,7 @@ msgid "missing Language parameter" msgstr "отсутствует параметр Language" -#: statistics/dependencies.c:667 statistics/dependencies.c:720 +#: statistics/dependencies.c:677 statistics/dependencies.c:730 #: statistics/mcv.c:1477 statistics/mcv.c:1508 statistics/mvdistinct.c:348 #: statistics/mvdistinct.c:401 utils/adt/pseudotypes.c:42 #: utils/adt/pseudotypes.c:76 @@ -21571,7 +21720,7 @@ msgid "cannot accept a value of type %s" msgstr "значение типа %s нельзя ввести" -#: statistics/extended_stats.c:145 +#: statistics/extended_stats.c:147 #, c-format msgid "" "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" @@ -21590,12 +21739,17 @@ msgid "cannot access temporary tables of other sessions" msgstr "обращаться к временным таблицам других сеансов нельзя" -#: storage/buffer/bufmgr.c:826 +#: storage/buffer/bufmgr.c:748 +#, c-format +msgid "cannot extend relation %s beyond %u blocks" +msgstr "не удалось увеличить отношение \"%s\" до блока %u" + +#: storage/buffer/bufmgr.c:835 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "неожиданные данные после EOF в блоке %u отношения %s" -#: storage/buffer/bufmgr.c:828 +#: storage/buffer/bufmgr.c:837 #, c-format msgid "" "This has been seen to occur with buggy kernels; consider updating your " @@ -21604,27 +21758,27 @@ "Эта ситуация может возникать из-за ошибок в ядре; возможно, вам следует " "обновить ОС." -#: storage/buffer/bufmgr.c:927 +#: storage/buffer/bufmgr.c:936 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "неверная страница в блоке %u отношения %s; страница обнуляется" -#: storage/buffer/bufmgr.c:4213 +#: storage/buffer/bufmgr.c:4224 #, c-format msgid "could not write block %u of %s" msgstr "не удалось запись блок %u файла %s" -#: storage/buffer/bufmgr.c:4215 +#: storage/buffer/bufmgr.c:4226 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Множественные сбои - возможно, постоянная ошибка записи." -#: storage/buffer/bufmgr.c:4236 storage/buffer/bufmgr.c:4255 +#: storage/buffer/bufmgr.c:4247 storage/buffer/bufmgr.c:4266 #, c-format msgid "writing block %u of relation %s" msgstr "запись блока %u отношения %s" -#: storage/buffer/bufmgr.c:4558 +#: storage/buffer/bufmgr.c:4569 #, c-format msgid "snapshot too old" msgstr "снимок слишком стар" @@ -21668,85 +21822,85 @@ msgid "could not munmap() while flushing data: %m" msgstr "ошибка в munmap() при сбросе данных на диск: %m" -#: storage/file/fd.c:798 +#: storage/file/fd.c:802 #, c-format msgid "could not link file \"%s\" to \"%s\": %m" msgstr "для файла \"%s\" не удалось создать ссылку \"%s\": %m" -#: storage/file/fd.c:881 +#: storage/file/fd.c:895 #, c-format msgid "getrlimit failed: %m" msgstr "ошибка в getrlimit(): %m" -#: storage/file/fd.c:971 +#: storage/file/fd.c:985 #, c-format msgid "insufficient file descriptors available to start server process" msgstr "недостаточно дескрипторов файлов для запуска серверного процесса" -#: storage/file/fd.c:972 +#: storage/file/fd.c:986 #, c-format msgid "System allows %d, we need at least %d." msgstr "Система выделяет: %d, а требуется минимум: %d." -#: storage/file/fd.c:1023 storage/file/fd.c:2357 storage/file/fd.c:2467 -#: storage/file/fd.c:2618 +#: storage/file/fd.c:1037 storage/file/fd.c:2371 storage/file/fd.c:2481 +#: storage/file/fd.c:2632 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "нехватка дескрипторов файлов: %m; освободите их и повторите попытку" -#: storage/file/fd.c:1397 +#: storage/file/fd.c:1411 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "временный файл: путь \"%s\", размер %lu" -#: storage/file/fd.c:1528 +#: storage/file/fd.c:1542 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "не удалось создать временный каталог \"%s\": %m" -#: storage/file/fd.c:1535 +#: storage/file/fd.c:1549 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "не удалось создать временный подкаталог \"%s\": %m" -#: storage/file/fd.c:1728 +#: storage/file/fd.c:1742 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "не удалось создать временный файл \"%s\": %m" -#: storage/file/fd.c:1763 +#: storage/file/fd.c:1777 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "не удалось открыть временный файл \"%s\": %m" -#: storage/file/fd.c:1804 +#: storage/file/fd.c:1818 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "ошибка удаления временного файла \"%s\": %m" -#: storage/file/fd.c:2068 +#: storage/file/fd.c:2082 #, c-format msgid "temporary file size exceeds temp_file_limit (%dkB)" msgstr "размер временного файла превышает предел temp_file_limit (%d КБ)" -#: storage/file/fd.c:2333 storage/file/fd.c:2392 +#: storage/file/fd.c:2347 storage/file/fd.c:2406 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" msgstr "превышен предел maxAllocatedDescs (%d) при попытке открыть файл \"%s\"" -#: storage/file/fd.c:2437 +#: storage/file/fd.c:2451 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" msgstr "" "превышен предел maxAllocatedDescs (%d) при попытке выполнить команду \"%s\"" -#: storage/file/fd.c:2594 +#: storage/file/fd.c:2608 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "" "превышен предел maxAllocatedDescs (%d) при попытке открыть каталог \"%s\"" -#: storage/file/fd.c:3122 +#: storage/file/fd.c:3136 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "в каталоге временных файлов обнаружен неуместный файл: \"%s\"" @@ -21834,17 +21988,17 @@ msgid "%s failed: %m" msgstr "ошибка в %s: %m" -#: storage/ipc/procarray.c:3021 +#: storage/ipc/procarray.c:3104 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "база \"%s\" используется подготовленными транзакциями" -#: storage/ipc/procarray.c:3053 storage/ipc/signalfuncs.c:142 +#: storage/ipc/procarray.c:3136 storage/ipc/signalfuncs.c:142 #, c-format msgid "must be a superuser to terminate superuser process" msgstr "прерывать процесс суперпользователя может только суперпользователь" -#: storage/ipc/procarray.c:3060 storage/ipc/signalfuncs.c:147 +#: storage/ipc/procarray.c:3143 storage/ipc/signalfuncs.c:147 #, c-format msgid "" "must be a member of the role whose process is being terminated or member of " @@ -21865,8 +22019,8 @@ msgstr "неверный размер сообщения %zu в очереди в разделяемой памяти" #: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:982 -#: storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4167 -#: storage/lmgr/lock.c:4232 storage/lmgr/lock.c:4539 +#: storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4252 +#: storage/lmgr/lock.c:4317 storage/lmgr/lock.c:4667 #: storage/lmgr/predicate.c:2476 storage/lmgr/predicate.c:2491 #: storage/lmgr/predicate.c:3973 storage/lmgr/predicate.c:5084 #: utils/hash/dynahash.c:1067 @@ -21948,13 +22102,13 @@ msgid "rotation not possible because log collection not active" msgstr "прокрутка невозможна, так как протоколирование отключено" -#: storage/ipc/standby.c:668 tcop/postgres.c:3189 +#: storage/ipc/standby.c:690 tcop/postgres.c:3199 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "" "выполнение оператора отменено из-за конфликта с процессом восстановления" -#: storage/ipc/standby.c:669 tcop/postgres.c:2469 +#: storage/ipc/standby.c:691 tcop/postgres.c:2469 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "" @@ -21967,17 +22121,17 @@ msgstr "" "в записи pg_largeobject для OID %u, стр. %d неверный размер поля данных (%d)" -#: storage/large_object/inv_api.c:272 +#: storage/large_object/inv_api.c:274 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "неверные флаги для открытия большого объекта: %d" -#: storage/large_object/inv_api.c:462 +#: storage/large_object/inv_api.c:457 #, c-format msgid "invalid whence setting: %d" msgstr "неверное значение ориентира: %d" -#: storage/large_object/inv_api.c:634 +#: storage/large_object/inv_api.c:629 #, c-format msgid "invalid large object write request size: %d" msgstr "неверный размер записи большого объекта: %d" @@ -22044,62 +22198,62 @@ msgstr "" "при проверке ограничения-исключения для кортежа (%u,%u) в отношении \"%s\"" -#: storage/lmgr/lmgr.c:1105 +#: storage/lmgr/lmgr.c:1106 #, c-format msgid "relation %u of database %u" msgstr "отношение %u базы данных %u" -#: storage/lmgr/lmgr.c:1111 +#: storage/lmgr/lmgr.c:1112 #, c-format msgid "extension of relation %u of database %u" msgstr "расширение отношения %u базы данных %u" -#: storage/lmgr/lmgr.c:1117 +#: storage/lmgr/lmgr.c:1118 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid базы %u" -#: storage/lmgr/lmgr.c:1122 +#: storage/lmgr/lmgr.c:1123 #, c-format msgid "page %u of relation %u of database %u" msgstr "страница %u отношения %u базы данных %u" -#: storage/lmgr/lmgr.c:1129 +#: storage/lmgr/lmgr.c:1130 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "кортеж (%u,%u) отношения %u базы данных %u" -#: storage/lmgr/lmgr.c:1137 +#: storage/lmgr/lmgr.c:1138 #, c-format msgid "transaction %u" msgstr "транзакция %u" -#: storage/lmgr/lmgr.c:1142 +#: storage/lmgr/lmgr.c:1143 #, c-format msgid "virtual transaction %d/%u" msgstr "виртуальная транзакция %d/%u" -#: storage/lmgr/lmgr.c:1148 +#: storage/lmgr/lmgr.c:1149 #, c-format msgid "speculative token %u of transaction %u" msgstr "спекулятивный маркер %u транзакции %u" -#: storage/lmgr/lmgr.c:1154 +#: storage/lmgr/lmgr.c:1155 #, c-format msgid "object %u of class %u of database %u" msgstr "объект %u класса %u базы данных %u" -#: storage/lmgr/lmgr.c:1162 +#: storage/lmgr/lmgr.c:1163 #, c-format msgid "user lock [%u,%u,%u]" msgstr "пользовательская блокировка [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1169 +#: storage/lmgr/lmgr.c:1170 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "рекомендательная блокировка [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1177 +#: storage/lmgr/lmgr.c:1178 #, c-format msgid "unrecognized locktag type %d" msgstr "нераспознанный тип блокировки %d" @@ -22122,12 +22276,12 @@ "только блокировка RowExclusiveLock или менее сильная." #: storage/lmgr/lock.c:983 storage/lmgr/lock.c:1021 storage/lmgr/lock.c:2846 -#: storage/lmgr/lock.c:4168 storage/lmgr/lock.c:4233 storage/lmgr/lock.c:4540 +#: storage/lmgr/lock.c:4253 storage/lmgr/lock.c:4318 storage/lmgr/lock.c:4668 #, c-format msgid "You might need to increase max_locks_per_transaction." msgstr "Возможно, следует увеличить параметр max_locks_per_transaction." -#: storage/lmgr/lock.c:3284 storage/lmgr/lock.c:3400 +#: storage/lmgr/lock.c:3301 storage/lmgr/lock.c:3369 storage/lmgr/lock.c:3485 #, c-format msgid "" "cannot PREPARE while holding both session-level and transaction-level locks " @@ -22184,13 +22338,13 @@ msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "транзакция, импортирующая снимок, не должна быть READ ONLY DEFERRABLE" -#: storage/lmgr/predicate.c:1830 utils/time/snapmgr.c:623 -#: utils/time/snapmgr.c:629 +#: storage/lmgr/predicate.c:1830 utils/time/snapmgr.c:625 +#: utils/time/snapmgr.c:631 #, c-format msgid "could not import the requested snapshot" msgstr "не удалось импортировать запрошенный снимок" -#: storage/lmgr/predicate.c:1831 utils/time/snapmgr.c:630 +#: storage/lmgr/predicate.c:1831 utils/time/snapmgr.c:632 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "Исходный процесс с PID %d уже не работает." @@ -22307,70 +22461,70 @@ msgid "corrupted line pointer: offset = %u, size = %u" msgstr "испорченный линейный указатель: смещение = %u, размер = %u" -#: storage/smgr/md.c:317 storage/smgr/md.c:874 +#: storage/smgr/md.c:317 storage/smgr/md.c:875 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "не удалось обрезать файл \"%s\": %m" -#: storage/smgr/md.c:445 +#: storage/smgr/md.c:446 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "не удалось увеличить файл \"%s\" до блока %u" -#: storage/smgr/md.c:460 +#: storage/smgr/md.c:461 #, c-format msgid "could not extend file \"%s\": %m" msgstr "не удалось увеличить файл \"%s\": %m" -#: storage/smgr/md.c:462 storage/smgr/md.c:469 storage/smgr/md.c:757 +#: storage/smgr/md.c:463 storage/smgr/md.c:470 storage/smgr/md.c:758 #, c-format msgid "Check free disk space." msgstr "Проверьте, есть ли место на диске." -#: storage/smgr/md.c:466 +#: storage/smgr/md.c:467 #, c-format msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" msgstr "не удалось увеличить файл \"%s\" (записано байт: %d из %d) в блоке %u" -#: storage/smgr/md.c:678 +#: storage/smgr/md.c:679 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "не удалось прочитать блок %u в файле \"%s\": %m" -#: storage/smgr/md.c:694 +#: storage/smgr/md.c:695 #, c-format msgid "could not read block %u in file \"%s\": read only %d of %d bytes" msgstr "не удалось прочитать блок %u в файле \"%s\" (прочитано байт: %d из %d)" -#: storage/smgr/md.c:748 +#: storage/smgr/md.c:749 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "не удалось записать блок %u в файл \"%s\": %m" -#: storage/smgr/md.c:753 +#: storage/smgr/md.c:754 #, c-format msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" msgstr "не удалось записать блок %u в файл \"%s\" (записано байт: %d из %d)" -#: storage/smgr/md.c:845 +#: storage/smgr/md.c:846 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "" "не удалось обрезать файл \"%s\" (требуемая длина в блоках: %u, но сейчас он " "содержит %u)" -#: storage/smgr/md.c:900 +#: storage/smgr/md.c:901 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "не удалось обрезать файл \"%s\" до нужного числа блоков (%u): %m" -#: storage/smgr/md.c:995 +#: storage/smgr/md.c:996 #, c-format msgid "could not forward fsync request because request queue is full" msgstr "" "не удалось отправить запрос синхронизации с ФС (очередь запросов переполнена)" -#: storage/smgr/md.c:1294 +#: storage/smgr/md.c:1295 #, c-format msgid "" "could not open file \"%s\" (target block %u): previous segment is only %u " @@ -22379,53 +22533,59 @@ "не удалось открыть файл file \"%s\" (целевой блок %u): недостаточно блоков в " "предыдущем сегменте (всего %u)" -#: storage/smgr/md.c:1308 +#: storage/smgr/md.c:1309 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "не удалось открыть файл file \"%s\" (целевой блок %u): %m" -#: storage/sync/sync.c:401 +#: storage/sync/sync.c:438 #, c-format msgid "could not fsync file \"%s\" but retrying: %m" msgstr "" "не удалось синхронизировать с ФС файл \"%s\", последует повторная попытка: %m" -#: tcop/fastpath.c:109 tcop/fastpath.c:461 tcop/fastpath.c:591 +#: tcop/fastpath.c:109 tcop/fastpath.c:467 tcop/fastpath.c:597 #, c-format msgid "invalid argument size %d in function call message" msgstr "неверный размер аргумента (%d) в сообщении вызова функции" -#: tcop/fastpath.c:307 +#: tcop/fastpath.c:225 +#, c-format +msgid "cannot call function %s via fastpath interface" +msgstr "вызвать функцию %s через интерфейс fastpath нельзя" + +#: tcop/fastpath.c:313 #, c-format msgid "fastpath function call: \"%s\" (OID %u)" -msgstr "вызов функции fastpath: \"%s\" (OID %u)" +msgstr "вызов функции (через fastpath): \"%s\" (OID %u)" -#: tcop/fastpath.c:389 tcop/postgres.c:1323 tcop/postgres.c:1581 +#: tcop/fastpath.c:395 tcop/postgres.c:1323 tcop/postgres.c:1581 #: tcop/postgres.c:2013 tcop/postgres.c:2250 #, c-format msgid "duration: %s ms" msgstr "продолжительность: %s мс" -#: tcop/fastpath.c:393 +#: tcop/fastpath.c:399 #, c-format msgid "duration: %s ms fastpath function call: \"%s\" (OID %u)" -msgstr "продолжительность %s мс, вызов функции fastpath: \"%s\" (OID %u)" +msgstr "" +"продолжительность %s мс, вызов функции (через fastpath): \"%s\" (OID %u)" -#: tcop/fastpath.c:429 tcop/fastpath.c:556 +#: tcop/fastpath.c:435 tcop/fastpath.c:562 #, c-format msgid "function call message contains %d arguments but function requires %d" msgstr "" "сообщение вызова функции содержит неверное число аргументов (%d, а требуется " "%d)" -#: tcop/fastpath.c:437 +#: tcop/fastpath.c:443 #, c-format msgid "function call message contains %d argument formats but %d arguments" msgstr "" "сообщение вызова функции содержит неверное число форматов (%d, а аргументов " "%d)" -#: tcop/fastpath.c:524 tcop/fastpath.c:607 +#: tcop/fastpath.c:530 tcop/fastpath.c:613 #, c-format msgid "incorrect binary data format in function argument %d" msgstr "неправильный формат двоичных данных в аргументе функции %d" @@ -22436,7 +22596,7 @@ msgstr "неожиданный обрыв соединения с клиентом" #: tcop/postgres.c:441 tcop/postgres.c:453 tcop/postgres.c:464 -#: tcop/postgres.c:476 tcop/postgres.c:4553 +#: tcop/postgres.c:476 tcop/postgres.c:4571 #, c-format msgid "invalid frontend message type %d" msgstr "неправильный тип клиентского сообщения %d" @@ -22582,9 +22742,9 @@ msgstr "" "Управляющий процесс отдал команду этому серверному процессу откатить текущую " "транзакцию и завершиться, так как другой серверный процесс завершился " -"аварийно и возможно разрушил разделяемую память." +"аварийно и, возможно, разрушил разделяемую память." -#: tcop/postgres.c:2801 tcop/postgres.c:3119 +#: tcop/postgres.c:2801 tcop/postgres.c:3125 #, c-format msgid "" "In a moment you should be able to reconnect to the database and repeat your " @@ -22608,72 +22768,72 @@ "оказался вне допустимых рамок или произошла ошибка вычисления, например, " "деление на ноль." -#: tcop/postgres.c:3049 +#: tcop/postgres.c:3055 #, c-format msgid "canceling authentication due to timeout" msgstr "отмена проверки подлинности из-за тайм-аута" -#: tcop/postgres.c:3053 +#: tcop/postgres.c:3059 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "прекращение процесса автоочистки по команде администратора" -#: tcop/postgres.c:3057 +#: tcop/postgres.c:3063 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "завершение обработчика логической репликации по команде администратора" -#: tcop/postgres.c:3061 +#: tcop/postgres.c:3067 #, c-format msgid "logical replication launcher shutting down" msgstr "процесс запуска логической репликации остановлен" -#: tcop/postgres.c:3074 tcop/postgres.c:3084 tcop/postgres.c:3117 +#: tcop/postgres.c:3080 tcop/postgres.c:3090 tcop/postgres.c:3123 #, c-format msgid "terminating connection due to conflict with recovery" msgstr "закрытие подключения из-за конфликта с процессом восстановления" -#: tcop/postgres.c:3090 +#: tcop/postgres.c:3096 #, c-format msgid "terminating connection due to administrator command" msgstr "закрытие подключения по команде администратора" -#: tcop/postgres.c:3100 +#: tcop/postgres.c:3106 #, c-format msgid "connection to client lost" msgstr "подключение к клиенту потеряно" -#: tcop/postgres.c:3166 +#: tcop/postgres.c:3176 #, c-format msgid "canceling statement due to lock timeout" msgstr "выполнение оператора отменено из-за тайм-аута блокировки" -#: tcop/postgres.c:3173 +#: tcop/postgres.c:3183 #, c-format msgid "canceling statement due to statement timeout" msgstr "выполнение оператора отменено из-за тайм-аута" -#: tcop/postgres.c:3180 +#: tcop/postgres.c:3190 #, c-format msgid "canceling autovacuum task" msgstr "отмена задачи автоочистки" -#: tcop/postgres.c:3203 +#: tcop/postgres.c:3213 #, c-format msgid "canceling statement due to user request" msgstr "выполнение оператора отменено по запросу пользователя" -#: tcop/postgres.c:3213 +#: tcop/postgres.c:3223 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "закрытие подключения из-за тайм-аута простоя в транзакции" -#: tcop/postgres.c:3330 +#: tcop/postgres.c:3350 #, c-format msgid "stack depth limit exceeded" msgstr "превышен предел глубины стека" -#: tcop/postgres.c:3331 +#: tcop/postgres.c:3351 #, c-format msgid "" "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), " @@ -22683,12 +22843,12 @@ "КБ), предварительно убедившись, что ОС предоставляет достаточный размер " "стека." -#: tcop/postgres.c:3394 +#: tcop/postgres.c:3414 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "Значение \"max_stack_depth\" не должно превышать %ld КБ." -#: tcop/postgres.c:3396 +#: tcop/postgres.c:3416 #, c-format msgid "" "Increase the platform's stack depth limit via \"ulimit -s\" or local " @@ -22697,48 +22857,49 @@ "Увеличьте предел глубины стека в системе с помощью команды \"ulimit -s\" или " "эквивалента в вашей ОС." -#: tcop/postgres.c:3756 +#: tcop/postgres.c:3776 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "неверный аргумент командной строки для серверного процесса: %s" -#: tcop/postgres.c:3757 tcop/postgres.c:3763 +#: tcop/postgres.c:3777 tcop/postgres.c:3783 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: tcop/postgres.c:3761 +#: tcop/postgres.c:3781 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: неверный аргумент командной строки: %s" -#: tcop/postgres.c:3823 +#: tcop/postgres.c:3843 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: не указаны ни база данных, ни пользователь" -#: tcop/postgres.c:4461 +#: tcop/postgres.c:4479 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "неверный подтип сообщения CLOSE: %d" -#: tcop/postgres.c:4496 +#: tcop/postgres.c:4514 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "неверный подтип сообщения DESCRIBE: %d" -#: tcop/postgres.c:4574 +#: tcop/postgres.c:4592 #, c-format msgid "fastpath function calls not supported in a replication connection" -msgstr "вызовы функции fastpath не поддерживаются для реплицирующих соединений" +msgstr "" +"вызовы функций через fastpath не поддерживаются для реплицирующих соединений" -#: tcop/postgres.c:4578 +#: tcop/postgres.c:4596 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "" "протокол расширенных запросов не поддерживается для реплицирующих соединений" -#: tcop/postgres.c:4755 +#: tcop/postgres.c:4773 #, c-format msgid "" "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s" @@ -22747,19 +22908,19 @@ "отключение: время сеанса: %d:%02d:%02d.%03d пользователь=%s база данных=%s " "компьютер=%s%s%s" -#: tcop/pquery.c:629 +#: tcop/pquery.c:638 #, c-format msgid "bind message has %d result formats but query has %d columns" msgstr "" "число форматов результатов в сообщении Bind (%d) не равно числу столбцов в " "запросе (%d)" -#: tcop/pquery.c:932 +#: tcop/pquery.c:941 tcop/pquery.c:1700 #, c-format msgid "cursor can only scan forward" msgstr "курсор может сканировать только вперёд" -#: tcop/pquery.c:933 +#: tcop/pquery.c:942 tcop/pquery.c:1701 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "Добавьте в его объявление SCROLL, чтобы он мог перемещаться назад." @@ -22788,7 +22949,13 @@ msgid "cannot execute %s within security-restricted operation" msgstr "в рамках операции с ограничениями по безопасности нельзя выполнить %s" -#: tcop/utility.c:912 +#. translator: %s is name of a SQL command, eg LISTEN +#: tcop/utility.c:804 +#, c-format +msgid "cannot execute %s within a background process" +msgstr "выполнять %s в фоновом процессе нельзя" + +#: tcop/utility.c:929 #, c-format msgid "must be superuser to do CHECKPOINT" msgstr "для выполнения CHECKPOINT нужно быть суперпользователем" @@ -22918,12 +23085,12 @@ msgstr "отсутствует параметр Dictionary" #: tsearch/spell.c:380 tsearch/spell.c:397 tsearch/spell.c:406 -#: tsearch/spell.c:1036 +#: tsearch/spell.c:1062 #, c-format msgid "invalid affix flag \"%s\"" msgstr "неверный флаг аффиксов \"%s\"" -#: tsearch/spell.c:384 tsearch/spell.c:1040 +#: tsearch/spell.c:384 tsearch/spell.c:1066 #, c-format msgid "affix flag \"%s\" is out of range" msgstr "флаг аффикса \"%s\" вне диапазона" @@ -22943,29 +23110,29 @@ msgid "could not open dictionary file \"%s\": %m" msgstr "не удалось открыть файл словаря \"%s\": %m" -#: tsearch/spell.c:742 utils/adt/regexp.c:208 +#: tsearch/spell.c:763 utils/adt/regexp.c:208 #, c-format msgid "invalid regular expression: %s" msgstr "неверное регулярное выражение: %s" -#: tsearch/spell.c:956 tsearch/spell.c:973 tsearch/spell.c:990 -#: tsearch/spell.c:1007 tsearch/spell.c:1072 gram.y:15994 gram.y:16011 +#: tsearch/spell.c:982 tsearch/spell.c:999 tsearch/spell.c:1016 +#: tsearch/spell.c:1033 tsearch/spell.c:1098 gram.y:15994 gram.y:16011 #, c-format msgid "syntax error" msgstr "ошибка синтаксиса" -#: tsearch/spell.c:1163 tsearch/spell.c:1175 tsearch/spell.c:1734 -#: tsearch/spell.c:1739 tsearch/spell.c:1744 +#: tsearch/spell.c:1189 tsearch/spell.c:1201 tsearch/spell.c:1760 +#: tsearch/spell.c:1765 tsearch/spell.c:1770 #, c-format msgid "invalid affix alias \"%s\"" msgstr "неверное указание аффикса \"%s\"" -#: tsearch/spell.c:1216 tsearch/spell.c:1287 tsearch/spell.c:1436 +#: tsearch/spell.c:1242 tsearch/spell.c:1313 tsearch/spell.c:1462 #, c-format msgid "could not open affix file \"%s\": %m" msgstr "не удалось открыть файл аффиксов \"%s\": %m" -#: tsearch/spell.c:1270 +#: tsearch/spell.c:1296 #, c-format msgid "" "Ispell dictionary supports only \"default\", \"long\", and \"num\" flag " @@ -22974,17 +23141,17 @@ "словарь Ispell поддерживает для флага только значения \"default\", \"long\" " "и \"num\"" -#: tsearch/spell.c:1314 +#: tsearch/spell.c:1340 #, c-format msgid "invalid number of flag vector aliases" msgstr "неверное количество векторов флагов" -#: tsearch/spell.c:1337 +#: tsearch/spell.c:1363 #, c-format msgid "number of aliases exceeds specified number %d" msgstr "количество псевдонимов превышает заданное число %d" -#: tsearch/spell.c:1552 +#: tsearch/spell.c:1578 #, c-format msgid "affix file contains both old-style and new-style commands" msgstr "файл аффиксов содержит команды и в старом, и в новом стиле" @@ -23166,17 +23333,17 @@ msgid "must be member of role \"%s\"" msgstr "нужно быть членом роли \"%s\"" -#: utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:933 -#: utils/adt/arrayfuncs.c:1533 utils/adt/arrayfuncs.c:3236 -#: utils/adt/arrayfuncs.c:3376 utils/adt/arrayfuncs.c:5911 -#: utils/adt/arrayfuncs.c:6252 utils/adt/arrayutils.c:93 -#: utils/adt/arrayutils.c:102 utils/adt/arrayutils.c:109 +#: utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:935 +#: utils/adt/arrayfuncs.c:1522 utils/adt/arrayfuncs.c:3236 +#: utils/adt/arrayfuncs.c:3378 utils/adt/arrayfuncs.c:5919 +#: utils/adt/arrayfuncs.c:6260 utils/adt/arrayutils.c:94 +#: utils/adt/arrayutils.c:103 utils/adt/arrayutils.c:110 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "размер массива превышает предел (%d)" -#: utils/adt/array_userfuncs.c:80 utils/adt/array_userfuncs.c:466 -#: utils/adt/array_userfuncs.c:546 utils/adt/json.c:645 utils/adt/json.c:740 +#: utils/adt/array_userfuncs.c:80 utils/adt/array_userfuncs.c:467 +#: utils/adt/array_userfuncs.c:547 utils/adt/json.c:645 utils/adt/json.c:740 #: utils/adt/json.c:778 utils/adt/jsonb.c:1115 utils/adt/jsonb.c:1144 #: utils/adt/jsonb.c:1538 utils/adt/jsonb.c:1702 utils/adt/jsonb.c:1712 #, c-format @@ -23189,16 +23356,16 @@ msgstr "тип входных данных не является массивом" #: utils/adt/array_userfuncs.c:129 utils/adt/array_userfuncs.c:181 -#: utils/adt/arrayfuncs.c:1336 utils/adt/float.c:1243 utils/adt/float.c:1317 -#: utils/adt/float.c:3960 utils/adt/float.c:3974 utils/adt/int.c:759 -#: utils/adt/int.c:781 utils/adt/int.c:795 utils/adt/int.c:809 -#: utils/adt/int.c:840 utils/adt/int.c:861 utils/adt/int.c:978 -#: utils/adt/int.c:992 utils/adt/int.c:1006 utils/adt/int.c:1039 -#: utils/adt/int.c:1053 utils/adt/int.c:1067 utils/adt/int.c:1098 -#: utils/adt/int.c:1180 utils/adt/int.c:1244 utils/adt/int.c:1312 -#: utils/adt/int.c:1318 utils/adt/int8.c:1292 utils/adt/numeric.c:1559 -#: utils/adt/numeric.c:3435 utils/adt/varbit.c:1194 utils/adt/varbit.c:1582 -#: utils/adt/varlena.c:1097 utils/adt/varlena.c:3395 +#: utils/adt/float.c:1243 utils/adt/float.c:1317 utils/adt/float.c:3960 +#: utils/adt/float.c:3974 utils/adt/int.c:759 utils/adt/int.c:781 +#: utils/adt/int.c:795 utils/adt/int.c:809 utils/adt/int.c:840 +#: utils/adt/int.c:861 utils/adt/int.c:978 utils/adt/int.c:992 +#: utils/adt/int.c:1006 utils/adt/int.c:1039 utils/adt/int.c:1053 +#: utils/adt/int.c:1067 utils/adt/int.c:1098 utils/adt/int.c:1180 +#: utils/adt/int.c:1244 utils/adt/int.c:1312 utils/adt/int.c:1318 +#: utils/adt/int8.c:1292 utils/adt/numeric.c:1551 utils/adt/numeric.c:3430 +#: utils/adt/varbit.c:1194 utils/adt/varbit.c:1582 utils/adt/varlena.c:1097 +#: utils/adt/varlena.c:3395 #, c-format msgid "integer out of range" msgstr "целое вне диапазона" @@ -23238,12 +23405,12 @@ msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "Массивы с разными размерностями несовместимы для соединения." -#: utils/adt/array_userfuncs.c:662 utils/adt/array_userfuncs.c:814 +#: utils/adt/array_userfuncs.c:663 utils/adt/array_userfuncs.c:815 #, c-format msgid "searching for elements in multidimensional arrays is not supported" msgstr "поиск элементов в многомерных массивах не поддерживается" -#: utils/adt/array_userfuncs.c:686 +#: utils/adt/array_userfuncs.c:687 #, c-format msgid "initial position must not be null" msgstr "начальная позиция не может быть NULL" @@ -23252,14 +23419,14 @@ #: utils/adt/arrayfuncs.c:295 utils/adt/arrayfuncs.c:317 #: utils/adt/arrayfuncs.c:332 utils/adt/arrayfuncs.c:346 #: utils/adt/arrayfuncs.c:352 utils/adt/arrayfuncs.c:359 -#: utils/adt/arrayfuncs.c:490 utils/adt/arrayfuncs.c:506 -#: utils/adt/arrayfuncs.c:517 utils/adt/arrayfuncs.c:532 -#: utils/adt/arrayfuncs.c:553 utils/adt/arrayfuncs.c:583 -#: utils/adt/arrayfuncs.c:590 utils/adt/arrayfuncs.c:598 -#: utils/adt/arrayfuncs.c:632 utils/adt/arrayfuncs.c:655 -#: utils/adt/arrayfuncs.c:675 utils/adt/arrayfuncs.c:787 -#: utils/adt/arrayfuncs.c:796 utils/adt/arrayfuncs.c:826 -#: utils/adt/arrayfuncs.c:841 utils/adt/arrayfuncs.c:894 +#: utils/adt/arrayfuncs.c:492 utils/adt/arrayfuncs.c:508 +#: utils/adt/arrayfuncs.c:519 utils/adt/arrayfuncs.c:534 +#: utils/adt/arrayfuncs.c:555 utils/adt/arrayfuncs.c:585 +#: utils/adt/arrayfuncs.c:592 utils/adt/arrayfuncs.c:600 +#: utils/adt/arrayfuncs.c:634 utils/adt/arrayfuncs.c:657 +#: utils/adt/arrayfuncs.c:677 utils/adt/arrayfuncs.c:789 +#: utils/adt/arrayfuncs.c:798 utils/adt/arrayfuncs.c:828 +#: utils/adt/arrayfuncs.c:843 utils/adt/arrayfuncs.c:896 #, c-format msgid "malformed array literal: \"%s\"" msgstr "ошибочный литерал массива: \"%s\"" @@ -23279,8 +23446,8 @@ msgid "Missing \"%s\" after array dimensions." msgstr "После размерностей массива отсутствует \"%s\"." -#: utils/adt/arrayfuncs.c:305 utils/adt/arrayfuncs.c:2884 -#: utils/adt/arrayfuncs.c:2916 utils/adt/arrayfuncs.c:2931 +#: utils/adt/arrayfuncs.c:305 utils/adt/arrayfuncs.c:2883 +#: utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:2930 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "верхняя граница не может быть меньше нижней" @@ -23300,83 +23467,83 @@ msgid "Specified array dimensions do not match array contents." msgstr "Указанные размерности массива не соответствуют его содержимому." -#: utils/adt/arrayfuncs.c:491 utils/adt/arrayfuncs.c:518 +#: utils/adt/arrayfuncs.c:493 utils/adt/arrayfuncs.c:520 #: utils/adt/rangetypes.c:2181 utils/adt/rangetypes.c:2189 #: utils/adt/rowtypes.c:210 utils/adt/rowtypes.c:218 #, c-format msgid "Unexpected end of input." msgstr "Неожиданный конец ввода." -#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:554 -#: utils/adt/arrayfuncs.c:584 utils/adt/arrayfuncs.c:633 +#: utils/adt/arrayfuncs.c:509 utils/adt/arrayfuncs.c:556 +#: utils/adt/arrayfuncs.c:586 utils/adt/arrayfuncs.c:635 #, c-format msgid "Unexpected \"%c\" character." msgstr "Неожиданный знак \"%c\"." -#: utils/adt/arrayfuncs.c:533 utils/adt/arrayfuncs.c:656 +#: utils/adt/arrayfuncs.c:535 utils/adt/arrayfuncs.c:658 #, c-format msgid "Unexpected array element." msgstr "Неожиданный элемент массива." -#: utils/adt/arrayfuncs.c:591 +#: utils/adt/arrayfuncs.c:593 #, c-format msgid "Unmatched \"%c\" character." msgstr "Непарный знак \"%c\"." -#: utils/adt/arrayfuncs.c:599 utils/adt/jsonfuncs.c:2452 +#: utils/adt/arrayfuncs.c:601 utils/adt/jsonfuncs.c:2452 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "" "Для многомерных массивов должны задаваться вложенные массивы с " "соответствующими размерностями." -#: utils/adt/arrayfuncs.c:676 +#: utils/adt/arrayfuncs.c:678 #, c-format msgid "Junk after closing right brace." msgstr "Мусор после закрывающей фигурной скобки." -#: utils/adt/arrayfuncs.c:1298 utils/adt/arrayfuncs.c:3344 -#: utils/adt/arrayfuncs.c:5817 +#: utils/adt/arrayfuncs.c:1300 utils/adt/arrayfuncs.c:3344 +#: utils/adt/arrayfuncs.c:5823 #, c-format msgid "invalid number of dimensions: %d" msgstr "неверное число размерностей: %d" -#: utils/adt/arrayfuncs.c:1309 +#: utils/adt/arrayfuncs.c:1311 #, c-format msgid "invalid array flags" msgstr "неверные флаги массива" -#: utils/adt/arrayfuncs.c:1317 +#: utils/adt/arrayfuncs.c:1319 #, c-format msgid "wrong element type" msgstr "неверный тип элемента" -#: utils/adt/arrayfuncs.c:1367 utils/adt/rangetypes.c:335 -#: utils/cache/lsyscache.c:2835 +#: utils/adt/arrayfuncs.c:1356 utils/adt/rangetypes.c:335 +#: utils/cache/lsyscache.c:2862 #, c-format msgid "no binary input function available for type %s" msgstr "для типа %s нет функции ввода двоичных данных" -#: utils/adt/arrayfuncs.c:1507 +#: utils/adt/arrayfuncs.c:1496 #, c-format msgid "improper binary format in array element %d" msgstr "неподходящий двоичный формат в элементе массива %d" -#: utils/adt/arrayfuncs.c:1588 utils/adt/rangetypes.c:340 -#: utils/cache/lsyscache.c:2868 +#: utils/adt/arrayfuncs.c:1577 utils/adt/rangetypes.c:340 +#: utils/cache/lsyscache.c:2895 #, c-format msgid "no binary output function available for type %s" msgstr "для типа %s нет функции вывода двоичных данных" -#: utils/adt/arrayfuncs.c:2066 +#: utils/adt/arrayfuncs.c:2055 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "разрезание массивов постоянной длины не поддерживается" -#: utils/adt/arrayfuncs.c:2244 utils/adt/arrayfuncs.c:2266 -#: utils/adt/arrayfuncs.c:2315 utils/adt/arrayfuncs.c:2551 -#: utils/adt/arrayfuncs.c:2862 utils/adt/arrayfuncs.c:5803 -#: utils/adt/arrayfuncs.c:5829 utils/adt/arrayfuncs.c:5840 +#: utils/adt/arrayfuncs.c:2233 utils/adt/arrayfuncs.c:2255 +#: utils/adt/arrayfuncs.c:2304 utils/adt/arrayfuncs.c:2543 +#: utils/adt/arrayfuncs.c:2861 utils/adt/arrayfuncs.c:5809 +#: utils/adt/arrayfuncs.c:5835 utils/adt/arrayfuncs.c:5846 #: utils/adt/json.c:1141 utils/adt/json.c:1216 utils/adt/jsonb.c:1316 #: utils/adt/jsonb.c:1402 utils/adt/jsonfuncs.c:4340 utils/adt/jsonfuncs.c:4490 #: utils/adt/jsonfuncs.c:4602 utils/adt/jsonfuncs.c:4648 @@ -23384,28 +23551,28 @@ msgid "wrong number of array subscripts" msgstr "неверное число индексов массива" -#: utils/adt/arrayfuncs.c:2249 utils/adt/arrayfuncs.c:2357 -#: utils/adt/arrayfuncs.c:2615 utils/adt/arrayfuncs.c:2921 +#: utils/adt/arrayfuncs.c:2238 utils/adt/arrayfuncs.c:2346 +#: utils/adt/arrayfuncs.c:2607 utils/adt/arrayfuncs.c:2920 #, c-format msgid "array subscript out of range" msgstr "индекс массива вне диапазона" -#: utils/adt/arrayfuncs.c:2254 +#: utils/adt/arrayfuncs.c:2243 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "нельзя присвоить значение null элементу массива фиксированной длины" -#: utils/adt/arrayfuncs.c:2809 +#: utils/adt/arrayfuncs.c:2808 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "изменения в срезах массивов фиксированной длины не поддерживаются" -#: utils/adt/arrayfuncs.c:2840 +#: utils/adt/arrayfuncs.c:2839 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "в указании среза массива должны быть заданы обе границы" -#: utils/adt/arrayfuncs.c:2841 +#: utils/adt/arrayfuncs.c:2840 #, c-format msgid "" "When assigning to a slice of an empty array value, slice boundaries must be " @@ -23414,99 +23581,104 @@ "При присвоении значений срезу в пустом массиве, должны полностью задаваться " "обе границы." -#: utils/adt/arrayfuncs.c:2852 utils/adt/arrayfuncs.c:2947 +#: utils/adt/arrayfuncs.c:2851 utils/adt/arrayfuncs.c:2947 #, c-format msgid "source array too small" msgstr "исходный массив слишком мал" -#: utils/adt/arrayfuncs.c:3500 +#: utils/adt/arrayfuncs.c:3502 #, c-format msgid "null array element not allowed in this context" msgstr "элемент массива null недопустим в данном контексте" -#: utils/adt/arrayfuncs.c:3602 utils/adt/arrayfuncs.c:3773 -#: utils/adt/arrayfuncs.c:4129 +#: utils/adt/arrayfuncs.c:3604 utils/adt/arrayfuncs.c:3775 +#: utils/adt/arrayfuncs.c:4131 #, c-format msgid "cannot compare arrays of different element types" msgstr "нельзя сравнивать массивы с элементами разных типов" -#: utils/adt/arrayfuncs.c:3951 utils/adt/rangetypes.c:1254 +#: utils/adt/arrayfuncs.c:3953 utils/adt/rangetypes.c:1254 #: utils/adt/rangetypes.c:1318 #, c-format msgid "could not identify a hash function for type %s" msgstr "не удалось найти функцию хеширования для типа %s" -#: utils/adt/arrayfuncs.c:4044 +#: utils/adt/arrayfuncs.c:4046 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "не удалось найти функцию расширенного хеширования для типа %s" -#: utils/adt/arrayfuncs.c:5221 +#: utils/adt/arrayfuncs.c:5223 #, c-format msgid "data type %s is not an array type" msgstr "тип данных %s не является типом массива" -#: utils/adt/arrayfuncs.c:5276 +#: utils/adt/arrayfuncs.c:5278 #, c-format msgid "cannot accumulate null arrays" msgstr "аккумулировать NULL-массивы нельзя" -#: utils/adt/arrayfuncs.c:5304 +#: utils/adt/arrayfuncs.c:5306 #, c-format msgid "cannot accumulate empty arrays" msgstr "аккумулировать пустые массивы нельзя" -#: utils/adt/arrayfuncs.c:5331 utils/adt/arrayfuncs.c:5337 +#: utils/adt/arrayfuncs.c:5333 utils/adt/arrayfuncs.c:5339 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "аккумулировать массивы различной размерности нельзя" -#: utils/adt/arrayfuncs.c:5701 utils/adt/arrayfuncs.c:5741 +#: utils/adt/arrayfuncs.c:5707 utils/adt/arrayfuncs.c:5747 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "массив размерностей или массив нижних границ не может быть null" -#: utils/adt/arrayfuncs.c:5804 utils/adt/arrayfuncs.c:5830 +#: utils/adt/arrayfuncs.c:5810 utils/adt/arrayfuncs.c:5836 #, c-format msgid "Dimension array must be one dimensional." msgstr "Массив размерностей должен быть одномерным." -#: utils/adt/arrayfuncs.c:5809 utils/adt/arrayfuncs.c:5835 +#: utils/adt/arrayfuncs.c:5815 utils/adt/arrayfuncs.c:5841 #, c-format msgid "dimension values cannot be null" msgstr "значения размерностей не могут быть null" -#: utils/adt/arrayfuncs.c:5841 +#: utils/adt/arrayfuncs.c:5847 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "Массив нижних границ и массив размерностей имеют разные размеры." -#: utils/adt/arrayfuncs.c:6117 +#: utils/adt/arrayfuncs.c:6125 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "удаление элементов из многомерных массивов не поддерживается" -#: utils/adt/arrayfuncs.c:6394 +#: utils/adt/arrayfuncs.c:6402 #, c-format msgid "thresholds must be one-dimensional array" msgstr "границы должны задаваться одномерным массивом" -#: utils/adt/arrayfuncs.c:6399 +#: utils/adt/arrayfuncs.c:6407 #, c-format msgid "thresholds array must not contain NULLs" msgstr "массив границ не должен содержать NULL" -#: utils/adt/arrayutils.c:209 +#: utils/adt/arrayutils.c:140 +#, c-format +msgid "array lower bound is too large: %d" +msgstr "нижняя граница массива слишком велика: %d" + +#: utils/adt/arrayutils.c:240 #, c-format msgid "typmod array must be type cstring[]" msgstr "массив typmod должен иметь тип cstring[]" -#: utils/adt/arrayutils.c:214 +#: utils/adt/arrayutils.c:245 #, c-format msgid "typmod array must be one-dimensional" msgstr "массив typmod должен быть одномерным" -#: utils/adt/arrayutils.c:219 +#: utils/adt/arrayutils.c:250 #, c-format msgid "typmod array must not contain nulls" msgstr "массив typmod не должен содержать элементы null" @@ -23527,9 +23699,9 @@ #: utils/adt/geo_ops.c:4660 utils/adt/geo_ops.c:4667 utils/adt/int8.c:126 #: utils/adt/jsonpath.c:182 utils/adt/mac.c:94 utils/adt/mac8.c:93 #: utils/adt/mac8.c:166 utils/adt/mac8.c:184 utils/adt/mac8.c:202 -#: utils/adt/mac8.c:221 utils/adt/network.c:100 utils/adt/numeric.c:601 -#: utils/adt/numeric.c:628 utils/adt/numeric.c:6001 utils/adt/numeric.c:6025 -#: utils/adt/numeric.c:6049 utils/adt/numeric.c:6882 utils/adt/numeric.c:6908 +#: utils/adt/mac8.c:221 utils/adt/network.c:100 utils/adt/numeric.c:593 +#: utils/adt/numeric.c:620 utils/adt/numeric.c:5997 utils/adt/numeric.c:6021 +#: utils/adt/numeric.c:6045 utils/adt/numeric.c:6867 utils/adt/numeric.c:6893 #: utils/adt/numutils.c:116 utils/adt/numutils.c:126 utils/adt/numutils.c:170 #: utils/adt/numutils.c:246 utils/adt/numutils.c:322 utils/adt/oid.c:44 #: utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86 @@ -23554,8 +23726,8 @@ #: utils/adt/int.c:1020 utils/adt/int.c:1082 utils/adt/int.c:1120 #: utils/adt/int.c:1148 utils/adt/int8.c:593 utils/adt/int8.c:651 #: utils/adt/int8.c:978 utils/adt/int8.c:1058 utils/adt/int8.c:1120 -#: utils/adt/int8.c:1200 utils/adt/numeric.c:7446 utils/adt/numeric.c:7736 -#: utils/adt/numeric.c:9318 utils/adt/timestamp.c:3275 +#: utils/adt/int8.c:1200 utils/adt/numeric.c:7431 utils/adt/numeric.c:7721 +#: utils/adt/numeric.c:9366 utils/adt/timestamp.c:3275 #, c-format msgid "division by zero" msgstr "деление на ноль" @@ -23581,9 +23753,9 @@ msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "TIME(%d)%s: точность уменьшена до дозволенного максимума: %d" -#: utils/adt/date.c:158 utils/adt/date.c:166 utils/adt/formatting.c:4210 -#: utils/adt/formatting.c:4219 utils/adt/formatting.c:4325 -#: utils/adt/formatting.c:4335 +#: utils/adt/date.c:158 utils/adt/date.c:166 utils/adt/formatting.c:4253 +#: utils/adt/formatting.c:4262 utils/adt/formatting.c:4368 +#: utils/adt/formatting.c:4378 #, c-format msgid "date out of range: \"%s\"" msgstr "дата вне диапазона: \"%s\"" @@ -23607,9 +23779,9 @@ #: utils/adt/date.c:313 utils/adt/date.c:336 utils/adt/date.c:362 #: utils/adt/date.c:1142 utils/adt/date.c:1188 utils/adt/date.c:1744 #: utils/adt/date.c:1775 utils/adt/date.c:1804 utils/adt/date.c:2636 -#: utils/adt/datetime.c:1655 utils/adt/formatting.c:4067 -#: utils/adt/formatting.c:4099 utils/adt/formatting.c:4179 -#: utils/adt/formatting.c:4301 utils/adt/json.c:418 utils/adt/json.c:457 +#: utils/adt/datetime.c:1655 utils/adt/formatting.c:4110 +#: utils/adt/formatting.c:4142 utils/adt/formatting.c:4222 +#: utils/adt/formatting.c:4344 utils/adt/json.c:418 utils/adt/json.c:457 #: utils/adt/timestamp.c:222 utils/adt/timestamp.c:254 #: utils/adt/timestamp.c:692 utils/adt/timestamp.c:701 #: utils/adt/timestamp.c:779 utils/adt/timestamp.c:812 @@ -23644,7 +23816,7 @@ msgid "date out of range for timestamp" msgstr "дата вне диапазона для типа timestamp" -#: utils/adt/date.c:1361 utils/adt/date.c:2131 utils/adt/formatting.c:4387 +#: utils/adt/date.c:1361 utils/adt/date.c:2131 utils/adt/formatting.c:4430 #, c-format msgid "time out of range" msgstr "время вне диапазона" @@ -23656,7 +23828,7 @@ #: utils/adt/date.c:1933 utils/adt/date.c:2435 utils/adt/float.c:1071 #: utils/adt/float.c:1140 utils/adt/int.c:616 utils/adt/int.c:663 -#: utils/adt/int.c:698 utils/adt/int8.c:492 utils/adt/numeric.c:2197 +#: utils/adt/int.c:698 utils/adt/int8.c:492 utils/adt/numeric.c:2189 #: utils/adt/timestamp.c:3324 utils/adt/timestamp.c:3355 #: utils/adt/timestamp.c:3386 #, c-format @@ -23678,7 +23850,7 @@ msgid "\"time with time zone\" units \"%s\" not recognized" msgstr "\"время с часовым поясом\" содержит нераспознанные единицы \"%s\"" -#: utils/adt/date.c:2854 utils/adt/datetime.c:906 utils/adt/datetime.c:1813 +#: utils/adt/date.c:2856 utils/adt/datetime.c:906 utils/adt/datetime.c:1813 #: utils/adt/datetime.c:4601 utils/adt/timestamp.c:513 #: utils/adt/timestamp.c:540 utils/adt/timestamp.c:4161 #: utils/adt/timestamp.c:5111 utils/adt/timestamp.c:5363 @@ -23686,7 +23858,7 @@ msgid "time zone \"%s\" not recognized" msgstr "часовой пояс \"%s\" не распознан" -#: utils/adt/date.c:2886 utils/adt/timestamp.c:5141 utils/adt/timestamp.c:5394 +#: utils/adt/date.c:2888 utils/adt/timestamp.c:5141 utils/adt/timestamp.c:5394 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "" @@ -23726,17 +23898,17 @@ msgid "invalid Datum pointer" msgstr "неверный указатель Datum" -#: utils/adt/dbsize.c:759 utils/adt/dbsize.c:827 +#: utils/adt/dbsize.c:763 utils/adt/dbsize.c:831 #, c-format msgid "invalid size: \"%s\"" msgstr "некорректная величина: \"%s\"" -#: utils/adt/dbsize.c:828 +#: utils/adt/dbsize.c:832 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "Неверная единица измерения величины: \"%s\"." -#: utils/adt/dbsize.c:829 +#: utils/adt/dbsize.c:833 #, c-format msgid "Valid units are \"bytes\", \"kB\", \"MB\", \"GB\", and \"TB\"." msgstr "" @@ -23834,13 +24006,6 @@ msgid "enum %s contains no values" msgstr "перечисление %s не содержит значений" -#: utils/adt/expandedrecord.c:99 utils/adt/expandedrecord.c:231 -#: utils/cache/typcache.c:1632 utils/cache/typcache.c:1788 -#: utils/cache/typcache.c:1918 utils/fmgr/funcapi.c:456 -#, c-format -msgid "type %s is not composite" -msgstr "тип %s не является составным" - #: utils/adt/float.c:88 #, c-format msgid "value out of range: overflow" @@ -23864,32 +24029,32 @@ #: utils/adt/float.c:1268 utils/adt/float.c:1342 utils/adt/int.c:336 #: utils/adt/int.c:874 utils/adt/int.c:896 utils/adt/int.c:910 #: utils/adt/int.c:924 utils/adt/int.c:956 utils/adt/int.c:1194 -#: utils/adt/int8.c:1313 utils/adt/numeric.c:3553 utils/adt/numeric.c:3562 +#: utils/adt/int8.c:1313 utils/adt/numeric.c:3550 utils/adt/numeric.c:3555 #, c-format msgid "smallint out of range" msgstr "smallint вне диапазона" -#: utils/adt/float.c:1468 utils/adt/numeric.c:8329 +#: utils/adt/float.c:1468 utils/adt/numeric.c:8314 #, c-format msgid "cannot take square root of a negative number" msgstr "извлечь квадратный корень отрицательного числа нельзя" -#: utils/adt/float.c:1536 utils/adt/numeric.c:3239 +#: utils/adt/float.c:1536 utils/adt/numeric.c:3240 #, c-format msgid "zero raised to a negative power is undefined" msgstr "ноль в отрицательной степени даёт неопределённость" -#: utils/adt/float.c:1540 utils/adt/numeric.c:3245 +#: utils/adt/float.c:1540 utils/adt/numeric.c:9219 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "отрицательное число в дробной степени даёт комплексный результат" -#: utils/adt/float.c:1614 utils/adt/float.c:1647 utils/adt/numeric.c:8993 +#: utils/adt/float.c:1614 utils/adt/float.c:1647 utils/adt/numeric.c:8992 #, c-format msgid "cannot take logarithm of zero" msgstr "вычислить логарифм нуля нельзя" -#: utils/adt/float.c:1618 utils/adt/float.c:1651 utils/adt/numeric.c:8997 +#: utils/adt/float.c:1618 utils/adt/float.c:1651 utils/adt/numeric.c:8996 #, c-format msgid "cannot take logarithm of a negative number" msgstr "вычислить логарифм отрицательного числа нельзя" @@ -23908,12 +24073,12 @@ msgid "setseed parameter %g is out of allowed range [-1,1]" msgstr "параметр setseed %g вне допустимого диапазона [-1,1]" -#: utils/adt/float.c:3938 utils/adt/numeric.c:1509 +#: utils/adt/float.c:3938 utils/adt/numeric.c:1501 #, c-format msgid "count must be greater than zero" msgstr "счётчик должен быть больше нуля" -#: utils/adt/float.c:3943 utils/adt/numeric.c:1516 +#: utils/adt/float.c:3943 utils/adt/numeric.c:1508 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "операнд, нижняя и верхняя границы не могут быть NaN" @@ -23923,7 +24088,7 @@ msgid "lower and upper bounds must be finite" msgstr "нижняя и верхняя границы должны быть конечными" -#: utils/adt/float.c:3983 utils/adt/numeric.c:1529 +#: utils/adt/float.c:3983 utils/adt/numeric.c:1521 #, c-format msgid "lower bound cannot equal upper bound" msgstr "нижняя граница не может равняться верхней" @@ -24116,89 +24281,89 @@ msgid "localized string format value too long" msgstr "слишком длинное значение формата локализованной строки" -#: utils/adt/formatting.c:3300 +#: utils/adt/formatting.c:3343 #, c-format msgid "unmatched format separator \"%c\"" msgstr "нет соответствия для заданного в формате разделителя \"%c\"" -#: utils/adt/formatting.c:3361 +#: utils/adt/formatting.c:3404 #, c-format msgid "unmatched format character \"%s\"" msgstr "нет соответствия для заданного в формате символа \"%s\"" -#: utils/adt/formatting.c:3467 utils/adt/formatting.c:3811 +#: utils/adt/formatting.c:3510 utils/adt/formatting.c:3854 #, c-format msgid "formatting field \"%s\" is only supported in to_char" msgstr "поле форматирования \"%s\" поддерживается только в функции to_char" -#: utils/adt/formatting.c:3642 +#: utils/adt/formatting.c:3685 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr "ошибка синтаксиса в значении для шаблона \"Y,YYY\"" -#: utils/adt/formatting.c:3728 +#: utils/adt/formatting.c:3771 #, c-format msgid "input string is too short for datetime format" msgstr "входная строка короче, чем требует формат datetime" -#: utils/adt/formatting.c:3736 +#: utils/adt/formatting.c:3779 #, c-format msgid "trailing characters remain in input string after datetime format" msgstr "" "после разбора формата datetime во входной строке остались дополнительные " "символы" -#: utils/adt/formatting.c:4281 +#: utils/adt/formatting.c:4324 #, c-format msgid "missing time zone in input string for type timestamptz" msgstr "во входной строке для типа timestamptz нет указания часового пояса" -#: utils/adt/formatting.c:4287 +#: utils/adt/formatting.c:4330 #, c-format msgid "timestamptz out of range" msgstr "значение timestamptz вне диапазона" -#: utils/adt/formatting.c:4315 +#: utils/adt/formatting.c:4358 #, c-format msgid "datetime format is zoned but not timed" msgstr "в формате datetime указан часовой пояс, но отсутствует время" -#: utils/adt/formatting.c:4367 +#: utils/adt/formatting.c:4410 #, c-format msgid "missing time zone in input string for type timetz" msgstr "во входной строке для типа timetz нет указания часового пояса" -#: utils/adt/formatting.c:4373 +#: utils/adt/formatting.c:4416 #, c-format msgid "timetz out of range" msgstr "значение timetz вне диапазона" -#: utils/adt/formatting.c:4399 +#: utils/adt/formatting.c:4442 #, c-format msgid "datetime format is not dated and not timed" msgstr "в формате datetime нет ни даты, ни времени" -#: utils/adt/formatting.c:4532 +#: utils/adt/formatting.c:4575 #, c-format msgid "hour \"%d\" is invalid for the 12-hour clock" msgstr "час \"%d\" не соответствует 12-часовому формату времени" -#: utils/adt/formatting.c:4534 +#: utils/adt/formatting.c:4577 #, c-format msgid "Use the 24-hour clock, or give an hour between 1 and 12." msgstr "Используйте 24-часовой формат или передавайте часы от 1 до 12." -#: utils/adt/formatting.c:4645 +#: utils/adt/formatting.c:4688 #, c-format msgid "cannot calculate day of year without year information" msgstr "нельзя рассчитать день года без информации о годе" -#: utils/adt/formatting.c:5564 +#: utils/adt/formatting.c:5607 #, c-format msgid "\"EEEE\" not supported for input" msgstr "\"EEEE\" не поддерживается при вводе" -#: utils/adt/formatting.c:5576 +#: utils/adt/formatting.c:5619 #, c-format msgid "\"RN\" not supported for input" msgstr "\"RN\" не поддерживается при вводе" @@ -24331,8 +24496,8 @@ msgid "oidvector has too many elements" msgstr "oidvector содержит слишком много элементов" -#: utils/adt/int.c:1510 utils/adt/int8.c:1439 utils/adt/numeric.c:1417 -#: utils/adt/timestamp.c:5456 utils/adt/timestamp.c:5536 +#: utils/adt/int.c:1510 utils/adt/int8.c:1439 utils/adt/numeric.c:1409 +#: utils/adt/timestamp.c:5470 utils/adt/timestamp.c:5564 #, c-format msgid "step size cannot equal zero" msgstr "размер шага не может быть нулевым" @@ -24346,7 +24511,7 @@ #: utils/adt/int8.c:1030 utils/adt/int8.c:1044 utils/adt/int8.c:1077 #: utils/adt/int8.c:1091 utils/adt/int8.c:1105 utils/adt/int8.c:1136 #: utils/adt/int8.c:1158 utils/adt/int8.c:1172 utils/adt/int8.c:1186 -#: utils/adt/int8.c:1348 utils/adt/int8.c:1383 utils/adt/numeric.c:3508 +#: utils/adt/int8.c:1348 utils/adt/int8.c:1383 utils/adt/numeric.c:3505 #: utils/adt/varbit.c:1662 #, c-format msgid "bigint out of range" @@ -24596,7 +24761,7 @@ "using a column definition list." msgstr "" "Передайте отличный от NULL аргумент-запись или вызовите эту функцию в " -"предложении FROM, используя список с определениями столбцов." +"предложении FROM, используя список определений столбцов." #: utils/adt/jsonfuncs.c:3792 utils/adt/jsonfuncs.c:3873 #, c-format @@ -25074,84 +25239,84 @@ msgid "cannot subtract inet values of different sizes" msgstr "нельзя вычитать значения inet разного размера" -#: utils/adt/numeric.c:827 +#: utils/adt/numeric.c:819 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "неверный знак во внешнем значении \"numeric\"" -#: utils/adt/numeric.c:833 +#: utils/adt/numeric.c:825 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "неверный порядок числа во внешнем значении \"numeric\"" -#: utils/adt/numeric.c:842 +#: utils/adt/numeric.c:834 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "неверная цифра во внешнем значении \"numeric\"" -#: utils/adt/numeric.c:1040 utils/adt/numeric.c:1054 +#: utils/adt/numeric.c:1032 utils/adt/numeric.c:1046 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "точность NUMERIC %d должна быть между 1 и %d" -#: utils/adt/numeric.c:1045 +#: utils/adt/numeric.c:1037 #, c-format msgid "NUMERIC scale %d must be between 0 and precision %d" msgstr "порядок NUMERIC %d должен быть между 0 и точностью (%d)" -#: utils/adt/numeric.c:1063 +#: utils/adt/numeric.c:1055 #, c-format msgid "invalid NUMERIC type modifier" msgstr "неверный модификатор типа NUMERIC" -#: utils/adt/numeric.c:1395 +#: utils/adt/numeric.c:1387 #, c-format msgid "start value cannot be NaN" msgstr "начальное значение не может быть NaN" -#: utils/adt/numeric.c:1400 +#: utils/adt/numeric.c:1392 #, c-format msgid "stop value cannot be NaN" msgstr "конечное значение не может быть NaN" -#: utils/adt/numeric.c:1410 +#: utils/adt/numeric.c:1402 #, c-format msgid "step size cannot be NaN" msgstr "размер шага не может быть NaN" -#: utils/adt/numeric.c:2958 utils/adt/numeric.c:6064 utils/adt/numeric.c:6522 -#: utils/adt/numeric.c:8802 utils/adt/numeric.c:9240 utils/adt/numeric.c:9354 -#: utils/adt/numeric.c:9427 +#: utils/adt/numeric.c:2957 utils/adt/numeric.c:6060 utils/adt/numeric.c:6507 +#: utils/adt/numeric.c:8789 utils/adt/numeric.c:9276 utils/adt/numeric.c:9402 +#: utils/adt/numeric.c:9475 #, c-format msgid "value overflows numeric format" msgstr "значение переполняет формат numeric" -#: utils/adt/numeric.c:3417 +#: utils/adt/numeric.c:3412 #, c-format msgid "cannot convert NaN to integer" msgstr "нельзя преобразовать NaN в integer" -#: utils/adt/numeric.c:3500 +#: utils/adt/numeric.c:3497 #, c-format msgid "cannot convert NaN to bigint" msgstr "нельзя преобразовать NaN в bigint" -#: utils/adt/numeric.c:3545 +#: utils/adt/numeric.c:3542 #, c-format msgid "cannot convert NaN to smallint" msgstr "нельзя преобразовать NaN в smallint" -#: utils/adt/numeric.c:3582 utils/adt/numeric.c:3653 +#: utils/adt/numeric.c:3578 utils/adt/numeric.c:3649 #, c-format msgid "cannot convert infinity to numeric" msgstr "нельзя представить бесконечность в numeric" -#: utils/adt/numeric.c:6606 +#: utils/adt/numeric.c:6591 #, c-format msgid "numeric field overflow" msgstr "переполнение поля numeric" -#: utils/adt/numeric.c:6607 +#: utils/adt/numeric.c:6592 #, c-format msgid "" "A field with precision %d, scale %d must round to an absolute value less " @@ -25225,7 +25390,7 @@ #: utils/adt/pg_locale.c:1591 #, c-format msgid "collation provider LIBC is not supported on this platform" -msgstr "поставщик правил сортировки LIBC не поддерживается на этой платформе" +msgstr "провайдер правил сортировки LIBC не поддерживается на этой платформе" #: utils/adt/pg_locale.c:1603 #, c-format @@ -25235,7 +25400,7 @@ "ICU не поддерживает правила сортировки с разными значениями collate и ctype" #: utils/adt/pg_locale.c:1609 utils/adt/pg_locale.c:1696 -#: utils/adt/pg_locale.c:1969 +#: utils/adt/pg_locale.c:1981 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "не удалось открыть сортировщик для локали \"%s\": %s" @@ -25267,7 +25432,7 @@ "operating system provides version %s." msgstr "" "Правило сортировки в базе данных было создано с версией %s, но операционная " -"версия предоставляет версию %s." +"система предоставляет версию %s." #: utils/adt/pg_locale.c:1656 #, c-format @@ -25279,35 +25444,35 @@ "ALTER COLLATION %s REFRESH VERSION либо соберите PostgreSQL с правильной " "версией библиотеки." -#: utils/adt/pg_locale.c:1747 +#: utils/adt/pg_locale.c:1758 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "" "не удалось получить версию правила сортировки для локали \"%s\" (код ошибки: " "%lu)" -#: utils/adt/pg_locale.c:1784 +#: utils/adt/pg_locale.c:1796 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "ICU не поддерживает кодировку \"%s\"" -#: utils/adt/pg_locale.c:1791 +#: utils/adt/pg_locale.c:1803 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "не удалось открыть преобразователь ICU для кодировки \"%s\": %s" -#: utils/adt/pg_locale.c:1822 utils/adt/pg_locale.c:1831 -#: utils/adt/pg_locale.c:1860 utils/adt/pg_locale.c:1870 +#: utils/adt/pg_locale.c:1834 utils/adt/pg_locale.c:1843 +#: utils/adt/pg_locale.c:1872 utils/adt/pg_locale.c:1882 #, c-format msgid "%s failed: %s" msgstr "ошибка %s: %s" -#: utils/adt/pg_locale.c:2142 +#: utils/adt/pg_locale.c:2154 #, c-format msgid "invalid multibyte character for locale" msgstr "неверный многобайтный символ для локали" -#: utils/adt/pg_locale.c:2143 +#: utils/adt/pg_locale.c:2155 #, c-format msgid "" "The server's LC_CTYPE locale is probably incompatible with the database " @@ -25463,7 +25628,7 @@ "Чтобы обозначить отсутствующий аргумент унарного оператора, укажите NONE." #: utils/adt/regproc.c:697 utils/adt/regproc.c:738 utils/adt/regproc.c:2018 -#: utils/adt/ruleutils.c:9298 utils/adt/ruleutils.c:9467 +#: utils/adt/ruleutils.c:9314 utils/adt/ruleutils.c:9483 #, c-format msgid "too many arguments" msgstr "слишком много аргументов" @@ -25653,7 +25818,7 @@ msgid "cannot compare record types with different numbers of columns" msgstr "сравнивать типы записей с разным числом столбцов нельзя" -#: utils/adt/ruleutils.c:4822 +#: utils/adt/ruleutils.c:4824 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "правило \"%s\" имеет неподдерживаемый тип событий %d" @@ -25668,7 +25833,7 @@ msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "TIMESTAMP(%d)%s: точность уменьшена до дозволенного максимума: %d" -#: utils/adt/timestamp.c:176 utils/adt/timestamp.c:434 utils/misc/guc.c:11929 +#: utils/adt/timestamp.c:176 utils/adt/timestamp.c:434 utils/misc/guc.c:11953 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestamp вне диапазона: \"%s\"" @@ -25786,6 +25951,16 @@ msgid "interval units \"%s\" not recognized" msgstr "единицы interval \"%s\" не распознаны" +#: utils/adt/timestamp.c:5434 utils/adt/timestamp.c:5528 +#, c-format +msgid "start value cannot be infinity" +msgstr "начальное значение не может быть бесконечностью" + +#: utils/adt/timestamp.c:5439 utils/adt/timestamp.c:5533 +#, c-format +msgid "stop value cannot be infinity" +msgstr "конечное значение не может быть бесконечностью" + #: utils/adt/trigfuncs.c:42 #, c-format msgid "suppress_redundant_updates_trigger: must be called as trigger" @@ -25817,10 +25992,14 @@ msgid "gtsvector_in not implemented" msgstr "функция gtsvector_in не реализована" -#: utils/adt/tsquery.c:200 +#: utils/adt/tsquery.c:200 utils/adt/tsquery_op.c:124 #, c-format -msgid "distance in phrase operator should not be greater than %d" -msgstr "дистанция во фразовом операторе должна быть не больше %d" +msgid "" +"distance in phrase operator must be an integer value between zero and %d " +"inclusive" +msgstr "" +"расстояние во фразовом операторе должно быть целым числом от 0 до %d " +"включительно" #: utils/adt/tsquery.c:310 utils/adt/tsquery.c:725 #: utils/adt/tsvector_parser.c:133 @@ -25867,12 +26046,6 @@ "запрос поиска текста игнорируется, так как содержит только стоп-слова или не " "содержит лексем" -#: utils/adt/tsquery_op.c:124 -#, c-format -msgid "distance in phrase operator should be non-negative and less than %d" -msgstr "" -"дистанция во фразовом операторе должна быть неотрицательной и меньше %d" - #: utils/adt/tsquery_rewrite.c:321 #, c-format msgid "ts_rewrite query must return two tsquery columns" @@ -25924,42 +26097,42 @@ msgid "unrecognized weight: \"%c\"" msgstr "нераспознанный вес: \"%c\"" -#: utils/adt/tsvector_op.c:2414 +#: utils/adt/tsvector_op.c:2426 #, c-format msgid "ts_stat query must return one tsvector column" msgstr "запрос ts_stat должен вернуть один столбец tsvector" -#: utils/adt/tsvector_op.c:2603 +#: utils/adt/tsvector_op.c:2615 #, c-format msgid "tsvector column \"%s\" does not exist" msgstr "столбец \"%s\" типа tsvector не существует" -#: utils/adt/tsvector_op.c:2610 +#: utils/adt/tsvector_op.c:2622 #, c-format msgid "column \"%s\" is not of tsvector type" msgstr "столбец \"%s\" должен иметь тип tsvector" -#: utils/adt/tsvector_op.c:2622 +#: utils/adt/tsvector_op.c:2634 #, c-format msgid "configuration column \"%s\" does not exist" msgstr "столбец конфигурации \"%s\" не существует" -#: utils/adt/tsvector_op.c:2628 +#: utils/adt/tsvector_op.c:2640 #, c-format msgid "column \"%s\" is not of regconfig type" msgstr "столбец \"%s\" должен иметь тип regconfig" -#: utils/adt/tsvector_op.c:2635 +#: utils/adt/tsvector_op.c:2647 #, c-format msgid "configuration column \"%s\" must not be null" msgstr "значение столбца конфигурации \"%s\" не должно быть null" -#: utils/adt/tsvector_op.c:2648 +#: utils/adt/tsvector_op.c:2660 #, c-format msgid "text search configuration name \"%s\" must be schema-qualified" msgstr "имя конфигурации текстового поиска \"%s\" должно указываться со схемой" -#: utils/adt/tsvector_op.c:2673 +#: utils/adt/tsvector_op.c:2685 #, c-format msgid "column \"%s\" is not of a character type" msgstr "столбец \"%s\" имеет не символьный тип" @@ -26259,7 +26432,7 @@ "This probably indicates that the version of libxml2 being used is not " "compatible with the libxml2 header files that PostgreSQL was built with." msgstr "" -"Возможно это означает, что используемая версия libxml2 не совместима с " +"Возможно, это означает, что используемая версия libxml2 несовместима с " "заголовочными файлами libxml2, с которыми был собран PostgreSQL." #: utils/adt/xml.c:1936 @@ -26354,23 +26527,23 @@ msgid "more than one value returned by column XPath expression" msgstr "выражение XPath, отбирающее столбец, возвратило более одного значения" -#: utils/cache/lsyscache.c:1015 +#: utils/cache/lsyscache.c:1042 #, c-format msgid "cast from type %s to type %s does not exist" msgstr "приведение типа %s к типу %s не существует" -#: utils/cache/lsyscache.c:2764 utils/cache/lsyscache.c:2797 -#: utils/cache/lsyscache.c:2830 utils/cache/lsyscache.c:2863 +#: utils/cache/lsyscache.c:2791 utils/cache/lsyscache.c:2824 +#: utils/cache/lsyscache.c:2857 utils/cache/lsyscache.c:2890 #, c-format msgid "type %s is only a shell" -msgstr "тип %s - лишь оболочка" +msgstr "тип %s является пустышкой" -#: utils/cache/lsyscache.c:2769 +#: utils/cache/lsyscache.c:2796 #, c-format msgid "no input function available for type %s" msgstr "для типа %s нет функции ввода" -#: utils/cache/lsyscache.c:2802 +#: utils/cache/lsyscache.c:2829 #, c-format msgid "no output function available for type %s" msgstr "для типа %s нет функции вывода" @@ -26389,17 +26562,17 @@ msgid "cached plan must not change result type" msgstr "в кешированном плане не должен изменяться тип результата" -#: utils/cache/relcache.c:6078 +#: utils/cache/relcache.c:6204 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "создать файл инициализации для кеша отношений \"%s\" не удалось: %m" -#: utils/cache/relcache.c:6080 +#: utils/cache/relcache.c:6206 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Продолжаем всё равно, хотя что-то не так." -#: utils/cache/relcache.c:6402 +#: utils/cache/relcache.c:6528 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "не удалось стереть файл кеша \"%s\": %m" @@ -26410,12 +26583,12 @@ msgstr "" "выполнить PREPARE для транзакции, изменившей сопоставление отношений, нельзя" -#: utils/cache/relmapper.c:761 +#: utils/cache/relmapper.c:767 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "файл сопоставления отношений \"%s\" содержит неверные данные" -#: utils/cache/relmapper.c:771 +#: utils/cache/relmapper.c:777 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "ошибка контрольной суммы в файле сопоставления отношений \"%s\"" @@ -26671,100 +26844,100 @@ msgid "could not determine row description for function returning record" msgstr "не удалось определить описание строки для функции, возвращающей запись" -#: utils/init/miscinit.c:285 +#: utils/init/miscinit.c:284 #, c-format msgid "data directory \"%s\" does not exist" msgstr "каталог данных \"%s\" не существует" -#: utils/init/miscinit.c:290 +#: utils/init/miscinit.c:289 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "не удалось считать права на каталог \"%s\": %m" -#: utils/init/miscinit.c:298 +#: utils/init/miscinit.c:297 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "указанный каталог данных \"%s\" не существует" -#: utils/init/miscinit.c:314 +#: utils/init/miscinit.c:313 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "владелец каталога данных \"%s\" определён неверно" -#: utils/init/miscinit.c:316 +#: utils/init/miscinit.c:315 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "" "Сервер должен запускать пользователь, являющийся владельцем каталога данных." -#: utils/init/miscinit.c:334 +#: utils/init/miscinit.c:333 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "для каталога данных \"%s\" установлены неправильные права доступа" -#: utils/init/miscinit.c:336 +#: utils/init/miscinit.c:335 #, c-format msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "Маска прав должна быть u=rwx (0700) или u=rwx,g=rx (0750)." -#: utils/init/miscinit.c:615 utils/misc/guc.c:7139 +#: utils/init/miscinit.c:614 utils/misc/guc.c:7139 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "" "параметр \"%s\" нельзя задать в рамках операции с ограничениями по " "безопасности" -#: utils/init/miscinit.c:683 +#: utils/init/miscinit.c:682 #, c-format msgid "role with OID %u does not exist" msgstr "роль с OID %u не существует" -#: utils/init/miscinit.c:713 +#: utils/init/miscinit.c:712 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "для роли \"%s\" вход запрещён" -#: utils/init/miscinit.c:731 +#: utils/init/miscinit.c:730 #, c-format msgid "too many connections for role \"%s\"" msgstr "слишком много подключений для роли \"%s\"" -#: utils/init/miscinit.c:791 +#: utils/init/miscinit.c:790 #, c-format msgid "permission denied to set session authorization" msgstr "нет прав для смены объекта авторизации в сеансе" -#: utils/init/miscinit.c:874 +#: utils/init/miscinit.c:873 #, c-format msgid "invalid role OID: %u" msgstr "неверный OID роли: %u" -#: utils/init/miscinit.c:928 +#: utils/init/miscinit.c:927 #, c-format msgid "database system is shut down" msgstr "система БД выключена" -#: utils/init/miscinit.c:1015 +#: utils/init/miscinit.c:1014 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "не удалось создать файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1029 +#: utils/init/miscinit.c:1028 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "не удалось открыть файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1036 +#: utils/init/miscinit.c:1035 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "не удалось прочитать файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1045 +#: utils/init/miscinit.c:1044 #, c-format msgid "lock file \"%s\" is empty" msgstr "файл блокировки \"%s\" пуст" -#: utils/init/miscinit.c:1046 +#: utils/init/miscinit.c:1045 #, c-format msgid "" "Either another server is starting, or the lock file is the remnant of a " @@ -26773,38 +26946,38 @@ "Либо сейчас запускается другой сервер, либо этот файл остался в результате " "сбоя при предыдущем запуске." -#: utils/init/miscinit.c:1090 +#: utils/init/miscinit.c:1089 #, c-format msgid "lock file \"%s\" already exists" msgstr "файл блокировки \"%s\" уже существует" -#: utils/init/miscinit.c:1094 +#: utils/init/miscinit.c:1093 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "Другой экземпляр postgres (PID %d) работает с каталогом данных \"%s\"?" -#: utils/init/miscinit.c:1096 +#: utils/init/miscinit.c:1095 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "" "Другой экземпляр postmaster (PID %d) работает с каталогом данных \"%s\"?" -#: utils/init/miscinit.c:1099 +#: utils/init/miscinit.c:1098 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Другой экземпляр postgres (PID %d) использует файл сокета \"%s\"?" -#: utils/init/miscinit.c:1101 +#: utils/init/miscinit.c:1100 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Другой экземпляр postmaster (PID %d) использует файл сокета \"%s\"?" -#: utils/init/miscinit.c:1152 +#: utils/init/miscinit.c:1151 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "не удалось стереть старый файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1154 +#: utils/init/miscinit.c:1153 #, c-format msgid "" "The file seems accidentally left over, but it could not be removed. Please " @@ -26813,57 +26986,57 @@ "Кажется, файл сохранился по ошибке, но удалить его не получилось. " "Пожалуйста, удалите файл вручную и повторите попытку." -#: utils/init/miscinit.c:1191 utils/init/miscinit.c:1205 -#: utils/init/miscinit.c:1216 +#: utils/init/miscinit.c:1190 utils/init/miscinit.c:1204 +#: utils/init/miscinit.c:1215 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "не удалось записать файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1327 utils/init/miscinit.c:1469 utils/misc/guc.c:10066 +#: utils/init/miscinit.c:1326 utils/init/miscinit.c:1468 utils/misc/guc.c:10066 #, c-format msgid "could not read from file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" -#: utils/init/miscinit.c:1457 +#: utils/init/miscinit.c:1456 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "не удалось открыть файл \"%s\": %m; ошибка игнорируется" -#: utils/init/miscinit.c:1482 +#: utils/init/miscinit.c:1481 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "файл блокировки \"%s\" содержит неверный PID: %ld вместо %ld" -#: utils/init/miscinit.c:1521 utils/init/miscinit.c:1537 +#: utils/init/miscinit.c:1520 utils/init/miscinit.c:1536 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\" не является каталогом данных" -#: utils/init/miscinit.c:1523 +#: utils/init/miscinit.c:1522 #, c-format msgid "File \"%s\" is missing." msgstr "Файл \"%s\" отсутствует." -#: utils/init/miscinit.c:1539 +#: utils/init/miscinit.c:1538 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Файл \"%s\" содержит неприемлемые данные." -#: utils/init/miscinit.c:1541 +#: utils/init/miscinit.c:1540 #, c-format msgid "You might need to initdb." msgstr "Возможно, вам нужно выполнить initdb." -#: utils/init/miscinit.c:1549 +#: utils/init/miscinit.c:1548 #, c-format msgid "" "The data directory was initialized by PostgreSQL version %s, which is not " "compatible with this version %s." msgstr "" -"Каталог данных инициализирован сервером PostgreSQL версии %s, не совместимой " +"Каталог данных инициализирован сервером PostgreSQL версии %s, несовместимой " "с данной версией (%s)." -#: utils/init/miscinit.c:1616 +#: utils/init/miscinit.c:1615 #, c-format msgid "loaded library \"%s\"" msgstr "загружена библиотека \"%s\"" @@ -27557,10 +27730,10 @@ #: utils/misc/guc.c:1258 msgid "" "Writes full pages to WAL when first modified after a checkpoint, even for a " -"non-critical modifications." +"non-critical modification." msgstr "" "Запись полных страниц в WAL при первом изменении после контрольной точки, " -"даже при некритических изменениях." +"даже при некритическом изменении." #: utils/misc/guc.c:1268 msgid "Compresses full-page writes written in WAL file." @@ -28548,13 +28721,6 @@ "Число одновременных запросов, которые могут быть эффективно обработаны " "дисковой подсистемой." -#: utils/misc/guc.c:2924 -msgid "" -"For RAID arrays, this should be approximately the number of drive spindles " -"in the array." -msgstr "" -"Для RAID-массивов это примерно равно числу физических дисков в массиве." - #: utils/misc/guc.c:2941 msgid "" "A variant of effective_io_concurrency that is used for maintenance work." @@ -29168,7 +29334,7 @@ #: utils/misc/guc.c:4022 msgid "Sets the server (database) character set encoding." -msgstr "Задаёт кодировку символов сервера (баз данных)." +msgstr "Задаёт кодировку символов сервера (базы данных)." #: utils/misc/guc.c:4034 msgid "Shows the server version." @@ -29479,7 +29645,7 @@ #: utils/misc/guc.c:4703 msgid "Use of huge pages on Linux or Windows." -msgstr "Включает использование гигантских страниц в Linux и в Windows." +msgstr "Включает использование огромных страниц в Linux и в Windows." #: utils/misc/guc.c:4713 msgid "Forces use of parallel query facilities." @@ -29604,7 +29770,7 @@ #: utils/misc/guc.c:6980 utils/misc/guc.c:7760 utils/misc/guc.c:7813 #: utils/misc/guc.c:7864 utils/misc/guc.c:8197 utils/misc/guc.c:8964 -#: utils/misc/guc.c:9226 utils/misc/guc.c:10892 +#: utils/misc/guc.c:9226 utils/misc/guc.c:10899 #, c-format msgid "unrecognized configuration parameter \"%s\"" msgstr "нераспознанный параметр конфигурации: \"%s\"" @@ -29616,7 +29782,7 @@ #: utils/misc/guc.c:7018 utils/misc/guc.c:7216 utils/misc/guc.c:7310 #: utils/misc/guc.c:7404 utils/misc/guc.c:7524 utils/misc/guc.c:7623 -#: guc-file.l:352 +#: guc-file.l:354 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "параметр \"%s\" изменяется только при перезапуске сервера" @@ -29626,7 +29792,7 @@ msgid "parameter \"%s\" cannot be changed now" msgstr "параметр \"%s\" нельзя изменить сейчас" -#: utils/misc/guc.c:7046 utils/misc/guc.c:7093 utils/misc/guc.c:10908 +#: utils/misc/guc.c:7046 utils/misc/guc.c:7093 utils/misc/guc.c:10915 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "нет прав для изменения параметра \"%s\"" @@ -29695,22 +29861,22 @@ msgid "parameter \"%s\" could not be set" msgstr "параметр \"%s\" нельзя установить" -#: utils/misc/guc.c:10612 +#: utils/misc/guc.c:10614 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "не удалось разобрать значение параметра \"%s\"" -#: utils/misc/guc.c:10970 utils/misc/guc.c:11004 +#: utils/misc/guc.c:10977 utils/misc/guc.c:11011 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "неверное значение параметра \"%s\": %d" -#: utils/misc/guc.c:11038 +#: utils/misc/guc.c:11045 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "неверное значение параметра \"%s\": %g" -#: utils/misc/guc.c:11308 +#: utils/misc/guc.c:11332 #, c-format msgid "" "\"temp_buffers\" cannot be changed after any temporary tables have been " @@ -29719,23 +29885,23 @@ "параметр \"temp_buffers\" нельзя изменить после обращения к временным " "таблицам в текущем сеансе." -#: utils/misc/guc.c:11320 +#: utils/misc/guc.c:11344 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour не поддерживается в данной сборке" -#: utils/misc/guc.c:11333 +#: utils/misc/guc.c:11357 #, c-format msgid "SSL is not supported by this build" msgstr "SSL не поддерживается в данной сборке" -#: utils/misc/guc.c:11345 +#: utils/misc/guc.c:11369 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "" "Этот параметр нельзя включить, когда \"log_statement_stats\" равен true." -#: utils/misc/guc.c:11357 +#: utils/misc/guc.c:11381 #, c-format msgid "" "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", " @@ -29744,7 +29910,7 @@ "Параметр \"log_statement_stats\" нельзя включить, когда \"log_parser_stats" "\", \"log_planner_stats\" или \"log_executor_stats\" равны true." -#: utils/misc/guc.c:11587 +#: utils/misc/guc.c:11611 #, c-format msgid "" "effective_io_concurrency must be set to 0 on platforms that lack " @@ -29753,7 +29919,7 @@ "Значение effective_io_concurrency должно равняться 0 на платформах, где " "отсутствует lack posix_fadvise()." -#: utils/misc/guc.c:11600 +#: utils/misc/guc.c:11624 #, c-format msgid "" "maintenance_io_concurrency must be set to 0 on platforms that lack " @@ -29762,22 +29928,22 @@ "Значение maintenance_io_concurrency должно равняться 0 на платформах, где " "отсутствует lack posix_fadvise()." -#: utils/misc/guc.c:11716 +#: utils/misc/guc.c:11740 #, c-format msgid "invalid character" msgstr "неверный символ" -#: utils/misc/guc.c:11776 +#: utils/misc/guc.c:11800 #, c-format msgid "recovery_target_timeline is not a valid number." msgstr "recovery_target_timeline не является допустимым числом." -#: utils/misc/guc.c:11816 +#: utils/misc/guc.c:11840 #, c-format msgid "multiple recovery targets specified" msgstr "указано несколько целей восстановления" -#: utils/misc/guc.c:11817 +#: utils/misc/guc.c:11841 #, c-format msgid "" "At most one of recovery_target, recovery_target_lsn, recovery_target_name, " @@ -29787,7 +29953,7 @@ "recovery_target_lsn, recovery_target_name, recovery_target_time, " "recovery_target_xid." -#: utils/misc/guc.c:11825 +#: utils/misc/guc.c:11849 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "Единственное допустимое значение: \"immediate\"." @@ -29948,27 +30114,27 @@ msgid "closing existing cursor \"%s\"" msgstr "существующий курсор (\"%s\") закрывается" -#: utils/mmgr/portalmem.c:400 +#: utils/mmgr/portalmem.c:401 #, c-format msgid "portal \"%s\" cannot be run" msgstr "портал \"%s\" не может быть запущен" -#: utils/mmgr/portalmem.c:478 +#: utils/mmgr/portalmem.c:479 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "удалить закреплённый портал \"%s\" нельзя" -#: utils/mmgr/portalmem.c:486 +#: utils/mmgr/portalmem.c:487 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "удалить активный портал \"%s\" нельзя" -#: utils/mmgr/portalmem.c:731 +#: utils/mmgr/portalmem.c:738 #, c-format msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD" msgstr "нельзя выполнить PREPARE для транзакции, создавшей курсор WITH HOLD" -#: utils/mmgr/portalmem.c:1270 +#: utils/mmgr/portalmem.c:1279 #, c-format msgid "" "cannot perform transaction commands inside a cursor loop that is not read-" @@ -30016,22 +30182,22 @@ "не удалось прочитать файл общего временного хранилища кортежей (прочитано " "байт: %zu из %zu)" -#: utils/sort/tuplesort.c:3140 +#: utils/sort/tuplesort.c:3142 #, c-format msgid "cannot have more than %d runs for an external sort" msgstr "число потоков данных для внешней сортировки не может превышать %d" -#: utils/sort/tuplesort.c:4221 +#: utils/sort/tuplesort.c:4223 #, c-format msgid "could not create unique index \"%s\"" msgstr "создать уникальный индекс \"%s\" не удалось" -#: utils/sort/tuplesort.c:4223 +#: utils/sort/tuplesort.c:4225 #, c-format msgid "Key %s is duplicated." msgstr "Ключ %s дублируется." -#: utils/sort/tuplesort.c:4224 +#: utils/sort/tuplesort.c:4226 #, c-format msgid "Duplicate keys exist." msgstr "Данные содержат дублирующиеся ключи." @@ -30054,32 +30220,32 @@ "не удалось прочитать временный файл хранилища кортежей (прочитано байт: %zu " "из %zu)" -#: utils/time/snapmgr.c:624 +#: utils/time/snapmgr.c:626 #, c-format msgid "The source transaction is not running anymore." msgstr "Исходная транзакция уже не выполняется." -#: utils/time/snapmgr.c:1232 +#: utils/time/snapmgr.c:1249 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "экспортировать снимок из вложенной транзакции нельзя" -#: utils/time/snapmgr.c:1391 utils/time/snapmgr.c:1396 -#: utils/time/snapmgr.c:1401 utils/time/snapmgr.c:1416 -#: utils/time/snapmgr.c:1421 utils/time/snapmgr.c:1426 -#: utils/time/snapmgr.c:1441 utils/time/snapmgr.c:1446 -#: utils/time/snapmgr.c:1451 utils/time/snapmgr.c:1553 -#: utils/time/snapmgr.c:1569 utils/time/snapmgr.c:1594 +#: utils/time/snapmgr.c:1408 utils/time/snapmgr.c:1413 +#: utils/time/snapmgr.c:1418 utils/time/snapmgr.c:1433 +#: utils/time/snapmgr.c:1438 utils/time/snapmgr.c:1443 +#: utils/time/snapmgr.c:1458 utils/time/snapmgr.c:1463 +#: utils/time/snapmgr.c:1468 utils/time/snapmgr.c:1570 +#: utils/time/snapmgr.c:1586 utils/time/snapmgr.c:1611 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "неверные данные снимка в файле \"%s\"" -#: utils/time/snapmgr.c:1488 +#: utils/time/snapmgr.c:1505 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "команда SET TRANSACTION SNAPSHOT должна выполняться до запросов" -#: utils/time/snapmgr.c:1497 +#: utils/time/snapmgr.c:1514 #, c-format msgid "" "a snapshot-importing transaction must have isolation level SERIALIZABLE or " @@ -30088,12 +30254,12 @@ "транзакция, импортирующая снимок, должна иметь уровень изоляции SERIALIZABLE " "или REPEATABLE READ" -#: utils/time/snapmgr.c:1506 utils/time/snapmgr.c:1515 +#: utils/time/snapmgr.c:1523 utils/time/snapmgr.c:1532 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "неверный идентификатор снимка: \"%s\"" -#: utils/time/snapmgr.c:1607 +#: utils/time/snapmgr.c:1624 #, c-format msgid "" "a serializable transaction cannot import a snapshot from a non-serializable " @@ -30101,7 +30267,7 @@ msgstr "" "сериализуемая транзакция не может импортировать снимок из не сериализуемой" -#: utils/time/snapmgr.c:1611 +#: utils/time/snapmgr.c:1628 #, c-format msgid "" "a non-read-only serializable transaction cannot import a snapshot from a " @@ -30110,7 +30276,7 @@ "сериализуемая транзакция в режиме \"чтение-запись\" не может импортировать " "снимок из транзакции в режиме \"только чтение\"" -#: utils/time/snapmgr.c:1626 +#: utils/time/snapmgr.c:1643 #, c-format msgid "cannot import a snapshot from a different database" msgstr "нельзя импортировать снимок из другой базы данных" @@ -30426,35 +30592,35 @@ msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "WITH TIES нельзя задать без предложения ORDER BY" -#: gram.y:16173 +#: gram.y:16188 #, c-format msgid "multiple WITH clauses not allowed" msgstr "WITH можно указать только один раз" -#: gram.y:16377 +#: gram.y:16392 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "в табличных функциях не может быть аргументов OUT и INOUT" -#: gram.y:16473 +#: gram.y:16488 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "COLLATE можно указать только один раз" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:16511 gram.y:16524 +#: gram.y:16526 gram.y:16539 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "ограничения %s не могут иметь характеристики DEFERRABLE" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:16537 +#: gram.y:16552 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "ограничения %s не могут иметь характеристики NOT VALID" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:16550 +#: gram.y:16565 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "ограничения %s не могут иметь характеристики NO INHERIT" @@ -30464,24 +30630,24 @@ msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %u" msgstr "нераспознанный параметр конфигурации \"%s\" в файле \"%s\", строке %u" -#: guc-file.l:388 +#: guc-file.l:390 #, c-format msgid "parameter \"%s\" removed from configuration file, reset to default" msgstr "" "параметр \"%s\" удалён из файла конфигурации, он принимает значение по " "умолчанию" -#: guc-file.l:454 +#: guc-file.l:456 #, c-format msgid "parameter \"%s\" changed to \"%s\"" msgstr "параметр \"%s\" принял значение \"%s\"" -#: guc-file.l:496 +#: guc-file.l:498 #, c-format msgid "configuration file \"%s\" contains errors" msgstr "файл конфигурации \"%s\" содержит ошибки" -#: guc-file.l:501 +#: guc-file.l:503 #, c-format msgid "" "configuration file \"%s\" contains errors; unaffected changes were applied" @@ -30489,56 +30655,56 @@ "файл конфигурации \"%s\" содержит ошибки; были применены не зависимые " "изменения" -#: guc-file.l:506 +#: guc-file.l:508 #, c-format msgid "configuration file \"%s\" contains errors; no changes were applied" msgstr "файл конфигурации \"%s\" содержит ошибки; изменения не были применены" -#: guc-file.l:578 +#: guc-file.l:580 #, c-format msgid "empty configuration file name: \"%s\"" msgstr "пустое имя файла конфигурации: \"%s\"" -#: guc-file.l:595 +#: guc-file.l:597 #, c-format msgid "" "could not open configuration file \"%s\": maximum nesting depth exceeded" msgstr "" "открыть файл конфигурации \"%s\" не удалось: превышен предел вложенности" -#: guc-file.l:615 +#: guc-file.l:617 #, c-format msgid "configuration file recursion in \"%s\"" msgstr "рекурсивная вложенность файла конфигурации в \"%s\"" -#: guc-file.l:642 +#: guc-file.l:644 #, c-format msgid "skipping missing configuration file \"%s\"" msgstr "отсутствующий файл конфигурации \"%s\" пропускается" -#: guc-file.l:896 +#: guc-file.l:898 #, c-format msgid "syntax error in file \"%s\" line %u, near end of line" msgstr "ошибка синтаксиса в файле \"%s\", в конце строки %u" -#: guc-file.l:906 +#: guc-file.l:908 #, c-format msgid "syntax error in file \"%s\" line %u, near token \"%s\"" msgstr "ошибка синтаксиса в файле \"%s\", в строке %u, рядом с \"%s\"" -#: guc-file.l:926 +#: guc-file.l:928 #, c-format msgid "too many syntax errors found, abandoning file \"%s\"" msgstr "" "обнаружено слишком много синтаксических ошибок, обработка файла \"%s\" " "прекращается" -#: guc-file.l:981 +#: guc-file.l:983 #, c-format msgid "empty configuration directory name: \"%s\"" msgstr "пустое имя каталога конфигурации: \"%s\"" -#: guc-file.l:1000 +#: guc-file.l:1002 #, c-format msgid "could not open configuration directory \"%s\": %m" msgstr "открыть каталог конфигурации \"%s\" не удалось: %m" @@ -30566,16 +30732,16 @@ msgid "%s at or near \"%s\" of jsonpath input" msgstr "%s в строке jsonpath (примерное положение: \"%s\")" -#: repl_gram.y:349 repl_gram.y:381 +#: repl_gram.y:345 repl_gram.y:377 #, c-format msgid "invalid timeline %u" msgstr "неверная линия времени %u" -#: repl_scanner.l:131 +#: repl_scanner.l:150 msgid "invalid streaming start location" msgstr "неверная позиция начала потока" -#: repl_scanner.l:182 scan.l:717 +#: repl_scanner.l:206 scan.l:717 msgid "unterminated quoted string" msgstr "незавершённая строка в кавычках" @@ -30630,7 +30796,7 @@ #: scan.l:762 msgid "unterminated dollar-quoted string" -msgstr "незавершённая спецстрока с $" +msgstr "незавершённая строка с $" #: scan.l:779 scan.l:789 msgid "zero-length delimited identifier" @@ -30690,6 +30856,25 @@ msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "Используйте для записи спецсимволов синтаксис спецстрок E'\\r\\n'." +#~ msgid "modulus for hash partition must be a positive integer" +#~ msgstr "модуль для хеш-секции должен быть положительным целым" + +#~ msgid "distance in phrase operator should not be greater than %d" +#~ msgstr "дистанция во фразовом операторе должна быть не больше %d" + +#~ msgid "role \"%s\" could not be removed from policy \"%s\" on \"%s\"" +#~ msgstr "роль \"%s\" нельзя удалить из политики \"%s\" отношения \"%s\"" + +#~ msgid "distance in phrase operator should be non-negative and less than %d" +#~ msgstr "" +#~ "дистанция во фразовом операторе должна быть неотрицательной и меньше %d" + +#~ msgid "" +#~ "For RAID arrays, this should be approximately the number of drive " +#~ "spindles in the array." +#~ msgstr "" +#~ "Для RAID-массивов это примерно равно числу физических дисков в массиве." + #~ msgid "" #~ "moving row to another partition during a BEFORE trigger is not supported" #~ msgstr "в триггере BEFORE нельзя перемещать строку в другую секцию" diff -Nru postgresql-13-13.4/src/backend/po/sv.po postgresql-13-13.7/src/backend/po/sv.po --- postgresql-13-13.4/src/backend/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,28 +1,30 @@ # Swedish message translation file for postgresql -# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022. # -# Många av termerna är tekniska termer som refererar till begrepp i SQL-satser och liknande. Om man -# översätter vissa av dessa så kommer det bli väldigt svårt för användaren att förstå vad vi menar. -# För många av dessa har jag valt att behålla det engelska ordet som ett begrepp. Det är en svår +# Många av termerna är tekniska termer som refererar till begrepp i SQL-satser +# och liknande. Om man översätter vissa av dessa så kommer det bli väldigt +# svårt för användaren att förstå vad vi menar. För många av dessa har jag +# valt att behålla det engelska ordet som ett begrepp. Det är en svår # balansgång. # -# T.ex. ett integritetsvillkor som deklarerats med flaggan DEFERRABLE har jag i text som -# tar upp det lämnat kvar begreppet deferrable. T.ex: +# T.ex. ett integritetsvillkor som deklarerats med flaggan DEFERRABLE har jag +# i text som tar upp det lämnat kvar begreppet deferrable. T.ex: # # att ange deferrable för integritetsvillkor stöds inte för domäner # -# På många ställen är det svårt att avgöra. Ta t.ex. integer som ibland refererar till typen integer och -# ibland refererar mer allmänt till heltal. +# På många ställen är det svårt att avgöra. Ta t.ex. integer som ibland +# refererar till typen integer och ibland refererar mer allmänt till heltal. # -# Andra exempel är att i engelskan används cleanup och vacuum på olika ställen nedan. Jag har valt att -# behålla vacuum på svenska för att göra tydligt att det är kommandon VACUUM och den processen det +# Andra exempel är att i engelskan används cleanup och vacuum på olika +# ställen nedan. Jag har valt att i vissa fall behålla vacuum på svenska +# för att göra tydligt att det är kommandon VACUUM och den processen det # hänvisas till och inte någon annan städning. msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-10-20 16:43+0000\n" -"PO-Revision-Date: 2020-10-20 19:40+0200\n" +"POT-Creation-Date: 2022-04-21 22:43+0000\n" +"PO-Revision-Date: 2022-04-23 12:15+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -39,59 +41,59 @@ msgstr "ej sparad" #: ../common/controldata_utils.c:68 ../common/controldata_utils.c:73 -#: commands/copy.c:3495 commands/extension.c:3436 utils/adt/genfile.c:125 +#: commands/copy.c:3496 commands/extension.c:3444 utils/adt/genfile.c:125 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "kunde inte öppna filen \"%s\" för läsning: %m" #: ../common/controldata_utils.c:86 ../common/controldata_utils.c:89 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1276 access/transam/xlog.c:3503 -#: access/transam/xlog.c:4728 access/transam/xlog.c:11121 -#: access/transam/xlog.c:11134 access/transam/xlog.c:11587 -#: access/transam/xlog.c:11667 access/transam/xlog.c:11706 -#: access/transam/xlog.c:11749 access/transam/xlogfuncs.c:662 -#: access/transam/xlogfuncs.c:681 commands/extension.c:3446 libpq/hba.c:499 +#: access/transam/twophase.c:1334 access/transam/xlog.c:3525 +#: access/transam/xlog.c:4763 access/transam/xlog.c:11297 +#: access/transam/xlog.c:11310 access/transam/xlog.c:11763 +#: access/transam/xlog.c:11843 access/transam/xlog.c:11882 +#: access/transam/xlog.c:11925 access/transam/xlogfuncs.c:662 +#: access/transam/xlogfuncs.c:681 commands/extension.c:3454 libpq/hba.c:499 #: replication/logical/origin.c:717 replication/logical/origin.c:753 -#: replication/logical/reorderbuffer.c:3599 -#: replication/logical/snapbuild.c:1741 replication/logical/snapbuild.c:1783 -#: replication/logical/snapbuild.c:1811 replication/logical/snapbuild.c:1838 -#: replication/slot.c:1622 replication/slot.c:1663 replication/walsender.c:543 +#: replication/logical/reorderbuffer.c:3633 +#: replication/logical/snapbuild.c:1760 replication/logical/snapbuild.c:1802 +#: replication/logical/snapbuild.c:1830 replication/logical/snapbuild.c:1857 +#: replication/slot.c:1709 replication/slot.c:1750 replication/walsender.c:547 #: storage/file/buffile.c:441 storage/file/copydir.c:195 -#: utils/adt/genfile.c:200 utils/adt/misc.c:763 utils/cache/relmapper.c:741 +#: utils/adt/genfile.c:200 utils/adt/misc.c:763 utils/cache/relmapper.c:744 #, c-format msgid "could not read file \"%s\": %m" msgstr "kunde inte läsa fil \"%s\": %m" #: ../common/controldata_utils.c:97 ../common/controldata_utils.c:101 -#: access/transam/twophase.c:1279 access/transam/xlog.c:3508 -#: access/transam/xlog.c:4733 replication/logical/origin.c:722 -#: replication/logical/origin.c:761 replication/logical/snapbuild.c:1746 -#: replication/logical/snapbuild.c:1788 replication/logical/snapbuild.c:1816 -#: replication/logical/snapbuild.c:1843 replication/slot.c:1626 -#: replication/slot.c:1667 replication/walsender.c:548 -#: utils/cache/relmapper.c:745 +#: access/transam/twophase.c:1337 access/transam/xlog.c:3530 +#: access/transam/xlog.c:4768 replication/logical/origin.c:722 +#: replication/logical/origin.c:761 replication/logical/snapbuild.c:1765 +#: replication/logical/snapbuild.c:1807 replication/logical/snapbuild.c:1835 +#: replication/logical/snapbuild.c:1862 replication/slot.c:1713 +#: replication/slot.c:1754 replication/walsender.c:552 +#: utils/cache/relmapper.c:748 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "kunde inte läsa fil \"%s\": läste %d av %zu" #: ../common/controldata_utils.c:112 ../common/controldata_utils.c:117 #: ../common/controldata_utils.c:256 ../common/controldata_utils.c:259 -#: access/heap/rewriteheap.c:1181 access/heap/rewriteheap.c:1284 +#: access/heap/rewriteheap.c:1185 access/heap/rewriteheap.c:1288 #: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:516 access/transam/twophase.c:1288 -#: access/transam/twophase.c:1676 access/transam/xlog.c:3375 -#: access/transam/xlog.c:3543 access/transam/xlog.c:3548 -#: access/transam/xlog.c:3876 access/transam/xlog.c:4698 -#: access/transam/xlog.c:5622 access/transam/xlogfuncs.c:687 -#: commands/copy.c:1810 libpq/be-fsstubs.c:462 libpq/be-fsstubs.c:533 +#: access/transam/timeline.c:516 access/transam/twophase.c:1346 +#: access/transam/twophase.c:1757 access/transam/xlog.c:3397 +#: access/transam/xlog.c:3565 access/transam/xlog.c:3570 +#: access/transam/xlog.c:3898 access/transam/xlog.c:4733 +#: access/transam/xlog.c:5657 access/transam/xlogfuncs.c:687 +#: commands/copy.c:1810 libpq/be-fsstubs.c:455 libpq/be-fsstubs.c:525 #: replication/logical/origin.c:655 replication/logical/origin.c:794 -#: replication/logical/reorderbuffer.c:3657 -#: replication/logical/snapbuild.c:1653 replication/logical/snapbuild.c:1851 -#: replication/slot.c:1513 replication/slot.c:1674 replication/walsender.c:558 +#: replication/logical/reorderbuffer.c:3691 +#: replication/logical/snapbuild.c:1669 replication/logical/snapbuild.c:1870 +#: replication/slot.c:1600 replication/slot.c:1761 replication/walsender.c:562 #: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:704 -#: storage/file/fd.c:3425 storage/file/fd.c:3528 utils/cache/relmapper.c:753 -#: utils/cache/relmapper.c:892 +#: storage/file/fd.c:3439 storage/file/fd.c:3542 utils/cache/relmapper.c:759 +#: utils/cache/relmapper.c:898 #, c-format msgid "could not close file \"%s\": %m" msgstr "kunde inte stänga fil \"%s\": %m" @@ -115,51 +117,51 @@ #: ../common/controldata_utils.c:197 ../common/controldata_utils.c:203 #: ../common/file_utils.c:224 ../common/file_utils.c:283 -#: ../common/file_utils.c:357 access/heap/rewriteheap.c:1267 +#: ../common/file_utils.c:357 access/heap/rewriteheap.c:1271 #: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1232 -#: access/transam/xlog.c:3277 access/transam/xlog.c:3417 -#: access/transam/xlog.c:3458 access/transam/xlog.c:3656 -#: access/transam/xlog.c:3741 access/transam/xlog.c:3844 -#: access/transam/xlog.c:4718 access/transam/xlogutils.c:807 +#: access/transam/timeline.c:348 access/transam/twophase.c:1290 +#: access/transam/xlog.c:3299 access/transam/xlog.c:3439 +#: access/transam/xlog.c:3480 access/transam/xlog.c:3678 +#: access/transam/xlog.c:3763 access/transam/xlog.c:3866 +#: access/transam/xlog.c:4753 access/transam/xlogutils.c:807 #: postmaster/syslogger.c:1488 replication/basebackup.c:621 #: replication/basebackup.c:1593 replication/logical/origin.c:707 -#: replication/logical/reorderbuffer.c:2465 -#: replication/logical/reorderbuffer.c:2825 -#: replication/logical/reorderbuffer.c:3579 -#: replication/logical/snapbuild.c:1608 replication/logical/snapbuild.c:1712 -#: replication/slot.c:1594 replication/walsender.c:516 -#: replication/walsender.c:2517 storage/file/copydir.c:161 -#: storage/file/fd.c:679 storage/file/fd.c:3412 storage/file/fd.c:3499 -#: storage/smgr/md.c:475 utils/cache/relmapper.c:724 -#: utils/cache/relmapper.c:836 utils/error/elog.c:1858 -#: utils/init/miscinit.c:1316 utils/init/miscinit.c:1450 -#: utils/init/miscinit.c:1527 utils/misc/guc.c:8280 utils/misc/guc.c:8312 +#: replication/logical/reorderbuffer.c:2486 +#: replication/logical/reorderbuffer.c:2848 +#: replication/logical/reorderbuffer.c:3613 +#: replication/logical/snapbuild.c:1624 replication/logical/snapbuild.c:1731 +#: replication/slot.c:1681 replication/walsender.c:520 +#: replication/walsender.c:2524 storage/file/copydir.c:161 +#: storage/file/fd.c:679 storage/file/fd.c:3426 storage/file/fd.c:3513 +#: storage/smgr/md.c:514 utils/cache/relmapper.c:724 +#: utils/cache/relmapper.c:842 utils/error/elog.c:1858 +#: utils/init/miscinit.c:1315 utils/init/miscinit.c:1449 +#: utils/init/miscinit.c:1526 utils/misc/guc.c:8280 utils/misc/guc.c:8312 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" #: ../common/controldata_utils.c:221 ../common/controldata_utils.c:224 -#: access/transam/twophase.c:1649 access/transam/twophase.c:1658 -#: access/transam/xlog.c:10878 access/transam/xlog.c:10916 -#: access/transam/xlog.c:11329 access/transam/xlogfuncs.c:741 +#: access/transam/twophase.c:1730 access/transam/twophase.c:1739 +#: access/transam/xlog.c:11054 access/transam/xlog.c:11092 +#: access/transam/xlog.c:11505 access/transam/xlogfuncs.c:741 #: postmaster/syslogger.c:1499 postmaster/syslogger.c:1512 -#: utils/cache/relmapper.c:870 +#: utils/cache/relmapper.c:876 #, c-format msgid "could not write file \"%s\": %m" msgstr "kunde inte skriva fil \"%s\": %m" #: ../common/controldata_utils.c:239 ../common/controldata_utils.c:245 #: ../common/file_utils.c:295 ../common/file_utils.c:365 -#: access/heap/rewriteheap.c:961 access/heap/rewriteheap.c:1175 -#: access/heap/rewriteheap.c:1278 access/transam/timeline.c:432 -#: access/transam/timeline.c:510 access/transam/twophase.c:1670 -#: access/transam/xlog.c:3368 access/transam/xlog.c:3537 -#: access/transam/xlog.c:4691 access/transam/xlog.c:10386 -#: access/transam/xlog.c:10413 replication/logical/snapbuild.c:1646 -#: replication/slot.c:1499 replication/slot.c:1604 storage/file/fd.c:696 -#: storage/file/fd.c:3520 storage/smgr/md.c:921 storage/smgr/md.c:962 -#: storage/sync/sync.c:396 utils/cache/relmapper.c:885 utils/misc/guc.c:8063 +#: access/heap/rewriteheap.c:965 access/heap/rewriteheap.c:1179 +#: access/heap/rewriteheap.c:1282 access/transam/timeline.c:432 +#: access/transam/timeline.c:510 access/transam/twophase.c:1751 +#: access/transam/xlog.c:3390 access/transam/xlog.c:3559 +#: access/transam/xlog.c:4726 access/transam/xlog.c:10562 +#: access/transam/xlog.c:10589 replication/logical/snapbuild.c:1662 +#: replication/slot.c:1586 replication/slot.c:1691 storage/file/fd.c:696 +#: storage/file/fd.c:3534 storage/smgr/md.c:960 storage/smgr/md.c:1001 +#: storage/sync/sync.c:433 utils/cache/relmapper.c:891 utils/misc/guc.c:8063 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "kunde inte fsync:a fil \"%s\": %m" @@ -184,12 +186,12 @@ msgid "could not find a \"%s\" to execute" msgstr "kunde inte hitta en \"%s\" att köra" -#: ../common/exec.c:270 ../common/exec.c:309 utils/init/miscinit.c:395 +#: ../common/exec.c:270 ../common/exec.c:309 utils/init/miscinit.c:394 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "kunde inte byta katalog till \"%s\": %m" -#: ../common/exec.c:287 access/transam/xlog.c:10750 +#: ../common/exec.c:287 access/transam/xlog.c:10926 #: replication/basebackup.c:1418 utils/adt/misc.c:337 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -202,20 +204,19 @@ #: ../common/exec.c:539 ../common/exec.c:584 ../common/exec.c:676 #: ../common/psprintf.c:143 ../common/stringinfo.c:305 ../port/path.c:630 -#: ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1341 -#: access/transam/xlog.c:6493 lib/dshash.c:246 libpq/auth.c:1090 -#: libpq/auth.c:1491 libpq/auth.c:1559 libpq/auth.c:2089 -#: libpq/be-secure-gssapi.c:484 postmaster/bgworker.c:336 -#: postmaster/bgworker.c:893 postmaster/postmaster.c:2518 -#: postmaster/postmaster.c:2540 postmaster/postmaster.c:4166 -#: postmaster/postmaster.c:4868 postmaster/postmaster.c:4938 -#: postmaster/postmaster.c:5635 postmaster/postmaster.c:5995 -#: replication/libpqwalreceiver/libpqwalreceiver.c:276 -#: replication/logical/logical.c:176 replication/walsender.c:590 -#: storage/buffer/localbuf.c:442 storage/file/fd.c:834 storage/file/fd.c:1304 -#: storage/file/fd.c:1465 storage/file/fd.c:2270 storage/ipc/procarray.c:1045 -#: storage/ipc/procarray.c:1541 storage/ipc/procarray.c:1548 -#: storage/ipc/procarray.c:1972 storage/ipc/procarray.c:2597 +#: ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1404 +#: access/transam/xlog.c:6531 lib/dshash.c:246 libpq/auth.c:1478 +#: libpq/auth.c:1546 libpq/auth.c:2076 libpq/be-secure-gssapi.c:520 +#: postmaster/bgworker.c:349 postmaster/bgworker.c:963 +#: postmaster/postmaster.c:2543 postmaster/postmaster.c:4180 +#: postmaster/postmaster.c:4882 postmaster/postmaster.c:5639 +#: postmaster/postmaster.c:5999 +#: replication/libpqwalreceiver/libpqwalreceiver.c:282 +#: replication/logical/logical.c:176 replication/walsender.c:594 +#: storage/buffer/localbuf.c:442 storage/file/fd.c:848 storage/file/fd.c:1318 +#: storage/file/fd.c:1479 storage/file/fd.c:2284 storage/ipc/procarray.c:1063 +#: storage/ipc/procarray.c:1559 storage/ipc/procarray.c:1566 +#: storage/ipc/procarray.c:2002 storage/ipc/procarray.c:2680 #: utils/adt/cryptohashes.c:45 utils/adt/cryptohashes.c:65 #: utils/adt/formatting.c:1700 utils/adt/formatting.c:1824 #: utils/adt/formatting.c:1949 utils/adt/pg_locale.c:484 @@ -249,38 +250,38 @@ msgstr "kan inte duplicera null-pekare (internt fel)\n" #: ../common/file_utils.c:79 ../common/file_utils.c:181 -#: access/transam/twophase.c:1244 access/transam/xlog.c:10854 -#: access/transam/xlog.c:10892 access/transam/xlog.c:11109 +#: access/transam/twophase.c:1302 access/transam/xlog.c:11030 +#: access/transam/xlog.c:11068 access/transam/xlog.c:11285 #: access/transam/xlogarchive.c:110 access/transam/xlogarchive.c:226 -#: commands/copy.c:1938 commands/copy.c:3505 commands/extension.c:3425 -#: commands/tablespace.c:795 commands/tablespace.c:886 guc-file.l:1061 +#: commands/copy.c:1938 commands/copy.c:3506 commands/extension.c:3433 +#: commands/tablespace.c:803 commands/tablespace.c:894 guc-file.l:1063 #: replication/basebackup.c:444 replication/basebackup.c:627 -#: replication/basebackup.c:700 replication/logical/snapbuild.c:1522 -#: storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1816 -#: storage/file/fd.c:3096 storage/file/fd.c:3278 storage/file/fd.c:3364 +#: replication/basebackup.c:700 replication/logical/snapbuild.c:1538 +#: storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1830 +#: storage/file/fd.c:3110 storage/file/fd.c:3292 storage/file/fd.c:3378 #: utils/adt/dbsize.c:70 utils/adt/dbsize.c:222 utils/adt/dbsize.c:302 #: utils/adt/genfile.c:416 utils/adt/genfile.c:642 #, c-format msgid "could not stat file \"%s\": %m" msgstr "kunde inte göra stat() på fil \"%s\": %m" -#: ../common/file_utils.c:158 ../common/pgfnames.c:48 commands/tablespace.c:718 -#: commands/tablespace.c:728 postmaster/postmaster.c:1509 -#: storage/file/fd.c:2673 storage/file/reinit.c:122 utils/adt/misc.c:259 +#: ../common/file_utils.c:158 ../common/pgfnames.c:48 commands/tablespace.c:726 +#: commands/tablespace.c:736 postmaster/postmaster.c:1509 +#: storage/file/fd.c:2687 storage/file/reinit.c:122 utils/adt/misc.c:259 #: utils/misc/tzparser.c:338 #, c-format msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: ../common/file_utils.c:192 ../common/pgfnames.c:69 storage/file/fd.c:2685 +#: ../common/file_utils.c:192 ../common/pgfnames.c:69 storage/file/fd.c:2699 #, c-format msgid "could not read directory \"%s\": %m" msgstr "kunde inte läsa katalog \"%s\": %m" #: ../common/file_utils.c:375 access/transam/xlogarchive.c:411 -#: postmaster/syslogger.c:1523 replication/logical/snapbuild.c:1665 -#: replication/slot.c:650 replication/slot.c:1385 replication/slot.c:1527 -#: storage/file/fd.c:714 utils/time/snapmgr.c:1350 +#: postmaster/syslogger.c:1523 replication/logical/snapbuild.c:1681 +#: replication/slot.c:650 replication/slot.c:1472 replication/slot.c:1614 +#: storage/file/fd.c:714 storage/file/fd.c:812 utils/time/snapmgr.c:1367 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" @@ -398,7 +399,7 @@ msgid "Valid fork names are \"main\", \"fsm\", \"vm\", and \"init\"." msgstr "Giltiga fork-värden är \"main\", \"fsm\", \"vm\" och \"init\"." -#: ../common/restricted_token.c:64 libpq/auth.c:1521 libpq/auth.c:2520 +#: ../common/restricted_token.c:64 libpq/auth.c:1508 libpq/auth.c:2507 #, c-format msgid "could not load library \"%s\": error code %lu" msgstr "kunde inte ladda länkbibliotek \"%s\": felkod %lu" @@ -475,7 +476,7 @@ msgid "could not look up effective user ID %ld: %s" msgstr "kunde inte slå upp effektivt användar-id %ld: %s" -#: ../common/username.c:45 libpq/auth.c:2027 +#: ../common/username.c:45 libpq/auth.c:2014 msgid "user does not exist" msgstr "användaren finns inte" @@ -598,7 +599,7 @@ msgstr "förfrågan efter BRIN-intervallsummering för index \"%s\" sida %u har inte spelats in" #: access/brin/brin.c:873 access/brin/brin.c:950 access/gin/ginfast.c:1035 -#: access/transam/xlog.c:10522 access/transam/xlog.c:11060 +#: access/transam/xlog.c:10698 access/transam/xlog.c:11236 #: access/transam/xlogfuncs.c:274 access/transam/xlogfuncs.c:301 #: access/transam/xlogfuncs.c:340 access/transam/xlogfuncs.c:361 #: access/transam/xlogfuncs.c:382 access/transam/xlogfuncs.c:452 @@ -629,7 +630,8 @@ #: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 #: access/brin/brin_pageops.c:843 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1435 access/spgist/spgdoinsert.c:1957 +#: access/gist/gist.c:1438 access/spgist/spgdoinsert.c:1962 +#: access/spgist/spgdoinsert.c:2230 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "indexradstorlek %zu överstiger maximum %zu för index \"%s\"" @@ -742,7 +744,7 @@ msgid "index row requires %zu bytes, maximum size is %zu" msgstr "indexrad kräver %zu byte, maximal storlek är %zu" -#: access/common/printtup.c:369 tcop/fastpath.c:180 tcop/fastpath.c:530 +#: access/common/printtup.c:369 tcop/fastpath.c:180 tcop/fastpath.c:536 #: tcop/postgres.c:1904 #, c-format msgid "unsupported format code: %d" @@ -771,7 +773,7 @@ msgid "unrecognized parameter namespace \"%s\"" msgstr "okänd parameternamnrymd \"%s\"" -#: access/common/reloptions.c:1277 utils/misc/guc.c:12032 +#: access/common/reloptions.c:1277 utils/misc/guc.c:12056 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "tabeller deklarerade med WITH OIDS stöds inte" @@ -822,7 +824,7 @@ msgstr "ogiltigt värde för enum-flagga \"%s\": %s" #: access/common/tupdesc.c:842 parser/parse_clause.c:772 -#: parser/parse_relation.c:1803 +#: parser/parse_relation.c:1800 #, c-format msgid "column \"%s\" cannot be declared SETOF" msgstr "kolumn \"%s\" kan inte deklareras som SETOF" @@ -867,8 +869,8 @@ msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "För att fixa detta, kör REINDEX INDEX \"%s\"." -#: access/gin/ginutil.c:144 executor/execExpr.c:1862 -#: utils/adt/arrayfuncs.c:3790 utils/adt/arrayfuncs.c:6418 +#: access/gin/ginutil.c:144 executor/execExpr.c:1900 +#: utils/adt/arrayfuncs.c:3792 utils/adt/arrayfuncs.c:6426 #: utils/adt/rowtypes.c:936 #, c-format msgid "could not identify a comparison function for type %s" @@ -885,21 +887,21 @@ msgid "operator class \"%s\" of access method %s is missing support function %d or %d" msgstr "operatorklass \"%s\" för accessmetod \"%s\" saknar supportfunktion %d eller %d" -#: access/gist/gist.c:753 access/gist/gistvacuum.c:408 +#: access/gist/gist.c:756 access/gist/gistvacuum.c:408 #, c-format msgid "index \"%s\" contains an inner tuple marked as invalid" msgstr "index \"%s\" innehåller en inre tupel som är markerad ogiltig" -#: access/gist/gist.c:755 access/gist/gistvacuum.c:410 +#: access/gist/gist.c:758 access/gist/gistvacuum.c:410 #, c-format msgid "This is caused by an incomplete page split at crash recovery before upgrading to PostgreSQL 9.1." msgstr "Detta orsakas av en inkomplett siduppdelning under krashåterställning körd innan uppdatering till PostgreSQL 9.1." -#: access/gist/gist.c:756 access/gist/gistutil.c:786 access/gist/gistutil.c:797 +#: access/gist/gist.c:759 access/gist/gistutil.c:786 access/gist/gistutil.c:797 #: access/gist/gistvacuum.c:411 access/hash/hashutil.c:227 #: access/hash/hashutil.c:238 access/hash/hashutil.c:250 -#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:741 -#: access/nbtree/nbtpage.c:752 +#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:739 +#: access/nbtree/nbtpage.c:750 #, c-format msgid "Please REINDEX it." msgstr "Var vänlig och kör REINDEX på det." @@ -915,13 +917,13 @@ msgstr "Indexet är inte optimalt. För att optimera det, kontakta en utvecklare eller försök använda kolumnen som det andra värdet i CREATE INDEX-kommandot." #: access/gist/gistutil.c:783 access/hash/hashutil.c:224 -#: access/nbtree/nbtpage.c:738 +#: access/nbtree/nbtpage.c:736 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "index \"%s\" innehåller en oväntad nollställd sida vid block %u" #: access/gist/gistutil.c:794 access/hash/hashutil.c:235 -#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:749 +#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:747 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "index \"%s\" har en trasig sida vid block %u" @@ -936,20 +938,20 @@ msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s" msgstr "operatorfamiljen \"%s\" för accessmetod %s innehåller en inkorrekt ORDER BY \"opfamiily\"-specifikation för operator %s" -#: access/hash/hashfunc.c:255 access/hash/hashfunc.c:311 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 #: utils/adt/varchar.c:993 utils/adt/varchar.c:1053 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "kunde inte bestämma vilken jämförelse (collation) som skall användas för sträng-hashning" -#: access/hash/hashfunc.c:256 access/hash/hashfunc.c:312 catalog/heap.c:702 -#: catalog/heap.c:708 commands/createas.c:206 commands/createas.c:489 -#: commands/indexcmds.c:1814 commands/tablecmds.c:16035 commands/view.c:86 -#: parser/parse_utilcmd.c:4203 regex/regc_pg_locale.c:263 +#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:335 catalog/heap.c:711 +#: catalog/heap.c:717 commands/createas.c:206 commands/createas.c:489 +#: commands/indexcmds.c:1816 commands/tablecmds.c:16358 commands/view.c:86 +#: parser/parse_utilcmd.c:4239 regex/regc_pg_locale.c:263 #: utils/adt/formatting.c:1667 utils/adt/formatting.c:1791 #: utils/adt/formatting.c:1916 utils/adt/like.c:194 #: utils/adt/like_support.c:1003 utils/adt/varchar.c:733 -#: utils/adt/varchar.c:994 utils/adt/varchar.c:1054 utils/adt/varlena.c:1476 +#: utils/adt/varchar.c:994 utils/adt/varchar.c:1054 utils/adt/varlena.c:1486 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "Använd en COLLATE-klausul för att sätta jämförelsen explicit." @@ -959,8 +961,8 @@ msgid "index row size %zu exceeds hash maximum %zu" msgstr "indexradstorlek %zu överstiger hash-maximum %zu" -#: access/hash/hashinsert.c:84 access/spgist/spgdoinsert.c:1961 -#: access/spgist/spgutils.c:764 +#: access/hash/hashinsert.c:84 access/spgist/spgdoinsert.c:1966 +#: access/spgist/spgdoinsert.c:2234 access/spgist/spgutils.c:764 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "Värden större än en buffert-sida kan inte indexeras." @@ -1000,33 +1002,33 @@ msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "operatorfamilj \"%s\" för accessmetod %s saknar mellan-typ-operator(er)" -#: access/heap/heapam.c:2024 +#: access/heap/heapam.c:2068 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "kan inte lägga till tupler i en parellell arbetare" -#: access/heap/heapam.c:2442 +#: access/heap/heapam.c:2486 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "kan inte radera tupler under en parallell operation" -#: access/heap/heapam.c:2488 +#: access/heap/heapam.c:2532 #, c-format msgid "attempted to delete invisible tuple" msgstr "försökte ta bort en osynlig tuple" -#: access/heap/heapam.c:2914 access/heap/heapam.c:5703 +#: access/heap/heapam.c:2963 access/heap/heapam.c:5822 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "kan inte uppdatera tupler under en parallell operation" -#: access/heap/heapam.c:3047 +#: access/heap/heapam.c:3104 #, c-format msgid "attempted to update invisible tuple" msgstr "försökte uppdatera en osynlig tuple" -#: access/heap/heapam.c:4358 access/heap/heapam.c:4396 -#: access/heap/heapam.c:4653 access/heap/heapam_handler.c:450 +#: access/heap/heapam.c:4468 access/heap/heapam.c:4506 +#: access/heap/heapam.c:4772 access/heap/heapam_handler.c:455 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "kunde inte låsa rad i relationen \"%s\"" @@ -1036,58 +1038,58 @@ msgid "tuple to be locked was already moved to another partition due to concurrent update" msgstr "tupel som skall låsas har redan flyttats till en annan partition av en samtida uppdatering" -#: access/heap/hio.c:345 access/heap/rewriteheap.c:662 +#: access/heap/hio.c:349 access/heap/rewriteheap.c:666 #, c-format msgid "row is too big: size %zu, maximum size %zu" msgstr "raden är för stor: storlek %zu, maximal storlek %zu" -#: access/heap/rewriteheap.c:921 +#: access/heap/rewriteheap.c:925 #, c-format msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "kunde inte skriva till fil \"%s\", skrev %d av %d: %m." -#: access/heap/rewriteheap.c:1015 access/heap/rewriteheap.c:1134 +#: access/heap/rewriteheap.c:1019 access/heap/rewriteheap.c:1138 #: access/transam/timeline.c:329 access/transam/timeline.c:485 -#: access/transam/xlog.c:3300 access/transam/xlog.c:3472 -#: access/transam/xlog.c:4670 access/transam/xlog.c:10869 -#: access/transam/xlog.c:10907 access/transam/xlog.c:11312 -#: access/transam/xlogfuncs.c:735 postmaster/postmaster.c:4629 -#: replication/logical/origin.c:575 replication/slot.c:1446 -#: storage/file/copydir.c:167 storage/smgr/md.c:218 utils/time/snapmgr.c:1329 +#: access/transam/xlog.c:3322 access/transam/xlog.c:3494 +#: access/transam/xlog.c:4705 access/transam/xlog.c:11045 +#: access/transam/xlog.c:11083 access/transam/xlog.c:11488 +#: access/transam/xlogfuncs.c:735 postmaster/postmaster.c:4643 +#: replication/logical/origin.c:575 replication/slot.c:1533 +#: storage/file/copydir.c:167 storage/smgr/md.c:218 utils/time/snapmgr.c:1346 #, c-format msgid "could not create file \"%s\": %m" msgstr "kan inte skapa fil \"%s\": %m" -#: access/heap/rewriteheap.c:1144 +#: access/heap/rewriteheap.c:1148 #, c-format msgid "could not truncate file \"%s\" to %u: %m" msgstr "kunde inte trunkera fil \"%s\" till %u: %m" -#: access/heap/rewriteheap.c:1162 access/transam/timeline.c:384 +#: access/heap/rewriteheap.c:1166 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:502 -#: access/transam/xlog.c:3356 access/transam/xlog.c:3528 -#: access/transam/xlog.c:4682 postmaster/postmaster.c:4639 -#: postmaster/postmaster.c:4649 replication/logical/origin.c:587 +#: access/transam/xlog.c:3378 access/transam/xlog.c:3550 +#: access/transam/xlog.c:4717 postmaster/postmaster.c:4653 +#: postmaster/postmaster.c:4663 replication/logical/origin.c:587 #: replication/logical/origin.c:629 replication/logical/origin.c:648 -#: replication/logical/snapbuild.c:1622 replication/slot.c:1481 +#: replication/logical/snapbuild.c:1638 replication/slot.c:1568 #: storage/file/buffile.c:502 storage/file/copydir.c:207 -#: utils/init/miscinit.c:1391 utils/init/miscinit.c:1402 -#: utils/init/miscinit.c:1410 utils/misc/guc.c:8024 utils/misc/guc.c:8055 -#: utils/misc/guc.c:9975 utils/misc/guc.c:9989 utils/time/snapmgr.c:1334 -#: utils/time/snapmgr.c:1341 +#: utils/init/miscinit.c:1390 utils/init/miscinit.c:1401 +#: utils/init/miscinit.c:1409 utils/misc/guc.c:8024 utils/misc/guc.c:8055 +#: utils/misc/guc.c:9975 utils/misc/guc.c:9989 utils/time/snapmgr.c:1351 +#: utils/time/snapmgr.c:1358 #, c-format msgid "could not write to file \"%s\": %m" msgstr "kunde inte skriva till fil \"%s\": %m" -#: access/heap/rewriteheap.c:1252 access/transam/twophase.c:1609 +#: access/heap/rewriteheap.c:1256 access/transam/twophase.c:1690 #: access/transam/xlogarchive.c:118 access/transam/xlogarchive.c:421 #: postmaster/postmaster.c:1092 postmaster/syslogger.c:1465 -#: replication/logical/origin.c:563 replication/logical/reorderbuffer.c:3079 -#: replication/logical/snapbuild.c:1564 replication/logical/snapbuild.c:2006 -#: replication/slot.c:1578 storage/file/fd.c:754 storage/file/fd.c:3116 -#: storage/file/fd.c:3178 storage/file/reinit.c:255 storage/ipc/dsm.c:302 -#: storage/smgr/md.c:311 storage/smgr/md.c:367 storage/sync/sync.c:210 -#: utils/time/snapmgr.c:1674 +#: replication/logical/origin.c:563 replication/logical/reorderbuffer.c:3104 +#: replication/logical/snapbuild.c:1580 replication/logical/snapbuild.c:2025 +#: replication/slot.c:1665 storage/file/fd.c:754 storage/file/fd.c:3130 +#: storage/file/fd.c:3192 storage/file/reinit.c:255 storage/ipc/dsm.c:302 +#: storage/smgr/md.c:355 storage/smgr/md.c:405 storage/sync/sync.c:229 +#: utils/time/snapmgr.c:1691 #, c-format msgid "could not remove file \"%s\": %m" msgstr "kunde inte ta bort fil \"%s\": %m" @@ -1157,66 +1159,66 @@ msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel" msgstr "stänger av parallell-flaggan för vacuumn på \"%s\" --- kan inte köra vacuum på temporära tabeller parallellt" -#: access/heap/vacuumlazy.c:1725 +#: access/heap/vacuumlazy.c:1726 #, c-format msgid "\"%s\": removed %.0f row versions in %u pages" msgstr "\"%s\": tog bort %.0f radversioner i %u sidor" -#: access/heap/vacuumlazy.c:1735 +#: access/heap/vacuumlazy.c:1736 #, c-format msgid "%.0f dead row versions cannot be removed yet, oldest xmin: %u\n" msgstr "%.0f döda radversioner kan inte tas bort än, äldsta xmin: %u\n" -#: access/heap/vacuumlazy.c:1737 +#: access/heap/vacuumlazy.c:1738 #, c-format msgid "There were %.0f unused item identifiers.\n" msgstr "Det fanns %.0f oanvända post-identifierare.\n" -#: access/heap/vacuumlazy.c:1739 +#: access/heap/vacuumlazy.c:1740 #, c-format msgid "Skipped %u page due to buffer pins, " msgid_plural "Skipped %u pages due to buffer pins, " msgstr[0] "Hoppade över %u sida på grund av fastnålade buffrar, " msgstr[1] "Hoppade över %u sidor på grund av fastnålade buffrar, " -#: access/heap/vacuumlazy.c:1743 +#: access/heap/vacuumlazy.c:1744 #, c-format msgid "%u frozen page.\n" msgid_plural "%u frozen pages.\n" msgstr[0] "%u fryst sida.\n" msgstr[1] "%u frysta sidor.\n" -#: access/heap/vacuumlazy.c:1747 +#: access/heap/vacuumlazy.c:1748 #, c-format msgid "%u page is entirely empty.\n" msgid_plural "%u pages are entirely empty.\n" msgstr[0] "%u sida är helt tom.\n" msgstr[1] "%u sidor är helt tomma.\n" -#: access/heap/vacuumlazy.c:1751 commands/indexcmds.c:3487 -#: commands/indexcmds.c:3505 +#: access/heap/vacuumlazy.c:1752 commands/indexcmds.c:3490 +#: commands/indexcmds.c:3508 #, c-format msgid "%s." msgstr "%s." -#: access/heap/vacuumlazy.c:1754 +#: access/heap/vacuumlazy.c:1755 #, c-format msgid "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u out of %u pages" msgstr "\"%s\": hittade %.0f borttagbara, %.0f ej borttagbara radversioner i %u av %u sidor" -#: access/heap/vacuumlazy.c:1888 +#: access/heap/vacuumlazy.c:1889 #, c-format msgid "\"%s\": removed %d row versions in %d pages" msgstr "\"%s\": tog bort %d radversioner i %d sidor" -#: access/heap/vacuumlazy.c:2143 +#: access/heap/vacuumlazy.c:2144 #, c-format msgid "launched %d parallel vacuum worker for index cleanup (planned: %d)" msgid_plural "launched %d parallel vacuum workers for index cleanup (planned: %d)" msgstr[0] "startade %d parallell städarbetare för indexupprensning (planerat: %d)" msgstr[1] "startade %d parallella städarbetare för indexupprensning (planerat: %d)" -#: access/heap/vacuumlazy.c:2149 +#: access/heap/vacuumlazy.c:2150 #, c-format msgid "launched %d parallel vacuum worker for index vacuuming (planned: %d)" msgid_plural "launched %d parallel vacuum workers for index vacuuming (planned: %d)" @@ -1225,25 +1227,15 @@ #: access/heap/vacuumlazy.c:2441 #, c-format -msgid "scanned index \"%s\" to remove %d row versions by parallel vacuum worker" -msgstr "genomsökte index \"%s\" och tog bort %d radversioner med parallell vacuum-arbetsprocess" - -#: access/heap/vacuumlazy.c:2443 -#, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "genomsökte index \"%s\" och tog bort %d radversioner" -#: access/heap/vacuumlazy.c:2501 -#, c-format -msgid "index \"%s\" now contains %.0f row versions in %u pages as reported by parallel vacuum worker" -msgstr "index \"%s\" innehåller nu %.0f radversioner i %u sidor enligt raoport från parallell vacuum-arbetsprocess" - -#: access/heap/vacuumlazy.c:2503 +#: access/heap/vacuumlazy.c:2495 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "index \"%s\" innehåller nu %.0f radversioner i %u sidor" -#: access/heap/vacuumlazy.c:2510 +#: access/heap/vacuumlazy.c:2499 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -1254,52 +1246,52 @@ "%u indexsidor har raderats, %u är nu återanvändningsbara.\n" "%s." -#: access/heap/vacuumlazy.c:2613 +#: access/heap/vacuumlazy.c:2602 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\": stoppar trunkering pga konfliktande låskrav" -#: access/heap/vacuumlazy.c:2679 +#: access/heap/vacuumlazy.c:2668 #, c-format msgid "\"%s\": truncated %u to %u pages" msgstr "\"%s\": trunkerade %u till %u sidor" -#: access/heap/vacuumlazy.c:2744 +#: access/heap/vacuumlazy.c:2733 #, c-format msgid "\"%s\": suspending truncate due to conflicting lock request" msgstr "\"%s\": pausar trunkering pga konfliktande låskrav" -#: access/heap/vacuumlazy.c:3583 +#: access/heap/vacuumlazy.c:3592 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "vid skanning av block %u i relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3586 +#: access/heap/vacuumlazy.c:3595 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "vid skanning av relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3592 +#: access/heap/vacuumlazy.c:3601 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "vid vacuum av block %u i relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3595 +#: access/heap/vacuumlazy.c:3604 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "vid vacuum av relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3600 +#: access/heap/vacuumlazy.c:3609 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "vid vaccum av index \"%s\" i relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3605 +#: access/heap/vacuumlazy.c:3614 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "vid uppstädning av index \"%s\" i relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3611 +#: access/heap/vacuumlazy.c:3620 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "vid trunkering av relation \"%s.%s\" till %u block" @@ -1315,8 +1307,8 @@ msgstr "indexaccessmetod \"%s\" har ingen hanterare" #: access/index/indexam.c:142 catalog/objectaddress.c:1260 -#: commands/indexcmds.c:2516 commands/tablecmds.c:254 commands/tablecmds.c:278 -#: commands/tablecmds.c:15733 commands/tablecmds.c:17188 +#: commands/indexcmds.c:2518 commands/tablecmds.c:254 commands/tablecmds.c:278 +#: commands/tablecmds.c:16056 commands/tablecmds.c:17546 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" är inte ett index" @@ -1341,23 +1333,23 @@ msgid "This may be because of a non-immutable index expression." msgstr "Det kan bero på ett icke-immutable indexuttryck." -#: access/nbtree/nbtpage.c:150 access/nbtree/nbtpage.c:538 -#: parser/parse_utilcmd.c:2244 +#: access/nbtree/nbtpage.c:150 access/nbtree/nbtpage.c:536 +#: parser/parse_utilcmd.c:2278 #, c-format msgid "index \"%s\" is not a btree" msgstr "index \"%s\" är inte ett btree" -#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:545 +#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:543 #, c-format msgid "version mismatch in index \"%s\": file version %d, current version %d, minimal supported version %d" msgstr "versionsfel i index \"%s\": filversion %d, aktuell version %d, minsta supportade version %d" -#: access/nbtree/nbtpage.c:1501 +#: access/nbtree/nbtpage.c:1499 #, c-format msgid "index \"%s\" contains a half-dead internal page" msgstr "index \"%s\" innehåller en halvdöd intern sida" -#: access/nbtree/nbtpage.c:1503 +#: access/nbtree/nbtpage.c:1501 #, c-format msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it." msgstr "Detta kan ha orsakats av en avbruten VACUUM i version 9.3 eller äldre, innan uppdatering. Vänligen REINDEX:era det." @@ -1403,13 +1395,13 @@ msgstr "operatorfamilj \"%s\" för accessmetod %s saknar supportfunktion %d för typ %s" #: access/table/table.c:49 access/table/table.c:78 access/table/table.c:111 -#: catalog/aclchk.c:1806 +#: catalog/aclchk.c:1809 #, c-format msgid "\"%s\" is an index" msgstr "\"%s\" är ett index" #: access/table/table.c:54 access/table/table.c:83 access/table/table.c:116 -#: catalog/aclchk.c:1813 commands/tablecmds.c:12554 commands/tablecmds.c:15742 +#: catalog/aclchk.c:1816 commands/tablecmds.c:12807 commands/tablecmds.c:16065 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" är en composite-typ" @@ -1424,7 +1416,7 @@ msgid "%s cannot be empty." msgstr "%s får inte vara tom." -#: access/table/tableamapi.c:122 utils/misc/guc.c:11956 +#: access/table/tableamapi.c:122 utils/misc/guc.c:11980 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "%s är för lång (maximalt %d tecken)." @@ -1444,22 +1436,22 @@ msgid "sample percentage must be between 0 and 100" msgstr "urvalsprocent måste vara mellan 0 och 100" -#: access/transam/commit_ts.c:295 +#: access/transam/commit_ts.c:297 #, c-format msgid "cannot retrieve commit timestamp for transaction %u" msgstr "kan inte hämta commit-tidsstämpel för transaktion %u" -#: access/transam/commit_ts.c:393 +#: access/transam/commit_ts.c:395 #, c-format msgid "could not get commit timestamp data" msgstr "kunde inte hämta commit-tidsstämpeldata" -#: access/transam/commit_ts.c:395 +#: access/transam/commit_ts.c:397 #, c-format msgid "Make sure the configuration parameter \"%s\" is set on the master server." msgstr "Se till att konfigurationsparametern \"%s\" är satt på master-servern." -#: access/transam/commit_ts.c:397 +#: access/transam/commit_ts.c:399 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Se till att konfigurationsparametern \"%s\" är satt." @@ -1484,14 +1476,14 @@ msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" msgstr "databasen tar inte emot kommandon som genererar nya MultiXactId:er för att förhinda dataförlust vid \"wraparound\" i databasen med OID %u" -#: access/transam/multixact.c:1030 access/transam/multixact.c:2320 +#: access/transam/multixact.c:1030 access/transam/multixact.c:2325 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "database \"%s\" must be vacuumed before %u more MultiXactIds are used" msgstr[0] "databasen \"%s\" måste städas innan ytterligare %u MultiXactId används" msgstr[1] "databasen \"%s\" måste städas innan ytterligare %u MultiXactId:er används" -#: access/transam/multixact.c:1039 access/transam/multixact.c:2329 +#: access/transam/multixact.c:1039 access/transam/multixact.c:2334 #, c-format msgid "database with OID %u must be vacuumed before %u more MultiXactId is used" msgid_plural "database with OID %u must be vacuumed before %u more MultiXactIds are used" @@ -1527,7 +1519,7 @@ msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Kör en hela-databas-VACUUM i den databasen med reducerade inställningar för vacuum_multixact_freeze_min_age och vacuum_multixact_freeze_table_age." -#: access/transam/multixact.c:1279 +#: access/transam/multixact.c:1281 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u finns inte längre -- troligen en wraparound" @@ -1537,12 +1529,12 @@ msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u har inte skapats än -- troligen en wraparound" -#: access/transam/multixact.c:2270 +#: access/transam/multixact.c:2275 #, c-format msgid "MultiXactId wrap limit is %u, limited by database with OID %u" msgstr "MultiXactId wrap-gräns är %u, begränsad av databasen med OID %u" -#: access/transam/multixact.c:2325 access/transam/multixact.c:2334 +#: access/transam/multixact.c:2330 access/transam/multixact.c:2339 #: access/transam/varsup.c:149 access/transam/varsup.c:156 #: access/transam/varsup.c:447 access/transam/varsup.c:454 #, c-format @@ -1553,71 +1545,71 @@ "För att undvika att databasen stängs ner, utför en hela databas-VACCUM i den databasen.\n" "Du kan också behöva commit:a eller rulla tillbaka gamla förberedda transaktioner eller slänga gamla replikeringsslottar." -#: access/transam/multixact.c:2604 +#: access/transam/multixact.c:2609 #, c-format msgid "oldest MultiXactId member is at offset %u" msgstr "äldsta MultiXactId-medlemmen är vid offset %u" -#: access/transam/multixact.c:2608 +#: access/transam/multixact.c:2613 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "MultiXact-medlems wraparound-skydd är avslagen eftersom äldsta checkpoint:ade MultiXact %u inte finns på disk" -#: access/transam/multixact.c:2630 +#: access/transam/multixact.c:2635 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "MultiXact-medlems wraparound-skydd är nu påslagen" -#: access/transam/multixact.c:2633 +#: access/transam/multixact.c:2638 #, c-format msgid "MultiXact member stop limit is now %u based on MultiXact %u" msgstr "MultiXact-medlems stoppgräns är nu %u baserad på MultiXact %u" -#: access/transam/multixact.c:3013 +#: access/transam/multixact.c:3026 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "äldsta MultiXact %u hittas inte, tidigast MultiXact %u, skippar trunkering" -#: access/transam/multixact.c:3031 +#: access/transam/multixact.c:3044 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "kan inte trunkera upp till %u eftersom den inte finns på disk, skippar trunkering" -#: access/transam/multixact.c:3345 +#: access/transam/multixact.c:3358 #, c-format msgid "invalid MultiXactId: %u" msgstr "ogiltig MultiXactId: %u" -#: access/transam/parallel.c:706 access/transam/parallel.c:825 +#: access/transam/parallel.c:717 access/transam/parallel.c:836 #, c-format msgid "parallel worker failed to initialize" msgstr "parallell arbetare misslyckades med initiering" -#: access/transam/parallel.c:707 access/transam/parallel.c:826 +#: access/transam/parallel.c:718 access/transam/parallel.c:837 #, c-format msgid "More details may be available in the server log." msgstr "Fler detaljer kan finnas i serverloggen." -#: access/transam/parallel.c:887 +#: access/transam/parallel.c:898 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster avslutade under en parallell transaktion" -#: access/transam/parallel.c:1074 +#: access/transam/parallel.c:1085 #, c-format msgid "lost connection to parallel worker" msgstr "tappad kopplingen till parallell arbetare" -#: access/transam/parallel.c:1140 access/transam/parallel.c:1142 +#: access/transam/parallel.c:1151 access/transam/parallel.c:1153 msgid "parallel worker" msgstr "parallell arbetare" -#: access/transam/parallel.c:1293 +#: access/transam/parallel.c:1306 #, c-format msgid "could not map dynamic shared memory segment" msgstr "kunde inte skapa dynamiskt delat minnessegment: %m" -#: access/transam/parallel.c:1298 +#: access/transam/parallel.c:1311 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "ogiltigt magiskt nummer i dynamiskt delat minnessegment" @@ -1675,12 +1667,12 @@ msgid "Could not close file \"%s\": %m." msgstr "Kunde inte stänga fil \"%s\": %m." -#: access/transam/slru.c:1258 +#: access/transam/slru.c:1251 #, c-format msgid "could not truncate directory \"%s\": apparent wraparound" msgstr "Kunde inte trunkera katalog \"%s\": trolig wraparound" -#: access/transam/slru.c:1313 access/transam/slru.c:1369 +#: access/transam/slru.c:1309 access/transam/slru.c:1365 #, c-format msgid "removing file \"%s\"" msgstr "tar bort fil \"%s\"" @@ -1745,136 +1737,141 @@ msgid "transaction identifier \"%s\" is already in use" msgstr "transaktionsidentifierare \"%s\" används redan" -#: access/transam/twophase.c:417 access/transam/twophase.c:2368 +#: access/transam/twophase.c:417 access/transam/twophase.c:2450 #, c-format msgid "maximum number of prepared transactions reached" msgstr "maximalt antal förberedda transaktioner har uppnåtts" -#: access/transam/twophase.c:418 access/transam/twophase.c:2369 +#: access/transam/twophase.c:418 access/transam/twophase.c:2451 #, c-format msgid "Increase max_prepared_transactions (currently %d)." msgstr "Öka max_prepared_transactions (nu %d)." -#: access/transam/twophase.c:586 +#: access/transam/twophase.c:597 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "förberedd transaktion med identifierare \"%s\" är upptagen" -#: access/transam/twophase.c:592 +#: access/transam/twophase.c:603 #, c-format msgid "permission denied to finish prepared transaction" msgstr "rättighet saknas för att slutföra förberedd transaktion" -#: access/transam/twophase.c:593 +#: access/transam/twophase.c:604 #, c-format msgid "Must be superuser or the user that prepared the transaction." -msgstr "Måste vara superanvändare eller den användare som förberedde transaktionen" +msgstr "Måste vara superuser eller den användare som förberedde transaktionen" -#: access/transam/twophase.c:604 +#: access/transam/twophase.c:615 #, c-format msgid "prepared transaction belongs to another database" msgstr "förberedda transaktionen tillhör en annan databas" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:616 #, c-format msgid "Connect to the database where the transaction was prepared to finish it." msgstr "Anslut till databasen där transaktionen var förberedd för att slutföra den." -#: access/transam/twophase.c:620 +#: access/transam/twophase.c:631 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "förberedd transaktion med identifierare \"%s\" finns inte" -#: access/transam/twophase.c:1098 +#: access/transam/twophase.c:1155 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "tvåfas-statusfilens maximala längd överskriden" -#: access/transam/twophase.c:1252 +#: access/transam/twophase.c:1310 #, c-format msgid "incorrect size of file \"%s\": %zu byte" msgid_plural "incorrect size of file \"%s\": %zu bytes" msgstr[0] "felaktig storlek på fil \"%s\": %zu byte" msgstr[1] "felaktig storlek på fil \"%s\": %zu byte" -#: access/transam/twophase.c:1261 +#: access/transam/twophase.c:1319 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "inkorrekt justering (alignment) av CRC-offset för fil \"%s\"" -#: access/transam/twophase.c:1294 +#: access/transam/twophase.c:1352 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "felaktigt magiskt nummer lagrat i fil \"%s\"" -#: access/transam/twophase.c:1300 +#: access/transam/twophase.c:1358 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "felaktig storlek lagrad i fil \"%s\"" -#: access/transam/twophase.c:1312 +#: access/transam/twophase.c:1370 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "beräknad CRC-checksumma matchar inte värdet som är lagrat i filen \"%s\"" -#: access/transam/twophase.c:1342 access/transam/xlog.c:6494 +#: access/transam/twophase.c:1405 access/transam/xlog.c:6532 #, c-format msgid "Failed while allocating a WAL reading processor." -msgstr "Millslyckades vid allokering av en WAL-läs-processor." +msgstr "Misslyckades vid allokering av en WAL-läs-processor." + +#: access/transam/twophase.c:1422 +#, c-format +msgid "could not read two-phase state from WAL at %X/%X: %s" +msgstr "kunde inte läsa tvåfas-status från WAL vid %X/%X: %s" -#: access/transam/twophase.c:1349 +#: access/transam/twophase.c:1429 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "kunde inte läsa tvåfas-status från WAL vid %X/%X" -#: access/transam/twophase.c:1357 +#: access/transam/twophase.c:1438 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "förväntad tvåfas-statusdata finns inte i WAL vid %X/%X" -#: access/transam/twophase.c:1637 +#: access/transam/twophase.c:1718 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "kan inte återskapa fil \"%s\": %m" -#: access/transam/twophase.c:1764 +#: access/transam/twophase.c:1845 #, c-format msgid "%u two-phase state file was written for a long-running prepared transaction" msgid_plural "%u two-phase state files were written for long-running prepared transactions" msgstr[0] "%u tvåfas-statusfil skrevs för långkörande förberedd transkation" msgstr[1] "%u tvåfas-statusfiler skrevs för långkörande förberedda transaktioner" -#: access/transam/twophase.c:1998 +#: access/transam/twophase.c:2079 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "återskapar förberedd transaktion %u från delat minne" -#: access/transam/twophase.c:2089 +#: access/transam/twophase.c:2170 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "tar bort död tvåfas-statusfil för transaktioon %u" -#: access/transam/twophase.c:2096 +#: access/transam/twophase.c:2177 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "tar bort död tvåfas-statusfil från minne för transaktion %u" -#: access/transam/twophase.c:2109 +#: access/transam/twophase.c:2190 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "tar bort framtida tvåfas-statusfil för transaktion %u" -#: access/transam/twophase.c:2116 +#: access/transam/twophase.c:2197 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "tar bort framtida tvåfas-statusfil från minne för transaktion %u" -#: access/transam/twophase.c:2141 +#: access/transam/twophase.c:2222 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "korrupt tvåfas-statusfil för transaktion %u" -#: access/transam/twophase.c:2146 +#: access/transam/twophase.c:2227 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "korrupt tvåfas-status i minnet för transaktion %u" @@ -1913,546 +1910,546 @@ msgid "transaction ID wrap limit is %u, limited by database with OID %u" msgstr "transaktions-ID wrap-gräns är %u, begränsad av databas med OID %u" -#: access/transam/xact.c:1030 +#: access/transam/xact.c:1031 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "kan inte ha mer än 2^32-2 kommandon i en transaktion" -#: access/transam/xact.c:1555 +#: access/transam/xact.c:1557 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "maximalt antal commit:ade undertransaktioner (%d) överskridet" -#: access/transam/xact.c:2395 +#: access/transam/xact.c:2408 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "kan inte göra PREPARE på en transaktion som har arbetat med temporära objekt" -#: access/transam/xact.c:2405 +#: access/transam/xact.c:2418 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "kan inte göra PREPARE på en transaktion som har exporterade snapshots" -#: access/transam/xact.c:2414 +#: access/transam/xact.c:2427 #, c-format msgid "cannot PREPARE a transaction that has manipulated logical replication workers" msgstr "kan inte göra PREPARE på en transaktion som har förändrat logiska replikeringsarbetare" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3359 +#: access/transam/xact.c:3388 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s kan inte köras i ett transaktionsblock" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3369 +#: access/transam/xact.c:3398 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s kan inte köras i ett undertransaktionsblock" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3379 +#: access/transam/xact.c:3408 #, c-format msgid "%s cannot be executed from a function" msgstr "%s kan inte köras från en funktion" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3448 access/transam/xact.c:3754 -#: access/transam/xact.c:3833 access/transam/xact.c:3956 -#: access/transam/xact.c:4107 access/transam/xact.c:4176 -#: access/transam/xact.c:4287 +#: access/transam/xact.c:3477 access/transam/xact.c:3783 +#: access/transam/xact.c:3862 access/transam/xact.c:3985 +#: access/transam/xact.c:4136 access/transam/xact.c:4205 +#: access/transam/xact.c:4316 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s kan bara användas i transaktionsblock" -#: access/transam/xact.c:3640 +#: access/transam/xact.c:3669 #, c-format msgid "there is already a transaction in progress" msgstr "det är redan en transaktion igång" -#: access/transam/xact.c:3759 access/transam/xact.c:3838 -#: access/transam/xact.c:3961 +#: access/transam/xact.c:3788 access/transam/xact.c:3867 +#: access/transam/xact.c:3990 #, c-format msgid "there is no transaction in progress" msgstr "ingen transaktion pågår" -#: access/transam/xact.c:3849 +#: access/transam/xact.c:3878 #, c-format msgid "cannot commit during a parallel operation" msgstr "kan inte commit:a under en parallell operation" -#: access/transam/xact.c:3972 +#: access/transam/xact.c:4001 #, c-format msgid "cannot abort during a parallel operation" msgstr "can inte avbryta under en parallell operation" -#: access/transam/xact.c:4071 +#: access/transam/xact.c:4100 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "kan inte definiera sparpunkter under en parallell operation" -#: access/transam/xact.c:4158 +#: access/transam/xact.c:4187 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "kan inte frigöra en sparpunkt under en parallell operation" -#: access/transam/xact.c:4168 access/transam/xact.c:4219 -#: access/transam/xact.c:4279 access/transam/xact.c:4328 +#: access/transam/xact.c:4197 access/transam/xact.c:4248 +#: access/transam/xact.c:4308 access/transam/xact.c:4357 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "sparpunkt \"%s\" existerar inte" -#: access/transam/xact.c:4225 access/transam/xact.c:4334 +#: access/transam/xact.c:4254 access/transam/xact.c:4363 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "sparpunkt \"%s\" finns inte inom aktuell sparpunktsnivå" -#: access/transam/xact.c:4267 +#: access/transam/xact.c:4296 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "kan inte rulla tillbaka till sparpunkt under en parallell operation" -#: access/transam/xact.c:4395 +#: access/transam/xact.c:4424 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "kan inte starta subtransaktioner under en parallell operation" -#: access/transam/xact.c:4463 +#: access/transam/xact.c:4492 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "kan inte commit:a subtransaktioner undert en parallell operation" -#: access/transam/xact.c:5103 +#: access/transam/xact.c:5138 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "kan inte ha mer än 2^32-1 subtransaktioner i en transaktion" -#: access/transam/xlog.c:2554 +#: access/transam/xlog.c:2576 #, c-format msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "kunde inte skriva till loggfil %s vid offset %u, längd %zu: %m" -#: access/transam/xlog.c:2830 +#: access/transam/xlog.c:2852 #, c-format msgid "updated min recovery point to %X/%X on timeline %u" msgstr "updaterade minsta återställningspunkt till %X/%X på tidslinje %u" -#: access/transam/xlog.c:3944 access/transam/xlogutils.c:802 -#: replication/walsender.c:2511 +#: access/transam/xlog.c:3966 access/transam/xlogutils.c:802 +#: replication/walsender.c:2518 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "efterfrågat WAL-segment %s har redan tagits bort" -#: access/transam/xlog.c:4187 +#: access/transam/xlog.c:4209 #, c-format msgid "recycled write-ahead log file \"%s\"" msgstr "återanvände write-ahead-loggfil \"%s\"" -#: access/transam/xlog.c:4199 +#: access/transam/xlog.c:4221 #, c-format msgid "removing write-ahead log file \"%s\"" msgstr "tar bort write-ahead-loggfil \"%s\"" -#: access/transam/xlog.c:4219 +#: access/transam/xlog.c:4241 #, c-format msgid "could not rename file \"%s\": %m" msgstr "kunde inte byta namn på fil \"%s\": %m" -#: access/transam/xlog.c:4261 access/transam/xlog.c:4271 +#: access/transam/xlog.c:4283 access/transam/xlog.c:4293 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "krävd WAL-katalog \"%s\" finns inte" -#: access/transam/xlog.c:4277 +#: access/transam/xlog.c:4299 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "skapar saknad WAL-katalog \"%s\"" -#: access/transam/xlog.c:4280 +#: access/transam/xlog.c:4302 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "kunde inte skapa saknad katalog \"%s\": %m" -#: access/transam/xlog.c:4383 +#: access/transam/xlog.c:4418 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "oväntad tidslinje-ID %u i loggsegment %s, offset %u" -#: access/transam/xlog.c:4521 +#: access/transam/xlog.c:4556 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "ny tidslinje %u är inte ett barn till databasens systemtidslinje %u" -#: access/transam/xlog.c:4535 +#: access/transam/xlog.c:4570 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "ny tidslinje %u skapad från aktuella databasens systemtidslinje %u innan nuvarande återställningspunkt %X/%X" -#: access/transam/xlog.c:4554 +#: access/transam/xlog.c:4589 #, c-format msgid "new target timeline is %u" msgstr "ny måltidslinje är %u" -#: access/transam/xlog.c:4590 +#: access/transam/xlog.c:4625 #, c-format msgid "could not generate secret authorization token" msgstr "kunde inte generera hemligt auktorisationstoken" -#: access/transam/xlog.c:4749 access/transam/xlog.c:4758 -#: access/transam/xlog.c:4782 access/transam/xlog.c:4789 -#: access/transam/xlog.c:4796 access/transam/xlog.c:4801 -#: access/transam/xlog.c:4808 access/transam/xlog.c:4815 -#: access/transam/xlog.c:4822 access/transam/xlog.c:4829 -#: access/transam/xlog.c:4836 access/transam/xlog.c:4843 -#: access/transam/xlog.c:4852 access/transam/xlog.c:4859 -#: utils/init/miscinit.c:1548 +#: access/transam/xlog.c:4784 access/transam/xlog.c:4793 +#: access/transam/xlog.c:4817 access/transam/xlog.c:4824 +#: access/transam/xlog.c:4831 access/transam/xlog.c:4836 +#: access/transam/xlog.c:4843 access/transam/xlog.c:4850 +#: access/transam/xlog.c:4857 access/transam/xlog.c:4864 +#: access/transam/xlog.c:4871 access/transam/xlog.c:4878 +#: access/transam/xlog.c:4887 access/transam/xlog.c:4894 +#: utils/init/miscinit.c:1547 #, c-format msgid "database files are incompatible with server" msgstr "databasfilerna är inkompatibla med servern" -#: access/transam/xlog.c:4750 +#: access/transam/xlog.c:4785 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), but the server was compiled with PG_CONTROL_VERSION %d (0x%08x)." msgstr "Databasklustret initierades med PG_CONTROL_VERSION %d (0x%08x), men servern kompilerades med PG_CONTROL_VERSION %d (0x%08x)." -#: access/transam/xlog.c:4754 +#: access/transam/xlog.c:4789 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "Detta kan orsakas av en felaktig byte-ordning. Du behöver troligen köra initdb." -#: access/transam/xlog.c:4759 +#: access/transam/xlog.c:4794 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "Databasklustret initierades med PG_CONTROL_VERSION %d, men servern kompilerades med PG_CONTROL_VERSION %d." -#: access/transam/xlog.c:4762 access/transam/xlog.c:4786 -#: access/transam/xlog.c:4793 access/transam/xlog.c:4798 +#: access/transam/xlog.c:4797 access/transam/xlog.c:4821 +#: access/transam/xlog.c:4828 access/transam/xlog.c:4833 #, c-format msgid "It looks like you need to initdb." msgstr "Du behöver troligen köra initdb." -#: access/transam/xlog.c:4773 +#: access/transam/xlog.c:4808 #, c-format msgid "incorrect checksum in control file" msgstr "ogiltig kontrollsumma kontrollfil" -#: access/transam/xlog.c:4783 +#: access/transam/xlog.c:4818 #, c-format msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." msgstr "Databasklustret initierades med CATALOG_VERSION_NO %d, men servern kompilerades med CATALOG_VERSION_NO %d." -#: access/transam/xlog.c:4790 +#: access/transam/xlog.c:4825 #, c-format msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." msgstr "Databasklustret initierades med MAXALIGN %d, men servern kompilerades med MAXALIGN %d." -#: access/transam/xlog.c:4797 +#: access/transam/xlog.c:4832 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "Databasklustret verkar använda en annan flyttalsrepresentation än vad serverprogrammet gör." -#: access/transam/xlog.c:4802 +#: access/transam/xlog.c:4837 #, c-format msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." msgstr "Databasklustret initierades med BLCKSZ %d, men servern kompilerades med BLCKSZ %d." -#: access/transam/xlog.c:4805 access/transam/xlog.c:4812 -#: access/transam/xlog.c:4819 access/transam/xlog.c:4826 -#: access/transam/xlog.c:4833 access/transam/xlog.c:4840 -#: access/transam/xlog.c:4847 access/transam/xlog.c:4855 -#: access/transam/xlog.c:4862 +#: access/transam/xlog.c:4840 access/transam/xlog.c:4847 +#: access/transam/xlog.c:4854 access/transam/xlog.c:4861 +#: access/transam/xlog.c:4868 access/transam/xlog.c:4875 +#: access/transam/xlog.c:4882 access/transam/xlog.c:4890 +#: access/transam/xlog.c:4897 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Det verkar som om du måste kompilera om eller köra initdb." -#: access/transam/xlog.c:4809 +#: access/transam/xlog.c:4844 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "Databasklustret initierades med RELSEG_SIZE %d, men servern kompilerades med RELSEG_SIZE %d." -#: access/transam/xlog.c:4816 +#: access/transam/xlog.c:4851 #, c-format msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." msgstr "Databasklustret initierades med XLOG_BLCKSZ %d, men servern kompilerades med XLOG_BLCKSZ %d." -#: access/transam/xlog.c:4823 +#: access/transam/xlog.c:4858 #, c-format msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." msgstr "Databasklustret initierades med NAMEDATALEN %d, men servern kompilerades med NAMEDATALEN %d." -#: access/transam/xlog.c:4830 +#: access/transam/xlog.c:4865 #, c-format msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." msgstr "Databasklustret initierades med INDEX_MAX_KEYS %d, men servern kompilerades med INDEX_MAX_KEYS %d." -#: access/transam/xlog.c:4837 +#: access/transam/xlog.c:4872 #, c-format msgid "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the server was compiled with TOAST_MAX_CHUNK_SIZE %d." msgstr "Databasklustret initierades med TOAST_MAX_CHUNK_SIZE %d, men servern kompilerades med TOAST_MAX_CHUNK_SIZE %d." -#: access/transam/xlog.c:4844 +#: access/transam/xlog.c:4879 #, c-format msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." msgstr "Databasklustret initierades med LOBLKSIZE %d, men servern kompilerades med LOBLKSIZE %d." -#: access/transam/xlog.c:4853 +#: access/transam/xlog.c:4888 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "Databasklustret initierades utan USE_FLOAT8_BYVAL, men servern kompilerades med USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4860 +#: access/transam/xlog.c:4895 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "Databasklustret initierades med USE_FLOAT8_BYVAL, men servern kompilerades utan USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4869 +#: access/transam/xlog.c:4904 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes" msgstr[0] "WAL-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men kontrollfilen anger %d byte" msgstr[1] "WAL-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men kontrollfilen anger %d byte" -#: access/transam/xlog.c:4881 +#: access/transam/xlog.c:4916 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"min_wal_size\" måste vara minst dubbla \"wal_segment_size\"" -#: access/transam/xlog.c:4885 +#: access/transam/xlog.c:4920 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"max_wal_size\" måste vara minst dubbla \"wal_segment_size\"" -#: access/transam/xlog.c:5318 +#: access/transam/xlog.c:5353 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "kunde inte skriva bootstrap-write-ahead-loggfil: %m" -#: access/transam/xlog.c:5326 +#: access/transam/xlog.c:5361 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "kunde inte fsync:a bootstrap-write-ahead-loggfil: %m" -#: access/transam/xlog.c:5332 +#: access/transam/xlog.c:5367 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "kunde inte stänga bootstrap-write-ahead-loggfil: %m" -#: access/transam/xlog.c:5393 +#: access/transam/xlog.c:5428 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "använda återställningskommandofil \"%s\" stöds inte" -#: access/transam/xlog.c:5458 +#: access/transam/xlog.c:5493 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "standby-läge stöd inte av enanvändarservrar" -#: access/transam/xlog.c:5475 +#: access/transam/xlog.c:5510 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "angav varken primary_conninfo eller restore_command" -#: access/transam/xlog.c:5476 +#: access/transam/xlog.c:5511 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "Databasservern kommer med jämna mellanrum att poll:a pg_wal-underkatalogen för att se om filer placerats där." -#: access/transam/xlog.c:5484 +#: access/transam/xlog.c:5519 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "måste ange restore_command när standby-läge inte är påslaget" -#: access/transam/xlog.c:5522 +#: access/transam/xlog.c:5557 #, c-format msgid "recovery target timeline %u does not exist" msgstr "återställningsmåltidslinje %u finns inte" -#: access/transam/xlog.c:5644 +#: access/transam/xlog.c:5679 #, c-format msgid "archive recovery complete" msgstr "arkivåterställning klar" -#: access/transam/xlog.c:5710 access/transam/xlog.c:5983 +#: access/transam/xlog.c:5745 access/transam/xlog.c:6018 #, c-format msgid "recovery stopping after reaching consistency" msgstr "återställning stoppad efter att ha uppnått konsistens" -#: access/transam/xlog.c:5731 +#: access/transam/xlog.c:5766 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "återställning stoppad före WAL-position (LSN) \"%X/%X\"" -#: access/transam/xlog.c:5817 +#: access/transam/xlog.c:5852 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "återställning stoppad före commit av transaktion %u, tid %s" -#: access/transam/xlog.c:5824 +#: access/transam/xlog.c:5859 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "återställning stoppad före abort av transaktion %u, tid %s" -#: access/transam/xlog.c:5877 +#: access/transam/xlog.c:5912 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "återställning stoppad vid återställningspunkt \"%s\", tid %s" -#: access/transam/xlog.c:5895 +#: access/transam/xlog.c:5930 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "återställning stoppad efter WAL-position (LSN) \"%X/%X\"" -#: access/transam/xlog.c:5963 +#: access/transam/xlog.c:5998 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "återställning stoppad efter commit av transaktion %u, tid %s" -#: access/transam/xlog.c:5971 +#: access/transam/xlog.c:6006 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "återställning stoppad efter abort av transaktion %u, tid %s" -#: access/transam/xlog.c:6020 +#: access/transam/xlog.c:6055 #, c-format msgid "pausing at the end of recovery" msgstr "pausar vid slutet av återställning" -#: access/transam/xlog.c:6021 +#: access/transam/xlog.c:6056 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Kör pg_wal_replay_resume() för att befordra." -#: access/transam/xlog.c:6024 +#: access/transam/xlog.c:6059 #, c-format msgid "recovery has paused" msgstr "återställning har pausats" -#: access/transam/xlog.c:6025 +#: access/transam/xlog.c:6060 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Kör pg_wal_replay_resume() för att fortsätta." -#: access/transam/xlog.c:6242 +#: access/transam/xlog.c:6280 #, c-format msgid "hot standby is not possible because %s = %d is a lower setting than on the master server (its value was %d)" msgstr "hot standby är inte möjligt då %s = %d har ett lägre värde än på masterservern (dess värde var %d)" -#: access/transam/xlog.c:6266 +#: access/transam/xlog.c:6304 #, c-format msgid "WAL was generated with wal_level=minimal, data may be missing" msgstr "WAL genererades med wal_level=minimal, data kan saknas" -#: access/transam/xlog.c:6267 +#: access/transam/xlog.c:6305 #, c-format msgid "This happens if you temporarily set wal_level=minimal without taking a new base backup." msgstr "Detta händer om du temporärt sätter wal_level=minimal utan att ta en ny basbackup." -#: access/transam/xlog.c:6278 +#: access/transam/xlog.c:6316 #, c-format msgid "hot standby is not possible because wal_level was not set to \"replica\" or higher on the master server" msgstr "hot standby är inte möjligt då wal_level inte satts till \"replica\" eller högre på masterservern" -#: access/transam/xlog.c:6279 +#: access/transam/xlog.c:6317 #, c-format msgid "Either set wal_level to \"replica\" on the master, or turn off hot_standby here." msgstr "Antingen sätt wal_level till \"replica\" på mastern eller stäng av hot_standby här." -#: access/transam/xlog.c:6341 +#: access/transam/xlog.c:6379 #, c-format msgid "control file contains invalid checkpoint location" msgstr "kontrollfil innehåller ogiltig checkpoint-position" -#: access/transam/xlog.c:6352 +#: access/transam/xlog.c:6390 #, c-format msgid "database system was shut down at %s" msgstr "databassystemet stängdes ner vid %s" -#: access/transam/xlog.c:6358 +#: access/transam/xlog.c:6396 #, c-format msgid "database system was shut down in recovery at %s" msgstr "databassystemet stängdes ner under återställning vid %s" -#: access/transam/xlog.c:6364 +#: access/transam/xlog.c:6402 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "nedstängning av databasen avbröts; senast kända upptidpunkt vid %s" -#: access/transam/xlog.c:6370 +#: access/transam/xlog.c:6408 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "databassystemet avbröts under återställning vid %s" -#: access/transam/xlog.c:6372 +#: access/transam/xlog.c:6410 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "Det betyder troligen att en del data är förstörd och du behöver återställa databasen från den senaste backup:en." -#: access/transam/xlog.c:6378 +#: access/transam/xlog.c:6416 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "databassystemet avbröts under återställning vid loggtid %s" -#: access/transam/xlog.c:6380 +#: access/transam/xlog.c:6418 #, c-format msgid "If this has occurred more than once some data might be corrupted and you might need to choose an earlier recovery target." msgstr "Om detta har hänt mer än en gång så kan data vara korrupt och du kanske måste återställa till ett tidigare återställningsmål." -#: access/transam/xlog.c:6386 +#: access/transam/xlog.c:6424 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "databassystemet avbröts; senast kända upptidpunkt vid %s" -#: access/transam/xlog.c:6392 +#: access/transam/xlog.c:6430 #, c-format msgid "control file contains invalid database cluster state" msgstr "kontrollfil innehåller ogiltigt databasklustertillstånd" -#: access/transam/xlog.c:6449 +#: access/transam/xlog.c:6487 #, c-format msgid "entering standby mode" msgstr "går in i standby-läge" -#: access/transam/xlog.c:6452 +#: access/transam/xlog.c:6490 #, c-format msgid "starting point-in-time recovery to XID %u" msgstr "startar point-in-time-återställning till XID %u" -#: access/transam/xlog.c:6456 +#: access/transam/xlog.c:6494 #, c-format msgid "starting point-in-time recovery to %s" msgstr "startar point-in-time-återställning till %s" -#: access/transam/xlog.c:6460 +#: access/transam/xlog.c:6498 #, c-format msgid "starting point-in-time recovery to \"%s\"" msgstr "startar point-in-time-återställning till \"%s\"" -#: access/transam/xlog.c:6464 +#: access/transam/xlog.c:6502 #, c-format msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" msgstr "startar point-in-time-återställning till WAL-position (LSN) \"%X/%X\"" -#: access/transam/xlog.c:6469 +#: access/transam/xlog.c:6507 #, c-format msgid "starting point-in-time recovery to earliest consistent point" msgstr "startar point-in-time-återställning till tidigast konsistenta punkt" -#: access/transam/xlog.c:6472 +#: access/transam/xlog.c:6510 #, c-format msgid "starting archive recovery" msgstr "Startar arkivåterställning" -#: access/transam/xlog.c:6531 access/transam/xlog.c:6664 +#: access/transam/xlog.c:6569 access/transam/xlog.c:6702 #, c-format msgid "checkpoint record is at %X/%X" msgstr "checkpoint-posten är vid %X/%X" -#: access/transam/xlog.c:6546 +#: access/transam/xlog.c:6584 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "kunde inte hitta redo-position refererad av checkpoint-post" -#: access/transam/xlog.c:6547 access/transam/xlog.c:6557 +#: access/transam/xlog.c:6585 access/transam/xlog.c:6595 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" @@ -2464,278 +2461,283 @@ "bort filen \"%s/backup_label\". Var försiktig: borttagning av \"%s/backup_label\"\n" "kommer resultera i ett trasigt kluster om du återställer från en backup." -#: access/transam/xlog.c:6556 +#: access/transam/xlog.c:6594 #, c-format msgid "could not locate required checkpoint record" msgstr "kunde inte hitta den checkpoint-post som krävs" -#: access/transam/xlog.c:6585 commands/tablespace.c:654 +#: access/transam/xlog.c:6623 commands/tablespace.c:662 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "kan inte skapa symbolisk länk \"%s\": %m" -#: access/transam/xlog.c:6617 access/transam/xlog.c:6623 +#: access/transam/xlog.c:6655 access/transam/xlog.c:6661 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "hoppar över fil \"%s\" då ingen fil \"%s\" finns" -#: access/transam/xlog.c:6619 access/transam/xlog.c:11828 +#: access/transam/xlog.c:6657 access/transam/xlog.c:12004 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Filen \"%s\" döptes om till \"%s\"." -#: access/transam/xlog.c:6625 +#: access/transam/xlog.c:6663 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Kunde inte döpa om fil \"%s\" till \"%s\": %m" -#: access/transam/xlog.c:6676 +#: access/transam/xlog.c:6714 #, c-format msgid "could not locate a valid checkpoint record" msgstr "kunde inte hitta en giltig checkpoint-post" -#: access/transam/xlog.c:6714 +#: access/transam/xlog.c:6752 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "efterfrågad tidslinje %u är inte ett barn till denna servers historik" -#: access/transam/xlog.c:6716 +#: access/transam/xlog.c:6754 #, c-format msgid "Latest checkpoint is at %X/%X on timeline %u, but in the history of the requested timeline, the server forked off from that timeline at %X/%X." msgstr "Senaste checkpoint är vid %X/%X på tidslinje %u, men i historiken för efterfrågad tidslinje så avvek servern från den tidslinjen vid %X/%X." -#: access/transam/xlog.c:6732 +#: access/transam/xlog.c:6770 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "efterfågan tidslinje %u innehåller inte minimal återställningspunkt %X/%X på tidslinje %u" -#: access/transam/xlog.c:6763 +#: access/transam/xlog.c:6801 #, c-format msgid "invalid next transaction ID" msgstr "nästa transaktions-ID ogiltig" -#: access/transam/xlog.c:6857 +#: access/transam/xlog.c:6895 #, c-format msgid "invalid redo in checkpoint record" msgstr "ogiltig redo i checkpoint-post" -#: access/transam/xlog.c:6868 +#: access/transam/xlog.c:6906 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "ogiltig redo-post i nedstängnings-checkpoint" -#: access/transam/xlog.c:6902 +#: access/transam/xlog.c:6946 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "databassystemet stängdes inte ned korrekt; automatisk återställning pågår" -#: access/transam/xlog.c:6906 +#: access/transam/xlog.c:6950 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "krashåterställning startar i tidslinje %u och har måltidslinje %u" -#: access/transam/xlog.c:6953 +#: access/transam/xlog.c:6997 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label innehåller data som inte stämmer med kontrollfil" -#: access/transam/xlog.c:6954 +#: access/transam/xlog.c:6998 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Det betyder att backup:en är trasig och du behöver använda en annan backup för att återställa." -#: access/transam/xlog.c:7045 +#: access/transam/xlog.c:7089 #, c-format msgid "initializing for hot standby" msgstr "initierar för hot standby" -#: access/transam/xlog.c:7178 +#: access/transam/xlog.c:7222 #, c-format msgid "redo starts at %X/%X" msgstr "redo startar vid %X/%X" -#: access/transam/xlog.c:7402 +#: access/transam/xlog.c:7446 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "efterfrågad återställningsstoppunkt är före en konsistent återställningspunkt" -#: access/transam/xlog.c:7440 +#: access/transam/xlog.c:7484 #, c-format msgid "redo done at %X/%X" msgstr "redo gjord vid %X/%X" -#: access/transam/xlog.c:7445 +#: access/transam/xlog.c:7489 #, c-format msgid "last completed transaction was at log time %s" msgstr "senaste kompletta transaktionen var vid loggtid %s" -#: access/transam/xlog.c:7454 +#: access/transam/xlog.c:7498 #, c-format msgid "redo is not required" msgstr "redo behövs inte" -#: access/transam/xlog.c:7466 +#: access/transam/xlog.c:7510 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "återställning avslutades innan det konfigurerade återställningsmålet nåddes" -#: access/transam/xlog.c:7545 access/transam/xlog.c:7549 +#: access/transam/xlog.c:7594 access/transam/xlog.c:7598 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL slutar före sluttiden av online-backup:en" -#: access/transam/xlog.c:7546 +#: access/transam/xlog.c:7595 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "Alla genererade WAL under tiden online-backup:en togs måste vara tillgängliga vid återställning." -#: access/transam/xlog.c:7550 +#: access/transam/xlog.c:7599 #, c-format msgid "Online backup started with pg_start_backup() must be ended with pg_stop_backup(), and all WAL up to that point must be available at recovery." msgstr "Online-backup startad med pg_start_backup() måste avslutas med pg_stop_backup() och alla WAL fram till den punkten måste vara tillgängliga vid återställning." -#: access/transam/xlog.c:7553 +#: access/transam/xlog.c:7602 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL avslutas innan konstistent återställningspunkt" -#: access/transam/xlog.c:7588 +#: access/transam/xlog.c:7637 #, c-format msgid "selected new timeline ID: %u" msgstr "valt nytt tidslinje-ID: %u" -#: access/transam/xlog.c:8036 +#: access/transam/xlog.c:8112 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "konsistent återställningstillstånd uppnått vid %X/%X" -#: access/transam/xlog.c:8246 +#: access/transam/xlog.c:8322 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "ogiltig primär checkpoint-länk i kontrollfil" -#: access/transam/xlog.c:8250 +#: access/transam/xlog.c:8326 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "ogiltig checkpoint-länk i \"backup_label\"-fil" -#: access/transam/xlog.c:8268 +#: access/transam/xlog.c:8344 #, c-format msgid "invalid primary checkpoint record" msgstr "ogiltig primär checkpoint-post" -#: access/transam/xlog.c:8272 +#: access/transam/xlog.c:8348 #, c-format msgid "invalid checkpoint record" msgstr "ogiltig checkpoint-post" -#: access/transam/xlog.c:8283 +#: access/transam/xlog.c:8359 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "ogiltig resurshanterar-ID i primär checkpoint-post" -#: access/transam/xlog.c:8287 +#: access/transam/xlog.c:8363 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "ogiltig resurshanterar-ID i checkpoint-post" -#: access/transam/xlog.c:8300 +#: access/transam/xlog.c:8376 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "ogiltig xl_info i primär checkpoint-post" -#: access/transam/xlog.c:8304 +#: access/transam/xlog.c:8380 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "ogiltig xl_info i checkpoint-post" -#: access/transam/xlog.c:8315 +#: access/transam/xlog.c:8391 #, c-format msgid "invalid length of primary checkpoint record" msgstr "ogiltig längd i primär checkpoint-post" -#: access/transam/xlog.c:8319 +#: access/transam/xlog.c:8395 #, c-format msgid "invalid length of checkpoint record" msgstr "ogiltig längd på checkpoint-post" -#: access/transam/xlog.c:8499 +#: access/transam/xlog.c:8575 #, c-format msgid "shutting down" msgstr "stänger ner" -#: access/transam/xlog.c:8819 +#: access/transam/xlog.c:8882 #, c-format msgid "checkpoint skipped because system is idle" msgstr "checkpoint överhoppad på grund av att systemet är olastat" -#: access/transam/xlog.c:9019 +#: access/transam/xlog.c:9092 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "samtidig write-ahead-logg-aktivitet när databassystemet stängs ner" -#: access/transam/xlog.c:9276 +#: access/transam/xlog.c:9404 #, c-format msgid "skipping restartpoint, recovery has already ended" msgstr "hoppar över omstartpunkt, återställning har redan avslutats" -#: access/transam/xlog.c:9299 +#: access/transam/xlog.c:9427 #, c-format msgid "skipping restartpoint, already performed at %X/%X" msgstr "hoppar över omstartpunkt, redan gjorde vid %X/%X" -#: access/transam/xlog.c:9467 +#: access/transam/xlog.c:9603 #, c-format msgid "recovery restart point at %X/%X" msgstr "återställningens omstartspunkt vid %X/%X" -#: access/transam/xlog.c:9469 +#: access/transam/xlog.c:9605 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Senaste kompletta transaktionen var vid loggtid %s" -#: access/transam/xlog.c:9711 +#: access/transam/xlog.c:9853 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "återställningspunkt \"%s\" skapad vid %X/%X" -#: access/transam/xlog.c:9856 +#: access/transam/xlog.c:9998 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "oväntad föregående tidslinje-ID %u (nuvarande tidslinje-ID %u) i checkpoint-post" -#: access/transam/xlog.c:9865 +#: access/transam/xlog.c:10007 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "oväntad tidslinje-ID %u (efter %u) i checkpoint-post" -#: access/transam/xlog.c:9881 +#: access/transam/xlog.c:10023 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "oväntad tidslinje-ID %u i checkpoint-post, innan vi nått minimal återställningspunkt %X/%X på tidslinje %u" -#: access/transam/xlog.c:9957 +#: access/transam/xlog.c:10099 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "online-backup avbröts, återställning kan inte fortsätta" -#: access/transam/xlog.c:10013 access/transam/xlog.c:10069 -#: access/transam/xlog.c:10092 +#: access/transam/xlog.c:10155 access/transam/xlog.c:10211 +#: access/transam/xlog.c:10241 #, c-format msgid "unexpected timeline ID %u (should be %u) in checkpoint record" msgstr "oväntad tidslinje-ID %u (skall vara %u) i checkpoint-post" -#: access/transam/xlog.c:10418 +#: access/transam/xlog.c:10401 +#, c-format +msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" +msgstr "lyckades hoppa över saknad contrecord vid %X/%X, överskriven vid %s" + +#: access/transam/xlog.c:10594 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "kunde inte fsync:a skriv-igenom-loggfil \"%s\": %m" -#: access/transam/xlog.c:10424 +#: access/transam/xlog.c:10600 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "kunde inte fdatasync:a fil \"%s\": %m" -#: access/transam/xlog.c:10523 access/transam/xlog.c:11061 +#: access/transam/xlog.c:10699 access/transam/xlog.c:11237 #: access/transam/xlogfuncs.c:275 access/transam/xlogfuncs.c:302 #: access/transam/xlogfuncs.c:341 access/transam/xlogfuncs.c:362 #: access/transam/xlogfuncs.c:383 @@ -2743,201 +2745,201 @@ msgid "WAL control functions cannot be executed during recovery." msgstr "WAL-kontrollfunktioner kan inte köras under återställning." -#: access/transam/xlog.c:10532 access/transam/xlog.c:11070 +#: access/transam/xlog.c:10708 access/transam/xlog.c:11246 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "WAL-nivå inte tillräcklig för att kunna skapa en online-backup" -#: access/transam/xlog.c:10533 access/transam/xlog.c:11071 +#: access/transam/xlog.c:10709 access/transam/xlog.c:11247 #: access/transam/xlogfuncs.c:308 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "wal_level måste vara satt till \"replica\" eller \"logical\" vid serverstart." -#: access/transam/xlog.c:10538 +#: access/transam/xlog.c:10714 #, c-format msgid "backup label too long (max %d bytes)" msgstr "backup-etikett för lång (max %d byte)" -#: access/transam/xlog.c:10575 access/transam/xlog.c:10860 -#: access/transam/xlog.c:10898 +#: access/transam/xlog.c:10751 access/transam/xlog.c:11036 +#: access/transam/xlog.c:11074 #, c-format msgid "a backup is already in progress" msgstr "en backup är redan på gång" -#: access/transam/xlog.c:10576 +#: access/transam/xlog.c:10752 #, c-format msgid "Run pg_stop_backup() and try again." msgstr "Kör pg_stop_backup() och försök igen." -#: access/transam/xlog.c:10672 +#: access/transam/xlog.c:10848 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "WAL skapad med full_page_writes=off har återspelats sedab senaste omstartpunkten" -#: access/transam/xlog.c:10674 access/transam/xlog.c:11266 +#: access/transam/xlog.c:10850 access/transam/xlog.c:11442 #, c-format msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the master, and then try an online backup again." msgstr "Det betyder att backup:en som tas på standby:en är trasig och inte skall användas. Slå på full_page_writes och kör CHECKPOINT på master och försök sedan ta en ny online-backup igen." -#: access/transam/xlog.c:10757 replication/basebackup.c:1423 +#: access/transam/xlog.c:10933 replication/basebackup.c:1423 #: utils/adt/misc.c:342 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "mål för symbolisk länk \"%s\" är för lång" -#: access/transam/xlog.c:10810 commands/tablespace.c:402 -#: commands/tablespace.c:566 replication/basebackup.c:1438 utils/adt/misc.c:350 +#: access/transam/xlog.c:10986 commands/tablespace.c:402 +#: commands/tablespace.c:578 replication/basebackup.c:1438 utils/adt/misc.c:350 #, c-format msgid "tablespaces are not supported on this platform" msgstr "tabellutrymmen stöds inte på denna plattform" -#: access/transam/xlog.c:10861 access/transam/xlog.c:10899 +#: access/transam/xlog.c:11037 access/transam/xlog.c:11075 #, c-format msgid "If you're sure there is no backup in progress, remove file \"%s\" and try again." msgstr "Om du är säker på att det inte pågår någon backup så ta bort filen \"%s\" och försök igen." -#: access/transam/xlog.c:11086 +#: access/transam/xlog.c:11262 #, c-format msgid "exclusive backup not in progress" msgstr "exklusiv backup är inte på gång" -#: access/transam/xlog.c:11113 +#: access/transam/xlog.c:11289 #, c-format msgid "a backup is not in progress" msgstr "ingen backup är på gång" -#: access/transam/xlog.c:11199 access/transam/xlog.c:11212 -#: access/transam/xlog.c:11601 access/transam/xlog.c:11607 -#: access/transam/xlog.c:11655 access/transam/xlog.c:11728 +#: access/transam/xlog.c:11375 access/transam/xlog.c:11388 +#: access/transam/xlog.c:11777 access/transam/xlog.c:11783 +#: access/transam/xlog.c:11831 access/transam/xlog.c:11904 #: access/transam/xlogfuncs.c:692 #, c-format msgid "invalid data in file \"%s\"" msgstr "felaktig data i fil \"%s\"" -#: access/transam/xlog.c:11216 replication/basebackup.c:1271 +#: access/transam/xlog.c:11392 replication/basebackup.c:1271 #, c-format msgid "the standby was promoted during online backup" msgstr "standby:en befordrades under online-backup" -#: access/transam/xlog.c:11217 replication/basebackup.c:1272 +#: access/transam/xlog.c:11393 replication/basebackup.c:1272 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Det betyder att backupen som tas är trasig och inte skall användas. Försök ta en ny online-backup." -#: access/transam/xlog.c:11264 +#: access/transam/xlog.c:11440 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "WAL skapad med full_page_writes=off återspelades under online-backup" -#: access/transam/xlog.c:11384 +#: access/transam/xlog.c:11560 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "base_backup klar, väntar på att de WAL-segment som krävs blir arkiverade" -#: access/transam/xlog.c:11396 +#: access/transam/xlog.c:11572 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "väntar fortfarande på att alla krävda WAL-segments skall bli arkiverade (%d sekunder har gått)" -#: access/transam/xlog.c:11398 +#: access/transam/xlog.c:11574 #, c-format msgid "Check that your archive_command is executing properly. You can safely cancel this backup, but the database backup will not be usable without all the WAL segments." msgstr "Kontrollera att ditt archive_command kör som det skall. Du kan avbryta denna backup på ett säkert sätt men databasbackup:en kommer inte vara användbart utan att alla WAL-segment finns." -#: access/transam/xlog.c:11405 +#: access/transam/xlog.c:11581 #, c-format msgid "all required WAL segments have been archived" msgstr "alla krävda WAL-segments har arkiverats" -#: access/transam/xlog.c:11409 +#: access/transam/xlog.c:11585 #, c-format msgid "WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup" msgstr "WAL-arkivering är inte påslagen; du måste se till att alla krävda WAL-segment har kopierats på annat sätt för att backup:en skall vara komplett" -#: access/transam/xlog.c:11462 +#: access/transam/xlog.c:11638 #, c-format msgid "aborting backup due to backend exiting before pg_stop_backup was called" msgstr "avbryter backup på grund av att backend:en stoppades innan pg_stop_backup anropades" -#: access/transam/xlog.c:11638 +#: access/transam/xlog.c:11814 #, c-format msgid "backup time %s in file \"%s\"" msgstr "backuptid %s i fil \"%s\"" -#: access/transam/xlog.c:11643 +#: access/transam/xlog.c:11819 #, c-format msgid "backup label %s in file \"%s\"" msgstr "backup-etikett %s i fil \"%s\"" -#: access/transam/xlog.c:11656 +#: access/transam/xlog.c:11832 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Parsad tidslinje-ID är %u men förväntade sig %u." -#: access/transam/xlog.c:11660 +#: access/transam/xlog.c:11836 #, c-format msgid "backup timeline %u in file \"%s\"" msgstr "backuptidslinje %u i fil \"%s\"" #. translator: %s is a WAL record description -#: access/transam/xlog.c:11768 +#: access/transam/xlog.c:11944 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "WAL-redo vid %X/%X för %s" -#: access/transam/xlog.c:11817 +#: access/transam/xlog.c:11993 #, c-format msgid "online backup mode was not canceled" msgstr "online backupläge har ej avbrutits" -#: access/transam/xlog.c:11818 +#: access/transam/xlog.c:11994 #, c-format msgid "File \"%s\" could not be renamed to \"%s\": %m." msgstr "Filen \"%s\" kunde inte döpas om till \"%s\": %m." -#: access/transam/xlog.c:11827 access/transam/xlog.c:11839 -#: access/transam/xlog.c:11849 +#: access/transam/xlog.c:12003 access/transam/xlog.c:12015 +#: access/transam/xlog.c:12025 #, c-format msgid "online backup mode canceled" msgstr "online backupläge avbrutet" -#: access/transam/xlog.c:11840 +#: access/transam/xlog.c:12016 #, c-format msgid "Files \"%s\" and \"%s\" were renamed to \"%s\" and \"%s\", respectively." msgstr "Filer \"%s\" och \"%s\" döptes om till \"%s\" och \"%s\", var för sig." -#: access/transam/xlog.c:11850 +#: access/transam/xlog.c:12026 #, c-format msgid "File \"%s\" was renamed to \"%s\", but file \"%s\" could not be renamed to \"%s\": %m." msgstr "Filen \"%s\" dötes om till \"%s\", men filen \"%s\" kunde inte döpas om till \"%s\": %m." -#: access/transam/xlog.c:11983 access/transam/xlogutils.c:971 +#: access/transam/xlog.c:12159 access/transam/xlogutils.c:971 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "kunde inte läsa från loggsegment %s, offset %u: %m" -#: access/transam/xlog.c:11989 access/transam/xlogutils.c:978 +#: access/transam/xlog.c:12165 access/transam/xlogutils.c:978 #, c-format msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "kunde inte läsa från loggsegment %s, offset %u, läste %d av %zu" -#: access/transam/xlog.c:12518 +#: access/transam/xlog.c:12702 #, c-format msgid "WAL receiver process shutdown requested" msgstr "nedstängning av WAL-mottagarprocess efterfrågad" -#: access/transam/xlog.c:12624 +#: access/transam/xlog.c:12808 #, c-format msgid "received promote request" msgstr "tog emot förfrågan om befordring" -#: access/transam/xlog.c:12637 +#: access/transam/xlog.c:12821 #, c-format msgid "promote trigger file found: %s" msgstr "utlösarfil för befordring hittad: %s" -#: access/transam/xlog.c:12646 +#: access/transam/xlog.c:12830 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "kunde inte göra stat() på utlösarfil för befordring \"%s\": %m" @@ -2992,32 +2994,32 @@ #: access/transam/xlogfuncs.c:185 commands/event_trigger.c:1332 #: commands/event_trigger.c:1890 commands/extension.c:1944 -#: commands/extension.c:2052 commands/extension.c:2337 commands/prepare.c:712 -#: executor/execExpr.c:2203 executor/execSRF.c:728 executor/functions.c:1040 -#: foreign/foreign.c:520 libpq/hba.c:2666 replication/logical/launcher.c:1086 +#: commands/extension.c:2052 commands/extension.c:2337 commands/prepare.c:716 +#: executor/execExpr.c:2241 executor/execSRF.c:728 executor/functions.c:1040 +#: foreign/foreign.c:520 libpq/hba.c:2670 replication/logical/launcher.c:1086 #: replication/logical/logicalfuncs.c:157 replication/logical/origin.c:1486 -#: replication/slotfuncs.c:252 replication/walsender.c:3266 +#: replication/slotfuncs.c:252 replication/walsender.c:3273 #: storage/ipc/shmem.c:550 utils/adt/datetime.c:4765 utils/adt/genfile.c:505 #: utils/adt/genfile.c:588 utils/adt/jsonfuncs.c:1792 #: utils/adt/jsonfuncs.c:1904 utils/adt/jsonfuncs.c:2092 #: utils/adt/jsonfuncs.c:2201 utils/adt/jsonfuncs.c:3663 utils/adt/misc.c:215 #: utils/adt/pgstatfuncs.c:476 utils/adt/pgstatfuncs.c:584 #: utils/adt/pgstatfuncs.c:1719 utils/fmgr/funcapi.c:72 utils/misc/guc.c:9676 -#: utils/mmgr/portalmem.c:1136 +#: utils/mmgr/portalmem.c:1145 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "en funktion som returnerar en mängd anropades i kontext som inte godtar en mängd" #: access/transam/xlogfuncs.c:189 commands/event_trigger.c:1336 #: commands/event_trigger.c:1894 commands/extension.c:1948 -#: commands/extension.c:2056 commands/extension.c:2341 commands/prepare.c:716 -#: foreign/foreign.c:525 libpq/hba.c:2670 replication/logical/launcher.c:1090 +#: commands/extension.c:2056 commands/extension.c:2341 commands/prepare.c:720 +#: foreign/foreign.c:525 libpq/hba.c:2674 replication/logical/launcher.c:1090 #: replication/logical/logicalfuncs.c:161 replication/logical/origin.c:1490 -#: replication/slotfuncs.c:256 replication/walsender.c:3270 +#: replication/slotfuncs.c:256 replication/walsender.c:3277 #: storage/ipc/shmem.c:554 utils/adt/datetime.c:4769 utils/adt/genfile.c:509 #: utils/adt/genfile.c:592 utils/adt/misc.c:219 utils/adt/pgstatfuncs.c:480 #: utils/adt/pgstatfuncs.c:588 utils/adt/pgstatfuncs.c:1723 -#: utils/misc/guc.c:9680 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1140 +#: utils/misc/guc.c:9680 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1149 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "materialiserat läge krävs, men stöds inte i detta kontext" @@ -3084,138 +3086,138 @@ msgid "server did not promote within %d seconds" msgstr "servern befordrades inte inom %d sekunder" -#: access/transam/xlogreader.c:349 +#: access/transam/xlogreader.c:354 #, c-format msgid "invalid record offset at %X/%X" msgstr "ogiltig postoffset vid %X/%X" -#: access/transam/xlogreader.c:357 +#: access/transam/xlogreader.c:362 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord är begärd vid %X/%X" -#: access/transam/xlogreader.c:398 access/transam/xlogreader.c:695 +#: access/transam/xlogreader.c:403 access/transam/xlogreader.c:733 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "ogiltig postlängd vid %X/%X: förväntade %u, fick %u" -#: access/transam/xlogreader.c:422 +#: access/transam/xlogreader.c:429 #, c-format msgid "record length %u at %X/%X too long" msgstr "postlängd %u vid %X/%X är för lång" -#: access/transam/xlogreader.c:454 +#: access/transam/xlogreader.c:478 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "det finns ingen contrecord-flagga vid %X/%X" -#: access/transam/xlogreader.c:467 +#: access/transam/xlogreader.c:491 #, c-format msgid "invalid contrecord length %u at %X/%X" msgstr "ogiltig contrecord-längd %u vid %X/%X" -#: access/transam/xlogreader.c:703 +#: access/transam/xlogreader.c:741 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ogiltigt resurshanterar-ID %u vid %X/%X" -#: access/transam/xlogreader.c:717 access/transam/xlogreader.c:734 +#: access/transam/xlogreader.c:755 access/transam/xlogreader.c:772 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "post med inkorrekt prev-link %X/%X vid %X/%X" -#: access/transam/xlogreader.c:771 +#: access/transam/xlogreader.c:809 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "felaktig resurshanterardatakontrollsumma i post vid %X/%X" -#: access/transam/xlogreader.c:808 +#: access/transam/xlogreader.c:846 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "felaktigt magiskt nummer %04X i loggsegment %s, offset %u" -#: access/transam/xlogreader.c:822 access/transam/xlogreader.c:863 +#: access/transam/xlogreader.c:860 access/transam/xlogreader.c:901 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "ogiltiga infobitar %04X i loggsegment %s, offset %u" -#: access/transam/xlogreader.c:837 +#: access/transam/xlogreader.c:875 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "WAL-fil är från ett annat databassystem: WAL-filens databassystemidentifierare är %llu, pg_control databassystemidentifierare är %llu" -#: access/transam/xlogreader.c:845 +#: access/transam/xlogreader.c:883 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL-fil är från ett annat databassystem: inkorrekt segmentstorlek i sidhuvuid" -#: access/transam/xlogreader.c:851 +#: access/transam/xlogreader.c:889 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL-fil är från ett annat databassystem: inkorrekt XLOG_BLCKSZ i sidhuvuid" -#: access/transam/xlogreader.c:882 +#: access/transam/xlogreader.c:920 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "oväntad sidadress %X/%X i loggsegment %s, offset %u" # FIXME -#: access/transam/xlogreader.c:907 +#: access/transam/xlogreader.c:945 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "\"ej i sekvens\"-fel på tidslinje-ID %u (efter %u) i loggsegment %s, offset %u" -#: access/transam/xlogreader.c:1247 +#: access/transam/xlogreader.c:1285 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "\"ej i sekvens\"-block_id %u vid %X/%X" -#: access/transam/xlogreader.c:1270 +#: access/transam/xlogreader.c:1308 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA satt, men ingen data inkluderad vid %X/%X" -#: access/transam/xlogreader.c:1277 +#: access/transam/xlogreader.c:1315 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA ej satt, men datalängd är %u vid %X/%X" -#: access/transam/xlogreader.c:1313 +#: access/transam/xlogreader.c:1351 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE satt, men håloffset %u längd %u block-image-längd %u vid %X/%X" -#: access/transam/xlogreader.c:1329 +#: access/transam/xlogreader.c:1367 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE ej satt, men håloffset %u längd %u vid %X/%X" -#: access/transam/xlogreader.c:1344 +#: access/transam/xlogreader.c:1382 #, c-format msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_IS_COMPRESSED satt, men block-image-längd %u vid %X/%X" -#: access/transam/xlogreader.c:1359 +#: access/transam/xlogreader.c:1397 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X" msgstr "varken BKPIMAGE_HAS_HOLE eller BKPIMAGE_IS_COMPRESSED satt, men block-image-längd är %u vid %X/%X" -#: access/transam/xlogreader.c:1375 +#: access/transam/xlogreader.c:1413 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL satt men ingen tidigare rel vid %X/%X" -#: access/transam/xlogreader.c:1387 +#: access/transam/xlogreader.c:1425 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ogiltig block_id %u vid %X/%X" -#: access/transam/xlogreader.c:1476 +#: access/transam/xlogreader.c:1514 #, c-format msgid "record with invalid length at %X/%X" msgstr "post med ogiltig längd vid %X/%X" -#: access/transam/xlogreader.c:1565 +#: access/transam/xlogreader.c:1603 #, c-format msgid "invalid compressed image at %X/%X, block %d" msgstr "ogiltig komprimerad image vid %X/%X, block %d" @@ -3225,12 +3227,12 @@ msgid "-X requires a power of two value between 1 MB and 1 GB" msgstr "-X kräver ett tvåpotensvärde mellan 1 MB och 1 GB" -#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:842 tcop/postgres.c:3705 +#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:842 tcop/postgres.c:3737 #, c-format msgid "--%s requires a value" msgstr "--%s kräver ett värde" -#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:847 tcop/postgres.c:3710 +#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:847 tcop/postgres.c:3742 #, c-format msgid "-c %s requires a value" msgstr "-c %s kräver ett värde" @@ -3366,9 +3368,9 @@ msgid "column privileges are only valid for relations" msgstr "kolumnprivilegier är bara giltiga för relationer" -#: catalog/aclchk.c:681 catalog/aclchk.c:4100 catalog/aclchk.c:4882 +#: catalog/aclchk.c:681 catalog/aclchk.c:4103 catalog/aclchk.c:4885 #: catalog/objectaddress.c:965 catalog/pg_largeobject.c:116 -#: storage/large_object/inv_api.c:285 +#: storage/large_object/inv_api.c:287 #, c-format msgid "large object %u does not exist" msgstr "stort objekt %u existerar inte" @@ -3388,20 +3390,20 @@ #: commands/dbcommands.c:1529 commands/extension.c:1735 #: commands/extension.c:1745 commands/extension.c:1755 #: commands/extension.c:3055 commands/foreigncmds.c:539 -#: commands/foreigncmds.c:548 commands/functioncmds.c:570 -#: commands/functioncmds.c:736 commands/functioncmds.c:745 -#: commands/functioncmds.c:754 commands/functioncmds.c:763 -#: commands/functioncmds.c:2014 commands/functioncmds.c:2022 -#: commands/publicationcmds.c:90 commands/publicationcmds.c:133 +#: commands/foreigncmds.c:548 commands/functioncmds.c:572 +#: commands/functioncmds.c:738 commands/functioncmds.c:747 +#: commands/functioncmds.c:756 commands/functioncmds.c:765 +#: commands/functioncmds.c:2017 commands/functioncmds.c:2025 +#: commands/publicationcmds.c:87 commands/publicationcmds.c:130 #: commands/sequence.c:1267 commands/sequence.c:1277 commands/sequence.c:1287 #: commands/sequence.c:1297 commands/sequence.c:1307 commands/sequence.c:1317 #: commands/sequence.c:1327 commands/sequence.c:1337 commands/sequence.c:1347 -#: commands/subscriptioncmds.c:104 commands/subscriptioncmds.c:114 -#: commands/subscriptioncmds.c:124 commands/subscriptioncmds.c:134 -#: commands/subscriptioncmds.c:148 commands/subscriptioncmds.c:159 -#: commands/subscriptioncmds.c:173 commands/tablecmds.c:7102 -#: commands/typecmds.c:322 commands/typecmds.c:1355 commands/typecmds.c:1364 -#: commands/typecmds.c:1372 commands/typecmds.c:1380 commands/typecmds.c:1388 +#: commands/subscriptioncmds.c:105 commands/subscriptioncmds.c:115 +#: commands/subscriptioncmds.c:125 commands/subscriptioncmds.c:135 +#: commands/subscriptioncmds.c:151 commands/subscriptioncmds.c:162 +#: commands/subscriptioncmds.c:176 commands/tablecmds.c:7223 +#: commands/typecmds.c:322 commands/typecmds.c:1357 commands/typecmds.c:1366 +#: commands/typecmds.c:1374 commands/typecmds.c:1382 commands/typecmds.c:1390 #: commands/user.c:133 commands/user.c:147 commands/user.c:156 #: commands/user.c:165 commands/user.c:174 commands/user.c:183 #: commands/user.c:192 commands/user.c:201 commands/user.c:210 @@ -3410,9 +3412,9 @@ #: commands/user.c:598 commands/user.c:606 commands/user.c:614 #: commands/user.c:622 commands/user.c:630 commands/user.c:638 #: commands/user.c:647 commands/user.c:655 commands/user.c:663 -#: parser/parse_utilcmd.c:387 replication/pgoutput/pgoutput.c:141 -#: replication/pgoutput/pgoutput.c:162 replication/walsender.c:886 -#: replication/walsender.c:897 replication/walsender.c:907 +#: parser/parse_utilcmd.c:403 replication/pgoutput/pgoutput.c:141 +#: replication/pgoutput/pgoutput.c:162 replication/walsender.c:890 +#: replication/walsender.c:901 replication/walsender.c:911 #, c-format msgid "conflicting or redundant options" msgstr "motstridiga eller redundanta inställningar" @@ -3427,523 +3429,523 @@ msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "kan inte använda IN SCHEMA-klausul samtidigt som GRANT/REVOKE ON SCHEMAS" -#: catalog/aclchk.c:1558 catalog/catalog.c:506 catalog/objectaddress.c:1427 -#: commands/analyze.c:389 commands/copy.c:5080 commands/sequence.c:1702 -#: commands/tablecmds.c:6578 commands/tablecmds.c:6721 -#: commands/tablecmds.c:6771 commands/tablecmds.c:6845 -#: commands/tablecmds.c:6915 commands/tablecmds.c:7027 -#: commands/tablecmds.c:7121 commands/tablecmds.c:7180 -#: commands/tablecmds.c:7253 commands/tablecmds.c:7282 -#: commands/tablecmds.c:7437 commands/tablecmds.c:7519 -#: commands/tablecmds.c:7612 commands/tablecmds.c:7767 -#: commands/tablecmds.c:10972 commands/tablecmds.c:11154 -#: commands/tablecmds.c:11314 commands/tablecmds.c:12397 commands/trigger.c:876 -#: parser/analyze.c:2339 parser/parse_relation.c:713 parser/parse_target.c:1036 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3289 -#: parser/parse_utilcmd.c:3324 parser/parse_utilcmd.c:3366 utils/adt/acl.c:2870 -#: utils/adt/ruleutils.c:2535 +#: catalog/aclchk.c:1561 catalog/catalog.c:506 catalog/objectaddress.c:1427 +#: commands/analyze.c:389 commands/copy.c:5088 commands/sequence.c:1702 +#: commands/tablecmds.c:6686 commands/tablecmds.c:6842 +#: commands/tablecmds.c:6892 commands/tablecmds.c:6966 +#: commands/tablecmds.c:7036 commands/tablecmds.c:7148 +#: commands/tablecmds.c:7242 commands/tablecmds.c:7301 +#: commands/tablecmds.c:7390 commands/tablecmds.c:7419 +#: commands/tablecmds.c:7574 commands/tablecmds.c:7656 +#: commands/tablecmds.c:7749 commands/tablecmds.c:7904 +#: commands/tablecmds.c:11225 commands/tablecmds.c:11406 +#: commands/tablecmds.c:11566 commands/tablecmds.c:12650 commands/trigger.c:884 +#: parser/analyze.c:2338 parser/parse_relation.c:713 parser/parse_target.c:1035 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3324 +#: parser/parse_utilcmd.c:3360 parser/parse_utilcmd.c:3402 utils/adt/acl.c:2869 +#: utils/adt/ruleutils.c:2537 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "kolumn \"%s\" i relation \"%s\" existerar inte" -#: catalog/aclchk.c:1821 catalog/objectaddress.c:1267 commands/sequence.c:1140 -#: commands/tablecmds.c:236 commands/tablecmds.c:15706 utils/adt/acl.c:2060 -#: utils/adt/acl.c:2090 utils/adt/acl.c:2122 utils/adt/acl.c:2154 -#: utils/adt/acl.c:2182 utils/adt/acl.c:2212 +#: catalog/aclchk.c:1824 catalog/objectaddress.c:1267 commands/sequence.c:1140 +#: commands/tablecmds.c:236 commands/tablecmds.c:16029 utils/adt/acl.c:2059 +#: utils/adt/acl.c:2089 utils/adt/acl.c:2121 utils/adt/acl.c:2153 +#: utils/adt/acl.c:2181 utils/adt/acl.c:2211 #, c-format msgid "\"%s\" is not a sequence" msgstr "\"%s\" är inte en sekvens" -#: catalog/aclchk.c:1859 +#: catalog/aclchk.c:1862 #, c-format msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges" msgstr "sekvensen \"%s\" stöder bara USAGE-, SELECT- och UPDATE-rättigheter" -#: catalog/aclchk.c:1876 +#: catalog/aclchk.c:1879 #, c-format msgid "invalid privilege type %s for table" msgstr "ogiltig rättighetstyp %s för tabell" -#: catalog/aclchk.c:2042 +#: catalog/aclchk.c:2045 #, c-format msgid "invalid privilege type %s for column" msgstr "ogitligt rättighetstyp %s för kolumn" -#: catalog/aclchk.c:2055 +#: catalog/aclchk.c:2058 #, c-format msgid "sequence \"%s\" only supports SELECT column privileges" msgstr "sekvensen \"%s\" stöder bara kolumnrättigheten SELECT" -#: catalog/aclchk.c:2637 +#: catalog/aclchk.c:2640 #, c-format msgid "language \"%s\" is not trusted" msgstr "språket \"%s\" är inte betrott" -#: catalog/aclchk.c:2639 +#: catalog/aclchk.c:2642 #, c-format msgid "GRANT and REVOKE are not allowed on untrusted languages, because only superusers can use untrusted languages." -msgstr "GRANT och REVOKE är inte tillåtna på icke betrodda språk då bara superanvändare kan använda icke betrodda språk." +msgstr "GRANT och REVOKE är inte tillåtna på icke betrodda språk då bara en superuser kan använda icke betrodda språk." -#: catalog/aclchk.c:3153 +#: catalog/aclchk.c:3156 #, c-format msgid "cannot set privileges of array types" msgstr "kan inte sätta privilegier för array-typer" -#: catalog/aclchk.c:3154 +#: catalog/aclchk.c:3157 #, c-format msgid "Set the privileges of the element type instead." msgstr "Sätt rättigheter för elementtypen istället." -#: catalog/aclchk.c:3161 catalog/objectaddress.c:1561 +#: catalog/aclchk.c:3164 catalog/objectaddress.c:1561 #, c-format msgid "\"%s\" is not a domain" msgstr "\"%s\" är inte en domän" -#: catalog/aclchk.c:3281 +#: catalog/aclchk.c:3284 #, c-format msgid "unrecognized privilege type \"%s\"" msgstr "okänd privilegietyp \"%s\"" -#: catalog/aclchk.c:3342 +#: catalog/aclchk.c:3345 #, c-format msgid "permission denied for aggregate %s" msgstr "rättighet saknas för aggregat %s" -#: catalog/aclchk.c:3345 +#: catalog/aclchk.c:3348 #, c-format msgid "permission denied for collation %s" msgstr "rättighet saknas för jämförelse %s" -#: catalog/aclchk.c:3348 +#: catalog/aclchk.c:3351 #, c-format msgid "permission denied for column %s" msgstr "rättighet saknas för kolumn %s" -#: catalog/aclchk.c:3351 +#: catalog/aclchk.c:3354 #, c-format msgid "permission denied for conversion %s" msgstr "rättighet saknas för konvertering %s" -#: catalog/aclchk.c:3354 +#: catalog/aclchk.c:3357 #, c-format msgid "permission denied for database %s" msgstr "rättighet saknas för databas %s" -#: catalog/aclchk.c:3357 +#: catalog/aclchk.c:3360 #, c-format msgid "permission denied for domain %s" msgstr "rättighet saknas för domän %s" -#: catalog/aclchk.c:3360 +#: catalog/aclchk.c:3363 #, c-format msgid "permission denied for event trigger %s" msgstr "rättighet saknas för händelseutlösare %s" -#: catalog/aclchk.c:3363 +#: catalog/aclchk.c:3366 #, c-format msgid "permission denied for extension %s" msgstr "rättighet saknas för utökning %s" -#: catalog/aclchk.c:3366 +#: catalog/aclchk.c:3369 #, c-format msgid "permission denied for foreign-data wrapper %s" msgstr "rättighet saknas för främmande data-omvandlare %s" -#: catalog/aclchk.c:3369 +#: catalog/aclchk.c:3372 #, c-format msgid "permission denied for foreign server %s" msgstr "rättighet saknas för främmande server %s" -#: catalog/aclchk.c:3372 +#: catalog/aclchk.c:3375 #, c-format msgid "permission denied for foreign table %s" msgstr "rättighet saknas för främmande tabell %s" -#: catalog/aclchk.c:3375 +#: catalog/aclchk.c:3378 #, c-format msgid "permission denied for function %s" msgstr "rättighet saknas för funktion %s" -#: catalog/aclchk.c:3378 +#: catalog/aclchk.c:3381 #, c-format msgid "permission denied for index %s" msgstr "rättighet saknas för index %s" -#: catalog/aclchk.c:3381 +#: catalog/aclchk.c:3384 #, c-format msgid "permission denied for language %s" msgstr "rättighet saknas för språk %s" -#: catalog/aclchk.c:3384 +#: catalog/aclchk.c:3387 #, c-format msgid "permission denied for large object %s" msgstr "rättighet saknas för stort objekt %s" -#: catalog/aclchk.c:3387 +#: catalog/aclchk.c:3390 #, c-format msgid "permission denied for materialized view %s" msgstr "rättighet saknas för materialiserad vy %s" -#: catalog/aclchk.c:3390 +#: catalog/aclchk.c:3393 #, c-format msgid "permission denied for operator class %s" msgstr "rättighet saknas för operatorklasss %s" -#: catalog/aclchk.c:3393 +#: catalog/aclchk.c:3396 #, c-format msgid "permission denied for operator %s" msgstr "rättighet saknas för operator %s" -#: catalog/aclchk.c:3396 +#: catalog/aclchk.c:3399 #, c-format msgid "permission denied for operator family %s" msgstr "rättighet saknas för operatorfamilj %s" -#: catalog/aclchk.c:3399 +#: catalog/aclchk.c:3402 #, c-format msgid "permission denied for policy %s" msgstr "rättighet saknas för policy %s" -#: catalog/aclchk.c:3402 +#: catalog/aclchk.c:3405 #, c-format msgid "permission denied for procedure %s" msgstr "rättighet saknas för procedur %s" -#: catalog/aclchk.c:3405 +#: catalog/aclchk.c:3408 #, c-format msgid "permission denied for publication %s" msgstr "rättighet saknas för publicering %s" -#: catalog/aclchk.c:3408 +#: catalog/aclchk.c:3411 #, c-format msgid "permission denied for routine %s" msgstr "rättighet saknas för rutin %s" -#: catalog/aclchk.c:3411 +#: catalog/aclchk.c:3414 #, c-format msgid "permission denied for schema %s" msgstr "rättighet saknas för schema %s" -#: catalog/aclchk.c:3414 commands/sequence.c:610 commands/sequence.c:844 +#: catalog/aclchk.c:3417 commands/sequence.c:610 commands/sequence.c:844 #: commands/sequence.c:886 commands/sequence.c:927 commands/sequence.c:1800 #: commands/sequence.c:1864 #, c-format msgid "permission denied for sequence %s" msgstr "rättighet saknas för sekvens %s" -#: catalog/aclchk.c:3417 +#: catalog/aclchk.c:3420 #, c-format msgid "permission denied for statistics object %s" msgstr "rättighet saknas för statistikobjekt %s" -#: catalog/aclchk.c:3420 +#: catalog/aclchk.c:3423 #, c-format msgid "permission denied for subscription %s" msgstr "rättighet saknas för prenumeration %s" -#: catalog/aclchk.c:3423 +#: catalog/aclchk.c:3426 #, c-format msgid "permission denied for table %s" msgstr "rättighet saknas för tabell %s" -#: catalog/aclchk.c:3426 +#: catalog/aclchk.c:3429 #, c-format msgid "permission denied for tablespace %s" msgstr "rättighet saknas för tabellutrymme %s" -#: catalog/aclchk.c:3429 +#: catalog/aclchk.c:3432 #, c-format msgid "permission denied for text search configuration %s" msgstr "rättighet saknas för textsökkonfigurering %s" -#: catalog/aclchk.c:3432 +#: catalog/aclchk.c:3435 #, c-format msgid "permission denied for text search dictionary %s" msgstr "rättighet saknas för textsökordlista %s" -#: catalog/aclchk.c:3435 +#: catalog/aclchk.c:3438 #, c-format msgid "permission denied for type %s" msgstr "rättighet saknas för typ %s" -#: catalog/aclchk.c:3438 +#: catalog/aclchk.c:3441 #, c-format msgid "permission denied for view %s" msgstr "rättighet saknas för vy %s" -#: catalog/aclchk.c:3473 +#: catalog/aclchk.c:3476 #, c-format msgid "must be owner of aggregate %s" msgstr "måste vara ägaren till aggregatet %s" -#: catalog/aclchk.c:3476 +#: catalog/aclchk.c:3479 #, c-format msgid "must be owner of collation %s" msgstr "måste vara ägaren till jämförelsen %s" -#: catalog/aclchk.c:3479 +#: catalog/aclchk.c:3482 #, c-format msgid "must be owner of conversion %s" msgstr "måste vara ägaren till konverteringen %s" -#: catalog/aclchk.c:3482 +#: catalog/aclchk.c:3485 #, c-format msgid "must be owner of database %s" msgstr "måste vara ägaren till databasen %s" -#: catalog/aclchk.c:3485 +#: catalog/aclchk.c:3488 #, c-format msgid "must be owner of domain %s" msgstr "måste vara ägaren av domänen %s" -#: catalog/aclchk.c:3488 +#: catalog/aclchk.c:3491 #, c-format msgid "must be owner of event trigger %s" msgstr "måste vara ägaren till händelseutlösaren %s" -#: catalog/aclchk.c:3491 +#: catalog/aclchk.c:3494 #, c-format msgid "must be owner of extension %s" msgstr "måste vara ägaren till utökningen %s" -#: catalog/aclchk.c:3494 +#: catalog/aclchk.c:3497 #, c-format msgid "must be owner of foreign-data wrapper %s" msgstr "måste vara ägaren till främmande data-omvandlaren %s" -#: catalog/aclchk.c:3497 +#: catalog/aclchk.c:3500 #, c-format msgid "must be owner of foreign server %s" msgstr "måste vara ägaren till främmande servern %s" -#: catalog/aclchk.c:3500 +#: catalog/aclchk.c:3503 #, c-format msgid "must be owner of foreign table %s" msgstr "måste vara ägaren till främmande tabellen %s" -#: catalog/aclchk.c:3503 +#: catalog/aclchk.c:3506 #, c-format msgid "must be owner of function %s" msgstr "måste vara ägaren till funktionen %s" -#: catalog/aclchk.c:3506 +#: catalog/aclchk.c:3509 #, c-format msgid "must be owner of index %s" msgstr "måste vara ägaren till indexet %s" -#: catalog/aclchk.c:3509 +#: catalog/aclchk.c:3512 #, c-format msgid "must be owner of language %s" msgstr "måste vara ägaren till språket %s" -#: catalog/aclchk.c:3512 +#: catalog/aclchk.c:3515 #, c-format msgid "must be owner of large object %s" msgstr "måste vara ägaren till stora objektet %s" -#: catalog/aclchk.c:3515 +#: catalog/aclchk.c:3518 #, c-format msgid "must be owner of materialized view %s" msgstr "måste vara ägaren till den materialiserade vyn %s" -#: catalog/aclchk.c:3518 +#: catalog/aclchk.c:3521 #, c-format msgid "must be owner of operator class %s" msgstr "måste vara ägaren till operatorklassen %s" -#: catalog/aclchk.c:3521 +#: catalog/aclchk.c:3524 #, c-format msgid "must be owner of operator %s" msgstr "måste vara ägaren till operatorn %s" -#: catalog/aclchk.c:3524 +#: catalog/aclchk.c:3527 #, c-format msgid "must be owner of operator family %s" msgstr "måste vara ägaren till operatorfamiljen %s" -#: catalog/aclchk.c:3527 +#: catalog/aclchk.c:3530 #, c-format msgid "must be owner of procedure %s" msgstr "måste vara ägaren till proceduren %s" -#: catalog/aclchk.c:3530 +#: catalog/aclchk.c:3533 #, c-format msgid "must be owner of publication %s" msgstr "måste vara ägaren till publiceringen %s" -#: catalog/aclchk.c:3533 +#: catalog/aclchk.c:3536 #, c-format msgid "must be owner of routine %s" msgstr "måste vara ägaren till rutinen %s" -#: catalog/aclchk.c:3536 +#: catalog/aclchk.c:3539 #, c-format msgid "must be owner of sequence %s" msgstr "måste vara ägaren till sekvensen %s" -#: catalog/aclchk.c:3539 +#: catalog/aclchk.c:3542 #, c-format msgid "must be owner of subscription %s" msgstr "måste vara ägaren till prenumerationen %s" -#: catalog/aclchk.c:3542 +#: catalog/aclchk.c:3545 #, c-format msgid "must be owner of table %s" msgstr "måste vara ägaren till tabellen %s" -#: catalog/aclchk.c:3545 +#: catalog/aclchk.c:3548 #, c-format msgid "must be owner of type %s" msgstr "måste vara ägaren till typen %s" -#: catalog/aclchk.c:3548 +#: catalog/aclchk.c:3551 #, c-format msgid "must be owner of view %s" msgstr "måste vara ägaren till vyn %s" -#: catalog/aclchk.c:3551 +#: catalog/aclchk.c:3554 #, c-format msgid "must be owner of schema %s" msgstr "måste vara ägaren till schemat %s" -#: catalog/aclchk.c:3554 +#: catalog/aclchk.c:3557 #, c-format msgid "must be owner of statistics object %s" msgstr "måste vara ägaren till statistikobjektet %s" -#: catalog/aclchk.c:3557 +#: catalog/aclchk.c:3560 #, c-format msgid "must be owner of tablespace %s" msgstr "måste vara ägaren till tabellutrymmet %s" -#: catalog/aclchk.c:3560 +#: catalog/aclchk.c:3563 #, c-format msgid "must be owner of text search configuration %s" msgstr "måste vara ägaren till textsökkonfigurationen %s" -#: catalog/aclchk.c:3563 +#: catalog/aclchk.c:3566 #, c-format msgid "must be owner of text search dictionary %s" msgstr "måste vara ägaren till textsökordlistan %s" -#: catalog/aclchk.c:3577 +#: catalog/aclchk.c:3580 #, c-format msgid "must be owner of relation %s" msgstr "måste vara ägaren till relationen %s" -#: catalog/aclchk.c:3621 +#: catalog/aclchk.c:3624 #, c-format msgid "permission denied for column \"%s\" of relation \"%s\"" msgstr "rättighet saknas för kolumn \"%s\" i relation \"%s\"" -#: catalog/aclchk.c:3742 catalog/aclchk.c:3750 +#: catalog/aclchk.c:3745 catalog/aclchk.c:3753 #, c-format msgid "attribute %d of relation with OID %u does not exist" msgstr "attribut %d i relation med OID %u existerar inte" -#: catalog/aclchk.c:3823 catalog/aclchk.c:4733 +#: catalog/aclchk.c:3826 catalog/aclchk.c:4736 #, c-format msgid "relation with OID %u does not exist" msgstr "relation med OID %u existerar inte" -#: catalog/aclchk.c:3913 catalog/aclchk.c:5151 +#: catalog/aclchk.c:3916 catalog/aclchk.c:5154 #, c-format msgid "database with OID %u does not exist" msgstr "databas med OID %u finns inte" -#: catalog/aclchk.c:3967 catalog/aclchk.c:4811 tcop/fastpath.c:221 +#: catalog/aclchk.c:3970 catalog/aclchk.c:4814 tcop/fastpath.c:218 #: utils/fmgr/fmgr.c:2055 #, c-format msgid "function with OID %u does not exist" msgstr "funktionen med OID %u existerar inte" -#: catalog/aclchk.c:4021 catalog/aclchk.c:4837 +#: catalog/aclchk.c:4024 catalog/aclchk.c:4840 #, c-format msgid "language with OID %u does not exist" msgstr "språk med OID %u existerar inte" -#: catalog/aclchk.c:4185 catalog/aclchk.c:4909 +#: catalog/aclchk.c:4188 catalog/aclchk.c:4912 commands/collationcmds.c:552 #, c-format msgid "schema with OID %u does not exist" msgstr "schema med OID %u existerar inte" -#: catalog/aclchk.c:4239 catalog/aclchk.c:4936 utils/adt/genfile.c:686 +#: catalog/aclchk.c:4242 catalog/aclchk.c:4939 utils/adt/genfile.c:686 #, c-format msgid "tablespace with OID %u does not exist" msgstr "tabellutrymme med OID %u finns inte" -#: catalog/aclchk.c:4298 catalog/aclchk.c:5070 commands/foreigncmds.c:325 +#: catalog/aclchk.c:4301 catalog/aclchk.c:5073 commands/foreigncmds.c:325 #, c-format msgid "foreign-data wrapper with OID %u does not exist" msgstr "främmande data-omvandlare med OID %u finns inte" -#: catalog/aclchk.c:4360 catalog/aclchk.c:5097 commands/foreigncmds.c:462 +#: catalog/aclchk.c:4363 catalog/aclchk.c:5100 commands/foreigncmds.c:462 #, c-format msgid "foreign server with OID %u does not exist" msgstr "främmande server med OID %u finns inte" -#: catalog/aclchk.c:4420 catalog/aclchk.c:4759 utils/cache/typcache.c:378 +#: catalog/aclchk.c:4423 catalog/aclchk.c:4762 utils/cache/typcache.c:378 #: utils/cache/typcache.c:432 #, c-format msgid "type with OID %u does not exist" msgstr "typ med OID %u existerar inte" -#: catalog/aclchk.c:4785 +#: catalog/aclchk.c:4788 #, c-format msgid "operator with OID %u does not exist" msgstr "operator med OID %u existerar inte" -#: catalog/aclchk.c:4962 +#: catalog/aclchk.c:4965 #, c-format msgid "operator class with OID %u does not exist" msgstr "operatorklass med OID %u existerar inte" -#: catalog/aclchk.c:4989 +#: catalog/aclchk.c:4992 #, c-format msgid "operator family with OID %u does not exist" msgstr "operatorfamilj med OID %u existerar inte" -#: catalog/aclchk.c:5016 +#: catalog/aclchk.c:5019 #, c-format msgid "text search dictionary with OID %u does not exist" msgstr "textsökordlista med OID %u existerar inte" -#: catalog/aclchk.c:5043 +#: catalog/aclchk.c:5046 #, c-format msgid "text search configuration with OID %u does not exist" msgstr "textsökkonfiguration med OID %u existerar inte" -#: catalog/aclchk.c:5124 commands/event_trigger.c:475 +#: catalog/aclchk.c:5127 commands/event_trigger.c:475 #, c-format msgid "event trigger with OID %u does not exist" msgstr "händelseutlösare med OID %u existerar inte" -#: catalog/aclchk.c:5177 commands/collationcmds.c:367 +#: catalog/aclchk.c:5180 commands/collationcmds.c:386 #, c-format msgid "collation with OID %u does not exist" msgstr "jämförelse med OID %u existerar inte" -#: catalog/aclchk.c:5203 +#: catalog/aclchk.c:5206 #, c-format msgid "conversion with OID %u does not exist" msgstr "konvertering med OID %u existerar inte" -#: catalog/aclchk.c:5244 +#: catalog/aclchk.c:5247 #, c-format msgid "extension with OID %u does not exist" msgstr "utökning med OID %u existerar inte" -#: catalog/aclchk.c:5271 commands/publicationcmds.c:794 +#: catalog/aclchk.c:5274 commands/publicationcmds.c:819 #, c-format msgid "publication with OID %u does not exist" msgstr "publicering med OID %u existerar inte" -#: catalog/aclchk.c:5297 commands/subscriptioncmds.c:1112 +#: catalog/aclchk.c:5300 commands/subscriptioncmds.c:1116 #, c-format msgid "subscription with OID %u does not exist" msgstr "prenumeration med OID %u existerar inte" -#: catalog/aclchk.c:5323 +#: catalog/aclchk.c:5326 #, c-format msgid "statistics object with OID %u does not exist" msgstr "statistikobjekt med OID %u finns inte" @@ -3951,14 +3953,14 @@ #: catalog/catalog.c:485 #, c-format msgid "must be superuser to call pg_nextoid()" -msgstr "måste vara superanvändare för att anropa pg_nextoid()" +msgstr "måste vara superuser för att anropa pg_nextoid()" #: catalog/catalog.c:493 #, c-format msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() kan bara användas på systemkataloger" -#: catalog/catalog.c:498 parser/parse_utilcmd.c:2191 +#: catalog/catalog.c:498 parser/parse_utilcmd.c:2225 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "index \"%s\" tillhör inte tabell \"%s\"" @@ -3983,27 +3985,27 @@ msgid "You can drop %s instead." msgstr "Du kan ta bort %s i stället." -#: catalog/dependency.c:933 catalog/pg_shdepend.c:640 +#: catalog/dependency.c:933 catalog/pg_shdepend.c:697 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "kan inte ta bort %s eftersom den krävs av databassystemet" -#: catalog/dependency.c:1129 +#: catalog/dependency.c:1133 #, c-format msgid "drop auto-cascades to %s" msgstr "drop svämmar automatiskt över (cascades) till %s" -#: catalog/dependency.c:1141 catalog/dependency.c:1150 +#: catalog/dependency.c:1147 catalog/dependency.c:1156 #, c-format msgid "%s depends on %s" msgstr "%s beror på %s" -#: catalog/dependency.c:1162 catalog/dependency.c:1171 +#: catalog/dependency.c:1171 catalog/dependency.c:1180 #, c-format msgid "drop cascades to %s" msgstr "drop svämmar över (cascades) till %s" -#: catalog/dependency.c:1179 catalog/pg_shdepend.c:769 +#: catalog/dependency.c:1188 catalog/pg_shdepend.c:826 #, c-format msgid "" "\n" @@ -4018,44 +4020,44 @@ "\n" "och %d andra objekt (se serverloggen för en lista)" -#: catalog/dependency.c:1191 +#: catalog/dependency.c:1200 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "kan inte ta bort %s eftersom andra objekt beror på den" -#: catalog/dependency.c:1193 catalog/dependency.c:1194 -#: catalog/dependency.c:1200 catalog/dependency.c:1201 -#: catalog/dependency.c:1212 catalog/dependency.c:1213 -#: commands/tablecmds.c:1249 commands/tablecmds.c:13016 commands/user.c:1093 -#: commands/view.c:495 libpq/auth.c:334 replication/syncrep.c:1032 -#: storage/lmgr/deadlock.c:1154 storage/lmgr/proc.c:1350 utils/adt/acl.c:5329 -#: utils/adt/jsonfuncs.c:614 utils/adt/jsonfuncs.c:620 utils/misc/guc.c:6771 -#: utils/misc/guc.c:6807 utils/misc/guc.c:6877 utils/misc/guc.c:10975 -#: utils/misc/guc.c:11009 utils/misc/guc.c:11043 utils/misc/guc.c:11077 -#: utils/misc/guc.c:11112 +#: catalog/dependency.c:1202 catalog/dependency.c:1203 +#: catalog/dependency.c:1209 catalog/dependency.c:1210 +#: catalog/dependency.c:1221 catalog/dependency.c:1222 +#: commands/tablecmds.c:1258 commands/tablecmds.c:13269 +#: commands/tablespace.c:481 commands/user.c:1095 commands/view.c:495 +#: libpq/auth.c:334 replication/syncrep.c:1032 storage/lmgr/deadlock.c:1154 +#: storage/lmgr/proc.c:1350 utils/adt/acl.c:5332 utils/adt/jsonfuncs.c:614 +#: utils/adt/jsonfuncs.c:620 utils/misc/guc.c:6771 utils/misc/guc.c:6807 +#: utils/misc/guc.c:6877 utils/misc/guc.c:10982 utils/misc/guc.c:11016 +#: utils/misc/guc.c:11050 utils/misc/guc.c:11093 utils/misc/guc.c:11135 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1195 catalog/dependency.c:1202 +#: catalog/dependency.c:1204 catalog/dependency.c:1211 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Använd DROP ... CASCADE för att ta bort de beroende objekten också." -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1208 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "kan inte ta bort önskade objekt eftersom andra objekt beror på dem" #. translator: %d always has a value larger than 1 -#: catalog/dependency.c:1208 +#: catalog/dependency.c:1217 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" msgstr[0] "drop svämmar över (cascades) till %d andra objekt" msgstr[1] "drop svämmar över (cascades) till %d andra objekt" -#: catalog/dependency.c:1875 +#: catalog/dependency.c:1884 #, c-format msgid "constant of the type %s cannot be used here" msgstr "konstant av typen %s kan inte användas här" @@ -4070,421 +4072,431 @@ msgid "System catalog modifications are currently disallowed." msgstr "Systemkatalogändringar är för tillfället inte tillåtna." -#: catalog/heap.c:500 commands/tablecmds.c:2145 commands/tablecmds.c:2745 -#: commands/tablecmds.c:6175 +#: catalog/heap.c:509 commands/tablecmds.c:2173 commands/tablecmds.c:2773 +#: commands/tablecmds.c:6283 #, c-format msgid "tables can have at most %d columns" msgstr "tabeller kan ha som mest %d kolumner" -#: catalog/heap.c:518 commands/tablecmds.c:6468 +#: catalog/heap.c:527 commands/tablecmds.c:6576 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "kolumnnamn \"%s\" står i konflikt med ett systemkolumnnamn" -#: catalog/heap.c:534 +#: catalog/heap.c:543 #, c-format msgid "column name \"%s\" specified more than once" msgstr "kolumnnamn \"%s\" angiven mer än en gång" #. translator: first %s is an integer not a name -#: catalog/heap.c:609 +#: catalog/heap.c:618 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "partitionsnyckelkolumn \"%s\" har pseudo-typ %s" -#: catalog/heap.c:614 +#: catalog/heap.c:623 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "kolumn \"%s\" har pseudo-typ %s" -#: catalog/heap.c:645 +#: catalog/heap.c:654 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "composite-typ %s kan inte vara en del av sig själv" #. translator: first %s is an integer not a name -#: catalog/heap.c:700 +#: catalog/heap.c:709 #, c-format msgid "no collation was derived for partition key column %s with collatable type %s" msgstr "ingen jämförelse kunde härledas för partitionsnyckelkolumn %s med jämförelsetyp %s" -#: catalog/heap.c:706 commands/createas.c:203 commands/createas.c:486 +#: catalog/heap.c:715 commands/createas.c:203 commands/createas.c:486 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "ingen jämförelse kunde härledas för kolumn \"%s\" med jämförelsetyp %s" -#: catalog/heap.c:1155 catalog/index.c:865 commands/tablecmds.c:3520 +#: catalog/heap.c:1164 catalog/index.c:866 commands/tablecmds.c:3572 #, c-format msgid "relation \"%s\" already exists" msgstr "relationen \"%s\" finns redan" -#: catalog/heap.c:1171 catalog/pg_type.c:428 catalog/pg_type.c:775 +#: catalog/heap.c:1180 catalog/pg_type.c:429 catalog/pg_type.c:783 #: commands/typecmds.c:238 commands/typecmds.c:250 commands/typecmds.c:719 -#: commands/typecmds.c:1125 commands/typecmds.c:1337 commands/typecmds.c:2124 +#: commands/typecmds.c:1127 commands/typecmds.c:1339 commands/typecmds.c:2126 #, c-format msgid "type \"%s\" already exists" msgstr "typen \"%s\" existerar redan" -#: catalog/heap.c:1172 +#: catalog/heap.c:1181 #, c-format msgid "A relation has an associated type of the same name, so you must use a name that doesn't conflict with any existing type." msgstr "En relation har en associerad typ med samma namn så du måste använda ett namn som inte krockar med någon existerande typ." -#: catalog/heap.c:1201 +#: catalog/heap.c:1210 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "pg_class heap OID-värde är inte satt i binärt uppgraderingsläge" -#: catalog/heap.c:2400 +#: catalog/heap.c:2417 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "kan inte lägga till NO INHERIT-villkor till partitionerad tabell \"%s\"" -#: catalog/heap.c:2670 +#: catalog/heap.c:2687 #, c-format msgid "check constraint \"%s\" already exists" msgstr "check-villkor \"%s\" finns redan" -#: catalog/heap.c:2840 catalog/index.c:879 catalog/pg_constraint.c:668 -#: commands/tablecmds.c:8117 +#: catalog/heap.c:2857 catalog/index.c:880 catalog/pg_constraint.c:668 +#: commands/tablecmds.c:8254 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "integritetsvillkor \"%s\" för relation \"%s\" finns redan" -#: catalog/heap.c:2847 +#: catalog/heap.c:2864 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "villkor \"%s\" står i konflikt med icke-ärvt villkor på relation \"%s\"" -#: catalog/heap.c:2858 +#: catalog/heap.c:2875 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "villkor \"%s\" står i konflikt med ärvt villkor på relation \"%s\"" -#: catalog/heap.c:2868 +#: catalog/heap.c:2885 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "villkor \"%s\" står i konflikt med NOT VALID-villkor på relation \"%s\"" -#: catalog/heap.c:2873 +#: catalog/heap.c:2890 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "slår samman villkor \"%s\" med ärvd definition" -#: catalog/heap.c:2975 +#: catalog/heap.c:2995 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "kan inte använda genererad kolumn \"%s\" i kolumngenereringsuttryck" -#: catalog/heap.c:2977 +#: catalog/heap.c:2997 #, c-format msgid "A generated column cannot reference another generated column." msgstr "En genererad kolumn kan inte referera till en annan genererad kolumn." -#: catalog/heap.c:3029 +#: catalog/heap.c:3003 +#, c-format +msgid "cannot use whole-row variable in column generation expression" +msgstr "kan inte använda hela-raden-variabel i kolumngenereringsuttryck" + +#: catalog/heap.c:3004 +#, c-format +msgid "This would cause the generated column to depend on its own value." +msgstr "Detta skulle leda till att den genererade kolumnen beror på sitt eget värde." + +#: catalog/heap.c:3057 #, c-format msgid "generation expression is not immutable" msgstr "genereringsuttryck är inte immutable" -#: catalog/heap.c:3057 rewrite/rewriteHandler.c:1192 +#: catalog/heap.c:3085 rewrite/rewriteHandler.c:1216 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "kolumn \"%s\" har typ %s men default-uttryck har typen %s" -#: catalog/heap.c:3062 commands/prepare.c:367 parser/parse_node.c:412 -#: parser/parse_target.c:589 parser/parse_target.c:869 -#: parser/parse_target.c:879 rewrite/rewriteHandler.c:1197 +#: catalog/heap.c:3090 commands/prepare.c:371 parser/parse_node.c:412 +#: parser/parse_target.c:588 parser/parse_target.c:868 +#: parser/parse_target.c:878 rewrite/rewriteHandler.c:1221 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Du måste skriva om eller typomvandla uttrycket." -#: catalog/heap.c:3109 +#: catalog/heap.c:3137 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "bara tabell \"%s\" kan refereras i check-villkoret" -#: catalog/heap.c:3366 +#: catalog/heap.c:3435 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "inget stöd för kombinationen ON COMMIT och främmande nyckel" -#: catalog/heap.c:3367 +#: catalog/heap.c:3436 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "Tabell \"%s\" refererar till \"%s\", men de har inte samma ON COMMIT-inställning." -#: catalog/heap.c:3372 +#: catalog/heap.c:3441 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "kan inte trunkera en tabell som refererars till i ett främmande nyckelvillkor" -#: catalog/heap.c:3373 +#: catalog/heap.c:3442 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Tabell \"%s\" refererar till \"%s\"." -#: catalog/heap.c:3375 +#: catalog/heap.c:3444 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Trunkera tabellen \"%s\" samtidigt, eller använd TRUNCATE ... CASCADE." -#: catalog/index.c:219 parser/parse_utilcmd.c:2097 +#: catalog/index.c:220 parser/parse_utilcmd.c:2131 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "multipla primärnycklar för tabell \"%s\" tillåts inte" -#: catalog/index.c:237 +#: catalog/index.c:238 #, c-format msgid "primary keys cannot be expressions" msgstr "primärnycklar kan inte vara uttryck" -#: catalog/index.c:254 +#: catalog/index.c:255 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "primärnyckelkolumn \"%s\" är inte markerad NOT NULL" -#: catalog/index.c:764 catalog/index.c:1843 +#: catalog/index.c:765 catalog/index.c:1912 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "användardefinierade index på systemkatalogen är inte möjligt" -#: catalog/index.c:804 +#: catalog/index.c:805 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "ickedeterministiska jämförelser (collation) stöds inte för operatorklass \"%s\"" -#: catalog/index.c:819 +#: catalog/index.c:820 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "samtida indexskapande på systemkatalogtabeller stöds inte" -#: catalog/index.c:828 catalog/index.c:1281 +#: catalog/index.c:829 catalog/index.c:1282 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "samtida indexskapande för uteslutningsvillkor stöds inte" -#: catalog/index.c:837 +#: catalog/index.c:838 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "delade index kan inte skapas efter initdb" -#: catalog/index.c:857 commands/createas.c:252 commands/sequence.c:154 -#: parser/parse_utilcmd.c:210 +#: catalog/index.c:858 commands/createas.c:252 commands/sequence.c:154 +#: parser/parse_utilcmd.c:211 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "relationen \"%s\" finns redan, hoppar över" -#: catalog/index.c:907 +#: catalog/index.c:908 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "pg_class index OID-värde är inte satt i binärt uppgraderingsläge" -#: catalog/index.c:2128 +#: catalog/index.c:2208 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY måste vara första operationen i transaktion" -#: catalog/index.c:2859 +#: catalog/index.c:2939 #, c-format msgid "building index \"%s\" on table \"%s\" serially" msgstr "bygger index \"%s\" på tabell \"%s\" seriellt" -#: catalog/index.c:2864 +#: catalog/index.c:2944 #, c-format msgid "building index \"%s\" on table \"%s\" with request for %d parallel worker" msgid_plural "building index \"%s\" on table \"%s\" with request for %d parallel workers" msgstr[0] "bygger index \"%s\" på tabell \"%s\" och efterfrågar %d parallell arbetare" msgstr[1] "bygger index \"%s\" på tabell \"%s\" och efterfrågar %d parallella arbetare" -#: catalog/index.c:3492 +#: catalog/index.c:3561 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "kan inte omindexera temporära tabeller som tillhör andra sessioner" -#: catalog/index.c:3503 +#: catalog/index.c:3572 commands/indexcmds.c:3005 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "kan inte omindexera angivet index i TOAST-tabell" -#: catalog/index.c:3625 +#: catalog/index.c:3694 #, c-format msgid "index \"%s\" was reindexed" msgstr "index \"%s\" omindexerades" -#: catalog/index.c:3701 commands/indexcmds.c:3023 +#: catalog/index.c:3770 commands/indexcmds.c:3026 #, c-format msgid "REINDEX of partitioned tables is not yet implemented, skipping \"%s\"" msgstr "REINDEX på partitionerade tabeller är inte implementerat ännu, hoppar över \"%s\"" -#: catalog/index.c:3756 +#: catalog/index.c:3825 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "kan inte omindexera ogiltigt index \"%s.%s\" på TOAST-tabell, hoppar över" -#: catalog/namespace.c:257 catalog/namespace.c:461 catalog/namespace.c:553 -#: commands/trigger.c:5043 +#: catalog/namespace.c:258 catalog/namespace.c:462 catalog/namespace.c:554 +#: commands/trigger.c:5072 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "referenser till andra databaser är inte implementerat: \"%s.%s.%s\"" -#: catalog/namespace.c:314 +#: catalog/namespace.c:315 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "temporära tabeller kan inte anges med ett schemanamn" -#: catalog/namespace.c:395 +#: catalog/namespace.c:396 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "kunde inte ta lås på relationen \"%s.%s\"" -#: catalog/namespace.c:400 commands/lockcmds.c:142 commands/lockcmds.c:227 +#: catalog/namespace.c:401 commands/lockcmds.c:143 commands/lockcmds.c:228 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "kunde inte ta lås på relationen \"%s\"" -#: catalog/namespace.c:428 parser/parse_relation.c:1357 +#: catalog/namespace.c:429 parser/parse_relation.c:1354 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "relationen \"%s.%s\" existerar inte" -#: catalog/namespace.c:433 parser/parse_relation.c:1370 -#: parser/parse_relation.c:1378 +#: catalog/namespace.c:434 parser/parse_relation.c:1367 +#: parser/parse_relation.c:1375 #, c-format msgid "relation \"%s\" does not exist" msgstr "relationen \"%s\" existerar inte" -#: catalog/namespace.c:499 catalog/namespace.c:3030 commands/extension.c:1519 +#: catalog/namespace.c:500 catalog/namespace.c:3031 commands/extension.c:1519 #: commands/extension.c:1525 #, c-format msgid "no schema has been selected to create in" msgstr "inget schema har valts för att skapa i" -#: catalog/namespace.c:651 catalog/namespace.c:664 +#: catalog/namespace.c:652 catalog/namespace.c:665 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "kan inte skapa relationer i temporära scheman som tillhör andra sessioner" -#: catalog/namespace.c:655 +#: catalog/namespace.c:656 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "kan inte skapa temporär relation i icke-temporärt schema" -#: catalog/namespace.c:670 +#: catalog/namespace.c:671 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "bara temporära relationer får skapas i temporära scheman" -#: catalog/namespace.c:2222 +#: catalog/namespace.c:2223 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "statistikobjektet \"%s\" existerar inte" -#: catalog/namespace.c:2345 +#: catalog/namespace.c:2346 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "textsökparser \"%s\" finns inte" -#: catalog/namespace.c:2471 +#: catalog/namespace.c:2472 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "textsökkatalog \"%s\" finns inte" -#: catalog/namespace.c:2598 +#: catalog/namespace.c:2599 #, c-format msgid "text search template \"%s\" does not exist" msgstr "textsökmall \"%s\" finns inte" -#: catalog/namespace.c:2724 commands/tsearchcmds.c:1194 +#: catalog/namespace.c:2725 commands/tsearchcmds.c:1194 #: utils/cache/ts_cache.c:617 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "textsökkonfiguration \"%s\" finns inte" -#: catalog/namespace.c:2837 parser/parse_expr.c:872 parser/parse_target.c:1228 +#: catalog/namespace.c:2838 parser/parse_expr.c:872 parser/parse_target.c:1227 #, c-format msgid "cross-database references are not implemented: %s" msgstr "referenser till andra databaser är inte implementerat: %s" -#: catalog/namespace.c:2843 gram.y:14981 gram.y:16435 parser/parse_expr.c:879 -#: parser/parse_target.c:1235 +#: catalog/namespace.c:2844 gram.y:14982 gram.y:16451 parser/parse_expr.c:879 +#: parser/parse_target.c:1234 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "ej korrekt kvalificerat namn (för många namn med punkt): %s" -#: catalog/namespace.c:2973 +#: catalog/namespace.c:2974 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "kan inte flytta objekt in eller ut från temporära scheman" -#: catalog/namespace.c:2979 +#: catalog/namespace.c:2980 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "kan inte flytta objekt in eller ut från TOAST-schema" -#: catalog/namespace.c:3052 commands/schemacmds.c:256 commands/schemacmds.c:336 -#: commands/tablecmds.c:1194 +#: catalog/namespace.c:3053 commands/schemacmds.c:256 commands/schemacmds.c:336 +#: commands/tablecmds.c:1203 #, c-format msgid "schema \"%s\" does not exist" msgstr "schema \"%s\" existerar inte" -#: catalog/namespace.c:3083 +#: catalog/namespace.c:3084 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "ej korrekt relationsnamn (för många namn med punkt): %s" -#: catalog/namespace.c:3646 +#: catalog/namespace.c:3647 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "jämförelse \"%s\" för kodning \"%s\" finns inte" -#: catalog/namespace.c:3701 +#: catalog/namespace.c:3702 #, c-format msgid "conversion \"%s\" does not exist" msgstr "konvertering \"%s\" finns inte" -#: catalog/namespace.c:3965 +#: catalog/namespace.c:3966 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "rättighet saknas för att skapa temporära tabeller i databasen \"%s\"" -#: catalog/namespace.c:3981 +#: catalog/namespace.c:3982 #, c-format msgid "cannot create temporary tables during recovery" msgstr "kan inte skapa temptabeller under återställning" -#: catalog/namespace.c:3987 +#: catalog/namespace.c:3988 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "kan inte skapa temporära tabeller under en parallell operation" -#: catalog/namespace.c:4286 commands/tablespace.c:1205 commands/variable.c:64 -#: utils/misc/guc.c:11144 utils/misc/guc.c:11222 +#: catalog/namespace.c:4289 commands/tablespace.c:1213 commands/variable.c:64 +#: utils/misc/guc.c:11167 utils/misc/guc.c:11245 #, c-format msgid "List syntax is invalid." msgstr "List-syntaxen är ogiltig." -#: catalog/objectaddress.c:1275 catalog/pg_publication.c:57 -#: commands/policy.c:95 commands/policy.c:375 commands/policy.c:465 -#: commands/tablecmds.c:230 commands/tablecmds.c:272 commands/tablecmds.c:1989 -#: commands/tablecmds.c:5626 commands/tablecmds.c:11089 +#: catalog/objectaddress.c:1275 catalog/pg_publication.c:58 +#: commands/policy.c:96 commands/policy.c:376 commands/tablecmds.c:230 +#: commands/tablecmds.c:272 commands/tablecmds.c:2017 commands/tablecmds.c:5725 +#: commands/tablecmds.c:11342 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" är inte en tabell" #: catalog/objectaddress.c:1282 commands/tablecmds.c:242 -#: commands/tablecmds.c:5656 commands/tablecmds.c:15711 commands/view.c:119 +#: commands/tablecmds.c:5764 commands/tablecmds.c:16034 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" är inte en vy" #: catalog/objectaddress.c:1289 commands/matview.c:175 commands/tablecmds.c:248 -#: commands/tablecmds.c:15716 +#: commands/tablecmds.c:16039 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" är inte en materialiserad vy" #: catalog/objectaddress.c:1296 commands/tablecmds.c:266 -#: commands/tablecmds.c:5659 commands/tablecmds.c:15721 +#: commands/tablecmds.c:5767 commands/tablecmds.c:16044 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" är inte en främmande tabell" @@ -4504,10 +4516,10 @@ msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "standardvärde för kolumn \"%s\" i relation \"%s\" existerar inte" -#: catalog/objectaddress.c:1550 commands/functioncmds.c:133 -#: commands/tablecmds.c:258 commands/typecmds.c:263 commands/typecmds.c:3275 +#: catalog/objectaddress.c:1550 commands/functioncmds.c:135 +#: commands/tablecmds.c:258 commands/typecmds.c:263 commands/typecmds.c:3283 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:845 -#: utils/adt/acl.c:4436 +#: utils/adt/acl.c:4435 #, c-format msgid "type \"%s\" does not exist" msgstr "typen \"%s\" existerar inte" @@ -4592,12 +4604,12 @@ msgid "argument list length must be exactly %d" msgstr "argumentlistans längd måste vara exakt %d" -#: catalog/objectaddress.c:2393 libpq/be-fsstubs.c:321 +#: catalog/objectaddress.c:2393 libpq/be-fsstubs.c:318 #, c-format msgid "must be owner of large object %u" msgstr "måste vara ägaren till stort objekt %u" -#: catalog/objectaddress.c:2408 commands/functioncmds.c:1445 +#: catalog/objectaddress.c:2408 commands/functioncmds.c:1448 #, c-format msgid "must be owner of type %s or type %s" msgstr "måste vara ägaren till typ %s eller typ %s" @@ -4605,87 +4617,87 @@ #: catalog/objectaddress.c:2458 catalog/objectaddress.c:2475 #, c-format msgid "must be superuser" -msgstr "måste vara superanvändare" +msgstr "måste vara en superuser" #: catalog/objectaddress.c:2465 #, c-format msgid "must have CREATEROLE privilege" msgstr "måste ha rättigheten CREATEROLE" -#: catalog/objectaddress.c:2544 +#: catalog/objectaddress.c:2545 #, c-format msgid "unrecognized object type \"%s\"" msgstr "okänd objekttyp \"%s\"" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2772 +#: catalog/objectaddress.c:2773 #, c-format msgid "column %s of %s" msgstr "kolumn %s av %s" -#: catalog/objectaddress.c:2782 +#: catalog/objectaddress.c:2783 #, c-format msgid "function %s" msgstr "funktion %s" -#: catalog/objectaddress.c:2787 +#: catalog/objectaddress.c:2788 #, c-format msgid "type %s" msgstr "typ %s" -#: catalog/objectaddress.c:2817 +#: catalog/objectaddress.c:2818 #, c-format msgid "cast from %s to %s" msgstr "typomvandling från %s till %s" -#: catalog/objectaddress.c:2845 +#: catalog/objectaddress.c:2846 #, c-format msgid "collation %s" msgstr "jämförelse %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2871 +#: catalog/objectaddress.c:2872 #, c-format msgid "constraint %s on %s" msgstr "villkor %s på %s" -#: catalog/objectaddress.c:2877 +#: catalog/objectaddress.c:2878 #, c-format msgid "constraint %s" msgstr "villkor %s" -#: catalog/objectaddress.c:2904 +#: catalog/objectaddress.c:2905 #, c-format msgid "conversion %s" msgstr "konvertering %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:2943 +#: catalog/objectaddress.c:2944 #, c-format msgid "default value for %s" msgstr "default-värde för %s" -#: catalog/objectaddress.c:2952 +#: catalog/objectaddress.c:2953 #, c-format msgid "language %s" msgstr "språk %s" -#: catalog/objectaddress.c:2957 +#: catalog/objectaddress.c:2958 #, c-format msgid "large object %u" msgstr "stort objekt %u" -#: catalog/objectaddress.c:2962 +#: catalog/objectaddress.c:2963 #, c-format msgid "operator %s" msgstr "operator %s" -#: catalog/objectaddress.c:2994 +#: catalog/objectaddress.c:2995 #, c-format msgid "operator class %s for access method %s" msgstr "operatorklass %s för accessmetod %s" -#: catalog/objectaddress.c:3017 +#: catalog/objectaddress.c:3018 #, c-format msgid "access method %s" msgstr "accessmetod %s" @@ -4694,7 +4706,7 @@ #. first two %s's are data type names, the third %s is the #. description of the operator family, and the last %s is the #. textual form of the operator with arguments. -#: catalog/objectaddress.c:3059 +#: catalog/objectaddress.c:3060 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "operator %d (%s, %s) för %s: %s" @@ -4703,221 +4715,221 @@ #. are data type names, the third %s is the description of the #. operator family, and the last %s is the textual form of the #. function with arguments. -#: catalog/objectaddress.c:3109 +#: catalog/objectaddress.c:3110 #, c-format msgid "function %d (%s, %s) of %s: %s" msgstr "funktion %d (%s, %s) för %s: %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3153 +#: catalog/objectaddress.c:3154 #, c-format msgid "rule %s on %s" msgstr "regel %s på %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3191 +#: catalog/objectaddress.c:3192 #, c-format msgid "trigger %s on %s" msgstr "utlösare %s på %s" -#: catalog/objectaddress.c:3207 +#: catalog/objectaddress.c:3208 #, c-format msgid "schema %s" msgstr "schema %s" -#: catalog/objectaddress.c:3230 +#: catalog/objectaddress.c:3231 #, c-format msgid "statistics object %s" msgstr "statistikobjekt %s" -#: catalog/objectaddress.c:3257 +#: catalog/objectaddress.c:3258 #, c-format msgid "text search parser %s" msgstr "textsökparser %s" -#: catalog/objectaddress.c:3283 +#: catalog/objectaddress.c:3284 #, c-format msgid "text search dictionary %s" msgstr "textsökordlista %s" -#: catalog/objectaddress.c:3309 +#: catalog/objectaddress.c:3310 #, c-format msgid "text search template %s" msgstr "textsökmall %s" -#: catalog/objectaddress.c:3335 +#: catalog/objectaddress.c:3336 #, c-format msgid "text search configuration %s" msgstr "textsökkonfiguration %s" -#: catalog/objectaddress.c:3344 +#: catalog/objectaddress.c:3345 #, c-format msgid "role %s" msgstr "roll %s" -#: catalog/objectaddress.c:3357 +#: catalog/objectaddress.c:3358 #, c-format msgid "database %s" msgstr "databas %s" -#: catalog/objectaddress.c:3369 +#: catalog/objectaddress.c:3370 #, c-format msgid "tablespace %s" msgstr "tabellutrymme %s" -#: catalog/objectaddress.c:3378 +#: catalog/objectaddress.c:3379 #, c-format msgid "foreign-data wrapper %s" msgstr "främmande data-omvandlare %s" -#: catalog/objectaddress.c:3387 +#: catalog/objectaddress.c:3388 #, c-format msgid "server %s" msgstr "server %s" -#: catalog/objectaddress.c:3415 +#: catalog/objectaddress.c:3416 #, c-format msgid "user mapping for %s on server %s" msgstr "användarmappning för %s på server %s" -#: catalog/objectaddress.c:3460 +#: catalog/objectaddress.c:3461 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "standardrättigheter för nya relationer som tillhör rollen %s i schema %s" -#: catalog/objectaddress.c:3464 +#: catalog/objectaddress.c:3465 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "standardrättigheter för nya relationer som tillhör rollen %s" -#: catalog/objectaddress.c:3470 +#: catalog/objectaddress.c:3471 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "standardrättigheter för nya sekvenser som tillhör rollen %s i schema %s" -#: catalog/objectaddress.c:3474 +#: catalog/objectaddress.c:3475 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "standardrättigheter för nya sekvenser som tillhör rollen %s" -#: catalog/objectaddress.c:3480 +#: catalog/objectaddress.c:3481 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "standardrättigheter för nya funktioner som tillhör rollen %s i schema %s" -#: catalog/objectaddress.c:3484 +#: catalog/objectaddress.c:3485 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "standardrättigheter för nya funktioner som tillhör rollen %s" -#: catalog/objectaddress.c:3490 +#: catalog/objectaddress.c:3491 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "standardrättigheter för nya typer som tillhör rollen %s i schema %s" -#: catalog/objectaddress.c:3494 +#: catalog/objectaddress.c:3495 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "standardrättigheter för nya typer som tillhör rollen %s" -#: catalog/objectaddress.c:3500 +#: catalog/objectaddress.c:3501 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr " %zu)" msgstr "servern försöke skicka för stort GSSAPI-paket (%zu > %zu)" -#: libpq/be-secure-gssapi.c:330 +#: libpq/be-secure-gssapi.c:351 #, c-format msgid "oversize GSSAPI packet sent by the client (%zu > %zu)" msgstr "för stort GSSAPI-paket skickat av klienten (%zu > %zu)" -#: libpq/be-secure-gssapi.c:364 +#: libpq/be-secure-gssapi.c:389 msgid "GSSAPI unwrap error" msgstr "GSSAPI-fel vid uppackning" -#: libpq/be-secure-gssapi.c:369 +#: libpq/be-secure-gssapi.c:396 #, c-format msgid "incoming GSSAPI message did not use confidentiality" msgstr "inkommande GSSAPI-meddelande använde inte sekretess" -#: libpq/be-secure-gssapi.c:525 +#: libpq/be-secure-gssapi.c:570 #, c-format msgid "oversize GSSAPI packet sent by the client (%zu > %d)" msgstr "för stort GSSAPI-paket skickat av klienten (%zu > %d)" -#: libpq/be-secure-gssapi.c:547 +#: libpq/be-secure-gssapi.c:594 msgid "could not accept GSSAPI security context" msgstr "kunde inte acceptera GSSSPI-säkerhetskontext" -#: libpq/be-secure-gssapi.c:637 +#: libpq/be-secure-gssapi.c:689 msgid "GSSAPI size check error" msgstr "GSSAPI-fel vid kontroll av storlek" -#: libpq/be-secure-openssl.c:112 +#: libpq/be-secure-openssl.c:115 #, c-format msgid "could not create SSL context: %s" msgstr "kunde inte skapa SSL-kontext: %s" -#: libpq/be-secure-openssl.c:138 +#: libpq/be-secure-openssl.c:141 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "kunde inte ladda serverns certifikatfil \"%s\": %s" -#: libpq/be-secure-openssl.c:158 +#: libpq/be-secure-openssl.c:161 #, c-format msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase" msgstr "privat nyckelfil \"%s\" kan inte laddas om eftersom den kräver en lösenordsfras" -#: libpq/be-secure-openssl.c:163 +#: libpq/be-secure-openssl.c:166 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "kunde inte läsa in privata nyckelfilen \"%s\": %s" -#: libpq/be-secure-openssl.c:172 +#: libpq/be-secure-openssl.c:175 #, c-format msgid "check of private key failed: %s" msgstr "kontroll av privat nyckel misslyckades: %s" -#: libpq/be-secure-openssl.c:184 libpq/be-secure-openssl.c:206 +#. translator: first %s is a GUC option name, second %s is its value +#: libpq/be-secure-openssl.c:188 libpq/be-secure-openssl.c:211 #, c-format msgid "\"%s\" setting \"%s\" not supported by this build" msgstr "\"%s\"-inställning \"%s\" stöds inte av detta bygge" -#: libpq/be-secure-openssl.c:194 +#: libpq/be-secure-openssl.c:198 #, c-format msgid "could not set minimum SSL protocol version" msgstr "kunde inte sätta minimal SSL-protokollversion" -#: libpq/be-secure-openssl.c:216 +#: libpq/be-secure-openssl.c:221 #, c-format msgid "could not set maximum SSL protocol version" msgstr "kunde inte sätta maximal SSL-protokollversion" -#: libpq/be-secure-openssl.c:232 +#: libpq/be-secure-openssl.c:237 #, c-format msgid "could not set SSL protocol version range" msgstr "kunde inte sätta SSL-protokollversionsintervall" -#: libpq/be-secure-openssl.c:233 +#: libpq/be-secure-openssl.c:238 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "\"%s\" får inte vara högre än \"%s\"" -#: libpq/be-secure-openssl.c:257 +#: libpq/be-secure-openssl.c:272 #, c-format msgid "could not set the cipher list (no valid ciphers available)" msgstr "kunde inte sätta kryptolistan (inga giltiga krypton är tillgängliga)" -#: libpq/be-secure-openssl.c:275 +#: libpq/be-secure-openssl.c:292 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "kunde inte ladda root-certifikatfilen \"%s\": %s" -#: libpq/be-secure-openssl.c:302 +#: libpq/be-secure-openssl.c:338 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" -msgstr "kunde inte ladda certifikatåterkallningslistfil \"%s\" för SSL-certifikat: %s" +msgstr "kunde inte ladda fil \"%s\" med certifikatåterkallningslista för SSL: %s" -#: libpq/be-secure-openssl.c:378 +#: libpq/be-secure-openssl.c:395 #, c-format msgid "could not initialize SSL connection: SSL context not set up" msgstr "kunde inte initiera SSL-uppkoppling: SSL-kontex ej uppsatt" -#: libpq/be-secure-openssl.c:386 +#: libpq/be-secure-openssl.c:403 #, c-format msgid "could not initialize SSL connection: %s" msgstr "kunde inte initiera SSL-uppkoppling: %s" -#: libpq/be-secure-openssl.c:394 +#: libpq/be-secure-openssl.c:411 #, c-format msgid "could not set SSL socket: %s" msgstr "kunde inte sätta SSL-uttag (socket): %s" -#: libpq/be-secure-openssl.c:449 +#: libpq/be-secure-openssl.c:466 #, c-format msgid "could not accept SSL connection: %m" msgstr "kunde inte acceptera SSL-uppkoppling: %m" -#: libpq/be-secure-openssl.c:453 libpq/be-secure-openssl.c:506 +#: libpq/be-secure-openssl.c:470 libpq/be-secure-openssl.c:523 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "kunde inte starta SSL-anslutning: hittade EOF" -#: libpq/be-secure-openssl.c:492 +#: libpq/be-secure-openssl.c:509 #, c-format msgid "could not accept SSL connection: %s" msgstr "kunde inte acceptera SSL-uppkoppling: %s" -#: libpq/be-secure-openssl.c:495 +#: libpq/be-secure-openssl.c:512 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "Detta kan tyda på att servern inte stöder någon SSL-protokolversion mellan %s och %s." -#: libpq/be-secure-openssl.c:511 libpq/be-secure-openssl.c:642 -#: libpq/be-secure-openssl.c:706 +#: libpq/be-secure-openssl.c:528 libpq/be-secure-openssl.c:659 +#: libpq/be-secure-openssl.c:723 #, c-format msgid "unrecognized SSL error code: %d" msgstr "okänd SSL-felkod: %d" -#: libpq/be-secure-openssl.c:553 +#: libpq/be-secure-openssl.c:570 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "SSL-certifikatets \"comman name\" innehåller null-värden" -#: libpq/be-secure-openssl.c:631 libpq/be-secure-openssl.c:690 +#: libpq/be-secure-openssl.c:648 libpq/be-secure-openssl.c:707 #, c-format msgid "SSL error: %s" msgstr "SSL-fel: %s" -#: libpq/be-secure-openssl.c:871 +#: libpq/be-secure-openssl.c:889 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "kunde inte öppna DH-parameterfil \"%s\": %m" -#: libpq/be-secure-openssl.c:883 +#: libpq/be-secure-openssl.c:901 #, c-format msgid "could not load DH parameters file: %s" msgstr "kunde inte ladda DH-parameterfil: %s" -#: libpq/be-secure-openssl.c:893 +#: libpq/be-secure-openssl.c:911 #, c-format msgid "invalid DH parameters: %s" msgstr "ogiltiga DH-parametrar: %s" -#: libpq/be-secure-openssl.c:901 +#: libpq/be-secure-openssl.c:920 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "ogiltiga DH-parametrar: p är inte ett primtal" -#: libpq/be-secure-openssl.c:909 +#: libpq/be-secure-openssl.c:929 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "ogiltiga DH-parametrar: varken lämplig generator eller säkert primtal" -#: libpq/be-secure-openssl.c:1065 +#: libpq/be-secure-openssl.c:1086 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: kunde inte ladda DH-parametrar" -#: libpq/be-secure-openssl.c:1073 +#: libpq/be-secure-openssl.c:1094 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: kunde inte sätta DH-parametrar: %s" -#: libpq/be-secure-openssl.c:1100 +#: libpq/be-secure-openssl.c:1121 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: okänt kurvnamn: %s" -#: libpq/be-secure-openssl.c:1109 +#: libpq/be-secure-openssl.c:1130 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: kunde inte skapa nyckel" -#: libpq/be-secure-openssl.c:1137 +#: libpq/be-secure-openssl.c:1158 msgid "no SSL error reported" msgstr "inget SSL-fel rapporterat" -#: libpq/be-secure-openssl.c:1141 +#: libpq/be-secure-openssl.c:1162 #, c-format msgid "SSL error code %lu" msgstr "SSL-felkod %lu" @@ -13813,16 +13887,16 @@ #: libpq/hba.c:510 libpq/hba.c:867 libpq/hba.c:887 libpq/hba.c:925 #: libpq/hba.c:975 libpq/hba.c:989 libpq/hba.c:1013 libpq/hba.c:1022 #: libpq/hba.c:1035 libpq/hba.c:1056 libpq/hba.c:1069 libpq/hba.c:1089 -#: libpq/hba.c:1111 libpq/hba.c:1123 libpq/hba.c:1179 libpq/hba.c:1199 -#: libpq/hba.c:1213 libpq/hba.c:1232 libpq/hba.c:1243 libpq/hba.c:1258 -#: libpq/hba.c:1276 libpq/hba.c:1292 libpq/hba.c:1304 libpq/hba.c:1341 -#: libpq/hba.c:1382 libpq/hba.c:1395 libpq/hba.c:1417 libpq/hba.c:1430 -#: libpq/hba.c:1442 libpq/hba.c:1460 libpq/hba.c:1510 libpq/hba.c:1554 -#: libpq/hba.c:1565 libpq/hba.c:1581 libpq/hba.c:1598 libpq/hba.c:1608 -#: libpq/hba.c:1666 libpq/hba.c:1704 libpq/hba.c:1726 libpq/hba.c:1738 -#: libpq/hba.c:1825 libpq/hba.c:1843 libpq/hba.c:1937 libpq/hba.c:1956 -#: libpq/hba.c:1985 libpq/hba.c:1998 libpq/hba.c:2021 libpq/hba.c:2043 -#: libpq/hba.c:2057 tsearch/ts_locale.c:217 +#: libpq/hba.c:1111 libpq/hba.c:1123 libpq/hba.c:1182 libpq/hba.c:1202 +#: libpq/hba.c:1216 libpq/hba.c:1236 libpq/hba.c:1247 libpq/hba.c:1262 +#: libpq/hba.c:1281 libpq/hba.c:1297 libpq/hba.c:1309 libpq/hba.c:1346 +#: libpq/hba.c:1387 libpq/hba.c:1400 libpq/hba.c:1422 libpq/hba.c:1434 +#: libpq/hba.c:1452 libpq/hba.c:1502 libpq/hba.c:1546 libpq/hba.c:1557 +#: libpq/hba.c:1573 libpq/hba.c:1590 libpq/hba.c:1600 libpq/hba.c:1662 +#: libpq/hba.c:1700 libpq/hba.c:1722 libpq/hba.c:1734 libpq/hba.c:1821 +#: libpq/hba.c:1839 libpq/hba.c:1933 libpq/hba.c:1952 libpq/hba.c:1981 +#: libpq/hba.c:1994 libpq/hba.c:2017 libpq/hba.c:2039 libpq/hba.c:2053 +#: tsearch/ts_locale.c:217 #, c-format msgid "line %d of configuration file \"%s\"" msgstr "rad %d i konfigurationsfil \"%s\"" @@ -13923,239 +13997,234 @@ msgid "Specify one address range per line." msgstr "Ange ett adressintervall per rad." -#: libpq/hba.c:1177 +#: libpq/hba.c:1180 #, c-format msgid "invalid IP address \"%s\": %s" msgstr "ogiltig IP-adress \"%s\": %s" -#: libpq/hba.c:1197 +#: libpq/hba.c:1200 #, c-format msgid "specifying both host name and CIDR mask is invalid: \"%s\"" msgstr "får inte ange både värdnamn och CIDR-mask: \"%s\"" -#: libpq/hba.c:1211 +#: libpq/hba.c:1214 #, c-format msgid "invalid CIDR mask in address \"%s\"" msgstr "ogiltig CIDR-mask i adress \"%s\"" -#: libpq/hba.c:1230 +#: libpq/hba.c:1234 #, c-format msgid "end-of-line before netmask specification" msgstr "slut-på-fil innan nätmask-angivelse" -#: libpq/hba.c:1231 +#: libpq/hba.c:1235 #, c-format msgid "Specify an address range in CIDR notation, or provide a separate netmask." msgstr "Ange adressintervall på CIDR-format eller ange en separat nätmask." -#: libpq/hba.c:1242 +#: libpq/hba.c:1246 #, c-format msgid "multiple values specified for netmask" msgstr "multipla värden angivna för nätmask" -#: libpq/hba.c:1256 +#: libpq/hba.c:1260 #, c-format msgid "invalid IP mask \"%s\": %s" msgstr "ogiltig IP-mask \"%s\": %s" -#: libpq/hba.c:1275 +#: libpq/hba.c:1280 #, c-format msgid "IP address and mask do not match" msgstr "IP-adress och mask matchar inte varandra" -#: libpq/hba.c:1291 +#: libpq/hba.c:1296 #, c-format msgid "end-of-line before authentication method" msgstr "slut-på-rad innan autentiseringsmetod" -#: libpq/hba.c:1302 +#: libpq/hba.c:1307 #, c-format msgid "multiple values specified for authentication type" msgstr "multipla värden angivna för autentiseringstyp" -#: libpq/hba.c:1303 +#: libpq/hba.c:1308 #, c-format msgid "Specify exactly one authentication type per line." msgstr "Ange exakt en autentiseringstyp per rad." -#: libpq/hba.c:1380 +#: libpq/hba.c:1385 #, c-format msgid "invalid authentication method \"%s\"" msgstr "ogiltig autentiseringsmetod \"%s\"" -#: libpq/hba.c:1393 +#: libpq/hba.c:1398 #, c-format msgid "invalid authentication method \"%s\": not supported by this build" msgstr "ogiltig autentiseringsmetod \"%s\": stöds inte av detta bygge" -#: libpq/hba.c:1416 +#: libpq/hba.c:1421 #, c-format msgid "gssapi authentication is not supported on local sockets" msgstr "gssapi-autentisering stöds ej på lokala uttag (socket)" -#: libpq/hba.c:1429 -#, c-format -msgid "GSSAPI encryption only supports gss, trust, or reject authentication" -msgstr "GSSAPI-kryptering stöder bara gss-, trust- eller reject-autentisering" - -#: libpq/hba.c:1441 +#: libpq/hba.c:1433 #, c-format msgid "peer authentication is only supported on local sockets" msgstr "peer-autentisering stöds bara på logala uttag (socket)" -#: libpq/hba.c:1459 +#: libpq/hba.c:1451 #, c-format msgid "cert authentication is only supported on hostssl connections" msgstr "cert-autentisering stöds bara för hostssl-anslutningar" -#: libpq/hba.c:1509 +#: libpq/hba.c:1501 #, c-format msgid "authentication option not in name=value format: %s" msgstr "autentiseringsflagga et på formatet namn=värde: %s" -#: libpq/hba.c:1553 +#: libpq/hba.c:1545 #, c-format msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix" msgstr "kan inte använda ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter eller ldapurl tillsammans med ldapprefix" -#: libpq/hba.c:1564 +#: libpq/hba.c:1556 #, c-format msgid "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix\", or \"ldapsuffix\" to be set" msgstr "autentiseringsmetoden \"ldap\" kräver att argumenten \"ldapbasedn\", \"ldapprefix\" eller \"ldapsuffix\" är satta" -#: libpq/hba.c:1580 +#: libpq/hba.c:1572 #, c-format msgid "cannot use ldapsearchattribute together with ldapsearchfilter" msgstr "kan inte använda ldapsearchattribute tillsammans med ldapsearchfilter" -#: libpq/hba.c:1597 +#: libpq/hba.c:1589 #, c-format msgid "list of RADIUS servers cannot be empty" msgstr "listan med RADIUS-servrar kan inte vara tom" -#: libpq/hba.c:1607 +#: libpq/hba.c:1599 #, c-format msgid "list of RADIUS secrets cannot be empty" msgstr "listan med RADIUS-hemligheter kan inte vara tom" -#: libpq/hba.c:1660 +#: libpq/hba.c:1656 #, c-format msgid "the number of %s (%d) must be 1 or the same as the number of %s (%d)" msgstr "antalet %s (%d) måste vara 1 eller samma som antalet %s (%d)" -#: libpq/hba.c:1694 +#: libpq/hba.c:1690 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi och cert" -#: libpq/hba.c:1703 +#: libpq/hba.c:1699 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert kan bara konfigureras för \"hostssl\"-rader" -#: libpq/hba.c:1725 +#: libpq/hba.c:1721 #, c-format msgid "clientcert cannot be set to \"no-verify\" when using \"cert\" authentication" msgstr "clientcert kan inte vara satt till \"no-verify\" när man använder \"cert\"-autentisering" -#: libpq/hba.c:1737 +#: libpq/hba.c:1733 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "ogiltigt värde för clientcert: \"%s\"" -#: libpq/hba.c:1771 +#: libpq/hba.c:1767 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "kunde inte parsa LDAP-URL \"%s\": %s" -#: libpq/hba.c:1782 +#: libpq/hba.c:1778 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "ej stöd för LDAP-URL-schema: %s" -#: libpq/hba.c:1806 +#: libpq/hba.c:1802 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "LDAP-URL:er stöds inte på denna platform" -#: libpq/hba.c:1824 +#: libpq/hba.c:1820 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "ogiltigt ldap-schema-värde: \"%s\"" -#: libpq/hba.c:1842 +#: libpq/hba.c:1838 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "ogiltigt LDAP-portnummer \"%s\"" -#: libpq/hba.c:1888 libpq/hba.c:1895 +#: libpq/hba.c:1884 libpq/hba.c:1891 msgid "gssapi and sspi" msgstr "gssapi och sspi" -#: libpq/hba.c:1904 libpq/hba.c:1913 +#: libpq/hba.c:1900 libpq/hba.c:1909 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:1935 +#: libpq/hba.c:1931 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "kunde inte parsa RADIUS-serverlista \"%s\"" -#: libpq/hba.c:1983 +#: libpq/hba.c:1979 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "kunde inte parsa RADIUS-portlista \"%s\"" -#: libpq/hba.c:1997 +#: libpq/hba.c:1993 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "ogiltigt RADIUS-portnummer: \"%s\"" -#: libpq/hba.c:2019 +#: libpq/hba.c:2015 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "kunde inte parsa RADIUS-hemlighetlista: \"%s\"" -#: libpq/hba.c:2041 +#: libpq/hba.c:2037 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "kunde inte parsa RADIUS-identifierarlista: \"%s\"" -#: libpq/hba.c:2055 +#: libpq/hba.c:2051 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "okänd autentiseringsflaggnamn: \"%s\"" -#: libpq/hba.c:2250 +#: libpq/hba.c:2248 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "konfigurationsfil \"%s\" innehåller inga poster" -#: libpq/hba.c:2768 +#: libpq/hba.c:2772 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "ogiltigt reguljärt uttryck \"%s\": %s" -#: libpq/hba.c:2828 +#: libpq/hba.c:2832 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "matchning av reguljärt uttryck för \"%s\" misslyckades: %s" -#: libpq/hba.c:2847 +#: libpq/hba.c:2851 #, c-format msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\"" msgstr "reguljärt uttryck \"%s\" har inga deluttryck som krävs för bakåtreferens i \"%s\"" -#: libpq/hba.c:2943 +#: libpq/hba.c:2947 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "givet användarnamn (%s) och autentiserat användarnamn (%s) matchar inte" -#: libpq/hba.c:2963 +#: libpq/hba.c:2967 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "ingen träff i användarmappning \"%s\" för användare \"%s\" autentiserad som \"%s\"" -#: libpq/hba.c:2996 +#: libpq/hba.c:3000 #, c-format msgid "could not open usermap file \"%s\": %m" msgstr "kunde inte öppna användarmappningsfil \"%s\": %m" @@ -14165,145 +14234,145 @@ msgid "could not set socket to nonblocking mode: %m" msgstr "kunde inte sätta uttag (socket) till ickeblockerande läge: %m" -#: libpq/pqcomm.c:372 +#: libpq/pqcomm.c:369 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Sökväg till unixdomänuttag \"%s\" är för lång (maximalt %d byte)" -#: libpq/pqcomm.c:393 +#: libpq/pqcomm.c:390 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "kunde inte översätta värdnamn \"%s\", service \"%s\" till adress: %s" -#: libpq/pqcomm.c:397 +#: libpq/pqcomm.c:394 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "kunde inte översätta service \"%s\" till adress: %s" -#: libpq/pqcomm.c:424 +#: libpq/pqcomm.c:421 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "kunde inte binda till alla efterfrågade adresser: MAXLISTEN (%d) överskriden" -#: libpq/pqcomm.c:433 +#: libpq/pqcomm.c:430 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:437 +#: libpq/pqcomm.c:434 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:442 +#: libpq/pqcomm.c:439 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:447 +#: libpq/pqcomm.c:444 #, c-format msgid "unrecognized address family %d" msgstr "ej igenkänd adressfamilj %d" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:473 +#: libpq/pqcomm.c:470 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "kunde inte skapa %s-uttag för adress \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:499 +#: libpq/pqcomm.c:496 #, c-format msgid "setsockopt(SO_REUSEADDR) failed for %s address \"%s\": %m" msgstr "setsockopt(SO_REUSEADDR) misslyckades för %s-adress \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:516 +#: libpq/pqcomm.c:513 #, c-format msgid "setsockopt(IPV6_V6ONLY) failed for %s address \"%s\": %m" msgstr "setsockopt(IPV6_V6ONLY) misslyckades för %s-adress \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:536 +#: libpq/pqcomm.c:533 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "kunde inte binda %s-adress \"%s\": %m" -#: libpq/pqcomm.c:539 +#: libpq/pqcomm.c:536 #, c-format msgid "Is another postmaster already running on port %d? If not, remove socket file \"%s\" and retry." msgstr "Kör en annan postmaster redan på port %d? Om inte, ta bort uttagsfil \"%s\" och försök igen." -#: libpq/pqcomm.c:542 +#: libpq/pqcomm.c:539 #, c-format msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry." msgstr "Kör en annan postmaster redan på port %d? Om inte, vänta några sekunder och försök igen." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:575 +#: libpq/pqcomm.c:572 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "kunde inte lyssna på %s-adress \"%s\": %m" -#: libpq/pqcomm.c:584 +#: libpq/pqcomm.c:581 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "lyssnar på Unix-uttag (socket) \"%s\"" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:590 +#: libpq/pqcomm.c:587 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "lyssnar på %s-adress \"%s\", port %d" -#: libpq/pqcomm.c:673 +#: libpq/pqcomm.c:670 #, c-format msgid "group \"%s\" does not exist" msgstr "gruppen \"%s\" existerar inte" -#: libpq/pqcomm.c:683 +#: libpq/pqcomm.c:680 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "kunde inte sätta gruppen på filen \"%s\": %m" -#: libpq/pqcomm.c:694 +#: libpq/pqcomm.c:691 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "kunde inte sätta rättigheter på filen \"%s\": %m" -#: libpq/pqcomm.c:724 +#: libpq/pqcomm.c:721 #, c-format msgid "could not accept new connection: %m" msgstr "kunde inte acceptera ny uppkoppling: %m" -#: libpq/pqcomm.c:914 +#: libpq/pqcomm.c:911 #, c-format msgid "there is no client connection" msgstr "det finns ingen klientanslutning" -#: libpq/pqcomm.c:965 libpq/pqcomm.c:1061 +#: libpq/pqcomm.c:962 libpq/pqcomm.c:1058 #, c-format msgid "could not receive data from client: %m" msgstr "kunde inte ta emot data från klient: %m" -#: libpq/pqcomm.c:1206 tcop/postgres.c:4142 +#: libpq/pqcomm.c:1215 tcop/postgres.c:4174 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "stänger anslutning då protokollsynkroniseringen tappades" -#: libpq/pqcomm.c:1272 +#: libpq/pqcomm.c:1281 #, c-format msgid "unexpected EOF within message length word" msgstr "oväntat EOF inom meddelandelängdord" -#: libpq/pqcomm.c:1283 +#: libpq/pqcomm.c:1292 #, c-format msgid "invalid message length" msgstr "ogiltig meddelandelängd" -#: libpq/pqcomm.c:1305 libpq/pqcomm.c:1318 +#: libpq/pqcomm.c:1314 libpq/pqcomm.c:1327 #, c-format msgid "incomplete message from client" msgstr "inkomplett meddelande från klient" -#: libpq/pqcomm.c:1451 +#: libpq/pqcomm.c:1460 #, c-format msgid "could not send data to client: %m" msgstr "kunde inte skicka data till klient: %m" @@ -14314,7 +14383,7 @@ msgstr "ingen data kvar i meddelandet" #: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 -#: utils/adt/arrayfuncs.c:1471 utils/adt/rowtypes.c:567 +#: utils/adt/arrayfuncs.c:1460 utils/adt/rowtypes.c:567 #, c-format msgid "insufficient data left in message" msgstr "otillräckligt med data kvar i meddelande" @@ -14630,9 +14699,9 @@ msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "ExtensibleNodeMethods \"%s\" har inte registerats" -#: nodes/nodeFuncs.c:122 nodes/nodeFuncs.c:153 parser/parse_coerce.c:2208 -#: parser/parse_coerce.c:2317 parser/parse_coerce.c:2352 -#: parser/parse_expr.c:2207 parser/parse_func.c:701 parser/parse_oper.c:967 +#: nodes/nodeFuncs.c:122 nodes/nodeFuncs.c:153 parser/parse_coerce.c:2295 +#: parser/parse_coerce.c:2404 parser/parse_coerce.c:2439 +#: parser/parse_expr.c:2212 parser/parse_func.c:701 parser/parse_oper.c:967 #: utils/fmgr/funcapi.c:528 #, c-format msgid "could not find array type for data type %s" @@ -14654,50 +14723,50 @@ msgstr "FULL JOIN stöds bara med villkor som är merge-joinbara eller hash-joinbara" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/initsplan.c:1193 +#: optimizer/plan/initsplan.c:1198 #, c-format msgid "%s cannot be applied to the nullable side of an outer join" msgstr "%s kan inte appliceras på den nullbara sidan av en outer join" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1922 parser/analyze.c:1639 parser/analyze.c:1855 -#: parser/analyze.c:2715 +#: optimizer/plan/planner.c:1923 parser/analyze.c:1639 parser/analyze.c:1855 +#: parser/analyze.c:2682 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s tillåẗs inte med UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2509 optimizer/plan/planner.c:4162 +#: optimizer/plan/planner.c:2510 optimizer/plan/planner.c:4163 #, c-format msgid "could not implement GROUP BY" msgstr "kunde inte implementera GROUP BY" -#: optimizer/plan/planner.c:2510 optimizer/plan/planner.c:4163 -#: optimizer/plan/planner.c:4890 optimizer/prep/prepunion.c:1045 +#: optimizer/plan/planner.c:2511 optimizer/plan/planner.c:4164 +#: optimizer/plan/planner.c:4891 optimizer/prep/prepunion.c:1045 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "Några av datatyperna stöder bara hash:ning medan andra bara stöder sortering." -#: optimizer/plan/planner.c:4889 +#: optimizer/plan/planner.c:4890 #, c-format msgid "could not implement DISTINCT" msgstr "kunde inte implementera DISTINCT" -#: optimizer/plan/planner.c:5737 +#: optimizer/plan/planner.c:5738 #, c-format msgid "could not implement window PARTITION BY" msgstr "kunde inte implementera fönster-PARTITION BY" -#: optimizer/plan/planner.c:5738 +#: optimizer/plan/planner.c:5739 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Fönsterpartitioneringskolumner måsta ha en sorterbar datatyp." -#: optimizer/plan/planner.c:5742 +#: optimizer/plan/planner.c:5743 #, c-format msgid "could not implement window ORDER BY" msgstr "kunde inte implementera fönster-ORDER BY" -#: optimizer/plan/planner.c:5743 +#: optimizer/plan/planner.c:5744 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Fönsterordningskolumner måste ha en sorterbar datatyp." @@ -14723,32 +14792,32 @@ msgid "could not implement %s" msgstr "kunde inte implementera %s" -#: optimizer/util/clauses.c:4747 +#: optimizer/util/clauses.c:4772 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "SQL-funktion \"%s\" vid inline:ing" -#: optimizer/util/plancat.c:132 +#: optimizer/util/plancat.c:133 #, c-format msgid "cannot access temporary or unlogged relations during recovery" msgstr "kan inte accessa temporära eller ologgade relationer under återställning" -#: optimizer/util/plancat.c:662 +#: optimizer/util/plancat.c:665 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "inferens av unikt index för hel rad stöds inte" -#: optimizer/util/plancat.c:679 +#: optimizer/util/plancat.c:682 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "villkor för ON CONFLICT-klausul har inget associerat index" -#: optimizer/util/plancat.c:729 +#: optimizer/util/plancat.c:732 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATE stöds inte med uteslutningsvillkor" -#: optimizer/util/plancat.c:834 +#: optimizer/util/plancat.c:837 #, c-format msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "finns inget unik eller uteslutningsvillkor som matchar ON CONFLICT-specifikationen" @@ -14779,7 +14848,7 @@ msgstr "SELECT ... INTO tillåts inte här" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1542 parser/analyze.c:2894 +#: parser/analyze.c:1542 parser/analyze.c:2876 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s kan inte appliceras på VÄRDEN" @@ -14814,143 +14883,143 @@ msgid "each %s query must have the same number of columns" msgstr "varje %s-fråga måste ha samma antal kolumner" -#: parser/analyze.c:2426 +#: parser/analyze.c:2393 #, c-format msgid "RETURNING must have at least one column" msgstr "RETURNING måste ha minst en kolumn" -#: parser/analyze.c:2467 +#: parser/analyze.c:2434 #, c-format msgid "cannot specify both SCROLL and NO SCROLL" msgstr "kan inte ange både SCROLL och NO SCROLL" -#: parser/analyze.c:2486 +#: parser/analyze.c:2453 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR får inte innehålla datamodifierande satser i WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2494 +#: parser/analyze.c:2461 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s stöds inte" -#: parser/analyze.c:2497 +#: parser/analyze.c:2464 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Hållbara markörer måste vara READ ONLY." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2505 +#: parser/analyze.c:2472 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s stöds inte" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2516 +#: parser/analyze.c:2483 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not supported" msgstr "DECLARE INSENSITIVE CURSOR ... %s stöds inte" -#: parser/analyze.c:2519 +#: parser/analyze.c:2486 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Okänsliga markörer måste vara READ ONLY." -#: parser/analyze.c:2585 +#: parser/analyze.c:2552 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "materialiserade vyer får inte innehålla datamodifierande satser i WITH" -#: parser/analyze.c:2595 +#: parser/analyze.c:2562 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "materialiserade vyer får inte använda temporära tabeller eller vyer" -#: parser/analyze.c:2605 +#: parser/analyze.c:2572 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "materialiserade vyer kan inte defineras med bundna parametrar" -#: parser/analyze.c:2617 +#: parser/analyze.c:2584 #, c-format msgid "materialized views cannot be unlogged" msgstr "materialiserad vyer kan inte vara ologgade" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2722 +#: parser/analyze.c:2689 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s tillåts inte med DISTINCT-klausul" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2729 +#: parser/analyze.c:2696 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s tillåts inte med GROUP BY-klausul" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2736 +#: parser/analyze.c:2703 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s tillåts inte med HAVING-klausul" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2743 +#: parser/analyze.c:2710 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s tillåts inte med aggregatfunktioner" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2750 +#: parser/analyze.c:2717 #, c-format msgid "%s is not allowed with window functions" msgstr "%s tillåts inte med fönsterfunktioner" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2757 +#: parser/analyze.c:2724 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s tillåts inte med mängdreturnerande funktioner i mållistan" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2836 +#: parser/analyze.c:2816 #, c-format msgid "%s must specify unqualified relation names" msgstr "%s: måste ange okvalificerade relationsnamn" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2867 +#: parser/analyze.c:2849 #, c-format msgid "%s cannot be applied to a join" msgstr "%s kan inte appliceras på en join" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2876 +#: parser/analyze.c:2858 #, c-format msgid "%s cannot be applied to a function" msgstr "%s kan inte appliceras på en funktion" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2885 +#: parser/analyze.c:2867 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s kan inte appliceras på tabellfunktion" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2903 +#: parser/analyze.c:2885 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s kan inte appliceras på en WITH-fråga" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2912 +#: parser/analyze.c:2894 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s kan inte appliceras på en namngiven tupellagring" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2932 +#: parser/analyze.c:2914 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "relationen \"%s\" i %s-klausul hittades inte i FROM-klausul" @@ -15134,128 +15203,128 @@ msgid "grouping operations are not allowed in %s" msgstr "gruppoperationer tillåts inte i %s" -#: parser/parse_agg.c:678 +#: parser/parse_agg.c:671 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "yttre aggregat kan inte innehålla inre variabel i sitt direkta argument" -#: parser/parse_agg.c:757 +#: parser/parse_agg.c:750 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "aggregatfunktionsanrop kan inte innehålla mängdreturnerande funktionsanrop" -#: parser/parse_agg.c:758 parser/parse_expr.c:1845 parser/parse_expr.c:2332 +#: parser/parse_agg.c:751 parser/parse_expr.c:1850 parser/parse_expr.c:2337 #: parser/parse_func.c:872 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Du kanske kan flytta den mängdreturnerande funktionen in i en LATERAL FROM-konstruktion." -#: parser/parse_agg.c:763 +#: parser/parse_agg.c:756 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "aggregatfunktionsanrop kan inte innehålla fönsterfunktionanrop" -#: parser/parse_agg.c:842 +#: parser/parse_agg.c:835 msgid "window functions are not allowed in JOIN conditions" msgstr "fönsterfunktioner tillåts inte i JOIN-villkor" -#: parser/parse_agg.c:849 +#: parser/parse_agg.c:842 msgid "window functions are not allowed in functions in FROM" msgstr "fönsterfunktioner tillåts inte i funktioner i FROM" -#: parser/parse_agg.c:855 +#: parser/parse_agg.c:848 msgid "window functions are not allowed in policy expressions" msgstr "fönsterfunktioner tillåts inte i policy-uttryck" -#: parser/parse_agg.c:868 +#: parser/parse_agg.c:861 msgid "window functions are not allowed in window definitions" msgstr "fönsterfunktioner tillåts inte i fönsterdefinitioner" -#: parser/parse_agg.c:900 +#: parser/parse_agg.c:893 msgid "window functions are not allowed in check constraints" msgstr "fönsterfunktioner tillåts inte i check-villkor" -#: parser/parse_agg.c:904 +#: parser/parse_agg.c:897 msgid "window functions are not allowed in DEFAULT expressions" msgstr "fönsterfunktioner tillåts inte i DEFAULT-uttryck" -#: parser/parse_agg.c:907 +#: parser/parse_agg.c:900 msgid "window functions are not allowed in index expressions" msgstr "fönsterfunktioner tillåts inte i indexuttryck" -#: parser/parse_agg.c:910 +#: parser/parse_agg.c:903 msgid "window functions are not allowed in index predicates" msgstr "fönsterfunktioner tillåts inte i indexpredikat" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:906 msgid "window functions are not allowed in transform expressions" msgstr "fönsterfunktioner tillåts inte i transform-uttrycket" -#: parser/parse_agg.c:916 +#: parser/parse_agg.c:909 msgid "window functions are not allowed in EXECUTE parameters" msgstr "fönsterfunktioner tillåts inte i EXECUTE-parametrar" -#: parser/parse_agg.c:919 +#: parser/parse_agg.c:912 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "fönsterfunktioner tillåts inte i WHEN-utlösarvillkor" -#: parser/parse_agg.c:922 +#: parser/parse_agg.c:915 msgid "window functions are not allowed in partition bound" msgstr "fönsterfunktioner tillåts inte i partitiongräns" -#: parser/parse_agg.c:925 +#: parser/parse_agg.c:918 msgid "window functions are not allowed in partition key expressions" msgstr "fönsterfunktioner tillåts inte i partitionsnyckeluttryck" -#: parser/parse_agg.c:928 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in CALL arguments" msgstr "fönsterfunktioner tillåts inte i CALL-argument" -#: parser/parse_agg.c:931 +#: parser/parse_agg.c:924 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "fönsterfunktioner tillåts inte i COPY FROM WHERE-villkor" -#: parser/parse_agg.c:934 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in column generation expressions" msgstr "fönsterfunktioner tillåts inte i kolumngenereringsuttryck" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:954 parser/parse_clause.c:1837 +#: parser/parse_agg.c:947 parser/parse_clause.c:1837 #, c-format msgid "window functions are not allowed in %s" msgstr "fönsterfunktioner tillåts inte i %s" -#: parser/parse_agg.c:988 parser/parse_clause.c:2671 +#: parser/parse_agg.c:981 parser/parse_clause.c:2671 #, c-format msgid "window \"%s\" does not exist" msgstr "fönster \"%s\" finns inte" -#: parser/parse_agg.c:1072 +#: parser/parse_agg.c:1065 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "för många grupperingsmängder (maximalt 4096)" -#: parser/parse_agg.c:1212 +#: parser/parse_agg.c:1205 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "aggregatfunktioner tillåts inte i en rekursiv frågas rekursiva term" -#: parser/parse_agg.c:1405 +#: parser/parse_agg.c:1398 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "kolumn \"%s.%s\" måste stå med i GROUP BY-klausulen eller användas i en aggregatfunktion" -#: parser/parse_agg.c:1408 +#: parser/parse_agg.c:1401 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Direkta argument till en sorterad-mängd-aggregat får bara använda grupperade kolumner." -#: parser/parse_agg.c:1413 +#: parser/parse_agg.c:1406 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "underfråga använder ogrupperad kolumn \"%s.%s\" från yttre fråga" -#: parser/parse_agg.c:1577 +#: parser/parse_agg.c:1570 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "argument till GROUPING måste vare grupputtryck på den tillhörande frågenivån" @@ -15536,148 +15605,153 @@ msgid "Cast the offset value to the exact intended type." msgstr "Typomvandla offset-värdet till exakt den önskade typen." -#: parser/parse_coerce.c:1024 parser/parse_coerce.c:1062 -#: parser/parse_coerce.c:1080 parser/parse_coerce.c:1095 -#: parser/parse_expr.c:2241 parser/parse_expr.c:2819 parser/parse_target.c:967 +#: parser/parse_coerce.c:1047 parser/parse_coerce.c:1085 +#: parser/parse_coerce.c:1103 parser/parse_coerce.c:1118 +#: parser/parse_expr.c:2246 parser/parse_expr.c:2824 parser/parse_target.c:966 #, c-format msgid "cannot cast type %s to %s" msgstr "kan inte omvandla typ %s till %s" -#: parser/parse_coerce.c:1065 +#: parser/parse_coerce.c:1088 #, c-format msgid "Input has too few columns." msgstr "Indata har för få kolumner" -#: parser/parse_coerce.c:1083 +#: parser/parse_coerce.c:1106 #, c-format msgid "Cannot cast type %s to %s in column %d." msgstr "Kan inte typomvandla typ %s till %s i kolumn %d." -#: parser/parse_coerce.c:1098 +#: parser/parse_coerce.c:1121 #, c-format msgid "Input has too many columns." msgstr "Indata har för många kolumner" #. translator: first %s is name of a SQL construct, eg WHERE #. translator: first %s is name of a SQL construct, eg LIMIT -#: parser/parse_coerce.c:1153 parser/parse_coerce.c:1201 +#: parser/parse_coerce.c:1176 parser/parse_coerce.c:1224 #, c-format msgid "argument of %s must be type %s, not type %s" msgstr "argumentet till %s måste vara av typ %s, inte av typ %s" #. translator: %s is name of a SQL construct, eg WHERE #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_coerce.c:1164 parser/parse_coerce.c:1213 +#: parser/parse_coerce.c:1187 parser/parse_coerce.c:1236 #, c-format msgid "argument of %s must not return a set" msgstr "argumentet till %s får inte returnera en mängd" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1353 +#: parser/parse_coerce.c:1380 #, c-format msgid "%s types %s and %s cannot be matched" msgstr "%s typer %s och %s matchar inte" -#: parser/parse_coerce.c:1465 +#: parser/parse_coerce.c:1496 #, c-format msgid "argument types %s and %s cannot be matched" msgstr "argumenttyperna %s och %s matchar inte" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1517 +#: parser/parse_coerce.c:1548 #, c-format msgid "%s could not convert type %s to %s" msgstr "%s kan inte konvertera typ %s till %s" -#: parser/parse_coerce.c:1934 +#: parser/parse_coerce.c:2013 #, c-format msgid "arguments declared \"anyelement\" are not all alike" msgstr "argument deklarerade som \"anyelement\" är inte alla likadana" -#: parser/parse_coerce.c:1954 +#: parser/parse_coerce.c:2033 #, c-format msgid "arguments declared \"anyarray\" are not all alike" msgstr "argument deklarerade \"anyarray\" är inte alla likadana" -#: parser/parse_coerce.c:1974 +#: parser/parse_coerce.c:2053 #, c-format msgid "arguments declared \"anyrange\" are not all alike" msgstr "argument deklarerade \"anyrange\" är inte alla likadana" -#: parser/parse_coerce.c:2008 parser/parse_coerce.c:2088 +#: parser/parse_coerce.c:2087 parser/parse_coerce.c:2167 #: utils/fmgr/funcapi.c:487 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "argumentet deklarerad %s är inte en array utan typ %s" -#: parser/parse_coerce.c:2029 +#: parser/parse_coerce.c:2108 #, c-format msgid "arguments declared \"anycompatiblerange\" are not all alike" msgstr "argument deklarerade \"anycompatiblerange\" är inte alla likadana" -#: parser/parse_coerce.c:2041 parser/parse_coerce.c:2122 +#: parser/parse_coerce.c:2120 parser/parse_coerce.c:2201 #: utils/fmgr/funcapi.c:501 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "argumentet deklarerad %s är inte en intervalltyp utan typ %s" -#: parser/parse_coerce.c:2079 +#: parser/parse_coerce.c:2158 #, c-format msgid "cannot determine element type of \"anyarray\" argument" msgstr "kan inte bestämma elementtypen av \"anyarray\"-argument" -#: parser/parse_coerce.c:2105 parser/parse_coerce.c:2139 +#: parser/parse_coerce.c:2184 parser/parse_coerce.c:2218 #, c-format msgid "argument declared %s is not consistent with argument declared %s" msgstr "argument deklarerad %s är inte konsistent med argument deklarerad %s" -#: parser/parse_coerce.c:2163 +#: parser/parse_coerce.c:2242 #, c-format msgid "could not determine polymorphic type because input has type %s" msgstr "kunde inte bestämma en polymorf typ då indata har typ %s" -#: parser/parse_coerce.c:2177 +#: parser/parse_coerce.c:2256 #, c-format msgid "type matched to anynonarray is an array type: %s" msgstr "typen som matchar anynonarray är en array-typ: %s" -#: parser/parse_coerce.c:2187 +#: parser/parse_coerce.c:2266 #, c-format msgid "type matched to anyenum is not an enum type: %s" msgstr "typen som matchar anyenum är inte en enum-typ: %s" -#: parser/parse_coerce.c:2218 parser/parse_coerce.c:2267 -#: parser/parse_coerce.c:2329 parser/parse_coerce.c:2365 +#: parser/parse_coerce.c:2287 +#, c-format +msgid "arguments of anycompatible family cannot be cast to a common type" +msgstr "argument till en anycompatible-familj kan inte typomvandlas till en vanlig typ" + +#: parser/parse_coerce.c:2305 parser/parse_coerce.c:2354 +#: parser/parse_coerce.c:2416 parser/parse_coerce.c:2452 #, c-format msgid "could not determine polymorphic type %s because input has type %s" msgstr "kunde inte bestämma en polymorf typ %s då indata har typ %s" -#: parser/parse_coerce.c:2228 +#: parser/parse_coerce.c:2315 #, c-format msgid "anycompatiblerange type %s does not match anycompatible type %s" msgstr "anycompatiblerange-typ %s matchar inte anycompatiblerange-typ %s" -#: parser/parse_coerce.c:2242 +#: parser/parse_coerce.c:2329 #, c-format msgid "type matched to anycompatiblenonarray is an array type: %s" msgstr "typen som matchar anycompatiblenonarray är en array-typ: %s" -#: parser/parse_coerce.c:2433 +#: parser/parse_coerce.c:2520 #, c-format msgid "A result of type %s requires at least one input of type %s." msgstr "Ett resultat av typen %s kräver minst en indata med typ %s." -#: parser/parse_coerce.c:2445 +#: parser/parse_coerce.c:2532 #, c-format msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, or anyrange." msgstr "Ett resultat av typ %s kräver minst en indata av typen anyelement, anyarray, anynonarray, anyenum eller anyrange." -#: parser/parse_coerce.c:2457 +#: parser/parse_coerce.c:2544 #, c-format msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, or anycompatiblerange." msgstr "Ett resultat av typ %s kräver minst en indata av typ anycompatible, anycompatiblearray, anycompatiblenonarray eller anycompatiblerange." -#: parser/parse_coerce.c:2487 +#: parser/parse_coerce.c:2574 msgid "A result of type internal requires at least one input of type internal." msgstr "Ett resultat av typ internal kräver minst en indata av typ internal." @@ -15803,8 +15877,8 @@ msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT tillåts inte i detta kontext" -#: parser/parse_expr.c:402 parser/parse_relation.c:3506 -#: parser/parse_relation.c:3526 +#: parser/parse_expr.c:402 parser/parse_relation.c:3507 +#: parser/parse_relation.c:3527 #, c-format msgid "column %s.%s does not exist" msgstr "kolumnen %s.%s finns inte" @@ -15824,7 +15898,7 @@ msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "kolumnotation .%s använd på typ %s som inte är en sammanslagen typ" -#: parser/parse_expr.c:457 parser/parse_target.c:729 +#: parser/parse_expr.c:457 parser/parse_target.c:728 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "radexpansion via \"*\" stöds inte här" @@ -15838,7 +15912,7 @@ msgstr "kan inte använda kolumnreferenser i partitionsgränsuttryck" #: parser/parse_expr.c:850 parser/parse_relation.c:799 -#: parser/parse_relation.c:881 parser/parse_target.c:1207 +#: parser/parse_relation.c:881 parser/parse_target.c:1206 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "kolumnreferens \"%s\" är tvetydig" @@ -15855,166 +15929,166 @@ msgstr "NULLIF kräver att =-operatorn returnerar boolean" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1155 parser/parse_expr.c:3135 +#: parser/parse_expr.c:1155 parser/parse_expr.c:3140 #, c-format msgid "%s must not return a set" msgstr "%s får inte returnera en mängd" -#: parser/parse_expr.c:1603 parser/parse_expr.c:1635 +#: parser/parse_expr.c:1608 parser/parse_expr.c:1640 #, c-format msgid "number of columns does not match number of values" msgstr "antalet kolumner matchar inte antalet värden" -#: parser/parse_expr.c:1649 +#: parser/parse_expr.c:1654 #, c-format msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" msgstr "källa till en multiple-kolumn-UPDATE-post måste vara en sub-SELECT eller ROW()-uttryck" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1843 parser/parse_expr.c:2330 parser/parse_func.c:2540 +#: parser/parse_expr.c:1848 parser/parse_expr.c:2335 parser/parse_func.c:2540 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "mängdreturnerande funktioner tillåts inte i %s" -#: parser/parse_expr.c:1904 +#: parser/parse_expr.c:1909 msgid "cannot use subquery in check constraint" msgstr "kan inte använda subfråga i check-villkor" -#: parser/parse_expr.c:1908 +#: parser/parse_expr.c:1913 msgid "cannot use subquery in DEFAULT expression" msgstr "kan inte använda underfråga i DEFAULT-uttryck" -#: parser/parse_expr.c:1911 +#: parser/parse_expr.c:1916 msgid "cannot use subquery in index expression" msgstr "kan inte använda subfråga i indexuttryck" -#: parser/parse_expr.c:1914 +#: parser/parse_expr.c:1919 msgid "cannot use subquery in index predicate" msgstr "kan inte använda subfråga i indexpredikat" -#: parser/parse_expr.c:1917 +#: parser/parse_expr.c:1922 msgid "cannot use subquery in transform expression" msgstr "kan inte använda underfråga i transformeringsuttrycket" -#: parser/parse_expr.c:1920 +#: parser/parse_expr.c:1925 msgid "cannot use subquery in EXECUTE parameter" msgstr "kan inte använda subfråga i EXECUTE-parameter" -#: parser/parse_expr.c:1923 +#: parser/parse_expr.c:1928 msgid "cannot use subquery in trigger WHEN condition" msgstr "kan inte använda subfråga i utlösares WHEN-villkor" -#: parser/parse_expr.c:1926 +#: parser/parse_expr.c:1931 msgid "cannot use subquery in partition bound" msgstr "kan inte använda underfråga i partitionsgräns" -#: parser/parse_expr.c:1929 +#: parser/parse_expr.c:1934 msgid "cannot use subquery in partition key expression" msgstr "kan inte använda underfråga i partitionsnyckeluttryck" -#: parser/parse_expr.c:1932 +#: parser/parse_expr.c:1937 msgid "cannot use subquery in CALL argument" msgstr "kan inte använda subfråga i CALL-argument" -#: parser/parse_expr.c:1935 +#: parser/parse_expr.c:1940 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "kan inte använda subfråga i COPY FROM WHERE-villkor" -#: parser/parse_expr.c:1938 +#: parser/parse_expr.c:1943 msgid "cannot use subquery in column generation expression" msgstr "kan inte använda subfråga i kolumngenereringsuttryck" -#: parser/parse_expr.c:1991 +#: parser/parse_expr.c:1996 #, c-format msgid "subquery must return only one column" msgstr "underfråga kan bara returnera en kolumn" -#: parser/parse_expr.c:2075 +#: parser/parse_expr.c:2080 #, c-format msgid "subquery has too many columns" msgstr "underfråga har för många kolumner" -#: parser/parse_expr.c:2080 +#: parser/parse_expr.c:2085 #, c-format msgid "subquery has too few columns" msgstr "underfråga har för få kolumner" -#: parser/parse_expr.c:2181 +#: parser/parse_expr.c:2186 #, c-format msgid "cannot determine type of empty array" msgstr "kan inte bestämma typen av en tom array" -#: parser/parse_expr.c:2182 +#: parser/parse_expr.c:2187 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "Typomvandla explicit till den önskade typen, till exempel ARRAY[]::integer[]." -#: parser/parse_expr.c:2196 +#: parser/parse_expr.c:2201 #, c-format msgid "could not find element type for data type %s" msgstr "kunde inte hitta elementtyp för datatyp %s" -#: parser/parse_expr.c:2481 +#: parser/parse_expr.c:2486 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "onamnat XML-attributvärde måste vara en kolumnreferens" -#: parser/parse_expr.c:2482 +#: parser/parse_expr.c:2487 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "onamnat XML-elementvärde måste vara en kolumnreferens" -#: parser/parse_expr.c:2497 +#: parser/parse_expr.c:2502 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "XML-attributnamn \"%s\" finns med mer än en gång" -#: parser/parse_expr.c:2604 +#: parser/parse_expr.c:2609 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "kan inte typomvandla XMLSERIALIZE-resultat till %s" -#: parser/parse_expr.c:2892 parser/parse_expr.c:3088 +#: parser/parse_expr.c:2897 parser/parse_expr.c:3093 #, c-format msgid "unequal number of entries in row expressions" msgstr "olika antal element i raduttryck" -#: parser/parse_expr.c:2902 +#: parser/parse_expr.c:2907 #, c-format msgid "cannot compare rows of zero length" msgstr "kan inte jämföra rader med längden noll" -#: parser/parse_expr.c:2927 +#: parser/parse_expr.c:2932 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "operator för radjämförelse måste resultera i typen boolean, inte %s" -#: parser/parse_expr.c:2934 +#: parser/parse_expr.c:2939 #, c-format msgid "row comparison operator must not return a set" msgstr "radjämförelseoperator får inte returnera en mängd" -#: parser/parse_expr.c:2993 parser/parse_expr.c:3034 +#: parser/parse_expr.c:2998 parser/parse_expr.c:3039 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "kunde inte lista ut tolkning av radjämförelseoperator %s" -#: parser/parse_expr.c:2995 +#: parser/parse_expr.c:3000 #, c-format msgid "Row comparison operators must be associated with btree operator families." msgstr "Radjämförelseoperatorer måste vara associerade med btreee-operatorfamiljer." -#: parser/parse_expr.c:3036 +#: parser/parse_expr.c:3041 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "Det finns flera lika sannolika kandidater." -#: parser/parse_expr.c:3129 +#: parser/parse_expr.c:3134 #, c-format msgid "IS DISTINCT FROM requires = operator to yield boolean" msgstr "IS DISTINCT FROM kräver att operatorn = ger tillbaka en boolean" -#: parser/parse_expr.c:3448 parser/parse_expr.c:3466 +#: parser/parse_expr.c:3453 parser/parse_expr.c:3471 #, c-format msgid "operator precedence change: %s is now lower precedence than %s" msgstr "operator-precedence-ändring: %s har nu lägre precedence än %s" @@ -16359,7 +16433,7 @@ #: parser/parse_node.c:340 parser/parse_node.c:377 #, c-format msgid "array subscript must have type integer" -msgstr "arrayindex måste ha typen integer" +msgstr "array-index måste ha typen integer" #: parser/parse_node.c:408 #, c-format @@ -16442,12 +16516,12 @@ msgid "table name \"%s\" specified more than once" msgstr "tabellnamn \"%s\" angivet mer än en gång" -#: parser/parse_relation.c:473 parser/parse_relation.c:3446 +#: parser/parse_relation.c:473 parser/parse_relation.c:3447 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "ogiltig referens till FROM-klausulpost för tabell \"%s\"" -#: parser/parse_relation.c:477 parser/parse_relation.c:3451 +#: parser/parse_relation.c:477 parser/parse_relation.c:3452 #, c-format msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query." msgstr "Det finns en post för tabell \"%s\" men den kan inte refereras till från denna del av frågan." @@ -16467,123 +16541,123 @@ msgid "cannot use system column \"%s\" in column generation expression" msgstr "kan inte använda systemkolumn \"%s\" i kolumngenereringsuttryck" -#: parser/parse_relation.c:1170 parser/parse_relation.c:1620 -#: parser/parse_relation.c:2262 +#: parser/parse_relation.c:1167 parser/parse_relation.c:1617 +#: parser/parse_relation.c:2259 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "tabell \"%s\" har %d kolumner tillgängliga men %d kolumner angivna" -#: parser/parse_relation.c:1372 +#: parser/parse_relation.c:1369 #, c-format msgid "There is a WITH item named \"%s\", but it cannot be referenced from this part of the query." msgstr "Det finns en WITH-post med namn \"%s\" men den kan inte refereras till från denna del av frågan." -#: parser/parse_relation.c:1374 +#: parser/parse_relation.c:1371 #, c-format msgid "Use WITH RECURSIVE, or re-order the WITH items to remove forward references." msgstr "Använd WITH RECURSIVE eller ändra ordning på WITH-posterna för att ta bort framåt-referenser." -#: parser/parse_relation.c:1747 +#: parser/parse_relation.c:1744 #, c-format msgid "a column definition list is only allowed for functions returning \"record\"" msgstr "en kolumndefinitionslista tillåts bara för funktioner som returnerar \"record\"" -#: parser/parse_relation.c:1756 +#: parser/parse_relation.c:1753 #, c-format msgid "a column definition list is required for functions returning \"record\"" msgstr "en kolumndefinitionslista krävs för funktioner som returnerar \"record\"" -#: parser/parse_relation.c:1845 +#: parser/parse_relation.c:1842 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" msgstr "funktion \"%s\" i FROM har en icke stödd returtyp %s" -#: parser/parse_relation.c:2054 +#: parser/parse_relation.c:2051 #, c-format msgid "VALUES lists \"%s\" have %d columns available but %d columns specified" msgstr "VALUES-lista \"%s\" har %d kolumner tillgängliga men %d kolumner angivna" -#: parser/parse_relation.c:2125 +#: parser/parse_relation.c:2122 #, c-format msgid "joins can have at most %d columns" msgstr "joins kan ha som mest %d kolumner" -#: parser/parse_relation.c:2235 +#: parser/parse_relation.c:2232 #, c-format msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "WITH-fråga \"%s\" har ingen RETURNING-klausul" -#: parser/parse_relation.c:3221 parser/parse_relation.c:3231 +#: parser/parse_relation.c:3222 parser/parse_relation.c:3232 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "kolumn %d i relation \"%s\" finns inte" -#: parser/parse_relation.c:3449 +#: parser/parse_relation.c:3450 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Kanske tänkte du referera till tabellaliaset \"%s\"." -#: parser/parse_relation.c:3457 +#: parser/parse_relation.c:3458 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "saknar FROM-klausulpost för tabell \"%s\"" -#: parser/parse_relation.c:3509 +#: parser/parse_relation.c:3510 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "Kanske tänkte du referera till kolumnen \"%s.%s\"." -#: parser/parse_relation.c:3511 +#: parser/parse_relation.c:3512 #, c-format msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgstr "Det finns en kolumn med namn \"%s\" i tabell \"%s\" men den kan inte refereras till från denna del av frågan." -#: parser/parse_relation.c:3528 +#: parser/parse_relation.c:3529 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "Kanske tänkte du referera till kolumnen \"%s.%s\" eller kolumnen \"%s.%s\"." -#: parser/parse_target.c:478 parser/parse_target.c:792 +#: parser/parse_target.c:477 parser/parse_target.c:791 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "kan inte skriva till systemkolumn \"%s\"" -#: parser/parse_target.c:506 +#: parser/parse_target.c:505 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "kan inte sätta ett array-element till DEFAULT" -#: parser/parse_target.c:511 +#: parser/parse_target.c:510 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "kan inte sätta ett underfält till DEFAULT" -#: parser/parse_target.c:584 +#: parser/parse_target.c:583 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "kolumn \"%s\" har typ %s men uttrycket är av typ %s" -#: parser/parse_target.c:776 +#: parser/parse_target.c:775 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type" msgstr "kan inte tilldela till fält \"%s\" i kolumn \"%s\" då dess typ %s inte är en composit-typ" -#: parser/parse_target.c:785 +#: parser/parse_target.c:784 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "kan inte tilldela till fält \"%s\" i kolumn \"%s\" då det inte finns någon sådan kolumn i datatypen %s" -#: parser/parse_target.c:864 +#: parser/parse_target.c:863 #, c-format msgid "array assignment to \"%s\" requires type %s but expression is of type %s" msgstr "array-tilldelning till \"%s\" kräver typ %s men uttrycket har typ %s" -#: parser/parse_target.c:874 +#: parser/parse_target.c:873 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "underfält \"%s\" har typ %s men uttrycket har typ %s" -#: parser/parse_target.c:1295 +#: parser/parse_target.c:1294 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * utan tabeller angivna är inte giltigt" @@ -16624,339 +16698,340 @@ msgid "invalid type name \"%s\"" msgstr "ogiltigt typnamn \"%s\"" -#: parser/parse_utilcmd.c:264 +#: parser/parse_utilcmd.c:266 #, c-format msgid "cannot create partitioned table as inheritance child" msgstr "kan inte skapa partitionerad tabell som barnarv" -#: parser/parse_utilcmd.c:428 +#: parser/parse_utilcmd.c:444 #, c-format msgid "%s will create implicit sequence \"%s\" for serial column \"%s.%s\"" msgstr "%s kommer skapa en implicit sekvens \"%s\" för \"serial\"-kolumnen \"%s.%s\"" -#: parser/parse_utilcmd.c:559 +#: parser/parse_utilcmd.c:575 #, c-format msgid "array of serial is not implemented" msgstr "array med serial är inte implementerat" -#: parser/parse_utilcmd.c:637 parser/parse_utilcmd.c:649 +#: parser/parse_utilcmd.c:653 parser/parse_utilcmd.c:665 +#: parser/parse_utilcmd.c:724 #, c-format msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "motstridiga NULL/NOT NULL-villkor för kolumnen \"%s\" i tabell \"%s\"" -#: parser/parse_utilcmd.c:661 +#: parser/parse_utilcmd.c:677 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "multipla default-värden angivna för kolumn \"%s\" i tabell \"%s\"" -#: parser/parse_utilcmd.c:678 +#: parser/parse_utilcmd.c:694 #, c-format msgid "identity columns are not supported on typed tables" msgstr "identitetskolumner stöds inte på typade tabeller" -#: parser/parse_utilcmd.c:682 +#: parser/parse_utilcmd.c:698 #, c-format msgid "identity columns are not supported on partitions" msgstr "identitetskolumner stöds inte för partitioner" -#: parser/parse_utilcmd.c:691 +#: parser/parse_utilcmd.c:707 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "multipla identitetspecifikationer för kolumn \"%s\" i tabell \"%s\"" -#: parser/parse_utilcmd.c:711 +#: parser/parse_utilcmd.c:737 #, c-format msgid "generated columns are not supported on typed tables" msgstr "genererade kolumner stöds inte på typade tabeller" -#: parser/parse_utilcmd.c:715 +#: parser/parse_utilcmd.c:741 #, c-format msgid "generated columns are not supported on partitions" msgstr "genererade kolumner stöds inte för partitioner" -#: parser/parse_utilcmd.c:720 +#: parser/parse_utilcmd.c:746 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "multipla genereringsklausuler angivna för kolumn \"%s\" i tabell \"%s\"" -#: parser/parse_utilcmd.c:738 parser/parse_utilcmd.c:853 +#: parser/parse_utilcmd.c:764 parser/parse_utilcmd.c:879 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "primärnyckelvillkor stöds inte på främmande tabeller" -#: parser/parse_utilcmd.c:747 parser/parse_utilcmd.c:863 +#: parser/parse_utilcmd.c:773 parser/parse_utilcmd.c:889 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "unika villkor stöds inte på främmande tabeller" -#: parser/parse_utilcmd.c:792 +#: parser/parse_utilcmd.c:818 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "både default och identity angiven för kolumn \"%s\" i tabell \"%s\"" -#: parser/parse_utilcmd.c:800 +#: parser/parse_utilcmd.c:826 #, c-format msgid "both default and generation expression specified for column \"%s\" of table \"%s\"" msgstr "både default och genereringsuttryck angiven för kolumn \"%s\" i tabell \"%s\"" -#: parser/parse_utilcmd.c:808 +#: parser/parse_utilcmd.c:834 #, c-format msgid "both identity and generation expression specified for column \"%s\" of table \"%s\"" msgstr "både identity och genereringsuttryck angiven för kolumn \"%s\" i tabell \"%s\"" -#: parser/parse_utilcmd.c:873 +#: parser/parse_utilcmd.c:899 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "uteslutningsvillkor stöds inte på främmande tabeller" -#: parser/parse_utilcmd.c:879 +#: parser/parse_utilcmd.c:905 #, c-format msgid "exclusion constraints are not supported on partitioned tables" msgstr "uteslutningsvillkor stöds inte för partitionerade tabeller" -#: parser/parse_utilcmd.c:944 +#: parser/parse_utilcmd.c:970 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE stöds inte för att skapa främmande tabeller" -#: parser/parse_utilcmd.c:1704 parser/parse_utilcmd.c:1813 +#: parser/parse_utilcmd.c:1738 parser/parse_utilcmd.c:1847 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "Index \"%s\" innehåller en hela-raden-referens." -#: parser/parse_utilcmd.c:2163 +#: parser/parse_utilcmd.c:2197 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "kan inte använda ett existerande index i CREATE TABLE" -#: parser/parse_utilcmd.c:2183 +#: parser/parse_utilcmd.c:2217 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "index \"%s\" är redan associerad med ett villkor" -#: parser/parse_utilcmd.c:2198 +#: parser/parse_utilcmd.c:2232 #, c-format msgid "index \"%s\" is not valid" msgstr "index \"%s\" är inte giltigt" -#: parser/parse_utilcmd.c:2204 +#: parser/parse_utilcmd.c:2238 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" är inte ett unikt index" -#: parser/parse_utilcmd.c:2205 parser/parse_utilcmd.c:2212 -#: parser/parse_utilcmd.c:2219 parser/parse_utilcmd.c:2296 +#: parser/parse_utilcmd.c:2239 parser/parse_utilcmd.c:2246 +#: parser/parse_utilcmd.c:2253 parser/parse_utilcmd.c:2330 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "Kan inte skapa en primärnyckel eller ett unikt villkor med hjälp av ett sådant index." -#: parser/parse_utilcmd.c:2211 +#: parser/parse_utilcmd.c:2245 #, c-format msgid "index \"%s\" contains expressions" msgstr "index \"%s\" innehåller uttryck" -#: parser/parse_utilcmd.c:2218 +#: parser/parse_utilcmd.c:2252 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" är ett partiellt index" -#: parser/parse_utilcmd.c:2230 +#: parser/parse_utilcmd.c:2264 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" är ett \"deferrable\" index" -#: parser/parse_utilcmd.c:2231 +#: parser/parse_utilcmd.c:2265 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "Kan inte skapa ett icke-\"deferrable\" integritetsvillkor från ett \"deferrable\" index." -#: parser/parse_utilcmd.c:2295 +#: parser/parse_utilcmd.c:2329 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "index \"%s\" kolumn nummer %d har ingen standard för sorteringsbeteende" -#: parser/parse_utilcmd.c:2452 +#: parser/parse_utilcmd.c:2486 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "kolumn \"%s\" finns med två gånger i primära nyckel-villkoret" -#: parser/parse_utilcmd.c:2458 +#: parser/parse_utilcmd.c:2492 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "kolumn \"%s\" finns med två gånger i unique-villkoret" -#: parser/parse_utilcmd.c:2811 +#: parser/parse_utilcmd.c:2845 #, c-format msgid "index expressions and predicates can refer only to the table being indexed" msgstr "indexuttryck och predikat kan bara referera till tabellen som indexeras" -#: parser/parse_utilcmd.c:2857 +#: parser/parse_utilcmd.c:2891 #, c-format msgid "rules on materialized views are not supported" msgstr "regler på materialiserade vyer stöds inte" -#: parser/parse_utilcmd.c:2920 +#: parser/parse_utilcmd.c:2954 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "WHERE-villkor i regel kan inte innehålla referenser till andra relationer" -#: parser/parse_utilcmd.c:2994 +#: parser/parse_utilcmd.c:3028 #, c-format msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions" msgstr "regler med WHERE-villkor kan bara innehålla SELECT-, INSERT-, UPDATE- eller DELETE-handlingar" -#: parser/parse_utilcmd.c:3012 parser/parse_utilcmd.c:3113 -#: rewrite/rewriteHandler.c:502 rewrite/rewriteManip.c:1018 +#: parser/parse_utilcmd.c:3046 parser/parse_utilcmd.c:3147 +#: rewrite/rewriteHandler.c:503 rewrite/rewriteManip.c:1018 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "UNION-/INTERSECT-/EXCEPT-satser med villkor är inte implementerat" -#: parser/parse_utilcmd.c:3030 +#: parser/parse_utilcmd.c:3064 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "ON SELECT-regel kan inte använda OLD" -#: parser/parse_utilcmd.c:3034 +#: parser/parse_utilcmd.c:3068 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "ON SELECT-regel kan inte använda NEW" -#: parser/parse_utilcmd.c:3043 +#: parser/parse_utilcmd.c:3077 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "ON INSERT-regel kan inte använda OLD" -#: parser/parse_utilcmd.c:3049 +#: parser/parse_utilcmd.c:3083 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "ON DELETE-regel kan inte använda NEW" -#: parser/parse_utilcmd.c:3077 +#: parser/parse_utilcmd.c:3111 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "kan inte referera till OLD i WITH-fråga" -#: parser/parse_utilcmd.c:3084 +#: parser/parse_utilcmd.c:3118 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "kan inte referera till NEW i WITH-fråga" -#: parser/parse_utilcmd.c:3542 +#: parser/parse_utilcmd.c:3578 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "felplacerad DEFERRABLE-klausul" -#: parser/parse_utilcmd.c:3547 parser/parse_utilcmd.c:3562 +#: parser/parse_utilcmd.c:3583 parser/parse_utilcmd.c:3598 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "multipla DEFERRABLE/NOT DEFERRABLE-klausuler tillåts inte" -#: parser/parse_utilcmd.c:3557 +#: parser/parse_utilcmd.c:3593 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "felplacerad NOT DEFERRABLE-klausul" -#: parser/parse_utilcmd.c:3578 +#: parser/parse_utilcmd.c:3614 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "felplacerad INITIALLY DEFERRED-klausul" -#: parser/parse_utilcmd.c:3583 parser/parse_utilcmd.c:3609 +#: parser/parse_utilcmd.c:3619 parser/parse_utilcmd.c:3645 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "multipla INITIALLY IMMEDIATE/DEFERRED-klausuler tillåts inte" -#: parser/parse_utilcmd.c:3604 +#: parser/parse_utilcmd.c:3640 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "felplacerad klausul INITIALLY IMMEDIATE" -#: parser/parse_utilcmd.c:3795 +#: parser/parse_utilcmd.c:3831 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "CREATE anger ett schema (%s) som skiljer sig från det som skapas (%s)" -#: parser/parse_utilcmd.c:3830 +#: parser/parse_utilcmd.c:3866 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "\"%s\" är inte en partitionerad tabell" -#: parser/parse_utilcmd.c:3837 +#: parser/parse_utilcmd.c:3873 #, c-format msgid "table \"%s\" is not partitioned" msgstr "tabell \"%s\" är inte partitionerad" -#: parser/parse_utilcmd.c:3844 +#: parser/parse_utilcmd.c:3880 #, c-format msgid "index \"%s\" is not partitioned" msgstr "index \"%s\" är inte partitionerad" -#: parser/parse_utilcmd.c:3884 +#: parser/parse_utilcmd.c:3920 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "en hash-partitionerad tabell får inte ha en standardpartition" -#: parser/parse_utilcmd.c:3901 +#: parser/parse_utilcmd.c:3937 #, c-format msgid "invalid bound specification for a hash partition" msgstr "ogiltig gränsangivelse för hash-partition" -#: parser/parse_utilcmd.c:3907 partitioning/partbounds.c:4691 +#: parser/parse_utilcmd.c:3943 partitioning/partbounds.c:4640 #, c-format -msgid "modulus for hash partition must be a positive integer" -msgstr "modulo för hash-partition vara ett positivt integer" +msgid "modulus for hash partition must be an integer value greater than zero" +msgstr "modulo för hash-partition vara ett heltalsvärde större än noll" -#: parser/parse_utilcmd.c:3914 partitioning/partbounds.c:4699 +#: parser/parse_utilcmd.c:3950 partitioning/partbounds.c:4648 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "rest för hash-partition måste vara lägre än modulo" -#: parser/parse_utilcmd.c:3927 +#: parser/parse_utilcmd.c:3963 #, c-format msgid "invalid bound specification for a list partition" msgstr "ogiltig gränsangivelse för listpartition" -#: parser/parse_utilcmd.c:3980 +#: parser/parse_utilcmd.c:4016 #, c-format msgid "invalid bound specification for a range partition" msgstr "ogiltig gränsangivelse för range-partition" -#: parser/parse_utilcmd.c:3986 +#: parser/parse_utilcmd.c:4022 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "FROM måste ge exakt ett värde per partitionerande kolumn" -#: parser/parse_utilcmd.c:3990 +#: parser/parse_utilcmd.c:4026 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "TO måste ge exakt ett värde per partitionerande kolumn" -#: parser/parse_utilcmd.c:4104 +#: parser/parse_utilcmd.c:4140 #, c-format msgid "cannot specify NULL in range bound" msgstr "kan inte ange NULL i range-gräns" -#: parser/parse_utilcmd.c:4153 +#: parser/parse_utilcmd.c:4189 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "varje gräns efter MAXVALUE måste också vara MAXVALUE" -#: parser/parse_utilcmd.c:4160 +#: parser/parse_utilcmd.c:4196 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "varje gräns efter MINVALUE måste också vara MINVALUE" -#: parser/parse_utilcmd.c:4202 +#: parser/parse_utilcmd.c:4238 #, c-format msgid "could not determine which collation to use for partition bound expression" msgstr "kunde inte bestämma vilken jämförelse (collation) som skulle användas för partitionsgränsuttryck" -#: parser/parse_utilcmd.c:4219 +#: parser/parse_utilcmd.c:4255 #, c-format msgid "collation of partition bound value for column \"%s\" does not match partition key collation \"%s\"" msgstr "jämförelse (collation) av partitioneringsgränsvärde \"%s\" matchar inte partitioneringsnyckelns jämförelse \"%s\"" -#: parser/parse_utilcmd.c:4236 +#: parser/parse_utilcmd.c:4272 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "angivet värde kan inte typomvandlas till typ %s för kolumn \"%s\"" @@ -16994,73 +17069,73 @@ msgid "identifier \"%s\" will be truncated to \"%s\"" msgstr "identifierare \"%s\" kommer trunkeras till \"%s\"" -#: partitioning/partbounds.c:2831 +#: partitioning/partbounds.c:2821 #, c-format msgid "partition \"%s\" conflicts with existing default partition \"%s\"" msgstr "partition \"%s\" står i konflikt med existerande default-partition \"%s\"" -#: partitioning/partbounds.c:2890 +#: partitioning/partbounds.c:2880 #, c-format msgid "every hash partition modulus must be a factor of the next larger modulus" msgstr "varje hash-partition-modulo måste vara en faktror av näste högre modulo" -#: partitioning/partbounds.c:2986 +#: partitioning/partbounds.c:2976 #, c-format msgid "empty range bound specified for partition \"%s\"" msgstr "tom intervallsgräns angiven för partition \"%s\"" -#: partitioning/partbounds.c:2988 +#: partitioning/partbounds.c:2978 #, c-format msgid "Specified lower bound %s is greater than or equal to upper bound %s." msgstr "Angiven lägre gräns %s är större än eller lika med övre gräns %s." -#: partitioning/partbounds.c:3085 +#: partitioning/partbounds.c:3075 #, c-format msgid "partition \"%s\" would overlap partition \"%s\"" msgstr "partition \"%s\" skulle överlappa partition \"%s\"" -#: partitioning/partbounds.c:3202 +#: partitioning/partbounds.c:3192 #, c-format msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\"" msgstr "hoppade över skanning av främmand tabell \"%s\" som er en partition för standardpartitionen \"%s\"" -#: partitioning/partbounds.c:4695 +#: partitioning/partbounds.c:4644 #, c-format -msgid "remainder for hash partition must be a non-negative integer" -msgstr "rest för hash-partition måste vara ett icke-negativt heltal" +msgid "remainder for hash partition must be an integer value greater than or equal to zero" +msgstr "rest för hash-partition måste vara ett heltalsvärde större än eller lika med noll" -#: partitioning/partbounds.c:4722 +#: partitioning/partbounds.c:4668 #, c-format msgid "\"%s\" is not a hash partitioned table" msgstr "\"%s\" är inte en hash-partitionerad tabell" -#: partitioning/partbounds.c:4733 partitioning/partbounds.c:4850 +#: partitioning/partbounds.c:4679 partitioning/partbounds.c:4796 #, c-format msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)" msgstr "antalet partitioneringskolumner (%d) stämmer inte med antalet partioneringsnycklas som angivits (%d)" -#: partitioning/partbounds.c:4755 partitioning/partbounds.c:4787 +#: partitioning/partbounds.c:4701 partitioning/partbounds.c:4733 #, c-format msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" msgstr "kolumn %d i partitioneringsnyckeln har typ \"%s\" men använt värde har typ \"%s\"" -#: port/pg_sema.c:209 port/pg_shmem.c:640 port/posix_sema.c:209 -#: port/sysv_sema.c:327 port/sysv_shmem.c:640 +#: port/pg_sema.c:209 port/pg_shmem.c:650 port/posix_sema.c:209 +#: port/sysv_sema.c:327 port/sysv_shmem.c:650 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "kunde inte göra stat() på datakatalog \"%s\": %m" -#: port/pg_shmem.c:216 port/sysv_shmem.c:216 +#: port/pg_shmem.c:226 port/sysv_shmem.c:226 #, c-format msgid "could not create shared memory segment: %m" msgstr "kunde inte skapa delat minnessegment: %m" -#: port/pg_shmem.c:217 port/sysv_shmem.c:217 +#: port/pg_shmem.c:227 port/sysv_shmem.c:227 #, c-format msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)." msgstr "Misslyckade systemanropet var semget(key=%lu, size=%zu, 0%o)." -#: port/pg_shmem.c:221 port/sysv_shmem.c:221 +#: port/pg_shmem.c:231 port/sysv_shmem.c:231 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter, or possibly that it is less than your kernel's SHMMIN parameter.\n" @@ -17069,7 +17144,7 @@ "Felet betyder vanligen att PostgreSQLs begäran av delat minnessegment överskred kärnans SHMMAX-parameter eller möjligen att det är lägre än kärnans SHMMIN-parameter.\n" "PostgreSQLs dokumentation innehåller mer information om konfigueration av delat minne." -#: port/pg_shmem.c:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:238 port/sysv_shmem.c:238 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMALL parameter. You might need to reconfigure the kernel with larger SHMALL.\n" @@ -17078,7 +17153,7 @@ "Felet betyder vanligen att PostgreSQLs begäran av delat minnessegment överskred kärnans SHMALL-parameter. Du kan behöva rekonfigurera kärnan med ett större SHMALL.\n" "PostgreSQLs dokumentation innehåller mer information om konfigueration av delat minne." -#: port/pg_shmem.c:234 port/sysv_shmem.c:234 +#: port/pg_shmem.c:244 port/sysv_shmem.c:244 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs either if all available shared memory IDs have been taken, in which case you need to raise the SHMMNI parameter in your kernel, or because the system's overall limit for shared memory has been reached.\n" @@ -17087,27 +17162,32 @@ "Felet betyder *inte* att diskutrymmet tagit slut. Felet sker aningen om alla tillgängliga ID-nummer för delat minne tagit slut och då behöver du öka kärnans SHMMNI-parameter eller för att systemets totala gräns för delat minne ha nåtts.\n" "PostgreSQLs dokumentation innehåller mer information om konfigueration av delat minne." -#: port/pg_shmem.c:578 port/sysv_shmem.c:578 +#: port/pg_shmem.c:588 port/sysv_shmem.c:588 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "kunde inte mappa anonymt delat minne: %m" -#: port/pg_shmem.c:580 port/sysv_shmem.c:580 +#: port/pg_shmem.c:590 port/sysv_shmem.c:590 #, c-format msgid "This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently %zu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections." msgstr "Detta fel betyder vanligtvis att PostgreSQL:s begäran av delat minnessegment överskrider mängden tillgängligt minne, swap eller stora sidor. För att minska begärd storlek (nu %zu byte) minska PostgreSQL:s användning av delat minne t.ex. genom att dra ner på shared_buffers eller max_connections." -#: port/pg_shmem.c:648 port/sysv_shmem.c:648 +#: port/pg_shmem.c:658 port/sysv_shmem.c:658 #, c-format msgid "huge pages not supported on this platform" msgstr "stora sidor stöds inte på denna plattform" -#: port/pg_shmem.c:709 port/sysv_shmem.c:709 utils/init/miscinit.c:1137 +#: port/pg_shmem.c:665 port/sysv_shmem.c:665 +#, c-format +msgid "huge pages not supported with the current shared_memory_type setting" +msgstr "stora sidor stöds inte vid nuvarande inställning av shared_memory_type" + +#: port/pg_shmem.c:725 port/sysv_shmem.c:725 utils/init/miscinit.c:1136 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "redan existerande delat minnesblock (nyckel %lu, ID %lu) används fortfarande" -#: port/pg_shmem.c:712 port/sysv_shmem.c:712 utils/init/miscinit.c:1139 +#: port/pg_shmem.c:728 port/sysv_shmem.c:728 utils/init/miscinit.c:1138 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Stäng ner gamla serverprocesser som hör ihop med datakatalogen \"%s\"." @@ -17306,64 +17386,64 @@ msgid "Enable the \"track_counts\" option." msgstr "Slå på flaggan \"track_counts\"." -#: postmaster/bgworker.c:394 postmaster/bgworker.c:841 +#: postmaster/bgworker.c:407 postmaster/bgworker.c:911 #, c-format msgid "registering background worker \"%s\"" msgstr "registrerar bakgrundsarbetare \"%s\"" -#: postmaster/bgworker.c:426 +#: postmaster/bgworker.c:448 #, c-format msgid "unregistering background worker \"%s\"" msgstr "avregistrerar bakgrundsarbetare \"%s\"" -#: postmaster/bgworker.c:591 +#: postmaster/bgworker.c:661 #, c-format msgid "background worker \"%s\": must attach to shared memory in order to request a database connection" msgstr "bakgrundsarbetare \"%s\": måste ansluta till delat minne för att kunna få en databasanslutning" -#: postmaster/bgworker.c:600 +#: postmaster/bgworker.c:670 #, c-format msgid "background worker \"%s\": cannot request database access if starting at postmaster start" msgstr "bakgrundsarbetare \"%s\" kan inte få databasaccess om den startar när postmaster startar" -#: postmaster/bgworker.c:614 +#: postmaster/bgworker.c:684 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "bakgrundsarbetare \"%s\": ogiltigt omstartsintervall" -#: postmaster/bgworker.c:629 +#: postmaster/bgworker.c:699 #, c-format msgid "background worker \"%s\": parallel workers may not be configured for restart" msgstr "bakgrundsarbetare \"%s\": parallella arbetare kan inte konfigureras för omstart" -#: postmaster/bgworker.c:653 +#: postmaster/bgworker.c:723 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "terminerar bakgrundsarbetare \"%s\" pga administratörskommando" -#: postmaster/bgworker.c:849 +#: postmaster/bgworker.c:919 #, c-format msgid "background worker \"%s\": must be registered in shared_preload_libraries" msgstr "bakgrundsarbetare \"%s\": måste vara registrerad i shared_preload_libraries" -#: postmaster/bgworker.c:861 +#: postmaster/bgworker.c:931 #, c-format msgid "background worker \"%s\": only dynamic background workers can request notification" msgstr "bakgrundsarbetare \"%s\": bara dynamiska bakgrundsarbetare kan be om notifiering" -#: postmaster/bgworker.c:876 +#: postmaster/bgworker.c:946 #, c-format msgid "too many background workers" msgstr "för många bakgrundsarbetare" -#: postmaster/bgworker.c:877 +#: postmaster/bgworker.c:947 #, c-format msgid "Up to %d background worker can be registered with the current settings." msgid_plural "Up to %d background workers can be registered with the current settings." msgstr[0] "Upp till %d bakgrundsarbetare kan registreras med nuvarande inställning." msgstr[1] "Upp till %d bakgrundsarbetare kan registreras med nuvarande inställning." -#: postmaster/bgworker.c:881 +#: postmaster/bgworker.c:951 #, c-format msgid "Consider increasing the configuration parameter \"max_worker_processes\"." msgstr "Överväg att öka konfigurationsparametern \"max_worker_processes\"." @@ -17436,7 +17516,7 @@ msgid "archive command was terminated by exception 0x%X" msgstr "arkiveringskommandot terminerades med avbrott 0x%X" -#: postmaster/pgarch.c:605 postmaster/postmaster.c:3742 +#: postmaster/pgarch.c:605 postmaster/postmaster.c:3749 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "Se C-include-fil \"ntstatus.h\" för en beskrivning av det hexdecimala värdet." @@ -17531,53 +17611,53 @@ msgid "Target must be \"archiver\" or \"bgwriter\"." msgstr "Målet måste vara \"archiver\" eller \"bgwriter\"." -#: postmaster/pgstat.c:4561 +#: postmaster/pgstat.c:4570 #, c-format msgid "could not read statistics message: %m" msgstr "kunde inte läsa statistikmeddelande: %m" -#: postmaster/pgstat.c:4883 postmaster/pgstat.c:5046 +#: postmaster/pgstat.c:4892 postmaster/pgstat.c:5055 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "kunde inte öppna temporär statistikfil \"%s\": %m" -#: postmaster/pgstat.c:4956 postmaster/pgstat.c:5091 +#: postmaster/pgstat.c:4965 postmaster/pgstat.c:5100 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "kunde inte skriva temporär statistikfil \"%s\": %m" -#: postmaster/pgstat.c:4965 postmaster/pgstat.c:5100 +#: postmaster/pgstat.c:4974 postmaster/pgstat.c:5109 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "kunde inte stänga temporär statistikfil \"%s\": %m" -#: postmaster/pgstat.c:4973 postmaster/pgstat.c:5108 +#: postmaster/pgstat.c:4982 postmaster/pgstat.c:5117 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "kunde inte döpa om temporär statistikfil \"%s\" till \"%s\": %m" -#: postmaster/pgstat.c:5205 postmaster/pgstat.c:5422 postmaster/pgstat.c:5576 +#: postmaster/pgstat.c:5214 postmaster/pgstat.c:5431 postmaster/pgstat.c:5585 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "kunde inte öppna statistikfil \"%s\": %m" -#: postmaster/pgstat.c:5217 postmaster/pgstat.c:5227 postmaster/pgstat.c:5248 -#: postmaster/pgstat.c:5259 postmaster/pgstat.c:5281 postmaster/pgstat.c:5296 -#: postmaster/pgstat.c:5359 postmaster/pgstat.c:5434 postmaster/pgstat.c:5454 -#: postmaster/pgstat.c:5472 postmaster/pgstat.c:5488 postmaster/pgstat.c:5506 -#: postmaster/pgstat.c:5522 postmaster/pgstat.c:5588 postmaster/pgstat.c:5600 -#: postmaster/pgstat.c:5612 postmaster/pgstat.c:5623 postmaster/pgstat.c:5648 -#: postmaster/pgstat.c:5670 +#: postmaster/pgstat.c:5226 postmaster/pgstat.c:5236 postmaster/pgstat.c:5257 +#: postmaster/pgstat.c:5268 postmaster/pgstat.c:5290 postmaster/pgstat.c:5305 +#: postmaster/pgstat.c:5368 postmaster/pgstat.c:5443 postmaster/pgstat.c:5463 +#: postmaster/pgstat.c:5481 postmaster/pgstat.c:5497 postmaster/pgstat.c:5515 +#: postmaster/pgstat.c:5531 postmaster/pgstat.c:5597 postmaster/pgstat.c:5609 +#: postmaster/pgstat.c:5621 postmaster/pgstat.c:5632 postmaster/pgstat.c:5657 +#: postmaster/pgstat.c:5679 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "korrupt statistikfil \"%s\"" -#: postmaster/pgstat.c:5799 +#: postmaster/pgstat.c:5808 #, c-format msgid "using stale statistics instead of current ones because stats collector is not responding" msgstr "använder gammal statistik istället för aktuell data då statistikinsamlaren inte svarar" -#: postmaster/pgstat.c:6129 +#: postmaster/pgstat.c:6138 #, c-format msgid "database hash table corrupted during cleanup --- abort" msgstr "databasens hashtabell har blivit korrupt vid uppstädning --- avbryter" @@ -17638,7 +17718,7 @@ msgstr "startar %s" #: postmaster/postmaster.c:1154 postmaster/postmaster.c:1252 -#: utils/init/miscinit.c:1597 +#: utils/init/miscinit.c:1596 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "ogiltigt listsyntax för parameter \"%s\"" @@ -17739,371 +17819,386 @@ msgid "failed to send SSL negotiation response: %m" msgstr "misslyckades att skicka SSL-förhandlingssvar: %m" -#: postmaster/postmaster.c:2074 +#: postmaster/postmaster.c:2061 +#, c-format +msgid "received unencrypted data after SSL request" +msgstr "tog emot okrypterad data efter SSL-förfrågan" + +#: postmaster/postmaster.c:2062 postmaster/postmaster.c:2106 +#, c-format +msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." +msgstr "Detta kan antingen vara en bug i klientens mjukvara eller bevis på ett försök att utföra en attack av typen man-in-the-middle." + +#: postmaster/postmaster.c:2087 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "misslyckades att skicka GSSAPI-förhandlingssvar: %m" -#: postmaster/postmaster.c:2104 +#: postmaster/postmaster.c:2105 +#, c-format +msgid "received unencrypted data after GSSAPI encryption request" +msgstr "tog emot okrypterad data efter GSSAPI-krypteringsförfrågan" + +#: postmaster/postmaster.c:2129 #, c-format msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "inget stöd för framändans protokoll %u.%u: servern stöder %u.0 till %u.%u" -#: postmaster/postmaster.c:2168 utils/misc/guc.c:6769 utils/misc/guc.c:6805 -#: utils/misc/guc.c:6875 utils/misc/guc.c:8226 utils/misc/guc.c:11072 -#: utils/misc/guc.c:11106 +#: postmaster/postmaster.c:2193 utils/misc/guc.c:6769 utils/misc/guc.c:6805 +#: utils/misc/guc.c:6875 utils/misc/guc.c:8226 utils/misc/guc.c:11088 +#: utils/misc/guc.c:11129 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "ogiltigt värde för parameter \"%s\": \"%s\"" -#: postmaster/postmaster.c:2171 +#: postmaster/postmaster.c:2196 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "Giltiga värden är: \"false\", 0, \"true\", 1, \"database\"." -#: postmaster/postmaster.c:2216 +#: postmaster/postmaster.c:2241 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "ogiltig startpaketlayout: förväntade en terminator som sista byte" -#: postmaster/postmaster.c:2254 +#: postmaster/postmaster.c:2279 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "inget PostgreSQL-användarnamn angivet i startuppaketet" -#: postmaster/postmaster.c:2318 +#: postmaster/postmaster.c:2343 #, c-format msgid "the database system is starting up" msgstr "databassystemet startar upp" -#: postmaster/postmaster.c:2323 +#: postmaster/postmaster.c:2348 #, c-format msgid "the database system is shutting down" msgstr "databassystemet stänger ner" -#: postmaster/postmaster.c:2328 +#: postmaster/postmaster.c:2353 #, c-format msgid "the database system is in recovery mode" msgstr "databassystemet är återställningsläge" -#: postmaster/postmaster.c:2333 storage/ipc/procarray.c:293 +#: postmaster/postmaster.c:2358 storage/ipc/procarray.c:298 #: storage/ipc/sinvaladt.c:297 storage/lmgr/proc.c:362 #, c-format msgid "sorry, too many clients already" msgstr "ledsen, för många klienter" -#: postmaster/postmaster.c:2423 +#: postmaster/postmaster.c:2448 #, c-format msgid "wrong key in cancel request for process %d" msgstr "fel nyckel i avbrytbegäran för process %d" -#: postmaster/postmaster.c:2435 +#: postmaster/postmaster.c:2460 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "PID %d i avbrytbegäran matchade inte någon process" -#: postmaster/postmaster.c:2706 +#: postmaster/postmaster.c:2713 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "mottog SIGHUP, läser om konfigurationsfiler" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2732 postmaster/postmaster.c:2736 +#: postmaster/postmaster.c:2739 postmaster/postmaster.c:2743 #, c-format msgid "%s was not reloaded" msgstr "%s laddades inte om" -#: postmaster/postmaster.c:2746 +#: postmaster/postmaster.c:2753 #, c-format msgid "SSL configuration was not reloaded" msgstr "SSL-konfiguration laddades inte om" -#: postmaster/postmaster.c:2802 +#: postmaster/postmaster.c:2809 #, c-format msgid "received smart shutdown request" msgstr "tog emot förfrågan om att stänga ner smart" -#: postmaster/postmaster.c:2848 +#: postmaster/postmaster.c:2855 #, c-format msgid "received fast shutdown request" msgstr "tog emot förfrågan om att stänga ner snabbt" -#: postmaster/postmaster.c:2866 +#: postmaster/postmaster.c:2873 #, c-format msgid "aborting any active transactions" msgstr "avbryter aktiva transaktioner" -#: postmaster/postmaster.c:2890 +#: postmaster/postmaster.c:2897 #, c-format msgid "received immediate shutdown request" msgstr "mottog begäran för omedelbar nedstängning" -#: postmaster/postmaster.c:2965 +#: postmaster/postmaster.c:2972 #, c-format msgid "shutdown at recovery target" msgstr "nedstängs vid återställningsmål" -#: postmaster/postmaster.c:2983 postmaster/postmaster.c:3019 +#: postmaster/postmaster.c:2990 postmaster/postmaster.c:3026 msgid "startup process" msgstr "uppstartprocess" -#: postmaster/postmaster.c:2986 +#: postmaster/postmaster.c:2993 #, c-format msgid "aborting startup due to startup process failure" msgstr "avbryter uppstart på grund av fel i startprocessen" -#: postmaster/postmaster.c:3061 +#: postmaster/postmaster.c:3068 #, c-format msgid "database system is ready to accept connections" msgstr "databassystemet är redo att ta emot anslutningar" -#: postmaster/postmaster.c:3082 +#: postmaster/postmaster.c:3089 msgid "background writer process" msgstr "bakgrundsskrivarprocess" -#: postmaster/postmaster.c:3136 +#: postmaster/postmaster.c:3143 msgid "checkpointer process" msgstr "checkpoint-process" -#: postmaster/postmaster.c:3152 +#: postmaster/postmaster.c:3159 msgid "WAL writer process" msgstr "WAL-skrivarprocess" -#: postmaster/postmaster.c:3167 +#: postmaster/postmaster.c:3174 msgid "WAL receiver process" msgstr "WAL-mottagarprocess" -#: postmaster/postmaster.c:3182 +#: postmaster/postmaster.c:3189 msgid "autovacuum launcher process" msgstr "autovacuum-startprocess" -#: postmaster/postmaster.c:3197 +#: postmaster/postmaster.c:3204 msgid "archiver process" msgstr "arkiveringsprocess" -#: postmaster/postmaster.c:3213 +#: postmaster/postmaster.c:3220 msgid "statistics collector process" msgstr "statistikinsamlingsprocess" -#: postmaster/postmaster.c:3227 +#: postmaster/postmaster.c:3234 msgid "system logger process" msgstr "system-logg-process" -#: postmaster/postmaster.c:3291 +#: postmaster/postmaster.c:3298 #, c-format msgid "background worker \"%s\"" msgstr "bakgrundsarbetare \"%s\"" -#: postmaster/postmaster.c:3375 postmaster/postmaster.c:3395 -#: postmaster/postmaster.c:3402 postmaster/postmaster.c:3420 +#: postmaster/postmaster.c:3382 postmaster/postmaster.c:3402 +#: postmaster/postmaster.c:3409 postmaster/postmaster.c:3427 msgid "server process" msgstr "serverprocess" -#: postmaster/postmaster.c:3474 +#: postmaster/postmaster.c:3481 #, c-format msgid "terminating any other active server processes" msgstr "avslutar andra aktiva serverprocesser" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3729 +#: postmaster/postmaster.c:3736 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) avslutade med felkod %d" -#: postmaster/postmaster.c:3731 postmaster/postmaster.c:3743 -#: postmaster/postmaster.c:3753 postmaster/postmaster.c:3764 +#: postmaster/postmaster.c:3738 postmaster/postmaster.c:3750 +#: postmaster/postmaster.c:3760 postmaster/postmaster.c:3771 #, c-format msgid "Failed process was running: %s" msgstr "Misslyckad process körde: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3740 +#: postmaster/postmaster.c:3747 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d) terminerades av avbrott 0x%X" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3750 +#: postmaster/postmaster.c:3757 #, c-format msgid "%s (PID %d) was terminated by signal %d: %s" msgstr "%s (PID %d) terminerades av signal %d: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3762 +#: postmaster/postmaster.c:3769 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) avslutade med okänd status %d" -#: postmaster/postmaster.c:3970 +#: postmaster/postmaster.c:3984 #, c-format msgid "abnormal database system shutdown" msgstr "ej normal databasnedstängning" -#: postmaster/postmaster.c:4010 +#: postmaster/postmaster.c:4024 #, c-format msgid "all server processes terminated; reinitializing" msgstr "alla serverprocesser är avslutade; initierar på nytt" -#: postmaster/postmaster.c:4180 postmaster/postmaster.c:5599 -#: postmaster/postmaster.c:5986 +#: postmaster/postmaster.c:4194 postmaster/postmaster.c:5603 +#: postmaster/postmaster.c:5990 #, c-format msgid "could not generate random cancel key" msgstr "kunde inte skapa slumpad avbrytningsnyckel" -#: postmaster/postmaster.c:4234 +#: postmaster/postmaster.c:4248 #, c-format msgid "could not fork new process for connection: %m" msgstr "kunde inte fork():a ny process for uppkoppling: %m" -#: postmaster/postmaster.c:4276 +#: postmaster/postmaster.c:4290 msgid "could not fork new process for connection: " msgstr "kunde inte fork():a ny process for uppkoppling: " -#: postmaster/postmaster.c:4393 +#: postmaster/postmaster.c:4407 #, c-format msgid "connection received: host=%s port=%s" msgstr "ansluting mottagen: värd=%s port=%s" -#: postmaster/postmaster.c:4398 +#: postmaster/postmaster.c:4412 #, c-format msgid "connection received: host=%s" msgstr "ansluting mottagen: värd=%s" -#: postmaster/postmaster.c:4668 +#: postmaster/postmaster.c:4682 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "kunde inte köra serverprocess \"%s\": %m" -#: postmaster/postmaster.c:4827 +#: postmaster/postmaster.c:4841 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "ger upp efter för många försök att reservera delat minne" -#: postmaster/postmaster.c:4828 +#: postmaster/postmaster.c:4842 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "Detta kan orsakas av ASLR eller antivirusprogram." -#: postmaster/postmaster.c:5034 +#: postmaster/postmaster.c:5036 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "SSL-konfigurering kunde inte laddas i barnprocess" -#: postmaster/postmaster.c:5166 +#: postmaster/postmaster.c:5168 #, c-format msgid "Please report this to <%s>." msgstr "Rapportera gärna detta till <%s>." -#: postmaster/postmaster.c:5259 +#: postmaster/postmaster.c:5255 #, c-format msgid "database system is ready to accept read only connections" msgstr "databassystemet är redo att ta emot read-only-anslutningar" -#: postmaster/postmaster.c:5527 +#: postmaster/postmaster.c:5531 #, c-format msgid "could not fork startup process: %m" msgstr "kunde inte starta startup-processen: %m" -#: postmaster/postmaster.c:5531 +#: postmaster/postmaster.c:5535 #, c-format msgid "could not fork background writer process: %m" msgstr "kunde inte starta process för bakgrundsskrivare: %m" -#: postmaster/postmaster.c:5535 +#: postmaster/postmaster.c:5539 #, c-format msgid "could not fork checkpointer process: %m" msgstr "kunde inte fork:a bakgrundsprocess: %m" -#: postmaster/postmaster.c:5539 +#: postmaster/postmaster.c:5543 #, c-format msgid "could not fork WAL writer process: %m" msgstr "kunde inte fork:a WAL-skrivprocess: %m" -#: postmaster/postmaster.c:5543 +#: postmaster/postmaster.c:5547 #, c-format msgid "could not fork WAL receiver process: %m" msgstr "kunde inte fork:a WAL-mottagarprocess: %m" -#: postmaster/postmaster.c:5547 +#: postmaster/postmaster.c:5551 #, c-format msgid "could not fork process: %m" msgstr "kunde inte fork:a process: %m" -#: postmaster/postmaster.c:5744 postmaster/postmaster.c:5767 +#: postmaster/postmaster.c:5748 postmaster/postmaster.c:5771 #, c-format msgid "database connection requirement not indicated during registration" msgstr "krav på databasanslutning fanns inte med vid registering" -#: postmaster/postmaster.c:5751 postmaster/postmaster.c:5774 +#: postmaster/postmaster.c:5755 postmaster/postmaster.c:5778 #, c-format msgid "invalid processing mode in background worker" msgstr "ogiltigt processläge i bakgrundsarbetare" -#: postmaster/postmaster.c:5847 +#: postmaster/postmaster.c:5851 #, c-format msgid "starting background worker process \"%s\"" msgstr "startar bakgrundsarbetarprocess \"%s\"" -#: postmaster/postmaster.c:5859 +#: postmaster/postmaster.c:5863 #, c-format msgid "could not fork worker process: %m" msgstr "kunde inte starta (fork) arbetarprocess: %m" -#: postmaster/postmaster.c:5972 +#: postmaster/postmaster.c:5976 #, c-format msgid "no slot available for new worker process" msgstr "ingen slot tillgänglig för ny arbetsprocess" -#: postmaster/postmaster.c:6307 +#: postmaster/postmaster.c:6311 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "kunde inte duplicera uttag (socket) %d för att använda i backend: felkod %d" -#: postmaster/postmaster.c:6339 +#: postmaster/postmaster.c:6343 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "kunde inte skapa ärvt uttag (socket): felkod %d\n" -#: postmaster/postmaster.c:6368 +#: postmaster/postmaster.c:6372 #, c-format msgid "could not open backend variables file \"%s\": %s\n" msgstr "kunde inte öppna bakändans variabelfil \"%s\": %s\n" -#: postmaster/postmaster.c:6375 +#: postmaster/postmaster.c:6379 #, c-format msgid "could not read from backend variables file \"%s\": %s\n" msgstr "kunde inte läsa från bakändans variabelfil \"%s\": %s\n" -#: postmaster/postmaster.c:6384 +#: postmaster/postmaster.c:6388 #, c-format msgid "could not remove file \"%s\": %s\n" msgstr "kunde inte ta bort fil \"%s\": %s\n" -#: postmaster/postmaster.c:6401 +#: postmaster/postmaster.c:6405 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "kunde inte mappa in vy för bakgrundsvariabler: felkod %lu\n" -#: postmaster/postmaster.c:6410 +#: postmaster/postmaster.c:6414 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "kunde inte avmappa vy för bakgrundsvariabler: felkod %lu\n" -#: postmaster/postmaster.c:6417 +#: postmaster/postmaster.c:6421 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "kunde inte stänga \"handle\" till backend:ens parametervariabler: felkod %lu\n" -#: postmaster/postmaster.c:6595 +#: postmaster/postmaster.c:6599 #, c-format msgid "could not read exit code for process\n" msgstr "kunde inte läsa avslutningskod för process\n" -#: postmaster/postmaster.c:6600 +#: postmaster/postmaster.c:6604 #, c-format msgid "could not post child completion status\n" msgstr "kunde inte skicka barnets avslutningsstatus\n" @@ -18173,40 +18268,40 @@ msgid "nondeterministic collations are not supported for regular expressions" msgstr "ickedeterministiska jämförelser (collation) stöds inte för reguljära uttryck" -#: repl_gram.y:349 repl_gram.y:381 +#: repl_gram.y:345 repl_gram.y:377 #, c-format msgid "invalid timeline %u" msgstr "ogiltig tidslinje %u" -#: repl_scanner.l:131 +#: repl_scanner.l:150 msgid "invalid streaming start location" msgstr "ogiltig startposition för strömning" -#: repl_scanner.l:182 scan.l:717 +#: repl_scanner.l:206 scan.l:717 msgid "unterminated quoted string" msgstr "icketerminerad citerad sträng" -#: replication/backup_manifest.c:231 +#: replication/backup_manifest.c:236 #, c-format msgid "expected end timeline %u but found timeline %u" msgstr "förväntade sluttidslinje %u men hittade tidslinje %u" -#: replication/backup_manifest.c:248 +#: replication/backup_manifest.c:260 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "förväntade starttidslinje %u men hittade tidslinje %u" -#: replication/backup_manifest.c:275 +#: replication/backup_manifest.c:287 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "starttidslinje %u hittades inte i historiken för tidslinje %u" -#: replication/backup_manifest.c:322 +#: replication/backup_manifest.c:334 #, c-format msgid "could not rewind temporary file" msgstr "kunde inte spola tillbaka temporär fil" -#: replication/backup_manifest.c:349 +#: replication/backup_manifest.c:361 #, c-format msgid "could not read from temporary file: %m" msgstr "kunde inte läsa från temporär fil: %m" @@ -18335,108 +18430,108 @@ msgid "could not clear search path: %s" msgstr "kunde inte nollställa sökväg: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:251 +#: replication/libpqwalreceiver/libpqwalreceiver.c:256 #, c-format msgid "invalid connection string syntax: %s" msgstr "ogiltig anslutningssträngsyntax %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:275 +#: replication/libpqwalreceiver/libpqwalreceiver.c:281 #, c-format msgid "could not parse connection string: %s" msgstr "kunde inte parsa anslutningssträng: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:347 +#: replication/libpqwalreceiver/libpqwalreceiver.c:353 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "kunde inte hämta databassystemidentifierare och tidslinje-ID från primära servern: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:358 -#: replication/libpqwalreceiver/libpqwalreceiver.c:576 +#: replication/libpqwalreceiver/libpqwalreceiver.c:364 +#: replication/libpqwalreceiver/libpqwalreceiver.c:582 #, c-format msgid "invalid response from primary server" msgstr "ogiltigt svar från primär server" -#: replication/libpqwalreceiver/libpqwalreceiver.c:359 +#: replication/libpqwalreceiver/libpqwalreceiver.c:365 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "Kunde inte identifiera system: fick %d rader och %d fält, förväntade %d rader och %d eller fler fält." -#: replication/libpqwalreceiver/libpqwalreceiver.c:432 #: replication/libpqwalreceiver/libpqwalreceiver.c:438 -#: replication/libpqwalreceiver/libpqwalreceiver.c:463 +#: replication/libpqwalreceiver/libpqwalreceiver.c:444 +#: replication/libpqwalreceiver/libpqwalreceiver.c:469 #, c-format msgid "could not start WAL streaming: %s" msgstr "kunde inte starta WAL-strömning: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:486 +#: replication/libpqwalreceiver/libpqwalreceiver.c:492 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "kunde inte skicka meddelandet end-of-streaming till primären: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:508 +#: replication/libpqwalreceiver/libpqwalreceiver.c:514 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "oväntad resultatmängd efter end-of-streaming" -#: replication/libpqwalreceiver/libpqwalreceiver.c:522 +#: replication/libpqwalreceiver/libpqwalreceiver.c:528 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "fel vid nestängning av strömmande COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:531 +#: replication/libpqwalreceiver/libpqwalreceiver.c:537 #, c-format msgid "error reading result of streaming command: %s" -msgstr "fel vid läsning av resultat från strömmningskommando: %s" +msgstr "fel vid läsning av resultat från strömningskommando: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:539 -#: replication/libpqwalreceiver/libpqwalreceiver.c:773 +#: replication/libpqwalreceiver/libpqwalreceiver.c:545 +#: replication/libpqwalreceiver/libpqwalreceiver.c:779 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "oväntat resultat efter CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:565 +#: replication/libpqwalreceiver/libpqwalreceiver.c:571 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "kan inte ta emot fil med tidslinjehistorik från primära servern: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:577 +#: replication/libpqwalreceiver/libpqwalreceiver.c:583 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Förväntade 1 tupel med 2 fält, fick %d tupler med %d fält." -#: replication/libpqwalreceiver/libpqwalreceiver.c:737 -#: replication/libpqwalreceiver/libpqwalreceiver.c:788 +#: replication/libpqwalreceiver/libpqwalreceiver.c:743 #: replication/libpqwalreceiver/libpqwalreceiver.c:794 +#: replication/libpqwalreceiver/libpqwalreceiver.c:800 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "kunde inte ta emot data från WAL-ström: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:813 +#: replication/libpqwalreceiver/libpqwalreceiver.c:819 #, c-format msgid "could not send data to WAL stream: %s" msgstr "kunde inte skicka data till WAL-ström: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:866 +#: replication/libpqwalreceiver/libpqwalreceiver.c:872 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "kunde inte skapa replikeringsslot \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:911 +#: replication/libpqwalreceiver/libpqwalreceiver.c:917 #, c-format msgid "invalid query response" msgstr "ogiltigt frågerespons" -#: replication/libpqwalreceiver/libpqwalreceiver.c:912 +#: replication/libpqwalreceiver/libpqwalreceiver.c:918 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Förväntade %d fält, fick %d fält." -#: replication/libpqwalreceiver/libpqwalreceiver.c:981 +#: replication/libpqwalreceiver/libpqwalreceiver.c:987 #, c-format msgid "the query interface requires a database connection" msgstr "frågeinterface:et kräver en databasanslutning" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1012 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1018 msgid "empty query" msgstr "tom fråga" @@ -18538,7 +18633,7 @@ #: replication/logical/logicalfuncs.c:104 replication/slotfuncs.c:34 #, c-format msgid "must be superuser or replication role to use replication slots" -msgstr "måste vara superanvändare eller replikeringsroll för att använda replikeringsslottar" +msgstr "måste vara superuser eller replikeringsroll för att använda replikeringsslottar" #: replication/logical/logicalfuncs.c:134 #, c-format @@ -18642,7 +18737,7 @@ msgstr "kunde inte hitta ledig replikerings-state-slot för replikerings-origin med OID %u" #: replication/logical/origin.c:929 replication/logical/origin.c:1116 -#: replication/slot.c:1762 +#: replication/slot.c:1849 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Öka max_replication_slots och försök igen." @@ -18668,44 +18763,44 @@ msgid "Origin names starting with \"pg_\" are reserved." msgstr "Källnamn som startar med \"pg_\" är reserverade." -#: replication/logical/relation.c:302 +#: replication/logical/relation.c:287 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" -msgstr "logisk replikeringsmålrelation \"%s.%s\" finns inte" +msgstr "destinationsrelation \"%s.%s\" för logisk replikering finns inte" -#: replication/logical/relation.c:345 +#: replication/logical/relation.c:330 #, c-format msgid "logical replication target relation \"%s.%s\" is missing some replicated columns" msgstr "logisk replikeringsmålrelation \"%s.%s\" saknar några replikerade kolumner" -#: replication/logical/relation.c:385 +#: replication/logical/relation.c:370 #, c-format msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" -msgstr "logisk replikeringsmålrelation \"%s.%s\" använder systemkolumner i REPLICA IDENTITY-index" +msgstr "destinationsrelation \"%s.%s\" för logisk replikering använder systemkolumner i REPLICA IDENTITY-index" -#: replication/logical/reorderbuffer.c:2663 +#: replication/logical/reorderbuffer.c:2685 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "kunde inte skriva till datafil för XID %u: %m" -#: replication/logical/reorderbuffer.c:2850 -#: replication/logical/reorderbuffer.c:2875 +#: replication/logical/reorderbuffer.c:2873 +#: replication/logical/reorderbuffer.c:2898 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "kunde inte läsa från reorderbuffer spill-fil: %m" -#: replication/logical/reorderbuffer.c:2854 -#: replication/logical/reorderbuffer.c:2879 +#: replication/logical/reorderbuffer.c:2877 +#: replication/logical/reorderbuffer.c:2902 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "kunde inte läsa från reorderbuffer spill-fil: läste %d istället för %u byte" -#: replication/logical/reorderbuffer.c:3114 +#: replication/logical/reorderbuffer.c:3139 #, c-format msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m" msgstr "kunde inte radera fil \"%s\" vid borttagning av pg_replslot/%s/xid*: %m" -#: replication/logical/reorderbuffer.c:3606 +#: replication/logical/reorderbuffer.c:3640 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "kunde inte läsa från fil \"%s\": läste %d istället för %d byte" @@ -18722,58 +18817,58 @@ msgstr[0] "exporterade logisk avkodnings-snapshot: \"%s\" med %u transaktions-ID" msgstr[1] "exporterade logisk avkodnings-snapshot: \"%s\" med %u transaktions-ID" -#: replication/logical/snapbuild.c:1265 replication/logical/snapbuild.c:1358 -#: replication/logical/snapbuild.c:1912 +#: replication/logical/snapbuild.c:1281 replication/logical/snapbuild.c:1374 +#: replication/logical/snapbuild.c:1931 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "logisk avkodning hittade konsistent punkt vid %X/%X" -#: replication/logical/snapbuild.c:1267 +#: replication/logical/snapbuild.c:1283 #, c-format msgid "There are no running transactions." msgstr "Det finns inga körande transaktioner." -#: replication/logical/snapbuild.c:1309 +#: replication/logical/snapbuild.c:1325 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "logisk avkodning hittade initial startpunkt vid %X/%X" -#: replication/logical/snapbuild.c:1311 replication/logical/snapbuild.c:1335 +#: replication/logical/snapbuild.c:1327 replication/logical/snapbuild.c:1351 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "Väntar på att transaktioner (cirka %d) äldre än %u skall gå klart." -#: replication/logical/snapbuild.c:1333 +#: replication/logical/snapbuild.c:1349 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "logisk avkodning hittade initial konsistent punkt vid %X/%X" -#: replication/logical/snapbuild.c:1360 +#: replication/logical/snapbuild.c:1376 #, c-format msgid "There are no old transactions anymore." msgstr "Det finns inte längre några gamla transaktioner." -#: replication/logical/snapbuild.c:1754 +#: replication/logical/snapbuild.c:1773 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "snapbuild-state-fil \"%s\" har fel magiskt tal: %u istället för %u" -#: replication/logical/snapbuild.c:1760 +#: replication/logical/snapbuild.c:1779 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "snapbuild-state-fil \"%s\" har en ej stödd version: %u istället för %u" -#: replication/logical/snapbuild.c:1859 +#: replication/logical/snapbuild.c:1878 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "checksumma stämmer inte för snapbuild-state-fil \"%s\": är %u, skall vara %u" -#: replication/logical/snapbuild.c:1914 +#: replication/logical/snapbuild.c:1933 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Logisk avkodning kommer starta med sparat snapshot." -#: replication/logical/snapbuild.c:1986 +#: replication/logical/snapbuild.c:2005 #, c-format msgid "could not parse file name \"%s\"" msgstr "kunde inte parsa filnamn \"%s\"" @@ -18783,122 +18878,122 @@ msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" msgstr "logisk replikerings tabellsynkroniseringsarbetare för prenumeration \"%s\", tabell \"%s\" är klar" -#: replication/logical/tablesync.c:664 +#: replication/logical/tablesync.c:665 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "kunde inte hämta tabellinfo för tabell \"%s.%s\" från publicerare: %s" -#: replication/logical/tablesync.c:670 +#: replication/logical/tablesync.c:671 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "tabell \"%s.%s\" hittades inte hos publicerare" -#: replication/logical/tablesync.c:704 +#: replication/logical/tablesync.c:707 #, c-format msgid "could not fetch table info for table \"%s.%s\": %s" msgstr "kunde inte hämta tabellinfo för tabell \"%s.%s\": %s" -#: replication/logical/tablesync.c:791 +#: replication/logical/tablesync.c:794 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "kunde inte starta initial innehållskopiering för tabell \"%s.%s\": %s" -#: replication/logical/tablesync.c:905 +#: replication/logical/tablesync.c:909 #, c-format msgid "table copy could not start transaction on publisher" msgstr "tabellkopiering kunde inte starta transaktion på publiceraren" -#: replication/logical/tablesync.c:927 +#: replication/logical/tablesync.c:931 #, c-format msgid "table copy could not finish transaction on publisher" msgstr "tabellkopiering kunde inte slutföra transaktion på publiceraren" -#: replication/logical/worker.c:313 +#: replication/logical/worker.c:360 #, c-format -msgid "processing remote data for replication target relation \"%s.%s\" column \"%s\", remote type %s, local type %s" -msgstr "processar fjärrdata för replikeringsmålrelation \"%s.%s\" kolumn \"%s\", fjärrtyp %s, lokal typ %s" +msgid "processing remote data for replication target relation \"%s.%s\" column \"%s\"" +msgstr "processar fjärrdata för replikeringsmålrelation \"%s.%s\" kolumn \"%s\"" -#: replication/logical/worker.c:552 +#: replication/logical/worker.c:597 #, c-format msgid "ORIGIN message sent out of order" msgstr "ORIGIN-meddelande skickat i fel ordning" -#: replication/logical/worker.c:702 +#: replication/logical/worker.c:742 #, c-format msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\"" msgstr "publicerare skickade inte identitetskolumn för replika som förväntades av den logiska replikeringens målrelation \"%s.%s\"" -#: replication/logical/worker.c:709 +#: replication/logical/worker.c:749 #, c-format msgid "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY index nor PRIMARY KEY and published relation does not have REPLICA IDENTITY FULL" msgstr "logisk replikeringsmålrelation \"%s.%s\" har varken REPLICA IDENTITY-index eller PRIMARY KEY och den publicerade relationen har inte REPLICA IDENTITY FULL" -#: replication/logical/worker.c:1394 +#: replication/logical/worker.c:1435 #, c-format msgid "invalid logical replication message type \"%c\"" msgstr "ogiltig logisk replikeringsmeddelandetyp \"%c\"" -#: replication/logical/worker.c:1537 +#: replication/logical/worker.c:1578 #, c-format msgid "data stream from publisher has ended" msgstr "dataströmmen från publiceraren har avslutats" -#: replication/logical/worker.c:1692 +#: replication/logical/worker.c:1733 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "avslutar logisk replikeringsarbetare på grund av timeout" -#: replication/logical/worker.c:1837 +#: replication/logical/worker.c:1879 #, c-format msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was removed" msgstr "logisk replikerings uppspelningsarbetare för prenumeration \"%s\" kommer stoppa då prenumerationen har tagits bort" -#: replication/logical/worker.c:1851 +#: replication/logical/worker.c:1893 #, c-format msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was disabled" msgstr "logisk replikerings uppspelningsarbetare för prenumeration \"%s\" kommer stoppa då prenumerationen har stängts av" -#: replication/logical/worker.c:1865 +#: replication/logical/worker.c:1907 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because the connection information was changed" msgstr "logisk replikerings uppspelningsarbetare för prenumeration \"%s\" kommer starta om då uppkopplingsinformationen ändrats" -#: replication/logical/worker.c:1879 +#: replication/logical/worker.c:1921 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because subscription was renamed" msgstr "logisk replikerings uppspelningsarbetare för prenumeration \"%s\" kommer starta om då prenumerationen bytt namn" -#: replication/logical/worker.c:1896 +#: replication/logical/worker.c:1938 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because the replication slot name was changed" msgstr "logisk replikerings uppspelningsarbetare för prenumeration \"%s\" kommer starta om då replikeringsslotten bytt namn" -#: replication/logical/worker.c:1910 +#: replication/logical/worker.c:1952 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart because subscription's publications were changed" msgstr "logisk replikerings uppspelningsarbetare för prenumeration \"%s\" kommer starta om då prenumerationens publiceringar ändrats" -#: replication/logical/worker.c:2006 +#: replication/logical/worker.c:2048 #, c-format msgid "logical replication apply worker for subscription %u will not start because the subscription was removed during startup" msgstr "logisk replikerings uppspelningsarbetare för prenumeration %u kommer inte starta då prenumerationen togs bort under uppstart" -#: replication/logical/worker.c:2018 +#: replication/logical/worker.c:2060 #, c-format msgid "logical replication apply worker for subscription \"%s\" will not start because the subscription was disabled during startup" msgstr "logisk replikerings uppspelningsarbetare för prenumeration \"%s\" kommer inte starta då prenumerationen stänges av under uppstart" -#: replication/logical/worker.c:2036 +#: replication/logical/worker.c:2078 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" msgstr "logisk replikerings tabellsynkroniseringsarbetare för prenumeration \"%s\", tabell \"%s\" har startat" -#: replication/logical/worker.c:2040 +#: replication/logical/worker.c:2082 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "logisk replikerings uppspelningsarbetare för prenumeration \"%s\" har startat" -#: replication/logical/worker.c:2079 +#: replication/logical/worker.c:2121 #, c-format msgid "subscription has no replication slot set" msgstr "prenumeration har ingen replikeringsslot angiven" @@ -18978,7 +19073,7 @@ msgid "replication slot \"%s\" is active for PID %d" msgstr "replikeringsslot \"%s\" är aktiv för PID %d" -#: replication/slot.c:683 replication/slot.c:1314 replication/slot.c:1697 +#: replication/slot.c:683 replication/slot.c:1401 replication/slot.c:1784 #, c-format msgid "could not remove directory \"%s\"" msgstr "kunde inte ta bort katalog \"%s\"" @@ -18993,57 +19088,57 @@ msgid "replication slots can only be used if wal_level >= replica" msgstr "replikeringsslots kan bara användas om wal_level >= replica" -#: replication/slot.c:1202 +#: replication/slot.c:1231 #, c-format -msgid "terminating process %d because replication slot \"%s\" is too far behind" -msgstr "avslutar process %d då replikeringsslot \"%s\" är för långt efter" +msgid "terminating process %d to release replication slot \"%s\"" +msgstr "avslutar process %d för att frigöra replikeringsslot \"%s\"" -#: replication/slot.c:1221 +#: replication/slot.c:1269 #, c-format msgid "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds max_slot_wal_keep_size" msgstr "invaliderar slot \"%s\" då dess restart_lsn %X/%X överskrider max_slot_wal_keep_size" -#: replication/slot.c:1635 +#: replication/slot.c:1722 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "replikeringsslotfil \"%s\" har fel magiskt nummer: %u istället för %u" -#: replication/slot.c:1642 +#: replication/slot.c:1729 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "replikeringsslotfil \"%s\" har en icke stödd version %u" -#: replication/slot.c:1649 +#: replication/slot.c:1736 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "replikeringsslotfil \"%s\" har felaktig längd %u" -#: replication/slot.c:1685 +#: replication/slot.c:1772 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "kontrollsummefel för replikeringsslot-fil \"%s\": är %u, skall vara %u" -#: replication/slot.c:1719 +#: replication/slot.c:1806 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "logisk replikeringsslot \"%s\" finns men wal_level < replica" -#: replication/slot.c:1721 +#: replication/slot.c:1808 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Ändra wal_level till logical eller högre." -#: replication/slot.c:1725 +#: replication/slot.c:1812 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "fysisk replikeringsslot \"%s\" finns men wal_level < replica" -#: replication/slot.c:1727 +#: replication/slot.c:1814 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Ändra wal_level till replica eller högre." -#: replication/slot.c:1761 +#: replication/slot.c:1848 #, c-format msgid "too many replication slots active before shutdown" msgstr "för många aktiva replikeringsslottar innan nerstängning" @@ -19138,596 +19233,611 @@ msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "antal synkrona standbys (%d) måste vara fler än noll" -#: replication/walreceiver.c:171 +#: replication/walreceiver.c:172 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "avslutar wal-mottagarprocessen på grund av ett administratörskommando" -#: replication/walreceiver.c:297 +#: replication/walreceiver.c:298 #, c-format msgid "could not connect to the primary server: %s" msgstr "kunde inte ansluta till primärserver: %s" -#: replication/walreceiver.c:343 +#: replication/walreceiver.c:344 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "databassystemets identifierare skiljer sig åt mellan primären och standby:en" -#: replication/walreceiver.c:344 +#: replication/walreceiver.c:345 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "Primärens identifierare är %s, standby:ens identifierare är %s." -#: replication/walreceiver.c:354 +#: replication/walreceiver.c:355 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "högsta tidslinjen %u i primären är efter återställningstidslinjen %u" -#: replication/walreceiver.c:408 +#: replication/walreceiver.c:409 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "startade strömning av WAL från primären vid %X/%X på tidslinje %u" -#: replication/walreceiver.c:413 +#: replication/walreceiver.c:414 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "återstartade WAL-strömning vid %X/%X på tidslinje %u" -#: replication/walreceiver.c:442 +#: replication/walreceiver.c:443 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "kan inte fortsätta WAL-strömning, återställning har redan avslutats" -#: replication/walreceiver.c:479 +#: replication/walreceiver.c:480 #, c-format msgid "replication terminated by primary server" msgstr "replikering avslutad av primär server" -#: replication/walreceiver.c:480 +#: replication/walreceiver.c:481 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "Slut på WAL nådd på tidslinje %u vid %X/%X." -#: replication/walreceiver.c:568 +#: replication/walreceiver.c:569 #, c-format msgid "terminating walreceiver due to timeout" msgstr "avslutar wal-mottagare på grund av timeout" -#: replication/walreceiver.c:606 +#: replication/walreceiver.c:607 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "primär server har ingen mer WAL på efterfrågad tidslinje %u" -#: replication/walreceiver.c:622 replication/walreceiver.c:938 +#: replication/walreceiver.c:623 replication/walreceiver.c:1065 #, c-format msgid "could not close log segment %s: %m" msgstr "kunde inte stänga loggsegment %s: %m" -#: replication/walreceiver.c:742 +#: replication/walreceiver.c:743 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "hämtar tidslinjehistorikfil för tidslinje %u från primära servern" -#: replication/walreceiver.c:985 +#: replication/walreceiver.c:955 #, c-format msgid "could not write to log segment %s at offset %u, length %lu: %m" msgstr "kunde inte skriva till loggfilsegment %s på offset %u, längd %lu: %m" -#: replication/walsender.c:523 storage/smgr/md.c:1291 +#: replication/walsender.c:527 storage/smgr/md.c:1330 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "kunde inte söka (seek) till slutet av filen \"%s\": %m" -#: replication/walsender.c:527 +#: replication/walsender.c:531 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "kunde inte söka till början av filen \"%s\": %m" -#: replication/walsender.c:578 +#: replication/walsender.c:582 #, c-format msgid "IDENTIFY_SYSTEM has not been run before START_REPLICATION" msgstr "IDENTIFY_SYSTEM har inte körts före START_REPLICATION" -#: replication/walsender.c:607 +#: replication/walsender.c:611 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "kan inte använda logisk replikeringsslot för fysisk replikering" -#: replication/walsender.c:676 +#: replication/walsender.c:680 #, c-format msgid "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "efterfrågad startpunkt %X/%X på tidslinje %u finns inte i denna servers historik" -#: replication/walsender.c:680 +#: replication/walsender.c:684 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "Denna servers historik delade sig från tidslinje %u vid %X/%X." -#: replication/walsender.c:725 +#: replication/walsender.c:729 #, c-format msgid "requested starting point %X/%X is ahead of the WAL flush position of this server %X/%X" msgstr "efterfrågad startpunkt %X/%X är längre fram än denna servers flush:ade WAL-skrivposition %X/%X" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:976 +#: replication/walsender.c:980 #, c-format msgid "%s must not be called inside a transaction" msgstr "%s får inte anropas i en transaktion" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:986 +#: replication/walsender.c:990 #, c-format msgid "%s must be called inside a transaction" msgstr "%s måste anropas i en transaktion" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:992 +#: replication/walsender.c:996 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s måste anropas i transaktions REPEATABLE READ-isolationsläge" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:998 +#: replication/walsender.c:1002 #, c-format msgid "%s must be called before any query" msgstr "%s måste anropas innan någon fråga" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1004 +#: replication/walsender.c:1008 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s får inte anropas i en undertransaktion" -#: replication/walsender.c:1148 +#: replication/walsender.c:1152 #, c-format msgid "cannot read from logical replication slot \"%s\"" msgstr "kan inte läsa från logisk replikeringsslot \"%s\"" -#: replication/walsender.c:1150 +#: replication/walsender.c:1154 #, c-format msgid "This slot has been invalidated because it exceeded the maximum reserved size." msgstr "Denna slot har invaliderats då den överskred maximal reserverad storlek." -#: replication/walsender.c:1160 +#: replication/walsender.c:1164 #, c-format msgid "terminating walsender process after promotion" msgstr "stänger ner walsender-process efter befordring" -#: replication/walsender.c:1534 +#: replication/walsender.c:1539 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "kan inte utföra nya kommandon när WAL-sändare är i stopp-läge" -#: replication/walsender.c:1567 +#: replication/walsender.c:1574 +#, c-format +msgid "cannot execute SQL commands in WAL sender for physical replication" +msgstr "kan inte köra SQL-kommandon i WAL-sändare för fysisk replikering" + +#: replication/walsender.c:1607 #, c-format msgid "received replication command: %s" msgstr "tog emot replikeringskommando: %s" -#: replication/walsender.c:1583 tcop/fastpath.c:279 tcop/postgres.c:1103 +#: replication/walsender.c:1615 tcop/fastpath.c:285 tcop/postgres.c:1103 #: tcop/postgres.c:1455 tcop/postgres.c:1716 tcop/postgres.c:2174 #: tcop/postgres.c:2535 tcop/postgres.c:2614 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "aktuella transaktionen har avbrutits, alla kommandon ignoreras tills slutet på transaktionen" -#: replication/walsender.c:1670 -#, c-format -msgid "cannot execute SQL commands in WAL sender for physical replication" -msgstr "kan inte köra SQL-kommandon i WAL-sändare för fysisk replikering" - -#: replication/walsender.c:1715 replication/walsender.c:1731 +#: replication/walsender.c:1739 replication/walsender.c:1755 #, c-format msgid "unexpected EOF on standby connection" msgstr "oväntat EOF från standby-anslutning" -#: replication/walsender.c:1745 -#, c-format -msgid "unexpected standby message type \"%c\", after receiving CopyDone" -msgstr "oväntat standby-meddelandetyp \"%c\" efter att vi tagit emot CopyDone" - -#: replication/walsender.c:1783 +#: replication/walsender.c:1794 #, c-format msgid "invalid standby message type \"%c\"" msgstr "ogiltigt standby-meddelandetyp \"%c\"" -#: replication/walsender.c:1824 +#: replication/walsender.c:1835 #, c-format msgid "unexpected message type \"%c\"" msgstr "oväntad meddelandetyp \"%c\"" -#: replication/walsender.c:2242 +#: replication/walsender.c:2247 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "avslutar walsender-process på grund av replikerings-timeout" -#: replication/walsender.c:2319 +#: replication/walsender.c:2324 #, c-format msgid "\"%s\" has now caught up with upstream server" msgstr "\"%s\" har nu kommit ikapp servern uppströms" -#: rewrite/rewriteDefine.c:112 rewrite/rewriteDefine.c:989 +#: rewrite/rewriteDefine.c:113 rewrite/rewriteDefine.c:1000 #, c-format msgid "rule \"%s\" for relation \"%s\" already exists" msgstr "regel \"%s\" för relation \"%s\" existerar redan" -#: rewrite/rewriteDefine.c:301 +#: rewrite/rewriteDefine.c:302 #, c-format msgid "rule actions on OLD are not implemented" msgstr "regelhandlingar på OLD är inte implementerat" -#: rewrite/rewriteDefine.c:302 +#: rewrite/rewriteDefine.c:303 #, c-format msgid "Use views or triggers instead." msgstr "Använd vyer eller utlösare (trigger) istället." -#: rewrite/rewriteDefine.c:306 +#: rewrite/rewriteDefine.c:307 #, c-format msgid "rule actions on NEW are not implemented" msgstr "regelhandlingar på NEW är inte implementerat" -#: rewrite/rewriteDefine.c:307 +#: rewrite/rewriteDefine.c:308 #, c-format msgid "Use triggers instead." msgstr "Använd utlösare (trigger) istället." -#: rewrite/rewriteDefine.c:320 +#: rewrite/rewriteDefine.c:321 #, c-format msgid "INSTEAD NOTHING rules on SELECT are not implemented" msgstr "INSTEAD NOTHING-regler på SELECT är inte implementerat ännu" -#: rewrite/rewriteDefine.c:321 +#: rewrite/rewriteDefine.c:322 #, c-format msgid "Use views instead." msgstr "Använd vyer istället." -#: rewrite/rewriteDefine.c:329 +#: rewrite/rewriteDefine.c:330 #, c-format msgid "multiple actions for rules on SELECT are not implemented" msgstr "flera regelhandlingar på SELECT är inte implementerat" -#: rewrite/rewriteDefine.c:339 +#: rewrite/rewriteDefine.c:340 #, c-format msgid "rules on SELECT must have action INSTEAD SELECT" msgstr "regler på SELECT måste ha handlingen INSTEAD SELECT" -#: rewrite/rewriteDefine.c:347 +#: rewrite/rewriteDefine.c:348 #, c-format msgid "rules on SELECT must not contain data-modifying statements in WITH" msgstr "regler på SELECT får inte innehålla datamodifierande satser i WITH" -#: rewrite/rewriteDefine.c:355 +#: rewrite/rewriteDefine.c:356 #, c-format msgid "event qualifications are not implemented for rules on SELECT" msgstr "händelsebegränsningar är inte implementerat för regler på SELECT" -#: rewrite/rewriteDefine.c:382 +#: rewrite/rewriteDefine.c:383 #, c-format msgid "\"%s\" is already a view" msgstr "\"%s\" är redan en vy" -#: rewrite/rewriteDefine.c:406 +#: rewrite/rewriteDefine.c:407 #, c-format msgid "view rule for \"%s\" must be named \"%s\"" msgstr "vy-regel (rule) för \"%s\" måste ha namnet \"%s\"" -#: rewrite/rewriteDefine.c:434 +#: rewrite/rewriteDefine.c:436 #, c-format msgid "cannot convert partitioned table \"%s\" to a view" msgstr "kan inte konvertera partitionerad tabell \"%s\" till en vy" -#: rewrite/rewriteDefine.c:440 +#: rewrite/rewriteDefine.c:445 #, c-format msgid "cannot convert partition \"%s\" to a view" msgstr "kan inte konvertera partition \"%s\" till en vy" -#: rewrite/rewriteDefine.c:449 +#: rewrite/rewriteDefine.c:454 #, c-format msgid "could not convert table \"%s\" to a view because it is not empty" msgstr "kunde inte konvertera tabell \"%s\" till en vy då den inte är tom" -#: rewrite/rewriteDefine.c:458 +#: rewrite/rewriteDefine.c:463 #, c-format msgid "could not convert table \"%s\" to a view because it has triggers" msgstr "kunde inte konvertera tabell \"%s\" till en vy då den har utlösare" -#: rewrite/rewriteDefine.c:460 +#: rewrite/rewriteDefine.c:465 #, c-format msgid "In particular, the table cannot be involved in any foreign key relationships." msgstr "Mer specifikt, tabellen kan inte vare inblandad i främmande-nyckelberoenden." -#: rewrite/rewriteDefine.c:465 +#: rewrite/rewriteDefine.c:470 #, c-format msgid "could not convert table \"%s\" to a view because it has indexes" msgstr "kunde inte konvertera tabell \"%s\" till en vy eftersom den har index" -#: rewrite/rewriteDefine.c:471 +#: rewrite/rewriteDefine.c:476 #, c-format msgid "could not convert table \"%s\" to a view because it has child tables" msgstr "kunde inte konvertera tabell \"%s\" till en vy då den har barntabeller" -#: rewrite/rewriteDefine.c:477 +#: rewrite/rewriteDefine.c:482 +#, c-format +msgid "could not convert table \"%s\" to a view because it has parent tables" +msgstr "kunde inte konvertera tabell \"%s\" till en vy då den har föräldratabeller" + +#: rewrite/rewriteDefine.c:488 #, c-format msgid "could not convert table \"%s\" to a view because it has row security enabled" msgstr "kunde inte konvertera tabell \"%s\" till en vy eftersom den har radsäkerhet påslagen" -#: rewrite/rewriteDefine.c:483 +#: rewrite/rewriteDefine.c:494 #, c-format msgid "could not convert table \"%s\" to a view because it has row security policies" msgstr "kunde inte konvertera tabell \"%s\" till en vy eftersom den har radsäkerhetspolicy" -#: rewrite/rewriteDefine.c:510 +#: rewrite/rewriteDefine.c:521 #, c-format msgid "cannot have multiple RETURNING lists in a rule" msgstr "kan inte ha flera RETURNING-listor i en regel" -#: rewrite/rewriteDefine.c:515 +#: rewrite/rewriteDefine.c:526 #, c-format msgid "RETURNING lists are not supported in conditional rules" msgstr "RETURNING-listor stöds inte i villkorade regler" -#: rewrite/rewriteDefine.c:519 +#: rewrite/rewriteDefine.c:530 #, c-format msgid "RETURNING lists are not supported in non-INSTEAD rules" msgstr "RETURNING-listor stöds inte i icke-INSTEAD-regler" -#: rewrite/rewriteDefine.c:683 +#: rewrite/rewriteDefine.c:694 #, c-format msgid "SELECT rule's target list has too many entries" msgstr "SELECT-regelns mållista har för många poster" -#: rewrite/rewriteDefine.c:684 +#: rewrite/rewriteDefine.c:695 #, c-format msgid "RETURNING list has too many entries" msgstr "RETURNING-lista har för många element" -#: rewrite/rewriteDefine.c:711 +#: rewrite/rewriteDefine.c:722 #, c-format msgid "cannot convert relation containing dropped columns to view" msgstr "kan inte konvertera en relation som har borttagna kolumner till en vy" -#: rewrite/rewriteDefine.c:712 +#: rewrite/rewriteDefine.c:723 #, c-format msgid "cannot create a RETURNING list for a relation containing dropped columns" msgstr "kan inte skapa en RETURNING-lista för relationer som innehåller borttagna kolumner" -#: rewrite/rewriteDefine.c:718 +#: rewrite/rewriteDefine.c:729 #, c-format msgid "SELECT rule's target entry %d has different column name from column \"%s\"" msgstr "SELECT-regels målpost %d har ett annat kolumnnamn än kolumnen \"%s\"" -#: rewrite/rewriteDefine.c:720 +#: rewrite/rewriteDefine.c:731 #, c-format msgid "SELECT target entry is named \"%s\"." msgstr "SELECT-målpost har namn \"%s\"." -#: rewrite/rewriteDefine.c:729 +#: rewrite/rewriteDefine.c:740 #, c-format msgid "SELECT rule's target entry %d has different type from column \"%s\"" msgstr "SELECT-regels målpot %d har en annan typ än kolumnen \"%s\"" -#: rewrite/rewriteDefine.c:731 +#: rewrite/rewriteDefine.c:742 #, c-format msgid "RETURNING list's entry %d has different type from column \"%s\"" msgstr "RETURNING-listans post %d har en annan typ än kolumnen \"%s\"" -#: rewrite/rewriteDefine.c:734 rewrite/rewriteDefine.c:758 +#: rewrite/rewriteDefine.c:745 rewrite/rewriteDefine.c:769 #, c-format msgid "SELECT target entry has type %s, but column has type %s." msgstr "SELECT-målpost har typ %s men kolumnen har typ %s." -#: rewrite/rewriteDefine.c:737 rewrite/rewriteDefine.c:762 +#: rewrite/rewriteDefine.c:748 rewrite/rewriteDefine.c:773 #, c-format msgid "RETURNING list entry has type %s, but column has type %s." msgstr "RETURNING-listpost har typ %s men kolumnen har typ %s." -#: rewrite/rewriteDefine.c:753 +#: rewrite/rewriteDefine.c:764 #, c-format msgid "SELECT rule's target entry %d has different size from column \"%s\"" msgstr "SELECT-regelns målpost %d har en annan storlek än kolumnen \"%s\"" -#: rewrite/rewriteDefine.c:755 +#: rewrite/rewriteDefine.c:766 #, c-format msgid "RETURNING list's entry %d has different size from column \"%s\"" msgstr "RETURNING-listpost %d har en annan storlek än kolumnen\"%s\"" -#: rewrite/rewriteDefine.c:772 +#: rewrite/rewriteDefine.c:783 #, c-format msgid "SELECT rule's target list has too few entries" msgstr "SELECT-regels mållista har för få element" -#: rewrite/rewriteDefine.c:773 +#: rewrite/rewriteDefine.c:784 #, c-format msgid "RETURNING list has too few entries" msgstr "RETURNING-lista har för få element" -#: rewrite/rewriteDefine.c:866 rewrite/rewriteDefine.c:980 +#: rewrite/rewriteDefine.c:877 rewrite/rewriteDefine.c:991 #: rewrite/rewriteSupport.c:109 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist" msgstr "regel \"%s\" för relation \"%s\" existerar inte" -#: rewrite/rewriteDefine.c:999 +#: rewrite/rewriteDefine.c:1010 #, c-format msgid "renaming an ON SELECT rule is not allowed" msgstr "byta namn på en ON SELECT-regel tillåts inte" -#: rewrite/rewriteHandler.c:545 +#: rewrite/rewriteHandler.c:549 #, c-format msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "WITH-frågenamn \"%s\" finns både i en regelhändelse och i frågan som skrivs om" -#: rewrite/rewriteHandler.c:605 +#: rewrite/rewriteHandler.c:576 +#, c-format +msgid "INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH" +msgstr "INSERT...SELECT-regler stöds inte för frågor som har datamodifierande satser i WITH" + +#: rewrite/rewriteHandler.c:629 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "kan inte ha RETURNING-listor i multipla regler" -#: rewrite/rewriteHandler.c:816 rewrite/rewriteHandler.c:828 +#: rewrite/rewriteHandler.c:840 rewrite/rewriteHandler.c:852 #, c-format msgid "cannot insert into column \"%s\"" msgstr "kan inte sätta in i kolumn \"%s\"" -#: rewrite/rewriteHandler.c:817 rewrite/rewriteHandler.c:839 +#: rewrite/rewriteHandler.c:841 rewrite/rewriteHandler.c:863 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "Kolumn \"%s\" är en identitetskolumn definierad som GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:819 +#: rewrite/rewriteHandler.c:843 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Använd OVERRIDING SYSTEM VALUE för att överskugga." -#: rewrite/rewriteHandler.c:838 rewrite/rewriteHandler.c:845 +#: rewrite/rewriteHandler.c:862 rewrite/rewriteHandler.c:869 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "kolumn \"%s\" kan bara uppdateras till DEFAULT" -#: rewrite/rewriteHandler.c:1014 rewrite/rewriteHandler.c:1032 +#: rewrite/rewriteHandler.c:1038 rewrite/rewriteHandler.c:1056 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "flera tilldelningar till samma kolumn \"%s\"" -#: rewrite/rewriteHandler.c:2062 +#: rewrite/rewriteHandler.c:2038 rewrite/rewriteHandler.c:3860 +#, c-format +msgid "infinite recursion detected in rules for relation \"%s\"" +msgstr "oändlig rekursion detekterad i reglerna för relation \"%s\"" + +#: rewrite/rewriteHandler.c:2123 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "oändlig rekursion detekterad i policy för relation \"%s\"" -#: rewrite/rewriteHandler.c:2382 +#: rewrite/rewriteHandler.c:2443 msgid "Junk view columns are not updatable." msgstr "Skräpkolumner i vy är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2387 +#: rewrite/rewriteHandler.c:2448 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Vykolumner som inte är kolumner i dess basrelation är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2390 +#: rewrite/rewriteHandler.c:2451 msgid "View columns that refer to system columns are not updatable." msgstr "Vykolumner som refererar till systemkolumner är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2393 +#: rewrite/rewriteHandler.c:2454 msgid "View columns that return whole-row references are not updatable." msgstr "Vykolumner som returnerar hel-rad-referenser är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2454 +#: rewrite/rewriteHandler.c:2515 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Vyer som innehåller DISTINCT är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2457 +#: rewrite/rewriteHandler.c:2518 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Vyer som innehåller GROUP BY är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2460 +#: rewrite/rewriteHandler.c:2521 msgid "Views containing HAVING are not automatically updatable." msgstr "Vyer som innehåller HAVING är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2463 +#: rewrite/rewriteHandler.c:2524 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Vyer som innehåller UNION, INTERSECT eller EXCEPT är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2466 +#: rewrite/rewriteHandler.c:2527 msgid "Views containing WITH are not automatically updatable." msgstr "Vyer som innehåller WITH är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2469 +#: rewrite/rewriteHandler.c:2530 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Vyer som innehåller LIMIT eller OFFSET är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2481 +#: rewrite/rewriteHandler.c:2542 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Vyer som returnerar aggregatfunktioner är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2484 +#: rewrite/rewriteHandler.c:2545 msgid "Views that return window functions are not automatically updatable." msgstr "Vyer som returnerar fönsterfunktioner uppdateras inte automatiskt." -#: rewrite/rewriteHandler.c:2487 +#: rewrite/rewriteHandler.c:2548 msgid "Views that return set-returning functions are not automatically updatable." msgstr "Vyer som returnerar mängd-returnerande funktioner är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2494 rewrite/rewriteHandler.c:2498 -#: rewrite/rewriteHandler.c:2506 +#: rewrite/rewriteHandler.c:2555 rewrite/rewriteHandler.c:2559 +#: rewrite/rewriteHandler.c:2567 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Vyer som inte läser från en ensam tabell eller vy är inte automatiskt uppdateringsbar." -#: rewrite/rewriteHandler.c:2509 +#: rewrite/rewriteHandler.c:2570 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Vyer som innehåller TABLESAMPLE är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2533 +#: rewrite/rewriteHandler.c:2594 msgid "Views that have no updatable columns are not automatically updatable." msgstr "Vyer som inte har några uppdateringsbara kolumner är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:3010 +#: rewrite/rewriteHandler.c:3071 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "kan inte insert:a i kolumn \"%s\" i vy \"%s\"" -#: rewrite/rewriteHandler.c:3018 +#: rewrite/rewriteHandler.c:3079 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "kan inte uppdatera kolumn \"%s\" i view \"%s\"" -#: rewrite/rewriteHandler.c:3496 +#: rewrite/rewriteHandler.c:3560 +#, c-format +msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" +msgstr "DO INSTEAD NOTIFY-regler stöds inte för datamodifierande satser i WITH" + +#: rewrite/rewriteHandler.c:3571 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "DO INSTEAD NOTHING-regler stöds inte för datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:3510 +#: rewrite/rewriteHandler.c:3585 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "villkorliga DO INSTEAD-regler stöds inte för datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:3514 +#: rewrite/rewriteHandler.c:3589 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "DO ALSO-regler stöds inte för datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:3519 +#: rewrite/rewriteHandler.c:3594 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "fler-satsiga DO INSTEAD-regler stöds inte för datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:3710 rewrite/rewriteHandler.c:3718 -#: rewrite/rewriteHandler.c:3726 +#: rewrite/rewriteHandler.c:3788 rewrite/rewriteHandler.c:3796 +#: rewrite/rewriteHandler.c:3804 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Vyer med villkorliga DO INSTEAD-regler är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:3819 +#: rewrite/rewriteHandler.c:3897 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "kan inte utföra INSERT RETURNING på relation \"%s\"" -#: rewrite/rewriteHandler.c:3821 +#: rewrite/rewriteHandler.c:3899 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "Du behöver en villkorslös ON INSERT DO INSTEAD-regel med en RETURNING-klausul." -#: rewrite/rewriteHandler.c:3826 +#: rewrite/rewriteHandler.c:3904 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "kan inte utföra UPDATE RETURNING på relation \"%s\"" -#: rewrite/rewriteHandler.c:3828 +#: rewrite/rewriteHandler.c:3906 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "Du behöver en villkorslös ON UPDATE DO INSTEAD-regel med en RETURNING-klausul." -#: rewrite/rewriteHandler.c:3833 +#: rewrite/rewriteHandler.c:3911 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "kan inte utföra DELETE RETURNING på relation \"%s\"" -#: rewrite/rewriteHandler.c:3835 +#: rewrite/rewriteHandler.c:3913 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "Du behöver en villkorslös ON DELETE DO INSTEAD-regel med en RETURNING-klausul." -#: rewrite/rewriteHandler.c:3853 +#: rewrite/rewriteHandler.c:3931 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT med ON CONFLICT-klausul kan inte användas med tabell som har INSERT- eller UPDATE-regler" -#: rewrite/rewriteHandler.c:3910 +#: rewrite/rewriteHandler.c:3988 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH kan inte användas i en fråga där regler skrivit om den till flera olika frågor" @@ -19872,7 +19982,7 @@ msgid "missing Language parameter" msgstr "saknar parameter \"Language\"" -#: statistics/dependencies.c:667 statistics/dependencies.c:720 +#: statistics/dependencies.c:677 statistics/dependencies.c:730 #: statistics/mcv.c:1477 statistics/mcv.c:1508 statistics/mvdistinct.c:348 #: statistics/mvdistinct.c:401 utils/adt/pseudotypes.c:42 #: utils/adt/pseudotypes.c:76 @@ -19880,7 +19990,7 @@ msgid "cannot accept a value of type %s" msgstr "kan inte acceptera ett värde av type %s" -#: statistics/extended_stats.c:145 +#: statistics/extended_stats.c:147 #, c-format msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" msgstr "statistikobjekt \"%s.%s\" kunde inte beräknas för relation \"%s.%s\"" @@ -19890,42 +20000,47 @@ msgid "function returning record called in context that cannot accept type record" msgstr "en funktion med post som värde anropades i sammanhang där poster inte kan godtagas." -#: storage/buffer/bufmgr.c:588 storage/buffer/bufmgr.c:669 +#: storage/buffer/bufmgr.c:588 storage/buffer/bufmgr.c:670 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "får inte röra temporära tabeller som tillhör andra sessioner" -#: storage/buffer/bufmgr.c:825 +#: storage/buffer/bufmgr.c:748 +#, c-format +msgid "cannot extend relation %s beyond %u blocks" +msgstr "kan inte utöka relation %s utöver %u block" + +#: storage/buffer/bufmgr.c:835 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "oväntad data efter EOF i block %u för relation %s" -#: storage/buffer/bufmgr.c:827 +#: storage/buffer/bufmgr.c:837 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "Detta beteende har observerats med buggiga kärnor; fundera på att uppdatera ditt system." -#: storage/buffer/bufmgr.c:925 +#: storage/buffer/bufmgr.c:936 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "felaktig sida i block %u för relation %s; nollställer sidan" -#: storage/buffer/bufmgr.c:4211 +#: storage/buffer/bufmgr.c:4224 #, c-format msgid "could not write block %u of %s" msgstr "kunde inte skriva block %u av %s" -#: storage/buffer/bufmgr.c:4213 +#: storage/buffer/bufmgr.c:4226 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Multipla fel --- skrivfelet kan vara permanent." -#: storage/buffer/bufmgr.c:4234 storage/buffer/bufmgr.c:4253 +#: storage/buffer/bufmgr.c:4247 storage/buffer/bufmgr.c:4266 #, c-format msgid "writing block %u of relation %s" msgstr "skriver block %u i relation %s" -#: storage/buffer/bufmgr.c:4556 +#: storage/buffer/bufmgr.c:4569 #, c-format msgid "snapshot too old" msgstr "snapshot för gammal" @@ -19965,84 +20080,84 @@ msgid "could not munmap() while flushing data: %m" msgstr "kunde inte göra munmap() vid flush:ning av data: %m" -#: storage/file/fd.c:798 +#: storage/file/fd.c:802 #, c-format msgid "could not link file \"%s\" to \"%s\": %m" msgstr "kunde inte länka fil \"%s\" till \"%s\": %m" -#: storage/file/fd.c:881 +#: storage/file/fd.c:895 #, c-format msgid "getrlimit failed: %m" msgstr "getrlimit misslyckades: %m" -#: storage/file/fd.c:971 +#: storage/file/fd.c:985 #, c-format msgid "insufficient file descriptors available to start server process" msgstr "otillräckligt antal fildeskriptorer tillgängligt för att starta serverprocessen" -#: storage/file/fd.c:972 +#: storage/file/fd.c:986 #, c-format msgid "System allows %d, we need at least %d." msgstr "Systemet tillåter %d, vi behöver minst %d." -#: storage/file/fd.c:1023 storage/file/fd.c:2357 storage/file/fd.c:2467 -#: storage/file/fd.c:2618 +#: storage/file/fd.c:1037 storage/file/fd.c:2371 storage/file/fd.c:2481 +#: storage/file/fd.c:2632 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "slut på fildeskriptorer: %m; frigör och försök igen" -#: storage/file/fd.c:1397 +#: storage/file/fd.c:1411 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "temporär fil: sökväg \"%s\", storlek %lu" -#: storage/file/fd.c:1528 +#: storage/file/fd.c:1542 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "kunde inte skapa temporär katalog \"%s\": %m" -#: storage/file/fd.c:1535 +#: storage/file/fd.c:1549 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "kunde inte skapa temporär underkatalog \"%s\": %m" -#: storage/file/fd.c:1728 +#: storage/file/fd.c:1742 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "kan inte skapa temporär fil \"%s\": %m" -#: storage/file/fd.c:1763 +#: storage/file/fd.c:1777 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "kunde inte öppna temporär fil \"%s\": %m" # unlink refererar till unix-funktionen unlink() så den översätter vi inte -#: storage/file/fd.c:1804 +#: storage/file/fd.c:1818 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "kunde inte unlink:a temporär fil \"%s\": %m" -#: storage/file/fd.c:2068 +#: storage/file/fd.c:2082 #, c-format msgid "temporary file size exceeds temp_file_limit (%dkB)" msgstr "storlek på temporär fil överskrider temp_file_limit (%dkB)" -#: storage/file/fd.c:2333 storage/file/fd.c:2392 +#: storage/file/fd.c:2347 storage/file/fd.c:2406 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" msgstr "överskred maxAllocatedDescs (%d) vid försök att öppna fil \"%s\"" -#: storage/file/fd.c:2437 +#: storage/file/fd.c:2451 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" msgstr "överskred maxAllocatedDescs (%d) vid försök att köra kommando \"%s\"" -#: storage/file/fd.c:2594 +#: storage/file/fd.c:2608 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "överskred maxAllocatedDescs (%d) vid försök att öppna katalog \"%s\"" -#: storage/file/fd.c:3122 +#: storage/file/fd.c:3136 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "oväntad fil hittades i katalogen för temporära filer: \"%s\"" @@ -20129,17 +20244,17 @@ msgid "%s failed: %m" msgstr "%s misslyckades: %m" -#: storage/ipc/procarray.c:3014 +#: storage/ipc/procarray.c:3104 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "databasen \"%s\" används av förberedda transationer" -#: storage/ipc/procarray.c:3046 storage/ipc/signalfuncs.c:142 +#: storage/ipc/procarray.c:3136 storage/ipc/signalfuncs.c:142 #, c-format msgid "must be a superuser to terminate superuser process" -msgstr "måste vara superanvändare för stoppa superanvändares process" +msgstr "måste vara superuser för stoppa en superusers process" -#: storage/ipc/procarray.c:3053 storage/ipc/signalfuncs.c:147 +#: storage/ipc/procarray.c:3143 storage/ipc/signalfuncs.c:147 #, c-format msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend" msgstr "måste vara medlem i den roll vars process håller på att avslutas eller medlem i pg_signal_backend" @@ -20155,10 +20270,10 @@ msgstr "ogiltig meddelandestorlek %zu i kö i delat minne" #: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:982 -#: storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4175 -#: storage/lmgr/lock.c:4240 storage/lmgr/lock.c:4532 -#: storage/lmgr/predicate.c:2401 storage/lmgr/predicate.c:2416 -#: storage/lmgr/predicate.c:3898 storage/lmgr/predicate.c:5009 +#: storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4252 +#: storage/lmgr/lock.c:4317 storage/lmgr/lock.c:4667 +#: storage/lmgr/predicate.c:2476 storage/lmgr/predicate.c:2491 +#: storage/lmgr/predicate.c:3973 storage/lmgr/predicate.c:5084 #: utils/hash/dynahash.c:1067 #, c-format msgid "out of shared memory" @@ -20202,7 +20317,7 @@ #: storage/ipc/signalfuncs.c:118 #, c-format msgid "must be a superuser to cancel superuser query" -msgstr "måste vara superanvändare för att avbryta superanvändares fråga" +msgstr "måste vara superuser för att avbryta en superusers fråga" #: storage/ipc/signalfuncs.c:123 #, c-format @@ -20212,7 +20327,7 @@ #: storage/ipc/signalfuncs.c:183 #, c-format msgid "must be superuser to rotate log files with adminpack 1.0" -msgstr "måste vara superanvändare för att rotera loggfiler med adminpack 1.0" +msgstr "måste vara superuser för att rotera loggfiler med adminpack 1.0" #. translator: %s is a SQL function name #: storage/ipc/signalfuncs.c:185 utils/adt/genfile.c:253 @@ -20225,12 +20340,12 @@ msgid "rotation not possible because log collection not active" msgstr "rotering är inte möjligt då logginsamling inte är aktiverad" -#: storage/ipc/standby.c:580 tcop/postgres.c:3177 +#: storage/ipc/standby.c:683 tcop/postgres.c:3199 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "avbryter sats på grund av konflikt med återställning" -#: storage/ipc/standby.c:581 tcop/postgres.c:2469 +#: storage/ipc/standby.c:684 tcop/postgres.c:2469 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "Användartransaktion orsakade deadlock för buffer vid återställning." @@ -20240,17 +20355,17 @@ msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "pg_largeobject-post för OID %u, sida %d har ogiltig datafältstorlek %d" -#: storage/large_object/inv_api.c:272 +#: storage/large_object/inv_api.c:274 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "ogiltiga flaggor för att öppna stort objekt: %d" -#: storage/large_object/inv_api.c:462 +#: storage/large_object/inv_api.c:457 #, c-format msgid "invalid whence setting: %d" msgstr "ogiltig whence-inställning: %d" -#: storage/large_object/inv_api.c:634 +#: storage/large_object/inv_api.c:629 #, c-format msgid "invalid large object write request size: %d" msgstr "ogiltig storlek för stort objects skrivningbegäran: %d" @@ -20386,12 +20501,12 @@ msgstr "Bara RowExclusiveLock eller lägre kan tas på databasobjekt under återställning." #: storage/lmgr/lock.c:983 storage/lmgr/lock.c:1021 storage/lmgr/lock.c:2846 -#: storage/lmgr/lock.c:4176 storage/lmgr/lock.c:4241 storage/lmgr/lock.c:4533 +#: storage/lmgr/lock.c:4253 storage/lmgr/lock.c:4318 storage/lmgr/lock.c:4668 #, c-format msgid "You might need to increase max_locks_per_transaction." msgstr "Du kan behöva öka parametern max_locks_per_transaction." -#: storage/lmgr/lock.c:3292 storage/lmgr/lock.c:3408 +#: storage/lmgr/lock.c:3301 storage/lmgr/lock.c:3369 storage/lmgr/lock.c:3485 #, c-format msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object" msgstr "kan inte göra PREPARE samtidigt som vi håller lås på sessionsnivå och transaktionsnivå för samma objekt" @@ -20411,57 +20526,57 @@ msgid "not enough elements in RWConflictPool to record a potential read/write conflict" msgstr "ej tillräckligt med element i RWConflictPool för att spara ner en potentiell läs/skriv-konflikt" -#: storage/lmgr/predicate.c:1535 +#: storage/lmgr/predicate.c:1610 #, c-format msgid "deferrable snapshot was unsafe; trying a new one" msgstr "deferrable-snapshot var osäklert; försöker med ett nytt" -#: storage/lmgr/predicate.c:1624 +#: storage/lmgr/predicate.c:1699 #, c-format msgid "\"default_transaction_isolation\" is set to \"serializable\"." msgstr "\"default_transaction_isolation\" är satt till \"serializable\"." -#: storage/lmgr/predicate.c:1625 +#: storage/lmgr/predicate.c:1700 #, c-format msgid "You can use \"SET default_transaction_isolation = 'repeatable read'\" to change the default." msgstr "Du kan använda \"SET default_transaction_isolation = 'repeatable read'\" för att ändra standardvärdet." -#: storage/lmgr/predicate.c:1676 +#: storage/lmgr/predicate.c:1751 #, c-format msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "en snapshot-importerande transaktion får inte vara READ ONLY DEFERRABLE" -#: storage/lmgr/predicate.c:1755 utils/time/snapmgr.c:623 -#: utils/time/snapmgr.c:629 +#: storage/lmgr/predicate.c:1830 utils/time/snapmgr.c:625 +#: utils/time/snapmgr.c:631 #, c-format msgid "could not import the requested snapshot" msgstr "kunde inte importera efterfrågat snapshot" -#: storage/lmgr/predicate.c:1756 utils/time/snapmgr.c:630 +#: storage/lmgr/predicate.c:1831 utils/time/snapmgr.c:632 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "Källprocessen med PID %d kör inte längre." -#: storage/lmgr/predicate.c:2402 storage/lmgr/predicate.c:2417 -#: storage/lmgr/predicate.c:3899 +#: storage/lmgr/predicate.c:2477 storage/lmgr/predicate.c:2492 +#: storage/lmgr/predicate.c:3974 #, c-format msgid "You might need to increase max_pred_locks_per_transaction." msgstr "Du kan behöva öka parametern max_pred_locks_per_transaction." -#: storage/lmgr/predicate.c:4030 storage/lmgr/predicate.c:4066 -#: storage/lmgr/predicate.c:4099 storage/lmgr/predicate.c:4107 -#: storage/lmgr/predicate.c:4146 storage/lmgr/predicate.c:4388 -#: storage/lmgr/predicate.c:4725 storage/lmgr/predicate.c:4737 -#: storage/lmgr/predicate.c:4780 storage/lmgr/predicate.c:4818 +#: storage/lmgr/predicate.c:4105 storage/lmgr/predicate.c:4141 +#: storage/lmgr/predicate.c:4174 storage/lmgr/predicate.c:4182 +#: storage/lmgr/predicate.c:4221 storage/lmgr/predicate.c:4463 +#: storage/lmgr/predicate.c:4800 storage/lmgr/predicate.c:4812 +#: storage/lmgr/predicate.c:4855 storage/lmgr/predicate.c:4893 #, c-format msgid "could not serialize access due to read/write dependencies among transactions" msgstr "kunde inte serialisera åtkomst på grund av läs/skriv-beroenden bland transaktionerna" -#: storage/lmgr/predicate.c:4032 storage/lmgr/predicate.c:4068 -#: storage/lmgr/predicate.c:4101 storage/lmgr/predicate.c:4109 -#: storage/lmgr/predicate.c:4148 storage/lmgr/predicate.c:4390 -#: storage/lmgr/predicate.c:4727 storage/lmgr/predicate.c:4739 -#: storage/lmgr/predicate.c:4782 storage/lmgr/predicate.c:4820 +#: storage/lmgr/predicate.c:4107 storage/lmgr/predicate.c:4143 +#: storage/lmgr/predicate.c:4176 storage/lmgr/predicate.c:4184 +#: storage/lmgr/predicate.c:4223 storage/lmgr/predicate.c:4465 +#: storage/lmgr/predicate.c:4802 storage/lmgr/predicate.c:4814 +#: storage/lmgr/predicate.c:4857 storage/lmgr/predicate.c:4895 #, c-format msgid "The transaction might succeed if retried." msgstr "Transaktionen kan lyckas om den körs igen." @@ -20506,141 +20621,146 @@ msgid "process %d failed to acquire %s on %s after %ld.%03d ms" msgstr "process %d misslyckades att ta %s på %s efter %ld.%03d ms" -#: storage/page/bufpage.c:145 +#: storage/page/bufpage.c:164 #, c-format msgid "page verification failed, calculated checksum %u but expected %u" msgstr "sidverifiering misslyckades, beräknade kontrollsumma %u men förväntade %u" -#: storage/page/bufpage.c:209 storage/page/bufpage.c:503 -#: storage/page/bufpage.c:740 storage/page/bufpage.c:873 -#: storage/page/bufpage.c:969 storage/page/bufpage.c:1081 +#: storage/page/bufpage.c:229 storage/page/bufpage.c:523 +#: storage/page/bufpage.c:760 storage/page/bufpage.c:893 +#: storage/page/bufpage.c:989 storage/page/bufpage.c:1101 #, c-format msgid "corrupted page pointers: lower = %u, upper = %u, special = %u" msgstr "korrupta sidpekare: lägre = %u, övre = %u, special = %u" -#: storage/page/bufpage.c:525 +#: storage/page/bufpage.c:545 #, c-format msgid "corrupted line pointer: %u" msgstr "korrupt radpekare: %u" -#: storage/page/bufpage.c:552 storage/page/bufpage.c:924 +#: storage/page/bufpage.c:572 storage/page/bufpage.c:944 #, c-format msgid "corrupted item lengths: total %u, available space %u" msgstr "trasiga postlängder: totalt %u, tillgänglig plats %u" -#: storage/page/bufpage.c:759 storage/page/bufpage.c:897 -#: storage/page/bufpage.c:985 storage/page/bufpage.c:1097 +#: storage/page/bufpage.c:779 storage/page/bufpage.c:917 +#: storage/page/bufpage.c:1005 storage/page/bufpage.c:1117 #, c-format msgid "corrupted line pointer: offset = %u, size = %u" msgstr "korrupt radpekare: offset = %u, storlek = %u" -#: storage/smgr/md.c:333 storage/smgr/md.c:836 +#: storage/smgr/md.c:317 storage/smgr/md.c:875 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "kunde inte trunkera fil \"%s\": %m" -#: storage/smgr/md.c:407 +#: storage/smgr/md.c:446 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "kan inte utöka fil \"%s\" utöver %u block" -#: storage/smgr/md.c:422 +#: storage/smgr/md.c:461 #, c-format msgid "could not extend file \"%s\": %m" msgstr "kunde inte utöka fil \"%s\": %m" -#: storage/smgr/md.c:424 storage/smgr/md.c:431 storage/smgr/md.c:719 +#: storage/smgr/md.c:463 storage/smgr/md.c:470 storage/smgr/md.c:758 #, c-format msgid "Check free disk space." msgstr "Kontrollera ledigt diskutrymme." -#: storage/smgr/md.c:428 +#: storage/smgr/md.c:467 #, c-format msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" msgstr "kunde inte utöka fil \"%s\": skrev bara %d av %d byte vid block %u" -#: storage/smgr/md.c:640 +#: storage/smgr/md.c:679 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "kunde inte läsa block %u i fil \"%s\": %m" -#: storage/smgr/md.c:656 +#: storage/smgr/md.c:695 #, c-format msgid "could not read block %u in file \"%s\": read only %d of %d bytes" msgstr "kunde inte läsa block %u i fil \"%s\": läste bara %d av %d byte" -#: storage/smgr/md.c:710 +#: storage/smgr/md.c:749 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "kunde inte skriva block %u i fil \"%s\": %m" -#: storage/smgr/md.c:715 +#: storage/smgr/md.c:754 #, c-format msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" msgstr "kunde inte skriva block %u i fil \"%s\": skrev bara %d av %d byte" -#: storage/smgr/md.c:807 +#: storage/smgr/md.c:846 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "kunde inte trunkera fil \"%s\" till %u block: den är bara %u block nu" -#: storage/smgr/md.c:862 +#: storage/smgr/md.c:901 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "kunde inte trunkera fil \"%s\" till %u block: %m" -#: storage/smgr/md.c:957 +#: storage/smgr/md.c:996 #, c-format msgid "could not forward fsync request because request queue is full" msgstr "kunde inte skicka vidare fsync-förfrågan då kön för förfrågningar är full" -#: storage/smgr/md.c:1256 +#: storage/smgr/md.c:1295 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "kunde inte öppna fil \"%s\" (målblock %u): föregående segment är bara %u block" -#: storage/smgr/md.c:1270 +#: storage/smgr/md.c:1309 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "kunde inte öppna fil \"%s\" (målblock %u): %m" -#: storage/sync/sync.c:401 +#: storage/sync/sync.c:438 #, c-format msgid "could not fsync file \"%s\" but retrying: %m" msgstr "kunde inte fsync:a fil \"%s\" men försöker igen: %m" -#: tcop/fastpath.c:109 tcop/fastpath.c:461 tcop/fastpath.c:591 +#: tcop/fastpath.c:109 tcop/fastpath.c:467 tcop/fastpath.c:597 #, c-format msgid "invalid argument size %d in function call message" msgstr "ogiltig argumentstorlek %d i funktionsaropsmeddelande" -#: tcop/fastpath.c:307 +#: tcop/fastpath.c:225 +#, c-format +msgid "cannot call function %s via fastpath interface" +msgstr "kan inte anropa funktionen %s via fastpath-interface" + +#: tcop/fastpath.c:313 #, c-format msgid "fastpath function call: \"%s\" (OID %u)" msgstr "fastpath funktionsanrop: \"%s\" (OID %u)" -#: tcop/fastpath.c:389 tcop/postgres.c:1323 tcop/postgres.c:1581 +#: tcop/fastpath.c:395 tcop/postgres.c:1323 tcop/postgres.c:1581 #: tcop/postgres.c:2013 tcop/postgres.c:2250 #, c-format msgid "duration: %s ms" msgstr "varaktighet %s ms" -#: tcop/fastpath.c:393 +#: tcop/fastpath.c:399 #, c-format msgid "duration: %s ms fastpath function call: \"%s\" (OID %u)" msgstr "varaktighet: %s ms fastpath funktionsanrop: \"%s\" (OID %u)" -#: tcop/fastpath.c:429 tcop/fastpath.c:556 +#: tcop/fastpath.c:435 tcop/fastpath.c:562 #, c-format msgid "function call message contains %d arguments but function requires %d" msgstr "meddelande för funktionsanrop innehåller %d argument men funktionen kräver %d" -#: tcop/fastpath.c:437 +#: tcop/fastpath.c:443 #, c-format msgid "function call message contains %d argument formats but %d arguments" msgstr "meddelande för funktioonsanrop innehåller %d argumentformat men %d argument" -#: tcop/fastpath.c:524 tcop/fastpath.c:607 +#: tcop/fastpath.c:530 tcop/fastpath.c:613 #, c-format msgid "incorrect binary data format in function argument %d" msgstr "inkorrekt binärt dataformat i funktionsargument %d" @@ -20651,7 +20771,7 @@ msgstr "oväntat EOF från klienten" #: tcop/postgres.c:441 tcop/postgres.c:453 tcop/postgres.c:464 -#: tcop/postgres.c:476 tcop/postgres.c:4539 +#: tcop/postgres.c:476 tcop/postgres.c:4571 #, c-format msgid "invalid frontend message type %d" msgstr "ogiltig frontend-meddelandetyp %d" @@ -20784,7 +20904,7 @@ msgid "The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory." msgstr "Postmastern har sagt åt denna serverprocess att rulla tillbaka den aktuella transaktionen och avsluta då en annan process har avslutats onormalt och har eventuellt trasat sönder delat minne." -#: tcop/postgres.c:2801 tcop/postgres.c:3107 +#: tcop/postgres.c:2801 tcop/postgres.c:3125 #, c-format msgid "In a moment you should be able to reconnect to the database and repeat your command." msgstr "Du kan strax återansluta till databasen och upprepa kommandot." @@ -20799,142 +20919,142 @@ msgid "An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid operation, such as division by zero." msgstr "En ogiltig flyttalsoperation har signalerats. Detta beror troligen på ett resultat som är utanför giltigt intervall eller en ogiltig operation så som division med noll." -#: tcop/postgres.c:3037 +#: tcop/postgres.c:3055 #, c-format msgid "canceling authentication due to timeout" msgstr "avbryter autentisering på grund av timeout" -#: tcop/postgres.c:3041 +#: tcop/postgres.c:3059 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "avslutar autovacuum-process på grund av ett administratörskommando" -#: tcop/postgres.c:3045 +#: tcop/postgres.c:3063 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "avslutar logisk replikeringsarbetare på grund av ett administratörskommando" -#: tcop/postgres.c:3049 +#: tcop/postgres.c:3067 #, c-format msgid "logical replication launcher shutting down" msgstr "logisk replikeringsuppstartare stänger ner" -#: tcop/postgres.c:3062 tcop/postgres.c:3072 tcop/postgres.c:3105 +#: tcop/postgres.c:3080 tcop/postgres.c:3090 tcop/postgres.c:3123 #, c-format msgid "terminating connection due to conflict with recovery" msgstr "avslutar anslutning på grund av konflikt med återställning" -#: tcop/postgres.c:3078 +#: tcop/postgres.c:3096 #, c-format msgid "terminating connection due to administrator command" msgstr "avslutar anslutning på grund av ett administratörskommando" -#: tcop/postgres.c:3088 +#: tcop/postgres.c:3106 #, c-format msgid "connection to client lost" msgstr "anslutning till klient har brutits" -#: tcop/postgres.c:3154 +#: tcop/postgres.c:3176 #, c-format msgid "canceling statement due to lock timeout" msgstr "avbryter sats på grund av lås-timeout" -#: tcop/postgres.c:3161 +#: tcop/postgres.c:3183 #, c-format msgid "canceling statement due to statement timeout" msgstr "avbryter sats på grund av sats-timeout" -#: tcop/postgres.c:3168 +#: tcop/postgres.c:3190 #, c-format msgid "canceling autovacuum task" msgstr "avbryter autovacuum-uppgift" -#: tcop/postgres.c:3191 +#: tcop/postgres.c:3213 #, c-format msgid "canceling statement due to user request" msgstr "avbryter sats på användares begäran" -#: tcop/postgres.c:3201 +#: tcop/postgres.c:3223 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "terminerar anslutning på grund av idle-in-transaction-timeout" -#: tcop/postgres.c:3318 +#: tcop/postgres.c:3350 #, c-format msgid "stack depth limit exceeded" msgstr "maximalt stackdjup överskridet" -#: tcop/postgres.c:3319 +#: tcop/postgres.c:3351 #, c-format msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." msgstr "Öka konfigurationsparametern \"max_stack_depth\" (nu %dkB) efter att ha undersökt att plattformens gräns för stackdjup är tillräcklig." -#: tcop/postgres.c:3382 +#: tcop/postgres.c:3414 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "\"max_stack_depth\" får ej överskrida %ldkB." -#: tcop/postgres.c:3384 +#: tcop/postgres.c:3416 #, c-format msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." msgstr "Öka plattformens stackdjupbegränsning via \"ulimit -s\" eller motsvarande." -#: tcop/postgres.c:3744 +#: tcop/postgres.c:3776 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "ogiltigt kommandoradsargument för serverprocess: %s" -#: tcop/postgres.c:3745 tcop/postgres.c:3751 +#: tcop/postgres.c:3777 tcop/postgres.c:3783 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: tcop/postgres.c:3749 +#: tcop/postgres.c:3781 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: ogiltigt kommandoradsargument: %s" -#: tcop/postgres.c:3811 +#: tcop/postgres.c:3843 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: ingen databas eller användarnamn angivet" -#: tcop/postgres.c:4447 +#: tcop/postgres.c:4479 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "ogiltig subtyp %d för CLOSE-meddelande" -#: tcop/postgres.c:4482 +#: tcop/postgres.c:4514 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "ogiltig subtyp %d för DESCRIBE-meddelande" -#: tcop/postgres.c:4560 +#: tcop/postgres.c:4592 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "fastpath-funktionsanrop stöds inte i en replikeringsanslutning" -#: tcop/postgres.c:4564 +#: tcop/postgres.c:4596 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "utökat frågeprotokoll stöds inte i en replikeringsanslutning" -#: tcop/postgres.c:4741 +#: tcop/postgres.c:4773 #, c-format msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s" msgstr "nedkoppling: sessionstid: %d:%02d:%02d.%03d användare=%s databas=%s värd=%s%s%s" -#: tcop/pquery.c:629 +#: tcop/pquery.c:638 #, c-format msgid "bind message has %d result formats but query has %d columns" msgstr "bind-meddelande har %d resultatformat men frågan har %d kolumner" -#: tcop/pquery.c:932 +#: tcop/pquery.c:941 tcop/pquery.c:1700 #, c-format msgid "cursor can only scan forward" msgstr "markör kan bara hoppa framåt" -#: tcop/pquery.c:933 +#: tcop/pquery.c:942 tcop/pquery.c:1701 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "Deklarera den med flaggan SCROLL för att kunna traversera bakåt." @@ -20963,10 +21083,16 @@ msgid "cannot execute %s within security-restricted operation" msgstr "kan inte köra %s inom säkerhetsbegränsad operation" -#: tcop/utility.c:912 +#. translator: %s is name of a SQL command, eg LISTEN +#: tcop/utility.c:804 +#, c-format +msgid "cannot execute %s within a background process" +msgstr "kan inte köra %s i en bakgrundsprocess" + +#: tcop/utility.c:929 #, c-format msgid "must be superuser to do CHECKPOINT" -msgstr "måste vara superanvändare för att göra CHECKPOINT" +msgstr "måste vara superuser för att göra CHECKPOINT" #: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:620 #, c-format @@ -21089,12 +21215,12 @@ msgstr "saknar ordlistparameter" #: tsearch/spell.c:380 tsearch/spell.c:397 tsearch/spell.c:406 -#: tsearch/spell.c:1036 +#: tsearch/spell.c:1062 #, c-format msgid "invalid affix flag \"%s\"" msgstr "ogiltig affix-flagga \"%s\"" -#: tsearch/spell.c:384 tsearch/spell.c:1040 +#: tsearch/spell.c:384 tsearch/spell.c:1066 #, c-format msgid "affix flag \"%s\" is out of range" msgstr "affix-flaggan \"%s\" är utanför giltigt intervall" @@ -21114,38 +21240,38 @@ msgid "could not open dictionary file \"%s\": %m" msgstr "kunde inte öppna ordboksfil \"%s\": %m" -#: tsearch/spell.c:742 utils/adt/regexp.c:208 +#: tsearch/spell.c:763 utils/adt/regexp.c:208 #, c-format msgid "invalid regular expression: %s" msgstr "ogiltigt reguljärt uttryck: %s" -#: tsearch/spell.c:1163 tsearch/spell.c:1175 tsearch/spell.c:1734 -#: tsearch/spell.c:1739 tsearch/spell.c:1744 +#: tsearch/spell.c:1189 tsearch/spell.c:1201 tsearch/spell.c:1760 +#: tsearch/spell.c:1765 tsearch/spell.c:1770 #, c-format msgid "invalid affix alias \"%s\"" msgstr "ogiltigt affix-alias \"%s\"" -#: tsearch/spell.c:1216 tsearch/spell.c:1287 tsearch/spell.c:1436 +#: tsearch/spell.c:1242 tsearch/spell.c:1313 tsearch/spell.c:1462 #, c-format msgid "could not open affix file \"%s\": %m" msgstr "kunde inte öppna affix-fil \"%s\": %m" -#: tsearch/spell.c:1270 +#: tsearch/spell.c:1296 #, c-format msgid "Ispell dictionary supports only \"default\", \"long\", and \"num\" flag values" msgstr "Ispell-ordbok stöder bara flaggorna \"default\", \"long\" och \"num\"" -#: tsearch/spell.c:1314 +#: tsearch/spell.c:1340 #, c-format msgid "invalid number of flag vector aliases" msgstr "ogiltigt antal alias i flaggvektor" -#: tsearch/spell.c:1337 +#: tsearch/spell.c:1363 #, c-format msgid "number of aliases exceeds specified number %d" msgstr "antalet alias överskriver angivet antal %d" -#: tsearch/spell.c:1552 +#: tsearch/spell.c:1578 #, c-format msgid "affix file contains both old-style and new-style commands" msgstr "affix-fil innehåller kommandon på gammalt och nytt format" @@ -21217,127 +21343,127 @@ msgid "MaxFragments should be >= 0" msgstr "MaxFragments skall vara >= 0" -#: utils/adt/acl.c:172 utils/adt/name.c:93 +#: utils/adt/acl.c:171 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "identifieraren för lång" -#: utils/adt/acl.c:173 utils/adt/name.c:94 +#: utils/adt/acl.c:172 utils/adt/name.c:94 #, c-format msgid "Identifier must be less than %d characters." msgstr "Identifierare måste vara mindre än %d tecken." -#: utils/adt/acl.c:256 +#: utils/adt/acl.c:255 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "okänt nyckelord: \"%s\"" -#: utils/adt/acl.c:257 +#: utils/adt/acl.c:256 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "ACL-nyckelord måste vara \"group\" eller \"user\"." -#: utils/adt/acl.c:262 +#: utils/adt/acl.c:261 #, c-format msgid "missing name" msgstr "namn saknas" -#: utils/adt/acl.c:263 +#: utils/adt/acl.c:262 #, c-format msgid "A name must follow the \"group\" or \"user\" key word." msgstr "Ett namn måste följa efter nyckelorden \"group\" resp. \"user\"." -#: utils/adt/acl.c:269 +#: utils/adt/acl.c:268 #, c-format msgid "missing \"=\" sign" msgstr "saknar \"=\"-tecken" -#: utils/adt/acl.c:322 +#: utils/adt/acl.c:321 #, c-format msgid "invalid mode character: must be one of \"%s\"" msgstr "ogiltigt lägestecken: måste vara en av \"%s\"" -#: utils/adt/acl.c:344 +#: utils/adt/acl.c:343 #, c-format msgid "a name must follow the \"/\" sign" msgstr "ett namn måste följa på tecknet \"/\"" -#: utils/adt/acl.c:352 +#: utils/adt/acl.c:351 #, c-format msgid "defaulting grantor to user ID %u" msgstr "sätter fullmaktsgivaranvändar-ID till standardvärdet %u" -#: utils/adt/acl.c:538 +#: utils/adt/acl.c:537 #, c-format msgid "ACL array contains wrong data type" msgstr "ACL-array innehåller fel datatyp" -#: utils/adt/acl.c:542 +#: utils/adt/acl.c:541 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "ACL-array:er måste vara endimensionella" -#: utils/adt/acl.c:546 +#: utils/adt/acl.c:545 #, c-format msgid "ACL arrays must not contain null values" msgstr "ACL-array:er får inte innehålla null-värden" -#: utils/adt/acl.c:570 +#: utils/adt/acl.c:569 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "skräp vid slutet av ACL-angivelse" -#: utils/adt/acl.c:1205 +#: utils/adt/acl.c:1204 #, c-format msgid "grant options cannot be granted back to your own grantor" msgstr "fullmaksgivarflaggor kan inte ges tillbaka till den som givit det till dig" -#: utils/adt/acl.c:1266 +#: utils/adt/acl.c:1265 #, c-format msgid "dependent privileges exist" msgstr "det finns beroende privilegier" -#: utils/adt/acl.c:1267 +#: utils/adt/acl.c:1266 #, c-format msgid "Use CASCADE to revoke them too." msgstr "Använd CASCADE för att återkalla dem med." -#: utils/adt/acl.c:1521 +#: utils/adt/acl.c:1520 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsert stöds inte länge" -#: utils/adt/acl.c:1531 +#: utils/adt/acl.c:1530 #, c-format msgid "aclremove is no longer supported" msgstr "aclremove stöds inte längre" -#: utils/adt/acl.c:1617 utils/adt/acl.c:1671 +#: utils/adt/acl.c:1616 utils/adt/acl.c:1670 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "okänd privilegietyp: \"%s\"" -#: utils/adt/acl.c:3471 utils/adt/regproc.c:103 utils/adt/regproc.c:278 +#: utils/adt/acl.c:3470 utils/adt/regproc.c:103 utils/adt/regproc.c:278 #, c-format msgid "function \"%s\" does not exist" msgstr "funktionen \"%s\" finns inte" -#: utils/adt/acl.c:4943 +#: utils/adt/acl.c:4946 #, c-format msgid "must be member of role \"%s\"" msgstr "måste vara medlem i rollen \"%s\"" -#: utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:933 -#: utils/adt/arrayfuncs.c:1533 utils/adt/arrayfuncs.c:3236 -#: utils/adt/arrayfuncs.c:3376 utils/adt/arrayfuncs.c:5911 -#: utils/adt/arrayfuncs.c:6252 utils/adt/arrayutils.c:93 -#: utils/adt/arrayutils.c:102 utils/adt/arrayutils.c:109 +#: utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:935 +#: utils/adt/arrayfuncs.c:1522 utils/adt/arrayfuncs.c:3236 +#: utils/adt/arrayfuncs.c:3378 utils/adt/arrayfuncs.c:5919 +#: utils/adt/arrayfuncs.c:6260 utils/adt/arrayutils.c:94 +#: utils/adt/arrayutils.c:103 utils/adt/arrayutils.c:110 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "array-storlek överskrider maximalt tillåtna (%d)" -#: utils/adt/array_userfuncs.c:80 utils/adt/array_userfuncs.c:466 -#: utils/adt/array_userfuncs.c:546 utils/adt/json.c:645 utils/adt/json.c:740 +#: utils/adt/array_userfuncs.c:80 utils/adt/array_userfuncs.c:467 +#: utils/adt/array_userfuncs.c:547 utils/adt/json.c:645 utils/adt/json.c:740 #: utils/adt/json.c:778 utils/adt/jsonb.c:1115 utils/adt/jsonb.c:1144 #: utils/adt/jsonb.c:1538 utils/adt/jsonb.c:1702 utils/adt/jsonb.c:1712 #, c-format @@ -21350,16 +21476,16 @@ msgstr "indatatyp är inte en array" #: utils/adt/array_userfuncs.c:129 utils/adt/array_userfuncs.c:181 -#: utils/adt/arrayfuncs.c:1336 utils/adt/float.c:1243 utils/adt/float.c:1317 -#: utils/adt/float.c:3960 utils/adt/float.c:3974 utils/adt/int.c:759 -#: utils/adt/int.c:781 utils/adt/int.c:795 utils/adt/int.c:809 -#: utils/adt/int.c:840 utils/adt/int.c:861 utils/adt/int.c:978 -#: utils/adt/int.c:992 utils/adt/int.c:1006 utils/adt/int.c:1039 -#: utils/adt/int.c:1053 utils/adt/int.c:1067 utils/adt/int.c:1098 -#: utils/adt/int.c:1180 utils/adt/int.c:1244 utils/adt/int.c:1312 -#: utils/adt/int.c:1318 utils/adt/int8.c:1292 utils/adt/numeric.c:1559 -#: utils/adt/numeric.c:3435 utils/adt/varbit.c:1188 utils/adt/varbit.c:1576 -#: utils/adt/varlena.c:1087 utils/adt/varlena.c:3377 +#: utils/adt/float.c:1243 utils/adt/float.c:1317 utils/adt/float.c:3960 +#: utils/adt/float.c:3974 utils/adt/int.c:759 utils/adt/int.c:781 +#: utils/adt/int.c:795 utils/adt/int.c:809 utils/adt/int.c:840 +#: utils/adt/int.c:861 utils/adt/int.c:978 utils/adt/int.c:992 +#: utils/adt/int.c:1006 utils/adt/int.c:1039 utils/adt/int.c:1053 +#: utils/adt/int.c:1067 utils/adt/int.c:1098 utils/adt/int.c:1180 +#: utils/adt/int.c:1244 utils/adt/int.c:1312 utils/adt/int.c:1318 +#: utils/adt/int8.c:1292 utils/adt/numeric.c:1551 utils/adt/numeric.c:3430 +#: utils/adt/varbit.c:1194 utils/adt/varbit.c:1582 utils/adt/varlena.c:1097 +#: utils/adt/varlena.c:3395 #, c-format msgid "integer out of range" msgstr "heltal utanför giltigt intervall" @@ -21396,12 +21522,12 @@ msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "Array:er med olika dimensioner fungerar inte vid konkatenering." -#: utils/adt/array_userfuncs.c:662 utils/adt/array_userfuncs.c:814 +#: utils/adt/array_userfuncs.c:663 utils/adt/array_userfuncs.c:815 #, c-format msgid "searching for elements in multidimensional arrays is not supported" msgstr "sökning efter element i en multidimensionell array stöds inte" -#: utils/adt/array_userfuncs.c:686 +#: utils/adt/array_userfuncs.c:687 #, c-format msgid "initial position must not be null" msgstr "initiala positionen får ej vara null" @@ -21410,14 +21536,14 @@ #: utils/adt/arrayfuncs.c:295 utils/adt/arrayfuncs.c:317 #: utils/adt/arrayfuncs.c:332 utils/adt/arrayfuncs.c:346 #: utils/adt/arrayfuncs.c:352 utils/adt/arrayfuncs.c:359 -#: utils/adt/arrayfuncs.c:490 utils/adt/arrayfuncs.c:506 -#: utils/adt/arrayfuncs.c:517 utils/adt/arrayfuncs.c:532 -#: utils/adt/arrayfuncs.c:553 utils/adt/arrayfuncs.c:583 -#: utils/adt/arrayfuncs.c:590 utils/adt/arrayfuncs.c:598 -#: utils/adt/arrayfuncs.c:632 utils/adt/arrayfuncs.c:655 -#: utils/adt/arrayfuncs.c:675 utils/adt/arrayfuncs.c:787 -#: utils/adt/arrayfuncs.c:796 utils/adt/arrayfuncs.c:826 -#: utils/adt/arrayfuncs.c:841 utils/adt/arrayfuncs.c:894 +#: utils/adt/arrayfuncs.c:492 utils/adt/arrayfuncs.c:508 +#: utils/adt/arrayfuncs.c:519 utils/adt/arrayfuncs.c:534 +#: utils/adt/arrayfuncs.c:555 utils/adt/arrayfuncs.c:585 +#: utils/adt/arrayfuncs.c:592 utils/adt/arrayfuncs.c:600 +#: utils/adt/arrayfuncs.c:634 utils/adt/arrayfuncs.c:657 +#: utils/adt/arrayfuncs.c:677 utils/adt/arrayfuncs.c:789 +#: utils/adt/arrayfuncs.c:798 utils/adt/arrayfuncs.c:828 +#: utils/adt/arrayfuncs.c:843 utils/adt/arrayfuncs.c:896 #, c-format msgid "malformed array literal: \"%s\"" msgstr "felaktig array-literal: \"%s\"" @@ -21437,8 +21563,8 @@ msgid "Missing \"%s\" after array dimensions." msgstr "Saknar \"%s\" efter array-dimensioner." -#: utils/adt/arrayfuncs.c:305 utils/adt/arrayfuncs.c:2884 -#: utils/adt/arrayfuncs.c:2916 utils/adt/arrayfuncs.c:2931 +#: utils/adt/arrayfuncs.c:305 utils/adt/arrayfuncs.c:2883 +#: utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:2930 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "övre gränsen kan inte vara lägre än undre gränsen" @@ -21458,81 +21584,81 @@ msgid "Specified array dimensions do not match array contents." msgstr "Angivna array-dimensioner matchar inte array-innehållet." -#: utils/adt/arrayfuncs.c:491 utils/adt/arrayfuncs.c:518 +#: utils/adt/arrayfuncs.c:493 utils/adt/arrayfuncs.c:520 #: utils/adt/rangetypes.c:2181 utils/adt/rangetypes.c:2189 #: utils/adt/rowtypes.c:210 utils/adt/rowtypes.c:218 #, c-format msgid "Unexpected end of input." msgstr "oväntat slut på indata." -#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:554 -#: utils/adt/arrayfuncs.c:584 utils/adt/arrayfuncs.c:633 +#: utils/adt/arrayfuncs.c:509 utils/adt/arrayfuncs.c:556 +#: utils/adt/arrayfuncs.c:586 utils/adt/arrayfuncs.c:635 #, c-format msgid "Unexpected \"%c\" character." msgstr "oväntat tecken \"%c\"." -#: utils/adt/arrayfuncs.c:533 utils/adt/arrayfuncs.c:656 +#: utils/adt/arrayfuncs.c:535 utils/adt/arrayfuncs.c:658 #, c-format msgid "Unexpected array element." msgstr "Oväntat array-element." -#: utils/adt/arrayfuncs.c:591 +#: utils/adt/arrayfuncs.c:593 #, c-format msgid "Unmatched \"%c\" character." msgstr "Icke matchat tecken \"%c\"." -#: utils/adt/arrayfuncs.c:599 utils/adt/jsonfuncs.c:2452 +#: utils/adt/arrayfuncs.c:601 utils/adt/jsonfuncs.c:2452 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "Flerdimensionella array:er måste ha underarray:er med matchande dimensioner." -#: utils/adt/arrayfuncs.c:676 +#: utils/adt/arrayfuncs.c:678 #, c-format msgid "Junk after closing right brace." msgstr "Skräp efter avslutande höger parentes." -#: utils/adt/arrayfuncs.c:1298 utils/adt/arrayfuncs.c:3344 -#: utils/adt/arrayfuncs.c:5817 +#: utils/adt/arrayfuncs.c:1300 utils/adt/arrayfuncs.c:3344 +#: utils/adt/arrayfuncs.c:5823 #, c-format msgid "invalid number of dimensions: %d" msgstr "felaktigt antal dimensioner: %d" -#: utils/adt/arrayfuncs.c:1309 +#: utils/adt/arrayfuncs.c:1311 #, c-format msgid "invalid array flags" msgstr "ogiltiga array-flaggor" -#: utils/adt/arrayfuncs.c:1317 +#: utils/adt/arrayfuncs.c:1319 #, c-format msgid "wrong element type" msgstr "fel elementtyp" -#: utils/adt/arrayfuncs.c:1367 utils/adt/rangetypes.c:335 -#: utils/cache/lsyscache.c:2835 +#: utils/adt/arrayfuncs.c:1356 utils/adt/rangetypes.c:335 +#: utils/cache/lsyscache.c:2862 #, c-format msgid "no binary input function available for type %s" msgstr "ingen binär indatafunktion finns för typen %s" -#: utils/adt/arrayfuncs.c:1507 +#: utils/adt/arrayfuncs.c:1496 #, c-format msgid "improper binary format in array element %d" msgstr "felaktigt binärt format i array-element %d" -#: utils/adt/arrayfuncs.c:1588 utils/adt/rangetypes.c:340 -#: utils/cache/lsyscache.c:2868 +#: utils/adt/arrayfuncs.c:1577 utils/adt/rangetypes.c:340 +#: utils/cache/lsyscache.c:2895 #, c-format msgid "no binary output function available for type %s" msgstr "det saknas en binär output-funktion för typen %s" -#: utils/adt/arrayfuncs.c:2066 +#: utils/adt/arrayfuncs.c:2055 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "slice av fixlängd-array är inte implementerat" -#: utils/adt/arrayfuncs.c:2244 utils/adt/arrayfuncs.c:2266 -#: utils/adt/arrayfuncs.c:2315 utils/adt/arrayfuncs.c:2551 -#: utils/adt/arrayfuncs.c:2862 utils/adt/arrayfuncs.c:5803 -#: utils/adt/arrayfuncs.c:5829 utils/adt/arrayfuncs.c:5840 +#: utils/adt/arrayfuncs.c:2233 utils/adt/arrayfuncs.c:2255 +#: utils/adt/arrayfuncs.c:2304 utils/adt/arrayfuncs.c:2543 +#: utils/adt/arrayfuncs.c:2861 utils/adt/arrayfuncs.c:5809 +#: utils/adt/arrayfuncs.c:5835 utils/adt/arrayfuncs.c:5846 #: utils/adt/json.c:1141 utils/adt/json.c:1216 utils/adt/jsonb.c:1316 #: utils/adt/jsonb.c:1402 utils/adt/jsonfuncs.c:4340 utils/adt/jsonfuncs.c:4490 #: utils/adt/jsonfuncs.c:4602 utils/adt/jsonfuncs.c:4648 @@ -21540,125 +21666,130 @@ msgid "wrong number of array subscripts" msgstr "fel antal array-indexeringar" -#: utils/adt/arrayfuncs.c:2249 utils/adt/arrayfuncs.c:2357 -#: utils/adt/arrayfuncs.c:2615 utils/adt/arrayfuncs.c:2921 +#: utils/adt/arrayfuncs.c:2238 utils/adt/arrayfuncs.c:2346 +#: utils/adt/arrayfuncs.c:2607 utils/adt/arrayfuncs.c:2920 #, c-format msgid "array subscript out of range" msgstr "array-index utanför giltigt område" -#: utils/adt/arrayfuncs.c:2254 +#: utils/adt/arrayfuncs.c:2243 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "kan inte tilldela null-värde till ett element i en array med fast längd" -#: utils/adt/arrayfuncs.c:2809 +#: utils/adt/arrayfuncs.c:2808 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "uppdatering av slice på fixlängd-array är inte implementerat" -#: utils/adt/arrayfuncs.c:2840 +#: utils/adt/arrayfuncs.c:2839 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "array-slice-index måste inkludera båda gränser" -#: utils/adt/arrayfuncs.c:2841 +#: utils/adt/arrayfuncs.c:2840 #, c-format msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "Vid tilldelning till en slice av en tom array så måste slice-gränserna anges" -#: utils/adt/arrayfuncs.c:2852 utils/adt/arrayfuncs.c:2947 +#: utils/adt/arrayfuncs.c:2851 utils/adt/arrayfuncs.c:2947 #, c-format msgid "source array too small" msgstr "käll-array för liten" -#: utils/adt/arrayfuncs.c:3500 +#: utils/adt/arrayfuncs.c:3502 #, c-format msgid "null array element not allowed in this context" msgstr "null-element i arrayer stöds inte i detta kontext" -#: utils/adt/arrayfuncs.c:3602 utils/adt/arrayfuncs.c:3773 -#: utils/adt/arrayfuncs.c:4129 +#: utils/adt/arrayfuncs.c:3604 utils/adt/arrayfuncs.c:3775 +#: utils/adt/arrayfuncs.c:4131 #, c-format msgid "cannot compare arrays of different element types" msgstr "kan inte jämföra arrayer med olika elementtyper" -#: utils/adt/arrayfuncs.c:3951 utils/adt/rangetypes.c:1254 +#: utils/adt/arrayfuncs.c:3953 utils/adt/rangetypes.c:1254 #: utils/adt/rangetypes.c:1318 #, c-format msgid "could not identify a hash function for type %s" msgstr "kunde inte hitta en hash-funktion för typ %s" -#: utils/adt/arrayfuncs.c:4044 +#: utils/adt/arrayfuncs.c:4046 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "kunde inte hitta en utökad hash-funktion för typ %s" -#: utils/adt/arrayfuncs.c:5221 +#: utils/adt/arrayfuncs.c:5223 #, c-format msgid "data type %s is not an array type" msgstr "datatypen %s är inte en arraytyp" -#: utils/adt/arrayfuncs.c:5276 +#: utils/adt/arrayfuncs.c:5278 #, c-format msgid "cannot accumulate null arrays" msgstr "kan inte ackumulera null-array:er" -#: utils/adt/arrayfuncs.c:5304 +#: utils/adt/arrayfuncs.c:5306 #, c-format msgid "cannot accumulate empty arrays" msgstr "kan inte ackumulera tomma array:er" -#: utils/adt/arrayfuncs.c:5331 utils/adt/arrayfuncs.c:5337 +#: utils/adt/arrayfuncs.c:5333 utils/adt/arrayfuncs.c:5339 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "kan inte ackumulera arrayer med olika dimensioner" -#: utils/adt/arrayfuncs.c:5701 utils/adt/arrayfuncs.c:5741 +#: utils/adt/arrayfuncs.c:5707 utils/adt/arrayfuncs.c:5747 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "dimensionsarray eller undre gränsarray kan inte vara null" -#: utils/adt/arrayfuncs.c:5804 utils/adt/arrayfuncs.c:5830 +#: utils/adt/arrayfuncs.c:5810 utils/adt/arrayfuncs.c:5836 #, c-format msgid "Dimension array must be one dimensional." msgstr "Dimensionsarray måste vara endimensionell." -#: utils/adt/arrayfuncs.c:5809 utils/adt/arrayfuncs.c:5835 +#: utils/adt/arrayfuncs.c:5815 utils/adt/arrayfuncs.c:5841 #, c-format msgid "dimension values cannot be null" msgstr "dimensionsvärden kan inte vara null" -#: utils/adt/arrayfuncs.c:5841 +#: utils/adt/arrayfuncs.c:5847 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "Undre arraygräns har annan storlek än dimensionsarray." -#: utils/adt/arrayfuncs.c:6117 +#: utils/adt/arrayfuncs.c:6125 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "borttagning av element från en multidimensionell array stöds inte" -#: utils/adt/arrayfuncs.c:6394 +#: utils/adt/arrayfuncs.c:6402 #, c-format msgid "thresholds must be one-dimensional array" msgstr "gränsvärden måste vara en endimensionell array" -#: utils/adt/arrayfuncs.c:6399 +#: utils/adt/arrayfuncs.c:6407 #, c-format msgid "thresholds array must not contain NULLs" msgstr "gränsvärdesarray får inte innehålla NULLL-värden" -#: utils/adt/arrayutils.c:209 +#: utils/adt/arrayutils.c:140 +#, c-format +msgid "array lower bound is too large: %d" +msgstr "lägre gräns för array är för stor: %d" + +#: utils/adt/arrayutils.c:240 #, c-format msgid "typmod array must be type cstring[]" msgstr "typmod-array måste ha typ cstring[]" -#: utils/adt/arrayutils.c:214 +#: utils/adt/arrayutils.c:245 #, c-format msgid "typmod array must be one-dimensional" msgstr "typmod-array måste vara endimensionell" -#: utils/adt/arrayutils.c:219 +#: utils/adt/arrayutils.c:250 #, c-format msgid "typmod array must not contain nulls" msgstr "typmod-arrayen får inte innehålla null-värden" @@ -21679,9 +21810,9 @@ #: utils/adt/geo_ops.c:4660 utils/adt/geo_ops.c:4667 utils/adt/int8.c:126 #: utils/adt/jsonpath.c:182 utils/adt/mac.c:94 utils/adt/mac8.c:93 #: utils/adt/mac8.c:166 utils/adt/mac8.c:184 utils/adt/mac8.c:202 -#: utils/adt/mac8.c:221 utils/adt/network.c:100 utils/adt/numeric.c:601 -#: utils/adt/numeric.c:628 utils/adt/numeric.c:6001 utils/adt/numeric.c:6025 -#: utils/adt/numeric.c:6049 utils/adt/numeric.c:6882 utils/adt/numeric.c:6908 +#: utils/adt/mac8.c:221 utils/adt/network.c:100 utils/adt/numeric.c:593 +#: utils/adt/numeric.c:620 utils/adt/numeric.c:5997 utils/adt/numeric.c:6021 +#: utils/adt/numeric.c:6045 utils/adt/numeric.c:6867 utils/adt/numeric.c:6893 #: utils/adt/numutils.c:116 utils/adt/numutils.c:126 utils/adt/numutils.c:170 #: utils/adt/numutils.c:246 utils/adt/numutils.c:322 utils/adt/oid.c:44 #: utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86 @@ -21706,8 +21837,8 @@ #: utils/adt/int.c:1020 utils/adt/int.c:1082 utils/adt/int.c:1120 #: utils/adt/int.c:1148 utils/adt/int8.c:593 utils/adt/int8.c:651 #: utils/adt/int8.c:978 utils/adt/int8.c:1058 utils/adt/int8.c:1120 -#: utils/adt/int8.c:1200 utils/adt/numeric.c:7446 utils/adt/numeric.c:7736 -#: utils/adt/numeric.c:9318 utils/adt/timestamp.c:3243 +#: utils/adt/int8.c:1200 utils/adt/numeric.c:7431 utils/adt/numeric.c:7721 +#: utils/adt/numeric.c:9366 utils/adt/timestamp.c:3275 #, c-format msgid "division by zero" msgstr "division med noll" @@ -21733,9 +21864,9 @@ msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "TIME(%d)%s-precisionen reducerad till maximalt tillåtna, %d" -#: utils/adt/date.c:158 utils/adt/date.c:166 utils/adt/formatting.c:4210 -#: utils/adt/formatting.c:4219 utils/adt/formatting.c:4325 -#: utils/adt/formatting.c:4335 +#: utils/adt/date.c:158 utils/adt/date.c:166 utils/adt/formatting.c:4253 +#: utils/adt/formatting.c:4262 utils/adt/formatting.c:4368 +#: utils/adt/formatting.c:4378 #, c-format msgid "date out of range: \"%s\"" msgstr "datum utanför giltigt intervall \"%s\"" @@ -21759,27 +21890,27 @@ #: utils/adt/date.c:313 utils/adt/date.c:336 utils/adt/date.c:362 #: utils/adt/date.c:1142 utils/adt/date.c:1188 utils/adt/date.c:1744 #: utils/adt/date.c:1775 utils/adt/date.c:1804 utils/adt/date.c:2636 -#: utils/adt/datetime.c:1655 utils/adt/formatting.c:4067 -#: utils/adt/formatting.c:4099 utils/adt/formatting.c:4179 -#: utils/adt/formatting.c:4301 utils/adt/json.c:418 utils/adt/json.c:457 +#: utils/adt/datetime.c:1655 utils/adt/formatting.c:4110 +#: utils/adt/formatting.c:4142 utils/adt/formatting.c:4222 +#: utils/adt/formatting.c:4344 utils/adt/json.c:418 utils/adt/json.c:457 #: utils/adt/timestamp.c:222 utils/adt/timestamp.c:254 #: utils/adt/timestamp.c:692 utils/adt/timestamp.c:701 #: utils/adt/timestamp.c:779 utils/adt/timestamp.c:812 -#: utils/adt/timestamp.c:2822 utils/adt/timestamp.c:2843 -#: utils/adt/timestamp.c:2856 utils/adt/timestamp.c:2865 -#: utils/adt/timestamp.c:2873 utils/adt/timestamp.c:2928 -#: utils/adt/timestamp.c:2951 utils/adt/timestamp.c:2964 -#: utils/adt/timestamp.c:2975 utils/adt/timestamp.c:2983 -#: utils/adt/timestamp.c:3643 utils/adt/timestamp.c:3768 -#: utils/adt/timestamp.c:3809 utils/adt/timestamp.c:3899 -#: utils/adt/timestamp.c:3943 utils/adt/timestamp.c:4046 -#: utils/adt/timestamp.c:4531 utils/adt/timestamp.c:4727 -#: utils/adt/timestamp.c:5054 utils/adt/timestamp.c:5068 -#: utils/adt/timestamp.c:5073 utils/adt/timestamp.c:5087 -#: utils/adt/timestamp.c:5120 utils/adt/timestamp.c:5207 -#: utils/adt/timestamp.c:5248 utils/adt/timestamp.c:5252 -#: utils/adt/timestamp.c:5321 utils/adt/timestamp.c:5325 -#: utils/adt/timestamp.c:5339 utils/adt/timestamp.c:5373 utils/adt/xml.c:2232 +#: utils/adt/timestamp.c:2854 utils/adt/timestamp.c:2875 +#: utils/adt/timestamp.c:2888 utils/adt/timestamp.c:2897 +#: utils/adt/timestamp.c:2905 utils/adt/timestamp.c:2960 +#: utils/adt/timestamp.c:2983 utils/adt/timestamp.c:2996 +#: utils/adt/timestamp.c:3007 utils/adt/timestamp.c:3015 +#: utils/adt/timestamp.c:3675 utils/adt/timestamp.c:3800 +#: utils/adt/timestamp.c:3841 utils/adt/timestamp.c:3931 +#: utils/adt/timestamp.c:3975 utils/adt/timestamp.c:4078 +#: utils/adt/timestamp.c:4563 utils/adt/timestamp.c:4759 +#: utils/adt/timestamp.c:5086 utils/adt/timestamp.c:5100 +#: utils/adt/timestamp.c:5105 utils/adt/timestamp.c:5119 +#: utils/adt/timestamp.c:5152 utils/adt/timestamp.c:5239 +#: utils/adt/timestamp.c:5280 utils/adt/timestamp.c:5284 +#: utils/adt/timestamp.c:5353 utils/adt/timestamp.c:5357 +#: utils/adt/timestamp.c:5371 utils/adt/timestamp.c:5405 utils/adt/xml.c:2232 #: utils/adt/xml.c:2239 utils/adt/xml.c:2259 utils/adt/xml.c:2266 #, c-format msgid "timestamp out of range" @@ -21796,7 +21927,7 @@ msgid "date out of range for timestamp" msgstr "datum utanför filtigt område för timestamp" -#: utils/adt/date.c:1361 utils/adt/date.c:2131 utils/adt/formatting.c:4387 +#: utils/adt/date.c:1361 utils/adt/date.c:2131 utils/adt/formatting.c:4430 #, c-format msgid "time out of range" msgstr "time utanför giltigt intervall" @@ -21808,9 +21939,9 @@ #: utils/adt/date.c:1933 utils/adt/date.c:2435 utils/adt/float.c:1071 #: utils/adt/float.c:1140 utils/adt/int.c:616 utils/adt/int.c:663 -#: utils/adt/int.c:698 utils/adt/int8.c:492 utils/adt/numeric.c:2197 -#: utils/adt/timestamp.c:3292 utils/adt/timestamp.c:3323 -#: utils/adt/timestamp.c:3354 +#: utils/adt/int.c:698 utils/adt/int8.c:492 utils/adt/numeric.c:2189 +#: utils/adt/timestamp.c:3324 utils/adt/timestamp.c:3355 +#: utils/adt/timestamp.c:3386 #, c-format msgid "invalid preceding or following size in window function" msgstr "ogiltig föregående eller efterföljande storlek i fönsterfunktion" @@ -21830,15 +21961,15 @@ msgid "\"time with time zone\" units \"%s\" not recognized" msgstr "känner inte igen \"time with time zone\" enhet \"%s\"" -#: utils/adt/date.c:2854 utils/adt/datetime.c:906 utils/adt/datetime.c:1813 +#: utils/adt/date.c:2856 utils/adt/datetime.c:906 utils/adt/datetime.c:1813 #: utils/adt/datetime.c:4601 utils/adt/timestamp.c:513 -#: utils/adt/timestamp.c:540 utils/adt/timestamp.c:4129 -#: utils/adt/timestamp.c:5079 utils/adt/timestamp.c:5331 +#: utils/adt/timestamp.c:540 utils/adt/timestamp.c:4161 +#: utils/adt/timestamp.c:5111 utils/adt/timestamp.c:5363 #, c-format msgid "time zone \"%s\" not recognized" msgstr "tidszon \"%s\" känns inte igen" -#: utils/adt/date.c:2886 utils/adt/timestamp.c:5109 utils/adt/timestamp.c:5362 +#: utils/adt/date.c:2888 utils/adt/timestamp.c:5141 utils/adt/timestamp.c:5394 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "intervalltidszonen \"%s\" kan inte inkludera månader eller år" @@ -21873,17 +22004,17 @@ msgid "invalid Datum pointer" msgstr "ogiltigt Datum-pekare" -#: utils/adt/dbsize.c:759 utils/adt/dbsize.c:827 +#: utils/adt/dbsize.c:763 utils/adt/dbsize.c:831 #, c-format msgid "invalid size: \"%s\"" msgstr "ogiltig storlek: \"%s\"" -#: utils/adt/dbsize.c:828 +#: utils/adt/dbsize.c:832 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "Ogiltig storleksenhet: \"%s\"." -#: utils/adt/dbsize.c:829 +#: utils/adt/dbsize.c:833 #, c-format msgid "Valid units are \"bytes\", \"kB\", \"MB\", \"GB\", and \"TB\"." msgstr "Giltiga enheter är \"bytes\", \"kB\", \"MB\", \"GB\" och \"TB\"." @@ -21970,13 +22101,6 @@ msgid "enum %s contains no values" msgstr "enum %s innehåller inga värden" -#: utils/adt/expandedrecord.c:99 utils/adt/expandedrecord.c:231 -#: utils/cache/typcache.c:1632 utils/cache/typcache.c:1788 -#: utils/cache/typcache.c:1918 utils/fmgr/funcapi.c:456 -#, c-format -msgid "type %s is not composite" -msgstr "typen %s är inte composite" - #: utils/adt/float.c:88 #, c-format msgid "value out of range: overflow" @@ -22000,32 +22124,32 @@ #: utils/adt/float.c:1268 utils/adt/float.c:1342 utils/adt/int.c:336 #: utils/adt/int.c:874 utils/adt/int.c:896 utils/adt/int.c:910 #: utils/adt/int.c:924 utils/adt/int.c:956 utils/adt/int.c:1194 -#: utils/adt/int8.c:1313 utils/adt/numeric.c:3553 utils/adt/numeric.c:3562 +#: utils/adt/int8.c:1313 utils/adt/numeric.c:3550 utils/adt/numeric.c:3555 #, c-format msgid "smallint out of range" msgstr "smallint utanför sitt intervall" -#: utils/adt/float.c:1468 utils/adt/numeric.c:8329 +#: utils/adt/float.c:1468 utils/adt/numeric.c:8314 #, c-format msgid "cannot take square root of a negative number" msgstr "kan inte ta kvadratroten av ett negativt tal" -#: utils/adt/float.c:1536 utils/adt/numeric.c:3239 +#: utils/adt/float.c:1536 utils/adt/numeric.c:3240 #, c-format msgid "zero raised to a negative power is undefined" msgstr "noll upphöjt med ett negativt tal är odefinierat" -#: utils/adt/float.c:1540 utils/adt/numeric.c:3245 +#: utils/adt/float.c:1540 utils/adt/numeric.c:9219 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "ett negativt tal upphöjt i en icke-negativ potens ger ett komplext resultat" -#: utils/adt/float.c:1614 utils/adt/float.c:1647 utils/adt/numeric.c:8993 +#: utils/adt/float.c:1614 utils/adt/float.c:1647 utils/adt/numeric.c:8992 #, c-format msgid "cannot take logarithm of zero" msgstr "kan inte ta logartimen av noll" -#: utils/adt/float.c:1618 utils/adt/float.c:1651 utils/adt/numeric.c:8997 +#: utils/adt/float.c:1618 utils/adt/float.c:1651 utils/adt/numeric.c:8996 #, c-format msgid "cannot take logarithm of a negative number" msgstr "kan inte ta logaritmen av ett negativt tal" @@ -22044,12 +22168,12 @@ msgid "setseed parameter %g is out of allowed range [-1,1]" msgstr "setseed-parameter %g är utanför giltigt intervall [-1,1]" -#: utils/adt/float.c:3938 utils/adt/numeric.c:1509 +#: utils/adt/float.c:3938 utils/adt/numeric.c:1501 #, c-format msgid "count must be greater than zero" msgstr "antal måste vara större än noll" -#: utils/adt/float.c:3943 utils/adt/numeric.c:1516 +#: utils/adt/float.c:3943 utils/adt/numeric.c:1508 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "operand, lägre gräns och övre gräns kan inte vara NaN" @@ -22059,7 +22183,7 @@ msgid "lower and upper bounds must be finite" msgstr "lägre och övre gräns måste vara ändliga" -#: utils/adt/float.c:3983 utils/adt/numeric.c:1529 +#: utils/adt/float.c:3983 utils/adt/numeric.c:1521 #, c-format msgid "lower bound cannot equal upper bound" msgstr "lägre gräns kan inte vara samma som övre gräns" @@ -22241,87 +22365,87 @@ msgid "localized string format value too long" msgstr "lokaliserat strängformatvärde är för långt" -#: utils/adt/formatting.c:3300 +#: utils/adt/formatting.c:3343 #, c-format msgid "unmatched format separator \"%c\"" msgstr "ej matchande formatteringsseparator \"%c\"" -#: utils/adt/formatting.c:3361 +#: utils/adt/formatting.c:3404 #, c-format msgid "unmatched format character \"%s\"" msgstr "ej matchande formatteringstecken \"%s\"" -#: utils/adt/formatting.c:3467 utils/adt/formatting.c:3811 +#: utils/adt/formatting.c:3510 utils/adt/formatting.c:3854 #, c-format msgid "formatting field \"%s\" is only supported in to_char" msgstr "formateringsfält \"%s\" stöds bara i to_char" -#: utils/adt/formatting.c:3642 +#: utils/adt/formatting.c:3685 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr "ogiltig indatasträng för \"Y,YYY\"" -#: utils/adt/formatting.c:3728 +#: utils/adt/formatting.c:3771 #, c-format msgid "input string is too short for datetime format" msgstr "indatasträngen är för kort för datetime-formatet" -#: utils/adt/formatting.c:3736 +#: utils/adt/formatting.c:3779 #, c-format msgid "trailing characters remain in input string after datetime format" msgstr "efterföljande tecken finns kvar i indatasträngen efter datetime-formattering" -#: utils/adt/formatting.c:4281 +#: utils/adt/formatting.c:4324 #, c-format msgid "missing time zone in input string for type timestamptz" msgstr "saknar tidszon i indatasträngen för typen timestamptz" -#: utils/adt/formatting.c:4287 +#: utils/adt/formatting.c:4330 #, c-format msgid "timestamptz out of range" msgstr "timestamptz utanför giltigt intervall" -#: utils/adt/formatting.c:4315 +#: utils/adt/formatting.c:4358 #, c-format msgid "datetime format is zoned but not timed" msgstr "datetime-format har zon men inte tid" -#: utils/adt/formatting.c:4367 +#: utils/adt/formatting.c:4410 #, c-format msgid "missing time zone in input string for type timetz" msgstr "saknar tidszon i indatasträng för typ timetz" -#: utils/adt/formatting.c:4373 +#: utils/adt/formatting.c:4416 #, c-format msgid "timetz out of range" msgstr "timetz utanför giltigt intervall" -#: utils/adt/formatting.c:4399 +#: utils/adt/formatting.c:4442 #, c-format msgid "datetime format is not dated and not timed" msgstr "datetime-format har inte datum och inte tid" -#: utils/adt/formatting.c:4532 +#: utils/adt/formatting.c:4575 #, c-format msgid "hour \"%d\" is invalid for the 12-hour clock" msgstr "timmen \"%d\" är ogiltigt för en 12-timmars-klocka" -#: utils/adt/formatting.c:4534 +#: utils/adt/formatting.c:4577 #, c-format msgid "Use the 24-hour clock, or give an hour between 1 and 12." msgstr "Använd en 24-timmars-klocka eller ange en timme mellan 1 och 12." -#: utils/adt/formatting.c:4645 +#: utils/adt/formatting.c:4688 #, c-format msgid "cannot calculate day of year without year information" msgstr "kan inte beräkna dag på året utan årsinformation" -#: utils/adt/formatting.c:5564 +#: utils/adt/formatting.c:5607 #, c-format msgid "\"EEEE\" not supported for input" msgstr "\"EEEE\" stöds inte för indata" -#: utils/adt/formatting.c:5576 +#: utils/adt/formatting.c:5619 #, c-format msgid "\"RN\" not supported for input" msgstr "\"RN\" stöds inte för indata" @@ -22361,7 +22485,7 @@ #: utils/adt/genfile.c:251 #, c-format msgid "must be superuser to read files with adminpack 1.0" -msgstr "måste vara superanvändare för att läsa filer med adminpack 1.0" +msgstr "måste vara superuser för att läsa filer med adminpack 1.0" #: utils/adt/geo_ops.c:979 utils/adt/geo_ops.c:1025 #, c-format @@ -22454,8 +22578,8 @@ msgid "oidvector has too many elements" msgstr "oidvector har för många element" -#: utils/adt/int.c:1510 utils/adt/int8.c:1439 utils/adt/numeric.c:1417 -#: utils/adt/timestamp.c:5424 utils/adt/timestamp.c:5504 +#: utils/adt/int.c:1510 utils/adt/int8.c:1439 utils/adt/numeric.c:1409 +#: utils/adt/timestamp.c:5470 utils/adt/timestamp.c:5564 #, c-format msgid "step size cannot equal zero" msgstr "stegstorleken kan inte vara noll" @@ -22469,8 +22593,8 @@ #: utils/adt/int8.c:1030 utils/adt/int8.c:1044 utils/adt/int8.c:1077 #: utils/adt/int8.c:1091 utils/adt/int8.c:1105 utils/adt/int8.c:1136 #: utils/adt/int8.c:1158 utils/adt/int8.c:1172 utils/adt/int8.c:1186 -#: utils/adt/int8.c:1348 utils/adt/int8.c:1383 utils/adt/numeric.c:3508 -#: utils/adt/varbit.c:1656 +#: utils/adt/int8.c:1348 utils/adt/int8.c:1383 utils/adt/numeric.c:3505 +#: utils/adt/varbit.c:1662 #, c-format msgid "bigint out of range" msgstr "bigint utanför sitt intervall" @@ -22485,7 +22609,7 @@ msgid "key value must be scalar, not array, composite, or json" msgstr "nyckelvärde måste vara skalär, inte array, composite eller json" -#: utils/adt/json.c:892 utils/adt/json.c:902 utils/fmgr/funcapi.c:1812 +#: utils/adt/json.c:892 utils/adt/json.c:902 utils/fmgr/funcapi.c:1813 #, c-format msgid "could not determine data type for argument %d" msgstr "kunde inte lista ut datatypen för argument %d" @@ -22760,47 +22884,42 @@ msgid "cannot delete path in scalar" msgstr "kan inte radera sökväg i skalär" -#: utils/adt/jsonfuncs.c:4776 -#, c-format -msgid "invalid concatenation of jsonb objects" -msgstr "ogiltig sammanslagning av jsonb-objekt" - -#: utils/adt/jsonfuncs.c:4810 +#: utils/adt/jsonfuncs.c:4805 #, c-format msgid "path element at position %d is null" msgstr "sökvägselement vid position %d är null" -#: utils/adt/jsonfuncs.c:4896 +#: utils/adt/jsonfuncs.c:4891 #, c-format msgid "cannot replace existing key" msgstr "kan inte ersätta befintlig nyckel" -#: utils/adt/jsonfuncs.c:4897 +#: utils/adt/jsonfuncs.c:4892 #, c-format msgid "Try using the function jsonb_set to replace key value." msgstr "Försök använda funktionen jsonb_set för att ersätta nyckelvärde." -#: utils/adt/jsonfuncs.c:4979 +#: utils/adt/jsonfuncs.c:4974 #, c-format msgid "path element at position %d is not an integer: \"%s\"" msgstr "sökvägselement vid position %d är inte ett heltal: \"%s\"" -#: utils/adt/jsonfuncs.c:5098 +#: utils/adt/jsonfuncs.c:5093 #, c-format msgid "wrong flag type, only arrays and scalars are allowed" msgstr "fel flaggtyp, bara array:er och skalärer tillåts" -#: utils/adt/jsonfuncs.c:5105 +#: utils/adt/jsonfuncs.c:5100 #, c-format msgid "flag array element is not a string" msgstr "flaggelement i arrayen är inte en sträng" -#: utils/adt/jsonfuncs.c:5106 utils/adt/jsonfuncs.c:5128 +#: utils/adt/jsonfuncs.c:5101 utils/adt/jsonfuncs.c:5123 #, c-format msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\"." msgstr "Möjliga värden är: \"string\", \"numeric\", \"boolean\", \"key\" samt \"all\"." -#: utils/adt/jsonfuncs.c:5126 +#: utils/adt/jsonfuncs.c:5121 #, c-format msgid "wrong flag in flag array: \"%s\"" msgstr "fel flagga i flagg-array: \"%s\"" @@ -22848,7 +22967,7 @@ #: utils/adt/jsonpath_exec.c:763 #, c-format msgid "jsonpath array subscript is out of bounds" -msgstr "jsonpaths array-index är utanför giltigt område" +msgstr "array-index för jsonpath är utanför giltigt område" #: utils/adt/jsonpath_exec.c:820 #, c-format @@ -22918,7 +23037,7 @@ #: utils/adt/jsonpath_exec.c:1960 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" -msgstr "jsonpaths elementmetod .%s() kan bara appliceras på ett objekt" +msgstr "elementmetod .%s() för jsonpath kan bara appliceras på ett objekt" #: utils/adt/jsonpath_exec.c:2143 #, c-format @@ -22928,12 +23047,12 @@ #: utils/adt/jsonpath_exec.c:2407 #, c-format msgid "jsonpath array subscript is not a single numeric value" -msgstr "jsonpaths array-index är inte ett ensamt numeriskt värde" +msgstr "array-index för jsonpath är inte ett ensamt numeriskt värde" #: utils/adt/jsonpath_exec.c:2419 #, c-format msgid "jsonpath array subscript is out of integer range" -msgstr "jsonpaths array-index är utanför giltigt interval för integer" +msgstr "array-index för jsonpath är utanför giltigt interval för integer" #: utils/adt/jsonpath_exec.c:2596 #, c-format @@ -23141,84 +23260,84 @@ msgid "cannot subtract inet values of different sizes" msgstr "kan inte subtrahera inet-värden av olika storlek" -#: utils/adt/numeric.c:827 +#: utils/adt/numeric.c:819 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "ogiltigt tecken i externt \"numric\"-värde" -#: utils/adt/numeric.c:833 +#: utils/adt/numeric.c:825 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "ogiltig skala i externt \"numeric\"-värde" -#: utils/adt/numeric.c:842 +#: utils/adt/numeric.c:834 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "felaktig siffra i externt numeriskt (\"numeric\") värde " -#: utils/adt/numeric.c:1040 utils/adt/numeric.c:1054 +#: utils/adt/numeric.c:1032 utils/adt/numeric.c:1046 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "Precisionen %d för NUMERIC måste vara mellan 1 och %d" -#: utils/adt/numeric.c:1045 +#: utils/adt/numeric.c:1037 #, c-format msgid "NUMERIC scale %d must be between 0 and precision %d" msgstr "Skalan %d för NUMERIC måste vara mellan 0 och precisionen %d" -#: utils/adt/numeric.c:1063 +#: utils/adt/numeric.c:1055 #, c-format msgid "invalid NUMERIC type modifier" msgstr "ogiltig typmodifierare för NUMERIC" -#: utils/adt/numeric.c:1395 +#: utils/adt/numeric.c:1387 #, c-format msgid "start value cannot be NaN" msgstr "startvärde får inte vara NaN" -#: utils/adt/numeric.c:1400 +#: utils/adt/numeric.c:1392 #, c-format msgid "stop value cannot be NaN" msgstr "stoppvärde får inte vara NaN" -#: utils/adt/numeric.c:1410 +#: utils/adt/numeric.c:1402 #, c-format msgid "step size cannot be NaN" msgstr "stegstorlek får inte vara NaN" -#: utils/adt/numeric.c:2958 utils/adt/numeric.c:6064 utils/adt/numeric.c:6522 -#: utils/adt/numeric.c:8802 utils/adt/numeric.c:9240 utils/adt/numeric.c:9354 -#: utils/adt/numeric.c:9427 +#: utils/adt/numeric.c:2957 utils/adt/numeric.c:6060 utils/adt/numeric.c:6507 +#: utils/adt/numeric.c:8789 utils/adt/numeric.c:9276 utils/adt/numeric.c:9402 +#: utils/adt/numeric.c:9475 #, c-format msgid "value overflows numeric format" msgstr "overflow på värde i formatet numeric" -#: utils/adt/numeric.c:3417 +#: utils/adt/numeric.c:3412 #, c-format msgid "cannot convert NaN to integer" msgstr "kan inte konvertera NaN till ett integer" -#: utils/adt/numeric.c:3500 +#: utils/adt/numeric.c:3497 #, c-format msgid "cannot convert NaN to bigint" msgstr "kan inte konvertera NaN till ett bigint" -#: utils/adt/numeric.c:3545 +#: utils/adt/numeric.c:3542 #, c-format msgid "cannot convert NaN to smallint" msgstr "kan inte konvertera NaN till ett smallint" -#: utils/adt/numeric.c:3582 utils/adt/numeric.c:3653 +#: utils/adt/numeric.c:3578 utils/adt/numeric.c:3649 #, c-format msgid "cannot convert infinity to numeric" msgstr "kan inte konvertera oändlighet till numeric" -#: utils/adt/numeric.c:6606 +#: utils/adt/numeric.c:6591 #, c-format msgid "numeric field overflow" msgstr "overflow i numeric-fält" -#: utils/adt/numeric.c:6607 +#: utils/adt/numeric.c:6592 #, c-format msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d." msgstr "Ett fält med precision %d, skala %d måste avrundas till ett absolut värde mindre än %s%d." @@ -23290,7 +23409,7 @@ msgstr "jämförelser (collation) med olika collate- och ctype-värden stöds inte av ICU" #: utils/adt/pg_locale.c:1609 utils/adt/pg_locale.c:1696 -#: utils/adt/pg_locale.c:1969 +#: utils/adt/pg_locale.c:1981 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "kunde inte öppna jämförelse för lokal \"%s\": %s" @@ -23325,33 +23444,33 @@ msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version." msgstr "Bygg om alla objekt som påverkas av denna jämförelse (collation) och kör ALTER COLLATION %s REFRESH VERSION eller bygg PostgreSQL med rätt bibliotekversion." -#: utils/adt/pg_locale.c:1747 +#: utils/adt/pg_locale.c:1758 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "kunde inte hitta jämförelseversion (collation) för lokal \"%s\": felkod %lu" -#: utils/adt/pg_locale.c:1784 +#: utils/adt/pg_locale.c:1796 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "kodning \"%s\" stöds inte av ICU" -#: utils/adt/pg_locale.c:1791 +#: utils/adt/pg_locale.c:1803 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "kunde inte öppna ICU-konverterare för kodning \"%s\": %s" -#: utils/adt/pg_locale.c:1822 utils/adt/pg_locale.c:1831 -#: utils/adt/pg_locale.c:1860 utils/adt/pg_locale.c:1870 +#: utils/adt/pg_locale.c:1834 utils/adt/pg_locale.c:1843 +#: utils/adt/pg_locale.c:1872 utils/adt/pg_locale.c:1882 #, c-format msgid "%s failed: %s" msgstr "%s misslyckades: %s" -#: utils/adt/pg_locale.c:2142 +#: utils/adt/pg_locale.c:2154 #, c-format msgid "invalid multibyte character for locale" msgstr "ogiltigt multibyte-tecken för lokalen" -#: utils/adt/pg_locale.c:2143 +#: utils/adt/pg_locale.c:2155 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "Serverns LC_CTYPE-lokal är troligen inkompatibel med databasens teckenkodning." @@ -23446,7 +23565,7 @@ msgid "Junk after right parenthesis or bracket." msgstr "Skräp efter höger parentes eller hakparentes." -#: utils/adt/regexp.c:289 utils/adt/regexp.c:1543 utils/adt/varlena.c:4493 +#: utils/adt/regexp.c:289 utils/adt/regexp.c:1543 utils/adt/varlena.c:4511 #, c-format msgid "regular expression failed: %s" msgstr "reguljärt uttryck misslyckades: %s" @@ -23488,7 +23607,7 @@ msgstr "mer än en operator med namn %s" #: utils/adt/regproc.c:697 utils/adt/regproc.c:738 utils/adt/regproc.c:2018 -#: utils/adt/ruleutils.c:9297 utils/adt/ruleutils.c:9466 +#: utils/adt/ruleutils.c:9314 utils/adt/ruleutils.c:9483 #, c-format msgid "too many arguments" msgstr "för många argument" @@ -23500,7 +23619,7 @@ #: utils/adt/regproc.c:1602 utils/adt/regproc.c:1626 utils/adt/regproc.c:1727 #: utils/adt/regproc.c:1751 utils/adt/regproc.c:1853 utils/adt/regproc.c:1858 -#: utils/adt/varlena.c:3642 utils/adt/varlena.c:3647 +#: utils/adt/varlena.c:3660 utils/adt/varlena.c:3665 #, c-format msgid "invalid name syntax" msgstr "ogiltig namnsyntax" @@ -23526,7 +23645,7 @@ msgstr "olämpligt typnamn" #: utils/adt/ri_triggers.c:296 utils/adt/ri_triggers.c:1537 -#: utils/adt/ri_triggers.c:2470 +#: utils/adt/ri_triggers.c:2467 #, c-format msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\"" msgstr "insert eller update på tabell \"%s\" bryter mot främmande nyckel-villkoret \"%s\"" @@ -23561,42 +23680,42 @@ msgid "Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT." msgstr "Ta bort denna utlösare för referensiell integritet och dess kollegor, gör sen ALTER TABLE ADD CONSTRAINT." -#: utils/adt/ri_triggers.c:2295 +#: utils/adt/ri_triggers.c:2292 #, c-format msgid "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave unexpected result" msgstr "referentiell integritetsfråga på \"%s\" från villkor \"%s\" på \"%s\" gav oväntat resultat" -#: utils/adt/ri_triggers.c:2299 +#: utils/adt/ri_triggers.c:2296 #, c-format msgid "This is most likely due to a rule having rewritten the query." msgstr "Detta beror troligen på att en regel har skrivit om frågan." -#: utils/adt/ri_triggers.c:2460 +#: utils/adt/ri_triggers.c:2457 #, c-format msgid "removing partition \"%s\" violates foreign key constraint \"%s\"" msgstr "borttagning av partition \"%s\" bryter mot främmande nyckel-villkoret \"%s\"" -#: utils/adt/ri_triggers.c:2463 utils/adt/ri_triggers.c:2488 +#: utils/adt/ri_triggers.c:2460 utils/adt/ri_triggers.c:2485 #, c-format msgid "Key (%s)=(%s) is still referenced from table \"%s\"." msgstr "Nyckeln (%s)=(%s) refereras fortfarande till från tabell \"%s\"." -#: utils/adt/ri_triggers.c:2474 +#: utils/adt/ri_triggers.c:2471 #, c-format msgid "Key (%s)=(%s) is not present in table \"%s\"." msgstr "Nyckel (%s)=(%s) finns inte i tabellen \"%s\"." -#: utils/adt/ri_triggers.c:2477 +#: utils/adt/ri_triggers.c:2474 #, c-format msgid "Key is not present in table \"%s\"." msgstr "Nyckeln finns inte i tabellen \"%s\"." -#: utils/adt/ri_triggers.c:2483 +#: utils/adt/ri_triggers.c:2480 #, c-format msgid "update or delete on table \"%s\" violates foreign key constraint \"%s\" on table \"%s\"" msgstr "update eller delete på tabell \"%s\" bryter mot främmande nyckel-villkoret \"%s\" för tabell \"%s\"" -#: utils/adt/ri_triggers.c:2491 +#: utils/adt/ri_triggers.c:2488 #, c-format msgid "Key is still referenced from table \"%s\"." msgstr "Nyckel refereras fortfarande till från tabell \"%s\"." @@ -23659,7 +23778,7 @@ msgid "cannot compare record types with different numbers of columns" msgstr "kan inte jämföra record-typer med olika antal kolumner" -#: utils/adt/ruleutils.c:4821 +#: utils/adt/ruleutils.c:4824 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "regel \"%s\" har en icke stödd händelsetyp %d" @@ -23674,7 +23793,7 @@ msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "precision för TIMESTAMP(%d)%s reducerad till högsta tillåtna, %d" -#: utils/adt/timestamp.c:176 utils/adt/timestamp.c:434 utils/misc/guc.c:11929 +#: utils/adt/timestamp.c:176 utils/adt/timestamp.c:434 utils/misc/guc.c:11953 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestamp utanför giltigt intervall: \"%s\"" @@ -23711,14 +23830,14 @@ msgstr "timestamp utanför giltigt intervall: \"%g\"" #: utils/adt/timestamp.c:935 utils/adt/timestamp.c:1509 -#: utils/adt/timestamp.c:1944 utils/adt/timestamp.c:3021 -#: utils/adt/timestamp.c:3026 utils/adt/timestamp.c:3031 -#: utils/adt/timestamp.c:3081 utils/adt/timestamp.c:3088 -#: utils/adt/timestamp.c:3095 utils/adt/timestamp.c:3115 -#: utils/adt/timestamp.c:3122 utils/adt/timestamp.c:3129 -#: utils/adt/timestamp.c:3159 utils/adt/timestamp.c:3167 -#: utils/adt/timestamp.c:3211 utils/adt/timestamp.c:3638 -#: utils/adt/timestamp.c:3763 utils/adt/timestamp.c:4223 +#: utils/adt/timestamp.c:1976 utils/adt/timestamp.c:3053 +#: utils/adt/timestamp.c:3058 utils/adt/timestamp.c:3063 +#: utils/adt/timestamp.c:3113 utils/adt/timestamp.c:3120 +#: utils/adt/timestamp.c:3127 utils/adt/timestamp.c:3147 +#: utils/adt/timestamp.c:3154 utils/adt/timestamp.c:3161 +#: utils/adt/timestamp.c:3191 utils/adt/timestamp.c:3199 +#: utils/adt/timestamp.c:3243 utils/adt/timestamp.c:3670 +#: utils/adt/timestamp.c:3795 utils/adt/timestamp.c:4255 #, c-format msgid "interval out of range" msgstr "interval utanför giltigt intervall" @@ -23743,50 +23862,60 @@ msgid "interval(%d) precision must be between %d and %d" msgstr "interval(%d)-precision måste vara mellan %d och %d" -#: utils/adt/timestamp.c:2622 +#: utils/adt/timestamp.c:2654 #, c-format msgid "cannot subtract infinite timestamps" msgstr "kan inte subtrahera oändliga tider (timestamp)" -#: utils/adt/timestamp.c:3891 utils/adt/timestamp.c:4484 -#: utils/adt/timestamp.c:4646 utils/adt/timestamp.c:4667 +#: utils/adt/timestamp.c:3923 utils/adt/timestamp.c:4516 +#: utils/adt/timestamp.c:4678 utils/adt/timestamp.c:4699 #, c-format msgid "timestamp units \"%s\" not supported" msgstr "timestamp-enhet \"%s\" stöds inte" -#: utils/adt/timestamp.c:3905 utils/adt/timestamp.c:4438 -#: utils/adt/timestamp.c:4677 +#: utils/adt/timestamp.c:3937 utils/adt/timestamp.c:4470 +#: utils/adt/timestamp.c:4709 #, c-format msgid "timestamp units \"%s\" not recognized" msgstr "timestamp-enhet \"%s\" känns inte igen" -#: utils/adt/timestamp.c:4035 utils/adt/timestamp.c:4479 -#: utils/adt/timestamp.c:4842 utils/adt/timestamp.c:4864 +#: utils/adt/timestamp.c:4067 utils/adt/timestamp.c:4511 +#: utils/adt/timestamp.c:4874 utils/adt/timestamp.c:4896 #, c-format msgid "timestamp with time zone units \"%s\" not supported" msgstr "timestamp with time zone, enhet \"%s\" stöds inte" -#: utils/adt/timestamp.c:4052 utils/adt/timestamp.c:4433 -#: utils/adt/timestamp.c:4873 +#: utils/adt/timestamp.c:4084 utils/adt/timestamp.c:4465 +#: utils/adt/timestamp.c:4905 #, c-format msgid "timestamp with time zone units \"%s\" not recognized" msgstr "timestamp with time zone, enhet \"%s\" känns inte igen" -#: utils/adt/timestamp.c:4210 +#: utils/adt/timestamp.c:4242 #, c-format msgid "interval units \"%s\" not supported because months usually have fractional weeks" msgstr "intervallenhet \"%s\" stöds inte då månader typiskt har veckor på bråkform" -#: utils/adt/timestamp.c:4216 utils/adt/timestamp.c:4967 +#: utils/adt/timestamp.c:4248 utils/adt/timestamp.c:4999 #, c-format msgid "interval units \"%s\" not supported" msgstr "intervallenhet \"%s\" stöds inte" -#: utils/adt/timestamp.c:4232 utils/adt/timestamp.c:4990 +#: utils/adt/timestamp.c:4264 utils/adt/timestamp.c:5022 #, c-format msgid "interval units \"%s\" not recognized" msgstr "intervallenhet \"%s\" känns inte igen" +#: utils/adt/timestamp.c:5434 utils/adt/timestamp.c:5528 +#, c-format +msgid "start value cannot be infinity" +msgstr "startvärde får inte vara oändligt" + +#: utils/adt/timestamp.c:5439 utils/adt/timestamp.c:5533 +#, c-format +msgid "stop value cannot be infinity" +msgstr "stoppvärde får inte vara oändligt" + #: utils/adt/trigfuncs.c:42 #, c-format msgid "suppress_redundant_updates_trigger: must be called as trigger" @@ -23812,10 +23941,10 @@ msgid "gtsvector_in not implemented" msgstr "gtsvector_in är inte implementerad" -#: utils/adt/tsquery.c:200 +#: utils/adt/tsquery.c:200 utils/adt/tsquery_op.c:124 #, c-format -msgid "distance in phrase operator should not be greater than %d" -msgstr "distans i frasoperator skall inte vara större än %d" +msgid "distance in phrase operator must be an integer value between zero and %d inclusive" +msgstr "distans i frasoperator måste vara ett heltalsvärde mellan noll och %d, inklusive" #: utils/adt/tsquery.c:310 utils/adt/tsquery.c:725 #: utils/adt/tsvector_parser.c:133 @@ -23858,11 +23987,6 @@ msgid "text-search query contains only stop words or doesn't contain lexemes, ignored" msgstr "textsökfråga innehåller bara stoppord eller innehåller inga lexem, hoppar över" -#: utils/adt/tsquery_op.c:124 -#, c-format -msgid "distance in phrase operator should be non-negative and less than %d" -msgstr "distans i frasoperator skall vara icke-negativ och mindre än %d" - #: utils/adt/tsquery_rewrite.c:321 #, c-format msgid "ts_rewrite query must return two tsquery columns" @@ -23914,42 +24038,42 @@ msgid "unrecognized weight: \"%c\"" msgstr "okänd vikt: \"%c\"" -#: utils/adt/tsvector_op.c:2414 +#: utils/adt/tsvector_op.c:2426 #, c-format msgid "ts_stat query must return one tsvector column" msgstr "ts_stat-frågan måste returnera en tsvector-kolumn" -#: utils/adt/tsvector_op.c:2603 +#: utils/adt/tsvector_op.c:2615 #, c-format msgid "tsvector column \"%s\" does not exist" msgstr "tsvector-kolumnen \"%s\" existerar inte" -#: utils/adt/tsvector_op.c:2610 +#: utils/adt/tsvector_op.c:2622 #, c-format msgid "column \"%s\" is not of tsvector type" msgstr "kolumnen \"%s\" är inte av typen tsvector" -#: utils/adt/tsvector_op.c:2622 +#: utils/adt/tsvector_op.c:2634 #, c-format msgid "configuration column \"%s\" does not exist" msgstr "konfigurationskolumnen \"%s\" existerar inte" -#: utils/adt/tsvector_op.c:2628 +#: utils/adt/tsvector_op.c:2640 #, c-format msgid "column \"%s\" is not of regconfig type" msgstr "kolumn \"%s\" har inte regconfig-typ" -#: utils/adt/tsvector_op.c:2635 +#: utils/adt/tsvector_op.c:2647 #, c-format msgid "configuration column \"%s\" must not be null" msgstr "konfigurationskolumn \"%s\" får inte vara null" -#: utils/adt/tsvector_op.c:2648 +#: utils/adt/tsvector_op.c:2660 #, c-format msgid "text search configuration name \"%s\" must be schema-qualified" msgstr "Textsökkonfigurationsnamn \"%s\" måste vara angivet med schema" -#: utils/adt/tsvector_op.c:2673 +#: utils/adt/tsvector_op.c:2685 #, c-format msgid "column \"%s\" is not of a character type" msgstr "kolumnen \"%s\" är inte av typen character" @@ -24014,34 +24138,34 @@ msgid "bit string too long for type bit varying(%d)" msgstr "bitsträngen för lång för typen bit varying(%d)" -#: utils/adt/varbit.c:1086 utils/adt/varbit.c:1184 utils/adt/varlena.c:875 -#: utils/adt/varlena.c:939 utils/adt/varlena.c:1083 utils/adt/varlena.c:3306 -#: utils/adt/varlena.c:3373 +#: utils/adt/varbit.c:1080 utils/adt/varbit.c:1190 utils/adt/varlena.c:873 +#: utils/adt/varlena.c:936 utils/adt/varlena.c:1093 utils/adt/varlena.c:3313 +#: utils/adt/varlena.c:3391 #, c-format msgid "negative substring length not allowed" msgstr "negativ substräng-läng tillåts inte" -#: utils/adt/varbit.c:1241 +#: utils/adt/varbit.c:1247 #, c-format msgid "cannot AND bit strings of different sizes" msgstr "kan inte AND:a bitsträngar av olika storlek" -#: utils/adt/varbit.c:1282 +#: utils/adt/varbit.c:1288 #, c-format msgid "cannot OR bit strings of different sizes" msgstr "kan inte OR:a bitsträngar av olika storlek" -#: utils/adt/varbit.c:1322 +#: utils/adt/varbit.c:1328 #, c-format msgid "cannot XOR bit strings of different sizes" msgstr "kan inte XOR:a bitsträngar av olika storlek" -#: utils/adt/varbit.c:1804 utils/adt/varbit.c:1862 +#: utils/adt/varbit.c:1810 utils/adt/varbit.c:1868 #, c-format msgid "bit index %d out of valid range (0..%d)" msgstr "bitindex %d utanför giltigt intervall (0..%d)" -#: utils/adt/varbit.c:1813 utils/adt/varlena.c:3566 +#: utils/adt/varbit.c:1819 utils/adt/varlena.c:3584 #, c-format msgid "new bit must be 0 or 1" msgstr "nya biten måste vara 0 eller 1" @@ -24056,97 +24180,97 @@ msgid "value too long for type character varying(%d)" msgstr "värdet för långt för typen character varying(%d)" -#: utils/adt/varchar.c:732 utils/adt/varlena.c:1475 +#: utils/adt/varchar.c:732 utils/adt/varlena.c:1485 #, c-format msgid "could not determine which collation to use for string comparison" msgstr "kunde inte bestämma vilken jämförelse (collation) som skall användas för strängjämförelse" -#: utils/adt/varlena.c:1182 utils/adt/varlena.c:1915 +#: utils/adt/varlena.c:1192 utils/adt/varlena.c:1925 #, c-format msgid "nondeterministic collations are not supported for substring searches" msgstr "ickedeterministiska jämförelser (collation) stöds inte för substrängsökningar" -#: utils/adt/varlena.c:1574 utils/adt/varlena.c:1587 +#: utils/adt/varlena.c:1584 utils/adt/varlena.c:1597 #, c-format msgid "could not convert string to UTF-16: error code %lu" msgstr "kunde inte konvertera sträng till UTF-16: felkod %lu" -#: utils/adt/varlena.c:1602 +#: utils/adt/varlena.c:1612 #, c-format msgid "could not compare Unicode strings: %m" msgstr "kunde inte jämföra Unicode-strängar: %m" -#: utils/adt/varlena.c:1653 utils/adt/varlena.c:2367 +#: utils/adt/varlena.c:1663 utils/adt/varlena.c:2377 #, c-format msgid "collation failed: %s" msgstr "jämförelse misslyckades: %s" -#: utils/adt/varlena.c:2575 +#: utils/adt/varlena.c:2585 #, c-format msgid "sort key generation failed: %s" msgstr "generering av sorteringsnyckel misslyckades: %s" -#: utils/adt/varlena.c:3450 utils/adt/varlena.c:3517 +#: utils/adt/varlena.c:3468 utils/adt/varlena.c:3535 #, c-format msgid "index %d out of valid range, 0..%d" msgstr "index %d utanför giltigt intervall, 0..%d" -#: utils/adt/varlena.c:3481 utils/adt/varlena.c:3553 +#: utils/adt/varlena.c:3499 utils/adt/varlena.c:3571 #, c-format msgid "index %lld out of valid range, 0..%lld" msgstr "index %lld utanför giltigt intervall, 0..%lld" -#: utils/adt/varlena.c:4590 +#: utils/adt/varlena.c:4608 #, c-format msgid "field position must be greater than zero" msgstr "fältpositionen måste vara större än noll" -#: utils/adt/varlena.c:5456 +#: utils/adt/varlena.c:5474 #, c-format msgid "unterminated format() type specifier" msgstr "icketerminerad typangivelse för format()" -#: utils/adt/varlena.c:5457 utils/adt/varlena.c:5591 utils/adt/varlena.c:5712 +#: utils/adt/varlena.c:5475 utils/adt/varlena.c:5609 utils/adt/varlena.c:5730 #, c-format msgid "For a single \"%%\" use \"%%%%\"." msgstr "För ett ensamt \"%%\" använd \"%%%%\"." -#: utils/adt/varlena.c:5589 utils/adt/varlena.c:5710 +#: utils/adt/varlena.c:5607 utils/adt/varlena.c:5728 #, c-format msgid "unrecognized format() type specifier \"%c\"" msgstr "okänd typspecifierare \"%c\" för format()" -#: utils/adt/varlena.c:5602 utils/adt/varlena.c:5659 +#: utils/adt/varlena.c:5620 utils/adt/varlena.c:5677 #, c-format msgid "too few arguments for format()" msgstr "för få argument till format()" -#: utils/adt/varlena.c:5755 utils/adt/varlena.c:5937 +#: utils/adt/varlena.c:5773 utils/adt/varlena.c:5955 #, c-format msgid "number is out of range" msgstr "numret är utanför giltigt intervall" -#: utils/adt/varlena.c:5818 utils/adt/varlena.c:5846 +#: utils/adt/varlena.c:5836 utils/adt/varlena.c:5864 #, c-format msgid "format specifies argument 0, but arguments are numbered from 1" msgstr "formatet anger argument 0 men argumenten är numrerade från 1" -#: utils/adt/varlena.c:5839 +#: utils/adt/varlena.c:5857 #, c-format msgid "width argument position must be ended by \"$\"" msgstr "argumentposition för bredd måste avslutas med \"$\"" -#: utils/adt/varlena.c:5884 +#: utils/adt/varlena.c:5902 #, c-format msgid "null values cannot be formatted as an SQL identifier" msgstr "null-värden kan inte formatteras som SQL-identifierare" -#: utils/adt/varlena.c:6010 +#: utils/adt/varlena.c:6028 #, c-format msgid "Unicode normalization can only be performed if server encoding is UTF8" msgstr "Unicode-normalisering kan bara utföras om server-kodningen är UTF8" -#: utils/adt/varlena.c:6023 +#: utils/adt/varlena.c:6041 #, c-format msgid "invalid normalization form: %s" msgstr "ogiltigt normaliseringsform: %s" @@ -24330,23 +24454,23 @@ msgid "more than one value returned by column XPath expression" msgstr "mer än ett värde returnerades från kolumns XPath-uttryck" -#: utils/cache/lsyscache.c:1015 +#: utils/cache/lsyscache.c:1042 #, c-format msgid "cast from type %s to type %s does not exist" msgstr "typomvandling från typ %s till typ %s finns inte" -#: utils/cache/lsyscache.c:2764 utils/cache/lsyscache.c:2797 -#: utils/cache/lsyscache.c:2830 utils/cache/lsyscache.c:2863 +#: utils/cache/lsyscache.c:2791 utils/cache/lsyscache.c:2824 +#: utils/cache/lsyscache.c:2857 utils/cache/lsyscache.c:2890 #, c-format msgid "type %s is only a shell" msgstr "typ %s är bara en shell-typ" -#: utils/cache/lsyscache.c:2769 +#: utils/cache/lsyscache.c:2796 #, c-format msgid "no input function available for type %s" msgstr "ingen inläsningsfunktion finns för typ %s" -#: utils/cache/lsyscache.c:2802 +#: utils/cache/lsyscache.c:2829 #, c-format msgid "no output function available for type %s" msgstr "ingen utmatningsfunktion finns för typ %s" @@ -24361,17 +24485,17 @@ msgid "cached plan must not change result type" msgstr "cache:ad plan får inte ändra resultattyp" -#: utils/cache/relcache.c:6078 +#: utils/cache/relcache.c:6204 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "kunde inte skapa initieringsfil \"%s\" för relations-cache: %m" -#: utils/cache/relcache.c:6080 +#: utils/cache/relcache.c:6206 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Fortsätter ändå, trots att något är fel." -#: utils/cache/relcache.c:6402 +#: utils/cache/relcache.c:6528 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "kunde inte ta bort cache-fil \"%s\": %m" @@ -24381,12 +24505,12 @@ msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "kan inte göra PREPARE på en transaktion som ändrat relationsmappningen" -#: utils/cache/relmapper.c:761 +#: utils/cache/relmapper.c:767 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "relationsmappningsfilen \"%s\" innehåller ogiltig data" -#: utils/cache/relmapper.c:771 +#: utils/cache/relmapper.c:777 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "relationsmappningsfilen \"%s\" innehåller en felaktig checksumma" @@ -24615,353 +24739,356 @@ msgid "could not determine actual result type for function \"%s\" declared to return type %s" msgstr "kunde inte bestämma resultattyp för funktion \"%s\" som deklarerats att returnera typ %s" -#: utils/fmgr/funcapi.c:1651 utils/fmgr/funcapi.c:1683 +#: utils/fmgr/funcapi.c:1652 utils/fmgr/funcapi.c:1684 #, c-format msgid "number of aliases does not match number of columns" msgstr "antalet alias matchar inte antalet kolumner" -#: utils/fmgr/funcapi.c:1677 +#: utils/fmgr/funcapi.c:1678 #, c-format msgid "no column alias was provided" msgstr "inget kolumnalias angivet" -#: utils/fmgr/funcapi.c:1701 +#: utils/fmgr/funcapi.c:1702 #, c-format msgid "could not determine row description for function returning record" msgstr "kunde inte få radbeskrivning för funktion som returnerar en record" -#: utils/init/miscinit.c:285 +#: utils/init/miscinit.c:284 #, c-format msgid "data directory \"%s\" does not exist" msgstr "databaskatalogen \"%s\" existerar inte" -#: utils/init/miscinit.c:290 +#: utils/init/miscinit.c:289 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "kunde inte läsa rättigheter på katalog \"%s\": %m" -#: utils/init/miscinit.c:298 +#: utils/init/miscinit.c:297 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "angiven datakatalog \"%s\" är inte en katalog" -#: utils/init/miscinit.c:314 +#: utils/init/miscinit.c:313 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "datakatalogen \"%s\" har fel ägare" -#: utils/init/miscinit.c:316 +#: utils/init/miscinit.c:315 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "Servern måste startas av den användare som äger datakatalogen." -#: utils/init/miscinit.c:334 +#: utils/init/miscinit.c:333 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "datakatalogen \"%s\" har felaktiga rättigheter" -#: utils/init/miscinit.c:336 +#: utils/init/miscinit.c:335 #, c-format msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "Rättigheterna skall vara u=rwx (0700) eller u=rwx,g=rx (0750)." -#: utils/init/miscinit.c:615 utils/misc/guc.c:7139 +#: utils/init/miscinit.c:614 utils/misc/guc.c:7139 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "kan inte sätta parameter \"%s\" från en säkerhetsbegränsad operation" -#: utils/init/miscinit.c:683 +#: utils/init/miscinit.c:682 #, c-format msgid "role with OID %u does not exist" msgstr "roll med OID %u existerar inte" -#: utils/init/miscinit.c:713 +#: utils/init/miscinit.c:712 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "roll \"%s\" tillåts inte logga in" -#: utils/init/miscinit.c:731 +#: utils/init/miscinit.c:730 #, c-format msgid "too many connections for role \"%s\"" msgstr "för många uppkopplingar för roll \"%s\"" -#: utils/init/miscinit.c:791 +#: utils/init/miscinit.c:790 #, c-format msgid "permission denied to set session authorization" msgstr "rättighet saknas för att sätta sessionsauktorisation" -#: utils/init/miscinit.c:874 +#: utils/init/miscinit.c:873 #, c-format msgid "invalid role OID: %u" msgstr "ogiltigt roll-OID: %u" -#: utils/init/miscinit.c:928 +#: utils/init/miscinit.c:927 #, c-format msgid "database system is shut down" msgstr "databassystemet är nedstängt" -#: utils/init/miscinit.c:1015 +#: utils/init/miscinit.c:1014 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "kan inte skapa låsfil \"%s\": %m" -#: utils/init/miscinit.c:1029 +#: utils/init/miscinit.c:1028 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "kunde inte öppna låsfil \"%s\": %m" -#: utils/init/miscinit.c:1036 +#: utils/init/miscinit.c:1035 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "kunde inte läsa låsfil \"%s\": %m" -#: utils/init/miscinit.c:1045 +#: utils/init/miscinit.c:1044 #, c-format msgid "lock file \"%s\" is empty" msgstr "låsfilen \"%s\" är tom" -#: utils/init/miscinit.c:1046 +#: utils/init/miscinit.c:1045 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "Antingen startar en annan server eller så är låsfilen kvar från en tidigare serverkrash vid uppstart." -#: utils/init/miscinit.c:1090 +#: utils/init/miscinit.c:1089 #, c-format msgid "lock file \"%s\" already exists" msgstr "låsfil med namn \"%s\" finns redan" -#: utils/init/miscinit.c:1094 +#: utils/init/miscinit.c:1093 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "Kör en annan postgres (PID %d) i datakatalogen \"%s\"?" -#: utils/init/miscinit.c:1096 +#: utils/init/miscinit.c:1095 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "Kör en annan postmaster (PID %d) i datakatalogen \"%s\"?" -#: utils/init/miscinit.c:1099 +#: utils/init/miscinit.c:1098 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Använder en annan postgres (PID %d) uttagesfilen (socket) \"%s\"?" -#: utils/init/miscinit.c:1101 +#: utils/init/miscinit.c:1100 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Använder en annan postmaster (PID %d) uttagesfilen (socket) \"%s\"?" -#: utils/init/miscinit.c:1152 +#: utils/init/miscinit.c:1151 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "kunde inte ta bort gammal låsfil \"%s\": %m" -#: utils/init/miscinit.c:1154 +#: utils/init/miscinit.c:1153 #, c-format msgid "The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again." msgstr "Filen verkar ha lämnats kvar av misstag, men kan inte tas bort. Ta bort den för hand och försök igen.>" -#: utils/init/miscinit.c:1191 utils/init/miscinit.c:1205 -#: utils/init/miscinit.c:1216 +#: utils/init/miscinit.c:1190 utils/init/miscinit.c:1204 +#: utils/init/miscinit.c:1215 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "kunde inte skriva låsfil \"%s\": %m" -#: utils/init/miscinit.c:1327 utils/init/miscinit.c:1469 utils/misc/guc.c:10066 +#: utils/init/miscinit.c:1326 utils/init/miscinit.c:1468 utils/misc/guc.c:10066 #, c-format msgid "could not read from file \"%s\": %m" msgstr "kunde inte läsa från fil \"%s\": %m" -#: utils/init/miscinit.c:1457 +#: utils/init/miscinit.c:1456 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "kunde inte öppna fil \"%s\": %m: fortsätter ändå" -#: utils/init/miscinit.c:1482 +#: utils/init/miscinit.c:1481 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "låsfil \"%s\" innehåller fel PID: %ld istället för %ld" -#: utils/init/miscinit.c:1521 utils/init/miscinit.c:1537 +#: utils/init/miscinit.c:1520 utils/init/miscinit.c:1536 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\" är inte en giltigt datakatalog" -#: utils/init/miscinit.c:1523 +#: utils/init/miscinit.c:1522 #, c-format msgid "File \"%s\" is missing." msgstr "Filen \"%s\" saknas." -#: utils/init/miscinit.c:1539 +#: utils/init/miscinit.c:1538 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Filen \"%s\" innehåller inte giltig data." -#: utils/init/miscinit.c:1541 +#: utils/init/miscinit.c:1540 #, c-format msgid "You might need to initdb." msgstr "Du kan behöva köra initdb." -#: utils/init/miscinit.c:1549 +#: utils/init/miscinit.c:1548 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "Datakatalogen har skapats av PostgreSQL version %s, som inte är kompatibel med version %s." -#: utils/init/miscinit.c:1616 +#: utils/init/miscinit.c:1615 #, c-format msgid "loaded library \"%s\"" msgstr "laddat bibliotek \"%s\"" -#: utils/init/postinit.c:255 +#: utils/init/postinit.c:253 #, c-format -msgid "replication connection authorized: user=%s application_name=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" -msgstr "replikeringsanslutning auktoriserad: användare=%s application_name=%s SSL påslagen (protokoll=%s, krypto=%s, bitar=%d, komprimering=%s)" +msgid "replication connection authorized: user=%s" +msgstr "replikeringsanslutning auktoriserad: användare=%s" -#: utils/init/postinit.c:261 utils/init/postinit.c:267 -#: utils/init/postinit.c:289 utils/init/postinit.c:295 -msgid "off" -msgstr "av" +#: utils/init/postinit.c:256 +#, c-format +msgid "connection authorized: user=%s" +msgstr "anslutning auktoriserad: användare=%s" -#: utils/init/postinit.c:261 utils/init/postinit.c:267 -#: utils/init/postinit.c:289 utils/init/postinit.c:295 -msgid "on" -msgstr "på" +#: utils/init/postinit.c:259 +#, c-format +msgid " database=%s" +msgstr "databas=%s" #: utils/init/postinit.c:262 #, c-format -msgid "replication connection authorized: user=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" -msgstr "replikeringsanslutning auktoriserad: användare=%s SSL påslagen (protokoll=%s, krypto=%s, bitar=%d, komprimering=%s)" +msgid " application_name=%s" +msgstr " applikationsnamn=%s" -#: utils/init/postinit.c:272 +#: utils/init/postinit.c:267 #, c-format -msgid "replication connection authorized: user=%s application_name=%s" -msgstr "replikeringsanslutning auktoriserad: användare=%s application_name=%s" +msgid " SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" +msgstr "SSL påslagen (protokoll=%s, krypto=%s, bitar=%d, komprimering=%s)" -#: utils/init/postinit.c:275 -#, c-format -msgid "replication connection authorized: user=%s" -msgstr "replikeringsanslutning auktoriserad: användare=%s" +#: utils/init/postinit.c:271 +msgid "off" +msgstr "av" -#: utils/init/postinit.c:284 -#, c-format -msgid "connection authorized: user=%s database=%s application_name=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" -msgstr "anslutning auktoriserad: användare=%s databas=%s application_name=%s SSL påslagen (protokoll=%s, krypto=%s, bitar=%d, komprimering=%s)" +#: utils/init/postinit.c:271 +msgid "on" +msgstr "på" -#: utils/init/postinit.c:290 +#: utils/init/postinit.c:280 #, c-format -msgid "connection authorized: user=%s database=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)" -msgstr "anslutning auktoriserad: användare=%s databas=%s SSL påslagen (protokoll=%s, krypto=%s, bitar=%d, komprimering=%s)" +msgid " GSS (authenticated=%s, encrypted=%s, principal=%s)" +msgstr " GSS (autentiserad=%s, krypterad=%s, principal=%s)" -#: utils/init/postinit.c:300 -#, c-format -msgid "connection authorized: user=%s database=%s application_name=%s" -msgstr "anslutning auktoriserad: användare=%s databas=%s application_name=%s" +#: utils/init/postinit.c:281 utils/init/postinit.c:282 +#: utils/init/postinit.c:287 utils/init/postinit.c:288 +msgid "no" +msgstr "nej" + +#: utils/init/postinit.c:281 utils/init/postinit.c:282 +#: utils/init/postinit.c:287 utils/init/postinit.c:288 +msgid "yes" +msgstr "ja" -#: utils/init/postinit.c:302 +#: utils/init/postinit.c:286 #, c-format -msgid "connection authorized: user=%s database=%s" -msgstr "anslutning auktoriserad: användare=%s databas=%s" +msgid " GSS (authenticated=%s, encrypted=%s)" +msgstr "GSS (autentiserad=%s, krypterad=%s)" -#: utils/init/postinit.c:334 +#: utils/init/postinit.c:323 #, c-format msgid "database \"%s\" has disappeared from pg_database" msgstr "databasen \"%s\" har försvunnit från pg_database" -#: utils/init/postinit.c:336 +#: utils/init/postinit.c:325 #, c-format msgid "Database OID %u now seems to belong to \"%s\"." msgstr "Databasen med OID %u verkar nu höra till \"%s\"." -#: utils/init/postinit.c:356 +#: utils/init/postinit.c:345 #, c-format msgid "database \"%s\" is not currently accepting connections" msgstr "databasen \"%s\" tar för närvarande inte emot uppkopplingar" -#: utils/init/postinit.c:369 +#: utils/init/postinit.c:358 #, c-format msgid "permission denied for database \"%s\"" msgstr "rättighet saknas för databas \"%s\"" -#: utils/init/postinit.c:370 +#: utils/init/postinit.c:359 #, c-format msgid "User does not have CONNECT privilege." msgstr "Användaren har inte rättigheten CONNECT." -#: utils/init/postinit.c:387 +#: utils/init/postinit.c:376 #, c-format msgid "too many connections for database \"%s\"" msgstr "för många uppkopplingar till databasen \"%s\"" -#: utils/init/postinit.c:409 utils/init/postinit.c:416 +#: utils/init/postinit.c:398 utils/init/postinit.c:405 #, c-format msgid "database locale is incompatible with operating system" msgstr "databaslokalen är inkompatibel med operativsystemet" -#: utils/init/postinit.c:410 +#: utils/init/postinit.c:399 #, c-format msgid "The database was initialized with LC_COLLATE \"%s\", which is not recognized by setlocale()." msgstr "Databasen initierades med LC_COLLATE \"%s\" vilket inte känns igen av setlocale()." -#: utils/init/postinit.c:412 utils/init/postinit.c:419 +#: utils/init/postinit.c:401 utils/init/postinit.c:408 #, c-format msgid "Recreate the database with another locale or install the missing locale." msgstr "Återskapa databasen med en annan lokal eller installera den saknade lokalen." -#: utils/init/postinit.c:417 +#: utils/init/postinit.c:406 #, c-format msgid "The database was initialized with LC_CTYPE \"%s\", which is not recognized by setlocale()." msgstr "Databasen initierades med LC_CTYPE \"%s\", vilket inte känns igen av setlocale()." -#: utils/init/postinit.c:762 +#: utils/init/postinit.c:751 #, c-format msgid "no roles are defined in this database system" msgstr "inga roller är definierade i detta databassystem" -#: utils/init/postinit.c:763 +#: utils/init/postinit.c:752 #, c-format msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;." msgstr "Du borde direkt köra CREATE USER \"%s\" SUPERUSER;." -#: utils/init/postinit.c:799 +#: utils/init/postinit.c:788 #, c-format msgid "new replication connections are not allowed during database shutdown" msgstr "nya replikeringsanslutningar tillåts inte under databasnedstängning" -#: utils/init/postinit.c:803 +#: utils/init/postinit.c:792 #, c-format msgid "must be superuser to connect during database shutdown" -msgstr "måste vara superanvändare för att ansluta när databasen håller på att stängas ner" +msgstr "måste vara superuser för att ansluta när databasen håller på att stängas ner" -#: utils/init/postinit.c:813 +#: utils/init/postinit.c:802 #, c-format msgid "must be superuser to connect in binary upgrade mode" -msgstr "måste vara superanvändare för att ansluta i binärt uppgraderingsläger" +msgstr "måste vara superuser för att ansluta i binärt uppgraderingsläger" -#: utils/init/postinit.c:826 +#: utils/init/postinit.c:815 #, c-format msgid "remaining connection slots are reserved for non-replication superuser connections" -msgstr "resterande anslutningsslottar är reserverade för superanvändaranslutningar utan replikering" +msgstr "resterande anslutningsslottar är reserverade för superuser-anslutningar utan replikering" -#: utils/init/postinit.c:836 +#: utils/init/postinit.c:825 #, c-format msgid "must be superuser or replication role to start walsender" -msgstr "måste vara superanvändare eller replikeringsroll för att starta \"walsender\"" +msgstr "måste vara superuser eller replikeringsroll för att starta \"walsender\"" -#: utils/init/postinit.c:905 +#: utils/init/postinit.c:894 #, c-format msgid "database %u does not exist" msgstr "databasen %u existerar inte" -#: utils/init/postinit.c:994 +#: utils/init/postinit.c:983 #, c-format msgid "It seems to have just been dropped or renamed." msgstr "Det verkar precis ha tagits bort eller döpts om." -#: utils/init/postinit.c:1012 +#: utils/init/postinit.c:1001 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "Databasens underbibliotek \"%s\" saknas." -#: utils/init/postinit.c:1017 +#: utils/init/postinit.c:1006 #, c-format msgid "could not access directory \"%s\": %m" msgstr "kunde inte komma åt katalog \"%s\": %m" @@ -25332,7 +25459,7 @@ #: utils/misc/guc.c:1129 msgid "Shows whether the current user is a superuser." -msgstr "Visar om den aktuella användaren är en superanvändare." +msgstr "Visar om den aktuella användaren är en superuser." #: utils/misc/guc.c:1139 msgid "Enables advertising the server via Bonjour." @@ -25395,8 +25522,8 @@ msgstr "En sidskrivning som sker vid en operativsystemkrash kan bli delvis utskriven till disk. Under återställning så kommer radändringar i WAL:en inte vara tillräckligt för att återställa datan. Denna flagga skriver ut sidor först efter att en WAL-checkpoint gjorts vilket gör att full återställning kan ske." #: utils/misc/guc.c:1258 -msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modifications." -msgstr "Skriver fulla sidor till WAL första gången de ändras efter en checkpoint, även för ickekritiska ändringar." +msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification." +msgstr "Skriver fulla sidor till WAL första gången de ändras efter en checkpoint, även för ickekritisk ändring." #: utils/misc/guc.c:1268 msgid "Compresses full-page writes written in WAL file." @@ -25812,7 +25939,7 @@ #: utils/misc/guc.c:2230 msgid "Sets the number of connection slots reserved for superusers." -msgstr "Sätter antalet anslutningsslottar som reserverats för superanvändare." +msgstr "Sätter antalet anslutningsslottar som reserverats för superusers." #: utils/misc/guc.c:2244 msgid "Sets the number of shared memory buffers used by the server." @@ -26130,10 +26257,6 @@ msgid "Number of simultaneous requests that can be handled efficiently by the disk subsystem." msgstr "Antal samtidiga förfrågningar som kan effektivt kan hanteras av disksystemet." -#: utils/misc/guc.c:2924 -msgid "For RAID arrays, this should be approximately the number of drive spindles in the array." -msgstr "För RAID-array:er så borde det vara ungerfär så många som antalet spindlar i array:en." - #: utils/misc/guc.c:2941 msgid "A variant of effective_io_concurrency that is used for maintenance work." msgstr "En variant av effective_io_concurrency som används för underhållsarbete." @@ -26955,7 +27078,7 @@ #: utils/misc/guc.c:6980 utils/misc/guc.c:7760 utils/misc/guc.c:7813 #: utils/misc/guc.c:7864 utils/misc/guc.c:8197 utils/misc/guc.c:8964 -#: utils/misc/guc.c:9226 utils/misc/guc.c:10892 +#: utils/misc/guc.c:9226 utils/misc/guc.c:10899 #, c-format msgid "unrecognized configuration parameter \"%s\"" msgstr "okänd konfigurationsparameter \"%s\"" @@ -26970,7 +27093,7 @@ msgid "parameter \"%s\" cannot be changed now" msgstr "parameter \"%s\" kan inte ändras nu" -#: utils/misc/guc.c:7046 utils/misc/guc.c:7093 utils/misc/guc.c:10908 +#: utils/misc/guc.c:7046 utils/misc/guc.c:7093 utils/misc/guc.c:10915 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "rättighet saknas för att sätta parameter \"%s\"" @@ -26988,7 +27111,7 @@ #: utils/misc/guc.c:7768 utils/misc/guc.c:7818 utils/misc/guc.c:9233 #, c-format msgid "must be superuser or a member of pg_read_all_settings to examine \"%s\"" -msgstr "måste vara superanvändare eller medlem i pg_read_all_settings för att undersöka \"%s\"" +msgstr "måste vara superuser eller medlem i pg_read_all_settings för att undersöka \"%s\"" #: utils/misc/guc.c:7909 #, c-format @@ -26998,7 +27121,7 @@ #: utils/misc/guc.c:8157 #, c-format msgid "must be superuser to execute ALTER SYSTEM command" -msgstr "måste vara superanvändare för att köra kommandot ALTER SYSTEM" +msgstr "måste vara superuser för att köra kommandot ALTER SYSTEM" #: utils/misc/guc.c:8242 #, c-format @@ -27035,77 +27158,77 @@ msgid "parameter \"%s\" could not be set" msgstr "parameter \"%s\" kunde inte sättas" -#: utils/misc/guc.c:10612 +#: utils/misc/guc.c:10614 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "kunde inte tolka inställningen för parameter \"%s\"" -#: utils/misc/guc.c:10970 utils/misc/guc.c:11004 +#: utils/misc/guc.c:10977 utils/misc/guc.c:11011 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "ogiltigt värde för parameter \"%s\": %d" -#: utils/misc/guc.c:11038 +#: utils/misc/guc.c:11045 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "ogiltigt värde för parameter \"%s\": %g" -#: utils/misc/guc.c:11308 +#: utils/misc/guc.c:11332 #, c-format msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." msgstr "\"temp_buffers\" kan inte ändras efter att man använt temporära tabeller i sessionen." -#: utils/misc/guc.c:11320 +#: utils/misc/guc.c:11344 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour stöds inte av detta bygge" -#: utils/misc/guc.c:11333 +#: utils/misc/guc.c:11357 #, c-format msgid "SSL is not supported by this build" msgstr "SSL stöds inte av detta bygge" -#: utils/misc/guc.c:11345 +#: utils/misc/guc.c:11369 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "Kan inte slå på parameter när \"log_statement_stats\" är satt." -#: utils/misc/guc.c:11357 +#: utils/misc/guc.c:11381 #, c-format msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." msgstr "Kan inte slå på \"log_statement_stats\" när \"log_parser_stats\", \"log_planner_stats\" eller \"log_executor_stats\" är satta." -#: utils/misc/guc.c:11587 +#: utils/misc/guc.c:11611 #, c-format msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." msgstr "effective_io_concurrency måste sättas till 0 på plattformar som saknar posix_fadvise()." -#: utils/misc/guc.c:11600 +#: utils/misc/guc.c:11624 #, c-format msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." msgstr "maintenance_io_concurrency måste sättas till 0 på plattformar som saknar posix_fadvise()." -#: utils/misc/guc.c:11716 +#: utils/misc/guc.c:11740 #, c-format msgid "invalid character" msgstr "ogiltigt tecken" -#: utils/misc/guc.c:11776 +#: utils/misc/guc.c:11800 #, c-format msgid "recovery_target_timeline is not a valid number." msgstr "recovery_target_timeline är inte ett giltigt nummer." -#: utils/misc/guc.c:11816 +#: utils/misc/guc.c:11840 #, c-format msgid "multiple recovery targets specified" msgstr "multipla återställningsmål angivna" -#: utils/misc/guc.c:11817 +#: utils/misc/guc.c:11841 #, c-format msgid "At most one of recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid may be set." msgstr "Som mest en av recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time och recovery_target_xid kan sättas." -#: utils/misc/guc.c:11825 +#: utils/misc/guc.c:11849 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "Det enda tillåtna värdet är \"immediate\"." @@ -27239,27 +27362,27 @@ msgid "closing existing cursor \"%s\"" msgstr "stänger existerande markör \"%s\"" -#: utils/mmgr/portalmem.c:400 +#: utils/mmgr/portalmem.c:401 #, c-format msgid "portal \"%s\" cannot be run" msgstr "portal \"%s\" kan inte köras" -#: utils/mmgr/portalmem.c:478 +#: utils/mmgr/portalmem.c:479 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "kan inte ta bort fastsatt portal \"%s\"" -#: utils/mmgr/portalmem.c:486 +#: utils/mmgr/portalmem.c:487 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "kan inte ta bort aktiv portal \"%s\"" -#: utils/mmgr/portalmem.c:731 +#: utils/mmgr/portalmem.c:738 #, c-format msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD" msgstr "kan inte göra PREPARE på en transaktion som skapat en markör med WITH HOLD" -#: utils/mmgr/portalmem.c:1270 +#: utils/mmgr/portalmem.c:1279 #, c-format msgid "cannot perform transaction commands inside a cursor loop that is not read-only" msgstr "kan inte utföra transaktionskommandon i en markörloop som inte är read-only" @@ -27296,22 +27419,22 @@ msgid "could not read from shared tuplestore temporary file: read only %zu of %zu bytes" msgstr "kunde inte läsa från delad temporär lagringsfil för tupler: läste bara %zu av %zu byte" -#: utils/sort/tuplesort.c:3140 +#: utils/sort/tuplesort.c:3142 #, c-format msgid "cannot have more than %d runs for an external sort" msgstr "kan inte ha mer än %d körningar för en extern sortering" -#: utils/sort/tuplesort.c:4221 +#: utils/sort/tuplesort.c:4223 #, c-format msgid "could not create unique index \"%s\"" msgstr "kunde inte skapa unikt index \"%s\"" -#: utils/sort/tuplesort.c:4223 +#: utils/sort/tuplesort.c:4225 #, c-format msgid "Key %s is duplicated." msgstr "Nyckeln %s är duplicerad." -#: utils/sort/tuplesort.c:4224 +#: utils/sort/tuplesort.c:4226 #, c-format msgid "Duplicate keys exist." msgstr "Duplicerade nycklar existerar." @@ -27331,118 +27454,52 @@ msgid "could not read from tuplestore temporary file: read only %zu of %zu bytes" msgstr "kunde inte läsa från temporär lagringsfil för tupler: läste bara %zu av %zu byte" -#: utils/time/snapmgr.c:624 +#: utils/time/snapmgr.c:626 #, c-format msgid "The source transaction is not running anymore." msgstr "Källtransaktionen kör inte längre." -#: utils/time/snapmgr.c:1232 +#: utils/time/snapmgr.c:1249 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "kan inte exportera ett snapshot från en subtransaktion" -#: utils/time/snapmgr.c:1391 utils/time/snapmgr.c:1396 -#: utils/time/snapmgr.c:1401 utils/time/snapmgr.c:1416 -#: utils/time/snapmgr.c:1421 utils/time/snapmgr.c:1426 -#: utils/time/snapmgr.c:1441 utils/time/snapmgr.c:1446 -#: utils/time/snapmgr.c:1451 utils/time/snapmgr.c:1553 -#: utils/time/snapmgr.c:1569 utils/time/snapmgr.c:1594 +#: utils/time/snapmgr.c:1408 utils/time/snapmgr.c:1413 +#: utils/time/snapmgr.c:1418 utils/time/snapmgr.c:1433 +#: utils/time/snapmgr.c:1438 utils/time/snapmgr.c:1443 +#: utils/time/snapmgr.c:1458 utils/time/snapmgr.c:1463 +#: utils/time/snapmgr.c:1468 utils/time/snapmgr.c:1570 +#: utils/time/snapmgr.c:1586 utils/time/snapmgr.c:1611 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "ogiltig snapshot-data i fil \"%s\"" -#: utils/time/snapmgr.c:1488 +#: utils/time/snapmgr.c:1505 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "SET TRANSACTION SNAPSHOT måste anropas innan någon fråga" -#: utils/time/snapmgr.c:1497 +#: utils/time/snapmgr.c:1514 #, c-format msgid "a snapshot-importing transaction must have isolation level SERIALIZABLE or REPEATABLE READ" msgstr "en snapshot-importerande transaktion måste ha isoleringsnivå SERIALIZABLE eller REPEATABLE READ" -#: utils/time/snapmgr.c:1506 utils/time/snapmgr.c:1515 +#: utils/time/snapmgr.c:1523 utils/time/snapmgr.c:1532 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "ogiltig snapshot-identifierare: \"%s\"" -#: utils/time/snapmgr.c:1607 +#: utils/time/snapmgr.c:1624 #, c-format msgid "a serializable transaction cannot import a snapshot from a non-serializable transaction" msgstr "en serialiserbar transaktion kan inte importera ett snapshot från en icke-serialiserbar transaktion" -#: utils/time/snapmgr.c:1611 +#: utils/time/snapmgr.c:1628 #, c-format msgid "a non-read-only serializable transaction cannot import a snapshot from a read-only transaction" msgstr "en serialiserbar transaktion som inte är read-only kan inte importera en snapshot från en read-only-transaktion." -#: utils/time/snapmgr.c:1626 +#: utils/time/snapmgr.c:1643 #, c-format msgid "cannot import a snapshot from a different database" msgstr "kan inte importera en snapshot från en annan databas" - -#~ msgid "starting parallel vacuum worker for %s" -#~ msgstr "startar parallell vacuum-arbetsprocess för %s" - -#~ msgid "leftover placeholder tuple detected in BRIN index \"%s\", deleting" -#~ msgstr "kvarlämnad platshållartuple hittad i BRIN-index \"%s\", raderar" - -#~ msgid "EXPLAIN option BUFFERS requires ANALYZE" -#~ msgstr "EXPLAIN-flagga BUFFERS kräver ANALYZE" - -#~ msgid "could not write to file \"%s\" : %m" -#~ msgstr "kunde inte skriva till fil \"%s\" : %m" - -#~ msgid "Causes the planner to avoid hashed aggregation plans that are expected to use the disk." -#~ msgstr "Gör så att planeraren unviker planer med hash-aggregering som förväntas använda disk." - -#~ msgid "cannot specify both FULL and PARALLEL options" -#~ msgstr "kan inte ange både flaggan FULL och PARALLEL" - -#~ msgid "could not load wldap32.dll" -#~ msgstr "kunde inte ladda wldap32.dll" - -#~ msgid "could not load advapi32.dll: error code %lu" -#~ msgstr "kunde inte ladda advapi32.dll: felkod %lu" - -#~ msgid "cannot advance replication slot that has not previously reserved WAL" -#~ msgstr "kan inte flytta fram replikeringsslot som inte en tidigare reserverad WAL" - -#~ msgid "could not write to tuplestore temporary file: %m" -#~ msgstr "kunde inte skriva till temporär lagringsfil för tupler: %m" - -#~ msgid "When a password is specified in CREATE USER or ALTER USER without writing either ENCRYPTED or UNENCRYPTED, this parameter determines whether the password is to be encrypted." -#~ msgstr "När ett lösenord anges i CREATE USER eller ALTER USER utan man skrivit varken ENCRYPTED eller UNENCRYPTED så bestämmer denna parameter om lösenordet kommer krypteras." - -#~ msgid "Encrypt passwords." -#~ msgstr "Kryptera lösenord." - -#~ msgid "Enables the planner's use of hashed aggregation plans for groupingsets when the total size of the hash tables is expected to exceed work_mem." -#~ msgstr "Aktiverar planerarens användning av planer med hash-aggregering för grupperingsmängder när totala storleken på hash-tabellerna förväntas överstiga work_mem." - -#~ msgid "could not write to temporary file: %m" -#~ msgstr "kunde inte skriva till temporär fil: %m" - -#~ msgid "could not write to hash-join temporary file: %m" -#~ msgstr "kunde inte skriva till hash-join-temporärfil: %m" - -#~ msgid "could not write block %ld of temporary file: %m" -#~ msgstr "kunde inte skriva block %ld i temporär fil: %m" - -#~ msgid "could not restore file \"%s\" from archive" -#~ msgstr "kunde inte återställa fil \"%s\" från arkiv" - -#~ msgid "restore_command failed due to the signal: %s" -#~ msgstr "restore_command misslyckades på grund av signal: %s" - -#~ msgid "could not open file \"%s\" restored from archive: %m" -#~ msgstr "kunde inte öppna fil \"%s\" återställd från arkiv: %m" - -#~ msgid "unexpected file size for \"%s\": %lu instead of %lu" -#~ msgstr "oväntad filstorlek på \"%s\": %lu istället för %lu" - -#~ msgid "could not use restore_command with %%r alias" -#~ msgstr "kunde inte använda restore_command med %%r-alias" - -#~ msgid "insufficient columns in %s constraint definition" -#~ msgstr "otillräckligt med kolumner i villkorsdefinitionen %s" diff -Nru postgresql-13-13.4/src/backend/port/sysv_shmem.c postgresql-13-13.7/src/backend/port/sysv_shmem.c --- postgresql-13-13.4/src/backend/port/sysv_shmem.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/port/sysv_shmem.c 2022-05-09 21:16:30.000000000 +0000 @@ -142,6 +142,16 @@ if (pg_shmem_addr) requestedAddress = (void *) strtoul(pg_shmem_addr, NULL, 0); + else + { +#if defined(__darwin__) && SIZEOF_VOID_P == 8 + /* + * Provide a default value that is believed to avoid problems with + * ASLR on the current macOS release. + */ + requestedAddress = (void *) 0x80000000000; +#endif + } } #endif @@ -648,6 +658,12 @@ errmsg("huge pages not supported on this platform"))); #endif + /* For now, we don't support huge pages in SysV memory */ + if (huge_pages == HUGE_PAGES_ON && shared_memory_type != SHMEM_TYPE_MMAP) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("huge pages not supported with the current shared_memory_type setting"))); + /* Room for a header? */ Assert(size > MAXALIGN(sizeof(PGShmemHeader))); diff -Nru postgresql-13-13.4/src/backend/postmaster/pgstat.c postgresql-13-13.7/src/backend/postmaster/pgstat.c --- postgresql-13-13.4/src/backend/postmaster/pgstat.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/postmaster/pgstat.c 2022-05-09 21:16:30.000000000 +0000 @@ -3919,6 +3919,9 @@ case WAIT_EVENT_RECOVERY_RETRIEVE_RETRY_INTERVAL: event_name = "RecoveryRetrieveRetryInterval"; break; + case WAIT_EVENT_REGISTER_SYNC_REQUEST: + event_name = "RegisterSyncRequest"; + break; case WAIT_EVENT_VACUUM_DELAY: event_name = "VacuumDelay"; break; diff -Nru postgresql-13-13.4/src/backend/postmaster/postmaster.c postgresql-13-13.7/src/backend/postmaster/postmaster.c --- postgresql-13-13.4/src/backend/postmaster/postmaster.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/postmaster/postmaster.c 2022-05-09 21:16:30.000000000 +0000 @@ -1028,7 +1028,7 @@ /* * Set reference point for stack-depth checking. */ - set_stack_base(); + (void) set_stack_base(); /* * Initialize pipe (or process handle on Windows) that allows children to @@ -2050,6 +2050,18 @@ #endif /* + * At this point we should have no data already buffered. If we do, + * it was received before we performed the SSL handshake, so it wasn't + * encrypted and indeed may have been injected by a man-in-the-middle. + * We report this case to the client. + */ + if (pq_buffer_has_data()) + ereport(FATAL, + (errcode(ERRCODE_PROTOCOL_VIOLATION), + errmsg("received unencrypted data after SSL request"), + errdetail("This could be either a client-software bug or evidence of an attempted man-in-the-middle attack."))); + + /* * regular startup packet, cancel, etc packet should follow, but not * another SSL negotiation request, and a GSS request should only * follow if SSL was rejected (client may negotiate in either order) @@ -2082,6 +2094,18 @@ #endif /* + * At this point we should have no data already buffered. If we do, + * it was received before we performed the GSS handshake, so it wasn't + * encrypted and indeed may have been injected by a man-in-the-middle. + * We report this case to the client. + */ + if (pq_buffer_has_data()) + ereport(FATAL, + (errcode(ERRCODE_PROTOCOL_VIOLATION), + errmsg("received unencrypted data after GSSAPI encryption request"), + errdetail("This could be either a client-software bug or evidence of an attempted man-in-the-middle attack."))); + + /* * regular startup packet, cancel, etc packet should follow, but not * another GSS negotiation request, and an SSL request should only * follow if GSS was rejected (client may negotiate in either order) diff -Nru postgresql-13-13.4/src/backend/regex/regcomp.c postgresql-13-13.7/src/backend/regex/regcomp.c --- postgresql-13-13.4/src/backend/regex/regcomp.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/regex/regcomp.c 2022-05-09 21:16:30.000000000 +0000 @@ -958,7 +958,7 @@ if (cap) { v->subs[subno] = atom; - t = subre(v, '(', atom->flags | CAP, lp, rp); + t = subre(v, '(', atom->flags | CAP, s, s2); NOERR(); t->subno = subno; t->left = atom; @@ -1041,11 +1041,23 @@ /* annoying special case: {0} or {0,0} cancels everything */ if (m == 0 && n == 0) { - if (atom != NULL) - freesubre(v, atom); - if (atomtype == '(') - v->subs[subno] = NULL; - delsub(v->nfa, lp, rp); + /* + * If we had capturing subexpression(s) within the atom, we don't want + * to destroy them, because it's legal (if useless) to back-ref them + * later. Hence, just unlink the atom from lp/rp and then ignore it. + */ + if (atom != NULL && (atom->flags & CAP)) + { + delsub(v->nfa, lp, atom->begin); + delsub(v->nfa, atom->end, rp); + } + else + { + /* Otherwise, we can clean up any subre infrastructure we made */ + if (atom != NULL) + freesubre(v, atom); + delsub(v->nfa, lp, rp); + } EMPTYARC(lp, rp); return; } diff -Nru postgresql-13-13.4/src/backend/regex/regexec.c postgresql-13-13.7/src/backend/regex/regexec.c --- postgresql-13-13.4/src/backend/regex/regexec.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/regex/regexec.c 2022-05-09 21:16:30.000000000 +0000 @@ -196,6 +196,8 @@ return REG_INVARG; if (re->re_csize != sizeof(chr)) return REG_MIXED; + if (search_start > len) + return REG_NOMATCH; /* Initialize locale-dependent support */ pg_set_regex_collation(re->re_collation); @@ -226,6 +228,8 @@ } else v->pmatch = pmatch; + if (v->nmatch > 0) + zapallsubs(v->pmatch, v->nmatch); v->details = details; v->start = (chr *) string; v->search_start = (chr *) string + search_start; @@ -455,7 +459,6 @@ return REG_OKAY; /* find submatches */ - zapallsubs(v->pmatch, v->nmatch); return cdissect(v, v->g->tree, begin, end); } @@ -566,7 +569,6 @@ break; /* no match with this begin point, try next */ MDEBUG(("tentative end %ld\n", LOFF(end))); /* Dissect the potential match to see if it really matches */ - zapallsubs(v->pmatch, v->nmatch); er = cdissect(v, v->g->tree, begin, end); if (er == REG_OKAY) { @@ -614,6 +616,8 @@ /* * zapallsubs - initialize all subexpression matches to "no match" + * + * Note that p[0], the overall-match location, is not touched. */ static void zapallsubs(regmatch_t *p, @@ -685,8 +689,30 @@ * DFA and found that the proposed substring satisfies the DFA. (We make * the caller do that because in concatenation and iteration nodes, it's * much faster to check all the substrings against the child DFAs before we - * recurse.) Also, caller must have cleared subexpression match data via - * zaptreesubs (or zapallsubs at the top level). + * recurse.) + * + * A side-effect of a successful match is to save match locations for + * capturing subexpressions in v->pmatch[]. This is a little bit tricky, + * so we make the following rules: + * 1. Before initial entry to cdissect, all match data must have been + * cleared (this is seen to by zapallsubs). + * 2. Before any recursive entry to cdissect, the match data for that + * subexpression tree must be guaranteed clear (see zaptreesubs). + * 3. When returning REG_OKAY, each level of cdissect will have saved + * any relevant match locations. + * 4. When returning REG_NOMATCH, each level of cdissect will guarantee + * that its subexpression match locations are again clear. + * 5. No guarantees are made for error cases (i.e., other result codes). + * 6. When a level of cdissect abandons a successful sub-match, it will + * clear that subtree's match locations with zaptreesubs before trying + * any new DFA match or cdissect call for that subtree or any subtree + * to its right (that is, any subtree that could have a backref into the + * abandoned match). + * This may seem overly complicated, but it's difficult to simplify it + * because of the provision that match locations must be reset before + * any fresh DFA match (a rule that is needed to make dfa_backref safe). + * That means it won't work to just reset relevant match locations at the + * start of each cdissect level. */ static int /* regexec return code */ cdissect(struct vars *v, @@ -804,6 +830,8 @@ MDEBUG(("successful\n")); return REG_OKAY; } + /* Reset left's matches (right should have done so itself) */ + zaptreesubs(v, t->left); } if (er != REG_NOMATCH) return er; @@ -826,8 +854,6 @@ return REG_NOMATCH; } MDEBUG(("%d: new midpoint %ld\n", t->id, LOFF(mid))); - zaptreesubs(v, t->left); - zaptreesubs(v, t->right); } /* can't get here */ @@ -882,6 +908,8 @@ MDEBUG(("successful\n")); return REG_OKAY; } + /* Reset left's matches (right should have done so itself) */ + zaptreesubs(v, t->left); } if (er != REG_NOMATCH) return er; @@ -904,8 +932,6 @@ return REG_NOMATCH; } MDEBUG(("%d: new midpoint %ld\n", t->id, LOFF(mid))); - zaptreesubs(v, t->left); - zaptreesubs(v, t->right); } /* can't get here */ @@ -1098,8 +1124,8 @@ * Our strategy is to first find a set of sub-match endpoints that are * valid according to the child node's DFA, and then recursively dissect * each sub-match to confirm validity. If any validity check fails, - * backtrack the last sub-match and try again. And, when we next try for - * a validity check, we need not recheck any successfully verified + * backtrack that sub-match and try again. And, when we next try for a + * validity check, we need not recheck any successfully verified * sub-matches that we didn't move the endpoints of. nverified remembers * how many sub-matches are currently known okay. */ @@ -1165,6 +1191,7 @@ for (i = nverified + 1; i <= k; i++) { + /* zap any match data from a non-last iteration */ zaptreesubs(v, t->left); er = cdissect(v, t->left, endpts[i - 1], endpts[i]); if (er == REG_OKAY) @@ -1187,12 +1214,13 @@ return REG_OKAY; } - /* match failed to verify, so backtrack */ + /* i'th match failed to verify, so backtrack it */ + k = i; backtrack: /* - * Must consider shorter versions of the current sub-match. However, + * Must consider shorter versions of the k'th sub-match. However, * we'll only ask for a zero-length match if necessary. */ while (k > 0) @@ -1299,8 +1327,8 @@ * Our strategy is to first find a set of sub-match endpoints that are * valid according to the child node's DFA, and then recursively dissect * each sub-match to confirm validity. If any validity check fails, - * backtrack the last sub-match and try again. And, when we next try for - * a validity check, we need not recheck any successfully verified + * backtrack that sub-match and try again. And, when we next try for a + * validity check, we need not recheck any successfully verified * sub-matches that we didn't move the endpoints of. nverified remembers * how many sub-matches are currently known okay. */ @@ -1372,6 +1400,7 @@ for (i = nverified + 1; i <= k; i++) { + /* zap any match data from a non-last iteration */ zaptreesubs(v, t->left); er = cdissect(v, t->left, endpts[i - 1], endpts[i]); if (er == REG_OKAY) @@ -1394,12 +1423,13 @@ return REG_OKAY; } - /* match failed to verify, so backtrack */ + /* i'th match failed to verify, so backtrack it */ + k = i; backtrack: /* - * Must consider longer versions of the current sub-match. + * Must consider longer versions of the k'th sub-match. */ while (k > 0) { diff -Nru postgresql-13-13.4/src/backend/replication/backup_manifest.c postgresql-13-13.7/src/backend/replication/backup_manifest.c --- postgresql-13-13.4/src/backend/replication/backup_manifest.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/backup_manifest.c 2022-05-09 21:16:30.000000000 +0000 @@ -236,11 +236,18 @@ errmsg("expected end timeline %u but found timeline %u", starttli, entry->tli)); - if (!XLogRecPtrIsInvalid(entry->begin)) - tl_beginptr = entry->begin; + /* + * If this timeline entry matches with the timeline on which the + * backup started, WAL needs to be checked from the start LSN of the + * backup. If this entry refers to a newer timeline, WAL needs to be + * checked since the beginning of this timeline, so use the LSN where + * the timeline began. + */ + if (starttli == entry->tli) + tl_beginptr = startptr; else { - tl_beginptr = startptr; + tl_beginptr = entry->begin; /* * If we reach a TLI that has no valid beginning LSN, there can't @@ -248,7 +255,7 @@ * better have arrived at the expected starting TLI. If not, * something's gone horribly wrong. */ - if (starttli != entry->tli) + if (XLogRecPtrIsInvalid(entry->begin)) ereport(ERROR, errmsg("expected start timeline %u but found timeline %u", starttli, entry->tli)); diff -Nru postgresql-13-13.4/src/backend/replication/logical/decode.c postgresql-13-13.7/src/backend/replication/logical/decode.c --- postgresql-13-13.4/src/backend/replication/logical/decode.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/logical/decode.c 2022-05-09 21:16:30.000000000 +0000 @@ -196,6 +196,7 @@ case XLOG_FPW_CHANGE: case XLOG_FPI_FOR_HINT: case XLOG_FPI: + case XLOG_OVERWRITE_CONTRECORD: break; default: elog(ERROR, "unexpected RM_XLOG_ID record type: %u", info); diff -Nru postgresql-13-13.4/src/backend/replication/logical/launcher.c postgresql-13-13.7/src/backend/replication/logical/launcher.c --- postgresql-13-13.4/src/backend/replication/logical/launcher.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/logical/launcher.c 2022-05-09 21:16:30.000000000 +0000 @@ -360,11 +360,11 @@ } /* - * If we reached the sync worker limit per subscription, just exit - * silently as we might get here because of an otherwise harmless race - * condition. + * We don't allow to invoke more sync workers once we have reached the sync + * worker limit per subscription. So, just return silently as we might get + * here because of an otherwise harmless race condition. */ - if (nsyncworkers >= max_sync_workers_per_subscription) + if (OidIsValid(relid) && nsyncworkers >= max_sync_workers_per_subscription) { LWLockRelease(LogicalRepWorkerLock); return; diff -Nru postgresql-13-13.4/src/backend/replication/logical/origin.c postgresql-13-13.7/src/backend/replication/logical/origin.c --- postgresql-13-13.4/src/backend/replication/logical/origin.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/logical/origin.c 2022-05-09 21:16:30.000000000 +0000 @@ -784,7 +784,7 @@ FIN_CRC32C(crc); if (file_crc != crc) ereport(PANIC, - (errcode(ERRCODE_CONFIGURATION_LIMIT_EXCEEDED), + (errcode(ERRCODE_DATA_CORRUPTED), errmsg("replication slot checkpoint has wrong checksum %u, expected %u", crc, file_crc))); diff -Nru postgresql-13-13.4/src/backend/replication/logical/reorderbuffer.c postgresql-13-13.7/src/backend/replication/logical/reorderbuffer.c --- postgresql-13-13.4/src/backend/replication/logical/reorderbuffer.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/logical/reorderbuffer.c 2022-05-09 21:16:30.000000000 +0000 @@ -262,7 +262,8 @@ */ static Size ReorderBufferChangeSize(ReorderBufferChange *change); static void ReorderBufferChangeMemoryUpdate(ReorderBuffer *rb, - ReorderBufferChange *change, bool addition); + ReorderBufferChange *change, + bool addition, Size sz); /* * Allocate a new ReorderBuffer and clean out any old serialized state from @@ -425,7 +426,8 @@ ReorderBufferReturnChange(ReorderBuffer *rb, ReorderBufferChange *change) { /* update memory accounting info */ - ReorderBufferChangeMemoryUpdate(rb, change, false); + ReorderBufferChangeMemoryUpdate(rb, change, false, + ReorderBufferChangeSize(change)); /* free contained data */ switch (change->action) @@ -647,7 +649,8 @@ txn->nentries_mem++; /* update memory accounting information */ - ReorderBufferChangeMemoryUpdate(rb, change, true); + ReorderBufferChangeMemoryUpdate(rb, change, true, + ReorderBufferChangeSize(change)); /* check the memory limits and evict something if needed */ ReorderBufferCheckMemoryLimit(rb); @@ -2160,10 +2163,8 @@ static void ReorderBufferChangeMemoryUpdate(ReorderBuffer *rb, ReorderBufferChange *change, - bool addition) + bool addition, Size sz) { - Size sz; - Assert(change->txn); /* @@ -2174,8 +2175,6 @@ if (change->action == REORDER_BUFFER_CHANGE_INTERNAL_TUPLECID) return; - sz = ReorderBufferChangeSize(change); - if (addition) { change->txn->size += sz; @@ -3073,7 +3072,8 @@ * update the accounting too (subtracting the size from the counters). And * we don't want to underflow there. */ - ReorderBufferChangeMemoryUpdate(rb, change, true); + ReorderBufferChangeMemoryUpdate(rb, change, true, + ReorderBufferChangeSize(change)); } /* @@ -3321,17 +3321,23 @@ TupleDesc toast_desc; MemoryContext oldcontext; ReorderBufferTupleBuf *newtup; + Size old_size; /* no toast tuples changed */ if (txn->toast_hash == NULL) return; /* - * We're going to modify the size of the change, so to make sure the - * accounting is correct we'll make it look like we're removing the change - * now (with the old size), and then re-add it at the end. + * We're going to modify the size of the change. So, to make sure the + * accounting is correct we record the current change size and then after + * re-computing the change we'll subtract the recorded size and then + * re-add the new change size at the end. We don't immediately subtract + * the old size because if there is any error before we add the new size, + * we will release the changes and that will update the accounting info + * (subtracting the size from the counters). And we don't want to + * underflow there. */ - ReorderBufferChangeMemoryUpdate(rb, change, false); + old_size = ReorderBufferChangeSize(change); oldcontext = MemoryContextSwitchTo(rb->context); @@ -3342,8 +3348,8 @@ toast_rel = RelationIdGetRelation(relation->rd_rel->reltoastrelid); if (!RelationIsValid(toast_rel)) - elog(ERROR, "could not open relation with OID %u", - relation->rd_rel->reltoastrelid); + elog(ERROR, "could not open toast relation with OID %u (base relation \"%s\")", + relation->rd_rel->reltoastrelid, RelationGetRelationName(relation)); toast_desc = RelationGetDescr(toast_rel); @@ -3482,8 +3488,11 @@ MemoryContextSwitchTo(oldcontext); + /* subtract the old change size */ + ReorderBufferChangeMemoryUpdate(rb, change, false, old_size); /* now add the change back, with the correct size */ - ReorderBufferChangeMemoryUpdate(rb, change, true); + ReorderBufferChangeMemoryUpdate(rb, change, true, + ReorderBufferChangeSize(change)); } /* diff -Nru postgresql-13-13.4/src/backend/replication/logical/snapbuild.c postgresql-13-13.7/src/backend/replication/logical/snapbuild.c --- postgresql-13-13.4/src/backend/replication/logical/snapbuild.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/logical/snapbuild.c 2022-05-09 21:16:30.000000000 +0000 @@ -691,6 +691,8 @@ void SnapBuildClearExportedSnapshot(void) { + ResourceOwner tmpResOwner; + /* nothing exported, that is the usual case */ if (!ExportInProgress) return; @@ -698,10 +700,24 @@ if (!IsTransactionState()) elog(ERROR, "clearing exported snapshot in wrong transaction state"); - /* make sure nothing could have ever happened */ + /* + * AbortCurrentTransaction() takes care of resetting the snapshot state, + * so remember SavedResourceOwnerDuringExport. + */ + tmpResOwner = SavedResourceOwnerDuringExport; + + /* make sure nothing could have ever happened */ AbortCurrentTransaction(); - CurrentResourceOwner = SavedResourceOwnerDuringExport; + CurrentResourceOwner = tmpResOwner; +} + +/* + * Clear snapshot export state during transaction abort. + */ +void +SnapBuildResetExportedSnapshotState(void) +{ SavedResourceOwnerDuringExport = NULL; ExportInProgress = false; } diff -Nru postgresql-13-13.4/src/backend/replication/logical/worker.c postgresql-13-13.7/src/backend/replication/logical/worker.c --- postgresql-13-13.4/src/backend/replication/logical/worker.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/logical/worker.c 2022-05-09 21:16:30.000000000 +0000 @@ -617,7 +617,10 @@ /* * Handle TYPE message. * - * This is now vestigial; we read the info and discard it. + * This implementation pays no attention to TYPE messages; we expect the user + * to have set things up so that the incoming data is acceptable to the input + * functions for the locally subscribed tables. Hence, we just read and + * discard the message. */ static void apply_handle_type(StringInfo s) diff -Nru postgresql-13-13.4/src/backend/replication/pgoutput/pgoutput.c postgresql-13-13.7/src/backend/replication/pgoutput/pgoutput.c --- postgresql-13-13.4/src/backend/replication/pgoutput/pgoutput.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/pgoutput/pgoutput.c 2022-05-09 21:16:30.000000000 +0000 @@ -669,8 +669,6 @@ get_rel_sync_entry(PGOutputData *data, Oid relid) { RelationSyncEntry *entry; - bool am_partition = get_rel_relispartition(relid); - char relkind = get_rel_relkind(relid); bool found; MemoryContext oldctx; @@ -703,6 +701,9 @@ List *pubids = GetRelationPublications(relid); ListCell *lc; Oid publish_as_relid = relid; + int publish_ancestor_level = 0; + bool am_partition = get_rel_relispartition(relid); + char relkind = get_rel_relkind(relid); /* Reload publications if needed before use. */ if (!publications_valid) @@ -729,11 +730,28 @@ Publication *pub = lfirst(lc); bool publish = false; + /* + * Under what relid should we publish changes in this publication? + * We'll use the top-most relid across all publications. Also track + * the ancestor level for this publication. + */ + Oid pub_relid = relid; + int ancestor_level = 0; + + /* + * If this is a FOR ALL TABLES publication, pick the partition root + * and set the ancestor level accordingly. + */ if (pub->alltables) { publish = true; if (pub->pubviaroot && am_partition) - publish_as_relid = llast_oid(get_partition_ancestors(relid)); + { + List *ancestors = get_partition_ancestors(relid); + + pub_relid = llast_oid(ancestors); + ancestor_level = list_length(ancestors); + } } if (!publish) @@ -750,6 +768,7 @@ { List *ancestors = get_partition_ancestors(relid); ListCell *lc2; + int level = 0; /* * Find the "topmost" ancestor that is in this @@ -759,12 +778,17 @@ { Oid ancestor = lfirst_oid(lc2); + level++; + if (list_member_oid(GetRelationPublications(ancestor), pub->oid)) { ancestor_published = true; if (pub->pubviaroot) - publish_as_relid = ancestor; + { + pub_relid = ancestor; + ancestor_level = level; + } } } } @@ -785,11 +809,21 @@ entry->pubactions.pubupdate |= pub->pubactions.pubupdate; entry->pubactions.pubdelete |= pub->pubactions.pubdelete; entry->pubactions.pubtruncate |= pub->pubactions.pubtruncate; - } - if (entry->pubactions.pubinsert && entry->pubactions.pubupdate && - entry->pubactions.pubdelete && entry->pubactions.pubtruncate) - break; + /* + * We want to publish the changes as the top-most ancestor + * across all publications. So we need to check if the + * already calculated level is higher than the new one. If + * yes, we can ignore the new value (as it's a child). + * Otherwise the new value is an ancestor, so we keep it. + */ + if (publish_ancestor_level > ancestor_level) + continue; + + /* The new value is an ancestor, so let's keep it. */ + publish_as_relid = pub_relid; + publish_ancestor_level = ancestor_level; + } } list_free(pubids); diff -Nru postgresql-13-13.4/src/backend/replication/repl_gram.c postgresql-13-13.7/src/backend/replication/repl_gram.c --- postgresql-13-13.4/src/backend/replication/repl_gram.c 2021-08-09 21:03:31.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/repl_gram.c 2022-05-09 21:29:44.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,12 +70,11 @@ #define yyerror replication_yyerror #define yydebug replication_yydebug #define yynerrs replication_yynerrs - #define yylval replication_yylval #define yychar replication_yychar /* First part of user prologue. */ -#line 1 "repl_gram.y" /* yacc.c:337 */ +#line 1 "repl_gram.y" /*------------------------------------------------------------------------- * @@ -102,8 +102,6 @@ /* Result of the parsing is returned here */ Node *replication_parse_result; -static SQLCmd *make_sqlcmd(void); - /* * Bison doesn't allocate anything that needs to live across parser calls, @@ -117,7 +115,17 @@ #define YYFREE pfree -#line 121 "repl_gram.c" /* yacc.c:337 */ +#line 119 "repl_gram.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -130,14 +138,6 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - /* Debug traces. */ #ifndef YYDEBUG @@ -147,52 +147,55 @@ extern int replication_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - SCONST = 258, - IDENT = 259, - UCONST = 260, - RECPTR = 261, - T_WORD = 262, - K_BASE_BACKUP = 263, - K_IDENTIFY_SYSTEM = 264, - K_SHOW = 265, - K_START_REPLICATION = 266, - K_CREATE_REPLICATION_SLOT = 267, - K_DROP_REPLICATION_SLOT = 268, - K_TIMELINE_HISTORY = 269, - K_LABEL = 270, - K_PROGRESS = 271, - K_FAST = 272, - K_WAIT = 273, - K_NOWAIT = 274, - K_MAX_RATE = 275, - K_WAL = 276, - K_TABLESPACE_MAP = 277, - K_NOVERIFY_CHECKSUMS = 278, - K_TIMELINE = 279, - K_PHYSICAL = 280, - K_LOGICAL = 281, - K_SLOT = 282, - K_RESERVE_WAL = 283, - K_TEMPORARY = 284, - K_EXPORT_SNAPSHOT = 285, - K_NOEXPORT_SNAPSHOT = 286, - K_USE_SNAPSHOT = 287, - K_MANIFEST = 288, - K_MANIFEST_CHECKSUMS = 289 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + SCONST = 258, /* SCONST */ + IDENT = 259, /* IDENT */ + UCONST = 260, /* UCONST */ + RECPTR = 261, /* RECPTR */ + K_BASE_BACKUP = 262, /* K_BASE_BACKUP */ + K_IDENTIFY_SYSTEM = 263, /* K_IDENTIFY_SYSTEM */ + K_SHOW = 264, /* K_SHOW */ + K_START_REPLICATION = 265, /* K_START_REPLICATION */ + K_CREATE_REPLICATION_SLOT = 266, /* K_CREATE_REPLICATION_SLOT */ + K_DROP_REPLICATION_SLOT = 267, /* K_DROP_REPLICATION_SLOT */ + K_TIMELINE_HISTORY = 268, /* K_TIMELINE_HISTORY */ + K_LABEL = 269, /* K_LABEL */ + K_PROGRESS = 270, /* K_PROGRESS */ + K_FAST = 271, /* K_FAST */ + K_WAIT = 272, /* K_WAIT */ + K_NOWAIT = 273, /* K_NOWAIT */ + K_MAX_RATE = 274, /* K_MAX_RATE */ + K_WAL = 275, /* K_WAL */ + K_TABLESPACE_MAP = 276, /* K_TABLESPACE_MAP */ + K_NOVERIFY_CHECKSUMS = 277, /* K_NOVERIFY_CHECKSUMS */ + K_TIMELINE = 278, /* K_TIMELINE */ + K_PHYSICAL = 279, /* K_PHYSICAL */ + K_LOGICAL = 280, /* K_LOGICAL */ + K_SLOT = 281, /* K_SLOT */ + K_RESERVE_WAL = 282, /* K_RESERVE_WAL */ + K_TEMPORARY = 283, /* K_TEMPORARY */ + K_EXPORT_SNAPSHOT = 284, /* K_EXPORT_SNAPSHOT */ + K_NOEXPORT_SNAPSHOT = 285, /* K_NOEXPORT_SNAPSHOT */ + K_USE_SNAPSHOT = 286, /* K_USE_SNAPSHOT */ + K_MANIFEST = 287, /* K_MANIFEST */ + K_MANIFEST_CHECKSUMS = 288 /* K_MANIFEST_CHECKSUMS */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 47 "repl_gram.y" /* yacc.c:352 */ +#line 45 "repl_gram.y" char *str; bool boolval; @@ -203,9 +206,9 @@ List *list; DefElem *defelt; -#line 207 "repl_gram.c" /* yacc.c:352 */ -}; +#line 210 "repl_gram.c" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -217,6 +220,77 @@ int replication_yyparse (void); +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_SCONST = 3, /* SCONST */ + YYSYMBOL_IDENT = 4, /* IDENT */ + YYSYMBOL_UCONST = 5, /* UCONST */ + YYSYMBOL_RECPTR = 6, /* RECPTR */ + YYSYMBOL_K_BASE_BACKUP = 7, /* K_BASE_BACKUP */ + YYSYMBOL_K_IDENTIFY_SYSTEM = 8, /* K_IDENTIFY_SYSTEM */ + YYSYMBOL_K_SHOW = 9, /* K_SHOW */ + YYSYMBOL_K_START_REPLICATION = 10, /* K_START_REPLICATION */ + YYSYMBOL_K_CREATE_REPLICATION_SLOT = 11, /* K_CREATE_REPLICATION_SLOT */ + YYSYMBOL_K_DROP_REPLICATION_SLOT = 12, /* K_DROP_REPLICATION_SLOT */ + YYSYMBOL_K_TIMELINE_HISTORY = 13, /* K_TIMELINE_HISTORY */ + YYSYMBOL_K_LABEL = 14, /* K_LABEL */ + YYSYMBOL_K_PROGRESS = 15, /* K_PROGRESS */ + YYSYMBOL_K_FAST = 16, /* K_FAST */ + YYSYMBOL_K_WAIT = 17, /* K_WAIT */ + YYSYMBOL_K_NOWAIT = 18, /* K_NOWAIT */ + YYSYMBOL_K_MAX_RATE = 19, /* K_MAX_RATE */ + YYSYMBOL_K_WAL = 20, /* K_WAL */ + YYSYMBOL_K_TABLESPACE_MAP = 21, /* K_TABLESPACE_MAP */ + YYSYMBOL_K_NOVERIFY_CHECKSUMS = 22, /* K_NOVERIFY_CHECKSUMS */ + YYSYMBOL_K_TIMELINE = 23, /* K_TIMELINE */ + YYSYMBOL_K_PHYSICAL = 24, /* K_PHYSICAL */ + YYSYMBOL_K_LOGICAL = 25, /* K_LOGICAL */ + YYSYMBOL_K_SLOT = 26, /* K_SLOT */ + YYSYMBOL_K_RESERVE_WAL = 27, /* K_RESERVE_WAL */ + YYSYMBOL_K_TEMPORARY = 28, /* K_TEMPORARY */ + YYSYMBOL_K_EXPORT_SNAPSHOT = 29, /* K_EXPORT_SNAPSHOT */ + YYSYMBOL_K_NOEXPORT_SNAPSHOT = 30, /* K_NOEXPORT_SNAPSHOT */ + YYSYMBOL_K_USE_SNAPSHOT = 31, /* K_USE_SNAPSHOT */ + YYSYMBOL_K_MANIFEST = 32, /* K_MANIFEST */ + YYSYMBOL_K_MANIFEST_CHECKSUMS = 33, /* K_MANIFEST_CHECKSUMS */ + YYSYMBOL_34_ = 34, /* ';' */ + YYSYMBOL_35_ = 35, /* '.' */ + YYSYMBOL_36_ = 36, /* '(' */ + YYSYMBOL_37_ = 37, /* ')' */ + YYSYMBOL_38_ = 38, /* ',' */ + YYSYMBOL_YYACCEPT = 39, /* $accept */ + YYSYMBOL_firstcmd = 40, /* firstcmd */ + YYSYMBOL_opt_semicolon = 41, /* opt_semicolon */ + YYSYMBOL_command = 42, /* command */ + YYSYMBOL_identify_system = 43, /* identify_system */ + YYSYMBOL_show = 44, /* show */ + YYSYMBOL_var_name = 45, /* var_name */ + YYSYMBOL_base_backup = 46, /* base_backup */ + YYSYMBOL_base_backup_opt_list = 47, /* base_backup_opt_list */ + YYSYMBOL_base_backup_opt = 48, /* base_backup_opt */ + YYSYMBOL_create_replication_slot = 49, /* create_replication_slot */ + YYSYMBOL_create_slot_opt_list = 50, /* create_slot_opt_list */ + YYSYMBOL_create_slot_opt = 51, /* create_slot_opt */ + YYSYMBOL_drop_replication_slot = 52, /* drop_replication_slot */ + YYSYMBOL_start_replication = 53, /* start_replication */ + YYSYMBOL_start_logical_replication = 54, /* start_logical_replication */ + YYSYMBOL_timeline_history = 55, /* timeline_history */ + YYSYMBOL_opt_physical = 56, /* opt_physical */ + YYSYMBOL_opt_temporary = 57, /* opt_temporary */ + YYSYMBOL_opt_slot = 58, /* opt_slot */ + YYSYMBOL_opt_timeline = 59, /* opt_timeline */ + YYSYMBOL_plugin_options = 60, /* plugin_options */ + YYSYMBOL_plugin_opt_list = 61, /* plugin_opt_list */ + YYSYMBOL_plugin_opt_elem = 62, /* plugin_opt_elem */ + YYSYMBOL_plugin_opt_arg = 63 /* plugin_opt_arg */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + @@ -224,28 +298,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -253,7 +386,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -261,7 +394,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -275,38 +421,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -319,8 +464,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif -#if ! defined yyoverflow || YYERROR_VERBOSE + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -385,8 +544,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -395,17 +553,17 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -418,11 +576,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -434,12 +592,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -449,37 +607,40 @@ #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 28 +#define YYFINAL 26 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 53 +#define YYLAST 52 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 40 +#define YYNTOKENS 39 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 26 +#define YYNNTS 25 /* YYNRULES -- Number of rules. */ -#define YYNRULES 59 +#define YYNRULES 57 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 80 +#define YYNSTATES 78 + +/* YYMAXUTOK -- Last valid token kind. */ +#define YYMAXUTOK 288 -#define YYUNDEFTOK 2 -#define YYMAXUTOK 289 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint8 yytranslate[] = +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 37, 38, 2, 2, 39, 2, 36, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 35, + 36, 37, 2, 2, 38, 2, 35, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 34, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -502,29 +663,36 @@ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 + 25, 26, 27, 28, 29, 30, 31, 32, 33 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { - 0, 110, 110, 116, 117, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 136, 146, 153, 154, 164, 173, - 176, 180, 185, 190, 195, 200, 205, 210, 215, 220, - 225, 234, 245, 259, 262, 266, 271, 276, 281, 290, - 298, 312, 327, 342, 359, 360, 364, 365, 369, 372, - 376, 384, 389, 390, 394, 398, 405, 412, 413, 417 + 0, 107, 107, 113, 114, 118, 119, 120, 121, 122, + 123, 124, 125, 132, 142, 149, 150, 160, 169, 172, + 176, 181, 186, 191, 196, 201, 206, 211, 216, 221, + 230, 241, 255, 258, 262, 267, 272, 277, 286, 294, + 308, 323, 338, 355, 356, 360, 361, 365, 368, 372, + 380, 385, 386, 390, 394, 401, 408, 409 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "SCONST", "IDENT", "UCONST", "RECPTR", - "T_WORD", "K_BASE_BACKUP", "K_IDENTIFY_SYSTEM", "K_SHOW", + "\"end of file\"", "error", "\"invalid token\"", "SCONST", "IDENT", + "UCONST", "RECPTR", "K_BASE_BACKUP", "K_IDENTIFY_SYSTEM", "K_SHOW", "K_START_REPLICATION", "K_CREATE_REPLICATION_SLOT", "K_DROP_REPLICATION_SLOT", "K_TIMELINE_HISTORY", "K_LABEL", "K_PROGRESS", "K_FAST", "K_WAIT", "K_NOWAIT", "K_MAX_RATE", "K_WAL", @@ -538,141 +706,147 @@ "create_slot_opt", "drop_replication_slot", "start_replication", "start_logical_replication", "timeline_history", "opt_physical", "opt_temporary", "opt_slot", "opt_timeline", "plugin_options", - "plugin_opt_list", "plugin_opt_elem", "plugin_opt_arg", "sql_cmd", YY_NULLPTR + "plugin_opt_list", "plugin_opt_elem", "plugin_opt_arg", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 59, 46, 40, 41, 44 + 285, 286, 287, 288, 59, 46, 40, 41, 44 }; -# endif +#endif -#define YYPACT_NINF -27 +#define YYPACT_NINF (-25) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-27))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -1 +#define YYTABLE_NINF (-1) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int8 yypact[] = { - 12, -27, -27, -27, -1, -17, 13, 23, 25, 31, - -3, -27, -27, -27, -27, -27, -27, -27, -27, -27, - -15, -27, -2, 29, 10, 7, 19, -27, -27, -27, - -27, 35, -27, -27, -27, 34, -27, -27, -27, 37, - 38, -27, 39, 16, -27, 40, -27, -11, -27, -27, - -27, -27, -27, -27, 41, 20, -27, 44, 8, 45, - -27, -19, -27, 47, -27, -27, -27, -27, -27, -27, - -27, -19, 46, -10, -27, -27, -27, -27, 47, -27 + 2, -25, -25, -1, -5, 23, 24, 25, 29, -3, + -25, -25, -25, -25, -25, -25, -25, -25, -14, -25, + -2, 28, 10, 7, 19, -25, -25, -25, -25, 34, + -25, -25, -25, 33, -25, -25, -25, 36, 37, -25, + 38, 16, -25, 39, -25, -8, -25, -25, -25, -25, + -25, -25, 40, 20, -25, 43, 8, 44, -25, -7, + -25, 46, -25, -25, -25, -25, -25, -25, -25, -7, + 45, -12, -25, -25, -25, -25, 46, -25 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint8 yydefact[] = +static const yytype_int8 yydefact[] = { - 0, 59, 20, 14, 0, 49, 0, 0, 0, 0, - 4, 5, 12, 6, 9, 10, 7, 8, 11, 13, - 18, 16, 15, 0, 45, 47, 39, 43, 1, 3, - 2, 0, 22, 23, 25, 0, 24, 27, 28, 0, - 0, 19, 0, 48, 44, 0, 46, 0, 40, 21, - 26, 29, 30, 17, 0, 51, 34, 0, 53, 0, - 41, 31, 34, 0, 42, 50, 38, 35, 36, 37, - 33, 32, 58, 0, 54, 57, 56, 52, 0, 55 + 0, 19, 13, 0, 48, 0, 0, 0, 0, 4, + 5, 12, 6, 9, 10, 7, 8, 11, 17, 15, + 14, 0, 44, 46, 38, 42, 1, 3, 2, 0, + 21, 22, 24, 0, 23, 26, 27, 0, 0, 18, + 0, 47, 43, 0, 45, 0, 39, 20, 25, 28, + 29, 16, 0, 50, 33, 0, 52, 0, 40, 30, + 33, 0, 41, 49, 37, 34, 35, 36, 32, 31, + 57, 0, 53, 56, 55, 51, 0, 54 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, - -27, -9, -27, -27, -27, -27, -27, -27, -27, -27, - -27, -27, -27, -26, -27, -27 + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -9, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -24, -25 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 9, 30, 10, 11, 12, 22, 13, 20, 41, - 14, 61, 70, 15, 16, 17, 18, 45, 47, 24, - 60, 64, 73, 74, 76, 19 + 0, 8, 28, 9, 10, 11, 20, 12, 18, 39, + 13, 59, 68, 14, 15, 16, 17, 43, 45, 22, + 58, 62, 71, 72, 74 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_uint8 yytable[] = +static const yytype_int8 yytable[] = { - 31, 32, 33, 21, 34, 35, 36, 37, 38, 66, - 23, 67, 68, 69, 56, 57, 1, 25, 39, 40, - 2, 3, 4, 5, 6, 7, 8, 26, 77, 78, - 27, 28, 29, 43, 42, 44, 46, 48, 49, 50, - 51, 52, 54, 53, 59, 63, 55, 58, 62, 75, - 65, 72, 79, 71 + 29, 30, 31, 19, 32, 33, 34, 35, 36, 1, + 2, 3, 4, 5, 6, 7, 54, 55, 37, 38, + 64, 21, 65, 66, 67, 75, 76, 23, 24, 26, + 25, 27, 41, 40, 42, 44, 46, 47, 48, 49, + 50, 52, 51, 57, 61, 53, 56, 60, 73, 63, + 70, 69, 77 }; -static const yytype_uint8 yycheck[] = +static const yytype_int8 yycheck[] = { - 15, 16, 17, 4, 19, 20, 21, 22, 23, 28, - 27, 30, 31, 32, 25, 26, 4, 4, 33, 34, - 8, 9, 10, 11, 12, 13, 14, 4, 38, 39, - 5, 0, 35, 4, 36, 25, 29, 18, 3, 5, - 3, 3, 26, 4, 24, 37, 6, 6, 4, 3, - 5, 4, 78, 62 + 14, 15, 16, 4, 18, 19, 20, 21, 22, 7, + 8, 9, 10, 11, 12, 13, 24, 25, 32, 33, + 27, 26, 29, 30, 31, 37, 38, 4, 4, 0, + 5, 34, 4, 35, 24, 28, 17, 3, 5, 3, + 3, 25, 4, 23, 36, 6, 6, 4, 3, 5, + 4, 60, 76 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_int8 yystos[] = { - 0, 4, 8, 9, 10, 11, 12, 13, 14, 41, - 43, 44, 45, 47, 50, 53, 54, 55, 56, 65, - 48, 4, 46, 27, 59, 4, 4, 5, 0, 35, - 42, 15, 16, 17, 19, 20, 21, 22, 23, 33, - 34, 49, 36, 4, 25, 57, 29, 58, 18, 3, - 5, 3, 3, 4, 26, 6, 25, 26, 6, 24, - 60, 51, 4, 37, 61, 5, 28, 30, 31, 32, - 52, 51, 4, 62, 63, 3, 64, 38, 39, 63 + 0, 7, 8, 9, 10, 11, 12, 13, 40, 42, + 43, 44, 46, 49, 52, 53, 54, 55, 47, 4, + 45, 26, 58, 4, 4, 5, 0, 34, 41, 14, + 15, 16, 18, 19, 20, 21, 22, 32, 33, 48, + 35, 4, 24, 56, 28, 57, 17, 3, 5, 3, + 3, 4, 25, 6, 24, 25, 6, 23, 59, 50, + 4, 36, 60, 5, 27, 29, 30, 31, 51, 50, + 4, 61, 62, 3, 63, 37, 38, 62 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_int8 yyr1[] = { - 0, 40, 41, 42, 42, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 44, 45, 46, 46, 47, 48, - 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 50, 50, 51, 51, 52, 52, 52, 52, 53, - 53, 54, 55, 56, 57, 57, 58, 58, 59, 59, - 60, 60, 61, 61, 62, 62, 63, 64, 64, 65 + 0, 39, 40, 41, 41, 42, 42, 42, 42, 42, + 42, 42, 42, 43, 44, 45, 45, 46, 47, 47, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 49, 49, 50, 50, 51, 51, 51, 51, 52, 52, + 53, 54, 55, 56, 56, 57, 57, 58, 58, 59, + 59, 60, 60, 61, 61, 62, 63, 63 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 2, 1, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 3, 2, 2, - 0, 2, 1, 1, 1, 1, 2, 1, 1, 2, - 2, 5, 6, 2, 0, 1, 1, 1, 1, 2, - 3, 5, 6, 2, 1, 0, 1, 0, 2, 0, - 2, 0, 3, 0, 1, 3, 2, 1, 0, 1 + 1, 1, 1, 1, 2, 1, 3, 2, 2, 0, + 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, + 5, 6, 2, 0, 1, 1, 1, 1, 2, 3, + 5, 6, 2, 1, 0, 1, 0, 2, 0, 2, + 0, 3, 0, 1, 3, 2, 1, 0 }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -698,10 +872,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* Enable debugging if requested. */ @@ -719,18 +892,18 @@ } while (0) /* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value); \ + Kind, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -741,17 +914,20 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; - YYUSE (yyoutput); + YY_USE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -760,12 +936,13 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyo, yytype, yyvaluep); + yy_symbol_value_print (yyo, yykind, yyvaluep); YYFPRINTF (yyo, ")"); } @@ -775,7 +952,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -798,21 +975,21 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - ); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); YYFPRINTF (stderr, "\n"); } } @@ -827,8 +1004,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -851,254 +1028,30 @@ #endif -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - if (! yyres) - return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -1107,6 +1060,8 @@ int yynerrs; + + /*----------. | yyparse. | `----------*/ @@ -1114,43 +1069,36 @@ int yyparse (void) { - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. + int yyerrstatus = 0; - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - YYSIZE_T yystacksize; + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -1158,15 +1106,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; @@ -1181,10 +1122,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1192,23 +1138,23 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -1222,14 +1168,15 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1238,16 +1185,16 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -1268,18 +1215,29 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1307,15 +1265,13 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1350,159 +1306,159 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 111 "repl_gram.y" /* yacc.c:1652 */ - { + case 2: /* firstcmd: command opt_semicolon */ +#line 108 "repl_gram.y" + { replication_parse_result = (yyvsp[-1].node); } -#line 1359 "repl_gram.c" /* yacc.c:1652 */ +#line 1315 "repl_gram.c" break; - case 14: -#line 137 "repl_gram.y" /* yacc.c:1652 */ - { + case 13: /* identify_system: K_IDENTIFY_SYSTEM */ +#line 133 "repl_gram.y" + { (yyval.node) = (Node *) makeNode(IdentifySystemCmd); } -#line 1367 "repl_gram.c" /* yacc.c:1652 */ +#line 1323 "repl_gram.c" break; - case 15: -#line 147 "repl_gram.y" /* yacc.c:1652 */ - { + case 14: /* show: K_SHOW var_name */ +#line 143 "repl_gram.y" + { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } -#line 1377 "repl_gram.c" /* yacc.c:1652 */ +#line 1333 "repl_gram.c" break; - case 16: -#line 153 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 1383 "repl_gram.c" /* yacc.c:1652 */ + case 15: /* var_name: IDENT */ +#line 149 "repl_gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 1339 "repl_gram.c" break; - case 17: -#line 155 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); } -#line 1389 "repl_gram.c" /* yacc.c:1652 */ + case 16: /* var_name: var_name '.' IDENT */ +#line 151 "repl_gram.y" + { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); } +#line 1345 "repl_gram.c" break; - case 18: -#line 165 "repl_gram.y" /* yacc.c:1652 */ - { + case 17: /* base_backup: K_BASE_BACKUP base_backup_opt_list */ +#line 161 "repl_gram.y" + { BaseBackupCmd *cmd = makeNode(BaseBackupCmd); cmd->options = (yyvsp[0].list); (yyval.node) = (Node *) cmd; } -#line 1399 "repl_gram.c" /* yacc.c:1652 */ +#line 1355 "repl_gram.c" break; - case 19: -#line 174 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 1405 "repl_gram.c" /* yacc.c:1652 */ + case 18: /* base_backup_opt_list: base_backup_opt_list base_backup_opt */ +#line 170 "repl_gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 1361 "repl_gram.c" break; - case 20: -#line 176 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 1411 "repl_gram.c" /* yacc.c:1652 */ + case 19: /* base_backup_opt_list: %empty */ +#line 172 "repl_gram.y" + { (yyval.list) = NIL; } +#line 1367 "repl_gram.c" break; - case 21: -#line 181 "repl_gram.y" /* yacc.c:1652 */ - { + case 20: /* base_backup_opt: K_LABEL SCONST */ +#line 177 "repl_gram.y" + { (yyval.defelt) = makeDefElem("label", (Node *)makeString((yyvsp[0].str)), -1); } -#line 1420 "repl_gram.c" /* yacc.c:1652 */ +#line 1376 "repl_gram.c" break; - case 22: -#line 186 "repl_gram.y" /* yacc.c:1652 */ - { + case 21: /* base_backup_opt: K_PROGRESS */ +#line 182 "repl_gram.y" + { (yyval.defelt) = makeDefElem("progress", (Node *)makeInteger(true), -1); } -#line 1429 "repl_gram.c" /* yacc.c:1652 */ +#line 1385 "repl_gram.c" break; - case 23: -#line 191 "repl_gram.y" /* yacc.c:1652 */ - { + case 22: /* base_backup_opt: K_FAST */ +#line 187 "repl_gram.y" + { (yyval.defelt) = makeDefElem("fast", (Node *)makeInteger(true), -1); } -#line 1438 "repl_gram.c" /* yacc.c:1652 */ +#line 1394 "repl_gram.c" break; - case 24: -#line 196 "repl_gram.y" /* yacc.c:1652 */ - { + case 23: /* base_backup_opt: K_WAL */ +#line 192 "repl_gram.y" + { (yyval.defelt) = makeDefElem("wal", (Node *)makeInteger(true), -1); } -#line 1447 "repl_gram.c" /* yacc.c:1652 */ +#line 1403 "repl_gram.c" break; - case 25: -#line 201 "repl_gram.y" /* yacc.c:1652 */ - { + case 24: /* base_backup_opt: K_NOWAIT */ +#line 197 "repl_gram.y" + { (yyval.defelt) = makeDefElem("nowait", (Node *)makeInteger(true), -1); } -#line 1456 "repl_gram.c" /* yacc.c:1652 */ +#line 1412 "repl_gram.c" break; - case 26: -#line 206 "repl_gram.y" /* yacc.c:1652 */ - { + case 25: /* base_backup_opt: K_MAX_RATE UCONST */ +#line 202 "repl_gram.y" + { (yyval.defelt) = makeDefElem("max_rate", (Node *)makeInteger((yyvsp[0].uintval)), -1); } -#line 1465 "repl_gram.c" /* yacc.c:1652 */ +#line 1421 "repl_gram.c" break; - case 27: -#line 211 "repl_gram.y" /* yacc.c:1652 */ - { + case 26: /* base_backup_opt: K_TABLESPACE_MAP */ +#line 207 "repl_gram.y" + { (yyval.defelt) = makeDefElem("tablespace_map", (Node *)makeInteger(true), -1); } -#line 1474 "repl_gram.c" /* yacc.c:1652 */ +#line 1430 "repl_gram.c" break; - case 28: -#line 216 "repl_gram.y" /* yacc.c:1652 */ - { + case 27: /* base_backup_opt: K_NOVERIFY_CHECKSUMS */ +#line 212 "repl_gram.y" + { (yyval.defelt) = makeDefElem("noverify_checksums", (Node *)makeInteger(true), -1); } -#line 1483 "repl_gram.c" /* yacc.c:1652 */ +#line 1439 "repl_gram.c" break; - case 29: -#line 221 "repl_gram.y" /* yacc.c:1652 */ - { + case 28: /* base_backup_opt: K_MANIFEST SCONST */ +#line 217 "repl_gram.y" + { (yyval.defelt) = makeDefElem("manifest", (Node *)makeString((yyvsp[0].str)), -1); } -#line 1492 "repl_gram.c" /* yacc.c:1652 */ +#line 1448 "repl_gram.c" break; - case 30: -#line 226 "repl_gram.y" /* yacc.c:1652 */ - { + case 29: /* base_backup_opt: K_MANIFEST_CHECKSUMS SCONST */ +#line 222 "repl_gram.y" + { (yyval.defelt) = makeDefElem("manifest_checksums", (Node *)makeString((yyvsp[0].str)), -1); } -#line 1501 "repl_gram.c" /* yacc.c:1652 */ +#line 1457 "repl_gram.c" break; - case 31: -#line 235 "repl_gram.y" /* yacc.c:1652 */ - { + case 30: /* create_replication_slot: K_CREATE_REPLICATION_SLOT IDENT opt_temporary K_PHYSICAL create_slot_opt_list */ +#line 231 "repl_gram.y" + { CreateReplicationSlotCmd *cmd; cmd = makeNode(CreateReplicationSlotCmd); cmd->kind = REPLICATION_KIND_PHYSICAL; @@ -1511,12 +1467,12 @@ cmd->options = (yyvsp[0].list); (yyval.node) = (Node *) cmd; } -#line 1515 "repl_gram.c" /* yacc.c:1652 */ +#line 1471 "repl_gram.c" break; - case 32: -#line 246 "repl_gram.y" /* yacc.c:1652 */ - { + case 31: /* create_replication_slot: K_CREATE_REPLICATION_SLOT IDENT opt_temporary K_LOGICAL IDENT create_slot_opt_list */ +#line 242 "repl_gram.y" + { CreateReplicationSlotCmd *cmd; cmd = makeNode(CreateReplicationSlotCmd); cmd->kind = REPLICATION_KIND_LOGICAL; @@ -1526,84 +1482,84 @@ cmd->options = (yyvsp[0].list); (yyval.node) = (Node *) cmd; } -#line 1530 "repl_gram.c" /* yacc.c:1652 */ +#line 1486 "repl_gram.c" break; - case 33: -#line 260 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 1536 "repl_gram.c" /* yacc.c:1652 */ + case 32: /* create_slot_opt_list: create_slot_opt_list create_slot_opt */ +#line 256 "repl_gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 1492 "repl_gram.c" break; - case 34: -#line 262 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 1542 "repl_gram.c" /* yacc.c:1652 */ + case 33: /* create_slot_opt_list: %empty */ +#line 258 "repl_gram.y" + { (yyval.list) = NIL; } +#line 1498 "repl_gram.c" break; - case 35: -#line 267 "repl_gram.y" /* yacc.c:1652 */ - { + case 34: /* create_slot_opt: K_EXPORT_SNAPSHOT */ +#line 263 "repl_gram.y" + { (yyval.defelt) = makeDefElem("export_snapshot", (Node *)makeInteger(true), -1); } -#line 1551 "repl_gram.c" /* yacc.c:1652 */ +#line 1507 "repl_gram.c" break; - case 36: -#line 272 "repl_gram.y" /* yacc.c:1652 */ - { + case 35: /* create_slot_opt: K_NOEXPORT_SNAPSHOT */ +#line 268 "repl_gram.y" + { (yyval.defelt) = makeDefElem("export_snapshot", (Node *)makeInteger(false), -1); } -#line 1560 "repl_gram.c" /* yacc.c:1652 */ +#line 1516 "repl_gram.c" break; - case 37: -#line 277 "repl_gram.y" /* yacc.c:1652 */ - { + case 36: /* create_slot_opt: K_USE_SNAPSHOT */ +#line 273 "repl_gram.y" + { (yyval.defelt) = makeDefElem("use_snapshot", (Node *)makeInteger(true), -1); } -#line 1569 "repl_gram.c" /* yacc.c:1652 */ +#line 1525 "repl_gram.c" break; - case 38: -#line 282 "repl_gram.y" /* yacc.c:1652 */ - { + case 37: /* create_slot_opt: K_RESERVE_WAL */ +#line 278 "repl_gram.y" + { (yyval.defelt) = makeDefElem("reserve_wal", (Node *)makeInteger(true), -1); } -#line 1578 "repl_gram.c" /* yacc.c:1652 */ +#line 1534 "repl_gram.c" break; - case 39: -#line 291 "repl_gram.y" /* yacc.c:1652 */ - { + case 38: /* drop_replication_slot: K_DROP_REPLICATION_SLOT IDENT */ +#line 287 "repl_gram.y" + { DropReplicationSlotCmd *cmd; cmd = makeNode(DropReplicationSlotCmd); cmd->slotname = (yyvsp[0].str); cmd->wait = false; (yyval.node) = (Node *) cmd; } -#line 1590 "repl_gram.c" /* yacc.c:1652 */ +#line 1546 "repl_gram.c" break; - case 40: -#line 299 "repl_gram.y" /* yacc.c:1652 */ - { + case 39: /* drop_replication_slot: K_DROP_REPLICATION_SLOT IDENT K_WAIT */ +#line 295 "repl_gram.y" + { DropReplicationSlotCmd *cmd; cmd = makeNode(DropReplicationSlotCmd); cmd->slotname = (yyvsp[-1].str); cmd->wait = true; (yyval.node) = (Node *) cmd; } -#line 1602 "repl_gram.c" /* yacc.c:1652 */ +#line 1558 "repl_gram.c" break; - case 41: -#line 313 "repl_gram.y" /* yacc.c:1652 */ - { + case 40: /* start_replication: K_START_REPLICATION opt_slot opt_physical RECPTR opt_timeline */ +#line 309 "repl_gram.y" + { StartReplicationCmd *cmd; cmd = makeNode(StartReplicationCmd); @@ -1613,12 +1569,12 @@ cmd->timeline = (yyvsp[0].uintval); (yyval.node) = (Node *) cmd; } -#line 1617 "repl_gram.c" /* yacc.c:1652 */ +#line 1573 "repl_gram.c" break; - case 42: -#line 328 "repl_gram.y" /* yacc.c:1652 */ - { + case 41: /* start_logical_replication: K_START_REPLICATION K_SLOT IDENT K_LOGICAL RECPTR plugin_options */ +#line 324 "repl_gram.y" + { StartReplicationCmd *cmd; cmd = makeNode(StartReplicationCmd); cmd->kind = REPLICATION_KIND_LOGICAL; @@ -1627,12 +1583,12 @@ cmd->options = (yyvsp[0].list); (yyval.node) = (Node *) cmd; } -#line 1631 "repl_gram.c" /* yacc.c:1652 */ +#line 1587 "repl_gram.c" break; - case 43: -#line 343 "repl_gram.y" /* yacc.c:1652 */ - { + case 42: /* timeline_history: K_TIMELINE_HISTORY UCONST */ +#line 339 "repl_gram.y" + { TimeLineHistoryCmd *cmd; if ((yyvsp[0].uintval) <= 0) @@ -1645,107 +1601,102 @@ (yyval.node) = (Node *) cmd; } -#line 1649 "repl_gram.c" /* yacc.c:1652 */ +#line 1605 "repl_gram.c" break; - case 46: -#line 364 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.boolval) = true; } -#line 1655 "repl_gram.c" /* yacc.c:1652 */ + case 45: /* opt_temporary: K_TEMPORARY */ +#line 360 "repl_gram.y" + { (yyval.boolval) = true; } +#line 1611 "repl_gram.c" break; - case 47: -#line 365 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.boolval) = false; } -#line 1661 "repl_gram.c" /* yacc.c:1652 */ + case 46: /* opt_temporary: %empty */ +#line 361 "repl_gram.y" + { (yyval.boolval) = false; } +#line 1617 "repl_gram.c" break; - case 48: -#line 370 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 1667 "repl_gram.c" /* yacc.c:1652 */ + case 47: /* opt_slot: K_SLOT IDENT */ +#line 366 "repl_gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 1623 "repl_gram.c" break; - case 49: -#line 372 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 1673 "repl_gram.c" /* yacc.c:1652 */ + case 48: /* opt_slot: %empty */ +#line 368 "repl_gram.y" + { (yyval.str) = NULL; } +#line 1629 "repl_gram.c" break; - case 50: -#line 377 "repl_gram.y" /* yacc.c:1652 */ - { + case 49: /* opt_timeline: K_TIMELINE UCONST */ +#line 373 "repl_gram.y" + { if ((yyvsp[0].uintval) <= 0) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid timeline %u", (yyvsp[0].uintval)))); (yyval.uintval) = (yyvsp[0].uintval); } -#line 1685 "repl_gram.c" /* yacc.c:1652 */ +#line 1641 "repl_gram.c" break; - case 51: -#line 384 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.uintval) = 0; } -#line 1691 "repl_gram.c" /* yacc.c:1652 */ + case 50: /* opt_timeline: %empty */ +#line 380 "repl_gram.y" + { (yyval.uintval) = 0; } +#line 1647 "repl_gram.c" break; - case 52: -#line 389 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.list) = (yyvsp[-1].list); } -#line 1697 "repl_gram.c" /* yacc.c:1652 */ + case 51: /* plugin_options: '(' plugin_opt_list ')' */ +#line 385 "repl_gram.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 1653 "repl_gram.c" break; - case 53: -#line 390 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 1703 "repl_gram.c" /* yacc.c:1652 */ + case 52: /* plugin_options: %empty */ +#line 386 "repl_gram.y" + { (yyval.list) = NIL; } +#line 1659 "repl_gram.c" break; - case 54: -#line 395 "repl_gram.y" /* yacc.c:1652 */ - { + case 53: /* plugin_opt_list: plugin_opt_elem */ +#line 391 "repl_gram.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 1711 "repl_gram.c" /* yacc.c:1652 */ +#line 1667 "repl_gram.c" break; - case 55: -#line 399 "repl_gram.y" /* yacc.c:1652 */ - { + case 54: /* plugin_opt_list: plugin_opt_list ',' plugin_opt_elem */ +#line 395 "repl_gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 1719 "repl_gram.c" /* yacc.c:1652 */ +#line 1675 "repl_gram.c" break; - case 56: -#line 406 "repl_gram.y" /* yacc.c:1652 */ - { + case 55: /* plugin_opt_elem: IDENT plugin_opt_arg */ +#line 402 "repl_gram.y" + { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), -1); } -#line 1727 "repl_gram.c" /* yacc.c:1652 */ +#line 1683 "repl_gram.c" break; - case 57: -#line 412 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } -#line 1733 "repl_gram.c" /* yacc.c:1652 */ + case 56: /* plugin_opt_arg: SCONST */ +#line 408 "repl_gram.y" + { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } +#line 1689 "repl_gram.c" break; - case 58: -#line 413 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.node) = NULL; } -#line 1739 "repl_gram.c" /* yacc.c:1652 */ + case 57: /* plugin_opt_arg: %empty */ +#line 409 "repl_gram.y" + { (yyval.node) = NULL; } +#line 1695 "repl_gram.c" break; - case 59: -#line 417 "repl_gram.y" /* yacc.c:1652 */ - { (yyval.node) = (Node *) make_sqlcmd(); } -#line 1745 "repl_gram.c" /* yacc.c:1652 */ - break; +#line 1699 "repl_gram.c" -#line 1749 "repl_gram.c" /* yacc.c:1652 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1759,11 +1710,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1787,50 +1737,14 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } - - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -1879,13 +1793,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -1899,7 +1814,7 @@ yydestruct ("Error: popping", - yystos[yystate], yyvsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -1911,7 +1826,7 @@ /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1933,20 +1848,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -1963,36 +1878,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 419 "repl_gram.y" /* yacc.c:1918 */ +#line 412 "repl_gram.y" -static SQLCmd * -make_sqlcmd(void) -{ - SQLCmd *cmd = makeNode(SQLCmd); - int tok; - - /* Just move lexer to the end of command. */ - for (;;) - { - tok = yylex(); - if (tok == ';' || tok == 0) - break; - } - return cmd; -} #include "repl_scanner.c" diff -Nru postgresql-13-13.4/src/backend/replication/repl_gram.y postgresql-13-13.7/src/backend/replication/repl_gram.y --- postgresql-13-13.4/src/backend/replication/repl_gram.y 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/repl_gram.y 2022-05-09 21:16:30.000000000 +0000 @@ -25,8 +25,6 @@ /* Result of the parsing is returned here */ Node *replication_parse_result; -static SQLCmd *make_sqlcmd(void); - /* * Bison doesn't allocate anything that needs to live across parser calls, @@ -59,7 +57,6 @@ %token SCONST IDENT %token UCONST %token RECPTR -%token T_WORD /* Keyword tokens. */ %token K_BASE_BACKUP @@ -93,7 +90,7 @@ %type command %type base_backup start_replication start_logical_replication create_replication_slot drop_replication_slot identify_system - timeline_history show sql_cmd + timeline_history show %type base_backup_opt_list %type base_backup_opt %type opt_timeline @@ -126,7 +123,6 @@ | drop_replication_slot | timeline_history | show - | sql_cmd ; /* @@ -413,25 +409,6 @@ | /* EMPTY */ { $$ = NULL; } ; -sql_cmd: - IDENT { $$ = (Node *) make_sqlcmd(); } - ; %% -static SQLCmd * -make_sqlcmd(void) -{ - SQLCmd *cmd = makeNode(SQLCmd); - int tok; - - /* Just move lexer to the end of command. */ - for (;;) - { - tok = yylex(); - if (tok == ';' || tok == 0) - break; - } - return cmd; -} - #include "repl_scanner.c" diff -Nru postgresql-13-13.4/src/backend/replication/repl_scanner.c postgresql-13-13.7/src/backend/replication/repl_scanner.c --- postgresql-13-13.4/src/backend/replication/repl_scanner.c 2021-08-09 21:03:31.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/repl_scanner.c 2022-05-09 21:29:44.000000000 +0000 @@ -614,8 +614,8 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 46 -#define YY_END_OF_BUFFER 47 +#define YY_NUM_RULES 40 +#define YY_END_OF_BUFFER 41 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -623,307 +623,307 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[299] = +static const flex_int16_t yy_accept[295] = { 0, - 0, 0, 0, 0, 0, 0, 47, 45, 33, 32, - 34, 41, 37, 30, 31, 28, 35, 29, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 40, 38, 43, 42, 0, - 35, 0, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 40, 39, 43, 36, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 9, 44, 44, 44, 44, 2, 44, - - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 4, 20, 44, 44, 44, 44, 44, 25, 44, 44, - 44, 44, 44, 5, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 6, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 19, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 26, 8, 44, 44, 17, 7, 44, 44, 44, 44, - 12, 44, 44, 44, 44, 44, 44, 44, 44, 44, - - 44, 44, 44, 21, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 1, - 44, 44, 44, 44, 44, 44, 44, 18, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 24, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 10, 44, 44, 44, 22, 3, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 16, 44, - 44, 44, 23, 44, 13, 44, 44, 27, 11, 44, - 44, 44, 44, 44, 15, 44, 14, 0 + 0, 0, 0, 0, 0, 0, 41, 39, 28, 28, + 35, 31, 29, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 37, 36, 34, 32, 28, 0, 29, 0, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 37, 34, 33, 30, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 9, + 38, 38, 38, 38, 2, 38, 38, 38, 38, 38, + + 38, 38, 38, 38, 38, 38, 4, 20, 38, 38, + 38, 38, 38, 25, 38, 38, 38, 38, 38, 5, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 6, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 19, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 26, 8, 38, 38, + 17, 7, 38, 38, 38, 38, 12, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 21, + + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 1, 38, 38, 38, 38, + 38, 38, 38, 18, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 24, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 10, 38, 38, + 38, 22, 3, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 16, 38, 38, 38, 23, 38, + 13, 38, 38, 27, 11, 38, 38, 38, 38, 38, + 15, 38, 14, 0 } ; 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 1, 5, 1, 6, 1, 1, 7, 8, - 9, 1, 1, 10, 1, 1, 11, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 1, 13, 1, - 1, 1, 1, 1, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 23, 30, 31, 32, 33, 34, 35, 36, 37, 23, - 1, 1, 1, 1, 38, 1, 23, 23, 23, 23, - - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 1, 1, 1, 1, 1, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39 + 1, 2, 1, 4, 1, 5, 1, 1, 6, 1, + 1, 1, 1, 1, 1, 1, 7, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, + 1, 1, 1, 1, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 18, 25, 26, 27, 28, 29, 30, 31, 32, 18, + 1, 1, 1, 1, 33, 1, 34, 34, 34, 34, + + 34, 34, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 1, 1, 1, 1, 1, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18 } ; -static const YY_CHAR yy_meta[40] = +static const YY_CHAR yy_meta[35] = { 0, - 1, 1, 1, 1, 2, 3, 4, 1, 1, 1, - 5, 6, 1, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 3, 3 + 1, 1, 1, 2, 3, 4, 5, 6, 6, 6, + 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 6 } ; -static const flex_int16_t yy_base[307] = +static const flex_int16_t yy_base[302] = { 0, - 0, 0, 596, 595, 596, 595, 599, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 29, 604, 36, 38, - 40, 42, 48, 44, 50, 84, 29, 57, 78, 79, - 88, 82, 87, 77, 0, 0, 591, 0, 604, 0, - 51, 586, 0, 89, 97, 112, 105, 107, 110, 125, - 117, 128, 123, 140, 132, 133, 135, 143, 148, 150, - 158, 151, 156, 167, 166, 0, 604, 0, 0, 169, - 175, 176, 178, 179, 182, 184, 186, 199, 187, 202, - 204, 203, 205, 206, 221, 209, 214, 215, 226, 227, - 234, 233, 236, 239, 244, 245, 246, 251, 252, 255, - - 261, 262, 274, 566, 271, 277, 281, 282, 278, 283, - 284, 287, 300, 302, 303, 308, 564, 307, 579, 309, - 563, 310, 312, 311, 315, 327, 578, 330, 332, 333, - 334, 335, 338, 342, 343, 345, 354, 564, 576, 350, - 571, 353, 365, 369, 371, 556, 373, 376, 372, 378, - 382, 391, 557, 393, 384, 397, 572, 569, 554, 554, - 551, 400, 401, 402, 563, 403, 404, 419, 412, 422, - 562, 424, 425, 428, 550, 554, 559, 551, 548, 431, - 434, 0, 435, 437, 440, 443, 539, 544, 450, 453, - 456, 541, 538, 541, 547, 554, 536, 550, 534, 548, - - 549, 537, 465, 460, 540, 539, 530, 533, 541, 527, - 518, 533, 526, 531, 526, 528, 463, 527, 520, 0, - 525, 532, 514, 513, 525, 528, 523, 0, 524, 513, - 507, 505, 520, 499, 506, 490, 505, 488, 484, 485, - 484, 465, 0, 482, 473, 464, 471, 463, 455, 461, - 450, 451, 448, 429, 430, 395, 397, 389, 387, 358, - 355, 0, 339, 329, 292, 0, 0, 285, 266, 237, - 235, 220, 196, 161, 141, 123, 126, 117, 0, 107, - 98, 96, 0, 83, 0, 56, 48, 0, 0, 38, - 40, 41, 33, 36, 0, 28, 0, 604, 501, 507, + 0, 0, 606, 605, 602, 601, 606, 611, 33, 35, + 611, 611, 32, 34, 62, 40, 41, 46, 596, 597, + 44, 55, 45, 56, 73, 46, 74, 75, 60, 51, + 0, 611, 0, 597, 97, 0, 95, 595, 594, 591, + 78, 78, 86, 88, 88, 98, 100, 101, 99, 106, + 108, 110, 111, 115, 116, 117, 118, 113, 120, 135, + 136, 0, 0, 611, 0, 137, 122, 125, 138, 139, + 140, 144, 147, 148, 50, 145, 156, 151, 152, 160, + 161, 163, 164, 165, 166, 170, 172, 173, 174, 592, + 175, 176, 177, 180, 591, 182, 191, 181, 188, 189, + + 192, 190, 200, 205, 193, 206, 590, 589, 197, 212, + 213, 214, 216, 588, 219, 220, 221, 223, 228, 587, + 230, 225, 234, 233, 237, 240, 241, 242, 244, 246, + 250, 252, 251, 253, 254, 255, 257, 258, 264, 262, + 259, 265, 273, 267, 586, 277, 276, 280, 282, 287, + 288, 283, 292, 289, 296, 299, 301, 297, 585, 303, + 302, 305, 306, 311, 307, 309, 312, 313, 310, 321, + 317, 329, 330, 319, 333, 337, 338, 584, 339, 340, + 583, 582, 344, 342, 343, 345, 346, 349, 350, 352, + 351, 353, 354, 356, 357, 358, 375, 374, 378, 579, + + 379, 380, 381, 382, 386, 383, 385, 392, 391, 393, + 394, 399, 396, 403, 404, 571, 405, 412, 397, 408, + 411, 419, 418, 567, 425, 423, 426, 428, 430, 431, + 432, 433, 435, 438, 436, 442, 447, 443, 550, 450, + 446, 454, 458, 457, 459, 460, 461, 462, 466, 465, + 467, 468, 473, 471, 475, 474, 476, 549, 477, 489, + 491, 548, 546, 480, 492, 494, 496, 497, 498, 500, + 502, 503, 504, 505, 545, 509, 510, 511, 543, 513, + 542, 507, 521, 541, 540, 517, 519, 525, 527, 528, + 539, 531, 537, 611, 558, 564, 566, 570, 576, 582, - 509, 513, 517, 523, 529, 39 + 55 } ; -static const flex_int16_t yy_def[307] = +static const flex_int16_t yy_def[302] = { 0, - 298, 1, 299, 299, 300, 300, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 301, 298, 302, 302, - 302, 302, 302, 302, 302, 302, 26, 26, 26, 26, - 26, 26, 26, 26, 303, 304, 298, 305, 298, 306, - 301, 301, 303, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 304, 298, 305, 306, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - - 26, 26, 26, 303, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 303, 26, 303, 26, - 303, 26, 26, 26, 26, 26, 303, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 303, 303, 26, - 303, 26, 26, 26, 26, 303, 26, 26, 26, 26, - 26, 26, 303, 26, 26, 26, 303, 303, 303, 303, - 303, 26, 26, 26, 303, 26, 26, 26, 26, 26, - 303, 26, 26, 26, 303, 303, 303, 303, 303, 26, - 26, 303, 26, 26, 26, 26, 303, 303, 26, 26, - 26, 303, 303, 303, 303, 303, 303, 303, 303, 303, - - 303, 303, 26, 26, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 26, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 0, 298, 298, - - 298, 298, 298, 298, 298, 298 - } ; + 294, 1, 295, 295, 296, 296, 294, 294, 294, 294, + 294, 294, 297, 298, 298, 15, 15, 15, 15, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 299, 294, 300, 294, 294, 301, 297, 297, 298, 15, + 15, 298, 298, 298, 15, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 299, 300, 294, 301, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, -static const flex_int16_t yy_nxt[644] = - { 0, - 8, 9, 10, 11, 12, 8, 13, 14, 15, 16, - 8, 17, 18, 19, 20, 21, 22, 23, 24, 19, - 19, 25, 19, 19, 26, 27, 28, 19, 29, 30, - 31, 32, 33, 19, 34, 19, 19, 35, 35, 40, - 41, 43, 53, 43, 69, 43, 40, 43, 40, 43, - 40, 45, 40, 43, 40, 43, 44, 49, 40, 297, - 40, 40, 41, 296, 295, 294, 50, 293, 292, 46, - 44, 47, 291, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 48, 54, 43, 43, 43, 43, 43, - 65, 44, 44, 290, 40, 61, 57, 51, 55, 62, - - 44, 44, 44, 63, 44, 44, 44, 56, 58, 44, - 44, 52, 59, 289, 44, 44, 44, 64, 44, 60, - 44, 43, 43, 44, 44, 44, 288, 70, 287, 71, - 44, 76, 72, 286, 44, 73, 44, 44, 44, 44, - 74, 44, 75, 285, 44, 44, 44, 77, 44, 78, - 44, 284, 44, 44, 283, 44, 44, 80, 79, 44, - 84, 44, 44, 88, 44, 85, 282, 44, 83, 44, - 86, 44, 89, 81, 82, 87, 90, 44, 44, 44, - 44, 91, 44, 44, 92, 44, 95, 93, 96, 44, - 94, 44, 44, 44, 44, 44, 44, 44, 281, 44, - - 44, 101, 44, 44, 97, 98, 44, 102, 100, 44, - 99, 44, 44, 44, 44, 44, 107, 44, 44, 44, - 103, 106, 44, 280, 104, 109, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 108, 44, 105, 110, 44, - 44, 44, 44, 111, 113, 112, 44, 44, 44, 44, - 114, 116, 44, 44, 44, 115, 279, 44, 44, 44, - 44, 44, 278, 44, 44, 44, 44, 118, 44, 277, - 117, 44, 44, 44, 44, 44, 120, 125, 44, 44, - 122, 119, 44, 121, 44, 124, 123, 44, 44, 44, - 44, 44, 126, 276, 44, 44, 44, 44, 44, 128, - - 44, 44, 130, 131, 44, 44, 129, 132, 44, 44, - 44, 44, 133, 44, 44, 44, 44, 275, 274, 135, - 44, 44, 44, 44, 44, 44, 140, 44, 144, 44, - 136, 134, 137, 143, 44, 44, 44, 44, 44, 44, - 44, 142, 44, 44, 145, 44, 44, 44, 44, 150, - 273, 44, 151, 148, 44, 44, 44, 147, 44, 44, - 44, 44, 44, 44, 149, 44, 44, 44, 272, 44, - 44, 152, 44, 154, 155, 156, 271, 44, 44, 153, - 44, 44, 44, 162, 44, 44, 44, 159, 270, 44, - 161, 168, 44, 163, 167, 44, 44, 173, 44, 44, - - 44, 164, 166, 44, 44, 44, 44, 269, 170, 44, - 44, 44, 169, 44, 44, 44, 44, 44, 44, 268, - 44, 172, 267, 174, 44, 44, 266, 44, 44, 44, - 44, 44, 44, 181, 183, 44, 180, 189, 44, 44, - 184, 44, 186, 185, 44, 191, 44, 44, 44, 44, - 44, 44, 44, 44, 190, 44, 44, 265, 44, 187, - 264, 44, 44, 44, 44, 203, 44, 44, 197, 44, - 44, 198, 199, 44, 200, 263, 44, 44, 44, 262, - 44, 261, 217, 44, 260, 259, 258, 44, 257, 204, - 44, 256, 44, 205, 255, 254, 253, 252, 251, 250, - - 230, 36, 36, 36, 36, 36, 36, 38, 38, 38, - 38, 38, 38, 42, 42, 44, 249, 44, 44, 43, - 248, 247, 43, 66, 66, 66, 246, 66, 66, 68, - 245, 68, 68, 68, 68, 244, 243, 242, 241, 240, - 239, 238, 237, 236, 235, 234, 233, 232, 231, 229, - 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, - 218, 216, 215, 214, 213, 212, 211, 210, 209, 208, - 207, 206, 202, 201, 196, 195, 194, 193, 192, 188, - 182, 179, 178, 177, 176, 175, 171, 165, 160, 158, - 157, 146, 141, 139, 138, 127, 40, 67, 298, 39, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 39, 37, 37, 7, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298 + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 0, 294, 294, 294, 294, 294, 294, + + 294 + } ; + +static const flex_int16_t yy_nxt[646] = + { 0, + 8, 9, 10, 11, 8, 12, 8, 13, 14, 15, + 16, 17, 18, 19, 20, 20, 21, 20, 20, 22, + 23, 24, 20, 25, 26, 27, 28, 29, 20, 30, + 20, 20, 20, 14, 35, 35, 35, 35, 36, 37, + 36, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 294, 294, 294, 49, 40, 46, 294, 294, 53, 61, + 65, 294, 294, 47, 42, 43, 294, 40, 36, 40, + 41, 40, 40, 40, 40, 40, 44, 48, 50, 294, + 294, 294, 100, 57, 294, 60, 40, 58, 51, 54, + 67, 59, 294, 55, 294, 40, 40, 52, 35, 35, + + 56, 36, 37, 66, 294, 294, 294, 294, 68, 72, + 71, 69, 294, 70, 294, 73, 294, 294, 76, 294, + 74, 294, 294, 294, 294, 84, 294, 85, 294, 75, + 92, 294, 80, 86, 77, 78, 81, 82, 83, 79, + 87, 294, 294, 294, 294, 294, 294, 88, 93, 91, + 294, 294, 89, 294, 294, 90, 97, 294, 294, 103, + 94, 96, 294, 98, 99, 95, 294, 294, 102, 294, + 294, 294, 294, 106, 105, 101, 294, 104, 294, 294, + 294, 294, 294, 294, 112, 110, 294, 294, 294, 109, + 108, 121, 107, 111, 294, 294, 294, 294, 294, 294, + + 114, 122, 116, 294, 118, 113, 294, 115, 119, 117, + 120, 294, 294, 123, 125, 124, 126, 128, 294, 294, + 294, 127, 294, 130, 131, 294, 294, 294, 135, 294, + 129, 294, 136, 133, 294, 132, 294, 141, 140, 294, + 294, 134, 142, 294, 139, 137, 294, 294, 294, 138, + 294, 146, 294, 144, 147, 143, 294, 294, 294, 294, + 294, 294, 154, 294, 294, 294, 145, 152, 294, 156, + 294, 294, 148, 294, 153, 150, 151, 158, 149, 294, + 163, 159, 294, 294, 160, 164, 294, 155, 294, 294, + 157, 161, 166, 294, 294, 294, 169, 162, 294, 172, + + 171, 165, 294, 294, 170, 294, 167, 294, 294, 294, + 168, 294, 294, 294, 178, 294, 294, 294, 294, 294, + 173, 185, 174, 294, 184, 294, 175, 294, 176, 177, + 181, 179, 182, 187, 186, 294, 294, 180, 191, 294, + 188, 183, 190, 294, 294, 294, 294, 189, 294, 294, + 294, 294, 294, 199, 192, 294, 294, 294, 294, 294, + 294, 206, 294, 294, 294, 198, 208, 205, 210, 193, + 194, 195, 196, 197, 202, 204, 200, 203, 201, 207, + 294, 294, 209, 211, 294, 294, 294, 294, 294, 294, + 213, 294, 294, 212, 214, 215, 218, 294, 294, 294, + + 294, 217, 294, 294, 216, 294, 219, 221, 223, 294, + 294, 294, 222, 224, 294, 225, 220, 294, 294, 227, + 230, 229, 231, 233, 294, 294, 228, 234, 226, 294, + 235, 294, 294, 232, 294, 236, 294, 294, 294, 294, + 240, 294, 294, 237, 294, 244, 246, 242, 294, 294, + 247, 238, 294, 294, 239, 248, 294, 241, 250, 243, + 294, 245, 251, 294, 294, 294, 294, 294, 294, 249, + 253, 294, 294, 294, 294, 254, 252, 294, 256, 294, + 294, 294, 294, 294, 255, 258, 294, 257, 259, 261, + 265, 260, 267, 263, 262, 294, 264, 294, 294, 266, + + 294, 268, 294, 294, 294, 269, 294, 271, 294, 294, + 294, 294, 270, 294, 272, 294, 294, 294, 274, 294, + 276, 273, 278, 294, 280, 294, 281, 294, 275, 279, + 282, 294, 277, 294, 294, 283, 284, 294, 285, 286, + 287, 289, 288, 294, 290, 294, 294, 294, 294, 294, + 292, 294, 294, 291, 294, 294, 294, 293, 31, 31, + 31, 31, 31, 31, 33, 33, 33, 33, 33, 33, + 38, 38, 39, 294, 39, 39, 62, 294, 62, 62, + 62, 62, 63, 63, 63, 294, 63, 63, 294, 294, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 40, + + 294, 36, 64, 294, 45, 294, 34, 34, 32, 32, + 7, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294 } ; -static const flex_int16_t yy_chk[644] = +static const flex_int16_t yy_chk[646] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 17, - 17, 19, 27, 20, 306, 21, 19, 22, 20, 24, - 21, 20, 22, 23, 24, 25, 27, 24, 23, 296, - 25, 41, 41, 294, 293, 292, 25, 291, 290, 21, - 28, 22, 287, 19, 19, 20, 20, 21, 21, 22, - 22, 24, 24, 23, 28, 23, 23, 25, 25, 26, - 34, 29, 30, 286, 26, 32, 30, 26, 29, 32, - - 33, 31, 44, 32, 34, 29, 30, 29, 31, 32, - 45, 26, 31, 284, 33, 31, 44, 33, 47, 31, - 48, 26, 26, 49, 45, 46, 282, 45, 281, 46, - 51, 51, 47, 280, 48, 48, 53, 49, 50, 46, - 49, 52, 50, 278, 51, 55, 56, 52, 57, 53, - 53, 277, 50, 54, 276, 52, 58, 54, 53, 55, - 56, 59, 57, 60, 62, 57, 275, 54, 55, 63, - 58, 61, 61, 54, 54, 59, 62, 60, 62, 65, - 64, 63, 70, 63, 64, 61, 70, 65, 71, 72, - 65, 73, 74, 65, 64, 75, 70, 76, 274, 77, - - 79, 76, 71, 72, 72, 73, 74, 77, 75, 75, - 74, 76, 78, 77, 79, 80, 82, 81, 83, 84, - 78, 81, 86, 273, 79, 84, 78, 87, 88, 80, - 82, 81, 83, 84, 85, 83, 86, 80, 85, 89, - 90, 87, 88, 86, 88, 87, 92, 91, 85, 93, - 89, 91, 94, 89, 90, 90, 272, 95, 96, 97, - 92, 91, 271, 93, 98, 99, 94, 93, 100, 270, - 92, 95, 96, 97, 101, 102, 96, 102, 98, 99, - 98, 95, 100, 97, 105, 101, 100, 103, 101, 102, - 106, 109, 103, 269, 107, 108, 110, 111, 105, 105, - - 112, 103, 107, 108, 106, 109, 106, 109, 107, 108, - 110, 111, 110, 113, 112, 114, 115, 268, 265, 114, - 118, 116, 120, 122, 124, 123, 120, 113, 125, 114, - 115, 113, 116, 123, 118, 116, 120, 122, 124, 123, - 126, 122, 125, 128, 126, 129, 130, 131, 132, 131, - 264, 133, 132, 129, 126, 134, 135, 128, 136, 129, - 130, 131, 132, 140, 130, 133, 142, 137, 263, 134, - 135, 133, 136, 135, 136, 137, 261, 140, 143, 134, - 142, 137, 144, 143, 145, 149, 147, 140, 260, 148, - 142, 150, 143, 144, 148, 151, 144, 155, 145, 149, - - 147, 145, 147, 148, 152, 150, 154, 259, 152, 151, - 156, 155, 151, 162, 163, 164, 166, 167, 152, 258, - 154, 154, 257, 156, 156, 169, 256, 162, 163, 164, - 166, 167, 168, 164, 166, 170, 162, 172, 173, 169, - 167, 174, 169, 168, 180, 174, 168, 181, 183, 170, - 184, 172, 173, 185, 173, 174, 186, 255, 180, 170, - 254, 181, 183, 189, 184, 189, 190, 185, 180, 191, - 186, 181, 183, 204, 184, 253, 217, 189, 203, 252, - 190, 251, 203, 191, 250, 249, 248, 204, 247, 190, - 217, 246, 203, 191, 245, 244, 242, 241, 240, 239, - - 217, 299, 299, 299, 299, 299, 299, 300, 300, 300, - 300, 300, 300, 301, 301, 302, 238, 302, 302, 303, - 237, 236, 303, 304, 304, 304, 235, 304, 304, 305, - 234, 305, 305, 305, 305, 233, 232, 231, 230, 229, - 227, 226, 225, 224, 223, 222, 221, 219, 218, 216, - 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, - 205, 202, 201, 200, 199, 198, 197, 196, 195, 194, - 193, 192, 188, 187, 179, 178, 177, 176, 175, 171, - 165, 161, 160, 159, 158, 157, 153, 146, 141, 139, - 138, 127, 121, 119, 117, 104, 42, 37, 7, 6, - - 5, 4, 3, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298 + 1, 1, 1, 1, 9, 9, 10, 10, 13, 13, + 14, 14, 14, 14, 14, 14, 14, 14, 16, 17, + 21, 23, 26, 23, 18, 21, 75, 30, 26, 30, + 301, 22, 24, 22, 16, 17, 29, 14, 15, 15, + 15, 15, 15, 15, 15, 15, 18, 22, 24, 25, + 27, 28, 75, 28, 42, 29, 41, 28, 25, 27, + 42, 28, 43, 27, 44, 15, 45, 25, 35, 35, + + 27, 37, 37, 41, 46, 49, 47, 48, 43, 47, + 46, 44, 50, 45, 51, 48, 52, 53, 50, 58, + 49, 54, 55, 56, 57, 56, 59, 57, 67, 49, + 67, 68, 52, 58, 50, 50, 53, 54, 55, 51, + 59, 60, 61, 66, 69, 70, 71, 60, 68, 66, + 72, 76, 61, 73, 74, 61, 72, 78, 79, 78, + 69, 71, 77, 73, 74, 70, 80, 81, 77, 82, + 83, 84, 85, 81, 80, 76, 86, 79, 87, 88, + 89, 91, 92, 93, 87, 85, 94, 98, 96, 84, + 83, 98, 82, 86, 99, 100, 102, 97, 101, 105, + + 89, 99, 92, 109, 94, 88, 103, 91, 96, 93, + 97, 104, 106, 100, 102, 101, 103, 105, 110, 111, + 112, 104, 113, 109, 110, 115, 116, 117, 115, 118, + 106, 122, 116, 112, 119, 111, 121, 122, 121, 124, + 123, 113, 123, 125, 119, 117, 126, 127, 128, 118, + 129, 127, 130, 125, 128, 124, 131, 133, 132, 134, + 135, 136, 135, 137, 138, 141, 126, 133, 140, 137, + 139, 142, 129, 144, 134, 131, 132, 139, 130, 143, + 144, 140, 147, 146, 141, 146, 148, 136, 149, 152, + 138, 142, 148, 150, 151, 154, 151, 143, 153, 154, + + 153, 147, 155, 158, 152, 156, 149, 157, 161, 160, + 150, 162, 163, 165, 161, 166, 169, 164, 167, 168, + 155, 168, 156, 171, 167, 174, 157, 170, 158, 160, + 164, 162, 165, 170, 169, 172, 173, 163, 174, 175, + 171, 166, 173, 176, 177, 179, 180, 172, 184, 185, + 183, 186, 187, 185, 175, 188, 189, 191, 190, 192, + 193, 192, 194, 195, 196, 184, 194, 191, 196, 176, + 177, 179, 180, 183, 188, 190, 186, 189, 187, 193, + 198, 197, 195, 197, 199, 201, 202, 203, 204, 206, + 199, 207, 205, 198, 201, 202, 205, 209, 208, 210, + + 211, 204, 213, 219, 203, 212, 206, 208, 210, 214, + 215, 217, 209, 211, 220, 212, 207, 221, 218, 214, + 218, 217, 219, 221, 223, 222, 215, 222, 213, 226, + 223, 225, 227, 220, 228, 225, 229, 230, 231, 232, + 229, 233, 235, 226, 234, 233, 235, 231, 236, 238, + 236, 227, 241, 237, 228, 237, 240, 230, 240, 232, + 242, 234, 241, 244, 243, 245, 246, 247, 248, 238, + 243, 250, 249, 251, 252, 244, 242, 254, 246, 253, + 256, 255, 257, 259, 245, 248, 264, 247, 249, 251, + 255, 250, 257, 253, 252, 260, 254, 261, 265, 256, + + 266, 259, 267, 268, 269, 260, 270, 264, 271, 272, + 273, 274, 261, 282, 265, 276, 277, 278, 267, 280, + 269, 266, 271, 286, 273, 287, 274, 283, 268, 272, + 276, 288, 270, 289, 290, 277, 278, 292, 280, 282, + 283, 287, 286, 293, 288, 291, 285, 284, 281, 279, + 290, 275, 263, 289, 262, 258, 239, 292, 295, 295, + 295, 295, 295, 295, 296, 296, 296, 296, 296, 296, + 297, 297, 298, 224, 298, 298, 299, 216, 299, 299, + 299, 299, 300, 300, 300, 200, 300, 300, 182, 181, + 178, 159, 145, 120, 114, 108, 107, 95, 90, 40, + + 39, 38, 34, 20, 19, 7, 6, 5, 4, 3, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294 } ; static yy_state_type yy_last_accepting_state; @@ -974,6 +974,10 @@ /* Handle to the buffer that the lexer uses internally */ static YY_BUFFER_STATE scanbufhandle; +/* Pushed-back token (we only handle one) */ +static int repl_pushed_back_token; + +/* Work area for collecting literals */ static StringInfoData litbuf; static void startlit(void); @@ -983,8 +987,13 @@ /* LCOV_EXCL_START */ -#line 987 "repl_scanner.c" +#line 991 "repl_scanner.c" #define YY_NO_INPUT 1 +/* + * Exclusive states: + * delimited identifiers (double-quoted identifiers) + * standard single-quoted strings + */ /* Extended quote * xqdouble implements embedded quote, '''' @@ -992,11 +1001,11 @@ /* Double quote * Allows embedded spaces and other special characters into identifiers. */ -#line 996 "repl_scanner.c" +#line 1005 "repl_scanner.c" #define INITIAL 0 -#define xq 1 -#define xd 2 +#define xd 1 +#define xq 2 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way @@ -1209,10 +1218,24 @@ } { -#line 83 "repl_scanner.l" +#line 95 "repl_scanner.l" + + + +#line 99 "repl_scanner.l" + /* This code is inserted at the start of replication_yylex() */ + + /* If we have a pushed-back token, return that. */ + if (repl_pushed_back_token) + { + int result = repl_pushed_back_token; + + repl_pushed_back_token = 0; + return result; + } -#line 1216 "repl_scanner.c" +#line 1239 "repl_scanner.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1239,13 +1262,13 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 299 ) + if ( yy_current_state >= 295 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 298 ); + while ( yy_current_state != 294 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1267,186 +1290,156 @@ case 1: YY_RULE_SETUP -#line 85 "repl_scanner.l" +#line 111 "repl_scanner.l" { return K_BASE_BACKUP; } YY_BREAK case 2: YY_RULE_SETUP -#line 86 "repl_scanner.l" +#line 112 "repl_scanner.l" { return K_FAST; } YY_BREAK case 3: YY_RULE_SETUP -#line 87 "repl_scanner.l" +#line 113 "repl_scanner.l" { return K_IDENTIFY_SYSTEM; } YY_BREAK case 4: YY_RULE_SETUP -#line 88 "repl_scanner.l" +#line 114 "repl_scanner.l" { return K_SHOW; } YY_BREAK case 5: YY_RULE_SETUP -#line 89 "repl_scanner.l" +#line 115 "repl_scanner.l" { return K_LABEL; } YY_BREAK case 6: YY_RULE_SETUP -#line 90 "repl_scanner.l" +#line 116 "repl_scanner.l" { return K_NOWAIT; } YY_BREAK case 7: YY_RULE_SETUP -#line 91 "repl_scanner.l" +#line 117 "repl_scanner.l" { return K_PROGRESS; } YY_BREAK case 8: YY_RULE_SETUP -#line 92 "repl_scanner.l" +#line 118 "repl_scanner.l" { return K_MAX_RATE; } YY_BREAK case 9: YY_RULE_SETUP -#line 93 "repl_scanner.l" +#line 119 "repl_scanner.l" { return K_WAL; } YY_BREAK case 10: YY_RULE_SETUP -#line 94 "repl_scanner.l" +#line 120 "repl_scanner.l" { return K_TABLESPACE_MAP; } YY_BREAK case 11: YY_RULE_SETUP -#line 95 "repl_scanner.l" +#line 121 "repl_scanner.l" { return K_NOVERIFY_CHECKSUMS; } YY_BREAK case 12: YY_RULE_SETUP -#line 96 "repl_scanner.l" +#line 122 "repl_scanner.l" { return K_TIMELINE; } YY_BREAK case 13: YY_RULE_SETUP -#line 97 "repl_scanner.l" +#line 123 "repl_scanner.l" { return K_START_REPLICATION; } YY_BREAK case 14: YY_RULE_SETUP -#line 98 "repl_scanner.l" +#line 124 "repl_scanner.l" { return K_CREATE_REPLICATION_SLOT; } YY_BREAK case 15: YY_RULE_SETUP -#line 99 "repl_scanner.l" +#line 125 "repl_scanner.l" { return K_DROP_REPLICATION_SLOT; } YY_BREAK case 16: YY_RULE_SETUP -#line 100 "repl_scanner.l" +#line 126 "repl_scanner.l" { return K_TIMELINE_HISTORY; } YY_BREAK case 17: YY_RULE_SETUP -#line 101 "repl_scanner.l" +#line 127 "repl_scanner.l" { return K_PHYSICAL; } YY_BREAK case 18: YY_RULE_SETUP -#line 102 "repl_scanner.l" +#line 128 "repl_scanner.l" { return K_RESERVE_WAL; } YY_BREAK case 19: YY_RULE_SETUP -#line 103 "repl_scanner.l" +#line 129 "repl_scanner.l" { return K_LOGICAL; } YY_BREAK case 20: YY_RULE_SETUP -#line 104 "repl_scanner.l" +#line 130 "repl_scanner.l" { return K_SLOT; } YY_BREAK case 21: YY_RULE_SETUP -#line 105 "repl_scanner.l" +#line 131 "repl_scanner.l" { return K_TEMPORARY; } YY_BREAK case 22: YY_RULE_SETUP -#line 106 "repl_scanner.l" +#line 132 "repl_scanner.l" { return K_EXPORT_SNAPSHOT; } YY_BREAK case 23: YY_RULE_SETUP -#line 107 "repl_scanner.l" +#line 133 "repl_scanner.l" { return K_NOEXPORT_SNAPSHOT; } YY_BREAK case 24: YY_RULE_SETUP -#line 108 "repl_scanner.l" +#line 134 "repl_scanner.l" { return K_USE_SNAPSHOT; } YY_BREAK case 25: YY_RULE_SETUP -#line 109 "repl_scanner.l" +#line 135 "repl_scanner.l" { return K_WAIT; } YY_BREAK case 26: YY_RULE_SETUP -#line 110 "repl_scanner.l" +#line 136 "repl_scanner.l" { return K_MANIFEST; } YY_BREAK case 27: YY_RULE_SETUP -#line 111 "repl_scanner.l" +#line 137 "repl_scanner.l" { return K_MANIFEST_CHECKSUMS; } YY_BREAK case 28: +/* rule 28 can match eol */ YY_RULE_SETUP -#line 113 "repl_scanner.l" -{ return ','; } +#line 139 "repl_scanner.l" +{ /* do nothing */ } YY_BREAK case 29: YY_RULE_SETUP -#line 114 "repl_scanner.l" -{ return ';'; } - YY_BREAK -case 30: -YY_RULE_SETUP -#line 115 "repl_scanner.l" -{ return '('; } - YY_BREAK -case 31: -YY_RULE_SETUP -#line 116 "repl_scanner.l" -{ return ')'; } - YY_BREAK -case 32: -/* rule 32 can match eol */ -YY_RULE_SETUP -#line 118 "repl_scanner.l" -; - YY_BREAK -case 33: -YY_RULE_SETUP -#line 119 "repl_scanner.l" -; - YY_BREAK -case 34: -YY_RULE_SETUP -#line 120 "repl_scanner.l" -; - YY_BREAK -case 35: -YY_RULE_SETUP -#line 122 "repl_scanner.l" +#line 141 "repl_scanner.l" { yylval.uintval = strtoul(yytext, NULL, 10); return UCONST; } YY_BREAK -case 36: +case 30: YY_RULE_SETUP -#line 127 "repl_scanner.l" +#line 146 "repl_scanner.l" { uint32 hi, lo; @@ -1456,17 +1449,17 @@ return RECPTR; } YY_BREAK -case 37: +case 31: YY_RULE_SETUP -#line 136 "repl_scanner.l" +#line 155 "repl_scanner.l" { BEGIN(xq); startlit(); } YY_BREAK -case 38: +case 32: YY_RULE_SETUP -#line 141 "repl_scanner.l" +#line 160 "repl_scanner.l" { yyless(1); BEGIN(INITIAL); @@ -1474,32 +1467,32 @@ return SCONST; } YY_BREAK -case 39: +case 33: YY_RULE_SETUP -#line 148 "repl_scanner.l" +#line 167 "repl_scanner.l" { addlitchar('\''); } YY_BREAK -case 40: -/* rule 40 can match eol */ +case 34: +/* rule 34 can match eol */ YY_RULE_SETUP -#line 152 "repl_scanner.l" +#line 171 "repl_scanner.l" { addlit(yytext, yyleng); } YY_BREAK -case 41: +case 35: YY_RULE_SETUP -#line 156 "repl_scanner.l" +#line 175 "repl_scanner.l" { BEGIN(xd); startlit(); } YY_BREAK -case 42: +case 36: YY_RULE_SETUP -#line 161 "repl_scanner.l" +#line 180 "repl_scanner.l" { int len; yyless(1); @@ -1510,17 +1503,17 @@ return IDENT; } YY_BREAK -case 43: -/* rule 43 can match eol */ +case 37: +/* rule 37 can match eol */ YY_RULE_SETUP -#line 171 "repl_scanner.l" +#line 190 "repl_scanner.l" { addlit(yytext, yyleng); } YY_BREAK -case 44: +case 38: YY_RULE_SETUP -#line 175 "repl_scanner.l" +#line 194 "repl_scanner.l" { int len = strlen(yytext); @@ -1528,30 +1521,31 @@ return IDENT; } YY_BREAK +case 39: +YY_RULE_SETUP +#line 201 "repl_scanner.l" +{ + /* Any char not recognized above is returned as itself */ + return yytext[0]; + } + YY_BREAK case YY_STATE_EOF(xq): case YY_STATE_EOF(xd): -#line 182 "repl_scanner.l" +#line 206 "repl_scanner.l" { yyerror("unterminated quoted string"); } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 185 "repl_scanner.l" +#line 209 "repl_scanner.l" { yyterminate(); } YY_BREAK -case 45: -YY_RULE_SETUP -#line 189 "repl_scanner.l" -{ - return T_WORD; - } - YY_BREAK -case 46: +case 40: YY_RULE_SETUP -#line 192 "repl_scanner.l" +#line 213 "repl_scanner.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 1555 "repl_scanner.c" +#line 1549 "repl_scanner.c" case YY_END_OF_BUFFER: { @@ -1847,7 +1841,7 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 299 ) + if ( yy_current_state >= 295 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -1875,11 +1869,11 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 299 ) + if ( yy_current_state >= 295 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 298); + yy_is_jam = (yy_current_state == 294); return yy_is_jam ? 0 : yy_current_state; } @@ -2518,7 +2512,7 @@ #define YYTABLES_NAME "yytables" -#line 192 "repl_scanner.l" +#line 213 "repl_scanner.l" /* LCOV_EXCL_STOP */ @@ -2575,6 +2569,10 @@ memcpy(scanbuf, str, slen); scanbuf[slen] = scanbuf[slen + 1] = YY_END_OF_BUFFER_CHAR; scanbufhandle = yy_scan_buffer(scanbuf, slen + 2); + + /* Make sure we start in proper state */ + BEGIN(INITIAL); + repl_pushed_back_token = 0; } void @@ -2584,3 +2582,34 @@ scanbufhandle = NULL; } +/* + * Check to see if the first token of a command is a WalSender keyword. + * + * To keep repl_scanner.l minimal, we don't ask it to know every construct + * that the core lexer knows. Therefore, we daren't lex more than the + * first token of a general SQL command. That will usually look like an + * IDENT token here, although some other cases are possible. + */ +bool +replication_scanner_is_replication_command(void) +{ + int first_token = replication_yylex(); + + switch (first_token) + { + case K_IDENTIFY_SYSTEM: + case K_BASE_BACKUP: + case K_START_REPLICATION: + case K_CREATE_REPLICATION_SLOT: + case K_DROP_REPLICATION_SLOT: + case K_TIMELINE_HISTORY: + case K_SHOW: + /* Yes; push back the first token so we can parse later. */ + repl_pushed_back_token = first_token; + return true; + default: + /* Nope; we don't bother to push back the token. */ + return false; + } +} + diff -Nru postgresql-13-13.4/src/backend/replication/repl_scanner.l postgresql-13-13.7/src/backend/replication/repl_scanner.l --- postgresql-13-13.4/src/backend/replication/repl_scanner.l 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/repl_scanner.l 2022-05-09 21:16:30.000000000 +0000 @@ -31,6 +31,10 @@ /* Handle to the buffer that the lexer uses internally */ static YY_BUFFER_STATE scanbufhandle; +/* Pushed-back token (we only handle one) */ +static int repl_pushed_back_token; + +/* Work area for collecting literals */ static StringInfoData litbuf; static void startlit(void); @@ -51,7 +55,18 @@ %option warn %option prefix="replication_yy" -%x xq xd +/* + * Exclusive states: + * delimited identifiers (double-quoted identifiers) + * standard single-quoted strings + */ +%x xd +%x xq + +space [ \t\n\r\f] + +quote ' +quotestop {quote} /* Extended quote * xqdouble implements embedded quote, '''' @@ -69,11 +84,8 @@ xddouble {dquote}{dquote} xdinside [^"]+ -digit [0-9]+ -hexdigit [0-9A-Za-z]+ - -quote ' -quotestop {quote} +digit [0-9] +hexdigit [0-9A-Fa-f] ident_start [A-Za-z\200-\377_] ident_cont [A-Za-z\200-\377_0-9\$] @@ -82,6 +94,19 @@ %% +%{ + /* This code is inserted at the start of replication_yylex() */ + + /* If we have a pushed-back token, return that. */ + if (repl_pushed_back_token) + { + int result = repl_pushed_back_token; + + repl_pushed_back_token = 0; + return result; + } +%} + BASE_BACKUP { return K_BASE_BACKUP; } FAST { return K_FAST; } IDENTIFY_SYSTEM { return K_IDENTIFY_SYSTEM; } @@ -110,14 +135,7 @@ MANIFEST { return K_MANIFEST; } MANIFEST_CHECKSUMS { return K_MANIFEST_CHECKSUMS; } -"," { return ','; } -";" { return ';'; } -"(" { return '('; } -")" { return ')'; } - -[\n] ; -[\t] ; -" " ; +{space}+ { /* do nothing */ } {digit}+ { yylval.uintval = strtoul(yytext, NULL, 10); @@ -179,6 +197,11 @@ return IDENT; } +. { + /* Any char not recognized above is returned as itself */ + return yytext[0]; + } + <> { yyerror("unterminated quoted string"); } @@ -186,9 +209,6 @@ yyterminate(); } -. { - return T_WORD; - } %% /* LCOV_EXCL_STOP */ @@ -245,6 +265,10 @@ memcpy(scanbuf, str, slen); scanbuf[slen] = scanbuf[slen + 1] = YY_END_OF_BUFFER_CHAR; scanbufhandle = yy_scan_buffer(scanbuf, slen + 2); + + /* Make sure we start in proper state */ + BEGIN(INITIAL); + repl_pushed_back_token = 0; } void @@ -253,3 +277,34 @@ yy_delete_buffer(scanbufhandle); scanbufhandle = NULL; } + +/* + * Check to see if the first token of a command is a WalSender keyword. + * + * To keep repl_scanner.l minimal, we don't ask it to know every construct + * that the core lexer knows. Therefore, we daren't lex more than the + * first token of a general SQL command. That will usually look like an + * IDENT token here, although some other cases are possible. + */ +bool +replication_scanner_is_replication_command(void) +{ + int first_token = replication_yylex(); + + switch (first_token) + { + case K_IDENTIFY_SYSTEM: + case K_BASE_BACKUP: + case K_START_REPLICATION: + case K_CREATE_REPLICATION_SLOT: + case K_DROP_REPLICATION_SLOT: + case K_TIMELINE_HISTORY: + case K_SHOW: + /* Yes; push back the first token so we can parse later. */ + repl_pushed_back_token = first_token; + return true; + default: + /* Nope; we don't bother to push back the token. */ + return false; + } +} diff -Nru postgresql-13-13.4/src/backend/replication/syncrep_gram.c postgresql-13-13.7/src/backend/replication/syncrep_gram.c --- postgresql-13-13.4/src/backend/replication/syncrep_gram.c 2021-08-09 21:03:31.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/syncrep_gram.c 2022-05-09 21:29:45.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,12 +70,11 @@ #define yyerror syncrep_yyerror #define yydebug syncrep_yydebug #define yynerrs syncrep_yynerrs - #define yylval syncrep_yylval #define yychar syncrep_yychar /* First part of user prologue. */ -#line 1 "syncrep_gram.y" /* yacc.c:337 */ +#line 1 "syncrep_gram.y" /*------------------------------------------------------------------------- * @@ -112,7 +112,17 @@ #define YYFREE pfree -#line 116 "syncrep_gram.c" /* yacc.c:337 */ +#line 116 "syncrep_gram.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -125,14 +135,6 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - /* Debug traces. */ #ifndef YYDEBUG @@ -142,33 +144,37 @@ extern int syncrep_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - NAME = 258, - NUM = 259, - JUNK = 260, - ANY = 261, - FIRST = 262 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + NAME = 258, /* NAME */ + NUM = 259, /* NUM */ + JUNK = 260, /* JUNK */ + ANY = 261, /* ANY */ + FIRST = 262 /* FIRST */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 43 "syncrep_gram.y" /* yacc.c:352 */ +#line 43 "syncrep_gram.y" char *str; List *list; SyncRepConfigData *config; -#line 170 "syncrep_gram.c" /* yacc.c:352 */ -}; +#line 176 "syncrep_gram.c" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -180,6 +186,29 @@ int syncrep_yyparse (void); +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_NAME = 3, /* NAME */ + YYSYMBOL_NUM = 4, /* NUM */ + YYSYMBOL_JUNK = 5, /* JUNK */ + YYSYMBOL_ANY = 6, /* ANY */ + YYSYMBOL_FIRST = 7, /* FIRST */ + YYSYMBOL_8_ = 8, /* '(' */ + YYSYMBOL_9_ = 9, /* ')' */ + YYSYMBOL_10_ = 10, /* ',' */ + YYSYMBOL_YYACCEPT = 11, /* $accept */ + YYSYMBOL_result = 12, /* result */ + YYSYMBOL_standby_config = 13, /* standby_config */ + YYSYMBOL_standby_list = 14, /* standby_list */ + YYSYMBOL_standby_name = 15 /* standby_name */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + @@ -187,28 +216,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -216,7 +304,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -224,7 +312,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -238,38 +339,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -282,8 +382,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) -#if ! defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -348,8 +462,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -358,17 +471,17 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -381,11 +494,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -397,12 +510,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -425,17 +538,20 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 24 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 262 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint8 yytranslate[] = +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -468,42 +584,55 @@ #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint8 yyrline[] = +static const yytype_int8 yyrline[] = { 0, 59, 59, 63, 64, 65, 66, 70, 71, 75, 76 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "NAME", "NUM", "JUNK", "ANY", "FIRST", - "'('", "')'", "','", "$accept", "result", "standby_config", - "standby_list", "standby_name", YY_NULLPTR + "\"end of file\"", "error", "\"invalid token\"", "NAME", "NUM", "JUNK", + "ANY", "FIRST", "'('", "')'", "','", "$accept", "result", + "standby_config", "standby_list", "standby_name", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 40, 41, 44 }; -# endif +#endif -#define YYPACT_NINF -10 +#define YYPACT_NINF (-10) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-10))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -1 +#define YYTABLE_NINF (-1) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -518,7 +647,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint8 yydefact[] = +static const yytype_int8 yydefact[] = { 0, 9, 10, 0, 0, 0, 2, 3, 7, 0, 0, 0, 1, 0, 10, 0, 0, 0, 8, 4, @@ -534,20 +663,20 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 5, 6, 7, 8 + 0, 5, 6, 7, 8 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_uint8 yytable[] = +static const yytype_int8 yytable[] = { 15, 1, 2, 9, 3, 4, 13, 20, 21, 1, 14, 19, 13, 22, 13, 10, 23, 13, 11, 12, 16, 17, 18 }; -static const yytype_uint8 yycheck[] = +static const yytype_int8 yycheck[] = { 9, 3, 4, 8, 6, 7, 10, 16, 17, 3, 4, 9, 10, 9, 10, 4, 9, 10, 4, 0, @@ -556,7 +685,7 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_int8 yystos[] = { 0, 3, 4, 6, 7, 12, 13, 14, 15, 8, 4, 4, 0, 10, 4, 14, 8, 8, 15, 9, @@ -564,24 +693,24 @@ }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_int8 yyr1[] = { 0, 11, 12, 13, 13, 13, 13, 14, 14, 15, 15 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 1, 1, 4, 5, 5, 1, 3, 1, 1 }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -607,10 +736,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* Enable debugging if requested. */ @@ -628,18 +756,18 @@ } while (0) /* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value); \ + Kind, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -650,17 +778,20 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; - YYUSE (yyoutput); + YY_USE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -669,12 +800,13 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyo, yytype, yyvaluep); + yy_symbol_value_print (yyo, yykind, yyvaluep); YYFPRINTF (yyo, ")"); } @@ -684,7 +816,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -707,21 +839,21 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - ); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); YYFPRINTF (stderr, "\n"); } } @@ -736,8 +868,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -760,254 +892,30 @@ #endif -#if YYERROR_VERBOSE -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -1016,6 +924,8 @@ int yynerrs; + + /*----------. | yyparse. | `----------*/ @@ -1023,43 +933,36 @@ int yyparse (void) { - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - YYSIZE_T yystacksize; + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -1067,15 +970,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; @@ -1090,10 +986,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1101,23 +1002,23 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -1131,14 +1032,15 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1147,16 +1049,16 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -1177,18 +1079,29 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1216,15 +1129,13 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1259,62 +1170,63 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 59 "syncrep_gram.y" /* yacc.c:1652 */ - { syncrep_parse_result = (yyvsp[0].config); } -#line 1266 "syncrep_gram.c" /* yacc.c:1652 */ + case 2: /* result: standby_config */ +#line 59 "syncrep_gram.y" + { syncrep_parse_result = (yyvsp[0].config); } +#line 1177 "syncrep_gram.c" break; - case 3: -#line 63 "syncrep_gram.y" /* yacc.c:1652 */ - { (yyval.config) = create_syncrep_config("1", (yyvsp[0].list), SYNC_REP_PRIORITY); } -#line 1272 "syncrep_gram.c" /* yacc.c:1652 */ + case 3: /* standby_config: standby_list */ +#line 63 "syncrep_gram.y" + { (yyval.config) = create_syncrep_config("1", (yyvsp[0].list), SYNC_REP_PRIORITY); } +#line 1183 "syncrep_gram.c" break; - case 4: -#line 64 "syncrep_gram.y" /* yacc.c:1652 */ - { (yyval.config) = create_syncrep_config((yyvsp[-3].str), (yyvsp[-1].list), SYNC_REP_PRIORITY); } -#line 1278 "syncrep_gram.c" /* yacc.c:1652 */ + case 4: /* standby_config: NUM '(' standby_list ')' */ +#line 64 "syncrep_gram.y" + { (yyval.config) = create_syncrep_config((yyvsp[-3].str), (yyvsp[-1].list), SYNC_REP_PRIORITY); } +#line 1189 "syncrep_gram.c" break; - case 5: -#line 65 "syncrep_gram.y" /* yacc.c:1652 */ - { (yyval.config) = create_syncrep_config((yyvsp[-3].str), (yyvsp[-1].list), SYNC_REP_QUORUM); } -#line 1284 "syncrep_gram.c" /* yacc.c:1652 */ + case 5: /* standby_config: ANY NUM '(' standby_list ')' */ +#line 65 "syncrep_gram.y" + { (yyval.config) = create_syncrep_config((yyvsp[-3].str), (yyvsp[-1].list), SYNC_REP_QUORUM); } +#line 1195 "syncrep_gram.c" break; - case 6: -#line 66 "syncrep_gram.y" /* yacc.c:1652 */ - { (yyval.config) = create_syncrep_config((yyvsp[-3].str), (yyvsp[-1].list), SYNC_REP_PRIORITY); } -#line 1290 "syncrep_gram.c" /* yacc.c:1652 */ + case 6: /* standby_config: FIRST NUM '(' standby_list ')' */ +#line 66 "syncrep_gram.y" + { (yyval.config) = create_syncrep_config((yyvsp[-3].str), (yyvsp[-1].list), SYNC_REP_PRIORITY); } +#line 1201 "syncrep_gram.c" break; - case 7: -#line 70 "syncrep_gram.y" /* yacc.c:1652 */ - { (yyval.list) = list_make1((yyvsp[0].str)); } -#line 1296 "syncrep_gram.c" /* yacc.c:1652 */ + case 7: /* standby_list: standby_name */ +#line 70 "syncrep_gram.y" + { (yyval.list) = list_make1((yyvsp[0].str)); } +#line 1207 "syncrep_gram.c" break; - case 8: -#line 71 "syncrep_gram.y" /* yacc.c:1652 */ - { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].str)); } -#line 1302 "syncrep_gram.c" /* yacc.c:1652 */ + case 8: /* standby_list: standby_list ',' standby_name */ +#line 71 "syncrep_gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].str)); } +#line 1213 "syncrep_gram.c" break; - case 9: -#line 75 "syncrep_gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 1308 "syncrep_gram.c" /* yacc.c:1652 */ + case 9: /* standby_name: NAME */ +#line 75 "syncrep_gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 1219 "syncrep_gram.c" break; - case 10: -#line 76 "syncrep_gram.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 1314 "syncrep_gram.c" /* yacc.c:1652 */ + case 10: /* standby_name: NUM */ +#line 76 "syncrep_gram.y" + { (yyval.str) = (yyvsp[0].str); } +#line 1225 "syncrep_gram.c" break; -#line 1318 "syncrep_gram.c" /* yacc.c:1652 */ +#line 1229 "syncrep_gram.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1328,11 +1240,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1356,50 +1267,14 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } - - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -1448,13 +1323,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -1468,7 +1344,7 @@ yydestruct ("Error: popping", - yystos[yystate], yyvsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -1480,7 +1356,7 @@ /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1502,20 +1378,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -1532,20 +1408,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 78 "syncrep_gram.y" /* yacc.c:1918 */ + +#line 78 "syncrep_gram.y" static SyncRepConfigData * diff -Nru postgresql-13-13.4/src/backend/replication/walreceiver.c postgresql-13-13.7/src/backend/replication/walreceiver.c --- postgresql-13-13.4/src/backend/replication/walreceiver.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/walreceiver.c 2022-05-09 21:16:30.000000000 +0000 @@ -131,6 +131,7 @@ static void XLogWalRcvProcessMsg(unsigned char type, char *buf, Size len); static void XLogWalRcvWrite(char *buf, Size nbytes, XLogRecPtr recptr); static void XLogWalRcvFlush(bool dying); +static void XLogWalRcvClose(XLogRecPtr recptr); static void XLogWalRcvSendReply(bool force, bool requestReply); static void XLogWalRcvSendHSFeedback(bool immed); static void ProcessWalSndrMessage(XLogRecPtr walEnd, TimestampTz sendTime); @@ -911,47 +912,16 @@ { int segbytes; - if (recvFile < 0 || !XLByteInSeg(recptr, recvSegNo, wal_segment_size)) - { - bool use_existent; - - /* - * fsync() and close current file before we switch to next one. We - * would otherwise have to reopen this file to fsync it later - */ - if (recvFile >= 0) - { - char xlogfname[MAXFNAMELEN]; - - XLogWalRcvFlush(false); - - XLogFileName(xlogfname, recvFileTLI, recvSegNo, wal_segment_size); - - /* - * XLOG segment files will be re-read by recovery in startup - * process soon, so we don't advise the OS to release cache - * pages associated with the file like XLogFileClose() does. - */ - if (close(recvFile) != 0) - ereport(PANIC, - (errcode_for_file_access(), - errmsg("could not close log segment %s: %m", - xlogfname))); + /* Close the current segment if it's completed */ + if (recvFile >= 0 && !XLByteInSeg(recptr, recvSegNo, wal_segment_size)) + XLogWalRcvClose(recptr); - /* - * Create .done file forcibly to prevent the streamed segment - * from being archived later. - */ - if (XLogArchiveMode != ARCHIVE_MODE_ALWAYS) - XLogArchiveForceDone(xlogfname); - else - XLogArchiveNotify(xlogfname); - } - recvFile = -1; + if (recvFile < 0) + { + bool use_existent = true; /* Create/use new log file */ XLByteToSeg(recptr, recvSegNo, wal_segment_size); - use_existent = true; recvFile = XLogFileInit(recvSegNo, &use_existent, true); recvFileTLI = ThisTimeLineID; } @@ -998,6 +968,15 @@ /* Update shared-memory status */ pg_atomic_write_u64(&WalRcv->writtenUpto, LogstreamResult.Write); + + /* + * Close the current segment if it's fully written up in the last cycle of + * the loop, to create its archive notification file soon. Otherwise WAL + * archiving of the segment will be delayed until any data in the next + * segment is received and written. + */ + if (recvFile >= 0 && !XLByteInSeg(recptr, recvSegNo, wal_segment_size)) + XLogWalRcvClose(recptr); } /* @@ -1053,6 +1032,52 @@ } /* + * Close the current segment. + * + * Flush the segment to disk before closing it. Otherwise we have to + * reopen and fsync it later. + * + * Create an archive notification file since the segment is known completed. + */ +static void +XLogWalRcvClose(XLogRecPtr recptr) +{ + char xlogfname[MAXFNAMELEN]; + + Assert(recvFile >= 0 && !XLByteInSeg(recptr, recvSegNo, wal_segment_size)); + + /* + * fsync() and close current file before we switch to next one. We would + * otherwise have to reopen this file to fsync it later + */ + XLogWalRcvFlush(false); + + XLogFileName(xlogfname, recvFileTLI, recvSegNo, wal_segment_size); + + /* + * XLOG segment files will be re-read by recovery in startup process soon, + * so we don't advise the OS to release cache pages associated with the + * file like XLogFileClose() does. + */ + if (close(recvFile) != 0) + ereport(PANIC, + (errcode_for_file_access(), + errmsg("could not close log segment %s: %m", + xlogfname))); + + /* + * Create .done file forcibly to prevent the streamed segment from being + * archived later. + */ + if (XLogArchiveMode != ARCHIVE_MODE_ALWAYS) + XLogArchiveForceDone(xlogfname); + else + XLogArchiveNotify(xlogfname); + + recvFile = -1; +} + +/* * Send reply message to primary, indicating our current WAL locations, oldest * xmin and the current time. * diff -Nru postgresql-13-13.4/src/backend/replication/walsender.c postgresql-13-13.7/src/backend/replication/walsender.c --- postgresql-13-13.4/src/backend/replication/walsender.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/replication/walsender.c 2022-05-09 21:16:30.000000000 +0000 @@ -1535,7 +1535,8 @@ */ if (MyWalSnd->state == WALSNDSTATE_STOPPING) ereport(ERROR, - (errmsg("cannot execute new commands while WAL sender is in stopping mode"))); + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("cannot execute new commands while WAL sender is in stopping mode"))); /* * CREATE_REPLICATION_SLOT ... LOGICAL exports a snapshot until the next @@ -1546,7 +1547,7 @@ CHECK_FOR_INTERRUPTS(); /* - * Parse the command. + * Prepare to parse and execute the command. */ cmd_context = AllocSetContextCreate(CurrentMemoryContext, "Replication command context", @@ -1554,34 +1555,42 @@ old_context = MemoryContextSwitchTo(cmd_context); replication_scanner_init(cmd_string); - parse_rc = replication_yyparse(); - if (parse_rc != 0) - ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg_internal("replication command parser returned %d", - parse_rc))); - replication_scanner_finish(); - - cmd_node = replication_parse_result; /* - * If it's a SQL command, just clean up our mess and return false; the - * caller will take care of executing it. + * Is it a WalSender command? */ - if (IsA(cmd_node, SQLCmd)) + if (!replication_scanner_is_replication_command()) { - if (MyDatabaseId == InvalidOid) - ereport(ERROR, - (errmsg("cannot execute SQL commands in WAL sender for physical replication"))); + /* Nope; clean up and get out. */ + replication_scanner_finish(); MemoryContextSwitchTo(old_context); MemoryContextDelete(cmd_context); + /* XXX this is a pretty random place to make this check */ + if (MyDatabaseId == InvalidOid) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot execute SQL commands in WAL sender for physical replication"))); + /* Tell the caller that this wasn't a WalSender command. */ return false; } /* + * Looks like a WalSender command, so parse it. + */ + parse_rc = replication_yyparse(); + if (parse_rc != 0) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg_internal("replication command parser returned %d", + parse_rc))); + replication_scanner_finish(); + + cmd_node = replication_parse_result; + + /* * Report query to various monitoring facilities. For this purpose, we * report replication commands just like SQL commands. */ diff -Nru postgresql-13-13.4/src/backend/rewrite/rewriteHandler.c postgresql-13-13.7/src/backend/rewrite/rewriteHandler.c --- postgresql-13-13.4/src/backend/rewrite/rewriteHandler.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/rewrite/rewriteHandler.c 2022-05-09 21:16:30.000000000 +0000 @@ -530,6 +530,9 @@ * * This could possibly be fixed by using some sort of internally * generated ID, instead of names, to link CTE RTEs to their CTEs. + * However, decompiling the results would be quite confusing; note the + * merge of hasRecursive flags below, which could change the apparent + * semantics of such redundantly-named CTEs. */ foreach(lc, parsetree->cteList) { @@ -551,6 +554,26 @@ /* OK, it's safe to combine the CTE lists */ sub_action->cteList = list_concat(sub_action->cteList, copyObject(parsetree->cteList)); + /* ... and don't forget about the associated flags */ + sub_action->hasRecursive |= parsetree->hasRecursive; + sub_action->hasModifyingCTE |= parsetree->hasModifyingCTE; + + /* + * If rule_action is different from sub_action (i.e., the rule action + * is an INSERT...SELECT), then we might have just added some + * data-modifying CTEs that are not at the top query level. This is + * disallowed by the parser and we mustn't generate such trees here + * either, so throw an error. + * + * Conceivably such cases could be supported by attaching the original + * query's CTEs to rule_action not sub_action. But to do that, we'd + * have to increment ctelevelsup in RTEs and SubLinks copied from the + * original query. For now, it doesn't seem worth the trouble. + */ + if (sub_action->hasModifyingCTE && rule_action != sub_action) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH"))); } /* diff -Nru postgresql-13-13.4/src/backend/statistics/dependencies.c postgresql-13-13.7/src/backend/statistics/dependencies.c --- postgresql-13-13.4/src/backend/statistics/dependencies.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/statistics/dependencies.c 2022-05-09 21:16:30.000000000 +0000 @@ -24,12 +24,14 @@ #include "nodes/pathnodes.h" #include "optimizer/clauses.h" #include "optimizer/optimizer.h" +#include "parser/parsetree.h" #include "statistics/extended_stats_internal.h" #include "statistics/statistics.h" #include "utils/bytea.h" #include "utils/fmgroids.h" #include "utils/fmgrprotos.h" #include "utils/lsyscache.h" +#include "utils/memutils.h" #include "utils/selfuncs.h" #include "utils/syscache.h" #include "utils/typcache.h" @@ -332,13 +334,6 @@ group_size++; } - if (items) - pfree(items); - - pfree(mss); - pfree(attnums); - pfree(attnums_dep); - /* Compute the 'degree of validity' as (supporting/total). */ return (n_supporting_rows * 1.0 / numrows); } @@ -370,6 +365,7 @@ /* result */ MVDependencies *dependencies = NULL; + MemoryContext cxt; /* * Transform the bms into an array, to make accessing i-th member easier. @@ -378,6 +374,11 @@ Assert(numattrs >= 2); + /* tracks memory allocated by dependency_degree calls */ + cxt = AllocSetContextCreate(CurrentMemoryContext, + "dependency_degree cxt", + ALLOCSET_DEFAULT_SIZES); + /* * We'll try build functional dependencies starting from the smallest ones * covering just 2 columns, to the largest ones, covering all columns @@ -396,10 +397,17 @@ { double degree; MVDependency *d; + MemoryContext oldcxt; + + /* release memory used by dependency degree calculation */ + oldcxt = MemoryContextSwitchTo(cxt); /* compute how valid the dependency seems */ degree = dependency_degree(numrows, rows, k, dependency, stats, attrs); + MemoryContextSwitchTo(oldcxt); + MemoryContextReset(cxt); + /* * if the dependency seems entirely invalid, don't store it */ @@ -441,6 +449,8 @@ DependencyGenerator_free(DependencyGenerator); } + MemoryContextDelete(cxt); + return dependencies; } @@ -1204,6 +1214,17 @@ MVDependency **dependencies; int ndependencies; int i; + RangeTblEntry *rte = planner_rt_fetch(rel->relid, root); + + /* + * When dealing with regular inheritance trees, ignore extended stats + * (which were built without data from child rels, and thus do not + * represent them). For partitioned tables data there's no data in the + * non-leaf relations, so we build stats only for the inheritance tree. + * So for partitioned tables we do consider extended stats. + */ + if (rte->inh && rte->relkind != RELKIND_PARTITIONED_TABLE) + return 1.0; /* check if there's any stats that might be useful for us. */ if (!has_stats_of_kind(rel->statlist, STATS_EXT_DEPENDENCIES)) diff -Nru postgresql-13-13.4/src/backend/statistics/extended_stats.c postgresql-13-13.7/src/backend/statistics/extended_stats.c --- postgresql-13-13.4/src/backend/statistics/extended_stats.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/statistics/extended_stats.c 2022-05-09 21:16:30.000000000 +0000 @@ -29,6 +29,7 @@ #include "nodes/nodeFuncs.h" #include "optimizer/clauses.h" #include "optimizer/optimizer.h" +#include "parser/parsetree.h" #include "pgstat.h" #include "postmaster/autovacuum.h" #include "statistics/extended_stats_internal.h" @@ -97,14 +98,15 @@ MemoryContext oldcxt; int64 ext_cnt; + pg_stext = table_open(StatisticExtRelationId, RowExclusiveLock); + stats = fetch_statentries_for_relation(pg_stext, RelationGetRelid(onerel)); + + /* memory context for building each statistics object */ cxt = AllocSetContextCreate(CurrentMemoryContext, "BuildRelationExtStatistics", ALLOCSET_DEFAULT_SIZES); oldcxt = MemoryContextSwitchTo(cxt); - pg_stext = table_open(StatisticExtRelationId, RowExclusiveLock); - stats = fetch_statentries_for_relation(pg_stext, RelationGetRelid(onerel)); - /* report this phase */ if (stats != NIL) { @@ -189,12 +191,17 @@ /* for reporting progress */ pgstat_progress_update_param(PROGRESS_ANALYZE_EXT_STATS_COMPUTED, ++ext_cnt); - } - table_close(pg_stext, RowExclusiveLock); + /* free the data used for building this statistics object */ + MemoryContextReset(cxt); + } MemoryContextSwitchTo(oldcxt); MemoryContextDelete(cxt); + + list_free(stats); + + table_close(pg_stext, RowExclusiveLock); } /* @@ -1288,6 +1295,17 @@ Bitmapset **list_attnums; int listidx; Selectivity sel = 1.0; + RangeTblEntry *rte = planner_rt_fetch(rel->relid, root); + + /* + * When dealing with regular inheritance trees, ignore extended stats + * (which were built without data from child rels, and thus do not + * represent them). For partitioned tables data there's no data in the + * non-leaf relations, so we build stats only for the inheritance tree. + * So for partitioned tables we do consider extended stats. + */ + if (rte->inh && rte->relkind != RELKIND_PARTITIONED_TABLE) + return 1.0; /* check if there's any stats that might be useful for us. */ if (!has_stats_of_kind(rel->statlist, STATS_EXT_MCV)) diff -Nru postgresql-13-13.4/src/backend/storage/buffer/bufmgr.c postgresql-13-13.7/src/backend/storage/buffer/bufmgr.c --- postgresql-13-13.4/src/backend/storage/buffer/bufmgr.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/buffer/bufmgr.c 2022-05-09 21:16:30.000000000 +0000 @@ -739,7 +739,16 @@ /* Substitute proper block number if caller asked for P_NEW */ if (isExtend) + { blockNum = smgrnblocks(smgr, forkNum); + /* Fail if relation is already at maximum possible length */ + if (blockNum == P_NEW) + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmsg("cannot extend relation %s beyond %u blocks", + relpath(smgr->smgr_rnode, forkNum), + P_NEW))); + } if (isLocalBuf) { @@ -3638,7 +3647,9 @@ * essential that CreateCheckpoint waits for virtual transactions * rather than full transactionids. */ - MyProc->delayChkpt = delayChkpt = true; + Assert(!MyProc->delayChkpt); + MyProc->delayChkpt = true; + delayChkpt = true; lsn = XLogSaveBufferForHint(buffer, buffer_std); } diff -Nru postgresql-13-13.4/src/backend/storage/ipc/latch.c postgresql-13-13.7/src/backend/storage/ipc/latch.c --- postgresql-13-13.4/src/backend/storage/ipc/latch.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/ipc/latch.c 2022-05-09 21:16:30.000000000 +0000 @@ -570,7 +570,7 @@ * Use MAXALIGN size/alignment to guarantee that later uses of memory are * aligned correctly. E.g. epoll_event might need 8 byte alignment on some * platforms, but earlier allocations like WaitEventSet and WaitEvent - * might not sized to guarantee that when purely using sizeof(). + * might not be sized to guarantee that when purely using sizeof(). */ sz += MAXALIGN(sizeof(WaitEventSet)); sz += MAXALIGN(sizeof(WaitEvent) * nevents); diff -Nru postgresql-13-13.4/src/backend/storage/ipc/procarray.c postgresql-13-13.7/src/backend/storage/ipc/procarray.c --- postgresql-13-13.4/src/backend/storage/ipc/procarray.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/ipc/procarray.c 2022-05-09 21:16:30.000000000 +0000 @@ -155,6 +155,11 @@ #define xc_slow_answer_inc() ((void) 0) #endif /* XIDCACHE_DEBUG */ +static VirtualTransactionId *GetVirtualXIDsDelayingChkptGuts(int *nvxids, + int type); +static bool HaveVirtualXIDsDelayingChkptGuts(VirtualTransactionId *vxids, + int nvxids, int type); + /* Primitives for KnownAssignedXids array handling for standby */ static void KnownAssignedXidsCompress(bool force); static void KnownAssignedXidsAdd(TransactionId from_xid, TransactionId to_xid, @@ -434,7 +439,11 @@ pgxact->xmin = InvalidTransactionId; /* must be cleared with xid/xmin: */ pgxact->vacuumFlags &= ~PROC_VACUUM_STATE_MASK; - proc->delayChkpt = false; /* be sure this is cleared in abort */ + + /* be sure these are cleared in abort */ + proc->delayChkpt = false; + proc->delayChkptEnd = false; + proc->recoveryConflictPending = false; Assert(pgxact->nxids == 0); @@ -456,7 +465,11 @@ pgxact->xmin = InvalidTransactionId; /* must be cleared with xid/xmin: */ pgxact->vacuumFlags &= ~PROC_VACUUM_STATE_MASK; - proc->delayChkpt = false; /* be sure this is cleared in abort */ + + /* be sure these are cleared in abort */ + proc->delayChkpt = false; + proc->delayChkptEnd = false; + proc->recoveryConflictPending = false; /* Clear the subtransaction-XID cache too while holding the lock */ @@ -552,13 +565,13 @@ /* Walk the list and clear all XIDs. */ while (nextidx != INVALID_PGPROCNO) { - PGPROC *proc = &allProcs[nextidx]; + PGPROC *nextproc = &allProcs[nextidx]; PGXACT *pgxact = &allPgXact[nextidx]; - ProcArrayEndTransactionInternal(proc, pgxact, proc->procArrayGroupMemberXid); + ProcArrayEndTransactionInternal(nextproc, pgxact, nextproc->procArrayGroupMemberXid); /* Move to next proc in list. */ - nextidx = pg_atomic_read_u32(&proc->procArrayGroupNext); + nextidx = pg_atomic_read_u32(&nextproc->procArrayGroupNext); } /* We're done with the lock now. */ @@ -573,18 +586,18 @@ */ while (wakeidx != INVALID_PGPROCNO) { - PGPROC *proc = &allProcs[wakeidx]; + PGPROC *nextproc = &allProcs[wakeidx]; - wakeidx = pg_atomic_read_u32(&proc->procArrayGroupNext); - pg_atomic_write_u32(&proc->procArrayGroupNext, INVALID_PGPROCNO); + wakeidx = pg_atomic_read_u32(&nextproc->procArrayGroupNext); + pg_atomic_write_u32(&nextproc->procArrayGroupNext, INVALID_PGPROCNO); /* ensure all previous writes are visible before follower continues. */ pg_write_barrier(); - proc->procArrayGroupMember = false; + nextproc->procArrayGroupMember = false; - if (proc != MyProc) - PGSemaphoreUnlock(proc->sem); + if (nextproc != MyProc) + PGSemaphoreUnlock(nextproc->sem); } } @@ -793,8 +806,13 @@ /* * Sort the array so that we can add them safely into * KnownAssignedXids. + * + * We have to sort them logically, because in KnownAssignedXidsAdd we + * call TransactionIdFollowsOrEquals and so on. But we know these XIDs + * come from RUNNING_XACTS, which means there are only normal XIDs from + * the same epoch, so this is safe. */ - qsort(xids, nxids, sizeof(TransactionId), xidComparator); + qsort(xids, nxids, sizeof(TransactionId), xidLogicalComparator); /* * Add the sorted snapshot into KnownAssignedXids. The running-xacts @@ -1864,6 +1882,10 @@ * PGPROC of the transaction from which we imported the snapshot, rather than * an XID. * + * Note that this function also copies vacuumFlags from the source `proc` in + * order to avoid the case where MyPgXact's xmin needs to be skipped for + * computing xid horizon. + * * Returns true if successful, false if source xact is no longer running. */ bool @@ -1876,8 +1898,10 @@ Assert(TransactionIdIsNormal(xmin)); Assert(proc != NULL); - /* Get lock so source xact can't end while we're doing this */ - LWLockAcquire(ProcArrayLock, LW_SHARED); + /* + * Get an exclusive lock so that we can copy vacuumFlags from source proc. + */ + LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE); pgxact = &allPgXact[proc->pgprocno]; @@ -1892,7 +1916,13 @@ TransactionIdIsNormal(xid) && TransactionIdPrecedesOrEquals(xid, xmin)) { + /* Install xmin */ MyPgXact->xmin = TransactionXmin = xmin; + + /* Flags being copied must be valid copy-able flags. */ + Assert((pgxact->vacuumFlags & (~PROC_COPYABLE_FLAGS)) == 0); + MyPgXact->vacuumFlags = pgxact->vacuumFlags; + result = true; } @@ -2251,31 +2281,36 @@ } /* - * GetVirtualXIDsDelayingChkpt -- Get the VXIDs of transactions that are - * delaying checkpoint because they have critical actions in progress. + * GetVirtualXIDsDelayingChkptGuts -- Get the VXIDs of transactions that are + * delaying the start or end of a checkpoint because they have critical + * actions in progress. * * Constructs an array of VXIDs of transactions that are currently in commit - * critical sections, as shown by having delayChkpt set in their PGPROC. + * critical sections, as shown by having delayChkpt or delayChkptEnd set in + * their PGPROC. * * Returns a palloc'd array that should be freed by the caller. * *nvxids is the number of valid entries. * - * Note that because backends set or clear delayChkpt without holding any lock, - * the result is somewhat indeterminate, but we don't really care. Even in - * a multiprocessor with delayed writes to shared memory, it should be certain - * that setting of delayChkpt will propagate to shared memory when the backend - * takes a lock, so we cannot fail to see a virtual xact as delayChkpt if - * it's already inserted its commit record. Whether it takes a little while - * for clearing of delayChkpt to propagate is unimportant for correctness. + * Note that because backends set or clear delayChkpt and delayChkptEnd + * without holding any lock, the result is somewhat indeterminate, but we + * don't really care. Even in a multiprocessor with delayed writes to + * shared memory, it should be certain that setting of delayChkpt will + * propagate to shared memory when the backend takes a lock, so we cannot + * fail to see a virtual xact as delayChkpt if it's already inserted its + * commit record. Whether it takes a little while for clearing of + * delayChkpt to propagate is unimportant for correctness. */ -VirtualTransactionId * -GetVirtualXIDsDelayingChkpt(int *nvxids) +static VirtualTransactionId * +GetVirtualXIDsDelayingChkptGuts(int *nvxids, int type) { VirtualTransactionId *vxids; ProcArrayStruct *arrayP = procArray; int count = 0; int index; + Assert(type != 0); + /* allocate what's certainly enough result space */ vxids = (VirtualTransactionId *) palloc(sizeof(VirtualTransactionId) * arrayP->maxProcs); @@ -2287,7 +2322,8 @@ int pgprocno = arrayP->pgprocnos[index]; PGPROC *proc = &allProcs[pgprocno]; - if (proc->delayChkpt) + if (((type & DELAY_CHKPT_START) && proc->delayChkpt) || + ((type & DELAY_CHKPT_COMPLETE) && proc->delayChkptEnd)) { VirtualTransactionId vxid; @@ -2304,6 +2340,26 @@ } /* + * GetVirtualXIDsDelayingChkpt - Get the VXIDs of transactions that are + * delaying the start of a checkpoint. + */ +VirtualTransactionId * +GetVirtualXIDsDelayingChkpt(int *nvxids) +{ + return GetVirtualXIDsDelayingChkptGuts(nvxids, DELAY_CHKPT_START); +} + +/* + * GetVirtualXIDsDelayingChkptEnd - Get the VXIDs of transactions that are + * delaying the end of a checkpoint. + */ +VirtualTransactionId * +GetVirtualXIDsDelayingChkptEnd(int *nvxids) +{ + return GetVirtualXIDsDelayingChkptGuts(nvxids, DELAY_CHKPT_COMPLETE); +} + +/* * HaveVirtualXIDsDelayingChkpt -- Are any of the specified VXIDs delaying? * * This is used with the results of GetVirtualXIDsDelayingChkpt to see if any @@ -2312,13 +2368,16 @@ * Note: this is O(N^2) in the number of vxacts that are/were delaying, but * those numbers should be small enough for it not to be a problem. */ -bool -HaveVirtualXIDsDelayingChkpt(VirtualTransactionId *vxids, int nvxids) +static bool +HaveVirtualXIDsDelayingChkptGuts(VirtualTransactionId *vxids, int nvxids, + int type) { bool result = false; ProcArrayStruct *arrayP = procArray; int index; + Assert(type != 0); + LWLockAcquire(ProcArrayLock, LW_SHARED); for (index = 0; index < arrayP->numProcs; index++) @@ -2329,7 +2388,9 @@ GET_VXID_FROM_PGPROC(vxid, *proc); - if (proc->delayChkpt && VirtualTransactionIdIsValid(vxid)) + if ((((type & DELAY_CHKPT_START) && proc->delayChkpt) || + ((type & DELAY_CHKPT_COMPLETE) && proc->delayChkptEnd)) && + VirtualTransactionIdIsValid(vxid)) { int i; @@ -2352,6 +2413,28 @@ } /* + * HaveVirtualXIDsDelayingChkpt -- Are any of the specified VXIDs delaying + * the start of a checkpoint? + */ +bool +HaveVirtualXIDsDelayingChkpt(VirtualTransactionId *vxids, int nvxids) +{ + return HaveVirtualXIDsDelayingChkptGuts(vxids, nvxids, + DELAY_CHKPT_START); +} + +/* + * HaveVirtualXIDsDelayingChkptEnd -- Are any of the specified VXIDs delaying + * the end of a checkpoint? + */ +bool +HaveVirtualXIDsDelayingChkptEnd(VirtualTransactionId *vxids, int nvxids) +{ + return HaveVirtualXIDsDelayingChkptGuts(vxids, nvxids, + DELAY_CHKPT_COMPLETE); +} + +/* * BackendPidGetProc -- get a backend's PGPROC given its PID * * Returns NULL if not found. Note that it is up to the caller to be @@ -3404,24 +3487,41 @@ /* * ExpireAllKnownAssignedTransactionIds - * Remove all entries in KnownAssignedXids + * Remove all entries in KnownAssignedXids and reset lastOverflowedXid. */ void ExpireAllKnownAssignedTransactionIds(void) { LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE); KnownAssignedXidsRemovePreceding(InvalidTransactionId); + + /* + * Reset lastOverflowedXid. Currently, lastOverflowedXid has no use after + * the call of this function. But do this for unification with what + * ExpireOldKnownAssignedTransactionIds() do. + */ + procArray->lastOverflowedXid = InvalidTransactionId; LWLockRelease(ProcArrayLock); } /* * ExpireOldKnownAssignedTransactionIds - * Remove KnownAssignedXids entries preceding the given XID + * Remove KnownAssignedXids entries preceding the given XID and + * potentially reset lastOverflowedXid. */ void ExpireOldKnownAssignedTransactionIds(TransactionId xid) { LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE); + + /* + * Reset lastOverflowedXid if we know all transactions that have been + * possibly running are being gone. Not doing so could cause an incorrect + * lastOverflowedXid value, which makes extra snapshots be marked as + * suboverflowed. + */ + if (TransactionIdPrecedes(procArray->lastOverflowedXid, xid)) + procArray->lastOverflowedXid = InvalidTransactionId; KnownAssignedXidsRemovePreceding(xid); LWLockRelease(ProcArrayLock); } diff -Nru postgresql-13-13.4/src/backend/storage/ipc/shm_mq.c postgresql-13-13.7/src/backend/storage/ipc/shm_mq.c --- postgresql-13-13.4/src/backend/storage/ipc/shm_mq.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/ipc/shm_mq.c 2022-05-09 21:16:30.000000000 +0000 @@ -748,8 +748,11 @@ /* Copy as much as we can. */ Assert(mqh->mqh_partial_bytes + rb <= nbytes); - memcpy(&mqh->mqh_buffer[mqh->mqh_partial_bytes], rawdata, rb); - mqh->mqh_partial_bytes += rb; + if (rb > 0) + { + memcpy(&mqh->mqh_buffer[mqh->mqh_partial_bytes], rawdata, rb); + mqh->mqh_partial_bytes += rb; + } /* * Update count of bytes that can be consumed, accounting for diff -Nru postgresql-13-13.4/src/backend/storage/ipc/standby.c postgresql-13-13.7/src/backend/storage/ipc/standby.c --- postgresql-13-13.4/src/backend/storage/ipc/standby.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/ipc/standby.c 2022-05-09 21:16:30.000000000 +0000 @@ -44,6 +44,7 @@ /* Flags set by timeout handlers */ static volatile sig_atomic_t got_standby_deadlock_timeout = false; +static volatile sig_atomic_t got_standby_delay_timeout = false; static volatile sig_atomic_t got_standby_lock_timeout = false; static void ResolveRecoveryConflictWithVirtualXIDs(VirtualTransactionId *waitlist, @@ -603,10 +604,15 @@ enable_timeouts(timeouts, cnt); } - /* Wait to be signaled by UnpinBuffer() */ + /* + * Wait to be signaled by UnpinBuffer() or for the wait to be interrupted + * by one of the timeouts established above. + */ ProcWaitForSignal(PG_WAIT_BUFFER_PIN); - if (got_standby_deadlock_timeout) + if (got_standby_delay_timeout) + SendRecoveryConflictWithBufferPin(PROCSIG_RECOVERY_CONFLICT_BUFFERPIN); + else if (got_standby_deadlock_timeout) { /* * Send out a request for hot-standby backends to check themselves for @@ -632,6 +638,7 @@ * individually, but that'd be slower. */ disable_all_timeouts(false); + got_standby_delay_timeout = false; got_standby_deadlock_timeout = false; } @@ -691,8 +698,8 @@ */ /* - * StandbyDeadLockHandler() will be called if STANDBY_DEADLOCK_TIMEOUT - * occurs before STANDBY_TIMEOUT. + * StandbyDeadLockHandler() will be called if STANDBY_DEADLOCK_TIMEOUT is + * exceeded. */ void StandbyDeadLockHandler(void) @@ -702,16 +709,11 @@ /* * StandbyTimeoutHandler() will be called if STANDBY_TIMEOUT is exceeded. - * Send out a request to release conflicting buffer pins unconditionally, - * so we can press ahead with applying changes in recovery. */ void StandbyTimeoutHandler(void) { - /* forget any pending STANDBY_DEADLOCK_TIMEOUT request */ - disable_timeout(STANDBY_DEADLOCK_TIMEOUT, false); - - SendRecoveryConflictWithBufferPin(PROCSIG_RECOVERY_CONFLICT_BUFFERPIN); + got_standby_delay_timeout = true; } /* @@ -791,9 +793,11 @@ static void StandbyReleaseLockList(List *locks) { - while (locks) + ListCell *lc; + + foreach(lc, locks) { - xl_standby_lock *lock = (xl_standby_lock *) linitial(locks); + xl_standby_lock *lock = (xl_standby_lock *) lfirst(lc); LOCKTAG locktag; elog(trace_recovery(DEBUG4), @@ -807,9 +811,9 @@ lock->xid, lock->dbOid, lock->relOid); Assert(false); } - pfree(lock); - locks = list_delete_first(locks); } + + list_free_deep(locks); } static void diff -Nru postgresql-13-13.4/src/backend/storage/large_object/inv_api.c postgresql-13-13.7/src/backend/storage/large_object/inv_api.c --- postgresql-13-13.4/src/backend/storage/large_object/inv_api.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/large_object/inv_api.c 2022-05-09 21:16:30.000000000 +0000 @@ -244,10 +244,12 @@ /* * inv_open -- access an existing large object. * - * Returns: - * Large object descriptor, appropriately filled in. The descriptor - * and subsidiary data are allocated in the specified memory context, - * which must be suitably long-lived for the caller's purposes. + * Returns a large object descriptor, appropriately filled in. + * The descriptor and subsidiary data are allocated in the specified + * memory context, which must be suitably long-lived for the caller's + * purposes. If the returned descriptor has a snapshot associated + * with it, the caller must ensure that it also lives long enough, + * e.g. by calling RegisterSnapshotOnOwner */ LargeObjectDesc * inv_open(Oid lobjId, int flags, MemoryContext mcxt) @@ -314,19 +316,16 @@ retval = (LargeObjectDesc *) MemoryContextAlloc(mcxt, sizeof(LargeObjectDesc)); retval->id = lobjId; - retval->subid = GetCurrentSubTransactionId(); retval->offset = 0; retval->flags = descflags; + /* caller sets if needed, not used by the functions in this file */ + retval->subid = InvalidSubTransactionId; + /* - * We must register the snapshot in TopTransaction's resowner, because it - * must stay alive until the LO is closed rather than until the current - * portal shuts down. Do this last to avoid uselessly leaking the - * snapshot if an error is thrown above. + * The snapshot (if any) is just the currently active snapshot. The + * caller will replace it with a longer-lived copy if needed. */ - if (snapshot) - snapshot = RegisterSnapshotOnOwner(snapshot, - TopTransactionResourceOwner); retval->snapshot = snapshot; return retval; @@ -340,10 +339,6 @@ inv_close(LargeObjectDesc *obj_desc) { Assert(PointerIsValid(obj_desc)); - - UnregisterSnapshotFromOwner(obj_desc->snapshot, - TopTransactionResourceOwner); - pfree(obj_desc); } diff -Nru postgresql-13-13.4/src/backend/storage/lmgr/lmgr.c postgresql-13-13.7/src/backend/storage/lmgr/lmgr.c --- postgresql-13-13.4/src/backend/storage/lmgr/lmgr.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/lmgr/lmgr.c 2022-05-09 21:16:30.000000000 +0000 @@ -870,9 +870,10 @@ * To do this, obtain the current list of lockers, and wait on their VXIDs * until they are finished. * - * Note we don't try to acquire the locks on the given locktags, only the VXIDs - * of its lock holders; if somebody grabs a conflicting lock on the objects - * after we obtained our initial list of lockers, we will not wait for them. + * Note we don't try to acquire the locks on the given locktags, only the + * VXIDs and XIDs of their lock holders; if somebody grabs a conflicting lock + * on the objects after we obtained our initial list of lockers, we will not + * wait for them. */ void WaitForLockersMultiple(List *locktags, LOCKMODE lockmode, bool progress) diff -Nru postgresql-13-13.4/src/backend/storage/lmgr/lock.c postgresql-13-13.7/src/backend/storage/lmgr/lock.c --- postgresql-13-13.4/src/backend/storage/lmgr/lock.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/lmgr/lock.c 2022-05-09 21:16:30.000000000 +0000 @@ -2900,8 +2900,12 @@ * The result array is palloc'd and is terminated with an invalid VXID. * *countp, if not null, is updated to the number of items set. * - * Of course, the result could be out of date by the time it's returned, - * so use of this function has to be thought about carefully. + * Of course, the result could be out of date by the time it's returned, so + * use of this function has to be thought about carefully. Similarly, a + * PGPROC with no "lxid" will be considered non-conflicting regardless of any + * lock it holds. Existing callers don't care about a locker after that + * locker's pg_xact updates complete. CommitTransaction() clears "lxid" after + * pg_xact updates and before releasing locks. * * Note we never include the current xact's vxid in the result array, * since an xact never blocks itself. @@ -4523,36 +4527,79 @@ } /* + * XactLockForVirtualXact + * + * If TransactionIdIsValid(xid), this is essentially XactLockTableWait(xid, + * NULL, NULL, XLTW_None) or ConditionalXactLockTableWait(xid). Unlike those + * functions, it assumes "xid" is never a subtransaction and that "xid" is + * prepared, committed, or aborted. + * + * If !TransactionIdIsValid(xid), this locks every prepared XID having been + * known as "vxid" before its PREPARE TRANSACTION. + */ +static bool +XactLockForVirtualXact(VirtualTransactionId vxid, + TransactionId xid, bool wait) +{ + bool more = false; + + /* There is no point to wait for 2PCs if you have no 2PCs. */ + if (max_prepared_xacts == 0) + return true; + + do + { + LockAcquireResult lar; + LOCKTAG tag; + + /* Clear state from previous iterations. */ + if (more) + { + xid = InvalidTransactionId; + more = false; + } + + /* If we have no xid, try to find one. */ + if (!TransactionIdIsValid(xid)) + xid = TwoPhaseGetXidByVirtualXID(vxid, &more); + if (!TransactionIdIsValid(xid)) + { + Assert(!more); + return true; + } + + /* Check or wait for XID completion. */ + SET_LOCKTAG_TRANSACTION(tag, xid); + lar = LockAcquire(&tag, ShareLock, false, !wait); + if (lar == LOCKACQUIRE_NOT_AVAIL) + return false; + LockRelease(&tag, ShareLock, false); + } while (more); + + return true; +} + +/* * VirtualXactLock * - * If wait = true, wait until the given VXID has been released, and then - * return true. + * If wait = true, wait as long as the given VXID or any XID acquired by the + * same transaction is still running. Then, return true. * - * If wait = false, just check whether the VXID is still running, and return - * true or false. + * If wait = false, just check whether that VXID or one of those XIDs is still + * running, and return true or false. */ bool VirtualXactLock(VirtualTransactionId vxid, bool wait) { LOCKTAG tag; PGPROC *proc; + TransactionId xid = InvalidTransactionId; Assert(VirtualTransactionIdIsValid(vxid)); - if (VirtualTransactionIdIsPreparedXact(vxid)) - { - LockAcquireResult lar; - - /* - * Prepared transactions don't hold vxid locks. The - * LocalTransactionId is always a normal, locked XID. - */ - SET_LOCKTAG_TRANSACTION(tag, vxid.localTransactionId); - lar = LockAcquire(&tag, ShareLock, false, !wait); - if (lar != LOCKACQUIRE_NOT_AVAIL) - LockRelease(&tag, ShareLock, false); - return lar != LOCKACQUIRE_NOT_AVAIL; - } + if (VirtualTransactionIdIsRecoveredPreparedXact(vxid)) + /* no vxid lock; localTransactionId is a normal, locked XID */ + return XactLockForVirtualXact(vxid, vxid.localTransactionId, wait); SET_LOCKTAG_VIRTUALTRANSACTION(tag, vxid); @@ -4566,7 +4613,7 @@ */ proc = BackendIdGetProc(vxid.backendId); if (proc == NULL) - return true; + return XactLockForVirtualXact(vxid, InvalidTransactionId, wait); /* * We must acquire this lock before checking the backendId and lxid @@ -4575,12 +4622,12 @@ */ LWLockAcquire(&proc->fpInfoLock, LW_EXCLUSIVE); - /* If the transaction has ended, our work here is done. */ if (proc->backendId != vxid.backendId || proc->fpLocalTransactionId != vxid.localTransactionId) { + /* VXID ended */ LWLockRelease(&proc->fpInfoLock); - return true; + return XactLockForVirtualXact(vxid, InvalidTransactionId, wait); } /* @@ -4627,6 +4674,16 @@ proc->fpVXIDLock = false; } + /* + * If the proc has an XID now, we'll avoid a TwoPhaseGetXidByVirtualXID() + * search. The proc might have assigned this XID but not yet locked it, + * in which case the proc will lock this XID before releasing the VXID. + * The fpInfoLock critical section excludes VirtualXactLockTableCleanup(), + * so we won't save an XID of a different VXID. It doesn't matter whether + * we save this before or after setting up the primary lock table entry. + */ + xid = ProcGlobal->allPgXact[proc->pgprocno].xid; + /* Done with proc->fpLockBits */ LWLockRelease(&proc->fpInfoLock); @@ -4634,7 +4691,7 @@ (void) LockAcquire(&tag, ShareLock, false, false); LockRelease(&tag, ShareLock, false); - return true; + return XactLockForVirtualXact(vxid, xid, wait); } /* diff -Nru postgresql-13-13.4/src/backend/storage/lmgr/proc.c postgresql-13-13.7/src/backend/storage/lmgr/proc.c --- postgresql-13-13.4/src/backend/storage/lmgr/proc.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/lmgr/proc.c 2022-05-09 21:16:30.000000000 +0000 @@ -396,7 +396,7 @@ MyProc->roleId = InvalidOid; MyProc->tempNamespaceId = InvalidOid; MyProc->isBackgroundWorker = IsBackgroundWorker; - MyProc->delayChkpt = false; + MyProc->delayChkpt = 0; MyPgXact->vacuumFlags = 0; /* NB -- autovac launcher intentionally does not set IS_AUTOVACUUM */ if (IsAutoVacuumWorkerProcess()) @@ -578,7 +578,7 @@ MyProc->roleId = InvalidOid; MyProc->tempNamespaceId = InvalidOid; MyProc->isBackgroundWorker = IsBackgroundWorker; - MyProc->delayChkpt = false; + MyProc->delayChkpt = 0; MyPgXact->vacuumFlags = 0; MyProc->lwWaiting = false; MyProc->lwWaitMode = 0; diff -Nru postgresql-13-13.4/src/backend/storage/smgr/md.c postgresql-13-13.7/src/backend/storage/smgr/md.c --- postgresql-13-13.4/src/backend/storage/smgr/md.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/smgr/md.c 2022-05-09 21:16:30.000000000 +0000 @@ -437,7 +437,8 @@ /* * If a relation manages to grow to 2^32-1 blocks, refuse to extend it any * more --- we mustn't create a block whose number actually is - * InvalidBlockNumber. + * InvalidBlockNumber. (Note that this failure should be unreachable + * because of upstream checks in bufmgr.c.) */ if (blocknum == InvalidBlockNumber) ereport(ERROR, diff -Nru postgresql-13-13.4/src/backend/storage/sync/sync.c postgresql-13-13.7/src/backend/storage/sync/sync.c --- postgresql-13-13.4/src/backend/storage/sync/sync.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/storage/sync/sync.c 2022-05-09 21:16:30.000000000 +0000 @@ -27,6 +27,7 @@ #include "postmaster/bgwriter.h" #include "storage/bufmgr.h" #include "storage/ipc.h" +#include "storage/latch.h" #include "storage/md.h" #include "utils/hsearch.h" #include "utils/inval.h" @@ -66,6 +67,7 @@ { FileTag tag; /* identifies handler and file */ CycleCtr cycle_ctr; /* checkpoint_cycle_ctr when request was made */ + bool canceled; /* true if request has been canceled */ } PendingUnlinkEntry; static HTAB *pendingOps = NULL; @@ -150,7 +152,9 @@ * counter is incremented here. * * This must be called *before* the checkpoint REDO point is determined. - * That ensures that we won't delete files too soon. + * That ensures that we won't delete files too soon. Since this calls + * AbsorbSyncRequests(), which performs memory allocations, it cannot be + * called within a critical section. * * Note that we can't do anything here that depends on the assumption * that the checkpoint will be completed. @@ -159,6 +163,16 @@ SyncPreCheckpoint(void) { /* + * Operations such as DROP TABLESPACE assume that the next checkpoint will + * process all recently forwarded unlink requests, but if they aren't + * absorbed prior to advancing the cycle counter, they won't be processed + * until a future checkpoint. The following absorb ensures that any + * unlink requests forwarded before the checkpoint began will be processed + * in the current checkpoint. + */ + AbsorbSyncRequests(); + + /* * Any unlink requests arriving after this point will be assigned the next * cycle counter, and won't be unlinked until next checkpoint. */ @@ -174,13 +188,18 @@ SyncPostCheckpoint(void) { int absorb_counter; + ListCell *lc; absorb_counter = UNLINKS_PER_ABSORB; - while (pendingUnlinks != NIL) + foreach(lc, pendingUnlinks) { - PendingUnlinkEntry *entry = (PendingUnlinkEntry *) linitial(pendingUnlinks); + PendingUnlinkEntry *entry = (PendingUnlinkEntry *) lfirst(lc); char path[MAXPGPATH]; + /* Skip over any canceled entries */ + if (entry->canceled) + continue; + /* * New entries are appended to the end, so if the entry is new we've * reached the end of old entries. @@ -210,15 +229,13 @@ errmsg("could not remove file \"%s\": %m", path))); } - /* And remove the list entry */ - pendingUnlinks = list_delete_first(pendingUnlinks); - pfree(entry); + /* Mark the list entry as canceled, just in case */ + entry->canceled = true; /* * As in ProcessSyncRequests, we don't want to stop absorbing fsync * requests for a long time when there are many deletions to be done. - * We can safely call AbsorbSyncRequests() at this point in the loop - * (note it might try to delete list entries). + * We can safely call AbsorbSyncRequests() at this point in the loop. */ if (--absorb_counter <= 0) { @@ -226,6 +243,26 @@ absorb_counter = UNLINKS_PER_ABSORB; } } + + /* + * If we reached the end of the list, we can just remove the whole list + * (remembering to pfree all the PendingUnlinkEntry objects). Otherwise, + * we must keep the entries at or after "lc". + */ + if (lc == NULL) + { + list_free_deep(pendingUnlinks); + pendingUnlinks = NIL; + } + else + { + int ntodelete = list_cell_number(pendingUnlinks, lc); + + for (int i = 0; i < ntodelete; i++) + pfree(list_nth(pendingUnlinks, i)); + + pendingUnlinks = list_delete_first_n(pendingUnlinks, ntodelete); + } } /* @@ -465,17 +502,14 @@ entry->canceled = true; } - /* Remove matching unlink requests */ + /* Cancel matching unlink requests */ foreach(cell, pendingUnlinks) { PendingUnlinkEntry *entry = (PendingUnlinkEntry *) lfirst(cell); if (entry->tag.handler == ftag->handler && syncsw[ftag->handler].sync_filetagmatches(ftag, &entry->tag)) - { - pendingUnlinks = foreach_delete_current(pendingUnlinks, cell); - pfree(entry); - } + entry->canceled = true; } } else if (type == SYNC_UNLINK_REQUEST) @@ -487,6 +521,7 @@ entry = palloc(sizeof(PendingUnlinkEntry)); entry->tag = *ftag; entry->cycle_ctr = checkpoint_cycle_ctr; + entry->canceled = false; pendingUnlinks = lappend(pendingUnlinks, entry); @@ -563,7 +598,8 @@ if (ret || (!ret && !retryOnError)) break; - pg_usleep(10000L); + WaitLatch(NULL, WL_EXIT_ON_PM_DEATH | WL_TIMEOUT, 10, + WAIT_EVENT_REGISTER_SYNC_REQUEST); } return ret; diff -Nru postgresql-13-13.4/src/backend/tcop/postgres.c postgresql-13-13.7/src/backend/tcop/postgres.c --- postgresql-13-13.4/src/backend/tcop/postgres.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/tcop/postgres.c 2022-05-09 21:16:30.000000000 +0000 @@ -538,7 +538,7 @@ /* Process notify interrupts, if any */ if (notifyInterruptPending) - ProcessNotifyInterrupt(); + ProcessNotifyInterrupt(true); } else if (ProcDiePending) { @@ -3280,7 +3280,9 @@ pg_stack_base_t set_stack_base(void) { +#ifndef HAVE__BUILTIN_FRAME_ADDRESS char stack_base; +#endif pg_stack_base_t old; #if defined(__ia64__) || defined(__ia64) @@ -3290,8 +3292,16 @@ old = stack_base_ptr; #endif - /* Set up reference point for stack depth checking */ + /* + * Set up reference point for stack depth checking. On recent gcc we use + * __builtin_frame_address() to avoid a warning about storing a local + * variable's address in a long-lived variable. + */ +#ifdef HAVE__BUILTIN_FRAME_ADDRESS + stack_base_ptr = __builtin_frame_address(0); +#else stack_base_ptr = &stack_base; +#endif #if defined(__ia64__) || defined(__ia64) register_stack_base_ptr = ia64_get_bsp(); #endif @@ -4243,17 +4253,15 @@ } else { - /* Send out notify signals and transmit self-notifies */ - ProcessCompletedNotifies(); - /* - * Also process incoming notifies, if any. This is mostly to - * ensure stable behavior in tests: if any notifies were - * received during the just-finished transaction, they'll be - * seen by the client before ReadyForQuery is. + * Process incoming notifies (including self-notifies), if + * any, and send relevant messages to the client. Doing it + * here helps ensure stable behavior in tests: if any notifies + * were received during the just-finished transaction, they'll + * be seen by the client before ReadyForQuery is. */ if (notifyInterruptPending) - ProcessNotifyInterrupt(); + ProcessNotifyInterrupt(false); pgstat_report_stat(false); diff -Nru postgresql-13-13.4/src/backend/tcop/pquery.c postgresql-13-13.7/src/backend/tcop/pquery.c --- postgresql-13-13.4/src/backend/tcop/pquery.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/tcop/pquery.c 2022-05-09 21:16:30.000000000 +0000 @@ -480,7 +480,9 @@ * We could remember the snapshot in portal->portalSnapshot, * but presently there seems no need to, as this code path * cannot be used for non-atomic execution. Hence there can't - * be any commit/abort that might destroy the snapshot. + * be any commit/abort that might destroy the snapshot. Since + * we don't do that, there's also no need to force a + * non-default nesting level for the snapshot. */ /* @@ -1134,9 +1136,15 @@ snapshot = RegisterSnapshot(snapshot); portal->holdSnapshot = snapshot; } - /* In any case, make the snapshot active and remember it in portal */ - PushActiveSnapshot(snapshot); - /* PushActiveSnapshot might have copied the snapshot */ + + /* + * In any case, make the snapshot active and remember it in portal. + * Because the portal now references the snapshot, we must tell + * snapmgr.c that the snapshot belongs to the portal's transaction + * level, else we risk portalSnapshot becoming a dangling pointer. + */ + PushActiveSnapshotWithLevel(snapshot, portal->createLevel); + /* PushActiveSnapshotWithLevel might have copied the snapshot */ portal->portalSnapshot = GetActiveSnapshot(); } else @@ -1469,9 +1477,8 @@ * DoPortalRunFetch * Guts of PortalRunFetch --- the portal context is already set up * - * count <= 0 is interpreted as a no-op: the destination gets started up - * and shut down, but nothing else happens. Also, count == FETCH_ALL is - * interpreted as "all rows". (cf FetchStmt.howMany) + * Here, count < 0 typically reverses the direction. Also, count == FETCH_ALL + * is interpreted as "all rows". (cf FetchStmt.howMany) * * Returns number of rows processed (suitable for use in result tag) */ @@ -1488,6 +1495,15 @@ portal->strategy == PORTAL_ONE_MOD_WITH || portal->strategy == PORTAL_UTIL_SELECT); + /* + * Note: we disallow backwards fetch (including re-fetch of current row) + * for NO SCROLL cursors, but we interpret that very loosely: you can use + * any of the FetchDirection options, so long as the end result is to move + * forwards by at least one row. Currently it's sufficient to check for + * NO SCROLL in DoPortalRewind() and in the forward == false path in + * PortalRunSelect(); but someday we might prefer to account for that + * restriction explicitly here. + */ switch (fdirection) { case FETCH_FORWARD: @@ -1665,6 +1681,25 @@ { QueryDesc *queryDesc; + /* + * No work is needed if we've not advanced nor attempted to advance the + * cursor (and we don't want to throw a NO SCROLL error in this case). + */ + if (portal->atStart && !portal->atEnd) + return; + + /* + * Otherwise, cursor should allow scrolling. However, we're only going to + * enforce that policy fully beginning in v15. In older branches, insist + * on this only if the portal has a holdStore. That prevents users from + * seeing that the holdStore may not have all the rows of the query. + */ + if ((portal->cursorOptions & CURSOR_OPT_NO_SCROLL) && portal->holdStore) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("cursor can only scan forward"), + errhint("Declare it with SCROLL option to enable backward scan."))); + /* Rewind holdStore, if we have one */ if (portal->holdStore) { @@ -1759,8 +1794,13 @@ elog(ERROR, "cannot execute SQL without an outer snapshot or portal"); Assert(portal->portalSnapshot == NULL); - /* Create a new snapshot and make it active */ - PushActiveSnapshot(GetTransactionSnapshot()); - /* PushActiveSnapshot might have copied the snapshot */ + /* + * Create a new snapshot, make it active, and remember it in portal. + * Because the portal now references the snapshot, we must tell snapmgr.c + * that the snapshot belongs to the portal's transaction level, else we + * risk portalSnapshot becoming a dangling pointer. + */ + PushActiveSnapshotWithLevel(GetTransactionSnapshot(), portal->createLevel); + /* PushActiveSnapshotWithLevel might have copied the snapshot */ portal->portalSnapshot = GetActiveSnapshot(); } diff -Nru postgresql-13-13.4/src/backend/tcop/utility.c postgresql-13-13.7/src/backend/tcop/utility.c --- postgresql-13-13.4/src/backend/tcop/utility.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/tcop/utility.c 2022-05-09 21:16:30.000000000 +0000 @@ -787,6 +787,23 @@ ListenStmt *stmt = (ListenStmt *) parsetree; CheckRestrictedOperation("LISTEN"); + + /* + * We don't allow LISTEN in background processes, as there is + * no mechanism for them to collect NOTIFY messages, so they'd + * just block cleanout of the async SLRU indefinitely. + * (Authors of custom background workers could bypass this + * restriction by calling Async_Listen directly, but then it's + * on them to provide some mechanism to process the message + * queue.) Note there seems no reason to forbid UNLISTEN. + */ + if (MyBackendType != B_BACKEND) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + /* translator: %s is name of a SQL command, eg LISTEN */ + errmsg("cannot execute %s within a background process", + "LISTEN"))); + Async_Listen(stmt->conditionname); } break; diff -Nru postgresql-13-13.4/src/backend/utils/adt/date.c postgresql-13-13.7/src/backend/utils/adt/date.c --- postgresql-13-13.4/src/backend/utils/adt/date.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/adt/date.c 2022-05-09 21:16:30.000000000 +0000 @@ -2832,6 +2832,8 @@ struct pg_tm *tm; tm = pg_localtime(&now, tzp); + tm->tm_year += 1900; /* adjust to PG conventions */ + tm->tm_mon += 1; tz = DetermineTimeZoneAbbrevOffset(tm, tzname, tzp); } else diff -Nru postgresql-13-13.4/src/backend/utils/adt/jsonpath_gram.c postgresql-13-13.7/src/backend/utils/adt/jsonpath_gram.c --- postgresql-13-13.4/src/backend/utils/adt/jsonpath_gram.c 2021-08-09 21:03:31.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/adt/jsonpath_gram.c 2022-05-09 21:29:45.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -70,9 +71,8 @@ #define yydebug jsonpath_yydebug #define yynerrs jsonpath_yynerrs - /* First part of user prologue. */ -#line 1 "jsonpath_gram.y" /* yacc.c:337 */ +#line 1 "jsonpath_gram.y" /*------------------------------------------------------------------------- * @@ -144,7 +144,17 @@ #define YYFREE pfree -#line 148 "jsonpath_gram.c" /* yacc.c:337 */ +#line 148 "jsonpath_gram.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -157,14 +167,6 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 1 -#endif - /* Debug traces. */ #ifndef YYDEBUG @@ -174,58 +176,62 @@ extern int jsonpath_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - TO_P = 258, - NULL_P = 259, - TRUE_P = 260, - FALSE_P = 261, - IS_P = 262, - UNKNOWN_P = 263, - EXISTS_P = 264, - IDENT_P = 265, - STRING_P = 266, - NUMERIC_P = 267, - INT_P = 268, - VARIABLE_P = 269, - OR_P = 270, - AND_P = 271, - NOT_P = 272, - LESS_P = 273, - LESSEQUAL_P = 274, - EQUAL_P = 275, - NOTEQUAL_P = 276, - GREATEREQUAL_P = 277, - GREATER_P = 278, - ANY_P = 279, - STRICT_P = 280, - LAX_P = 281, - LAST_P = 282, - STARTS_P = 283, - WITH_P = 284, - LIKE_REGEX_P = 285, - FLAG_P = 286, - ABS_P = 287, - SIZE_P = 288, - TYPE_P = 289, - FLOOR_P = 290, - DOUBLE_P = 291, - CEILING_P = 292, - KEYVALUE_P = 293, - DATETIME_P = 294, - UMINUS = 295 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + TO_P = 258, /* TO_P */ + NULL_P = 259, /* NULL_P */ + TRUE_P = 260, /* TRUE_P */ + FALSE_P = 261, /* FALSE_P */ + IS_P = 262, /* IS_P */ + UNKNOWN_P = 263, /* UNKNOWN_P */ + EXISTS_P = 264, /* EXISTS_P */ + IDENT_P = 265, /* IDENT_P */ + STRING_P = 266, /* STRING_P */ + NUMERIC_P = 267, /* NUMERIC_P */ + INT_P = 268, /* INT_P */ + VARIABLE_P = 269, /* VARIABLE_P */ + OR_P = 270, /* OR_P */ + AND_P = 271, /* AND_P */ + NOT_P = 272, /* NOT_P */ + LESS_P = 273, /* LESS_P */ + LESSEQUAL_P = 274, /* LESSEQUAL_P */ + EQUAL_P = 275, /* EQUAL_P */ + NOTEQUAL_P = 276, /* NOTEQUAL_P */ + GREATEREQUAL_P = 277, /* GREATEREQUAL_P */ + GREATER_P = 278, /* GREATER_P */ + ANY_P = 279, /* ANY_P */ + STRICT_P = 280, /* STRICT_P */ + LAX_P = 281, /* LAX_P */ + LAST_P = 282, /* LAST_P */ + STARTS_P = 283, /* STARTS_P */ + WITH_P = 284, /* WITH_P */ + LIKE_REGEX_P = 285, /* LIKE_REGEX_P */ + FLAG_P = 286, /* FLAG_P */ + ABS_P = 287, /* ABS_P */ + SIZE_P = 288, /* SIZE_P */ + TYPE_P = 289, /* TYPE_P */ + FLOOR_P = 290, /* FLOOR_P */ + DOUBLE_P = 291, /* DOUBLE_P */ + CEILING_P = 292, /* CEILING_P */ + KEYVALUE_P = 293, /* KEYVALUE_P */ + DATETIME_P = 294, /* DATETIME_P */ + UMINUS = 295 /* UMINUS */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 80 "jsonpath_gram.y" /* yacc.c:352 */ +#line 80 "jsonpath_gram.y" JsonPathString str; List *elems; /* list of JsonPathParseItem */ @@ -236,9 +242,9 @@ bool boolean; int integer; -#line 240 "jsonpath_gram.c" /* yacc.c:352 */ -}; +#line 246 "jsonpath_gram.c" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -249,6 +255,93 @@ int jsonpath_yyparse (JsonPathParseResult **result); +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_TO_P = 3, /* TO_P */ + YYSYMBOL_NULL_P = 4, /* NULL_P */ + YYSYMBOL_TRUE_P = 5, /* TRUE_P */ + YYSYMBOL_FALSE_P = 6, /* FALSE_P */ + YYSYMBOL_IS_P = 7, /* IS_P */ + YYSYMBOL_UNKNOWN_P = 8, /* UNKNOWN_P */ + YYSYMBOL_EXISTS_P = 9, /* EXISTS_P */ + YYSYMBOL_IDENT_P = 10, /* IDENT_P */ + YYSYMBOL_STRING_P = 11, /* STRING_P */ + YYSYMBOL_NUMERIC_P = 12, /* NUMERIC_P */ + YYSYMBOL_INT_P = 13, /* INT_P */ + YYSYMBOL_VARIABLE_P = 14, /* VARIABLE_P */ + YYSYMBOL_OR_P = 15, /* OR_P */ + YYSYMBOL_AND_P = 16, /* AND_P */ + YYSYMBOL_NOT_P = 17, /* NOT_P */ + YYSYMBOL_LESS_P = 18, /* LESS_P */ + YYSYMBOL_LESSEQUAL_P = 19, /* LESSEQUAL_P */ + YYSYMBOL_EQUAL_P = 20, /* EQUAL_P */ + YYSYMBOL_NOTEQUAL_P = 21, /* NOTEQUAL_P */ + YYSYMBOL_GREATEREQUAL_P = 22, /* GREATEREQUAL_P */ + YYSYMBOL_GREATER_P = 23, /* GREATER_P */ + YYSYMBOL_ANY_P = 24, /* ANY_P */ + YYSYMBOL_STRICT_P = 25, /* STRICT_P */ + YYSYMBOL_LAX_P = 26, /* LAX_P */ + YYSYMBOL_LAST_P = 27, /* LAST_P */ + YYSYMBOL_STARTS_P = 28, /* STARTS_P */ + YYSYMBOL_WITH_P = 29, /* WITH_P */ + YYSYMBOL_LIKE_REGEX_P = 30, /* LIKE_REGEX_P */ + YYSYMBOL_FLAG_P = 31, /* FLAG_P */ + YYSYMBOL_ABS_P = 32, /* ABS_P */ + YYSYMBOL_SIZE_P = 33, /* SIZE_P */ + YYSYMBOL_TYPE_P = 34, /* TYPE_P */ + YYSYMBOL_FLOOR_P = 35, /* FLOOR_P */ + YYSYMBOL_DOUBLE_P = 36, /* DOUBLE_P */ + YYSYMBOL_CEILING_P = 37, /* CEILING_P */ + YYSYMBOL_KEYVALUE_P = 38, /* KEYVALUE_P */ + YYSYMBOL_DATETIME_P = 39, /* DATETIME_P */ + YYSYMBOL_40_ = 40, /* '+' */ + YYSYMBOL_41_ = 41, /* '-' */ + YYSYMBOL_42_ = 42, /* '*' */ + YYSYMBOL_43_ = 43, /* '/' */ + YYSYMBOL_44_ = 44, /* '%' */ + YYSYMBOL_UMINUS = 45, /* UMINUS */ + YYSYMBOL_46_ = 46, /* '(' */ + YYSYMBOL_47_ = 47, /* ')' */ + YYSYMBOL_48_ = 48, /* '$' */ + YYSYMBOL_49_ = 49, /* '@' */ + YYSYMBOL_50_ = 50, /* ',' */ + YYSYMBOL_51_ = 51, /* '[' */ + YYSYMBOL_52_ = 52, /* ']' */ + YYSYMBOL_53_ = 53, /* '{' */ + YYSYMBOL_54_ = 54, /* '}' */ + YYSYMBOL_55_ = 55, /* '.' */ + YYSYMBOL_56_ = 56, /* '?' */ + YYSYMBOL_YYACCEPT = 57, /* $accept */ + YYSYMBOL_result = 58, /* result */ + YYSYMBOL_expr_or_predicate = 59, /* expr_or_predicate */ + YYSYMBOL_mode = 60, /* mode */ + YYSYMBOL_scalar_value = 61, /* scalar_value */ + YYSYMBOL_comp_op = 62, /* comp_op */ + YYSYMBOL_delimited_predicate = 63, /* delimited_predicate */ + YYSYMBOL_predicate = 64, /* predicate */ + YYSYMBOL_starts_with_initial = 65, /* starts_with_initial */ + YYSYMBOL_path_primary = 66, /* path_primary */ + YYSYMBOL_accessor_expr = 67, /* accessor_expr */ + YYSYMBOL_expr = 68, /* expr */ + YYSYMBOL_index_elem = 69, /* index_elem */ + YYSYMBOL_index_list = 70, /* index_list */ + YYSYMBOL_array_accessor = 71, /* array_accessor */ + YYSYMBOL_any_level = 72, /* any_level */ + YYSYMBOL_any_path = 73, /* any_path */ + YYSYMBOL_accessor_op = 74, /* accessor_op */ + YYSYMBOL_datetime_template = 75, /* datetime_template */ + YYSYMBOL_opt_datetime_template = 76, /* opt_datetime_template */ + YYSYMBOL_key = 77, /* key */ + YYSYMBOL_key_name = 78, /* key_name */ + YYSYMBOL_method = 79 /* method */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + @@ -256,28 +349,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -285,7 +437,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -293,7 +445,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_uint8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -307,38 +472,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -351,8 +515,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + -#if ! defined yyoverflow || YYERROR_VERBOSE +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if 1 /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -417,8 +595,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* 1 */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -427,17 +604,17 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -450,11 +627,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -466,12 +643,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -494,17 +671,20 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 143 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 295 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint8 yytranslate[] = +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -540,7 +720,7 @@ #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { 0, 130, 130, 135, 139, 140, 144, 145, 146, 150, 151, 152, 153, 154, 155, 156, 160, 161, 162, 163, @@ -556,32 +736,46 @@ }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 1 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if 1 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "TO_P", "NULL_P", "TRUE_P", "FALSE_P", - "IS_P", "UNKNOWN_P", "EXISTS_P", "IDENT_P", "STRING_P", "NUMERIC_P", - "INT_P", "VARIABLE_P", "OR_P", "AND_P", "NOT_P", "LESS_P", "LESSEQUAL_P", - "EQUAL_P", "NOTEQUAL_P", "GREATEREQUAL_P", "GREATER_P", "ANY_P", - "STRICT_P", "LAX_P", "LAST_P", "STARTS_P", "WITH_P", "LIKE_REGEX_P", - "FLAG_P", "ABS_P", "SIZE_P", "TYPE_P", "FLOOR_P", "DOUBLE_P", - "CEILING_P", "KEYVALUE_P", "DATETIME_P", "'+'", "'-'", "'*'", "'/'", - "'%'", "UMINUS", "'('", "')'", "'$'", "'@'", "','", "'['", "']'", "'{'", - "'}'", "'.'", "'?'", "$accept", "result", "expr_or_predicate", "mode", - "scalar_value", "comp_op", "delimited_predicate", "predicate", - "starts_with_initial", "path_primary", "accessor_expr", "expr", - "index_elem", "index_list", "array_accessor", "any_level", "any_path", - "accessor_op", "datetime_template", "opt_datetime_template", "key", - "key_name", "method", YY_NULLPTR + "\"end of file\"", "error", "\"invalid token\"", "TO_P", "NULL_P", + "TRUE_P", "FALSE_P", "IS_P", "UNKNOWN_P", "EXISTS_P", "IDENT_P", + "STRING_P", "NUMERIC_P", "INT_P", "VARIABLE_P", "OR_P", "AND_P", "NOT_P", + "LESS_P", "LESSEQUAL_P", "EQUAL_P", "NOTEQUAL_P", "GREATEREQUAL_P", + "GREATER_P", "ANY_P", "STRICT_P", "LAX_P", "LAST_P", "STARTS_P", + "WITH_P", "LIKE_REGEX_P", "FLAG_P", "ABS_P", "SIZE_P", "TYPE_P", + "FLOOR_P", "DOUBLE_P", "CEILING_P", "KEYVALUE_P", "DATETIME_P", "'+'", + "'-'", "'*'", "'/'", "'%'", "UMINUS", "'('", "')'", "'$'", "'@'", "','", + "'['", "']'", "'{'", "'}'", "'.'", "'?'", "$accept", "result", + "expr_or_predicate", "mode", "scalar_value", "comp_op", + "delimited_predicate", "predicate", "starts_with_initial", + "path_primary", "accessor_expr", "expr", "index_elem", "index_list", + "array_accessor", "any_level", "any_path", "accessor_op", + "datetime_template", "opt_datetime_template", "key", "key_name", + "method", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -590,16 +784,16 @@ 43, 45, 42, 47, 37, 295, 40, 41, 36, 64, 44, 91, 93, 123, 125, 46, 63 }; -# endif +#endif -#define YYPACT_NINF -44 +#define YYPACT_NINF (-44) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-44))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -105 +#define YYTABLE_NINF (-105) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -626,7 +820,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint8 yydefact[] = +static const yytype_int8 yydefact[] = { 8, 6, 7, 0, 0, 1, 10, 11, 12, 0, 9, 13, 14, 15, 0, 38, 0, 0, 0, 36, @@ -654,9 +848,9 @@ }; /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = +static const yytype_uint8 yydefgoto[] = { - -1, 3, 21, 4, 22, 56, 23, 24, 124, 25, + 0, 3, 21, 4, 22, 56, 23, 24, 124, 25, 26, 59, 67, 68, 41, 131, 95, 112, 133, 134, 96, 97, 98 }; @@ -722,7 +916,7 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_int8 yystos[] = { 0, 25, 26, 58, 60, 0, 4, 5, 6, 9, 11, 12, 13, 14, 17, 27, 40, 41, 46, 48, @@ -742,7 +936,7 @@ }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_int8 yyr1[] = { 0, 57, 58, 58, 59, 59, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, @@ -758,7 +952,7 @@ }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 2, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -774,10 +968,10 @@ }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -803,10 +997,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* Enable debugging if requested. */ @@ -824,18 +1017,18 @@ } while (0) /* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value, result); \ + Kind, Value, result); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -846,18 +1039,21 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, JsonPathParseResult **result) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, JsonPathParseResult **result) { FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (result); + YY_USE (yyoutput); + YY_USE (result); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -866,12 +1062,13 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, JsonPathParseResult **result) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, JsonPathParseResult **result) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyo, yytype, yyvaluep, result); + yy_symbol_value_print (yyo, yykind, yyvaluep, result); YYFPRINTF (yyo, ")"); } @@ -881,7 +1078,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -904,21 +1101,21 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, JsonPathParseResult **result) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule, JsonPathParseResult **result) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - , result); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], result); YYFPRINTF (stderr, "\n"); } } @@ -933,8 +1130,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -957,28 +1154,76 @@ #endif -#if YYERROR_VERBOSE +/* Context of a parse error. */ +typedef struct +{ + yy_state_t *yyssp; + yysymbol_kind_t yytoken; +} yypcontext_t; + +/* Put in YYARG at most YYARGN of the expected tokens given the + current YYCTX, and return the number of tokens stored in YYARG. If + YYARG is null, return the number of expected tokens (guaranteed to + be less than YYNTOKENS). Return YYENOMEM on memory exhaustion. + Return 0 if there are more than YYARGN expected tokens, yet fill + YYARG up to YYARGN. */ +static int +yypcontext_expected_tokens (const yypcontext_t *yyctx, + yysymbol_kind_t yyarg[], int yyargn) +{ + /* Actual size of YYARG. */ + int yycount = 0; + int yyn = yypact[+*yyctx->yyssp]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (!yyarg) + ++yycount; + else if (yycount == yyargn) + return 0; + else + yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx); + } + } + if (yyarg && yycount == 0 && 0 < yyargn) + yyarg[0] = YYSYMBOL_YYEMPTY; + return yycount; +} -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else + + + +#ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) +# else /* Return the length of YYSTR. */ -static YYSIZE_T +static YYPTRDIFF_T yystrlen (const char *yystr) { - YYSIZE_T yylen; + YYPTRDIFF_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } -# endif # endif +#endif -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else +#ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ static char * @@ -992,10 +1237,10 @@ return yyd - 1; } -# endif # endif +#endif -# ifndef yytnamerr +#ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string @@ -1003,14 +1248,13 @@ backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ -static YYSIZE_T +static YYPTRDIFF_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { - YYSIZE_T yyn = 0; + YYPTRDIFF_T yyn = 0; char const *yyp = yystr; - for (;;) switch (*++yyp) { @@ -1039,36 +1283,20 @@ do_not_strip_quotes: ; } - if (! yyres) + if (yyres) + return yystpcpy (yyres, yystr) - yyres; + else return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); } -# endif +#endif -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) +yy_syntax_error_arguments (const yypcontext_t *yyctx, + yysymbol_kind_t yyarg[], int yyargn) { - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ + /* Actual size of YYARG. */ int yycount = 0; - /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action @@ -1092,49 +1320,54 @@ one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ - if (yytoken != YYEMPTY) + if (yyctx->yytoken != YYSYMBOL_YYEMPTY) { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } + int yyn; + if (yyarg) + yyarg[yycount] = yyctx->yytoken; + ++yycount; + yyn = yypcontext_expected_tokens (yyctx, + yyarg ? yyarg + 1 : yyarg, yyargn - 1); + if (yyn == YYENOMEM) + return YYENOMEM; + else + yycount += yyn; } + return yycount; +} + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, + const yypcontext_t *yyctx) +{ + enum { YYARGS_MAX = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat: reported tokens (one for the "unexpected", + one per "expected"). */ + yysymbol_kind_t yyarg[YYARGS_MAX]; + /* Cumulated lengths of YYARG. */ + YYPTRDIFF_T yysize = 0; + + /* Actual size of YYARG. */ + int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX); + if (yycount == YYENOMEM) + return YYENOMEM; switch (yycount) { -# define YYCASE_(N, S) \ +#define YYCASE_(N, S) \ case N: \ yyformat = S; \ - break + break default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); @@ -1142,15 +1375,23 @@ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ +#undef YYCASE_ } + /* Compute error message size. Don't count the "%s"s, but reserve + room for the terminator. */ + yysize = yystrlen (yyformat) - 2 * yycount + 1; { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; + int yyi; + for (yyi = 0; yyi < yycount; ++yyi) + { + YYPTRDIFF_T yysize1 + = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]); + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return YYENOMEM; + } } if (*yymsg_alloc < yysize) @@ -1159,7 +1400,7 @@ if (! (yysize <= *yymsg_alloc && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; + return -1; } /* Avoid sprintf, as that infringes on the user's name space. @@ -1171,40 +1412,43 @@ while ((*yyp = *yyformat) != '\0') if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) { - yyp += yytnamerr (yyp, yyarg[yyi++]); + yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]); yyformat += 2; } else { - yyp++; - yyformat++; + ++yyp; + ++yyformat; } } return 0; } -#endif /* YYERROR_VERBOSE */ + /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, JsonPathParseResult **result) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, JsonPathParseResult **result) { - YYUSE (yyvaluep); - YYUSE (result); + YY_USE (yyvaluep); + YY_USE (result); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } + + /*----------. | yyparse. | `----------*/ @@ -1212,7 +1456,7 @@ int yyparse (JsonPathParseResult **result) { -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; @@ -1223,45 +1467,41 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Number of syntax errors so far. */ - int yynerrs; + int yynerrs = 0; - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. + int yyerrstatus = 0; - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - YYSIZE_T yystacksize; + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -1269,15 +1509,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; @@ -1292,10 +1525,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1303,23 +1541,23 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -1333,14 +1571,15 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1349,16 +1588,16 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -1379,18 +1618,29 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (&yylval); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1418,15 +1668,13 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1461,486 +1709,487 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 130 "jsonpath_gram.y" /* yacc.c:1652 */ - { + case 2: /* result: mode expr_or_predicate */ +#line 130 "jsonpath_gram.y" + { *result = palloc(sizeof(JsonPathParseResult)); (*result)->expr = (yyvsp[0].value); (*result)->lax = (yyvsp[-1].boolean); } -#line 1472 "jsonpath_gram.c" /* yacc.c:1652 */ +#line 1720 "jsonpath_gram.c" break; - case 3: -#line 135 "jsonpath_gram.y" /* yacc.c:1652 */ - { *result = NULL; } -#line 1478 "jsonpath_gram.c" /* yacc.c:1652 */ + case 3: /* result: %empty */ +#line 135 "jsonpath_gram.y" + { *result = NULL; } +#line 1726 "jsonpath_gram.c" break; - case 4: -#line 139 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[0].value); } -#line 1484 "jsonpath_gram.c" /* yacc.c:1652 */ + case 4: /* expr_or_predicate: expr */ +#line 139 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[0].value); } +#line 1732 "jsonpath_gram.c" break; - case 5: -#line 140 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[0].value); } -#line 1490 "jsonpath_gram.c" /* yacc.c:1652 */ + case 5: /* expr_or_predicate: predicate */ +#line 140 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[0].value); } +#line 1738 "jsonpath_gram.c" break; - case 6: -#line 144 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 1496 "jsonpath_gram.c" /* yacc.c:1652 */ + case 6: /* mode: STRICT_P */ +#line 144 "jsonpath_gram.y" + { (yyval.boolean) = false; } +#line 1744 "jsonpath_gram.c" break; - case 7: -#line 145 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 1502 "jsonpath_gram.c" /* yacc.c:1652 */ + case 7: /* mode: LAX_P */ +#line 145 "jsonpath_gram.y" + { (yyval.boolean) = true; } +#line 1750 "jsonpath_gram.c" break; - case 8: -#line 146 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 1508 "jsonpath_gram.c" /* yacc.c:1652 */ + case 8: /* mode: %empty */ +#line 146 "jsonpath_gram.y" + { (yyval.boolean) = true; } +#line 1756 "jsonpath_gram.c" break; - case 9: -#line 150 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemString(&(yyvsp[0].str)); } -#line 1514 "jsonpath_gram.c" /* yacc.c:1652 */ + case 9: /* scalar_value: STRING_P */ +#line 150 "jsonpath_gram.y" + { (yyval.value) = makeItemString(&(yyvsp[0].str)); } +#line 1762 "jsonpath_gram.c" break; - case 10: -#line 151 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemString(NULL); } -#line 1520 "jsonpath_gram.c" /* yacc.c:1652 */ + case 10: /* scalar_value: NULL_P */ +#line 151 "jsonpath_gram.y" + { (yyval.value) = makeItemString(NULL); } +#line 1768 "jsonpath_gram.c" break; - case 11: -#line 152 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBool(true); } -#line 1526 "jsonpath_gram.c" /* yacc.c:1652 */ + case 11: /* scalar_value: TRUE_P */ +#line 152 "jsonpath_gram.y" + { (yyval.value) = makeItemBool(true); } +#line 1774 "jsonpath_gram.c" break; - case 12: -#line 153 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBool(false); } -#line 1532 "jsonpath_gram.c" /* yacc.c:1652 */ + case 12: /* scalar_value: FALSE_P */ +#line 153 "jsonpath_gram.y" + { (yyval.value) = makeItemBool(false); } +#line 1780 "jsonpath_gram.c" break; - case 13: -#line 154 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemNumeric(&(yyvsp[0].str)); } -#line 1538 "jsonpath_gram.c" /* yacc.c:1652 */ + case 13: /* scalar_value: NUMERIC_P */ +#line 154 "jsonpath_gram.y" + { (yyval.value) = makeItemNumeric(&(yyvsp[0].str)); } +#line 1786 "jsonpath_gram.c" break; - case 14: -#line 155 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemNumeric(&(yyvsp[0].str)); } -#line 1544 "jsonpath_gram.c" /* yacc.c:1652 */ + case 14: /* scalar_value: INT_P */ +#line 155 "jsonpath_gram.y" + { (yyval.value) = makeItemNumeric(&(yyvsp[0].str)); } +#line 1792 "jsonpath_gram.c" break; - case 15: -#line 156 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemVariable(&(yyvsp[0].str)); } -#line 1550 "jsonpath_gram.c" /* yacc.c:1652 */ + case 15: /* scalar_value: VARIABLE_P */ +#line 156 "jsonpath_gram.y" + { (yyval.value) = makeItemVariable(&(yyvsp[0].str)); } +#line 1798 "jsonpath_gram.c" break; - case 16: -#line 160 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiEqual; } -#line 1556 "jsonpath_gram.c" /* yacc.c:1652 */ + case 16: /* comp_op: EQUAL_P */ +#line 160 "jsonpath_gram.y" + { (yyval.optype) = jpiEqual; } +#line 1804 "jsonpath_gram.c" break; - case 17: -#line 161 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiNotEqual; } -#line 1562 "jsonpath_gram.c" /* yacc.c:1652 */ + case 17: /* comp_op: NOTEQUAL_P */ +#line 161 "jsonpath_gram.y" + { (yyval.optype) = jpiNotEqual; } +#line 1810 "jsonpath_gram.c" break; - case 18: -#line 162 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiLess; } -#line 1568 "jsonpath_gram.c" /* yacc.c:1652 */ + case 18: /* comp_op: LESS_P */ +#line 162 "jsonpath_gram.y" + { (yyval.optype) = jpiLess; } +#line 1816 "jsonpath_gram.c" break; - case 19: -#line 163 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiGreater; } -#line 1574 "jsonpath_gram.c" /* yacc.c:1652 */ + case 19: /* comp_op: GREATER_P */ +#line 163 "jsonpath_gram.y" + { (yyval.optype) = jpiGreater; } +#line 1822 "jsonpath_gram.c" break; - case 20: -#line 164 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiLessOrEqual; } -#line 1580 "jsonpath_gram.c" /* yacc.c:1652 */ + case 20: /* comp_op: LESSEQUAL_P */ +#line 164 "jsonpath_gram.y" + { (yyval.optype) = jpiLessOrEqual; } +#line 1828 "jsonpath_gram.c" break; - case 21: -#line 165 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiGreaterOrEqual; } -#line 1586 "jsonpath_gram.c" /* yacc.c:1652 */ + case 21: /* comp_op: GREATEREQUAL_P */ +#line 165 "jsonpath_gram.y" + { (yyval.optype) = jpiGreaterOrEqual; } +#line 1834 "jsonpath_gram.c" break; - case 22: -#line 169 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[-1].value); } -#line 1592 "jsonpath_gram.c" /* yacc.c:1652 */ + case 22: /* delimited_predicate: '(' predicate ')' */ +#line 169 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[-1].value); } +#line 1840 "jsonpath_gram.c" break; - case 23: -#line 170 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemUnary(jpiExists, (yyvsp[-1].value)); } -#line 1598 "jsonpath_gram.c" /* yacc.c:1652 */ + case 23: /* delimited_predicate: EXISTS_P '(' expr ')' */ +#line 170 "jsonpath_gram.y" + { (yyval.value) = makeItemUnary(jpiExists, (yyvsp[-1].value)); } +#line 1846 "jsonpath_gram.c" break; - case 24: -#line 174 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[0].value); } -#line 1604 "jsonpath_gram.c" /* yacc.c:1652 */ + case 24: /* predicate: delimited_predicate */ +#line 174 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[0].value); } +#line 1852 "jsonpath_gram.c" break; - case 25: -#line 175 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary((yyvsp[-1].optype), (yyvsp[-2].value), (yyvsp[0].value)); } -#line 1610 "jsonpath_gram.c" /* yacc.c:1652 */ + case 25: /* predicate: expr comp_op expr */ +#line 175 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary((yyvsp[-1].optype), (yyvsp[-2].value), (yyvsp[0].value)); } +#line 1858 "jsonpath_gram.c" break; - case 26: -#line 176 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiAnd, (yyvsp[-2].value), (yyvsp[0].value)); } -#line 1616 "jsonpath_gram.c" /* yacc.c:1652 */ + case 26: /* predicate: predicate AND_P predicate */ +#line 176 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiAnd, (yyvsp[-2].value), (yyvsp[0].value)); } +#line 1864 "jsonpath_gram.c" break; - case 27: -#line 177 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiOr, (yyvsp[-2].value), (yyvsp[0].value)); } -#line 1622 "jsonpath_gram.c" /* yacc.c:1652 */ + case 27: /* predicate: predicate OR_P predicate */ +#line 177 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiOr, (yyvsp[-2].value), (yyvsp[0].value)); } +#line 1870 "jsonpath_gram.c" break; - case 28: -#line 178 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemUnary(jpiNot, (yyvsp[0].value)); } -#line 1628 "jsonpath_gram.c" /* yacc.c:1652 */ + case 28: /* predicate: NOT_P delimited_predicate */ +#line 178 "jsonpath_gram.y" + { (yyval.value) = makeItemUnary(jpiNot, (yyvsp[0].value)); } +#line 1876 "jsonpath_gram.c" break; - case 29: -#line 180 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemUnary(jpiIsUnknown, (yyvsp[-3].value)); } -#line 1634 "jsonpath_gram.c" /* yacc.c:1652 */ + case 29: /* predicate: '(' predicate ')' IS_P UNKNOWN_P */ +#line 180 "jsonpath_gram.y" + { (yyval.value) = makeItemUnary(jpiIsUnknown, (yyvsp[-3].value)); } +#line 1882 "jsonpath_gram.c" break; - case 30: -#line 182 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiStartsWith, (yyvsp[-3].value), (yyvsp[0].value)); } -#line 1640 "jsonpath_gram.c" /* yacc.c:1652 */ + case 30: /* predicate: expr STARTS_P WITH_P starts_with_initial */ +#line 182 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiStartsWith, (yyvsp[-3].value), (yyvsp[0].value)); } +#line 1888 "jsonpath_gram.c" break; - case 31: -#line 183 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemLikeRegex((yyvsp[-2].value), &(yyvsp[0].str), NULL); } -#line 1646 "jsonpath_gram.c" /* yacc.c:1652 */ + case 31: /* predicate: expr LIKE_REGEX_P STRING_P */ +#line 183 "jsonpath_gram.y" + { (yyval.value) = makeItemLikeRegex((yyvsp[-2].value), &(yyvsp[0].str), NULL); } +#line 1894 "jsonpath_gram.c" break; - case 32: -#line 185 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemLikeRegex((yyvsp[-4].value), &(yyvsp[-2].str), &(yyvsp[0].str)); } -#line 1652 "jsonpath_gram.c" /* yacc.c:1652 */ + case 32: /* predicate: expr LIKE_REGEX_P STRING_P FLAG_P STRING_P */ +#line 185 "jsonpath_gram.y" + { (yyval.value) = makeItemLikeRegex((yyvsp[-4].value), &(yyvsp[-2].str), &(yyvsp[0].str)); } +#line 1900 "jsonpath_gram.c" break; - case 33: -#line 189 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemString(&(yyvsp[0].str)); } -#line 1658 "jsonpath_gram.c" /* yacc.c:1652 */ + case 33: /* starts_with_initial: STRING_P */ +#line 189 "jsonpath_gram.y" + { (yyval.value) = makeItemString(&(yyvsp[0].str)); } +#line 1906 "jsonpath_gram.c" break; - case 34: -#line 190 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemVariable(&(yyvsp[0].str)); } -#line 1664 "jsonpath_gram.c" /* yacc.c:1652 */ + case 34: /* starts_with_initial: VARIABLE_P */ +#line 190 "jsonpath_gram.y" + { (yyval.value) = makeItemVariable(&(yyvsp[0].str)); } +#line 1912 "jsonpath_gram.c" break; - case 35: -#line 194 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[0].value); } -#line 1670 "jsonpath_gram.c" /* yacc.c:1652 */ + case 35: /* path_primary: scalar_value */ +#line 194 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[0].value); } +#line 1918 "jsonpath_gram.c" break; - case 36: -#line 195 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemType(jpiRoot); } -#line 1676 "jsonpath_gram.c" /* yacc.c:1652 */ + case 36: /* path_primary: '$' */ +#line 195 "jsonpath_gram.y" + { (yyval.value) = makeItemType(jpiRoot); } +#line 1924 "jsonpath_gram.c" break; - case 37: -#line 196 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemType(jpiCurrent); } -#line 1682 "jsonpath_gram.c" /* yacc.c:1652 */ + case 37: /* path_primary: '@' */ +#line 196 "jsonpath_gram.y" + { (yyval.value) = makeItemType(jpiCurrent); } +#line 1930 "jsonpath_gram.c" break; - case 38: -#line 197 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemType(jpiLast); } -#line 1688 "jsonpath_gram.c" /* yacc.c:1652 */ + case 38: /* path_primary: LAST_P */ +#line 197 "jsonpath_gram.y" + { (yyval.value) = makeItemType(jpiLast); } +#line 1936 "jsonpath_gram.c" break; - case 39: -#line 201 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.elems) = list_make1((yyvsp[0].value)); } -#line 1694 "jsonpath_gram.c" /* yacc.c:1652 */ + case 39: /* accessor_expr: path_primary */ +#line 201 "jsonpath_gram.y" + { (yyval.elems) = list_make1((yyvsp[0].value)); } +#line 1942 "jsonpath_gram.c" break; - case 40: -#line 202 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.elems) = list_make2((yyvsp[-2].value), (yyvsp[0].value)); } -#line 1700 "jsonpath_gram.c" /* yacc.c:1652 */ + case 40: /* accessor_expr: '(' expr ')' accessor_op */ +#line 202 "jsonpath_gram.y" + { (yyval.elems) = list_make2((yyvsp[-2].value), (yyvsp[0].value)); } +#line 1948 "jsonpath_gram.c" break; - case 41: -#line 203 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.elems) = list_make2((yyvsp[-2].value), (yyvsp[0].value)); } -#line 1706 "jsonpath_gram.c" /* yacc.c:1652 */ + case 41: /* accessor_expr: '(' predicate ')' accessor_op */ +#line 203 "jsonpath_gram.y" + { (yyval.elems) = list_make2((yyvsp[-2].value), (yyvsp[0].value)); } +#line 1954 "jsonpath_gram.c" break; - case 42: -#line 204 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.elems) = lappend((yyvsp[-1].elems), (yyvsp[0].value)); } -#line 1712 "jsonpath_gram.c" /* yacc.c:1652 */ + case 42: /* accessor_expr: accessor_expr accessor_op */ +#line 204 "jsonpath_gram.y" + { (yyval.elems) = lappend((yyvsp[-1].elems), (yyvsp[0].value)); } +#line 1960 "jsonpath_gram.c" break; - case 43: -#line 208 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemList((yyvsp[0].elems)); } -#line 1718 "jsonpath_gram.c" /* yacc.c:1652 */ + case 43: /* expr: accessor_expr */ +#line 208 "jsonpath_gram.y" + { (yyval.value) = makeItemList((yyvsp[0].elems)); } +#line 1966 "jsonpath_gram.c" break; - case 44: -#line 209 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[-1].value); } -#line 1724 "jsonpath_gram.c" /* yacc.c:1652 */ + case 44: /* expr: '(' expr ')' */ +#line 209 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[-1].value); } +#line 1972 "jsonpath_gram.c" break; - case 45: -#line 210 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemUnary(jpiPlus, (yyvsp[0].value)); } -#line 1730 "jsonpath_gram.c" /* yacc.c:1652 */ + case 45: /* expr: '+' expr */ +#line 210 "jsonpath_gram.y" + { (yyval.value) = makeItemUnary(jpiPlus, (yyvsp[0].value)); } +#line 1978 "jsonpath_gram.c" break; - case 46: -#line 211 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemUnary(jpiMinus, (yyvsp[0].value)); } -#line 1736 "jsonpath_gram.c" /* yacc.c:1652 */ + case 46: /* expr: '-' expr */ +#line 211 "jsonpath_gram.y" + { (yyval.value) = makeItemUnary(jpiMinus, (yyvsp[0].value)); } +#line 1984 "jsonpath_gram.c" break; - case 47: -#line 212 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiAdd, (yyvsp[-2].value), (yyvsp[0].value)); } -#line 1742 "jsonpath_gram.c" /* yacc.c:1652 */ + case 47: /* expr: expr '+' expr */ +#line 212 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiAdd, (yyvsp[-2].value), (yyvsp[0].value)); } +#line 1990 "jsonpath_gram.c" break; - case 48: -#line 213 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiSub, (yyvsp[-2].value), (yyvsp[0].value)); } -#line 1748 "jsonpath_gram.c" /* yacc.c:1652 */ + case 48: /* expr: expr '-' expr */ +#line 213 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiSub, (yyvsp[-2].value), (yyvsp[0].value)); } +#line 1996 "jsonpath_gram.c" break; - case 49: -#line 214 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiMul, (yyvsp[-2].value), (yyvsp[0].value)); } -#line 1754 "jsonpath_gram.c" /* yacc.c:1652 */ + case 49: /* expr: expr '*' expr */ +#line 214 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiMul, (yyvsp[-2].value), (yyvsp[0].value)); } +#line 2002 "jsonpath_gram.c" break; - case 50: -#line 215 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiDiv, (yyvsp[-2].value), (yyvsp[0].value)); } -#line 1760 "jsonpath_gram.c" /* yacc.c:1652 */ + case 50: /* expr: expr '/' expr */ +#line 215 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiDiv, (yyvsp[-2].value), (yyvsp[0].value)); } +#line 2008 "jsonpath_gram.c" break; - case 51: -#line 216 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiMod, (yyvsp[-2].value), (yyvsp[0].value)); } -#line 1766 "jsonpath_gram.c" /* yacc.c:1652 */ + case 51: /* expr: expr '%' expr */ +#line 216 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiMod, (yyvsp[-2].value), (yyvsp[0].value)); } +#line 2014 "jsonpath_gram.c" break; - case 52: -#line 220 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiSubscript, (yyvsp[0].value), NULL); } -#line 1772 "jsonpath_gram.c" /* yacc.c:1652 */ + case 52: /* index_elem: expr */ +#line 220 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiSubscript, (yyvsp[0].value), NULL); } +#line 2020 "jsonpath_gram.c" break; - case 53: -#line 221 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemBinary(jpiSubscript, (yyvsp[-2].value), (yyvsp[0].value)); } -#line 1778 "jsonpath_gram.c" /* yacc.c:1652 */ + case 53: /* index_elem: expr TO_P expr */ +#line 221 "jsonpath_gram.y" + { (yyval.value) = makeItemBinary(jpiSubscript, (yyvsp[-2].value), (yyvsp[0].value)); } +#line 2026 "jsonpath_gram.c" break; - case 54: -#line 225 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.indexs) = list_make1((yyvsp[0].value)); } -#line 1784 "jsonpath_gram.c" /* yacc.c:1652 */ + case 54: /* index_list: index_elem */ +#line 225 "jsonpath_gram.y" + { (yyval.indexs) = list_make1((yyvsp[0].value)); } +#line 2032 "jsonpath_gram.c" break; - case 55: -#line 226 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.indexs) = lappend((yyvsp[-2].indexs), (yyvsp[0].value)); } -#line 1790 "jsonpath_gram.c" /* yacc.c:1652 */ + case 55: /* index_list: index_list ',' index_elem */ +#line 226 "jsonpath_gram.y" + { (yyval.indexs) = lappend((yyvsp[-2].indexs), (yyvsp[0].value)); } +#line 2038 "jsonpath_gram.c" break; - case 56: -#line 230 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemType(jpiAnyArray); } -#line 1796 "jsonpath_gram.c" /* yacc.c:1652 */ + case 56: /* array_accessor: '[' '*' ']' */ +#line 230 "jsonpath_gram.y" + { (yyval.value) = makeItemType(jpiAnyArray); } +#line 2044 "jsonpath_gram.c" break; - case 57: -#line 231 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeIndexArray((yyvsp[-1].indexs)); } -#line 1802 "jsonpath_gram.c" /* yacc.c:1652 */ + case 57: /* array_accessor: '[' index_list ']' */ +#line 231 "jsonpath_gram.y" + { (yyval.value) = makeIndexArray((yyvsp[-1].indexs)); } +#line 2050 "jsonpath_gram.c" break; - case 58: -#line 235 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.integer) = pg_atoi((yyvsp[0].str).val, 4, 0); } -#line 1808 "jsonpath_gram.c" /* yacc.c:1652 */ + case 58: /* any_level: INT_P */ +#line 235 "jsonpath_gram.y" + { (yyval.integer) = pg_atoi((yyvsp[0].str).val, 4, 0); } +#line 2056 "jsonpath_gram.c" break; - case 59: -#line 236 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.integer) = -1; } -#line 1814 "jsonpath_gram.c" /* yacc.c:1652 */ + case 59: /* any_level: LAST_P */ +#line 236 "jsonpath_gram.y" + { (yyval.integer) = -1; } +#line 2062 "jsonpath_gram.c" break; - case 60: -#line 240 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeAny(0, -1); } -#line 1820 "jsonpath_gram.c" /* yacc.c:1652 */ + case 60: /* any_path: ANY_P */ +#line 240 "jsonpath_gram.y" + { (yyval.value) = makeAny(0, -1); } +#line 2068 "jsonpath_gram.c" break; - case 61: -#line 241 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeAny((yyvsp[-1].integer), (yyvsp[-1].integer)); } -#line 1826 "jsonpath_gram.c" /* yacc.c:1652 */ + case 61: /* any_path: ANY_P '{' any_level '}' */ +#line 241 "jsonpath_gram.y" + { (yyval.value) = makeAny((yyvsp[-1].integer), (yyvsp[-1].integer)); } +#line 2074 "jsonpath_gram.c" break; - case 62: -#line 243 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeAny((yyvsp[-3].integer), (yyvsp[-1].integer)); } -#line 1832 "jsonpath_gram.c" /* yacc.c:1652 */ + case 62: /* any_path: ANY_P '{' any_level TO_P any_level '}' */ +#line 243 "jsonpath_gram.y" + { (yyval.value) = makeAny((yyvsp[-3].integer), (yyvsp[-1].integer)); } +#line 2080 "jsonpath_gram.c" break; - case 63: -#line 247 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[0].value); } -#line 1838 "jsonpath_gram.c" /* yacc.c:1652 */ + case 63: /* accessor_op: '.' key */ +#line 247 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[0].value); } +#line 2086 "jsonpath_gram.c" break; - case 64: -#line 248 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemType(jpiAnyKey); } -#line 1844 "jsonpath_gram.c" /* yacc.c:1652 */ + case 64: /* accessor_op: '.' '*' */ +#line 248 "jsonpath_gram.y" + { (yyval.value) = makeItemType(jpiAnyKey); } +#line 2092 "jsonpath_gram.c" break; - case 65: -#line 249 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[0].value); } -#line 1850 "jsonpath_gram.c" /* yacc.c:1652 */ + case 65: /* accessor_op: array_accessor */ +#line 249 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[0].value); } +#line 2098 "jsonpath_gram.c" break; - case 66: -#line 250 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[0].value); } -#line 1856 "jsonpath_gram.c" /* yacc.c:1652 */ + case 66: /* accessor_op: '.' any_path */ +#line 250 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[0].value); } +#line 2104 "jsonpath_gram.c" break; - case 67: -#line 251 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemType((yyvsp[-2].optype)); } -#line 1862 "jsonpath_gram.c" /* yacc.c:1652 */ + case 67: /* accessor_op: '.' method '(' ')' */ +#line 251 "jsonpath_gram.y" + { (yyval.value) = makeItemType((yyvsp[-2].optype)); } +#line 2110 "jsonpath_gram.c" break; - case 68: -#line 253 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemUnary(jpiDatetime, (yyvsp[-1].value)); } -#line 1868 "jsonpath_gram.c" /* yacc.c:1652 */ + case 68: /* accessor_op: '.' DATETIME_P '(' opt_datetime_template ')' */ +#line 253 "jsonpath_gram.y" + { (yyval.value) = makeItemUnary(jpiDatetime, (yyvsp[-1].value)); } +#line 2116 "jsonpath_gram.c" break; - case 69: -#line 254 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemUnary(jpiFilter, (yyvsp[-1].value)); } -#line 1874 "jsonpath_gram.c" /* yacc.c:1652 */ + case 69: /* accessor_op: '?' '(' predicate ')' */ +#line 254 "jsonpath_gram.y" + { (yyval.value) = makeItemUnary(jpiFilter, (yyvsp[-1].value)); } +#line 2122 "jsonpath_gram.c" break; - case 70: -#line 258 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemString(&(yyvsp[0].str)); } -#line 1880 "jsonpath_gram.c" /* yacc.c:1652 */ + case 70: /* datetime_template: STRING_P */ +#line 258 "jsonpath_gram.y" + { (yyval.value) = makeItemString(&(yyvsp[0].str)); } +#line 2128 "jsonpath_gram.c" break; - case 71: -#line 262 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = (yyvsp[0].value); } -#line 1886 "jsonpath_gram.c" /* yacc.c:1652 */ + case 71: /* opt_datetime_template: datetime_template */ +#line 262 "jsonpath_gram.y" + { (yyval.value) = (yyvsp[0].value); } +#line 2134 "jsonpath_gram.c" break; - case 72: -#line 263 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = NULL; } -#line 1892 "jsonpath_gram.c" /* yacc.c:1652 */ + case 72: /* opt_datetime_template: %empty */ +#line 263 "jsonpath_gram.y" + { (yyval.value) = NULL; } +#line 2140 "jsonpath_gram.c" break; - case 73: -#line 267 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.value) = makeItemKey(&(yyvsp[0].str)); } -#line 1898 "jsonpath_gram.c" /* yacc.c:1652 */ + case 73: /* key: key_name */ +#line 267 "jsonpath_gram.y" + { (yyval.value) = makeItemKey(&(yyvsp[0].str)); } +#line 2146 "jsonpath_gram.c" break; - case 98: -#line 298 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiAbs; } -#line 1904 "jsonpath_gram.c" /* yacc.c:1652 */ + case 98: /* method: ABS_P */ +#line 298 "jsonpath_gram.y" + { (yyval.optype) = jpiAbs; } +#line 2152 "jsonpath_gram.c" break; - case 99: -#line 299 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiSize; } -#line 1910 "jsonpath_gram.c" /* yacc.c:1652 */ + case 99: /* method: SIZE_P */ +#line 299 "jsonpath_gram.y" + { (yyval.optype) = jpiSize; } +#line 2158 "jsonpath_gram.c" break; - case 100: -#line 300 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiType; } -#line 1916 "jsonpath_gram.c" /* yacc.c:1652 */ + case 100: /* method: TYPE_P */ +#line 300 "jsonpath_gram.y" + { (yyval.optype) = jpiType; } +#line 2164 "jsonpath_gram.c" break; - case 101: -#line 301 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiFloor; } -#line 1922 "jsonpath_gram.c" /* yacc.c:1652 */ + case 101: /* method: FLOOR_P */ +#line 301 "jsonpath_gram.y" + { (yyval.optype) = jpiFloor; } +#line 2170 "jsonpath_gram.c" break; - case 102: -#line 302 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiDouble; } -#line 1928 "jsonpath_gram.c" /* yacc.c:1652 */ + case 102: /* method: DOUBLE_P */ +#line 302 "jsonpath_gram.y" + { (yyval.optype) = jpiDouble; } +#line 2176 "jsonpath_gram.c" break; - case 103: -#line 303 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiCeiling; } -#line 1934 "jsonpath_gram.c" /* yacc.c:1652 */ + case 103: /* method: CEILING_P */ +#line 303 "jsonpath_gram.y" + { (yyval.optype) = jpiCeiling; } +#line 2182 "jsonpath_gram.c" break; - case 104: -#line 304 "jsonpath_gram.y" /* yacc.c:1652 */ - { (yyval.optype) = jpiKeyValue; } -#line 1940 "jsonpath_gram.c" /* yacc.c:1652 */ + case 104: /* method: KEYVALUE_P */ +#line 304 "jsonpath_gram.y" + { (yyval.optype) = jpiKeyValue; } +#line 2188 "jsonpath_gram.c" break; -#line 1944 "jsonpath_gram.c" /* yacc.c:1652 */ +#line 2192 "jsonpath_gram.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1954,11 +2203,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1982,50 +2230,44 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (result, YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) { + yypcontext_t yyctx + = {yyssp, yytoken}; char const *yymsgp = YY_("syntax error"); int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; + yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); if (yysyntax_error_status == 0) yymsgp = yymsg; - else if (yysyntax_error_status == 1) + else if (yysyntax_error_status == -1) { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) + yymsg = YY_CAST (char *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); + if (yymsg) { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; + yysyntax_error_status + = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); + yymsgp = yymsg; } else { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = YYENOMEM; } } yyerror (result, yymsgp); - if (yysyntax_error_status == 2) + if (yysyntax_error_status == YYENOMEM) goto yyexhaustedlab; } -# undef YYSYNTAX_ERROR -#endif } - - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -2074,13 +2316,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -2094,7 +2337,7 @@ yydestruct ("Error: popping", - yystos[yystate], yyvsp, result); + YY_ACCESSING_SYMBOL (yystate), yyvsp, result); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -2106,7 +2349,7 @@ /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -2128,20 +2371,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if 1 /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (result, YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -2158,20 +2401,19 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, result); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, result); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); -#endif return yyresult; } -#line 306 "jsonpath_gram.y" /* yacc.c:1918 */ + +#line 306 "jsonpath_gram.y" /* diff -Nru postgresql-13-13.4/src/backend/utils/adt/numeric.c postgresql-13-13.7/src/backend/utils/adt/numeric.c --- postgresql-13-13.4/src/backend/utils/adt/numeric.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/adt/numeric.c 2022-05-09 21:16:30.000000000 +0000 @@ -8886,12 +8886,20 @@ * * Essentially, we're approximating log10(abs(ln(var))). This is used to * determine the appropriate rscale when computing natural logarithms. + * + * Note: many callers call this before range-checking the input. Therefore, + * we must be robust against values that are invalid to apply ln() to. + * We don't wish to throw an error here, so just return zero in such cases. */ static int estimate_ln_dweight(const NumericVar *var) { int ln_dweight; + /* Caller should fail on ln(negative), but for the moment return zero */ + if (var->sign != NUMERIC_POS) + return 0; + if (cmp_var(var, &const_zero_point_nine) >= 0 && cmp_var(var, &const_one_point_one) <= 0) { @@ -9245,9 +9253,13 @@ */ ln_dweight = estimate_ln_dweight(base); + /* + * Set the scale for the low-precision calculation, computing ln(base) to + * around 8 significant digits. Note that ln_dweight may be as small as + * -SHRT_MAX, so the scale may exceed NUMERIC_MAX_DISPLAY_SCALE here. + */ local_rscale = 8 - ln_dweight; local_rscale = Max(local_rscale, NUMERIC_MIN_DISPLAY_SCALE); - local_rscale = Min(local_rscale, NUMERIC_MAX_DISPLAY_SCALE); ln_var(base, &ln_base, local_rscale); diff -Nru postgresql-13-13.4/src/backend/utils/adt/pgstatfuncs.c postgresql-13-13.7/src/backend/utils/adt/pgstatfuncs.c --- postgresql-13-13.4/src/backend/utils/adt/pgstatfuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/adt/pgstatfuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -1744,7 +1744,7 @@ /* for each row */ Datum values[PG_STAT_GET_SLRU_COLS]; bool nulls[PG_STAT_GET_SLRU_COLS]; - PgStat_SLRUStats stat = stats[i]; + PgStat_SLRUStats stat; const char *name; name = pgstat_slru_name(i); @@ -1752,6 +1752,7 @@ if (!name) break; + stat = stats[i]; MemSet(values, 0, sizeof(values)); MemSet(nulls, 0, sizeof(nulls)); diff -Nru postgresql-13-13.4/src/backend/utils/adt/ruleutils.c postgresql-13-13.7/src/backend/utils/adt/ruleutils.c --- postgresql-13-13.4/src/backend/utils/adt/ruleutils.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/adt/ruleutils.c 2022-05-09 21:16:30.000000000 +0000 @@ -432,6 +432,8 @@ bool showimplicit); static void get_rule_expr_toplevel(Node *node, deparse_context *context, bool showimplicit); +static void get_rule_list_toplevel(List *lst, deparse_context *context, + bool showimplicit); static void get_rule_expr_funccall(Node *node, deparse_context *context, bool showimplicit); static bool looks_like_function(Node *node); @@ -6229,7 +6231,7 @@ /* Add the single-VALUES expression list */ appendContextKeyword(context, "VALUES (", -PRETTYINDENT_STD, PRETTYINDENT_STD, 2); - get_rule_expr((Node *) strippedexprs, context, false); + get_rule_list_toplevel(strippedexprs, context, false); appendStringInfoChar(buf, ')'); } else @@ -7539,12 +7541,13 @@ context->varprefix = true; /* - * A Param's expansion is typically a Var, Aggref, or upper-level - * Param, which wouldn't need extra parentheses. Otherwise, insert - * parens to ensure the expression looks atomic. + * A Param's expansion is typically a Var, Aggref, GroupingFunc, or + * upper-level Param, which wouldn't need extra parentheses. + * Otherwise, insert parens to ensure the expression looks atomic. */ need_paren = !(IsA(expr, Var) || IsA(expr, Aggref) || + IsA(expr, GroupingFunc) || IsA(expr, Param)); if (need_paren) appendStringInfoChar(context->buf, '('); @@ -7626,6 +7629,7 @@ case T_NextValueExpr: case T_NullIfExpr: case T_Aggref: + case T_GroupingFunc: case T_WindowFunc: case T_FuncExpr: /* function-like: name(..) or name[..] */ @@ -7742,6 +7746,7 @@ case T_XmlExpr: /* own parentheses */ case T_NullIfExpr: /* other separators */ case T_Aggref: /* own parentheses */ + case T_GroupingFunc: /* own parentheses */ case T_WindowFunc: /* own parentheses */ case T_CaseExpr: /* other separators */ return true; @@ -7792,6 +7797,7 @@ case T_XmlExpr: /* own parentheses */ case T_NullIfExpr: /* other separators */ case T_Aggref: /* own parentheses */ + case T_GroupingFunc: /* own parentheses */ case T_WindowFunc: /* own parentheses */ case T_CaseExpr: /* other separators */ return true; @@ -8539,23 +8545,15 @@ case T_RowCompareExpr: { RowCompareExpr *rcexpr = (RowCompareExpr *) node; - ListCell *arg; - char *sep; /* * SQL99 allows "ROW" to be omitted when there is more than - * one column, but for simplicity we always print it. + * one column, but for simplicity we always print it. Within + * a ROW expression, whole-row Vars need special treatment, so + * use get_rule_list_toplevel. */ appendStringInfoString(buf, "(ROW("); - sep = ""; - foreach(arg, rcexpr->largs) - { - Node *e = (Node *) lfirst(arg); - - appendStringInfoString(buf, sep); - get_rule_expr(e, context, true); - sep = ", "; - } + get_rule_list_toplevel(rcexpr->largs, context, true); /* * We assume that the name of the first-column operator will @@ -8568,15 +8566,7 @@ generate_operator_name(linitial_oid(rcexpr->opnos), exprType(linitial(rcexpr->largs)), exprType(linitial(rcexpr->rargs)))); - sep = ""; - foreach(arg, rcexpr->rargs) - { - Node *e = (Node *) lfirst(arg); - - appendStringInfoString(buf, sep); - get_rule_expr(e, context, true); - sep = ", "; - } + get_rule_list_toplevel(rcexpr->rargs, context, true); appendStringInfoString(buf, "))"); } break; @@ -9122,6 +9112,32 @@ } /* + * get_rule_list_toplevel - Parse back a list of toplevel expressions + * + * Apply get_rule_expr_toplevel() to each element of a List. + * + * This adds commas between the expressions, but caller is responsible + * for printing surrounding decoration. + */ +static void +get_rule_list_toplevel(List *lst, deparse_context *context, + bool showimplicit) +{ + const char *sep; + ListCell *lc; + + sep = ""; + foreach(lc, lst) + { + Node *e = (Node *) lfirst(lc); + + appendStringInfoString(context->buf, sep); + get_rule_expr_toplevel(e, context, showimplicit); + sep = ", "; + } +} + +/* * get_rule_expr_funccall - Parse back a function-call expression * * Same as get_rule_expr(), except that we guarantee that the output will diff -Nru postgresql-13-13.4/src/backend/utils/adt/selfuncs.c postgresql-13-13.7/src/backend/utils/adt/selfuncs.c --- postgresql-13-13.4/src/backend/utils/adt/selfuncs.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/adt/selfuncs.c 2022-05-09 21:16:30.000000000 +0000 @@ -3887,11 +3887,23 @@ Oid statOid = InvalidOid; MVNDistinct *stats; Bitmapset *matched = NULL; + RangeTblEntry *rte; /* bail out immediately if the table has no extended statistics */ if (!rel->statlist) return false; + /* + * When dealing with regular inheritance trees, ignore extended stats + * (which were built without data from child rels, and thus do not + * represent them). For partitioned tables data there's no data in the + * non-leaf relations, so we build stats only for the inheritance tree. + * So for partitioned tables we do consider extended stats. + */ + rte = planner_rt_fetch(rel->relid, root); + if (rte->inh && rte->relkind != RELKIND_PARTITIONED_TABLE) + return false; + /* Determine the attnums we're looking for */ foreach(lc, *varinfos) { @@ -5494,15 +5506,35 @@ /* * If we have most-common-values info, look for extreme MCVs. This is * needed even if we also have a histogram, since the histogram excludes - * the MCVs. + * the MCVs. However, if we *only* have MCVs and no histogram, we should + * be pretty wary of deciding that that is a full representation of the + * data. Proceed only if the MCVs represent the whole table (to within + * roundoff error). */ if (get_attstatsslot(&sslot, vardata->statsTuple, STATISTIC_KIND_MCV, InvalidOid, - ATTSTATSSLOT_VALUES)) + have_data ? ATTSTATSSLOT_VALUES : + (ATTSTATSSLOT_VALUES | ATTSTATSSLOT_NUMBERS))) { - get_stats_slot_range(&sslot, opfuncoid, &opproc, - collation, typLen, typByVal, - &tmin, &tmax, &have_data); + bool use_mcvs = have_data; + + if (!have_data) + { + double sumcommon = 0.0; + double nullfrac; + int i; + + for (i = 0; i < sslot.nnumbers; i++) + sumcommon += sslot.numbers[i]; + nullfrac = ((Form_pg_statistic) GETSTRUCT(vardata->statsTuple))->stanullfrac; + if (sumcommon + nullfrac > 0.99999) + use_mcvs = true; + } + + if (use_mcvs) + get_stats_slot_range(&sslot, opfuncoid, &opproc, + collation, typLen, typByVal, + &tmin, &tmax, &have_data); free_attstatsslot(&sslot); } diff -Nru postgresql-13-13.4/src/backend/utils/adt/tsquery.c postgresql-13-13.7/src/backend/utils/adt/tsquery.c --- postgresql-13-13.4/src/backend/utils/adt/tsquery.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/adt/tsquery.c 2022-05-09 21:16:30.000000000 +0000 @@ -197,7 +197,7 @@ else if (errno == ERANGE || l < 0 || l > MAXENTRYPOS) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("distance in phrase operator should not be greater than %d", + errmsg("distance in phrase operator must be an integer value between zero and %d inclusive", MAXENTRYPOS))); else { diff -Nru postgresql-13-13.4/src/backend/utils/adt/xid.c postgresql-13-13.7/src/backend/utils/adt/xid.c --- postgresql-13-13.4/src/backend/utils/adt/xid.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/adt/xid.c 2022-05-09 21:16:30.000000000 +0000 @@ -148,6 +148,32 @@ return 0; } +/* + * xidLogicalComparator + * qsort comparison function for XIDs + * + * This is used to compare only XIDs from the same epoch (e.g. for backends + * running at the same time). So there must be only normal XIDs, so there's + * no issue with triangle inequality. + */ +int +xidLogicalComparator(const void *arg1, const void *arg2) +{ + TransactionId xid1 = *(const TransactionId *) arg1; + TransactionId xid2 = *(const TransactionId *) arg2; + + Assert(TransactionIdIsNormal(xid1)); + Assert(TransactionIdIsNormal(xid2)); + + if (TransactionIdPrecedes(xid1, xid2)) + return -1; + + if (TransactionIdPrecedes(xid2, xid1)) + return 1; + + return 0; +} + Datum xid8toxid(PG_FUNCTION_ARGS) { diff -Nru postgresql-13-13.4/src/backend/utils/adt/xml.c postgresql-13-13.7/src/backend/utils/adt/xml.c --- postgresql-13-13.4/src/backend/utils/adt/xml.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/adt/xml.c 2022-05-09 21:16:30.000000000 +0000 @@ -3659,7 +3659,7 @@ case TIMEOID: case TIMETZOID: { - const char *tz = (typeoid == TIMETZOID ? "(+|-)\\p{Nd}{2}:\\p{Nd}{2}" : ""); + const char *tz = (typeoid == TIMETZOID ? "(\\+|-)\\p{Nd}{2}:\\p{Nd}{2}" : ""); if (typmod == -1) appendStringInfo(&result, @@ -3682,7 +3682,7 @@ case TIMESTAMPOID: case TIMESTAMPTZOID: { - const char *tz = (typeoid == TIMESTAMPTZOID ? "(+|-)\\p{Nd}{2}:\\p{Nd}{2}" : ""); + const char *tz = (typeoid == TIMESTAMPTZOID ? "(\\+|-)\\p{Nd}{2}:\\p{Nd}{2}" : ""); if (typmod == -1) appendStringInfo(&result, diff -Nru postgresql-13-13.4/src/backend/utils/cache/inval.c postgresql-13-13.7/src/backend/utils/cache/inval.c --- postgresql-13-13.4/src/backend/utils/cache/inval.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/cache/inval.c 2022-05-09 21:16:30.000000000 +0000 @@ -65,6 +65,20 @@ * (XXX is it worth testing likewise for duplicate catcache flush entries? * Probably not.) * + * Many subsystems own higher-level caches that depend on relcache and/or + * catcache, and they register callbacks here to invalidate their caches. + * While building a higher-level cache entry, a backend may receive a + * callback for the being-built entry or one of its dependencies. This + * implies the new higher-level entry would be born stale, and it might + * remain stale for the life of the backend. Many caches do not prevent + * that. They rely on DDL for can't-miss catalog changes taking + * AccessExclusiveLock on suitable objects. (For a change made with less + * locking, backends might never read the change.) The relation cache, + * however, needs to reflect changes from CREATE INDEX CONCURRENTLY no later + * than the beginning of the next transaction. Hence, when a relevant + * invalidation callback arrives during a build, relcache.c reattempts that + * build. Caches with similar needs could do likewise. + * * If a relcache flush is issued for a system relation that we preload * from the relcache init file, we must also delete the init file so that * it will be rebuilt during the next backend restart. The actual work of @@ -584,7 +598,7 @@ int i; if (msg->rc.relId == InvalidOid) - RelationCacheInvalidate(); + RelationCacheInvalidate(false); else RelationCacheInvalidateEntry(msg->rc.relId); @@ -642,11 +656,17 @@ void InvalidateSystemCaches(void) { + InvalidateSystemCachesExtended(false); +} + +void +InvalidateSystemCachesExtended(bool debug_discard) +{ int i; InvalidateCatalogSnapshot(); ResetCatalogCaches(); - RelationCacheInvalidate(); /* gets smgr and relmap too */ + RelationCacheInvalidate(debug_discard); /* gets smgr and relmap too */ for (i = 0; i < syscache_callback_count; i++) { @@ -705,7 +725,7 @@ if (!in_recursion) { in_recursion = true; - InvalidateSystemCaches(); + InvalidateSystemCachesExtended(true); in_recursion = false; } } @@ -717,7 +737,7 @@ if (recursion_depth < 3) { recursion_depth++; - InvalidateSystemCaches(); + InvalidateSystemCachesExtended(true); recursion_depth--; } } diff -Nru postgresql-13-13.4/src/backend/utils/cache/relcache.c postgresql-13-13.7/src/backend/utils/cache/relcache.c --- postgresql-13-13.4/src/backend/utils/cache/relcache.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/cache/relcache.c 2022-05-09 21:16:30.000000000 +0000 @@ -151,6 +151,24 @@ static long relcacheInvalsReceived = 0L; /* + * in_progress_list is a stack of ongoing RelationBuildDesc() calls. CREATE + * INDEX CONCURRENTLY makes catalog changes under ShareUpdateExclusiveLock. + * It critically relies on each backend absorbing those changes no later than + * next transaction start. Hence, RelationBuildDesc() loops until it finishes + * without accepting a relevant invalidation. (Most invalidation consumers + * don't do this.) + */ +typedef struct inprogressent +{ + Oid reloid; /* OID of relation being built */ + bool invalidated; /* whether an invalidation arrived for it */ +} InProgressEnt; + +static InProgressEnt *in_progress_list; +static int in_progress_list_len; +static int in_progress_list_maxlen; + +/* * eoxact_list[] stores the OIDs of relations that (might) need AtEOXact * cleanup work. This list intentionally has limited size; if it overflows, * we fall back to scanning the whole hashtable. There is no value in a very @@ -1043,6 +1061,7 @@ static Relation RelationBuildDesc(Oid targetRelId, bool insertIt) { + int in_progress_offset; Relation relation; Oid relid; HeapTuple pg_class_tuple; @@ -1070,6 +1089,21 @@ oldcxt = MemoryContextSwitchTo(tmpcxt); #endif + /* Register to catch invalidation messages */ + if (in_progress_list_len >= in_progress_list_maxlen) + { + int allocsize; + + allocsize = in_progress_list_maxlen * 2; + in_progress_list = repalloc(in_progress_list, + allocsize * sizeof(*in_progress_list)); + in_progress_list_maxlen = allocsize; + } + in_progress_offset = in_progress_list_len++; + in_progress_list[in_progress_offset].reloid = targetRelId; +retry: + in_progress_list[in_progress_offset].invalidated = false; + /* * find the tuple in pg_class corresponding to the given relation id */ @@ -1085,6 +1119,8 @@ MemoryContextSwitchTo(oldcxt); MemoryContextDelete(tmpcxt); #endif + Assert(in_progress_offset + 1 == in_progress_list_len); + in_progress_list_len--; return NULL; } @@ -1245,6 +1281,21 @@ heap_freetuple(pg_class_tuple); /* + * If an invalidation arrived mid-build, start over. Between here and the + * end of this function, don't add code that does or reasonably could read + * system catalogs. That range must be free from invalidation processing + * for the !insertIt case. For the insertIt case, RelationCacheInsert() + * will enroll this relation in ordinary relcache invalidation processing, + */ + if (in_progress_list[in_progress_offset].invalidated) + { + RelationDestroyRelation(relation, false); + goto retry; + } + Assert(in_progress_offset + 1 == in_progress_list_len); + in_progress_list_len--; + + /* * Insert newly created relation into relcache hash table, if requested. * * There is one scenario in which we might find a hashtable entry already @@ -2586,6 +2637,14 @@ /* Build temporary entry, but don't link it into hashtable */ newrel = RelationBuildDesc(save_relid, false); + + /* + * Between here and the end of the swap, don't add code that does or + * reasonably could read system catalogs. That range must be free + * from invalidation processing. See RelationBuildDesc() manipulation + * of in_progress_list. + */ + if (newrel == NULL) { /* @@ -2816,6 +2875,14 @@ relcacheInvalsReceived++; RelationFlushRelation(relation); } + else + { + int i; + + for (i = 0; i < in_progress_list_len; i++) + if (in_progress_list[i].reloid == relationId) + in_progress_list[i].invalidated = true; + } } /* @@ -2824,11 +2891,11 @@ * and rebuild those with positive reference counts. Also reset the smgr * relation cache and re-read relation mapping data. * - * This is currently used only to recover from SI message buffer overflow, - * so we do not touch relations having new-in-transaction relfilenodes; they - * cannot be targets of cross-backend SI updates (and our own updates now go - * through a separate linked list that isn't limited by the SI message - * buffer size). + * Apart from debug_discard_caches, this is currently used only to recover + * from SI message buffer overflow, so we do not touch relations having + * new-in-transaction relfilenodes; they cannot be targets of cross-backend + * SI updates (and our own updates now go through a separate linked list + * that isn't limited by the SI message buffer size). * * We do this in two phases: the first pass deletes deletable items, and * the second one rebuilds the rebuildable items. This is essential for @@ -2846,9 +2913,14 @@ * second pass processes nailed-in-cache items before other nondeletable * items. This should ensure that system catalogs are up to date before * we attempt to use them to reload information about other open relations. + * + * After those two phases of work having immediate effects, we normally + * signal any RelationBuildDesc() on the stack to start over. However, we + * don't do this if called as part of debug_discard_caches. Otherwise, + * RelationBuildDesc() would become an infinite loop. */ void -RelationCacheInvalidate(void) +RelationCacheInvalidate(bool debug_discard) { HASH_SEQ_STATUS status; RelIdCacheEnt *idhentry; @@ -2856,6 +2928,7 @@ List *rebuildFirstList = NIL; List *rebuildList = NIL; ListCell *l; + int i; /* * Reload relation mapping data before starting to reconstruct cache. @@ -2942,6 +3015,11 @@ RelationClearRelation(relation, true); } list_free(rebuildList); + + if (!debug_discard) + /* Any RelationBuildDesc() on the stack must start over. */ + for (i = 0; i < in_progress_list_len; i++) + in_progress_list[i].invalidated = true; } /* @@ -3093,6 +3171,13 @@ int i; /* + * Forget in_progress_list. This is relevant when we're aborting due to + * an error during RelationBuildDesc(). + */ + Assert(in_progress_list_len == 0 || !isCommit); + in_progress_list_len = 0; + + /* * Unless the eoxact_list[] overflowed, we only need to examine the rels * listed in it. Otherwise fall back on a hash_seq_search scan. * @@ -3239,6 +3324,14 @@ int i; /* + * Forget in_progress_list. This is relevant when we're aborting due to + * an error during RelationBuildDesc(). We don't commit subtransactions + * during RelationBuildDesc(). + */ + Assert(in_progress_list_len == 0 || !isCommit); + in_progress_list_len = 0; + + /* * Unless the eoxact_list[] overflowed, we only need to examine the rels * listed in it. Otherwise fall back on a hash_seq_search scan. Same * logic as in AtEOXact_RelationCache. @@ -3786,6 +3879,7 @@ RelationCacheInitialize(void) { HASHCTL ctl; + int allocsize; /* * make sure cache memory context exists @@ -3803,6 +3897,15 @@ &ctl, HASH_ELEM | HASH_BLOBS); /* + * reserve enough in_progress_list slots for many cases + */ + allocsize = 4; + in_progress_list = + MemoryContextAlloc(CacheMemoryContext, + allocsize * sizeof(*in_progress_list)); + in_progress_list_maxlen = allocsize; + + /* * relation mapper needs to be initialized too */ RelationMapInitialize(); @@ -6262,7 +6365,7 @@ { if (fwrite(&len, 1, sizeof(len), fp) != sizeof(len)) elog(FATAL, "could not write init file"); - if (fwrite(data, 1, len, fp) != len) + if (len > 0 && fwrite(data, 1, len, fp) != len) elog(FATAL, "could not write init file"); } diff -Nru postgresql-13-13.4/src/backend/utils/init/miscinit.c postgresql-13-13.7/src/backend/utils/init/miscinit.c --- postgresql-13-13.4/src/backend/utils/init/miscinit.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/init/miscinit.c 2022-05-09 21:16:30.000000000 +0000 @@ -93,13 +93,12 @@ IsUnderPostmaster = true; /* we are a postmaster subprocess now */ /* - * Set reference point for stack-depth checking. We re-do that even in the - * !EXEC_BACKEND case, because there are some edge cases where processes - * are started with an alternative stack (e.g. starting bgworkers when - * running postgres using the rr debugger, as bgworkers are launched from - * signal handlers). + * Set reference point for stack-depth checking. This might seem + * redundant in !EXEC_BACKEND builds; but it's not because the postmaster + * launches its children from signal handlers, so we might be running on + * an alternative stack. */ - set_stack_base(); + (void) set_stack_base(); InitProcessGlobals(); @@ -523,15 +522,21 @@ * with guc.c's internal state, so SET ROLE has to be disallowed. * * SECURITY_RESTRICTED_OPERATION indicates that we are inside an operation - * that does not wish to trust called user-defined functions at all. This - * bit prevents not only SET ROLE, but various other changes of session state - * that normally is unprotected but might possibly be used to subvert the - * calling session later. An example is replacing an existing prepared - * statement with new code, which will then be executed with the outer - * session's permissions when the prepared statement is next used. Since - * these restrictions are fairly draconian, we apply them only in contexts - * where the called functions are really supposed to be side-effect-free - * anyway, such as VACUUM/ANALYZE/REINDEX. + * that does not wish to trust called user-defined functions at all. The + * policy is to use this before operations, e.g. autovacuum and REINDEX, that + * enumerate relations of a database or schema and run functions associated + * with each found relation. The relation owner is the new user ID. Set this + * as soon as possible after locking the relation. Restore the old user ID as + * late as possible before closing the relation; restoring it shortly after + * close is also tolerable. If a command has both relation-enumerating and + * non-enumerating modes, e.g. ANALYZE, both modes set this bit. This bit + * prevents not only SET ROLE, but various other changes of session state that + * normally is unprotected but might possibly be used to subvert the calling + * session later. An example is replacing an existing prepared statement with + * new code, which will then be executed with the outer session's permissions + * when the prepared statement is next used. These restrictions are fairly + * draconian, but the functions called in relation-enumerating operations are + * really supposed to be side-effect-free anyway. * * SECURITY_NOFORCE_RLS indicates that we are inside an operation which should * ignore the FORCE ROW LEVEL SECURITY per-table indication. This is used to diff -Nru postgresql-13-13.4/src/backend/utils/misc/guc.c postgresql-13-13.7/src/backend/utils/misc/guc.c --- postgresql-13-13.4/src/backend/utils/misc/guc.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/misc/guc.c 2022-05-09 21:16:30.000000000 +0000 @@ -9282,7 +9282,7 @@ values[4] = _(conf->short_desc); /* extra_desc */ - values[5] = _(conf->long_desc); + values[5] = conf->long_desc != NULL ? _(conf->long_desc) : NULL; /* context */ values[6] = GucContext_Names[conf->context]; diff -Nru postgresql-13-13.4/src/backend/utils/misc/ps_status.c postgresql-13-13.7/src/backend/utils/misc/ps_status.c --- postgresql-13-13.4/src/backend/utils/misc/ps_status.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/misc/ps_status.c 2022-05-09 21:16:30.000000000 +0000 @@ -443,6 +443,7 @@ return ps_buffer + ps_buffer_fixed_size; #else + *displen = 0; return ""; #endif } diff -Nru postgresql-13-13.4/src/backend/utils/mmgr/portalmem.c postgresql-13-13.7/src/backend/utils/mmgr/portalmem.c --- postgresql-13-13.4/src/backend/utils/mmgr/portalmem.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/mmgr/portalmem.c 2022-05-09 21:16:30.000000000 +0000 @@ -210,6 +210,7 @@ portal->cleanup = PortalCleanup; portal->createSubid = GetCurrentSubTransactionId(); portal->activeSubid = portal->createSubid; + portal->createLevel = GetCurrentTransactionNestLevel(); portal->strategy = PORTAL_MULTI_QUERY; portal->cursorOptions = CURSOR_OPT_NO_SCROLL; portal->atStart = true; @@ -657,6 +658,7 @@ */ portal->createSubid = InvalidSubTransactionId; portal->activeSubid = InvalidSubTransactionId; + portal->createLevel = 0; } /* @@ -940,6 +942,7 @@ void AtSubCommit_Portals(SubTransactionId mySubid, SubTransactionId parentSubid, + int parentLevel, ResourceOwner parentXactOwner) { HASH_SEQ_STATUS status; @@ -954,6 +957,7 @@ if (portal->createSubid == mySubid) { portal->createSubid = parentSubid; + portal->createLevel = parentLevel; if (portal->resowner) ResourceOwnerNewParent(portal->resowner, parentXactOwner); } diff -Nru postgresql-13-13.4/src/backend/utils/sort/logtape.c postgresql-13-13.7/src/backend/utils/sort/logtape.c --- postgresql-13-13.4/src/backend/utils/sort/logtape.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/sort/logtape.c 2022-05-09 21:16:30.000000000 +0000 @@ -343,7 +343,7 @@ static inline void swap_nodes(long *heap, unsigned long a, unsigned long b) { - unsigned long swap; + long swap; swap = heap[a]; heap[a] = heap[b]; @@ -357,7 +357,7 @@ } static inline unsigned long -right_offset(unsigned i) +right_offset(unsigned long i) { return 2 * i + 2; } diff -Nru postgresql-13-13.4/src/backend/utils/sort/tuplesort.c postgresql-13-13.7/src/backend/utils/sort/tuplesort.c --- postgresql-13-13.4/src/backend/utils/sort/tuplesort.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/sort/tuplesort.c 2022-05-09 21:16:30.000000000 +0000 @@ -956,6 +956,7 @@ { Tuplesortstate *state = tuplesort_begin_common(workMem, coordinate, randomAccess); + AttrNumber leading; BTScanInsert indexScanKey; MemoryContext oldcontext; int i; @@ -988,6 +989,7 @@ state->abbrevNext = 10; state->indexInfo = BuildIndexInfo(indexRel); + leading = state->indexInfo->ii_IndexAttrNumbers[0]; state->tupDesc = tupDesc; /* assume we need not copy tupDesc */ @@ -1026,7 +1028,7 @@ (scanKey->sk_flags & SK_BT_NULLS_FIRST) != 0; sortKey->ssup_attno = scanKey->sk_attno; /* Convey if abbreviation optimization is applicable in principle */ - sortKey->abbreviate = (i == 0); + sortKey->abbreviate = (i == 0 && leading != 0); AssertState(sortKey->ssup_attno != 0); diff -Nru postgresql-13-13.4/src/backend/utils/time/snapmgr.c postgresql-13-13.7/src/backend/utils/time/snapmgr.c --- postgresql-13-13.4/src/backend/utils/time/snapmgr.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/backend/utils/time/snapmgr.c 2022-05-09 21:16:30.000000000 +0000 @@ -594,12 +594,14 @@ CurrentSnapshot->xmax = sourcesnap->xmax; CurrentSnapshot->xcnt = sourcesnap->xcnt; Assert(sourcesnap->xcnt <= GetMaxSnapshotXidCount()); - memcpy(CurrentSnapshot->xip, sourcesnap->xip, - sourcesnap->xcnt * sizeof(TransactionId)); + if (sourcesnap->xcnt > 0) + memcpy(CurrentSnapshot->xip, sourcesnap->xip, + sourcesnap->xcnt * sizeof(TransactionId)); CurrentSnapshot->subxcnt = sourcesnap->subxcnt; Assert(sourcesnap->subxcnt <= GetMaxSnapshotSubxidCount()); - memcpy(CurrentSnapshot->subxip, sourcesnap->subxip, - sourcesnap->subxcnt * sizeof(TransactionId)); + if (sourcesnap->subxcnt > 0) + memcpy(CurrentSnapshot->subxip, sourcesnap->subxip, + sourcesnap->subxcnt * sizeof(TransactionId)); CurrentSnapshot->suboverflowed = sourcesnap->suboverflowed; CurrentSnapshot->takenDuringRecovery = sourcesnap->takenDuringRecovery; /* NB: curcid should NOT be copied, it's a local matter */ @@ -734,9 +736,24 @@ void PushActiveSnapshot(Snapshot snap) { + PushActiveSnapshotWithLevel(snap, GetCurrentTransactionNestLevel()); +} + +/* + * PushActiveSnapshotWithLevel + * Set the given snapshot as the current active snapshot + * + * Same as PushActiveSnapshot except that caller can specify the + * transaction nesting level that "owns" the snapshot. This level + * must not be deeper than the current top of the snapshot stack. + */ +void +PushActiveSnapshotWithLevel(Snapshot snap, int snap_level) +{ ActiveSnapshotElt *newactive; Assert(snap != InvalidSnapshot); + Assert(ActiveSnapshot == NULL || snap_level >= ActiveSnapshot->as_level); newactive = MemoryContextAlloc(TopTransactionContext, sizeof(ActiveSnapshotElt)); @@ -750,7 +767,7 @@ newactive->as_snap = snap; newactive->as_next = ActiveSnapshot; - newactive->as_level = GetCurrentTransactionNestLevel(); + newactive->as_level = snap_level; newactive->as_snap->active_count++; diff -Nru postgresql-13-13.4/src/bin/initdb/findtimezone.c postgresql-13-13.7/src/bin/initdb/findtimezone.c --- postgresql-13-13.4/src/bin/initdb/findtimezone.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/initdb/findtimezone.c 2022-05-09 21:16:30.000000000 +0000 @@ -737,10 +737,12 @@ /* * This list was built from the contents of the registry at * HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time - * Zones on Windows 7, Windows 10, and Windows Server 2019. + * Zones on Windows 7, Windows 10, and Windows Server 2019. Some recent + * additions have been made by comparing to the CLDR project's + * windowsZones.xml file. * - * The zones have been matched to IANA timezones by looking at the cities - * listed in the win32 display name (in the comment here) in most cases. + * The zones have been matched to IANA timezones based on CLDR's mapping + * for "territory 001". */ { /* (UTC+04:30) Kabul */ @@ -750,12 +752,12 @@ { /* (UTC-09:00) Alaska */ "Alaskan Standard Time", "Alaskan Daylight Time", - "US/Alaska" + "America/Anchorage" }, { /* (UTC-10:00) Aleutian Islands */ "Aleutian Standard Time", "Aleutian Daylight Time", - "US/Aleutan" + "America/Adak" }, { /* (UTC+07:00) Barnaul, Gorno-Altaysk */ @@ -765,12 +767,12 @@ { /* (UTC+03:00) Kuwait, Riyadh */ "Arab Standard Time", "Arab Daylight Time", - "Asia/Kuwait" + "Asia/Riyadh" }, { /* (UTC+04:00) Abu Dhabi, Muscat */ "Arabian Standard Time", "Arabian Daylight Time", - "Asia/Muscat" + "Asia/Dubai" }, { /* (UTC+03:00) Baghdad */ @@ -795,7 +797,7 @@ { /* (UTC-04:00) Atlantic Time (Canada) */ "Atlantic Standard Time", "Atlantic Daylight Time", - "Canada/Atlantic" + "America/Halifax" }, { /* (UTC+09:30) Darwin */ @@ -810,7 +812,7 @@ { /* (UTC+10:00) Canberra, Melbourne, Sydney */ "AUS Eastern Standard Time", "AUS Eastern Daylight Time", - "Australia/Canberra" + "Australia/Sydney" }, { /* (UTC+04:00) Baku */ @@ -825,7 +827,7 @@ { /* (UTC-03:00) Salvador */ "Bahia Standard Time", "Bahia Daylight Time", - "America/Salvador" + "America/Bahia" }, { /* (UTC+06:00) Dhaka */ @@ -833,29 +835,24 @@ "Asia/Dhaka" }, { - /* (UTC+11:00) Bougainville Island */ - "Bougainville Standard Time", "Bougainville Daylight Time", - "Pacific/Bougainville" - }, - { /* (UTC+03:00) Minsk */ "Belarus Standard Time", "Belarus Daylight Time", "Europe/Minsk" }, { + /* (UTC+11:00) Bougainville Island */ + "Bougainville Standard Time", "Bougainville Daylight Time", + "Pacific/Bougainville" + }, + { /* (UTC-01:00) Cabo Verde Is. */ "Cabo Verde Standard Time", "Cabo Verde Daylight Time", "Atlantic/Cape_Verde" }, { - /* (UTC+12:45) Chatham Islands */ - "Chatham Islands Standard Time", "Chatham Islands Daylight Time", - "Pacific/Chatham" - }, - { /* (UTC-06:00) Saskatchewan */ "Canada Central Standard Time", "Canada Central Daylight Time", - "Canada/Saskatchewan" + "America/Regina" }, { /* (UTC-01:00) Cape Verde Is. */ @@ -865,23 +862,22 @@ { /* (UTC+04:00) Yerevan */ "Caucasus Standard Time", "Caucasus Daylight Time", - "Asia/Baku" + "Asia/Yerevan" }, { /* (UTC+09:30) Adelaide */ "Cen. Australia Standard Time", "Cen. Australia Daylight Time", "Australia/Adelaide" }, - /* Central America (other than Mexico) generally does not observe DST */ { /* (UTC-06:00) Central America */ "Central America Standard Time", "Central America Daylight Time", - "CST6" + "America/Guatemala" }, { /* (UTC+06:00) Astana */ "Central Asia Standard Time", "Central Asia Daylight Time", - "Asia/Dhaka" + "Asia/Almaty" }, { /* (UTC-04:00) Cuiaba */ @@ -891,22 +887,22 @@ { /* (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague */ "Central Europe Standard Time", "Central Europe Daylight Time", - "Europe/Belgrade" + "Europe/Budapest" }, { /* (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb */ "Central European Standard Time", "Central European Daylight Time", - "Europe/Sarajevo" + "Europe/Warsaw" }, { /* (UTC+11:00) Solomon Is., New Caledonia */ "Central Pacific Standard Time", "Central Pacific Daylight Time", - "Pacific/Noumea" + "Pacific/Guadalcanal" }, { /* (UTC-06:00) Central Time (US & Canada) */ "Central Standard Time", "Central Daylight Time", - "US/Central" + "America/Chicago" }, { /* (UTC-06:00) Guadalajara, Mexico City, Monterrey */ @@ -914,9 +910,19 @@ "America/Mexico_City" }, { + /* (UTC+12:45) Chatham Islands */ + "Chatham Islands Standard Time", "Chatham Islands Daylight Time", + "Pacific/Chatham" + }, + { /* (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi */ "China Standard Time", "China Daylight Time", - "Asia/Hong_Kong" + "Asia/Shanghai" + }, + { + /* (UTC) Coordinated Universal Time */ + "Coordinated Universal Time", "Coordinated Universal Time", + "UTC" }, { /* (UTC-05:00) Havana */ @@ -926,7 +932,7 @@ { /* (UTC-12:00) International Date Line West */ "Dateline Standard Time", "Dateline Daylight Time", - "Etc/UTC+12" + "Etc/GMT+12" }, { /* (UTC+03:00) Nairobi */ @@ -941,27 +947,27 @@ { /* (UTC+02:00) Chisinau */ "E. Europe Standard Time", "E. Europe Daylight Time", - "Europe/Bucharest" + "Europe/Chisinau" }, { /* (UTC-03:00) Brasilia */ "E. South America Standard Time", "E. South America Daylight Time", - "America/Araguaina" + "America/Sao_Paulo" + }, + { + /* (UTC-06:00) Easter Island */ + "Easter Island Standard Time", "Easter Island Daylight Time", + "Pacific/Easter" }, { /* (UTC-05:00) Eastern Time (US & Canada) */ "Eastern Standard Time", "Eastern Daylight Time", - "US/Eastern" + "America/New_York" }, { /* (UTC-05:00) Chetumal */ "Eastern Standard Time (Mexico)", "Eastern Daylight Time (Mexico)", - "America/Mexico_City" - }, - { - /* (UTC-06:00) Easter Island */ - "Easter Island Standard Time", "Easter Island Daylight Time", - "Pacific/Easter" + "America/Cancun" }, { /* (UTC+02:00) Cairo */ @@ -970,7 +976,7 @@ }, { /* (UTC+05:00) Ekaterinburg */ - "Ekaterinburg Standard Time (RTZ 4)", "Ekaterinburg Daylight Time", + "Ekaterinburg Standard Time", "Ekaterinburg Daylight Time", "Asia/Yekaterinburg" }, { @@ -981,7 +987,7 @@ { /* (UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius */ "FLE Standard Time", "FLE Daylight Time", - "Europe/Helsinki" + "Europe/Kiev" }, { /* (UTC+04:00) Tbilisi */ @@ -999,24 +1005,31 @@ "America/Godthab" }, { + /* + * Windows uses this zone name in various places that lie near the + * prime meridian, but are not in the UK. However, most people + * probably think that "Greenwich" means UK civil time, or maybe even + * straight-up UTC. Atlantic/Reykjavik is a decent match for that + * interpretation because Iceland hasn't observed DST since 1968. + */ /* (UTC+00:00) Monrovia, Reykjavik */ "Greenwich Standard Time", "Greenwich Daylight Time", - "Africa/Casablanca" + "Atlantic/Reykjavik" }, { /* (UTC+02:00) Athens, Bucharest */ "GTB Standard Time", "GTB Daylight Time", - "Europe/Athens" + "Europe/Bucharest" }, { /* (UTC-05:00) Haiti */ "Haiti Standard Time", "Haiti Daylight Time", - "US/Eastern" + "America/Port-au-Prince" }, { /* (UTC-10:00) Hawaii */ "Hawaiian Standard Time", "Hawaiian Daylight Time", - "US/Hawaii" + "Pacific/Honolulu" }, { /* (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi */ @@ -1030,6 +1043,11 @@ }, { /* (UTC+02:00) Jerusalem */ + "Israel Standard Time", "Israel Daylight Time", + "Asia/Jerusalem" + }, + { + /* (UTC+02:00) Jerusalem (old spelling of zone name) */ "Jerusalem Standard Time", "Jerusalem Daylight Time", "Asia/Jerusalem" }, @@ -1039,6 +1057,11 @@ "Asia/Amman" }, { + /* (UTC+02:00) Kaliningrad */ + "Kaliningrad Standard Time", "Kaliningrad Daylight Time", + "Europe/Kaliningrad" + }, + { /* (UTC+12:00) Petropavlovsk-Kamchatsky - Old */ "Kamchatka Standard Time", "Kamchatka Daylight Time", "Asia/Kamchatka" @@ -1074,6 +1097,11 @@ "America/Punta_Arenas" }, { + /* (UTC+08:00) Kuala Lumpur, Singapore */ + "Malay Peninsula Standard Time", "Malay Peninsula Daylight Time", + "Asia/Kuala_Lumpur" + }, + { /* (UTC-09:30) Marquesas Islands */ "Marquesas Standard Time", "Marquesas Daylight Time", "Pacific/Marquesas" @@ -1116,7 +1144,7 @@ { /* (UTC-07:00) Mountain Time (US & Canada) */ "Mountain Standard Time", "Mountain Daylight Time", - "US/Mountain" + "America/Denver" }, { /* (UTC-07:00) Chihuahua, La Paz, Mazatlan */ @@ -1129,7 +1157,7 @@ "Asia/Rangoon" }, { - /* (UTC+06:00) Novosibirsk (RTZ 5) */ + /* (UTC+07:00) Novosibirsk */ "N. Central Asia Standard Time", "N. Central Asia Daylight Time", "Asia/Novosibirsk" }, @@ -1151,7 +1179,7 @@ { /* (UTC-03:30) Newfoundland */ "Newfoundland Standard Time", "Newfoundland Daylight Time", - "Canada/Newfoundland" + "America/St_Johns" }, { /* (UTC+11:00) Norfolk Island */ @@ -1159,7 +1187,7 @@ "Pacific/Norfolk" }, { - /* (UTC+08:00) Irkutsk, Ulaan Bataar */ + /* (UTC+08:00) Irkutsk */ "North Asia East Standard Time", "North Asia East Daylight Time", "Asia/Irkutsk" }, @@ -1191,7 +1219,7 @@ { /* (UTC-08:00) Pacific Time (US & Canada) */ "Pacific Standard Time", "Pacific Daylight Time", - "US/Pacific" + "America/Los_Angeles" }, { /* (UTC-08:00) Baja California */ @@ -1216,7 +1244,22 @@ { /* (UTC+01:00) Brussels, Copenhagen, Madrid, Paris */ "Romance Standard Time", "Romance Daylight Time", - "Europe/Brussels" + "Europe/Paris" + }, + { + /* (UTC+04:00) Izhevsk, Samara */ + "Russia Time Zone 3", "Russia Time Zone 3", + "Europe/Samara" + }, + { + /* (UTC+11:00) Chokurdakh */ + "Russia Time Zone 10", "Russia Time Zone 10", + "Asia/Srednekolymsk" + }, + { + /* (UTC+12:00) Anadyr, Petropavlovsk-Kamchatsky */ + "Russia Time Zone 11", "Russia Time Zone 11", + "Asia/Kamchatka" }, { /* (UTC+02:00) Kaliningrad */ @@ -1274,14 +1317,14 @@ "Asia/Anadyr" }, { - /* (UTC+03:00) Moscow, St. Petersburg, Volgograd */ + /* (UTC+03:00) Moscow, St. Petersburg */ "Russian Standard Time", "Russian Daylight Time", "Europe/Moscow" }, { /* (UTC-03:00) Cayenne, Fortaleza */ "SA Eastern Standard Time", "SA Eastern Daylight Time", - "America/Buenos_Aires" + "America/Cayenne" }, { /* (UTC-05:00) Bogota, Lima, Quito, Rio Branco */ @@ -1291,7 +1334,7 @@ { /* (UTC-04:00) Georgetown, La Paz, Manaus, San Juan */ "SA Western Standard Time", "SA Western Daylight Time", - "America/Caracas" + "America/La_Paz" }, { /* (UTC-03:00) Saint Pierre and Miquelon */ @@ -1299,9 +1342,14 @@ "America/Miquelon" }, { + /* (UTC+11:00) Sakhalin */ + "Sakhalin Standard Time", "Sakhalin Daylight Time", + "Asia/Sakhalin" + }, + { /* (UTC+13:00) Samoa */ "Samoa Standard Time", "Samoa Daylight Time", - "Pacific/Samoa" + "Pacific/Apia" }, { /* (UTC+00:00) Sao Tome */ @@ -1320,18 +1368,18 @@ }, { /* (UTC+08:00) Kuala Lumpur, Singapore */ - "Malay Peninsula Standard Time", "Malay Peninsula Daylight Time", - "Asia/Kuala_Lumpur" - }, - { - /* (UTC+11:00) Sakhalin */ - "Sakhalin Standard Time", "Sakhalin Daylight Time", - "Asia/Sakhalin" + "Singapore Standard Time", "Singapore Daylight Time", + "Asia/Singapore" }, { /* (UTC+02:00) Harare, Pretoria */ "South Africa Standard Time", "South Africa Daylight Time", - "Africa/Harare" + "Africa/Johannesburg" + }, + { + /* (UTC+02:00) Juba */ + "South Sudan Standard Time", "South Sudan Daylight Time", + "Africa/Juba" }, { /* (UTC+05:30) Sri Jayawardenepura */ @@ -1369,16 +1417,16 @@ "Asia/Tokyo" }, { - /* (UTC+13:00) Nuku'alofa */ - "Tonga Standard Time", "Tonga Daylight Time", - "Pacific/Tongatapu" - }, - { /* (UTC+07:00) Tomsk */ "Tomsk Standard Time", "Tomsk Daylight Time", "Asia/Tomsk" }, { + /* (UTC+13:00) Nuku'alofa */ + "Tonga Standard Time", "Tonga Daylight Time", + "Pacific/Tongatapu" + }, + { /* (UTC+09:00) Chita */ "Transbaikal Standard Time", "Transbaikal Daylight Time", "Asia/Chita" @@ -1390,66 +1438,66 @@ }, { /* (UTC-05:00) Turks and Caicos */ - "Turks and Caicos Standard Time", "Turks and Caicos Daylight Time", + "Turks And Caicos Standard Time", "Turks And Caicos Daylight Time", "America/Grand_Turk" }, { /* (UTC+08:00) Ulaanbaatar */ "Ulaanbaatar Standard Time", "Ulaanbaatar Daylight Time", - "Asia/Ulaanbaatar", + "Asia/Ulaanbaatar" }, { /* (UTC-05:00) Indiana (East) */ "US Eastern Standard Time", "US Eastern Daylight Time", - "US/Eastern" + "America/Indianapolis" }, { /* (UTC-07:00) Arizona */ "US Mountain Standard Time", "US Mountain Daylight Time", - "US/Arizona" + "America/Phoenix" }, { /* (UTC) Coordinated Universal Time */ - "Coordinated Universal Time", "Coordinated Universal Time", + "UTC", "UTC", "UTC" }, { /* (UTC+12:00) Coordinated Universal Time+12 */ "UTC+12", "UTC+12", - "Etc/GMT+12" + "Etc/GMT-12" }, { /* (UTC+13:00) Coordinated Universal Time+13 */ "UTC+13", "UTC+13", - "Etc/GMT+13" + "Etc/GMT-13" }, { /* (UTC-02:00) Coordinated Universal Time-02 */ "UTC-02", "UTC-02", - "Etc/GMT-02" + "Etc/GMT+2" }, { /* (UTC-08:00) Coordinated Universal Time-08 */ "UTC-08", "UTC-08", - "Etc/GMT-08" + "Etc/GMT+8" }, { /* (UTC-09:00) Coordinated Universal Time-09 */ "UTC-09", "UTC-09", - "Etc/GMT-09" + "Etc/GMT+9" }, { /* (UTC-11:00) Coordinated Universal Time-11 */ "UTC-11", "UTC-11", - "Etc/GMT-11" + "Etc/GMT+11" }, { /* (UTC-04:00) Caracas */ "Venezuela Standard Time", "Venezuela Daylight Time", - "America/Caracas", + "America/Caracas" }, { - /* (UTC+10:00) Vladivostok (RTZ 9) */ + /* (UTC+10:00) Vladivostok */ "Vladivostok Standard Time", "Vladivostok Daylight Time", "Asia/Vladivostok" }, @@ -1463,18 +1511,15 @@ "W. Australia Standard Time", "W. Australia Daylight Time", "Australia/Perth" }, -#ifdef NOT_USED - /* Could not find a match for this one (just a guess). Excluded for now. */ { /* (UTC+01:00) West Central Africa */ "W. Central Africa Standard Time", "W. Central Africa Daylight Time", - "WAT" + "Africa/Lagos" }, -#endif { /* (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna */ "W. Europe Standard Time", "W. Europe Daylight Time", - "CET" + "Europe/Berlin" }, { /* (UTC+07:00) Hovd */ @@ -1484,7 +1529,7 @@ { /* (UTC+05:00) Ashgabat, Tashkent */ "West Asia Standard Time", "West Asia Daylight Time", - "Asia/Karachi" + "Asia/Tashkent" }, { /* (UTC+02:00) Gaza, Hebron */ @@ -1492,9 +1537,14 @@ "Asia/Gaza" }, { + /* (UTC+02:00) Gaza, Hebron */ + "West Bank Standard Time", "West Bank Daylight Time", + "Asia/Hebron" + }, + { /* (UTC+10:00) Guam, Port Moresby */ "West Pacific Standard Time", "West Pacific Daylight Time", - "Pacific/Guam" + "Pacific/Port_Moresby" }, { /* (UTC+09:00) Yakutsk */ @@ -1502,6 +1552,11 @@ "Asia/Yakutsk" }, { + /* (UTC-07:00) Yukon */ + "Yukon Standard Time", "Yukon Daylight Time", + "America/Whitehorse" + }, + { NULL, NULL, NULL } }; diff -Nru postgresql-13-13.4/src/bin/initdb/po/fr.po postgresql-13-13.7/src/bin/initdb/po/fr.po --- postgresql-13-13.4/src/bin/initdb/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/initdb/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -186,7 +186,7 @@ #: ../../common/username.c:60 #, c-format msgid "user name lookup failure: error code %lu" -msgstr "échec de la recherche du nom d'utilisateur : code erreur %lu" +msgstr "échec de la recherche du nom d'utilisateur : code d'erreur %lu" #: ../../common/wait_error.c:45 #, c-format @@ -469,7 +469,7 @@ "%s initializes a PostgreSQL database cluster.\n" "\n" msgstr "" -"%s initialise un cluster PostgreSQL.\n" +"%s initialise une instance PostgreSQL.\n" "\n" #: initdb.c:2290 @@ -495,48 +495,48 @@ #, c-format msgid " -A, --auth=METHOD default authentication method for local connections\n" msgstr "" -" -A, --auth=MÉTHODE méthode d'authentification par défaut pour les\n" -" connexions locales\n" +" -A, --auth=MÉTHODE méthode d'authentification par défaut pour les\n" +" connexions locales\n" #: initdb.c:2294 #, c-format msgid " --auth-host=METHOD default authentication method for local TCP/IP connections\n" msgstr "" -" --auth-host=MÉTHODE méthode d'authentification par défaut pour les\n" -" connexions locales TCP/IP\n" +" --auth-host=MÉTHODE méthode d'authentification par défaut pour les\n" +" connexions locales TCP/IP\n" #: initdb.c:2295 #, c-format msgid " --auth-local=METHOD default authentication method for local-socket connections\n" msgstr "" -" --auth-local=MÉTHODE méthode d'authentification par défaut pour les\n" -" connexions locales socket\n" +" --auth-local=MÉTHODE méthode d'authentification par défaut pour les\n" +" connexions locales socket\n" #: initdb.c:2296 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" -msgstr " [-D, --pgdata=]RÉP_DONNÉES emplacement du cluster\n" +msgstr " [-D, --pgdata=]RÉP_DONNÉES emplacement de l'instance\n" #: initdb.c:2297 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr "" -" -E, --encoding=ENCODAGE initialise l'encodage par défaut des nouvelles\n" -" bases de données\n" +" -E, --encoding=ENCODAGE initialise l'encodage par défaut des nouvelles\n" +" bases de données\n" #: initdb.c:2298 #, c-format msgid " -g, --allow-group-access allow group read/execute on data directory\n" msgstr "" -" -g, --allow-group-access autorise la lecture/écriture pour le groupe sur\n" -" le répertoire des données\n" +" -g, --allow-group-access autorise la lecture/écriture pour le groupe sur\n" +" le répertoire des données\n" #: initdb.c:2299 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr "" -" --locale=LOCALE initialise la locale par défaut pour les\n" -" nouvelles bases de données\n" +" --locale=LOCALE initialise la locale par défaut pour les\n" +" nouvelles bases de données\n" #: initdb.c:2300 #, c-format @@ -548,22 +548,22 @@ msgstr "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" " --lc-monetary=, --lc-numeric=, --lc-time=LOCALE\n" -" initialise la locale par défaut dans la\n" -" catégorie respective pour les nouvelles bases\n" -" de données (les valeurs par défaut sont prises\n" -" dans l'environnement)\n" +" initialise la locale par défaut dans la catégorie\n" +" respective pour les nouvelles bases de données\n" +" (les valeurs par défaut sont prises dans\n" +" l'environnement)\n" #: initdb.c:2304 #, c-format msgid " --no-locale equivalent to --locale=C\n" -msgstr " --no-locale équivalent à --locale=C\n" +msgstr " --no-locale équivalent à --locale=C\n" #: initdb.c:2305 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" msgstr "" -" --pwfile=NOMFICHIER lit le mot de passe du nouveau\n" -" super-utilisateur à partir de ce fichier\n" +" --pwfile=FICHIER lit le mot de passe du nouveau super-utilisateur\n" +" à partir de ce fichier\n" #: initdb.c:2306 #, c-format @@ -571,33 +571,32 @@ " -T, --text-search-config=CFG\n" " default text search configuration\n" msgstr "" -" -T, --text-search-config=CFG\n" -" configuration par défaut de la recherche plein\n" -" texte\n" +" -T, --text-search-config=CFG configuration par défaut de la recherche plein\n" +" texte\n" #: initdb.c:2308 #, c-format msgid " -U, --username=NAME database superuser name\n" -msgstr " -U, --username=NOM nom du super-utilisateur de la base de données\n" +msgstr " -U, --username=NOM nom du super-utilisateur de la base de données\n" #: initdb.c:2309 #, c-format msgid " -W, --pwprompt prompt for a password for the new superuser\n" msgstr "" -" -W, --pwprompt demande un mot de passe pour le nouveau\n" -" super-utilisateur\n" +" -W, --pwprompt demande un mot de passe pour le nouveau\n" +" super-utilisateur\n" #: initdb.c:2310 #, c-format msgid " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr "" -" -X, --waldir=RÉP_WAL emplacement du répertoire des journaux de\n" -" transactions\n" +" -X, --waldir=RÉP_WAL emplacement du répertoire des journaux de\n" +" transactions\n" #: initdb.c:2311 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" -msgstr " --wal-segsize=TAILLE taille des segments WAL, en mégaoctets\n" +msgstr " --wal-segsize=TAILLE configure la taille des segments WAL, en Mo\n" #: initdb.c:2312 #, c-format @@ -611,39 +610,43 @@ #: initdb.c:2313 #, c-format msgid " -d, --debug generate lots of debugging output\n" -msgstr " -d, --debug engendre un grand nombre de traces de débogage\n" +msgstr " -d, --debug engendre un grand nombre de traces de débogage\n" #: initdb.c:2314 #, c-format msgid " -k, --data-checksums use data page checksums\n" -msgstr " -k, --data-checksums utilise les sommes de contrôle pour les pages de données\n" +msgstr "" +" -k, --data-checksums active les sommes de contrôle pour les blocs des\n" +" fichiers de données\n" #: initdb.c:2315 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr "" -" -L RÉPERTOIRE indique où trouver les fichiers servant à la\n" -" création du cluster\n" +" -L RÉPERTOIRE indique où trouver les fichiers servant à la\n" +" création de l'instance\n" #: initdb.c:2316 #, c-format msgid " -n, --no-clean do not clean up after errors\n" -msgstr " -n, --noclean ne nettoie pas après des erreurs\n" +msgstr " -n, --noclean ne nettoie pas après des erreurs\n" #: initdb.c:2317 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" -msgstr " -N, --nosync n'attend pas que les modifications soient proprement écrites sur disque\n" +msgstr "" +" -N, --nosync n'attend pas que les modifications soient\n" +" proprement écrites sur disque\n" #: initdb.c:2318 #, c-format msgid " -s, --show show internal settings\n" -msgstr " -s, --show affiche la configuration interne\n" +msgstr " -s, --show affiche la configuration interne\n" #: initdb.c:2319 #, c-format msgid " -S, --sync-only only sync data directory\n" -msgstr " -S, --sync-only synchronise uniquement le répertoire des données\n" +msgstr " -S, --sync-only synchronise uniquement le répertoire des données\n" #: initdb.c:2320 #, c-format @@ -657,12 +660,12 @@ #: initdb.c:2321 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: initdb.c:2322 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" #: initdb.c:2323 #, c-format @@ -687,7 +690,7 @@ #: initdb.c:2326 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil de %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" #: initdb.c:2354 #, c-format @@ -735,7 +738,7 @@ "but was not the same version as %s.\n" "Check your installation." msgstr "" -"Le programme « %s » a été trouvé par « %s »,\n" +"Le programme « %s » a été trouvé par « %s »\n" "mais n'est pas de la même version que %s.\n" "Vérifiez votre installation." @@ -760,7 +763,7 @@ " NUMERIC: %s\n" " TIME: %s\n" msgstr "" -"Le cluster sera initialisé avec les locales\n" +"L'instance sera initialisé avec les locales\n" " COLLATE: %s\n" " CTYPE: %s\n" " MESSAGES: %s\n" diff -Nru postgresql-13-13.4/src/bin/initdb/po/ru.po postgresql-13-13.7/src/bin/initdb/po/ru.po --- postgresql-13-13.4/src/bin/initdb/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/initdb/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -6,13 +6,13 @@ # Sergey Burladyan , 2009. # Andrey Sudnik , 2010. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: initdb (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-03 11:22+0300\n" -"PO-Revision-Date: 2020-10-29 15:03+0300\n" +"POT-Creation-Date: 2022-04-26 13:44+0300\n" +"PO-Revision-Date: 2021-08-14 07:49+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -37,42 +37,42 @@ msgid "warning: " msgstr "предупреждение: " -#: ../../common/exec.c:137 ../../common/exec.c:254 ../../common/exec.c:300 +#: ../../common/exec.c:142 ../../common/exec.c:259 ../../common/exec.c:305 #, c-format msgid "could not identify current directory: %m" msgstr "не удалось определить текущий каталог: %m" -#: ../../common/exec.c:156 +#: ../../common/exec.c:161 #, c-format msgid "invalid binary \"%s\"" msgstr "неверный исполняемый файл \"%s\"" -#: ../../common/exec.c:206 +#: ../../common/exec.c:211 #, c-format msgid "could not read binary \"%s\"" msgstr "не удалось прочитать исполняемый файл \"%s\"" -#: ../../common/exec.c:214 +#: ../../common/exec.c:219 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:270 ../../common/exec.c:309 +#: ../../common/exec.c:275 ../../common/exec.c:314 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: ../../common/exec.c:287 +#: ../../common/exec.c:292 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "не удалось прочитать символическую ссылку \"%s\": %m" -#: ../../common/exec.c:410 +#: ../../common/exec.c:415 #, c-format msgid "pclose failed: %m" msgstr "ошибка pclose: %m" -#: ../../common/exec.c:539 ../../common/exec.c:584 ../../common/exec.c:676 +#: ../../common/exec.c:544 ../../common/exec.c:589 ../../common/exec.c:681 #: initdb.c:325 #, c-format msgid "out of memory" @@ -880,7 +880,7 @@ #: initdb.c:2712 initdb.c:2794 initdb.c:3163 #, c-format msgid "could not access directory \"%s\": %m" -msgstr "нет доступа к каталогу \"%s\": %m" +msgstr "ошибка доступа к каталогу \"%s\": %m" #: initdb.c:2735 #, c-format @@ -1031,11 +1031,11 @@ "--auth-local или --auth-host при следующем выполнении initdb.\n" #. translator: This is a placeholder in a shell command. -#: initdb.c:3293 +#: initdb.c:3296 msgid "logfile" msgstr "файл_журнала" -#: initdb.c:3295 +#: initdb.c:3298 #, c-format msgid "" "\n" diff -Nru postgresql-13-13.4/src/bin/initdb/po/sv.po postgresql-13-13.7/src/bin/initdb/po/sv.po --- postgresql-13-13.4/src/bin/initdb/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/initdb/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,5 +1,5 @@ # Swedish message translation file for initdb -# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020. +# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021. # Magnus Hagander , 2007. # Peter Eisentraut , 2009. # Mats Erik Andersson , 2014. @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-05-09 08:46+0000\n" -"PO-Revision-Date: 2020-05-09 13:56+0200\n" +"POT-Creation-Date: 2022-02-18 04:30+0000\n" +"PO-Revision-Date: 2021-11-09 06:30+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -390,7 +390,7 @@ #: initdb.c:1482 msgid "Enter new superuser password: " -msgstr "Mata in ett nytt lösenord för superanvändaren: " +msgstr "Mata in ett nytt lösenord för superuser: " #: initdb.c:1483 msgid "Enter it again: " @@ -497,17 +497,17 @@ #: initdb.c:2293 #, c-format msgid " -A, --auth=METHOD default authentication method for local connections\n" -msgstr " -A, --auth=METOD förvald autentiseringsmetod för alla förbindelser\n" +msgstr " -A, --auth=METOD förvald autentiseringsmetod för alla anslutningar\n" #: initdb.c:2294 #, c-format msgid " --auth-host=METHOD default authentication method for local TCP/IP connections\n" -msgstr " --auth-host=METOD autentiseringsmetod för TCP/IP-förbindelser\n" +msgstr " --auth-host=METOD autentiseringsmetod för TCP/IP-anslutningar\n" #: initdb.c:2295 #, c-format msgid " --auth-local=METHOD default authentication method for local-socket connections\n" -msgstr " --auth-local=METOD autentiseringsmetod för förbindelser via unix-uttag\n" +msgstr " --auth-local=METOD autentiseringsmetod för anslutningar via unix-uttag\n" #: initdb.c:2296 #, c-format @@ -550,7 +550,7 @@ #: initdb.c:2305 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" -msgstr " --pwfile=FIL läser lösenord för superanvändare från fil\n" +msgstr " --pwfile=FIL läser lösenord för superuser från fil\n" #: initdb.c:2306 #, c-format @@ -564,12 +564,12 @@ #: initdb.c:2308 #, c-format msgid " -U, --username=NAME database superuser name\n" -msgstr " -U, --username=NAMN namn på databasens superanvändare\n" +msgstr " -U, --username=NAMN namn på databasens superuser\n" #: initdb.c:2309 #, c-format msgid " -W, --pwprompt prompt for a password for the new superuser\n" -msgstr " -W, --pwprompt efterfråga lösenord för superanvändare\n" +msgstr " -W, --pwprompt efterfråga lösenord för superuser\n" #: initdb.c:2310 #, c-format @@ -987,11 +987,11 @@ "flaggor -A eller --auth-local och --auth-host nästa gång du kör initdb.\n" #. translator: This is a placeholder in a shell command. -#: initdb.c:3293 +#: initdb.c:3296 msgid "logfile" msgstr "loggfil" -#: initdb.c:3295 +#: initdb.c:3298 #, c-format msgid "" "\n" @@ -1005,24 +1005,3 @@ "\n" " %s\n" "\n" - -#~ msgid "could not load advapi32.dll: error code %lu" -#~ msgstr "kunde inte ladda advapi32.dll: felkod %lu" - -#~ msgid "" -#~ "The program \"postgres\" was found by \"%s\"\n" -#~ "but was not the same version as %s.\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"postgres\" hittades av \"%s\",\n" -#~ "men det är inte byggt i samma version som %s.\n" -#~ "Kontrollera din installation." - -#~ msgid "" -#~ "The program \"postgres\" is needed by %s but was not found in the\n" -#~ "same directory as \"%s\".\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"postgres\" behövs av %s men kunde inte hittas\n" -#~ "i samma katalog som \"%s\".\n" -#~ "Kontrollera din installation." diff -Nru postgresql-13-13.4/src/bin/pg_archivecleanup/po/fr.po postgresql-13-13.7/src/bin/pg_archivecleanup/po/fr.po --- postgresql-13-13.4/src/bin/pg_archivecleanup/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_archivecleanup/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -74,7 +74,7 @@ "%s removes older WAL files from PostgreSQL archives.\n" "\n" msgstr "" -"%s supprime les anciens fichiers WAL des archives de PostgreSQL.\n" +"%s supprime les journaux de transactions archivés devenus inutiles.\n" "\n" #: pg_archivecleanup.c:255 @@ -133,7 +133,7 @@ "\n" "Pour utiliser comme archive_cleanup_command dans postgresql.conf :\n" " archive_cleanup_command = 'pg_archivecleanup [OPTION]... EMPLACEMENTARCHIVE %%r'\n" -"e.g.\n" +"Par exemple :\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/serveur/reparchives %%r'\n" #: pg_archivecleanup.c:268 @@ -146,7 +146,7 @@ msgstr "" "\n" "Ou pour utiliser comme nettoyeur autonome d'archives :\n" -"e.g.\n" +"Par exemple :\n" " pg_archivecleanup /mnt/serveur/reparchives 000000010000000000000010.00000020.backup\n" #: pg_archivecleanup.c:272 @@ -161,7 +161,7 @@ #: pg_archivecleanup.c:273 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil de %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" #: pg_archivecleanup.c:335 #, c-format diff -Nru postgresql-13-13.4/src/bin/pg_archivecleanup/po/sv.po postgresql-13-13.7/src/bin/pg_archivecleanup/po/sv.po --- postgresql-13-13.4/src/bin/pg_archivecleanup/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_archivecleanup/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for pg_archivecleanup # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:17+0000\n" -"PO-Revision-Date: 2020-04-11 07:37+0200\n" +"POT-Creation-Date: 2022-02-18 04:31+0000\n" +"PO-Revision-Date: 2021-11-07 10:36+0100\n" "Last-Translator: FDennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" diff -Nru postgresql-13-13.4/src/bin/pg_archivecleanup/t/010_pg_archivecleanup.pl postgresql-13-13.7/src/bin/pg_archivecleanup/t/010_pg_archivecleanup.pl --- postgresql-13-13.4/src/bin/pg_archivecleanup/t/010_pg_archivecleanup.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_archivecleanup/t/010_pg_archivecleanup.pl 2022-05-09 21:16:30.000000000 +0000 @@ -69,6 +69,8 @@ sub run_check { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($suffix, $test_name) = @_; create_files(); diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/pg_basebackup.c postgresql-13-13.7/src/bin/pg_basebackup/pg_basebackup.c --- postgresql-13-13.4/src/bin/pg_basebackup/pg_basebackup.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/pg_basebackup.c 2022-05-09 21:16:30.000000000 +0000 @@ -1262,10 +1262,11 @@ #ifdef HAVE_LIBZ if (state.ztarfile != NULL) { + errno = 0; /* in case gzclose() doesn't set it */ if (gzclose(state.ztarfile) != 0) { - pg_log_error("could not close compressed file \"%s\": %s", - state.filename, get_gz_error(state.ztarfile)); + pg_log_error("could not close compressed file \"%s\": %m", + state.filename); exit(1); } } diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/pg_receivewal.c postgresql-13-13.7/src/bin/pg_basebackup/pg_receivewal.c --- postgresql-13-13.4/src/bin/pg_basebackup/pg_receivewal.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/pg_receivewal.c 2022-05-09 21:16:30.000000000 +0000 @@ -675,10 +675,6 @@ close_destination_dir(dir, basedir); } -#ifndef WIN32 - pqsignal(SIGINT, sigint_handler); -#endif - /* * Obtain a connection before doing anything. */ @@ -689,6 +685,14 @@ atexit(disconnect_atexit); /* + * Trap signals. (Don't do this until after the initial password prompt, + * if one is needed, in GetConnection.) + */ +#ifndef WIN32 + pqsignal(SIGINT, sigint_handler); +#endif + + /* * Run IDENTIFY_SYSTEM to make sure we've successfully have established a * replication connection and haven't connected using a database specific * connection. diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/pg_recvlogical.c postgresql-13-13.7/src/bin/pg_basebackup/pg_recvlogical.c --- postgresql-13-13.4/src/bin/pg_basebackup/pg_recvlogical.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/pg_recvlogical.c 2022-05-09 21:16:30.000000000 +0000 @@ -212,8 +212,6 @@ output_written_lsn = InvalidXLogRecPtr; output_fsync_lsn = InvalidXLogRecPtr; - query = createPQExpBuffer(); - /* * Connect in replication mode to the server */ @@ -232,6 +230,7 @@ replication_slot); /* Initiate the replication stream at specified location */ + query = createPQExpBuffer(); appendPQExpBuffer(query, "START_REPLICATION SLOT \"%s\" LOGICAL %X/%X", replication_slot, (uint32) (startpos >> 32), (uint32) startpos); @@ -920,15 +919,9 @@ exit(1); } -#ifndef WIN32 - pqsignal(SIGINT, sigint_handler); - pqsignal(SIGHUP, sighup_handler); -#endif - /* - * Obtain a connection to server. This is not really necessary but it - * helps to get more precise error messages about authentication, required - * GUC parameters and such. + * Obtain a connection to server. Notably, if we need a password, we want + * to collect it from the user immediately. */ conn = GetConnection(); if (!conn) @@ -937,6 +930,15 @@ atexit(disconnect_atexit); /* + * Trap signals. (Don't do this until after the initial password prompt, + * if one is needed, in GetConnection.) + */ +#ifndef WIN32 + pqsignal(SIGINT, sigint_handler); + pqsignal(SIGHUP, sighup_handler); +#endif + + /* * Run IDENTIFY_SYSTEM to make sure we connected using a database specific * replication connection. */ diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/po/de.po postgresql-13-13.7/src/bin/pg_basebackup/po/de.po --- postgresql-13-13.4/src/bin/pg_basebackup/po/de.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/po/de.po 2022-05-09 21:16:30.000000000 +0000 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-05-18 03:45+0000\n" +"POT-Creation-Date: 2022-02-03 03:29+0000\n" "PO-Revision-Date: 2020-05-18 09:00+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" @@ -46,7 +46,7 @@ msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" #: ../../common/file_utils.c:79 ../../common/file_utils.c:181 -#: pg_receivewal.c:266 pg_recvlogical.c:340 +#: pg_receivewal.c:266 pg_recvlogical.c:339 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" @@ -62,7 +62,7 @@ msgstr "konnte Verzeichnis »%s« nicht lesen: %m" #: ../../common/file_utils.c:224 ../../common/file_utils.c:283 -#: ../../common/file_utils.c:357 +#: ../../common/file_utils.c:357 ../../fe_utils/recovery_gen.c:134 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" @@ -78,87 +78,106 @@ msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" -#: pg_basebackup.c:223 +#: ../../fe_utils/recovery_gen.c:35 ../../fe_utils/recovery_gen.c:49 +#: ../../fe_utils/recovery_gen.c:77 ../../fe_utils/recovery_gen.c:100 +#: ../../fe_utils/recovery_gen.c:171 pg_basebackup.c:1248 +#, c-format +msgid "out of memory" +msgstr "Speicher aufgebraucht" + +#: ../../fe_utils/recovery_gen.c:140 pg_basebackup.c:1021 pg_basebackup.c:1715 +#: pg_basebackup.c:1771 +#, c-format +msgid "could not write to file \"%s\": %m" +msgstr "konnte nicht in Datei »%s« schreiben: %m" + +#: ../../fe_utils/recovery_gen.c:152 pg_basebackup.c:1166 pg_basebackup.c:1672 +#: pg_basebackup.c:1748 +#, c-format +msgid "could not create file \"%s\": %m" +msgstr "konnte Datei »%s« nicht erstellen: %m" + +#: pg_basebackup.c:224 #, c-format msgid "removing data directory \"%s\"" msgstr "entferne Datenverzeichnis »%s«" -#: pg_basebackup.c:225 +#: pg_basebackup.c:226 #, c-format msgid "failed to remove data directory" msgstr "konnte Datenverzeichnis nicht entfernen" -#: pg_basebackup.c:229 +#: pg_basebackup.c:230 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "entferne Inhalt des Datenverzeichnisses »%s«" -#: pg_basebackup.c:231 +#: pg_basebackup.c:232 #, c-format msgid "failed to remove contents of data directory" msgstr "konnte Inhalt des Datenverzeichnisses nicht entfernen" -#: pg_basebackup.c:236 +#: pg_basebackup.c:237 #, c-format msgid "removing WAL directory \"%s\"" msgstr "entferne WAL-Verzeichnis »%s«" -#: pg_basebackup.c:238 +#: pg_basebackup.c:239 #, c-format msgid "failed to remove WAL directory" msgstr "konnte WAL-Verzeichnis nicht entfernen" -#: pg_basebackup.c:242 +#: pg_basebackup.c:243 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "entferne Inhalt des WAL-Verzeichnisses »%s«" -#: pg_basebackup.c:244 +#: pg_basebackup.c:245 #, c-format msgid "failed to remove contents of WAL directory" msgstr "konnte Inhalt des WAL-Verzeichnisses nicht entfernen" -#: pg_basebackup.c:250 +#: pg_basebackup.c:251 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "Datenverzeichnis »%s« wurde auf Anwenderwunsch nicht entfernt" -#: pg_basebackup.c:253 +#: pg_basebackup.c:254 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "WAL-Verzeichnis »%s« wurde auf Anwenderwunsch nicht entfernt" -#: pg_basebackup.c:257 +#: pg_basebackup.c:258 #, c-format msgid "changes to tablespace directories will not be undone" msgstr "Änderungen in Tablespace-Verzeichnissen werden nicht rückgängig gemacht" -#: pg_basebackup.c:298 +#: pg_basebackup.c:299 #, c-format msgid "directory name too long" msgstr "Verzeichnisname zu lang" -#: pg_basebackup.c:308 +#: pg_basebackup.c:309 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "mehrere »=«-Zeichen im Tablespace-Mapping" -#: pg_basebackup.c:320 +#: pg_basebackup.c:321 #, c-format msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" msgstr "ungültiges Tablespace-Mapping-Format »%s«, muss »ALTES_VERZ=NEUES_VERZ« sein" -#: pg_basebackup.c:332 +#: pg_basebackup.c:333 #, c-format msgid "old directory is not an absolute path in tablespace mapping: %s" msgstr "altes Verzeichnis im Tablespace-Mapping ist kein absoluter Pfad: %s" -#: pg_basebackup.c:339 +#: pg_basebackup.c:340 #, c-format msgid "new directory is not an absolute path in tablespace mapping: %s" msgstr "neues Verzeichnis im Tablespace-Mapping ist kein absoluter Pfad: %s" -#: pg_basebackup.c:378 +#: pg_basebackup.c:379 #, c-format msgid "" "%s takes a base backup of a running PostgreSQL server.\n" @@ -167,17 +186,17 @@ "%s erzeugt eine Basissicherung eines laufenden PostgreSQL-Servers.\n" "\n" -#: pg_basebackup.c:380 pg_receivewal.c:79 pg_recvlogical.c:75 +#: pg_basebackup.c:381 pg_receivewal.c:79 pg_recvlogical.c:75 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: pg_basebackup.c:381 pg_receivewal.c:80 pg_recvlogical.c:76 +#: pg_basebackup.c:382 pg_receivewal.c:80 pg_recvlogical.c:76 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [OPTION]...\n" -#: pg_basebackup.c:382 +#: pg_basebackup.c:383 #, c-format msgid "" "\n" @@ -186,17 +205,17 @@ "\n" "Optionen die die Ausgabe kontrollieren:\n" -#: pg_basebackup.c:383 +#: pg_basebackup.c:384 #, c-format msgid " -D, --pgdata=DIRECTORY receive base backup into directory\n" msgstr " -D, --pgdata=VERZ Basissicherung in dieses Verzeichnis empfangen\n" -#: pg_basebackup.c:384 +#: pg_basebackup.c:385 #, c-format msgid " -F, --format=p|t output format (plain (default), tar)\n" msgstr " -F, --format=p|t Ausgabeformat (plain (Voreinstellung), tar)\n" -#: pg_basebackup.c:385 +#: pg_basebackup.c:386 #, c-format msgid "" " -r, --max-rate=RATE maximum transfer rate to transfer data directory\n" @@ -205,7 +224,7 @@ " -r, --max-rate=RATE maximale Transferrate für Übertragung des Datenver-\n" " zeichnisses (in kB/s, oder Suffix »k« oder »M« abgeben)\n" -#: pg_basebackup.c:387 +#: pg_basebackup.c:388 #, c-format msgid "" " -R, --write-recovery-conf\n" @@ -214,7 +233,7 @@ " -R, --write-recovery-conf\n" " Konfiguration für Replikation schreiben\n" -#: pg_basebackup.c:389 +#: pg_basebackup.c:390 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -223,12 +242,12 @@ " -T, --tablespace-mapping=ALTES_VERZ=NEUES_VERZ\n" " Tablespace in ALTES_VERZ nach NEUES_VERZ verlagern\n" -#: pg_basebackup.c:391 +#: pg_basebackup.c:392 #, c-format msgid " --waldir=WALDIR location for the write-ahead log directory\n" msgstr " --waldir=WALVERZ Verzeichnis für das Write-Ahead-Log\n" -#: pg_basebackup.c:392 +#: pg_basebackup.c:393 #, c-format msgid "" " -X, --wal-method=none|fetch|stream\n" @@ -237,17 +256,17 @@ " -X, --wal-method=none|fetch|stream\n" " benötigte WAL-Dateien mit angegebener Methode einbeziehen\n" -#: pg_basebackup.c:394 +#: pg_basebackup.c:395 #, c-format msgid " -z, --gzip compress tar output\n" msgstr " -z, --gzip Tar-Ausgabe komprimieren\n" -#: pg_basebackup.c:395 +#: pg_basebackup.c:396 #, c-format msgid " -Z, --compress=0-9 compress tar output with given compression level\n" msgstr " -Z, --compress=0-9 Tar-Ausgabe mit angegebenem Niveau komprimieren\n" -#: pg_basebackup.c:396 +#: pg_basebackup.c:397 #, c-format msgid "" "\n" @@ -256,7 +275,7 @@ "\n" "Allgemeine Optionen:\n" -#: pg_basebackup.c:397 +#: pg_basebackup.c:398 #, c-format msgid "" " -c, --checkpoint=fast|spread\n" @@ -265,49 +284,49 @@ " -c, --checkpoint=fast|spread\n" " schnelles oder verteiltes Checkpointing einstellen\n" -#: pg_basebackup.c:399 +#: pg_basebackup.c:400 #, c-format msgid " -C, --create-slot create replication slot\n" msgstr " -C, --create-slot Replikations-Slot erzeugen\n" -#: pg_basebackup.c:400 +#: pg_basebackup.c:401 #, c-format msgid " -l, --label=LABEL set backup label\n" msgstr " -l, --label=LABEL Backup-Label setzen\n" -#: pg_basebackup.c:401 +#: pg_basebackup.c:402 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean nach Fehlern nicht aufräumen\n" -#: pg_basebackup.c:402 +#: pg_basebackup.c:403 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr "" " -N, --no-sync nicht warten, bis Änderungen sicher auf Festplatte\n" " geschrieben sind\n" -#: pg_basebackup.c:403 +#: pg_basebackup.c:404 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress Fortschrittsinformationen zeigen\n" -#: pg_basebackup.c:404 pg_receivewal.c:89 +#: pg_basebackup.c:405 pg_receivewal.c:89 #, c-format msgid " -S, --slot=SLOTNAME replication slot to use\n" msgstr " -S, --slot=SLOTNAME zu verwendender Replikations-Slot\n" -#: pg_basebackup.c:405 pg_receivewal.c:91 pg_recvlogical.c:96 +#: pg_basebackup.c:406 pg_receivewal.c:91 pg_recvlogical.c:96 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose »Verbose«-Modus\n" -#: pg_basebackup.c:406 pg_receivewal.c:92 pg_recvlogical.c:97 +#: pg_basebackup.c:407 pg_receivewal.c:92 pg_recvlogical.c:97 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_basebackup.c:407 +#: pg_basebackup.c:408 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" @@ -316,7 +335,7 @@ " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" " Algorithmus für Manifest-Prüfsummen\n" -#: pg_basebackup.c:409 +#: pg_basebackup.c:410 #, c-format msgid "" " --manifest-force-encode\n" @@ -325,22 +344,22 @@ " --manifest-force-encode\n" " alle Dateinamen im Manifest hex-kodieren\n" -#: pg_basebackup.c:411 +#: pg_basebackup.c:412 #, c-format msgid " --no-estimate-size do not estimate backup size in server side\n" msgstr " --no-estimate-size nicht die Backup-Größe auf dem Server schätzen\n" -#: pg_basebackup.c:412 +#: pg_basebackup.c:413 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr " --no-manifest kein Backup-Manifest erzeugen\n" -#: pg_basebackup.c:413 +#: pg_basebackup.c:414 #, c-format msgid " --no-slot prevent creation of temporary replication slot\n" msgstr " --no-slot keinen temporären Replikations-Slot erzeugen\n" -#: pg_basebackup.c:414 +#: pg_basebackup.c:415 #, c-format msgid "" " --no-verify-checksums\n" @@ -349,12 +368,12 @@ " --no-verify-checksums\n" " Prüfsummen nicht überprüfen\n" -#: pg_basebackup.c:416 pg_receivewal.c:94 pg_recvlogical.c:98 +#: pg_basebackup.c:417 pg_receivewal.c:94 pg_recvlogical.c:98 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_basebackup.c:417 pg_receivewal.c:95 pg_recvlogical.c:99 +#: pg_basebackup.c:418 pg_receivewal.c:95 pg_recvlogical.c:99 #, c-format msgid "" "\n" @@ -363,22 +382,22 @@ "\n" "Verbindungsoptionen:\n" -#: pg_basebackup.c:418 pg_receivewal.c:96 +#: pg_basebackup.c:419 pg_receivewal.c:96 #, c-format msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=VERBDG Verbindungsparameter\n" -#: pg_basebackup.c:419 pg_receivewal.c:97 pg_recvlogical.c:101 +#: pg_basebackup.c:420 pg_receivewal.c:97 pg_recvlogical.c:101 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME Name des Datenbankservers oder Socket-Verzeichnis\n" -#: pg_basebackup.c:420 pg_receivewal.c:98 pg_recvlogical.c:102 +#: pg_basebackup.c:421 pg_receivewal.c:98 pg_recvlogical.c:102 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT Portnummer des Datenbankservers\n" -#: pg_basebackup.c:421 +#: pg_basebackup.c:422 #, c-format msgid "" " -s, --status-interval=INTERVAL\n" @@ -387,22 +406,22 @@ " -s, --status-interval=INTERVALL\n" " Zeit zwischen an Server gesendeten Statuspaketen (in Sekunden)\n" -#: pg_basebackup.c:423 pg_receivewal.c:99 pg_recvlogical.c:103 +#: pg_basebackup.c:424 pg_receivewal.c:99 pg_recvlogical.c:103 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAME Datenbankbenutzername\n" -#: pg_basebackup.c:424 pg_receivewal.c:100 pg_recvlogical.c:104 +#: pg_basebackup.c:425 pg_receivewal.c:100 pg_recvlogical.c:104 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password niemals nach Passwort fragen\n" -#: pg_basebackup.c:425 pg_receivewal.c:101 pg_recvlogical.c:105 +#: pg_basebackup.c:426 pg_receivewal.c:101 pg_recvlogical.c:105 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password nach Passwort fragen (sollte automatisch geschehen)\n" -#: pg_basebackup.c:426 pg_receivewal.c:105 pg_recvlogical.c:106 +#: pg_basebackup.c:427 pg_receivewal.c:105 pg_recvlogical.c:106 #, c-format msgid "" "\n" @@ -411,467 +430,452 @@ "\n" "Berichten Sie Fehler an <%s>.\n" -#: pg_basebackup.c:427 pg_receivewal.c:106 pg_recvlogical.c:107 +#: pg_basebackup.c:428 pg_receivewal.c:106 pg_recvlogical.c:107 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: pg_basebackup.c:470 +#: pg_basebackup.c:471 #, c-format msgid "could not read from ready pipe: %m" msgstr "konnte nicht aus bereiter Pipe lesen: %m" -#: pg_basebackup.c:476 pg_basebackup.c:607 pg_basebackup.c:2115 -#: streamutil.c:450 +#: pg_basebackup.c:477 pg_basebackup.c:608 pg_basebackup.c:2134 +#: streamutil.c:449 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "konnte Write-Ahead-Log-Position »%s« nicht interpretieren" -#: pg_basebackup.c:572 pg_receivewal.c:441 +#: pg_basebackup.c:573 pg_receivewal.c:441 #, c-format msgid "could not finish writing WAL files: %m" msgstr "konnte WAL-Dateien nicht zu Ende schreiben: %m" -#: pg_basebackup.c:619 +#: pg_basebackup.c:620 #, c-format msgid "could not create pipe for background process: %m" msgstr "konnte Pipe für Hintergrundprozess nicht erzeugen: %m" -#: pg_basebackup.c:654 +#: pg_basebackup.c:655 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "temporärer Replikations-Slot »%s« wurde erzeugt" -#: pg_basebackup.c:657 +#: pg_basebackup.c:658 #, c-format msgid "created replication slot \"%s\"" msgstr "Replikations-Slot »%s« wurde erzeugt" -#: pg_basebackup.c:677 pg_basebackup.c:730 pg_basebackup.c:1606 +#: pg_basebackup.c:678 pg_basebackup.c:731 pg_basebackup.c:1621 #, c-format msgid "could not create directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht erzeugen: %m" -#: pg_basebackup.c:695 +#: pg_basebackup.c:696 #, c-format msgid "could not create background process: %m" msgstr "konnte Hintergrundprozess nicht erzeugen: %m" -#: pg_basebackup.c:707 +#: pg_basebackup.c:708 #, c-format msgid "could not create background thread: %m" msgstr "konnte Hintergrund-Thread nicht erzeugen: %m" -#: pg_basebackup.c:751 +#: pg_basebackup.c:752 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "Verzeichnis »%s« existiert aber ist nicht leer" -#: pg_basebackup.c:758 +#: pg_basebackup.c:759 #, c-format msgid "could not access directory \"%s\": %m" msgstr "konnte nicht auf Verzeichnis »%s« zugreifen: %m" -#: pg_basebackup.c:819 +#: pg_basebackup.c:824 #, c-format msgid "%*s/%s kB (100%%), %d/%d tablespace %*s" msgid_plural "%*s/%s kB (100%%), %d/%d tablespaces %*s" msgstr[0] "%*s/%s kB (100%%), %d/%d Tablespace %*s" msgstr[1] "%*s/%s kB (100%%), %d/%d Tablespaces %*s" -#: pg_basebackup.c:831 +#: pg_basebackup.c:836 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces (%s%-*.*s)" msgstr[0] "%*s/%s kB (%d%%), %d/%d Tablespace (%s%-*.*s)" msgstr[1] "%*s/%s kB (%d%%), %d/%d Tablespaces (%s%-*.*s)" -#: pg_basebackup.c:847 +#: pg_basebackup.c:852 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces" msgstr[0] "%*s/%s kB (%d%%), %d/%d Tablespace" msgstr[1] "%*s/%s kB (%d%%), %d/%d Tablespaces" -#: pg_basebackup.c:871 +#: pg_basebackup.c:877 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "Transferrate »%s« ist kein gültiger Wert" -#: pg_basebackup.c:876 +#: pg_basebackup.c:882 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "ungültige Transferrate »%s«: %m" -#: pg_basebackup.c:885 +#: pg_basebackup.c:891 #, c-format msgid "transfer rate must be greater than zero" msgstr "Transferrate muss größer als null sein" -#: pg_basebackup.c:917 +#: pg_basebackup.c:923 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "ungültige Einheit für --max-rate: »%s«" -#: pg_basebackup.c:924 +#: pg_basebackup.c:930 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "Transferrate »%s« überschreitet Bereich für ganze Zahlen" -#: pg_basebackup.c:934 +#: pg_basebackup.c:940 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "Transferrate »%s« ist außerhalb des gültigen Bereichs" -#: pg_basebackup.c:955 +#: pg_basebackup.c:961 #, c-format msgid "could not get COPY data stream: %s" msgstr "konnte COPY-Datenstrom nicht empfangen: %s" -#: pg_basebackup.c:975 pg_recvlogical.c:435 pg_recvlogical.c:607 -#: receivelog.c:965 +#: pg_basebackup.c:981 pg_recvlogical.c:434 pg_recvlogical.c:606 +#: receivelog.c:979 #, c-format msgid "could not read COPY data: %s" msgstr "konnte COPY-Daten nicht lesen: %s" -#: pg_basebackup.c:997 +#: pg_basebackup.c:1007 #, c-format msgid "could not write to compressed file \"%s\": %s" msgstr "konnte nicht in komprimierte Datei »%s« schreiben: %s" -#: pg_basebackup.c:1007 pg_basebackup.c:1696 pg_basebackup.c:1748 -#, c-format -msgid "could not write to file \"%s\": %m" -msgstr "konnte nicht in Datei »%s« schreiben: %m" - -#: pg_basebackup.c:1057 +#: pg_basebackup.c:1071 #, c-format msgid "could not duplicate stdout: %m" msgstr "konnte Standardausgabe nicht duplizieren: %m" -#: pg_basebackup.c:1064 +#: pg_basebackup.c:1078 #, c-format msgid "could not open output file: %m" msgstr "konnte Ausgabedatei nicht öffnen: %m" -#: pg_basebackup.c:1071 pg_basebackup.c:1092 pg_basebackup.c:1121 +#: pg_basebackup.c:1085 pg_basebackup.c:1106 pg_basebackup.c:1135 #, c-format msgid "could not set compression level %d: %s" msgstr "konnte Komprimierungsniveau %d nicht setzen: %s" -#: pg_basebackup.c:1141 +#: pg_basebackup.c:1155 #, c-format msgid "could not create compressed file \"%s\": %s" msgstr "konnte komprimierte Datei »%s« nicht erzeugen: %s" -#: pg_basebackup.c:1152 pg_basebackup.c:1657 pg_basebackup.c:1729 -#, c-format -msgid "could not create file \"%s\": %m" -msgstr "konnte Datei »%s« nicht erstellen: %m" - -#: pg_basebackup.c:1234 -#, c-format -msgid "out of memory" -msgstr "Speicher aufgebraucht" - -#: pg_basebackup.c:1253 +#: pg_basebackup.c:1268 #, c-format -msgid "could not close compressed file \"%s\": %s" -msgstr "konnte komprimierte Datei »%s« nicht schließen: %s" +msgid "could not close compressed file \"%s\": %m" +msgstr "konnte komprimierte Datei »%s« nicht schließen: %m" -#: pg_basebackup.c:1265 pg_recvlogical.c:632 +#: pg_basebackup.c:1280 pg_recvlogical.c:631 #, c-format msgid "could not close file \"%s\": %m" msgstr "konnte Datei »%s« nicht schließen: %m" -#: pg_basebackup.c:1527 +#: pg_basebackup.c:1542 #, c-format msgid "COPY stream ended before last file was finished" msgstr "COPY-Strom endete vor dem Ende der letzten Datei" -#: pg_basebackup.c:1556 +#: pg_basebackup.c:1571 #, c-format msgid "invalid tar block header size: %zu" msgstr "ungültige Tar-Block-Kopf-Größe: %zu" -#: pg_basebackup.c:1613 +#: pg_basebackup.c:1628 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "konnte Zugriffsrechte für Verzeichnis »%s« nicht setzen: %m" -#: pg_basebackup.c:1637 +#: pg_basebackup.c:1652 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "konnte symbolische Verknüpfung von »%s« nach »%s« nicht erzeugen: %m" -#: pg_basebackup.c:1644 +#: pg_basebackup.c:1659 #, c-format msgid "unrecognized link indicator \"%c\"" msgstr "unbekannter Verknüpfungsindikator »%c«" -#: pg_basebackup.c:1663 +#: pg_basebackup.c:1678 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "konnte Zugriffsrechte von Datei »%s« nicht setzen: %m" -#: pg_basebackup.c:1809 +#: pg_basebackup.c:1832 #, c-format msgid "incompatible server version %s" msgstr "inkompatible Serverversion %s" -#: pg_basebackup.c:1824 +#: pg_basebackup.c:1847 #, c-format msgid "HINT: use -X none or -X fetch to disable log streaming" msgstr "TIPP: -X none oder -X fetch verwenden um Log-Streaming abzuschalten" -#: pg_basebackup.c:1860 +#: pg_basebackup.c:1883 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "Basissicherung eingeleitet, warte auf Abschluss des Checkpoints" -#: pg_basebackup.c:1886 pg_recvlogical.c:262 receivelog.c:481 receivelog.c:530 -#: receivelog.c:569 streamutil.c:297 streamutil.c:370 streamutil.c:422 -#: streamutil.c:533 streamutil.c:578 +#: pg_basebackup.c:1909 pg_recvlogical.c:261 receivelog.c:495 receivelog.c:544 +#: receivelog.c:583 streamutil.c:296 streamutil.c:369 streamutil.c:421 +#: streamutil.c:532 streamutil.c:577 #, c-format msgid "could not send replication command \"%s\": %s" msgstr "konnte Replikationsbefehl »%s« nicht senden: %s" -#: pg_basebackup.c:1897 +#: pg_basebackup.c:1920 #, c-format msgid "could not initiate base backup: %s" msgstr "konnte Basissicherung nicht starten: %s" -#: pg_basebackup.c:1903 +#: pg_basebackup.c:1926 #, c-format msgid "server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields" msgstr "unerwartete Antwort auf Befehl BASE_BACKUP: %d Zeilen und %d Felder erhalten, %d Zeilen und %d Felder erwartet" -#: pg_basebackup.c:1911 +#: pg_basebackup.c:1934 #, c-format msgid "checkpoint completed" msgstr "Checkpoint abgeschlossen" -#: pg_basebackup.c:1926 +#: pg_basebackup.c:1949 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "Write-Ahead-Log-Startpunkt: %s auf Zeitleiste %u" -#: pg_basebackup.c:1935 +#: pg_basebackup.c:1958 #, c-format msgid "could not get backup header: %s" msgstr "konnte Kopf der Sicherung nicht empfangen: %s" -#: pg_basebackup.c:1941 +#: pg_basebackup.c:1964 #, c-format msgid "no data returned from server" msgstr "keine Daten vom Server zurückgegeben" -#: pg_basebackup.c:1973 +#: pg_basebackup.c:1996 #, c-format msgid "can only write single tablespace to stdout, database has %d" msgstr "kann nur einen einzelnen Tablespace auf die Standardausgabe schreiben, Datenbank hat %d" -#: pg_basebackup.c:1985 +#: pg_basebackup.c:2008 #, c-format msgid "starting background WAL receiver" msgstr "Hintergrund-WAL-Receiver wird gestartet" -#: pg_basebackup.c:2028 +#: pg_basebackup.c:2047 #, c-format msgid "could not get write-ahead log end position from server: %s" msgstr "konnte Write-Ahead-Log-Endposition nicht vom Server empfangen: %s" -#: pg_basebackup.c:2034 +#: pg_basebackup.c:2053 #, c-format msgid "no write-ahead log end position returned from server" msgstr "keine Write-Ahead-Log-Endposition vom Server zurückgegeben" -#: pg_basebackup.c:2039 +#: pg_basebackup.c:2058 #, c-format msgid "write-ahead log end point: %s" msgstr "Write-Ahead-Log-Endposition: %s" -#: pg_basebackup.c:2050 +#: pg_basebackup.c:2069 #, c-format msgid "checksum error occurred" msgstr "ein Prüfsummenfehler ist aufgetreten" -#: pg_basebackup.c:2055 +#: pg_basebackup.c:2074 #, c-format msgid "final receive failed: %s" msgstr "letztes Empfangen fehlgeschlagen: %s" -#: pg_basebackup.c:2079 +#: pg_basebackup.c:2098 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "warte bis Hintergrundprozess Streaming beendet hat ..." -#: pg_basebackup.c:2084 +#: pg_basebackup.c:2103 #, c-format msgid "could not send command to background pipe: %m" msgstr "konnte Befehl nicht an Hintergrund-Pipe senden: %m" -#: pg_basebackup.c:2092 +#: pg_basebackup.c:2111 #, c-format msgid "could not wait for child process: %m" msgstr "konnte nicht auf Kindprozess warten: %m" -#: pg_basebackup.c:2097 +#: pg_basebackup.c:2116 #, c-format msgid "child %d died, expected %d" msgstr "Kindprozess %d endete, aber %d wurde erwartet" -#: pg_basebackup.c:2102 streamutil.c:92 +#: pg_basebackup.c:2121 streamutil.c:92 streamutil.c:202 #, c-format msgid "%s" msgstr "%s" -#: pg_basebackup.c:2127 +#: pg_basebackup.c:2146 #, c-format msgid "could not wait for child thread: %m" msgstr "konnte nicht auf Kind-Thread warten: %m" -#: pg_basebackup.c:2133 +#: pg_basebackup.c:2152 #, c-format msgid "could not get child thread exit status: %m" msgstr "konnte Statuscode des Kind-Threads nicht ermitteln: %m" -#: pg_basebackup.c:2138 +#: pg_basebackup.c:2157 #, c-format msgid "child thread exited with error %u" msgstr "Kind-Thread hat mit Fehler %u beendet" -#: pg_basebackup.c:2166 +#: pg_basebackup.c:2185 #, c-format msgid "syncing data to disk ..." msgstr "synchronisiere Daten auf Festplatte ..." -#: pg_basebackup.c:2191 +#: pg_basebackup.c:2210 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "umbenennen von backup_manifest.tmp nach backup_manifest" -#: pg_basebackup.c:2202 +#: pg_basebackup.c:2221 #, c-format msgid "base backup completed" msgstr "Basissicherung abgeschlossen" -#: pg_basebackup.c:2287 +#: pg_basebackup.c:2306 #, c-format msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" msgstr "ungültiges Ausgabeformat »%s«, muss »plain« oder »tar« sein" -#: pg_basebackup.c:2331 +#: pg_basebackup.c:2350 #, c-format msgid "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" msgstr "ungültige Option »%s« für --wal-method, muss »fetch«, »stream« oder »none« sein" -#: pg_basebackup.c:2359 pg_receivewal.c:580 +#: pg_basebackup.c:2378 pg_receivewal.c:580 #, c-format msgid "invalid compression level \"%s\"" msgstr "ungültiges Komprimierungsniveau »%s«" -#: pg_basebackup.c:2370 +#: pg_basebackup.c:2389 #, c-format msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" msgstr "ungültiges Checkpoint-Argument »%s«, muss »fast« oder »spread« sein" -#: pg_basebackup.c:2397 pg_receivewal.c:555 pg_recvlogical.c:820 +#: pg_basebackup.c:2416 pg_receivewal.c:555 pg_recvlogical.c:819 #, c-format msgid "invalid status interval \"%s\"" msgstr "ungültiges Statusintervall »%s«" -#: pg_basebackup.c:2427 pg_basebackup.c:2440 pg_basebackup.c:2451 -#: pg_basebackup.c:2462 pg_basebackup.c:2470 pg_basebackup.c:2478 -#: pg_basebackup.c:2488 pg_basebackup.c:2501 pg_basebackup.c:2509 -#: pg_basebackup.c:2520 pg_basebackup.c:2530 pg_basebackup.c:2547 -#: pg_basebackup.c:2555 pg_basebackup.c:2563 pg_receivewal.c:605 +#: pg_basebackup.c:2446 pg_basebackup.c:2459 pg_basebackup.c:2470 +#: pg_basebackup.c:2481 pg_basebackup.c:2489 pg_basebackup.c:2497 +#: pg_basebackup.c:2507 pg_basebackup.c:2520 pg_basebackup.c:2528 +#: pg_basebackup.c:2539 pg_basebackup.c:2549 pg_basebackup.c:2566 +#: pg_basebackup.c:2574 pg_basebackup.c:2582 pg_receivewal.c:605 #: pg_receivewal.c:618 pg_receivewal.c:626 pg_receivewal.c:636 -#: pg_receivewal.c:644 pg_receivewal.c:655 pg_recvlogical.c:846 -#: pg_recvlogical.c:859 pg_recvlogical.c:870 pg_recvlogical.c:878 -#: pg_recvlogical.c:886 pg_recvlogical.c:894 pg_recvlogical.c:902 -#: pg_recvlogical.c:910 pg_recvlogical.c:918 +#: pg_receivewal.c:644 pg_receivewal.c:655 pg_recvlogical.c:845 +#: pg_recvlogical.c:858 pg_recvlogical.c:869 pg_recvlogical.c:877 +#: pg_recvlogical.c:885 pg_recvlogical.c:893 pg_recvlogical.c:901 +#: pg_recvlogical.c:909 pg_recvlogical.c:917 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Versuchen Sie »%s --help« für weitere Informationen.\n" -#: pg_basebackup.c:2438 pg_receivewal.c:616 pg_recvlogical.c:857 +#: pg_basebackup.c:2457 pg_receivewal.c:616 pg_recvlogical.c:856 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: pg_basebackup.c:2450 pg_receivewal.c:654 +#: pg_basebackup.c:2469 pg_receivewal.c:654 #, c-format msgid "no target directory specified" msgstr "kein Zielverzeichnis angegeben" -#: pg_basebackup.c:2461 +#: pg_basebackup.c:2480 #, c-format msgid "only tar mode backups can be compressed" msgstr "nur Sicherungen im Tar-Modus können komprimiert werden" -#: pg_basebackup.c:2469 +#: pg_basebackup.c:2488 #, c-format msgid "cannot stream write-ahead logs in tar mode to stdout" msgstr "im Tar-Modus können Write-Ahead-Logs nicht auf Standardausgabe geschrieben werden" -#: pg_basebackup.c:2477 +#: pg_basebackup.c:2496 #, c-format msgid "replication slots can only be used with WAL streaming" msgstr "Replikations-Slots können nur mit WAL-Streaming verwendet werden" -#: pg_basebackup.c:2487 +#: pg_basebackup.c:2506 #, c-format msgid "--no-slot cannot be used with slot name" msgstr "--no-slot kann nicht zusammen mit einem Slot-Namen verwendet werden" #. translator: second %s is an option name -#: pg_basebackup.c:2499 pg_receivewal.c:634 +#: pg_basebackup.c:2518 pg_receivewal.c:634 #, c-format msgid "%s needs a slot to be specified using --slot" msgstr "für %s muss ein Slot mit --slot angegeben werden" -#: pg_basebackup.c:2508 +#: pg_basebackup.c:2527 #, c-format msgid "--create-slot and --no-slot are incompatible options" msgstr "--create-slot und --no-slot sind inkompatible Optionen" -#: pg_basebackup.c:2519 +#: pg_basebackup.c:2538 #, c-format msgid "WAL directory location can only be specified in plain mode" msgstr "WAL-Verzeichnis kann nur im »plain«-Modus angegeben werden" -#: pg_basebackup.c:2529 +#: pg_basebackup.c:2548 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WAL-Verzeichnis muss absoluten Pfad haben" -#: pg_basebackup.c:2539 pg_receivewal.c:663 +#: pg_basebackup.c:2558 pg_receivewal.c:663 #, c-format msgid "this build does not support compression" msgstr "diese Installation unterstützt keine Komprimierung" -#: pg_basebackup.c:2546 +#: pg_basebackup.c:2565 #, c-format msgid "--progress and --no-estimate-size are incompatible options" msgstr "--progress und --no-estimate-size sind inkompatible Optionen" -#: pg_basebackup.c:2554 +#: pg_basebackup.c:2573 #, c-format msgid "--no-manifest and --manifest-checksums are incompatible options" msgstr "--no-manifest und --manifest-checksums sind inkompatible Optionen" -#: pg_basebackup.c:2562 +#: pg_basebackup.c:2581 #, c-format msgid "--no-manifest and --manifest-force-encode are incompatible options" msgstr "--no-manifest und --manifest-force-encode sind inkompatible Optionen" -#: pg_basebackup.c:2621 +#: pg_basebackup.c:2640 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "konnte symbolische Verknüpfung »%s« nicht erstellen: %m" -#: pg_basebackup.c:2625 +#: pg_basebackup.c:2644 #, c-format msgid "symlinks are not supported on this platform" msgstr "symbolische Verknüpfungen werden auf dieser Plattform nicht unterstützt" @@ -1019,12 +1023,12 @@ msgid "starting log streaming at %X/%X (timeline %u)" msgstr "starte Log-Streaming bei %X/%X (Zeitleiste %u)" -#: pg_receivewal.c:537 pg_recvlogical.c:762 +#: pg_receivewal.c:537 pg_recvlogical.c:761 #, c-format msgid "invalid port number \"%s\"" msgstr "ungültige Portnummer »%s«" -#: pg_receivewal.c:565 pg_recvlogical.c:788 +#: pg_receivewal.c:565 pg_recvlogical.c:787 #, c-format msgid "could not parse end position \"%s\"" msgstr "konnte Endposition »%s« nicht parsen" @@ -1039,28 +1043,28 @@ msgid "cannot use --synchronous together with --no-sync" msgstr "--synchronous kann nicht zusammen mit --no-sync verwendet werden" -#: pg_receivewal.c:719 +#: pg_receivewal.c:723 #, c-format msgid "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "Replikationsverbindung, die Slot »%s« verwendet, ist unerwarteterweise datenbankspezifisch" -#: pg_receivewal.c:730 pg_recvlogical.c:966 +#: pg_receivewal.c:734 pg_recvlogical.c:968 #, c-format msgid "dropping replication slot \"%s\"" msgstr "lösche Replikations-Slot »%s«" -#: pg_receivewal.c:741 pg_recvlogical.c:976 +#: pg_receivewal.c:745 pg_recvlogical.c:978 #, c-format msgid "creating replication slot \"%s\"" msgstr "erzeuge Replikations-Slot »%s«" -#: pg_receivewal.c:767 pg_recvlogical.c:1001 +#: pg_receivewal.c:771 pg_recvlogical.c:1003 #, c-format msgid "disconnected" msgstr "Verbindung beendet" #. translator: check source for value for %d -#: pg_receivewal.c:773 pg_recvlogical.c:1007 +#: pg_receivewal.c:777 pg_recvlogical.c:1009 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "Verbindung beendet; erneuter Versuch in %d Sekunden" @@ -1138,117 +1142,118 @@ msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)" msgstr "bestätige Schreiben bis %X/%X, Flush bis %X/%X (Slot %s)" -#: pg_recvlogical.c:157 receivelog.c:343 +#: pg_recvlogical.c:157 receivelog.c:357 #, c-format msgid "could not send feedback packet: %s" msgstr "konnte Rückmeldungspaket nicht senden: %s" -#: pg_recvlogical.c:230 +#: pg_recvlogical.c:228 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "starte Log-Streaming bei %X/%X (Slot %s)" -#: pg_recvlogical.c:271 +#: pg_recvlogical.c:270 #, c-format msgid "streaming initiated" msgstr "Streaming eingeleitet" -#: pg_recvlogical.c:335 +#: pg_recvlogical.c:334 #, c-format msgid "could not open log file \"%s\": %m" msgstr "konnte Logdatei »%s« nicht öffnen: %m" -#: pg_recvlogical.c:361 receivelog.c:873 +#: pg_recvlogical.c:360 receivelog.c:887 #, c-format msgid "invalid socket: %s" msgstr "ungültiges Socket: %s" -#: pg_recvlogical.c:414 receivelog.c:901 +#: pg_recvlogical.c:413 receivelog.c:915 #, c-format msgid "select() failed: %m" msgstr "select() fehlgeschlagen: %m" -#: pg_recvlogical.c:421 receivelog.c:951 +#: pg_recvlogical.c:420 receivelog.c:965 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "konnte keine Daten vom WAL-Stream empfangen: %s" -#: pg_recvlogical.c:463 pg_recvlogical.c:514 receivelog.c:995 receivelog.c:1061 +#: pg_recvlogical.c:462 pg_recvlogical.c:513 receivelog.c:1009 +#: receivelog.c:1075 #, c-format msgid "streaming header too small: %d" msgstr "Streaming-Header zu klein: %d" -#: pg_recvlogical.c:498 receivelog.c:833 +#: pg_recvlogical.c:497 receivelog.c:847 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "unbekannter Streaming-Header: »%c«" -#: pg_recvlogical.c:552 pg_recvlogical.c:564 +#: pg_recvlogical.c:551 pg_recvlogical.c:563 #, c-format msgid "could not write %u bytes to log file \"%s\": %m" msgstr "konnte %u Bytes nicht in Logdatei »%s« schreiben: %m" -#: pg_recvlogical.c:618 receivelog.c:629 receivelog.c:666 +#: pg_recvlogical.c:617 receivelog.c:643 receivelog.c:680 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "unerwarteter Abbruch des Replikations-Streams: %s" -#: pg_recvlogical.c:742 +#: pg_recvlogical.c:741 #, c-format msgid "invalid fsync interval \"%s\"" msgstr "ungültiges Fsync-Intervall »%s«" -#: pg_recvlogical.c:780 +#: pg_recvlogical.c:779 #, c-format msgid "could not parse start position \"%s\"" msgstr "konnte Startposition »%s« nicht parsen" -#: pg_recvlogical.c:869 +#: pg_recvlogical.c:868 #, c-format msgid "no slot specified" msgstr "kein Slot angegeben" -#: pg_recvlogical.c:877 +#: pg_recvlogical.c:876 #, c-format msgid "no target file specified" msgstr "keine Zieldatei angegeben" -#: pg_recvlogical.c:885 +#: pg_recvlogical.c:884 #, c-format msgid "no database specified" msgstr "keine Datenbank angegeben" -#: pg_recvlogical.c:893 +#: pg_recvlogical.c:892 #, c-format msgid "at least one action needs to be specified" msgstr "mindestens eine Aktion muss angegeben werden" -#: pg_recvlogical.c:901 +#: pg_recvlogical.c:900 #, c-format msgid "cannot use --create-slot or --start together with --drop-slot" msgstr "--create-slot oder --start kann nicht zusammen mit --drop-slot verwendet werden" -#: pg_recvlogical.c:909 +#: pg_recvlogical.c:908 #, c-format msgid "cannot use --create-slot or --drop-slot together with --startpos" msgstr "--create-slot oder --drop-slot kann nicht zusammen mit --startpos verwendet werden" -#: pg_recvlogical.c:917 +#: pg_recvlogical.c:916 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos kann nur zusammen mit --start angegeben werden" -#: pg_recvlogical.c:948 +#: pg_recvlogical.c:950 #, c-format msgid "could not establish database-specific replication connection" msgstr "konnte keine datenbankspezifische Replikationsverbindung herstellen" -#: pg_recvlogical.c:1047 +#: pg_recvlogical.c:1049 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "Endposition %X/%X durch Keepalive erreicht" -#: pg_recvlogical.c:1050 +#: pg_recvlogical.c:1052 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "Endposition %X/%X erreicht durch WAL-Eintrag bei %X/%X" @@ -1258,139 +1263,144 @@ msgid "could not create archive status file \"%s\": %s" msgstr "konnte Archivstatusdatei »%s« nicht erstellen: %s" -#: receivelog.c:116 +#: receivelog.c:76 +#, c-format +msgid "could not close archive status file \"%s\": %s" +msgstr "konnte Archivstatusdatei »%s« nicht schließen: %s" + +#: receivelog.c:124 #, c-format msgid "could not get size of write-ahead log file \"%s\": %s" msgstr "konnte Größe der Write-Ahead-Log-Datei »%s« nicht ermittlen: %s" -#: receivelog.c:126 +#: receivelog.c:135 #, c-format msgid "could not open existing write-ahead log file \"%s\": %s" msgstr "konnte bestehende Write-Ahead-Log-Datei »%s« nicht öffnen: %s" -#: receivelog.c:134 +#: receivelog.c:144 #, c-format msgid "could not fsync existing write-ahead log file \"%s\": %s" msgstr "konnte bestehende Write-Ahead-Log-Datei »%s« nicht fsyncen: %s" -#: receivelog.c:148 +#: receivelog.c:159 #, c-format msgid "write-ahead log file \"%s\" has %d byte, should be 0 or %d" msgid_plural "write-ahead log file \"%s\" has %d bytes, should be 0 or %d" msgstr[0] "Write-Ahead-Log-Datei »%s« hat %d Byte, sollte 0 oder %d sein" msgstr[1] "Write-Ahead-Log-Datei »%s« hat %d Bytes, sollte 0 oder %d sein" -#: receivelog.c:163 +#: receivelog.c:175 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "konnte Write-Ahead-Log-Datei »%s« nicht öffnen: %s" -#: receivelog.c:189 +#: receivelog.c:203 #, c-format msgid "could not determine seek position in file \"%s\": %s" msgstr "konnte Positionszeiger in Datei »%s« nicht ermitteln: %s" -#: receivelog.c:203 +#: receivelog.c:217 #, c-format msgid "not renaming \"%s%s\", segment is not complete" msgstr "»%s%s« wird nicht umbenannt, Segment ist noch nicht vollständig" -#: receivelog.c:215 receivelog.c:300 receivelog.c:675 +#: receivelog.c:229 receivelog.c:314 receivelog.c:689 #, c-format msgid "could not close file \"%s\": %s" msgstr "konnte Datei »%s« nicht schließen: %s" -#: receivelog.c:272 +#: receivelog.c:286 #, c-format msgid "server reported unexpected history file name for timeline %u: %s" msgstr "Server berichtete unerwarteten History-Dateinamen für Zeitleiste %u: %s" -#: receivelog.c:280 +#: receivelog.c:294 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "konnte Zeitleisten-History-Datei »%s« nicht erzeugen: %s" -#: receivelog.c:287 +#: receivelog.c:301 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "konnte Zeitleisten-History-Datei »%s« nicht schreiben: %s" -#: receivelog.c:377 +#: receivelog.c:391 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions older than %s" msgstr "inkompatible Serverversion %s; Client unterstützt Streaming nicht mit Serverversionen älter als %s" -#: receivelog.c:386 +#: receivelog.c:400 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions newer than %s" msgstr "inkompatible Serverversion %s; Client unterstützt Streaming nicht mit Serverversionen neuer als %s" -#: receivelog.c:488 streamutil.c:430 streamutil.c:467 +#: receivelog.c:502 streamutil.c:429 streamutil.c:466 #, c-format msgid "could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "Konnte System nicht identifizieren: %d Zeilen und %d Felder erhalten, %d Zeilen und %d oder mehr Felder erwartet" -#: receivelog.c:495 +#: receivelog.c:509 #, c-format msgid "system identifier does not match between base backup and streaming connection" msgstr "Systemidentifikator stimmt nicht zwischen Basissicherung und Streaming-Verbindung überein" -#: receivelog.c:501 +#: receivelog.c:515 #, c-format msgid "starting timeline %u is not present in the server" msgstr "Startzeitleiste %u ist auf dem Server nicht vorhanden" -#: receivelog.c:542 +#: receivelog.c:556 #, c-format msgid "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, expected %d rows and %d fields" msgstr "unerwartete Antwort auf Befehl TIMELINE_HISTORY: %d Zeilen und %d Felder erhalten, %d Zeilen und %d Felder erwartet" -#: receivelog.c:613 +#: receivelog.c:627 #, c-format msgid "server reported unexpected next timeline %u, following timeline %u" msgstr "Server berichtete unerwartete nächste Zeitleiste %u, folgend auf Zeitleiste %u" -#: receivelog.c:619 +#: receivelog.c:633 #, c-format msgid "server stopped streaming timeline %u at %X/%X, but reported next timeline %u to begin at %X/%X" msgstr "Server beendete Streaming von Zeitleiste %u bei %X/%X, aber gab an, dass nächste Zeitleiste %u bei %X/%X beginnt" -#: receivelog.c:659 +#: receivelog.c:673 #, c-format msgid "replication stream was terminated before stop point" msgstr "Replikationsstrom wurde vor Stopppunkt abgebrochen" -#: receivelog.c:705 +#: receivelog.c:719 #, c-format msgid "unexpected result set after end-of-timeline: got %d rows and %d fields, expected %d rows and %d fields" msgstr "unerwartete Ergebnismenge nach Ende der Zeitleiste: %d Zeilen und %d Felder erhalten, %d Zeilen und %d Felder erwartet" -#: receivelog.c:714 +#: receivelog.c:728 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "konnte Startpunkt der nächsten Zeitleiste (»%s«) nicht interpretieren" -#: receivelog.c:763 receivelog.c:1015 +#: receivelog.c:777 receivelog.c:1029 walmethods.c:991 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "konnte Datei »%s« nicht fsyncen: %s" -#: receivelog.c:1078 +#: receivelog.c:1092 #, c-format msgid "received write-ahead log record for offset %u with no file open" msgstr "Write-Ahead-Log-Eintrag für Offset %u erhalten ohne offene Datei" -#: receivelog.c:1088 +#: receivelog.c:1102 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "WAL-Daten-Offset %08x erhalten, %08x erwartet" -#: receivelog.c:1122 +#: receivelog.c:1136 #, c-format msgid "could not write %u bytes to WAL file \"%s\": %s" msgstr "konnte %u Bytes nicht in WAL-Datei »%s« schreiben: %s" -#: receivelog.c:1147 receivelog.c:1187 receivelog.c:1218 +#: receivelog.c:1161 receivelog.c:1201 receivelog.c:1232 #, c-format msgid "could not send copy-end packet: %s" msgstr "konnte COPY-Ende-Paket nicht senden: %s" @@ -1404,91 +1414,86 @@ msgid "could not connect to server" msgstr "konnte nicht mit Server verbinden" -#: streamutil.c:202 -#, c-format -msgid "could not connect to server: %s" -msgstr "konnte nicht mit Server verbinden: %s" - -#: streamutil.c:231 +#: streamutil.c:230 #, c-format msgid "could not clear search_path: %s" msgstr "konnte search_path nicht auf leer setzen: %s" -#: streamutil.c:247 +#: streamutil.c:246 #, c-format msgid "could not determine server setting for integer_datetimes" msgstr "konnte Servereinstellung für integer_datetimes nicht ermitteln" -#: streamutil.c:254 +#: streamutil.c:253 #, c-format msgid "integer_datetimes compile flag does not match server" msgstr "Kompilieroption »integer_datetimes« stimmt nicht mit Server überein" -#: streamutil.c:305 +#: streamutil.c:304 #, c-format msgid "could not fetch WAL segment size: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "konnte WAL-Segmentgröße nicht ermitteln: %d Zeilen und %d Felder erhalten, %d Zeilen und %d oder mehr Felder erwartet" -#: streamutil.c:315 +#: streamutil.c:314 #, c-format msgid "WAL segment size could not be parsed" msgstr "WAL-Segmentgröße konnte nicht interpretiert werden" -#: streamutil.c:333 +#: streamutil.c:332 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d bytes" msgstr[0] "WAL-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein, aber der Server gab einen Wert von %d Byte an" msgstr[1] "WAL-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein, aber der Server gab einen Wert von %d Bytes an" -#: streamutil.c:378 +#: streamutil.c:377 #, c-format msgid "could not fetch group access flag: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "konnte Gruppenzugriffseinstellung nicht ermitteln: %d Zeilen und %d Felder erhalten, %d Zeilen und %d oder mehr Felder erwartet" -#: streamutil.c:387 +#: streamutil.c:386 #, c-format msgid "group access flag could not be parsed: %s" msgstr "Gruppenzugriffseinstellung konnte nicht interpretiert werden: %s" -#: streamutil.c:544 +#: streamutil.c:543 #, c-format msgid "could not create replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "konnte Replikations-Slot »%s« nicht erzeugen: %d Zeilen und %d Felder erhalten, %d Zeilen und %d Felder erwartet" -#: streamutil.c:588 +#: streamutil.c:587 #, c-format msgid "could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "konnte Replikations-Slot »%s« nicht löschen: %d Zeilen und %d Felder erhalten, %d Zeilen und %d Felder erwartet" -#: walmethods.c:438 walmethods.c:927 +#: walmethods.c:521 walmethods.c:1054 msgid "could not compress data" msgstr "konnte Daten nicht komprimieren" -#: walmethods.c:470 +#: walmethods.c:550 msgid "could not reset compression stream" msgstr "konnte Komprimierungsstrom nicht zurücksetzen" -#: walmethods.c:568 +#: walmethods.c:670 msgid "could not initialize compression library" msgstr "konnte Komprimierungsbibliothek nicht initialisieren" -#: walmethods.c:580 +#: walmethods.c:681 msgid "implementation error: tar files can't have more than one open file" msgstr "Implementierungsfehler: Tar-Dateien können nicht mehr als eine offene Datei haben" -#: walmethods.c:594 +#: walmethods.c:695 msgid "could not create tar header" msgstr "konnte Tar-Dateikopf nicht erzeugen" -#: walmethods.c:608 walmethods.c:648 walmethods.c:843 walmethods.c:854 +#: walmethods.c:711 walmethods.c:749 walmethods.c:963 walmethods.c:974 msgid "could not change compression parameters" msgstr "konnte Komprimierungsparameter nicht ändern" -#: walmethods.c:730 +#: walmethods.c:848 msgid "unlink not supported with compression" msgstr "Unlink wird bei Komprimierung nicht unterstützt" -#: walmethods.c:952 +#: walmethods.c:1078 msgid "could not close compression stream" msgstr "konnte Komprimierungsstrom nicht schließen" diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/po/fr.po postgresql-13-13.7/src/bin/pg_basebackup/po/fr.po --- postgresql-13-13.4/src/bin/pg_basebackup/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 12\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-05-10 20:45+0000\n" -"PO-Revision-Date: 2020-05-11 09:23+0200\n" +"POT-Creation-Date: 2021-12-30 05:00+0000\n" +"PO-Revision-Date: 2021-12-30 17:10+0100\n" "Last-Translator: Christophe Courtois \n" "Language-Team: French \n" "Language: fr\n" @@ -16,7 +16,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0.1\n" #: ../../../src/common/logging.c:236 #, c-format @@ -45,7 +45,7 @@ msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" #: ../../common/file_utils.c:79 ../../common/file_utils.c:181 -#: pg_receivewal.c:266 pg_recvlogical.c:340 +#: pg_receivewal.c:266 pg_recvlogical.c:339 #, c-format msgid "could not stat file \"%s\": %m" msgstr "n'a pas pu tester le fichier « %s » : %m" @@ -61,7 +61,7 @@ msgstr "n'a pas pu lire le répertoire « %s » : %m" #: ../../common/file_utils.c:224 ../../common/file_utils.c:283 -#: ../../common/file_utils.c:357 +#: ../../common/file_utils.c:357 ../../fe_utils/recovery_gen.c:134 #, c-format msgid "could not open file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier « %s » : %m" @@ -77,106 +77,126 @@ msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" -#: pg_basebackup.c:223 +#: ../../fe_utils/recovery_gen.c:35 ../../fe_utils/recovery_gen.c:49 +#: ../../fe_utils/recovery_gen.c:77 ../../fe_utils/recovery_gen.c:100 +#: ../../fe_utils/recovery_gen.c:171 pg_basebackup.c:1248 +#, c-format +msgid "out of memory" +msgstr "mémoire épuisée" + +#: ../../fe_utils/recovery_gen.c:140 pg_basebackup.c:1021 pg_basebackup.c:1715 +#: pg_basebackup.c:1771 +#, c-format +msgid "could not write to file \"%s\": %m" +msgstr "n'a pas pu écrire dans le fichier « %s » : %m" + +#: ../../fe_utils/recovery_gen.c:152 pg_basebackup.c:1166 pg_basebackup.c:1672 +#: pg_basebackup.c:1748 +#, c-format +msgid "could not create file \"%s\": %m" +msgstr "n'a pas pu créer le fichier « %s » : %m" + +#: pg_basebackup.c:224 #, c-format msgid "removing data directory \"%s\"" msgstr "suppression du répertoire des données « %s »" -#: pg_basebackup.c:225 +#: pg_basebackup.c:226 #, c-format msgid "failed to remove data directory" msgstr "échec de la suppression du répertoire des données" -#: pg_basebackup.c:229 +#: pg_basebackup.c:230 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "suppression du contenu du répertoire des données « %s »" -#: pg_basebackup.c:231 +#: pg_basebackup.c:232 #, c-format msgid "failed to remove contents of data directory" msgstr "échec de la suppression du contenu du répertoire des données" -#: pg_basebackup.c:236 +#: pg_basebackup.c:237 #, c-format msgid "removing WAL directory \"%s\"" msgstr "suppression du répertoire des journaux de transactions « %s »" -#: pg_basebackup.c:238 +#: pg_basebackup.c:239 #, c-format msgid "failed to remove WAL directory" msgstr "échec de la suppression du répertoire des journaux de transactions" -#: pg_basebackup.c:242 +#: pg_basebackup.c:243 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "suppression du contenu du répertoire des journaux de transactions « %s »" -#: pg_basebackup.c:244 +#: pg_basebackup.c:245 #, c-format msgid "failed to remove contents of WAL directory" msgstr "échec de la suppression du contenu du répertoire des journaux de transactions" -#: pg_basebackup.c:250 +#: pg_basebackup.c:251 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "répertoire des données « %s » non supprimé à la demande de l'utilisateur" -#: pg_basebackup.c:253 +#: pg_basebackup.c:254 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "répertoire des journaux de transactions « %s » non supprimé à la demande de l'utilisateur" -#: pg_basebackup.c:257 +#: pg_basebackup.c:258 #, c-format msgid "changes to tablespace directories will not be undone" msgstr "les modifications des répertoires des tablespaces ne seront pas annulées" -#: pg_basebackup.c:298 +#: pg_basebackup.c:299 #, c-format msgid "directory name too long" msgstr "nom du répertoire trop long" -#: pg_basebackup.c:308 +#: pg_basebackup.c:309 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "multiple signes « = » dans la correspondance de tablespace" -#: pg_basebackup.c:320 +#: pg_basebackup.c:321 #, c-format msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" msgstr "format de correspondance de tablespace « %s » invalide, doit être « ANCIENREPERTOIRE=NOUVEAUREPERTOIRE »" -#: pg_basebackup.c:332 +#: pg_basebackup.c:333 #, c-format msgid "old directory is not an absolute path in tablespace mapping: %s" msgstr "l'ancien répertoire n'est pas un chemin absolu dans la correspondance de tablespace : %s" -#: pg_basebackup.c:339 +#: pg_basebackup.c:340 #, c-format msgid "new directory is not an absolute path in tablespace mapping: %s" msgstr "le nouveau répertoire n'est pas un chemin absolu dans la correspondance de tablespace : %s" -#: pg_basebackup.c:378 +#: pg_basebackup.c:379 #, c-format msgid "" "%s takes a base backup of a running PostgreSQL server.\n" "\n" msgstr "" -"%s prend une sauvegarde binaire d'un serveur PostgreSQL en cours d'exécution.\n" +"%s prend une sauvegarde binaire d'un serveur PostgreSQL en cours\n" +"d'exécution.\n" "\n" -#: pg_basebackup.c:380 pg_receivewal.c:79 pg_recvlogical.c:75 +#: pg_basebackup.c:381 pg_receivewal.c:79 pg_recvlogical.c:75 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: pg_basebackup.c:381 pg_receivewal.c:80 pg_recvlogical.c:76 +#: pg_basebackup.c:382 pg_receivewal.c:80 pg_recvlogical.c:76 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [OPTION]...\n" -#: pg_basebackup.c:382 +#: pg_basebackup.c:383 #, c-format msgid "" "\n" @@ -185,72 +205,72 @@ "\n" "Options contrôlant la sortie :\n" -#: pg_basebackup.c:383 +#: pg_basebackup.c:384 #, c-format msgid " -D, --pgdata=DIRECTORY receive base backup into directory\n" -msgstr " -D, --pgdata=RÉPERTOIRE reçoit la sauvegarde de base dans ce répertoire\n" +msgstr " -D, --pgdata=RÉPERTOIRE reçoit la sauvegarde de base dans ce répertoire\n" -#: pg_basebackup.c:384 +#: pg_basebackup.c:385 #, c-format msgid " -F, --format=p|t output format (plain (default), tar)\n" -msgstr " -F, --format=p|t format en sortie (plain (par défaut), tar)\n" +msgstr " -F, --format=p|t format en sortie (plain (par défaut), tar)\n" -#: pg_basebackup.c:385 +#: pg_basebackup.c:386 #, c-format msgid "" " -r, --max-rate=RATE maximum transfer rate to transfer data directory\n" " (in kB/s, or use suffix \"k\" or \"M\")\n" msgstr "" -" -r, --max-rate=TAUX taux maximum de transfert du répertoire de\n" -" données (en Ko/s, ou utiliser le suffixe « k »\n" -" ou « M »)\n" +" -r, --max-rate=TAUX taux maximum de transfert du répertoire de\n" +" données (en Ko/s, ou utiliser le suffixe « k »\n" +" ou « M »)\n" -#: pg_basebackup.c:387 +#: pg_basebackup.c:388 #, c-format msgid "" " -R, --write-recovery-conf\n" " write configuration for replication\n" -msgstr " -R, --write-recovery-conf écrit la configuration pour la réplication\n" +msgstr " -R, --write-recovery-conf écrit la configuration pour la réplication\n" -#: pg_basebackup.c:389 +#: pg_basebackup.c:390 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" " relocate tablespace in OLDDIR to NEWDIR\n" msgstr "" " -T, --tablespace-mapping=ANCIENREP=NOUVEAUREP\n" -" déplacer le répertoire ANCIENREP en NOUVEAUREP\n" +" déplace le répertoire ANCIENREP en NOUVEAUREP\n" -#: pg_basebackup.c:391 +#: pg_basebackup.c:392 #, c-format msgid " --waldir=WALDIR location for the write-ahead log directory\n" msgstr "" -" --waldir=RÉP_WAL emplacement du répertoire des journaux de\n" -" transactions\n" +" --waldir=RÉP_WAL emplacement du répertoire des journaux de\n" +" transactions\n" -#: pg_basebackup.c:392 +#: pg_basebackup.c:393 #, c-format msgid "" " -X, --wal-method=none|fetch|stream\n" " include required WAL files with specified method\n" msgstr "" " -X, --wal-method=none|fetch|stream\n" -" inclut les journaux de transactions requis avec\n" -" la méthode spécifiée\n" +" inclut les journaux de transactions requis avec\n" +" la méthode spécifiée\n" -#: pg_basebackup.c:394 +#: pg_basebackup.c:395 #, c-format msgid " -z, --gzip compress tar output\n" -msgstr " -z, --gzip compresse la sortie tar\n" +msgstr " -z, --gzip compresse la sortie tar\n" -#: pg_basebackup.c:395 +#: pg_basebackup.c:396 #, c-format msgid " -Z, --compress=0-9 compress tar output with given compression level\n" msgstr "" -" -Z, --compress=0-9 compresse la sortie tar avec le niveau de\n" -" compression indiqué\n" +" -Z, --compress=0-9 compresse la sortie tar avec le niveau de\n" +" compression indiqué\n" -#: pg_basebackup.c:396 +#: pg_basebackup.c:397 #, c-format msgid "" "\n" @@ -259,101 +279,108 @@ "\n" "Options générales :\n" -#: pg_basebackup.c:397 +#: pg_basebackup.c:398 #, c-format msgid "" " -c, --checkpoint=fast|spread\n" " set fast or spread checkpointing\n" -msgstr " -c, --checkpoint=fast|spread exécute un CHECKPOINT rapide ou réparti\n" +msgstr " -c, --checkpoint=fast|spread exécute un CHECKPOINT rapide ou réparti\n" -#: pg_basebackup.c:399 +#: pg_basebackup.c:400 #, c-format msgid " -C, --create-slot create replication slot\n" -msgstr " --create-slot créer un slot de réplication\n" +msgstr " --create-slot crée un slot de réplication\n" -#: pg_basebackup.c:400 +#: pg_basebackup.c:401 #, c-format msgid " -l, --label=LABEL set backup label\n" -msgstr " -l, --label=LABEL configure le label de sauvegarde\n" +msgstr " -l, --label=LABEL configure le label de sauvegarde\n" -#: pg_basebackup.c:401 +#: pg_basebackup.c:402 #, c-format msgid " -n, --no-clean do not clean up after errors\n" -msgstr " -n, --no-clean ne nettoie pas en cas d'erreur\n" +msgstr " -n, --no-clean ne nettoie pas en cas d'erreur\n" -#: pg_basebackup.c:402 +#: pg_basebackup.c:403 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" -msgstr " -N, --no-sync n'attend pas que les modifications soient proprement écrites sur disque\n" +msgstr "" +" -N, --no-sync n'attend pas que les modifications soient\n" +" proprement écrites sur disque\n" -#: pg_basebackup.c:403 +#: pg_basebackup.c:404 #, c-format msgid " -P, --progress show progress information\n" -msgstr " -P, --progress affiche la progression de la sauvegarde\n" +msgstr " -P, --progress affiche la progression de la sauvegarde\n" -#: pg_basebackup.c:404 pg_receivewal.c:89 +#: pg_basebackup.c:405 pg_receivewal.c:89 #, c-format msgid " -S, --slot=SLOTNAME replication slot to use\n" -msgstr " -S, --slot=NOMREP slot de réplication à utiliser\n" +msgstr " -S, --slot=NOMREP utilise ce slot de réplication\n" -#: pg_basebackup.c:405 pg_receivewal.c:91 pg_recvlogical.c:96 +#: pg_basebackup.c:406 pg_receivewal.c:91 pg_recvlogical.c:96 #, c-format msgid " -v, --verbose output verbose messages\n" -msgstr " -v, --verbose affiche des messages verbeux\n" +msgstr " -v, --verbose affiche des messages verbeux\n" -#: pg_basebackup.c:406 pg_receivewal.c:92 pg_recvlogical.c:97 +#: pg_basebackup.c:407 pg_receivewal.c:92 pg_recvlogical.c:97 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" -#: pg_basebackup.c:407 +#: pg_basebackup.c:408 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" " use algorithm for manifest checksums\n" msgstr "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" -" utilise cet algorithme pour les sommes de contrôle du manifeste\n" +" utilise cet algorithme pour les sommes de\n" +" contrôle du manifeste\n" -#: pg_basebackup.c:409 +#: pg_basebackup.c:410 #, c-format msgid "" " --manifest-force-encode\n" " hex encode all file names in manifest\n" msgstr "" -" --manifest-force-encode\n" -" encode tous les noms de fichier dans le manifeste en hexadécimal\n" +" --manifest-force-encode encode tous les noms de fichier dans le\n" +" manifeste en hexadécimal\n" -#: pg_basebackup.c:411 +#: pg_basebackup.c:412 #, c-format msgid " --no-estimate-size do not estimate backup size in server side\n" -msgstr " --no-estimate-size ne réalise pas d'estimation sur la taille de la sauvegarde côté serveur\n" +msgstr "" +" --no-estimate-size ne réalise pas d'estimation sur la taille de la\n" +" sauvegarde côté serveur\n" -#: pg_basebackup.c:412 +#: pg_basebackup.c:413 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr "" -" --no-manifest supprime la génération de manifeste de sauvegarde\n" -"\n" +" --no-manifest supprime la génération de manifeste de\n" +" sauvegarde\n" -#: pg_basebackup.c:413 +#: pg_basebackup.c:414 #, c-format msgid " --no-slot prevent creation of temporary replication slot\n" -msgstr " --no-slot empêche la création de slots de réplication temporaires\n" +msgstr "" +" --no-slot empêche la création de slots de réplication\n" +" temporaires\n" -#: pg_basebackup.c:414 +#: pg_basebackup.c:415 #, c-format msgid "" " --no-verify-checksums\n" " do not verify checksums\n" -msgstr " --no-verify-checksums ne vérifie pas les sommes de contrôle\n" +msgstr " --no-verify-checksums ne vérifie pas les sommes de contrôle\n" -#: pg_basebackup.c:416 pg_receivewal.c:94 pg_recvlogical.c:98 +#: pg_basebackup.c:417 pg_receivewal.c:94 pg_recvlogical.c:98 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_basebackup.c:417 pg_receivewal.c:95 pg_recvlogical.c:99 +#: pg_basebackup.c:418 pg_receivewal.c:95 pg_recvlogical.c:99 #, c-format msgid "" "\n" @@ -362,26 +389,24 @@ "\n" "Options de connexion :\n" -#: pg_basebackup.c:418 pg_receivewal.c:96 +#: pg_basebackup.c:419 pg_receivewal.c:96 #, c-format msgid " -d, --dbname=CONNSTR connection string\n" -msgstr " -d, --dbname=CONNSTR chaîne de connexion\n" +msgstr " -d, --dbname=CHAÎNE_CONNEX chaîne de connexion\n" -#: pg_basebackup.c:419 pg_receivewal.c:97 pg_recvlogical.c:101 +#: pg_basebackup.c:420 pg_receivewal.c:97 pg_recvlogical.c:101 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=NOMHÔTE hôte du serveur de bases de données ou\n" -" répertoire des sockets\n" +" -h, --host=HÔTE hôte du serveur de bases de données ou\n" +" répertoire des sockets\n" -#: pg_basebackup.c:420 pg_receivewal.c:98 pg_recvlogical.c:102 +#: pg_basebackup.c:421 pg_receivewal.c:98 pg_recvlogical.c:102 #, c-format msgid " -p, --port=PORT database server port number\n" -msgstr "" -" -p, --port=PORT numéro de port du serveur de bases de\n" -" données\n" +msgstr " -p, --port=PORT numéro de port du serveur de bases de données\n" -#: pg_basebackup.c:421 +#: pg_basebackup.c:422 #, c-format msgid "" " -s, --status-interval=INTERVAL\n" @@ -390,24 +415,24 @@ " -s, --status-interval=INTERVAL durée entre l'envoi de paquets de statut au\n" " serveur (en secondes)\n" -#: pg_basebackup.c:423 pg_receivewal.c:99 pg_recvlogical.c:103 +#: pg_basebackup.c:424 pg_receivewal.c:99 pg_recvlogical.c:103 #, c-format msgid " -U, --username=NAME connect as specified database user\n" -msgstr " -U, --username=NOM se connecte avec cet utilisateur\n" +msgstr " -U, --username=NOM se connecte avec cet utilisateur\n" -#: pg_basebackup.c:424 pg_receivewal.c:100 pg_recvlogical.c:104 +#: pg_basebackup.c:425 pg_receivewal.c:100 pg_recvlogical.c:104 #, c-format msgid " -w, --no-password never prompt for password\n" -msgstr " -w, --no-password ne demande jamais le mot de passe\n" +msgstr " -w, --no-password ne demande jamais le mot de passe\n" -#: pg_basebackup.c:425 pg_receivewal.c:101 pg_recvlogical.c:105 +#: pg_basebackup.c:426 pg_receivewal.c:101 pg_recvlogical.c:105 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr "" -" -W, --password force la demande du mot de passe (devrait arriver\n" -" automatiquement)\n" +" -W, --password force la demande du mot de passe (devrait\n" +" survenir automatiquement)\n" -#: pg_basebackup.c:426 pg_receivewal.c:105 pg_recvlogical.c:106 +#: pg_basebackup.c:427 pg_receivewal.c:105 pg_recvlogical.c:106 #, c-format msgid "" "\n" @@ -416,466 +441,452 @@ "\n" "Rapporter les bogues à <%s>.\n" -#: pg_basebackup.c:427 pg_receivewal.c:106 pg_recvlogical.c:107 +#: pg_basebackup.c:428 pg_receivewal.c:106 pg_recvlogical.c:107 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" -#: pg_basebackup.c:470 +#: pg_basebackup.c:471 #, c-format msgid "could not read from ready pipe: %m" msgstr "n'a pas pu lire à partir du tube : %m" -#: pg_basebackup.c:476 pg_basebackup.c:607 pg_basebackup.c:2114 -#: streamutil.c:450 +#: pg_basebackup.c:477 pg_basebackup.c:608 pg_basebackup.c:2134 +#: streamutil.c:449 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "n'a pas pu analyser l'emplacement du journal des transactions « %s »" -#: pg_basebackup.c:572 pg_receivewal.c:441 +#: pg_basebackup.c:573 pg_receivewal.c:441 #, c-format msgid "could not finish writing WAL files: %m" msgstr "n'a pas pu finir l'écriture dans les fichiers de transactions : %m" -#: pg_basebackup.c:619 +#: pg_basebackup.c:620 #, c-format msgid "could not create pipe for background process: %m" msgstr "n'a pas pu créer un tube pour le processus en tâche de fond : %m" -#: pg_basebackup.c:654 +#: pg_basebackup.c:655 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "a créé le slot de réplication temporaire « %s »" -#: pg_basebackup.c:657 +#: pg_basebackup.c:658 #, c-format msgid "created replication slot \"%s\"" msgstr "a créé le slot de réplication « %s »" -#: pg_basebackup.c:677 pg_basebackup.c:730 pg_basebackup.c:1605 +#: pg_basebackup.c:678 pg_basebackup.c:731 pg_basebackup.c:1621 #, c-format msgid "could not create directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » : %m" -#: pg_basebackup.c:695 +#: pg_basebackup.c:696 #, c-format msgid "could not create background process: %m" msgstr "n'a pas pu créer un processus en tâche de fond : %m" -#: pg_basebackup.c:707 +#: pg_basebackup.c:708 #, c-format msgid "could not create background thread: %m" msgstr "n'a pas pu créer un thread en tâche de fond : %m" -#: pg_basebackup.c:751 +#: pg_basebackup.c:752 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "le répertoire « %s » existe mais n'est pas vide" -#: pg_basebackup.c:758 +#: pg_basebackup.c:759 #, c-format msgid "could not access directory \"%s\": %m" msgstr "n'a pas pu accéder au répertoire « %s » : %m" -#: pg_basebackup.c:819 +#: pg_basebackup.c:824 #, c-format msgid "%*s/%s kB (100%%), %d/%d tablespace %*s" msgid_plural "%*s/%s kB (100%%), %d/%d tablespaces %*s" msgstr[0] "%*s/%s Ko (100%%), %d/%d tablespace %*s" msgstr[1] "%*s/%s Ko (100%%), %d/%d tablespaces %*s" -#: pg_basebackup.c:831 +#: pg_basebackup.c:836 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces (%s%-*.*s)" msgstr[0] "%*s/%s Ko (%d%%), %d/%d tablespace (%s%-*.*s)" msgstr[1] "%*s/%s Ko (%d%%), %d/%d tablespaces (%s%-*.*s)" -#: pg_basebackup.c:847 +#: pg_basebackup.c:852 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces" msgstr[0] "%*s/%s Ko (%d%%), %d/%d tablespace" msgstr[1] "%*s/%s Ko (%d%%), %d/%d tablespaces" -#: pg_basebackup.c:871 +#: pg_basebackup.c:877 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "le taux de transfert « %s » ne correspond pas à une valeur valide" -#: pg_basebackup.c:876 +#: pg_basebackup.c:882 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "taux de transfert invalide (« %s ») : %m" -#: pg_basebackup.c:885 +#: pg_basebackup.c:891 #, c-format msgid "transfer rate must be greater than zero" msgstr "le taux de transfert doit être supérieur à zéro" -#: pg_basebackup.c:917 +#: pg_basebackup.c:923 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "unité invalide pour --max-rate : « %s »" -#: pg_basebackup.c:924 +#: pg_basebackup.c:930 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "le taux de transfert « %s » dépasse l'échelle des entiers" -#: pg_basebackup.c:934 +#: pg_basebackup.c:940 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "le taux de transfert « %s » est en dehors des limites" -#: pg_basebackup.c:955 +#: pg_basebackup.c:961 #, c-format msgid "could not get COPY data stream: %s" msgstr "n'a pas pu obtenir le flux de données de COPY : %s" -#: pg_basebackup.c:975 pg_recvlogical.c:435 receivelog.c:965 +#: pg_basebackup.c:981 pg_recvlogical.c:434 pg_recvlogical.c:606 +#: receivelog.c:979 #, c-format msgid "could not read COPY data: %s" msgstr "n'a pas pu lire les données du COPY : %s" -#: pg_basebackup.c:997 +#: pg_basebackup.c:1007 #, c-format msgid "could not write to compressed file \"%s\": %s" msgstr "n'a pas pu écrire dans le fichier compressé « %s » : %s" -#: pg_basebackup.c:1007 pg_basebackup.c:1695 pg_basebackup.c:1747 -#, c-format -msgid "could not write to file \"%s\": %m" -msgstr "n'a pas pu écrire dans le fichier « %s » : %m" - -#: pg_basebackup.c:1056 +#: pg_basebackup.c:1071 #, c-format msgid "could not duplicate stdout: %m" msgstr "n'a pas pu dupliquer la sortie (stdout) : %m" -#: pg_basebackup.c:1063 +#: pg_basebackup.c:1078 #, c-format msgid "could not open output file: %m" msgstr "n'a pas pu ouvrir le fichier de sauvegarde : %m" -#: pg_basebackup.c:1070 pg_basebackup.c:1091 pg_basebackup.c:1120 +#: pg_basebackup.c:1085 pg_basebackup.c:1106 pg_basebackup.c:1135 #, c-format msgid "could not set compression level %d: %s" msgstr "n'a pas pu configurer le niveau de compression %d : %s" -#: pg_basebackup.c:1140 +#: pg_basebackup.c:1155 #, c-format msgid "could not create compressed file \"%s\": %s" msgstr "n'a pas pu créer le fichier compressé « %s » : %s" -#: pg_basebackup.c:1151 pg_basebackup.c:1656 pg_basebackup.c:1728 -#, c-format -msgid "could not create file \"%s\": %m" -msgstr "n'a pas pu créer le fichier « %s » : %m" - -#: pg_basebackup.c:1233 +#: pg_basebackup.c:1268 #, c-format -msgid "out of memory" -msgstr "mémoire épuisée" - -#: pg_basebackup.c:1252 -#, c-format -msgid "could not close compressed file \"%s\": %s" -msgstr "n'a pas pu fermer le fichier compressé « %s » : %s" +msgid "could not close compressed file \"%s\": %m" +msgstr "n'a pas pu fermer le fichier compressé « %s » : %m" -#: pg_basebackup.c:1264 pg_recvlogical.c:606 +#: pg_basebackup.c:1280 pg_recvlogical.c:631 #, c-format msgid "could not close file \"%s\": %m" msgstr "n'a pas pu fermer le fichier « %s » : %m" -#: pg_basebackup.c:1526 +#: pg_basebackup.c:1542 #, c-format msgid "COPY stream ended before last file was finished" msgstr "le flux COPY s'est terminé avant que le dernier fichier soit terminé" -#: pg_basebackup.c:1555 +#: pg_basebackup.c:1571 #, c-format msgid "invalid tar block header size: %zu" msgstr "taille invalide de l'en-tête de bloc du fichier tar : %zu" -#: pg_basebackup.c:1612 +#: pg_basebackup.c:1628 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "n'a pas pu configurer les droits du répertoire « %s » : %m" -#: pg_basebackup.c:1636 +#: pg_basebackup.c:1652 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "n'a pas pu créer le lien symbolique de « %s » vers « %s » : %m" -#: pg_basebackup.c:1643 +#: pg_basebackup.c:1659 #, c-format msgid "unrecognized link indicator \"%c\"" msgstr "indicateur de lien « %c » non reconnu" -#: pg_basebackup.c:1662 +#: pg_basebackup.c:1678 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "n'a pas pu initialiser les droits du fichier « %s » : %m" -#: pg_basebackup.c:1808 +#: pg_basebackup.c:1832 #, c-format msgid "incompatible server version %s" msgstr "version « %s » du serveur incompatible" -#: pg_basebackup.c:1823 +#: pg_basebackup.c:1847 #, c-format msgid "HINT: use -X none or -X fetch to disable log streaming" msgstr "ASTUCE : utilisez -X none ou -X fetch pour désactiver la réplication en flux" -#: pg_basebackup.c:1859 +#: pg_basebackup.c:1883 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "début de la sauvegarde de base, en attente de la fin du checkpoint" -#: pg_basebackup.c:1885 pg_recvlogical.c:262 receivelog.c:481 receivelog.c:530 -#: receivelog.c:569 streamutil.c:297 streamutil.c:370 streamutil.c:422 -#: streamutil.c:533 streamutil.c:578 +#: pg_basebackup.c:1909 pg_recvlogical.c:261 receivelog.c:495 receivelog.c:544 +#: receivelog.c:583 streamutil.c:296 streamutil.c:369 streamutil.c:421 +#: streamutil.c:532 streamutil.c:577 #, c-format msgid "could not send replication command \"%s\": %s" msgstr "n'a pas pu envoyer la commande de réplication « %s » : %s" -#: pg_basebackup.c:1896 +#: pg_basebackup.c:1920 #, c-format msgid "could not initiate base backup: %s" msgstr "n'a pas pu initier la sauvegarde de base : %s" -#: pg_basebackup.c:1902 +#: pg_basebackup.c:1926 #, c-format msgid "server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields" msgstr "le serveur a renvoyé une réponse inattendue à la commande BASE_BACKUP ; a récupéré %d lignes et %d champs, alors qu'il attendait %d lignes et %d champs" -#: pg_basebackup.c:1910 +#: pg_basebackup.c:1934 #, c-format msgid "checkpoint completed" msgstr "checkpoint terminé" -#: pg_basebackup.c:1925 +#: pg_basebackup.c:1949 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "point de départ du journal de transactions : %s sur la timeline %u" -#: pg_basebackup.c:1934 +#: pg_basebackup.c:1958 #, c-format msgid "could not get backup header: %s" msgstr "n'a pas pu obtenir l'en-tête du serveur : %s" -#: pg_basebackup.c:1940 +#: pg_basebackup.c:1964 #, c-format msgid "no data returned from server" msgstr "aucune donnée renvoyée du serveur" -#: pg_basebackup.c:1972 +#: pg_basebackup.c:1996 #, c-format msgid "can only write single tablespace to stdout, database has %d" msgstr "peut seulement écrire un tablespace sur la sortie standard, la base en a %d" -#: pg_basebackup.c:1984 +#: pg_basebackup.c:2008 #, c-format msgid "starting background WAL receiver" msgstr "lance le récepteur de journaux de transactions en tâche de fond" -#: pg_basebackup.c:2027 +#: pg_basebackup.c:2047 #, c-format msgid "could not get write-ahead log end position from server: %s" msgstr "n'a pas pu obtenir la position finale des journaux de transactions à partir du serveur : %s" -#: pg_basebackup.c:2033 +#: pg_basebackup.c:2053 #, c-format msgid "no write-ahead log end position returned from server" msgstr "aucune position de fin du journal de transactions renvoyée par le serveur" -#: pg_basebackup.c:2038 +#: pg_basebackup.c:2058 #, c-format msgid "write-ahead log end point: %s" msgstr "point final du journal de transactions : %s" -#: pg_basebackup.c:2049 +#: pg_basebackup.c:2069 #, c-format msgid "checksum error occurred" msgstr "erreur de somme de contrôle" -#: pg_basebackup.c:2054 +#: pg_basebackup.c:2074 #, c-format msgid "final receive failed: %s" msgstr "échec lors de la réception finale : %s" -#: pg_basebackup.c:2078 +#: pg_basebackup.c:2098 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "en attente que le processus en tâche de fond termine le flux..." -#: pg_basebackup.c:2083 +#: pg_basebackup.c:2103 #, c-format msgid "could not send command to background pipe: %m" msgstr "n'a pas pu envoyer la commande au tube du processus : %m" -#: pg_basebackup.c:2091 +#: pg_basebackup.c:2111 #, c-format msgid "could not wait for child process: %m" msgstr "n'a pas pu attendre le processus fils : %m" -#: pg_basebackup.c:2096 +#: pg_basebackup.c:2116 #, c-format msgid "child %d died, expected %d" msgstr "le fils %d est mort, %d attendu" -#: pg_basebackup.c:2101 streamutil.c:92 +#: pg_basebackup.c:2121 streamutil.c:92 streamutil.c:202 #, c-format msgid "%s" msgstr "%s" -#: pg_basebackup.c:2126 +#: pg_basebackup.c:2146 #, c-format msgid "could not wait for child thread: %m" msgstr "n'a pas pu attendre le thread : %m" -#: pg_basebackup.c:2132 +#: pg_basebackup.c:2152 #, c-format msgid "could not get child thread exit status: %m" msgstr "n'a pas pu obtenir le code de sortie du thread : %m" -#: pg_basebackup.c:2137 +#: pg_basebackup.c:2157 #, c-format msgid "child thread exited with error %u" msgstr "le thread a quitté avec le code d'erreur %u" -#: pg_basebackup.c:2165 +#: pg_basebackup.c:2185 #, c-format msgid "syncing data to disk ..." msgstr "synchronisation des données sur disque..." -#: pg_basebackup.c:2190 +#: pg_basebackup.c:2210 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "renommage de backup_manifest.tmp en backup_manifest" -#: pg_basebackup.c:2201 +#: pg_basebackup.c:2221 #, c-format msgid "base backup completed" msgstr "sauvegarde de base terminée" -#: pg_basebackup.c:2286 +#: pg_basebackup.c:2306 #, c-format msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" msgstr "format de sortie « %s » invalide, doit être soit « plain » soit « tar »" -#: pg_basebackup.c:2330 +#: pg_basebackup.c:2350 #, c-format msgid "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" msgstr "option wal-method « %s » invalide, doit être soit « fetch » soit « stream » soit « none »" -#: pg_basebackup.c:2358 pg_receivewal.c:580 +#: pg_basebackup.c:2378 pg_receivewal.c:580 #, c-format msgid "invalid compression level \"%s\"" msgstr "niveau de compression « %s » invalide" -#: pg_basebackup.c:2369 +#: pg_basebackup.c:2389 #, c-format msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" msgstr "argument « %s » invalide pour le CHECKPOINT, doit être soit « fast » soit « spread »" -#: pg_basebackup.c:2396 pg_receivewal.c:555 pg_recvlogical.c:794 +#: pg_basebackup.c:2416 pg_receivewal.c:555 pg_recvlogical.c:819 #, c-format msgid "invalid status interval \"%s\"" msgstr "intervalle « %s » invalide du statut" -#: pg_basebackup.c:2426 pg_basebackup.c:2439 pg_basebackup.c:2450 -#: pg_basebackup.c:2461 pg_basebackup.c:2469 pg_basebackup.c:2477 -#: pg_basebackup.c:2487 pg_basebackup.c:2500 pg_basebackup.c:2508 -#: pg_basebackup.c:2519 pg_basebackup.c:2529 pg_basebackup.c:2546 -#: pg_basebackup.c:2554 pg_basebackup.c:2562 pg_receivewal.c:605 +#: pg_basebackup.c:2446 pg_basebackup.c:2459 pg_basebackup.c:2470 +#: pg_basebackup.c:2481 pg_basebackup.c:2489 pg_basebackup.c:2497 +#: pg_basebackup.c:2507 pg_basebackup.c:2520 pg_basebackup.c:2528 +#: pg_basebackup.c:2539 pg_basebackup.c:2549 pg_basebackup.c:2566 +#: pg_basebackup.c:2574 pg_basebackup.c:2582 pg_receivewal.c:605 #: pg_receivewal.c:618 pg_receivewal.c:626 pg_receivewal.c:636 -#: pg_receivewal.c:644 pg_receivewal.c:655 pg_recvlogical.c:820 -#: pg_recvlogical.c:833 pg_recvlogical.c:844 pg_recvlogical.c:852 -#: pg_recvlogical.c:860 pg_recvlogical.c:868 pg_recvlogical.c:876 -#: pg_recvlogical.c:884 pg_recvlogical.c:892 +#: pg_receivewal.c:644 pg_receivewal.c:655 pg_recvlogical.c:845 +#: pg_recvlogical.c:858 pg_recvlogical.c:869 pg_recvlogical.c:877 +#: pg_recvlogical.c:885 pg_recvlogical.c:893 pg_recvlogical.c:901 +#: pg_recvlogical.c:909 pg_recvlogical.c:917 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Essayer « %s --help » pour plus d'informations.\n" -#: pg_basebackup.c:2437 pg_receivewal.c:616 pg_recvlogical.c:831 +#: pg_basebackup.c:2457 pg_receivewal.c:616 pg_recvlogical.c:856 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: pg_basebackup.c:2449 pg_receivewal.c:654 +#: pg_basebackup.c:2469 pg_receivewal.c:654 #, c-format msgid "no target directory specified" msgstr "aucun répertoire cible indiqué" -#: pg_basebackup.c:2460 +#: pg_basebackup.c:2480 #, c-format msgid "only tar mode backups can be compressed" msgstr "seules les sauvegardes en mode tar peuvent être compressées" -#: pg_basebackup.c:2468 +#: pg_basebackup.c:2488 #, c-format msgid "cannot stream write-ahead logs in tar mode to stdout" msgstr "ne peut pas envoyer les journaux de transactions vers stdout en mode tar" -#: pg_basebackup.c:2476 +#: pg_basebackup.c:2496 #, c-format msgid "replication slots can only be used with WAL streaming" msgstr "les slots de réplications peuvent seulement être utilisés avec la réplication en flux des WAL" -#: pg_basebackup.c:2486 +#: pg_basebackup.c:2506 #, c-format msgid "--no-slot cannot be used with slot name" msgstr "--no-slot ne peut pas être utilisé avec un nom de slot" #. translator: second %s is an option name -#: pg_basebackup.c:2498 pg_receivewal.c:634 +#: pg_basebackup.c:2518 pg_receivewal.c:634 #, c-format msgid "%s needs a slot to be specified using --slot" msgstr "%s a besoin du slot avec l'option --slot" -#: pg_basebackup.c:2507 +#: pg_basebackup.c:2527 #, c-format msgid "--create-slot and --no-slot are incompatible options" msgstr "--create-slot et --no-slot sont des options incompatibles" -#: pg_basebackup.c:2518 +#: pg_basebackup.c:2538 #, c-format msgid "WAL directory location can only be specified in plain mode" msgstr "l'emplacement du répertoire des journaux de transactions doit être indiqué uniquement dans le mode plain" -#: pg_basebackup.c:2528 +#: pg_basebackup.c:2548 #, c-format msgid "WAL directory location must be an absolute path" msgstr "l'emplacement du répertoire des journaux de transactions doit être indiqué avec un chemin absolu" -#: pg_basebackup.c:2538 pg_receivewal.c:663 +#: pg_basebackup.c:2558 pg_receivewal.c:663 #, c-format msgid "this build does not support compression" msgstr "cette construction ne supporte pas la compression" -#: pg_basebackup.c:2545 +#: pg_basebackup.c:2565 #, c-format msgid "--progress and --no-estimate-size are incompatible options" msgstr "--progress et --no-estimate-size sont des options incompatibles" -#: pg_basebackup.c:2553 +#: pg_basebackup.c:2573 #, c-format msgid "--no-manifest and --manifest-checksums are incompatible options" msgstr "--no-manifest et --manifest-checksums sont des options incompatibles" -#: pg_basebackup.c:2561 +#: pg_basebackup.c:2581 #, c-format msgid "--no-manifest and --manifest-force-encode are incompatible options" msgstr "--no-manifest et --manifest-force-encode sont des options incompatibles" -#: pg_basebackup.c:2620 +#: pg_basebackup.c:2640 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "n'a pas pu créer le lien symbolique « %s » : %m" -#: pg_basebackup.c:2624 +#: pg_basebackup.c:2644 #, c-format msgid "symlinks are not supported on this platform" msgstr "les liens symboliques ne sont pas supportés sur cette plateforme" @@ -902,30 +913,32 @@ #, c-format msgid " -D, --directory=DIR receive write-ahead log files into this directory\n" msgstr "" -" -D, --directory=RÉP reçoit les journaux de transactions dans ce\n" -" répertoire\n" +" -D, --directory=RÉPERTOIRE reçoit les journaux de transactions dans ce\n" +" répertoire\n" #: pg_receivewal.c:83 pg_recvlogical.c:82 #, c-format msgid " -E, --endpos=LSN exit after receiving the specified LSN\n" -msgstr " -E, --endpos=LSN quitte après avoir reçu le LSN spécifié\n" +msgstr " -E, --endpos=LSN quitte après avoir reçu le LSN spécifié\n" #: pg_receivewal.c:84 pg_recvlogical.c:86 #, c-format msgid " --if-not-exists do not error if slot already exists when creating a slot\n" msgstr "" -" --if-not-exists ne pas renvoyer une erreur si le slot existe\n" -" déjà lors de sa création\n" +" --if-not-exists ne pas renvoyer une erreur si le slot existe\n" +" déjà lors de sa création\n" #: pg_receivewal.c:85 pg_recvlogical.c:88 #, c-format msgid " -n, --no-loop do not loop on connection lost\n" -msgstr " -n, --no-loop ne boucle pas en cas de perte de la connexion\n" +msgstr " -n, --no-loop ne boucle pas en cas de perte de la connexion\n" #: pg_receivewal.c:86 #, c-format msgid " --no-sync do not wait for changes to be written safely to disk\n" -msgstr " --no-sync n'attend pas que les modifications soient proprement écrites sur disque\n" +msgstr "" +" --no-sync n'attend pas que les modifications soient\n" +" proprement écrites sur disque\n" #: pg_receivewal.c:87 pg_recvlogical.c:93 #, c-format @@ -933,22 +946,22 @@ " -s, --status-interval=SECS\n" " time between status packets sent to server (default: %d)\n" msgstr "" -" -s, --status-interval=SECS durée entre l'envoi de paquets de statut au\n" -" (par défaut %d)\n" +" -s, --status-interval=SECS durée entre l'envoi de paquets de statut au\n" +" serveur (par défaut %d)\n" #: pg_receivewal.c:90 #, c-format msgid " --synchronous flush write-ahead log immediately after writing\n" msgstr "" -" --synchronous vide le journal de transactions immédiatement\n" -" après son écriture\n" +" --synchronous vide le journal de transactions immédiatement\n" +" après son écriture\n" #: pg_receivewal.c:93 #, c-format msgid " -Z, --compress=0-9 compress logs with given compression level\n" msgstr "" -" -Z, --compress=0-9 compresse la sortie tar avec le niveau de\n" -" compression indiqué\n" +" -Z, --compress=0-9 compresse la sortie tar avec le niveau de\n" +" compression indiqué\n" #: pg_receivewal.c:102 #, c-format @@ -963,15 +976,15 @@ #, c-format msgid " --create-slot create a new replication slot (for the slot's name see --slot)\n" msgstr "" -" --create-slot créer un nouveau slot de réplication\n" -" (pour le nom du slot, voir --slot)\n" +" --create-slot créer un nouveau slot de réplication\n" +" (pour le nom du slot, voir --slot)\n" #: pg_receivewal.c:104 pg_recvlogical.c:79 #, c-format msgid " --drop-slot drop the replication slot (for the slot's name see --slot)\n" msgstr "" -" --drop-slot supprimer un nouveau slot de réplication\n" -" (pour le nom du slot, voir --slot)\n" +" --drop-slot supprimer un nouveau slot de réplication\n" +" (pour le nom du slot, voir --slot)\n" #: pg_receivewal.c:117 #, c-format @@ -1033,12 +1046,12 @@ msgid "starting log streaming at %X/%X (timeline %u)" msgstr "commence le flux des journaux à %X/%X (timeline %u)" -#: pg_receivewal.c:537 pg_recvlogical.c:736 +#: pg_receivewal.c:537 pg_recvlogical.c:761 #, c-format msgid "invalid port number \"%s\"" msgstr "numéro de port invalide : « %s »" -#: pg_receivewal.c:565 pg_recvlogical.c:762 +#: pg_receivewal.c:565 pg_recvlogical.c:787 #, c-format msgid "could not parse end position \"%s\"" msgstr "n'a pas pu analyser la position finale « %s »" @@ -1053,28 +1066,28 @@ msgid "cannot use --synchronous together with --no-sync" msgstr "ne peut pas utiliser --synchronous avec --no-sync" -#: pg_receivewal.c:719 +#: pg_receivewal.c:723 #, c-format msgid "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "la connexion de réplication utilisant le slot « %s » est spécifique à une base, ce qui est inattendu" -#: pg_receivewal.c:730 pg_recvlogical.c:940 +#: pg_receivewal.c:734 pg_recvlogical.c:968 #, c-format msgid "dropping replication slot \"%s\"" msgstr "suppression du slot de réplication « %s »" -#: pg_receivewal.c:741 pg_recvlogical.c:950 +#: pg_receivewal.c:745 pg_recvlogical.c:978 #, c-format msgid "creating replication slot \"%s\"" msgstr "création du slot de réplication « %s »" -#: pg_receivewal.c:767 pg_recvlogical.c:975 +#: pg_receivewal.c:771 pg_recvlogical.c:1003 #, c-format msgid "disconnected" msgstr "déconnecté" #. translator: check source for value for %d -#: pg_receivewal.c:773 pg_recvlogical.c:981 +#: pg_receivewal.c:777 pg_recvlogical.c:1009 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "déconnecté, attente de %d secondes avant une nouvelle tentative" @@ -1101,13 +1114,15 @@ #, c-format msgid " --start start streaming in a replication slot (for the slot's name see --slot)\n" msgstr "" -" --start lance le flux dans un slot de réplication (pour\n" -" le nom du slot, voir --slot)\n" +" --start lance le flux dans un slot de réplication (pour\n" +" le nom du slot, voir --slot)\n" #: pg_recvlogical.c:83 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" -msgstr " -f, --file=NOMFICHIER trace la réception dans ce fichier, - pour stdout\n" +msgstr "" +" -f, --file=FICHIER trace la réception dans ce fichier, - pour\n" +" stdout\n" #: pg_recvlogical.c:84 #, c-format @@ -1115,15 +1130,15 @@ " -F --fsync-interval=SECS\n" " time between fsyncs to the output file (default: %d)\n" msgstr "" -" -F --fsync-interval=SECS durée entre les fsyncs vers le fichier de sortie\n" -" (par défaut %d)\n" +" -F --fsync-interval=SECS durée entre les fsyncs vers le fichier de\n" +" sortie (par défaut %d)\n" #: pg_recvlogical.c:87 #, c-format msgid " -I, --startpos=LSN where in an existing slot should the streaming start\n" msgstr "" -" -I, --startpos=LSN position de début du streaming dans le slot\n" -" existant\n" +" -I, --startpos=LSN position de début du streaming dans le slot\n" +" existant\n" #: pg_recvlogical.c:89 #, c-format @@ -1132,142 +1147,143 @@ " pass option NAME with optional value VALUE to the\n" " output plugin\n" msgstr "" -" -o, --option=NOM[=VALEUR] passe l'option NAME avec la valeur optionnelle\n" -" VALEUR au plugin en sortie\n" +" -o, --option=NOM[=VALEUR] passe l'option NOM avec la valeur optionnelle\n" +" VALEUR au plugin en sortie\n" #: pg_recvlogical.c:92 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" msgstr "" -" -P, --plugin=PLUGIN utilise le plugin PLUGIN en sortie\n" -" (par défaut %s)\n" +" -P, --plugin=PLUGIN utilise le plugin PLUGIN en sortie (par défaut\n" +" %s)\n" #: pg_recvlogical.c:95 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" -msgstr " -S, --slot=NOMSLOT nom du slot de réplication logique\n" +msgstr " -S, --slot=NOMSLOT utilise ce slot de réplication logique\n" #: pg_recvlogical.c:100 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" -msgstr " -d, --dbname=NOMBASE base de données de connexion\n" +msgstr " -d, --dbname=BASE base de données de connexion\n" #: pg_recvlogical.c:133 #, c-format msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)" msgstr "confirmation d'écriture jusqu'à %X/%X et de synchronisation jusqu'à %X/%X (slot %s)" -#: pg_recvlogical.c:157 receivelog.c:343 +#: pg_recvlogical.c:157 receivelog.c:357 #, c-format msgid "could not send feedback packet: %s" msgstr "n'a pas pu envoyer le paquet d'informations en retour : %s" -#: pg_recvlogical.c:230 +#: pg_recvlogical.c:228 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "commence le flux des journaux à %X/%X (slot %s)" -#: pg_recvlogical.c:271 +#: pg_recvlogical.c:270 #, c-format msgid "streaming initiated" msgstr "flux lancé" -#: pg_recvlogical.c:335 +#: pg_recvlogical.c:334 #, c-format msgid "could not open log file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier applicatif « %s » : %m" +msgstr "n'a pas pu ouvrir le journal applicatif « %s » : %m" -#: pg_recvlogical.c:361 receivelog.c:873 +#: pg_recvlogical.c:360 receivelog.c:887 #, c-format msgid "invalid socket: %s" msgstr "socket invalide : %s" -#: pg_recvlogical.c:414 receivelog.c:901 +#: pg_recvlogical.c:413 receivelog.c:915 #, c-format msgid "select() failed: %m" msgstr "échec de select() : %m" -#: pg_recvlogical.c:421 receivelog.c:951 +#: pg_recvlogical.c:420 receivelog.c:965 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "n'a pas pu recevoir des données du flux de WAL : %s" -#: pg_recvlogical.c:463 pg_recvlogical.c:514 receivelog.c:995 receivelog.c:1061 +#: pg_recvlogical.c:462 pg_recvlogical.c:513 receivelog.c:1009 +#: receivelog.c:1075 #, c-format msgid "streaming header too small: %d" msgstr "en-tête de flux trop petit : %d" -#: pg_recvlogical.c:498 receivelog.c:833 +#: pg_recvlogical.c:497 receivelog.c:847 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "entête non reconnu du flux : « %c »" -#: pg_recvlogical.c:552 pg_recvlogical.c:564 +#: pg_recvlogical.c:551 pg_recvlogical.c:563 #, c-format msgid "could not write %u bytes to log file \"%s\": %m" msgstr "n'a pas pu écrire %u octets dans le journal de transactions « %s » : %m" -#: pg_recvlogical.c:592 receivelog.c:629 receivelog.c:666 +#: pg_recvlogical.c:617 receivelog.c:643 receivelog.c:680 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "fin inattendue du flux de réplication : %s" -#: pg_recvlogical.c:716 +#: pg_recvlogical.c:741 #, c-format msgid "invalid fsync interval \"%s\"" msgstr "intervalle fsync « %s » invalide" -#: pg_recvlogical.c:754 +#: pg_recvlogical.c:779 #, c-format msgid "could not parse start position \"%s\"" msgstr "n'a pas pu analyser la position de départ « %s »" -#: pg_recvlogical.c:843 +#: pg_recvlogical.c:868 #, c-format msgid "no slot specified" msgstr "aucun slot de réplication indiqué" -#: pg_recvlogical.c:851 +#: pg_recvlogical.c:876 #, c-format msgid "no target file specified" msgstr "aucun fichier cible indiqué" -#: pg_recvlogical.c:859 +#: pg_recvlogical.c:884 #, c-format msgid "no database specified" msgstr "aucune base de données indiquée" -#: pg_recvlogical.c:867 +#: pg_recvlogical.c:892 #, c-format msgid "at least one action needs to be specified" msgstr "au moins une action doit être indiquée" -#: pg_recvlogical.c:875 +#: pg_recvlogical.c:900 #, c-format msgid "cannot use --create-slot or --start together with --drop-slot" msgstr "ne peut pas utiliser --create-slot ou --start avec --drop-slot" -#: pg_recvlogical.c:883 +#: pg_recvlogical.c:908 #, c-format msgid "cannot use --create-slot or --drop-slot together with --startpos" msgstr "ne peut pas utiliser --create-slot ou --drop-slot avec --startpos" -#: pg_recvlogical.c:891 +#: pg_recvlogical.c:916 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos peut seulement être spécifié avec --start" -#: pg_recvlogical.c:922 +#: pg_recvlogical.c:950 #, c-format msgid "could not establish database-specific replication connection" msgstr "n'a pas pu établir une connexion de réplication spécifique à la base" -#: pg_recvlogical.c:1021 +#: pg_recvlogical.c:1049 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "position finale %X/%X atteinte par keepalive" -#: pg_recvlogical.c:1024 +#: pg_recvlogical.c:1052 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "position finale %X/%X atteinte à l'enregistrement WAL %X/%X" @@ -1277,139 +1293,144 @@ msgid "could not create archive status file \"%s\": %s" msgstr "n'a pas pu créer le fichier de statut d'archivage « %s » : %s" -#: receivelog.c:116 +#: receivelog.c:76 +#, c-format +msgid "could not close archive status file \"%s\": %s" +msgstr "n'a pas pu fermer le fichier de statut d'archivage « %s » : %s" + +#: receivelog.c:124 #, c-format msgid "could not get size of write-ahead log file \"%s\": %s" msgstr "n'a pas pu obtenir la taille du journal de transactions « %s » : %s" -#: receivelog.c:126 +#: receivelog.c:135 #, c-format msgid "could not open existing write-ahead log file \"%s\": %s" msgstr "n'a pas pu ouvrir le journal des transactions « %s » existant : %s" -#: receivelog.c:134 +#: receivelog.c:144 #, c-format msgid "could not fsync existing write-ahead log file \"%s\": %s" msgstr "n'a pas pu synchroniser sur disque le journal de transactions « %s » existant : %s" -#: receivelog.c:148 +#: receivelog.c:159 #, c-format msgid "write-ahead log file \"%s\" has %d byte, should be 0 or %d" msgid_plural "write-ahead log file \"%s\" has %d bytes, should be 0 or %d" msgstr[0] "le journal de transactions « %s » comprend %d octet, cela devrait être 0 ou %d" msgstr[1] "le journal de transactions « %s » comprend %d octets, cela devrait être 0 ou %d" -#: receivelog.c:163 +#: receivelog.c:175 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "n'a pas pu ouvrir le journal de transactions « %s » : %s" -#: receivelog.c:189 +#: receivelog.c:203 #, c-format msgid "could not determine seek position in file \"%s\": %s" msgstr "n'a pas pu déterminer la position de recherche dans le fichier d'archive « %s » : %s" -#: receivelog.c:203 +#: receivelog.c:217 #, c-format msgid "not renaming \"%s%s\", segment is not complete" msgstr "pas de renommage de « %s%s », le segment n'est pas complet" -#: receivelog.c:215 receivelog.c:300 receivelog.c:675 +#: receivelog.c:229 receivelog.c:314 receivelog.c:689 #, c-format msgid "could not close file \"%s\": %s" msgstr "n'a pas pu fermer le fichier « %s » : %s" -#: receivelog.c:272 +#: receivelog.c:286 #, c-format msgid "server reported unexpected history file name for timeline %u: %s" msgstr "le serveur a renvoyé un nom de fichier historique inattendu pour la timeline %u : %s" -#: receivelog.c:280 +#: receivelog.c:294 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "n'a pas pu créer le fichier historique de la timeline « %s » : %s" -#: receivelog.c:287 +#: receivelog.c:301 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "n'a pas pu écrire dans le fichier historique de la timeline « %s » : %s" -#: receivelog.c:377 +#: receivelog.c:391 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions older than %s" msgstr "version %s du serveur incompatible ; le client ne supporte pas le streaming de versions plus anciennes que %s" -#: receivelog.c:386 +#: receivelog.c:400 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions newer than %s" msgstr "version %s du serveur incompatible ; le client ne supporte pas le streaming de versions plus récentes que %s" -#: receivelog.c:488 streamutil.c:430 streamutil.c:467 +#: receivelog.c:502 streamutil.c:429 streamutil.c:466 #, c-format msgid "could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "n'a pas pu identifier le système : a récupéré %d lignes et %d champs, attendait %d lignes et %d champs (ou plus)." -#: receivelog.c:495 +#: receivelog.c:509 #, c-format msgid "system identifier does not match between base backup and streaming connection" msgstr "l'identifiant système ne correspond pas entre la sauvegarde des fichiers et la connexion de réplication" -#: receivelog.c:501 +#: receivelog.c:515 #, c-format msgid "starting timeline %u is not present in the server" msgstr "la timeline %u de départ n'est pas dans le serveur" -#: receivelog.c:542 +#: receivelog.c:556 #, c-format msgid "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, expected %d rows and %d fields" msgstr "réponse inattendue à la commande TIMELINE_HISTORY : a récupéré %d lignes et %d champs, alors qu'il attendait %d lignes et %d champs" -#: receivelog.c:613 +#: receivelog.c:627 #, c-format msgid "server reported unexpected next timeline %u, following timeline %u" msgstr "le serveur a renvoyé une timeline suivante %u inattendue, après la timeline %u" -#: receivelog.c:619 +#: receivelog.c:633 #, c-format msgid "server stopped streaming timeline %u at %X/%X, but reported next timeline %u to begin at %X/%X" msgstr "le serveur a arrêté l'envoi de la timeline %u à %X/%X, mais a indiqué que la timeline suivante, %u, commence à %X/%X" -#: receivelog.c:659 +#: receivelog.c:673 #, c-format msgid "replication stream was terminated before stop point" msgstr "le flux de réplication a été abandonné avant d'arriver au point d'arrêt" -#: receivelog.c:705 +#: receivelog.c:719 #, c-format msgid "unexpected result set after end-of-timeline: got %d rows and %d fields, expected %d rows and %d fields" msgstr "ensemble de résultats inattendu après la fin de la timeline : a récupéré %d lignes et %d champs, alors qu'il attendait %d lignes et %d champs" -#: receivelog.c:714 +#: receivelog.c:728 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "n'a pas pu analyser la position de départ de la prochaine timeline « %s »" -#: receivelog.c:763 receivelog.c:1015 +#: receivelog.c:777 receivelog.c:1029 walmethods.c:991 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %s" -#: receivelog.c:1078 +#: receivelog.c:1092 #, c-format msgid "received write-ahead log record for offset %u with no file open" msgstr "a reçu l'enregistrement du journal de transactions pour le décalage %u sans fichier ouvert" -#: receivelog.c:1088 +#: receivelog.c:1102 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "a obtenu le décalage %08x pour les données du journal, attendait %08x" -#: receivelog.c:1122 +#: receivelog.c:1136 #, c-format msgid "could not write %u bytes to WAL file \"%s\": %s" msgstr "n'a pas pu écrire %u octets dans le journal de transactions « %s » : %s" -#: receivelog.c:1147 receivelog.c:1187 receivelog.c:1218 +#: receivelog.c:1161 receivelog.c:1201 receivelog.c:1232 #, c-format msgid "could not send copy-end packet: %s" msgstr "n'a pas pu envoyer le paquet de fin de copie : %s" @@ -1423,92 +1444,87 @@ msgid "could not connect to server" msgstr "n'a pas pu se connecter au serveur" -#: streamutil.c:202 -#, c-format -msgid "could not connect to server: %s" -msgstr "n'a pas pu se connecter au serveur : %s" - -#: streamutil.c:231 +#: streamutil.c:230 #, c-format msgid "could not clear search_path: %s" msgstr "n'a pas pu effacer search_path : %s" -#: streamutil.c:247 +#: streamutil.c:246 #, c-format msgid "could not determine server setting for integer_datetimes" msgstr "n'a pas pu déterminer la configuration serveur de integer_datetimes" -#: streamutil.c:254 +#: streamutil.c:253 #, c-format msgid "integer_datetimes compile flag does not match server" msgstr "l'option de compilation integer_datetimes ne correspond pas au serveur" -#: streamutil.c:305 +#: streamutil.c:304 #, c-format msgid "could not fetch WAL segment size: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "n'a pas pu récupéré la taille d'un segment WAL : a obtenu %d lignes et %d champs, attendait %d lignes et %d champs (ou plus)" -#: streamutil.c:315 +#: streamutil.c:314 #, c-format msgid "WAL segment size could not be parsed" msgstr "la taille du segment WAL n'a pas pu être analysée" -#: streamutil.c:333 +#: streamutil.c:332 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d bytes" msgstr[0] "la taille d'un WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go mais le serveur distant a rapporté une valeur de %d octet" msgstr[1] "la taille d'un WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go mais le serveur distant a rapporté une valeur de %d octets" -#: streamutil.c:378 +#: streamutil.c:377 #, c-format msgid "could not fetch group access flag: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "n'a pas pu récupérer les options d'accès du groupe : a obtenu %d lignes et %d champs, attendait %d lignes et %d champs (ou plus)" -#: streamutil.c:387 +#: streamutil.c:386 #, c-format msgid "group access flag could not be parsed: %s" msgstr "l'option d'accès du groupe n'a pas pu être analysé : %s" -#: streamutil.c:544 +#: streamutil.c:543 #, c-format msgid "could not create replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "n'a pas pu créer le slot de réplication « %s » : a récupéré %d lignes et %d champs, attendait %d lignes et %d champs" -#: streamutil.c:588 +#: streamutil.c:587 #, c-format msgid "could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "n'a pas pu supprimer le slot de réplication « %s » : a récupéré %d lignes et %d champs, attendait %d lignes et %d champs" -#: walmethods.c:438 walmethods.c:927 +#: walmethods.c:521 walmethods.c:1054 msgid "could not compress data" msgstr "n'a pas pu compresser les données" -#: walmethods.c:470 +#: walmethods.c:550 msgid "could not reset compression stream" msgstr "n'a pas pu réinitialiser le flux de compression" -#: walmethods.c:568 +#: walmethods.c:670 msgid "could not initialize compression library" msgstr "n'a pas pu initialiser la bibliothèque de compression" -#: walmethods.c:580 +#: walmethods.c:681 msgid "implementation error: tar files can't have more than one open file" msgstr "erreur d'implémentation : les fichiers tar ne peuvent pas avoir plus d'un fichier ouvert" -#: walmethods.c:594 +#: walmethods.c:695 msgid "could not create tar header" msgstr "n'a pas pu créer l'en-tête du fichier tar" -#: walmethods.c:608 walmethods.c:648 walmethods.c:843 walmethods.c:854 +#: walmethods.c:711 walmethods.c:749 walmethods.c:963 walmethods.c:974 msgid "could not change compression parameters" msgstr "n'a pas pu modifier les paramètres de compression" -#: walmethods.c:730 +#: walmethods.c:848 msgid "unlink not supported with compression" msgstr "suppression non supportée avec la compression" -#: walmethods.c:952 +#: walmethods.c:1078 msgid "could not close compression stream" msgstr "n'a pas pu fermer le flux de compression" @@ -1519,252 +1535,256 @@ #~ "\n" #~ "Rapporter les bogues à .\n" -#~ msgid "deflate failed" -#~ msgstr "échec en décompression" - -#~ msgid "deflateReset failed" -#~ msgstr "échec de deflateReset" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help affiche cette aide et quitte\n" -#~ msgid "deflateInit2 failed" -#~ msgstr "échec de deflateInit2" +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version affiche la version et quitte\n" -#~ msgid "deflateParams failed" -#~ msgstr "échec de deflateParams" +#~ msgid " -?, --help show this help, then exit\n" +#~ msgstr " -?, --help affiche cette aide puis quitte\n" -#~ msgid "deflateEnd failed" -#~ msgstr "échec de deflateEnd" +#~ msgid " -V, --version output version information, then exit\n" +#~ msgstr " -V, --version affiche la version puis quitte\n" #~ msgid " -x, --xlog include required WAL files in backup (fetch mode)\n" #~ msgstr "" #~ " -x, --xlog inclut les journaux de transactions nécessaires\n" #~ " dans la sauvegarde (mode fetch)\n" -#~ msgid "%s: cannot specify both --xlog and --xlog-method\n" -#~ msgstr "%s : ne peut pas spécifier à la fois --xlog et --xlog-method\n" +#~ msgid "%s: WAL directory \"%s\" not removed at user's request\n" +#~ msgstr "%s : répertoire des journaux de transactions « %s » non supprimé à la demande de l'utilisateur\n" + +#~ msgid "%s: WAL directory location must be an absolute path\n" +#~ msgstr "" +#~ "%s : l'emplacement du répertoire des journaux de transactions doit être\n" +#~ "indiqué avec un chemin absolu\n" #~ msgid "%s: WAL streaming can only be used in plain mode\n" #~ msgstr "%s : le flux de journaux de transactions peut seulement être utilisé en mode plain\n" -#~ msgid "%s: could not stat transaction log file \"%s\": %s\n" -#~ msgstr "" -#~ "%s : n'a pas pu récupérer les informations sur le journal de transactions\n" -#~ "« %s » : %s\n" - -#~ msgid "%s: could not pad transaction log file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu remplir de zéros le journal de transactions « %s » : %s\n" +#~ msgid "%s: cannot specify both --xlog and --xlog-method\n" +#~ msgstr "%s : ne peut pas spécifier à la fois --xlog et --xlog-method\n" -#~ msgid "%s: could not seek to beginning of transaction log file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu rechercher le début du journal de transaction « %s » : %s\n" +#~ msgid "%s: child process did not exit normally\n" +#~ msgstr "%s : le processus fils n'a pas quitté normalement\n" -#~ msgid "%s: could not rename file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu renommer le fichier « %s » : %s\n" +#~ msgid "%s: child process exited with error %d\n" +#~ msgstr "%s : le processus fils a quitté avec le code erreur %d\n" -#~ msgid "%s: could not open timeline history file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le journal historique de la timeline « %s » : %s\n" +#~ msgid "%s: could not access directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu accéder au répertoire « %s » : %s\n" -#~ msgid "%s: could not parse file size\n" -#~ msgstr "%s : n'a pas pu analyser la taille du fichier\n" +#~ msgid "%s: could not clear search_path: %s" +#~ msgstr "%s : n'a pas pu effacer search_path : %s" -#~ msgid "%s: could not parse file mode\n" -#~ msgstr "%s : n'a pas pu analyser le mode du fichier\n" +#~ msgid "%s: could not close directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu fermer le répertoire « %s » : %s\n" -#~ msgid "%s: could not parse transaction log file name \"%s\"\n" -#~ msgstr "%s : n'a pas pu analyser le nom du journal de transactions « %s »\n" +#~ msgid "%s: could not close file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu fermer le fichier « %s » : %s\n" #~ msgid "%s: could not close file %s: %s\n" #~ msgstr "%s : n'a pas pu fermer le fichier %s : %s\n" -#~ msgid " -V, --version output version information, then exit\n" -#~ msgstr " -V, --version affiche la version puis quitte\n" - -#~ msgid " -?, --help show this help, then exit\n" -#~ msgstr " -?, --help affiche cette aide puis quitte\n" - -#~ msgid "%s: invalid format of xlog location: %s\n" -#~ msgstr "%s : format invalide de l'emplacement du journal de transactions : %s\n" - -#~ msgid "%s: could not identify system: %s" -#~ msgstr "%s : n'a pas pu identifier le système : %s" +#~ msgid "%s: could not connect to server\n" +#~ msgstr "%s : n'a pas pu se connecter au serveur\n" -#~ msgid "%s: could not send base backup command: %s" -#~ msgstr "%s : n'a pas pu envoyer la commande de sauvegarde de base : %s" +#~ msgid "%s: could not connect to server: %s" +#~ msgstr "%s : n'a pas pu se connecter au serveur : %s" -#~ msgid "%s: could not identify system: %s\n" -#~ msgstr "%s : n'a pas pu identifier le système : %s\n" +#~ msgid "%s: could not create archive status file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu créer le fichier de statut d'archivage « %s » : %s\n" -#~ msgid "%s: could not parse log start position from value \"%s\"\n" -#~ msgstr "%s : n'a pas pu analyser la position de départ des WAL à partir de la valeur « %s »\n" +#~ msgid "%s: could not create directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu créer le répertoire « %s » : %s\n" -#~ msgid "%s: could not open WAL segment %s: %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le segment WAL %s : %s\n" +#~ msgid "%s: could not create file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu créer le fichier « %s » : %s\n" -#~ msgid "%s: could not stat WAL segment %s: %s\n" -#~ msgstr "%s : n'a pas pu récupérer les informations sur le segment WAL %s : %s\n" +#~ msgid "%s: could not create symbolic link \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu créer le lien symbolique « %s » : %s\n" -#~ msgid "%s: could not pad WAL segment %s: %s\n" -#~ msgstr "%s : n'a pas pu terminer le segment WAL %s : %s\n" +#~ msgid "%s: could not fsync file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu synchroniser sur disque le fichier « %s » : %s\n" -#~ msgid "%s: could not seek back to beginning of WAL segment %s: %s\n" -#~ msgstr "%s : n'a pas pu se déplacer au début du segment WAL %s : %s\n" +#~ msgid "%s: could not fsync log file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu synchroniser sur disque le fichier « %s » : %s\n" #~ msgid "%s: could not get current position in file %s: %s\n" #~ msgstr "%s : n'a pas pu obtenir la position courant dans le fichier %s : %s\n" -#~ msgid "%s: could not read copy data: %s\n" -#~ msgstr "%s : n'a pas pu lire les données du COPY : %s\n" - -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide et quitte\n" - -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version et quitte\n" +#~ msgid "%s: could not identify system: %s" +#~ msgstr "%s : n'a pas pu identifier le système : %s" -#~ msgid "%s: keepalive message has incorrect size %d\n" -#~ msgstr "%s : le message keepalive a une taille %d incorrecte\n" +#~ msgid "%s: could not identify system: %s\n" +#~ msgstr "%s : n'a pas pu identifier le système : %s\n" -#~ msgid "%s: timeline does not match between base backup and streaming connection\n" +#~ msgid "%s: could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields\n" #~ msgstr "" -#~ "%s : la timeline ne correspond pas entre la sauvegarde des fichiers et la\n" -#~ "connexion de réplication\n" - -#~ msgid "%s: no start point returned from server\n" -#~ msgstr "%s : aucun point de redémarrage renvoyé du serveur\n" +#~ "%s : n'a pas pu identifier le système, a récupéré %d lignes et %d champs,\n" +#~ "attendait %d lignes et %d champs (ou plus)\n" -#~ msgid "%s: socket not open" -#~ msgstr "%s : socket non ouvert" +#~ msgid "%s: could not open WAL segment %s: %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le segment WAL %s : %s\n" -#~ msgid "%s: could not clear search_path: %s" -#~ msgstr "%s : n'a pas pu effacer search_path : %s" +#~ msgid "%s: could not open directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le répertoire « %s » : %s\n" -#~ msgid "%s: could not connect to server: %s" -#~ msgstr "%s : n'a pas pu se connecter au serveur : %s" +#~ msgid "%s: could not open file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n" -#~ msgid "%s: could not connect to server\n" -#~ msgstr "%s : n'a pas pu se connecter au serveur\n" +#~ msgid "%s: could not open log file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le journal applicatif « %s » : %s\n" -#~ msgid "%s: could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields\n" -#~ msgstr "" -#~ "%s : n'a pas pu identifier le système, a récupéré %d lignes et %d champs,\n" -#~ "attendait %d lignes et %d champs (ou plus)\n" +#~ msgid "%s: could not open timeline history file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le journal historique de la timeline « %s » : %s\n" #~ msgid "%s: could not open write-ahead log file \"%s\": %s\n" #~ msgstr "%s : n'a pas pu ouvrir le journal de transactions « %s » : %s\n" -#~ msgid "%s: could not create archive status file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu créer le fichier de statut d'archivage « %s » : %s\n" +#~ msgid "%s: could not pad WAL segment %s: %s\n" +#~ msgstr "%s : n'a pas pu terminer le segment WAL %s : %s\n" -#~ msgid "%s: could not receive data from WAL stream: %s" -#~ msgstr "%s : n'a pas pu recevoir des données du flux de WAL : %s" +#~ msgid "%s: could not pad transaction log file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu remplir de zéros le journal de transactions « %s » : %s\n" -#~ msgid "%s: select() failed: %s\n" -#~ msgstr "%s : échec de select() : %s\n" +#~ msgid "%s: could not parse file mode\n" +#~ msgstr "%s : n'a pas pu analyser le mode du fichier\n" -#~ msgid "%s: invalid socket: %s" -#~ msgstr "%s : socket invalide : %s" +#~ msgid "%s: could not parse file size\n" +#~ msgstr "%s : n'a pas pu analyser la taille du fichier\n" -#~ msgid "%s: could not open log file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le journal applicatif « %s » : %s\n" +#~ msgid "%s: could not parse log start position from value \"%s\"\n" +#~ msgstr "%s : n'a pas pu analyser la position de départ des WAL à partir de la valeur « %s »\n" -#~ msgid "%s: could not fsync log file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu synchroniser sur disque le fichier « %s » : %s\n" +#~ msgid "%s: could not parse transaction log file name \"%s\"\n" +#~ msgstr "%s : n'a pas pu analyser le nom du journal de transactions « %s »\n" -#~ msgid "%s: invalid port number \"%s\"\n" -#~ msgstr "%s : numéro de port invalide : « %s »\n" +#~ msgid "%s: could not read copy data: %s\n" +#~ msgstr "%s : n'a pas pu lire les données du COPY : %s\n" -#~ msgid "%s: could not close directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu fermer le répertoire « %s » : %s\n" +#~ msgid "%s: could not read directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n" -#~ msgid "%s: symlinks are not supported on this platform\n" -#~ msgstr "%s : les liens symboliques ne sont pas supportés sur cette plateforme\n" +#~ msgid "%s: could not receive data from WAL stream: %s" +#~ msgstr "%s : n'a pas pu recevoir des données du flux de WAL : %s" -#~ msgid "%s: could not create symbolic link \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu créer le lien symbolique « %s » : %s\n" +#~ msgid "%s: could not rename file \"%s\" to \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu renommer le fichier « %s » en « %s » : %s\n" -#~ msgid "%s: WAL directory location must be an absolute path\n" -#~ msgstr "" -#~ "%s : l'emplacement du répertoire des journaux de transactions doit être\n" -#~ "indiqué avec un chemin absolu\n" +#~ msgid "%s: could not rename file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu renommer le fichier « %s » : %s\n" -#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" -#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" +#~ msgid "%s: could not seek back to beginning of WAL segment %s: %s\n" +#~ msgstr "%s : n'a pas pu se déplacer au début du segment WAL %s : %s\n" -#~ msgid "%s: child process exited with error %d\n" -#~ msgstr "%s : le processus fils a quitté avec le code erreur %d\n" +#~ msgid "%s: could not seek to beginning of transaction log file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu rechercher le début du journal de transaction « %s » : %s\n" -#~ msgid "%s: child process did not exit normally\n" -#~ msgstr "%s : le processus fils n'a pas quitté normalement\n" +#~ msgid "%s: could not send base backup command: %s" +#~ msgstr "%s : n'a pas pu envoyer la commande de sauvegarde de base : %s" -#~ msgid "%s: out of memory\n" -#~ msgstr "%s : mémoire épuisée\n" +#~ msgid "%s: could not set permissions on directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas configurer les droits sur le répertoire « %s » : %s\n" #~ msgid "%s: could not set permissions on file \"%s\": %s\n" #~ msgstr "%s : n'a pas pu configurer les droits sur le fichier « %s » : %s\n" -#~ msgid "%s: could not set permissions on directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas configurer les droits sur le répertoire « %s » : %s\n" +#~ msgid "%s: could not stat WAL segment %s: %s\n" +#~ msgstr "%s : n'a pas pu récupérer les informations sur le segment WAL %s : %s\n" -#~ msgid "%s: could not close file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu fermer le fichier « %s » : %s\n" +#~ msgid "%s: could not stat file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu récupérer les informations sur le fichier « %s » : %s\n" -#~ msgid "%s: could not create file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu créer le fichier « %s » : %s\n" +#~ msgid "%s: could not stat transaction log file \"%s\": %s\n" +#~ msgstr "" +#~ "%s : n'a pas pu récupérer les informations sur le journal de transactions\n" +#~ "« %s » : %s\n" #~ msgid "%s: could not write to file \"%s\": %s\n" #~ msgstr "%s : n'a pas pu écrire dans le fichier « %s » : %s\n" -#~ msgid "%s: could not access directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu accéder au répertoire « %s » : %s\n" +#~ msgid "%s: data directory \"%s\" not removed at user's request\n" +#~ msgstr "%s : répertoire des données « %s » non supprimé à la demande de l'utilisateur\n" #~ msgid "%s: directory \"%s\" exists but is not empty\n" #~ msgstr "%s : le répertoire « %s » existe mais n'est pas vide\n" -#~ msgid "%s: could not create directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu créer le répertoire « %s » : %s\n" - -#~ msgid "%s: WAL directory \"%s\" not removed at user's request\n" -#~ msgstr "%s : répertoire des journaux de transactions « %s » non supprimé à la demande de l'utilisateur\n" - -#~ msgid "%s: data directory \"%s\" not removed at user's request\n" -#~ msgstr "%s : répertoire des données « %s » non supprimé à la demande de l'utilisateur\n" +#~ msgid "%s: failed to remove WAL directory\n" +#~ msgstr "%s : échec de la suppression du répertoire des journaux de transactions\n" #~ msgid "%s: failed to remove contents of WAL directory\n" #~ msgstr "%s : échec de la suppression du contenu du répertoire des journaux de transactions\n" -#~ msgid "%s: removing contents of WAL directory \"%s\"\n" -#~ msgstr "%s : suppression du contenu du répertoire des journaux de transactions « %s »\n" +#~ msgid "%s: failed to remove contents of data directory\n" +#~ msgstr "%s : échec de la suppression du contenu du répertoire des données\n" -#~ msgid "%s: failed to remove WAL directory\n" -#~ msgstr "%s : échec de la suppression du répertoire des journaux de transactions\n" +#~ msgid "%s: failed to remove data directory\n" +#~ msgstr "%s : échec de la suppression du répertoire des données\n" + +#~ msgid "%s: invalid format of xlog location: %s\n" +#~ msgstr "%s : format invalide de l'emplacement du journal de transactions : %s\n" + +#~ msgid "%s: invalid port number \"%s\"\n" +#~ msgstr "%s : numéro de port invalide : « %s »\n" + +#~ msgid "%s: invalid socket: %s" +#~ msgstr "%s : socket invalide : %s" + +#~ msgid "%s: keepalive message has incorrect size %d\n" +#~ msgstr "%s : le message keepalive a une taille %d incorrecte\n" + +#~ msgid "%s: no start point returned from server\n" +#~ msgstr "%s : aucun point de redémarrage renvoyé du serveur\n" + +#~ msgid "%s: out of memory\n" +#~ msgstr "%s : mémoire épuisée\n" #~ msgid "%s: removing WAL directory \"%s\"\n" #~ msgstr "%s : suppression du répertoire des journaux de transactions « %s »\n" -#~ msgid "%s: failed to remove contents of data directory\n" -#~ msgstr "%s : échec de la suppression du contenu du répertoire des données\n" +#~ msgid "%s: removing contents of WAL directory \"%s\"\n" +#~ msgstr "%s : suppression du contenu du répertoire des journaux de transactions « %s »\n" #~ msgid "%s: removing contents of data directory \"%s\"\n" #~ msgstr "%s : suppression du contenu du répertoire des données « %s »\n" -#~ msgid "%s: failed to remove data directory\n" -#~ msgstr "%s : échec de la suppression du répertoire des données\n" - #~ msgid "%s: removing data directory \"%s\"\n" #~ msgstr "%s : suppression du répertoire des données « %s »\n" -#~ msgid "%s: could not rename file \"%s\" to \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu renommer le fichier « %s » en « %s » : %s\n" +#~ msgid "%s: select() failed: %s\n" +#~ msgstr "%s : échec de select() : %s\n" -#~ msgid "%s: could not fsync file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu synchroniser sur disque le fichier « %s » : %s\n" +#~ msgid "%s: socket not open" +#~ msgstr "%s : socket non ouvert" -#~ msgid "%s: could not open file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n" +#~ msgid "%s: symlinks are not supported on this platform\n" +#~ msgstr "%s : les liens symboliques ne sont pas supportés sur cette plateforme\n" -#~ msgid "%s: could not read directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n" +#~ msgid "%s: timeline does not match between base backup and streaming connection\n" +#~ msgstr "" +#~ "%s : la timeline ne correspond pas entre la sauvegarde des fichiers et la\n" +#~ "connexion de réplication\n" -#~ msgid "%s: could not open directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le répertoire « %s » : %s\n" +#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" +#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" -#~ msgid "%s: could not stat file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu récupérer les informations sur le fichier « %s » : %s\n" +#, c-format +#~ msgid "could not connect to server: %s" +#~ msgstr "n'a pas pu se connecter au serveur : %s" + +#~ msgid "deflate failed" +#~ msgstr "échec en décompression" + +#~ msgid "deflateEnd failed" +#~ msgstr "échec de deflateEnd" + +#~ msgid "deflateInit2 failed" +#~ msgstr "échec de deflateInit2" + +#~ msgid "deflateParams failed" +#~ msgstr "échec de deflateParams" + +#~ msgid "deflateReset failed" +#~ msgstr "échec de deflateReset" diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/po/ru.po postgresql-13-13.7/src/bin/pg_basebackup/po/ru.po --- postgresql-13-13.4/src/bin/pg_basebackup/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,13 +1,13 @@ # Russian message translation file for pg_basebackup # Copyright (C) 2012-2016 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022. msgid "" msgstr "" "Project-Id-Version: pg_basebackup (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-11-09 07:34+0300\n" -"PO-Revision-Date: 2020-09-03 17:44+0300\n" +"POT-Creation-Date: 2021-11-22 13:19+0300\n" +"PO-Revision-Date: 2022-02-07 11:30+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -44,7 +44,7 @@ msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" #: ../../common/file_utils.c:79 ../../common/file_utils.c:181 -#: pg_receivewal.c:266 pg_recvlogical.c:340 +#: pg_receivewal.c:266 pg_recvlogical.c:339 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не удалось получить информацию о файле \"%s\": %m" @@ -83,14 +83,14 @@ msgid "out of memory" msgstr "нехватка памяти" -#: ../../fe_utils/recovery_gen.c:140 pg_basebackup.c:1021 pg_basebackup.c:1714 -#: pg_basebackup.c:1770 +#: ../../fe_utils/recovery_gen.c:140 pg_basebackup.c:1021 pg_basebackup.c:1715 +#: pg_basebackup.c:1771 #, c-format msgid "could not write to file \"%s\": %m" -msgstr "не удалось записать файл \"%s\": %m" +msgstr "не удалось записать в файл \"%s\": %m" -#: ../../fe_utils/recovery_gen.c:152 pg_basebackup.c:1166 pg_basebackup.c:1671 -#: pg_basebackup.c:1747 +#: ../../fe_utils/recovery_gen.c:152 pg_basebackup.c:1166 pg_basebackup.c:1672 +#: pg_basebackup.c:1748 #, c-format msgid "could not create file \"%s\": %m" msgstr "не удалось создать файл \"%s\": %m" @@ -466,7 +466,7 @@ msgid "could not read from ready pipe: %m" msgstr "не удалось прочитать из готового канала: %m" -#: pg_basebackup.c:477 pg_basebackup.c:608 pg_basebackup.c:2133 +#: pg_basebackup.c:477 pg_basebackup.c:608 pg_basebackup.c:2134 #: streamutil.c:449 #, c-format msgid "could not parse write-ahead log location \"%s\"" @@ -492,7 +492,7 @@ msgid "created replication slot \"%s\"" msgstr "создан слот репликации \"%s\"" -#: pg_basebackup.c:678 pg_basebackup.c:731 pg_basebackup.c:1620 +#: pg_basebackup.c:678 pg_basebackup.c:731 pg_basebackup.c:1621 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не удалось создать каталог \"%s\": %m" @@ -576,8 +576,8 @@ msgid "could not get COPY data stream: %s" msgstr "не удалось получить поток данных COPY: %s" -#: pg_basebackup.c:981 pg_recvlogical.c:435 pg_recvlogical.c:607 -#: receivelog.c:965 +#: pg_basebackup.c:981 pg_recvlogical.c:434 pg_recvlogical.c:606 +#: receivelog.c:979 #, c-format msgid "could not read COPY data: %s" msgstr "не удалось прочитать данные COPY: %s" @@ -607,77 +607,77 @@ msgid "could not create compressed file \"%s\": %s" msgstr "не удалось создать сжатый файл \"%s\": %s" -#: pg_basebackup.c:1267 +#: pg_basebackup.c:1268 #, c-format -msgid "could not close compressed file \"%s\": %s" -msgstr "не удалось закрыть сжатый файл \"%s\": %s" +msgid "could not close compressed file \"%s\": %m" +msgstr "не удалось закрыть сжатый файл \"%s\": %m" -#: pg_basebackup.c:1279 pg_recvlogical.c:632 +#: pg_basebackup.c:1280 pg_recvlogical.c:631 #, c-format msgid "could not close file \"%s\": %m" msgstr "не удалось закрыть файл \"%s\": %m" -#: pg_basebackup.c:1541 +#: pg_basebackup.c:1542 #, c-format msgid "COPY stream ended before last file was finished" msgstr "поток COPY закончился до завершения последнего файла" -#: pg_basebackup.c:1570 +#: pg_basebackup.c:1571 #, c-format msgid "invalid tar block header size: %zu" msgstr "неверный размер заголовка блока tar: %zu" -#: pg_basebackup.c:1627 +#: pg_basebackup.c:1628 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "не удалось установить права для каталога \"%s\": %m" -#: pg_basebackup.c:1651 +#: pg_basebackup.c:1652 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "не удалось создать символическую ссылку \"%s\" в \"%s\": %m" -#: pg_basebackup.c:1658 +#: pg_basebackup.c:1659 #, c-format msgid "unrecognized link indicator \"%c\"" msgstr "нераспознанный индикатор связи \"%c\"" -#: pg_basebackup.c:1677 +#: pg_basebackup.c:1678 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "не удалось установить права доступа для файла \"%s\": %m" -#: pg_basebackup.c:1831 +#: pg_basebackup.c:1832 #, c-format msgid "incompatible server version %s" msgstr "несовместимая версия сервера %s" -#: pg_basebackup.c:1846 +#: pg_basebackup.c:1847 #, c-format msgid "HINT: use -X none or -X fetch to disable log streaming" msgstr "" "ПОДСКАЗКА: укажите -X none или -X fetch для отключения трансляции журнала" -#: pg_basebackup.c:1882 +#: pg_basebackup.c:1883 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "" "начинается базовое резервное копирование, ожидается завершение контрольной " "точки" -#: pg_basebackup.c:1908 pg_recvlogical.c:262 receivelog.c:481 receivelog.c:530 -#: receivelog.c:569 streamutil.c:296 streamutil.c:369 streamutil.c:421 +#: pg_basebackup.c:1909 pg_recvlogical.c:261 receivelog.c:495 receivelog.c:544 +#: receivelog.c:583 streamutil.c:296 streamutil.c:369 streamutil.c:421 #: streamutil.c:532 streamutil.c:577 #, c-format msgid "could not send replication command \"%s\": %s" msgstr "не удалось передать команду репликации \"%s\": %s" -#: pg_basebackup.c:1919 +#: pg_basebackup.c:1920 #, c-format msgid "could not initiate base backup: %s" msgstr "не удалось инициализировать базовое резервное копирование: %s" -#: pg_basebackup.c:1925 +#: pg_basebackup.c:1926 #, c-format msgid "" "server returned unexpected response to BASE_BACKUP command; got %d rows and " @@ -686,124 +686,124 @@ "сервер вернул неожиданный ответ на команду BASE_BACKUP; получено строк: %d, " "полей: %d, а ожидалось строк: %d, полей: %d" -#: pg_basebackup.c:1933 +#: pg_basebackup.c:1934 #, c-format msgid "checkpoint completed" msgstr "контрольная точка завершена" -#: pg_basebackup.c:1948 +#: pg_basebackup.c:1949 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "стартовая точка в журнале предзаписи: %s на линии времени %u" -#: pg_basebackup.c:1957 +#: pg_basebackup.c:1958 #, c-format msgid "could not get backup header: %s" msgstr "не удалось получить заголовок резервной копии: %s" -#: pg_basebackup.c:1963 +#: pg_basebackup.c:1964 #, c-format msgid "no data returned from server" msgstr "сервер не вернул данные" -#: pg_basebackup.c:1995 +#: pg_basebackup.c:1996 #, c-format msgid "can only write single tablespace to stdout, database has %d" msgstr "" "в stdout можно вывести только одно табличное пространство, всего в СУБД их %d" -#: pg_basebackup.c:2007 +#: pg_basebackup.c:2008 #, c-format msgid "starting background WAL receiver" msgstr "запуск фонового процесса считывания WAL" -#: pg_basebackup.c:2046 +#: pg_basebackup.c:2047 #, c-format msgid "could not get write-ahead log end position from server: %s" msgstr "" "не удалось получить от сервера конечную позицию в журнале предзаписи: %s" -#: pg_basebackup.c:2052 +#: pg_basebackup.c:2053 #, c-format msgid "no write-ahead log end position returned from server" msgstr "сервер не передал конечную позицию в журнале предзаписи" -#: pg_basebackup.c:2057 +#: pg_basebackup.c:2058 #, c-format msgid "write-ahead log end point: %s" msgstr "конечная точка в журнале предзаписи: %s" -#: pg_basebackup.c:2068 +#: pg_basebackup.c:2069 #, c-format msgid "checksum error occurred" msgstr "выявлена ошибка контрольной суммы" -#: pg_basebackup.c:2073 +#: pg_basebackup.c:2074 #, c-format msgid "final receive failed: %s" msgstr "ошибка в конце передачи: %s" -#: pg_basebackup.c:2097 +#: pg_basebackup.c:2098 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "ожидание завершения потоковой передачи фоновым процессом..." -#: pg_basebackup.c:2102 +#: pg_basebackup.c:2103 #, c-format msgid "could not send command to background pipe: %m" msgstr "не удалось отправить команду в канал фонового процесса: %m" -#: pg_basebackup.c:2110 +#: pg_basebackup.c:2111 #, c-format msgid "could not wait for child process: %m" msgstr "сбой при ожидании дочернего процесса: %m" -#: pg_basebackup.c:2115 +#: pg_basebackup.c:2116 #, c-format msgid "child %d died, expected %d" msgstr "завершился дочерний процесс %d вместо ожидаемого %d" -#: pg_basebackup.c:2120 streamutil.c:92 streamutil.c:202 +#: pg_basebackup.c:2121 streamutil.c:92 streamutil.c:202 #, c-format msgid "%s" msgstr "%s" -#: pg_basebackup.c:2145 +#: pg_basebackup.c:2146 #, c-format msgid "could not wait for child thread: %m" msgstr "сбой при ожидании дочернего потока: %m" -#: pg_basebackup.c:2151 +#: pg_basebackup.c:2152 #, c-format msgid "could not get child thread exit status: %m" msgstr "не удалось получить состояние завершения дочернего потока: %m" -#: pg_basebackup.c:2156 +#: pg_basebackup.c:2157 #, c-format msgid "child thread exited with error %u" msgstr "дочерний поток завершился с ошибкой %u" -#: pg_basebackup.c:2184 +#: pg_basebackup.c:2185 #, c-format msgid "syncing data to disk ..." msgstr "сохранение данных на диске..." -#: pg_basebackup.c:2209 +#: pg_basebackup.c:2210 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "переименование backup_manifest.tmp в backup_manifest" -#: pg_basebackup.c:2220 +#: pg_basebackup.c:2221 #, c-format msgid "base backup completed" msgstr "базовое резервное копирование завершено" -#: pg_basebackup.c:2305 +#: pg_basebackup.c:2306 #, c-format msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" msgstr "неверный формат вывода \"%s\", должен быть \"plain\" или \"tar\"" -#: pg_basebackup.c:2349 +#: pg_basebackup.c:2350 #, c-format msgid "" "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" @@ -811,114 +811,114 @@ "неверный аргумент для wal-method — \"%s\", допускается только \"fetch\", " "\"stream\" или \"none\"" -#: pg_basebackup.c:2377 pg_receivewal.c:580 +#: pg_basebackup.c:2378 pg_receivewal.c:580 #, c-format msgid "invalid compression level \"%s\"" msgstr "неверный уровень сжатия \"%s\"" -#: pg_basebackup.c:2388 +#: pg_basebackup.c:2389 #, c-format msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" msgstr "" "неверный аргумент режима контрольных точек \"%s\"; должен быть \"fast\" или " "\"spread\"" -#: pg_basebackup.c:2415 pg_receivewal.c:555 pg_recvlogical.c:820 +#: pg_basebackup.c:2416 pg_receivewal.c:555 pg_recvlogical.c:819 #, c-format msgid "invalid status interval \"%s\"" msgstr "неверный интервал сообщений о состоянии \"%s\"" -#: pg_basebackup.c:2445 pg_basebackup.c:2458 pg_basebackup.c:2469 -#: pg_basebackup.c:2480 pg_basebackup.c:2488 pg_basebackup.c:2496 -#: pg_basebackup.c:2506 pg_basebackup.c:2519 pg_basebackup.c:2527 -#: pg_basebackup.c:2538 pg_basebackup.c:2548 pg_basebackup.c:2565 -#: pg_basebackup.c:2573 pg_basebackup.c:2581 pg_receivewal.c:605 +#: pg_basebackup.c:2446 pg_basebackup.c:2459 pg_basebackup.c:2470 +#: pg_basebackup.c:2481 pg_basebackup.c:2489 pg_basebackup.c:2497 +#: pg_basebackup.c:2507 pg_basebackup.c:2520 pg_basebackup.c:2528 +#: pg_basebackup.c:2539 pg_basebackup.c:2549 pg_basebackup.c:2566 +#: pg_basebackup.c:2574 pg_basebackup.c:2582 pg_receivewal.c:605 #: pg_receivewal.c:618 pg_receivewal.c:626 pg_receivewal.c:636 -#: pg_receivewal.c:644 pg_receivewal.c:655 pg_recvlogical.c:846 -#: pg_recvlogical.c:859 pg_recvlogical.c:870 pg_recvlogical.c:878 -#: pg_recvlogical.c:886 pg_recvlogical.c:894 pg_recvlogical.c:902 -#: pg_recvlogical.c:910 pg_recvlogical.c:918 +#: pg_receivewal.c:644 pg_receivewal.c:655 pg_recvlogical.c:845 +#: pg_recvlogical.c:858 pg_recvlogical.c:869 pg_recvlogical.c:877 +#: pg_recvlogical.c:885 pg_recvlogical.c:893 pg_recvlogical.c:901 +#: pg_recvlogical.c:909 pg_recvlogical.c:917 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Для дополнительной информации попробуйте \"%s --help\".\n" -#: pg_basebackup.c:2456 pg_receivewal.c:616 pg_recvlogical.c:857 +#: pg_basebackup.c:2457 pg_receivewal.c:616 pg_recvlogical.c:856 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_basebackup.c:2468 pg_receivewal.c:654 +#: pg_basebackup.c:2469 pg_receivewal.c:654 #, c-format msgid "no target directory specified" msgstr "целевой каталог не указан" -#: pg_basebackup.c:2479 +#: pg_basebackup.c:2480 #, c-format msgid "only tar mode backups can be compressed" msgstr "сжиматься могут только резервные копии в архиве tar" -#: pg_basebackup.c:2487 +#: pg_basebackup.c:2488 #, c-format msgid "cannot stream write-ahead logs in tar mode to stdout" msgstr "транслировать журналы предзаписи в режиме tar в поток stdout нельзя" -#: pg_basebackup.c:2495 +#: pg_basebackup.c:2496 #, c-format msgid "replication slots can only be used with WAL streaming" msgstr "слоты репликации можно использовать только при потоковой передаче WAL" -#: pg_basebackup.c:2505 +#: pg_basebackup.c:2506 #, c-format msgid "--no-slot cannot be used with slot name" msgstr "--no-slot нельзя использовать с именем слота" #. translator: second %s is an option name -#: pg_basebackup.c:2517 pg_receivewal.c:634 +#: pg_basebackup.c:2518 pg_receivewal.c:634 #, c-format msgid "%s needs a slot to be specified using --slot" msgstr "для %s необходимо задать слот с помощью параметра --slot" -#: pg_basebackup.c:2526 +#: pg_basebackup.c:2527 #, c-format msgid "--create-slot and --no-slot are incompatible options" msgstr "параметры --create-slot и --no-slot несовместимы" -#: pg_basebackup.c:2537 +#: pg_basebackup.c:2538 #, c-format msgid "WAL directory location can only be specified in plain mode" -msgstr "расположение каталога журнала WAL можно указать только в режиме plain" +msgstr "расположение каталога WAL можно указать только в режиме plain" -#: pg_basebackup.c:2547 +#: pg_basebackup.c:2548 #, c-format msgid "WAL directory location must be an absolute path" -msgstr "расположение каталога журнала WAL должно определяться абсолютным путём" +msgstr "расположение каталога WAL должно определяться абсолютным путём" -#: pg_basebackup.c:2557 pg_receivewal.c:663 +#: pg_basebackup.c:2558 pg_receivewal.c:663 #, c-format msgid "this build does not support compression" msgstr "эта сборка программы не поддерживает сжатие" -#: pg_basebackup.c:2564 +#: pg_basebackup.c:2565 #, c-format msgid "--progress and --no-estimate-size are incompatible options" msgstr "параметры --progress и --no-estimate-size несовместимы" -#: pg_basebackup.c:2572 +#: pg_basebackup.c:2573 #, c-format msgid "--no-manifest and --manifest-checksums are incompatible options" msgstr "параметры --no-manifest и --manifest-checksums несовместимы" -#: pg_basebackup.c:2580 +#: pg_basebackup.c:2581 #, c-format msgid "--no-manifest and --manifest-force-encode are incompatible options" msgstr "параметры --no-manifest и --manifest-force-encode несовместимы" -#: pg_basebackup.c:2639 +#: pg_basebackup.c:2640 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не удалось создать символическую ссылку \"%s\": %m" -#: pg_basebackup.c:2643 +#: pg_basebackup.c:2644 #, c-format msgid "symlinks are not supported on this platform" msgstr "символические ссылки не поддерживаются в этой ОС" @@ -1091,12 +1091,12 @@ msgid "starting log streaming at %X/%X (timeline %u)" msgstr "начало передачи журнала с позиции %X/%X (линия времени %u)" -#: pg_receivewal.c:537 pg_recvlogical.c:762 +#: pg_receivewal.c:537 pg_recvlogical.c:761 #, c-format msgid "invalid port number \"%s\"" msgstr "неверный номер порта \"%s\"" -#: pg_receivewal.c:565 pg_recvlogical.c:788 +#: pg_receivewal.c:565 pg_recvlogical.c:787 #, c-format msgid "could not parse end position \"%s\"" msgstr "не удалось разобрать конечную позицию \"%s\"" @@ -1111,7 +1111,7 @@ msgid "cannot use --synchronous together with --no-sync" msgstr "--synchronous нельзя применять вместе с --no-sync" -#: pg_receivewal.c:719 +#: pg_receivewal.c:723 #, c-format msgid "" "replication connection using slot \"%s\" is unexpectedly database specific" @@ -1119,23 +1119,23 @@ "подключение для репликации через слот \"%s\" оказалось привязано к базе " "данных" -#: pg_receivewal.c:730 pg_recvlogical.c:966 +#: pg_receivewal.c:734 pg_recvlogical.c:968 #, c-format msgid "dropping replication slot \"%s\"" msgstr "удаление слота репликации \"%s\"" -#: pg_receivewal.c:741 pg_recvlogical.c:976 +#: pg_receivewal.c:745 pg_recvlogical.c:978 #, c-format msgid "creating replication slot \"%s\"" msgstr "создание слота репликации \"%s\"" -#: pg_receivewal.c:767 pg_recvlogical.c:1001 +#: pg_receivewal.c:771 pg_recvlogical.c:1003 #, c-format msgid "disconnected" msgstr "отключение" #. translator: check source for value for %d -#: pg_receivewal.c:773 pg_recvlogical.c:1007 +#: pg_receivewal.c:777 pg_recvlogical.c:1009 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "отключение; через %d сек. последует повторное подключение" @@ -1227,118 +1227,119 @@ msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)" msgstr "подтверждается запись до %X/%X, синхронизация с ФС до %X/%X (слот %s)" -#: pg_recvlogical.c:157 receivelog.c:343 +#: pg_recvlogical.c:157 receivelog.c:357 #, c-format msgid "could not send feedback packet: %s" msgstr "не удалось отправить пакет ответа: %s" -#: pg_recvlogical.c:230 +#: pg_recvlogical.c:228 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "начало передачи журнала с позиции %X/%X (слот %s)" -#: pg_recvlogical.c:271 +#: pg_recvlogical.c:270 #, c-format msgid "streaming initiated" msgstr "передача запущена" -#: pg_recvlogical.c:335 +#: pg_recvlogical.c:334 #, c-format msgid "could not open log file \"%s\": %m" msgstr "не удалось открыть файл протокола \"%s\": %m" -#: pg_recvlogical.c:361 receivelog.c:873 +#: pg_recvlogical.c:360 receivelog.c:887 #, c-format msgid "invalid socket: %s" msgstr "неверный сокет: %s" -#: pg_recvlogical.c:414 receivelog.c:901 +#: pg_recvlogical.c:413 receivelog.c:915 #, c-format msgid "select() failed: %m" msgstr "ошибка в select(): %m" -#: pg_recvlogical.c:421 receivelog.c:951 +#: pg_recvlogical.c:420 receivelog.c:965 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не удалось получить данные из потока WAL: %s" -#: pg_recvlogical.c:463 pg_recvlogical.c:514 receivelog.c:995 receivelog.c:1061 +#: pg_recvlogical.c:462 pg_recvlogical.c:513 receivelog.c:1009 +#: receivelog.c:1075 #, c-format msgid "streaming header too small: %d" msgstr "заголовок потока слишком мал: %d" -#: pg_recvlogical.c:498 receivelog.c:833 +#: pg_recvlogical.c:497 receivelog.c:847 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "нераспознанный заголовок потока: \"%c\"" -#: pg_recvlogical.c:552 pg_recvlogical.c:564 +#: pg_recvlogical.c:551 pg_recvlogical.c:563 #, c-format msgid "could not write %u bytes to log file \"%s\": %m" msgstr "не удалось записать %u Б в файл журнала \"%s\": %m" -#: pg_recvlogical.c:618 receivelog.c:629 receivelog.c:666 +#: pg_recvlogical.c:617 receivelog.c:643 receivelog.c:680 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "неожиданный конец потока репликации: %s" -#: pg_recvlogical.c:742 +#: pg_recvlogical.c:741 #, c-format msgid "invalid fsync interval \"%s\"" msgstr "неверный интервал синхронизации с ФС \"%s\"" -#: pg_recvlogical.c:780 +#: pg_recvlogical.c:779 #, c-format msgid "could not parse start position \"%s\"" msgstr "не удалось разобрать начальную позицию \"%s\"" -#: pg_recvlogical.c:869 +#: pg_recvlogical.c:868 #, c-format msgid "no slot specified" msgstr "слот не указан" -#: pg_recvlogical.c:877 +#: pg_recvlogical.c:876 #, c-format msgid "no target file specified" msgstr "целевой файл не задан" -#: pg_recvlogical.c:885 +#: pg_recvlogical.c:884 #, c-format msgid "no database specified" msgstr "база данных не задана" -#: pg_recvlogical.c:893 +#: pg_recvlogical.c:892 #, c-format msgid "at least one action needs to be specified" msgstr "необходимо задать минимум одно действие" -#: pg_recvlogical.c:901 +#: pg_recvlogical.c:900 #, c-format msgid "cannot use --create-slot or --start together with --drop-slot" msgstr "--create-slot или --start нельзя применять вместе с --drop-slot" -#: pg_recvlogical.c:909 +#: pg_recvlogical.c:908 #, c-format msgid "cannot use --create-slot or --drop-slot together with --startpos" msgstr "--create-slot или --drop-slot нельзя применять вместе с --startpos" -#: pg_recvlogical.c:917 +#: pg_recvlogical.c:916 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos можно задать только вместе с --start" -#: pg_recvlogical.c:948 +#: pg_recvlogical.c:950 #, c-format msgid "could not establish database-specific replication connection" msgstr "" "не удалось установить подключение для репликации к определённой базе данных" -#: pg_recvlogical.c:1047 +#: pg_recvlogical.c:1049 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "конечная позиция %X/%X достигнута при обработке keepalive" -#: pg_recvlogical.c:1050 +#: pg_recvlogical.c:1052 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "конечная позиция %X/%X достигнута при обработке записи WAL %X/%X" @@ -1348,23 +1349,28 @@ msgid "could not create archive status file \"%s\": %s" msgstr "не удалось создать файл статуса архива \"%s\": %s" -#: receivelog.c:116 +#: receivelog.c:76 +#, c-format +msgid "could not close archive status file \"%s\": %s" +msgstr "не удалось закрыть файл статуса архива \"%s\": %s" + +#: receivelog.c:124 #, c-format msgid "could not get size of write-ahead log file \"%s\": %s" msgstr "не удалось получить размер файла журнала предзаписи \"%s\": %s" -#: receivelog.c:126 +#: receivelog.c:135 #, c-format msgid "could not open existing write-ahead log file \"%s\": %s" msgstr "не удалось открыть существующий файл журнала предзаписи \"%s\": %s" -#: receivelog.c:134 +#: receivelog.c:144 #, c-format msgid "could not fsync existing write-ahead log file \"%s\": %s" msgstr "" "не удалось сбросить на диск существующий файл журнала предзаписи \"%s\": %s" -#: receivelog.c:148 +#: receivelog.c:159 #, c-format msgid "write-ahead log file \"%s\" has %d byte, should be 0 or %d" msgid_plural "write-ahead log file \"%s\" has %d bytes, should be 0 or %d" @@ -1375,42 +1381,42 @@ msgstr[2] "" "файл журнала предзаписи \"%s\" имеет размер %d Б, а должен — 0 или %d" -#: receivelog.c:163 +#: receivelog.c:175 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "не удалось открыть файл журнала предзаписи \"%s\": %s" -#: receivelog.c:189 +#: receivelog.c:203 #, c-format msgid "could not determine seek position in file \"%s\": %s" msgstr "не удалось определить текущую позицию в файле \"%s\": %s" -#: receivelog.c:203 +#: receivelog.c:217 #, c-format msgid "not renaming \"%s%s\", segment is not complete" msgstr "файл \"%s%s\" не переименовывается, так как это не полный сегмент" -#: receivelog.c:215 receivelog.c:300 receivelog.c:675 +#: receivelog.c:229 receivelog.c:314 receivelog.c:689 #, c-format msgid "could not close file \"%s\": %s" msgstr "не удалось закрыть файл \"%s\": %s" -#: receivelog.c:272 +#: receivelog.c:286 #, c-format msgid "server reported unexpected history file name for timeline %u: %s" msgstr "сервер сообщил неожиданное имя файла истории для линии времени %u: %s" -#: receivelog.c:280 +#: receivelog.c:294 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "не удалось создать файл истории линии времени \"%s\": %s" -#: receivelog.c:287 +#: receivelog.c:301 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "не удалось записать файл истории линии времени \"%s\": %s" -#: receivelog.c:377 +#: receivelog.c:391 #, c-format msgid "" "incompatible server version %s; client does not support streaming from " @@ -1419,7 +1425,7 @@ "несовместимая версия сервера %s; клиент не поддерживает репликацию с " "серверов версии ниже %s" -#: receivelog.c:386 +#: receivelog.c:400 #, c-format msgid "" "incompatible server version %s; client does not support streaming from " @@ -1428,7 +1434,7 @@ "несовместимая версия сервера %s; клиент не поддерживает репликацию с " "серверов версии выше %s" -#: receivelog.c:488 streamutil.c:429 streamutil.c:466 +#: receivelog.c:502 streamutil.c:429 streamutil.c:466 #, c-format msgid "" "could not identify system: got %d rows and %d fields, expected %d rows and " @@ -1437,7 +1443,7 @@ "не удалось идентифицировать систему; получено строк: %d, полей: %d " "(ожидалось: %d и %d (или более))" -#: receivelog.c:495 +#: receivelog.c:509 #, c-format msgid "" "system identifier does not match between base backup and streaming connection" @@ -1445,12 +1451,12 @@ "системный идентификатор базовой резервной копии отличается от идентификатора " "потоковой передачи" -#: receivelog.c:501 +#: receivelog.c:515 #, c-format msgid "starting timeline %u is not present in the server" msgstr "на сервере нет начальной линии времени %u" -#: receivelog.c:542 +#: receivelog.c:556 #, c-format msgid "" "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, " @@ -1459,12 +1465,12 @@ "сервер вернул неожиданный ответ на команду TIMELINE_HISTORY; получено строк: " "%d, полей: %d, а ожидалось строк: %d, полей: %d" -#: receivelog.c:613 +#: receivelog.c:627 #, c-format msgid "server reported unexpected next timeline %u, following timeline %u" msgstr "сервер неожиданно сообщил линию времени %u после линии времени %u" -#: receivelog.c:619 +#: receivelog.c:633 #, c-format msgid "" "server stopped streaming timeline %u at %X/%X, but reported next timeline %u " @@ -1473,12 +1479,12 @@ "сервер прекратил передачу линии времени %u в %X/%X, но сообщил, что " "следующая линии времени %u начнётся в %X/%X" -#: receivelog.c:659 +#: receivelog.c:673 #, c-format msgid "replication stream was terminated before stop point" msgstr "поток репликации закончился до точки остановки" -#: receivelog.c:705 +#: receivelog.c:719 #, c-format msgid "" "unexpected result set after end-of-timeline: got %d rows and %d fields, " @@ -1487,32 +1493,32 @@ "сервер вернул неожиданный набор данных после конца линии времени; получено " "строк: %d, полей: %d, а ожидалось строк: %d, полей: %d" -#: receivelog.c:714 +#: receivelog.c:728 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "не удалось разобрать начальную точку следующей линии времени \"%s\"" -#: receivelog.c:763 receivelog.c:1015 +#: receivelog.c:777 receivelog.c:1029 walmethods.c:991 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "не удалось синхронизировать с ФС файл \"%s\": %s" -#: receivelog.c:1078 +#: receivelog.c:1092 #, c-format msgid "received write-ahead log record for offset %u with no file open" msgstr "получена запись журнала предзаписи по смещению %u, но файл не открыт" -#: receivelog.c:1088 +#: receivelog.c:1102 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "получено смещение данных WAL %08x, но ожидалось %08x" -#: receivelog.c:1122 +#: receivelog.c:1136 #, c-format msgid "could not write %u bytes to WAL file \"%s\": %s" msgstr "не удалось записать %u Б в файл WAL \"%s\": %s" -#: receivelog.c:1147 receivelog.c:1187 receivelog.c:1218 +#: receivelog.c:1161 receivelog.c:1201 receivelog.c:1232 #, c-format msgid "could not send copy-end packet: %s" msgstr "не удалось отправить пакет \"конец COPY\": %s" @@ -1605,36 +1611,36 @@ "удалить слот репликации \"%s\" не получилось; получено строк: %d, полей: %d " "(ожидалось: %d и %d)" -#: walmethods.c:438 walmethods.c:927 +#: walmethods.c:521 walmethods.c:1054 msgid "could not compress data" msgstr "не удалось сжать данные" -#: walmethods.c:470 +#: walmethods.c:550 msgid "could not reset compression stream" msgstr "не удалось сбросить поток сжатых данных" -#: walmethods.c:568 +#: walmethods.c:670 msgid "could not initialize compression library" msgstr "не удалось инициализировать библиотеку сжатия" -#: walmethods.c:580 +#: walmethods.c:681 msgid "implementation error: tar files can't have more than one open file" msgstr "" "ошибка реализации: в файлах tar не может быть больше одно открытого файла" -#: walmethods.c:594 +#: walmethods.c:695 msgid "could not create tar header" msgstr "не удалось создать заголовок tar" -#: walmethods.c:608 walmethods.c:648 walmethods.c:843 walmethods.c:854 +#: walmethods.c:711 walmethods.c:749 walmethods.c:963 walmethods.c:974 msgid "could not change compression parameters" msgstr "не удалось изменить параметры сжатия" -#: walmethods.c:730 +#: walmethods.c:848 msgid "unlink not supported with compression" msgstr "со сжатием закрытие файла с удалением не поддерживается" -#: walmethods.c:952 +#: walmethods.c:1078 msgid "could not close compression stream" msgstr "не удалось закрыть поток сжатых данных" diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/po/sv.po postgresql-13-13.7/src/bin/pg_basebackup/po/sv.po --- postgresql-13-13.4/src/bin/pg_basebackup/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # SWEDISH message translation file for pg_basebackup # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022. # msgid "" msgstr "" -"Project-Id-Version: pg_basebackup (PostgreSQL) 10\n" +"Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-05-02 21:15+0000\n" -"PO-Revision-Date: 2020-05-03 07:53+0200\n" +"POT-Creation-Date: 2022-02-18 04:29+0000\n" +"PO-Revision-Date: 2022-02-18 15:31+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -44,7 +44,7 @@ msgstr "kan inte duplicera null-pekare (internt fel)\n" #: ../../common/file_utils.c:79 ../../common/file_utils.c:181 -#: pg_receivewal.c:266 pg_recvlogical.c:340 +#: pg_receivewal.c:266 pg_recvlogical.c:339 #, c-format msgid "could not stat file \"%s\": %m" msgstr "kunde inte göra stat() på fil \"%s\": %m" @@ -60,7 +60,7 @@ msgstr "kunde inte läsa katalog \"%s\": %m" #: ../../common/file_utils.c:224 ../../common/file_utils.c:283 -#: ../../common/file_utils.c:357 +#: ../../common/file_utils.c:357 ../../fe_utils/recovery_gen.c:134 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" @@ -76,87 +76,106 @@ msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" -#: pg_basebackup.c:223 +#: ../../fe_utils/recovery_gen.c:35 ../../fe_utils/recovery_gen.c:49 +#: ../../fe_utils/recovery_gen.c:77 ../../fe_utils/recovery_gen.c:100 +#: ../../fe_utils/recovery_gen.c:171 pg_basebackup.c:1248 +#, c-format +msgid "out of memory" +msgstr "slut på minne" + +#: ../../fe_utils/recovery_gen.c:140 pg_basebackup.c:1021 pg_basebackup.c:1715 +#: pg_basebackup.c:1771 +#, c-format +msgid "could not write to file \"%s\": %m" +msgstr "kunde inte skriva till fil \"%s\": %m" + +#: ../../fe_utils/recovery_gen.c:152 pg_basebackup.c:1166 pg_basebackup.c:1672 +#: pg_basebackup.c:1748 +#, c-format +msgid "could not create file \"%s\": %m" +msgstr "kunde inte skapa fil \"%s\": %m" + +#: pg_basebackup.c:224 #, c-format msgid "removing data directory \"%s\"" msgstr "tar bort datakatalog \"%s\"" -#: pg_basebackup.c:225 +#: pg_basebackup.c:226 #, c-format msgid "failed to remove data directory" msgstr "misslyckades med att ta bort datakatalog" -#: pg_basebackup.c:229 +#: pg_basebackup.c:230 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "tar bort innehållet i datakatalog \"%s\"" -#: pg_basebackup.c:231 +#: pg_basebackup.c:232 #, c-format msgid "failed to remove contents of data directory" msgstr "misslyckades med att ta bort innehållet i datakatalogen" -#: pg_basebackup.c:236 +#: pg_basebackup.c:237 #, c-format msgid "removing WAL directory \"%s\"" msgstr "tar bort WAL-katalog \"%s\"" -#: pg_basebackup.c:238 +#: pg_basebackup.c:239 #, c-format msgid "failed to remove WAL directory" msgstr "misslyckades med att ta bort WAL-katalog" -#: pg_basebackup.c:242 +#: pg_basebackup.c:243 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "tar bort innehållet i WAL-katalog \"%s\"" -#: pg_basebackup.c:244 +#: pg_basebackup.c:245 #, c-format msgid "failed to remove contents of WAL directory" msgstr "misslyckades med att ta bort innehållet i WAL-katalogen" -#: pg_basebackup.c:250 +#: pg_basebackup.c:251 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "datakatalog \"%s\" är ej borttagen på användares begäran" -#: pg_basebackup.c:253 +#: pg_basebackup.c:254 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "WAL-katalog \"%s\" är ej borttagen på användares begäran" -#: pg_basebackup.c:257 +#: pg_basebackup.c:258 #, c-format msgid "changes to tablespace directories will not be undone" msgstr "ändringar av tablespace-kataloger kan inte backas" -#: pg_basebackup.c:298 +#: pg_basebackup.c:299 #, c-format msgid "directory name too long" msgstr "katalognamn för långt" -#: pg_basebackup.c:308 +#: pg_basebackup.c:309 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "multipla \"=\"-tecken i tablespace-mappning" -#: pg_basebackup.c:320 +#: pg_basebackup.c:321 #, c-format msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" msgstr "ogiltigt tablespace-mappningsformat \"%s\", måste vara \"OLDDIR=NEWDIR\"" -#: pg_basebackup.c:332 +#: pg_basebackup.c:333 #, c-format msgid "old directory is not an absolute path in tablespace mapping: %s" msgstr "gammal katalog är inte en absolut sökväg i tablespace-mappning: %s" -#: pg_basebackup.c:339 +#: pg_basebackup.c:340 #, c-format msgid "new directory is not an absolute path in tablespace mapping: %s" msgstr "ny katalog är inte en absolut sökväg i tablespace-mappning: %s" -#: pg_basebackup.c:378 +#: pg_basebackup.c:379 #, c-format msgid "" "%s takes a base backup of a running PostgreSQL server.\n" @@ -165,17 +184,17 @@ "%s tar en basbackup av en körande PostgreSQL-server.\n" "\n" -#: pg_basebackup.c:380 pg_receivewal.c:79 pg_recvlogical.c:75 +#: pg_basebackup.c:381 pg_receivewal.c:79 pg_recvlogical.c:75 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_basebackup.c:381 pg_receivewal.c:80 pg_recvlogical.c:76 +#: pg_basebackup.c:382 pg_receivewal.c:80 pg_recvlogical.c:76 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [FLAGGA]...\n" -#: pg_basebackup.c:382 +#: pg_basebackup.c:383 #, c-format msgid "" "\n" @@ -184,17 +203,17 @@ "\n" "Flaggor som styr utmatning:\n" -#: pg_basebackup.c:383 +#: pg_basebackup.c:384 #, c-format msgid " -D, --pgdata=DIRECTORY receive base backup into directory\n" msgstr " -D, --pgdata=KATALOG ta emot basbackup till katalog\n" -#: pg_basebackup.c:384 +#: pg_basebackup.c:385 #, c-format msgid " -F, --format=p|t output format (plain (default), tar)\n" msgstr " -F, --format=p|t utdataformat (plain (standard), tar)\n" -#: pg_basebackup.c:385 +#: pg_basebackup.c:386 #, c-format msgid "" " -r, --max-rate=RATE maximum transfer rate to transfer data directory\n" @@ -203,7 +222,7 @@ " -r, --max-rate=RATE maximal överföringshastighet för att överföra datakatalog\n" " (i kB/s, eller använd suffix \"k\" resp. \"M\")\n" -#: pg_basebackup.c:387 +#: pg_basebackup.c:388 #, c-format msgid "" " -R, --write-recovery-conf\n" @@ -212,7 +231,7 @@ " -R, --write-recovery-conf\n" " skriv konfiguration för replikering\n" -#: pg_basebackup.c:389 +#: pg_basebackup.c:390 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -221,12 +240,12 @@ " -T, --tablespace-mapping=GAMMALKAT=NYKAT\n" " flytta tablespace i GAMMALKAT till NYKAT\n" -#: pg_basebackup.c:391 +#: pg_basebackup.c:392 #, c-format msgid " --waldir=WALDIR location for the write-ahead log directory\n" msgstr " --waldir=WALKAT plats för write-ahead-logg-katalog\n" -#: pg_basebackup.c:392 +#: pg_basebackup.c:393 #, c-format msgid "" " -X, --wal-method=none|fetch|stream\n" @@ -235,17 +254,17 @@ " -X, --wal-method=none|fetch|stream\n" " inkludera behövda WAL-filer med angiven metod\n" -#: pg_basebackup.c:394 +#: pg_basebackup.c:395 #, c-format msgid " -z, --gzip compress tar output\n" msgstr " -z, --gzip komprimera tar-utdata\n" -#: pg_basebackup.c:395 +#: pg_basebackup.c:396 #, c-format msgid " -Z, --compress=0-9 compress tar output with given compression level\n" msgstr " -Z, --compress=0-9 komprimera tar-utdata med given komprimeringsnivå\n" -#: pg_basebackup.c:396 +#: pg_basebackup.c:397 #, c-format msgid "" "\n" @@ -254,7 +273,7 @@ "\n" "Allmänna flaggor:\n" -#: pg_basebackup.c:397 +#: pg_basebackup.c:398 #, c-format msgid "" " -c, --checkpoint=fast|spread\n" @@ -263,47 +282,47 @@ " -c, --checkpoint=fast|spread\n" " ställ in \"fast\" eller \"spread\" checkpoint-metod\n" -#: pg_basebackup.c:399 +#: pg_basebackup.c:400 #, c-format msgid " -C, --create-slot create replication slot\n" msgstr " --create-slot skapa en replikeringsslot\n" -#: pg_basebackup.c:400 +#: pg_basebackup.c:401 #, c-format msgid " -l, --label=LABEL set backup label\n" msgstr " -l, --label=ETIKETT sätt backup-etikett\n" -#: pg_basebackup.c:401 +#: pg_basebackup.c:402 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean städa inte upp efter fel\n" -#: pg_basebackup.c:402 +#: pg_basebackup.c:403 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync vänta inte på att ändringar skall skrivas säkert till disk\n" -#: pg_basebackup.c:403 +#: pg_basebackup.c:404 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress visa förloppsinformation\n" -#: pg_basebackup.c:404 pg_receivewal.c:89 +#: pg_basebackup.c:405 pg_receivewal.c:89 #, c-format msgid " -S, --slot=SLOTNAME replication slot to use\n" msgstr " -S, --slot=SLOTNAMN replikerings-slot att använda\n" -#: pg_basebackup.c:405 pg_receivewal.c:91 pg_recvlogical.c:96 +#: pg_basebackup.c:406 pg_receivewal.c:91 pg_recvlogical.c:96 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose mata ut utförliga meddelanden\n" -#: pg_basebackup.c:406 pg_receivewal.c:92 pg_recvlogical.c:97 +#: pg_basebackup.c:407 pg_receivewal.c:92 pg_recvlogical.c:97 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_basebackup.c:407 +#: pg_basebackup.c:408 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" @@ -312,7 +331,7 @@ " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" " använd algoritm för manifestchecksummor\n" -#: pg_basebackup.c:409 +#: pg_basebackup.c:410 #, c-format msgid "" " --manifest-force-encode\n" @@ -321,22 +340,22 @@ " --manifest-force-encode\n" " hex-koda alla filnamn i manifestet\n" -#: pg_basebackup.c:411 +#: pg_basebackup.c:412 #, c-format msgid " --no-estimate-size do not estimate backup size in server side\n" msgstr " --no-estimate-size estimerar inte backupstorlek på serversidan\n" -#: pg_basebackup.c:412 +#: pg_basebackup.c:413 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr " --no-manifest förhindra att backupmanifest genereras\n" -#: pg_basebackup.c:413 +#: pg_basebackup.c:414 #, c-format msgid " --no-slot prevent creation of temporary replication slot\n" msgstr " --no-slot förhindra skapande av temporär replikerings-slot\n" -#: pg_basebackup.c:414 +#: pg_basebackup.c:415 #, c-format msgid "" " --no-verify-checksums\n" @@ -345,12 +364,12 @@ " --no-verify-checksums\n" " verifiera inte checksummor\n" -#: pg_basebackup.c:416 pg_receivewal.c:94 pg_recvlogical.c:98 +#: pg_basebackup.c:417 pg_receivewal.c:94 pg_recvlogical.c:98 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa den här hjälpen, avsluta sedan\n" -#: pg_basebackup.c:417 pg_receivewal.c:95 pg_recvlogical.c:99 +#: pg_basebackup.c:418 pg_receivewal.c:95 pg_recvlogical.c:99 #, c-format msgid "" "\n" @@ -359,22 +378,22 @@ "\n" "Flaggor för anslutning:\n" -#: pg_basebackup.c:418 pg_receivewal.c:96 +#: pg_basebackup.c:419 pg_receivewal.c:96 #, c-format msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=CONNSTR anslutningssträng\n" -#: pg_basebackup.c:419 pg_receivewal.c:97 pg_recvlogical.c:101 +#: pg_basebackup.c:420 pg_receivewal.c:97 pg_recvlogical.c:101 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAMN databasserverns värdnamn eller socket-katalog\n" -#: pg_basebackup.c:420 pg_receivewal.c:98 pg_recvlogical.c:102 +#: pg_basebackup.c:421 pg_receivewal.c:98 pg_recvlogical.c:102 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT databasserverns postnummer\n" -#: pg_basebackup.c:421 +#: pg_basebackup.c:422 #, c-format msgid "" " -s, --status-interval=INTERVAL\n" @@ -383,22 +402,22 @@ " -s, --status-interval=INTERVAL\n" " tid mellan att statuspaket skickas till servern (i sekunder)\n" -#: pg_basebackup.c:423 pg_receivewal.c:99 pg_recvlogical.c:103 +#: pg_basebackup.c:424 pg_receivewal.c:99 pg_recvlogical.c:103 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAMN ansluta som angiven databasanvändare\n" -#: pg_basebackup.c:424 pg_receivewal.c:100 pg_recvlogical.c:104 +#: pg_basebackup.c:425 pg_receivewal.c:100 pg_recvlogical.c:104 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password fråga aldrig efter lösenord\n" -#: pg_basebackup.c:425 pg_receivewal.c:101 pg_recvlogical.c:105 +#: pg_basebackup.c:426 pg_receivewal.c:101 pg_recvlogical.c:105 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password tvinga fram lösenordsfråga (skall ske automatiskt)\n" -#: pg_basebackup.c:426 pg_receivewal.c:105 pg_recvlogical.c:106 +#: pg_basebackup.c:427 pg_receivewal.c:105 pg_recvlogical.c:106 #, c-format msgid "" "\n" @@ -407,466 +426,452 @@ "\n" "Rapportera fel till <%s>.\n" -#: pg_basebackup.c:427 pg_receivewal.c:106 pg_recvlogical.c:107 +#: pg_basebackup.c:428 pg_receivewal.c:106 pg_recvlogical.c:107 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_basebackup.c:470 +#: pg_basebackup.c:471 #, c-format msgid "could not read from ready pipe: %m" msgstr "kunde inte läsa från rör (pipe) som har data: %m" -#: pg_basebackup.c:476 pg_basebackup.c:607 pg_basebackup.c:2114 -#: streamutil.c:450 +#: pg_basebackup.c:477 pg_basebackup.c:608 pg_basebackup.c:2134 +#: streamutil.c:449 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "kunde inte parsa write-ahead-logg-plats \"%s\"" -#: pg_basebackup.c:572 pg_receivewal.c:441 +#: pg_basebackup.c:573 pg_receivewal.c:441 #, c-format msgid "could not finish writing WAL files: %m" msgstr "kunde inte slutföra skrivning av WAL-filer: %m" -#: pg_basebackup.c:619 +#: pg_basebackup.c:620 #, c-format msgid "could not create pipe for background process: %m" msgstr "kunde inte skapa rör (pipe) för bakgrundsprocess: %m" -#: pg_basebackup.c:654 +#: pg_basebackup.c:655 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "skapade en temporär replikeringsslot \"%s\"" -#: pg_basebackup.c:657 +#: pg_basebackup.c:658 #, c-format msgid "created replication slot \"%s\"" msgstr "skapade en replikeringsslot \"%s\"" -#: pg_basebackup.c:677 pg_basebackup.c:730 pg_basebackup.c:1605 +#: pg_basebackup.c:678 pg_basebackup.c:731 pg_basebackup.c:1621 #, c-format msgid "could not create directory \"%s\": %m" msgstr "kunde inte skapa katalog \"%s\": %m" -#: pg_basebackup.c:695 +#: pg_basebackup.c:696 #, c-format msgid "could not create background process: %m" msgstr "kunde inte skapa bakgrundsprocess: %m" -#: pg_basebackup.c:707 +#: pg_basebackup.c:708 #, c-format msgid "could not create background thread: %m" msgstr "kunde inte skapa bakgrundstråd: %m" -#: pg_basebackup.c:751 +#: pg_basebackup.c:752 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "katalogen \"%s\" existerar men är inte tom" -#: pg_basebackup.c:758 +#: pg_basebackup.c:759 #, c-format msgid "could not access directory \"%s\": %m" msgstr "kunde inte komma åt katalog \"%s\": %m" -#: pg_basebackup.c:819 +#: pg_basebackup.c:824 #, c-format msgid "%*s/%s kB (100%%), %d/%d tablespace %*s" msgid_plural "%*s/%s kB (100%%), %d/%d tablespaces %*s" msgstr[0] "%*s/%s kB (100%%), %d/%d tablespace %*s" msgstr[1] "%*s/%s kB (100%%), %d/%d tablespace %*s" -#: pg_basebackup.c:831 +#: pg_basebackup.c:836 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces (%s%-*.*s)" msgstr[0] "%*s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)" msgstr[1] "%*s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)" -#: pg_basebackup.c:847 +#: pg_basebackup.c:852 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces" msgstr[0] "%*s/%s kB (%d%%), %d/%d tablespace" msgstr[1] "%*s/%s kB (%d%%), %d/%d tablespace" -#: pg_basebackup.c:871 +#: pg_basebackup.c:877 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "överföringshastighet \"%s\" är inte ett giltigt värde" -#: pg_basebackup.c:876 +#: pg_basebackup.c:882 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "ogiltig överföringshastighet \"%s\": %m" -#: pg_basebackup.c:885 +#: pg_basebackup.c:891 #, c-format msgid "transfer rate must be greater than zero" msgstr "överföringshastigheten måste vara större än noll" -#: pg_basebackup.c:917 +#: pg_basebackup.c:923 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "ogiltig enhet för --max-rate: \"%s\"" -#: pg_basebackup.c:924 +#: pg_basebackup.c:930 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "överföringshastighet \"%s\" överskrider heltalsintervall" -#: pg_basebackup.c:934 +#: pg_basebackup.c:940 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "överföringshastighet \"%s\" är utanför sitt intervall" -#: pg_basebackup.c:955 +#: pg_basebackup.c:961 #, c-format msgid "could not get COPY data stream: %s" msgstr "kunde inte hämta COPY-data-ström: %s" -#: pg_basebackup.c:975 pg_recvlogical.c:435 receivelog.c:965 +#: pg_basebackup.c:981 pg_recvlogical.c:434 pg_recvlogical.c:606 +#: receivelog.c:979 #, c-format msgid "could not read COPY data: %s" msgstr "kunde inte läsa COPY-data: %s" -#: pg_basebackup.c:997 +#: pg_basebackup.c:1007 #, c-format msgid "could not write to compressed file \"%s\": %s" msgstr "kunde inte skriva till komprimerad fil \"%s\": %s" -#: pg_basebackup.c:1007 pg_basebackup.c:1695 pg_basebackup.c:1747 -#, c-format -msgid "could not write to file \"%s\": %m" -msgstr "kunde inte skriva till fil \"%s\": %m" - -#: pg_basebackup.c:1056 +#: pg_basebackup.c:1071 #, c-format msgid "could not duplicate stdout: %m" msgstr "kunde inte duplicera stdout: %m" -#: pg_basebackup.c:1063 +#: pg_basebackup.c:1078 #, c-format msgid "could not open output file: %m" msgstr "kunde inte öppna utdatafilen: %m" -#: pg_basebackup.c:1070 pg_basebackup.c:1091 pg_basebackup.c:1120 +#: pg_basebackup.c:1085 pg_basebackup.c:1106 pg_basebackup.c:1135 #, c-format msgid "could not set compression level %d: %s" msgstr "kunde inte sätta komprimeringsnivå %d: %s" -#: pg_basebackup.c:1140 +#: pg_basebackup.c:1155 #, c-format msgid "could not create compressed file \"%s\": %s" msgstr "kunde inte skapa komprimerad fil \"%s\": %s" -#: pg_basebackup.c:1151 pg_basebackup.c:1656 pg_basebackup.c:1728 -#, c-format -msgid "could not create file \"%s\": %m" -msgstr "kunde inte skapa fil \"%s\": %m" - -#: pg_basebackup.c:1233 -#, c-format -msgid "out of memory" -msgstr "slut på minne" - -#: pg_basebackup.c:1252 +#: pg_basebackup.c:1268 #, c-format -msgid "could not close compressed file \"%s\": %s" -msgstr "kunde inte stänga komprimerad fil \"%s\": %s" +msgid "could not close compressed file \"%s\": %m" +msgstr "kunde inte stänga komprimerad fil \"%s\": %m" -#: pg_basebackup.c:1264 pg_recvlogical.c:606 +#: pg_basebackup.c:1280 pg_recvlogical.c:631 #, c-format msgid "could not close file \"%s\": %m" msgstr "kunde inte stänga fil \"%s\": %m" -#: pg_basebackup.c:1526 +#: pg_basebackup.c:1542 #, c-format msgid "COPY stream ended before last file was finished" msgstr "COPY-ström avslutade innan sista filen var klar" -#: pg_basebackup.c:1555 +#: pg_basebackup.c:1571 #, c-format msgid "invalid tar block header size: %zu" msgstr "ogiltig tar-block-header-storlek: %zu" -#: pg_basebackup.c:1612 +#: pg_basebackup.c:1628 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "kunde inte sätta rättigheter på katalogen \"%s\": %m" -#: pg_basebackup.c:1636 +#: pg_basebackup.c:1652 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "kunde inte skapa symbolisk länk från \"%s\" till \"%s\": %m" -#: pg_basebackup.c:1643 +#: pg_basebackup.c:1659 #, c-format msgid "unrecognized link indicator \"%c\"" msgstr "okänd länkindikator \"%c\"" -#: pg_basebackup.c:1662 +#: pg_basebackup.c:1678 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "kunde inte sätta rättigheter på filen \"%s\": %m" -#: pg_basebackup.c:1808 +#: pg_basebackup.c:1832 #, c-format msgid "incompatible server version %s" msgstr "inkompatibel serverversion %s" -#: pg_basebackup.c:1823 +#: pg_basebackup.c:1847 #, c-format msgid "HINT: use -X none or -X fetch to disable log streaming" msgstr "TIPS: använd -X none eller -X fetch för att stänga av logg-strömning" -#: pg_basebackup.c:1859 +#: pg_basebackup.c:1883 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "initierar basbackup, väntar på att checkpoint skall gå klart" -#: pg_basebackup.c:1885 pg_recvlogical.c:262 receivelog.c:481 receivelog.c:530 -#: receivelog.c:569 streamutil.c:297 streamutil.c:370 streamutil.c:422 -#: streamutil.c:533 streamutil.c:578 +#: pg_basebackup.c:1909 pg_recvlogical.c:261 receivelog.c:495 receivelog.c:544 +#: receivelog.c:583 streamutil.c:296 streamutil.c:369 streamutil.c:421 +#: streamutil.c:532 streamutil.c:577 #, c-format msgid "could not send replication command \"%s\": %s" msgstr "kunde inte skicka replikeringskommando \"%s\": %s" -#: pg_basebackup.c:1896 +#: pg_basebackup.c:1920 #, c-format msgid "could not initiate base backup: %s" msgstr "kunde inte initiera basbackup: %s" -#: pg_basebackup.c:1902 +#: pg_basebackup.c:1926 #, c-format msgid "server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields" msgstr "servern retunerade ett oväntat svar på BASE_BACKUP-kommandot; fick %d rader och %d fält, förväntade %d rader och %d fält" -#: pg_basebackup.c:1910 +#: pg_basebackup.c:1934 #, c-format msgid "checkpoint completed" msgstr "checkpoint klar" -#: pg_basebackup.c:1925 +#: pg_basebackup.c:1949 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "write-ahead-loggens startposition: %s på tidslinje %u" -#: pg_basebackup.c:1934 +#: pg_basebackup.c:1958 #, c-format msgid "could not get backup header: %s" msgstr "kunde inte hämta backup-header: %s" -#: pg_basebackup.c:1940 +#: pg_basebackup.c:1964 #, c-format msgid "no data returned from server" msgstr "ingen data returnerades från servern" -#: pg_basebackup.c:1972 +#: pg_basebackup.c:1996 #, c-format msgid "can only write single tablespace to stdout, database has %d" msgstr "kunde bara skriva en endaste tablespace till stdout, databasen har %d" -#: pg_basebackup.c:1984 +#: pg_basebackup.c:2008 #, c-format msgid "starting background WAL receiver" msgstr "startar bakgrunds-WAL-mottagare" -#: pg_basebackup.c:2027 +#: pg_basebackup.c:2047 #, c-format msgid "could not get write-ahead log end position from server: %s" msgstr "kunde inte hämta write-ahead-loggens slutposition från servern: %s" -#: pg_basebackup.c:2033 +#: pg_basebackup.c:2053 #, c-format msgid "no write-ahead log end position returned from server" msgstr "ingen write-ahead-logg-slutposition returnerad från servern" -#: pg_basebackup.c:2038 +#: pg_basebackup.c:2058 #, c-format msgid "write-ahead log end point: %s" msgstr "write-ahead-logg-slutposition: %s" -#: pg_basebackup.c:2049 +#: pg_basebackup.c:2069 #, c-format msgid "checksum error occurred" msgstr "felaktig kontrollsumma upptäcktes" -#: pg_basebackup.c:2054 +#: pg_basebackup.c:2074 #, c-format msgid "final receive failed: %s" msgstr "sista mottagning misslyckades: %s" -#: pg_basebackup.c:2078 +#: pg_basebackup.c:2098 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "väntat på att bakgrundsprocess skall avsluta strömmande ..." -#: pg_basebackup.c:2083 +#: pg_basebackup.c:2103 #, c-format msgid "could not send command to background pipe: %m" msgstr "kunde inte skicka kommando till bakgrundsrör (pipe): %m" -#: pg_basebackup.c:2091 +#: pg_basebackup.c:2111 #, c-format msgid "could not wait for child process: %m" msgstr "kunde inte vänta på barnprocess: %m" -#: pg_basebackup.c:2096 +#: pg_basebackup.c:2116 #, c-format msgid "child %d died, expected %d" msgstr "barn %d dog, förväntade %d" -#: pg_basebackup.c:2101 streamutil.c:92 +#: pg_basebackup.c:2121 streamutil.c:92 streamutil.c:202 #, c-format msgid "%s" msgstr "%s" -#: pg_basebackup.c:2126 +#: pg_basebackup.c:2146 #, c-format msgid "could not wait for child thread: %m" msgstr "kunde inte vänta på barntråd: %m" -#: pg_basebackup.c:2132 +#: pg_basebackup.c:2152 #, c-format msgid "could not get child thread exit status: %m" msgstr "kunde inte hämta barntrådens slutstatus: %m" -#: pg_basebackup.c:2137 +#: pg_basebackup.c:2157 #, c-format msgid "child thread exited with error %u" msgstr "barntråd avslutade med fel %u" -#: pg_basebackup.c:2165 +#: pg_basebackup.c:2185 #, c-format msgid "syncing data to disk ..." msgstr "synkar data till disk ..." -#: pg_basebackup.c:2190 +#: pg_basebackup.c:2210 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "byter namn på backup_manifest.tmp till backup_manifest" -#: pg_basebackup.c:2201 +#: pg_basebackup.c:2221 #, c-format msgid "base backup completed" msgstr "basbackup klar" -#: pg_basebackup.c:2286 +#: pg_basebackup.c:2306 #, c-format msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" msgstr "ogiltigt utdataformat \"%s\", måste vara \"plain\" eller \"tar\"" -#: pg_basebackup.c:2330 +#: pg_basebackup.c:2350 #, c-format msgid "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" msgstr "ogiltig wal-metod-flagga \"%s\", måste vara \"fetch\", \"stream\" eller \"none\"" -#: pg_basebackup.c:2358 pg_receivewal.c:580 +#: pg_basebackup.c:2378 pg_receivewal.c:580 #, c-format msgid "invalid compression level \"%s\"" msgstr "ogiltig komprimeringsnivå \"%s\"" -#: pg_basebackup.c:2369 +#: pg_basebackup.c:2389 #, c-format msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" msgstr "ogiltigt checkpoint-argument \"%s\", måste vara \"fast\" eller \"spread\"" -#: pg_basebackup.c:2396 pg_receivewal.c:555 pg_recvlogical.c:794 +#: pg_basebackup.c:2416 pg_receivewal.c:555 pg_recvlogical.c:819 #, c-format msgid "invalid status interval \"%s\"" msgstr "ogiltigt status-intervall \"%s\"" -#: pg_basebackup.c:2426 pg_basebackup.c:2439 pg_basebackup.c:2450 -#: pg_basebackup.c:2461 pg_basebackup.c:2469 pg_basebackup.c:2477 -#: pg_basebackup.c:2487 pg_basebackup.c:2500 pg_basebackup.c:2508 -#: pg_basebackup.c:2519 pg_basebackup.c:2529 pg_basebackup.c:2546 -#: pg_basebackup.c:2554 pg_basebackup.c:2562 pg_receivewal.c:605 +#: pg_basebackup.c:2446 pg_basebackup.c:2459 pg_basebackup.c:2470 +#: pg_basebackup.c:2481 pg_basebackup.c:2489 pg_basebackup.c:2497 +#: pg_basebackup.c:2507 pg_basebackup.c:2520 pg_basebackup.c:2528 +#: pg_basebackup.c:2539 pg_basebackup.c:2549 pg_basebackup.c:2566 +#: pg_basebackup.c:2574 pg_basebackup.c:2582 pg_receivewal.c:605 #: pg_receivewal.c:618 pg_receivewal.c:626 pg_receivewal.c:636 -#: pg_receivewal.c:644 pg_receivewal.c:655 pg_recvlogical.c:820 -#: pg_recvlogical.c:833 pg_recvlogical.c:844 pg_recvlogical.c:852 -#: pg_recvlogical.c:860 pg_recvlogical.c:868 pg_recvlogical.c:876 -#: pg_recvlogical.c:884 pg_recvlogical.c:892 +#: pg_receivewal.c:644 pg_receivewal.c:655 pg_recvlogical.c:845 +#: pg_recvlogical.c:858 pg_recvlogical.c:869 pg_recvlogical.c:877 +#: pg_recvlogical.c:885 pg_recvlogical.c:893 pg_recvlogical.c:901 +#: pg_recvlogical.c:909 pg_recvlogical.c:917 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" -#: pg_basebackup.c:2437 pg_receivewal.c:616 pg_recvlogical.c:831 +#: pg_basebackup.c:2457 pg_receivewal.c:616 pg_recvlogical.c:856 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_basebackup.c:2449 pg_receivewal.c:654 +#: pg_basebackup.c:2469 pg_receivewal.c:654 #, c-format msgid "no target directory specified" msgstr "ingen målkatalog angiven" -#: pg_basebackup.c:2460 +#: pg_basebackup.c:2480 #, c-format msgid "only tar mode backups can be compressed" msgstr "bara backupper i tar-läge kan komprimeras" -#: pg_basebackup.c:2468 +#: pg_basebackup.c:2488 #, c-format msgid "cannot stream write-ahead logs in tar mode to stdout" msgstr "kan inte strömma write-ahead-logg i tar-läge till stdout" -#: pg_basebackup.c:2476 +#: pg_basebackup.c:2496 #, c-format msgid "replication slots can only be used with WAL streaming" msgstr "replikerings-slot kan bara användas med WAL-strömning" -#: pg_basebackup.c:2486 +#: pg_basebackup.c:2506 #, c-format msgid "--no-slot cannot be used with slot name" msgstr "--no-slot kan inte användas tillsammans med slot-namn" #. translator: second %s is an option name -#: pg_basebackup.c:2498 pg_receivewal.c:634 +#: pg_basebackup.c:2518 pg_receivewal.c:634 #, c-format msgid "%s needs a slot to be specified using --slot" msgstr "%s kräver att en slot anges med --slot" -#: pg_basebackup.c:2507 +#: pg_basebackup.c:2527 #, c-format msgid "--create-slot and --no-slot are incompatible options" msgstr "--create-slot och --no-slot är inkompatibla flaggor" -#: pg_basebackup.c:2518 +#: pg_basebackup.c:2538 #, c-format msgid "WAL directory location can only be specified in plain mode" msgstr "WAL-katalogplats kan bara anges i läget \"plain\"" -#: pg_basebackup.c:2528 +#: pg_basebackup.c:2548 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WAL-katalogen måste vara en absolut sökväg" -#: pg_basebackup.c:2538 pg_receivewal.c:663 +#: pg_basebackup.c:2558 pg_receivewal.c:663 #, c-format msgid "this build does not support compression" msgstr "detta bygge stöder inte komprimering" -#: pg_basebackup.c:2545 +#: pg_basebackup.c:2565 #, c-format msgid "--progress and --no-estimate-size are incompatible options" msgstr "--progress och --no-estimate-size är inkompatibla flaggor" -#: pg_basebackup.c:2553 +#: pg_basebackup.c:2573 #, c-format msgid "--no-manifest and --manifest-checksums are incompatible options" msgstr "--no-manifest och --manifest-checksums är inkompatibla flaggor" -#: pg_basebackup.c:2561 +#: pg_basebackup.c:2581 #, c-format msgid "--no-manifest and --manifest-force-encode are incompatible options" msgstr "--no-manifest och --manifest-force-encode är inkompatibla flaggor" -#: pg_basebackup.c:2620 +#: pg_basebackup.c:2640 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "kan inte skapa symbolisk länk \"%s\": %m" -#: pg_basebackup.c:2624 +#: pg_basebackup.c:2644 #, c-format msgid "symlinks are not supported on this platform" msgstr "symboliska länkar stöds inte på denna plattform" @@ -1012,12 +1017,12 @@ msgid "starting log streaming at %X/%X (timeline %u)" msgstr "startar logg-strömning vid %X/%X (tidslinje %u)" -#: pg_receivewal.c:537 pg_recvlogical.c:736 +#: pg_receivewal.c:537 pg_recvlogical.c:761 #, c-format msgid "invalid port number \"%s\"" msgstr "ogiltigt portnummer \"%s\"" -#: pg_receivewal.c:565 pg_recvlogical.c:762 +#: pg_receivewal.c:565 pg_recvlogical.c:787 #, c-format msgid "could not parse end position \"%s\"" msgstr "kunde inte parsa slutposition \"%s\"" @@ -1032,28 +1037,28 @@ msgid "cannot use --synchronous together with --no-sync" msgstr "kan inte använda --synchronous tillsammans med --no-sync" -#: pg_receivewal.c:719 +#: pg_receivewal.c:723 #, c-format msgid "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "replikeringsanslutning som använder slot \"%s\" är oväntat databasspecifik" -#: pg_receivewal.c:730 pg_recvlogical.c:940 +#: pg_receivewal.c:734 pg_recvlogical.c:968 #, c-format msgid "dropping replication slot \"%s\"" msgstr "slänger replikeringsslot \"%s\"" -#: pg_receivewal.c:741 pg_recvlogical.c:950 +#: pg_receivewal.c:745 pg_recvlogical.c:978 #, c-format msgid "creating replication slot \"%s\"" msgstr "skapar replikeringsslot \"%s\"" -#: pg_receivewal.c:767 pg_recvlogical.c:975 +#: pg_receivewal.c:771 pg_recvlogical.c:1003 #, c-format msgid "disconnected" msgstr "nerkopplad" #. translator: check source for value for %d -#: pg_receivewal.c:773 pg_recvlogical.c:981 +#: pg_receivewal.c:777 pg_recvlogical.c:1009 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "nerkopplad; väntar %d sekunder för att försöka igen" @@ -1131,117 +1136,118 @@ msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)" msgstr "bekräftar skrivning fram till %X/%X, flush till %X/%X (slot %s)" -#: pg_recvlogical.c:157 receivelog.c:343 +#: pg_recvlogical.c:157 receivelog.c:357 #, c-format msgid "could not send feedback packet: %s" msgstr "kunde inte skicka feedback-paket: %s" -#: pg_recvlogical.c:230 +#: pg_recvlogical.c:228 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "startar logg-strömning vid %X/%X (slot %s)" -#: pg_recvlogical.c:271 +#: pg_recvlogical.c:270 #, c-format msgid "streaming initiated" msgstr "strömning initierad" -#: pg_recvlogical.c:335 +#: pg_recvlogical.c:334 #, c-format msgid "could not open log file \"%s\": %m" msgstr "kunde inte öppna loggfil \"%s\": %m" -#: pg_recvlogical.c:361 receivelog.c:873 +#: pg_recvlogical.c:360 receivelog.c:887 #, c-format msgid "invalid socket: %s" msgstr "ogiltigt uttag: %s" -#: pg_recvlogical.c:414 receivelog.c:901 +#: pg_recvlogical.c:413 receivelog.c:915 #, c-format msgid "select() failed: %m" msgstr "select() misslyckades: %m" -#: pg_recvlogical.c:421 receivelog.c:951 +#: pg_recvlogical.c:420 receivelog.c:965 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "kunde inte ta emot data från WAL-ström: %s" -#: pg_recvlogical.c:463 pg_recvlogical.c:514 receivelog.c:995 receivelog.c:1061 +#: pg_recvlogical.c:462 pg_recvlogical.c:513 receivelog.c:1009 +#: receivelog.c:1075 #, c-format msgid "streaming header too small: %d" msgstr "strömningsheader för liten: %d" -#: pg_recvlogical.c:498 receivelog.c:833 +#: pg_recvlogical.c:497 receivelog.c:847 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "okänd strömningsheader: \"%c\"" -#: pg_recvlogical.c:552 pg_recvlogical.c:564 +#: pg_recvlogical.c:551 pg_recvlogical.c:563 #, c-format msgid "could not write %u bytes to log file \"%s\": %m" msgstr "kunde inte skriva %u byte till loggfil \"%s\": %m" -#: pg_recvlogical.c:592 receivelog.c:629 receivelog.c:666 +#: pg_recvlogical.c:617 receivelog.c:643 receivelog.c:680 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "oväntad terminering av replikeringsström: %s" -#: pg_recvlogical.c:716 +#: pg_recvlogical.c:741 #, c-format msgid "invalid fsync interval \"%s\"" msgstr "ogiltigt fsync-intervall \"%s\"" -#: pg_recvlogical.c:754 +#: pg_recvlogical.c:779 #, c-format msgid "could not parse start position \"%s\"" msgstr "kunde inte parsa startposition \"%s\"" -#: pg_recvlogical.c:843 +#: pg_recvlogical.c:868 #, c-format msgid "no slot specified" msgstr "ingen slot angiven" -#: pg_recvlogical.c:851 +#: pg_recvlogical.c:876 #, c-format msgid "no target file specified" msgstr "ingen målfil angiven" -#: pg_recvlogical.c:859 +#: pg_recvlogical.c:884 #, c-format msgid "no database specified" msgstr "ingen databas angiven" -#: pg_recvlogical.c:867 +#: pg_recvlogical.c:892 #, c-format msgid "at least one action needs to be specified" msgstr "minst en handling måste anges" -#: pg_recvlogical.c:875 +#: pg_recvlogical.c:900 #, c-format msgid "cannot use --create-slot or --start together with --drop-slot" msgstr "kan inte använda --create-slot eller --start tillsammans med --drop-slot" -#: pg_recvlogical.c:883 +#: pg_recvlogical.c:908 #, c-format msgid "cannot use --create-slot or --drop-slot together with --startpos" msgstr "kan inte använda --create-slot eller --drop-slot tillsammans med --startpos" -#: pg_recvlogical.c:891 +#: pg_recvlogical.c:916 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos får bara anges tillsammans med --start" -#: pg_recvlogical.c:922 +#: pg_recvlogical.c:950 #, c-format msgid "could not establish database-specific replication connection" msgstr "kunde inte upprätta databasspecifik replikeringsanslutning" -#: pg_recvlogical.c:1021 +#: pg_recvlogical.c:1049 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "slutposition %X/%X nådd av keepalive" -#: pg_recvlogical.c:1024 +#: pg_recvlogical.c:1052 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "slutposition %X/%X nådd av WAL-post vid %X/%X" @@ -1251,139 +1257,144 @@ msgid "could not create archive status file \"%s\": %s" msgstr "kunde inte skapa arkiveringsstatusfil \"%s\": %s" -#: receivelog.c:116 +#: receivelog.c:76 +#, c-format +msgid "could not close archive status file \"%s\": %s" +msgstr "kunde inte stänga arkiveringsstatusfil \"%s\": %s" + +#: receivelog.c:124 #, c-format msgid "could not get size of write-ahead log file \"%s\": %s" msgstr "kunde inte hämta storleken på write-ahead-logg-fil \"%s\": %s" -#: receivelog.c:126 +#: receivelog.c:135 #, c-format msgid "could not open existing write-ahead log file \"%s\": %s" msgstr "kunde inte öppna existerande write-ahead-logg-fil \"%s\": %s" -#: receivelog.c:134 +#: receivelog.c:144 #, c-format msgid "could not fsync existing write-ahead log file \"%s\": %s" msgstr "kunde inte fsync:a befintlig write-ahead-logg-fil \"%s\": %s" -#: receivelog.c:148 +#: receivelog.c:159 #, c-format msgid "write-ahead log file \"%s\" has %d byte, should be 0 or %d" msgid_plural "write-ahead log file \"%s\" has %d bytes, should be 0 or %d" msgstr[0] "write-ahead-logg-fil \"%s\" har %d byte, skall vara 0 eller %d" msgstr[1] "write-ahead-logg-fil \"%s\" har %d byte, skall vara 0 eller %d" -#: receivelog.c:163 +#: receivelog.c:175 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "kunde inte öppna write-ahead-logg-fil \"%s\": %s" -#: receivelog.c:189 +#: receivelog.c:203 #, c-format msgid "could not determine seek position in file \"%s\": %s" msgstr "kunde inte fastställa sökposition i fil \"%s\": %s" -#: receivelog.c:203 +#: receivelog.c:217 #, c-format msgid "not renaming \"%s%s\", segment is not complete" msgstr "byter inte namn på \"%s%s\", segmentet är inte komplett" -#: receivelog.c:215 receivelog.c:300 receivelog.c:675 +#: receivelog.c:229 receivelog.c:314 receivelog.c:689 #, c-format msgid "could not close file \"%s\": %s" msgstr "kunde inte stänga fil \"%s\": %s" -#: receivelog.c:272 +#: receivelog.c:286 #, c-format msgid "server reported unexpected history file name for timeline %u: %s" msgstr "servern rapporterade oväntat historikfilnamn för tidslinje %u: %s" -#: receivelog.c:280 +#: receivelog.c:294 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "kunde inte skapa tidslinjehistorikfil \"%s\": %s" -#: receivelog.c:287 +#: receivelog.c:301 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "kunde inte skriva tidslinjehistorikfil \"%s\": %s" -#: receivelog.c:377 +#: receivelog.c:391 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions older than %s" msgstr "inkompatibel serverversion %s; klienten stöder inte stömning från serverversioner äldre än %s" -#: receivelog.c:386 +#: receivelog.c:400 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions newer than %s" msgstr "inkompatibel serverversion %s; klienten stöder inte stömning från serverversioner nyare än %s" -#: receivelog.c:488 streamutil.c:430 streamutil.c:467 +#: receivelog.c:502 streamutil.c:429 streamutil.c:466 #, c-format msgid "could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "kunde inte identifiera system: fick %d rader och %d fält, förväntade %d rader och %d eller fler fält" -#: receivelog.c:495 +#: receivelog.c:509 #, c-format msgid "system identifier does not match between base backup and streaming connection" msgstr "systemidentifieraren matchar inte mellan basbackup och strömningsanslutning" -#: receivelog.c:501 +#: receivelog.c:515 #, c-format msgid "starting timeline %u is not present in the server" msgstr "starttidslinje %u finns inte tillgänglig i servern" -#: receivelog.c:542 +#: receivelog.c:556 #, c-format msgid "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, expected %d rows and %d fields" msgstr "oväntat svar på TIMELINE_HISTORY-kommando: fick %d rader och %d fält, förväntade %d rader och %d fält" -#: receivelog.c:613 +#: receivelog.c:627 #, c-format msgid "server reported unexpected next timeline %u, following timeline %u" msgstr "servern rapporterade oväntad nästa tidslinje %u, följer på tidslinje %u" -#: receivelog.c:619 +#: receivelog.c:633 #, c-format msgid "server stopped streaming timeline %u at %X/%X, but reported next timeline %u to begin at %X/%X" msgstr "servern stoppade strömning av tidslinje %u vid %X/%X men rapporterade nästa tidslinje %u skulle börja vid %X/%X" -#: receivelog.c:659 +#: receivelog.c:673 #, c-format msgid "replication stream was terminated before stop point" msgstr "replikeringsström avslutades innan stoppunkt" -#: receivelog.c:705 +#: receivelog.c:719 #, c-format msgid "unexpected result set after end-of-timeline: got %d rows and %d fields, expected %d rows and %d fields" msgstr "oväntad resultatmängd efter slut-på-tidslinje: fick %d rader och %d fält, förväntade %d rader och %d fält" -#: receivelog.c:714 +#: receivelog.c:728 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "kunde inte parsa nästa tidslinjens startpunkt \"%s\"" -#: receivelog.c:763 receivelog.c:1015 +#: receivelog.c:777 receivelog.c:1029 walmethods.c:991 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "kunde inte fsync:a fil \"%s\": %s" -#: receivelog.c:1078 +#: receivelog.c:1092 #, c-format msgid "received write-ahead log record for offset %u with no file open" msgstr "tog emot write-ahead-logg-post för offset %u utan att ha någon öppen fil" -#: receivelog.c:1088 +#: receivelog.c:1102 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "fick WAL-data-offset %08x, förväntade %08x" -#: receivelog.c:1122 +#: receivelog.c:1136 #, c-format msgid "could not write %u bytes to WAL file \"%s\": %s" msgstr "kunde inte skriva %u byte till WAL-fil \"%s\": %s" -#: receivelog.c:1147 receivelog.c:1187 receivelog.c:1218 +#: receivelog.c:1161 receivelog.c:1201 receivelog.c:1232 #, c-format msgid "could not send copy-end packet: %s" msgstr "kunde inte skicka \"copy-end\"-paket: %s" @@ -1397,94 +1408,86 @@ msgid "could not connect to server" msgstr "kunde inte ansluta till server" -#: streamutil.c:202 -#, c-format -msgid "could not connect to server: %s" -msgstr "kunde inte ansluta till server: %s" - -#: streamutil.c:231 +#: streamutil.c:230 #, c-format msgid "could not clear search_path: %s" msgstr "kunde inte nollställa search_path: %s" -#: streamutil.c:247 +#: streamutil.c:246 #, c-format msgid "could not determine server setting for integer_datetimes" msgstr "kunde inte lista ut serverns inställning för integer_datetimes" -#: streamutil.c:254 +#: streamutil.c:253 #, c-format msgid "integer_datetimes compile flag does not match server" msgstr "kompileringsflaggan integer_datetimes matchar inte servern" -#: streamutil.c:305 +#: streamutil.c:304 #, c-format msgid "could not fetch WAL segment size: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "kunde inte hämta WAL-segmentstorlek: fick %d rader och %d fält, förväntade %d rader och %d eller fler fält" -#: streamutil.c:315 +#: streamutil.c:314 #, c-format msgid "WAL segment size could not be parsed" msgstr "WAL-segment-storlek kunde inte parsas" -#: streamutil.c:333 +#: streamutil.c:332 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d bytes" msgstr[0] "WAL-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men fjärrservern rapporterade värdet %d byte" msgstr[1] "WAL-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men fjärrservern rapporterade värdet %d byte" -#: streamutil.c:378 +#: streamutil.c:377 #, c-format msgid "could not fetch group access flag: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "kunde inte hämta gruppaccessflagga: fick %d rader och %d fält, förväntade %d rader och %d eller fler fält" -#: streamutil.c:387 +#: streamutil.c:386 #, c-format msgid "group access flag could not be parsed: %s" msgstr "gruppaccessflagga kunde inte parsas: %s" -#: streamutil.c:544 +#: streamutil.c:543 #, c-format msgid "could not create replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "kunde inte skapa replikeringsslot \"%s\": fick %d rader och %d fält, förväntade %d rader och %d fält" -#: streamutil.c:588 +#: streamutil.c:587 #, c-format msgid "could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "kunde inte slänga replikeringsslot \"%s\": fick %d rader och %d fält, förväntade %d rader och %d fält" -#: walmethods.c:438 walmethods.c:927 +#: walmethods.c:521 walmethods.c:1054 msgid "could not compress data" msgstr "kunde inte komprimera data" -#: walmethods.c:470 +#: walmethods.c:550 msgid "could not reset compression stream" msgstr "kunde inte nollställa komprimeringsström" -#: walmethods.c:568 +#: walmethods.c:670 msgid "could not initialize compression library" msgstr "kunde inte initierar komprimeringsbibliotek" -#: walmethods.c:580 +#: walmethods.c:681 msgid "implementation error: tar files can't have more than one open file" msgstr "implementationsfel: tar-filer kan inte ha mer än en öppen fil" -#: walmethods.c:594 +#: walmethods.c:695 msgid "could not create tar header" msgstr "kunde inte skapa tar-header" -#: walmethods.c:608 walmethods.c:648 walmethods.c:843 walmethods.c:854 +#: walmethods.c:711 walmethods.c:749 walmethods.c:963 walmethods.c:974 msgid "could not change compression parameters" msgstr "kunde inte ändra komprimeringsparametrar" -#: walmethods.c:730 +#: walmethods.c:848 msgid "unlink not supported with compression" msgstr "unlink stöds inte med komprimering" -#: walmethods.c:952 +#: walmethods.c:1078 msgid "could not close compression stream" msgstr "kunde inte stänga komprimeringsström" - -#~ msgid "backup manifests are not supported by server version %s" -#~ msgstr "backupmanifest stöds inte av serverversion %s" diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/receivelog.c postgresql-13-13.7/src/bin/pg_basebackup/receivelog.c --- postgresql-13-13.4/src/bin/pg_basebackup/receivelog.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/receivelog.c 2022-05-09 21:16:30.000000000 +0000 @@ -71,7 +71,12 @@ return false; } - stream->walmethod->close(f, CLOSE_NORMAL); + if (stream->walmethod->close(f, CLOSE_NORMAL) != 0) + { + pg_log_error("could not close archive status file \"%s\": %s", + tmppath, stream->walmethod->getlasterror()); + return false; + } return true; } diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/streamutil.c postgresql-13-13.7/src/bin/pg_basebackup/streamutil.c --- postgresql-13-13.4/src/bin/pg_basebackup/streamutil.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/streamutil.c 2022-05-09 21:16:30.000000000 +0000 @@ -309,7 +309,7 @@ } /* fetch xlog value and unit from the result */ - if (sscanf(PQgetvalue(res, 0, 0), "%d%s", &xlog_val, xlog_unit) != 2) + if (sscanf(PQgetvalue(res, 0, 0), "%d%2s", &xlog_val, xlog_unit) != 2) { pg_log_error("WAL segment size could not be parsed"); PQclear(res); diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/t/010_pg_basebackup.pl postgresql-13-13.7/src/bin/pg_basebackup/t/010_pg_basebackup.pl --- postgresql-13-13.4/src/bin/pg_basebackup/t/010_pg_basebackup.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/t/010_pg_basebackup.pl 2022-05-09 21:16:30.000000000 +0000 @@ -36,7 +36,7 @@ } $node->set_replication_conf(); -system_or_bail 'pg_ctl', '-D', $pgdata, 'reload'; +$node->reload; $node->command_fails( [ 'pg_basebackup', '-D', "$tempdir/backup" ], @@ -494,17 +494,13 @@ q{SELECT b INTO corrupt2 FROM generate_series(1,2) AS b; ALTER TABLE corrupt2 SET (autovacuum_enabled=false); SELECT pg_relation_filepath('corrupt2')} ); -# set page header and block sizes -my $pageheader_size = 24; +# get block size for corruption steps my $block_size = $node->safe_psql('postgres', 'SHOW block_size;'); # induce corruption -system_or_bail 'pg_ctl', '-D', $pgdata, 'stop'; -open $file, '+<', "$pgdata/$file_corrupt1"; -seek($file, $pageheader_size, 0); -syswrite($file, "\0\0\0\0\0\0\0\0\0"); -close $file; -system_or_bail 'pg_ctl', '-D', $pgdata, 'start'; +$node->stop; +$node->corrupt_page_checksum($file_corrupt1, 0); +$node->start; $node->command_checks_all( [ 'pg_basebackup', '-D', "$tempdir/backup_corrupt" ], @@ -515,16 +511,12 @@ rmtree("$tempdir/backup_corrupt"); # induce further corruption in 5 more blocks -system_or_bail 'pg_ctl', '-D', $pgdata, 'stop'; -open $file, '+<', "$pgdata/$file_corrupt1"; +$node->stop; for my $i (1 .. 5) { - my $offset = $pageheader_size + $i * $block_size; - seek($file, $offset, 0); - syswrite($file, "\0\0\0\0\0\0\0\0\0"); + $node->corrupt_page_checksum($file_corrupt1, $i * $block_size); } -close $file; -system_or_bail 'pg_ctl', '-D', $pgdata, 'start'; +$node->start; $node->command_checks_all( [ 'pg_basebackup', '-D', "$tempdir/backup_corrupt2" ], @@ -535,12 +527,9 @@ rmtree("$tempdir/backup_corrupt2"); # induce corruption in a second file -system_or_bail 'pg_ctl', '-D', $pgdata, 'stop'; -open $file, '+<', "$pgdata/$file_corrupt2"; -seek($file, $pageheader_size, 0); -syswrite($file, "\0\0\0\0\0\0\0\0\0"); -close $file; -system_or_bail 'pg_ctl', '-D', $pgdata, 'start'; +$node->stop; +$node->corrupt_page_checksum($file_corrupt2, 0); +$node->start; $node->command_checks_all( [ 'pg_basebackup', '-D', "$tempdir/backup_corrupt3" ], diff -Nru postgresql-13-13.4/src/bin/pg_basebackup/walmethods.c postgresql-13-13.7/src/bin/pg_basebackup/walmethods.c --- postgresql-13-13.4/src/bin/pg_basebackup/walmethods.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_basebackup/walmethods.c 2022-05-09 21:16:30.000000000 +0000 @@ -23,6 +23,7 @@ #include "common/file_perm.h" #include "common/file_utils.h" +#include "common/logging.h" #include "pgtar.h" #include "receivelog.h" #include "streamutil.h" @@ -43,6 +44,8 @@ char *basedir; int compression; bool sync; + const char *lasterrstring; /* if set, takes precedence over lasterrno */ + int lasterrno; } DirectoryMethodData; static DirectoryMethodData *dir_data = NULL; @@ -61,11 +64,17 @@ #endif } DirectoryMethodFile; +#define dir_clear_error() \ + (dir_data->lasterrstring = NULL, dir_data->lasterrno = 0) +#define dir_set_error(msg) \ + (dir_data->lasterrstring = _(msg)) + static const char * dir_getlasterror(void) { - /* Directory method always sets errno, so just use strerror */ - return strerror(errno); + if (dir_data->lasterrstring) + return dir_data->lasterrstring; + return strerror(dir_data->lasterrno); } static char * @@ -83,7 +92,7 @@ static Walfile dir_open_for_write(const char *pathname, const char *temp_suffix, size_t pad_to_size) { - static char tmppath[MAXPGPATH]; + char tmppath[MAXPGPATH]; char *filename; int fd; DirectoryMethodFile *f; @@ -91,6 +100,8 @@ gzFile gzfp = NULL; #endif + dir_clear_error(); + filename = dir_get_file_name(pathname, temp_suffix); snprintf(tmppath, sizeof(tmppath), "%s/%s", dir_data->basedir, filename); @@ -104,7 +115,10 @@ */ fd = open(tmppath, O_WRONLY | O_CREAT | PG_BINARY, pg_file_create_mode); if (fd < 0) + { + dir_data->lasterrno = errno; return NULL; + } #ifdef HAVE_LIBZ if (dir_data->compression > 0) @@ -112,6 +126,7 @@ gzfp = gzdopen(fd, "wb"); if (gzfp == NULL) { + dir_data->lasterrno = errno; close(fd); return NULL; } @@ -119,6 +134,7 @@ if (gzsetparams(gzfp, dir_data->compression, Z_DEFAULT_STRATEGY) != Z_OK) { + dir_data->lasterrno = errno; gzclose(gzfp); return NULL; } @@ -137,24 +153,17 @@ errno = 0; if (write(fd, zerobuf.data, XLOG_BLCKSZ) != XLOG_BLCKSZ) { - int save_errno = errno; - + /* If write didn't set errno, assume problem is no disk space */ + dir_data->lasterrno = errno ? errno : ENOSPC; close(fd); - - /* - * If write didn't set errno, assume problem is no disk space. - */ - errno = save_errno ? save_errno : ENOSPC; return NULL; } } if (lseek(fd, 0, SEEK_SET) != 0) { - int save_errno = errno; - + dir_data->lasterrno = errno; close(fd); - errno = save_errno; return NULL; } } @@ -170,6 +179,7 @@ if (fsync_fname(tmppath, false) != 0 || fsync_parent_path(tmppath) != 0) { + dir_data->lasterrno = errno; #ifdef HAVE_LIBZ if (dir_data->compression > 0) gzclose(gzfp); @@ -202,13 +212,30 @@ DirectoryMethodFile *df = (DirectoryMethodFile *) f; Assert(f != NULL); + dir_clear_error(); #ifdef HAVE_LIBZ if (dir_data->compression > 0) + { + errno = 0; r = (ssize_t) gzwrite(df->gzfp, buf, count); + if (r != count) + { + /* If write didn't set errno, assume problem is no disk space */ + dir_data->lasterrno = errno ? errno : ENOSPC; + } + } else #endif + { + errno = 0; r = write(df->fd, buf, count); + if (r != count) + { + /* If write didn't set errno, assume problem is no disk space */ + dir_data->lasterrno = errno ? errno : ENOSPC; + } + } if (r > 0) df->currpos += r; return r; @@ -218,6 +245,7 @@ dir_get_current_pos(Walfile f) { Assert(f != NULL); + dir_clear_error(); /* Use a cached value to prevent lots of reseeks */ return ((DirectoryMethodFile *) f)->currpos; @@ -228,14 +256,18 @@ { int r; DirectoryMethodFile *df = (DirectoryMethodFile *) f; - static char tmppath[MAXPGPATH]; - static char tmppath2[MAXPGPATH]; + char tmppath[MAXPGPATH]; + char tmppath2[MAXPGPATH]; Assert(f != NULL); + dir_clear_error(); #ifdef HAVE_LIBZ if (dir_data->compression > 0) + { + errno = 0; /* in case gzclose() doesn't set it */ r = gzclose(df->gzfp); + } else #endif r = close(df->fd); @@ -291,6 +323,9 @@ } } + if (r != 0) + dir_data->lasterrno = errno; + pg_free(df->pathname); pg_free(df->fullpath); if (df->temp_suffix) @@ -303,7 +338,10 @@ static int dir_sync(Walfile f) { + int r; + Assert(f != NULL); + dir_clear_error(); if (!dir_data->sync) return 0; @@ -312,24 +350,33 @@ if (dir_data->compression > 0) { if (gzflush(((DirectoryMethodFile *) f)->gzfp, Z_SYNC_FLUSH) != Z_OK) + { + dir_data->lasterrno = errno; return -1; + } } #endif - return fsync(((DirectoryMethodFile *) f)->fd); + r = fsync(((DirectoryMethodFile *) f)->fd); + if (r < 0) + dir_data->lasterrno = errno; + return r; } static ssize_t dir_get_file_size(const char *pathname) { struct stat statbuf; - static char tmppath[MAXPGPATH]; + char tmppath[MAXPGPATH]; snprintf(tmppath, sizeof(tmppath), "%s/%s", dir_data->basedir, pathname); if (stat(tmppath, &statbuf) != 0) + { + dir_data->lasterrno = errno; return -1; + } return statbuf.st_size; } @@ -343,9 +390,11 @@ static bool dir_existsfile(const char *pathname) { - static char tmppath[MAXPGPATH]; + char tmppath[MAXPGPATH]; int fd; + dir_clear_error(); + snprintf(tmppath, sizeof(tmppath), "%s/%s", dir_data->basedir, pathname); @@ -359,6 +408,8 @@ static bool dir_finish(void) { + dir_clear_error(); + if (dir_data->sync) { /* @@ -366,7 +417,10 @@ * directory entry here as well. */ if (fsync_fname(dir_data->basedir, true) != 0) + { + dir_data->lasterrno = errno; return false; + } } return true; } @@ -403,6 +457,7 @@ { pg_free(dir_data->basedir); pg_free(dir_data); + dir_data = NULL; } @@ -427,7 +482,8 @@ int compression; bool sync; TarMethodFile *currentfile; - char lasterror[1024]; + const char *lasterrstring; /* if set, takes precedence over lasterrno */ + int lasterrno; #ifdef HAVE_LIBZ z_streamp zp; void *zlibOut; @@ -435,19 +491,17 @@ } TarMethodData; static TarMethodData *tar_data = NULL; -#define tar_clear_error() tar_data->lasterror[0] = '\0' -#define tar_set_error(msg) strlcpy(tar_data->lasterror, _(msg), sizeof(tar_data->lasterror)) +#define tar_clear_error() \ + (tar_data->lasterrstring = NULL, tar_data->lasterrno = 0) +#define tar_set_error(msg) \ + (tar_data->lasterrstring = _(msg)) static const char * tar_getlasterror(void) { - /* - * If a custom error is set, return that one. Otherwise, assume errno is - * set and return that one. - */ - if (tar_data->lasterror[0]) - return tar_data->lasterror; - return strerror(errno); + if (tar_data->lasterrstring) + return tar_data->lasterrstring; + return strerror(tar_data->lasterrno); } #ifdef HAVE_LIBZ @@ -475,11 +529,8 @@ errno = 0; if (write(tar_data->fd, tar_data->zlibOut, len) != len) { - /* - * If write didn't set errno, assume problem is no disk space. - */ - if (errno == 0) - errno = ENOSPC; + /* If write didn't set errno, assume problem is no disk space */ + tar_data->lasterrno = errno ? errno : ENOSPC; return false; } @@ -516,9 +567,15 @@ /* Tarfile will always be positioned at the end */ if (!tar_data->compression) { + errno = 0; r = write(tar_data->fd, buf, count); - if (r > 0) - ((TarMethodFile *) f)->currpos += r; + if (r != count) + { + /* If write didn't set errno, assume problem is no disk space */ + tar_data->lasterrno = errno ? errno : ENOSPC; + return -1; + } + ((TarMethodFile *) f)->currpos += r; return r; } #ifdef HAVE_LIBZ @@ -531,8 +588,11 @@ } #else else + { /* Can't happen - compression enabled with no libz */ + tar_data->lasterrno = ENOSYS; return -1; + } #endif } @@ -570,7 +630,6 @@ static Walfile tar_open_for_write(const char *pathname, const char *temp_suffix, size_t pad_to_size) { - int save_errno; char *tmppath; tar_clear_error(); @@ -584,7 +643,10 @@ O_WRONLY | O_CREAT | PG_BINARY, pg_file_create_mode); if (tar_data->fd < 0) + { + tar_data->lasterrno = errno; return NULL; + } #ifdef HAVE_LIBZ if (tar_data->compression) @@ -614,7 +676,6 @@ /* There's no tar header itself, the file starts with regular files */ } - Assert(tar_data->currentfile == NULL); if (tar_data->currentfile != NULL) { tar_set_error("implementation error: tar files can't have more than one open file"); @@ -656,10 +717,9 @@ tar_data->currentfile->ofs_start = lseek(tar_data->fd, 0, SEEK_CUR); if (tar_data->currentfile->ofs_start == -1) { - save_errno = errno; + tar_data->lasterrno = errno; pg_free(tar_data->currentfile); tar_data->currentfile = NULL; - errno = save_errno; return NULL; } tar_data->currentfile->currpos = 0; @@ -669,11 +729,10 @@ errno = 0; if (write(tar_data->fd, tar_data->currentfile->header, 512) != 512) { - save_errno = errno; + /* If write didn't set errno, assume problem is no disk space */ + tar_data->lasterrno = errno ? errno : ENOSPC; pg_free(tar_data->currentfile); tar_data->currentfile = NULL; - /* if write didn't set errno, assume problem is no disk space */ - errno = save_errno ? save_errno : ENOSPC; return NULL; } } @@ -705,10 +764,16 @@ if (!tar_data->compression) { /* Uncompressed, so pad now */ - tar_write_padding_data(tar_data->currentfile, pad_to_size); + if (!tar_write_padding_data(tar_data->currentfile, pad_to_size)) + return NULL; /* Seek back to start */ - if (lseek(tar_data->fd, tar_data->currentfile->ofs_start + 512, SEEK_SET) != tar_data->currentfile->ofs_start + 512) + if (lseek(tar_data->fd, + tar_data->currentfile->ofs_start + 512, + SEEK_SET) != tar_data->currentfile->ofs_start + 512) + { + tar_data->lasterrno = errno; return NULL; + } tar_data->currentfile->currpos = 0; } @@ -723,7 +788,7 @@ tar_clear_error(); /* Currently not used, so not supported */ - errno = ENOSYS; + tar_data->lasterrno = ENOSYS; return -1; } @@ -745,6 +810,8 @@ static int tar_sync(Walfile f) { + int r; + Assert(f != NULL); tar_clear_error(); @@ -758,7 +825,10 @@ if (tar_data->compression) return 0; - return fsync(tar_data->fd); + r = fsync(tar_data->fd); + if (r < 0) + tar_data->lasterrno = errno; + return r; } static int @@ -785,7 +855,10 @@ * allow writing of the very last file. */ if (ftruncate(tar_data->fd, tf->ofs_start) != 0) + { + tar_data->lasterrno = errno; return -1; + } pg_free(tf->pathname); pg_free(tf); @@ -846,10 +919,7 @@ { /* Flush the current buffer */ if (!tar_write_compressed_data(NULL, 0, true)) - { - errno = EINVAL; return -1; - } } #endif @@ -870,15 +940,17 @@ print_tar_number(&(tf->header[148]), 8, tarChecksum(((TarMethodFile *) f)->header)); if (lseek(tar_data->fd, tf->ofs_start, SEEK_SET) != ((TarMethodFile *) f)->ofs_start) + { + tar_data->lasterrno = errno; return -1; + } if (!tar_data->compression) { errno = 0; if (write(tar_data->fd, tf->header, 512) != 512) { - /* if write didn't set errno, assume problem is no disk space */ - if (errno == 0) - errno = ENOSPC; + /* If write didn't set errno, assume problem is no disk space */ + tar_data->lasterrno = errno ? errno : ENOSPC; return -1; } } @@ -907,11 +979,19 @@ /* Move file pointer back down to end, so we can write the next file */ if (lseek(tar_data->fd, 0, SEEK_END) < 0) + { + tar_data->lasterrno = errno; return -1; + } /* Always fsync on close, so the padding gets fsynced */ if (tar_sync(f) < 0) + { + /* XXX this seems pretty bogus; why is only this case fatal? */ + pg_log_fatal("could not fsync file \"%s\": %s", + tf->pathname, tar_getlasterror()); exit(1); + } /* Clean up and done */ pg_free(tf->pathname); @@ -949,9 +1029,8 @@ errno = 0; if (write(tar_data->fd, zerobuf, sizeof(zerobuf)) != sizeof(zerobuf)) { - /* if write didn't set errno, assume problem is no disk space */ - if (errno == 0) - errno = ENOSPC; + /* If write didn't set errno, assume problem is no disk space */ + tar_data->lasterrno = errno ? errno : ENOSPC; return false; } } @@ -986,8 +1065,7 @@ * If write didn't set errno, assume problem is no disk * space. */ - if (errno == 0) - errno = ENOSPC; + tar_data->lasterrno = errno ? errno : ENOSPC; return false; } } @@ -1007,20 +1085,28 @@ if (tar_data->sync) { if (fsync(tar_data->fd) != 0) + { + tar_data->lasterrno = errno; return false; + } } if (close(tar_data->fd) != 0) + { + tar_data->lasterrno = errno; return false; + } tar_data->fd = -1; if (tar_data->sync) { - if (fsync_fname(tar_data->tarfilename, false) != 0) - return false; - if (fsync_parent_path(tar_data->tarfilename) != 0) + if (fsync_fname(tar_data->tarfilename, false) != 0 || + fsync_parent_path(tar_data->tarfilename) != 0) + { + tar_data->lasterrno = errno; return false; + } } return true; @@ -1068,4 +1154,5 @@ pg_free(tar_data->zlibOut); #endif pg_free(tar_data); + tar_data = NULL; } diff -Nru postgresql-13-13.4/src/bin/pgbench/exprparse.c postgresql-13-13.7/src/bin/pgbench/exprparse.c --- postgresql-13-13.4/src/bin/pgbench/exprparse.c 2021-08-09 21:03:34.000000000 +0000 +++ postgresql-13-13.7/src/bin/pgbench/exprparse.c 2022-05-09 21:29:48.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -70,9 +71,8 @@ #define yydebug expr_yydebug #define yynerrs expr_yynerrs - /* First part of user prologue. */ -#line 1 "exprparse.y" /* yacc.c:337 */ +#line 1 "exprparse.y" /*------------------------------------------------------------------------- * @@ -111,7 +111,17 @@ static PgBenchExpr *make_case(yyscan_t yyscanner, PgBenchExprList *when_then_list, PgBenchExpr *else_part); -#line 115 "exprparse.c" /* yacc.c:337 */ +#line 115 "exprparse.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -124,14 +134,6 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - /* Debug traces. */ #ifndef YYDEBUG @@ -141,44 +143,48 @@ extern int expr_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - NULL_CONST = 258, - INTEGER_CONST = 259, - MAXINT_PLUS_ONE_CONST = 260, - DOUBLE_CONST = 261, - BOOLEAN_CONST = 262, - VARIABLE = 263, - FUNCTION = 264, - AND_OP = 265, - OR_OP = 266, - NOT_OP = 267, - NE_OP = 268, - LE_OP = 269, - GE_OP = 270, - LS_OP = 271, - RS_OP = 272, - IS_OP = 273, - CASE_KW = 274, - WHEN_KW = 275, - THEN_KW = 276, - ELSE_KW = 277, - END_KW = 278, - ISNULL_OP = 279, - NOTNULL_OP = 280, - UNARY = 281 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + NULL_CONST = 258, /* NULL_CONST */ + INTEGER_CONST = 259, /* INTEGER_CONST */ + MAXINT_PLUS_ONE_CONST = 260, /* MAXINT_PLUS_ONE_CONST */ + DOUBLE_CONST = 261, /* DOUBLE_CONST */ + BOOLEAN_CONST = 262, /* BOOLEAN_CONST */ + VARIABLE = 263, /* VARIABLE */ + FUNCTION = 264, /* FUNCTION */ + AND_OP = 265, /* AND_OP */ + OR_OP = 266, /* OR_OP */ + NOT_OP = 267, /* NOT_OP */ + NE_OP = 268, /* NE_OP */ + LE_OP = 269, /* LE_OP */ + GE_OP = 270, /* GE_OP */ + LS_OP = 271, /* LS_OP */ + RS_OP = 272, /* RS_OP */ + IS_OP = 273, /* IS_OP */ + CASE_KW = 274, /* CASE_KW */ + WHEN_KW = 275, /* WHEN_KW */ + THEN_KW = 276, /* THEN_KW */ + ELSE_KW = 277, /* ELSE_KW */ + END_KW = 278, /* END_KW */ + ISNULL_OP = 279, /* ISNULL_OP */ + NOTNULL_OP = 280, /* NOTNULL_OP */ + UNARY = 281 /* UNARY */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 48 "exprparse.y" /* yacc.c:352 */ +#line 48 "exprparse.y" int64 ival; double dval; @@ -187,9 +193,9 @@ PgBenchExpr *expr; PgBenchExprList *elist; -#line 191 "exprparse.c" /* yacc.c:352 */ -}; +#line 197 "exprparse.c" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -200,6 +206,62 @@ int expr_yyparse (yyscan_t yyscanner); +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_NULL_CONST = 3, /* NULL_CONST */ + YYSYMBOL_INTEGER_CONST = 4, /* INTEGER_CONST */ + YYSYMBOL_MAXINT_PLUS_ONE_CONST = 5, /* MAXINT_PLUS_ONE_CONST */ + YYSYMBOL_DOUBLE_CONST = 6, /* DOUBLE_CONST */ + YYSYMBOL_BOOLEAN_CONST = 7, /* BOOLEAN_CONST */ + YYSYMBOL_VARIABLE = 8, /* VARIABLE */ + YYSYMBOL_FUNCTION = 9, /* FUNCTION */ + YYSYMBOL_AND_OP = 10, /* AND_OP */ + YYSYMBOL_OR_OP = 11, /* OR_OP */ + YYSYMBOL_NOT_OP = 12, /* NOT_OP */ + YYSYMBOL_NE_OP = 13, /* NE_OP */ + YYSYMBOL_LE_OP = 14, /* LE_OP */ + YYSYMBOL_GE_OP = 15, /* GE_OP */ + YYSYMBOL_LS_OP = 16, /* LS_OP */ + YYSYMBOL_RS_OP = 17, /* RS_OP */ + YYSYMBOL_IS_OP = 18, /* IS_OP */ + YYSYMBOL_CASE_KW = 19, /* CASE_KW */ + YYSYMBOL_WHEN_KW = 20, /* WHEN_KW */ + YYSYMBOL_THEN_KW = 21, /* THEN_KW */ + YYSYMBOL_ELSE_KW = 22, /* ELSE_KW */ + YYSYMBOL_END_KW = 23, /* END_KW */ + YYSYMBOL_ISNULL_OP = 24, /* ISNULL_OP */ + YYSYMBOL_NOTNULL_OP = 25, /* NOTNULL_OP */ + YYSYMBOL_26_ = 26, /* '<' */ + YYSYMBOL_27_ = 27, /* '>' */ + YYSYMBOL_28_ = 28, /* '=' */ + YYSYMBOL_29_ = 29, /* '|' */ + YYSYMBOL_30_ = 30, /* '#' */ + YYSYMBOL_31_ = 31, /* '&' */ + YYSYMBOL_32_ = 32, /* '~' */ + YYSYMBOL_33_ = 33, /* '+' */ + YYSYMBOL_34_ = 34, /* '-' */ + YYSYMBOL_35_ = 35, /* '*' */ + YYSYMBOL_36_ = 36, /* '/' */ + YYSYMBOL_37_ = 37, /* '%' */ + YYSYMBOL_UNARY = 38, /* UNARY */ + YYSYMBOL_39_ = 39, /* ',' */ + YYSYMBOL_40_ = 40, /* '(' */ + YYSYMBOL_41_ = 41, /* ')' */ + YYSYMBOL_YYACCEPT = 42, /* $accept */ + YYSYMBOL_result = 43, /* result */ + YYSYMBOL_elist = 44, /* elist */ + YYSYMBOL_expr = 45, /* expr */ + YYSYMBOL_when_then_list = 46, /* when_then_list */ + YYSYMBOL_case_control = 47, /* case_control */ + YYSYMBOL_function = 48 /* function */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + @@ -207,28 +269,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -236,7 +357,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -244,7 +365,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -258,38 +392,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -302,8 +435,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) -#if ! defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -368,8 +515,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -378,17 +524,17 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -401,11 +547,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -417,12 +563,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -445,17 +591,20 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 88 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 281 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint8 yytranslate[] = +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -500,26 +649,39 @@ }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "NULL_CONST", "INTEGER_CONST", - "MAXINT_PLUS_ONE_CONST", "DOUBLE_CONST", "BOOLEAN_CONST", "VARIABLE", - "FUNCTION", "AND_OP", "OR_OP", "NOT_OP", "NE_OP", "LE_OP", "GE_OP", - "LS_OP", "RS_OP", "IS_OP", "CASE_KW", "WHEN_KW", "THEN_KW", "ELSE_KW", - "END_KW", "ISNULL_OP", "NOTNULL_OP", "'<'", "'>'", "'='", "'|'", "'#'", - "'&'", "'~'", "'+'", "'-'", "'*'", "'/'", "'%'", "UNARY", "','", "'('", - "')'", "$accept", "result", "elist", "expr", "when_then_list", - "case_control", "function", YY_NULLPTR + "\"end of file\"", "error", "\"invalid token\"", "NULL_CONST", + "INTEGER_CONST", "MAXINT_PLUS_ONE_CONST", "DOUBLE_CONST", + "BOOLEAN_CONST", "VARIABLE", "FUNCTION", "AND_OP", "OR_OP", "NOT_OP", + "NE_OP", "LE_OP", "GE_OP", "LS_OP", "RS_OP", "IS_OP", "CASE_KW", + "WHEN_KW", "THEN_KW", "ELSE_KW", "END_KW", "ISNULL_OP", "NOTNULL_OP", + "'<'", "'>'", "'='", "'|'", "'#'", "'&'", "'~'", "'+'", "'-'", "'*'", + "'/'", "'%'", "UNARY", "','", "'('", "')'", "$accept", "result", "elist", + "expr", "when_then_list", "case_control", "function", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -527,17 +689,17 @@ 35, 38, 126, 43, 45, 42, 47, 37, 281, 44, 40, 41 }; -# endif +#endif -#define YYPACT_NINF -33 +#define YYPACT_NINF (-33) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-33))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -1 +#define YYTABLE_NINF (-1) -#define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-1))) +#define yytable_value_is_error(Yyn) \ + ((Yyn) == YYTABLE_NINF) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ @@ -557,7 +719,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint8 yydefact[] = +static const yytype_int8 yydefact[] = { 0, 36, 38, 39, 37, 40, 47, 0, 0, 0, 0, 0, 0, 0, 2, 42, 0, 11, 0, 0, @@ -579,7 +741,7 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 13, 74, 14, 19, 15, 16 + 0, 13, 74, 14, 19, 15, 16 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -661,7 +823,7 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_int8 yystos[] = { 0, 3, 4, 6, 7, 8, 9, 12, 19, 32, 33, 34, 40, 43, 45, 47, 48, 45, 20, 46, @@ -675,7 +837,7 @@ }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_int8 yyr1[] = { 0, 42, 43, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -685,7 +847,7 @@ }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 1, 0, 1, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, @@ -695,10 +857,10 @@ }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -724,10 +886,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* Enable debugging if requested. */ @@ -745,18 +906,18 @@ } while (0) /* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value, yyscanner); \ + Kind, Value, yyscanner); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -767,18 +928,21 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, yyscan_t yyscanner) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, yyscan_t yyscanner) { FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (yyscanner); + YY_USE (yyoutput); + YY_USE (yyscanner); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -787,12 +951,13 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, yyscan_t yyscanner) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, yyscan_t yyscanner) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyo, yytype, yyvaluep, yyscanner); + yy_symbol_value_print (yyo, yykind, yyvaluep, yyscanner); YYFPRINTF (yyo, ")"); } @@ -802,7 +967,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -825,21 +990,21 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, yyscan_t yyscanner) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule, yyscan_t yyscanner) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - , yyscanner); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], yyscanner); YYFPRINTF (stderr, "\n"); } } @@ -854,8 +1019,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -878,254 +1043,34 @@ #endif -#if YYERROR_VERBOSE -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, yyscan_t yyscanner) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, yyscan_t yyscanner) { - YYUSE (yyvaluep); - YYUSE (yyscanner); + YY_USE (yyvaluep); + YY_USE (yyscanner); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } + + /*----------. | yyparse. | `----------*/ @@ -1133,7 +1078,7 @@ int yyparse (yyscan_t yyscanner) { -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; @@ -1144,45 +1089,38 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Number of syntax errors so far. */ - int yynerrs; + int yynerrs = 0; - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - YYSIZE_T yystacksize; + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -1190,15 +1128,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; @@ -1213,10 +1144,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1224,23 +1160,23 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -1254,14 +1190,15 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1270,16 +1207,16 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -1300,18 +1237,29 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (&yylval, yyscanner); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1339,15 +1287,13 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1382,297 +1328,298 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 82 "exprparse.y" /* yacc.c:1652 */ - { expr_parse_result = (yyvsp[0].expr); } -#line 1389 "exprparse.c" /* yacc.c:1652 */ + case 2: /* result: expr */ +#line 82 "exprparse.y" + { expr_parse_result = (yyvsp[0].expr); } +#line 1335 "exprparse.c" break; - case 3: -#line 84 "exprparse.y" /* yacc.c:1652 */ - { (yyval.elist) = NULL; } -#line 1395 "exprparse.c" /* yacc.c:1652 */ + case 3: /* elist: %empty */ +#line 84 "exprparse.y" + { (yyval.elist) = NULL; } +#line 1341 "exprparse.c" break; - case 4: -#line 85 "exprparse.y" /* yacc.c:1652 */ - { (yyval.elist) = make_elist((yyvsp[0].expr), NULL); } -#line 1401 "exprparse.c" /* yacc.c:1652 */ + case 4: /* elist: expr */ +#line 85 "exprparse.y" + { (yyval.elist) = make_elist((yyvsp[0].expr), NULL); } +#line 1347 "exprparse.c" break; - case 5: -#line 86 "exprparse.y" /* yacc.c:1652 */ - { (yyval.elist) = make_elist((yyvsp[0].expr), (yyvsp[-2].elist)); } -#line 1407 "exprparse.c" /* yacc.c:1652 */ + case 5: /* elist: elist ',' expr */ +#line 86 "exprparse.y" + { (yyval.elist) = make_elist((yyvsp[0].expr), (yyvsp[-2].elist)); } +#line 1353 "exprparse.c" break; - case 6: -#line 89 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = (yyvsp[-1].expr); } -#line 1413 "exprparse.c" /* yacc.c:1652 */ + case 6: /* expr: '(' expr ')' */ +#line 89 "exprparse.y" + { (yyval.expr) = (yyvsp[-1].expr); } +#line 1359 "exprparse.c" break; - case 7: -#line 90 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 1419 "exprparse.c" /* yacc.c:1652 */ + case 7: /* expr: '+' expr */ +#line 90 "exprparse.y" + { (yyval.expr) = (yyvsp[0].expr); } +#line 1365 "exprparse.c" break; - case 8: -#line 92 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "-", + case 8: /* expr: '-' expr */ +#line 92 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "-", make_integer_constant(0), (yyvsp[0].expr)); } -#line 1426 "exprparse.c" /* yacc.c:1652 */ +#line 1372 "exprparse.c" break; - case 9: -#line 96 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_integer_constant(PG_INT64_MIN); } -#line 1432 "exprparse.c" /* yacc.c:1652 */ + case 9: /* expr: '-' MAXINT_PLUS_ONE_CONST */ +#line 96 "exprparse.y" + { (yyval.expr) = make_integer_constant(PG_INT64_MIN); } +#line 1378 "exprparse.c" break; - case 10: -#line 98 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "#", + case 10: /* expr: '~' expr */ +#line 98 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "#", make_integer_constant(~INT64CONST(0)), (yyvsp[0].expr)); } -#line 1439 "exprparse.c" /* yacc.c:1652 */ +#line 1385 "exprparse.c" break; - case 11: -#line 100 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_uop(yyscanner, "!not", (yyvsp[0].expr)); } -#line 1445 "exprparse.c" /* yacc.c:1652 */ + case 11: /* expr: NOT_OP expr */ +#line 100 "exprparse.y" + { (yyval.expr) = make_uop(yyscanner, "!not", (yyvsp[0].expr)); } +#line 1391 "exprparse.c" break; - case 12: -#line 101 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "+", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1451 "exprparse.c" /* yacc.c:1652 */ + case 12: /* expr: expr '+' expr */ +#line 101 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "+", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1397 "exprparse.c" break; - case 13: -#line 102 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "-", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1457 "exprparse.c" /* yacc.c:1652 */ + case 13: /* expr: expr '-' expr */ +#line 102 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "-", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1403 "exprparse.c" break; - case 14: -#line 103 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "*", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1463 "exprparse.c" /* yacc.c:1652 */ + case 14: /* expr: expr '*' expr */ +#line 103 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "*", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1409 "exprparse.c" break; - case 15: -#line 104 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "/", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1469 "exprparse.c" /* yacc.c:1652 */ + case 15: /* expr: expr '/' expr */ +#line 104 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "/", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1415 "exprparse.c" break; - case 16: -#line 105 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "mod", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1475 "exprparse.c" /* yacc.c:1652 */ + case 16: /* expr: expr '%' expr */ +#line 105 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "mod", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1421 "exprparse.c" break; - case 17: -#line 106 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "<", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1481 "exprparse.c" /* yacc.c:1652 */ + case 17: /* expr: expr '<' expr */ +#line 106 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "<", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1427 "exprparse.c" break; - case 18: -#line 107 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "<=", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1487 "exprparse.c" /* yacc.c:1652 */ + case 18: /* expr: expr LE_OP expr */ +#line 107 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "<=", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1433 "exprparse.c" break; - case 19: -#line 108 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "<", (yyvsp[0].expr), (yyvsp[-2].expr)); } -#line 1493 "exprparse.c" /* yacc.c:1652 */ + case 19: /* expr: expr '>' expr */ +#line 108 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "<", (yyvsp[0].expr), (yyvsp[-2].expr)); } +#line 1439 "exprparse.c" break; - case 20: -#line 109 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "<=", (yyvsp[0].expr), (yyvsp[-2].expr)); } -#line 1499 "exprparse.c" /* yacc.c:1652 */ + case 20: /* expr: expr GE_OP expr */ +#line 109 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "<=", (yyvsp[0].expr), (yyvsp[-2].expr)); } +#line 1445 "exprparse.c" break; - case 21: -#line 110 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "=", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1505 "exprparse.c" /* yacc.c:1652 */ + case 21: /* expr: expr '=' expr */ +#line 110 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "=", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1451 "exprparse.c" break; - case 22: -#line 111 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "<>", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1511 "exprparse.c" /* yacc.c:1652 */ + case 22: /* expr: expr NE_OP expr */ +#line 111 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "<>", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1457 "exprparse.c" break; - case 23: -#line 112 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "&", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1517 "exprparse.c" /* yacc.c:1652 */ + case 23: /* expr: expr '&' expr */ +#line 112 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "&", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1463 "exprparse.c" break; - case 24: -#line 113 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "|", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1523 "exprparse.c" /* yacc.c:1652 */ + case 24: /* expr: expr '|' expr */ +#line 113 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "|", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1469 "exprparse.c" break; - case 25: -#line 114 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "#", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1529 "exprparse.c" /* yacc.c:1652 */ + case 25: /* expr: expr '#' expr */ +#line 114 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "#", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1475 "exprparse.c" break; - case 26: -#line 115 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "<<", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1535 "exprparse.c" /* yacc.c:1652 */ + case 26: /* expr: expr LS_OP expr */ +#line 115 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "<<", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1481 "exprparse.c" break; - case 27: -#line 116 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, ">>", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1541 "exprparse.c" /* yacc.c:1652 */ + case 27: /* expr: expr RS_OP expr */ +#line 116 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, ">>", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1487 "exprparse.c" break; - case 28: -#line 117 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "!and", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1547 "exprparse.c" /* yacc.c:1652 */ + case 28: /* expr: expr AND_OP expr */ +#line 117 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "!and", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1493 "exprparse.c" break; - case 29: -#line 118 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "!or", (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 1553 "exprparse.c" /* yacc.c:1652 */ + case 29: /* expr: expr OR_OP expr */ +#line 118 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "!or", (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 1499 "exprparse.c" break; - case 30: -#line 120 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "!is", (yyvsp[-1].expr), make_null_constant()); } -#line 1559 "exprparse.c" /* yacc.c:1652 */ + case 30: /* expr: expr ISNULL_OP */ +#line 120 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "!is", (yyvsp[-1].expr), make_null_constant()); } +#line 1505 "exprparse.c" break; - case 31: -#line 121 "exprparse.y" /* yacc.c:1652 */ - { + case 31: /* expr: expr NOTNULL_OP */ +#line 121 "exprparse.y" + { (yyval.expr) = make_uop(yyscanner, "!not", make_op(yyscanner, "!is", (yyvsp[-1].expr), make_null_constant())); } -#line 1568 "exprparse.c" /* yacc.c:1652 */ +#line 1514 "exprparse.c" break; - case 32: -#line 125 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_op(yyscanner, "!is", (yyvsp[-2].expr), make_null_constant()); } -#line 1574 "exprparse.c" /* yacc.c:1652 */ + case 32: /* expr: expr IS_OP NULL_CONST */ +#line 125 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "!is", (yyvsp[-2].expr), make_null_constant()); } +#line 1520 "exprparse.c" break; - case 33: -#line 127 "exprparse.y" /* yacc.c:1652 */ - { + case 33: /* expr: expr IS_OP NOT_OP NULL_CONST */ +#line 127 "exprparse.y" + { (yyval.expr) = make_uop(yyscanner, "!not", make_op(yyscanner, "!is", (yyvsp[-3].expr), make_null_constant())); } -#line 1583 "exprparse.c" /* yacc.c:1652 */ +#line 1529 "exprparse.c" break; - case 34: -#line 132 "exprparse.y" /* yacc.c:1652 */ - { + case 34: /* expr: expr IS_OP BOOLEAN_CONST */ +#line 132 "exprparse.y" + { (yyval.expr) = make_op(yyscanner, "!is", (yyvsp[-2].expr), make_boolean_constant((yyvsp[0].bval))); } -#line 1591 "exprparse.c" /* yacc.c:1652 */ +#line 1537 "exprparse.c" break; - case 35: -#line 136 "exprparse.y" /* yacc.c:1652 */ - { + case 35: /* expr: expr IS_OP NOT_OP BOOLEAN_CONST */ +#line 136 "exprparse.y" + { (yyval.expr) = make_uop(yyscanner, "!not", make_op(yyscanner, "!is", (yyvsp[-3].expr), make_boolean_constant((yyvsp[0].bval)))); } -#line 1600 "exprparse.c" /* yacc.c:1652 */ +#line 1546 "exprparse.c" break; - case 36: -#line 141 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_null_constant(); } -#line 1606 "exprparse.c" /* yacc.c:1652 */ + case 36: /* expr: NULL_CONST */ +#line 141 "exprparse.y" + { (yyval.expr) = make_null_constant(); } +#line 1552 "exprparse.c" break; - case 37: -#line 142 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_boolean_constant((yyvsp[0].bval)); } -#line 1612 "exprparse.c" /* yacc.c:1652 */ + case 37: /* expr: BOOLEAN_CONST */ +#line 142 "exprparse.y" + { (yyval.expr) = make_boolean_constant((yyvsp[0].bval)); } +#line 1558 "exprparse.c" break; - case 38: -#line 143 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_integer_constant((yyvsp[0].ival)); } -#line 1618 "exprparse.c" /* yacc.c:1652 */ + case 38: /* expr: INTEGER_CONST */ +#line 143 "exprparse.y" + { (yyval.expr) = make_integer_constant((yyvsp[0].ival)); } +#line 1564 "exprparse.c" break; - case 39: -#line 144 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_double_constant((yyvsp[0].dval)); } -#line 1624 "exprparse.c" /* yacc.c:1652 */ + case 39: /* expr: DOUBLE_CONST */ +#line 144 "exprparse.y" + { (yyval.expr) = make_double_constant((yyvsp[0].dval)); } +#line 1570 "exprparse.c" break; - case 40: -#line 146 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_variable((yyvsp[0].str)); } -#line 1630 "exprparse.c" /* yacc.c:1652 */ + case 40: /* expr: VARIABLE */ +#line 146 "exprparse.y" + { (yyval.expr) = make_variable((yyvsp[0].str)); } +#line 1576 "exprparse.c" break; - case 41: -#line 147 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_func(yyscanner, (yyvsp[-3].ival), (yyvsp[-1].elist)); } -#line 1636 "exprparse.c" /* yacc.c:1652 */ + case 41: /* expr: function '(' elist ')' */ +#line 147 "exprparse.y" + { (yyval.expr) = make_func(yyscanner, (yyvsp[-3].ival), (yyvsp[-1].elist)); } +#line 1582 "exprparse.c" break; - case 42: -#line 148 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 1642 "exprparse.c" /* yacc.c:1652 */ + case 42: /* expr: case_control */ +#line 148 "exprparse.y" + { (yyval.expr) = (yyvsp[0].expr); } +#line 1588 "exprparse.c" break; - case 43: -#line 152 "exprparse.y" /* yacc.c:1652 */ - { (yyval.elist) = make_elist((yyvsp[0].expr), make_elist((yyvsp[-2].expr), (yyvsp[-4].elist))); } -#line 1648 "exprparse.c" /* yacc.c:1652 */ + case 43: /* when_then_list: when_then_list WHEN_KW expr THEN_KW expr */ +#line 152 "exprparse.y" + { (yyval.elist) = make_elist((yyvsp[0].expr), make_elist((yyvsp[-2].expr), (yyvsp[-4].elist))); } +#line 1594 "exprparse.c" break; - case 44: -#line 153 "exprparse.y" /* yacc.c:1652 */ - { (yyval.elist) = make_elist((yyvsp[0].expr), make_elist((yyvsp[-2].expr), NULL)); } -#line 1654 "exprparse.c" /* yacc.c:1652 */ + case 44: /* when_then_list: WHEN_KW expr THEN_KW expr */ +#line 153 "exprparse.y" + { (yyval.elist) = make_elist((yyvsp[0].expr), make_elist((yyvsp[-2].expr), NULL)); } +#line 1600 "exprparse.c" break; - case 45: -#line 156 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_case(yyscanner, (yyvsp[-1].elist), make_null_constant()); } -#line 1660 "exprparse.c" /* yacc.c:1652 */ + case 45: /* case_control: CASE_KW when_then_list END_KW */ +#line 156 "exprparse.y" + { (yyval.expr) = make_case(yyscanner, (yyvsp[-1].elist), make_null_constant()); } +#line 1606 "exprparse.c" break; - case 46: -#line 157 "exprparse.y" /* yacc.c:1652 */ - { (yyval.expr) = make_case(yyscanner, (yyvsp[-3].elist), (yyvsp[-1].expr)); } -#line 1666 "exprparse.c" /* yacc.c:1652 */ + case 46: /* case_control: CASE_KW when_then_list ELSE_KW expr END_KW */ +#line 157 "exprparse.y" + { (yyval.expr) = make_case(yyscanner, (yyvsp[-3].elist), (yyvsp[-1].expr)); } +#line 1612 "exprparse.c" break; - case 47: -#line 159 "exprparse.y" /* yacc.c:1652 */ - { (yyval.ival) = find_func(yyscanner, (yyvsp[0].str)); pg_free((yyvsp[0].str)); } -#line 1672 "exprparse.c" /* yacc.c:1652 */ + case 47: /* function: FUNCTION */ +#line 159 "exprparse.y" + { (yyval.ival) = find_func(yyscanner, (yyvsp[0].str)); pg_free((yyvsp[0].str)); } +#line 1618 "exprparse.c" break; -#line 1676 "exprparse.c" /* yacc.c:1652 */ +#line 1622 "exprparse.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1686,11 +1633,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1714,50 +1660,14 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (yyscanner, YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yyscanner, yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } - - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -1806,13 +1716,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -1826,7 +1737,7 @@ yydestruct ("Error: popping", - yystos[yystate], yyvsp, yyscanner); + YY_ACCESSING_SYMBOL (yystate), yyvsp, yyscanner); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -1838,7 +1749,7 @@ /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1860,20 +1771,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (yyscanner, YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -1890,20 +1801,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, yyscanner); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yyscanner); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 162 "exprparse.y" /* yacc.c:1918 */ + +#line 162 "exprparse.y" static PgBenchExpr * diff -Nru postgresql-13-13.4/src/bin/pgbench/pgbench.c postgresql-13-13.7/src/bin/pgbench/pgbench.c --- postgresql-13-13.4/src/bin/pgbench/pgbench.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pgbench/pgbench.c 2022-05-09 21:16:30.000000000 +0000 @@ -6199,7 +6199,7 @@ #endif /* ENABLE_THREAD_SAFETY */ for (int j = 0; j < thread->nstate; j++) - if (thread->state[j].state == CSTATE_ABORTED) + if (thread->state[j].state != CSTATE_FINISHED) exit_code = 2; /* aggregate thread level stats */ @@ -6421,7 +6421,7 @@ continue; } /* must be something wrong */ - pg_log_fatal("%s() failed: %m", SOCKET_WAIT_METHOD); + pg_log_error("%s() failed: %m", SOCKET_WAIT_METHOD); goto done; } } diff -Nru postgresql-13-13.4/src/bin/pgbench/t/001_pgbench_with_server.pl postgresql-13-13.7/src/bin/pgbench/t/001_pgbench_with_server.pl --- postgresql-13-13.4/src/bin/pgbench/t/001_pgbench_with_server.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pgbench/t/001_pgbench_with_server.pl 2022-05-09 21:16:30.000000000 +0000 @@ -63,12 +63,10 @@ # for partitioned tables. my $ts = $node->basedir . '/regress_pgbench_tap_1_ts_dir'; mkdir $ts or die "cannot create directory $ts"; -# this takes care of WIN-specific path issues -my $ets = TestLib::perl2host($ts); # the next commands will issue a syntax error if the path contains a "'" $node->safe_psql('postgres', - "CREATE TABLESPACE regress_pgbench_tap_1_ts LOCATION '$ets';"); + "CREATE TABLESPACE regress_pgbench_tap_1_ts LOCATION '$ts';"); # Test concurrent OID generation via pg_enum_oid_index. This indirectly # exercises LWLock and spinlock concurrency. diff -Nru postgresql-13-13.4/src/bin/pg_checksums/po/fr.po postgresql-13-13.7/src/bin/pg_checksums/po/fr.po --- postgresql-13-13.4/src/bin/pg_checksums/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_checksums/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -38,7 +38,8 @@ "%s enables, disables, or verifies data checksums in a PostgreSQL database cluster.\n" "\n" msgstr "" -"%s active, désactive ou vérifie les sommes de contrôle de données dans une instance PostgreSQL.\n" +"%s active, désactive ou vérifie les sommes de contrôle de données\n" +"dans une instance PostgreSQL.\n" "\n" #: pg_checksums.c:76 @@ -63,42 +64,46 @@ #: pg_checksums.c:79 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=]REPDONNEES répertoire des données\n" +msgstr " [-D, --pgdata=]REP_DONNEES répertoire des données\n" #: pg_checksums.c:80 #, c-format msgid " -c, --check check data checksums (default)\n" -msgstr " -c, --check vérifie les sommes de contrôle (par défaut)\n" +msgstr " -c, --check vérifie les sommes de contrôle (par défaut)\n" #: pg_checksums.c:81 #, c-format msgid " -d, --disable disable data checksums\n" -msgstr " -d, --disable désactive les sommes de contrôle\n" +msgstr " -d, --disable désactive les sommes de contrôle\n" #: pg_checksums.c:82 #, c-format msgid " -e, --enable enable data checksums\n" -msgstr " -e, --enable active les sommes de contrôle\n" +msgstr " -e, --enable active les sommes de contrôle\n" #: pg_checksums.c:83 #, c-format msgid " -f, --filenode=FILENODE check only relation with specified filenode\n" -msgstr " -f, --filenode=FILENODE vérifie seulement la relation dont l'identifiant relfilenode est indiqué\n" +msgstr "" +" -f, --filenode=FILENODE vérifie seulement la relation dont l'identifiant\n" +" relfilenode est indiqué\n" #: pg_checksums.c:84 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" -msgstr " -N, --no-sync n'attend pas que les modifications soient proprement écrites sur disque\n" +msgstr "" +" -N, --no-sync n'attend pas que les modifications soient\n" +" proprement écrites sur disque\n" #: pg_checksums.c:85 #, c-format msgid " -P, --progress show progress information\n" -msgstr " -P, --progress affiche la progression de l'opération\n" +msgstr " -P, --progress affiche la progression de l'opération\n" #: pg_checksums.c:86 #, c-format msgid " -v, --verbose output verbose messages\n" -msgstr " -v, --verbose affiche des messages verbeux\n" +msgstr " -v, --verbose affiche des messages verbeux\n" #: pg_checksums.c:87 #, c-format @@ -131,7 +136,7 @@ #: pg_checksums.c:92 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil de %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" #: pg_checksums.c:161 #, c-format diff -Nru postgresql-13-13.4/src/bin/pg_checksums/po/ru.po postgresql-13-13.7/src/bin/pg_checksums/po/ru.po --- postgresql-13-13.4/src/bin/pg_checksums/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_checksums/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: pg_verify_checksums (PostgreSQL) 11\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-12-11 07:48+0300\n" +"POT-Creation-Date: 2021-08-14 06:30+0300\n" "PO-Revision-Date: 2021-02-08 07:59+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -159,7 +159,7 @@ msgid "could not read block %u in file \"%s\": read %d of %d" msgstr "не удалось прочитать блок %u в файле \"%s\" (прочитано байт: %d из %d)" -#: pg_checksums.c:243 +#: pg_checksums.c:250 #, c-format msgid "" "checksum verification failed in file \"%s\", block %u: calculated checksum " @@ -168,87 +168,87 @@ "ошибка контрольных сумм в файле \"%s\", блоке %u: вычислена контрольная " "сумма %X, но блок содержит %X" -#: pg_checksums.c:258 +#: pg_checksums.c:265 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "ошибка при переходе к блоку %u в файле \"%s\": %m" -#: pg_checksums.c:267 +#: pg_checksums.c:274 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "не удалось записать блок %u в файл \"%s\": %m" -#: pg_checksums.c:270 +#: pg_checksums.c:277 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "не удалось записать блок %u в файле \"%s\" (записано байт: %d из %d)" -#: pg_checksums.c:283 +#: pg_checksums.c:290 #, c-format msgid "checksums verified in file \"%s\"" msgstr "контрольные суммы в файле \"%s\" проверены" -#: pg_checksums.c:285 +#: pg_checksums.c:292 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "контрольные суммы в файле \"%s\" включены" -#: pg_checksums.c:310 +#: pg_checksums.c:317 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: pg_checksums.c:337 pg_checksums.c:416 +#: pg_checksums.c:344 pg_checksums.c:423 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не удалось получить информацию о файле \"%s\": %m" -#: pg_checksums.c:364 +#: pg_checksums.c:371 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "неверный номер сегмента %d в имени файла \"%s\"" -#: pg_checksums.c:497 +#: pg_checksums.c:504 #, c-format msgid "invalid filenode specification, must be numeric: %s" msgstr "неверное указание файлового узла, требуется число: %s" -#: pg_checksums.c:515 pg_checksums.c:531 pg_checksums.c:541 pg_checksums.c:550 +#: pg_checksums.c:522 pg_checksums.c:538 pg_checksums.c:548 pg_checksums.c:557 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Для дополнительной информации попробуйте \"%s --help\".\n" -#: pg_checksums.c:530 +#: pg_checksums.c:537 #, c-format msgid "no data directory specified" msgstr "каталог данных не указан" -#: pg_checksums.c:539 +#: pg_checksums.c:546 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_checksums.c:549 +#: pg_checksums.c:556 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "параметр -f/--filenode можно использовать только с --check" -#: pg_checksums.c:559 +#: pg_checksums.c:566 #, c-format msgid "pg_control CRC value is incorrect" msgstr "ошибка контрольного значения в pg_control" -#: pg_checksums.c:565 +#: pg_checksums.c:572 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "кластер несовместим с этой версией pg_checksums" -#: pg_checksums.c:571 +#: pg_checksums.c:578 #, c-format msgid "database cluster is not compatible" msgstr "несовместимый кластер баз данных" -#: pg_checksums.c:572 +#: pg_checksums.c:579 #, c-format msgid "" "The database cluster was initialized with block size %u, but pg_checksums " @@ -257,67 +257,67 @@ "Кластер баз данных был инициализирован с размером блока %u, а утилита " "pg_checksums скомпилирована для размера блока %u.\n" -#: pg_checksums.c:585 +#: pg_checksums.c:592 #, c-format msgid "cluster must be shut down" msgstr "кластер должен быть отключён" -#: pg_checksums.c:592 +#: pg_checksums.c:599 #, c-format msgid "data checksums are not enabled in cluster" msgstr "контрольные суммы в кластере не включены" -#: pg_checksums.c:599 +#: pg_checksums.c:606 #, c-format msgid "data checksums are already disabled in cluster" msgstr "контрольные суммы в кластере уже отключены" -#: pg_checksums.c:606 +#: pg_checksums.c:613 #, c-format msgid "data checksums are already enabled in cluster" msgstr "контрольные суммы в кластере уже включены" -#: pg_checksums.c:632 +#: pg_checksums.c:639 #, c-format msgid "Checksum operation completed\n" msgstr "Обработка контрольных сумм завершена\n" -#: pg_checksums.c:633 +#: pg_checksums.c:640 #, c-format msgid "Files scanned: %s\n" msgstr "Просканировано файлов: %s\n" -#: pg_checksums.c:634 +#: pg_checksums.c:641 #, c-format msgid "Blocks scanned: %s\n" msgstr "Просканировано блоков: %s\n" -#: pg_checksums.c:637 +#: pg_checksums.c:644 #, c-format msgid "Bad checksums: %s\n" msgstr "Неверные контрольные суммы: %s\n" -#: pg_checksums.c:638 pg_checksums.c:665 +#: pg_checksums.c:645 pg_checksums.c:672 #, c-format msgid "Data checksum version: %u\n" msgstr "Версия контрольных сумм данных: %u\n" -#: pg_checksums.c:657 +#: pg_checksums.c:664 #, c-format msgid "syncing data directory" msgstr "синхронизация каталога данных" -#: pg_checksums.c:661 +#: pg_checksums.c:668 #, c-format msgid "updating control file" msgstr "модификация управляющего файла" -#: pg_checksums.c:667 +#: pg_checksums.c:674 #, c-format msgid "Checksums enabled in cluster\n" msgstr "Контрольные суммы в кластере включены\n" -#: pg_checksums.c:669 +#: pg_checksums.c:676 #, c-format msgid "Checksums disabled in cluster\n" msgstr "Контрольные суммы в кластере отключены\n" diff -Nru postgresql-13-13.4/src/bin/pg_checksums/po/sv.po postgresql-13-13.7/src/bin/pg_checksums/po/sv.po --- postgresql-13-13.4/src/bin/pg_checksums/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_checksums/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for pg_checksums # Copyright (C) 2019 PostgreSQL Global Development Group # This file is distributed under the same license as the pg_checksums (PostgreSQL) package. -# Dennis Björklund , 2019, 2020. +# Dennis Björklund , 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:17+0000\n" -"PO-Revision-Date: 2020-04-11 07:46+0200\n" +"POT-Creation-Date: 2022-02-18 04:32+0000\n" +"PO-Revision-Date: 2021-11-07 06:44+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -138,172 +138,172 @@ msgid "%*s/%s MB (%d%%) computed" msgstr "%*s/%s MB (%d%%) beräknad" -#: pg_checksums.c:204 +#: pg_checksums.c:207 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" -#: pg_checksums.c:220 +#: pg_checksums.c:223 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "kunde inte läsa block %u i fil \"%s\": %m" -#: pg_checksums.c:223 +#: pg_checksums.c:226 #, c-format msgid "could not read block %u in file \"%s\": read %d of %d" msgstr "kunde inte läsa block %u i fil \"%s\": läste %d av %d" -#: pg_checksums.c:240 +#: pg_checksums.c:250 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated checksum %X but block contains %X" msgstr "verifiering av kontrollsumma misslyckades i fil \"%s\", block %u: beräknad kontrollsumma är %X men blocket innehåller %X" -#: pg_checksums.c:255 +#: pg_checksums.c:265 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "seek misslyckades för block %u i fil \"%s\": %m" -#: pg_checksums.c:264 +#: pg_checksums.c:274 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "kunde inte skriva block %u i fil \"%s\": %m" -#: pg_checksums.c:267 +#: pg_checksums.c:277 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "kunde inte skriva block %u i fil \"%s\": skrev %d av %d" -#: pg_checksums.c:280 +#: pg_checksums.c:290 #, c-format msgid "checksums verified in file \"%s\"" msgstr "kontrollsummor verifierade i fil \"%s\"" -#: pg_checksums.c:282 +#: pg_checksums.c:292 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "kontrollsummor påslagen i fil \"%s\"" -#: pg_checksums.c:307 +#: pg_checksums.c:317 #, c-format msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: pg_checksums.c:334 pg_checksums.c:413 +#: pg_checksums.c:344 pg_checksums.c:423 #, c-format msgid "could not stat file \"%s\": %m" msgstr "kunde inte göra stat() på fil \"%s\": %m" -#: pg_checksums.c:361 +#: pg_checksums.c:371 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "ogiltigt segmentnummer %d i filnamn \"%s\"" -#: pg_checksums.c:494 +#: pg_checksums.c:504 #, c-format msgid "invalid filenode specification, must be numeric: %s" msgstr "ogiltigt angiven filnod, måste vara numerisk: %s" -#: pg_checksums.c:512 pg_checksums.c:528 pg_checksums.c:538 pg_checksums.c:547 +#: pg_checksums.c:522 pg_checksums.c:538 pg_checksums.c:548 pg_checksums.c:557 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" -#: pg_checksums.c:527 +#: pg_checksums.c:537 #, c-format msgid "no data directory specified" msgstr "ingen datakatalog angiven" -#: pg_checksums.c:536 +#: pg_checksums.c:546 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_checksums.c:546 +#: pg_checksums.c:556 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "inställningen -f/--filenode tillåts bara med --check" -#: pg_checksums.c:556 +#: pg_checksums.c:566 #, c-format msgid "pg_control CRC value is incorrect" msgstr "pg_control CRC-värde är inkorrekt" -#: pg_checksums.c:562 +#: pg_checksums.c:572 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "klustret är inte kompatibelt med denna version av pg_checksums" -#: pg_checksums.c:568 +#: pg_checksums.c:578 #, c-format msgid "database cluster is not compatible" msgstr "databasklustret är inte kompatibelt" -#: pg_checksums.c:569 +#: pg_checksums.c:579 #, c-format msgid "The database cluster was initialized with block size %u, but pg_checksums was compiled with block size %u.\n" msgstr "Databasklustret initierades med blockstorlek %u men pg_checksums kompilerades med blockstorlek %u.\n" -#: pg_checksums.c:582 +#: pg_checksums.c:592 #, c-format msgid "cluster must be shut down" msgstr "klustret måste stängas ner" -#: pg_checksums.c:589 +#: pg_checksums.c:599 #, c-format msgid "data checksums are not enabled in cluster" msgstr "datakontrollsummor är inte påslaget i klustret" -#: pg_checksums.c:596 +#: pg_checksums.c:606 #, c-format msgid "data checksums are already disabled in cluster" msgstr "datakontrollsummor är redan avslaget i klustret" -#: pg_checksums.c:603 +#: pg_checksums.c:613 #, c-format msgid "data checksums are already enabled in cluster" msgstr "datakontrollsummor är redan påslagna i klustret" -#: pg_checksums.c:632 +#: pg_checksums.c:639 #, c-format msgid "Checksum operation completed\n" msgstr "Kontrollsummeoperation avslutad\n" -#: pg_checksums.c:633 +#: pg_checksums.c:640 #, c-format msgid "Files scanned: %s\n" msgstr "Skannade filer: %s\n" -#: pg_checksums.c:634 +#: pg_checksums.c:641 #, c-format msgid "Blocks scanned: %s\n" msgstr "Skannade block: %s\n" -#: pg_checksums.c:637 +#: pg_checksums.c:644 #, c-format msgid "Bad checksums: %s\n" msgstr "Felaktiga kontrollsummor: %s\n" -#: pg_checksums.c:638 pg_checksums.c:665 +#: pg_checksums.c:645 pg_checksums.c:672 #, c-format -msgid "Data checksum version: %d\n" -msgstr "Datakontrollsummeversion: %d\n" +msgid "Data checksum version: %u\n" +msgstr "Datakontrollsummeversion: %u\n" -#: pg_checksums.c:657 +#: pg_checksums.c:664 #, c-format msgid "syncing data directory" msgstr "synkar datakatalogen" -#: pg_checksums.c:661 +#: pg_checksums.c:668 #, c-format msgid "updating control file" msgstr "uppdaterar kontrollfil" -#: pg_checksums.c:667 +#: pg_checksums.c:674 #, c-format msgid "Checksums enabled in cluster\n" msgstr "Kontrollsummor påslaget i klustret\n" -#: pg_checksums.c:669 +#: pg_checksums.c:676 #, c-format msgid "Checksums disabled in cluster\n" msgstr "Kontrollsummor avslaget i klustret\n" diff -Nru postgresql-13-13.4/src/bin/pg_checksums/t/002_actions.pl postgresql-13-13.7/src/bin/pg_checksums/t/002_actions.pl --- postgresql-13-13.4/src/bin/pg_checksums/t/002_actions.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_checksums/t/002_actions.pl 2022-05-09 21:16:30.000000000 +0000 @@ -19,6 +19,7 @@ my $tablespace = shift; my $pgdata = $node->data_dir; + # Create table and discover its filesystem location. $node->safe_psql( 'postgres', "SELECT a INTO $table FROM generate_series(1,10000) AS a; @@ -32,9 +33,6 @@ my $relfilenode_corrupted = $node->safe_psql('postgres', "SELECT relfilenode FROM pg_class WHERE relname = '$table';"); - # Set page header and block size - my $pageheader_size = 24; - my $block_size = $node->safe_psql('postgres', 'SHOW block_size;'); $node->stop; # Checksums are correct for single relfilenode as the table is not @@ -49,10 +47,7 @@ ); # Time to create some corruption - open my $file, '+<', "$pgdata/$file_corrupted"; - seek($file, $pageheader_size, 0); - syswrite($file, "\0\0\0\0\0\0\0\0\0"); - close $file; + $node->corrupt_page_checksum($file_corrupted, 0); # Checksum checks on single relfilenode fail $node->command_checks_all( @@ -185,7 +180,6 @@ my $basedir = $node->basedir; my $tablespace_dir = "$basedir/ts_corrupt_dir"; mkdir($tablespace_dir); -$tablespace_dir = TestLib::perl2host($tablespace_dir); $node->safe_psql('postgres', "CREATE TABLESPACE ts_corrupt LOCATION '$tablespace_dir';"); check_relation_corruption($node, 'corrupt2', 'ts_corrupt'); diff -Nru postgresql-13-13.4/src/bin/pg_config/po/fr.po postgresql-13-13.7/src/bin/pg_config/po/fr.po --- postgresql-13-13.4/src/bin/pg_config/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_config/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -109,8 +109,7 @@ #, c-format msgid " --htmldir show location of HTML documentation files\n" msgstr "" -" --htmldir affiche l'emplacement des fichiers de documentation\n" -" HTML\n" +" --htmldir affiche l'emplacement des fichiers de documentation HTML\n" #: pg_config.c:81 #, c-format @@ -125,8 +124,7 @@ #, c-format msgid " --pkgincludedir show location of other C header files\n" msgstr "" -" --pkgincludedir affiche l'emplacement des autres fichiers d'en-tête\n" -" C\n" +" --pkgincludedir affiche l'emplacement des autres fichiers d'en-tête C\n" #: pg_config.c:84 #, c-format @@ -185,7 +183,7 @@ " PostgreSQL was built\n" msgstr "" " --configure affiche les options passées au script « configure »\n" -" à la construction de PostgreSQL\n" +" lors de la construction de PostgreSQL\n" #: pg_config.c:94 #, c-format @@ -272,7 +270,7 @@ #: pg_config.c:106 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil %s : %s\n" +msgstr "Page d'accueil de %s : <%s>\n" #: pg_config.c:112 #, c-format @@ -282,7 +280,7 @@ #: pg_config.c:154 #, c-format msgid "%s: could not find own program executable\n" -msgstr "%s : n'a pas pu trouver son propre exécutable\n" +msgstr "%s : n'a pas pu trouver l'exécutable du programme\n" #: pg_config.c:181 #, c-format diff -Nru postgresql-13-13.4/src/bin/pg_config/po/ru.po postgresql-13-13.7/src/bin/pg_config/po/ru.po --- postgresql-13-13.4/src/bin/pg_config/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_config/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -5,12 +5,12 @@ # Serguei A. Mokhov , 2004-2005. # Sergey Burladyan , 2009, 2012. # Andrey Sudnik , 2010. -# Alexander Lakhin , 2012-2016, 2017, 2019, 2020. +# Alexander Lakhin , 2012-2016, 2017, 2019, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: pg_config (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-03 11:22+0300\n" +"POT-Creation-Date: 2022-04-26 13:44+0300\n" "PO-Revision-Date: 2020-09-03 13:28+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -28,42 +28,42 @@ msgid "not recorded" msgstr "не записано" -#: ../../common/exec.c:137 ../../common/exec.c:254 ../../common/exec.c:300 +#: ../../common/exec.c:142 ../../common/exec.c:259 ../../common/exec.c:305 #, c-format msgid "could not identify current directory: %m" msgstr "не удалось определить текущий каталог: %m" -#: ../../common/exec.c:156 +#: ../../common/exec.c:161 #, c-format msgid "invalid binary \"%s\"" msgstr "неверный исполняемый файл \"%s\"" -#: ../../common/exec.c:206 +#: ../../common/exec.c:211 #, c-format msgid "could not read binary \"%s\"" msgstr "не удалось прочитать исполняемый файл \"%s\"" -#: ../../common/exec.c:214 +#: ../../common/exec.c:219 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:270 ../../common/exec.c:309 +#: ../../common/exec.c:275 ../../common/exec.c:314 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: ../../common/exec.c:287 +#: ../../common/exec.c:292 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "не удалось прочитать символическую ссылку \"%s\": %m" -#: ../../common/exec.c:410 +#: ../../common/exec.c:415 #, c-format msgid "pclose failed: %m" msgstr "ошибка pclose: %m" -#: ../../common/exec.c:539 ../../common/exec.c:584 ../../common/exec.c:676 +#: ../../common/exec.c:544 ../../common/exec.c:589 ../../common/exec.c:681 msgid "out of memory" msgstr "нехватка памяти" diff -Nru postgresql-13-13.4/src/bin/pg_config/po/sv.po postgresql-13-13.7/src/bin/pg_config/po/sv.po --- postgresql-13-13.4/src/bin/pg_config/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_config/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,13 +1,13 @@ # Swedish message translation file for pg_config. -# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020. +# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021. # Mats Erik Andersson , 2014. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:14+0000\n" -"PO-Revision-Date: 2020-04-11 07:48+0200\n" +"POT-Creation-Date: 2022-02-18 04:29+0000\n" +"PO-Revision-Date: 2021-11-07 06:44+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" diff -Nru postgresql-13-13.4/src/bin/pg_controldata/po/fr.po postgresql-13-13.7/src/bin/pg_controldata/po/fr.po --- postgresql-13-13.4/src/bin/pg_controldata/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_controldata/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -80,8 +80,7 @@ "%s displays control information of a PostgreSQL database cluster.\n" "\n" msgstr "" -"%s affiche les informations de contrôle du cluster de bases de données\n" -"PostgreSQL.\n" +"%s affiche les informations de contrôle de l'instance PostgreSQL.\n" "\n" #: pg_controldata.c:36 @@ -106,17 +105,17 @@ #: pg_controldata.c:39 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata] RÉPDONNEES répertoire de la base de données\n" +msgstr " [-D, --pgdata] RÉP_DONNEES répertoire de la base de données\n" #: pg_controldata.c:40 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: pg_controldata.c:41 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" #: pg_controldata.c:42 #, c-format @@ -127,8 +126,8 @@ "\n" msgstr "" "\n" -"Si aucun répertoire (RÉP_DONNÉES) n'est indiqué, la variable\n" -"d'environnement PGDATA est utilisée.\n" +"Si aucun répertoire (RÉP_DONNÉES) n'est indiqué, la variable d'environnement\n" +"PGDATA est utilisée.\n" "\n" #: pg_controldata.c:44 @@ -139,7 +138,7 @@ #: pg_controldata.c:45 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil %s : %s\n" +msgstr "Page d'accueil de %s : <%s>\n" #: pg_controldata.c:55 msgid "starting up" @@ -277,7 +276,7 @@ #: pg_controldata.c:244 #, c-format msgid "Latest checkpoint's REDO WAL file: %s\n" -msgstr "Dernier fichier WAL du rejeu du point de restauration : %s\n" +msgstr "Dernier fichier WAL du rejeu du point de contrrôle : %s\n" #: pg_controldata.c:246 #, c-format @@ -287,7 +286,7 @@ #: pg_controldata.c:248 #, c-format msgid "Latest checkpoint's PrevTimeLineID: %u\n" -msgstr "Dernier PrevTimeLineID du point de restauration : %u\n" +msgstr "Dernier PrevTimeLineID du point de contrôle : %u\n" #: pg_controldata.c:250 #, c-format @@ -340,22 +339,22 @@ #: pg_controldata.c:267 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" -msgstr "Dernier oldestMultiXid du point de restauration : %u\n" +msgstr "Dernier oldestMultiXid du point de contrôle : %u\n" #: pg_controldata.c:269 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" -msgstr "Dernier oldestMulti du point de restauration de base : %u\n" +msgstr "Dernier oldestMulti du point de contrôle de base : %u\n" #: pg_controldata.c:271 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" -msgstr "Dernier oldestCommitTsXid du point de restauration : %u\n" +msgstr "Dernier oldestCommitTsXid du point de contrôle : %u\n" #: pg_controldata.c:273 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" -msgstr "Dernier newestCommitTsXid du point de restauration : %u\n" +msgstr "Dernier newestCommitTsXid du point de contrôle : %u\n" #: pg_controldata.c:275 #, c-format diff -Nru postgresql-13-13.4/src/bin/pg_controldata/po/ru.po postgresql-13-13.7/src/bin/pg_controldata/po/ru.po --- postgresql-13-13.4/src/bin/pg_controldata/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_controldata/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -4,13 +4,13 @@ # Serguei A. Mokhov , 2002-2004. # Oleg Bartunov , 2004. # Andrey Sudnik , 2011. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: pg_controldata (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2020-09-03 11:22+0300\n" -"PO-Revision-Date: 2020-09-03 13:28+0300\n" +"PO-Revision-Date: 2021-08-14 07:04+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -38,7 +38,7 @@ #: ../../common/controldata_utils.c:117 ../../common/controldata_utils.c:259 #, c-format msgid "could not close file \"%s\": %m" -msgstr "не удалось прочитать файл \"%s\": %m" +msgstr "не удалось закрыть файл \"%s\": %m" #: ../../common/controldata_utils.c:135 msgid "byte ordering mismatch" @@ -71,7 +71,7 @@ #: ../../common/controldata_utils.c:245 #, c-format msgid "could not fsync file \"%s\": %m" -msgstr "не удалось прочитать файл \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" #: pg_controldata.c:35 #, c-format @@ -126,8 +126,8 @@ "\n" msgstr "" "\n" -"Если каталог данных не задан, используется значение переменной окружения " -"PGDATA.\n" +"Если каталог данных (КАТ_ДАННЫХ) не задан, используется значение\n" +"переменной окружения PGDATA.\n" "\n" #: pg_controldata.c:44 diff -Nru postgresql-13-13.4/src/bin/pg_controldata/po/sv.po postgresql-13-13.7/src/bin/pg_controldata/po/sv.po --- postgresql-13-13.4/src/bin/pg_controldata/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_controldata/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,6 +1,6 @@ # Swedish message translation file for pg_controldata # This file is put in the public domain. -# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021. # Mats Erik Andersson , 2014. # # Use these quotes: "%s" @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:17+0000\n" -"PO-Revision-Date: 2020-04-11 07:50+0200\n" +"POT-Creation-Date: 2022-02-18 04:32+0000\n" +"PO-Revision-Date: 2021-11-07 10:37+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" diff -Nru postgresql-13-13.4/src/bin/pg_ctl/pg_ctl.c postgresql-13-13.7/src/bin/pg_ctl/pg_ctl.c --- postgresql-13-13.4/src/bin/pg_ctl/pg_ctl.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_ctl/pg_ctl.c 2022-05-09 21:16:30.000000000 +0000 @@ -155,7 +155,9 @@ static pgpid_t start_postmaster(void); static void read_post_opts(void); -static WaitPMResult wait_for_postmaster(pgpid_t pm_pid, bool do_checkpoint); +static WaitPMResult wait_for_postmaster_start(pgpid_t pm_pid, bool do_checkpoint); +static bool wait_for_postmaster_stop(void); +static bool wait_for_postmaster_promote(void); static bool postmaster_is_alive(pid_t pid); #if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE) @@ -442,7 +444,7 @@ static pgpid_t start_postmaster(void) { - char cmd[MAXPGPATH]; + char *cmd; #ifndef WIN32 pgpid_t pm_pid; @@ -487,12 +489,12 @@ * has the same PID as the current child process. */ if (log_file != NULL) - snprintf(cmd, MAXPGPATH, "exec \"%s\" %s%s < \"%s\" >> \"%s\" 2>&1", - exec_path, pgdata_opt, post_opts, - DEVNULL, log_file); + cmd = psprintf("exec \"%s\" %s%s < \"%s\" >> \"%s\" 2>&1", + exec_path, pgdata_opt, post_opts, + DEVNULL, log_file); else - snprintf(cmd, MAXPGPATH, "exec \"%s\" %s%s < \"%s\" 2>&1", - exec_path, pgdata_opt, post_opts, DEVNULL); + cmd = psprintf("exec \"%s\" %s%s < \"%s\" 2>&1", + exec_path, pgdata_opt, post_opts, DEVNULL); (void) execl("/bin/sh", "/bin/sh", "-c", cmd, (char *) NULL); @@ -553,12 +555,12 @@ else close(fd); - snprintf(cmd, MAXPGPATH, "\"%s\" /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"", - comspec, exec_path, pgdata_opt, post_opts, DEVNULL, log_file); + cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"", + comspec, exec_path, pgdata_opt, post_opts, DEVNULL, log_file); } else - snprintf(cmd, MAXPGPATH, "\"%s\" /C \"\"%s\" %s%s < \"%s\" 2>&1\"", - comspec, exec_path, pgdata_opt, post_opts, DEVNULL); + cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" 2>&1\"", + comspec, exec_path, pgdata_opt, post_opts, DEVNULL); if (!CreateRestrictedProcess(cmd, &pi, false)) { @@ -590,7 +592,7 @@ * manager checkpoint, it's got nothing to do with database checkpoints!! */ static WaitPMResult -wait_for_postmaster(pgpid_t pm_pid, bool do_checkpoint) +wait_for_postmaster_start(pgpid_t pm_pid, bool do_checkpoint) { int i; @@ -700,6 +702,76 @@ } +/* + * Wait for the postmaster to stop. + * + * Returns true if the postmaster stopped cleanly (i.e., removed its pidfile). + * Returns false if the postmaster dies uncleanly, or if we time out. + */ +static bool +wait_for_postmaster_stop(void) +{ + int cnt; + + for (cnt = 0; cnt < wait_seconds * WAITS_PER_SEC; cnt++) + { + pgpid_t pid; + + if ((pid = get_pgpid(false)) == 0) + return true; /* pid file is gone */ + + if (kill((pid_t) pid, 0) != 0) + { + /* + * Postmaster seems to have died. Check the pid file once more to + * avoid a race condition, but give up waiting. + */ + if (get_pgpid(false) == 0) + return true; /* pid file is gone */ + return false; /* postmaster died untimely */ + } + + if (cnt % WAITS_PER_SEC == 0) + print_msg("."); + pg_usleep(USEC_PER_SEC / WAITS_PER_SEC); + } + return false; /* timeout reached */ +} + + +/* + * Wait for the postmaster to promote. + * + * Returns true on success, else false. + * To avoid waiting uselessly, we check for postmaster death here too. + */ +static bool +wait_for_postmaster_promote(void) +{ + int cnt; + + for (cnt = 0; cnt < wait_seconds * WAITS_PER_SEC; cnt++) + { + pgpid_t pid; + DBState state; + + if ((pid = get_pgpid(false)) == 0) + return false; /* pid file is gone */ + if (kill((pid_t) pid, 0) != 0) + return false; /* postmaster died */ + + state = get_control_dbstate(); + if (state == DB_IN_PRODUCTION) + return true; /* successful promotion */ + + if (cnt % WAITS_PER_SEC == 0) + print_msg("."); + pg_usleep(USEC_PER_SEC / WAITS_PER_SEC); + } + return false; /* timeout reached */ +} + + #if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE) static void unlimit_core_size(void) @@ -828,7 +900,7 @@ static void do_init(void) { - char cmd[MAXPGPATH]; + char *cmd; if (exec_path == NULL) exec_path = find_other_exec_or_die(argv0, "initdb", "initdb (PostgreSQL) " PG_VERSION "\n"); @@ -840,11 +912,11 @@ post_opts = ""; if (!silent_mode) - snprintf(cmd, MAXPGPATH, "\"%s\" %s%s", - exec_path, pgdata_opt, post_opts); + cmd = psprintf("\"%s\" %s%s", + exec_path, pgdata_opt, post_opts); else - snprintf(cmd, MAXPGPATH, "\"%s\" %s%s > \"%s\"", - exec_path, pgdata_opt, post_opts, DEVNULL); + cmd = psprintf("\"%s\" %s%s > \"%s\"", + exec_path, pgdata_opt, post_opts, DEVNULL); if (system(cmd) != 0) { @@ -914,7 +986,7 @@ print_msg(_("waiting for server to start...")); - switch (wait_for_postmaster(pm_pid, false)) + switch (wait_for_postmaster_start(pm_pid, false)) { case POSTMASTER_READY: print_msg(_(" done\n")); @@ -949,7 +1021,6 @@ static void do_stop(void) { - int cnt; pgpid_t pid; struct stat statbuf; @@ -1000,19 +1071,7 @@ print_msg(_("waiting for server to shut down...")); - for (cnt = 0; cnt < wait_seconds * WAITS_PER_SEC; cnt++) - { - if ((pid = get_pgpid(false)) != 0) - { - if (cnt % WAITS_PER_SEC == 0) - print_msg("."); - pg_usleep(USEC_PER_SEC / WAITS_PER_SEC); - } - else - break; - } - - if (pid != 0) /* pid file still exists */ + if (!wait_for_postmaster_stop()) { print_msg(_(" failed\n")); @@ -1036,7 +1095,6 @@ static void do_restart(void) { - int cnt; pgpid_t pid; struct stat statbuf; @@ -1090,20 +1148,7 @@ print_msg(_("waiting for server to shut down...")); /* always wait for restart */ - - for (cnt = 0; cnt < wait_seconds * WAITS_PER_SEC; cnt++) - { - if ((pid = get_pgpid(false)) != 0) - { - if (cnt % WAITS_PER_SEC == 0) - print_msg("."); - pg_usleep(USEC_PER_SEC / WAITS_PER_SEC); - } - else - break; - } - - if (pid != 0) /* pid file still exists */ + if (!wait_for_postmaster_stop()) { print_msg(_(" failed\n")); @@ -1228,21 +1273,8 @@ if (do_wait) { - DBState state = DB_STARTUP; - int cnt; - print_msg(_("waiting for server to promote...")); - for (cnt = 0; cnt < wait_seconds * WAITS_PER_SEC; cnt++) - { - state = get_control_dbstate(); - if (state == DB_IN_PRODUCTION) - break; - - if (cnt % WAITS_PER_SEC == 0) - print_msg("."); - pg_usleep(USEC_PER_SEC / WAITS_PER_SEC); - } - if (state == DB_IN_PRODUCTION) + if (wait_for_postmaster_promote()) { print_msg(_(" done\n")); print_msg(_("server promoted\n")); @@ -1661,7 +1693,7 @@ if (do_wait) { write_eventlog(EVENTLOG_INFORMATION_TYPE, _("Waiting for server startup...\n")); - if (wait_for_postmaster(postmasterPID, true) != POSTMASTER_READY) + if (wait_for_postmaster_start(postmasterPID, true) != POSTMASTER_READY) { write_eventlog(EVENTLOG_ERROR_TYPE, _("Timed out waiting for server startup\n")); pgwin32_SetServiceStatus(SERVICE_STOPPED); @@ -1682,7 +1714,7 @@ { /* * status.dwCheckPoint can be incremented by - * wait_for_postmaster(), so it might not start from 0. + * wait_for_postmaster_start(), so it might not start from 0. */ int maxShutdownCheckPoint = status.dwCheckPoint + 12; @@ -2181,9 +2213,9 @@ static void adjust_data_dir(void) { - char cmd[MAXPGPATH], - filename[MAXPGPATH], - *my_exec_path; + char filename[MAXPGPATH]; + char *my_exec_path, + *cmd; FILE *fd; /* do nothing if we're working without knowledge of data dir */ @@ -2213,10 +2245,10 @@ my_exec_path = pg_strdup(exec_path); /* it's important for -C to be the first option, see main.c */ - snprintf(cmd, MAXPGPATH, "\"%s\" -C data_directory %s%s", - my_exec_path, - pgdata_opt ? pgdata_opt : "", - post_opts ? post_opts : ""); + cmd = psprintf("\"%s\" -C data_directory %s%s", + my_exec_path, + pgdata_opt ? pgdata_opt : "", + post_opts ? post_opts : ""); fd = popen(cmd, "r"); if (fd == NULL || fgets(filename, sizeof(filename), fd) == NULL) diff -Nru postgresql-13-13.4/src/bin/pg_ctl/po/fr.po postgresql-13-13.7/src/bin/pg_ctl/po/fr.po --- postgresql-13-13.4/src/bin/pg_ctl/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_ctl/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -195,8 +195,8 @@ "but was not the same version as %s.\n" "Check your installation.\n" msgstr "" -"Le programme « %s », trouvé par « %s », n'est pas de la même version\n" -"que %s.\n" +"Le programme « %s » a été trouvé par « %s »\n" +"mais n'est pas de la même version que %s.\n" "Vérifiez votre installation.\n" #: pg_ctl.c:852 @@ -568,13 +568,13 @@ " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" " [-o OPTIONS] [-p PATH] [-c]\n" msgstr "" -" %s start [-D RÉP_DONNÉES] [-l NOM_FICHIER] [-W] [-t SECS] [-s]\n" -" [-o OPTIONS] [-p CHEMIN] [-c]\n" +" %s start [-D RÉP_DONNÉES] [-l NOM_FICHIER] [-W] [-t SECS] [-s]\n" +" [-o OPTIONS] [-p CHEMIN] [-c]\n" #: pg_ctl.c:2038 #, c-format msgid " %s stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" -msgstr " %s stop [-D RÉP_DONNÉES] [-m MODE_ARRÊT] [-W] [-t SECS] [-s]\n" +msgstr " %s stop [-D RÉP_DONNÉES] [-m MODE_ARRÊT] [-W] [-t SECS] [-s]\n" #: pg_ctl.c:2039 #, c-format @@ -582,33 +582,33 @@ " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" " [-o OPTIONS] [-c]\n" msgstr "" -" %s restart [-D RÉP_DONNÉES] [-m MODE_ARRÊT] [-W] [-t SECS] [-s]\n" -" [-o OPTIONS] [-c]\n" +" %s restart [-D RÉP_DONNÉES] [-m MODE_ARRÊT] [-W] [-t SECS] [-s]\n" +" [-o OPTIONS] [-c]\n" #: pg_ctl.c:2041 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" -msgstr " %s reload [-D RÉP_DONNÉES] [-s]\n" +msgstr " %s reload [-D RÉP_DONNÉES] [-s]\n" #: pg_ctl.c:2042 #, c-format msgid " %s status [-D DATADIR]\n" -msgstr " %s status [-D RÉP_DONNÉES]\n" +msgstr " %s status [-D RÉP_DONNÉES]\n" #: pg_ctl.c:2043 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" -msgstr " %s promote [-D RÉP_DONNÉES] [-W] [-t SECS] [-s]\n" +msgstr " %s promote [-D RÉP_DONNÉES] [-W] [-t SECS] [-s]\n" #: pg_ctl.c:2044 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" -msgstr " %s reload [-D RÉP_DONNÉES] [-s]\n" +msgstr " %s reload [-D RÉP_DONNÉES] [-s]\n" #: pg_ctl.c:2045 #, c-format msgid " %s kill SIGNALNAME PID\n" -msgstr " %s kill NOM_SIGNAL PID\n" +msgstr " %s kill NOM_SIGNAL PID\n" #: pg_ctl.c:2047 #, c-format @@ -616,8 +616,8 @@ " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" " [-S START-TYPE] [-e SOURCE] [-W] [-t SECS] [-s] [-o OPTIONS]\n" msgstr "" -" %s register [-D RÉP_DONNÉES] [-N NOM_SERVICE] [-U NOM_UTILISATEUR] [-P MOT_DE_PASSE]\n" -" [-S TYPE_DÉMARRAGE] [-e SOURCE] [-W] [-t SECS] [-s] [-o OPTIONS]\n" +" %s register [-D RÉP_DONNÉES] [-N NOM_SERVICE] [-U NOM_UTILISATEUR] [-P MOT_DE_PASSE]\n" +" [-S TYPE_DÉMARRAGE] [-e SOURCE] [-W] [-t SECS] [-s] [-o OPTIONS]\n" #: pg_ctl.c:2049 #, c-format @@ -636,7 +636,7 @@ #: pg_ctl.c:2053 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" -msgstr " -D, --pgdata=RÉP_DONNÉES emplacement de stockage du cluster\n" +msgstr " -D, --pgdata=RÉP_DONNÉES emplacement du répertoire de données principal\n" #: pg_ctl.c:2055 #, c-format @@ -656,28 +656,28 @@ #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr "" -" -t, --timeout=SECS durée en secondes à attendre lors de\n" -" l'utilisation de l'option -w\n" +" -t, --timeout=SECS durée en secondes à attendre lors de l'utilisation\n" +" de l'option -w\n" #: pg_ctl.c:2059 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: pg_ctl.c:2060 #, c-format msgid " -w, --wait wait until operation completes (default)\n" -msgstr " -w, --wait attend la fin de l'opération (par défaut)\n" +msgstr " -w, --wait attend la fin de l'opération (par défaut)\n" #: pg_ctl.c:2061 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" -msgstr " -W, --no-wait n'attend pas la fin de l'opération\n" +msgstr " -W, --no-wait n'attend pas la fin de l'opération\n" #: pg_ctl.c:2062 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" #: pg_ctl.c:2063 #, c-format @@ -707,8 +707,7 @@ #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr "" -" -l, --log=NOM_FICHIER écrit (ou ajoute) le journal du serveur dans\n" -" NOM_FICHIER\n" +" -l, --log=FICHIER écrit (ou ajoute) le journal du serveur dans FICHIER\n" #: pg_ctl.c:2072 #, c-format @@ -716,9 +715,8 @@ " -o, --options=OPTIONS command line options to pass to postgres\n" " (PostgreSQL server executable) or initdb\n" msgstr "" -" -o, --options=OPTIONS options de la ligne de commande à passer à\n" -" postgres (exécutable du serveur PostgreSQL)\n" -" ou à initdb\n" +" -o, --options=OPTIONS options de la ligne de commande à passer à postgres\n" +" (exécutable du serveur PostgreSQL) ou à initdb\n" #: pg_ctl.c:2074 #, c-format @@ -738,8 +736,7 @@ #, c-format msgid " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr "" -" -m, --mode=MODE MODE peut valoir « smart », « fast » ou\n" -" « immediate »\n" +" -m, --mode=MODE MODE peut valoir « smart », « fast » ou « immediate »\n" #: pg_ctl.c:2078 #, c-format @@ -753,19 +750,19 @@ #: pg_ctl.c:2079 #, c-format msgid " smart quit after all clients have disconnected\n" -msgstr " smart quitte après déconnexion de tous les clients\n" +msgstr " smart quitte après déconnexion de tous les clients\n" #: pg_ctl.c:2080 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" -msgstr " fast quitte directement, et arrête correctement (par défaut)\n" +msgstr " fast quitte directement, et arrête correctement (par défaut)\n" #: pg_ctl.c:2081 #, c-format msgid " immediate quit without complete shutdown; will lead to recovery on restart\n" msgstr "" -" immediate quitte sans arrêt complet ; entraîne une\n" -" restauration au démarrage suivant\n" +" immediate quitte sans arrêt complet ; entraîne une restauration au démarrage\n" +" suivant\n" #: pg_ctl.c:2083 #, c-format @@ -846,7 +843,7 @@ #: pg_ctl.c:2099 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil %s : %s\n" +msgstr "Page d'accueil de %s : <%s>\n" #: pg_ctl.c:2124 #, c-format diff -Nru postgresql-13-13.4/src/bin/pg_ctl/po/ru.po postgresql-13-13.7/src/bin/pg_ctl/po/ru.po --- postgresql-13-13.4/src/bin/pg_ctl/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_ctl/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -6,13 +6,13 @@ # Sergey Burladyan , 2009, 2012. # Andrey Sudnik , 2010. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: pg_ctl (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-03 11:22+0300\n" -"PO-Revision-Date: 2020-10-29 15:01+0300\n" +"POT-Creation-Date: 2022-04-26 13:44+0300\n" +"PO-Revision-Date: 2021-08-14 07:35+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -22,42 +22,42 @@ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ../../common/exec.c:137 ../../common/exec.c:254 ../../common/exec.c:300 +#: ../../common/exec.c:142 ../../common/exec.c:259 ../../common/exec.c:305 #, c-format msgid "could not identify current directory: %m" msgstr "не удалось определить текущий каталог: %m" -#: ../../common/exec.c:156 +#: ../../common/exec.c:161 #, c-format msgid "invalid binary \"%s\"" msgstr "неверный исполняемый файл \"%s\"" -#: ../../common/exec.c:206 +#: ../../common/exec.c:211 #, c-format msgid "could not read binary \"%s\"" msgstr "не удалось прочитать исполняемый файл \"%s\"" -#: ../../common/exec.c:214 +#: ../../common/exec.c:219 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:270 ../../common/exec.c:309 +#: ../../common/exec.c:275 ../../common/exec.c:314 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: ../../common/exec.c:287 +#: ../../common/exec.c:292 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "не удалось прочитать символическую ссылку \"%s\": %m" -#: ../../common/exec.c:410 +#: ../../common/exec.c:415 #, c-format msgid "pclose failed: %m" msgstr "ошибка pclose: %m" -#: ../../common/exec.c:539 ../../common/exec.c:584 ../../common/exec.c:676 +#: ../../common/exec.c:544 ../../common/exec.c:589 ../../common/exec.c:681 msgid "out of memory" msgstr "нехватка памяти" @@ -108,90 +108,90 @@ msgid "could not get current working directory: %s\n" msgstr "не удалось определить текущий рабочий каталог: %s\n" -#: pg_ctl.c:258 +#: pg_ctl.c:260 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: каталог \"%s\" не существует\n" -#: pg_ctl.c:261 +#: pg_ctl.c:263 #, c-format msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: нет доступа к каталогу \"%s\": %s\n" +msgstr "%s: ошибка доступа к каталогу \"%s\": %s\n" -#: pg_ctl.c:274 +#: pg_ctl.c:276 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s: каталог \"%s\" не содержит структуры кластера баз данных\n" -#: pg_ctl.c:287 +#: pg_ctl.c:289 #, c-format msgid "%s: could not open PID file \"%s\": %s\n" msgstr "%s: не удалось открыть файл PID \"%s\": %s\n" -#: pg_ctl.c:296 +#: pg_ctl.c:298 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: файл PID \"%s\" пуст\n" -#: pg_ctl.c:299 +#: pg_ctl.c:301 #, c-format msgid "%s: invalid data in PID file \"%s\"\n" msgstr "%s: неверные данные в файле PID \"%s\"\n" -#: pg_ctl.c:458 pg_ctl.c:500 +#: pg_ctl.c:460 pg_ctl.c:502 #, c-format msgid "%s: could not start server: %s\n" msgstr "%s: не удалось запустить сервер: %s\n" -#: pg_ctl.c:478 +#: pg_ctl.c:480 #, c-format msgid "%s: could not start server due to setsid() failure: %s\n" msgstr "%s: не удалось запустить сервер из-за ошибки в setsid(): %s\n" -#: pg_ctl.c:548 +#: pg_ctl.c:550 #, c-format msgid "%s: could not open log file \"%s\": %s\n" -msgstr "%s: не удалось открыть файл журнала \"%s\": %s\n" +msgstr "%s: не удалось открыть файл протокола \"%s\": %s\n" -#: pg_ctl.c:565 +#: pg_ctl.c:567 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: не удалось запустить сервер (код ошибки: %lu)\n" -#: pg_ctl.c:712 +#: pg_ctl.c:784 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "" "%s: не удалось ограничить размер дампа памяти; запрещено жёстким " "ограничением\n" -#: pg_ctl.c:738 +#: pg_ctl.c:810 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s: не удалось прочитать файл \"%s\"\n" -#: pg_ctl.c:743 +#: pg_ctl.c:815 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s: в файле параметров \"%s\" должна быть ровно одна строка\n" -#: pg_ctl.c:785 pg_ctl.c:975 pg_ctl.c:1071 +#: pg_ctl.c:857 pg_ctl.c:1046 pg_ctl.c:1129 #, c-format msgid "%s: could not send stop signal (PID: %ld): %s\n" msgstr "%s: не удалось отправить сигнал остановки (PID: %ld): %s\n" -#: pg_ctl.c:813 +#: pg_ctl.c:885 #, c-format msgid "" "The program \"%s\" is needed by %s but was not found in the\n" "same directory as \"%s\".\n" "Check your installation.\n" msgstr "" -"Программа \"%s\" необходима для %s, но не найдена\n" +"Программа \"%s\" нужна для %s, но она не найдена\n" "в каталоге \"%s\".\n" "Проверьте правильность установки СУБД.\n" -#: pg_ctl.c:818 +#: pg_ctl.c:890 #, c-format msgid "" "The program \"%s\" was found by \"%s\"\n" @@ -202,40 +202,40 @@ "но её версия отличается от версии %s.\n" "Проверьте правильность установки СУБД.\n" -#: pg_ctl.c:851 +#: pg_ctl.c:923 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: сбой при инициализации системы баз данных\n" -#: pg_ctl.c:866 +#: pg_ctl.c:938 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "" "%s: возможно, уже работает другой сервер; всё же пробуем запустить этот " "сервер\n" -#: pg_ctl.c:915 +#: pg_ctl.c:987 msgid "waiting for server to start..." msgstr "ожидание запуска сервера..." -#: pg_ctl.c:920 pg_ctl.c:1025 pg_ctl.c:1117 pg_ctl.c:1247 +#: pg_ctl.c:992 pg_ctl.c:1084 pg_ctl.c:1162 pg_ctl.c:1279 msgid " done\n" msgstr " готово\n" -#: pg_ctl.c:921 +#: pg_ctl.c:993 msgid "server started\n" msgstr "сервер запущен\n" -#: pg_ctl.c:924 pg_ctl.c:930 pg_ctl.c:1252 +#: pg_ctl.c:996 pg_ctl.c:1002 pg_ctl.c:1284 msgid " stopped waiting\n" msgstr " прекращение ожидания\n" -#: pg_ctl.c:925 +#: pg_ctl.c:997 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: сервер не запустился за отведённое время\n" -#: pg_ctl.c:931 +#: pg_ctl.c:1003 #, c-format msgid "" "%s: could not start server\n" @@ -244,30 +244,30 @@ "%s: не удалось запустить сервер\n" "Изучите протокол выполнения.\n" -#: pg_ctl.c:939 +#: pg_ctl.c:1011 msgid "server starting\n" msgstr "сервер запускается\n" -#: pg_ctl.c:960 pg_ctl.c:1047 pg_ctl.c:1138 pg_ctl.c:1177 pg_ctl.c:1276 +#: pg_ctl.c:1031 pg_ctl.c:1105 pg_ctl.c:1183 pg_ctl.c:1222 pg_ctl.c:1308 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: файл PID \"%s\" не существует\n" -#: pg_ctl.c:961 pg_ctl.c:1049 pg_ctl.c:1139 pg_ctl.c:1178 pg_ctl.c:1277 +#: pg_ctl.c:1032 pg_ctl.c:1107 pg_ctl.c:1184 pg_ctl.c:1223 pg_ctl.c:1309 msgid "Is server running?\n" msgstr "Запущен ли сервер?\n" -#: pg_ctl.c:967 +#: pg_ctl.c:1038 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %ld)\n" msgstr "" "%s: остановить сервер с PID %ld нельзя - он запущен в монопольном режиме\n" -#: pg_ctl.c:982 +#: pg_ctl.c:1053 msgid "server shutting down\n" msgstr "сервер останавливается\n" -#: pg_ctl.c:997 pg_ctl.c:1086 +#: pg_ctl.c:1068 pg_ctl.c:1144 msgid "" "WARNING: online backup mode is active\n" "Shutdown will not complete until pg_stop_backup() is called.\n" @@ -277,20 +277,20 @@ "Выключение произойдёт только при вызове pg_stop_backup().\n" "\n" -#: pg_ctl.c:1001 pg_ctl.c:1090 +#: pg_ctl.c:1072 pg_ctl.c:1148 msgid "waiting for server to shut down..." msgstr "ожидание завершения работы сервера..." -#: pg_ctl.c:1017 pg_ctl.c:1108 +#: pg_ctl.c:1076 pg_ctl.c:1153 msgid " failed\n" msgstr " ошибка\n" -#: pg_ctl.c:1019 pg_ctl.c:1110 +#: pg_ctl.c:1078 pg_ctl.c:1155 #, c-format msgid "%s: server does not shut down\n" msgstr "%s: сервер не останавливается\n" -#: pg_ctl.c:1021 pg_ctl.c:1112 +#: pg_ctl.c:1080 pg_ctl.c:1157 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -298,255 +298,255 @@ "ПОДСКАЗКА: Параметр \"-m fast\" может сбросить сеансы принудительно,\n" "не дожидаясь, пока они завершатся сами.\n" -#: pg_ctl.c:1027 pg_ctl.c:1118 +#: pg_ctl.c:1086 pg_ctl.c:1163 msgid "server stopped\n" msgstr "сервер остановлен\n" -#: pg_ctl.c:1050 +#: pg_ctl.c:1108 msgid "trying to start server anyway\n" msgstr "производится попытка запуска сервера в любом случае\n" -#: pg_ctl.c:1059 +#: pg_ctl.c:1117 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %ld)\n" msgstr "" "%s: перезапустить сервер с PID %ld нельзя - он запущен в монопольном режиме\n" -#: pg_ctl.c:1062 pg_ctl.c:1148 +#: pg_ctl.c:1120 pg_ctl.c:1193 msgid "Please terminate the single-user server and try again.\n" msgstr "Пожалуйста, остановите его и повторите попытку.\n" -#: pg_ctl.c:1122 +#: pg_ctl.c:1167 #, c-format msgid "%s: old server process (PID: %ld) seems to be gone\n" msgstr "%s: похоже, что старый серверный процесс (PID: %ld) исчез\n" -#: pg_ctl.c:1124 +#: pg_ctl.c:1169 msgid "starting server anyway\n" msgstr "сервер запускается, несмотря на это\n" -#: pg_ctl.c:1145 +#: pg_ctl.c:1190 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %ld)\n" msgstr "" "%s: перезагрузить сервер с PID %ld нельзя - он запущен в монопольном режиме\n" -#: pg_ctl.c:1154 +#: pg_ctl.c:1199 #, c-format msgid "%s: could not send reload signal (PID: %ld): %s\n" msgstr "%s: не удалось отправить сигнал перезагрузки (PID: %ld): %s\n" -#: pg_ctl.c:1159 +#: pg_ctl.c:1204 msgid "server signaled\n" msgstr "сигнал отправлен серверу\n" -#: pg_ctl.c:1184 +#: pg_ctl.c:1229 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %ld)\n" msgstr "" "%s: повысить сервер с PID %ld нельзя - он выполняется в монопольном режиме\n" -#: pg_ctl.c:1192 +#: pg_ctl.c:1237 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "%s: повысить сервер нельзя - он работает не в режиме резерва\n" -#: pg_ctl.c:1207 +#: pg_ctl.c:1252 #, c-format msgid "%s: could not create promote signal file \"%s\": %s\n" msgstr "%s: не удалось создать файл \"%s\" с сигналом к повышению: %s\n" -#: pg_ctl.c:1213 +#: pg_ctl.c:1258 #, c-format msgid "%s: could not write promote signal file \"%s\": %s\n" msgstr "%s: не удалось записать файл \"%s\" с сигналом к повышению: %s\n" -#: pg_ctl.c:1221 +#: pg_ctl.c:1266 #, c-format msgid "%s: could not send promote signal (PID: %ld): %s\n" msgstr "%s: не удалось отправить сигнал к повышению (PID: %ld): %s\n" -#: pg_ctl.c:1224 +#: pg_ctl.c:1269 #, c-format msgid "%s: could not remove promote signal file \"%s\": %s\n" msgstr "%s: ошибка при удалении файла \"%s\" с сигналом к повышению: %s\n" -#: pg_ctl.c:1234 +#: pg_ctl.c:1276 msgid "waiting for server to promote..." msgstr "ожидание повышения сервера..." -#: pg_ctl.c:1248 +#: pg_ctl.c:1280 msgid "server promoted\n" msgstr "сервер повышен\n" -#: pg_ctl.c:1253 +#: pg_ctl.c:1285 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s: повышение сервера не завершилось за отведённое время\n" -#: pg_ctl.c:1259 +#: pg_ctl.c:1291 msgid "server promoting\n" msgstr "сервер повышается\n" -#: pg_ctl.c:1283 +#: pg_ctl.c:1315 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %ld)\n" msgstr "" "%s: не удалось прокрутить файл журнала; сервер работает в монопольном режиме " "(PID: %ld)\n" -#: pg_ctl.c:1293 +#: pg_ctl.c:1325 #, c-format msgid "%s: could not create log rotation signal file \"%s\": %s\n" msgstr "" "%s: не удалось создать файл \"%s\" с сигналом к прокрутке журнала: %s\n" -#: pg_ctl.c:1299 +#: pg_ctl.c:1331 #, c-format msgid "%s: could not write log rotation signal file \"%s\": %s\n" msgstr "" "%s: не удалось записать файл \"%s\" с сигналом к прокрутке журнала: %s\n" -#: pg_ctl.c:1307 +#: pg_ctl.c:1339 #, c-format msgid "%s: could not send log rotation signal (PID: %ld): %s\n" msgstr "%s: не удалось отправить сигнал к прокрутке журнала (PID: %ld): %s\n" -#: pg_ctl.c:1310 +#: pg_ctl.c:1342 #, c-format msgid "%s: could not remove log rotation signal file \"%s\": %s\n" msgstr "" "%s: ошибка при удалении файла \"%s\" с сигналом к прокрутке журнала: %s\n" -#: pg_ctl.c:1315 +#: pg_ctl.c:1347 msgid "server signaled to rotate log file\n" msgstr "сигнал для прокрутки файла журнала отправлен серверу\n" -#: pg_ctl.c:1362 +#: pg_ctl.c:1394 #, c-format msgid "%s: single-user server is running (PID: %ld)\n" msgstr "%s: сервер работает в монопольном режиме (PID: %ld)\n" -#: pg_ctl.c:1376 +#: pg_ctl.c:1408 #, c-format msgid "%s: server is running (PID: %ld)\n" msgstr "%s: сервер работает (PID: %ld)\n" -#: pg_ctl.c:1392 +#: pg_ctl.c:1424 #, c-format msgid "%s: no server running\n" msgstr "%s: сервер не работает\n" -#: pg_ctl.c:1409 +#: pg_ctl.c:1441 #, c-format msgid "%s: could not send signal %d (PID: %ld): %s\n" msgstr "%s: не удалось отправить сигнал %d (PID: %ld): %s\n" -#: pg_ctl.c:1440 +#: pg_ctl.c:1472 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: не удалось найти свой исполняемый файл\n" -#: pg_ctl.c:1450 +#: pg_ctl.c:1482 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: не удалось найти исполняемый файл postgres\n" -#: pg_ctl.c:1520 pg_ctl.c:1554 +#: pg_ctl.c:1552 pg_ctl.c:1586 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: не удалось открыть менеджер служб\n" -#: pg_ctl.c:1526 +#: pg_ctl.c:1558 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: служба \"%s\" уже зарегистрирована\n" -#: pg_ctl.c:1537 +#: pg_ctl.c:1569 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s: не удалось зарегистрировать службу \"%s\" (код ошибки: %lu)\n" -#: pg_ctl.c:1560 +#: pg_ctl.c:1592 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: служба \"%s\" не зарегистрирована\n" -#: pg_ctl.c:1567 +#: pg_ctl.c:1599 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s: не удалось открыть службу \"%s\" (код ошибки: %lu)\n" -#: pg_ctl.c:1576 +#: pg_ctl.c:1608 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s: ошибка при удалении службы \"%s\" (код ошибки: %lu)\n" -#: pg_ctl.c:1663 +#: pg_ctl.c:1695 msgid "Waiting for server startup...\n" msgstr "Ожидание запуска сервера...\n" -#: pg_ctl.c:1666 +#: pg_ctl.c:1698 msgid "Timed out waiting for server startup\n" msgstr "Превышено время ожидания запуска сервера\n" -#: pg_ctl.c:1670 +#: pg_ctl.c:1702 msgid "Server started and accepting connections\n" msgstr "Сервер запущен и принимает подключения\n" -#: pg_ctl.c:1725 +#: pg_ctl.c:1757 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s: не удалось запустить службу \"%s\" (код ошибки: %lu)\n" -#: pg_ctl.c:1795 +#: pg_ctl.c:1827 #, c-format msgid "%s: WARNING: cannot create restricted tokens on this platform\n" msgstr "%s: ПРЕДУПРЕЖДЕНИЕ: в этой ОС нельзя создавать ограниченные маркеры\n" -#: pg_ctl.c:1808 +#: pg_ctl.c:1840 #, c-format msgid "%s: could not open process token: error code %lu\n" msgstr "%s: не удалось открыть маркер процесса (код ошибки: %lu)\n" -#: pg_ctl.c:1822 +#: pg_ctl.c:1854 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: не удалось подготовить структуры SID (код ошибки: %lu)\n" -#: pg_ctl.c:1849 +#: pg_ctl.c:1881 #, c-format msgid "%s: could not create restricted token: error code %lu\n" msgstr "%s: не удалось создать ограниченный маркер (код ошибки: %lu)\n" -#: pg_ctl.c:1880 +#: pg_ctl.c:1912 #, c-format msgid "%s: WARNING: could not locate all job object functions in system API\n" msgstr "" "%s: ПРЕДУПРЕЖДЕНИЕ: не удалось найти все функции для работы с задачами в " "системном API\n" -#: pg_ctl.c:1977 +#: pg_ctl.c:2009 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s: не удалось получить LUID для привилегий (код ошибки: %lu)\n" -#: pg_ctl.c:1985 pg_ctl.c:2000 +#: pg_ctl.c:2017 pg_ctl.c:2032 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s: не удалось получить информацию о маркере (код ошибки: %lu)\n" -#: pg_ctl.c:1994 +#: pg_ctl.c:2026 #, c-format msgid "%s: out of memory\n" msgstr "%s: нехватка памяти\n" -#: pg_ctl.c:2024 +#: pg_ctl.c:2056 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Для дополнительной информации попробуйте \"%s --help\".\n" -#: pg_ctl.c:2032 +#: pg_ctl.c:2064 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" @@ -556,17 +556,17 @@ "PostgreSQL.\n" "\n" -#: pg_ctl.c:2033 +#: pg_ctl.c:2065 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: pg_ctl.c:2034 +#: pg_ctl.c:2066 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D КАТАЛОГ-ДАННЫХ] [-s] [-o ПАРАМЕТРЫ]\n" -#: pg_ctl.c:2035 +#: pg_ctl.c:2067 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -575,13 +575,13 @@ " %s start [-D КАТАЛОГ-ДАННЫХ] [-l ИМЯ-ФАЙЛА] [-W] [-t СЕК] [-s]\n" " [-o ПАРАМЕТРЫ] [-p ПУТЬ] [-c]\n" -#: pg_ctl.c:2037 +#: pg_ctl.c:2069 #, c-format msgid " %s stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" msgstr "" " %s stop [-D КАТАЛОГ-ДАННЫХ] [-m РЕЖИМ-ОСТАНОВКИ] [-W] [-t СЕК] [-s]\n" -#: pg_ctl.c:2038 +#: pg_ctl.c:2070 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -590,32 +590,32 @@ " %s restart [-D КАТАЛОГ-ДАННЫХ] [-m РЕЖИМ-ОСТАНОВКИ] [-W] [-t СЕК] [-s]\n" " [-o ПАРАМЕТРЫ] [-c]\n" -#: pg_ctl.c:2040 +#: pg_ctl.c:2072 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D КАТАЛОГ-ДАННЫХ] [-s]\n" -#: pg_ctl.c:2041 +#: pg_ctl.c:2073 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D КАТАЛОГ-ДАННЫХ]\n" -#: pg_ctl.c:2042 +#: pg_ctl.c:2074 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" msgstr " %s promote [-D КАТАЛОГ-ДАННЫХ] [-W] [-t СЕК] [-s]\n" -#: pg_ctl.c:2043 +#: pg_ctl.c:2075 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D КАТАЛОГ-ДАННЫХ] [-s]\n" -#: pg_ctl.c:2044 +#: pg_ctl.c:2076 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill СИГНАЛ PID\n" -#: pg_ctl.c:2046 +#: pg_ctl.c:2078 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -627,12 +627,12 @@ " [-S ТИП-ЗАПУСКА] [-e ИСТОЧНИК] [-W] [-t СЕК] [-s] [-o " "ПАРАМЕТРЫ]\n" -#: pg_ctl.c:2048 +#: pg_ctl.c:2080 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N ИМЯ-СЛУЖБЫ]\n" -#: pg_ctl.c:2051 +#: pg_ctl.c:2083 #, c-format msgid "" "\n" @@ -641,12 +641,12 @@ "\n" "Общие параметры:\n" -#: pg_ctl.c:2052 +#: pg_ctl.c:2084 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr " -D, --pgdata=КАТАЛОГ расположение хранилища баз данных\n" -#: pg_ctl.c:2054 +#: pg_ctl.c:2086 #, c-format msgid "" " -e SOURCE event source for logging when running as a service\n" @@ -655,45 +655,45 @@ "журнал,\n" " когда сервер работает в виде службы\n" -#: pg_ctl.c:2056 +#: pg_ctl.c:2088 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr "" " -s, --silent выводить только ошибки, без информационных " "сообщений\n" -#: pg_ctl.c:2057 +#: pg_ctl.c:2089 #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr "" " -t, --timeout=СЕК время ожидания при использовании параметра -w\n" -#: pg_ctl.c:2058 +#: pg_ctl.c:2090 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_ctl.c:2059 +#: pg_ctl.c:2091 #, c-format msgid " -w, --wait wait until operation completes (default)\n" msgstr " -w, --wait ждать завершения операции (по умолчанию)\n" -#: pg_ctl.c:2060 +#: pg_ctl.c:2092 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" msgstr " -W, --no-wait не ждать завершения операции\n" -#: pg_ctl.c:2061 +#: pg_ctl.c:2093 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_ctl.c:2062 +#: pg_ctl.c:2094 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "Если параметр -D опущен, используется переменная окружения PGDATA.\n" -#: pg_ctl.c:2064 +#: pg_ctl.c:2096 #, c-format msgid "" "\n" @@ -702,24 +702,24 @@ "\n" "Параметры запуска и перезапуска:\n" -#: pg_ctl.c:2066 +#: pg_ctl.c:2098 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr " -c, --core-files указать postgres создавать дампы памяти\n" -#: pg_ctl.c:2068 +#: pg_ctl.c:2100 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files неприменимо на этой платформе\n" -#: pg_ctl.c:2070 +#: pg_ctl.c:2102 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr "" " -l, --log=ФАЙЛ записывать (или добавлять) протокол сервера в " "ФАЙЛ.\n" -#: pg_ctl.c:2071 +#: pg_ctl.c:2103 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -729,12 +729,12 @@ "PostgreSQL)\n" " или initdb параметры командной строки\n" -#: pg_ctl.c:2073 +#: pg_ctl.c:2105 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr " -p ПУТЬ-К-POSTGRES обычно не требуется\n" -#: pg_ctl.c:2074 +#: pg_ctl.c:2106 #, c-format msgid "" "\n" @@ -743,14 +743,14 @@ "\n" "Параметры остановки и перезапуска:\n" -#: pg_ctl.c:2075 +#: pg_ctl.c:2107 #, c-format msgid "" " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr "" " -m, --mode=РЕЖИМ может быть \"smart\", \"fast\" или \"immediate\"\n" -#: pg_ctl.c:2077 +#: pg_ctl.c:2109 #, c-format msgid "" "\n" @@ -759,17 +759,17 @@ "\n" "Режимы остановки:\n" -#: pg_ctl.c:2078 +#: pg_ctl.c:2110 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart закончить работу после отключения всех клиентов\n" -#: pg_ctl.c:2079 +#: pg_ctl.c:2111 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr " fast закончить сразу, в штатном режиме (по умолчанию)\n" -#: pg_ctl.c:2080 +#: pg_ctl.c:2112 #, c-format msgid "" " immediate quit without complete shutdown; will lead to recovery on " @@ -778,7 +778,7 @@ " immediate закончить немедленно, в экстренном режиме; влечёт за собой\n" " восстановление при перезапуске\n" -#: pg_ctl.c:2082 +#: pg_ctl.c:2114 #, c-format msgid "" "\n" @@ -787,7 +787,7 @@ "\n" "Разрешённые сигналы для команды kill:\n" -#: pg_ctl.c:2086 +#: pg_ctl.c:2118 #, c-format msgid "" "\n" @@ -796,30 +796,30 @@ "\n" "Параметры для регистрации и удаления:\n" -#: pg_ctl.c:2087 +#: pg_ctl.c:2119 #, c-format msgid "" " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr " -N ИМЯ-СЛУЖБЫ имя службы для регистрации сервера PostgreSQL\n" -#: pg_ctl.c:2088 +#: pg_ctl.c:2120 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr "" " -P ПАРОЛЬ пароль учётной записи для регистрации сервера PostgreSQL\n" -#: pg_ctl.c:2089 +#: pg_ctl.c:2121 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr "" " -U ПОЛЬЗОВАТЕЛЬ имя пользователя для регистрации сервера PostgreSQL\n" -#: pg_ctl.c:2090 +#: pg_ctl.c:2122 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr " -S ТИП-ЗАПУСКА тип запуска службы сервера PostgreSQL\n" -#: pg_ctl.c:2092 +#: pg_ctl.c:2124 #, c-format msgid "" "\n" @@ -828,7 +828,7 @@ "\n" "Типы запуска:\n" -#: pg_ctl.c:2093 +#: pg_ctl.c:2125 #, c-format msgid "" " auto start service automatically during system startup (default)\n" @@ -836,12 +836,12 @@ " auto запускать службу автоматически при старте системы (по " "умолчанию)\n" -#: pg_ctl.c:2094 +#: pg_ctl.c:2126 #, c-format msgid " demand start service on demand\n" msgstr " demand запускать службу по требованию\n" -#: pg_ctl.c:2097 +#: pg_ctl.c:2129 #, c-format msgid "" "\n" @@ -850,37 +850,37 @@ "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_ctl.c:2098 +#: pg_ctl.c:2130 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_ctl.c:2123 +#: pg_ctl.c:2155 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: неизвестный режим остановки \"%s\"\n" -#: pg_ctl.c:2152 +#: pg_ctl.c:2184 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: нераспознанное имя сигнала \"%s\"\n" -#: pg_ctl.c:2169 +#: pg_ctl.c:2201 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: нераспознанный тип запуска \"%s\"\n" -#: pg_ctl.c:2224 +#: pg_ctl.c:2256 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s: не удалось определить каталог данных с помощью команды \"%s\"\n" -#: pg_ctl.c:2248 +#: pg_ctl.c:2280 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: управляющий файл, по-видимому, испорчен\n" -#: pg_ctl.c:2316 +#: pg_ctl.c:2348 #, c-format msgid "" "%s: cannot be run as root\n" @@ -891,32 +891,32 @@ "Пожалуйста, переключитесь на обычного пользователя (например,\n" "используя \"su\"), который будет запускать серверный процесс.\n" -#: pg_ctl.c:2400 +#: pg_ctl.c:2432 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s: параметр -S не поддерживается в этой ОС\n" -#: pg_ctl.c:2437 +#: pg_ctl.c:2469 #, c-format msgid "%s: too many command-line arguments (first is \"%s\")\n" msgstr "%s: слишком много аргументов командной строки (первый: \"%s\")\n" -#: pg_ctl.c:2463 +#: pg_ctl.c:2495 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: отсутствуют аргументы для режима kill\n" -#: pg_ctl.c:2481 +#: pg_ctl.c:2513 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: нераспознанный режим работы \"%s\"\n" -#: pg_ctl.c:2491 +#: pg_ctl.c:2523 #, c-format msgid "%s: no operation specified\n" msgstr "%s: команда не указана\n" -#: pg_ctl.c:2512 +#: pg_ctl.c:2544 #, c-format msgid "" "%s: no database directory specified and environment variable PGDATA unset\n" diff -Nru postgresql-13-13.4/src/bin/pg_ctl/po/sv.po postgresql-13-13.7/src/bin/pg_ctl/po/sv.po --- postgresql-13-13.4/src/bin/pg_ctl/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_ctl/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,5 +1,5 @@ # Swedish message translation file for pg_ctl -# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020. +# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021. # Magnus Hagander , 2010. # Mats Erik Andersson , 2013, 2014. # @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:15+0000\n" -"PO-Revision-Date: 2020-04-11 07:51+0200\n" +"POT-Creation-Date: 2022-02-18 04:29+0000\n" +"PO-Revision-Date: 2021-11-07 06:46+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -105,77 +105,77 @@ msgid "could not get current working directory: %s\n" msgstr "kunde inte fastställa nuvarande arbetskatalog: %s\n" -#: pg_ctl.c:258 +#: pg_ctl.c:260 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: katalogen \"%s\" existerar inte\n" -#: pg_ctl.c:261 +#: pg_ctl.c:263 #, c-format msgid "%s: could not access directory \"%s\": %s\n" msgstr "%s: kunde inte komma åt katalogen \"%s\": %s\n" -#: pg_ctl.c:274 +#: pg_ctl.c:276 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s: katalogen \"%s\" innehåller inte något databaskluster.\n" -#: pg_ctl.c:287 +#: pg_ctl.c:289 #, c-format msgid "%s: could not open PID file \"%s\": %s\n" msgstr "%s: kunde inte öppna PID-fil \"%s\": %s\n" -#: pg_ctl.c:296 +#: pg_ctl.c:298 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: PID-filen \"%s\" är tom\n" -#: pg_ctl.c:299 +#: pg_ctl.c:301 #, c-format msgid "%s: invalid data in PID file \"%s\"\n" msgstr "%s: ogiltig data i PID-fil \"%s\"\n" -#: pg_ctl.c:458 pg_ctl.c:500 +#: pg_ctl.c:460 pg_ctl.c:502 #, c-format msgid "%s: could not start server: %s\n" msgstr "%s: kunde inte starta servern: %s\n" -#: pg_ctl.c:478 +#: pg_ctl.c:480 #, c-format msgid "%s: could not start server due to setsid() failure: %s\n" msgstr "%s: kunde inte starta servern då setsid() misslyckades: %s\n" -#: pg_ctl.c:548 +#: pg_ctl.c:550 #, c-format msgid "%s: could not open log file \"%s\": %s\n" msgstr "%s: kunde inte öppna logg-fil \"%s\": %s\n" -#: pg_ctl.c:565 +#: pg_ctl.c:567 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: kunde inte starta servern: felkod %lu\n" -#: pg_ctl.c:712 +#: pg_ctl.c:784 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "%s: kan inte sätta storleksgränsning på core-fil; tillåts inte av hård gräns\n" -#: pg_ctl.c:738 +#: pg_ctl.c:810 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s: kunde inte läsa filen \"%s\"\n" -#: pg_ctl.c:743 +#: pg_ctl.c:815 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s: inställningsfilen \"%s\" måste bestå av en enda rad.\n" -#: pg_ctl.c:785 pg_ctl.c:976 pg_ctl.c:1072 +#: pg_ctl.c:857 pg_ctl.c:1046 pg_ctl.c:1129 #, c-format msgid "%s: could not send stop signal (PID: %ld): %s\n" msgstr "%s: kunde inte skicka stopp-signal (PID: %ld): %s\n" -#: pg_ctl.c:813 +#: pg_ctl.c:885 #, c-format msgid "" "The program \"%s\" is needed by %s but was not found in the\n" @@ -186,7 +186,7 @@ "katalog som \"%s\".\n" "Kontrollera din installation.\n" -#: pg_ctl.c:819 +#: pg_ctl.c:890 #, c-format msgid "" "The program \"%s\" was found by \"%s\"\n" @@ -197,38 +197,38 @@ "men är inte av samma version som %s.\n" "Kontrollera din installation.\n" -#: pg_ctl.c:852 +#: pg_ctl.c:923 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: skapande av databaskluster misslyckades\n" -#: pg_ctl.c:867 +#: pg_ctl.c:938 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "%s: en annan server verkar köra; försöker starta servern ändå.\n" -#: pg_ctl.c:916 +#: pg_ctl.c:987 msgid "waiting for server to start..." msgstr "väntar på att servern skall starta..." -#: pg_ctl.c:921 pg_ctl.c:1026 pg_ctl.c:1118 pg_ctl.c:1248 +#: pg_ctl.c:992 pg_ctl.c:1084 pg_ctl.c:1162 pg_ctl.c:1279 msgid " done\n" msgstr " klar\n" -#: pg_ctl.c:922 +#: pg_ctl.c:993 msgid "server started\n" msgstr "servern startad\n" -#: pg_ctl.c:925 pg_ctl.c:931 pg_ctl.c:1253 +#: pg_ctl.c:996 pg_ctl.c:1002 pg_ctl.c:1284 msgid " stopped waiting\n" msgstr " avslutade väntan\n" -#: pg_ctl.c:926 +#: pg_ctl.c:997 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: servern startade inte i tid\n" -#: pg_ctl.c:932 +#: pg_ctl.c:1003 #, c-format msgid "" "%s: could not start server\n" @@ -237,29 +237,29 @@ "%s: kunde inte starta servern\n" "Undersök logg-utskriften.\n" -#: pg_ctl.c:940 +#: pg_ctl.c:1011 msgid "server starting\n" msgstr "servern startar\n" -#: pg_ctl.c:961 pg_ctl.c:1048 pg_ctl.c:1139 pg_ctl.c:1178 pg_ctl.c:1277 +#: pg_ctl.c:1031 pg_ctl.c:1105 pg_ctl.c:1183 pg_ctl.c:1222 pg_ctl.c:1308 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: PID-filen \"%s\" finns inte\n" -#: pg_ctl.c:962 pg_ctl.c:1050 pg_ctl.c:1140 pg_ctl.c:1179 pg_ctl.c:1278 +#: pg_ctl.c:1032 pg_ctl.c:1107 pg_ctl.c:1184 pg_ctl.c:1223 pg_ctl.c:1309 msgid "Is server running?\n" msgstr "Kör servern?\n" -#: pg_ctl.c:968 +#: pg_ctl.c:1038 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %ld)\n" msgstr "%s: Kan inte stanna servern. En-användar-server i drift (PID: %ld).\n" -#: pg_ctl.c:983 +#: pg_ctl.c:1053 msgid "server shutting down\n" msgstr "servern stänger ner\n" -#: pg_ctl.c:998 pg_ctl.c:1087 +#: pg_ctl.c:1068 pg_ctl.c:1144 msgid "" "WARNING: online backup mode is active\n" "Shutdown will not complete until pg_stop_backup() is called.\n" @@ -269,20 +269,20 @@ "Nedstängning är inte fullständig förrän pg_stop_backup() har anropats.\n" "\n" -#: pg_ctl.c:1002 pg_ctl.c:1091 +#: pg_ctl.c:1072 pg_ctl.c:1148 msgid "waiting for server to shut down..." msgstr "väntar på att servern skall stänga ner..." -#: pg_ctl.c:1018 pg_ctl.c:1109 +#: pg_ctl.c:1076 pg_ctl.c:1153 msgid " failed\n" msgstr " misslyckades\n" -#: pg_ctl.c:1020 pg_ctl.c:1111 +#: pg_ctl.c:1078 pg_ctl.c:1155 #, c-format msgid "%s: server does not shut down\n" msgstr "%s: servern stänger inte ner\n" -#: pg_ctl.c:1022 pg_ctl.c:1113 +#: pg_ctl.c:1080 pg_ctl.c:1157 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -290,245 +290,245 @@ "TIPS: Flaggan \"-m fast\" avslutar sessioner omedelbart, i stället för att\n" "vänta på deras självvalda avslut.\n" -#: pg_ctl.c:1028 pg_ctl.c:1119 +#: pg_ctl.c:1086 pg_ctl.c:1163 msgid "server stopped\n" msgstr "servern är stoppad\n" -#: pg_ctl.c:1051 +#: pg_ctl.c:1108 msgid "trying to start server anyway\n" msgstr "försöker starta servern ändå\n" -#: pg_ctl.c:1060 +#: pg_ctl.c:1117 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %ld)\n" msgstr "%s: kan inte starta om servern. En-användar-server kör (PID: %ld).\n" -#: pg_ctl.c:1063 pg_ctl.c:1149 +#: pg_ctl.c:1120 pg_ctl.c:1193 msgid "Please terminate the single-user server and try again.\n" msgstr "Var vänlig att stanna en-användar-servern och försök sedan igen.\n" -#: pg_ctl.c:1123 +#: pg_ctl.c:1167 #, c-format msgid "%s: old server process (PID: %ld) seems to be gone\n" msgstr "%s: gamla serverprocessen (PID: %ld) verkar vara borta\n" -#: pg_ctl.c:1125 +#: pg_ctl.c:1169 msgid "starting server anyway\n" msgstr "startar servern ändå\n" -#: pg_ctl.c:1146 +#: pg_ctl.c:1190 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %ld)\n" msgstr "%s: kan inte ladda om servern; en-användar-server kör (PID: %ld)\n" -#: pg_ctl.c:1155 +#: pg_ctl.c:1199 #, c-format msgid "%s: could not send reload signal (PID: %ld): %s\n" msgstr "%s: kunde inte skicka signalen \"reload\" (PID: %ld): %s\n" -#: pg_ctl.c:1160 +#: pg_ctl.c:1204 msgid "server signaled\n" msgstr "servern är signalerad\n" -#: pg_ctl.c:1185 +#: pg_ctl.c:1229 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %ld)\n" msgstr "%s: kan inte befordra servern; en-användar-server kör (PID: %ld)\n" -#: pg_ctl.c:1193 +#: pg_ctl.c:1237 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "%s: kan inte befordra servern; servern är inte i beredskapsläge.\n" -#: pg_ctl.c:1208 +#: pg_ctl.c:1252 #, c-format msgid "%s: could not create promote signal file \"%s\": %s\n" msgstr "%s: kunde inte skapa befordringssignalfil \"%s\": %s\n" -#: pg_ctl.c:1214 +#: pg_ctl.c:1258 #, c-format msgid "%s: could not write promote signal file \"%s\": %s\n" msgstr "%s: kunde inte skriva befordringssignalfil \"%s\": %s\n" -#: pg_ctl.c:1222 +#: pg_ctl.c:1266 #, c-format msgid "%s: could not send promote signal (PID: %ld): %s\n" msgstr "%s: kunde inte skicka befordringssignal (PID: %ld): %s\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1269 #, c-format msgid "%s: could not remove promote signal file \"%s\": %s\n" msgstr "%s: kunde inte ta bort befordringssignalfil \"%s\": %s\n" -#: pg_ctl.c:1235 +#: pg_ctl.c:1276 msgid "waiting for server to promote..." msgstr "väntar på att servern skall befordras..." -#: pg_ctl.c:1249 +#: pg_ctl.c:1280 msgid "server promoted\n" msgstr "servern befordrad\n" -#: pg_ctl.c:1254 +#: pg_ctl.c:1285 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s: servern befordrades inte i tid\n" -#: pg_ctl.c:1260 +#: pg_ctl.c:1291 msgid "server promoting\n" msgstr "servern befordras\n" -#: pg_ctl.c:1284 +#: pg_ctl.c:1315 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %ld)\n" msgstr "%s: kan inte rotera loggfil; en-användar-server kör (PID: %ld)\n" -#: pg_ctl.c:1294 +#: pg_ctl.c:1325 #, c-format msgid "%s: could not create log rotation signal file \"%s\": %s\n" msgstr "%s: kunde inte skapa loggroteringssignalfil \"%s\": %s\n" -#: pg_ctl.c:1300 +#: pg_ctl.c:1331 #, c-format msgid "%s: could not write log rotation signal file \"%s\": %s\n" msgstr "%s: kunde inte skriva loggroteringssignalfil \"%s\": %s\n" -#: pg_ctl.c:1308 +#: pg_ctl.c:1339 #, c-format msgid "%s: could not send log rotation signal (PID: %ld): %s\n" msgstr "%s: kunde inte skicka signalen för loggrotering (PID: %ld): %s\n" -#: pg_ctl.c:1311 +#: pg_ctl.c:1342 #, c-format msgid "%s: could not remove log rotation signal file \"%s\": %s\n" msgstr "%s: kunde inte ta bort loggroteringssignalfil \"%s\": %s\n" -#: pg_ctl.c:1316 +#: pg_ctl.c:1347 msgid "server signaled to rotate log file\n" msgstr "servern är signalerad att rotera loggfil\n" -#: pg_ctl.c:1363 +#: pg_ctl.c:1394 #, c-format msgid "%s: single-user server is running (PID: %ld)\n" msgstr "%s: en-användar-server kör. (PID: %ld)\n" -#: pg_ctl.c:1377 +#: pg_ctl.c:1408 #, c-format msgid "%s: server is running (PID: %ld)\n" msgstr "%s: servern kör (PID: %ld)\n" -#: pg_ctl.c:1393 +#: pg_ctl.c:1424 #, c-format msgid "%s: no server running\n" msgstr "%s: ingen server kör\n" -#: pg_ctl.c:1410 +#: pg_ctl.c:1441 #, c-format msgid "%s: could not send signal %d (PID: %ld): %s\n" msgstr "%s: kunde inte skicka signal %d (PID: %ld): %s\n" -#: pg_ctl.c:1441 +#: pg_ctl.c:1472 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: kunde inte hitta det egna programmets körbara fil\n" -#: pg_ctl.c:1451 +#: pg_ctl.c:1482 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: kunde inte hitta körbar postgres.\n" -#: pg_ctl.c:1521 pg_ctl.c:1555 +#: pg_ctl.c:1552 pg_ctl.c:1586 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: kunde inte öppna tjänstehanteraren\n" -#: pg_ctl.c:1527 +#: pg_ctl.c:1558 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: tjänsten \"%s\" är redan registrerad\n" -#: pg_ctl.c:1538 +#: pg_ctl.c:1569 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s: kunde inte registrera tjänsten \"%s\": felkod %lu\n" -#: pg_ctl.c:1561 +#: pg_ctl.c:1592 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: tjänsten \"%s\" är inte registrerad\n" -#: pg_ctl.c:1568 +#: pg_ctl.c:1599 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s: kunde inte öppna tjänsten \"%s\": felkod %lu\n" -#: pg_ctl.c:1577 +#: pg_ctl.c:1608 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s: kunde inte avregistrera tjänsten \"%s\": felkod %lu\n" -#: pg_ctl.c:1664 +#: pg_ctl.c:1695 msgid "Waiting for server startup...\n" msgstr "Väntar på serverstart...\n" -#: pg_ctl.c:1667 +#: pg_ctl.c:1698 msgid "Timed out waiting for server startup\n" msgstr "Tidsfristen ute vid väntan på serverstart\n" -#: pg_ctl.c:1671 +#: pg_ctl.c:1702 msgid "Server started and accepting connections\n" msgstr "Server startad och accepterar nu anslutningar\n" -#: pg_ctl.c:1726 +#: pg_ctl.c:1757 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s: kunde inte starta tjänsten \"%s\": felkod %lu\n" -#: pg_ctl.c:1796 +#: pg_ctl.c:1827 #, c-format msgid "%s: WARNING: cannot create restricted tokens on this platform\n" msgstr "%s: VARNING: \"Restricted Token\" stöds inte av plattformen.\n" -#: pg_ctl.c:1809 +#: pg_ctl.c:1840 #, c-format msgid "%s: could not open process token: error code %lu\n" msgstr "%s: kunde inte öppna process-token: felkod %lu\n" -#: pg_ctl.c:1823 +#: pg_ctl.c:1854 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: kunde inte tilldela SID: felkod %lu\n" -#: pg_ctl.c:1850 +#: pg_ctl.c:1881 #, c-format msgid "%s: could not create restricted token: error code %lu\n" msgstr "%s: kunde inte skapa restriktivt styrmärke (token): felkod %lu\n" -#: pg_ctl.c:1881 +#: pg_ctl.c:1912 #, c-format msgid "%s: WARNING: could not locate all job object functions in system API\n" msgstr "%s: VARNING: kunde inte hitta alla jobb-funktioner system-API:et.\n" -#: pg_ctl.c:1978 +#: pg_ctl.c:2009 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s: kunde inte hämta LUID:er för rättigheter: felkod %lu\n" -#: pg_ctl.c:1986 pg_ctl.c:2001 +#: pg_ctl.c:2017 pg_ctl.c:2032 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s: kunde inte hämta token-information: felkod %lu\n" -#: pg_ctl.c:1995 +#: pg_ctl.c:2026 #, c-format msgid "%s: out of memory\n" msgstr "%s: slut på minne\n" -#: pg_ctl.c:2025 +#: pg_ctl.c:2056 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" -#: pg_ctl.c:2033 +#: pg_ctl.c:2064 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" @@ -538,17 +538,17 @@ "PostgreSQL-tjänsten.\n" "\n" -#: pg_ctl.c:2034 +#: pg_ctl.c:2065 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_ctl.c:2035 +#: pg_ctl.c:2066 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D DATAKAT] [-s] [-o FLAGGOR]\n" -#: pg_ctl.c:2036 +#: pg_ctl.c:2067 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -557,12 +557,12 @@ " %s start [-D DATAKAT] [-l FILNAMN] [-W] [-t SEK] [-s]\n" " [-o FLAGGOR] [-p SOKVÄG] [-c]\n" -#: pg_ctl.c:2038 +#: pg_ctl.c:2069 #, c-format msgid " %s stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" msgstr " %s stop [-D DATAKAT] [-m STÄNGNINGSMETOD] [-W] [-t SEK] [-s]\n" -#: pg_ctl.c:2039 +#: pg_ctl.c:2070 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -571,32 +571,32 @@ " %s restart [-D DATAKAT] [-m STÄNGNINGSMETOD] [-W] [-t SEK] [-s]\n" " [-o FLAGGOR] [-c]\n" -#: pg_ctl.c:2041 +#: pg_ctl.c:2072 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D DATAKAT] [-s]\n" -#: pg_ctl.c:2042 +#: pg_ctl.c:2073 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D DATAKAT]\n" -#: pg_ctl.c:2043 +#: pg_ctl.c:2074 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" msgstr " %s promote [-D DATAKAT] [-W] [-t SEK] [-s]\n" -#: pg_ctl.c:2044 +#: pg_ctl.c:2075 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D DATAKAT] [-s]\n" -#: pg_ctl.c:2045 +#: pg_ctl.c:2076 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill SIGNALNAMN PID\n" -#: pg_ctl.c:2047 +#: pg_ctl.c:2078 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -605,12 +605,12 @@ " %s register [-D DATAKAT] [-N TJÄNSTENAMN] [-U ANVÄNDARNAMN] [-P LÖSENORD]\n" " [-S STARTTYPE] [-e KÄLLA] [-W] [-t SEK] [-s] [-o FLAGGOR]\n" -#: pg_ctl.c:2049 +#: pg_ctl.c:2080 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N TJÄNSTNAMN]\n" -#: pg_ctl.c:2052 +#: pg_ctl.c:2083 #, c-format msgid "" "\n" @@ -619,52 +619,52 @@ "\n" "Gemensamma flaggor:\n" -#: pg_ctl.c:2053 +#: pg_ctl.c:2084 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr " -D, --pgdata=DATAKAT plats för databasens lagringsarea\n" -#: pg_ctl.c:2055 +#: pg_ctl.c:2086 #, c-format msgid " -e SOURCE event source for logging when running as a service\n" msgstr " -e KÄLLA händelsekälla för loggning när vi kör som en tjänst\n" -#: pg_ctl.c:2057 +#: pg_ctl.c:2088 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr " -s, --silent skriv bara ut fel, inga informationsmeddelanden\n" -#: pg_ctl.c:2058 +#: pg_ctl.c:2089 #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr " -t, --timeout=SEK antal sekunder att vänta när växeln -w används\n" -#: pg_ctl.c:2059 +#: pg_ctl.c:2090 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_ctl.c:2060 +#: pg_ctl.c:2091 #, c-format msgid " -w, --wait wait until operation completes (default)\n" msgstr " -w, --wait vänta på att operationen slutförs (standard)\n" -#: pg_ctl.c:2061 +#: pg_ctl.c:2092 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" msgstr " -W, --no-wait vänta inte på att operationen slutförs\n" -#: pg_ctl.c:2062 +#: pg_ctl.c:2093 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa den här hjälpen, avsluta sedan\n" -#: pg_ctl.c:2063 +#: pg_ctl.c:2094 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "Om flaggan -D inte har angivits så används omgivningsvariabeln PGDATA.\n" -#: pg_ctl.c:2065 +#: pg_ctl.c:2096 #, c-format msgid "" "\n" @@ -673,22 +673,22 @@ "\n" "Flaggor för start eller omstart:\n" -#: pg_ctl.c:2067 +#: pg_ctl.c:2098 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr " -c, --core-files tillåt postgres att skapa core-filer\n" -#: pg_ctl.c:2069 +#: pg_ctl.c:2100 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files inte giltig för denna plattform\n" -#: pg_ctl.c:2071 +#: pg_ctl.c:2102 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr " -l, --log=FILNAMN skriv, eller tillfoga, server-loggen till FILNAMN\n" -#: pg_ctl.c:2072 +#: pg_ctl.c:2103 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -697,14 +697,14 @@ " -o, --options=OPTIONS kommandoradsflaggor som skickas vidare till postgres\n" " (PostgreSQL-serverns körbara fil) eller till initdb\n" -#: pg_ctl.c:2074 +#: pg_ctl.c:2105 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr "" " -p SÖKVÄG-TILL-POSTGRES\n" " behövs normalt inte\n" -#: pg_ctl.c:2075 +#: pg_ctl.c:2106 #, c-format msgid "" "\n" @@ -713,12 +713,12 @@ "\n" "Flaggor för stopp eller omstart:\n" -#: pg_ctl.c:2076 +#: pg_ctl.c:2107 #, c-format msgid " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr " -m, --mode=METOD METOD kan vara \"smart\", \"fast\" eller \"immediate\"\n" -#: pg_ctl.c:2078 +#: pg_ctl.c:2109 #, c-format msgid "" "\n" @@ -727,22 +727,22 @@ "\n" "Stängningsmetoder är:\n" -#: pg_ctl.c:2079 +#: pg_ctl.c:2110 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart stäng när alla klienter har avslutat\n" -#: pg_ctl.c:2080 +#: pg_ctl.c:2111 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr " fast stäng omedelbart, med en kontrollerad nedstängning (standard)\n" -#: pg_ctl.c:2081 +#: pg_ctl.c:2112 #, c-format msgid " immediate quit without complete shutdown; will lead to recovery on restart\n" msgstr " immediate stäng utan kontroller; kommer leda till återställning vid omstart\n" -#: pg_ctl.c:2083 +#: pg_ctl.c:2114 #, c-format msgid "" "\n" @@ -751,7 +751,7 @@ "\n" "Tillåtna signalnamn för kommando \"kill\":\n" -#: pg_ctl.c:2087 +#: pg_ctl.c:2118 #, c-format msgid "" "\n" @@ -760,27 +760,27 @@ "\n" "Flaggor för registrering och avregistrering:\n" -#: pg_ctl.c:2088 +#: pg_ctl.c:2119 #, c-format msgid " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr " -N TJÄNSTENAMN tjänstenamn att registrera PostgreSQL-servern med\n" -#: pg_ctl.c:2089 +#: pg_ctl.c:2120 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr " -P LÖSENORD lösenord för konto vid registrering av PostgreSQL-servern\n" -#: pg_ctl.c:2090 +#: pg_ctl.c:2121 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr " -U NAMN användarnamn för konto vid registrering av PostgreSQL-servern\n" -#: pg_ctl.c:2091 +#: pg_ctl.c:2122 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr " -S STARTSÄTT sätt att registrera PostgreSQL-servern vid tjänstestart\n" -#: pg_ctl.c:2093 +#: pg_ctl.c:2124 #, c-format msgid "" "\n" @@ -789,17 +789,17 @@ "\n" "Startmetoder är:\n" -#: pg_ctl.c:2094 +#: pg_ctl.c:2125 #, c-format msgid " auto start service automatically during system startup (default)\n" msgstr " auto starta tjänsten automatiskt vid systemstart (förval)\n" -#: pg_ctl.c:2095 +#: pg_ctl.c:2126 #, c-format msgid " demand start service on demand\n" msgstr " demand starta tjänsten vid behov\n" -#: pg_ctl.c:2098 +#: pg_ctl.c:2129 #, c-format msgid "" "\n" @@ -808,37 +808,37 @@ "\n" "Rapportera fel till <%s>.\n" -#: pg_ctl.c:2099 +#: pg_ctl.c:2130 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_ctl.c:2124 +#: pg_ctl.c:2155 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: ogiltig stängningsmetod \"%s\"\n" -#: pg_ctl.c:2153 +#: pg_ctl.c:2184 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: ogiltigt signalnamn \"%s\"\n" -#: pg_ctl.c:2170 +#: pg_ctl.c:2201 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: ogiltigt startvillkor \"%s\"\n" -#: pg_ctl.c:2225 +#: pg_ctl.c:2256 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s: kunde inte bestämma databaskatalogen från kommandot \"%s\"\n" -#: pg_ctl.c:2249 +#: pg_ctl.c:2280 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: kontrollfilen verkar vara trasig\n" -#: pg_ctl.c:2317 +#: pg_ctl.c:2348 #, c-format msgid "" "%s: cannot be run as root\n" @@ -849,32 +849,32 @@ "Logga in (t.ex. med \"su\") som den (opriviligerade) användare\n" "vilken skall äga serverprocessen.\n" -#: pg_ctl.c:2401 +#: pg_ctl.c:2432 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s: flaggan -S stöds inte på denna plattform.\n" -#: pg_ctl.c:2438 +#: pg_ctl.c:2469 #, c-format msgid "%s: too many command-line arguments (first is \"%s\")\n" msgstr "%s: för många kommandoradsargument (första är \"%s\")\n" -#: pg_ctl.c:2464 +#: pg_ctl.c:2495 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: saknar argument för \"kill\"-kommando.\n" -#: pg_ctl.c:2482 +#: pg_ctl.c:2513 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: okänd operationsmetod \"%s\"\n" -#: pg_ctl.c:2492 +#: pg_ctl.c:2523 #, c-format msgid "%s: no operation specified\n" msgstr "%s: ingen operation angiven\n" -#: pg_ctl.c:2513 +#: pg_ctl.c:2544 #, c-format msgid "%s: no database directory specified and environment variable PGDATA unset\n" msgstr "%s: ingen databaskatalog angiven och omgivningsvariabeln PGDATA är inte satt\n" diff -Nru postgresql-13-13.4/src/bin/pg_ctl/t/001_start_stop.pl postgresql-13-13.7/src/bin/pg_ctl/t/001_start_stop.pl --- postgresql-13-13.4/src/bin/pg_ctl/t/001_start_stop.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_ctl/t/001_start_stop.pl 2022-05-09 21:16:30.000000000 +0000 @@ -43,16 +43,7 @@ 'pg_ctl', 'start', '-D', "$tempdir/data", '-l', "$TestLib::log_path/001_start_stop_server.log" ]; -if ($Config{osname} ne 'msys') -{ - command_like($ctlcmd, qr/done.*server started/s, 'pg_ctl start'); -} -else -{ - - # use the version of command_like that doesn't hang on Msys here - command_like_safe($ctlcmd, qr/done.*server started/s, 'pg_ctl start'); -} +command_like($ctlcmd, qr/done.*server started/s, 'pg_ctl start'); # sleep here is because Windows builds can't check postmaster.pid exactly, # so they may mistake a pre-existing postmaster.pid for one created by the diff -Nru postgresql-13-13.4/src/bin/pg_ctl/t/004_logrotate.pl postgresql-13-13.7/src/bin/pg_ctl/t/004_logrotate.pl --- postgresql-13-13.4/src/bin/pg_ctl/t/004_logrotate.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_ctl/t/004_logrotate.pl 2022-05-09 21:16:30.000000000 +0000 @@ -24,7 +24,7 @@ $node->psql('postgres', 'SELECT 1/0'); # might need to retry if logging collector process is slow... -my $max_attempts = 180 * 10; +my $max_attempts = 10 * $TestLib::timeout_default; my $current_logfiles; for (my $attempts = 0; $attempts < $max_attempts; $attempts++) diff -Nru postgresql-13-13.4/src/bin/pg_dump/Makefile postgresql-13-13.7/src/bin/pg_dump/Makefile --- postgresql-13-13.4/src/bin/pg_dump/Makefile 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/Makefile 2022-05-09 21:16:30.000000000 +0000 @@ -40,7 +40,7 @@ pg_restore: pg_restore.o $(OBJS) | submake-libpq submake-libpgport submake-libpgfeutils $(CC) $(CFLAGS) pg_restore.o $(OBJS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X) -pg_dumpall: pg_dumpall.o dumputils.o | submake-libpq submake-libpgport submake-libpgfeutils +pg_dumpall: pg_dumpall.o dumputils.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils $(CC) $(CFLAGS) pg_dumpall.o dumputils.o $(WIN32RES) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X) install: all installdirs diff -Nru postgresql-13-13.4/src/bin/pg_dump/pg_backup_archiver.c postgresql-13-13.7/src/bin/pg_dump/pg_backup_archiver.c --- postgresql-13-13.4/src/bin/pg_dump/pg_backup_archiver.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/pg_backup_archiver.c 2022-05-09 21:16:30.000000000 +0000 @@ -268,6 +268,7 @@ AH->ClosePtr(AH); /* Close the output */ + errno = 0; /* in case gzclose() doesn't set it */ if (AH->gzOut) res = GZCLOSE(AH->OF); else if (AH->OF != stdout) @@ -1578,6 +1579,7 @@ { int res; + errno = 0; /* in case gzclose() doesn't set it */ if (AH->gzOut) res = GZCLOSE(AH->OF); else diff -Nru postgresql-13-13.4/src/bin/pg_dump/pg_backup_directory.c postgresql-13-13.7/src/bin/pg_dump/pg_backup_directory.c --- postgresql-13-13.4/src/bin/pg_dump/pg_backup_directory.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/pg_backup_directory.c 2022-05-09 21:16:30.000000000 +0000 @@ -369,7 +369,8 @@ lclContext *ctx = (lclContext *) AH->formatData; /* Close the file */ - cfclose(ctx->dataFH); + if (cfclose(ctx->dataFH) != 0) + fatal("could not close data file: %m"); ctx->dataFH = NULL; } @@ -433,42 +434,42 @@ { Oid oid; lclContext *ctx = (lclContext *) AH->formatData; - char fname[MAXPGPATH]; + char tocfname[MAXPGPATH]; char line[MAXPGPATH]; StartRestoreBlobs(AH); - setFilePath(AH, fname, "blobs.toc"); + setFilePath(AH, tocfname, "blobs.toc"); - ctx->blobsTocFH = cfopen_read(fname, PG_BINARY_R); + ctx->blobsTocFH = cfopen_read(tocfname, PG_BINARY_R); if (ctx->blobsTocFH == NULL) fatal("could not open large object TOC file \"%s\" for input: %m", - fname); + tocfname); /* Read the blobs TOC file line-by-line, and process each blob */ while ((cfgets(ctx->blobsTocFH, line, MAXPGPATH)) != NULL) { - char fname[MAXPGPATH]; + char blobfname[MAXPGPATH + 1]; char path[MAXPGPATH]; - /* Can't overflow because line and fname are the same length. */ - if (sscanf(line, "%u %s\n", &oid, fname) != 2) + /* Can't overflow because line and blobfname are the same length */ + if (sscanf(line, "%u %" CppAsString2(MAXPGPATH) "s\n", &oid, blobfname) != 2) fatal("invalid line in large object TOC file \"%s\": \"%s\"", - fname, line); + tocfname, line); StartRestoreBlob(AH, oid, AH->public.ropt->dropSchema); - snprintf(path, MAXPGPATH, "%s/%s", ctx->directory, fname); + snprintf(path, MAXPGPATH, "%s/%s", ctx->directory, blobfname); _PrintFileData(AH, path); EndRestoreBlob(AH, oid); } if (!cfeof(ctx->blobsTocFH)) fatal("error reading large object TOC file \"%s\"", - fname); + tocfname); if (cfclose(ctx->blobsTocFH) != 0) fatal("could not close large object TOC file \"%s\": %m", - fname); + tocfname); ctx->blobsTocFH = NULL; @@ -680,7 +681,8 @@ int len; /* Close the BLOB data file itself */ - cfclose(ctx->dataFH); + if (cfclose(ctx->dataFH) != 0) + fatal("could not close blob data file: %m"); ctx->dataFH = NULL; /* register the blob in blobs.toc */ @@ -699,7 +701,8 @@ { lclContext *ctx = (lclContext *) AH->formatData; - cfclose(ctx->blobsTocFH); + if (cfclose(ctx->blobsTocFH) != 0) + fatal("could not close blobs TOC file: %m"); ctx->blobsTocFH = NULL; } diff -Nru postgresql-13-13.4/src/bin/pg_dump/pg_backup_tar.c postgresql-13-13.7/src/bin/pg_dump/pg_backup_tar.c --- postgresql-13-13.4/src/bin/pg_dump/pg_backup_tar.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/pg_backup_tar.c 2022-05-09 21:16:30.000000000 +0000 @@ -438,8 +438,11 @@ * Close the GZ file since we dup'd. This will flush the buffers. */ if (AH->compression != 0) + { + errno = 0; /* in case gzclose() doesn't set it */ if (GZCLOSE(th->zFH) != 0) - fatal("could not close tar member"); + fatal("could not close tar member: %m"); + } if (th->mode == 'w') _tarAddFile(AH, th); /* This will close the temp file */ diff -Nru postgresql-13-13.4/src/bin/pg_dump/pg_dump.c postgresql-13-13.7/src/bin/pg_dump/pg_dump.c --- postgresql-13-13.4/src/bin/pg_dump/pg_dump.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/pg_dump.c 2022-05-09 21:16:30.000000000 +0000 @@ -255,7 +255,7 @@ static char *getFormattedOperatorName(Archive *fout, const char *oproid); static char *convertTSFunction(Archive *fout, Oid funcOid); static Oid findLastBuiltinOid_V71(Archive *fout); -static char *getFormattedTypeName(Archive *fout, Oid oid, OidOptions opts); +static const char *getFormattedTypeName(Archive *fout, Oid oid, OidOptions opts); static void getBlobs(Archive *fout); static void dumpBlob(Archive *fout, BlobInfo *binfo); static int dumpBlobs(Archive *fout, void *arg); @@ -2008,13 +2008,42 @@ DumpOptions *dopt = fout->dopt; PQExpBuffer q = createPQExpBuffer(); PQExpBuffer insertStmt = NULL; + char *attgenerated; PGresult *res; - int nfields; + int nfields, + i; int rows_per_statement = dopt->dump_inserts; int rows_this_statement = 0; - appendPQExpBuffer(q, "DECLARE _pg_dump_cursor CURSOR FOR " - "SELECT * FROM ONLY %s", + /* + * If we're going to emit INSERTs with column names, the most efficient + * way to deal with generated columns is to exclude them entirely. For + * INSERTs without column names, we have to emit DEFAULT rather than the + * actual column value --- but we can save a few cycles by fetching nulls + * rather than the uninteresting-to-us value. + */ + attgenerated = (char *) pg_malloc(tbinfo->numatts * sizeof(char)); + appendPQExpBufferStr(q, "DECLARE _pg_dump_cursor CURSOR FOR SELECT "); + nfields = 0; + for (i = 0; i < tbinfo->numatts; i++) + { + if (tbinfo->attisdropped[i]) + continue; + if (tbinfo->attgenerated[i] && dopt->column_inserts) + continue; + if (nfields > 0) + appendPQExpBufferStr(q, ", "); + if (tbinfo->attgenerated[i]) + appendPQExpBufferStr(q, "NULL"); + else + appendPQExpBufferStr(q, fmtId(tbinfo->attnames[i])); + attgenerated[nfields] = tbinfo->attgenerated[i]; + nfields++; + } + /* Servers before 9.4 will complain about zero-column SELECT */ + if (nfields == 0) + appendPQExpBufferStr(q, "NULL"); + appendPQExpBuffer(q, " FROM ONLY %s", fmtQualifiedDumpable(tbinfo)); if (tdinfo->filtercond) appendPQExpBuffer(q, " %s", tdinfo->filtercond); @@ -2025,14 +2054,19 @@ { res = ExecuteSqlQuery(fout, "FETCH 100 FROM _pg_dump_cursor", PGRES_TUPLES_OK); - nfields = PQnfields(res); + + /* cross-check field count, allowing for dummy NULL if any */ + if (nfields != PQnfields(res) && + !(nfields == 0 && PQnfields(res) == 1)) + fatal("wrong number of fields retrieved from table \"%s\"", + tbinfo->dobj.name); /* * First time through, we build as much of the INSERT statement as * possible in "insertStmt", which we can then just print for each - * statement. If the table happens to have zero columns then this will - * be a complete statement, otherwise it will end in "VALUES" and be - * ready to have the row's column values printed. + * statement. If the table happens to have zero dumpable columns then + * this will be a complete statement, otherwise it will end in + * "VALUES" and be ready to have the row's column values printed. */ if (insertStmt == NULL) { @@ -2111,7 +2145,7 @@ { if (field > 0) archputs(", ", fout); - if (tbinfo->attgenerated[field]) + if (attgenerated[field]) { archputs("DEFAULT", fout); continue; @@ -2216,6 +2250,7 @@ destroyPQExpBuffer(q); if (insertStmt != NULL) destroyPQExpBuffer(insertStmt); + free(attgenerated); return 1; } @@ -3578,7 +3613,7 @@ /* * getPolicies - * get information about policies on a dumpable table. + * get information about all RLS policies on dumpable tables. */ void getPolicies(Archive *fout, TableInfo tblinfo[], int numTables) @@ -3588,6 +3623,7 @@ PolicyInfo *polinfo; int i_oid; int i_tableoid; + int i_polrelid; int i_polname; int i_polcmd; int i_polpermissive; @@ -3603,6 +3639,10 @@ query = createPQExpBuffer(); + /* + * First, check which tables have RLS enabled. We represent RLS being + * enabled on a table by creating a PolicyInfo object with null polname. + */ for (i = 0; i < numTables; i++) { TableInfo *tbinfo = &tblinfo[i]; @@ -3611,15 +3651,6 @@ if (!(tbinfo->dobj.dump & DUMP_COMPONENT_POLICY)) continue; - pg_log_info("reading row security enabled for table \"%s.%s\"", - tbinfo->dobj.namespace->dobj.name, - tbinfo->dobj.name); - - /* - * Get row security enabled information for the table. We represent - * RLS being enabled on a table by creating a PolicyInfo object with - * null polname. - */ if (tbinfo->rowsec) { /* @@ -3641,51 +3672,35 @@ polinfo->polqual = NULL; polinfo->polwithcheck = NULL; } + } - pg_log_info("reading policies for table \"%s.%s\"", - tbinfo->dobj.namespace->dobj.name, - tbinfo->dobj.name); - - resetPQExpBuffer(query); - - /* Get the policies for the table. */ - if (fout->remoteVersion >= 100000) - appendPQExpBuffer(query, - "SELECT oid, tableoid, pol.polname, pol.polcmd, pol.polpermissive, " - "CASE WHEN pol.polroles = '{0}' THEN NULL ELSE " - " pg_catalog.array_to_string(ARRAY(SELECT pg_catalog.quote_ident(rolname) from pg_catalog.pg_roles WHERE oid = ANY(pol.polroles)), ', ') END AS polroles, " - "pg_catalog.pg_get_expr(pol.polqual, pol.polrelid) AS polqual, " - "pg_catalog.pg_get_expr(pol.polwithcheck, pol.polrelid) AS polwithcheck " - "FROM pg_catalog.pg_policy pol " - "WHERE polrelid = '%u'", - tbinfo->dobj.catId.oid); - else - appendPQExpBuffer(query, - "SELECT oid, tableoid, pol.polname, pol.polcmd, 't' as polpermissive, " - "CASE WHEN pol.polroles = '{0}' THEN NULL ELSE " - " pg_catalog.array_to_string(ARRAY(SELECT pg_catalog.quote_ident(rolname) from pg_catalog.pg_roles WHERE oid = ANY(pol.polroles)), ', ') END AS polroles, " - "pg_catalog.pg_get_expr(pol.polqual, pol.polrelid) AS polqual, " - "pg_catalog.pg_get_expr(pol.polwithcheck, pol.polrelid) AS polwithcheck " - "FROM pg_catalog.pg_policy pol " - "WHERE polrelid = '%u'", - tbinfo->dobj.catId.oid); - res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK); + /* + * Now, read all RLS policies, and create PolicyInfo objects for all those + * that are of interest. + */ + pg_log_info("reading row-level security policies"); - ntups = PQntuples(res); + printfPQExpBuffer(query, + "SELECT oid, tableoid, pol.polrelid, pol.polname, pol.polcmd, "); + if (fout->remoteVersion >= 100000) + appendPQExpBuffer(query, "pol.polpermissive, "); + else + appendPQExpBuffer(query, "'t' as polpermissive, "); + appendPQExpBuffer(query, + "CASE WHEN pol.polroles = '{0}' THEN NULL ELSE " + " pg_catalog.array_to_string(ARRAY(SELECT pg_catalog.quote_ident(rolname) from pg_catalog.pg_roles WHERE oid = ANY(pol.polroles)), ', ') END AS polroles, " + "pg_catalog.pg_get_expr(pol.polqual, pol.polrelid) AS polqual, " + "pg_catalog.pg_get_expr(pol.polwithcheck, pol.polrelid) AS polwithcheck " + "FROM pg_catalog.pg_policy pol"); - if (ntups == 0) - { - /* - * No explicit policies to handle (only the default-deny policy, - * which is handled as part of the table definition). Clean up - * and return. - */ - PQclear(res); - continue; - } + res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK); + ntups = PQntuples(res); + if (ntups > 0) + { i_oid = PQfnumber(res, "oid"); i_tableoid = PQfnumber(res, "tableoid"); + i_polrelid = PQfnumber(res, "polrelid"); i_polname = PQfnumber(res, "polname"); i_polcmd = PQfnumber(res, "polcmd"); i_polpermissive = PQfnumber(res, "polpermissive"); @@ -3697,6 +3712,16 @@ for (j = 0; j < ntups; j++) { + Oid polrelid = atooid(PQgetvalue(res, j, i_polrelid)); + TableInfo *tbinfo = findTableByOid(polrelid); + + /* + * Ignore row security on tables not to be dumped. (This will + * result in some harmless wasted slots in polinfo[].) + */ + if (!(tbinfo->dobj.dump & DUMP_COMPONENT_POLICY)) + continue; + polinfo[j].dobj.objType = DO_POLICY; polinfo[j].dobj.catId.tableoid = atooid(PQgetvalue(res, j, i_tableoid)); @@ -3726,8 +3751,10 @@ polinfo[j].polwithcheck = pg_strdup(PQgetvalue(res, j, i_polwithcheck)); } - PQclear(res); } + + PQclear(res); + destroyPQExpBuffer(query); } @@ -5067,6 +5094,7 @@ tyinfo[i].dobj.namespace = findNamespace(fout, atooid(PQgetvalue(res, i, i_typnamespace))); + tyinfo[i].ftypname = NULL; /* may get filled later */ tyinfo[i].rolname = pg_strdup(PQgetvalue(res, i, i_rolname)); tyinfo[i].typacl = pg_strdup(PQgetvalue(res, i, i_typacl)); tyinfo[i].rtypacl = pg_strdup(PQgetvalue(res, i, i_rtypacl)); @@ -6854,7 +6882,7 @@ */ if (tblinfo[i].dobj.dump && (tblinfo[i].relkind == RELKIND_RELATION || - tblinfo->relkind == RELKIND_PARTITIONED_TABLE) && + tblinfo[i].relkind == RELKIND_PARTITIONED_TABLE) && (tblinfo[i].dobj.dump & DUMP_COMPONENTS_REQUIRING_LOCK)) { resetPQExpBuffer(query); @@ -7926,6 +7954,7 @@ "SELECT tgname, " "tgfoid::pg_catalog.regproc AS tgfname, " "tgtype, tgnargs, tgargs, tgenabled, " + "false as tgisinternal, " "tgisconstraint, tgconstrname, tgdeferrable, " "tgconstrrelid, tginitdeferred, tableoid, oid, " "tgconstrrelid::pg_catalog.regclass AS tgconstrrelname " @@ -9681,9 +9710,26 @@ PQExpBuffer initacl_subquery = createPQExpBuffer(); PQExpBuffer initracl_subquery = createPQExpBuffer(); + /* + * Global entries (with defaclnamespace=0) replace the hard-wired + * default ACL for their object type. We should dump them as deltas + * from the default ACL, since that will be used as a starting point + * for interpreting the ALTER DEFAULT PRIVILEGES commands. On the + * other hand, non-global entries can only add privileges not revoke + * them. We must dump those as-is (i.e., as deltas from an empty + * ACL). We implement that by passing NULL as the object type for + * acldefault(), which works because acldefault() is STRICT. + * + * We can use defaclobjtype as the object type for acldefault(), + * except for the case of 'S' (DEFACLOBJ_SEQUENCE) which must be + * converted to 's'. + */ buildACLQueries(acl_subquery, racl_subquery, initacl_subquery, initracl_subquery, "defaclacl", "defaclrole", - "CASE WHEN defaclobjtype = 'S' THEN 's' ELSE defaclobjtype END::\"char\"", + "CASE WHEN defaclnamespace = 0 THEN" + " CASE WHEN defaclobjtype = 'S' THEN 's'::\"char\"" + " ELSE defaclobjtype END " + "ELSE NULL END", dopt->binary_upgrade); appendPQExpBuffer(query, "SELECT d.oid, d.tableoid, " @@ -11016,13 +11062,9 @@ } if (OidIsValid(tyinfo->typelem)) - { - char *elemType; - - elemType = getFormattedTypeName(fout, tyinfo->typelem, zeroIsError); - appendPQExpBuffer(q, ",\n ELEMENT = %s", elemType); - free(elemType); - } + appendPQExpBuffer(q, ",\n ELEMENT = %s", + getFormattedTypeName(fout, tyinfo->typelem, + zeroIsError)); if (strcmp(typcategory, "U") != 0) { @@ -11825,7 +11867,7 @@ for (j = 0; j < nallargs; j++) { Oid typid; - char *typname; + const char *typname; const char *argmode; const char *argname; @@ -11864,7 +11906,6 @@ argname ? fmtId(argname) : "", argname ? " " : "", typname); - free(typname); } appendPQExpBufferChar(&fn, ')'); return fn.data; @@ -11893,15 +11934,12 @@ appendPQExpBuffer(&fn, "%s(", finfo->dobj.name); for (j = 0; j < finfo->nargs; j++) { - char *typname; - if (j > 0) appendPQExpBufferStr(&fn, ", "); - typname = getFormattedTypeName(fout, finfo->argtypes[j], - zeroIsError); - appendPQExpBufferStr(&fn, typname); - free(typname); + appendPQExpBufferStr(&fn, + getFormattedTypeName(fout, finfo->argtypes[j], + zeroIsError)); } appendPQExpBufferChar(&fn, ')'); return fn.data; @@ -11945,7 +11983,6 @@ char *prosupport; char *proparallel; char *lanname; - char *rettypename; int nallargs; char **allargtypes = NULL; char **argmodes = NULL; @@ -12302,14 +12339,10 @@ else if (funcresult) appendPQExpBuffer(q, " RETURNS %s", funcresult); else - { - rettypename = getFormattedTypeName(fout, finfo->prorettype, - zeroIsError); appendPQExpBuffer(q, " RETURNS %s%s", (proretset[0] == 't') ? "SETOF " : "", - rettypename); - free(rettypename); - } + getFormattedTypeName(fout, finfo->prorettype, + zeroIsError)); appendPQExpBuffer(q, "\n LANGUAGE %s", fmtId(lanname)); @@ -12516,8 +12549,8 @@ PQExpBuffer labelq; PQExpBuffer castargs; FuncInfo *funcInfo = NULL; - char *sourceType; - char *targetType; + const char *sourceType; + const char *targetType; /* Skip if not to be dumped */ if (!cast->dobj.dump || dopt->dataOnly) @@ -12603,9 +12636,6 @@ NULL, "", cast->dobj.catId, 0, cast->dobj.dumpId); - free(sourceType); - free(targetType); - destroyPQExpBuffer(defqry); destroyPQExpBuffer(delqry); destroyPQExpBuffer(labelq); @@ -12626,7 +12656,7 @@ FuncInfo *fromsqlFuncInfo = NULL; FuncInfo *tosqlFuncInfo = NULL; char *lanname; - char *transformType; + const char *transformType; /* Skip if not to be dumped */ if (!transform->dobj.dump || dopt->dataOnly) @@ -12733,7 +12763,6 @@ transform->dobj.catId, 0, transform->dobj.dumpId); free(lanname); - free(transformType); destroyPQExpBuffer(defqry); destroyPQExpBuffer(delqry); destroyPQExpBuffer(labelq); @@ -14025,17 +14054,11 @@ { appendPQExpBufferChar(&buf, '('); for (j = 0; j < agginfo->aggfn.nargs; j++) - { - char *typname; - - typname = getFormattedTypeName(fout, agginfo->aggfn.argtypes[j], - zeroIsError); - appendPQExpBuffer(&buf, "%s%s", (j > 0) ? ", " : "", - typname); - free(typname); - } + getFormattedTypeName(fout, + agginfo->aggfn.argtypes[j], + zeroIsError)); appendPQExpBufferChar(&buf, ')'); } return buf.data; @@ -18736,11 +18759,12 @@ * This does not guarantee to schema-qualify the output, so it should not * be used to create the target object name for CREATE or ALTER commands. * - * TODO: there might be some value in caching the results. + * Note that the result is cached and must not be freed by the caller. */ -static char * +static const char * getFormattedTypeName(Archive *fout, Oid oid, OidOptions opts) { + TypeInfo *typeInfo; char *result; PQExpBuffer query; PGresult *res; @@ -18748,11 +18772,16 @@ if (oid == 0) { if ((opts & zeroAsStar) != 0) - return pg_strdup("*"); + return "*"; else if ((opts & zeroAsNone) != 0) - return pg_strdup("NONE"); + return "NONE"; } + /* see if we have the result cached in the type's TypeInfo record */ + typeInfo = findTypeByOid(oid); + if (typeInfo && typeInfo->ftypname) + return typeInfo->ftypname; + query = createPQExpBuffer(); appendPQExpBuffer(query, "SELECT pg_catalog.format_type('%u'::pg_catalog.oid, NULL)", oid); @@ -18765,6 +18794,15 @@ PQclear(res); destroyPQExpBuffer(query); + /* + * Cache the result for re-use in later requests, if possible. If we + * don't have a TypeInfo for the type, the string will be leaked once the + * caller is done with it ... but that case really should not happen, so + * leaking if it does seems acceptable. + */ + if (typeInfo) + typeInfo->ftypname = result; + return result; } diff -Nru postgresql-13-13.4/src/bin/pg_dump/pg_dump.h postgresql-13-13.7/src/bin/pg_dump/pg_dump.h --- postgresql-13-13.4/src/bin/pg_dump/pg_dump.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/pg_dump.h 2022-05-09 21:16:30.000000000 +0000 @@ -163,9 +163,11 @@ DumpableObject dobj; /* - * Note: dobj.name is the pg_type.typname entry. format_type() might - * produce something different than typname + * Note: dobj.name is the raw pg_type.typname entry. ftypname is the + * result of format_type(), which will be quoted if needed, and might be + * schema-qualified too. */ + char *ftypname; char *rolname; /* name of owner, or empty string */ char *typacl; char *rtypacl; diff -Nru postgresql-13-13.4/src/bin/pg_dump/pg_dump_sort.c postgresql-13-13.7/src/bin/pg_dump/pg_dump_sort.c --- postgresql-13-13.4/src/bin/pg_dump/pg_dump_sort.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/pg_dump_sort.c 2022-05-09 21:16:30.000000000 +0000 @@ -34,6 +34,15 @@ * restore state). If you think to change this, see also the RestorePass * mechanism in pg_backup_archiver.c. * + * On the other hand, casts are intentionally sorted earlier than you might + * expect; logically they should come after functions, since they usually + * depend on those. This works around the backend's habit of recording + * views that use casts as dependent on the cast's underlying function. + * We initially sort casts first, and then any functions used by casts + * will be hoisted above the casts, and in turn views that those functions + * depend on will be hoisted above the functions. But views not used that + * way won't be hoisted. + * * NOTE: object-type priorities must match the section assignments made in * pg_dump.c; that is, PRE_DATA objects must sort before DO_PRE_DATA_BOUNDARY, * POST_DATA objects must sort after DO_POST_DATA_BOUNDARY, and DATA objects @@ -45,12 +54,12 @@ 4, /* DO_EXTENSION */ 5, /* DO_TYPE */ 5, /* DO_SHELL_TYPE */ - 6, /* DO_FUNC */ - 7, /* DO_AGG */ - 8, /* DO_OPERATOR */ - 8, /* DO_ACCESS_METHOD */ - 9, /* DO_OPCLASS */ - 9, /* DO_OPFAMILY */ + 7, /* DO_FUNC */ + 8, /* DO_AGG */ + 9, /* DO_OPERATOR */ + 9, /* DO_ACCESS_METHOD */ + 10, /* DO_OPCLASS */ + 10, /* DO_OPFAMILY */ 3, /* DO_COLLATION */ 11, /* DO_CONVERSION */ 18, /* DO_TABLE */ @@ -63,7 +72,7 @@ 27, /* DO_CONSTRAINT */ 33, /* DO_FK_CONSTRAINT */ 2, /* DO_PROCLANG */ - 10, /* DO_CAST */ + 6, /* DO_CAST */ 23, /* DO_TABLE_DATA */ 24, /* DO_SEQUENCE_SET */ 19, /* DO_DUMMY_TYPE */ diff -Nru postgresql-13-13.4/src/bin/pg_dump/po/de.po postgresql-13-13.7/src/bin/pg_dump/po/de.po --- postgresql-13-13.4/src/bin/pg_dump/po/de.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/po/de.po 2022-05-09 21:16:30.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-11-02 06:46+0000\n" +"POT-Creation-Date: 2022-02-03 03:30+0000\n" "PO-Revision-Date: 2020-11-02 08:43+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" @@ -112,212 +112,212 @@ msgid "child process exited with unrecognized status %d" msgstr "Kindprozess hat mit unbekanntem Status %d beendet" -#: common.c:121 +#: common.c:124 #, c-format msgid "reading extensions" msgstr "lese Erweiterungen" -#: common.c:125 +#: common.c:128 #, c-format msgid "identifying extension members" msgstr "identifiziere Erweiterungselemente" -#: common.c:128 +#: common.c:131 #, c-format msgid "reading schemas" msgstr "lese Schemas" -#: common.c:138 +#: common.c:141 #, c-format msgid "reading user-defined tables" msgstr "lese benutzerdefinierte Tabellen" -#: common.c:145 +#: common.c:148 #, c-format msgid "reading user-defined functions" msgstr "lese benutzerdefinierte Funktionen" -#: common.c:150 +#: common.c:153 #, c-format msgid "reading user-defined types" msgstr "lese benutzerdefinierte Typen" -#: common.c:155 +#: common.c:158 #, c-format msgid "reading procedural languages" msgstr "lese prozedurale Sprachen" -#: common.c:158 +#: common.c:161 #, c-format msgid "reading user-defined aggregate functions" msgstr "lese benutzerdefinierte Aggregatfunktionen" -#: common.c:161 +#: common.c:164 #, c-format msgid "reading user-defined operators" msgstr "lese benutzerdefinierte Operatoren" -#: common.c:165 +#: common.c:168 #, c-format msgid "reading user-defined access methods" msgstr "lese benutzerdefinierte Zugriffsmethoden" -#: common.c:168 +#: common.c:171 #, c-format msgid "reading user-defined operator classes" msgstr "lese benutzerdefinierte Operatorklassen" -#: common.c:171 +#: common.c:174 #, c-format msgid "reading user-defined operator families" msgstr "lese benutzerdefinierte Operatorfamilien" -#: common.c:174 +#: common.c:177 #, c-format msgid "reading user-defined text search parsers" msgstr "lese benutzerdefinierte Textsuche-Parser" -#: common.c:177 +#: common.c:180 #, c-format msgid "reading user-defined text search templates" msgstr "lese benutzerdefinierte Textsuche-Templates" -#: common.c:180 +#: common.c:183 #, c-format msgid "reading user-defined text search dictionaries" msgstr "lese benutzerdefinierte Textsuchewörterbücher" -#: common.c:183 +#: common.c:186 #, c-format msgid "reading user-defined text search configurations" msgstr "lese benutzerdefinierte Textsuchekonfigurationen" -#: common.c:186 +#: common.c:189 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "lese benutzerdefinierte Fremddaten-Wrapper" -#: common.c:189 +#: common.c:192 #, c-format msgid "reading user-defined foreign servers" msgstr "lese benutzerdefinierte Fremdserver" -#: common.c:192 +#: common.c:195 #, c-format msgid "reading default privileges" msgstr "lese Vorgabeprivilegien" -#: common.c:195 +#: common.c:198 #, c-format msgid "reading user-defined collations" msgstr "lese benutzerdefinierte Sortierfolgen" -#: common.c:199 +#: common.c:202 #, c-format msgid "reading user-defined conversions" msgstr "lese benutzerdefinierte Konversionen" -#: common.c:202 +#: common.c:205 #, c-format msgid "reading type casts" msgstr "lese Typumwandlungen" -#: common.c:205 +#: common.c:208 #, c-format msgid "reading transforms" msgstr "lese Transformationen" -#: common.c:208 +#: common.c:211 #, c-format msgid "reading table inheritance information" msgstr "lese Tabellenvererbungsinformationen" -#: common.c:211 +#: common.c:214 #, c-format msgid "reading event triggers" msgstr "lese Ereignistrigger" -#: common.c:215 +#: common.c:218 #, c-format msgid "finding extension tables" msgstr "finde Erweiterungstabellen" -#: common.c:219 +#: common.c:222 #, c-format msgid "finding inheritance relationships" msgstr "fine Vererbungsbeziehungen" -#: common.c:222 +#: common.c:225 #, c-format msgid "reading column info for interesting tables" msgstr "lese Spalteninfo für interessante Tabellen" -#: common.c:225 +#: common.c:228 #, c-format msgid "flagging inherited columns in subtables" msgstr "markiere vererbte Spalten in abgeleiteten Tabellen" -#: common.c:228 +#: common.c:231 #, c-format msgid "reading indexes" msgstr "lese Indexe" -#: common.c:231 +#: common.c:234 #, c-format msgid "flagging indexes in partitioned tables" msgstr "markiere Indexe in partitionierten Tabellen" -#: common.c:234 +#: common.c:237 #, c-format msgid "reading extended statistics" msgstr "lese erweiterte Statistiken" -#: common.c:237 +#: common.c:240 #, c-format msgid "reading constraints" msgstr "lese Constraints" -#: common.c:240 +#: common.c:243 #, c-format msgid "reading triggers" msgstr "lese Trigger" -#: common.c:243 +#: common.c:246 #, c-format msgid "reading rewrite rules" msgstr "lese Umschreiberegeln" -#: common.c:246 +#: common.c:249 #, c-format msgid "reading policies" msgstr "lese Policies" -#: common.c:249 +#: common.c:252 #, c-format msgid "reading publications" msgstr "lese Publikationen" -#: common.c:252 +#: common.c:257 #, c-format msgid "reading publication membership" msgstr "lese Publikationsmitgliedschaft" -#: common.c:255 +#: common.c:260 #, c-format msgid "reading subscriptions" msgstr "lese Subskriptionen" -#: common.c:1025 +#: common.c:1060 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "Sanity-Check fehlgeschlagen, Eltern-OID %u von Tabelle »%s« (OID %u) nicht gefunden" -#: common.c:1067 +#: common.c:1102 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "konnte numerisches Array »%s« nicht parsen: zu viele Zahlen" -#: common.c:1082 +#: common.c:1117 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "konnte numerisches Array »%s« nicht parsen: ungültiges Zeichen in Zahl" @@ -358,13 +358,13 @@ msgid "could not close compression library: %s" msgstr "konnte Komprimierungsbibliothek nicht schließen: %s" -#: compress_io.c:584 compress_io.c:621 pg_backup_tar.c:557 pg_backup_tar.c:560 +#: compress_io.c:584 compress_io.c:621 pg_backup_tar.c:554 pg_backup_tar.c:557 #, c-format msgid "could not read from input file: %s" msgstr "konnte nicht aus Eingabedatei lesen: %s" -#: compress_io.c:623 pg_backup_custom.c:646 pg_backup_directory.c:552 -#: pg_backup_tar.c:793 pg_backup_tar.c:816 +#: compress_io.c:623 pg_backup_custom.c:646 pg_backup_directory.c:553 +#: pg_backup_tar.c:790 pg_backup_tar.c:813 #, c-format msgid "could not read from input file: end of file" msgstr "konnte nicht aus Eingabedatei lesen: Dateiende" @@ -453,430 +453,430 @@ msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: konnte Verbindung nicht annehmen: Fehlercode %d" -#: pg_backup_archiver.c:277 pg_backup_archiver.c:1587 +#: pg_backup_archiver.c:278 pg_backup_archiver.c:1589 #, c-format msgid "could not close output file: %m" msgstr "konnte Ausgabedatei nicht schließen: %m" -#: pg_backup_archiver.c:321 pg_backup_archiver.c:325 +#: pg_backup_archiver.c:322 pg_backup_archiver.c:326 #, c-format msgid "archive items not in correct section order" msgstr "Archivelemente nicht in richtiger Abschnittsreihenfolge" -#: pg_backup_archiver.c:331 +#: pg_backup_archiver.c:332 #, c-format msgid "unexpected section code %d" msgstr "unerwarteter Abschnittscode %d" -#: pg_backup_archiver.c:368 +#: pg_backup_archiver.c:369 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "parallele Wiederherstellung wird von diesem Archivdateiformat nicht unterstützt" -#: pg_backup_archiver.c:372 +#: pg_backup_archiver.c:373 #, c-format msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump" msgstr "parallele Wiederherstellung wird mit Archiven, die mit pg_dump vor 8.0 erstellt worden sind, nicht unterstützt" -#: pg_backup_archiver.c:390 +#: pg_backup_archiver.c:391 #, c-format msgid "cannot restore from compressed archive (compression not supported in this installation)" msgstr "kann komprimiertes Archiv nicht wiederherstellen (Komprimierung in dieser Installation nicht unterstützt)" -#: pg_backup_archiver.c:407 +#: pg_backup_archiver.c:408 #, c-format msgid "connecting to database for restore" msgstr "verbinde mit der Datenbank zur Wiederherstellung" -#: pg_backup_archiver.c:409 +#: pg_backup_archiver.c:410 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "direkte Datenbankverbindungen sind in Archiven vor Version 1.3 nicht unterstützt" -#: pg_backup_archiver.c:452 +#: pg_backup_archiver.c:453 #, c-format msgid "implied data-only restore" msgstr "implizit werden nur Daten wiederhergestellt" -#: pg_backup_archiver.c:518 +#: pg_backup_archiver.c:519 #, c-format msgid "dropping %s %s" msgstr "entferne %s %s" -#: pg_backup_archiver.c:613 +#: pg_backup_archiver.c:614 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "konnte nicht bestimmen, wo IF EXISTS in die Anweisung »%s« eingefügt werden soll" -#: pg_backup_archiver.c:769 pg_backup_archiver.c:771 +#: pg_backup_archiver.c:770 pg_backup_archiver.c:772 #, c-format msgid "warning from original dump file: %s" msgstr "Warnung aus der ursprünglichen Ausgabedatei: %s" -#: pg_backup_archiver.c:786 +#: pg_backup_archiver.c:787 #, c-format msgid "creating %s \"%s.%s\"" msgstr "erstelle %s »%s.%s«" -#: pg_backup_archiver.c:789 +#: pg_backup_archiver.c:790 #, c-format msgid "creating %s \"%s\"" msgstr "erstelle %s »%s«" -#: pg_backup_archiver.c:839 +#: pg_backup_archiver.c:840 #, c-format msgid "connecting to new database \"%s\"" msgstr "verbinde mit neuer Datenbank »%s«" -#: pg_backup_archiver.c:866 +#: pg_backup_archiver.c:867 #, c-format msgid "processing %s" msgstr "verarbeite %s" -#: pg_backup_archiver.c:886 +#: pg_backup_archiver.c:887 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "verarbeite Daten für Tabelle »%s.%s«" -#: pg_backup_archiver.c:948 +#: pg_backup_archiver.c:949 #, c-format msgid "executing %s %s" msgstr "führe %s %s aus" -#: pg_backup_archiver.c:987 +#: pg_backup_archiver.c:988 #, c-format msgid "disabling triggers for %s" msgstr "schalte Trigger für %s aus" -#: pg_backup_archiver.c:1013 +#: pg_backup_archiver.c:1014 #, c-format msgid "enabling triggers for %s" msgstr "schalte Trigger für %s ein" -#: pg_backup_archiver.c:1041 +#: pg_backup_archiver.c:1042 #, c-format msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine" msgstr "interner Fehler -- WriteData kann nicht außerhalb des Kontexts einer DataDumper-Routine aufgerufen werden" -#: pg_backup_archiver.c:1224 +#: pg_backup_archiver.c:1225 #, c-format msgid "large-object output not supported in chosen format" msgstr "Large-Object-Ausgabe im gewählten Format nicht unterstützt" -#: pg_backup_archiver.c:1282 +#: pg_backup_archiver.c:1283 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" msgstr[0] "%d Large Object wiederhergestellt" msgstr[1] "%d Large Objects wiederhergestellt" -#: pg_backup_archiver.c:1303 pg_backup_tar.c:736 +#: pg_backup_archiver.c:1304 pg_backup_tar.c:733 #, c-format msgid "restoring large object with OID %u" msgstr "Wiederherstellung von Large Object mit OID %u" -#: pg_backup_archiver.c:1315 +#: pg_backup_archiver.c:1316 #, c-format msgid "could not create large object %u: %s" msgstr "konnte Large Object %u nicht erstellen: %s" -#: pg_backup_archiver.c:1320 pg_dump.c:3555 +#: pg_backup_archiver.c:1321 pg_dump.c:3587 #, c-format msgid "could not open large object %u: %s" msgstr "konnte Large Object %u nicht öffnen: %s" -#: pg_backup_archiver.c:1377 +#: pg_backup_archiver.c:1378 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "konnte Inhaltsverzeichnisdatei »%s« nicht öffnen: %m" -#: pg_backup_archiver.c:1417 +#: pg_backup_archiver.c:1418 #, c-format msgid "line ignored: %s" msgstr "Zeile ignoriert: %s" -#: pg_backup_archiver.c:1424 +#: pg_backup_archiver.c:1425 #, c-format msgid "could not find entry for ID %d" msgstr "konnte Eintrag für ID %d nicht finden" -#: pg_backup_archiver.c:1445 pg_backup_directory.c:222 -#: pg_backup_directory.c:598 +#: pg_backup_archiver.c:1446 pg_backup_directory.c:222 +#: pg_backup_directory.c:599 #, c-format msgid "could not close TOC file: %m" msgstr "konnte Inhaltsverzeichnisdatei nicht schließen: %m" -#: pg_backup_archiver.c:1559 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:585 pg_backup_directory.c:648 -#: pg_backup_directory.c:667 pg_dumpall.c:484 +#: pg_backup_archiver.c:1560 pg_backup_custom.c:156 pg_backup_directory.c:332 +#: pg_backup_directory.c:586 pg_backup_directory.c:649 +#: pg_backup_directory.c:668 pg_dumpall.c:484 #, c-format msgid "could not open output file \"%s\": %m" msgstr "konnte Ausgabedatei »%s« nicht öffnen: %m" -#: pg_backup_archiver.c:1561 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1562 pg_backup_custom.c:162 #, c-format msgid "could not open output file: %m" msgstr "konnte Ausgabedatei nicht öffnen: %m" -#: pg_backup_archiver.c:1654 +#: pg_backup_archiver.c:1656 #, c-format msgid "wrote %lu byte of large object data (result = %lu)" msgid_plural "wrote %lu bytes of large object data (result = %lu)" msgstr[0] "%lu Byte Large-Object-Daten geschrieben (Ergebnis = %lu)" msgstr[1] "%lu Bytes Large-Object-Daten geschrieben (Ergebnis = %lu)" -#: pg_backup_archiver.c:1659 +#: pg_backup_archiver.c:1661 #, c-format msgid "could not write to large object (result: %lu, expected: %lu)" msgstr "konnte Large Object nicht schreiben (Ergebnis: %lu, erwartet: %lu)" -#: pg_backup_archiver.c:1749 +#: pg_backup_archiver.c:1751 #, c-format msgid "while INITIALIZING:" msgstr "in Phase INITIALIZING:" -#: pg_backup_archiver.c:1754 +#: pg_backup_archiver.c:1756 #, c-format msgid "while PROCESSING TOC:" msgstr "in Phase PROCESSING TOC:" -#: pg_backup_archiver.c:1759 +#: pg_backup_archiver.c:1761 #, c-format msgid "while FINALIZING:" msgstr "in Phase FINALIZING:" -#: pg_backup_archiver.c:1764 +#: pg_backup_archiver.c:1766 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "in Inhaltsverzeichniseintrag %d; %u %u %s %s %s" -#: pg_backup_archiver.c:1840 +#: pg_backup_archiver.c:1842 #, c-format msgid "bad dumpId" msgstr "ungültige DumpId" -#: pg_backup_archiver.c:1861 +#: pg_backup_archiver.c:1863 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "ungültige Tabellen-DumpId für »TABLE DATA«-Eintrag" -#: pg_backup_archiver.c:1953 +#: pg_backup_archiver.c:1955 #, c-format msgid "unexpected data offset flag %d" msgstr "unerwartete Datenoffsetmarkierung %d" -#: pg_backup_archiver.c:1966 +#: pg_backup_archiver.c:1968 #, c-format msgid "file offset in dump file is too large" msgstr "Dateioffset in Dumpdatei ist zu groß" -#: pg_backup_archiver.c:2103 pg_backup_archiver.c:2113 +#: pg_backup_archiver.c:2106 pg_backup_archiver.c:2116 #, c-format msgid "directory name too long: \"%s\"" msgstr "Verzeichnisname zu lang: »%s«" -#: pg_backup_archiver.c:2121 +#: pg_backup_archiver.c:2124 #, c-format msgid "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not exist)" msgstr "Verzeichnis »%s« scheint kein gültiges Archiv zu sein (»toc.dat« existiert nicht)" -#: pg_backup_archiver.c:2129 pg_backup_custom.c:173 pg_backup_custom.c:812 -#: pg_backup_directory.c:207 pg_backup_directory.c:394 +#: pg_backup_archiver.c:2132 pg_backup_custom.c:173 pg_backup_custom.c:812 +#: pg_backup_directory.c:207 pg_backup_directory.c:395 #, c-format msgid "could not open input file \"%s\": %m" msgstr "konnte Eingabedatei »%s« nicht öffnen: %m" -#: pg_backup_archiver.c:2136 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2139 pg_backup_custom.c:179 #, c-format msgid "could not open input file: %m" msgstr "konnte Eingabedatei nicht öffnen: %m" -#: pg_backup_archiver.c:2142 +#: pg_backup_archiver.c:2145 #, c-format msgid "could not read input file: %m" msgstr "konnte Eingabedatei nicht lesen: %m" -#: pg_backup_archiver.c:2144 +#: pg_backup_archiver.c:2147 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "Eingabedatei ist zu kurz (gelesen: %lu, erwartet: 5)" -#: pg_backup_archiver.c:2229 +#: pg_backup_archiver.c:2179 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "Eingabedatei ist anscheinend ein Dump im Textformat. Bitte verwenden Sie psql." -#: pg_backup_archiver.c:2235 +#: pg_backup_archiver.c:2185 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "Eingabedatei scheint kein gültiges Archiv zu sein (zu kurz?)" -#: pg_backup_archiver.c:2241 +#: pg_backup_archiver.c:2191 #, c-format msgid "input file does not appear to be a valid archive" msgstr "Eingabedatei scheint kein gültiges Archiv zu sein" -#: pg_backup_archiver.c:2261 +#: pg_backup_archiver.c:2200 #, c-format msgid "could not close input file: %m" msgstr "konnte Eingabedatei nicht schließen: %m" -#: pg_backup_archiver.c:2373 +#: pg_backup_archiver.c:2316 #, c-format msgid "unrecognized file format \"%d\"" msgstr "nicht erkanntes Dateiformat »%d«" -#: pg_backup_archiver.c:2455 pg_backup_archiver.c:4458 +#: pg_backup_archiver.c:2398 pg_backup_archiver.c:4422 #, c-format msgid "finished item %d %s %s" msgstr "Element %d %s %s abgeschlossen" -#: pg_backup_archiver.c:2459 pg_backup_archiver.c:4471 +#: pg_backup_archiver.c:2402 pg_backup_archiver.c:4435 #, c-format msgid "worker process failed: exit code %d" msgstr "Arbeitsprozess fehlgeschlagen: Code %d" -#: pg_backup_archiver.c:2579 +#: pg_backup_archiver.c:2522 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "ID %d des Eintrags außerhalb des gültigen Bereichs -- vielleicht ein verfälschtes Inhaltsverzeichnis" -#: pg_backup_archiver.c:2646 +#: pg_backup_archiver.c:2589 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "Wiederherstellung von Tabellen mit WITH OIDS wird nicht mehr unterstützt" -#: pg_backup_archiver.c:2728 +#: pg_backup_archiver.c:2671 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "nicht erkannte Kodierung »%s«" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2676 #, c-format msgid "invalid ENCODING item: %s" msgstr "ungültiger ENCODING-Eintrag: %s" -#: pg_backup_archiver.c:2751 +#: pg_backup_archiver.c:2694 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "ungültiger STDSTRINGS-Eintrag: %s" -#: pg_backup_archiver.c:2776 +#: pg_backup_archiver.c:2719 #, c-format msgid "schema \"%s\" not found" msgstr "Schema »%s« nicht gefunden" -#: pg_backup_archiver.c:2783 +#: pg_backup_archiver.c:2726 #, c-format msgid "table \"%s\" not found" msgstr "Tabelle »%s« nicht gefunden" -#: pg_backup_archiver.c:2790 +#: pg_backup_archiver.c:2733 #, c-format msgid "index \"%s\" not found" msgstr "Index »%s« nicht gefunden" -#: pg_backup_archiver.c:2797 +#: pg_backup_archiver.c:2740 #, c-format msgid "function \"%s\" not found" msgstr "Funktion »%s« nicht gefunden" -#: pg_backup_archiver.c:2804 +#: pg_backup_archiver.c:2747 #, c-format msgid "trigger \"%s\" not found" msgstr "Trigger »%s« nicht gefunden" -#: pg_backup_archiver.c:3196 +#: pg_backup_archiver.c:3139 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "konnte Sitzungsbenutzer nicht auf »%s« setzen: %s" -#: pg_backup_archiver.c:3328 +#: pg_backup_archiver.c:3271 #, c-format msgid "could not set search_path to \"%s\": %s" msgstr "konnte search_path nicht auf »%s« setzen: %s" -#: pg_backup_archiver.c:3390 +#: pg_backup_archiver.c:3333 #, c-format msgid "could not set default_tablespace to %s: %s" msgstr "konnte default_tablespace nicht auf »%s« setzen: %s" -#: pg_backup_archiver.c:3435 +#: pg_backup_archiver.c:3378 #, c-format msgid "could not set default_table_access_method: %s" msgstr "konnte default_table_access_method nicht setzen: %s" -#: pg_backup_archiver.c:3527 pg_backup_archiver.c:3685 +#: pg_backup_archiver.c:3470 pg_backup_archiver.c:3628 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "kann Eigentümer für Objekttyp »%s« nicht setzen" -#: pg_backup_archiver.c:3789 +#: pg_backup_archiver.c:3731 #, c-format msgid "did not find magic string in file header" msgstr "magische Zeichenkette im Dateikopf nicht gefunden" -#: pg_backup_archiver.c:3802 +#: pg_backup_archiver.c:3745 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "nicht unterstützte Version (%d.%d) im Dateikopf" -#: pg_backup_archiver.c:3807 +#: pg_backup_archiver.c:3750 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "Prüfung der Integer-Größe (%lu) fehlgeschlagen" -#: pg_backup_archiver.c:3811 +#: pg_backup_archiver.c:3754 #, c-format msgid "archive was made on a machine with larger integers, some operations might fail" msgstr "Archiv wurde auf einer Maschine mit größeren Integers erstellt; einige Operationen könnten fehlschlagen" -#: pg_backup_archiver.c:3821 +#: pg_backup_archiver.c:3764 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "erwartetes Format (%d) ist nicht das gleiche wie das in der Datei gefundene (%d)" -#: pg_backup_archiver.c:3837 +#: pg_backup_archiver.c:3779 #, c-format msgid "archive is compressed, but this installation does not support compression -- no data will be available" msgstr "Archiv ist komprimiert, aber diese Installation unterstützt keine Komprimierung -- keine Daten verfügbar" -#: pg_backup_archiver.c:3855 +#: pg_backup_archiver.c:3813 #, c-format msgid "invalid creation date in header" msgstr "ungültiges Erstellungsdatum im Kopf" -#: pg_backup_archiver.c:3983 +#: pg_backup_archiver.c:3947 #, c-format msgid "processing item %d %s %s" msgstr "verarbeite Element %d %s %s" -#: pg_backup_archiver.c:4062 +#: pg_backup_archiver.c:4026 #, c-format msgid "entering main parallel loop" msgstr "Eintritt in Hauptparallelschleife" -#: pg_backup_archiver.c:4073 +#: pg_backup_archiver.c:4037 #, c-format msgid "skipping item %d %s %s" msgstr "Element %d %s %s wird übersprungen" -#: pg_backup_archiver.c:4082 +#: pg_backup_archiver.c:4046 #, c-format msgid "launching item %d %s %s" msgstr "starte Element %d %s %s" -#: pg_backup_archiver.c:4136 +#: pg_backup_archiver.c:4100 #, c-format msgid "finished main parallel loop" msgstr "Hauptparallelschleife beendet" -#: pg_backup_archiver.c:4172 +#: pg_backup_archiver.c:4136 #, c-format msgid "processing missed item %d %s %s" msgstr "verarbeite verpasstes Element %d %s %s" -#: pg_backup_archiver.c:4777 +#: pg_backup_archiver.c:4741 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "Tabelle »%s« konnte nicht erzeugt werden, ihre Daten werden nicht wiederhergestellt werden" @@ -887,7 +887,7 @@ msgstr "ungültige OID für Large Object" #: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:632 -#: pg_backup_custom.c:870 pg_backup_tar.c:1086 pg_backup_tar.c:1091 +#: pg_backup_custom.c:870 pg_backup_tar.c:1083 pg_backup_tar.c:1088 #, c-format msgid "error during file seek: %m" msgstr "Fehler beim Suchen in Datei: %m" @@ -928,7 +928,7 @@ msgstr "konnte nicht aus Eingabedatei lesen: %m" #: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:948 -#: pg_backup_tar.c:1089 +#: pg_backup_tar.c:1086 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "konnte Positionszeiger in Archivdatei nicht ermitteln: %m" @@ -1048,21 +1048,16 @@ msgid "COPY failed for table \"%s\": %s" msgstr "COPY fehlgeschlagen für Tabelle »%s«: %s" -#: pg_backup_db.c:528 pg_dump.c:1991 +#: pg_backup_db.c:528 pg_dump.c:1988 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "unerwartete zusätzliche Ergebnisse während COPY von Tabelle »%s«" -#: pg_backup_db.c:588 -#, c-format -msgid "LOCK TABLE failed for \"%s\": %s" -msgstr "LOCK TABLE fehlgeschlagen für Tabelle »%s«: %s" - -#: pg_backup_db.c:606 +#: pg_backup_db.c:540 msgid "could not start database transaction" msgstr "konnte Datenbanktransaktion nicht starten" -#: pg_backup_db.c:614 +#: pg_backup_db.c:548 msgid "could not commit database transaction" msgstr "konnte Datenbanktransaktion nicht beenden" @@ -1086,43 +1081,58 @@ msgid "could not create directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht erzeugen: %m" -#: pg_backup_directory.c:355 pg_backup_directory.c:496 -#: pg_backup_directory.c:532 +#: pg_backup_directory.c:355 pg_backup_directory.c:497 +#: pg_backup_directory.c:533 #, c-format msgid "could not write to output file: %s" msgstr "konnte nicht in Ausgabedatei schreiben: %s" -#: pg_backup_directory.c:406 +#: pg_backup_directory.c:373 +#, c-format +msgid "could not close data file: %m" +msgstr "konnte Datendatei nicht schließen: %m" + +#: pg_backup_directory.c:407 #, c-format msgid "could not close data file \"%s\": %m" msgstr "konnte Datendatei »%s« nicht schließen: %m" -#: pg_backup_directory.c:446 +#: pg_backup_directory.c:447 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "konnte Large-Object-Inhaltsverzeichnisdatei »%s« nicht zur Eingabe öffnen: %m" -#: pg_backup_directory.c:457 +#: pg_backup_directory.c:458 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "ungültige Zeile in Large-Object-Inhaltsverzeichnisdatei »%s«: %s" -#: pg_backup_directory.c:466 +#: pg_backup_directory.c:467 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "Fehler beim Lesen von Large-Object-Inhaltsverzeichnisdatei »%s«" -#: pg_backup_directory.c:470 +#: pg_backup_directory.c:471 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "konnte Large-Object-Inhaltsverzeichnisdatei »%s« nicht schließen: %m" -#: pg_backup_directory.c:689 +#: pg_backup_directory.c:685 +#, c-format +msgid "could not close blob data file: %m" +msgstr "konnte BLOB-Datendatei nicht schließen: %m" + +#: pg_backup_directory.c:691 #, c-format msgid "could not write to blobs TOC file" msgstr "konnte nicht in Blobs-Inhaltsverzeichnisdatei schreiben" -#: pg_backup_directory.c:721 +#: pg_backup_directory.c:705 +#, c-format +msgid "could not close blobs TOC file: %m" +msgstr "konnte BLOB-Inhaltsverzeichnisdatei nicht schließen: %m" + +#: pg_backup_directory.c:724 #, c-format msgid "file name too long: \"%s\"" msgstr "Dateiname zu lang: »%s«" @@ -1142,7 +1152,7 @@ msgid "could not open TOC file for output: %m" msgstr "konnte Inhaltsverzeichnisdatei nicht zur Ausgabe öffnen: %m" -#: pg_backup_tar.c:203 pg_backup_tar.c:358 +#: pg_backup_tar.c:203 pg_backup_tar.c:352 #, c-format msgid "compression is not supported by tar archive format" msgstr "Komprimierung ist im Tar-Format nicht unterstützt" @@ -1157,64 +1167,64 @@ msgid "could not open TOC file for input: %m" msgstr "konnte Inhaltsverzeichnisdatei nicht zur Eingabe öffnen: %m" -#: pg_backup_tar.c:344 +#: pg_backup_tar.c:338 #, c-format msgid "could not find file \"%s\" in archive" msgstr "konnte Datei »%s« nicht im Archiv finden" -#: pg_backup_tar.c:410 +#: pg_backup_tar.c:404 #, c-format msgid "could not generate temporary file name: %m" msgstr "konnte keine temporären Dateinamen erzeugen: %m" -#: pg_backup_tar.c:421 +#: pg_backup_tar.c:415 #, c-format msgid "could not open temporary file" msgstr "konnte temporäre Datei nicht öffnen" -#: pg_backup_tar.c:448 +#: pg_backup_tar.c:444 #, c-format -msgid "could not close tar member" -msgstr "konnte Tar-Mitglied nicht schließen" +msgid "could not close tar member: %m" +msgstr "konnte Tar-Mitglied nicht schließen: %m" -#: pg_backup_tar.c:691 +#: pg_backup_tar.c:688 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "unerwartete Syntax der COPY-Anweisung: »%s«" -#: pg_backup_tar.c:958 +#: pg_backup_tar.c:955 #, c-format msgid "invalid OID for large object (%u)" msgstr "Large Object hat ungültige OID (%u)" -#: pg_backup_tar.c:1105 +#: pg_backup_tar.c:1102 #, c-format msgid "could not close temporary file: %m" msgstr "konnte temporäre Datei nicht schließen: %m" -#: pg_backup_tar.c:1114 +#: pg_backup_tar.c:1111 #, c-format msgid "actual file length (%s) does not match expected (%s)" msgstr "tatsächliche Dateilänge (%s) stimmt nicht mit erwarteter Länge (%s) überein" -#: pg_backup_tar.c:1171 pg_backup_tar.c:1201 +#: pg_backup_tar.c:1168 pg_backup_tar.c:1198 #, c-format msgid "could not find header for file \"%s\" in tar archive" msgstr "konnte Kopf für Datei »%s« im Tar-Archiv nicht finden" -#: pg_backup_tar.c:1189 +#: pg_backup_tar.c:1186 #, c-format msgid "restoring data out of order is not supported in this archive format: \"%s\" is required, but comes before \"%s\" in the archive file." msgstr "Ausgabe der Daten in anderer Reihenfolge wird in diesem Archivformat nicht unterstützt: »%s« wird benötigt, aber es kommt vor »%s« in der Archivdatei." -#: pg_backup_tar.c:1234 +#: pg_backup_tar.c:1231 #, c-format msgid "incomplete tar header found (%lu byte)" msgid_plural "incomplete tar header found (%lu bytes)" msgstr[0] "unvollständiger Tar-Dateikopf gefunden (%lu Byte)" msgstr[1] "unvollständiger Tar-Dateikopf gefunden (%lu Bytes)" -#: pg_backup_tar.c:1285 +#: pg_backup_tar.c:1282 #, c-format msgid "corrupt tar header found in %s (expected %d, computed %d) file position %s" msgstr "beschädigter Tar-Kopf in %s gefunden (%d erwartet, %d berechnet), Dateiposition %s" @@ -1732,7 +1742,7 @@ msgid "invalid client encoding \"%s\" specified" msgstr "ungültige Clientkodierung »%s« angegeben" -#: pg_dump.c:1235 +#: pg_dump.c:1232 #, c-format msgid "" "Synchronized snapshots on standby servers are not supported by this server version.\n" @@ -1743,498 +1753,493 @@ "Verwenden Sie --no-synchronized-snapshots, wenn Sie keine synchronisierten\n" "Snapshots benötigen." -#: pg_dump.c:1304 +#: pg_dump.c:1301 #, c-format msgid "invalid output format \"%s\" specified" msgstr "ungültiges Ausgabeformat »%s« angegeben" -#: pg_dump.c:1342 +#: pg_dump.c:1339 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "keine passenden Schemas für Muster »%s« gefunden" -#: pg_dump.c:1389 +#: pg_dump.c:1386 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "keine passenden Fremdserver für Muster »%s« gefunden" -#: pg_dump.c:1452 +#: pg_dump.c:1449 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "keine passenden Tabellen für Muster »%s« gefunden" -#: pg_dump.c:1865 +#: pg_dump.c:1862 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "gebe Inhalt der Tabelle »%s.%s« aus" -#: pg_dump.c:1972 +#: pg_dump.c:1969 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "Ausgabe des Inhalts der Tabelle »%s« fehlgeschlagen: PQgetCopyData() fehlgeschlagen." -#: pg_dump.c:1973 pg_dump.c:1983 +#: pg_dump.c:1970 pg_dump.c:1980 #, c-format msgid "Error message from server: %s" msgstr "Fehlermeldung vom Server: %s" -#: pg_dump.c:1974 pg_dump.c:1984 +#: pg_dump.c:1971 pg_dump.c:1981 #, c-format msgid "The command was: %s" msgstr "Die Anweisung war: %s" -#: pg_dump.c:1982 +#: pg_dump.c:1979 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Ausgabe des Inhalts der Tabelle »%s« fehlgeschlagen: PQgetResult() fehlgeschlagen." -#: pg_dump.c:2742 +#: pg_dump.c:2061 +#, c-format +msgid "wrong number of fields retrieved from table \"%s\"" +msgstr "falsche Anzahl Felder von Tabelle »%s« erhalten" + +#: pg_dump.c:2774 #, c-format msgid "saving database definition" msgstr "sichere Datenbankdefinition" -#: pg_dump.c:3214 +#: pg_dump.c:3246 #, c-format msgid "saving encoding = %s" msgstr "sichere Kodierung = %s" -#: pg_dump.c:3239 +#: pg_dump.c:3271 #, c-format msgid "saving standard_conforming_strings = %s" msgstr "sichere standard_conforming_strings = %s" -#: pg_dump.c:3278 +#: pg_dump.c:3310 #, c-format msgid "could not parse result of current_schemas()" msgstr "konnte Ergebnis von current_schemas() nicht interpretieren" -#: pg_dump.c:3297 +#: pg_dump.c:3329 #, c-format msgid "saving search_path = %s" msgstr "sichere search_path = %s" -#: pg_dump.c:3337 +#: pg_dump.c:3369 #, c-format msgid "reading large objects" msgstr "lese Large Objects" -#: pg_dump.c:3519 +#: pg_dump.c:3551 #, c-format msgid "saving large objects" msgstr "sichere Large Objects" -#: pg_dump.c:3565 +#: pg_dump.c:3597 #, c-format msgid "error reading large object %u: %s" msgstr "Fehler beim Lesen von Large Object %u: %s" -#: pg_dump.c:3617 +#: pg_dump.c:3681 #, c-format -msgid "reading row security enabled for table \"%s.%s\"" -msgstr "lese Einstellung von Sicherheit auf Zeilenebene für Tabelle »%s.%s«" +msgid "reading row-level security policies" +msgstr "lese Policys für Sicherheit auf Zeilenebene" -#: pg_dump.c:3648 -#, c-format -msgid "reading policies for table \"%s.%s\"" -msgstr "lese Policys von Tabelle »%s.%s«" - -#: pg_dump.c:3800 +#: pg_dump.c:3824 #, c-format msgid "unexpected policy command type: %c" msgstr "unerwarteter Policy-Befehlstyp: %c" -#: pg_dump.c:3951 +#: pg_dump.c:3978 #, c-format msgid "owner of publication \"%s\" appears to be invalid" msgstr "Eigentümer der Publikation »%s« scheint ungültig zu sein" -#: pg_dump.c:4096 -#, c-format -msgid "reading publication membership for table \"%s.%s\"" -msgstr "lese Publikationsmitgliedschaft für Tabelle »%s.%s«" - -#: pg_dump.c:4239 +#: pg_dump.c:4268 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "Subskriptionen werden nicht ausgegeben, weil der aktuelle Benutzer kein Superuser ist" -#: pg_dump.c:4293 +#: pg_dump.c:4322 #, c-format msgid "owner of subscription \"%s\" appears to be invalid" msgstr "Eigentümer der Subskription »%s« scheint ungültig zu sein" -#: pg_dump.c:4337 +#: pg_dump.c:4366 #, c-format msgid "could not parse subpublications array" msgstr "konnte subpublications-Array nicht interpretieren" -#: pg_dump.c:4659 +#: pg_dump.c:4688 #, c-format msgid "could not find parent extension for %s %s" msgstr "konnte Erweiterung, zu der %s %s gehört, nicht finden" -#: pg_dump.c:4791 +#: pg_dump.c:4820 #, c-format msgid "owner of schema \"%s\" appears to be invalid" msgstr "Eigentümer des Schemas »%s« scheint ungültig zu sein" -#: pg_dump.c:4814 +#: pg_dump.c:4843 #, c-format msgid "schema with OID %u does not exist" msgstr "Schema mit OID %u existiert nicht" -#: pg_dump.c:5139 +#: pg_dump.c:5169 #, c-format msgid "owner of data type \"%s\" appears to be invalid" msgstr "Eigentümer des Datentypen »%s« scheint ungültig zu sein" -#: pg_dump.c:5224 +#: pg_dump.c:5254 #, c-format msgid "owner of operator \"%s\" appears to be invalid" msgstr "Eigentümer des Operatoren »%s« scheint ungültig zu sein" -#: pg_dump.c:5526 +#: pg_dump.c:5556 #, c-format msgid "owner of operator class \"%s\" appears to be invalid" msgstr "Eigentümer der Operatorklasse »%s« scheint ungültig zu sein" -#: pg_dump.c:5610 +#: pg_dump.c:5640 #, c-format msgid "owner of operator family \"%s\" appears to be invalid" msgstr "Eigentümer der Operatorfamilie »%s« scheint ungültig zu sein" -#: pg_dump.c:5779 +#: pg_dump.c:5809 #, c-format msgid "owner of aggregate function \"%s\" appears to be invalid" msgstr "Eigentümer der Aggregatfunktion »%s« scheint ungültig zu sein" -#: pg_dump.c:6039 +#: pg_dump.c:6069 #, c-format msgid "owner of function \"%s\" appears to be invalid" msgstr "Eigentümer der Funktion »%s« scheint ungültig zu sein" -#: pg_dump.c:6867 +#: pg_dump.c:6897 #, c-format msgid "owner of table \"%s\" appears to be invalid" msgstr "Eigentümer der Tabelle »%s« scheint ungültig zu sein" -#: pg_dump.c:6909 pg_dump.c:17389 +#: pg_dump.c:6939 pg_dump.c:17498 #, c-format msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found" msgstr "Sanity-Check fehlgeschlagen, Elterntabelle mit OID %u von Sequenz mit OID %u nicht gefunden" -#: pg_dump.c:7051 +#: pg_dump.c:7081 #, c-format msgid "reading indexes for table \"%s.%s\"" msgstr "lese Indexe von Tabelle »%s.%s«" -#: pg_dump.c:7466 +#: pg_dump.c:7496 #, c-format msgid "reading foreign key constraints for table \"%s.%s\"" msgstr "lese Fremdschlüssel-Constraints von Tabelle »%s.%s«" -#: pg_dump.c:7747 +#: pg_dump.c:7777 #, c-format msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found" msgstr "Sanity-Check fehlgeschlagen, Elterntabelle mit OID %u von pg_rewrite-Eintrag mit OID %u nicht gefunden" -#: pg_dump.c:7830 +#: pg_dump.c:7861 #, c-format msgid "reading triggers for table \"%s.%s\"" msgstr "lese Trigger von Tabelle »%s.%s«" -#: pg_dump.c:7963 +#: pg_dump.c:8043 #, c-format msgid "query produced null referenced table name for foreign key trigger \"%s\" on table \"%s\" (OID of table: %u)" msgstr "Anfrage ergab NULL als Name der Tabelle auf die sich Fremdschlüssel-Trigger »%s« von Tabelle »%s« bezieht (OID der Tabelle: %u)" -#: pg_dump.c:8518 +#: pg_dump.c:8598 #, c-format msgid "finding the columns and types of table \"%s.%s\"" msgstr "finde Spalten und Typen von Tabelle »%s.%s«" -#: pg_dump.c:8654 +#: pg_dump.c:8734 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "ungültige Spaltennummerierung in Tabelle »%s«" -#: pg_dump.c:8691 +#: pg_dump.c:8771 #, c-format msgid "finding default expressions of table \"%s.%s\"" msgstr "finde DEFAULT-Ausdrücke von Tabelle »%s.%s«" -#: pg_dump.c:8713 +#: pg_dump.c:8793 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "ungültiger adnum-Wert %d für Tabelle »%s«" -#: pg_dump.c:8778 +#: pg_dump.c:8885 #, c-format msgid "finding check constraints for table \"%s.%s\"" msgstr "finde Check-Constraints für Tabelle »%s.%s«" -#: pg_dump.c:8827 +#: pg_dump.c:8934 #, c-format msgid "expected %d check constraint on table \"%s\" but found %d" msgid_plural "expected %d check constraints on table \"%s\" but found %d" msgstr[0] "%d Check-Constraint für Tabelle %s erwartet, aber %d gefunden" msgstr[1] "%d Check-Constraints für Tabelle %s erwartet, aber %d gefunden" -#: pg_dump.c:8831 +#: pg_dump.c:8938 #, c-format msgid "(The system catalogs might be corrupted.)" msgstr "(Die Systemkataloge sind wahrscheinlich verfälscht.)" -#: pg_dump.c:10417 +#: pg_dump.c:10541 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "typtype des Datentypen »%s« scheint ungültig zu sein" -#: pg_dump.c:11771 +#: pg_dump.c:11891 #, c-format msgid "bogus value in proargmodes array" msgstr "unsinniger Wert in proargmodes-Array" -#: pg_dump.c:12143 +#: pg_dump.c:12258 #, c-format msgid "could not parse proallargtypes array" msgstr "konnte proallargtypes-Array nicht interpretieren" -#: pg_dump.c:12159 +#: pg_dump.c:12274 #, c-format msgid "could not parse proargmodes array" msgstr "konnte proargmodes-Array nicht interpretieren" -#: pg_dump.c:12173 +#: pg_dump.c:12288 #, c-format msgid "could not parse proargnames array" msgstr "konnte proargnames-Array nicht interpretieren" -#: pg_dump.c:12184 +#: pg_dump.c:12299 #, c-format msgid "could not parse proconfig array" msgstr "konnte proconfig-Array nicht interpretieren" -#: pg_dump.c:12264 +#: pg_dump.c:12375 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "ungültiger provolatile-Wert für Funktion »%s«" -#: pg_dump.c:12314 pg_dump.c:14372 +#: pg_dump.c:12425 pg_dump.c:14473 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "ungültiger proparallel-Wert für Funktion »%s«" -#: pg_dump.c:12453 pg_dump.c:12562 pg_dump.c:12569 +#: pg_dump.c:12564 pg_dump.c:12670 pg_dump.c:12677 #, c-format msgid "could not find function definition for function with OID %u" msgstr "konnte Funktionsdefinition für Funktion mit OID %u nicht finden" -#: pg_dump.c:12492 +#: pg_dump.c:12603 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "unsinniger Wert in Feld pg_cast.castfunc oder pg_cast.castmethod" -#: pg_dump.c:12495 +#: pg_dump.c:12606 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "unsinniger Wert in Feld pg_cast.castmethod" -#: pg_dump.c:12588 +#: pg_dump.c:12696 #, c-format msgid "bogus transform definition, at least one of trffromsql and trftosql should be nonzero" msgstr "unsinnige Transformationsdefinition, mindestens eins von trffromsql und trftosql sollte nicht null sein" -#: pg_dump.c:12605 +#: pg_dump.c:12713 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "unsinniger Wert in Feld pg_transform.trffromsql" -#: pg_dump.c:12626 +#: pg_dump.c:12734 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "unsinniger Wert in Feld pg_transform.trftosql" -#: pg_dump.c:12942 +#: pg_dump.c:13049 #, c-format msgid "could not find operator with OID %s" msgstr "konnte Operator mit OID %s nicht finden" -#: pg_dump.c:13010 +#: pg_dump.c:13117 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "ungültiger Typ »%c« für Zugriffsmethode »%s«" -#: pg_dump.c:13764 +#: pg_dump.c:13871 #, c-format msgid "unrecognized collation provider: %s" msgstr "unbekannter Sortierfolgen-Provider: %s" -#: pg_dump.c:14236 +#: pg_dump.c:14337 #, c-format msgid "aggregate function %s could not be dumped correctly for this database version; ignored" msgstr "Aggregatfunktion %s konnte für diese Datenbankversion nicht korrekt ausgegeben werden; ignoriert" -#: pg_dump.c:14291 +#: pg_dump.c:14392 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "unbekannter aggfinalmodify-Wert für Aggregat »%s«" -#: pg_dump.c:14347 +#: pg_dump.c:14448 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "unbekannter aggmfinalmodify-Wert für Aggregat »%s«" -#: pg_dump.c:15069 +#: pg_dump.c:15170 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "unbekannter Objekttyp in den Vorgabeprivilegien: %d" -#: pg_dump.c:15087 +#: pg_dump.c:15188 #, c-format msgid "could not parse default ACL list (%s)" msgstr "konnte Vorgabe-ACL-Liste (%s) nicht interpretieren" -#: pg_dump.c:15172 +#: pg_dump.c:15273 #, c-format msgid "could not parse initial GRANT ACL list (%s) or initial REVOKE ACL list (%s) for object \"%s\" (%s)" msgstr "konnte initiale GRANT-ACL-Liste (%s) oder initiale REVOKE-ACL-Liste (%s) für Objekt »%s« (%s) nicht interpretieren" -#: pg_dump.c:15180 +#: pg_dump.c:15281 #, c-format msgid "could not parse GRANT ACL list (%s) or REVOKE ACL list (%s) for object \"%s\" (%s)" msgstr "konnte GRANT-ACL-Liste (%s) oder REVOKE-ACL-Liste (%s) für Objekt »%s« (%s) nicht interpretieren" -#: pg_dump.c:15695 +#: pg_dump.c:15796 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "Anfrage um die Definition der Sicht »%s« zu ermitteln lieferte keine Daten" -#: pg_dump.c:15698 +#: pg_dump.c:15799 #, c-format msgid "query to obtain definition of view \"%s\" returned more than one definition" msgstr "Anfrage um die Definition der Sicht »%s« zu ermitteln lieferte mehr als eine Definition" -#: pg_dump.c:15705 +#: pg_dump.c:15806 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "Definition der Sicht »%s« scheint leer zu sein (Länge null)" -#: pg_dump.c:15789 +#: pg_dump.c:15890 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS wird nicht mehr unterstützt (Tabelle »%s«)" -#: pg_dump.c:16269 +#: pg_dump.c:16370 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "ungültige Anzahl Eltern %d für Tabelle »%s«" -#: pg_dump.c:16592 +#: pg_dump.c:16693 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "ungültige Spaltennummer %d in Tabelle »%s«" -#: pg_dump.c:16877 +#: pg_dump.c:16986 #, c-format msgid "missing index for constraint \"%s\"" msgstr "fehlender Index für Constraint »%s«" -#: pg_dump.c:17102 +#: pg_dump.c:17211 #, c-format msgid "unrecognized constraint type: %c" msgstr "unbekannter Constraint-Typ: %c" -#: pg_dump.c:17234 pg_dump.c:17454 +#: pg_dump.c:17343 pg_dump.c:17563 #, c-format msgid "query to get data of sequence \"%s\" returned %d row (expected 1)" msgid_plural "query to get data of sequence \"%s\" returned %d rows (expected 1)" msgstr[0] "Anfrage nach Daten der Sequenz %s ergab %d Zeile (erwartete 1)" msgstr[1] "Anfrage nach Daten der Sequenz %s ergab %d Zeilen (erwartete 1)" -#: pg_dump.c:17268 +#: pg_dump.c:17377 #, c-format msgid "unrecognized sequence type: %s" msgstr "unbekannter Sequenztyp: %s" -#: pg_dump.c:17552 +#: pg_dump.c:17661 #, c-format msgid "unexpected tgtype value: %d" msgstr "unerwarteter tgtype-Wert: %d" -#: pg_dump.c:17626 +#: pg_dump.c:17735 #, c-format msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" msgstr "fehlerhafte Argumentzeichenkette (%s) für Trigger »%s« von Tabelle »%s«" -#: pg_dump.c:17862 +#: pg_dump.c:18004 #, c-format msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned" msgstr "Anfrage nach Regel »%s« der Tabelle »%s« fehlgeschlagen: falsche Anzahl Zeilen zurückgegeben" -#: pg_dump.c:18024 +#: pg_dump.c:18166 #, c-format msgid "could not find referenced extension %u" msgstr "konnte referenzierte Erweiterung %u nicht finden" -#: pg_dump.c:18236 +#: pg_dump.c:18378 #, c-format msgid "reading dependency data" msgstr "lese Abhängigkeitsdaten" -#: pg_dump.c:18329 +#: pg_dump.c:18471 #, c-format msgid "no referencing object %u %u" msgstr "kein referenzierendes Objekt %u %u" -#: pg_dump.c:18340 +#: pg_dump.c:18482 #, c-format msgid "no referenced object %u %u" msgstr "kein referenziertes Objekt %u %u" -#: pg_dump.c:18713 +#: pg_dump.c:18870 #, c-format msgid "could not parse reloptions array" msgstr "konnte reloptions-Array nicht interpretieren" -#: pg_dump_sort.c:360 +#: pg_dump_sort.c:369 #, c-format msgid "invalid dumpId %d" msgstr "ungültige dumpId %d" -#: pg_dump_sort.c:366 +#: pg_dump_sort.c:375 #, c-format msgid "invalid dependency %d" msgstr "ungültige Abhängigkeit %d" -#: pg_dump_sort.c:599 +#: pg_dump_sort.c:608 #, c-format msgid "could not identify dependency loop" msgstr "konnte Abhängigkeitsschleife nicht bestimmen" -#: pg_dump_sort.c:1170 +#: pg_dump_sort.c:1179 #, c-format msgid "there are circular foreign-key constraints on this table:" msgid_plural "there are circular foreign-key constraints among these tables:" msgstr[0] "Es gibt zirkuläre Fremdschlüssel-Constraints für diese Tabelle:" msgstr[1] "Es gibt zirkuläre Fremdschlüssel-Constraints zwischen diesen Tabellen:" -#: pg_dump_sort.c:1174 pg_dump_sort.c:1194 +#: pg_dump_sort.c:1183 pg_dump_sort.c:1203 #, c-format msgid " %s" msgstr " %s" -#: pg_dump_sort.c:1175 +#: pg_dump_sort.c:1184 #, c-format msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints." msgstr "Möglicherweise kann der Dump nur wiederhergestellt werden, wenn --disable-triggers verwendet wird oder die Constraints vorübergehend entfernt werden." -#: pg_dump_sort.c:1176 +#: pg_dump_sort.c:1185 #, c-format msgid "Consider using a full dump instead of a --data-only dump to avoid this problem." msgstr "Führen Sie einen vollen Dump statt eines Dumps mit --data-only durch, um dieses Problem zu vermeiden." -#: pg_dump_sort.c:1188 +#: pg_dump_sort.c:1197 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "konnte Abhängigkeitsschleife zwischen diesen Elementen nicht auflösen:" diff -Nru postgresql-13-13.4/src/bin/pg_dump/po/fr.po postgresql-13-13.7/src/bin/pg_dump/po/fr.po --- postgresql-13-13.4/src/bin/pg_dump/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 12\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-11-02 14:46+0000\n" -"PO-Revision-Date: 2020-11-02 16:18+0100\n" +"POT-Creation-Date: 2021-12-30 05:01+0000\n" +"PO-Revision-Date: 2021-12-30 17:12+0100\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: PostgreSQLfr \n" "Language: fr\n" @@ -18,7 +18,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0.1\n" #: ../../../src/common/logging.c:236 #, c-format @@ -115,212 +115,212 @@ msgid "child process exited with unrecognized status %d" msgstr "le processus fils a quitté avec un statut %d non reconnu" -#: common.c:121 +#: common.c:124 #, c-format msgid "reading extensions" msgstr "lecture des extensions" -#: common.c:125 +#: common.c:128 #, c-format msgid "identifying extension members" msgstr "identification des membres d'extension" -#: common.c:128 +#: common.c:131 #, c-format msgid "reading schemas" msgstr "lecture des schémas" -#: common.c:138 +#: common.c:141 #, c-format msgid "reading user-defined tables" msgstr "lecture des tables utilisateur" -#: common.c:145 +#: common.c:148 #, c-format msgid "reading user-defined functions" msgstr "lecture des fonctions utilisateur" -#: common.c:150 +#: common.c:153 #, c-format msgid "reading user-defined types" msgstr "lecture des types utilisateur" -#: common.c:155 +#: common.c:158 #, c-format msgid "reading procedural languages" msgstr "lecture des langages procéduraux" -#: common.c:158 +#: common.c:161 #, c-format msgid "reading user-defined aggregate functions" msgstr "lecture des fonctions d'agrégats utilisateur" -#: common.c:161 +#: common.c:164 #, c-format msgid "reading user-defined operators" msgstr "lecture des opérateurs utilisateur" -#: common.c:165 +#: common.c:168 #, c-format msgid "reading user-defined access methods" msgstr "lecture des méthodes d'accès définis par les utilisateurs" -#: common.c:168 +#: common.c:171 #, c-format msgid "reading user-defined operator classes" msgstr "lecture des classes d'opérateurs utilisateur" -#: common.c:171 +#: common.c:174 #, c-format msgid "reading user-defined operator families" msgstr "lecture des familles d'opérateurs utilisateur" -#: common.c:174 +#: common.c:177 #, c-format msgid "reading user-defined text search parsers" msgstr "lecture des analyseurs utilisateur pour la recherche plein texte" -#: common.c:177 +#: common.c:180 #, c-format msgid "reading user-defined text search templates" msgstr "lecture des modèles utilisateur pour la recherche plein texte" -#: common.c:180 +#: common.c:183 #, c-format msgid "reading user-defined text search dictionaries" msgstr "lecture des dictionnaires utilisateur pour la recherche plein texte" -#: common.c:183 +#: common.c:186 #, c-format msgid "reading user-defined text search configurations" msgstr "lecture des configurations utilisateur pour la recherche plein texte" -#: common.c:186 +#: common.c:189 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "lecture des wrappers de données distantes utilisateur" -#: common.c:189 +#: common.c:192 #, c-format msgid "reading user-defined foreign servers" msgstr "lecture des serveurs distants utilisateur" -#: common.c:192 +#: common.c:195 #, c-format msgid "reading default privileges" msgstr "lecture des droits par défaut" -#: common.c:195 +#: common.c:198 #, c-format msgid "reading user-defined collations" msgstr "lecture des collationnements utilisateurs" -#: common.c:199 +#: common.c:202 #, c-format msgid "reading user-defined conversions" msgstr "lecture des conversions utilisateur" -#: common.c:202 +#: common.c:205 #, c-format msgid "reading type casts" msgstr "lecture des conversions de type" -#: common.c:205 +#: common.c:208 #, c-format msgid "reading transforms" msgstr "lecture des transformations" -#: common.c:208 +#: common.c:211 #, c-format msgid "reading table inheritance information" msgstr "lecture des informations d'héritage des tables" -#: common.c:211 +#: common.c:214 #, c-format msgid "reading event triggers" msgstr "lecture des triggers sur évènement" -#: common.c:215 +#: common.c:218 #, c-format msgid "finding extension tables" msgstr "recherche des tables d'extension" -#: common.c:219 +#: common.c:222 #, c-format msgid "finding inheritance relationships" msgstr "recherche des relations d'héritage" -#: common.c:222 +#: common.c:225 #, c-format msgid "reading column info for interesting tables" msgstr "lecture des informations de colonnes des tables intéressantes" -#: common.c:225 +#: common.c:228 #, c-format msgid "flagging inherited columns in subtables" msgstr "marquage des colonnes héritées dans les sous-tables" -#: common.c:228 +#: common.c:231 #, c-format msgid "reading indexes" msgstr "lecture des index" -#: common.c:231 +#: common.c:234 #, c-format msgid "flagging indexes in partitioned tables" msgstr "décrit les index des tables partitionnées" -#: common.c:234 +#: common.c:237 #, c-format msgid "reading extended statistics" msgstr "lecture des statistiques étendues" -#: common.c:237 +#: common.c:240 #, c-format msgid "reading constraints" msgstr "lecture des contraintes" -#: common.c:240 +#: common.c:243 #, c-format msgid "reading triggers" msgstr "lecture des triggers" -#: common.c:243 +#: common.c:246 #, c-format msgid "reading rewrite rules" msgstr "lecture des règles de réécriture" -#: common.c:246 +#: common.c:249 #, c-format msgid "reading policies" msgstr "lecture des politiques" -#: common.c:249 +#: common.c:252 #, c-format msgid "reading publications" msgstr "lecture des publications" -#: common.c:252 +#: common.c:257 #, c-format msgid "reading publication membership" msgstr "lecture des appartenances aux publications" -#: common.c:255 +#: common.c:260 #, c-format msgid "reading subscriptions" msgstr "lecture des souscriptions" -#: common.c:1025 +#: common.c:1060 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "vérification échouée, OID %u parent de la table « %s » (OID %u) introuvable" -#: common.c:1067 +#: common.c:1102 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "n'a pas pu analyser le tableau numérique « %s » : trop de nombres" -#: common.c:1082 +#: common.c:1117 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "n'a pas pu analyser le tableau numérique « %s » : caractère invalide dans le nombre" @@ -361,13 +361,13 @@ msgid "could not close compression library: %s" msgstr "n'a pas pu fermer la bibliothèque de compression : %s" -#: compress_io.c:584 compress_io.c:621 pg_backup_tar.c:557 pg_backup_tar.c:560 +#: compress_io.c:584 compress_io.c:621 pg_backup_tar.c:554 pg_backup_tar.c:557 #, c-format msgid "could not read from input file: %s" msgstr "n'a pas pu lire à partir du fichier en entrée : %s" -#: compress_io.c:623 pg_backup_custom.c:646 pg_backup_directory.c:552 -#: pg_backup_tar.c:793 pg_backup_tar.c:816 +#: compress_io.c:623 pg_backup_custom.c:646 pg_backup_directory.c:553 +#: pg_backup_tar.c:790 pg_backup_tar.c:813 #, c-format msgid "could not read from input file: end of file" msgstr "n'a pas pu lire à partir du fichier en entrée : fin du fichier" @@ -456,430 +456,430 @@ msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: n'a pas pu accepter de connexion: code d'erreur %d" -#: pg_backup_archiver.c:277 pg_backup_archiver.c:1587 +#: pg_backup_archiver.c:278 pg_backup_archiver.c:1589 #, c-format msgid "could not close output file: %m" msgstr "n'a pas pu fermer le fichier en sortie : %m" -#: pg_backup_archiver.c:321 pg_backup_archiver.c:325 +#: pg_backup_archiver.c:322 pg_backup_archiver.c:326 #, c-format msgid "archive items not in correct section order" msgstr "les éléments de l'archive ne sont pas dans l'ordre correct de la section" -#: pg_backup_archiver.c:331 +#: pg_backup_archiver.c:332 #, c-format msgid "unexpected section code %d" msgstr "code de section inattendu %d" -#: pg_backup_archiver.c:368 +#: pg_backup_archiver.c:369 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "la restauration parallélisée n'est pas supportée avec ce format de fichier d'archive" -#: pg_backup_archiver.c:372 +#: pg_backup_archiver.c:373 #, c-format msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump" msgstr "la restauration parallélisée n'est pas supportée avec les archives réalisées par un pg_dump antérieur à la 8.0" -#: pg_backup_archiver.c:390 +#: pg_backup_archiver.c:391 #, c-format msgid "cannot restore from compressed archive (compression not supported in this installation)" msgstr "ne peut pas restaurer à partir de l'archive compressée (compression indisponible dans cette installation)" -#: pg_backup_archiver.c:407 +#: pg_backup_archiver.c:408 #, c-format msgid "connecting to database for restore" msgstr "connexion à la base de données pour la restauration" -#: pg_backup_archiver.c:409 +#: pg_backup_archiver.c:410 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "les connexions directes à la base de données ne sont pas supportées dans les archives pre-1.3" -#: pg_backup_archiver.c:452 +#: pg_backup_archiver.c:453 #, c-format msgid "implied data-only restore" msgstr "a impliqué une restauration des données uniquement" -#: pg_backup_archiver.c:518 +#: pg_backup_archiver.c:519 #, c-format msgid "dropping %s %s" msgstr "suppression de %s %s" -#: pg_backup_archiver.c:613 +#: pg_backup_archiver.c:614 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "n'a pas pu trouver où insérer IF EXISTS dans l'instruction « %s »" -#: pg_backup_archiver.c:769 pg_backup_archiver.c:771 +#: pg_backup_archiver.c:770 pg_backup_archiver.c:772 #, c-format msgid "warning from original dump file: %s" msgstr "message d'avertissement du fichier de sauvegarde original : %s" -#: pg_backup_archiver.c:786 +#: pg_backup_archiver.c:787 #, c-format msgid "creating %s \"%s.%s\"" msgstr "création de %s « %s.%s »" -#: pg_backup_archiver.c:789 +#: pg_backup_archiver.c:790 #, c-format msgid "creating %s \"%s\"" msgstr "création de %s « %s »" -#: pg_backup_archiver.c:839 +#: pg_backup_archiver.c:840 #, c-format msgid "connecting to new database \"%s\"" msgstr "connexion à la nouvelle base de données « %s »" -#: pg_backup_archiver.c:866 +#: pg_backup_archiver.c:867 #, c-format msgid "processing %s" msgstr "traitement de %s" -#: pg_backup_archiver.c:886 +#: pg_backup_archiver.c:887 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "traitement des données de la table « %s.%s »" -#: pg_backup_archiver.c:948 +#: pg_backup_archiver.c:949 #, c-format msgid "executing %s %s" msgstr "exécution de %s %s" -#: pg_backup_archiver.c:987 +#: pg_backup_archiver.c:988 #, c-format msgid "disabling triggers for %s" msgstr "désactivation des triggers pour %s" -#: pg_backup_archiver.c:1013 +#: pg_backup_archiver.c:1014 #, c-format msgid "enabling triggers for %s" msgstr "activation des triggers pour %s" -#: pg_backup_archiver.c:1041 +#: pg_backup_archiver.c:1042 #, c-format msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine" msgstr "erreur interne -- WriteData ne peut pas être appelé en dehors du contexte de la routine DataDumper" -#: pg_backup_archiver.c:1224 +#: pg_backup_archiver.c:1225 #, c-format msgid "large-object output not supported in chosen format" msgstr "la sauvegarde des « Large Objects » n'est pas supportée dans le format choisi" -#: pg_backup_archiver.c:1282 +#: pg_backup_archiver.c:1283 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" msgstr[0] "restauration de %d « Large Object »" msgstr[1] "restauration de %d « Large Objects »" -#: pg_backup_archiver.c:1303 pg_backup_tar.c:736 +#: pg_backup_archiver.c:1304 pg_backup_tar.c:733 #, c-format msgid "restoring large object with OID %u" msgstr "restauration du « Large Object » d'OID %u" -#: pg_backup_archiver.c:1315 +#: pg_backup_archiver.c:1316 #, c-format msgid "could not create large object %u: %s" msgstr "n'a pas pu créer le « Large Object » %u : %s" -#: pg_backup_archiver.c:1320 pg_dump.c:3555 +#: pg_backup_archiver.c:1321 pg_dump.c:3587 #, c-format msgid "could not open large object %u: %s" msgstr "n'a pas pu ouvrir le « Large Object » %u : %s" -#: pg_backup_archiver.c:1377 +#: pg_backup_archiver.c:1378 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier TOC « %s » : %m" -#: pg_backup_archiver.c:1417 +#: pg_backup_archiver.c:1418 #, c-format msgid "line ignored: %s" msgstr "ligne ignorée : %s" -#: pg_backup_archiver.c:1424 +#: pg_backup_archiver.c:1425 #, c-format msgid "could not find entry for ID %d" msgstr "n'a pas pu trouver l'entrée pour l'ID %d" -#: pg_backup_archiver.c:1445 pg_backup_directory.c:222 -#: pg_backup_directory.c:598 +#: pg_backup_archiver.c:1446 pg_backup_directory.c:222 +#: pg_backup_directory.c:599 #, c-format msgid "could not close TOC file: %m" msgstr "n'a pas pu fermer le fichier TOC : %m" -#: pg_backup_archiver.c:1559 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:585 pg_backup_directory.c:648 -#: pg_backup_directory.c:667 pg_dumpall.c:484 +#: pg_backup_archiver.c:1560 pg_backup_custom.c:156 pg_backup_directory.c:332 +#: pg_backup_directory.c:586 pg_backup_directory.c:649 +#: pg_backup_directory.c:668 pg_dumpall.c:484 #, c-format msgid "could not open output file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier de sauvegarde « %s » : %m" -#: pg_backup_archiver.c:1561 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1562 pg_backup_custom.c:162 #, c-format msgid "could not open output file: %m" msgstr "n'a pas pu ouvrir le fichier de sauvegarde : %m" -#: pg_backup_archiver.c:1654 +#: pg_backup_archiver.c:1656 #, c-format msgid "wrote %lu byte of large object data (result = %lu)" msgid_plural "wrote %lu bytes of large object data (result = %lu)" msgstr[0] "a écrit %lu octet de données d'un « Large Object » (résultat = %lu)" msgstr[1] "a écrit %lu octets de données d'un « Large Object » (résultat = %lu)" -#: pg_backup_archiver.c:1659 +#: pg_backup_archiver.c:1661 #, c-format msgid "could not write to large object (result: %lu, expected: %lu)" msgstr "n'a pas pu écrire le « Large Object » (résultat : %lu, attendu : %lu)" -#: pg_backup_archiver.c:1749 +#: pg_backup_archiver.c:1751 #, c-format msgid "while INITIALIZING:" msgstr "pendant l'initialisation (« INITIALIZING ») :" -#: pg_backup_archiver.c:1754 +#: pg_backup_archiver.c:1756 #, c-format msgid "while PROCESSING TOC:" msgstr "pendant le traitement de la TOC (« PROCESSING TOC ») :" -#: pg_backup_archiver.c:1759 +#: pg_backup_archiver.c:1761 #, c-format msgid "while FINALIZING:" msgstr "pendant la finalisation (« FINALIZING ») :" -#: pg_backup_archiver.c:1764 +#: pg_backup_archiver.c:1766 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "de l'entrée TOC %d ; %u %u %s %s %s" -#: pg_backup_archiver.c:1840 +#: pg_backup_archiver.c:1842 #, c-format msgid "bad dumpId" msgstr "mauvais dumpId" -#: pg_backup_archiver.c:1861 +#: pg_backup_archiver.c:1863 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "mauvais dumpId de table pour l'élément TABLE DATA" -#: pg_backup_archiver.c:1953 +#: pg_backup_archiver.c:1955 #, c-format msgid "unexpected data offset flag %d" msgstr "drapeau de décalage de données inattendu %d" -#: pg_backup_archiver.c:1966 +#: pg_backup_archiver.c:1968 #, c-format msgid "file offset in dump file is too large" msgstr "le décalage dans le fichier de sauvegarde est trop important" -#: pg_backup_archiver.c:2103 pg_backup_archiver.c:2113 +#: pg_backup_archiver.c:2106 pg_backup_archiver.c:2116 #, c-format msgid "directory name too long: \"%s\"" msgstr "nom du répertoire trop long : « %s »" -#: pg_backup_archiver.c:2121 +#: pg_backup_archiver.c:2124 #, c-format msgid "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not exist)" msgstr "le répertoire « %s » ne semble pas être une archive valide (« toc.dat » n'existe pas)" -#: pg_backup_archiver.c:2129 pg_backup_custom.c:173 pg_backup_custom.c:812 -#: pg_backup_directory.c:207 pg_backup_directory.c:394 +#: pg_backup_archiver.c:2132 pg_backup_custom.c:173 pg_backup_custom.c:812 +#: pg_backup_directory.c:207 pg_backup_directory.c:395 #, c-format msgid "could not open input file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier en entrée « %s » : %m" -#: pg_backup_archiver.c:2136 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2139 pg_backup_custom.c:179 #, c-format msgid "could not open input file: %m" msgstr "n'a pas pu ouvrir le fichier en entrée : %m" -#: pg_backup_archiver.c:2142 +#: pg_backup_archiver.c:2145 #, c-format msgid "could not read input file: %m" msgstr "n'a pas pu lire le fichier en entrée : %m" -#: pg_backup_archiver.c:2144 +#: pg_backup_archiver.c:2147 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "le fichier en entrée est trop petit (%lu lus, 5 attendus)" -#: pg_backup_archiver.c:2229 +#: pg_backup_archiver.c:2179 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "Le fichier en entrée semble être une sauvegarde au format texte. Merci d'utiliser psql." -#: pg_backup_archiver.c:2235 +#: pg_backup_archiver.c:2185 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "le fichier en entrée ne semble pas être une archive valide (trop petit ?)" -#: pg_backup_archiver.c:2241 +#: pg_backup_archiver.c:2191 #, c-format msgid "input file does not appear to be a valid archive" msgstr "le fichier en entrée ne semble pas être une archive valide" -#: pg_backup_archiver.c:2261 +#: pg_backup_archiver.c:2200 #, c-format msgid "could not close input file: %m" msgstr "n'a pas pu fermer le fichier en entrée : %m" -#: pg_backup_archiver.c:2373 +#: pg_backup_archiver.c:2316 #, c-format msgid "unrecognized file format \"%d\"" msgstr "format de fichier « %d » non reconnu" -#: pg_backup_archiver.c:2455 pg_backup_archiver.c:4458 +#: pg_backup_archiver.c:2398 pg_backup_archiver.c:4422 #, c-format msgid "finished item %d %s %s" msgstr "élément terminé %d %s %s" -#: pg_backup_archiver.c:2459 pg_backup_archiver.c:4471 +#: pg_backup_archiver.c:2402 pg_backup_archiver.c:4435 #, c-format msgid "worker process failed: exit code %d" msgstr "échec du processus worker : code de sortie %d" -#: pg_backup_archiver.c:2579 +#: pg_backup_archiver.c:2522 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "ID %d de l'entrée en dehors de la plage -- peut-être un TOC corrompu" -#: pg_backup_archiver.c:2646 +#: pg_backup_archiver.c:2589 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "la restauration des tables avec WITH OIDS n'est plus supportée" -#: pg_backup_archiver.c:2728 +#: pg_backup_archiver.c:2671 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "encodage « %s » non reconnu" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2676 #, c-format msgid "invalid ENCODING item: %s" msgstr "élément ENCODING invalide : %s" -#: pg_backup_archiver.c:2751 +#: pg_backup_archiver.c:2694 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "élément STDSTRINGS invalide : %s" -#: pg_backup_archiver.c:2776 +#: pg_backup_archiver.c:2719 #, c-format msgid "schema \"%s\" not found" msgstr "schéma « %s » non trouvé" -#: pg_backup_archiver.c:2783 +#: pg_backup_archiver.c:2726 #, c-format msgid "table \"%s\" not found" msgstr "table « %s » non trouvée" -#: pg_backup_archiver.c:2790 +#: pg_backup_archiver.c:2733 #, c-format msgid "index \"%s\" not found" msgstr "index « %s » non trouvé" -#: pg_backup_archiver.c:2797 +#: pg_backup_archiver.c:2740 #, c-format msgid "function \"%s\" not found" msgstr "fonction « %s » non trouvée" -#: pg_backup_archiver.c:2804 +#: pg_backup_archiver.c:2747 #, c-format msgid "trigger \"%s\" not found" msgstr "trigger « %s » non trouvé" -#: pg_backup_archiver.c:3196 +#: pg_backup_archiver.c:3139 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "n'a pas pu initialiser la session utilisateur à « %s »: %s" -#: pg_backup_archiver.c:3328 +#: pg_backup_archiver.c:3271 #, c-format msgid "could not set search_path to \"%s\": %s" msgstr "n'a pas pu configurer search_path à « %s » : %s" -#: pg_backup_archiver.c:3390 +#: pg_backup_archiver.c:3333 #, c-format msgid "could not set default_tablespace to %s: %s" msgstr "n'a pas pu configurer default_tablespace à %s : %s" -#: pg_backup_archiver.c:3435 +#: pg_backup_archiver.c:3378 #, c-format msgid "could not set default_table_access_method: %s" msgstr "n'a pas pu configurer la méthode default_table_access_method à %s" -#: pg_backup_archiver.c:3527 pg_backup_archiver.c:3685 +#: pg_backup_archiver.c:3470 pg_backup_archiver.c:3628 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "ne sait pas comment initialiser le propriétaire du type d'objet « %s »" -#: pg_backup_archiver.c:3789 +#: pg_backup_archiver.c:3731 #, c-format msgid "did not find magic string in file header" msgstr "n'a pas trouver la chaîne magique dans le fichier d'en-tête" -#: pg_backup_archiver.c:3802 +#: pg_backup_archiver.c:3745 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "version non supportée (%d.%d) dans le fichier d'en-tête" -#: pg_backup_archiver.c:3807 +#: pg_backup_archiver.c:3750 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "échec de la vérification sur la taille de l'entier (%lu)" -#: pg_backup_archiver.c:3811 +#: pg_backup_archiver.c:3754 #, c-format msgid "archive was made on a machine with larger integers, some operations might fail" msgstr "l'archive a été créée sur une machine disposant d'entiers plus larges, certaines opérations peuvent échouer" -#: pg_backup_archiver.c:3821 +#: pg_backup_archiver.c:3764 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "le format attendu (%d) diffère du format du fichier (%d)" -#: pg_backup_archiver.c:3837 +#: pg_backup_archiver.c:3779 #, c-format msgid "archive is compressed, but this installation does not support compression -- no data will be available" msgstr "l'archive est compressée mais cette installation ne supporte pas la compression -- aucune donnée ne sera disponible" -#: pg_backup_archiver.c:3855 +#: pg_backup_archiver.c:3813 #, c-format msgid "invalid creation date in header" msgstr "date de création invalide dans l'en-tête" -#: pg_backup_archiver.c:3983 +#: pg_backup_archiver.c:3947 #, c-format msgid "processing item %d %s %s" msgstr "traitement de l'élément %d %s %s" -#: pg_backup_archiver.c:4062 +#: pg_backup_archiver.c:4026 #, c-format msgid "entering main parallel loop" msgstr "entrée dans la boucle parallèle principale" -#: pg_backup_archiver.c:4073 +#: pg_backup_archiver.c:4037 #, c-format msgid "skipping item %d %s %s" msgstr "omission de l'élément %d %s %s" -#: pg_backup_archiver.c:4082 +#: pg_backup_archiver.c:4046 #, c-format msgid "launching item %d %s %s" msgstr "lancement de l'élément %d %s %s" -#: pg_backup_archiver.c:4136 +#: pg_backup_archiver.c:4100 #, c-format msgid "finished main parallel loop" msgstr "fin de la boucle parallèle principale" -#: pg_backup_archiver.c:4172 +#: pg_backup_archiver.c:4136 #, c-format msgid "processing missed item %d %s %s" msgstr "traitement de l'élément manquant %d %s %s" -#: pg_backup_archiver.c:4777 +#: pg_backup_archiver.c:4741 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "la table « %s » n'a pas pu être créée, ses données ne seront pas restaurées" @@ -890,7 +890,7 @@ msgstr "OID invalide pour le « Large Object »" #: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:632 -#: pg_backup_custom.c:870 pg_backup_tar.c:1086 pg_backup_tar.c:1091 +#: pg_backup_custom.c:870 pg_backup_tar.c:1083 pg_backup_tar.c:1088 #, c-format msgid "error during file seek: %m" msgstr "erreur lors de la recherche dans le fichier : %m" @@ -935,7 +935,7 @@ msgstr "n'a pas pu lire à partir du fichier en entrée : %m" #: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:948 -#: pg_backup_tar.c:1089 +#: pg_backup_tar.c:1086 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "n'a pas pu déterminer la position de recherche dans le fichier d'archive : %m" @@ -1055,21 +1055,16 @@ msgid "COPY failed for table \"%s\": %s" msgstr "COPY échoué pour la table « %s » : %s" -#: pg_backup_db.c:528 pg_dump.c:1991 +#: pg_backup_db.c:528 pg_dump.c:1988 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "résultats supplémentaires non attendus durant l'exécution de COPY sur la table « %s »" -#: pg_backup_db.c:588 -#, c-format -msgid "LOCK TABLE failed for \"%s\": %s" -msgstr "LOCK TABLE échoué pour la table « %s » : %s" - -#: pg_backup_db.c:606 +#: pg_backup_db.c:540 msgid "could not start database transaction" msgstr "n'a pas pu démarrer la transaction de la base de données" -#: pg_backup_db.c:614 +#: pg_backup_db.c:548 msgid "could not commit database transaction" msgstr "n'a pas pu valider la transaction de la base de données" @@ -1093,43 +1088,58 @@ msgid "could not create directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » : %m" -#: pg_backup_directory.c:355 pg_backup_directory.c:496 -#: pg_backup_directory.c:532 +#: pg_backup_directory.c:355 pg_backup_directory.c:497 +#: pg_backup_directory.c:533 #, c-format msgid "could not write to output file: %s" msgstr "n'a pas pu écrire dans le fichier en sortie : %s" -#: pg_backup_directory.c:406 +#: pg_backup_directory.c:373 +#, c-format +msgid "could not close data file: %m" +msgstr "n'a pas pu fermer le fichier de données : %m" + +#: pg_backup_directory.c:407 #, c-format msgid "could not close data file \"%s\": %m" msgstr "n'a pas pu fermer le fichier de données « %s » : %m" -#: pg_backup_directory.c:446 +#: pg_backup_directory.c:447 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "n'a pas pu ouvrir le fichier TOC « %s » du Large Object en entrée : %m" -#: pg_backup_directory.c:457 +#: pg_backup_directory.c:458 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "ligne invalide dans le fichier TOC du Large Object « %s » : « %s »" -#: pg_backup_directory.c:466 +#: pg_backup_directory.c:467 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "erreur lors de la lecture du TOC du fichier Large Object « %s »" -#: pg_backup_directory.c:470 +#: pg_backup_directory.c:471 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "n'a pas pu fermer le TOC du Large Object « %s » : %m" -#: pg_backup_directory.c:689 +#: pg_backup_directory.c:685 +#, c-format +msgid "could not close blob data file: %m" +msgstr "n'a pas pu fermer le fichier de données blob : %m" + +#: pg_backup_directory.c:691 #, c-format msgid "could not write to blobs TOC file" msgstr "n'a pas pu écrire dans le fichier TOC des Large Objects" -#: pg_backup_directory.c:721 +#: pg_backup_directory.c:705 +#, c-format +msgid "could not close blobs TOC file: %m" +msgstr "n'a pas pu fermer le fichier TOC des blobs : %m" + +#: pg_backup_directory.c:724 #, c-format msgid "file name too long: \"%s\"" msgstr "nom du fichier trop long : « %s »" @@ -1149,7 +1159,7 @@ msgid "could not open TOC file for output: %m" msgstr "n'a pas pu ouvrir le fichier TOC en sortie : %m" -#: pg_backup_tar.c:203 pg_backup_tar.c:358 +#: pg_backup_tar.c:203 pg_backup_tar.c:352 #, c-format msgid "compression is not supported by tar archive format" msgstr "compression non supportée par le format des archives tar" @@ -1164,64 +1174,64 @@ msgid "could not open TOC file for input: %m" msgstr "n'a pas pu ouvrir le fichier TOC en entrée : %m" -#: pg_backup_tar.c:344 +#: pg_backup_tar.c:338 #, c-format msgid "could not find file \"%s\" in archive" msgstr "n'a pas pu trouver le fichier « %s » dans l'archive" -#: pg_backup_tar.c:410 +#: pg_backup_tar.c:404 #, c-format msgid "could not generate temporary file name: %m" msgstr "impossible de créer le nom du fichier temporaire : %m" -#: pg_backup_tar.c:421 +#: pg_backup_tar.c:415 #, c-format msgid "could not open temporary file" msgstr "n'a pas pu ouvrir le fichier temporaire" -#: pg_backup_tar.c:448 +#: pg_backup_tar.c:444 #, c-format -msgid "could not close tar member" -msgstr "n'a pas pu fermer le membre de tar" +msgid "could not close tar member: %m" +msgstr "n'a pas pu fermer le membre de tar : %m" -#: pg_backup_tar.c:691 +#: pg_backup_tar.c:688 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "syntaxe inattendue de l'instruction COPY : « %s »" -#: pg_backup_tar.c:958 +#: pg_backup_tar.c:955 #, c-format msgid "invalid OID for large object (%u)" msgstr "OID invalide pour le « Large Object » (%u)" -#: pg_backup_tar.c:1105 +#: pg_backup_tar.c:1102 #, c-format msgid "could not close temporary file: %m" msgstr "n'a pas pu fermer le fichier temporaire : m" -#: pg_backup_tar.c:1114 +#: pg_backup_tar.c:1111 #, c-format msgid "actual file length (%s) does not match expected (%s)" msgstr "la longueur réelle du fichier (%s) ne correspond pas à ce qui était attendu (%s)" -#: pg_backup_tar.c:1171 pg_backup_tar.c:1201 +#: pg_backup_tar.c:1168 pg_backup_tar.c:1198 #, c-format msgid "could not find header for file \"%s\" in tar archive" msgstr "n'a pas pu trouver l'en-tête du fichier « %s » dans l'archive tar" -#: pg_backup_tar.c:1189 +#: pg_backup_tar.c:1186 #, c-format msgid "restoring data out of order is not supported in this archive format: \"%s\" is required, but comes before \"%s\" in the archive file." msgstr "la restauration désordonnée de données n'est pas supportée avec ce format d'archive : « %s » est requis mais vient avant « %s » dans le fichier d'archive." -#: pg_backup_tar.c:1234 +#: pg_backup_tar.c:1231 #, c-format msgid "incomplete tar header found (%lu byte)" msgid_plural "incomplete tar header found (%lu bytes)" msgstr[0] "en-tête incomplet du fichier tar (%lu octet)" msgstr[1] "en-tête incomplet du fichier tar (%lu octets)" -#: pg_backup_tar.c:1285 +#: pg_backup_tar.c:1282 #, c-format msgid "corrupt tar header found in %s (expected %d, computed %d) file position %s" msgstr "en-tête tar corrompu trouvé dans %s (%d attendu, %d calculé ) à la position %s du fichier" @@ -1372,7 +1382,7 @@ #: pg_dump.c:995 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" -msgstr " -f, --file=NOMFICHIER nom du fichier ou du répertoire en sortie\n" +msgstr " -f, --file=FICHIER nom du fichier ou du répertoire en sortie\n" #: pg_dump.c:996 #, c-format @@ -1387,8 +1397,8 @@ #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr "" -" -j, --jobs=NUMERO utilise ce nombre de jobs en parallèle pour\n" -" la sauvegarde\n" +" -j, --jobs=NOMBRE utilise ce nombre de jobs en parallèle pour la\n" +" sauvegarde\n" #: pg_dump.c:999 pg_dumpall.c:622 #, c-format @@ -1398,7 +1408,7 @@ #: pg_dump.c:1000 pg_dumpall.c:623 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: pg_dump.c:1001 #, c-format @@ -1411,18 +1421,20 @@ #, c-format msgid " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" msgstr "" -" --lock-wait-timeout=DÉLAI échec après l'attente du DÉLAI pour un verrou\n" -" de table\n" +" --lock-wait-timeout=DÉLAI échec après l'attente du DÉLAI pour un verrou de\n" +" table\n" #: pg_dump.c:1003 pg_dumpall.c:651 #, c-format msgid " --no-sync do not wait for changes to be written safely to disk\n" -msgstr " --no-sync n'attend pas que les modifications soient proprement écrites sur disque\n" +msgstr "" +" --no-sync n'attend pas que les modifications soient\n" +" proprement écrites sur disque\n" #: pg_dump.c:1004 pg_dumpall.c:625 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" #: pg_dump.c:1006 pg_dumpall.c:626 #, c-format @@ -1436,44 +1448,36 @@ #: pg_dump.c:1007 pg_dumpall.c:627 #, c-format msgid " -a, --data-only dump only the data, not the schema\n" -msgstr "" -" -a, --data-only sauvegarde uniquement les données, pas le\n" -" schéma\n" +msgstr " -a, --data-only sauvegarde uniquement les données, pas le schéma\n" #: pg_dump.c:1008 #, c-format msgid " -b, --blobs include large objects in dump\n" -msgstr "" -" -b, --blobs inclut les « Large Objects » dans la\n" -" sauvegarde\n" +msgstr " -b, --blobs inclut les « Large Objects » dans la sauvegarde\n" #: pg_dump.c:1009 #, c-format msgid " -B, --no-blobs exclude large objects in dump\n" -msgstr "" -" -B, --no-blobs exclut les « Large Objects » dans la\n" -" sauvegarde\n" +msgstr " -B, --no-blobs exclut les « Large Objects » de la sauvegarde\n" #: pg_dump.c:1010 pg_restore.c:476 #, c-format msgid " -c, --clean clean (drop) database objects before recreating\n" msgstr "" -" -c, --clean nettoie/supprime les objets de la base de\n" -" données avant de les créer\n" +" -c, --clean nettoie/supprime les objets de la base de données\n" +" avant de les créer\n" #: pg_dump.c:1011 #, c-format msgid " -C, --create include commands to create database in dump\n" msgstr "" -" -C, --create inclut les commandes de création de la base\n" -" dans la sauvegarde\n" +" -C, --create inclut les commandes de création de la base dans\n" +" la sauvegarde\n" #: pg_dump.c:1012 pg_dumpall.c:629 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" -msgstr "" -" -E, --encoding=ENCODAGE sauvegarde les données dans l'encodage\n" -" ENCODAGE\n" +msgstr " -E, --encoding=ENCODAGE sauvegarde les données dans l'encodage ENCODAGE\n" #: pg_dump.c:1013 #, c-format @@ -1491,8 +1495,8 @@ " -O, --no-owner skip restoration of object ownership in\n" " plain-text format\n" msgstr "" -" -O, --no-owner ne sauvegarde pas les propriétaires des\n" -" objets lors de l'utilisation du format texte\n" +" -O, --no-owner ne sauvegarde pas les propriétaires des objets\n" +" lors de l'utilisation du format texte\n" #: pg_dump.c:1017 pg_dumpall.c:633 #, c-format @@ -1505,8 +1509,8 @@ #, c-format msgid " -S, --superuser=NAME superuser user name to use in plain-text format\n" msgstr "" -" -S, --superuser=NOM indique le nom du super-utilisateur à\n" -" utiliser avec le format texte\n" +" -S, --superuser=NOM indique le nom du super-utilisateur à utiliser\n" +" avec le format texte\n" #: pg_dump.c:1019 #, c-format @@ -1527,23 +1531,23 @@ #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr "" -" --binary-upgrade à n'utiliser que par les outils de mise à\n" -" jour seulement\n" +" --binary-upgrade à n'utiliser que par les outils de mise à jour\n" +" seulement\n" #: pg_dump.c:1023 pg_dumpall.c:638 #, c-format msgid " --column-inserts dump data as INSERT commands with column names\n" msgstr "" -" --column-inserts sauvegarde les données avec des commandes\n" -" INSERT en précisant les noms des colonnes\n" +" --column-inserts sauvegarde les données avec des commandes INSERT\n" +" en précisant les noms des colonnes\n" #: pg_dump.c:1024 pg_dumpall.c:639 #, c-format msgid " --disable-dollar-quoting disable dollar quoting, use SQL standard quoting\n" msgstr "" -" --disable-dollar-quoting désactive l'utilisation des guillemets\n" -" dollar dans le but de respecter le standard\n" -" SQL en matière de guillemets\n" +" --disable-dollar-quoting désactive l'utilisation des guillemets dollars\n" +" dans le but de respecter le standard SQL en\n" +" matière de guillemets\n" #: pg_dump.c:1025 pg_dumpall.c:640 pg_restore.c:493 #, c-format @@ -1558,9 +1562,9 @@ " --enable-row-security enable row security (dump only content user has\n" " access to)\n" msgstr "" -" --enable-row-security active la sécurité niveau ligne (et donc\\n\n" -" sauvegarde uniquement le contenu visible par\\n\n" -" cet utilisateur)\n" +" --enable-row-security active la sécurité niveau ligne (et donc\n" +" sauvegarde uniquement le contenu visible par cet\n" +" utilisateur)\n" #: pg_dump.c:1028 #, c-format @@ -1570,12 +1574,16 @@ #: pg_dump.c:1029 pg_dumpall.c:642 #, c-format msgid " --extra-float-digits=NUM override default setting for extra_float_digits\n" -msgstr " --extra-float-digits=NUM surcharge la configuration par défaut de extra_float_digits\n" +msgstr "" +" --extra-float-digits=NOMBRE surcharge la configuration par défaut de\n" +" extra_float_digits\n" #: pg_dump.c:1030 pg_dumpall.c:643 pg_restore.c:495 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" -msgstr " --if-exists utilise IF EXISTS lors de la suppression des objets\n" +msgstr "" +" --if-exists utilise IF EXISTS lors de la suppression des\n" +" objets\n" #: pg_dump.c:1031 #, c-format @@ -1584,8 +1592,7 @@ " include data of foreign tables on foreign\n" " servers matching PATTERN\n" msgstr "" -" --include-foreign-data=MOTIF\n" -" inclut les données des tables externes pour les\n" +" --include-foreign-data=MOTIF inclut les données des tables externes pour les\n" " serveurs distants correspondant au motif MOTIF\n" #: pg_dump.c:1034 pg_dumpall.c:644 @@ -1625,14 +1632,14 @@ #: pg_dump.c:1040 #, c-format msgid " --no-synchronized-snapshots do not use synchronized snapshots in parallel jobs\n" -msgstr " --no-synchronized-snapshots n'utilise pas de snapshots synchronisés pour les jobs en parallèle\n" +msgstr "" +" --no-synchronized-snapshots n'utilise pas de snapshots synchronisés pour les\n" +" jobs en parallèle\n" #: pg_dump.c:1041 pg_dumpall.c:652 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" -msgstr "" -" --no-tablespaces ne sauvegarde pas les affectations de\n" -" tablespaces\n" +msgstr " --no-tablespaces ne sauvegarde pas les affectations de tablespaces\n" #: pg_dump.c:1042 pg_dumpall.c:653 #, c-format @@ -1644,19 +1651,21 @@ #: pg_dump.c:1043 pg_dumpall.c:654 #, c-format msgid " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n" -msgstr " --on-conflict-do-nothing ajoute ON CONFLICT DO NOTHING aux commandes INSERT\n" +msgstr "" +" --on-conflict-do-nothing ajoute ON CONFLICT DO NOTHING aux commandes\n" +" INSERT\n" #: pg_dump.c:1044 pg_dumpall.c:655 #, c-format msgid " --quote-all-identifiers quote all identifiers, even if not key words\n" msgstr "" -" --quote-all-identifiers met entre guillemets tous les identifiants\n" -" même s'il ne s'agit pas de mots clés\n" +" --quote-all-identifiers met entre guillemets tous les identifiants même\n" +" s'il ne s'agit pas de mots clés\n" #: pg_dump.c:1045 pg_dumpall.c:656 #, c-format msgid " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" -msgstr " --rows-per-insert=NROWS nombre de lignes par INSERT ; implique --inserts\n" +msgstr " --rows-per-insert=NLIGNES nombre de lignes par INSERT ; implique --inserts\n" #: pg_dump.c:1046 #, c-format @@ -1683,8 +1692,8 @@ " --strict-names require table and/or schema include patterns to\n" " match at least one entity each\n" msgstr "" -" --strict-names requiert que le motifs de table et/ou schéma\n" -" correspondent à au moins une entité de chaque\n" +" --strict-names requiert que le motifs de table et/ou schéma\n" +" correspondent à au moins une entité de chaque\n" #: pg_dump.c:1051 pg_dumpall.c:657 pg_restore.c:506 #, c-format @@ -1695,8 +1704,8 @@ msgstr "" " --use-set-session-authorization\n" " utilise les commandes SET SESSION AUTHORIZATION\n" -" au lieu des commandes ALTER OWNER pour\n" -" modifier les propriétaires\n" +" au lieu des commandes ALTER OWNER pour modifier\n" +" les propriétaires\n" #: pg_dump.c:1055 pg_dumpall.c:661 pg_restore.c:510 #, c-format @@ -1710,26 +1719,24 @@ #: pg_dump.c:1056 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" -msgstr " -d, --dbname=NOMBASE base de données à sauvegarder\n" +msgstr " -d, --dbname=BASE base de données à sauvegarder\n" #: pg_dump.c:1057 pg_dumpall.c:663 pg_restore.c:511 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=NOMHÔTE hôte du serveur de bases de données ou\n" +" -h, --host=HÔTE hôte du serveur de bases de données ou\n" " répertoire des sockets\n" #: pg_dump.c:1058 pg_dumpall.c:665 pg_restore.c:512 #, c-format msgid " -p, --port=PORT database server port number\n" -msgstr "" -" -p, --port=PORT numéro de port du serveur de bases de\n" -" données\n" +msgstr " -p, --port=PORT numéro de port du serveur de bases de données\n" #: pg_dump.c:1059 pg_dumpall.c:666 pg_restore.c:513 #, c-format msgid " -U, --username=NAME connect as specified database user\n" -msgstr " -U, --username=NOM se connecter avec cet utilisateur\n" +msgstr " -U, --username=UTILISATEUR se connecter avec cet utilisateur\n" #: pg_dump.c:1060 pg_dumpall.c:667 pg_restore.c:514 #, c-format @@ -1739,14 +1746,12 @@ #: pg_dump.c:1061 pg_dumpall.c:668 pg_restore.c:515 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" -msgstr "" -" -W, --password force la demande du mot de passe (par\n" -" défaut)\n" +msgstr " -W, --password force la demande du mot de passe (par défaut)\n" #: pg_dump.c:1062 pg_dumpall.c:669 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" -msgstr " --role=NOMROLE exécute SET ROLE avant la sauvegarde\n" +msgstr " --role=RÔLE exécute SET ROLE avant la sauvegarde\n" #: pg_dump.c:1064 #, c-format @@ -1769,14 +1774,14 @@ #: pg_dump.c:1067 pg_dumpall.c:674 pg_restore.c:523 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil de %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" #: pg_dump.c:1086 pg_dumpall.c:499 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "encodage client indiqué (« %s ») invalide" -#: pg_dump.c:1235 +#: pg_dump.c:1232 #, c-format msgid "" "Synchronized snapshots on standby servers are not supported by this server version.\n" @@ -1787,498 +1792,493 @@ "Lancez avec --no-synchronized-snapshots à la place si vous n'avez pas besoin\n" "de snapshots synchronisés." -#: pg_dump.c:1304 +#: pg_dump.c:1301 #, c-format msgid "invalid output format \"%s\" specified" msgstr "format de sortie « %s » invalide" -#: pg_dump.c:1342 +#: pg_dump.c:1339 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "aucun schéma correspondant n'a été trouvé avec le motif « %s »" -#: pg_dump.c:1389 +#: pg_dump.c:1386 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "aucun serveur distant correspondant n'a été trouvé avec le motif « %s »" -#: pg_dump.c:1452 +#: pg_dump.c:1449 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "aucune table correspondante n'a été trouvée avec le motif « %s »" -#: pg_dump.c:1865 +#: pg_dump.c:1862 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "sauvegarde du contenu de la table « %s.%s »" -#: pg_dump.c:1972 +#: pg_dump.c:1969 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "Sauvegarde du contenu de la table « %s » échouée : échec de PQgetCopyData()." -#: pg_dump.c:1973 pg_dump.c:1983 +#: pg_dump.c:1970 pg_dump.c:1980 #, c-format msgid "Error message from server: %s" msgstr "Message d'erreur du serveur : %s" -#: pg_dump.c:1974 pg_dump.c:1984 +#: pg_dump.c:1971 pg_dump.c:1981 #, c-format msgid "The command was: %s" msgstr "La commande était : %s" -#: pg_dump.c:1982 +#: pg_dump.c:1979 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Sauvegarde du contenu de la table « %s » échouée : échec de PQgetResult()." -#: pg_dump.c:2742 +#: pg_dump.c:2061 +#, c-format +msgid "wrong number of fields retrieved from table \"%s\"" +msgstr "mauvais nombre de champs récupérés à partir de la table « %s »" + +#: pg_dump.c:2774 #, c-format msgid "saving database definition" msgstr "sauvegarde de la définition de la base de données" -#: pg_dump.c:3214 +#: pg_dump.c:3246 #, c-format msgid "saving encoding = %s" msgstr "encodage de la sauvegarde = %s" -#: pg_dump.c:3239 +#: pg_dump.c:3271 #, c-format msgid "saving standard_conforming_strings = %s" msgstr "sauvegarde de standard_conforming_strings = %s" -#: pg_dump.c:3278 +#: pg_dump.c:3310 #, c-format msgid "could not parse result of current_schemas()" msgstr "n'a pas pu analyser le résultat de current_schema()" -#: pg_dump.c:3297 +#: pg_dump.c:3329 #, c-format msgid "saving search_path = %s" msgstr "sauvegarde de search_path = %s" -#: pg_dump.c:3337 +#: pg_dump.c:3369 #, c-format msgid "reading large objects" msgstr "lecture des « Large Objects »" -#: pg_dump.c:3519 +#: pg_dump.c:3551 #, c-format msgid "saving large objects" msgstr "sauvegarde des « Large Objects »" -#: pg_dump.c:3565 +#: pg_dump.c:3597 #, c-format msgid "error reading large object %u: %s" msgstr "erreur lors de la lecture du « Large Object » %u : %s" -#: pg_dump.c:3617 -#, c-format -msgid "reading row security enabled for table \"%s.%s\"" -msgstr "lecture de l'activation de la sécurité niveau ligne pour la table « %s.%s »" - -#: pg_dump.c:3648 +#: pg_dump.c:3681 #, c-format -msgid "reading policies for table \"%s.%s\"" -msgstr "lecture des politiques pour la table « %s.%s »" +msgid "reading row-level security policies" +msgstr "lecture des politiques de sécurité au niveau ligne" -#: pg_dump.c:3800 +#: pg_dump.c:3824 #, c-format msgid "unexpected policy command type: %c" msgstr "type de commande inattendu pour la politique : %c" -#: pg_dump.c:3951 +#: pg_dump.c:3978 #, c-format msgid "owner of publication \"%s\" appears to be invalid" msgstr "le propriétaire de la publication « %s » semble être invalide" -#: pg_dump.c:4096 -#, c-format -msgid "reading publication membership for table \"%s.%s\"" -msgstr "lecture des appartenances aux publications pour la table « %s.%s »" - -#: pg_dump.c:4239 +#: pg_dump.c:4268 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "les souscriptions ne sont pas sauvegardées parce que l'utilisateur courant n'est pas un superutilisateur" -#: pg_dump.c:4293 +#: pg_dump.c:4322 #, c-format msgid "owner of subscription \"%s\" appears to be invalid" msgstr "le propriétaire de la souscription « %s » semble être invalide" -#: pg_dump.c:4337 +#: pg_dump.c:4366 #, c-format msgid "could not parse subpublications array" msgstr "n'a pas pu analyser le tableau de sous-publications" -#: pg_dump.c:4659 +#: pg_dump.c:4688 #, c-format msgid "could not find parent extension for %s %s" msgstr "n'a pas pu trouver l'extension parent pour %s %s" -#: pg_dump.c:4791 +#: pg_dump.c:4820 #, c-format msgid "owner of schema \"%s\" appears to be invalid" msgstr "le propriétaire du schéma « %s » semble être invalide" -#: pg_dump.c:4814 +#: pg_dump.c:4843 #, c-format msgid "schema with OID %u does not exist" msgstr "le schéma d'OID %u n'existe pas" -#: pg_dump.c:5139 +#: pg_dump.c:5169 #, c-format msgid "owner of data type \"%s\" appears to be invalid" msgstr "le propriétaire du type de données « %s » semble être invalide" -#: pg_dump.c:5224 +#: pg_dump.c:5254 #, c-format msgid "owner of operator \"%s\" appears to be invalid" msgstr "le propriétaire de l'opérateur « %s » semble être invalide" -#: pg_dump.c:5526 +#: pg_dump.c:5556 #, c-format msgid "owner of operator class \"%s\" appears to be invalid" msgstr "le propriétaire de la classe d'opérateur « %s » semble être invalide" -#: pg_dump.c:5610 +#: pg_dump.c:5640 #, c-format msgid "owner of operator family \"%s\" appears to be invalid" msgstr "le propriétaire de la famille d'opérateur « %s » semble être invalide" -#: pg_dump.c:5779 +#: pg_dump.c:5809 #, c-format msgid "owner of aggregate function \"%s\" appears to be invalid" msgstr "le propriétaire de la fonction d'agrégat « %s » semble être invalide" -#: pg_dump.c:6039 +#: pg_dump.c:6069 #, c-format msgid "owner of function \"%s\" appears to be invalid" msgstr "le propriétaire de la fonction « %s » semble être invalide" -#: pg_dump.c:6867 +#: pg_dump.c:6897 #, c-format msgid "owner of table \"%s\" appears to be invalid" msgstr "le propriétaire de la table « %s » semble être invalide" -#: pg_dump.c:6909 pg_dump.c:17389 +#: pg_dump.c:6939 pg_dump.c:17498 #, c-format msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found" msgstr "vérification échouée, OID %u de la table parent de l'OID %u de la séquence introuvable" -#: pg_dump.c:7051 +#: pg_dump.c:7081 #, c-format msgid "reading indexes for table \"%s.%s\"" msgstr "lecture des index de la table « %s.%s »" -#: pg_dump.c:7466 +#: pg_dump.c:7496 #, c-format msgid "reading foreign key constraints for table \"%s.%s\"" msgstr "lecture des contraintes de clés étrangères pour la table « %s.%s »" -#: pg_dump.c:7747 +#: pg_dump.c:7777 #, c-format msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found" msgstr "vérification échouée, OID %u de la table parent de l'OID %u de l'entrée de pg_rewrite introuvable" -#: pg_dump.c:7830 +#: pg_dump.c:7861 #, c-format msgid "reading triggers for table \"%s.%s\"" msgstr "lecture des triggers pour la table « %s.%s »" -#: pg_dump.c:7963 +#: pg_dump.c:8043 #, c-format msgid "query produced null referenced table name for foreign key trigger \"%s\" on table \"%s\" (OID of table: %u)" msgstr "la requête a produit une réference de nom de table null pour le trigger de la clé étrangère « %s » sur la table « %s » (OID de la table : %u)" -#: pg_dump.c:8518 +#: pg_dump.c:8598 #, c-format msgid "finding the columns and types of table \"%s.%s\"" msgstr "recherche des colonnes et types de la table « %s.%s »" -#: pg_dump.c:8654 +#: pg_dump.c:8734 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "numérotation des colonnes invalide pour la table « %s »" -#: pg_dump.c:8691 +#: pg_dump.c:8771 #, c-format msgid "finding default expressions of table \"%s.%s\"" msgstr "recherche des expressions par défaut de la table « %s.%s »" -#: pg_dump.c:8713 +#: pg_dump.c:8793 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "valeur adnum %d invalide pour la table « %s »" -#: pg_dump.c:8778 +#: pg_dump.c:8885 #, c-format msgid "finding check constraints for table \"%s.%s\"" msgstr "recherche des contraintes de vérification pour la table « %s.%s »" -#: pg_dump.c:8827 +#: pg_dump.c:8934 #, c-format msgid "expected %d check constraint on table \"%s\" but found %d" msgid_plural "expected %d check constraints on table \"%s\" but found %d" msgstr[0] "%d contrainte de vérification attendue pour la table « %s » mais %d trouvée" msgstr[1] "%d contraintes de vérification attendues pour la table « %s » mais %d trouvée" -#: pg_dump.c:8831 +#: pg_dump.c:8938 #, c-format msgid "(The system catalogs might be corrupted.)" msgstr "(Les catalogues système sont peut-être corrompus.)" -#: pg_dump.c:10417 +#: pg_dump.c:10541 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "la colonne typtype du type de données « %s » semble être invalide" -#: pg_dump.c:11771 +#: pg_dump.c:11891 #, c-format msgid "bogus value in proargmodes array" msgstr "valeur erronée dans le tableau proargmodes" -#: pg_dump.c:12143 +#: pg_dump.c:12258 #, c-format msgid "could not parse proallargtypes array" msgstr "n'a pas pu analyser le tableau proallargtypes" -#: pg_dump.c:12159 +#: pg_dump.c:12274 #, c-format msgid "could not parse proargmodes array" msgstr "n'a pas pu analyser le tableau proargmodes" -#: pg_dump.c:12173 +#: pg_dump.c:12288 #, c-format msgid "could not parse proargnames array" msgstr "n'a pas pu analyser le tableau proargnames" -#: pg_dump.c:12184 +#: pg_dump.c:12299 #, c-format msgid "could not parse proconfig array" msgstr "n'a pas pu analyser le tableau proconfig" -#: pg_dump.c:12264 +#: pg_dump.c:12375 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "valeur provolatile non reconnue pour la fonction « %s »" -#: pg_dump.c:12314 pg_dump.c:14372 +#: pg_dump.c:12425 pg_dump.c:14473 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "valeur proparallel non reconnue pour la fonction « %s »" -#: pg_dump.c:12453 pg_dump.c:12562 pg_dump.c:12569 +#: pg_dump.c:12564 pg_dump.c:12670 pg_dump.c:12677 #, c-format msgid "could not find function definition for function with OID %u" msgstr "n'a pas pu trouver la définition de la fonction d'OID %u" -#: pg_dump.c:12492 +#: pg_dump.c:12603 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "valeur erronée dans le champ pg_cast.castfunc ou pg_cast.castmethod" -#: pg_dump.c:12495 +#: pg_dump.c:12606 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "valeur erronée dans pg_cast.castmethod" -#: pg_dump.c:12588 +#: pg_dump.c:12696 #, c-format msgid "bogus transform definition, at least one of trffromsql and trftosql should be nonzero" msgstr "définition de transformation invalide, au moins un de trffromsql et trftosql ne doit pas valoir 0" -#: pg_dump.c:12605 +#: pg_dump.c:12713 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "valeur erronée dans pg_transform.trffromsql" -#: pg_dump.c:12626 +#: pg_dump.c:12734 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "valeur erronée dans pg_transform.trftosql" -#: pg_dump.c:12942 +#: pg_dump.c:13049 #, c-format msgid "could not find operator with OID %s" msgstr "n'a pas pu trouver l'opérateur d'OID %s" -#: pg_dump.c:13010 +#: pg_dump.c:13117 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "type « %c » invalide de la méthode d'accès « %s »" -#: pg_dump.c:13764 +#: pg_dump.c:13871 #, c-format msgid "unrecognized collation provider: %s" msgstr "fournisseur de collationnement non reconnu : %s" -#: pg_dump.c:14236 +#: pg_dump.c:14337 #, c-format msgid "aggregate function %s could not be dumped correctly for this database version; ignored" msgstr "la fonction d'aggrégat %s n'a pas pu être sauvegardée correctement avec cette version de la base de données ; ignorée" -#: pg_dump.c:14291 +#: pg_dump.c:14392 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "valeur non reconnue de aggfinalmodify pour l'agrégat « %s »" -#: pg_dump.c:14347 +#: pg_dump.c:14448 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "valeur non reconnue de aggmfinalmodify pour l'agrégat « %s »" -#: pg_dump.c:15069 +#: pg_dump.c:15170 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "type d'objet inconnu dans les droits par défaut : %d" -#: pg_dump.c:15087 +#: pg_dump.c:15188 #, c-format msgid "could not parse default ACL list (%s)" msgstr "n'a pas pu analyser la liste ACL par défaut (%s)" -#: pg_dump.c:15172 +#: pg_dump.c:15273 #, c-format msgid "could not parse initial GRANT ACL list (%s) or initial REVOKE ACL list (%s) for object \"%s\" (%s)" msgstr "n'a pas pu analyser la liste ACL GRANT initiale (%s) ou la liste ACL REVOKE initiale (%s) de l'objet « %s » (%s)" -#: pg_dump.c:15180 +#: pg_dump.c:15281 #, c-format msgid "could not parse GRANT ACL list (%s) or REVOKE ACL list (%s) for object \"%s\" (%s)" msgstr "n'a pas pu analyser la liste ACL GRANT (%s) ou REVOKE (%s) de l'objet « %s » (%s)" -#: pg_dump.c:15695 +#: pg_dump.c:15796 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "la requête permettant d'obtenir la définition de la vue « %s » n'a renvoyé aucune donnée" -#: pg_dump.c:15698 +#: pg_dump.c:15799 #, c-format msgid "query to obtain definition of view \"%s\" returned more than one definition" msgstr "la requête permettant d'obtenir la définition de la vue « %s » a renvoyé plusieurs définitions" -#: pg_dump.c:15705 +#: pg_dump.c:15806 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "la définition de la vue « %s » semble être vide (longueur nulle)" -#: pg_dump.c:15789 +#: pg_dump.c:15890 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS n'est plus supporté (table « %s »)" -#: pg_dump.c:16269 +#: pg_dump.c:16370 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "nombre de parents invalide (%d) pour la table « %s »" -#: pg_dump.c:16592 +#: pg_dump.c:16693 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "numéro de colonne %d invalide pour la table « %s »" -#: pg_dump.c:16877 +#: pg_dump.c:16986 #, c-format msgid "missing index for constraint \"%s\"" msgstr "index manquant pour la contrainte « %s »" -#: pg_dump.c:17102 +#: pg_dump.c:17211 #, c-format msgid "unrecognized constraint type: %c" msgstr "type de contrainte inconnu : %c" -#: pg_dump.c:17234 pg_dump.c:17454 +#: pg_dump.c:17343 pg_dump.c:17563 #, c-format msgid "query to get data of sequence \"%s\" returned %d row (expected 1)" msgid_plural "query to get data of sequence \"%s\" returned %d rows (expected 1)" msgstr[0] "la requête permettant d'obtenir les données de la séquence « %s » a renvoyé %d ligne (une seule attendue)" msgstr[1] "la requête permettant d'obtenir les données de la séquence « %s » a renvoyé %d ligne (une seule attendue)" -#: pg_dump.c:17268 +#: pg_dump.c:17377 #, c-format msgid "unrecognized sequence type: %s" msgstr "type de séquence non reconnu : « %s »" -#: pg_dump.c:17552 +#: pg_dump.c:17661 #, c-format msgid "unexpected tgtype value: %d" msgstr "valeur tgtype inattendue : %d" -#: pg_dump.c:17626 +#: pg_dump.c:17735 #, c-format msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" msgstr "chaîne argument invalide (%s) pour le trigger « %s » sur la table « %s »" -#: pg_dump.c:17862 +#: pg_dump.c:18004 #, c-format msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned" msgstr "la requête permettant d'obtenir la règle « %s » associée à la table « %s » a échoué : mauvais nombre de lignes renvoyées" -#: pg_dump.c:18024 +#: pg_dump.c:18166 #, c-format msgid "could not find referenced extension %u" msgstr "n'a pas pu trouver l'extension référencée %u" -#: pg_dump.c:18236 +#: pg_dump.c:18378 #, c-format msgid "reading dependency data" msgstr "lecture des données de dépendance" -#: pg_dump.c:18329 +#: pg_dump.c:18471 #, c-format msgid "no referencing object %u %u" msgstr "pas d'objet référant %u %u" -#: pg_dump.c:18340 +#: pg_dump.c:18482 #, c-format msgid "no referenced object %u %u" msgstr "pas d'objet référencé %u %u" -#: pg_dump.c:18713 +#: pg_dump.c:18870 #, c-format msgid "could not parse reloptions array" msgstr "n'a pas pu analyser le tableau reloptions" -#: pg_dump_sort.c:360 +#: pg_dump_sort.c:369 #, c-format msgid "invalid dumpId %d" msgstr "dumpId %d invalide" -#: pg_dump_sort.c:366 +#: pg_dump_sort.c:375 #, c-format msgid "invalid dependency %d" msgstr "dépendance invalide %d" -#: pg_dump_sort.c:599 +#: pg_dump_sort.c:608 #, c-format msgid "could not identify dependency loop" msgstr "n'a pas pu identifier la boucle de dépendance" -#: pg_dump_sort.c:1170 +#: pg_dump_sort.c:1179 #, c-format msgid "there are circular foreign-key constraints on this table:" msgid_plural "there are circular foreign-key constraints among these tables:" msgstr[0] "NOTE : il existe des contraintes de clés étrangères circulaires sur cette table :" msgstr[1] "NOTE : il existe des contraintes de clés étrangères circulaires sur ces tables :" -#: pg_dump_sort.c:1174 pg_dump_sort.c:1194 +#: pg_dump_sort.c:1183 pg_dump_sort.c:1203 #, c-format msgid " %s" msgstr " %s" -#: pg_dump_sort.c:1175 +#: pg_dump_sort.c:1184 #, c-format msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints." msgstr "Il est possible de restaurer la sauvegarde sans utiliser --disable-triggers ou sans supprimer temporairement les contraintes." -#: pg_dump_sort.c:1176 +#: pg_dump_sort.c:1185 #, c-format msgid "Consider using a full dump instead of a --data-only dump to avoid this problem." msgstr "Considérez l'utilisation d'une sauvegarde complète au lieu d'une sauvegarde des données seulement pour éviter ce problème." -#: pg_dump_sort.c:1188 +#: pg_dump_sort.c:1197 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "n'a pas pu résoudre la boucle de dépendances parmi ces éléments :" @@ -2357,7 +2357,7 @@ #: pg_dumpall.c:621 #, c-format msgid " -f, --file=FILENAME output file name\n" -msgstr " -f, --file=NOMFICHIER nom du fichier de sortie\n" +msgstr " -f, --file=FICHIER nom du fichier de sortie\n" #: pg_dumpall.c:628 #, c-format @@ -2376,9 +2376,7 @@ #: pg_dumpall.c:631 pg_restore.c:485 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" -msgstr "" -" -O, --no-owner omet la restauration des propriétaires des\n" -" objets\n" +msgstr " -O, --no-owner omet la restauration des propriétaires des objets\n" #: pg_dumpall.c:632 #, c-format @@ -2404,7 +2402,9 @@ #: pg_dumpall.c:641 #, c-format msgid " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" -msgstr " --exclude-database=MOTIF exclut les bases de données dont le nom correspond au motif\n" +msgstr "" +" --exclude-database=MOTIF exclut les bases de données dont le nom correspond\n" +" au motif\n" #: pg_dumpall.c:648 #, c-format @@ -2414,12 +2414,12 @@ #: pg_dumpall.c:662 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" -msgstr " -d, --dbname=CHAINE_CONN connexion à l'aide de la chaîne de connexion\n" +msgstr " -d, --dbname=CHAÎNE_CONNEX connexion à l'aide de la chaîne de connexion\n" #: pg_dumpall.c:664 #, c-format msgid " -l, --database=DBNAME alternative default database\n" -msgstr " -l, --database=NOM_BASE indique une autre base par défaut\n" +msgstr " -l, --database=BASE indique une autre base par défaut\n" #: pg_dumpall.c:671 #, c-format @@ -2530,8 +2530,8 @@ "%s restores a PostgreSQL database from an archive created by pg_dump.\n" "\n" msgstr "" -"%s restaure une base de données PostgreSQL à partir d'une archive créée par\n" -"pg_dump.\n" +"%s restaure une base de données PostgreSQL à partir d'une archive créée\n" +"par pg_dump.\n" "\n" #: pg_restore.c:463 @@ -2549,7 +2549,7 @@ #: pg_restore.c:467 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" -msgstr " -f, --file=NOMFICHIER nom du fichier de sortie (- pour stdout)\n" +msgstr " -f, --file=FICHIER nom du fichier de sortie (- pour stdout)\n" #: pg_restore.c:468 #, c-format @@ -2590,9 +2590,7 @@ #: pg_restore.c:475 #, c-format msgid " -a, --data-only restore only the data, no schema\n" -msgstr "" -" -a, --data-only restaure uniquement les données, pas la\n" -" structure\n" +msgstr " -a, --data-only restaure uniquement les données, pas la structure\n" #: pg_restore.c:477 #, c-format @@ -2613,8 +2611,8 @@ #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr "" -" -j, --jobs=NUMERO utilise ce nombre de jobs en parallèle pour\n" -" la restauration\n" +" -j, --jobs=NOMBRE utilise ce nombre de jobs en parallèle pour la\n" +" restauration\n" #: pg_restore.c:481 #, c-format @@ -2622,9 +2620,8 @@ " -L, --use-list=FILENAME use table of contents from this file for\n" " selecting/ordering output\n" msgstr "" -" -L, --use-list=NOMFICHIER utilise la table des matières à partir\n" -" de ce fichier pour sélectionner/trier\n" -" la sortie\n" +" -L, --use-list=FICHIER utilise la table des matières à partir de ce\n" +" fichier pour sélectionner/trier la sortie\n" #: pg_restore.c:483 #, c-format @@ -2634,7 +2631,7 @@ #: pg_restore.c:484 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" -msgstr " -N, --exclude-schema=NOM ne restaure pas les objets de ce schéma\n" +msgstr " -N, --exclude-schema=NOM ne restaure pas les objets de ce schéma\n" #: pg_restore.c:486 #, c-format @@ -2644,16 +2641,14 @@ #: pg_restore.c:487 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" -msgstr "" -" -s, --schema-only restaure uniquement la structure, pas les\n" -" données\n" +msgstr " -s, --schema-only restaure uniquement la structure, pas les données\n" #: pg_restore.c:488 #, c-format msgid " -S, --superuser=NAME superuser user name to use for disabling triggers\n" msgstr "" -" -S, --superuser=NOM indique le nom du super-utilisateur à\n" -" utiliser pour désactiver les triggers\n" +" -S, --superuser=NOM indique le nom du super-utilisateur à utiliser\n" +" pour désactiver les triggers\n" #: pg_restore.c:489 #, c-format @@ -2693,8 +2688,8 @@ " --no-data-for-failed-tables do not restore data of tables that could not be\n" " created\n" msgstr "" -" --no-data-for-failed-tables ne restaure pas les données des tables qui\n" -" n'ont pas pu être créées\n" +" --no-data-for-failed-tables ne restaure pas les données des tables qui n'ont\n" +" pas pu être créées\n" #: pg_restore.c:499 #, c-format @@ -2714,16 +2709,14 @@ #: pg_restore.c:502 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" -msgstr "" -" --no-tablespaces ne restaure pas les affectations de\n" -" tablespaces\n" +msgstr " --no-tablespaces ne restaure pas les affectations de tablespaces\n" #: pg_restore.c:503 #, c-format msgid " --section=SECTION restore named section (pre-data, data, or post-data)\n" msgstr "" -" --section=SECTION restaure la section indiquée (pre-data, data\n" -" ou post-data)\n" +" --section=SECTION restaure la section indiquée (pre-data, data ou\n" +" post-data)\n" #: pg_restore.c:516 #, c-format @@ -2738,8 +2731,8 @@ "multiple times to select multiple objects.\n" msgstr "" "\n" -"Les options -I, -n, -N, -P, -t, -T et --section peuvent être combinées et indiquées\n" -"plusieurs fois pour sélectionner plusieurs objets.\n" +"Les options -I, -n, -N, -P, -t, -T et --section peuvent être combinées et\n" +"indiquées plusieurs fois pour sélectionner plusieurs objets.\n" #: pg_restore.c:521 #, c-format @@ -2753,487 +2746,499 @@ "utilisée.\n" "\n" -#~ msgid "connecting to database \"%s\" as user \"%s\"" -#~ msgstr "connexion à la base de données « %s » en tant qu'utilisateur « %s »" +#~ msgid " --disable-triggers disable triggers during data-only restore\n" +#~ msgstr "" +#~ " --disable-triggers désactiver les déclencheurs lors de la\n" +#~ " restauration des données seules\n" -#~ msgid "could not reconnect to database" -#~ msgstr "n'a pas pu se reconnecter à la base de données" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help affiche cette aide puis quitte\n" -#~ msgid "could not reconnect to database: %s" -#~ msgstr "n'a pas pu se reconnecter à la base de données : %s" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help affiche cette aide et quitte\n" -#~ msgid "connection needs password" -#~ msgstr "la connexion nécessite un mot de passe" +#~ msgid "" +#~ " --use-set-session-authorization\n" +#~ " use SET SESSION AUTHORIZATION commands instead of\n" +#~ " ALTER OWNER commands to set ownership\n" +#~ msgstr "" +#~ " --use-set-session-authorization\n" +#~ " utilise les commandes SET SESSION AUTHORIZATION\n" +#~ " au lieu des commandes ALTER OWNER pour les\n" +#~ " modifier les propriétaires\n" -#~ msgid "internal error -- neither th nor fh specified in _tarReadRaw()" -#~ msgstr "erreur interne -- ni th ni fh ne sont précisés dans _tarReadRaw()" +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version affiche la version puis quitte\n" -#~ msgid "" -#~ "The program \"pg_dump\" is needed by %s but was not found in the\n" -#~ "same directory as \"%s\".\n" -#~ "Check your installation." +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version affiche la version et quitte\n" + +#~ msgid " -O, --no-owner skip restoration of object ownership\n" #~ msgstr "" -#~ "Le programme « pg_dump » est nécessaire à %s mais n'a pas été trouvé dans le\n" -#~ "même répertoire que « %s ».\n" -#~ "Vérifiez votre installation." +#~ " -O, --no-owner omettre la restauration des possessions des\n" +#~ " objets\n" -#~ msgid "" -#~ "The program \"pg_dump\" was found by \"%s\"\n" -#~ "but was not the same version as %s.\n" -#~ "Check your installation." +#~ msgid " -c, --clean clean (drop) database objects before recreating\n" #~ msgstr "" -#~ "Le programme « pg_dump » a été trouvé par « %s »\n" -#~ "mais n'a pas la même version que %s.\n" -#~ "Vérifiez votre installation." +#~ " -c, --clean nettoie/supprime les bases de données avant de\n" +#~ " les créer\n" -#~ msgid "could not identify current directory: %s" -#~ msgstr "n'a pas pu identifier le répertoire courant : %s" +#~ msgid " -o, --oids include OIDs in dump\n" +#~ msgstr " -o, --oids inclut les OID dans la sauvegarde\n" -#~ msgid "could not change directory to \"%s\": %s" -#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s" +#~ msgid "%s: could not connect to database \"%s\": %s" +#~ msgstr "%s : n'a pas pu se connecter à la base de données « %s » : %s" -#~ msgid "could not read symbolic link \"%s\"" -#~ msgstr "n'a pas pu lire le lien symbolique « %s »" +#~ msgid "%s: could not open the output file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le fichier de sauvegarde « %s » : %s\n" -#~ msgid "pclose failed: %s" -#~ msgstr "échec de pclose : %s" +#~ msgid "%s: could not parse ACL list (%s) for database \"%s\"\n" +#~ msgstr "%s : n'a pas pu analyser la liste d'ACL (%s) pour la base de données « %s »\n" -#~ msgid "child process was terminated by signal %s" -#~ msgstr "le processus fils a été terminé par le signal %s" +#~ msgid "%s: could not parse version \"%s\"\n" +#~ msgstr "%s : n'a pas pu analyser la version « %s »\n" -#~ msgid "child process was terminated by signal %d" -#~ msgstr "le processus fils a été terminé par le signal %d" +#~ msgid "%s: executing %s\n" +#~ msgstr "%s : exécute %s\n" -#~ msgid "compress_io" -#~ msgstr "compression_io" +#~ msgid "%s: invalid -X option -- %s\n" +#~ msgstr "%s : option -X invalide -- %s\n" -#~ msgid "parallel archiver" -#~ msgstr "archiveur en parallèle" +#~ msgid "%s: invalid client encoding \"%s\" specified\n" +#~ msgstr "%s : encodage client indiqué (« %s ») invalide\n" -#~ msgid "select() failed: %s\n" -#~ msgstr "échec de select() : %s\n" +#~ msgid "%s: invalid number of parallel jobs\n" +#~ msgstr "%s : nombre de jobs en parallèle invalide\n" -#~ msgid "archiver" -#~ msgstr "archiveur" +#~ msgid "%s: option --if-exists requires option -c/--clean\n" +#~ msgstr "%s : l'option --if-exists nécessite l'option -c/--clean\n" -#~ msgid "-C and -1 are incompatible options\n" -#~ msgstr "-C et -1 sont des options incompatibles\n" +#~ msgid "%s: options -c/--clean and -a/--data-only cannot be used together\n" +#~ msgstr "" +#~ "%s : les options « -c/--clean » et « -a/--data-only » ne peuvent pas être\n" +#~ "utilisées conjointement\n" -#~ msgid "attempting to ascertain archive format\n" -#~ msgstr "tentative d'identification du format de l'archive\n" +#~ msgid "%s: options -s/--schema-only and -a/--data-only cannot be used together\n" +#~ msgstr "" +#~ "%s : les options « -s/--schema-only » et « -a/--data-only » ne peuvent pas être\n" +#~ "utilisées conjointement\n" -#~ msgid "allocating AH for %s, format %d\n" -#~ msgstr "allocation d'AH pour %s, format %d\n" +#~ msgid "%s: out of memory\n" +#~ msgstr "%s : mémoire épuisée\n" -#~ msgid "read TOC entry %d (ID %d) for %s %s\n" -#~ msgstr "lecture de l'entrée %d de la TOC (ID %d) pour %s %s\n" +#~ msgid "%s: query failed: %s" +#~ msgstr "%s : échec de la requête : %s" -#~ msgid "could not set default_with_oids: %s" -#~ msgstr "n'a pas pu configurer default_with_oids : %s" +#~ msgid "%s: query was: %s\n" +#~ msgstr "%s : la requête était : %s\n" -#~ msgid "entering restore_toc_entries_prefork\n" -#~ msgstr "entrée dans restore_toc_entries_prefork\n" +#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" +#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" -#~ msgid "entering restore_toc_entries_parallel\n" -#~ msgstr "entrée dans restore_toc_entries_parallel\n" +#~ msgid "(The INSERT command cannot set OIDs.)\n" +#~ msgstr "(La commande INSERT ne peut pas positionner les OID.)\n" -#~ msgid "entering restore_toc_entries_postfork\n" -#~ msgstr "entrée dans restore_toc_entries_prefork\n" +#~ msgid "*** aborted because of error\n" +#~ msgstr "*** interrompu du fait d'erreurs\n" -#~ msgid "no item ready\n" -#~ msgstr "aucun élément prêt\n" +#~ msgid "-C and -1 are incompatible options\n" +#~ msgstr "-C et -1 sont des options incompatibles\n" -#~ msgid "transferring dependency %d -> %d to %d\n" -#~ msgstr "transfert de la dépendance %d -> %d vers %d\n" +#~ msgid "-C and -c are incompatible options\n" +#~ msgstr "-C et -c sont des options incompatibles\n" -#~ msgid "reducing dependencies for %d\n" -#~ msgstr "réduction des dépendances pour %d\n" +#~ msgid "LOCK TABLE failed for \"%s\": %s" +#~ msgstr "LOCK TABLE échoué pour la table « %s » : %s" -#~ msgid "custom archiver" -#~ msgstr "programme d'archivage personnalisé" +#~ msgid "Report bugs to .\n" +#~ msgstr "Rapporter les bogues à .\n" -#~ msgid "archiver (db)" -#~ msgstr "programme d'archivage (db)" +#~ msgid "Report bugs to .\n" +#~ msgstr "Rapporter les bogues à .\n" -#~ msgid "failed to reconnect to database\n" -#~ msgstr "la reconnexion à la base de données a échoué\n" +#~ msgid "SQL command failed\n" +#~ msgstr "la commande SQL a échoué\n" -#~ msgid "failed to connect to database\n" -#~ msgstr "n'a pas pu se connecter à la base de données\n" - -#~ msgid "query was: %s\n" -#~ msgstr "la requête était : %s\n" - -#~ msgid "query returned %d row instead of one: %s\n" -#~ msgid_plural "query returned %d rows instead of one: %s\n" -#~ msgstr[0] "la requête a renvoyé %d ligne au lieu d'une seule : %s\n" -#~ msgstr[1] "la requête a renvoyé %d lignes au lieu d'une seule : %s\n" - -#~ msgid "directory archiver" -#~ msgstr "archiveur répertoire" - -#~ msgid "could not read directory \"%s\": %s\n" -#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n" - -#~ msgid "could not close directory \"%s\": %s\n" -#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n" - -#~ msgid "could not create directory \"%s\": %s\n" -#~ msgstr "n'a pas pu créer le répertoire « %s » : %s\n" - -#~ msgid "tar archiver" -#~ msgstr "archiveur tar" - -#~ msgid "moving from position %s to next member at file position %s\n" -#~ msgstr "déplacement de la position %s vers le prochain membre à la position %s du fichier\n" - -#~ msgid "now at file position %s\n" -#~ msgstr "maintenant en position %s du fichier\n" - -#~ msgid "skipping tar member %s\n" -#~ msgstr "omission du membre %s du tar\n" +#~ msgid "" +#~ "Synchronized snapshots are not supported on standby servers.\n" +#~ "Run with --no-synchronized-snapshots instead if you do not need\n" +#~ "synchronized snapshots.\n" +#~ msgstr "" +#~ "Les snapshots synchronisés ne sont pas supportés sur les serveurs de stadby.\n" +#~ "Lancez avec --no-synchronized-snapshots à la place si vous n'avez pas besoin\n" +#~ "de snapshots synchronisés.\n" #~ msgid "TOC Entry %s at %s (length %s, checksum %d)\n" #~ msgstr "entrée TOC %s à %s (longueur %s, somme de contrôle %d)\n" -#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" -#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" +#~ msgid "" +#~ "The program \"pg_dump\" is needed by %s but was not found in the\n" +#~ "same directory as \"%s\".\n" +#~ "Check your installation." +#~ msgstr "" +#~ "Le programme « pg_dump » est nécessaire à %s mais n'a pas été trouvé dans le\n" +#~ "même répertoire que « %s ».\n" +#~ "Vérifiez votre installation." -#~ msgid "options --inserts/--column-inserts and -o/--oids cannot be used together\n" +#~ msgid "" +#~ "The program \"pg_dump\" was found by \"%s\"\n" +#~ "but was not the same version as %s.\n" +#~ "Check your installation." #~ msgstr "" -#~ "les options « --inserts/--column-inserts » et « -o/--oids » ne\n" -#~ "peuvent pas être utilisées conjointement\n" +#~ "Le programme « pg_dump » a été trouvé par « %s »\n" +#~ "mais n'a pas la même version que %s.\n" +#~ "Vérifiez votre installation." -#~ msgid "(The INSERT command cannot set OIDs.)\n" -#~ msgstr "(La commande INSERT ne peut pas positionner les OID.)\n" +#~ msgid "" +#~ "WARNING:\n" +#~ " This format is for demonstration purposes; it is not intended for\n" +#~ " normal use. Files will be written in the current working directory.\n" +#~ msgstr "" +#~ "ATTENTION :\n" +#~ " Ce format est présent dans un but de démonstration ; il n'est pas prévu\n" +#~ " pour une utilisation normale. Les fichiers seront écrits dans le\n" +#~ " répertoire actuel.\n" -#~ msgid " -o, --oids include OIDs in dump\n" -#~ msgstr " -o, --oids inclut les OID dans la sauvegarde\n" +#~ msgid "WARNING: could not parse reloptions array\n" +#~ msgstr "ATTENTION : n'a pas pu analyser le tableau reloptions\n" -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapporter les bogues à .\n" +#~ msgid "allocating AH for %s, format %d\n" +#~ msgstr "allocation d'AH pour %s, format %d\n" -#~ msgid "schema with OID %u does not exist\n" -#~ msgstr "le schéma d'OID %u n'existe pas\n" +#~ msgid "archive member too large for tar format\n" +#~ msgstr "membre de l'archive trop volumineux pour le format tar\n" -#~ msgid "unrecognized collation provider: %s\n" -#~ msgstr "fournisseur de collationnement non reconnu : %s\n" +#~ msgid "archiver" +#~ msgstr "archiveur" -#~ msgid "WARNING: could not parse reloptions array\n" -#~ msgstr "ATTENTION : n'a pas pu analyser le tableau reloptions\n" +#~ msgid "archiver (db)" +#~ msgstr "programme d'archivage (db)" -#~ msgid "sorter" -#~ msgstr "tri" +#~ msgid "attempting to ascertain archive format\n" +#~ msgstr "tentative d'identification du format de l'archive\n" -#~ msgid "%s: option --if-exists requires option -c/--clean\n" -#~ msgstr "%s : l'option --if-exists nécessite l'option -c/--clean\n" +#~ msgid "cannot duplicate null pointer\n" +#~ msgstr "ne peut pas dupliquer un pointeur nul\n" -#~ msgid "%s: could not open the output file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le fichier de sauvegarde « %s » : %s\n" +#~ msgid "cannot reopen non-seekable file\n" +#~ msgstr "ne peut pas rouvrir le fichier non cherchable\n" -#~ msgid "%s: invalid client encoding \"%s\" specified\n" -#~ msgstr "%s : encodage client indiqué (« %s ») invalide\n" +#~ msgid "cannot reopen stdin\n" +#~ msgstr "ne peut pas rouvrir stdin\n" -#~ msgid "%s: could not connect to database \"%s\": %s" -#~ msgstr "%s : n'a pas pu se connecter à la base de données « %s » : %s" +#~ msgid "child process was terminated by signal %d" +#~ msgstr "le processus fils a été terminé par le signal %d" -#~ msgid "%s: executing %s\n" -#~ msgstr "%s : exécute %s\n" +#~ msgid "child process was terminated by signal %s" +#~ msgstr "le processus fils a été terminé par le signal %s" -#~ msgid "%s: query failed: %s" -#~ msgstr "%s : échec de la requête : %s" +#~ msgid "compress_io" +#~ msgstr "compression_io" -#~ msgid "%s: query was: %s\n" -#~ msgstr "%s : la requête était : %s\n" +#~ msgid "compression support is disabled in this format\n" +#~ msgstr "le support de la compression est désactivé avec ce format\n" -#~ msgid "%s: options -s/--schema-only and -a/--data-only cannot be used together\n" -#~ msgstr "" -#~ "%s : les options « -s/--schema-only » et « -a/--data-only » ne peuvent pas être\n" -#~ "utilisées conjointement\n" +#~ msgid "connecting to database \"%s\" as user \"%s\"" +#~ msgstr "connexion à la base de données « %s » en tant qu'utilisateur « %s »" -#~ msgid "%s: options -c/--clean and -a/--data-only cannot be used together\n" -#~ msgstr "" -#~ "%s : les options « -c/--clean » et « -a/--data-only » ne peuvent pas être\n" -#~ "utilisées conjointement\n" +#~ msgid "connection needs password" +#~ msgstr "la connexion nécessite un mot de passe" -#~ msgid "%s: invalid number of parallel jobs\n" -#~ msgstr "%s : nombre de jobs en parallèle invalide\n" +#~ msgid "could not change directory to \"%s\"" +#~ msgstr "n'a pas pu accéder au répertoire « %s »" -#~ msgid "%s: could not parse ACL list (%s) for database \"%s\"\n" -#~ msgstr "%s : n'a pas pu analyser la liste d'ACL (%s) pour la base de données « %s »\n" +#~ msgid "could not change directory to \"%s\": %s" +#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s" -#~ msgid "setting owner and privileges for %s \"%s.%s\"\n" -#~ msgstr "réglage du propriétaire et des droits pour %s « %s.%s»\n" +#~ msgid "could not close data file after reading\n" +#~ msgstr "n'a pas pu fermer le fichier de données après lecture\n" -#~ msgid "setting owner and privileges for %s \"%s\"\n" -#~ msgstr "réglage du propriétaire et des droits pour %s « %s »\n" +#~ msgid "could not close directory \"%s\": %s\n" +#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n" -#~ msgid "" -#~ "Synchronized snapshots are not supported on standby servers.\n" -#~ "Run with --no-synchronized-snapshots instead if you do not need\n" -#~ "synchronized snapshots.\n" +#~ msgid "could not close large object file\n" +#~ msgstr "n'a pas pu fermer le fichier du « Large Object »\n" + +#~ msgid "could not create directory \"%s\": %s\n" +#~ msgstr "n'a pas pu créer le répertoire « %s » : %s\n" + +#~ msgid "could not create worker thread: %s\n" +#~ msgstr "n'a pas pu créer le fil de travail: %s\n" + +#~ msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to lack of data offsets in archive" #~ msgstr "" -#~ "Les snapshots synchronisés ne sont pas supportés sur les serveurs de stadby.\n" -#~ "Lancez avec --no-synchronized-snapshots à la place si vous n'avez pas besoin\n" -#~ "de snapshots synchronisés.\n" +#~ "n'a pas pu trouver l'identifiant de bloc %d dans l'archive --\n" +#~ "il est possible que cela soit dû à une demande de restauration dans un ordre\n" +#~ "différent, qui n'a pas pu être géré à cause d'un manque d'information de\n" +#~ "position dans l'archive" -#~ msgid "error processing a parallel work item\n" -#~ msgstr "erreur durant le traitement en parallèle d'un item\n" +#~ msgid "could not find entry for pg_indexes in pg_class\n" +#~ msgstr "n'a pas pu trouver l'entrée de pg_indexes dans pg_class\n" #~ msgid "could not find slot of finished worker\n" #~ msgstr "n'a pas pu trouver l'emplacement du worker qui vient de terminer\n" -#~ msgid "error during backup\n" -#~ msgstr "erreur lors de la sauvegarde\n" - -#~ msgid "server version must be at least 7.3 to use schema selection switches\n" -#~ msgstr "" -#~ "le serveur doit être de version 7.3 ou supérieure pour utiliser les options\n" -#~ "de sélection du schéma\n" +#~ msgid "could not get relation name for OID %u: %s\n" +#~ msgstr "n'a pas pu obtenir le nom de la relation pour l'OID %u: %s\n" -#~ msgid "query to get data of sequence \"%s\" returned name \"%s\"\n" -#~ msgstr "" -#~ "la requête permettant d'obtenir les données de la séquence « %s » a renvoyé\n" -#~ "le nom « %s »\n" +#~ msgid "could not identify current directory: %s" +#~ msgstr "n'a pas pu identifier le répertoire courant : %s" -#~ msgid "could not change directory to \"%s\"" -#~ msgstr "n'a pas pu accéder au répertoire « %s »" +#~ msgid "could not open large object TOC for input: %s\n" +#~ msgstr "n'a pas pu ouvrir la TOC du « Large Object » en entrée : %s\n" -#~ msgid "cannot duplicate null pointer\n" -#~ msgstr "ne peut pas dupliquer un pointeur nul\n" +#~ msgid "could not open large object TOC for output: %s\n" +#~ msgstr "n'a pas pu ouvrir la TOC du « Large Object » en sortie : %s\n" -#~ msgid "worker process crashed: status %d\n" -#~ msgstr "crash du processus worker : statut %d\n" +#~ msgid "could not open output file \"%s\" for writing\n" +#~ msgstr "n'a pas pu ouvrir le fichier de sauvegarde « %s » en écriture\n" -#~ msgid "parallel_restore should not return\n" -#~ msgstr "parallel_restore ne devrait pas retourner\n" +#~ msgid "could not output padding at end of tar member\n" +#~ msgstr "n'a pas pu remplir la fin du membre de tar\n" -#~ msgid "could not create worker thread: %s\n" -#~ msgstr "n'a pas pu créer le fil de travail: %s\n" +#~ msgid "could not parse ACL (%s) for large object %u" +#~ msgstr "n'a pas pu analyser la liste ACL (%s) du « Large Object » %u" #~ msgid "could not parse version string \"%s\"\n" #~ msgstr "n'a pas pu analyser la chaîne de version « %s »\n" -#~ msgid "%s: could not parse version \"%s\"\n" -#~ msgstr "%s : n'a pas pu analyser la version « %s »\n" - -#~ msgid "-C and -c are incompatible options\n" -#~ msgstr "-C et -c sont des options incompatibles\n" +#~ msgid "could not read directory \"%s\": %s\n" +#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n" -#~ msgid "invalid COPY statement -- could not find \"copy\" in string \"%s\"\n" -#~ msgstr "instruction COPY invalide -- n'a pas pu trouver « copy » dans la chaîne « %s »\n" +#~ msgid "could not read symbolic link \"%s\"" +#~ msgstr "n'a pas pu lire le lien symbolique « %s »" -#~ msgid "invalid COPY statement -- could not find \"from stdin\" in string \"%s\" starting at position %lu\n" -#~ msgstr "" -#~ "instruction COPY invalide -- n'a pas pu trouver « from stdin » dans la\n" -#~ "chaîne « %s » à partir de la position %lu\n" +#~ msgid "could not reconnect to database" +#~ msgstr "n'a pas pu se reconnecter à la base de données" -#~ msgid "requested %d byte, got %d from lookahead and %d from file\n" -#~ msgid_plural "requested %d bytes, got %d from lookahead and %d from file\n" -#~ msgstr[0] "%d octet requis, %d obtenu de « lookahead » et %d du fichier\n" -#~ msgstr[1] "%d octets requis, %d obtenus de « lookahead » et %d du fichier\n" +#~ msgid "could not reconnect to database: %s" +#~ msgstr "n'a pas pu se reconnecter à la base de données : %s" -#~ msgid "read %lu byte into lookahead buffer\n" -#~ msgid_plural "read %lu bytes into lookahead buffer\n" -#~ msgstr[0] "lecture de %lu octet dans le tampon prévisionnel\n" -#~ msgstr[1] "lecture de %lu octets dans le tampon prévisionnel\n" +#~ msgid "could not set default_with_oids: %s" +#~ msgstr "n'a pas pu configurer default_with_oids : %s" -#~ msgid "query returned %d rows instead of one: %s\n" -#~ msgstr "la requête a renvoyé %d lignes au lieu d'une seule : %s\n" +#~ msgid "could not write byte\n" +#~ msgstr "n'a pas pu écrire l'octet\n" -#~ msgid "no label definitions found for enum ID %u\n" -#~ msgstr "aucune définition de label trouvée pour l'ID enum %u\n" +#~ msgid "could not write byte: %s\n" +#~ msgstr "n'a pas pu écrire un octet : %s\n" -#~ msgid "compression support is disabled in this format\n" -#~ msgstr "le support de la compression est désactivé avec ce format\n" +#~ msgid "could not write null block at end of tar archive\n" +#~ msgstr "n'a pas pu écrire le bloc nul à la fin de l'archive tar\n" -#~ msgid "could not parse ACL (%s) for large object %u" -#~ msgstr "n'a pas pu analyser la liste ACL (%s) du « Large Object » %u" +#~ msgid "could not write to custom output routine\n" +#~ msgstr "n'a pas pu écrire vers la routine de sauvegarde personnalisée\n" -#~ msgid "saving large object properties\n" -#~ msgstr "sauvegarde des propriétés des « Large Objects »\n" +#~ msgid "custom archiver" +#~ msgstr "programme d'archivage personnalisé" + +#~ msgid "directory archiver" +#~ msgstr "archiveur répertoire" #~ msgid "dumpBlobs(): could not open large object %u: %s" #~ msgstr "dumpBlobs() : n'a pas pu ouvrir le « Large Object » %u : %s" +#~ msgid "dumpDatabase(): could not find pg_largeobject.relfrozenxid\n" +#~ msgstr "dumpDatabase() : n'a pas pu trouver pg_largeobject.relfrozenxid\n" + +#~ msgid "dumpDatabase(): could not find pg_largeobject_metadata.relfrozenxid\n" +#~ msgstr "dumpDatabase() : n'a pas pu trouver pg_largeobject_metadata.relfrozenxid\n" + #~ msgid "dumping a specific TOC data block out of order is not supported without ID on this input stream (fseek required)\n" #~ msgstr "" #~ "la sauvegarde d'un bloc de données spécifique du TOC dans le désordre n'est\n" #~ "pas supporté sans identifiant sur ce flux d'entrée (fseek requis)\n" -#~ msgid "query returned no rows: %s\n" -#~ msgstr "la requête n'a renvoyé aucune ligne : %s\n" - -#~ msgid "%s: invalid -X option -- %s\n" -#~ msgstr "%s : option -X invalide -- %s\n" +#~ msgid "entering restore_toc_entries_parallel\n" +#~ msgstr "entrée dans restore_toc_entries_parallel\n" -#~ msgid "cannot reopen non-seekable file\n" -#~ msgstr "ne peut pas rouvrir le fichier non cherchable\n" +#~ msgid "entering restore_toc_entries_postfork\n" +#~ msgstr "entrée dans restore_toc_entries_prefork\n" -#~ msgid "cannot reopen stdin\n" -#~ msgstr "ne peut pas rouvrir stdin\n" +#~ msgid "entering restore_toc_entries_prefork\n" +#~ msgstr "entrée dans restore_toc_entries_prefork\n" -#~ msgid "%s: out of memory\n" -#~ msgstr "%s : mémoire épuisée\n" +#~ msgid "error during backup\n" +#~ msgstr "erreur lors de la sauvegarde\n" -#~ msgid "" -#~ " --use-set-session-authorization\n" -#~ " use SET SESSION AUTHORIZATION commands instead of\n" -#~ " ALTER OWNER commands to set ownership\n" -#~ msgstr "" -#~ " --use-set-session-authorization\n" -#~ " utilise les commandes SET SESSION AUTHORIZATION\n" -#~ " au lieu des commandes ALTER OWNER pour les\n" -#~ " modifier les propriétaires\n" +#~ msgid "error in ListenToWorkers(): %s\n" +#~ msgstr "erreur dans ListenToWorkers(): %s\n" -#~ msgid " --disable-triggers disable triggers during data-only restore\n" -#~ msgstr "" -#~ " --disable-triggers désactiver les déclencheurs lors de la\n" -#~ " restauration des données seules\n" +#~ msgid "error processing a parallel work item\n" +#~ msgstr "erreur durant le traitement en parallèle d'un item\n" -#~ msgid " -O, --no-owner skip restoration of object ownership\n" -#~ msgstr "" -#~ " -O, --no-owner omettre la restauration des possessions des\n" -#~ " objets\n" +#~ msgid "failed to connect to database\n" +#~ msgstr "n'a pas pu se connecter à la base de données\n" -#~ msgid " -c, --clean clean (drop) database objects before recreating\n" -#~ msgstr "" -#~ " -c, --clean nettoie/supprime les bases de données avant de\n" -#~ " les créer\n" +#~ msgid "failed to reconnect to database\n" +#~ msgstr "la reconnexion à la base de données a échoué\n" -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version et quitte\n" +#~ msgid "file archiver" +#~ msgstr "programme d'archivage de fichiers" -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide et quitte\n" +#~ msgid "found more than one entry for pg_indexes in pg_class\n" +#~ msgstr "a trouvé plusieurs entrées pour pg_indexes dans la table pg_class\n" -#~ msgid "restoring large object OID %u\n" -#~ msgstr "restauration du « Large Object » d'OID %u\n" +#~ msgid "found more than one pg_database entry for this database\n" +#~ msgstr "a trouvé plusieurs entrées dans pg_database pour cette base de données\n" -#~ msgid "could not close large object file\n" -#~ msgstr "n'a pas pu fermer le fichier du « Large Object »\n" +#~ msgid "ftell mismatch with expected position -- ftell used" +#~ msgstr "ftell ne correspond pas à la position attendue -- ftell utilisé" -#~ msgid "could not open large object TOC for output: %s\n" -#~ msgstr "n'a pas pu ouvrir la TOC du « Large Object » en sortie : %s\n" +#~ msgid "internal error -- neither th nor fh specified in _tarReadRaw()" +#~ msgstr "erreur interne -- ni th ni fh ne sont précisés dans _tarReadRaw()" -#~ msgid "could not open large object TOC for input: %s\n" -#~ msgstr "n'a pas pu ouvrir la TOC du « Large Object » en entrée : %s\n" +#~ msgid "invalid COPY statement -- could not find \"copy\" in string \"%s\"\n" +#~ msgstr "instruction COPY invalide -- n'a pas pu trouver « copy » dans la chaîne « %s »\n" -#~ msgid "could not close data file after reading\n" -#~ msgstr "n'a pas pu fermer le fichier de données après lecture\n" +#~ msgid "invalid COPY statement -- could not find \"from stdin\" in string \"%s\" starting at position %lu\n" +#~ msgstr "" +#~ "instruction COPY invalide -- n'a pas pu trouver « from stdin » dans la\n" +#~ "chaîne « %s » à partir de la position %lu\n" -#~ msgid "" -#~ "WARNING:\n" -#~ " This format is for demonstration purposes; it is not intended for\n" -#~ " normal use. Files will be written in the current working directory.\n" +#~ msgid "mismatch in actual vs. predicted file position (%s vs. %s)\n" #~ msgstr "" -#~ "ATTENTION :\n" -#~ " Ce format est présent dans un but de démonstration ; il n'est pas prévu\n" -#~ " pour une utilisation normale. Les fichiers seront écrits dans le\n" -#~ " répertoire actuel.\n" +#~ "pas de correspondance entre la position réelle et celle prévue du fichier\n" +#~ "(%s vs. %s)\n" -#~ msgid "file archiver" -#~ msgstr "programme d'archivage de fichiers" +#~ msgid "missing pg_database entry for database \"%s\"\n" +#~ msgstr "entrée manquante dans pg_database pour la base de données « %s »\n" -#~ msgid "SQL command failed\n" -#~ msgstr "la commande SQL a échoué\n" +#~ msgid "missing pg_database entry for this database\n" +#~ msgstr "entrée pg_database manquante pour cette base de données\n" -#~ msgid "found more than one entry for pg_indexes in pg_class\n" -#~ msgstr "a trouvé plusieurs entrées pour pg_indexes dans la table pg_class\n" +#~ msgid "moving from position %s to next member at file position %s\n" +#~ msgstr "déplacement de la position %s vers le prochain membre à la position %s du fichier\n" -#~ msgid "could not find entry for pg_indexes in pg_class\n" -#~ msgstr "n'a pas pu trouver l'entrée de pg_indexes dans pg_class\n" +#~ msgid "no item ready\n" +#~ msgstr "aucun élément prêt\n" -#~ msgid "found more than one pg_database entry for this database\n" -#~ msgstr "a trouvé plusieurs entrées dans pg_database pour cette base de données\n" +#~ msgid "no label definitions found for enum ID %u\n" +#~ msgstr "aucune définition de label trouvée pour l'ID enum %u\n" -#~ msgid "missing pg_database entry for this database\n" -#~ msgstr "entrée pg_database manquante pour cette base de données\n" +#~ msgid "now at file position %s\n" +#~ msgstr "maintenant en position %s du fichier\n" + +#~ msgid "options --inserts/--column-inserts and -o/--oids cannot be used together\n" +#~ msgstr "" +#~ "les options « --inserts/--column-inserts » et « -o/--oids » ne\n" +#~ "peuvent pas être utilisées conjointement\n" + +#~ msgid "parallel archiver" +#~ msgstr "archiveur en parallèle" + +#~ msgid "parallel_restore should not return\n" +#~ msgstr "parallel_restore ne devrait pas retourner\n" + +#~ msgid "pclose failed: %s" +#~ msgstr "échec de pclose : %s" #~ msgid "query returned %d foreign server entry for foreign table \"%s\"\n" #~ msgid_plural "query returned %d foreign server entries for foreign table \"%s\"\n" #~ msgstr[0] "la requête a renvoyé %d entrée de serveur distant pour la table distante « %s »\n" #~ msgstr[1] "la requête a renvoyé %d entrées de serveurs distants pour la table distante « %s »\n" -#~ msgid "dumpDatabase(): could not find pg_largeobject_metadata.relfrozenxid\n" -#~ msgstr "dumpDatabase() : n'a pas pu trouver pg_largeobject_metadata.relfrozenxid\n" +#~ msgid "query returned %d row instead of one: %s\n" +#~ msgid_plural "query returned %d rows instead of one: %s\n" +#~ msgstr[0] "la requête a renvoyé %d ligne au lieu d'une seule : %s\n" +#~ msgstr[1] "la requête a renvoyé %d lignes au lieu d'une seule : %s\n" -#~ msgid "dumpDatabase(): could not find pg_largeobject.relfrozenxid\n" -#~ msgstr "dumpDatabase() : n'a pas pu trouver pg_largeobject.relfrozenxid\n" +#~ msgid "query returned %d rows instead of one: %s\n" +#~ msgstr "la requête a renvoyé %d lignes au lieu d'une seule : %s\n" #~ msgid "query returned more than one (%d) pg_database entry for database \"%s\"\n" #~ msgstr "" #~ "la requête a renvoyé plusieurs (%d) entrées pg_database pour la base de\n" #~ "données « %s »\n" -#~ msgid "missing pg_database entry for database \"%s\"\n" -#~ msgstr "entrée manquante dans pg_database pour la base de données « %s »\n" +#~ msgid "query returned no rows: %s\n" +#~ msgstr "la requête n'a renvoyé aucune ligne : %s\n" -#~ msgid "*** aborted because of error\n" -#~ msgstr "*** interrompu du fait d'erreurs\n" +#~ msgid "query to get data of sequence \"%s\" returned name \"%s\"\n" +#~ msgstr "" +#~ "la requête permettant d'obtenir les données de la séquence « %s » a renvoyé\n" +#~ "le nom « %s »\n" -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version puis quitte\n" +#~ msgid "query was: %s\n" +#~ msgstr "la requête était : %s\n" -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide puis quitte\n" +#~ msgid "read %lu byte into lookahead buffer\n" +#~ msgid_plural "read %lu bytes into lookahead buffer\n" +#~ msgstr[0] "lecture de %lu octet dans le tampon prévisionnel\n" +#~ msgstr[1] "lecture de %lu octets dans le tampon prévisionnel\n" -#~ msgid "mismatch in actual vs. predicted file position (%s vs. %s)\n" -#~ msgstr "" -#~ "pas de correspondance entre la position réelle et celle prévue du fichier\n" -#~ "(%s vs. %s)\n" +#~ msgid "read TOC entry %d (ID %d) for %s %s\n" +#~ msgstr "lecture de l'entrée %d de la TOC (ID %d) pour %s %s\n" -#~ msgid "could not output padding at end of tar member\n" -#~ msgstr "n'a pas pu remplir la fin du membre de tar\n" +#~ msgid "reading extended statistics for table \"%s.%s\"\n" +#~ msgstr "lecture des statistiques étendues pour la table « %s.%s »\n" -#~ msgid "could not write null block at end of tar archive\n" -#~ msgstr "n'a pas pu écrire le bloc nul à la fin de l'archive tar\n" +#~ msgid "reading policies for table \"%s.%s\"" +#~ msgstr "lecture des politiques pour la table « %s.%s »" -#~ msgid "could not write byte\n" -#~ msgstr "n'a pas pu écrire l'octet\n" +#~ msgid "reading publication membership for table \"%s.%s\"" +#~ msgstr "lecture des appartenances aux publications pour la table « %s.%s »" -#~ msgid "could not write byte: %s\n" -#~ msgstr "n'a pas pu écrire un octet : %s\n" +#~ msgid "reading row security enabled for table \"%s.%s\"" +#~ msgstr "lecture de l'activation de la sécurité niveau ligne pour la table « %s.%s »" -#~ msgid "unexpected end of file\n" -#~ msgstr "fin de fichier inattendu\n" +#~ msgid "reducing dependencies for %d\n" +#~ msgstr "réduction des dépendances pour %d\n" -#~ msgid "could not write to custom output routine\n" -#~ msgstr "n'a pas pu écrire vers la routine de sauvegarde personnalisée\n" +#~ msgid "requested %d byte, got %d from lookahead and %d from file\n" +#~ msgid_plural "requested %d bytes, got %d from lookahead and %d from file\n" +#~ msgstr[0] "%d octet requis, %d obtenu de « lookahead » et %d du fichier\n" +#~ msgstr[1] "%d octets requis, %d obtenus de « lookahead » et %d du fichier\n" -#~ msgid "could not open output file \"%s\" for writing\n" -#~ msgstr "n'a pas pu ouvrir le fichier de sauvegarde « %s » en écriture\n" +#~ msgid "restoring large object OID %u\n" +#~ msgstr "restauration du « Large Object » d'OID %u\n" -#~ msgid "archive member too large for tar format\n" -#~ msgstr "membre de l'archive trop volumineux pour le format tar\n" +#~ msgid "saving large object properties\n" +#~ msgstr "sauvegarde des propriétés des « Large Objects »\n" -#~ msgid "error in ListenToWorkers(): %s\n" -#~ msgstr "erreur dans ListenToWorkers(): %s\n" +#~ msgid "schema with OID %u does not exist\n" +#~ msgstr "le schéma d'OID %u n'existe pas\n" + +#~ msgid "select() failed: %s\n" +#~ msgstr "échec de select() : %s\n" + +#~ msgid "server version must be at least 7.3 to use schema selection switches\n" +#~ msgstr "" +#~ "le serveur doit être de version 7.3 ou supérieure pour utiliser les options\n" +#~ "de sélection du schéma\n" + +#~ msgid "setting owner and privileges for %s \"%s\"\n" +#~ msgstr "réglage du propriétaire et des droits pour %s « %s »\n" + +#~ msgid "setting owner and privileges for %s \"%s.%s\"\n" +#~ msgstr "réglage du propriétaire et des droits pour %s « %s.%s»\n" + +#~ msgid "skipping tar member %s\n" +#~ msgstr "omission du membre %s du tar\n" + +#~ msgid "sorter" +#~ msgstr "tri" + +#~ msgid "tar archiver" +#~ msgstr "archiveur tar" #~ msgid "terminated by user\n" #~ msgstr "terminé par l'utilisateur\n" +#~ msgid "transferring dependency %d -> %d to %d\n" +#~ msgstr "transfert de la dépendance %d -> %d vers %d\n" + +#~ msgid "unexpected end of file\n" +#~ msgstr "fin de fichier inattendu\n" + +#~ msgid "unrecognized collation provider: %s\n" +#~ msgstr "fournisseur de collationnement non reconnu : %s\n" + #~ msgid "unrecognized command on communication channel: %s\n" #~ msgstr "commande inconnue sur le canal de communucation: %s\n" -#~ msgid "could not get relation name for OID %u: %s\n" -#~ msgstr "n'a pas pu obtenir le nom de la relation pour l'OID %u: %s\n" - #~ msgid "worker is terminating\n" #~ msgstr "le worker est en cours d'arrêt\n" -#~ msgid "reading extended statistics for table \"%s.%s\"\n" -#~ msgstr "lecture des statistiques étendues pour la table « %s.%s »\n" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapporter les bogues à .\n" - -#~ msgid "ftell mismatch with expected position -- ftell used" -#~ msgstr "ftell ne correspond pas à la position attendue -- ftell utilisé" - -#~ msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to lack of data offsets in archive" -#~ msgstr "" -#~ "n'a pas pu trouver l'identifiant de bloc %d dans l'archive --\n" -#~ "il est possible que cela soit dû à une demande de restauration dans un ordre\n" -#~ "différent, qui n'a pas pu être géré à cause d'un manque d'information de\n" -#~ "position dans l'archive" +#~ msgid "worker process crashed: status %d\n" +#~ msgstr "crash du processus worker : statut %d\n" diff -Nru postgresql-13-13.4/src/bin/pg_dump/po/ru.po postgresql-13-13.7/src/bin/pg_dump/po/ru.po --- postgresql-13-13.4/src/bin/pg_dump/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -5,13 +5,13 @@ # Oleg Bartunov , 2004. # Sergey Burladyan , 2012. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022. msgid "" msgstr "" "Project-Id-Version: pg_dump (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-02-08 07:28+0300\n" -"PO-Revision-Date: 2020-11-09 08:28+0300\n" +"POT-Creation-Date: 2022-04-26 13:44+0300\n" +"PO-Revision-Date: 2022-02-07 11:35+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -36,42 +36,42 @@ msgid "warning: " msgstr "предупреждение: " -#: ../../common/exec.c:137 ../../common/exec.c:254 ../../common/exec.c:300 +#: ../../common/exec.c:142 ../../common/exec.c:259 ../../common/exec.c:305 #, c-format msgid "could not identify current directory: %m" msgstr "не удалось определить текущий каталог: %m" -#: ../../common/exec.c:156 +#: ../../common/exec.c:161 #, c-format msgid "invalid binary \"%s\"" msgstr "неверный исполняемый файл \"%s\"" -#: ../../common/exec.c:206 +#: ../../common/exec.c:211 #, c-format msgid "could not read binary \"%s\"" msgstr "не удалось прочитать исполняемый файл \"%s\"" -#: ../../common/exec.c:214 +#: ../../common/exec.c:219 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:270 ../../common/exec.c:309 +#: ../../common/exec.c:275 ../../common/exec.c:314 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: ../../common/exec.c:287 +#: ../../common/exec.c:292 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "не удалось прочитать символическую ссылку \"%s\": %m" -#: ../../common/exec.c:410 +#: ../../common/exec.c:415 #, c-format msgid "pclose failed: %m" msgstr "ошибка pclose: %m" -#: ../../common/exec.c:539 ../../common/exec.c:584 ../../common/exec.c:676 +#: ../../common/exec.c:544 ../../common/exec.c:589 ../../common/exec.c:681 msgid "out of memory" msgstr "нехватка памяти" @@ -311,19 +311,19 @@ msgid "reading subscriptions" msgstr "чтение подписок" -#: common.c:1058 +#: common.c:1060 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "" "нарушение целостности: родительская таблица с OID %u для таблицы \"%s\" (OID " "%u) не найдена" -#: common.c:1100 +#: common.c:1102 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "не удалось разобрать числовой массив \"%s\": слишком много чисел" -#: common.c:1115 +#: common.c:1117 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "не удалось разобрать числовой массив \"%s\": неверный символ в числе" @@ -364,13 +364,13 @@ msgid "could not close compression library: %s" msgstr "не удалось закрыть библиотеку сжатия: %s" -#: compress_io.c:584 compress_io.c:621 pg_backup_tar.c:557 pg_backup_tar.c:560 +#: compress_io.c:584 compress_io.c:621 pg_backup_tar.c:554 pg_backup_tar.c:557 #, c-format msgid "could not read from input file: %s" msgstr "не удалось прочитать входной файл: %s" -#: compress_io.c:623 pg_backup_custom.c:646 pg_backup_directory.c:552 -#: pg_backup_tar.c:793 pg_backup_tar.c:816 +#: compress_io.c:623 pg_backup_custom.c:646 pg_backup_directory.c:553 +#: pg_backup_tar.c:790 pg_backup_tar.c:813 #, c-format msgid "could not read from input file: end of file" msgstr "не удалось прочитать входной файл: конец файла" @@ -416,7 +416,7 @@ #: parallel.c:1415 #, c-format msgid "a worker process died unexpectedly" -msgstr "рабочий процесс неожиданно завершился" +msgstr "рабочий процесс неожиданно прервался" #: parallel.c:1537 parallel.c:1655 #, c-format @@ -463,36 +463,36 @@ msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: не удалось принять соединение (код ошибки: %d)" -#: pg_backup_archiver.c:277 pg_backup_archiver.c:1587 +#: pg_backup_archiver.c:278 pg_backup_archiver.c:1589 #, c-format msgid "could not close output file: %m" msgstr "не удалось закрыть выходной файл: %m" -#: pg_backup_archiver.c:321 pg_backup_archiver.c:325 +#: pg_backup_archiver.c:322 pg_backup_archiver.c:326 #, c-format msgid "archive items not in correct section order" msgstr "в последовательности элементов архива нарушен порядок разделов" -#: pg_backup_archiver.c:331 +#: pg_backup_archiver.c:332 #, c-format msgid "unexpected section code %d" msgstr "неожиданный код раздела %d" -#: pg_backup_archiver.c:368 +#: pg_backup_archiver.c:369 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "" "параллельное восстановление не поддерживается с выбранным форматом архивного " "файла" -#: pg_backup_archiver.c:372 +#: pg_backup_archiver.c:373 #, c-format msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump" msgstr "" "параллельное восстановление возможно только для архивов, созданных pg_dump " "версии 8.0 и новее" -#: pg_backup_archiver.c:390 +#: pg_backup_archiver.c:391 #, c-format msgid "" "cannot restore from compressed archive (compression not supported in this " @@ -501,78 +501,78 @@ "восстановить данные из сжатого архива нельзя (установленная версия не " "поддерживает сжатие)" -#: pg_backup_archiver.c:407 +#: pg_backup_archiver.c:408 #, c-format msgid "connecting to database for restore" msgstr "подключение к базе данных для восстановления" -#: pg_backup_archiver.c:409 +#: pg_backup_archiver.c:410 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "" "прямые подключения к базе данных не поддерживаются в архивах до версии 1.3" -#: pg_backup_archiver.c:452 +#: pg_backup_archiver.c:453 #, c-format msgid "implied data-only restore" msgstr "подразумевается восстановление только данных" -#: pg_backup_archiver.c:518 +#: pg_backup_archiver.c:519 #, c-format msgid "dropping %s %s" msgstr "удаляется %s %s" -#: pg_backup_archiver.c:613 +#: pg_backup_archiver.c:614 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "не удалось определить, куда добавить IF EXISTS в оператор \"%s\"" -#: pg_backup_archiver.c:769 pg_backup_archiver.c:771 +#: pg_backup_archiver.c:770 pg_backup_archiver.c:772 #, c-format msgid "warning from original dump file: %s" msgstr "предупреждение из исходного файла: %s" -#: pg_backup_archiver.c:786 +#: pg_backup_archiver.c:787 #, c-format msgid "creating %s \"%s.%s\"" msgstr "создаётся %s \"%s.%s\"" -#: pg_backup_archiver.c:789 +#: pg_backup_archiver.c:790 #, c-format msgid "creating %s \"%s\"" msgstr "создаётся %s \"%s\"" -#: pg_backup_archiver.c:839 +#: pg_backup_archiver.c:840 #, c-format msgid "connecting to new database \"%s\"" msgstr "подключение к новой базе данных \"%s\"" -#: pg_backup_archiver.c:866 +#: pg_backup_archiver.c:867 #, c-format msgid "processing %s" msgstr "обрабатывается %s" -#: pg_backup_archiver.c:886 +#: pg_backup_archiver.c:887 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "обрабатываются данные таблицы \"%s.%s\"" -#: pg_backup_archiver.c:948 +#: pg_backup_archiver.c:949 #, c-format msgid "executing %s %s" msgstr "выполняется %s %s" -#: pg_backup_archiver.c:987 +#: pg_backup_archiver.c:988 #, c-format msgid "disabling triggers for %s" msgstr "отключаются триггеры таблицы %s" -#: pg_backup_archiver.c:1013 +#: pg_backup_archiver.c:1014 #, c-format msgid "enabling triggers for %s" msgstr "включаются триггеры таблицы %s" -#: pg_backup_archiver.c:1041 +#: pg_backup_archiver.c:1042 #, c-format msgid "" "internal error -- WriteData cannot be called outside the context of a " @@ -581,12 +581,12 @@ "внутренняя ошибка -- WriteData нельзя вызывать вне контекста процедуры " "DataDumper" -#: pg_backup_archiver.c:1224 +#: pg_backup_archiver.c:1225 #, c-format msgid "large-object output not supported in chosen format" msgstr "выбранный формат не поддерживает выгрузку больших объектов" -#: pg_backup_archiver.c:1282 +#: pg_backup_archiver.c:1283 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" @@ -594,55 +594,55 @@ msgstr[1] "восстановлено %d больших объекта" msgstr[2] "восстановлено %d больших объектов" -#: pg_backup_archiver.c:1303 pg_backup_tar.c:736 +#: pg_backup_archiver.c:1304 pg_backup_tar.c:733 #, c-format msgid "restoring large object with OID %u" msgstr "восстановление большого объекта с OID %u" -#: pg_backup_archiver.c:1315 +#: pg_backup_archiver.c:1316 #, c-format msgid "could not create large object %u: %s" msgstr "не удалось создать большой объект %u: %s" -#: pg_backup_archiver.c:1320 pg_dump.c:3552 +#: pg_backup_archiver.c:1321 pg_dump.c:3587 #, c-format msgid "could not open large object %u: %s" msgstr "не удалось открыть большой объект %u: %s" -#: pg_backup_archiver.c:1377 +#: pg_backup_archiver.c:1378 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "не удалось открыть файл оглавления \"%s\": %m" -#: pg_backup_archiver.c:1417 +#: pg_backup_archiver.c:1418 #, c-format msgid "line ignored: %s" msgstr "строка проигнорирована: %s" -#: pg_backup_archiver.c:1424 +#: pg_backup_archiver.c:1425 #, c-format msgid "could not find entry for ID %d" msgstr "не найдена запись для ID %d" -#: pg_backup_archiver.c:1445 pg_backup_directory.c:222 -#: pg_backup_directory.c:598 +#: pg_backup_archiver.c:1446 pg_backup_directory.c:222 +#: pg_backup_directory.c:599 #, c-format msgid "could not close TOC file: %m" msgstr "не удалось закрыть файл оглавления: %m" -#: pg_backup_archiver.c:1559 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:585 pg_backup_directory.c:648 -#: pg_backup_directory.c:667 pg_dumpall.c:484 +#: pg_backup_archiver.c:1560 pg_backup_custom.c:156 pg_backup_directory.c:332 +#: pg_backup_directory.c:586 pg_backup_directory.c:649 +#: pg_backup_directory.c:668 pg_dumpall.c:484 #, c-format msgid "could not open output file \"%s\": %m" msgstr "не удалось открыть выходной файл \"%s\": %m" -#: pg_backup_archiver.c:1561 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1562 pg_backup_custom.c:162 #, c-format msgid "could not open output file: %m" msgstr "не удалось открыть выходной файл: %m" -#: pg_backup_archiver.c:1654 +#: pg_backup_archiver.c:1656 #, c-format msgid "wrote %lu byte of large object data (result = %lu)" msgid_plural "wrote %lu bytes of large object data (result = %lu)" @@ -650,211 +650,211 @@ msgstr[1] "записано %lu байта данных большого объекта (результат = %lu)" msgstr[2] "записано %lu байт данных большого объекта (результат = %lu)" -#: pg_backup_archiver.c:1659 +#: pg_backup_archiver.c:1661 #, c-format msgid "could not write to large object (result: %lu, expected: %lu)" msgstr "не удалось записать большой объект (результат: %lu, ожидалось: %lu)" -#: pg_backup_archiver.c:1749 +#: pg_backup_archiver.c:1751 #, c-format msgid "while INITIALIZING:" msgstr "при инициализации:" -#: pg_backup_archiver.c:1754 +#: pg_backup_archiver.c:1756 #, c-format msgid "while PROCESSING TOC:" msgstr "при обработке оглавления:" -#: pg_backup_archiver.c:1759 +#: pg_backup_archiver.c:1761 #, c-format msgid "while FINALIZING:" msgstr "при завершении:" -#: pg_backup_archiver.c:1764 +#: pg_backup_archiver.c:1766 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "из записи оглавления %d; %u %u %s %s %s" -#: pg_backup_archiver.c:1840 +#: pg_backup_archiver.c:1842 #, c-format msgid "bad dumpId" msgstr "неверный dumpId" -#: pg_backup_archiver.c:1861 +#: pg_backup_archiver.c:1863 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "неверный dumpId таблицы в элементе TABLE DATA" -#: pg_backup_archiver.c:1953 +#: pg_backup_archiver.c:1955 #, c-format msgid "unexpected data offset flag %d" msgstr "неожиданный флаг смещения данных: %d" -#: pg_backup_archiver.c:1966 +#: pg_backup_archiver.c:1968 #, c-format msgid "file offset in dump file is too large" msgstr "слишком большое смещение в файле выгрузки" -#: pg_backup_archiver.c:2103 pg_backup_archiver.c:2113 +#: pg_backup_archiver.c:2106 pg_backup_archiver.c:2116 #, c-format msgid "directory name too long: \"%s\"" msgstr "слишком длинное имя каталога: \"%s\"" -#: pg_backup_archiver.c:2121 +#: pg_backup_archiver.c:2124 #, c-format msgid "" "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not " "exist)" msgstr "каталог \"%s\" не похож на архивный (в нём отсутствует \"toc.dat\")" -#: pg_backup_archiver.c:2129 pg_backup_custom.c:173 pg_backup_custom.c:812 -#: pg_backup_directory.c:207 pg_backup_directory.c:394 +#: pg_backup_archiver.c:2132 pg_backup_custom.c:173 pg_backup_custom.c:812 +#: pg_backup_directory.c:207 pg_backup_directory.c:395 #, c-format msgid "could not open input file \"%s\": %m" msgstr "не удалось открыть входной файл \"%s\": %m" -#: pg_backup_archiver.c:2136 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2139 pg_backup_custom.c:179 #, c-format msgid "could not open input file: %m" msgstr "не удалось открыть входной файл: %m" -#: pg_backup_archiver.c:2142 +#: pg_backup_archiver.c:2145 #, c-format msgid "could not read input file: %m" msgstr "не удалось прочитать входной файл: %m" -#: pg_backup_archiver.c:2144 +#: pg_backup_archiver.c:2147 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "входной файл слишком короткий (прочитано байт: %lu, ожидалось: 5)" -#: pg_backup_archiver.c:2229 +#: pg_backup_archiver.c:2179 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "" "входной файл, видимо, имеет текстовый формат. Загрузите его с помощью psql." -#: pg_backup_archiver.c:2235 +#: pg_backup_archiver.c:2185 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "входной файл не похож на архив (возможно, слишком мал?)" -#: pg_backup_archiver.c:2241 +#: pg_backup_archiver.c:2191 #, c-format msgid "input file does not appear to be a valid archive" msgstr "входной файл не похож на архив" -#: pg_backup_archiver.c:2261 +#: pg_backup_archiver.c:2200 #, c-format msgid "could not close input file: %m" msgstr "не удалось закрыть входной файл: %m" -#: pg_backup_archiver.c:2373 +#: pg_backup_archiver.c:2316 #, c-format msgid "unrecognized file format \"%d\"" msgstr "неопознанный формат файла: \"%d\"" -#: pg_backup_archiver.c:2455 pg_backup_archiver.c:4458 +#: pg_backup_archiver.c:2398 pg_backup_archiver.c:4422 #, c-format msgid "finished item %d %s %s" msgstr "закончен объект %d %s %s" -#: pg_backup_archiver.c:2459 pg_backup_archiver.c:4471 +#: pg_backup_archiver.c:2402 pg_backup_archiver.c:4435 #, c-format msgid "worker process failed: exit code %d" msgstr "рабочий процесс завершился с кодом возврата %d" -#: pg_backup_archiver.c:2579 +#: pg_backup_archiver.c:2522 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "ID записи %d вне диапазона - возможно повреждено оглавление" -#: pg_backup_archiver.c:2646 +#: pg_backup_archiver.c:2589 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "восстановление таблиц со свойством WITH OIDS больше не поддерживается" -#: pg_backup_archiver.c:2728 +#: pg_backup_archiver.c:2671 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "нераспознанная кодировка \"%s\"" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2676 #, c-format msgid "invalid ENCODING item: %s" msgstr "неверный элемент ENCODING: %s" -#: pg_backup_archiver.c:2751 +#: pg_backup_archiver.c:2694 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "неверный элемент STDSTRINGS: %s" -#: pg_backup_archiver.c:2776 +#: pg_backup_archiver.c:2719 #, c-format msgid "schema \"%s\" not found" msgstr "схема \"%s\" не найдена" -#: pg_backup_archiver.c:2783 +#: pg_backup_archiver.c:2726 #, c-format msgid "table \"%s\" not found" msgstr "таблица \"%s\" не найдена" -#: pg_backup_archiver.c:2790 +#: pg_backup_archiver.c:2733 #, c-format msgid "index \"%s\" not found" msgstr "индекс \"%s\" не найден" -#: pg_backup_archiver.c:2797 +#: pg_backup_archiver.c:2740 #, c-format msgid "function \"%s\" not found" msgstr "функция \"%s\" не найдена" -#: pg_backup_archiver.c:2804 +#: pg_backup_archiver.c:2747 #, c-format msgid "trigger \"%s\" not found" msgstr "триггер \"%s\" не найден" -#: pg_backup_archiver.c:3196 +#: pg_backup_archiver.c:3139 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "не удалось переключить пользователя сессии на \"%s\": %s" -#: pg_backup_archiver.c:3328 +#: pg_backup_archiver.c:3271 #, c-format msgid "could not set search_path to \"%s\": %s" msgstr "не удалось присвоить search_path значение \"%s\": %s" -#: pg_backup_archiver.c:3390 +#: pg_backup_archiver.c:3333 #, c-format msgid "could not set default_tablespace to %s: %s" msgstr "не удалось задать для default_tablespace значение %s: %s" -#: pg_backup_archiver.c:3435 +#: pg_backup_archiver.c:3378 #, c-format msgid "could not set default_table_access_method: %s" msgstr "не удалось задать default_table_access_method: %s" -#: pg_backup_archiver.c:3527 pg_backup_archiver.c:3685 +#: pg_backup_archiver.c:3470 pg_backup_archiver.c:3628 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "неизвестно, как назначить владельца для объекта типа \"%s\"" -#: pg_backup_archiver.c:3789 +#: pg_backup_archiver.c:3731 #, c-format msgid "did not find magic string in file header" msgstr "в заголовке файла не найдена нужная сигнатура" -#: pg_backup_archiver.c:3802 +#: pg_backup_archiver.c:3745 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "неподдерживаемая версия (%d.%d) в заголовке файла" -#: pg_backup_archiver.c:3807 +#: pg_backup_archiver.c:3750 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "несоответствие размера integer (%lu)" -#: pg_backup_archiver.c:3811 +#: pg_backup_archiver.c:3754 #, c-format msgid "" "archive was made on a machine with larger integers, some operations might " @@ -863,12 +863,12 @@ "архив был сделан на компьютере большей разрядности -- возможен сбой " "некоторых операций" -#: pg_backup_archiver.c:3821 +#: pg_backup_archiver.c:3764 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "ожидаемый формат (%d) отличается от формата, указанного в файле (%d)" -#: pg_backup_archiver.c:3837 +#: pg_backup_archiver.c:3779 #, c-format msgid "" "archive is compressed, but this installation does not support compression -- " @@ -877,42 +877,42 @@ "архив сжат, но установленная версия не поддерживает сжатие -- данные " "недоступны" -#: pg_backup_archiver.c:3855 +#: pg_backup_archiver.c:3813 #, c-format msgid "invalid creation date in header" msgstr "неверная дата создания в заголовке" -#: pg_backup_archiver.c:3983 +#: pg_backup_archiver.c:3947 #, c-format msgid "processing item %d %s %s" msgstr "обработка объекта %d %s %s" -#: pg_backup_archiver.c:4062 +#: pg_backup_archiver.c:4026 #, c-format msgid "entering main parallel loop" msgstr "вход в основной параллельный цикл" -#: pg_backup_archiver.c:4073 +#: pg_backup_archiver.c:4037 #, c-format msgid "skipping item %d %s %s" msgstr "объект %d %s %s пропускается" -#: pg_backup_archiver.c:4082 +#: pg_backup_archiver.c:4046 #, c-format msgid "launching item %d %s %s" msgstr "объект %d %s %s запускается" -#: pg_backup_archiver.c:4136 +#: pg_backup_archiver.c:4100 #, c-format msgid "finished main parallel loop" msgstr "основной параллельный цикл закончен" -#: pg_backup_archiver.c:4172 +#: pg_backup_archiver.c:4136 #, c-format msgid "processing missed item %d %s %s" msgstr "обработка пропущенного объекта %d %s %s" -#: pg_backup_archiver.c:4777 +#: pg_backup_archiver.c:4741 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "создать таблицу \"%s\" не удалось, её данные не будут восстановлены" @@ -923,7 +923,7 @@ msgstr "неверный OID большого объекта" #: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:632 -#: pg_backup_custom.c:870 pg_backup_tar.c:1086 pg_backup_tar.c:1091 +#: pg_backup_custom.c:870 pg_backup_tar.c:1083 pg_backup_tar.c:1088 #, c-format msgid "error during file seek: %m" msgstr "ошибка при перемещении в файле: %m" @@ -969,7 +969,7 @@ msgstr "не удалось прочитать входной файл: %m" #: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:948 -#: pg_backup_tar.c:1089 +#: pg_backup_tar.c:1086 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "не удалось определить позицию в файле архива: %m" @@ -1123,46 +1123,61 @@ #: pg_backup_directory.c:195 #, c-format msgid "could not create directory \"%s\": %m" -msgstr "создать каталог \"%s\" не удалось: %m" +msgstr "не удалось создать каталог \"%s\": %m" -#: pg_backup_directory.c:355 pg_backup_directory.c:496 -#: pg_backup_directory.c:532 +#: pg_backup_directory.c:355 pg_backup_directory.c:497 +#: pg_backup_directory.c:533 #, c-format msgid "could not write to output file: %s" msgstr "не удалось записать в выходной файл: %s" -#: pg_backup_directory.c:406 +#: pg_backup_directory.c:373 +#, c-format +msgid "could not close data file: %m" +msgstr "не удалось закрыть файл данных: %m" + +#: pg_backup_directory.c:407 #, c-format msgid "could not close data file \"%s\": %m" msgstr "не удалось закрыть файл данных \"%s\": %m" -#: pg_backup_directory.c:446 +#: pg_backup_directory.c:447 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "" "не удалось открыть для чтения файл оглавления больших объектов \"%s\": %m" -#: pg_backup_directory.c:457 +#: pg_backup_directory.c:458 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "неверная строка в файле оглавления больших объектов \"%s\": \"%s\"" -#: pg_backup_directory.c:466 +#: pg_backup_directory.c:467 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "ошибка чтения файла оглавления больших объектов \"%s\"" -#: pg_backup_directory.c:470 +#: pg_backup_directory.c:471 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "не удалось закрыть файл оглавления больших объектов \"%s\": %m" -#: pg_backup_directory.c:689 +#: pg_backup_directory.c:685 +#, c-format +msgid "could not close blob data file: %m" +msgstr "не удалось закрыть файл данных BLOB: %m" + +#: pg_backup_directory.c:691 #, c-format msgid "could not write to blobs TOC file" msgstr "не удалось записать в файл оглавления больших объектов" -#: pg_backup_directory.c:721 +#: pg_backup_directory.c:705 +#, c-format +msgid "could not close blobs TOC file: %m" +msgstr "не удалось закрыть файл оглавления BLOB: %m" + +#: pg_backup_directory.c:724 #, c-format msgid "file name too long: \"%s\"" msgstr "слишком длинное имя файла: \"%s\"" @@ -1182,7 +1197,7 @@ msgid "could not open TOC file for output: %m" msgstr "не удалось открыть для записи файл оглавления: %m" -#: pg_backup_tar.c:203 pg_backup_tar.c:358 +#: pg_backup_tar.c:203 pg_backup_tar.c:352 #, c-format msgid "compression is not supported by tar archive format" msgstr "формат архива tar не поддерживает сжатие" @@ -1197,52 +1212,52 @@ msgid "could not open TOC file for input: %m" msgstr "не удалось открыть для чтения файл оглавления: %m" -#: pg_backup_tar.c:344 +#: pg_backup_tar.c:338 #, c-format msgid "could not find file \"%s\" in archive" msgstr "не удалось найти файл \"%s\" в архиве" -#: pg_backup_tar.c:410 +#: pg_backup_tar.c:404 #, c-format msgid "could not generate temporary file name: %m" msgstr "не удалось получить имя для временного файла: %m" -#: pg_backup_tar.c:421 +#: pg_backup_tar.c:415 #, c-format msgid "could not open temporary file" msgstr "не удалось открыть временный файл" -#: pg_backup_tar.c:448 +#: pg_backup_tar.c:444 #, c-format -msgid "could not close tar member" -msgstr "не удалось закрыть компонент tar-архива" +msgid "could not close tar member: %m" +msgstr "не удалось закрыть компонент tar-архива: %m" -#: pg_backup_tar.c:691 +#: pg_backup_tar.c:688 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "недопустимый синтаксис оператора COPY: \"%s\"" -#: pg_backup_tar.c:958 +#: pg_backup_tar.c:955 #, c-format msgid "invalid OID for large object (%u)" msgstr "неверный OID для большого объекта (%u)" -#: pg_backup_tar.c:1105 +#: pg_backup_tar.c:1102 #, c-format msgid "could not close temporary file: %m" msgstr "не удалось закрыть временный файл: %m" -#: pg_backup_tar.c:1114 +#: pg_backup_tar.c:1111 #, c-format msgid "actual file length (%s) does not match expected (%s)" msgstr "действительная длина файла (%s) не равна ожидаемой (%s)" -#: pg_backup_tar.c:1171 pg_backup_tar.c:1201 +#: pg_backup_tar.c:1168 pg_backup_tar.c:1198 #, c-format msgid "could not find header for file \"%s\" in tar archive" msgstr "в архиве tar не найден заголовок для файла \"%s\"" -#: pg_backup_tar.c:1189 +#: pg_backup_tar.c:1186 #, c-format msgid "" "restoring data out of order is not supported in this archive format: \"%s\" " @@ -1252,7 +1267,7 @@ "поддерживается: требуется компонент \"%s\", но в файле архива прежде идёт " "\"%s\"." -#: pg_backup_tar.c:1234 +#: pg_backup_tar.c:1231 #, c-format msgid "incomplete tar header found (%lu byte)" msgid_plural "incomplete tar header found (%lu bytes)" @@ -1260,7 +1275,7 @@ msgstr[1] "найден неполный заголовок tar (размер %lu байта)" msgstr[2] "найден неполный заголовок tar (размер %lu байт)" -#: pg_backup_tar.c:1285 +#: pg_backup_tar.c:1282 #, c-format msgid "" "corrupt tar header found in %s (expected %d, computed %d) file position %s" @@ -1920,134 +1935,134 @@ msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Ошибка выгрузки таблицы \"%s\": сбой в PQgetResult()." -#: pg_dump.c:2739 +#: pg_dump.c:2061 +#, c-format +msgid "wrong number of fields retrieved from table \"%s\"" +msgstr "из таблицы \"%s\" получено неверное количество полей" + +#: pg_dump.c:2774 #, c-format msgid "saving database definition" msgstr "сохранение определения базы данных" -#: pg_dump.c:3211 +#: pg_dump.c:3246 #, c-format msgid "saving encoding = %s" msgstr "сохранение кодировки (%s)" -#: pg_dump.c:3236 +#: pg_dump.c:3271 #, c-format msgid "saving standard_conforming_strings = %s" msgstr "сохранение standard_conforming_strings (%s)" -#: pg_dump.c:3275 +#: pg_dump.c:3310 #, c-format msgid "could not parse result of current_schemas()" msgstr "не удалось разобрать результат current_schemas()" -#: pg_dump.c:3294 +#: pg_dump.c:3329 #, c-format msgid "saving search_path = %s" -msgstr "сохранение search_path (%s)" +msgstr "сохранение search_path = %s" -#: pg_dump.c:3334 +#: pg_dump.c:3369 #, c-format msgid "reading large objects" msgstr "чтение больших объектов" -#: pg_dump.c:3516 +#: pg_dump.c:3551 #, c-format msgid "saving large objects" msgstr "сохранение больших объектов" -#: pg_dump.c:3562 +#: pg_dump.c:3597 #, c-format msgid "error reading large object %u: %s" msgstr "ошибка чтения большого объекта %u: %s" -#: pg_dump.c:3614 +#: pg_dump.c:3681 #, c-format -msgid "reading row security enabled for table \"%s.%s\"" -msgstr "чтение информации о защите строк для таблицы \"%s.%s\"" +msgid "reading row-level security policies" +msgstr "чтение политик защиты на уровне строк" -#: pg_dump.c:3645 -#, c-format -msgid "reading policies for table \"%s.%s\"" -msgstr "чтение политик таблицы \"%s.%s\"" - -#: pg_dump.c:3797 +#: pg_dump.c:3824 #, c-format msgid "unexpected policy command type: %c" msgstr "нераспознанный тип команды в политике: %c" -#: pg_dump.c:3951 +#: pg_dump.c:3978 #, c-format msgid "owner of publication \"%s\" appears to be invalid" msgstr "у публикации \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:4241 +#: pg_dump.c:4268 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "" "подписки не выгружены, так как текущий пользователь не суперпользователь" -#: pg_dump.c:4295 +#: pg_dump.c:4322 #, c-format msgid "owner of subscription \"%s\" appears to be invalid" msgstr "у подписки \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:4339 +#: pg_dump.c:4366 #, c-format msgid "could not parse subpublications array" msgstr "не удалось разобрать массив subpublications" -#: pg_dump.c:4661 +#: pg_dump.c:4688 #, c-format msgid "could not find parent extension for %s %s" msgstr "не удалось найти родительское расширение для %s %s" # TO REVIEW -#: pg_dump.c:4793 +#: pg_dump.c:4820 #, c-format msgid "owner of schema \"%s\" appears to be invalid" msgstr "у схемы \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:4816 +#: pg_dump.c:4843 #, c-format msgid "schema with OID %u does not exist" msgstr "схема с OID %u не существует" -#: pg_dump.c:5141 +#: pg_dump.c:5169 #, c-format msgid "owner of data type \"%s\" appears to be invalid" msgstr "у типа данных \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:5226 +#: pg_dump.c:5254 #, c-format msgid "owner of operator \"%s\" appears to be invalid" msgstr "у оператора \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:5528 +#: pg_dump.c:5556 #, c-format msgid "owner of operator class \"%s\" appears to be invalid" msgstr "у класса операторов \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:5612 +#: pg_dump.c:5640 #, c-format msgid "owner of operator family \"%s\" appears to be invalid" msgstr "у семейства операторов \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:5781 +#: pg_dump.c:5809 #, c-format msgid "owner of aggregate function \"%s\" appears to be invalid" msgstr "у агрегатной функции \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:6041 +#: pg_dump.c:6069 #, c-format msgid "owner of function \"%s\" appears to be invalid" msgstr "у функции \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:6869 +#: pg_dump.c:6897 #, c-format msgid "owner of table \"%s\" appears to be invalid" msgstr "у таблицы \"%s\" по-видимому неправильный владелец" -#: pg_dump.c:6911 pg_dump.c:17426 +#: pg_dump.c:6939 pg_dump.c:17498 #, c-format msgid "" "failed sanity check, parent table with OID %u of sequence with OID %u not " @@ -2056,17 +2071,17 @@ "нарушение целостности: по OID %u не удалось найти родительскую таблицу " "последовательности с OID %u" -#: pg_dump.c:7053 +#: pg_dump.c:7081 #, c-format msgid "reading indexes for table \"%s.%s\"" msgstr "чтение индексов таблицы \"%s.%s\"" -#: pg_dump.c:7468 +#: pg_dump.c:7496 #, c-format msgid "reading foreign key constraints for table \"%s.%s\"" msgstr "чтение ограничений внешних ключей таблицы \"%s.%s\"" -#: pg_dump.c:7749 +#: pg_dump.c:7777 #, c-format msgid "" "failed sanity check, parent table with OID %u of pg_rewrite entry with OID " @@ -2075,46 +2090,46 @@ "нарушение целостности: по OID %u не удалось найти родительскую таблицу для " "записи pg_rewrite с OID %u" -#: pg_dump.c:7832 +#: pg_dump.c:7861 #, c-format msgid "reading triggers for table \"%s.%s\"" msgstr "чтение триггеров таблицы \"%s.%s\"" -#: pg_dump.c:7965 +#: pg_dump.c:8043 #, c-format msgid "" "query produced null referenced table name for foreign key trigger \"%s\" on " "table \"%s\" (OID of table: %u)" msgstr "" -"запрос вернул NULL вместо имени целевой таблицы для триггера внешнего ключа " -"\"%s\" в таблице \"%s\" (OID таблицы: %u)" +"запрос выдал NULL вместо имени целевой таблицы для триггера внешнего ключа " +"\"%s\" в таблице \"%s\" (OID целевой таблицы: %u)" -#: pg_dump.c:8520 +#: pg_dump.c:8598 #, c-format msgid "finding the columns and types of table \"%s.%s\"" msgstr "поиск столбцов и типов таблицы \"%s.%s\"" -#: pg_dump.c:8656 +#: pg_dump.c:8734 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "неверная нумерация столбцов в таблице \"%s\"" -#: pg_dump.c:8693 +#: pg_dump.c:8771 #, c-format msgid "finding default expressions of table \"%s.%s\"" msgstr "поиск выражений по умолчанию для таблицы \"%s.%s\"" -#: pg_dump.c:8715 +#: pg_dump.c:8793 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "неверное значение adnum (%d) в таблице \"%s\"" -#: pg_dump.c:8807 +#: pg_dump.c:8885 #, c-format msgid "finding check constraints for table \"%s.%s\"" msgstr "поиск ограничений-проверок для таблицы \"%s.%s\"" -#: pg_dump.c:8856 +#: pg_dump.c:8934 #, c-format msgid "expected %d check constraint on table \"%s\" but found %d" msgid_plural "expected %d check constraints on table \"%s\" but found %d" @@ -2125,69 +2140,69 @@ msgstr[2] "" "ожидалось %d ограничений-проверок для таблицы \"%s\", но найдено: %d" -#: pg_dump.c:8860 +#: pg_dump.c:8938 #, c-format msgid "(The system catalogs might be corrupted.)" msgstr "(Возможно, повреждены системные каталоги.)" -#: pg_dump.c:10446 +#: pg_dump.c:10541 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "у типа данных \"%s\" по-видимому неправильный тип типа" -#: pg_dump.c:11800 +#: pg_dump.c:11891 #, c-format msgid "bogus value in proargmodes array" msgstr "неприемлемое значение в массиве proargmodes" -#: pg_dump.c:12172 +#: pg_dump.c:12258 #, c-format msgid "could not parse proallargtypes array" msgstr "не удалось разобрать массив proallargtypes" -#: pg_dump.c:12188 +#: pg_dump.c:12274 #, c-format msgid "could not parse proargmodes array" msgstr "не удалось разобрать массив proargmodes" -#: pg_dump.c:12202 +#: pg_dump.c:12288 #, c-format msgid "could not parse proargnames array" msgstr "не удалось разобрать массив proargnames" -#: pg_dump.c:12213 +#: pg_dump.c:12299 #, c-format msgid "could not parse proconfig array" msgstr "не удалось разобрать массив proconfig" # TO REVEIW -#: pg_dump.c:12293 +#: pg_dump.c:12375 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "недопустимое значение provolatile для функции \"%s\"" # TO REVEIW -#: pg_dump.c:12343 pg_dump.c:14401 +#: pg_dump.c:12425 pg_dump.c:14473 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "недопустимое значение proparallel для функции \"%s\"" -#: pg_dump.c:12482 pg_dump.c:12591 pg_dump.c:12598 +#: pg_dump.c:12564 pg_dump.c:12670 pg_dump.c:12677 #, c-format msgid "could not find function definition for function with OID %u" msgstr "не удалось найти определение функции для функции с OID %u" -#: pg_dump.c:12521 +#: pg_dump.c:12603 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "неприемлемое значение в поле pg_cast.castfunc или pg_cast.castmethod" -#: pg_dump.c:12524 +#: pg_dump.c:12606 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "неприемлемое значение в поле pg_cast.castmethod" -#: pg_dump.c:12617 +#: pg_dump.c:12696 #, c-format msgid "" "bogus transform definition, at least one of trffromsql and trftosql should " @@ -2196,32 +2211,32 @@ "неприемлемое определение преобразования (trffromsql или trftosql должно быть " "ненулевым)" -#: pg_dump.c:12634 +#: pg_dump.c:12713 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "неприемлемое значение в поле pg_transform.trffromsql" -#: pg_dump.c:12655 +#: pg_dump.c:12734 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "неприемлемое значение в поле pg_transform.trftosql" -#: pg_dump.c:12971 +#: pg_dump.c:13049 #, c-format msgid "could not find operator with OID %s" msgstr "оператор с OID %s не найден" -#: pg_dump.c:13039 +#: pg_dump.c:13117 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "неверный тип \"%c\" метода доступа \"%s\"" -#: pg_dump.c:13793 +#: pg_dump.c:13871 #, c-format msgid "unrecognized collation provider: %s" -msgstr "нераспознанный поставщик правил сортировки: %s" +msgstr "нераспознанный провайдер правил сортировки: %s" -#: pg_dump.c:14265 +#: pg_dump.c:14337 #, c-format msgid "" "aggregate function %s could not be dumped correctly for this database " @@ -2230,27 +2245,27 @@ "агрегатная функция %s не может быть правильно выгружена для этой версии базы " "данных; функция проигнорирована" -#: pg_dump.c:14320 +#: pg_dump.c:14392 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "нераспознанное значение aggfinalmodify для агрегата \"%s\"" -#: pg_dump.c:14376 +#: pg_dump.c:14448 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "нераспознанное значение aggmfinalmodify для агрегата \"%s\"" -#: pg_dump.c:15098 +#: pg_dump.c:15170 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "нераспознанный тип объекта в определении прав по умолчанию: %d" -#: pg_dump.c:15116 +#: pg_dump.c:15188 #, c-format msgid "could not parse default ACL list (%s)" msgstr "не удалось разобрать список прав по умолчанию (%s)" -#: pg_dump.c:15201 +#: pg_dump.c:15273 #, c-format msgid "" "could not parse initial GRANT ACL list (%s) or initial REVOKE ACL list (%s) " @@ -2259,7 +2274,7 @@ "не удалось разобрать изначальный список GRANT ACL (%s) или изначальный " "список REVOKE ACL (%s) для объекта \"%s\" (%s)" -#: pg_dump.c:15209 +#: pg_dump.c:15281 #, c-format msgid "" "could not parse GRANT ACL list (%s) or REVOKE ACL list (%s) for object \"%s" @@ -2268,13 +2283,13 @@ "не удалось разобрать список GRANT ACL (%s) или список REVOKE ACL (%s) для " "объекта \"%s\" (%s)" -#: pg_dump.c:15724 +#: pg_dump.c:15796 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "" "запрос на получение определения представления \"%s\" не возвратил данные" -#: pg_dump.c:15727 +#: pg_dump.c:15799 #, c-format msgid "" "query to obtain definition of view \"%s\" returned more than one definition" @@ -2282,37 +2297,37 @@ "запрос на получение определения представления \"%s\" возвратил несколько " "определений" -#: pg_dump.c:15734 +#: pg_dump.c:15806 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "определение представления \"%s\" пустое (длина равна нулю)" -#: pg_dump.c:15818 +#: pg_dump.c:15890 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "свойство WITH OIDS больше не поддерживается (таблица \"%s\")" -#: pg_dump.c:16298 +#: pg_dump.c:16370 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "неверное число родителей (%d) для таблицы \"%s\"" -#: pg_dump.c:16621 +#: pg_dump.c:16693 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "неверный номер столбца %d для таблицы \"%s\"" -#: pg_dump.c:16914 +#: pg_dump.c:16986 #, c-format msgid "missing index for constraint \"%s\"" msgstr "отсутствует индекс для ограничения \"%s\"" -#: pg_dump.c:17139 +#: pg_dump.c:17211 #, c-format msgid "unrecognized constraint type: %c" msgstr "нераспознанный тип ограничения: %c" -#: pg_dump.c:17271 pg_dump.c:17491 +#: pg_dump.c:17343 pg_dump.c:17563 #, c-format msgid "query to get data of sequence \"%s\" returned %d row (expected 1)" msgid_plural "" @@ -2327,22 +2342,22 @@ "запрос на получение данных последовательности \"%s\" вернул %d строк " "(ожидалась 1)" -#: pg_dump.c:17305 +#: pg_dump.c:17377 #, c-format msgid "unrecognized sequence type: %s" msgstr "нераспознанный тип последовательности: %s" -#: pg_dump.c:17589 +#: pg_dump.c:17661 #, c-format msgid "unexpected tgtype value: %d" msgstr "неожиданное значение tgtype: %d" -#: pg_dump.c:17663 +#: pg_dump.c:17735 #, c-format msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" msgstr "неверная строка аргументов (%s) для триггера \"%s\" таблицы \"%s\"" -#: pg_dump.c:17899 +#: pg_dump.c:18004 #, c-format msgid "" "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows " @@ -2351,47 +2366,47 @@ "запрос на получение правила \"%s\" для таблицы \"%s\" возвратил неверное " "число строк" -#: pg_dump.c:18061 +#: pg_dump.c:18166 #, c-format msgid "could not find referenced extension %u" msgstr "не удалось найти упомянутое расширение %u" -#: pg_dump.c:18273 +#: pg_dump.c:18378 #, c-format msgid "reading dependency data" msgstr "чтение информации о зависимостях" -#: pg_dump.c:18366 +#: pg_dump.c:18471 #, c-format msgid "no referencing object %u %u" msgstr "нет подчинённого объекта %u %u" -#: pg_dump.c:18377 +#: pg_dump.c:18482 #, c-format msgid "no referenced object %u %u" msgstr "нет вышестоящего объекта %u %u" -#: pg_dump.c:18750 +#: pg_dump.c:18870 #, c-format msgid "could not parse reloptions array" msgstr "не удалось разобрать массив reloptions" -#: pg_dump_sort.c:360 +#: pg_dump_sort.c:369 #, c-format msgid "invalid dumpId %d" msgstr "неверный dumpId %d" -#: pg_dump_sort.c:366 +#: pg_dump_sort.c:375 #, c-format msgid "invalid dependency %d" msgstr "неверная зависимость %d" -#: pg_dump_sort.c:599 +#: pg_dump_sort.c:608 #, c-format msgid "could not identify dependency loop" msgstr "не удалось определить цикл зависимостей" -#: pg_dump_sort.c:1170 +#: pg_dump_sort.c:1179 #, c-format msgid "there are circular foreign-key constraints on this table:" msgid_plural "there are circular foreign-key constraints among these tables:" @@ -2399,12 +2414,12 @@ msgstr[1] "в следующих таблицах зациклены ограничения внешних ключей:" msgstr[2] "в следующих таблицах зациклены ограничения внешних ключей:" -#: pg_dump_sort.c:1174 pg_dump_sort.c:1194 +#: pg_dump_sort.c:1183 pg_dump_sort.c:1203 #, c-format msgid " %s" msgstr " %s" -#: pg_dump_sort.c:1175 +#: pg_dump_sort.c:1184 #, c-format msgid "" "You might not be able to restore the dump without using --disable-triggers " @@ -2413,7 +2428,7 @@ "Возможно, для восстановления базы потребуется использовать --disable-" "triggers или временно удалить ограничения." -#: pg_dump_sort.c:1176 +#: pg_dump_sort.c:1185 #, c-format msgid "" "Consider using a full dump instead of a --data-only dump to avoid this " @@ -2422,7 +2437,7 @@ "Во избежание этой проблемы, вероятно, стоит выгружать всю базу данных, а не " "только данные (--data-only)." -#: pg_dump_sort.c:1188 +#: pg_dump_sort.c:1197 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "не удалось разрешить цикл зависимостей для следующих объектов:" @@ -2922,6 +2937,12 @@ "ввода.\n" "\n" +#~ msgid "reading row security enabled for table \"%s.%s\"" +#~ msgstr "чтение информации о защите строк для таблицы \"%s.%s\"" + +#~ msgid "reading policies for table \"%s.%s\"" +#~ msgstr "чтение политик таблицы \"%s.%s\"" + #~ msgid "reading publication membership for table \"%s.%s\"" #~ msgstr "чтение информации об участии в репликации таблицы \"%s.%s\"" diff -Nru postgresql-13-13.4/src/bin/pg_dump/po/sv.po postgresql-13-13.7/src/bin/pg_dump/po/sv.po --- postgresql-13-13.4/src/bin/pg_dump/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,13 +1,13 @@ # Swedish message translation file for pg_dump # Peter Eisentraut , 2001, 2009, 2010. -# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-10-20 16:46+0000\n" -"PO-Revision-Date: 2020-10-20 20:32+0200\n" +"POT-Creation-Date: 2022-02-18 04:31+0000\n" +"PO-Revision-Date: 2022-02-18 15:33+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -111,212 +111,212 @@ msgid "child process exited with unrecognized status %d" msgstr "barnprocess avslutade med okänd statuskod %d" -#: common.c:121 +#: common.c:124 #, c-format msgid "reading extensions" msgstr "läser utökningar" -#: common.c:125 +#: common.c:128 #, c-format msgid "identifying extension members" msgstr "identifierar utökningsmedlemmar" -#: common.c:128 +#: common.c:131 #, c-format msgid "reading schemas" msgstr "läser scheman" -#: common.c:138 +#: common.c:141 #, c-format msgid "reading user-defined tables" msgstr "läser användardefinierade tabeller" -#: common.c:145 +#: common.c:148 #, c-format msgid "reading user-defined functions" msgstr "läser användardefinierade funktioner" -#: common.c:150 +#: common.c:153 #, c-format msgid "reading user-defined types" msgstr "läser användardefinierade typer" -#: common.c:155 +#: common.c:158 #, c-format msgid "reading procedural languages" msgstr "läser procedurspråk" -#: common.c:158 +#: common.c:161 #, c-format msgid "reading user-defined aggregate functions" msgstr "läser användardefinierade aggregatfunktioner" -#: common.c:161 +#: common.c:164 #, c-format msgid "reading user-defined operators" msgstr "läser användardefinierade operatorer" -#: common.c:165 +#: common.c:168 #, c-format msgid "reading user-defined access methods" msgstr "läser användardefinierade accessmetoder" -#: common.c:168 +#: common.c:171 #, c-format msgid "reading user-defined operator classes" msgstr "läser användardefinierade operatorklasser" -#: common.c:171 +#: common.c:174 #, c-format msgid "reading user-defined operator families" msgstr "läser användardefinierade operator-familjer" -#: common.c:174 +#: common.c:177 #, c-format msgid "reading user-defined text search parsers" msgstr "läser användardefinierade textsöktolkare" -#: common.c:177 +#: common.c:180 #, c-format msgid "reading user-defined text search templates" msgstr "läser användardefinierade textsökmallar" -#: common.c:180 +#: common.c:183 #, c-format msgid "reading user-defined text search dictionaries" msgstr "läser användardefinierade textsökordlistor" -#: common.c:183 +#: common.c:186 #, c-format msgid "reading user-defined text search configurations" msgstr "läser användardefinierade textsökkonfigurationer" -#: common.c:186 +#: common.c:189 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "läser användardefinierade främmande data-omvandlare" -#: common.c:189 +#: common.c:192 #, c-format msgid "reading user-defined foreign servers" msgstr "läser användardefinierade främmande servrar" -#: common.c:192 +#: common.c:195 #, c-format msgid "reading default privileges" msgstr "läser standardrättigheter" -#: common.c:195 +#: common.c:198 #, c-format msgid "reading user-defined collations" msgstr "läser användardefinierade jämförelser" -#: common.c:199 +#: common.c:202 #, c-format msgid "reading user-defined conversions" msgstr "läser användardefinierade konverteringar" -#: common.c:202 +#: common.c:205 #, c-format msgid "reading type casts" msgstr "läser typomvandlingar" -#: common.c:205 +#: common.c:208 #, c-format msgid "reading transforms" msgstr "läser transformer" -#: common.c:208 +#: common.c:211 #, c-format msgid "reading table inheritance information" msgstr "läser information om arv av tabeller" -#: common.c:211 +#: common.c:214 #, c-format msgid "reading event triggers" msgstr "läser händelseutlösare" -#: common.c:215 +#: common.c:218 #, c-format msgid "finding extension tables" msgstr "hittar utökningstabeller" -#: common.c:219 +#: common.c:222 #, c-format msgid "finding inheritance relationships" msgstr "hittar arvrelationer" -#: common.c:222 +#: common.c:225 #, c-format msgid "reading column info for interesting tables" msgstr "läser kolumninfo flr intressanta tabeller" -#: common.c:225 +#: common.c:228 #, c-format msgid "flagging inherited columns in subtables" msgstr "markerar ärvda kolumner i undertabeller" -#: common.c:228 +#: common.c:231 #, c-format msgid "reading indexes" msgstr "läser index" -#: common.c:231 +#: common.c:234 #, c-format msgid "flagging indexes in partitioned tables" msgstr "flaggar index i partitionerade tabeller" -#: common.c:234 +#: common.c:237 #, c-format msgid "reading extended statistics" msgstr "läser utökad statistik" -#: common.c:237 +#: common.c:240 #, c-format msgid "reading constraints" msgstr "läser integritetsvillkor" -#: common.c:240 +#: common.c:243 #, c-format msgid "reading triggers" msgstr "läser utlösare" -#: common.c:243 +#: common.c:246 #, c-format msgid "reading rewrite rules" msgstr "läser omskrivningsregler" -#: common.c:246 +#: common.c:249 #, c-format msgid "reading policies" msgstr "läser policys" -#: common.c:249 +#: common.c:252 #, c-format msgid "reading publications" msgstr "läser publiceringar" -#: common.c:252 +#: common.c:257 #, c-format msgid "reading publication membership" msgstr "läser publiceringsmedlemskap" -#: common.c:255 +#: common.c:260 #, c-format msgid "reading subscriptions" msgstr "läser prenumerationer" -#: common.c:1025 +#: common.c:1060 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "misslyckades med riktighetskontroll, hittade inte förälder-OID %u för tabell \"%s\" (OID %u)" -#: common.c:1067 +#: common.c:1102 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "kunde inte tolka numerisk array \"%s\": för många nummer" -#: common.c:1082 +#: common.c:1117 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "kunde inte tolka numerisk array \"%s\": ogiltigt tecken i nummer" @@ -357,13 +357,13 @@ msgid "could not close compression library: %s" msgstr "kunde inte stänga komprimeringsbiblioteket: %s" -#: compress_io.c:584 compress_io.c:621 pg_backup_tar.c:557 pg_backup_tar.c:560 +#: compress_io.c:584 compress_io.c:621 pg_backup_tar.c:554 pg_backup_tar.c:557 #, c-format msgid "could not read from input file: %s" msgstr "kunde inte läsa från infilen: %s" -#: compress_io.c:623 pg_backup_custom.c:646 pg_backup_directory.c:552 -#: pg_backup_tar.c:793 pg_backup_tar.c:816 +#: compress_io.c:623 pg_backup_custom.c:646 pg_backup_directory.c:553 +#: pg_backup_tar.c:790 pg_backup_tar.c:813 #, c-format msgid "could not read from input file: end of file" msgstr "kunde inte läsa från infilen: slut på filen" @@ -453,430 +453,430 @@ msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: kunde inte acceptera anslutning: felkod %d" -#: pg_backup_archiver.c:277 pg_backup_archiver.c:1587 +#: pg_backup_archiver.c:278 pg_backup_archiver.c:1589 #, c-format msgid "could not close output file: %m" msgstr "kunde inte stänga utdatafilen: %m" -#: pg_backup_archiver.c:321 pg_backup_archiver.c:325 +#: pg_backup_archiver.c:322 pg_backup_archiver.c:326 #, c-format msgid "archive items not in correct section order" msgstr "arkivobjekten är inte i korrekt sektionsordning" -#: pg_backup_archiver.c:331 +#: pg_backup_archiver.c:332 #, c-format msgid "unexpected section code %d" msgstr "oväntad sektionskod %d" -#: pg_backup_archiver.c:368 +#: pg_backup_archiver.c:369 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "parallell återställning stöds inte med detta arkivformat" -#: pg_backup_archiver.c:372 +#: pg_backup_archiver.c:373 #, c-format msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump" msgstr "parallell återställning stöds inte med arkiv som skapats av en pre-8.0 pg_dump" -#: pg_backup_archiver.c:390 +#: pg_backup_archiver.c:391 #, c-format msgid "cannot restore from compressed archive (compression not supported in this installation)" msgstr "kan inte återställa från komprimerat arkiv (inte konfigurerad med stöd för komprimering)" -#: pg_backup_archiver.c:407 +#: pg_backup_archiver.c:408 #, c-format msgid "connecting to database for restore" msgstr "kopplar upp mot databas för återställning" -#: pg_backup_archiver.c:409 +#: pg_backup_archiver.c:410 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "direkta databasuppkopplingar stöds inte i arkiv från före version 1.3" -#: pg_backup_archiver.c:452 +#: pg_backup_archiver.c:453 #, c-format msgid "implied data-only restore" msgstr "implicerad återställning av enbart data" -#: pg_backup_archiver.c:518 +#: pg_backup_archiver.c:519 #, c-format msgid "dropping %s %s" msgstr "tar bort %s %s" -#: pg_backup_archiver.c:613 +#: pg_backup_archiver.c:614 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "kunde inte hitta var IF EXISTS skulle stoppas in i sats \"%s\"" -#: pg_backup_archiver.c:769 pg_backup_archiver.c:771 +#: pg_backup_archiver.c:770 pg_backup_archiver.c:772 #, c-format msgid "warning from original dump file: %s" msgstr "varning från orginaldumpfilen: %s" -#: pg_backup_archiver.c:786 +#: pg_backup_archiver.c:787 #, c-format msgid "creating %s \"%s.%s\"" msgstr "skapar %s \"%s.%s\"" -#: pg_backup_archiver.c:789 +#: pg_backup_archiver.c:790 #, c-format msgid "creating %s \"%s\"" msgstr "skapar %s \"%s\"" -#: pg_backup_archiver.c:839 +#: pg_backup_archiver.c:840 #, c-format msgid "connecting to new database \"%s\"" msgstr "kopplar upp mot ny databas \"%s\"" -#: pg_backup_archiver.c:866 +#: pg_backup_archiver.c:867 #, c-format msgid "processing %s" msgstr "processar %s" -#: pg_backup_archiver.c:886 +#: pg_backup_archiver.c:887 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "processar data för tabell \"%s.%s\"" -#: pg_backup_archiver.c:948 +#: pg_backup_archiver.c:949 #, c-format msgid "executing %s %s" msgstr "kör %s %s" -#: pg_backup_archiver.c:987 +#: pg_backup_archiver.c:988 #, c-format msgid "disabling triggers for %s" msgstr "stänger av utlösare för %s" -#: pg_backup_archiver.c:1013 +#: pg_backup_archiver.c:1014 #, c-format msgid "enabling triggers for %s" msgstr "slår på utlösare för %s" -#: pg_backup_archiver.c:1041 +#: pg_backup_archiver.c:1042 #, c-format msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine" msgstr "internt fel -- WriteData kan inte anropas utanför kontexten av en DataDumper-rutin" -#: pg_backup_archiver.c:1224 +#: pg_backup_archiver.c:1225 #, c-format msgid "large-object output not supported in chosen format" msgstr "utmatning av stora objekt stöds inte i det valda formatet" -#: pg_backup_archiver.c:1282 +#: pg_backup_archiver.c:1283 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" msgstr[0] "återställde %d stor objekt" msgstr[1] "återställde %d stora objekt" -#: pg_backup_archiver.c:1303 pg_backup_tar.c:736 +#: pg_backup_archiver.c:1304 pg_backup_tar.c:733 #, c-format msgid "restoring large object with OID %u" msgstr "återställer stort objekt med OID %u" -#: pg_backup_archiver.c:1315 +#: pg_backup_archiver.c:1316 #, c-format msgid "could not create large object %u: %s" msgstr "kunde inte skapa stort objekt %u: %s" -#: pg_backup_archiver.c:1320 pg_dump.c:3552 +#: pg_backup_archiver.c:1321 pg_dump.c:3587 #, c-format msgid "could not open large object %u: %s" msgstr "kunde inte öppna stort objekt %u: %s" -#: pg_backup_archiver.c:1377 +#: pg_backup_archiver.c:1378 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "kunde inte öppna TOC-filen \"%s\": %m" -#: pg_backup_archiver.c:1417 +#: pg_backup_archiver.c:1418 #, c-format msgid "line ignored: %s" msgstr "rad ignorerad: %s" -#: pg_backup_archiver.c:1424 +#: pg_backup_archiver.c:1425 #, c-format msgid "could not find entry for ID %d" msgstr "kunde inte hitta en post för ID %d" -#: pg_backup_archiver.c:1445 pg_backup_directory.c:222 -#: pg_backup_directory.c:598 +#: pg_backup_archiver.c:1446 pg_backup_directory.c:222 +#: pg_backup_directory.c:599 #, c-format msgid "could not close TOC file: %m" msgstr "kunde inte stänga TOC-filen: %m" -#: pg_backup_archiver.c:1559 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:585 pg_backup_directory.c:648 -#: pg_backup_directory.c:667 pg_dumpall.c:484 +#: pg_backup_archiver.c:1560 pg_backup_custom.c:156 pg_backup_directory.c:332 +#: pg_backup_directory.c:586 pg_backup_directory.c:649 +#: pg_backup_directory.c:668 pg_dumpall.c:484 #, c-format msgid "could not open output file \"%s\": %m" msgstr "kunde inte öppna utdatafilen \"%s\": %m" -#: pg_backup_archiver.c:1561 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1562 pg_backup_custom.c:162 #, c-format msgid "could not open output file: %m" msgstr "kunde inte öppna utdatafilen: %m" -#: pg_backup_archiver.c:1654 +#: pg_backup_archiver.c:1656 #, c-format msgid "wrote %lu byte of large object data (result = %lu)" msgid_plural "wrote %lu bytes of large object data (result = %lu)" msgstr[0] "skrev %lu byte av stort objekt-data (resultat = %lu)" msgstr[1] "skrev %lu bytes av stort objekt-data (resultat = %lu)" -#: pg_backup_archiver.c:1659 +#: pg_backup_archiver.c:1661 #, c-format msgid "could not write to large object (result: %lu, expected: %lu)" msgstr "kunde inte skriva till stort objekt (resultat: %lu, förväntat: %lu)" -#: pg_backup_archiver.c:1749 +#: pg_backup_archiver.c:1751 #, c-format msgid "while INITIALIZING:" msgstr "vid INITIERING:" -#: pg_backup_archiver.c:1754 +#: pg_backup_archiver.c:1756 #, c-format msgid "while PROCESSING TOC:" msgstr "vid HANTERING AV TOC:" -#: pg_backup_archiver.c:1759 +#: pg_backup_archiver.c:1761 #, c-format msgid "while FINALIZING:" msgstr "vid SLUTFÖRANDE:" -#: pg_backup_archiver.c:1764 +#: pg_backup_archiver.c:1766 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "från TOC-post %d; %u %u %s %s %s" -#: pg_backup_archiver.c:1840 +#: pg_backup_archiver.c:1842 #, c-format msgid "bad dumpId" msgstr "felaktigt dumpId" -#: pg_backup_archiver.c:1861 +#: pg_backup_archiver.c:1863 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "felaktig tabell-dumpId för TABLE DATA-objekt" -#: pg_backup_archiver.c:1953 +#: pg_backup_archiver.c:1955 #, c-format msgid "unexpected data offset flag %d" msgstr "oväntad data-offset-flagga %d" -#: pg_backup_archiver.c:1966 +#: pg_backup_archiver.c:1968 #, c-format msgid "file offset in dump file is too large" msgstr "fil-offset i dumpfilen är för stort" -#: pg_backup_archiver.c:2103 pg_backup_archiver.c:2113 +#: pg_backup_archiver.c:2106 pg_backup_archiver.c:2116 #, c-format msgid "directory name too long: \"%s\"" msgstr "katalognamn för långt: \"%s\"" -#: pg_backup_archiver.c:2121 +#: pg_backup_archiver.c:2124 #, c-format msgid "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not exist)" msgstr "katalogen \"%s\" verkar inte vara ett giltigt arkiv (\"toc.dat\" finns inte)" -#: pg_backup_archiver.c:2129 pg_backup_custom.c:173 pg_backup_custom.c:812 -#: pg_backup_directory.c:207 pg_backup_directory.c:394 +#: pg_backup_archiver.c:2132 pg_backup_custom.c:173 pg_backup_custom.c:812 +#: pg_backup_directory.c:207 pg_backup_directory.c:395 #, c-format msgid "could not open input file \"%s\": %m" msgstr "kunde inte öppna indatafilen \"%s\": %m" -#: pg_backup_archiver.c:2136 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2139 pg_backup_custom.c:179 #, c-format msgid "could not open input file: %m" msgstr "kan inte öppna infil: %m" -#: pg_backup_archiver.c:2142 +#: pg_backup_archiver.c:2145 #, c-format msgid "could not read input file: %m" msgstr "kan inte läsa infilen: %m" -#: pg_backup_archiver.c:2144 +#: pg_backup_archiver.c:2147 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "indatafilen är för kort (läste %lu, förväntade 5)" -#: pg_backup_archiver.c:2229 +#: pg_backup_archiver.c:2179 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "indatafilen verkar vara en dump i textformat. Använd psql." -#: pg_backup_archiver.c:2235 +#: pg_backup_archiver.c:2185 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "indatafilen verkar inte vara ett korrekt arkiv (för kort?)" -#: pg_backup_archiver.c:2241 +#: pg_backup_archiver.c:2191 #, c-format msgid "input file does not appear to be a valid archive" msgstr "indatafilen verkar inte vara ett korrekt arkiv" -#: pg_backup_archiver.c:2261 +#: pg_backup_archiver.c:2200 #, c-format msgid "could not close input file: %m" msgstr "kunde inte stänga indatafilen: %m" -#: pg_backup_archiver.c:2373 +#: pg_backup_archiver.c:2316 #, c-format msgid "unrecognized file format \"%d\"" msgstr "känner inte igen filformat \"%d\"" -#: pg_backup_archiver.c:2455 pg_backup_archiver.c:4458 +#: pg_backup_archiver.c:2398 pg_backup_archiver.c:4422 #, c-format msgid "finished item %d %s %s" msgstr "klar med objekt %d %s %s" -#: pg_backup_archiver.c:2459 pg_backup_archiver.c:4471 +#: pg_backup_archiver.c:2402 pg_backup_archiver.c:4435 #, c-format msgid "worker process failed: exit code %d" msgstr "arbetsprocess misslyckades: felkod %d" -#: pg_backup_archiver.c:2579 +#: pg_backup_archiver.c:2522 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "post-ID %d utanför sitt intervall -- kanske en trasig TOC" -#: pg_backup_archiver.c:2646 +#: pg_backup_archiver.c:2589 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "återeställa tabeller med WITH OIDS stöds inte längre" -#: pg_backup_archiver.c:2728 +#: pg_backup_archiver.c:2671 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "okänd teckenkodning \"%s\"" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2676 #, c-format msgid "invalid ENCODING item: %s" msgstr "ogiltigt ENCODING-val: %s" -#: pg_backup_archiver.c:2751 +#: pg_backup_archiver.c:2694 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "ogiltigt STDSTRINGS-val: %s" -#: pg_backup_archiver.c:2776 +#: pg_backup_archiver.c:2719 #, c-format msgid "schema \"%s\" not found" msgstr "schema \"%s\" hittades inte" -#: pg_backup_archiver.c:2783 +#: pg_backup_archiver.c:2726 #, c-format msgid "table \"%s\" not found" msgstr "tabell \"%s\" hittades inte" -#: pg_backup_archiver.c:2790 +#: pg_backup_archiver.c:2733 #, c-format msgid "index \"%s\" not found" msgstr "index \"%s\" hittades inte" -#: pg_backup_archiver.c:2797 +#: pg_backup_archiver.c:2740 #, c-format msgid "function \"%s\" not found" msgstr "funktion \"%s\" hittades inte" -#: pg_backup_archiver.c:2804 +#: pg_backup_archiver.c:2747 #, c-format msgid "trigger \"%s\" not found" msgstr "utlösare \"%s\" hittades inte" -#: pg_backup_archiver.c:3196 +#: pg_backup_archiver.c:3139 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "kunde inte sätta sessionsanvändare till \"%s\": %s" -#: pg_backup_archiver.c:3328 +#: pg_backup_archiver.c:3271 #, c-format msgid "could not set search_path to \"%s\": %s" msgstr "kunde inte sätta search_path till \"%s\": %s" -#: pg_backup_archiver.c:3390 +#: pg_backup_archiver.c:3333 #, c-format msgid "could not set default_tablespace to %s: %s" msgstr "kunde inte sätta default_tablespace till %s: %s" -#: pg_backup_archiver.c:3435 +#: pg_backup_archiver.c:3378 #, c-format msgid "could not set default_table_access_method: %s" msgstr "kunde inte sätta default_table_access_method: %s" -#: pg_backup_archiver.c:3527 pg_backup_archiver.c:3685 +#: pg_backup_archiver.c:3470 pg_backup_archiver.c:3628 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "vet inte hur man sätter ägare för objekttyp \"%s\"" -#: pg_backup_archiver.c:3789 +#: pg_backup_archiver.c:3731 #, c-format msgid "did not find magic string in file header" msgstr "kunde inte hitta den magiska strängen i filhuvudet" -#: pg_backup_archiver.c:3802 +#: pg_backup_archiver.c:3745 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "ej supportad version (%d.%d) i filhuvudet" -#: pg_backup_archiver.c:3807 +#: pg_backup_archiver.c:3750 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "riktighetskontroll på heltalsstorlek (%lu) misslyckades" -#: pg_backup_archiver.c:3811 +#: pg_backup_archiver.c:3754 #, c-format msgid "archive was made on a machine with larger integers, some operations might fail" msgstr "arkivet skapades på en maskin med större heltal, en del operationer kan misslyckas" -#: pg_backup_archiver.c:3821 +#: pg_backup_archiver.c:3764 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "förväntat format (%d) skiljer sig från formatet som fanns i filen (%d)" -#: pg_backup_archiver.c:3837 +#: pg_backup_archiver.c:3779 #, c-format msgid "archive is compressed, but this installation does not support compression -- no data will be available" msgstr "arkivet är komprimerat, men denna installation stödjer inte komprimering -- ingen data kommer kunna läsas" -#: pg_backup_archiver.c:3855 +#: pg_backup_archiver.c:3813 #, c-format msgid "invalid creation date in header" msgstr "ogiltig skapandedatum i huvud" -#: pg_backup_archiver.c:3983 +#: pg_backup_archiver.c:3947 #, c-format msgid "processing item %d %s %s" msgstr "processar objekt %d %s %s" -#: pg_backup_archiver.c:4062 +#: pg_backup_archiver.c:4026 #, c-format msgid "entering main parallel loop" msgstr "går in i parallella huvudloopen" -#: pg_backup_archiver.c:4073 +#: pg_backup_archiver.c:4037 #, c-format msgid "skipping item %d %s %s" msgstr "hoppar över objekt %d %s %s" -#: pg_backup_archiver.c:4082 +#: pg_backup_archiver.c:4046 #, c-format msgid "launching item %d %s %s" msgstr "startar objekt %d %s %s" -#: pg_backup_archiver.c:4136 +#: pg_backup_archiver.c:4100 #, c-format msgid "finished main parallel loop" msgstr "klar med parallella huvudloopen" -#: pg_backup_archiver.c:4172 +#: pg_backup_archiver.c:4136 #, c-format msgid "processing missed item %d %s %s" msgstr "processar saknat objekt %d %s %s" -#: pg_backup_archiver.c:4777 +#: pg_backup_archiver.c:4741 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "tabell \"%s\" kunde inte skapas, dess data kommer ej återställas" @@ -887,7 +887,7 @@ msgstr "ogiltig OID för stort objekt" #: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:632 -#: pg_backup_custom.c:870 pg_backup_tar.c:1086 pg_backup_tar.c:1091 +#: pg_backup_custom.c:870 pg_backup_tar.c:1083 pg_backup_tar.c:1088 #, c-format msgid "error during file seek: %m" msgstr "fel vid sökning: %m" @@ -928,7 +928,7 @@ msgstr "kunde inte läsa från infilen: %m" #: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:948 -#: pg_backup_tar.c:1089 +#: pg_backup_tar.c:1086 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "kunde inte bestämma sökposition i arkivfil: %m" @@ -1081,43 +1081,58 @@ msgid "could not create directory \"%s\": %m" msgstr "kunde inte skapa katalog \"%s\": %m" -#: pg_backup_directory.c:355 pg_backup_directory.c:496 -#: pg_backup_directory.c:532 +#: pg_backup_directory.c:355 pg_backup_directory.c:497 +#: pg_backup_directory.c:533 #, c-format msgid "could not write to output file: %s" msgstr "kunde inte skriva till utdatafil: %s" -#: pg_backup_directory.c:406 +#: pg_backup_directory.c:373 +#, c-format +msgid "could not close data file: %m" +msgstr "kan inte stänga datafil: %m" + +#: pg_backup_directory.c:407 #, c-format msgid "could not close data file \"%s\": %m" msgstr "kan inte stänga datafil \"%s\": %m" -#: pg_backup_directory.c:446 +#: pg_backup_directory.c:447 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "kunde inte öppna stora objekts TOC-fil \"%s\" för läsning: %m" -#: pg_backup_directory.c:457 +#: pg_backup_directory.c:458 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "ogiltig rad i stora objekts TOC-fil \"%s\": \"%s\"" -#: pg_backup_directory.c:466 +#: pg_backup_directory.c:467 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "fel vid lösning av stora objekts TOC-fil \"%s\"" -#: pg_backup_directory.c:470 +#: pg_backup_directory.c:471 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "kunde inte stänga stora objekts TOC-fil \"%s\": %m" -#: pg_backup_directory.c:689 +#: pg_backup_directory.c:685 +#, c-format +msgid "could not close blob data file: %m" +msgstr "kan inte stänga blobbars datafil: %m" + +#: pg_backup_directory.c:691 #, c-format msgid "could not write to blobs TOC file" msgstr "kunde inte skriva till blobbars TOC-fil" -#: pg_backup_directory.c:721 +#: pg_backup_directory.c:705 +#, c-format +msgid "could not close blobs TOC file: %m" +msgstr "kunde inte stänga blobbars TOC-fil: %m" + +#: pg_backup_directory.c:724 #, c-format msgid "file name too long: \"%s\"" msgstr "filnamnet är för långt: \"%s\"" @@ -1137,7 +1152,7 @@ msgid "could not open TOC file for output: %m" msgstr "kunde inte öppna TOC-filen för utmatning: %m" -#: pg_backup_tar.c:203 pg_backup_tar.c:358 +#: pg_backup_tar.c:203 pg_backup_tar.c:352 #, c-format msgid "compression is not supported by tar archive format" msgstr "komprimering är stödjs inte av arkivformatet tar" @@ -1152,64 +1167,64 @@ msgid "could not open TOC file for input: %m" msgstr "kunde inte öppna TOC-fil för läsning: %m" -#: pg_backup_tar.c:344 +#: pg_backup_tar.c:338 #, c-format msgid "could not find file \"%s\" in archive" msgstr "kunde inte hitta fil \"%s\" i arkiv" -#: pg_backup_tar.c:410 +#: pg_backup_tar.c:404 #, c-format msgid "could not generate temporary file name: %m" msgstr "kunde inte generera temporärt filnamn: %m" -#: pg_backup_tar.c:421 +#: pg_backup_tar.c:415 #, c-format msgid "could not open temporary file" msgstr "kunde inte öppna temporär fil" -#: pg_backup_tar.c:448 +#: pg_backup_tar.c:444 #, c-format -msgid "could not close tar member" -msgstr "kunde inte stänga tar-medlem" +msgid "could not close tar member: %m" +msgstr "kunde inte stänga tar-medlem: %m" -#: pg_backup_tar.c:691 +#: pg_backup_tar.c:688 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "oväntad COPY-satssyntax: \"%s\"" -#: pg_backup_tar.c:958 +#: pg_backup_tar.c:955 #, c-format msgid "invalid OID for large object (%u)" msgstr "ogiltig OID för stort objekt (%u)" -#: pg_backup_tar.c:1105 +#: pg_backup_tar.c:1102 #, c-format msgid "could not close temporary file: %m" msgstr "kunde inte stänga temporär fil: %m" -#: pg_backup_tar.c:1114 +#: pg_backup_tar.c:1111 #, c-format msgid "actual file length (%s) does not match expected (%s)" msgstr "verklig fillängd (%s) matchar inte det förväntade (%s)" -#: pg_backup_tar.c:1171 pg_backup_tar.c:1201 +#: pg_backup_tar.c:1168 pg_backup_tar.c:1198 #, c-format msgid "could not find header for file \"%s\" in tar archive" msgstr "kunde inte hitta filhuvud för fil \"%s\" i tar-arkiv" -#: pg_backup_tar.c:1189 +#: pg_backup_tar.c:1186 #, c-format msgid "restoring data out of order is not supported in this archive format: \"%s\" is required, but comes before \"%s\" in the archive file." msgstr "dumpa data i oordning stöds inte av detta arkivformat: \"%s\" krävs, men kommer före \"%s\" i denna arkivfil." -#: pg_backup_tar.c:1234 +#: pg_backup_tar.c:1231 #, c-format msgid "incomplete tar header found (%lu byte)" msgid_plural "incomplete tar header found (%lu bytes)" msgstr[0] "inkomplett tar-huvud hittat (%lu byte)" msgstr[1] "inkomplett tar-huvud hittat (%lu bytes)" -#: pg_backup_tar.c:1285 +#: pg_backup_tar.c:1282 #, c-format msgid "corrupt tar header found in %s (expected %d, computed %d) file position %s" msgstr "trasigt tar-huvud hittat i %s (förväntade %d, beräknad %d) filposition %s" @@ -1471,7 +1486,7 @@ #: pg_dump.c:1018 #, c-format msgid " -S, --superuser=NAME superuser user name to use in plain-text format\n" -msgstr " -S, --superuser=NAME superanvändarens namn för textformatdumpar\n" +msgstr " -S, --superuser=NAME namn på superuser för textformatdumpar\n" #: pg_dump.c:1019 #, c-format @@ -1766,453 +1781,448 @@ msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Dumpning av innehållet i tabellen \"%s\" misslyckades: PQgetResult() misslyckades." -#: pg_dump.c:2739 +#: pg_dump.c:2061 +#, c-format +msgid "wrong number of fields retrieved from table \"%s\"" +msgstr "fel antal fält hämtades för tabell \"%s\"" + +#: pg_dump.c:2774 #, c-format msgid "saving database definition" msgstr "sparar databasdefinition" -#: pg_dump.c:3211 +#: pg_dump.c:3246 #, c-format msgid "saving encoding = %s" msgstr "sparar kodning = %s" -#: pg_dump.c:3236 +#: pg_dump.c:3271 #, c-format msgid "saving standard_conforming_strings = %s" msgstr "sparar standard_conforming_strings = %s" -#: pg_dump.c:3275 +#: pg_dump.c:3310 #, c-format msgid "could not parse result of current_schemas()" msgstr "kunde inte parsa resultat från current_schemas()" -#: pg_dump.c:3294 +#: pg_dump.c:3329 #, c-format msgid "saving search_path = %s" msgstr "sparar search_path = %s" -#: pg_dump.c:3334 +#: pg_dump.c:3369 #, c-format msgid "reading large objects" msgstr "läser stora objekt" -#: pg_dump.c:3516 +#: pg_dump.c:3551 #, c-format msgid "saving large objects" msgstr "sparar stora objekt" -#: pg_dump.c:3562 +#: pg_dump.c:3597 #, c-format msgid "error reading large object %u: %s" msgstr "fel vid läsning av stort objekt %u: %s" -#: pg_dump.c:3614 +#: pg_dump.c:3681 #, c-format -msgid "reading row security enabled for table \"%s.%s\"" -msgstr "läser aktiverad radsäkerhet för tabell \"%s.%s\"" +msgid "reading row-level security policies" +msgstr "läser säkerhetspolicy på radnivå" -#: pg_dump.c:3645 -#, c-format -msgid "reading policies for table \"%s.%s\"" -msgstr "läser policys för tabell \"%s.%s\"" - -#: pg_dump.c:3797 +#: pg_dump.c:3824 #, c-format msgid "unexpected policy command type: %c" msgstr "oväntad kommandotyp för policy: %c" -#: pg_dump.c:3948 +#: pg_dump.c:3978 #, c-format msgid "owner of publication \"%s\" appears to be invalid" msgstr "ägare av publicering \"%s\" verkar vara ogiltig" -#: pg_dump.c:4093 -#, c-format -msgid "reading publication membership for table \"%s.%s\"" -msgstr "läser publiceringsmedlemskap för tabell \"%s.%s\"" - -#: pg_dump.c:4236 +#: pg_dump.c:4268 #, c-format msgid "subscriptions not dumped because current user is not a superuser" -msgstr "prenumerationer har inte dumpats få aktuell användare inte är en superanvändare" +msgstr "prenumerationer har inte dumpats få aktuell användare inte är en superuser" -#: pg_dump.c:4290 +#: pg_dump.c:4322 #, c-format msgid "owner of subscription \"%s\" appears to be invalid" msgstr "ägare av prenumeration \"%s\" verkar vara ogiltig" -#: pg_dump.c:4334 +#: pg_dump.c:4366 #, c-format msgid "could not parse subpublications array" msgstr "kunde inte parsa arrayen för subpubliceringar" -#: pg_dump.c:4656 +#: pg_dump.c:4688 #, c-format msgid "could not find parent extension for %s %s" msgstr "kunde inte hitta föräldrautökning för %s %s" -#: pg_dump.c:4788 +#: pg_dump.c:4820 #, c-format msgid "owner of schema \"%s\" appears to be invalid" msgstr "ägare av schema \"%s\" verkar vara ogiltig" -#: pg_dump.c:4811 +#: pg_dump.c:4843 #, c-format msgid "schema with OID %u does not exist" msgstr "schema med OID %u existerar inte" -#: pg_dump.c:5136 +#: pg_dump.c:5169 #, c-format msgid "owner of data type \"%s\" appears to be invalid" msgstr "ägare av datatyp \"%s\" verkar vara ogiltig" -#: pg_dump.c:5221 +#: pg_dump.c:5254 #, c-format msgid "owner of operator \"%s\" appears to be invalid" msgstr "ägare av operator \"%s\" verkar vara ogiltig" -#: pg_dump.c:5523 +#: pg_dump.c:5556 #, c-format msgid "owner of operator class \"%s\" appears to be invalid" msgstr "ägare av operatorklass \"%s\" verkar vara ogiltig" -#: pg_dump.c:5607 +#: pg_dump.c:5640 #, c-format msgid "owner of operator family \"%s\" appears to be invalid" msgstr "ägare av operator-familj \"%s\" verkar vara ogiltig" -#: pg_dump.c:5776 +#: pg_dump.c:5809 #, c-format msgid "owner of aggregate function \"%s\" appears to be invalid" msgstr "ägare av aggregatfunktion \"%s\" verkar vara ogiltig" -#: pg_dump.c:6036 +#: pg_dump.c:6069 #, c-format msgid "owner of function \"%s\" appears to be invalid" msgstr "ägare av funktion \"%s\" verkar vara ogiltig" -#: pg_dump.c:6864 +#: pg_dump.c:6897 #, c-format msgid "owner of table \"%s\" appears to be invalid" msgstr "ägare av tabell \"%s\" verkar vara ogiltig" -#: pg_dump.c:6906 pg_dump.c:17386 +#: pg_dump.c:6939 pg_dump.c:17498 #, c-format msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found" msgstr "misslyckades med riktighetskontroll, föräldratabell med OID %u för sekvens med OID %u hittas inte" -#: pg_dump.c:7048 +#: pg_dump.c:7081 #, c-format msgid "reading indexes for table \"%s.%s\"" msgstr "läser index för tabell \"%s.%s\"" -#: pg_dump.c:7463 +#: pg_dump.c:7496 #, c-format msgid "reading foreign key constraints for table \"%s.%s\"" msgstr "läser främmande nyckel-villkor för tabell \"%s.%s\"" -#: pg_dump.c:7744 +#: pg_dump.c:7777 #, c-format msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found" msgstr "misslyckades med riktighetskontroll, föräldratabell med OID %u för pg_rewrite-rad med OID %u hittades inte" -#: pg_dump.c:7827 +#: pg_dump.c:7861 #, c-format msgid "reading triggers for table \"%s.%s\"" msgstr "läser utlösare för tabell \"%s.%s\"" -#: pg_dump.c:7960 +#: pg_dump.c:8043 #, c-format msgid "query produced null referenced table name for foreign key trigger \"%s\" on table \"%s\" (OID of table: %u)" msgstr "fråga producerade null som refererad tabell för främmande nyckel-utlösare \"%s\" i tabell \"%s\" (OID för tabell : %u)" -#: pg_dump.c:8515 +#: pg_dump.c:8598 #, c-format msgid "finding the columns and types of table \"%s.%s\"" msgstr "hittar kolumner och typer för tabell \"%s.%s\"" -#: pg_dump.c:8651 +#: pg_dump.c:8734 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "ogiltigt kolumnnumrering i tabell \"%s\"" -#: pg_dump.c:8688 +#: pg_dump.c:8771 #, c-format msgid "finding default expressions of table \"%s.%s\"" msgstr "hittar default-uttryck för tabell \"%s.%s\"" -#: pg_dump.c:8710 +#: pg_dump.c:8793 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "felaktigt adnum-värde %d för tabell \"%s\"" -#: pg_dump.c:8775 +#: pg_dump.c:8885 #, c-format msgid "finding check constraints for table \"%s.%s\"" msgstr "hittar check-villkor för tabell \"%s.%s\"" -#: pg_dump.c:8824 +#: pg_dump.c:8934 #, c-format msgid "expected %d check constraint on table \"%s\" but found %d" msgid_plural "expected %d check constraints on table \"%s\" but found %d" msgstr[0] "förväntade %d check-villkor för tabell \"%s\" men hittade %d" msgstr[1] "förväntade %d check-villkor för tabell \"%s\" men hittade %d" -#: pg_dump.c:8828 +#: pg_dump.c:8938 #, c-format msgid "(The system catalogs might be corrupted.)" msgstr "(systemkatalogerna kan vara trasiga.)" -#: pg_dump.c:10414 +#: pg_dump.c:10541 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "typtype för datatyp \"%s\" verkar vara ogiltig" -#: pg_dump.c:11768 +#: pg_dump.c:11891 #, c-format msgid "bogus value in proargmodes array" msgstr "felaktigt värde i arrayen proargmodes" -#: pg_dump.c:12140 +#: pg_dump.c:12258 #, c-format msgid "could not parse proallargtypes array" msgstr "kunde inte tolka arrayen proallargtypes" -#: pg_dump.c:12156 +#: pg_dump.c:12274 #, c-format msgid "could not parse proargmodes array" msgstr "kunde inte tolka arrayen proargmodes" -#: pg_dump.c:12170 +#: pg_dump.c:12288 #, c-format msgid "could not parse proargnames array" msgstr "kunde inte tolka arrayen proargnames" -#: pg_dump.c:12181 +#: pg_dump.c:12299 #, c-format msgid "could not parse proconfig array" msgstr "kunde inte tolka arrayen proconfig" -#: pg_dump.c:12261 +#: pg_dump.c:12375 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "okänt provolatile-värde för funktion \"%s\"" -#: pg_dump.c:12311 pg_dump.c:14369 +#: pg_dump.c:12425 pg_dump.c:14473 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "okänt proparallel-värde för funktion \"%s\"" -#: pg_dump.c:12450 pg_dump.c:12559 pg_dump.c:12566 +#: pg_dump.c:12564 pg_dump.c:12670 pg_dump.c:12677 #, c-format msgid "could not find function definition for function with OID %u" msgstr "kunde inte hitta funktionsdefinitionen för funktion med OID %u" -#: pg_dump.c:12489 +#: pg_dump.c:12603 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "felaktigt värde i fältet pg_cast.castfunc eller pg_cast.castmethod" -#: pg_dump.c:12492 +#: pg_dump.c:12606 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "felaktigt värde i fältet pg_cast.castmethod" -#: pg_dump.c:12585 +#: pg_dump.c:12696 #, c-format msgid "bogus transform definition, at least one of trffromsql and trftosql should be nonzero" msgstr "felaktig transform-definition, minst en av trffromsql och trftosql måste vara ickenoll" -#: pg_dump.c:12602 +#: pg_dump.c:12713 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "felaktigt värde i fältet pg_transform.trffromsql" -#: pg_dump.c:12623 +#: pg_dump.c:12734 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "felaktigt värde i fältet pg_transform.trftosql" -#: pg_dump.c:12939 +#: pg_dump.c:13049 #, c-format msgid "could not find operator with OID %s" msgstr "kunde inte hitta en operator med OID %s." -#: pg_dump.c:13007 +#: pg_dump.c:13117 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "ogiltig typ \"%c\" för accessmetod \"%s\"" -#: pg_dump.c:13761 +#: pg_dump.c:13871 #, c-format msgid "unrecognized collation provider: %s" msgstr "okänd jämförelseleverantör: %s" -#: pg_dump.c:14233 +#: pg_dump.c:14337 #, c-format msgid "aggregate function %s could not be dumped correctly for this database version; ignored" msgstr "aggregatfunktion %s kunde inte dumpas korrekt för denna databasversion; ignorerad" -#: pg_dump.c:14288 +#: pg_dump.c:14392 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "okänt aggfinalmodify-värde för aggregat \"%s\"" -#: pg_dump.c:14344 +#: pg_dump.c:14448 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "okänt aggmfinalmodify-värde för aggregat \"%s\"" -#: pg_dump.c:15066 +#: pg_dump.c:15170 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "okänd objekttyp i standardrättigheter: %d" -#: pg_dump.c:15084 +#: pg_dump.c:15188 #, c-format msgid "could not parse default ACL list (%s)" msgstr "kunde inte parsa standard-ACL-lista (%s)" -#: pg_dump.c:15169 +#: pg_dump.c:15273 #, c-format msgid "could not parse initial GRANT ACL list (%s) or initial REVOKE ACL list (%s) for object \"%s\" (%s)" msgstr "kunde inte parsa initial GRANT ACL-lista (%s) eller initial REVOKE ACL-lista (%s) för objekt \"%s\" (%s)" -#: pg_dump.c:15177 +#: pg_dump.c:15281 #, c-format msgid "could not parse GRANT ACL list (%s) or REVOKE ACL list (%s) for object \"%s\" (%s)" msgstr "kunde inte parsa GRANT ACL-lista (%s) eller REVOKE ACL-lista (%s) för objekt \"%s\" (%s)" -#: pg_dump.c:15692 +#: pg_dump.c:15796 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "fråga för att hämta definition av vy \"%s\" returnerade ingen data" -#: pg_dump.c:15695 +#: pg_dump.c:15799 #, c-format msgid "query to obtain definition of view \"%s\" returned more than one definition" msgstr "fråga för att hämta definition av vy \"%s\" returnerade mer än en definition" -#: pg_dump.c:15702 +#: pg_dump.c:15806 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "definition av vy \"%s\" verkar vara tom (längd noll)" -#: pg_dump.c:15786 +#: pg_dump.c:15890 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS stöds inte längre (tabell \"%s\")" -#: pg_dump.c:16266 +#: pg_dump.c:16370 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "ogiltigt antal (%d) föräldrar för tabell \"%s\"" -#: pg_dump.c:16589 +#: pg_dump.c:16693 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "ogiltigt kolumnnummer %d för tabell \"%s\"" -#: pg_dump.c:16874 +#: pg_dump.c:16986 #, c-format msgid "missing index for constraint \"%s\"" msgstr "saknar index för integritetsvillkor \"%s\"" -#: pg_dump.c:17099 +#: pg_dump.c:17211 #, c-format msgid "unrecognized constraint type: %c" msgstr "oväntad integritetsvillkorstyp: %c" -#: pg_dump.c:17231 pg_dump.c:17451 +#: pg_dump.c:17343 pg_dump.c:17563 #, c-format msgid "query to get data of sequence \"%s\" returned %d row (expected 1)" msgid_plural "query to get data of sequence \"%s\" returned %d rows (expected 1)" msgstr[0] "fråga för att hämta data för sekvens \"%s\" returnerade %d rad (förväntade 1)" msgstr[1] "fråga för att hämta data för sekvens \"%s\" returnerade %d rader (förväntade 1)" -#: pg_dump.c:17265 +#: pg_dump.c:17377 #, c-format msgid "unrecognized sequence type: %s" msgstr "okänd sekvenstyp: %s" -#: pg_dump.c:17549 +#: pg_dump.c:17661 #, c-format msgid "unexpected tgtype value: %d" msgstr "oväntat tgtype-värde: %d" -#: pg_dump.c:17623 +#: pg_dump.c:17735 #, c-format msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" msgstr "felaktig argumentsträng (%s) för utlösare \"%s\" i tabell \"%s\"" -#: pg_dump.c:17859 +#: pg_dump.c:18004 #, c-format msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned" msgstr "fråga för att hämta regel \"%s\" för tabell \"%s\" misslyckades: fel antal rader returnerades" -#: pg_dump.c:18021 +#: pg_dump.c:18166 #, c-format msgid "could not find referenced extension %u" msgstr "kunde inte hitta refererad utökning %u" -#: pg_dump.c:18233 +#: pg_dump.c:18378 #, c-format msgid "reading dependency data" msgstr "läser beroendedata" -#: pg_dump.c:18326 +#: pg_dump.c:18471 #, c-format msgid "no referencing object %u %u" msgstr "inget refererande objekt %u %u" -#: pg_dump.c:18337 +#: pg_dump.c:18482 #, c-format msgid "no referenced object %u %u" msgstr "inget refererat objekt %u %u" -#: pg_dump.c:18710 +#: pg_dump.c:18870 #, c-format msgid "could not parse reloptions array" msgstr "kunde inte parsa arrayen reloptions" -#: pg_dump_sort.c:360 +#: pg_dump_sort.c:369 #, c-format msgid "invalid dumpId %d" msgstr "ogiltigt dumpId %d" -#: pg_dump_sort.c:366 +#: pg_dump_sort.c:375 #, c-format msgid "invalid dependency %d" msgstr "ogiltigt beroende %d" -#: pg_dump_sort.c:599 +#: pg_dump_sort.c:608 #, c-format msgid "could not identify dependency loop" msgstr "kunde inte fastställa beroendeloop" -#: pg_dump_sort.c:1170 +#: pg_dump_sort.c:1179 #, c-format msgid "there are circular foreign-key constraints on this table:" msgid_plural "there are circular foreign-key constraints among these tables:" msgstr[0] "det finns cirkulära främmande nyckelberoenden för denna tabell:" msgstr[1] "det finns cirkulära främmande nyckelberoenden för dessa tabeller:" -#: pg_dump_sort.c:1174 pg_dump_sort.c:1194 +#: pg_dump_sort.c:1183 pg_dump_sort.c:1203 #, c-format msgid " %s" msgstr " %s" -#: pg_dump_sort.c:1175 +#: pg_dump_sort.c:1184 #, c-format msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints." msgstr "Du kan eventiellt inte återställa dumpen utan att använda --disable-triggers eller temporärt droppa vilkoren." -#: pg_dump_sort.c:1176 +#: pg_dump_sort.c:1185 #, c-format msgid "Consider using a full dump instead of a --data-only dump to avoid this problem." msgstr "Överväg att göra en full dump istället för --data-only för att undvika detta problem." -#: pg_dump_sort.c:1188 +#: pg_dump_sort.c:1197 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "kunde inte räta ut beroendeloopen för dessa saker:" @@ -2315,7 +2325,7 @@ #: pg_dumpall.c:634 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" -msgstr " -S, --superuser=NAMN superanvändarens namn för användning i dumpen\n" +msgstr " -S, --superuser=NAMN namn på superuser för användning i dumpen\n" #: pg_dumpall.c:635 #, c-format @@ -2559,7 +2569,7 @@ #: pg_restore.c:488 #, c-format msgid " -S, --superuser=NAME superuser user name to use for disabling triggers\n" -msgstr " -S, --superuser=NAMN superanvändarens namn för att slå av utlösare\n" +msgstr " -S, --superuser=NAMN namn på superuser för att slå av utlösare\n" #: pg_restore.c:489 #, c-format @@ -2651,42 +2661,3 @@ "\n" "Om inget indatafilnamn är angivet, så kommer standard in att användas.\n" "\n" - -#~ msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to lack of data offsets in archive" -#~ msgstr "kunde inte hitta block ID %d i arkiv -- kanske på grund av en återställningbegäran i oordning vilket inte kan hanteras då det saknas dataoffsets i arkivet" - -#~ msgid "ftell mismatch with expected position -- ftell used" -#~ msgstr "ftell stämmer inte med förväntad position -- ftell använd" - -#~ msgid "" -#~ "The program \"pg_dump\" was found by \"%s\"\n" -#~ "but was not the same version as %s.\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"pg_dump\" hittades av \"%s\"\n" -#~ "men hade inte samma version som \"%s\".\n" -#~ "Kontrollera din installation." - -#~ msgid "" -#~ "The program \"pg_dump\" is needed by %s but was not found in the\n" -#~ "same directory as \"%s\".\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"pg_dump\" behövs av %s men kunde inte hittas i samma katalog\n" -#~ "som \"%s\".\n" -#~ "Kontrollera din installation." - -#~ msgid "internal error -- neither th nor fh specified in _tarReadRaw()" -#~ msgstr "internt fel -- varken th eller fh angiven i _tarReadRaw()" - -#~ msgid "connection needs password" -#~ msgstr "anslutningen kräver lösenord" - -#~ msgid "could not reconnect to database: %s" -#~ msgstr "kunde inte återuppkoppla mot databasen: %s" - -#~ msgid "could not reconnect to database" -#~ msgstr "kunde inte återuppkoppla mot databasen" - -#~ msgid "connecting to database \"%s\" as user \"%s\"" -#~ msgstr "kopplar upp mot databas \"%s\" som användare \"%s\"" diff -Nru postgresql-13-13.4/src/bin/pg_dump/t/002_pg_dump.pl postgresql-13-13.7/src/bin/pg_dump/t/002_pg_dump.pl --- postgresql-13-13.4/src/bin/pg_dump/t/002_pg_dump.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_dump/t/002_pg_dump.pl 2022-05-09 21:16:30.000000000 +0000 @@ -206,6 +206,13 @@ 'postgres', ], }, + inserts => { + dump_cmd => [ + 'pg_dump', '--no-sync', + "--file=$tempdir/inserts.sql", '-a', + '--inserts', 'postgres', + ], + }, pg_dumpall_globals => { dump_cmd => [ 'pg_dumpall', '-v', "--file=$tempdir/pg_dumpall_globals.sql", @@ -264,7 +271,8 @@ '--no-sync', "--file=$tempdir/only_dump_test_table.sql", '--table=dump_test.test_table', - '--lock-wait-timeout=1000000', + '--lock-wait-timeout=' + . (1000 * $TestLib::timeout_default), 'postgres', ], }, @@ -421,6 +429,25 @@ }, }, + 'ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role GRANT EXECUTE ON FUNCTIONS' + => { + create_order => 15, + create_sql => 'ALTER DEFAULT PRIVILEGES + FOR ROLE regress_dump_test_role IN SCHEMA dump_test + GRANT EXECUTE ON FUNCTIONS TO regress_dump_test_role;', + regexp => qr/^ + \QALTER DEFAULT PRIVILEGES \E + \QFOR ROLE regress_dump_test_role IN SCHEMA dump_test \E + \QGRANT ALL ON FUNCTIONS TO regress_dump_test_role;\E + /xm, + like => + { %full_runs, %dump_test_schema_runs, section_post_data => 1, }, + unlike => { + exclude_dump_test_schema => 1, + no_privs => 1, + }, + }, + 'ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role REVOKE' => { create_order => 55, create_sql => 'ALTER DEFAULT PRIVILEGES @@ -565,6 +592,7 @@ %full_runs, column_inserts => 1, data_only => 1, + inserts => 1, section_pre_data => 1, test_schema_plus_blobs => 1, }, @@ -892,6 +920,7 @@ %full_runs, column_inserts => 1, data_only => 1, + inserts => 1, section_pre_data => 1, test_schema_plus_blobs => 1, }, @@ -912,6 +941,7 @@ %full_runs, column_inserts => 1, data_only => 1, + inserts => 1, section_data => 1, test_schema_plus_blobs => 1, }, @@ -1046,6 +1076,7 @@ %full_runs, column_inserts => 1, data_only => 1, + inserts => 1, section_pre_data => 1, test_schema_plus_blobs => 1, }, @@ -1245,6 +1276,27 @@ }, }, + 'COPY test_third_table' => { + create_order => 7, + create_sql => + 'INSERT INTO dump_test.test_third_table VALUES (123, DEFAULT, 456);', + regexp => qr/^ + \QCOPY dump_test.test_third_table (f1, "F3") FROM stdin;\E + \n123\t456\n\\\.\n + /xm, + like => { + %full_runs, + %dump_test_schema_runs, + data_only => 1, + section_data => 1, + }, + unlike => { + binary_upgrade => 1, + exclude_dump_test_schema => 1, + schema_only => 1, + }, + }, + 'COPY test_fourth_table' => { create_order => 7, create_sql => @@ -1336,10 +1388,22 @@ like => { column_inserts => 1, }, }, + 'INSERT INTO test_third_table (colnames)' => { + regexp => + qr/^INSERT INTO dump_test\.test_third_table \(f1, "F3"\) VALUES \(123, 456\);\n/m, + like => { column_inserts => 1, }, + }, + + 'INSERT INTO test_third_table' => { + regexp => + qr/^INSERT INTO dump_test\.test_third_table VALUES \(123, DEFAULT, 456, DEFAULT\);\n/m, + like => { inserts => 1, }, + }, + 'INSERT INTO test_fourth_table' => { regexp => qr/^(?:INSERT INTO dump_test\.test_fourth_table DEFAULT VALUES;\n){2}/m, - like => { column_inserts => 1, rows_per_insert => 1, }, + like => { column_inserts => 1, inserts => 1, rows_per_insert => 1, }, }, 'INSERT INTO test_fifth_table' => { @@ -2464,6 +2528,28 @@ like => {} }, + 'CREATE TABLE test_third_table_generated_cols' => { + create_order => 6, + create_sql => 'CREATE TABLE dump_test.test_third_table ( + f1 int, junk int, + g1 int generated always as (f1 * 2) stored, + "F3" int, + g2 int generated always as ("F3" * 3) stored + ); + ALTER TABLE dump_test.test_third_table DROP COLUMN junk;', + regexp => qr/^ + \QCREATE TABLE dump_test.test_third_table (\E\n + \s+\Qf1 integer,\E\n + \s+\Qg1 integer GENERATED ALWAYS AS ((f1 * 2)) STORED,\E\n + \s+\Q"F3" integer,\E\n + \s+\Qg2 integer GENERATED ALWAYS AS (("F3" * 3)) STORED\E\n + \);\n + /xm, + like => + { %full_runs, %dump_test_schema_runs, section_pre_data => 1, }, + unlike => { binary_upgrade => 1, exclude_dump_test_schema => 1, }, + }, + 'CREATE TABLE test_fourth_table_zero_col' => { create_order => 6, create_sql => 'CREATE TABLE dump_test.test_fourth_table ( @@ -3133,6 +3219,7 @@ %full_runs, column_inserts => 1, data_only => 1, + inserts => 1, section_pre_data => 1, test_schema_plus_blobs => 1, binary_upgrade => 1, diff -Nru postgresql-13-13.4/src/bin/pg_resetwal/po/fr.po postgresql-13-13.7/src/bin/pg_resetwal/po/fr.po --- postgresql-13-13.4/src/bin/pg_resetwal/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_resetwal/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: PostgreSQL 12\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-16 06:16+0000\n" -"PO-Revision-Date: 2020-04-16 14:06+0200\n" +"POT-Creation-Date: 2021-08-25 13:58+0000\n" +"PO-Revision-Date: 2021-08-27 17:29+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: PostgreSQLfr \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../../src/common/logging.c:236 @@ -76,111 +76,117 @@ msgstr "n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:160 pg_resetwal.c:175 pg_resetwal.c:190 pg_resetwal.c:197 -#: pg_resetwal.c:221 pg_resetwal.c:236 pg_resetwal.c:244 pg_resetwal.c:269 -#: pg_resetwal.c:283 +#: pg_resetwal.c:162 pg_resetwal.c:177 pg_resetwal.c:192 pg_resetwal.c:207 +#: pg_resetwal.c:214 pg_resetwal.c:238 pg_resetwal.c:253 pg_resetwal.c:261 +#: pg_resetwal.c:286 pg_resetwal.c:300 #, c-format msgid "invalid argument for option %s" msgstr "argument invalide pour l'option %s" -#: pg_resetwal.c:161 pg_resetwal.c:176 pg_resetwal.c:191 pg_resetwal.c:198 -#: pg_resetwal.c:222 pg_resetwal.c:237 pg_resetwal.c:245 pg_resetwal.c:270 -#: pg_resetwal.c:284 pg_resetwal.c:310 pg_resetwal.c:323 pg_resetwal.c:331 +#: pg_resetwal.c:163 pg_resetwal.c:178 pg_resetwal.c:193 pg_resetwal.c:208 +#: pg_resetwal.c:215 pg_resetwal.c:239 pg_resetwal.c:254 pg_resetwal.c:262 +#: pg_resetwal.c:287 pg_resetwal.c:301 pg_resetwal.c:327 pg_resetwal.c:340 +#: pg_resetwal.c:348 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Essayer « %s --help » pour plus d'informations.\n" -#: pg_resetwal.c:166 +#: pg_resetwal.c:168 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "la valeur epoch de l'identifiant de transaction (-e) ne doit pas être -1" -#: pg_resetwal.c:181 +#: pg_resetwal.c:183 #, c-format -msgid "transaction ID (-x) must not be 0" -msgstr "l'identifiant de la transaction (-x) ne doit pas être 0" +msgid "oldest transaction ID (-u) must be greater than or equal to %u" +msgstr "l'identifiant de transaction le plus ancien (-u) doit être supérieur ou égal à %u" -#: pg_resetwal.c:205 pg_resetwal.c:212 +#: pg_resetwal.c:198 +#, c-format +msgid "transaction ID (-x) must be greater than or equal to %u" +msgstr "l'identifiant de transaction (-x) doit être supérieur ou égal à %u" + +#: pg_resetwal.c:222 pg_resetwal.c:229 #, c-format msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" msgstr "l'identifiant de transaction (-c) doit être 0 ou supérieur ou égal à 2" -#: pg_resetwal.c:227 +#: pg_resetwal.c:244 #, c-format msgid "OID (-o) must not be 0" msgstr "l'OID (-o) ne doit pas être 0" -#: pg_resetwal.c:250 +#: pg_resetwal.c:267 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "l'identifiant de multi-transaction (-m) ne doit pas être 0" -#: pg_resetwal.c:260 +#: pg_resetwal.c:277 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "l'identifiant de multi-transaction le plus ancien (-m) ne doit pas être 0" -#: pg_resetwal.c:275 +#: pg_resetwal.c:292 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "le décalage de multi-transaction (-O) ne doit pas être -1" -#: pg_resetwal.c:299 +#: pg_resetwal.c:316 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "l'argument de --wal-segsize doit être un nombre" -#: pg_resetwal.c:304 +#: pg_resetwal.c:321 #, c-format msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" msgstr "l'argument de --wal-segsize doit être une puissance de 2 comprise entre 1 et 1024" -#: pg_resetwal.c:321 +#: pg_resetwal.c:338 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: pg_resetwal.c:330 +#: pg_resetwal.c:347 #, c-format msgid "no data directory specified" msgstr "aucun répertoire de données indiqué" -#: pg_resetwal.c:344 +#: pg_resetwal.c:361 #, c-format msgid "cannot be executed by \"root\"" msgstr "ne peut pas être exécuté par « root »" -#: pg_resetwal.c:345 +#: pg_resetwal.c:362 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Vous devez exécuter %s en tant que super-utilisateur PostgreSQL." -#: pg_resetwal.c:356 +#: pg_resetwal.c:373 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "n'a pas pu lire les droits du répertoire « %s » : %m" -#: pg_resetwal.c:365 +#: pg_resetwal.c:382 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "n'a pas pu modifier le répertoire par « %s » : %m" -#: pg_resetwal.c:381 pg_resetwal.c:544 pg_resetwal.c:595 +#: pg_resetwal.c:398 pg_resetwal.c:553 pg_resetwal.c:604 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %m" -#: pg_resetwal.c:388 +#: pg_resetwal.c:405 #, c-format msgid "lock file \"%s\" exists" msgstr "le fichier verrou « %s » existe" -#: pg_resetwal.c:389 +#: pg_resetwal.c:406 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "Le serveur est-il démarré ? Sinon, supprimer le fichier verrou et réessayer." -#: pg_resetwal.c:492 +#: pg_resetwal.c:501 #, c-format msgid "" "\n" @@ -190,7 +196,7 @@ "Si ces valeurs semblent acceptables, utiliser -f pour forcer la\n" "réinitialisation.\n" -#: pg_resetwal.c:504 +#: pg_resetwal.c:513 #, c-format msgid "" "The database server was not shut down cleanly.\n" @@ -203,32 +209,32 @@ "Pour continuer malgré tout, utiliser -f pour forcer la\n" "réinitialisation.\n" -#: pg_resetwal.c:518 +#: pg_resetwal.c:527 #, c-format msgid "Write-ahead log reset\n" msgstr "Réinitialisation des journaux de transactions\n" -#: pg_resetwal.c:553 +#: pg_resetwal.c:562 #, c-format msgid "unexpected empty file \"%s\"" msgstr "fichier vide inattendu « %s »" -#: pg_resetwal.c:555 pg_resetwal.c:611 +#: pg_resetwal.c:564 pg_resetwal.c:620 #, c-format msgid "could not read file \"%s\": %m" msgstr "n'a pas pu lire le fichier « %s » : %m" -#: pg_resetwal.c:564 +#: pg_resetwal.c:573 #, c-format msgid "data directory is of wrong version" msgstr "le répertoire des données a une mauvaise version" -#: pg_resetwal.c:565 +#: pg_resetwal.c:574 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "Le fichier « %s » contient « %s », qui n'est pas compatible avec la version « %s » de ce programme." -#: pg_resetwal.c:598 +#: pg_resetwal.c:607 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -239,24 +245,24 @@ " touch %s\n" "et réessayer." -#: pg_resetwal.c:629 +#: pg_resetwal.c:638 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_control existe mais son CRC est invalide ; agir avec précaution" -#: pg_resetwal.c:638 +#: pg_resetwal.c:647 #, c-format msgid "pg_control specifies invalid WAL segment size (%d byte); proceed with caution" msgid_plural "pg_control specifies invalid WAL segment size (%d bytes); proceed with caution" msgstr[0] "pg_control spécifie une taille invalide de segment WAL (%d octet) ; agir avec précaution" msgstr[1] "pg_control spécifie une taille invalide de segment WAL (%d octets) ; agir avec précaution" -#: pg_resetwal.c:649 +#: pg_resetwal.c:658 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_control existe mais est corrompu ou de mauvaise version ; ignoré" -#: pg_resetwal.c:744 +#: pg_resetwal.c:753 #, c-format msgid "" "Guessed pg_control values:\n" @@ -265,7 +271,7 @@ "Valeurs de pg_control devinées :\n" "\n" -#: pg_resetwal.c:746 +#: pg_resetwal.c:755 #, c-format msgid "" "Current pg_control values:\n" @@ -274,167 +280,167 @@ "Valeurs actuelles de pg_control :\n" "\n" -#: pg_resetwal.c:748 +#: pg_resetwal.c:757 #, c-format msgid "pg_control version number: %u\n" msgstr "Numéro de version de pg_control : %u\n" -#: pg_resetwal.c:750 +#: pg_resetwal.c:759 #, c-format msgid "Catalog version number: %u\n" msgstr "Numéro de version du catalogue : %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:761 #, c-format msgid "Database system identifier: %llu\n" msgstr "Identifiant du système de base de données : %llu\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:763 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Dernier TimeLineID du point de contrôle : %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:765 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Dernier full_page_writes du point de contrôle : %s\n" -#: pg_resetwal.c:757 +#: pg_resetwal.c:766 msgid "off" msgstr "désactivé" -#: pg_resetwal.c:757 +#: pg_resetwal.c:766 msgid "on" msgstr "activé" -#: pg_resetwal.c:758 +#: pg_resetwal.c:767 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "Dernier NextXID du point de contrôle : %u:%u\n" -#: pg_resetwal.c:761 +#: pg_resetwal.c:770 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "Dernier NextOID du point de contrôle : %u\n" -#: pg_resetwal.c:763 +#: pg_resetwal.c:772 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "Dernier NextMultiXactId du point de contrôle : %u\n" -#: pg_resetwal.c:765 +#: pg_resetwal.c:774 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "Dernier NextMultiOffset du point de contrôle : %u\n" -#: pg_resetwal.c:767 +#: pg_resetwal.c:776 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "Dernier oldestXID du point de contrôle : %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:778 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "Dernier oldestXID du point de contrôle de la base : %u\n" -#: pg_resetwal.c:771 +#: pg_resetwal.c:780 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "Dernier oldestActiveXID du point de contrôle : %u\n" -#: pg_resetwal.c:773 +#: pg_resetwal.c:782 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "Dernier oldestMultiXID du point de contrôle : %u\n" -#: pg_resetwal.c:775 +#: pg_resetwal.c:784 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "Dernier oldestMulti du point de contrôle de la base : %u\n" -#: pg_resetwal.c:777 +#: pg_resetwal.c:786 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "Dernier oldestCommitTsXid du point de contrôle : %u\n" -#: pg_resetwal.c:779 +#: pg_resetwal.c:788 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "Dernier newestCommitTsXid du point de contrôle : %u\n" -#: pg_resetwal.c:781 +#: pg_resetwal.c:790 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Alignement maximal des données : %u\n" -#: pg_resetwal.c:784 +#: pg_resetwal.c:793 #, c-format msgid "Database block size: %u\n" msgstr "Taille du bloc de la base de données : %u\n" -#: pg_resetwal.c:786 +#: pg_resetwal.c:795 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Blocs par segment des relations volumineuses : %u\n" -#: pg_resetwal.c:788 +#: pg_resetwal.c:797 #, c-format msgid "WAL block size: %u\n" msgstr "Taille de bloc du journal de transaction : %u\n" -#: pg_resetwal.c:790 pg_resetwal.c:876 +#: pg_resetwal.c:799 pg_resetwal.c:885 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Octets par segment du journal de transaction : %u\n" -#: pg_resetwal.c:792 +#: pg_resetwal.c:801 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Longueur maximale des identifiants : %u\n" -#: pg_resetwal.c:794 +#: pg_resetwal.c:803 #, c-format msgid "Maximum columns in an index: %u\n" -msgstr "Nombre maximal de colonnes d'un index: %u\n" +msgstr "Nombre maximum de colonnes d'un index: %u\n" -#: pg_resetwal.c:796 +#: pg_resetwal.c:805 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Longueur maximale d'un morceau TOAST : %u\n" -#: pg_resetwal.c:798 +#: pg_resetwal.c:807 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Taille d'un morceau de Large Object : %u\n" -#: pg_resetwal.c:801 +#: pg_resetwal.c:810 #, c-format msgid "Date/time type storage: %s\n" msgstr "Stockage du type date/heure : %s\n" -#: pg_resetwal.c:802 +#: pg_resetwal.c:811 msgid "64-bit integers" msgstr "entiers 64-bits" -#: pg_resetwal.c:803 +#: pg_resetwal.c:812 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Passage d'argument float8 : %s\n" -#: pg_resetwal.c:804 +#: pg_resetwal.c:813 msgid "by reference" msgstr "par référence" -#: pg_resetwal.c:804 +#: pg_resetwal.c:813 msgid "by value" msgstr "par valeur" -#: pg_resetwal.c:805 +#: pg_resetwal.c:814 #, c-format msgid "Data page checksum version: %u\n" msgstr "Version des sommes de contrôle des pages de données : %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:828 #, c-format msgid "" "\n" @@ -447,102 +453,102 @@ "Valeurs à changer :\n" "\n" -#: pg_resetwal.c:823 +#: pg_resetwal.c:832 #, c-format msgid "First log segment after reset: %s\n" msgstr "Premier segment du journal après réinitialisation : %s\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:836 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:829 +#: pg_resetwal.c:838 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:831 +#: pg_resetwal.c:840 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "OldestMulti's DB: %u\n" -#: pg_resetwal.c:837 +#: pg_resetwal.c:846 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:843 +#: pg_resetwal.c:852 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:849 +#: pg_resetwal.c:858 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:851 +#: pg_resetwal.c:860 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:853 +#: pg_resetwal.c:862 #, c-format msgid "OldestXID's DB: %u\n" msgstr "OldestXID's DB: %u\n" -#: pg_resetwal.c:859 +#: pg_resetwal.c:868 #, c-format msgid "NextXID epoch: %u\n" msgstr "NextXID Epoch: %u\n" -#: pg_resetwal.c:865 +#: pg_resetwal.c:874 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:870 +#: pg_resetwal.c:879 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:956 pg_resetwal.c:1024 pg_resetwal.c:1071 +#: pg_resetwal.c:965 pg_resetwal.c:1033 pg_resetwal.c:1080 #, c-format msgid "could not open directory \"%s\": %m" msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" -#: pg_resetwal.c:991 pg_resetwal.c:1044 pg_resetwal.c:1094 +#: pg_resetwal.c:1000 pg_resetwal.c:1053 pg_resetwal.c:1103 #, c-format msgid "could not read directory \"%s\": %m" msgstr "n'a pas pu lire le répertoire « %s » : %m" -#: pg_resetwal.c:997 pg_resetwal.c:1050 pg_resetwal.c:1100 +#: pg_resetwal.c:1006 pg_resetwal.c:1059 pg_resetwal.c:1109 #, c-format msgid "could not close directory \"%s\": %m" msgstr "n'a pas pu fermer le répertoire « %s » : %m" -#: pg_resetwal.c:1036 pg_resetwal.c:1086 +#: pg_resetwal.c:1045 pg_resetwal.c:1095 #, c-format msgid "could not delete file \"%s\": %m" msgstr "n'a pas pu supprimer le fichier « %s » : %m" -#: pg_resetwal.c:1167 +#: pg_resetwal.c:1176 #, c-format msgid "could not open file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier « %s » : %m" -#: pg_resetwal.c:1177 pg_resetwal.c:1190 +#: pg_resetwal.c:1186 pg_resetwal.c:1199 #, c-format msgid "could not write file \"%s\": %m" msgstr "impossible d'écrire le fichier « %s » : %m" -#: pg_resetwal.c:1197 +#: pg_resetwal.c:1206 #, c-format msgid "fsync error: %m" msgstr "erreur fsync : %m" -#: pg_resetwal.c:1208 +#: pg_resetwal.c:1217 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -551,7 +557,7 @@ "%s réinitialise le journal des transactions PostgreSQL.\n" "\n" -#: pg_resetwal.c:1209 +#: pg_resetwal.c:1218 #, c-format msgid "" "Usage:\n" @@ -562,88 +568,103 @@ " %s [OPTION]... RÉP_DONNÉES\n" "\n" -#: pg_resetwal.c:1210 +#: pg_resetwal.c:1219 #, c-format msgid "Options:\n" msgstr "Options :\n" -#: pg_resetwal.c:1211 +#: pg_resetwal.c:1220 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" -" set oldest and newest transactions bearing\n" -" commit timestamp (zero means no change)\n" +" set oldest and newest transactions bearing\n" +" commit timestamp (zero means no change)\n" msgstr "" " -c, --commit-timestamp-ids=XID,XID\n" -" configure les transactions la plus ancienne et la plus récent\n" -" contenant les dates/heures de validation (zéro signifie aucun\n" -" changement)\n" +" configure les transactions la plus ancienne\n" +" et la plus récente contenant les dates/heures\n" +" de validation (zéro signifie aucun changement)\n" -#: pg_resetwal.c:1214 +#: pg_resetwal.c:1223 #, c-format -msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=] RÉPDONNEES répertoire de la base de données\n" +msgid " [-D, --pgdata=]DATADIR data directory\n" +msgstr " [-D, --pgdata=]RÉP_DONNEES répertoire de la base de données\n" -#: pg_resetwal.c:1215 +#: pg_resetwal.c:1224 #, c-format -msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" +msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr "" -" -e, --epoch XIDEPOCH fixe la valeur epoch du prochain identifiant de\n" -" transaction\n" +" -e, --epoch=XIDEPOCH configure la valeur epoch du prochain\n" +" identifiant de transaction\n" -#: pg_resetwal.c:1216 +#: pg_resetwal.c:1225 #, c-format -msgid " -f, --force force update to be done\n" -msgstr " -f, --force force la mise à jour\n" +msgid " -f, --force force update to be done\n" +msgstr " -f, --force force la mise à jour\n" -#: pg_resetwal.c:1217 +#: pg_resetwal.c:1226 #, c-format -msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" +msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr "" -" -l, --next-wal-file=FICHIERWAL force l'emplacement minimal de début des WAL du nouveau\n" -" journal de transactions\n" +" -l, --next-wal-file=FICHIERWAL configure l'emplacement minimal de début des\n" +" WAL du nouveau journal de transactions\n" -#: pg_resetwal.c:1218 +#: pg_resetwal.c:1227 #, c-format -msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" -msgstr " -m, --multixact-ids=MXID,MXID fixe le prochain et le plus ancien identifiants multi-transaction\n" +msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" +msgstr "" +" -m, --multixact-ids=MXID,MXID configure le prochain et le plus ancien\n" +" identifiants multi-transaction\n" -#: pg_resetwal.c:1219 +#: pg_resetwal.c:1228 #, c-format -msgid " -n, --dry-run no update, just show what would be done\n" -msgstr " -n pas de mise à jour, affiche simplement ce qui sera fait\n" +msgid " -n, --dry-run no update, just show what would be done\n" +msgstr "" +" -n, --dry-run pas de mise à jour, affiche simplement ce qui\n" +" sera fait\n" -#: pg_resetwal.c:1220 +#: pg_resetwal.c:1229 +#, c-format +msgid " -o, --next-oid=OID set next OID\n" +msgstr " -o, --next-oid=OID configure le prochain OID\n" + +#: pg_resetwal.c:1230 #, c-format -msgid " -o, --next-oid=OID set next OID\n" -msgstr " -o, --next-oid=OID fixe le prochain OID\n" +msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" +msgstr "" +" -O, --multixact-offset=DÉCALAGE configure le prochain décalage\n" +" multitransaction\n" -#: pg_resetwal.c:1221 +#: pg_resetwal.c:1231 #, c-format -msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" -msgstr " -O, --multixact-offset=DÉCALAGE configure le prochain décalage multitransaction\n" +msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" +msgstr "" +" -u, --oldest-transaction-id=XID configure l'identifiant de transaction le\n" +" plus ancien\n" -#: pg_resetwal.c:1222 +#: pg_resetwal.c:1232 #, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version, puis quitte\n" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version affiche la version puis quitte\n" -#: pg_resetwal.c:1223 +#: pg_resetwal.c:1233 #, c-format -msgid " -x, --next-transaction-id=XID set next transaction ID\n" -msgstr " -x, --next-transaction-id=XID configure le prochain identifiant de transaction\n" +msgid " -x, --next-transaction-id=XID set next transaction ID\n" +msgstr "" +" -x, --next-transaction-id=XID configure le prochain identifiant de\n" +" transaction\n" -#: pg_resetwal.c:1224 +#: pg_resetwal.c:1234 #, c-format -msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" -msgstr " --wal-segsize=TAILLE taille des segments WAL, en megaoctets\n" +msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" +msgstr " --wal-segsize=TAILLE configure la taille des segments WAL, en Mo\n" -#: pg_resetwal.c:1225 +#: pg_resetwal.c:1235 #, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide, puis quitte\n" +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_resetwal.c:1226 +#: pg_resetwal.c:1236 #, c-format msgid "" "\n" @@ -652,142 +673,151 @@ "\n" "Rapporter les bogues à <%s>.\n" -#: pg_resetwal.c:1227 +#: pg_resetwal.c:1237 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil %s : %s\n" +msgstr "Page d'accueil de %s : <%s>\n" -#~ msgid "%s: WARNING: cannot create restricted tokens on this platform\n" -#~ msgstr "%s : ATTENTION : ne peut pas créer les jetons restreints sur cette plateforme\n" +#~ msgid "Float4 argument passing: %s\n" +#~ msgstr "Passage d'argument float4 : %s\n" -#~ msgid "%s: could not open process token: error code %lu\n" -#~ msgstr "%s : n'a pas pu ouvrir le jeton du processus : code d'erreur %lu\n" +#~ msgid "" +#~ "\n" +#~ "Report bugs to .\n" +#~ msgstr "" +#~ "\n" +#~ "Rapporter les bogues à .\n" -#~ msgid "%s: could not allocate SIDs: error code %lu\n" -#~ msgstr "%s : n'a pas pu allouer les SID : code d'erreur %lu\n" +#~ msgid "%s: internal error -- sizeof(ControlFileData) is too large ... fix PG_CONTROL_SIZE\n" +#~ msgstr "" +#~ "%s : erreur interne -- sizeof(ControlFileData) est trop important...\n" +#~ "corrigez PG_CONTROL_SIZE\n" -#~ msgid "%s: could not create restricted token: error code %lu\n" -#~ msgstr "%s : n'a pas pu créer le jeton restreint : code d'erreur %lu\n" +#~ msgid " -c XID,XID set oldest and newest transactions bearing commit timestamp\n" +#~ msgstr " -c XID,XID configure la plus ancienne et la plus récente transaction\n" -#~ msgid "%s: could not start process for command \"%s\": error code %lu\n" -#~ msgstr "%s : n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu\n" +#~ msgid " (zero in either value means no change)\n" +#~ msgstr " (zéro dans l'une des deux valeurs signifie aucun changement)\n" -#~ msgid "%s: could not re-execute with restricted token: error code %lu\n" -#~ msgstr "%s : n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu\n" +#~ msgid " -V, --version output version information, then exit\n" +#~ msgstr " -V, --version affiche la version et quitte\n" -#~ msgid "%s: could not get exit code from subprocess: error code %lu\n" -#~ msgstr "%s : n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu\n" +#~ msgid " -x XID set next transaction ID\n" +#~ msgstr " -x XID fixe le prochain identifiant de transaction\n" -#~ msgid "%s: argument of --wal-segsize must be a number\n" -#~ msgstr "%s : l'argument de --wal-segsize doit être un nombre\n" +#~ msgid " -?, --help show this help, then exit\n" +#~ msgstr " -?, --help affiche cette aide et quitte\n" -#~ msgid "%s: argument of --wal-segsize must be a power of 2 between 1 and 1024\n" -#~ msgstr "%s : l'argument de --wal-segsize doit être une puissance de 2 entre 1 et 1024\n" +#~ msgid "First log file ID after reset: %u\n" +#~ msgstr "Premier identifiant du journal après réinitialisation : %u\n" -#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" -#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version afficherla version et quitte\n" -#~ msgid "%s: no data directory specified\n" -#~ msgstr "%s : aucun répertoire de données indiqué\n" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help affiche cette aide et quitte\n" -#~ msgid "%s: cannot be executed by \"root\"\n" -#~ msgstr "%s : ne peut pas être exécuté par « root »\n" +#~ msgid "%s: could not read from directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n" -#~ msgid "%s: could not read permissions of directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire les droits sur le répertoire « %s » : %s\n" +#~ msgid "%s: invalid argument for option -l\n" +#~ msgstr "%s : argument invalide pour l'option -l\n" -#~ msgid "%s: could not change directory to \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu accéder au répertoire « %s » : %s\n" +#~ msgid "%s: invalid argument for option -O\n" +#~ msgstr "%s : argument invalide pour l'option -O\n" -#~ msgid "%s: could not open file \"%s\" for reading: %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » en lecture : %s\n" +#~ msgid "%s: invalid argument for option -m\n" +#~ msgstr "%s : argument invalide pour l'option -m\n" -#~ msgid "%s: could not read file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le fichier « %s » : %s\n" +#~ msgid "%s: invalid argument for option -o\n" +#~ msgstr "%s : argument invalide pour l'option -o\n" -#~ msgid "%s: could not create pg_control file: %s\n" -#~ msgstr "%s : n'a pas pu créer le fichier pg_control : %s\n" +#~ msgid "%s: invalid argument for option -x\n" +#~ msgstr "%s : argument invalide pour l'option -x\n" -#~ msgid "%s: could not write pg_control file: %s\n" -#~ msgstr "%s : n'a pas pu écrire le fichier pg_control : %s\n" +#~ msgid "floating-point numbers" +#~ msgstr "nombres à virgule flottante" -#~ msgid "%s: could not open directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le répertoire « %s » : %s\n" +#~ msgid "Transaction log reset\n" +#~ msgstr "Réinitialisation du journal des transactions\n" -#~ msgid "%s: could not read directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n" +#~ msgid "%s: could not write file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu écrire le fichier « %s » : %s\n" -#~ msgid "%s: could not close directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu fermer le répertoire « %s » : %s\n" +#~ msgid "%s: could not open file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n" #~ msgid "%s: could not delete file \"%s\": %s\n" #~ msgstr "%s : n'a pas pu supprimer le fichier « %s » : %s\n" -#~ msgid "%s: could not open file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n" +#~ msgid "%s: could not close directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu fermer le répertoire « %s » : %s\n" -#~ msgid "%s: could not write file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu écrire le fichier « %s » : %s\n" +#~ msgid "%s: could not read directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n" -#~ msgid "Transaction log reset\n" -#~ msgstr "Réinitialisation du journal des transactions\n" +#~ msgid "%s: could not open directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le répertoire « %s » : %s\n" -#~ msgid "floating-point numbers" -#~ msgstr "nombres à virgule flottante" +#~ msgid "%s: could not write pg_control file: %s\n" +#~ msgstr "%s : n'a pas pu écrire le fichier pg_control : %s\n" -#~ msgid "%s: invalid argument for option -x\n" -#~ msgstr "%s : argument invalide pour l'option -x\n" +#~ msgid "%s: could not create pg_control file: %s\n" +#~ msgstr "%s : n'a pas pu créer le fichier pg_control : %s\n" -#~ msgid "%s: invalid argument for option -o\n" -#~ msgstr "%s : argument invalide pour l'option -o\n" +#~ msgid "%s: could not read file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu lire le fichier « %s » : %s\n" -#~ msgid "%s: invalid argument for option -m\n" -#~ msgstr "%s : argument invalide pour l'option -m\n" +#~ msgid "%s: could not open file \"%s\" for reading: %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » en lecture : %s\n" -#~ msgid "%s: invalid argument for option -O\n" -#~ msgstr "%s : argument invalide pour l'option -O\n" +#~ msgid "%s: could not change directory to \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu accéder au répertoire « %s » : %s\n" -#~ msgid "%s: invalid argument for option -l\n" -#~ msgstr "%s : argument invalide pour l'option -l\n" +#~ msgid "%s: could not read permissions of directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu lire les droits sur le répertoire « %s » : %s\n" -#~ msgid "%s: could not read from directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n" +#~ msgid "%s: cannot be executed by \"root\"\n" +#~ msgstr "%s : ne peut pas être exécuté par « root »\n" -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide et quitte\n" +#~ msgid "%s: no data directory specified\n" +#~ msgstr "%s : aucun répertoire de données indiqué\n" -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version afficherla version et quitte\n" +#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" +#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" -#~ msgid "First log file ID after reset: %u\n" -#~ msgstr "Premier identifiant du journal après réinitialisation : %u\n" +#~ msgid "%s: argument of --wal-segsize must be a power of 2 between 1 and 1024\n" +#~ msgstr "%s : l'argument de --wal-segsize doit être une puissance de 2 entre 1 et 1024\n" -#~ msgid " -?, --help show this help, then exit\n" -#~ msgstr " -?, --help affiche cette aide et quitte\n" +#~ msgid "%s: argument of --wal-segsize must be a number\n" +#~ msgstr "%s : l'argument de --wal-segsize doit être un nombre\n" -#~ msgid " -x XID set next transaction ID\n" -#~ msgstr " -x XID fixe le prochain identifiant de transaction\n" +#~ msgid "%s: could not get exit code from subprocess: error code %lu\n" +#~ msgstr "%s : n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu\n" -#~ msgid " -V, --version output version information, then exit\n" -#~ msgstr " -V, --version affiche la version et quitte\n" +#~ msgid "%s: could not re-execute with restricted token: error code %lu\n" +#~ msgstr "%s : n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu\n" -#~ msgid " (zero in either value means no change)\n" -#~ msgstr " (zéro dans l'une des deux valeurs signifie aucun changement)\n" +#~ msgid "%s: could not start process for command \"%s\": error code %lu\n" +#~ msgstr "%s : n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu\n" -#~ msgid " -c XID,XID set oldest and newest transactions bearing commit timestamp\n" -#~ msgstr " -c XID,XID configure la plus ancienne et la plus récente transaction\n" +#~ msgid "%s: could not create restricted token: error code %lu\n" +#~ msgstr "%s : n'a pas pu créer le jeton restreint : code d'erreur %lu\n" -#~ msgid "%s: internal error -- sizeof(ControlFileData) is too large ... fix PG_CONTROL_SIZE\n" -#~ msgstr "" -#~ "%s : erreur interne -- sizeof(ControlFileData) est trop important...\n" -#~ "corrigez PG_CONTROL_SIZE\n" +#~ msgid "%s: could not allocate SIDs: error code %lu\n" +#~ msgstr "%s : n'a pas pu allouer les SID : code d'erreur %lu\n" -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" +#~ msgid "%s: could not open process token: error code %lu\n" +#~ msgstr "%s : n'a pas pu ouvrir le jeton du processus : code d'erreur %lu\n" -#~ msgid "Float4 argument passing: %s\n" -#~ msgstr "Passage d'argument float4 : %s\n" +#~ msgid "%s: WARNING: cannot create restricted tokens on this platform\n" +#~ msgstr "%s : ATTENTION : ne peut pas créer les jetons restreints sur cette plateforme\n" + +#~ msgid " -?, --help show this help, then exit\n" +#~ msgstr " -?, --help affiche cette aide, puis quitte\n" + +#~ msgid " -V, --version output version information, then exit\n" +#~ msgstr " -V, --version affiche la version, puis quitte\n" + +#~ msgid "transaction ID (-x) must not be 0" +#~ msgstr "l'identifiant de la transaction (-x) ne doit pas être 0" diff -Nru postgresql-13-13.4/src/bin/pg_resetwal/po/ru.po postgresql-13-13.7/src/bin/pg_resetwal/po/ru.po --- postgresql-13-13.4/src/bin/pg_resetwal/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_resetwal/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -5,13 +5,13 @@ # Oleg Bartunov , 2004. # Sergey Burladyan , 2009. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: pg_resetxlog (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-03 11:22+0300\n" -"PO-Revision-Date: 2020-09-03 13:37+0300\n" +"POT-Creation-Date: 2021-08-14 06:30+0300\n" +"PO-Revision-Date: 2021-09-04 12:13+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -77,112 +77,118 @@ msgstr "не удалось получить код выхода от подпроцесса (код ошибки: %lu)" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:160 pg_resetwal.c:175 pg_resetwal.c:190 pg_resetwal.c:197 -#: pg_resetwal.c:221 pg_resetwal.c:236 pg_resetwal.c:244 pg_resetwal.c:269 -#: pg_resetwal.c:283 +#: pg_resetwal.c:162 pg_resetwal.c:177 pg_resetwal.c:192 pg_resetwal.c:207 +#: pg_resetwal.c:214 pg_resetwal.c:238 pg_resetwal.c:253 pg_resetwal.c:261 +#: pg_resetwal.c:286 pg_resetwal.c:300 #, c-format msgid "invalid argument for option %s" msgstr "недопустимый аргумент параметра %s" -#: pg_resetwal.c:161 pg_resetwal.c:176 pg_resetwal.c:191 pg_resetwal.c:198 -#: pg_resetwal.c:222 pg_resetwal.c:237 pg_resetwal.c:245 pg_resetwal.c:270 -#: pg_resetwal.c:284 pg_resetwal.c:310 pg_resetwal.c:323 pg_resetwal.c:331 +#: pg_resetwal.c:163 pg_resetwal.c:178 pg_resetwal.c:193 pg_resetwal.c:208 +#: pg_resetwal.c:215 pg_resetwal.c:239 pg_resetwal.c:254 pg_resetwal.c:262 +#: pg_resetwal.c:287 pg_resetwal.c:301 pg_resetwal.c:327 pg_resetwal.c:340 +#: pg_resetwal.c:348 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Для дополнительной информации попробуйте \"%s --help\".\n" -#: pg_resetwal.c:166 +#: pg_resetwal.c:168 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "эпоха ID транзакции (-e) не должна быть равна -1" -#: pg_resetwal.c:181 +#: pg_resetwal.c:183 #, c-format -msgid "transaction ID (-x) must not be 0" -msgstr "ID транзакции (-x) не должен быть равен 0" +msgid "oldest transaction ID (-u) must be greater than or equal to %u" +msgstr "ID старейшей транзакции (-u) должен быть больше или равен %u" -#: pg_resetwal.c:205 pg_resetwal.c:212 +#: pg_resetwal.c:198 +#, c-format +msgid "transaction ID (-x) must be greater than or equal to %u" +msgstr "ID транзакции (-x) должен быть больше или равен %u" + +#: pg_resetwal.c:222 pg_resetwal.c:229 #, c-format msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" msgstr "ID транзакции (-c) должен быть равен 0, либо больше или равен 2" -#: pg_resetwal.c:227 +#: pg_resetwal.c:244 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) не должен быть равен 0" -#: pg_resetwal.c:250 +#: pg_resetwal.c:267 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "ID мультитранзакции (-m) не должен быть равен 0" -#: pg_resetwal.c:260 +#: pg_resetwal.c:277 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "ID старейшей мультитранзакции (-m) не должен быть равен 0" -#: pg_resetwal.c:275 +#: pg_resetwal.c:292 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "смещение мультитранзакции (-O) не должно быть равно -1" -#: pg_resetwal.c:299 +#: pg_resetwal.c:316 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "аргументом --wal-segsize должно быть число" -#: pg_resetwal.c:304 +#: pg_resetwal.c:321 #, c-format msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" msgstr "аргументом --wal-segsize должна быть степень 2 от 1 до 1024" -#: pg_resetwal.c:321 +#: pg_resetwal.c:338 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_resetwal.c:330 +#: pg_resetwal.c:347 #, c-format msgid "no data directory specified" msgstr "каталог данных не указан" -#: pg_resetwal.c:344 +#: pg_resetwal.c:361 #, c-format msgid "cannot be executed by \"root\"" msgstr "программу не должен запускать root" -#: pg_resetwal.c:345 +#: pg_resetwal.c:362 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Запускать %s нужно от имени суперпользователя PostgreSQL." -#: pg_resetwal.c:356 +#: pg_resetwal.c:373 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "не удалось считать права на каталог \"%s\": %m" -#: pg_resetwal.c:365 +#: pg_resetwal.c:382 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: pg_resetwal.c:381 pg_resetwal.c:544 pg_resetwal.c:595 +#: pg_resetwal.c:398 pg_resetwal.c:553 pg_resetwal.c:604 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не удалось открыть файл \"%s\" для чтения: %m" -#: pg_resetwal.c:388 +#: pg_resetwal.c:405 #, c-format msgid "lock file \"%s\" exists" msgstr "файл блокировки \"%s\" существует" -#: pg_resetwal.c:389 +#: pg_resetwal.c:406 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "" "Возможно, сервер запущен? Если нет, удалите этот файл и попробуйте снова." -#: pg_resetwal.c:492 +#: pg_resetwal.c:501 #, c-format msgid "" "\n" @@ -192,7 +198,7 @@ "Если эти значения приемлемы, выполните сброс принудительно, добавив ключ -" "f.\n" -#: pg_resetwal.c:504 +#: pg_resetwal.c:513 #, c-format msgid "" "The database server was not shut down cleanly.\n" @@ -203,27 +209,27 @@ "Сброс журнала предзаписи может привести к потере данных.\n" "Если вы хотите сбросить его, несмотря на это, добавьте ключ -f.\n" -#: pg_resetwal.c:518 +#: pg_resetwal.c:527 #, c-format msgid "Write-ahead log reset\n" msgstr "Журнал предзаписи сброшен\n" -#: pg_resetwal.c:553 +#: pg_resetwal.c:562 #, c-format msgid "unexpected empty file \"%s\"" msgstr "файл \"%s\" оказался пустым" -#: pg_resetwal.c:555 pg_resetwal.c:611 +#: pg_resetwal.c:564 pg_resetwal.c:620 #, c-format msgid "could not read file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" -#: pg_resetwal.c:564 +#: pg_resetwal.c:573 #, c-format msgid "data directory is of wrong version" msgstr "каталог данных имеет неверную версию" -#: pg_resetwal.c:565 +#: pg_resetwal.c:574 #, c-format msgid "" "File \"%s\" contains \"%s\", which is not compatible with this program's " @@ -231,7 +237,7 @@ msgstr "" "Файл \"%s\" содержит строку \"%s\", а ожидается версия программы \"%s\"." -#: pg_resetwal.c:598 +#: pg_resetwal.c:607 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -242,14 +248,14 @@ " touch %s\n" "и повторите попытку." -#: pg_resetwal.c:629 +#: pg_resetwal.c:638 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "" "pg_control существует, но его контрольная сумма неверна; продолжайте с " "осторожностью" -#: pg_resetwal.c:638 +#: pg_resetwal.c:647 #, c-format msgid "" "pg_control specifies invalid WAL segment size (%d byte); proceed with caution" @@ -266,14 +272,14 @@ "в pg_control указан некорректный размер сегмента WAL (%d Б); продолжайте с " "осторожностью" -#: pg_resetwal.c:649 +#: pg_resetwal.c:658 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "" "pg_control испорчен или имеет неизвестную либо недопустимую версию; " "игнорируется..." -#: pg_resetwal.c:744 +#: pg_resetwal.c:753 #, c-format msgid "" "Guessed pg_control values:\n" @@ -282,7 +288,7 @@ "Предполагаемые значения pg_control:\n" "\n" -#: pg_resetwal.c:746 +#: pg_resetwal.c:755 #, c-format msgid "" "Current pg_control values:\n" @@ -291,181 +297,181 @@ "Текущие значения pg_control:\n" "\n" -#: pg_resetwal.c:748 +#: pg_resetwal.c:757 #, c-format msgid "pg_control version number: %u\n" msgstr "Номер версии pg_control: %u\n" -#: pg_resetwal.c:750 +#: pg_resetwal.c:759 #, c-format msgid "Catalog version number: %u\n" msgstr "Номер версии каталога: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:761 #, c-format msgid "Database system identifier: %llu\n" msgstr "Идентификатор системы баз данных: %llu\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:754 +#: pg_resetwal.c:763 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Линия времени последней конт. точки: %u\n" # skip-rule: no-space-after-period -#: pg_resetwal.c:756 +#: pg_resetwal.c:765 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Режим full_page_writes последней к.т: %s\n" -#: pg_resetwal.c:757 +#: pg_resetwal.c:766 msgid "off" msgstr "выкл." -#: pg_resetwal.c:757 +#: pg_resetwal.c:766 msgid "on" msgstr "вкл." # skip-rule: capital-letter-first -#: pg_resetwal.c:758 +#: pg_resetwal.c:767 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID последней конт. точки: %u:%u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:761 +#: pg_resetwal.c:770 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:763 +#: pg_resetwal.c:772 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId послед. конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:765 +#: pg_resetwal.c:774 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset послед. конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:767 +#: pg_resetwal.c:776 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:769 +#: pg_resetwal.c:778 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "БД с oldestXID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:771 +#: pg_resetwal.c:780 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID последней к. т.: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:773 +#: pg_resetwal.c:782 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid последней конт. точки: %u\n" # skip-rule: capital-letter-first, double-space -#: pg_resetwal.c:775 +#: pg_resetwal.c:784 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "БД с oldestMulti последней к. т.: %u\n" # skip-rule: capital-letter-first, double-space -#: pg_resetwal.c:777 +#: pg_resetwal.c:786 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid последней к. т.: %u\n" # skip-rule: capital-letter-first, double-space -#: pg_resetwal.c:779 +#: pg_resetwal.c:788 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid последней к. т.: %u\n" -#: pg_resetwal.c:781 +#: pg_resetwal.c:790 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Макс. предел выравнивания данных: %u\n" -#: pg_resetwal.c:784 +#: pg_resetwal.c:793 #, c-format msgid "Database block size: %u\n" msgstr "Размер блока БД: %u\n" # skip-rule: double-space -#: pg_resetwal.c:786 +#: pg_resetwal.c:795 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Блоков в макс. сегменте отношений: %u\n" -#: pg_resetwal.c:788 +#: pg_resetwal.c:797 #, c-format msgid "WAL block size: %u\n" msgstr "Размер блока WAL: %u\n" -#: pg_resetwal.c:790 pg_resetwal.c:876 +#: pg_resetwal.c:799 pg_resetwal.c:885 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Байт в сегменте WAL: %u\n" -#: pg_resetwal.c:792 +#: pg_resetwal.c:801 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Максимальная длина идентификаторов: %u\n" -#: pg_resetwal.c:794 +#: pg_resetwal.c:803 #, c-format msgid "Maximum columns in an index: %u\n" -msgstr "Максимальное число столбцов в индексе: %u\n" +msgstr "Макс. число столбцов в индексе: %u\n" -#: pg_resetwal.c:796 +#: pg_resetwal.c:805 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Максимальный размер порции TOAST: %u\n" -#: pg_resetwal.c:798 +#: pg_resetwal.c:807 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Размер порции большого объекта: %u\n" -#: pg_resetwal.c:801 +#: pg_resetwal.c:810 #, c-format msgid "Date/time type storage: %s\n" msgstr "Формат хранения даты/времени: %s\n" -#: pg_resetwal.c:802 +#: pg_resetwal.c:811 msgid "64-bit integers" msgstr "64-битные целые" -#: pg_resetwal.c:803 +#: pg_resetwal.c:812 #, c-format msgid "Float8 argument passing: %s\n" -msgstr "Передача аргумента Float8: %s\n" +msgstr "Передача аргумента float8: %s\n" -#: pg_resetwal.c:804 +#: pg_resetwal.c:813 msgid "by reference" msgstr "по ссылке" -#: pg_resetwal.c:804 +#: pg_resetwal.c:813 msgid "by value" msgstr "по значению" -#: pg_resetwal.c:805 +#: pg_resetwal.c:814 #, c-format msgid "Data page checksum version: %u\n" msgstr "Версия контрольных сумм страниц: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:828 #, c-format msgid "" "\n" @@ -478,102 +484,102 @@ "Значения, которые будут изменены:\n" "\n" -#: pg_resetwal.c:823 +#: pg_resetwal.c:832 #, c-format msgid "First log segment after reset: %s\n" msgstr "Первый сегмент журнала после сброса: %s\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:836 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:829 +#: pg_resetwal.c:838 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:831 +#: pg_resetwal.c:840 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "БД с oldestMultiXid: %u\n" -#: pg_resetwal.c:837 +#: pg_resetwal.c:846 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:843 +#: pg_resetwal.c:852 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:849 +#: pg_resetwal.c:858 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:851 +#: pg_resetwal.c:860 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:853 +#: pg_resetwal.c:862 #, c-format msgid "OldestXID's DB: %u\n" msgstr "БД с oldestXID: %u\n" -#: pg_resetwal.c:859 +#: pg_resetwal.c:868 #, c-format msgid "NextXID epoch: %u\n" msgstr "Эпоха NextXID: %u\n" -#: pg_resetwal.c:865 +#: pg_resetwal.c:874 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:870 +#: pg_resetwal.c:879 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:956 pg_resetwal.c:1024 pg_resetwal.c:1071 +#: pg_resetwal.c:965 pg_resetwal.c:1033 pg_resetwal.c:1080 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: pg_resetwal.c:991 pg_resetwal.c:1044 pg_resetwal.c:1094 +#: pg_resetwal.c:1000 pg_resetwal.c:1053 pg_resetwal.c:1103 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не удалось прочитать каталог \"%s\": %m" -#: pg_resetwal.c:997 pg_resetwal.c:1050 pg_resetwal.c:1100 +#: pg_resetwal.c:1006 pg_resetwal.c:1059 pg_resetwal.c:1109 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не удалось закрыть каталог \"%s\": %m" -#: pg_resetwal.c:1036 pg_resetwal.c:1086 +#: pg_resetwal.c:1045 pg_resetwal.c:1095 #, c-format msgid "could not delete file \"%s\": %m" -msgstr "ошибка при удалении файла \"%s\": %m" +msgstr "ошибка удаления файла \"%s\": %m" -#: pg_resetwal.c:1167 +#: pg_resetwal.c:1176 #, c-format msgid "could not open file \"%s\": %m" msgstr "не удалось открыть файл \"%s\": %m" -#: pg_resetwal.c:1177 pg_resetwal.c:1190 +#: pg_resetwal.c:1186 pg_resetwal.c:1199 #, c-format msgid "could not write file \"%s\": %m" msgstr "не удалось записать файл \"%s\": %m" -#: pg_resetwal.c:1197 +#: pg_resetwal.c:1206 #, c-format msgid "fsync error: %m" msgstr "ошибка синхронизации с ФС: %m" -#: pg_resetwal.c:1208 +#: pg_resetwal.c:1217 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -582,7 +588,7 @@ "%s сбрасывает журнал предзаписи PostgreSQL.\n" "\n" -#: pg_resetwal.c:1209 +#: pg_resetwal.c:1218 #, c-format msgid "" "Usage:\n" @@ -593,96 +599,106 @@ " %s [ПАРАМЕТР]... КАТ_ДАННЫХ\n" "\n" -#: pg_resetwal.c:1210 +#: pg_resetwal.c:1219 #, c-format msgid "Options:\n" msgstr "Параметры:\n" -#: pg_resetwal.c:1211 +#: pg_resetwal.c:1220 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" -" set oldest and newest transactions bearing\n" -" commit timestamp (zero means no change)\n" +" set oldest and newest transactions " +"bearing\n" +" commit timestamp (zero means no change)\n" msgstr "" " -c, --commit-timestamp-ids=XID,XID\n" -" задать старейшую и новейшую транзакции,\n" -" несущие метки времени (0 — не менять)\n" +" задать старейшую и новейшую транзакции,\n" +" несущие метки времени (0 — не менять)\n" -#: pg_resetwal.c:1214 +#: pg_resetwal.c:1223 #, c-format -msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=]КАТ_ДАННЫХ каталог данных\n" +msgid " [-D, --pgdata=]DATADIR data directory\n" +msgstr " [-D, --pgdata=]КАТ_ДАННЫХ каталог данных\n" -#: pg_resetwal.c:1215 +#: pg_resetwal.c:1224 #, c-format -msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" +msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr "" -" -e, --epoch=XIDEPOCH задать эпоху для ID следующей транзакции\n" +" -e, --epoch=XIDEPOCH задать эпоху для ID следующей транзакции\n" -#: pg_resetwal.c:1216 +#: pg_resetwal.c:1225 #, c-format -msgid " -f, --force force update to be done\n" -msgstr " -f, --force принудительное выполнение операции\n" +msgid " -f, --force force update to be done\n" +msgstr "" +" -f, --force принудительное выполнение операции\n" -#: pg_resetwal.c:1217 +#: pg_resetwal.c:1226 #, c-format msgid "" -" -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" +" -l, --next-wal-file=WALFILE set minimum starting location for new " +"WAL\n" msgstr "" -" -l, --next-wal-file=ФАЙЛ_WAL задать минимальное начальное положение\n" -" для нового WAL\n" +" -l, --next-wal-file=ФАЙЛ_WAL задать минимальное начальное положение\n" +" для нового WAL\n" -#: pg_resetwal.c:1218 +#: pg_resetwal.c:1227 #, c-format msgid "" -" -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" +" -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr "" -" -m, --multixact-ids=MXID,MXID задать ID следующей и старейшей " -"мультитранзакции\n" +" -m, --multixact-ids=MXID,MXID задать ID следующей и старейшей\n" +" мультитранзакции\n" -#: pg_resetwal.c:1219 +#: pg_resetwal.c:1228 #, c-format msgid "" -" -n, --dry-run no update, just show what would be done\n" +" -n, --dry-run no update, just show what would be done\n" msgstr "" -" -n, --dry-run показать, какие действия будут выполнены,\n" -" но не выполнять их\n" +" -n, --dry-run показать, какие действия будут " +"выполнены,\n" +" но не выполнять их\n" -#: pg_resetwal.c:1220 +#: pg_resetwal.c:1229 #, c-format -msgid " -o, --next-oid=OID set next OID\n" -msgstr " -o, --next-oid=OID задать следующий OID\n" +msgid " -o, --next-oid=OID set next OID\n" +msgstr " -o, --next-oid=OID задать следующий OID\n" -#: pg_resetwal.c:1221 +#: pg_resetwal.c:1230 #, c-format -msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" +msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr "" -" -O, --multixact-offset=СМЕЩЕНИЕ задать смещение следующей " +" -O, --multixact-offset=СМЕЩЕНИЕ задать смещение следующей " "мультитранзакции\n" -#: pg_resetwal.c:1222 +#: pg_resetwal.c:1231 +#, c-format +msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" +msgstr " -u, --oldest-transaction-id=XID задать ID старейшей ID\n" + +#: pg_resetwal.c:1232 #, c-format msgid "" -" -V, --version output version information, then exit\n" -msgstr " -V, --version показать версию и выйти\n" +" -V, --version output version information, then exit\n" +msgstr " -V, --version показать версию и выйти\n" -#: pg_resetwal.c:1223 +#: pg_resetwal.c:1233 #, c-format -msgid " -x, --next-transaction-id=XID set next transaction ID\n" -msgstr " -x, --next-transaction-id=XID задать ID следующей транзакции\n" +msgid " -x, --next-transaction-id=XID set next transaction ID\n" +msgstr " -x, --next-transaction-id=XID задать ID следующей транзакции\n" -#: pg_resetwal.c:1224 +#: pg_resetwal.c:1234 #, c-format -msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" -msgstr " --wal-segsize=РАЗМЕР размер сегментов WAL (в мегабайтах)\n" +msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" +msgstr "" +" --wal-segsize=РАЗМЕР размер сегментов WAL (в мегабайтах)\n" -#: pg_resetwal.c:1225 +#: pg_resetwal.c:1235 #, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help показать эту справку и выйти\n" +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показать эту справку и выйти\n" -#: pg_resetwal.c:1226 +#: pg_resetwal.c:1236 #, c-format msgid "" "\n" @@ -691,11 +707,14 @@ "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_resetwal.c:1227 +#: pg_resetwal.c:1237 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" +#~ msgid "transaction ID (-x) must not be 0" +#~ msgstr "ID транзакции (-x) не должен быть равен 0" + #~ msgid "Float4 argument passing: %s\n" #~ msgstr "Передача аргумента Float4: %s\n" diff -Nru postgresql-13-13.4/src/bin/pg_resetwal/po/sv.po postgresql-13-13.7/src/bin/pg_resetwal/po/sv.po --- postgresql-13-13.4/src/bin/pg_resetwal/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_resetwal/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,5 +1,5 @@ # Swedish message translation file for resetxlog. -# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021. # Peter Eisentraut , 2010. # Mats Erik Andersson , 2014. # @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-13 16:46+0000\n" -"PO-Revision-Date: 2020-04-13 23:40+0200\n" +"POT-Creation-Date: 2022-02-18 04:30+0000\n" +"PO-Revision-Date: 2021-11-09 06:32+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -73,111 +73,117 @@ msgstr "kunde inte hämta statuskod för underprocess: felkod %lu" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:160 pg_resetwal.c:175 pg_resetwal.c:190 pg_resetwal.c:197 -#: pg_resetwal.c:221 pg_resetwal.c:236 pg_resetwal.c:244 pg_resetwal.c:269 -#: pg_resetwal.c:283 +#: pg_resetwal.c:162 pg_resetwal.c:177 pg_resetwal.c:192 pg_resetwal.c:207 +#: pg_resetwal.c:214 pg_resetwal.c:238 pg_resetwal.c:253 pg_resetwal.c:261 +#: pg_resetwal.c:286 pg_resetwal.c:300 #, c-format msgid "invalid argument for option %s" msgstr "ogiltigt argument för flaggan %s" -#: pg_resetwal.c:161 pg_resetwal.c:176 pg_resetwal.c:191 pg_resetwal.c:198 -#: pg_resetwal.c:222 pg_resetwal.c:237 pg_resetwal.c:245 pg_resetwal.c:270 -#: pg_resetwal.c:284 pg_resetwal.c:310 pg_resetwal.c:323 pg_resetwal.c:331 +#: pg_resetwal.c:163 pg_resetwal.c:178 pg_resetwal.c:193 pg_resetwal.c:208 +#: pg_resetwal.c:215 pg_resetwal.c:239 pg_resetwal.c:254 pg_resetwal.c:262 +#: pg_resetwal.c:287 pg_resetwal.c:301 pg_resetwal.c:327 pg_resetwal.c:340 +#: pg_resetwal.c:348 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" -#: pg_resetwal.c:166 +#: pg_resetwal.c:168 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "Epoch (-e) för transaktions-ID får inte vara -1." -#: pg_resetwal.c:181 +#: pg_resetwal.c:183 #, c-format -msgid "transaction ID (-x) must not be 0" -msgstr "Transaktions-ID (-x) får inte vara 0." +msgid "oldest transaction ID (-u) must be greater than or equal to %u" +msgstr "äldsta transaktions-ID (-u) måste vara större än eller lika med %u" -#: pg_resetwal.c:205 pg_resetwal.c:212 +#: pg_resetwal.c:198 +#, c-format +msgid "transaction ID (-x) must be greater than or equal to %u" +msgstr "transaktions-ID (-x) måste vara större än eller lika med %u" + +#: pg_resetwal.c:222 pg_resetwal.c:229 #, c-format msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" msgstr "transaktions-ID (-c) måste antingen vara 0 eller större än eller lika med 2" -#: pg_resetwal.c:227 +#: pg_resetwal.c:244 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) får inte vara 0." -#: pg_resetwal.c:250 +#: pg_resetwal.c:267 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "Multitransaktions-ID (-m) får inte vara 0." -#: pg_resetwal.c:260 +#: pg_resetwal.c:277 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "Äldsta multitransaktions-ID (-m) får inte vara 0." -#: pg_resetwal.c:275 +#: pg_resetwal.c:292 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "Multitransaktionsoffset (-O) får inte vara -1." -#: pg_resetwal.c:299 +#: pg_resetwal.c:316 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "argumentet till --wal-segsize måste vara ett tal" -#: pg_resetwal.c:304 +#: pg_resetwal.c:321 #, c-format msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" msgstr "argumentet till --wal-segsize måste vara en tvåpotens mellan 1 och 1024" -#: pg_resetwal.c:321 +#: pg_resetwal.c:338 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_resetwal.c:330 +#: pg_resetwal.c:347 #, c-format msgid "no data directory specified" msgstr "ingen datakatalog angiven" -#: pg_resetwal.c:344 +#: pg_resetwal.c:361 #, c-format msgid "cannot be executed by \"root\"" msgstr "kan inte köras av \"root\"" -#: pg_resetwal.c:345 +#: pg_resetwal.c:362 #, c-format msgid "You must run %s as the PostgreSQL superuser." -msgstr "Du måste köra %s som PostgreSQL:s superanvändare." +msgstr "Du måste köra %s som PostgreSQL:s superuser." -#: pg_resetwal.c:356 +#: pg_resetwal.c:373 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "kunde inte läsa rättigheter på katalog \"%s\": %m" -#: pg_resetwal.c:365 +#: pg_resetwal.c:382 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "kunde inte byta katalog till \"%s\": %m" -#: pg_resetwal.c:381 pg_resetwal.c:544 pg_resetwal.c:595 +#: pg_resetwal.c:398 pg_resetwal.c:553 pg_resetwal.c:604 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "kunde inte öppna filen \"%s\" för läsning: %m" -#: pg_resetwal.c:388 +#: pg_resetwal.c:405 #, c-format msgid "lock file \"%s\" exists" msgstr "låsfil med namn \"%s\" finns redan" -#: pg_resetwal.c:389 +#: pg_resetwal.c:406 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "Kör servern redan? Om inte, radera låsfilen och försök igen." -#: pg_resetwal.c:492 +#: pg_resetwal.c:501 #, c-format msgid "" "\n" @@ -187,7 +193,7 @@ "Om dessa värden verkar godtagbara, använd då -f för att\n" "framtvinga återställning.\n" -#: pg_resetwal.c:504 +#: pg_resetwal.c:513 #, c-format msgid "" "The database server was not shut down cleanly.\n" @@ -198,32 +204,32 @@ "write-ahead-loggen kan medföra att data förloras. Om du ändå\n" "vill fortsätta, använd -f för att framtvinga återställning.\n" -#: pg_resetwal.c:518 +#: pg_resetwal.c:527 #, c-format msgid "Write-ahead log reset\n" msgstr "Återställning av write-ahead-log\n" -#: pg_resetwal.c:553 +#: pg_resetwal.c:562 #, c-format msgid "unexpected empty file \"%s\"" msgstr "oväntad tom fil \"%s\"" -#: pg_resetwal.c:555 pg_resetwal.c:611 +#: pg_resetwal.c:564 pg_resetwal.c:620 #, c-format msgid "could not read file \"%s\": %m" msgstr "kunde inte läsa fil \"%s\": %m" -#: pg_resetwal.c:564 +#: pg_resetwal.c:573 #, c-format msgid "data directory is of wrong version" msgstr "datakatalogen har fel version" -#: pg_resetwal.c:565 +#: pg_resetwal.c:574 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "Filen \"%s\" innehåller \"%s\", vilket inte är kompatibelt med detta programmets version \"%s\"." -#: pg_resetwal.c:598 +#: pg_resetwal.c:607 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -233,24 +239,24 @@ "Om du är säker på att sökvägen till datakatalogen är riktig,\n" "utför då \"touch %s\" och försök sedan igen." -#: pg_resetwal.c:629 +#: pg_resetwal.c:638 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_control existerar men har ogiltig CRC. Fortsätt med varsamhet." -#: pg_resetwal.c:638 +#: pg_resetwal.c:647 #, c-format msgid "pg_control specifies invalid WAL segment size (%d byte); proceed with caution" msgid_plural "pg_control specifies invalid WAL segment size (%d bytes); proceed with caution" msgstr[0] "pg_control anger ogiltig WAL-segmentstorlek (%d byte); fortsätt med varsamhet." msgstr[1] "pg_control anger ogiltig WAL-segmentstorlek (%d byte); fortsätt med varsamhet." -#: pg_resetwal.c:649 +#: pg_resetwal.c:658 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_control existerar men är trasig eller har fel version. Den ignoreras." -#: pg_resetwal.c:744 +#: pg_resetwal.c:753 #, c-format msgid "" "Guessed pg_control values:\n" @@ -259,7 +265,7 @@ "Gissade värden för pg_control:\n" "\n" -#: pg_resetwal.c:746 +#: pg_resetwal.c:755 #, c-format msgid "" "Current pg_control values:\n" @@ -271,168 +277,168 @@ # November 26th, 2014: Insert six additional space characters # for best alignment with Swedish translation. # Translations should be checked against those of pg_controldata. -#: pg_resetwal.c:748 +#: pg_resetwal.c:757 #, c-format msgid "pg_control version number: %u\n" msgstr "Versionsnummer för pg_control: %u\n" -#: pg_resetwal.c:750 +#: pg_resetwal.c:759 #, c-format msgid "Catalog version number: %u\n" msgstr "Katalogversion: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:761 #, c-format msgid "Database system identifier: %llu\n" msgstr "Databasens systemidentifierare: %llu\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:763 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "TimeLineID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:765 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Senaste kontrollpunktens full_page_writes: %s\n" -#: pg_resetwal.c:757 +#: pg_resetwal.c:766 msgid "off" msgstr "av" -#: pg_resetwal.c:757 +#: pg_resetwal.c:766 msgid "on" msgstr "på" -#: pg_resetwal.c:758 +#: pg_resetwal.c:767 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID vid senaste kontrollpunkt: %u:%u\n" -#: pg_resetwal.c:761 +#: pg_resetwal.c:770 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:763 +#: pg_resetwal.c:772 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:765 +#: pg_resetwal.c:774 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:767 +#: pg_resetwal.c:776 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:778 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "DB för oldestXID vid senaste kontrollpunkt: %u\n" # FIXME: too wide -#: pg_resetwal.c:771 +#: pg_resetwal.c:780 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:773 +#: pg_resetwal.c:782 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:775 +#: pg_resetwal.c:784 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "DB för oldestMulti vid senaste kontrollpkt: %u\n" -#: pg_resetwal.c:777 +#: pg_resetwal.c:786 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid vid senaste kontrollpunkt:%u\n" -#: pg_resetwal.c:779 +#: pg_resetwal.c:788 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid vid senaste kontrollpunkt:%u\n" -#: pg_resetwal.c:781 +#: pg_resetwal.c:790 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Maximal jämkning av data (alignment): %u\n" -#: pg_resetwal.c:784 +#: pg_resetwal.c:793 #, c-format msgid "Database block size: %u\n" msgstr "Databasens blockstorlek: %u\n" -#: pg_resetwal.c:786 +#: pg_resetwal.c:795 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Block per segment i en stor relation: %u\n" -#: pg_resetwal.c:788 +#: pg_resetwal.c:797 #, c-format msgid "WAL block size: %u\n" msgstr "Blockstorlek i transaktionsloggen: %u\n" -#: pg_resetwal.c:790 pg_resetwal.c:876 +#: pg_resetwal.c:799 pg_resetwal.c:885 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Segmentstorlek i transaktionsloggen: %u\n" -#: pg_resetwal.c:792 +#: pg_resetwal.c:801 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Maximal längd för identifierare: %u\n" -#: pg_resetwal.c:794 +#: pg_resetwal.c:803 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Maximalt antal kolonner i ett index: %u\n" -#: pg_resetwal.c:796 +#: pg_resetwal.c:805 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Maximal storlek för en TOAST-enhet: %u\n" -#: pg_resetwal.c:798 +#: pg_resetwal.c:807 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Storlek för large-object-enheter: %u\n" -#: pg_resetwal.c:801 +#: pg_resetwal.c:810 #, c-format msgid "Date/time type storage: %s\n" msgstr "Representation av dag och tid: %s\n" -#: pg_resetwal.c:802 +#: pg_resetwal.c:811 msgid "64-bit integers" msgstr "64-bitars heltal" -#: pg_resetwal.c:803 +#: pg_resetwal.c:812 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Åtkomst till float8-argument: %s\n" -#: pg_resetwal.c:804 +#: pg_resetwal.c:813 msgid "by reference" msgstr "referens" -#: pg_resetwal.c:804 +#: pg_resetwal.c:813 msgid "by value" msgstr "värdeåtkomst" -#: pg_resetwal.c:805 +#: pg_resetwal.c:814 #, c-format msgid "Data page checksum version: %u\n" msgstr "Checksummaversion för datasidor: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:828 #, c-format msgid "" "\n" @@ -447,102 +453,102 @@ # November 26th, 2014: Insert additional spacing to fit # with the first translated text, which uses most characters. -#: pg_resetwal.c:823 +#: pg_resetwal.c:832 #, c-format msgid "First log segment after reset: %s\n" msgstr "Första loggsegment efter återställning: %s\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:836 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:829 +#: pg_resetwal.c:838 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:831 +#: pg_resetwal.c:840 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "DB för OldestMulti: %u\n" -#: pg_resetwal.c:837 +#: pg_resetwal.c:846 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:843 +#: pg_resetwal.c:852 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:849 +#: pg_resetwal.c:858 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:851 +#: pg_resetwal.c:860 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:853 +#: pg_resetwal.c:862 #, c-format msgid "OldestXID's DB: %u\n" msgstr "DB för OldestXID: %u\n" -#: pg_resetwal.c:859 +#: pg_resetwal.c:868 #, c-format msgid "NextXID epoch: %u\n" msgstr "Epoch för NextXID: %u\n" -#: pg_resetwal.c:865 +#: pg_resetwal.c:874 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:870 +#: pg_resetwal.c:879 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:956 pg_resetwal.c:1024 pg_resetwal.c:1071 +#: pg_resetwal.c:965 pg_resetwal.c:1033 pg_resetwal.c:1080 #, c-format msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: pg_resetwal.c:991 pg_resetwal.c:1044 pg_resetwal.c:1094 +#: pg_resetwal.c:1000 pg_resetwal.c:1053 pg_resetwal.c:1103 #, c-format msgid "could not read directory \"%s\": %m" msgstr "kunde inte läsa katalog \"%s\": %m" -#: pg_resetwal.c:997 pg_resetwal.c:1050 pg_resetwal.c:1100 +#: pg_resetwal.c:1006 pg_resetwal.c:1059 pg_resetwal.c:1109 #, c-format msgid "could not close directory \"%s\": %m" msgstr "kunde inte stänga katalog \"%s\": %m" -#: pg_resetwal.c:1036 pg_resetwal.c:1086 +#: pg_resetwal.c:1045 pg_resetwal.c:1095 #, c-format msgid "could not delete file \"%s\": %m" msgstr "kunde inte radera fil \"%s\": %m" -#: pg_resetwal.c:1167 +#: pg_resetwal.c:1176 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" -#: pg_resetwal.c:1177 pg_resetwal.c:1190 +#: pg_resetwal.c:1186 pg_resetwal.c:1199 #, c-format msgid "could not write file \"%s\": %m" msgstr "kunde inte skriva fil \"%s\": %m" -#: pg_resetwal.c:1197 +#: pg_resetwal.c:1206 #, c-format msgid "fsync error: %m" msgstr "misslyckad fsync: %m" -#: pg_resetwal.c:1208 +#: pg_resetwal.c:1217 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -551,7 +557,7 @@ "%s återställer write-ahead-log för PostgreSQL.\n" "\n" -#: pg_resetwal.c:1209 +#: pg_resetwal.c:1218 #, c-format msgid "" "Usage:\n" @@ -562,84 +568,89 @@ " %s [FLAGGA]... DATAKATALOG\n" "\n" -#: pg_resetwal.c:1210 +#: pg_resetwal.c:1219 #, c-format msgid "Options:\n" msgstr "Flaggor:\n" -#: pg_resetwal.c:1211 +#: pg_resetwal.c:1220 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" -" set oldest and newest transactions bearing\n" -" commit timestamp (zero means no change)\n" +" set oldest and newest transactions bearing\n" +" commit timestamp (zero means no change)\n" msgstr "" " -c, --commit-timestamp-ids=XID,XID\n" -" sätt äldsta och nyaste transaktionerna som\n" -" kan ha commit-tidstämpel (noll betyder\n" -" ingen ändring)\n" +" sätt äldsta och nyaste transaktionerna som\n" +" kan ha commit-tidstämpel (noll betyder\n" +" ingen ändring)\n" -#: pg_resetwal.c:1214 +#: pg_resetwal.c:1223 #, c-format -msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=]DATADIR datakatalog\n" +msgid " [-D, --pgdata=]DATADIR data directory\n" +msgstr " [-D, --pgdata=]DATADIR datakatalog\n" -#: pg_resetwal.c:1215 +#: pg_resetwal.c:1224 #, c-format -msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" -msgstr " -e, --epoch=XIDEPOCH sätter epoch för nästa transaktions-ID\n" +msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" +msgstr " -e, --epoch=XIDEPOCH sätter epoch för nästa transaktions-ID\n" -#: pg_resetwal.c:1216 +#: pg_resetwal.c:1225 #, c-format -msgid " -f, --force force update to be done\n" -msgstr " -f, --force framtvinga uppdatering\n" +msgid " -f, --force force update to be done\n" +msgstr " -f, --force framtvinga uppdatering\n" -#: pg_resetwal.c:1217 +#: pg_resetwal.c:1226 #, c-format -msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" -msgstr " -l, --next-wal-file=WALFIL sätt minsta startposition för ny WAL\n" +msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" +msgstr " -l, --next-wal-file=WALFIL sätt minsta startposition för ny WAL\n" -#: pg_resetwal.c:1218 +#: pg_resetwal.c:1227 #, c-format -msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" -msgstr " -m, --multixact-ids=MXID,MXID sätt nästa och äldsta multitransaktions-ID\n" +msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" +msgstr " -m, --multixact-ids=MXID,MXID sätt nästa och äldsta multitransaktions-ID\n" -#: pg_resetwal.c:1219 +#: pg_resetwal.c:1228 #, c-format -msgid " -n, --dry-run no update, just show what would be done\n" -msgstr " -n, --dry-run ingen updatering; visa bara planerade åtgärder\n" +msgid " -n, --dry-run no update, just show what would be done\n" +msgstr " -n, --dry-run ingen updatering; visa bara planerade åtgärder\n" -#: pg_resetwal.c:1220 +#: pg_resetwal.c:1229 #, c-format -msgid " -o, --next-oid=OID set next OID\n" -msgstr " -o, --next-oid=OID sätt nästa OID\n" +msgid " -o, --next-oid=OID set next OID\n" +msgstr " -o, --next-oid=OID sätt nästa OID\n" -#: pg_resetwal.c:1221 +#: pg_resetwal.c:1230 #, c-format -msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" -msgstr " -O, --multixact-offset=OFFSET sätt nästa multitransaktionsoffset\n" +msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" +msgstr " -O, --multixact-offset=OFFSET sätt nästa multitransaktionsoffset\n" -#: pg_resetwal.c:1222 +#: pg_resetwal.c:1231 #, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version skriv ut versioninformation och avsluta sedan\n" +msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" +msgstr " -u, --oldest-transaction-id=XID sätt äldsta transaktions-ID\n" -#: pg_resetwal.c:1223 +#: pg_resetwal.c:1232 #, c-format -msgid " -x, --next-transaction-id=XID set next transaction ID\n" -msgstr " -x, --next-transaction-id=XID sätt nästa transaktions-ID\n" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_resetwal.c:1224 +#: pg_resetwal.c:1233 #, c-format -msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" -msgstr " --wal-segsize=STORLEK storlek på WAL-segment i megabyte\n" +msgid " -x, --next-transaction-id=XID set next transaction ID\n" +msgstr " -x, --next-transaction-id=XID sätt nästa transaktions-ID\n" -#: pg_resetwal.c:1225 +#: pg_resetwal.c:1234 #, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help visa denna hjälp och avsluta sedan\n" +msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" +msgstr " --wal-segsize=STORLEK storlek på WAL-segment i megabyte\n" -#: pg_resetwal.c:1226 +#: pg_resetwal.c:1235 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help visa denna hjälp, avsluta sedan\n" + +#: pg_resetwal.c:1236 #, c-format msgid "" "\n" @@ -648,10 +659,7 @@ "\n" "Rapportera fel till <%s>.\n" -#: pg_resetwal.c:1227 +#: pg_resetwal.c:1237 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" - -#~ msgid "could not load advapi32.dll: error code %lu" -#~ msgstr "kunde inte ladda advapi32.dll: felkod %lu" diff -Nru postgresql-13-13.4/src/bin/pg_rewind/parsexlog.c postgresql-13-13.7/src/bin/pg_rewind/parsexlog.c --- postgresql-13-13.4/src/bin/pg_rewind/parsexlog.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_rewind/parsexlog.c 2022-05-09 21:16:30.000000000 +0000 @@ -101,7 +101,11 @@ * If 'endpoint' didn't point exactly at a record boundary, the caller * messed up. */ - Assert(xlogreader->EndRecPtr == endpoint); + if (xlogreader->EndRecPtr != endpoint) + pg_fatal("end pointer %X/%X is not a valid end point; expected %X/%X", + (uint32) (endpoint >> 32), (uint32) (endpoint), + (uint32) (xlogreader->EndRecPtr >> 32), (uint32) + (xlogreader->EndRecPtr)); XLogReaderFree(xlogreader); if (xlogreadfd != -1) diff -Nru postgresql-13-13.4/src/bin/pg_rewind/po/de.po postgresql-13-13.7/src/bin/pg_rewind/po/de.po --- postgresql-13-13.4/src/bin/pg_rewind/po/de.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_rewind/po/de.po 2022-05-09 21:16:30.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: pg_rewind (PostgreSQL) 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-11-08 07:16+0000\n" +"POT-Creation-Date: 2022-04-05 07:32+0000\n" "PO-Revision-Date: 2020-11-08 09:04+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" @@ -115,13 +115,13 @@ #: ../../fe_utils/recovery_gen.c:35 ../../fe_utils/recovery_gen.c:49 #: ../../fe_utils/recovery_gen.c:77 ../../fe_utils/recovery_gen.c:100 -#: ../../fe_utils/recovery_gen.c:171 parsexlog.c:73 parsexlog.c:125 -#: parsexlog.c:185 +#: ../../fe_utils/recovery_gen.c:171 parsexlog.c:76 parsexlog.c:138 +#: parsexlog.c:198 #, c-format msgid "out of memory" msgstr "Speicher aufgebraucht" -#: ../../fe_utils/recovery_gen.c:134 parsexlog.c:298 +#: ../../fe_utils/recovery_gen.c:134 parsexlog.c:311 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" @@ -176,7 +176,7 @@ msgid "could not seek in source file: %m" msgstr "konnte Positionszeiger in Quelldatei nicht setzen: %m" -#: copy_fetch.c:187 file_ops.c:311 parsexlog.c:336 +#: copy_fetch.c:187 file_ops.c:311 parsexlog.c:349 #, c-format msgid "could not read file \"%s\": %m" msgstr "konnte Datei »%s« nicht lesen: %m" @@ -256,7 +256,7 @@ msgid "could not open file \"%s\" for reading: %m" msgstr "konnte Datei »%s« nicht zum Lesen öffnen: %m" -#: file_ops.c:314 parsexlog.c:338 +#: file_ops.c:314 parsexlog.c:351 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "konnte Datei »%s« nicht lesen: %d von %zu gelesen" @@ -416,32 +416,37 @@ msgid "unexpected result while sending file list: %s" msgstr "unerwartetes Ergebnis beim Senden der Dateiliste: %s" -#: parsexlog.c:85 parsexlog.c:132 +#: parsexlog.c:88 parsexlog.c:145 #, c-format msgid "could not read WAL record at %X/%X: %s" msgstr "konnte WAL-Eintrag bei %X/%X nicht lesen: %s" -#: parsexlog.c:89 parsexlog.c:135 +#: parsexlog.c:92 parsexlog.c:148 #, c-format msgid "could not read WAL record at %X/%X" msgstr "konnte WAL-Eintrag bei %X/%X nicht lesen" -#: parsexlog.c:198 +#: parsexlog.c:105 +#, c-format +msgid "end pointer %X/%X is not a valid end point; expected %X/%X" +msgstr "Endpunkt %X/%X ist kein gültiger Endpunkt; %X/%X erwartet" + +#: parsexlog.c:211 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "konnte vorangegangenen WAL-Eintrag bei %X/%X nicht finden: %s" -#: parsexlog.c:202 +#: parsexlog.c:215 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "konnte vorangegangenen WAL-Eintrag bei %X/%X nicht finden" -#: parsexlog.c:327 +#: parsexlog.c:340 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "konnte Positionszeiger in Datei »%s« nicht setzen: %m" -#: parsexlog.c:407 +#: parsexlog.c:420 #, c-format msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmgr: %s, info: %02X" msgstr "WAL-Eintrag modifiziert eine Relation, aber Typ des Eintrags wurde nicht erkannt: lsn: %X/%X, rmgr: %s, info: %02X" @@ -559,170 +564,170 @@ msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: pg_rewind.c:159 pg_rewind.c:208 pg_rewind.c:215 pg_rewind.c:222 -#: pg_rewind.c:229 pg_rewind.c:237 +#: pg_rewind.c:160 pg_rewind.c:209 pg_rewind.c:216 pg_rewind.c:223 +#: pg_rewind.c:230 pg_rewind.c:238 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Versuchen Sie »%s --help« für weitere Informationen.\n" -#: pg_rewind.c:207 +#: pg_rewind.c:208 #, c-format msgid "no source specified (--source-pgdata or --source-server)" msgstr "keine Quelle angegeben (--source-pgdata oder --source-server)" -#: pg_rewind.c:214 +#: pg_rewind.c:215 #, c-format msgid "only one of --source-pgdata or --source-server can be specified" msgstr "--source-pgdata und --source-server können nicht zusammen angegeben werden" -#: pg_rewind.c:221 +#: pg_rewind.c:222 #, c-format msgid "no target data directory specified (--target-pgdata)" msgstr "kein Zielverzeichnis angegeben (--target-pgdata)" -#: pg_rewind.c:228 +#: pg_rewind.c:229 #, c-format msgid "no source server information (--source-server) specified for --write-recovery-conf" msgstr "kein Quellserver (--source-server) angegeben für --write-recovery-conf" -#: pg_rewind.c:235 +#: pg_rewind.c:236 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: pg_rewind.c:250 +#: pg_rewind.c:251 #, c-format msgid "cannot be executed by \"root\"" msgstr "kann nicht von »root« ausgeführt werden" -#: pg_rewind.c:251 +#: pg_rewind.c:252 #, c-format msgid "You must run %s as the PostgreSQL superuser.\n" msgstr "Sie müssen %s als PostgreSQL-Superuser ausführen.\n" -#: pg_rewind.c:262 +#: pg_rewind.c:263 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "konnte Zugriffsrechte von Verzeichnis »%s« nicht lesen: %m" -#: pg_rewind.c:316 +#: pg_rewind.c:317 #, c-format msgid "source and target cluster are on the same timeline" msgstr "Quell- und Ziel-Cluster sind auf der gleichen Zeitleiste" -#: pg_rewind.c:322 +#: pg_rewind.c:326 #, c-format msgid "servers diverged at WAL location %X/%X on timeline %u" msgstr "Server divergierten bei WAL-Position %X/%X auf Zeitleiste %u" -#: pg_rewind.c:360 +#: pg_rewind.c:374 #, c-format msgid "no rewind required" msgstr "kein Rückspulen nötig" -#: pg_rewind.c:369 +#: pg_rewind.c:383 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "Rückspulen ab letztem gemeinsamen Checkpoint bei %X/%X auf Zeitleiste %u" -#: pg_rewind.c:378 +#: pg_rewind.c:392 #, c-format msgid "reading source file list" msgstr "lese Quelldateiliste" -#: pg_rewind.c:381 +#: pg_rewind.c:395 #, c-format msgid "reading target file list" msgstr "lese Zieldateiliste" -#: pg_rewind.c:392 +#: pg_rewind.c:404 #, c-format msgid "reading WAL in target" msgstr "lese WAL im Ziel-Cluster" -#: pg_rewind.c:409 +#: pg_rewind.c:421 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "%lu MB müssen kopiert werden (Gesamtgröße des Quellverzeichnisses ist %lu MB)" -#: pg_rewind.c:427 +#: pg_rewind.c:439 #, c-format msgid "creating backup label and updating control file" msgstr "erzeuge Backup-Label und aktualisiere Kontrolldatei" -#: pg_rewind.c:457 +#: pg_rewind.c:469 #, c-format msgid "syncing target data directory" msgstr "synchronisiere Zieldatenverzeichnis" -#: pg_rewind.c:464 +#: pg_rewind.c:476 #, c-format msgid "Done!" msgstr "Fertig!" -#: pg_rewind.c:476 +#: pg_rewind.c:488 #, c-format msgid "source and target clusters are from different systems" msgstr "Quell- und Ziel-Cluster sind von verschiedenen Systemen" -#: pg_rewind.c:484 +#: pg_rewind.c:496 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "die Cluster sind nicht mit dieser Version von pg_rewind kompatibel" -#: pg_rewind.c:494 +#: pg_rewind.c:506 #, c-format msgid "target server needs to use either data checksums or \"wal_log_hints = on\"" msgstr "Zielserver muss entweder Datenprüfsummen oder »wal_log_hints = on« verwenden" -#: pg_rewind.c:505 +#: pg_rewind.c:517 #, c-format msgid "target server must be shut down cleanly" msgstr "Zielserver muss sauber heruntergefahren worden sein" -#: pg_rewind.c:515 +#: pg_rewind.c:527 #, c-format msgid "source data directory must be shut down cleanly" msgstr "Quelldatenverzeichnis muss sauber heruntergefahren worden sein" -#: pg_rewind.c:567 +#: pg_rewind.c:579 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s kB (%d%%) kopiert" -#: pg_rewind.c:630 +#: pg_rewind.c:642 #, c-format msgid "invalid control file" msgstr "ungültige Kontrolldatei" -#: pg_rewind.c:714 +#: pg_rewind.c:726 #, c-format msgid "could not find common ancestor of the source and target cluster's timelines" msgstr "konnte keinen gemeinsamen Anfangspunkt in den Zeitleisten von Quell- und Ziel-Cluster finden" -#: pg_rewind.c:755 +#: pg_rewind.c:767 #, c-format msgid "backup label buffer too small" msgstr "Puffer für Backup-Label ist zu klein" -#: pg_rewind.c:778 +#: pg_rewind.c:790 #, c-format msgid "unexpected control file CRC" msgstr "unerwartete CRC in Kontrolldatei" -#: pg_rewind.c:788 +#: pg_rewind.c:800 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "unerwartete Kontrolldateigröße %d, erwartet wurde %d" -#: pg_rewind.c:797 +#: pg_rewind.c:809 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes" msgstr[0] "WAL-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein, aber die Kontrolldatei gibt %d Byte an" msgstr[1] "WAL-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein, aber die Kontrolldatei gibt %d Bytes an" -#: pg_rewind.c:854 pg_rewind.c:912 +#: pg_rewind.c:866 pg_rewind.c:924 #, c-format msgid "" "The program \"%s\" is needed by %s but was not found in the\n" @@ -733,7 +738,7 @@ "selben Verzeichnis wie »%s« gefunden.\n" "Prüfen Sie Ihre Installation." -#: pg_rewind.c:859 pg_rewind.c:917 +#: pg_rewind.c:871 pg_rewind.c:929 #, c-format msgid "" "The program \"%s\" was found by \"%s\"\n" @@ -744,22 +749,22 @@ "aber es hatte nicht die gleiche Version wie %s.\n" "Prüfen Sie Ihre Installation." -#: pg_rewind.c:880 +#: pg_rewind.c:892 #, c-format msgid "restore_command is not set in the target cluster" msgstr "restore_command ist im Ziel-Cluster nicht gesetzt" -#: pg_rewind.c:923 +#: pg_rewind.c:935 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "führe »%s« für Zielserver aus, um Wiederherstellung abzuschließen" -#: pg_rewind.c:943 +#: pg_rewind.c:955 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "postgres im Einzelbenutzermodus im Ziel-Cluster fehlgeschlagen" -#: pg_rewind.c:944 +#: pg_rewind.c:956 #, c-format msgid "Command was: %s" msgstr "Die Anweisung war: %s" @@ -799,137 +804,137 @@ msgid "Timeline IDs must be less than child timeline's ID." msgstr "Zeitleisten-IDs müssen kleiner als die Zeitleisten-ID des Kindes sein." -#: xlogreader.c:349 +#: xlogreader.c:354 #, c-format msgid "invalid record offset at %X/%X" msgstr "ungültiger Datensatz-Offset bei %X/%X" -#: xlogreader.c:357 +#: xlogreader.c:362 #, c-format msgid "contrecord is requested by %X/%X" msgstr "Contrecord angefordert von %X/%X" -#: xlogreader.c:398 xlogreader.c:695 +#: xlogreader.c:403 xlogreader.c:733 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "ungültige Datensatzlänge bei %X/%X: %u erwartet, %u erhalten" -#: xlogreader.c:422 +#: xlogreader.c:429 #, c-format msgid "record length %u at %X/%X too long" msgstr "Datensatzlänge %u bei %X/%X ist zu lang" -#: xlogreader.c:454 +#: xlogreader.c:478 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "keine Contrecord-Flag bei %X/%X" -#: xlogreader.c:467 +#: xlogreader.c:491 #, c-format msgid "invalid contrecord length %u at %X/%X" msgstr "ungültige Contrecord-Länge %u bei %X/%X" -#: xlogreader.c:703 +#: xlogreader.c:741 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ungültige Resource-Manager-ID %u bei %X/%X" -#: xlogreader.c:717 xlogreader.c:734 +#: xlogreader.c:755 xlogreader.c:772 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "Datensatz mit falschem Prev-Link %X/%X bei %X/%X" -#: xlogreader.c:771 +#: xlogreader.c:809 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "ungültige Resource-Manager-Datenprüfsumme in Datensatz bei %X/%X" -#: xlogreader.c:808 +#: xlogreader.c:846 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "ungültige magische Zahl %04X in Logsegment %s, Offset %u" -#: xlogreader.c:822 xlogreader.c:863 +#: xlogreader.c:860 xlogreader.c:901 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "ungültige Info-Bits %04X in Logsegment %s, Offset %u" -#: xlogreader.c:837 +#: xlogreader.c:875 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "WAL-Datei ist von einem anderen Datenbanksystem: Datenbanksystemidentifikator in WAL-Datei ist %llu, Datenbanksystemidentifikator in pg_control ist %llu" -#: xlogreader.c:845 +#: xlogreader.c:883 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL-Datei ist von einem anderen Datenbanksystem: falsche Segmentgröße im Seitenkopf" -#: xlogreader.c:851 +#: xlogreader.c:889 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL-Datei ist von einem anderen Datenbanksystem: falsche XLOG_BLCKSZ im Seitenkopf" -#: xlogreader.c:882 +#: xlogreader.c:920 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "unerwartete Pageaddr %X/%X in Logsegment %s, Offset %u" -#: xlogreader.c:907 +#: xlogreader.c:945 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "Zeitleisten-ID %u außer der Reihe (nach %u) in Logsegment %s, Offset %u" -#: xlogreader.c:1247 +#: xlogreader.c:1285 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u außer der Reihe bei %X/%X" -#: xlogreader.c:1270 +#: xlogreader.c:1308 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA gesetzt, aber keine Daten enthalten bei %X/%X" -#: xlogreader.c:1277 +#: xlogreader.c:1315 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA nicht gesetzt, aber Datenlänge ist %u bei %X/%X" -#: xlogreader.c:1313 +#: xlogreader.c:1351 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE gesetzt, aber Loch Offset %u Länge %u Block-Abbild-Länge %u bei %X/%X" -#: xlogreader.c:1329 +#: xlogreader.c:1367 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE nicht gesetzt, aber Loch Offset %u Länge %u bei %X/%X" -#: xlogreader.c:1344 +#: xlogreader.c:1382 #, c-format msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_IS_COMPRESSED gesetzt, aber Block-Abbild-Länge %u bei %X/%X" -#: xlogreader.c:1359 +#: xlogreader.c:1397 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X" msgstr "weder BKPIMAGE_HAS_HOLE noch BKPIMAGE_IS_COMPRESSED gesetzt, aber Block-Abbild-Länge ist %u bei %X/%X" -#: xlogreader.c:1375 +#: xlogreader.c:1413 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL gesetzt, aber keine vorangehende Relation bei %X/%X" -#: xlogreader.c:1387 +#: xlogreader.c:1425 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ungültige block_id %u bei %X/%X" -#: xlogreader.c:1476 +#: xlogreader.c:1514 #, c-format msgid "record with invalid length at %X/%X" msgstr "Datensatz mit ungültiger Länge bei %X/%X" -#: xlogreader.c:1565 +#: xlogreader.c:1603 #, c-format msgid "invalid compressed image at %X/%X, block %d" msgstr "ungültiges komprimiertes Abbild bei %X/%X, Block %d" diff -Nru postgresql-13-13.4/src/bin/pg_rewind/po/fr.po postgresql-13-13.7/src/bin/pg_rewind/po/fr.po --- postgresql-13-13.4/src/bin/pg_rewind/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_rewind/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: pg_rewind (PostgreSQL) 12\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-11-08 08:46+0000\n" -"PO-Revision-Date: 2020-09-17 08:30+0200\n" +"POT-Creation-Date: 2022-04-02 06:32+0000\n" +"PO-Revision-Date: 2022-04-05 08:34+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.1\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.0.1\n" #: ../../../src/common/logging.c:236 #, c-format @@ -116,13 +116,13 @@ #: ../../fe_utils/recovery_gen.c:35 ../../fe_utils/recovery_gen.c:49 #: ../../fe_utils/recovery_gen.c:77 ../../fe_utils/recovery_gen.c:100 -#: ../../fe_utils/recovery_gen.c:171 parsexlog.c:73 parsexlog.c:125 -#: parsexlog.c:185 +#: ../../fe_utils/recovery_gen.c:171 parsexlog.c:76 parsexlog.c:138 +#: parsexlog.c:198 #, c-format msgid "out of memory" msgstr "mémoire épuisée" -#: ../../fe_utils/recovery_gen.c:134 parsexlog.c:298 +#: ../../fe_utils/recovery_gen.c:134 parsexlog.c:311 #, c-format msgid "could not open file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier « %s » : %m" @@ -150,7 +150,7 @@ #: copy_fetch.c:120 #, c-format msgid "symbolic link \"%s\" target is too long" -msgstr "la cible du lien symbolique « %s » est trop long" +msgstr "la cible du lien symbolique « %s » est trop longue" #: copy_fetch.c:135 #, c-format @@ -177,7 +177,7 @@ msgid "could not seek in source file: %m" msgstr "n'a pas pu chercher dans le fichier source : %m" -#: copy_fetch.c:187 file_ops.c:311 parsexlog.c:336 +#: copy_fetch.c:187 file_ops.c:311 parsexlog.c:349 #, c-format msgid "could not read file \"%s\": %m" msgstr "n'a pas pu lire le fichier « %s » : %m" @@ -257,7 +257,7 @@ msgid "could not open file \"%s\" for reading: %m" msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %m" -#: file_ops.c:314 parsexlog.c:338 +#: file_ops.c:314 parsexlog.c:351 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %zu" @@ -417,32 +417,37 @@ msgid "unexpected result while sending file list: %s" msgstr "résultat inattendu lors de l'envoi de la liste de fichiers : %s" -#: parsexlog.c:85 parsexlog.c:132 +#: parsexlog.c:88 parsexlog.c:145 #, c-format msgid "could not read WAL record at %X/%X: %s" msgstr "n'a pas pu lire l'enregistrement WAL précédent à %X/%X : %s" -#: parsexlog.c:89 parsexlog.c:135 +#: parsexlog.c:92 parsexlog.c:148 #, c-format msgid "could not read WAL record at %X/%X" msgstr "n'a pas pu lire l'enregistrement WAL précédent à %X/%X" -#: parsexlog.c:198 +#: parsexlog.c:105 +#, c-format +msgid "end pointer %X/%X is not a valid end point; expected %X/%X" +msgstr "le pointeur de fin %X/%X n'est pas un pointeur de fin valide ; %X/%X attendu" + +#: parsexlog.c:211 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "n'a pas pu trouver l'enregistrement WAL précédent à %X/%X : %s" -#: parsexlog.c:202 +#: parsexlog.c:215 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "n'a pas pu trouver l'enregistrement WAL précédent à %X/%X" -#: parsexlog.c:327 +#: parsexlog.c:340 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "n'a pas pu parcourir le fichier « %s » : %m" -#: parsexlog.c:407 +#: parsexlog.c:420 #, c-format msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmgr: %s, info: %02X" msgstr "l'enregistrement WAL modifie une relation mais le type d'enregistrement n'est pas reconnu: lsn : %X/%X, rmgr : %s, info : %02X" @@ -453,7 +458,8 @@ "%s resynchronizes a PostgreSQL cluster with another copy of the cluster.\n" "\n" msgstr "" -"%s resynchronise une instance PostgreSQL avec une autre copie de l'instance.\n" +"%s resynchronise une instance PostgreSQL avec une autre copie de\n" +"l'instance.\n" "\n" #: pg_rewind.c:79 @@ -478,8 +484,9 @@ " -c, --restore-target-wal use restore_command in target configuration to\n" " retrieve WAL files from archives\n" msgstr "" -" -c, --restore-target-wal utilise restore_command pour la configuration cible\n" -" de récupération des fichiers WAL des archives\n" +" -c, --restore-target-wal utilise restore_command pour la configuration\n" +" cible de récupération des fichiers WAL des\n" +" archives\n" #: pg_rewind.c:83 #, c-format @@ -489,12 +496,12 @@ #: pg_rewind.c:84 #, c-format msgid " --source-pgdata=DIRECTORY source data directory to synchronize with\n" -msgstr " --source-pgdata=RÉPERTOIRE répertoire des données source pour la synchronisation\n" +msgstr " --source-pgdata=RÉPERTOIRE répertoire des données source\n" #: pg_rewind.c:85 #, c-format msgid " --source-server=CONNSTR source server to synchronize with\n" -msgstr " --source-server=CONNSTR serveur source pour la synchronisation\n" +msgstr " --source-server=CHAÎNE serveur source pour la synchronisation\n" #: pg_rewind.c:86 #, c-format @@ -506,7 +513,9 @@ msgid "" " -N, --no-sync do not wait for changes to be written\n" " safely to disk\n" -msgstr " -N, --nosync n'attend pas que les modifications soient proprement écrites sur disque\n" +msgstr "" +" -N, --nosync n'attend pas que les modifications\n" +" soient proprement écrites sur disque\n" #: pg_rewind.c:89 #, c-format @@ -519,7 +528,7 @@ " -R, --write-recovery-conf write configuration for replication\n" " (requires --source-server)\n" msgstr "" -" -R, --write-recovery-conf écrit la configuration pour la réplication\n" +" -R, --write-recovery-conf écrit la configuration pour la réplication\n" " (requiert --source-server)\n" "\n" @@ -531,7 +540,9 @@ #: pg_rewind.c:93 #, c-format msgid " --no-ensure-shutdown do not automatically fix unclean shutdown\n" -msgstr " --no-ensure-shutdown ne corrige pas automatiquement l'arrêt non propre\n" +msgstr "" +" --no-ensure-shutdown ne corrige pas automatiquement l'arrêt non\n" +" propre\n" #: pg_rewind.c:94 #, c-format @@ -555,172 +566,172 @@ #: pg_rewind.c:97 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" -#: pg_rewind.c:159 pg_rewind.c:208 pg_rewind.c:215 pg_rewind.c:222 -#: pg_rewind.c:229 pg_rewind.c:237 +#: pg_rewind.c:160 pg_rewind.c:209 pg_rewind.c:216 pg_rewind.c:223 +#: pg_rewind.c:230 pg_rewind.c:238 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Essayez « %s --help » pour plus d'informations.\n" -#: pg_rewind.c:207 +#: pg_rewind.c:208 #, c-format msgid "no source specified (--source-pgdata or --source-server)" msgstr "aucune source indiquée (--source-pgdata ou --source-server)" -#: pg_rewind.c:214 +#: pg_rewind.c:215 #, c-format msgid "only one of --source-pgdata or --source-server can be specified" msgstr "une seule des options --source-pgdata et --source-server peut être indiquée" -#: pg_rewind.c:221 +#: pg_rewind.c:222 #, c-format msgid "no target data directory specified (--target-pgdata)" msgstr "aucun répertoire de données cible indiqué (--target-pgdata)" -#: pg_rewind.c:228 +#: pg_rewind.c:229 #, c-format msgid "no source server information (--source-server) specified for --write-recovery-conf" msgstr "aucune information sur le serveur source (--source-server) indiquée pour --write-recovery-conf" -#: pg_rewind.c:235 +#: pg_rewind.c:236 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: pg_rewind.c:250 +#: pg_rewind.c:251 #, c-format msgid "cannot be executed by \"root\"" msgstr "ne peut pas être exécuté par « root »" -#: pg_rewind.c:251 +#: pg_rewind.c:252 #, c-format msgid "You must run %s as the PostgreSQL superuser.\n" msgstr "Vous devez exécuter %s en tant que super-utilisateur PostgreSQL.\n" -#: pg_rewind.c:262 +#: pg_rewind.c:263 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "n'a pas pu lire les droits du répertoire « %s » : %m" -#: pg_rewind.c:316 +#: pg_rewind.c:317 #, c-format msgid "source and target cluster are on the same timeline" msgstr "les instances source et cible sont sur la même ligne de temps" -#: pg_rewind.c:322 +#: pg_rewind.c:326 #, c-format msgid "servers diverged at WAL location %X/%X on timeline %u" msgstr "les serveurs ont divergé à la position %X/%X des WAL sur la timeline %u" -#: pg_rewind.c:360 +#: pg_rewind.c:374 #, c-format msgid "no rewind required" msgstr "pas de retour en arrière requis" -#: pg_rewind.c:369 +#: pg_rewind.c:383 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "retour en arrière depuis le dernier checkpoint commun à %X/%X sur la ligne de temps %u" -#: pg_rewind.c:378 +#: pg_rewind.c:392 #, c-format msgid "reading source file list" msgstr "lecture de la liste des fichiers sources" -#: pg_rewind.c:381 +#: pg_rewind.c:395 #, c-format msgid "reading target file list" msgstr "lecture de la liste des fichiers cibles" -#: pg_rewind.c:392 +#: pg_rewind.c:404 #, c-format msgid "reading WAL in target" msgstr "lecture du WAL dans la cible" -#: pg_rewind.c:409 +#: pg_rewind.c:421 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "a besoin de copier %lu Mo (la taille totale du répertoire source est %lu Mo)" -#: pg_rewind.c:427 +#: pg_rewind.c:439 #, c-format msgid "creating backup label and updating control file" msgstr "création du fichier backup_label et mise à jour du fichier contrôle" -#: pg_rewind.c:457 +#: pg_rewind.c:469 #, c-format msgid "syncing target data directory" msgstr "synchronisation du répertoire des données cible" -#: pg_rewind.c:464 +#: pg_rewind.c:476 #, c-format msgid "Done!" msgstr "Terminé !" -#: pg_rewind.c:476 +#: pg_rewind.c:488 #, c-format msgid "source and target clusters are from different systems" msgstr "les instances source et cible proviennent de systèmes différents" -#: pg_rewind.c:484 +#: pg_rewind.c:496 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "les instances ne sont pas compatibles avec cette version de pg_rewind" -#: pg_rewind.c:494 +#: pg_rewind.c:506 #, c-format msgid "target server needs to use either data checksums or \"wal_log_hints = on\"" msgstr "le serveur cible doit soit utiliser les sommes de contrôle sur les données soit avoir wal_log_hints configuré à on" -#: pg_rewind.c:505 +#: pg_rewind.c:517 #, c-format msgid "target server must be shut down cleanly" msgstr "le serveur cible doit être arrêté proprement" -#: pg_rewind.c:515 +#: pg_rewind.c:527 #, c-format msgid "source data directory must be shut down cleanly" msgstr "le répertoire de données source doit être arrêté proprement" -#: pg_rewind.c:567 +#: pg_rewind.c:579 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s Ko (%d%%) copiés" -#: pg_rewind.c:630 +#: pg_rewind.c:642 #, c-format msgid "invalid control file" msgstr "fichier de contrôle invalide" -#: pg_rewind.c:714 +#: pg_rewind.c:726 #, c-format msgid "could not find common ancestor of the source and target cluster's timelines" msgstr "n'a pas pu trouver l'ancêtre commun des lignes de temps des instances source et cible" -#: pg_rewind.c:755 +#: pg_rewind.c:767 #, c-format msgid "backup label buffer too small" msgstr "tampon du label de sauvegarde trop petit" -#: pg_rewind.c:778 +#: pg_rewind.c:790 #, c-format msgid "unexpected control file CRC" msgstr "CRC inattendu pour le fichier de contrôle" -#: pg_rewind.c:788 +#: pg_rewind.c:800 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "taille %d inattendue du fichier de contrôle, %d attendu" -#: pg_rewind.c:797 +#: pg_rewind.c:809 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes" msgstr[0] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octet" msgstr[1] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octets" -#: pg_rewind.c:854 pg_rewind.c:912 +#: pg_rewind.c:866 pg_rewind.c:924 #, c-format msgid "" "The program \"%s\" is needed by %s but was not found in the\n" @@ -731,7 +742,7 @@ "dans le même répertoire que « %s ».\n" "Vérifiez votre installation." -#: pg_rewind.c:859 pg_rewind.c:917 +#: pg_rewind.c:871 pg_rewind.c:929 #, c-format msgid "" "The program \"%s\" was found by \"%s\"\n" @@ -742,22 +753,22 @@ "mais n'est pas de la même version que %s.\n" "Vérifiez votre installation." -#: pg_rewind.c:880 +#: pg_rewind.c:892 #, c-format msgid "restore_command is not set in the target cluster" msgstr "restore_command n'est pas configuré sur l'instance cible" -#: pg_rewind.c:923 +#: pg_rewind.c:935 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "exécution de « %s » pour terminer la restauration après crash du serveur cible" -#: pg_rewind.c:943 +#: pg_rewind.c:955 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "le mot simple-utilisateur de postgres a échoué pour l'instance cible" -#: pg_rewind.c:944 +#: pg_rewind.c:956 #, c-format msgid "Command was: %s" msgstr "La commande était : %s" @@ -799,355 +810,355 @@ "Les identifiants timeline doivent être plus petits que les enfants des\n" "identifiants timeline." -#: xlogreader.c:349 +#: xlogreader.c:354 #, c-format msgid "invalid record offset at %X/%X" msgstr "décalage invalide de l'enregistrement %X/%X" -#: xlogreader.c:357 +#: xlogreader.c:362 #, c-format msgid "contrecord is requested by %X/%X" msgstr "« contrecord » est requis par %X/%X" -#: xlogreader.c:398 xlogreader.c:695 +#: xlogreader.c:403 xlogreader.c:733 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "longueur invalide de l'enregistrement à %X/%X : voulait %u, a eu %u" -#: xlogreader.c:422 +#: xlogreader.c:429 #, c-format msgid "record length %u at %X/%X too long" msgstr "longueur trop importante de l'enregistrement %u à %X/%X" -#: xlogreader.c:454 +#: xlogreader.c:478 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "il n'existe pas de drapeau contrecord à %X/%X" -#: xlogreader.c:467 +#: xlogreader.c:491 #, c-format msgid "invalid contrecord length %u at %X/%X" msgstr "longueur %u invalide du contrecord à %X/%X" -#: xlogreader.c:703 +#: xlogreader.c:741 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "identifiant du gestionnaire de ressources invalide %u à %X/%X" -#: xlogreader.c:717 xlogreader.c:734 +#: xlogreader.c:755 xlogreader.c:772 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "enregistrement avec prev-link %X/%X incorrect à %X/%X" -#: xlogreader.c:771 +#: xlogreader.c:809 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "somme de contrôle des données du gestionnaire de ressources incorrecte à\n" "l'enregistrement %X/%X" -#: xlogreader.c:808 +#: xlogreader.c:846 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "numéro magique invalide %04X dans le segment %s, décalage %u" -#: xlogreader.c:822 xlogreader.c:863 +#: xlogreader.c:860 xlogreader.c:901 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "bits d'information %04X invalides dans le segment %s, décalage %u" -#: xlogreader.c:837 +#: xlogreader.c:875 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "le fichier WAL provient d'un système différent : l'identifiant système de la base dans le fichier WAL est %llu, alors que l'identifiant système de la base dans pg_control est %llu" -#: xlogreader.c:845 +#: xlogreader.c:883 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Le fichier WAL provient d'un système différent : taille invalide du segment dans l'en-tête de page" -#: xlogreader.c:851 +#: xlogreader.c:889 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "Le fichier WAL provient d'un système différent : XLOG_BLCKSZ invalide dans l'en-tête de page" -#: xlogreader.c:882 +#: xlogreader.c:920 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "pageaddr %X/%X inattendue dans le journal de transactions %s, segment %u" -#: xlogreader.c:907 +#: xlogreader.c:945 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "identifiant timeline %u hors de la séquence (après %u) dans le segment %s, décalage %u" -#: xlogreader.c:1247 +#: xlogreader.c:1285 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u désordonné à %X/%X" -#: xlogreader.c:1270 +#: xlogreader.c:1308 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA configuré, mais aucune donnée inclus à %X/%X" -#: xlogreader.c:1277 +#: xlogreader.c:1315 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA non configuré, mais la longueur des données est %u à %X/%X" -#: xlogreader.c:1313 +#: xlogreader.c:1351 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE activé, mais décalage trou %u longueur %u longueur image bloc %u à %X/%X" -#: xlogreader.c:1329 +#: xlogreader.c:1367 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE désactivé, mais décalage trou %u longueur %u à %X/%X" -#: xlogreader.c:1344 +#: xlogreader.c:1382 #, c-format msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_IS_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: xlogreader.c:1359 +#: xlogreader.c:1397 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_IS_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: xlogreader.c:1375 +#: xlogreader.c:1413 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL configuré, mais pas de relation précédente à %X/%X" -#: xlogreader.c:1387 +#: xlogreader.c:1425 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "block_id %u invalide à %X/%X" -#: xlogreader.c:1476 +#: xlogreader.c:1514 #, c-format msgid "record with invalid length at %X/%X" msgstr "enregistrement de longueur invalide à %X/%X" -#: xlogreader.c:1565 +#: xlogreader.c:1603 #, c-format msgid "invalid compressed image at %X/%X, block %d" msgstr "image compressée invalide à %X/%X, bloc %d" +#~ msgid "" +#~ "\n" +#~ "Report bugs to .\n" +#~ msgstr "" +#~ "\n" +#~ "Rapporter les bogues à .\n" + +#~ msgid " block %u\n" +#~ msgstr " bloc %u\n" + +#~ msgid "%d: %X/%X - %X/%X\n" +#~ msgstr "%d : %X/%X - %X/%X\n" + +#~ msgid "%s (%s)\n" +#~ msgstr "%s (%s)\n" + #~ msgid "%s: WARNING: cannot create restricted tokens on this platform\n" #~ msgstr "%s : ATTENTION : ne peut pas créer les jetons restreints sur cette plateforme\n" -#~ msgid "%s: could not open process token: error code %lu\n" -#~ msgstr "%s : n'a pas pu ouvrir le jeton du processus : code d'erreur %lu\n" - #~ msgid "%s: could not allocate SIDs: error code %lu\n" #~ msgstr "%s : n'a pas pu allouer les SID : code d'erreur %lu\n" #~ msgid "%s: could not create restricted token: error code %lu\n" #~ msgstr "%s : n'a pas pu créer le jeton restreint : code d'erreur %lu\n" -#~ msgid "%s: could not start process for command \"%s\": error code %lu\n" -#~ msgstr "%s : n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu\n" - -#~ msgid "%s: could not re-execute with restricted token: error code %lu\n" -#~ msgstr "%s : n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu\n" - #~ msgid "%s: could not get exit code from subprocess: error code %lu\n" #~ msgstr "%s : n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu\n" -#~ msgid "could not open directory \"%s\": %s\n" -#~ msgstr "n'a pas pu ouvrir le répertoire « %s » : %s\n" +#~ msgid "%s: could not open process token: error code %lu\n" +#~ msgstr "%s : n'a pas pu ouvrir le jeton du processus : code d'erreur %lu\n" -#~ msgid "could not stat file \"%s\": %s\n" -#~ msgstr "n'a pas pu tester le fichier « %s » : %s\n" +#~ msgid "%s: could not re-execute with restricted token: error code %lu\n" +#~ msgstr "%s : n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu\n" -#~ msgid "could not read symbolic link \"%s\": %s\n" -#~ msgstr "n'a pas pu lire le lien symbolique « %s » : %s\n" +#~ msgid "%s: could not read permissions of directory \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu lire les droits sur le répertoire « %s » : %s\n" -#~ msgid "symbolic link \"%s\" target is too long\n" -#~ msgstr "la cible du lien symbolique « %s » est trop long\n" +#~ msgid "%s: could not start process for command \"%s\": error code %lu\n" +#~ msgstr "%s : n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu\n" -#~ msgid "could not read directory \"%s\": %s\n" -#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n" +#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" +#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" -#~ msgid "could not close directory \"%s\": %s\n" -#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n" +#~ msgid "Expected a numeric timeline ID.\n" +#~ msgstr "Attendait un identifiant numérique de ligne de temps.\n" -#~ msgid "could not read file \"%s\": %s\n" -#~ msgstr "n'a pas pu lire le fichier « %s » : %s\n" +#~ msgid "Expected a write-ahead log switchpoint location.\n" +#~ msgstr "Attendait un emplacement de bascule de journal de transactions.\n" -#~ msgid "could not close file \"%s\": %s\n" -#~ msgstr "n'a pas pu fermer le fichier « %s » : %s\n" +#~ msgid "Failure, exiting\n" +#~ msgstr "Échec, sortie\n" -#~ msgid " block %u\n" -#~ msgstr " bloc %u\n" +#~ msgid "Source timeline history:\n" +#~ msgstr "Historique de la ligne de temps source :\n" -#~ msgid "could not write file \"%s\": %s\n" -#~ msgstr "n'a pas pu écrire le fichier « %s » : %s\n" +#~ msgid "Target timeline history:\n" +#~ msgstr "Historique de la ligne de temps cible :\n" -#~ msgid "could not remove file \"%s\": %s\n" -#~ msgstr "n'a pas pu supprimer le fichier « %s » : %s\n" +#~ msgid "" +#~ "The program \"%s\" is needed by %s but was\n" +#~ "not found in the same directory as \"%s\".\n" +#~ "Check your installation." +#~ msgstr "" +#~ "Le programme « %s » est nécessaire pour %s, mais n'a pas été trouvé\n" +#~ "dans le même répertoire que « %s ».\n" +#~ "Vérifiez votre installation." -#~ msgid "could not truncate file \"%s\" to %u: %s\n" -#~ msgstr "n'a pas pu tronquer le fichier « %s » à %u : %s\n" +#~ msgid "" +#~ "The program \"%s\" was found by \"%s\" but was\n" +#~ "not the same version as %s.\n" +#~ "Check your installation." +#~ msgstr "" +#~ "Le programme « %s » a été trouvé par « %s » mais n'était pas de la même version\n" +#~ "que %s.\n" +#~ "Vérifiez votre installation." -#~ msgid "could not create directory \"%s\": %s\n" -#~ msgstr "n'a pas pu créer le répertoire « %s » : %s\n" +#~ msgid "" +#~ "The program \"initdb\" is needed by %s but was\n" +#~ "not found in the same directory as \"%s\".\n" +#~ "Check your installation.\n" +#~ msgstr "" +#~ "Le programme « initdb » est nécessaire pour %s, mais n'a pas été trouvé\n" +#~ "dans le même répertoire que « %s ».\n" +#~ "Vérifiez votre installation.\n" -#~ msgid "could not remove directory \"%s\": %s\n" -#~ msgstr "n'a pas pu supprimer le répertoire « %s » : %s\n" +#~ msgid "" +#~ "The program \"initdb\" was found by \"%s\"\n" +#~ "but was not the same version as %s.\n" +#~ "Check your installation.\n" +#~ msgstr "" +#~ "Le programme « initdb » a été trouvé par « %s », mais n'est pas de la même version\n" +#~ "que %s.\n" +#~ "Vérifiez votre installation.\n" -#~ msgid "could not remove symbolic link \"%s\": %s\n" -#~ msgstr "n'a pas pu supprimer le lien symbolique « %s » : %s\n" +#~ msgid "" +#~ "The program \"postgres\" is needed by %s but was not found in the\n" +#~ "same directory as \"%s\".\n" +#~ "Check your installation." +#~ msgstr "" +#~ "Le programme « postgres » est nécessaire à %s mais n'a pas été trouvé dans\n" +#~ "le même répertoire que « %s ».\n" +#~ "Vérifiez votre installation." -#~ msgid "could not open file \"%s\" for reading: %s\n" -#~ msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %s\n" +#~ msgid "" +#~ "The program \"postgres\" was found by \"%s\"\n" +#~ "but was not the same version as %s.\n" +#~ "Check your installation." +#~ msgstr "" +#~ "Le programme « postgres » a été trouvé par « %s » mais n'est pas de la même\n" +#~ "version que « %s ».\n" +#~ "Vérifiez votre installation." -#~ msgid "entry \"%s\" excluded from source file list\n" -#~ msgstr "enregistrement « %s » exclus de la liste des fichiers sources\n" +#~ msgid "Timeline IDs must be in increasing sequence.\n" +#~ msgstr "Les identifiants de ligne de temps doivent être dans une séquence croissante.\n" -#~ msgid "entry \"%s\" excluded from target file list\n" -#~ msgstr "enregistrement « %s » exclus de la liste des fichiers cibles\n" +#~ msgid "Timeline IDs must be less than child timeline's ID.\n" +#~ msgstr "Les identifiants de ligne de temps doivent être inférieurs à l'identifiant de la ligne de temps enfant.\n" -#~ msgid "%s (%s)\n" -#~ msgstr "%s (%s)\n" +#~ msgid "WAL file is from different database system: incorrect XLOG_SEG_SIZE in page header" +#~ msgstr "le fichier WAL provient d'un système différent : XLOG_SEG_SIZE invalide dans l'en-tête de page" -#~ msgid "could not set up connection context: %s" -#~ msgstr "n'a pas pu initialiser le contexte de connexion : « %s »" +#~ msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte\n" +#~ msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes\n" +#~ msgstr[0] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octet\n" +#~ msgstr[1] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octets\n" -#~ msgid "getting file chunks\n" -#~ msgstr "récupération des parties de fichier\n" +#~ msgid "could not close directory \"%s\": %s\n" +#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n" -#~ msgid "received null value for chunk for file \"%s\", file has been deleted\n" -#~ msgstr "a reçu une valeur NULL pour une partie du fichier « %s », le fichier a été supprimé\n" +#~ msgid "could not close file \"%s\": %s\n" +#~ msgstr "n'a pas pu fermer le fichier « %s » : %s\n" -#~ msgid "received chunk for file \"%s\", offset %s, size %d\n" -#~ msgstr "a reçu une partie du fichier « %s », décalage %s, taille %d\n" +#~ msgid "could not connect to server: %s" +#~ msgstr "n'a pas pu se connecter au serveur : %s" -#~ msgid "fetched file \"%s\", length %d\n" -#~ msgstr "fichier récupéré « %s », longueur %d\n" +#~ msgid "could not create directory \"%s\": %s\n" +#~ msgstr "n'a pas pu créer le répertoire « %s » : %s\n" #~ msgid "could not create temporary table: %s" #~ msgstr "n'a pas pu créer la table temporaire : %s" -#~ msgid "Failure, exiting\n" -#~ msgstr "Échec, sortie\n" +#~ msgid "could not open directory \"%s\": %s\n" +#~ msgstr "n'a pas pu ouvrir le répertoire « %s » : %s\n" + +#~ msgid "could not open file \"%s\" for reading: %s\n" +#~ msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %s\n" #~ msgid "could not open file \"%s\": %s\n" #~ msgstr "n'a pas pu ouvrir le fichier « %s » : %s\n" -#~ msgid "could not seek in file \"%s\": %s\n" -#~ msgstr "n'a pas pu chercher dans le fichier « %s » : %s\n" +#~ msgid "could not read directory \"%s\": %s\n" +#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n" + +#~ msgid "could not read file \"%s\": %s\n" +#~ msgstr "n'a pas pu lire le fichier « %s » : %s\n" #~ msgid "could not read from file \"%s\": %s\n" #~ msgstr "n'a pas pu lire le fichier « %s » : %s\n" -#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" -#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" +#~ msgid "could not read symbolic link \"%s\": %s\n" +#~ msgstr "n'a pas pu lire le lien symbolique « %s » : %s\n" -#~ msgid "%s: could not read permissions of directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire les droits sur le répertoire « %s » : %s\n" +#~ msgid "could not remove directory \"%s\": %s\n" +#~ msgstr "n'a pas pu supprimer le répertoire « %s » : %s\n" -#~ msgid "Source timeline history:\n" -#~ msgstr "Historique de la ligne de temps source :\n" +#~ msgid "could not remove file \"%s\": %s\n" +#~ msgstr "n'a pas pu supprimer le fichier « %s » : %s\n" -#~ msgid "Target timeline history:\n" -#~ msgstr "Historique de la ligne de temps cible :\n" +#~ msgid "could not remove symbolic link \"%s\": %s\n" +#~ msgstr "n'a pas pu supprimer le lien symbolique « %s » : %s\n" -#~ msgid "%d: %X/%X - %X/%X\n" -#~ msgstr "%d : %X/%X - %X/%X\n" +#~ msgid "could not seek in file \"%s\": %s\n" +#~ msgstr "n'a pas pu chercher dans le fichier « %s » : %s\n" -#~ msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte\n" -#~ msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes\n" -#~ msgstr[0] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octet\n" -#~ msgstr[1] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octets\n" +#~ msgid "could not set up connection context: %s" +#~ msgstr "n'a pas pu initialiser le contexte de connexion : « %s »" -#~ msgid "" -#~ "The program \"initdb\" is needed by %s but was\n" -#~ "not found in the same directory as \"%s\".\n" -#~ "Check your installation.\n" -#~ msgstr "" -#~ "Le programme « initdb » est nécessaire pour %s, mais n'a pas été trouvé\n" -#~ "dans le même répertoire que « %s ».\n" -#~ "Vérifiez votre installation.\n" +#~ msgid "could not stat file \"%s\": %s\n" +#~ msgstr "n'a pas pu tester le fichier « %s » : %s\n" -#~ msgid "" -#~ "The program \"initdb\" was found by \"%s\"\n" -#~ "but was not the same version as %s.\n" -#~ "Check your installation.\n" -#~ msgstr "" -#~ "Le programme « initdb » a été trouvé par « %s », mais n'est pas de la même version\n" -#~ "que %s.\n" -#~ "Vérifiez votre installation.\n" +#~ msgid "could not truncate file \"%s\" to %u: %s\n" +#~ msgstr "n'a pas pu tronquer le fichier « %s » à %u : %s\n" -#~ msgid "sync of target directory failed\n" -#~ msgstr "échec de la synchronisation du répertoire cible\n" +#~ msgid "could not write file \"%s\": %s\n" +#~ msgstr "n'a pas pu écrire le fichier « %s » : %s\n" -#~ msgid "syntax error in history file: %s\n" -#~ msgstr "erreur de syntaxe dans le fichier historique : %s\n" +#~ msgid "entry \"%s\" excluded from source file list\n" +#~ msgstr "enregistrement « %s » exclus de la liste des fichiers sources\n" -#~ msgid "Expected a numeric timeline ID.\n" -#~ msgstr "Attendait un identifiant numérique de ligne de temps.\n" +#~ msgid "entry \"%s\" excluded from target file list\n" +#~ msgstr "enregistrement « %s » exclus de la liste des fichiers cibles\n" -#~ msgid "Expected a write-ahead log switchpoint location.\n" -#~ msgstr "Attendait un emplacement de bascule de journal de transactions.\n" +#~ msgid "fetched file \"%s\", length %d\n" +#~ msgstr "fichier récupéré « %s », longueur %d\n" + +#~ msgid "getting file chunks\n" +#~ msgstr "récupération des parties de fichier\n" #~ msgid "invalid data in history file: %s\n" #~ msgstr "données invalides dans le fichier historique : %s\n" -#~ msgid "Timeline IDs must be in increasing sequence.\n" -#~ msgstr "Les identifiants de ligne de temps doivent être dans une séquence croissante.\n" - -#~ msgid "Timeline IDs must be less than child timeline's ID.\n" -#~ msgstr "Les identifiants de ligne de temps doivent être inférieurs à l'identifiant de la ligne de temps enfant.\n" - -#~ msgid "WAL file is from different database system: incorrect XLOG_SEG_SIZE in page header" -#~ msgstr "le fichier WAL provient d'un système différent : XLOG_SEG_SIZE invalide dans l'en-tête de page" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#~ msgid "" -#~ "The program \"%s\" was found by \"%s\" but was\n" -#~ "not the same version as %s.\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Le programme « %s » a été trouvé par « %s » mais n'était pas de la même version\n" -#~ "que %s.\n" -#~ "Vérifiez votre installation." +#~ msgid "received chunk for file \"%s\", offset %s, size %d\n" +#~ msgstr "a reçu une partie du fichier « %s », décalage %s, taille %d\n" -#~ msgid "" -#~ "The program \"%s\" is needed by %s but was\n" -#~ "not found in the same directory as \"%s\".\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Le programme « %s » est nécessaire pour %s, mais n'a pas été trouvé\n" -#~ "dans le même répertoire que « %s ».\n" -#~ "Vérifiez votre installation." +#~ msgid "received null value for chunk for file \"%s\", file has been deleted\n" +#~ msgstr "a reçu une valeur NULL pour une partie du fichier « %s », le fichier a été supprimé\n" -#~ msgid "" -#~ "The program \"postgres\" was found by \"%s\"\n" -#~ "but was not the same version as %s.\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Le programme « postgres » a été trouvé par « %s » mais n'est pas de la même\n" -#~ "version que « %s ».\n" -#~ "Vérifiez votre installation." +#~ msgid "symbolic link \"%s\" target is too long\n" +#~ msgstr "la cible du lien symbolique « %s » est trop long\n" -#~ msgid "" -#~ "The program \"postgres\" is needed by %s but was not found in the\n" -#~ "same directory as \"%s\".\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Le programme « postgres » est nécessaire à %s mais n'a pas été trouvé dans\n" -#~ "le même répertoire que « %s ».\n" -#~ "Vérifiez votre installation." +#~ msgid "sync of target directory failed\n" +#~ msgstr "échec de la synchronisation du répertoire cible\n" -#~ msgid "could not connect to server: %s" -#~ msgstr "n'a pas pu se connecter au serveur : %s" +#~ msgid "syntax error in history file: %s\n" +#~ msgstr "erreur de syntaxe dans le fichier historique : %s\n" diff -Nru postgresql-13-13.4/src/bin/pg_rewind/po/ru.po postgresql-13-13.7/src/bin/pg_rewind/po/ru.po --- postgresql-13-13.4/src/bin/pg_rewind/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_rewind/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,13 +1,13 @@ # Russian message translation file for pg_rewind # Copyright (C) 2015-2016 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Alexander Lakhin , 2015-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2015-2017, 2018, 2019, 2020, 2021, 2022. msgid "" msgstr "" "Project-Id-Version: pg_rewind (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-12-11 07:48+0300\n" -"PO-Revision-Date: 2020-11-09 08:33+0300\n" +"POT-Creation-Date: 2022-04-26 13:44+0300\n" +"PO-Revision-Date: 2022-05-07 06:27+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -115,13 +115,13 @@ #: ../../fe_utils/recovery_gen.c:35 ../../fe_utils/recovery_gen.c:49 #: ../../fe_utils/recovery_gen.c:77 ../../fe_utils/recovery_gen.c:100 -#: ../../fe_utils/recovery_gen.c:171 parsexlog.c:76 parsexlog.c:134 -#: parsexlog.c:194 +#: ../../fe_utils/recovery_gen.c:171 parsexlog.c:76 parsexlog.c:138 +#: parsexlog.c:198 #, c-format msgid "out of memory" msgstr "нехватка памяти" -#: ../../fe_utils/recovery_gen.c:134 parsexlog.c:307 +#: ../../fe_utils/recovery_gen.c:134 parsexlog.c:311 #, c-format msgid "could not open file \"%s\": %m" msgstr "не удалось открыть файл \"%s\": %m" @@ -180,7 +180,7 @@ msgid "could not seek in source file: %m" msgstr "не удалось переместиться в исходном файле: %m" -#: copy_fetch.c:187 file_ops.c:311 parsexlog.c:345 +#: copy_fetch.c:187 file_ops.c:311 parsexlog.c:349 #, c-format msgid "could not read file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" @@ -260,7 +260,7 @@ msgid "could not open file \"%s\" for reading: %m" msgstr "не удалось открыть файл \"%s\" для чтения: %m" -#: file_ops.c:314 parsexlog.c:347 +#: file_ops.c:314 parsexlog.c:351 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" @@ -425,32 +425,38 @@ msgid "unexpected result while sending file list: %s" msgstr "неожиданный результат при передаче списка: %s" -#: parsexlog.c:88 parsexlog.c:141 +#: parsexlog.c:88 parsexlog.c:145 #, c-format msgid "could not read WAL record at %X/%X: %s" msgstr "не удалось прочитать запись WAL в позиции %X/%X: %s" -#: parsexlog.c:92 parsexlog.c:144 +#: parsexlog.c:92 parsexlog.c:148 #, c-format msgid "could not read WAL record at %X/%X" msgstr "не удалось прочитать запись WAL в позиции %X/%X" -#: parsexlog.c:207 +#: parsexlog.c:105 +#, c-format +msgid "end pointer %X/%X is not a valid end point; expected %X/%X" +msgstr "" +"конечный указатель %X/%X неверно задаёт конечную точку; ожидается %X/%X" + +#: parsexlog.c:211 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "не удалось найти предыдущую запись WAL в позиции %X/%X: %s" -#: parsexlog.c:211 +#: parsexlog.c:215 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "не удалось найти предыдущую запись WAL в позиции %X/%X" -#: parsexlog.c:336 +#: parsexlog.c:340 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "не удалось переместиться в файле \"%s\": %m" -#: parsexlog.c:416 +#: parsexlog.c:420 #, c-format msgid "" "WAL record modifies a relation, but record type is not recognized: lsn: %X/" @@ -853,64 +859,64 @@ msgstr "" "Идентификаторы линий времени должны быть меньше идентификатора линии-потомка." -#: xlogreader.c:349 +#: xlogreader.c:354 #, c-format msgid "invalid record offset at %X/%X" msgstr "неверное смещение записи: %X/%X" -#: xlogreader.c:357 +#: xlogreader.c:362 #, c-format msgid "contrecord is requested by %X/%X" msgstr "по смещению %X/%X запрошено продолжение записи" -#: xlogreader.c:398 xlogreader.c:695 +#: xlogreader.c:403 xlogreader.c:733 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "неверная длина записи по смещению %X/%X: ожидалось %u, получено %u" -#: xlogreader.c:422 +#: xlogreader.c:429 #, c-format msgid "record length %u at %X/%X too long" msgstr "длина записи %u по смещению %X/%X слишком велика" -#: xlogreader.c:454 +#: xlogreader.c:478 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "нет флага contrecord в позиции %X/%X" -#: xlogreader.c:467 +#: xlogreader.c:491 #, c-format msgid "invalid contrecord length %u at %X/%X" msgstr "неверная длина contrecord (%u) в позиции %X/%X" -#: xlogreader.c:703 +#: xlogreader.c:741 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "неверный ID менеджера ресурсов %u по смещению %X/%X" -#: xlogreader.c:717 xlogreader.c:734 +#: xlogreader.c:755 xlogreader.c:772 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запись с неверной ссылкой назад %X/%X по смещению %X/%X" -#: xlogreader.c:771 +#: xlogreader.c:809 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "некорректная контрольная сумма данных менеджера ресурсов в записи по " "смещению %X/%X" -#: xlogreader.c:808 +#: xlogreader.c:846 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "неверное магическое число %04X в сегменте журнала %s, смещение %u" -#: xlogreader.c:822 xlogreader.c:863 +#: xlogreader.c:860 xlogreader.c:901 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "неверные информационные биты %04X в сегменте журнала %s, смещение %u" -#: xlogreader.c:837 +#: xlogreader.c:875 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -919,7 +925,7 @@ "файл WAL принадлежит другой СУБД: в нём указан идентификатор системы БД " "%llu, а идентификатор системы pg_control: %llu" -#: xlogreader.c:845 +#: xlogreader.c:883 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -928,7 +934,7 @@ "файл WAL принадлежит другой СУБД: некорректный размер сегмента в заголовке " "страницы" -#: xlogreader.c:851 +#: xlogreader.c:889 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -937,35 +943,35 @@ "файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке " "страницы" -#: xlogreader.c:882 +#: xlogreader.c:920 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "неожиданный pageaddr %X/%X в сегменте журнала %s, смещение %u" -#: xlogreader.c:907 +#: xlogreader.c:945 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "" "нарушение последовательности ID линии времени %u (после %u) в сегменте " "журнала %s, смещение %u" -#: xlogreader.c:1247 +#: xlogreader.c:1285 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "идентификатор блока %u идёт не по порядку в позиции %X/%X" -#: xlogreader.c:1270 +#: xlogreader.c:1308 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA установлен, но данных в позиции %X/%X нет" -#: xlogreader.c:1277 +#: xlogreader.c:1315 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "" "BKPBLOCK_HAS_DATA не установлен, но длина данных равна %u в позиции %X/%X" -#: xlogreader.c:1313 +#: xlogreader.c:1351 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -974,21 +980,21 @@ "BKPIMAGE_HAS_HOLE установлен, но для пропуска заданы смещение %u и длина %u " "при длине образа блока %u в позиции %X/%X" -#: xlogreader.c:1329 +#: xlogreader.c:1367 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "" "BKPIMAGE_HAS_HOLE не установлен, но для пропуска заданы смещение %u и длина " "%u в позиции %X/%X" -#: xlogreader.c:1344 +#: xlogreader.c:1382 #, c-format msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_IS_COMPRESSED установлен, но длина образа блока равна %u в позиции " "%X/%X" -#: xlogreader.c:1359 +#: xlogreader.c:1397 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image " @@ -997,24 +1003,24 @@ "ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_IS_COMPRESSED не установлены, но длина " "образа блока равна %u в позиции %X/%X" -#: xlogreader.c:1375 +#: xlogreader.c:1413 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "" "BKPBLOCK_SAME_REL установлен, но предыдущее значение не задано в позиции %X/" "%X" -#: xlogreader.c:1387 +#: xlogreader.c:1425 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "неверный идентификатор блока %u в позиции %X/%X" -#: xlogreader.c:1476 +#: xlogreader.c:1514 #, c-format msgid "record with invalid length at %X/%X" msgstr "запись с неверной длиной в позиции %X/%X" -#: xlogreader.c:1565 +#: xlogreader.c:1603 #, c-format msgid "invalid compressed image at %X/%X, block %d" msgstr "неверный сжатый образ в позиции %X/%X, блок %d" diff -Nru postgresql-13-13.4/src/bin/pg_rewind/po/sv.po postgresql-13-13.7/src/bin/pg_rewind/po/sv.po --- postgresql-13-13.4/src/bin/pg_rewind/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_rewind/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for pg_rewind # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-16 05:17+0000\n" -"PO-Revision-Date: 2020-09-16 07:53+0200\n" +"POT-Creation-Date: 2022-04-06 21:32+0000\n" +"PO-Revision-Date: 2022-04-11 14:02+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -115,13 +115,13 @@ #: ../../fe_utils/recovery_gen.c:35 ../../fe_utils/recovery_gen.c:49 #: ../../fe_utils/recovery_gen.c:77 ../../fe_utils/recovery_gen.c:100 -#: ../../fe_utils/recovery_gen.c:171 parsexlog.c:73 parsexlog.c:125 -#: parsexlog.c:185 +#: ../../fe_utils/recovery_gen.c:171 parsexlog.c:76 parsexlog.c:138 +#: parsexlog.c:198 #, c-format msgid "out of memory" msgstr "slut på minne" -#: ../../fe_utils/recovery_gen.c:134 parsexlog.c:298 +#: ../../fe_utils/recovery_gen.c:134 parsexlog.c:311 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" @@ -176,7 +176,7 @@ msgid "could not seek in source file: %m" msgstr "kunde inte söka i källfil: %m" -#: copy_fetch.c:187 file_ops.c:311 parsexlog.c:336 +#: copy_fetch.c:187 file_ops.c:311 parsexlog.c:349 #, c-format msgid "could not read file \"%s\": %m" msgstr "kunde inte läsa fil \"%s\": %m" @@ -256,7 +256,7 @@ msgid "could not open file \"%s\" for reading: %m" msgstr "kunde inte öppna filen \"%s\" för läsning: %m" -#: file_ops.c:314 parsexlog.c:338 +#: file_ops.c:314 parsexlog.c:351 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "kunde inte läsa fil \"%s\": läste %d av %zu" @@ -293,155 +293,160 @@ #: libpq_fetch.c:50 #, c-format -msgid "could not connect to server: %s" -msgstr "kunde inte ansluta till server: %s" +msgid "%s" +msgstr "%s" -#: libpq_fetch.c:54 +#: libpq_fetch.c:53 #, c-format msgid "connected to server" msgstr "ansluten till server" -#: libpq_fetch.c:63 +#: libpq_fetch.c:62 #, c-format msgid "could not clear search_path: %s" msgstr "kunde inte nollställa search_path: %s" -#: libpq_fetch.c:75 +#: libpq_fetch.c:74 #, c-format msgid "source server must not be in recovery mode" msgstr "källserver får inte vara i återställningsläge" -#: libpq_fetch.c:85 +#: libpq_fetch.c:84 #, c-format msgid "full_page_writes must be enabled in the source server" msgstr "full_page_writes måste vara påslagen i källservern" -#: libpq_fetch.c:111 +#: libpq_fetch.c:110 #, c-format msgid "error running query (%s) on source server: %s" msgstr "fel vid körande av fråga (%s) på källserver: %s" -#: libpq_fetch.c:116 +#: libpq_fetch.c:115 #, c-format msgid "unexpected result set from query" msgstr "oväntad resultatmängd från fråga" -#: libpq_fetch.c:137 +#: libpq_fetch.c:136 #, c-format msgid "error running query (%s) in source server: %s" msgstr "fel vid körande av fråga (%s) i källserver: %s" -#: libpq_fetch.c:157 +#: libpq_fetch.c:156 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "oväntat resultat \"%s\" för nuvarande WAL-insättningsposition" -#: libpq_fetch.c:207 +#: libpq_fetch.c:206 #, c-format msgid "could not fetch file list: %s" msgstr "kunde inte hämta fillista: %s" -#: libpq_fetch.c:212 +#: libpq_fetch.c:211 #, c-format msgid "unexpected result set while fetching file list" msgstr "oväntad resultatmängd vid hämtning av fillista" -#: libpq_fetch.c:265 +#: libpq_fetch.c:264 #, c-format msgid "could not send query: %s" msgstr "kunde inte skicka fråga: %s" -#: libpq_fetch.c:270 +#: libpq_fetch.c:269 #, c-format msgid "could not set libpq connection to single row mode" msgstr "kunde inte sätta libpq-anslutning till enradsläge" -#: libpq_fetch.c:290 +#: libpq_fetch.c:289 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "oväntat resultat vid hämtning av extern fil: %s" -#: libpq_fetch.c:296 +#: libpq_fetch.c:295 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "oväntad resultatmängdstorlek vid hämtning av externa filer" -#: libpq_fetch.c:302 +#: libpq_fetch.c:301 #, c-format msgid "unexpected data types in result set while fetching remote files: %u %u %u" msgstr "oväntade datayper i resultatmängd vid hämtning av externa filer: %u %u %u" -#: libpq_fetch.c:310 +#: libpq_fetch.c:309 #, c-format msgid "unexpected result format while fetching remote files" msgstr "oväntat resultatformat vid hämtning av externa filer" -#: libpq_fetch.c:316 +#: libpq_fetch.c:315 #, c-format msgid "unexpected null values in result while fetching remote files" msgstr "oväntade null-värden i resultat vid hämtning av externa filer" -#: libpq_fetch.c:320 +#: libpq_fetch.c:319 #, c-format msgid "unexpected result length while fetching remote files" msgstr "oväntad resultatlängd vid hämtning av externa filer" -#: libpq_fetch.c:381 +#: libpq_fetch.c:380 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "kunde inte hämta extern fil \"%s\": %s" -#: libpq_fetch.c:386 +#: libpq_fetch.c:385 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "oväntat resultatmängd vid hämtning av extern fil \"%s\"" -#: libpq_fetch.c:430 +#: libpq_fetch.c:429 #, c-format msgid "could not send COPY data: %s" msgstr "kunde inte skicka COPY-data: %s" -#: libpq_fetch.c:459 +#: libpq_fetch.c:458 #, c-format msgid "could not send file list: %s" msgstr "kunde inte skicka fillista: %s" -#: libpq_fetch.c:501 +#: libpq_fetch.c:500 #, c-format msgid "could not send end-of-COPY: %s" msgstr "kunde inte skicka slut-på-COPY: %s" -#: libpq_fetch.c:507 +#: libpq_fetch.c:506 #, c-format msgid "unexpected result while sending file list: %s" msgstr "oväntat resultat vid skickande av fillista: %s" -#: parsexlog.c:85 parsexlog.c:132 +#: parsexlog.c:88 parsexlog.c:145 #, c-format msgid "could not read WAL record at %X/%X: %s" msgstr "kunde inte läsa WAL-post vid %X/%X: %s" -#: parsexlog.c:89 parsexlog.c:135 +#: parsexlog.c:92 parsexlog.c:148 #, c-format msgid "could not read WAL record at %X/%X" msgstr "kunde inte läsa WAL-post vid %X/%X" -#: parsexlog.c:198 +#: parsexlog.c:105 +#, c-format +msgid "end pointer %X/%X is not a valid end point; expected %X/%X" +msgstr "slutpekare %X/%X är inte en giltig slutposition; förväntade %X/%X" + +#: parsexlog.c:211 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "kunde inte hitta föregående WAL-post vid %X/%X: %s" -#: parsexlog.c:202 +#: parsexlog.c:215 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "kunde inte hitta förgående WAL-post vid %X/%X" -#: parsexlog.c:327 +#: parsexlog.c:340 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "kunde inte söka (seek) i fil \"%s\": %m" -#: parsexlog.c:407 +#: parsexlog.c:420 #, c-format msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmgr: %s, info: %02X" msgstr "WAL-post modifierar en relation, men posttypen känns inte igen: lsn: %X/%X, rmgr: %s, info: %02X" @@ -558,170 +563,170 @@ msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_rewind.c:159 pg_rewind.c:208 pg_rewind.c:215 pg_rewind.c:222 -#: pg_rewind.c:229 pg_rewind.c:237 +#: pg_rewind.c:160 pg_rewind.c:209 pg_rewind.c:216 pg_rewind.c:223 +#: pg_rewind.c:230 pg_rewind.c:238 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" -#: pg_rewind.c:207 +#: pg_rewind.c:208 #, c-format msgid "no source specified (--source-pgdata or --source-server)" msgstr "ingen källa angavs (--source-pgdata eller --source-server)" -#: pg_rewind.c:214 +#: pg_rewind.c:215 #, c-format msgid "only one of --source-pgdata or --source-server can be specified" msgstr "bara en av --source-pgdata och --source-server får anges" -#: pg_rewind.c:221 +#: pg_rewind.c:222 #, c-format msgid "no target data directory specified (--target-pgdata)" msgstr "ingen måldatakatalog angiven (--target-pgdata)" -#: pg_rewind.c:228 +#: pg_rewind.c:229 #, c-format msgid "no source server information (--source-server) specified for --write-recovery-conf" msgstr "ingen källserverinformation (--source-server) angiven för --write-recovery-conf" -#: pg_rewind.c:235 +#: pg_rewind.c:236 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_rewind.c:250 +#: pg_rewind.c:251 #, c-format msgid "cannot be executed by \"root\"" msgstr "kan inte köras av \"root\"" -#: pg_rewind.c:251 +#: pg_rewind.c:252 #, c-format msgid "You must run %s as the PostgreSQL superuser.\n" -msgstr "Du måste köra %s som PostgreSQL:s superanvändare.\n" +msgstr "Du måste köra %s som PostgreSQL:s superuser.\n" -#: pg_rewind.c:262 +#: pg_rewind.c:263 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "kunde inte läsa rättigheter på katalog \"%s\": %m" -#: pg_rewind.c:316 +#: pg_rewind.c:317 #, c-format msgid "source and target cluster are on the same timeline" msgstr "källa och målkluster är på samma tidslinje" -#: pg_rewind.c:322 +#: pg_rewind.c:326 #, c-format msgid "servers diverged at WAL location %X/%X on timeline %u" msgstr "servrarna divergerade vid WAL-position %X/%X på tidslinje %u" -#: pg_rewind.c:360 +#: pg_rewind.c:374 #, c-format msgid "no rewind required" msgstr "ingen rewind krävs" -#: pg_rewind.c:369 +#: pg_rewind.c:383 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "rewind från senaste gemensamma checkpoint vid %X/%X på tidslinje %u" -#: pg_rewind.c:378 +#: pg_rewind.c:392 #, c-format msgid "reading source file list" msgstr "läser källfillista" -#: pg_rewind.c:381 +#: pg_rewind.c:395 #, c-format msgid "reading target file list" msgstr "läser målfillista" -#: pg_rewind.c:392 +#: pg_rewind.c:404 #, c-format msgid "reading WAL in target" msgstr "läser WAL i målet" -#: pg_rewind.c:409 +#: pg_rewind.c:421 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "behöver kopiera %lu MB (total källkatalogstorlek är %lu MB)" -#: pg_rewind.c:427 +#: pg_rewind.c:439 #, c-format msgid "creating backup label and updating control file" msgstr "skapar backupetikett och uppdaterar kontrollfil" -#: pg_rewind.c:457 +#: pg_rewind.c:469 #, c-format msgid "syncing target data directory" msgstr "synkar måldatakatalog" -#: pg_rewind.c:464 +#: pg_rewind.c:476 #, c-format msgid "Done!" msgstr "Klar!" -#: pg_rewind.c:476 +#: pg_rewind.c:488 #, c-format msgid "source and target clusters are from different systems" msgstr "källa och målkluster är från olika system" -#: pg_rewind.c:484 +#: pg_rewind.c:496 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "klustren är inte kompatibla med denna version av pg_rewind" -#: pg_rewind.c:494 +#: pg_rewind.c:506 #, c-format msgid "target server needs to use either data checksums or \"wal_log_hints = on\"" msgstr "målservern behöver använda antingen datachecksums eller \"wal_log_hints = on\"" -#: pg_rewind.c:505 +#: pg_rewind.c:517 #, c-format msgid "target server must be shut down cleanly" msgstr "målserver måste stängas ner utan fel" -#: pg_rewind.c:515 +#: pg_rewind.c:527 #, c-format msgid "source data directory must be shut down cleanly" msgstr "måldatakatalog måste stängas ner utan fel" -#: pg_rewind.c:567 +#: pg_rewind.c:579 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s kB (%d%%) kopierad" -#: pg_rewind.c:630 +#: pg_rewind.c:642 #, c-format msgid "invalid control file" msgstr "ogiltig kontrollfil" -#: pg_rewind.c:714 +#: pg_rewind.c:726 #, c-format msgid "could not find common ancestor of the source and target cluster's timelines" msgstr "kunde inte finna en gemensam anfader av källa och målklusterets tidslinjer" -#: pg_rewind.c:755 +#: pg_rewind.c:767 #, c-format msgid "backup label buffer too small" msgstr "backupetikett-buffer för liten" -#: pg_rewind.c:778 +#: pg_rewind.c:790 #, c-format msgid "unexpected control file CRC" msgstr "oväntad kontrollfil-CRC" -#: pg_rewind.c:788 +#: pg_rewind.c:800 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "oväntad kontrollfilstorlek %d, förväntade %d" -#: pg_rewind.c:797 +#: pg_rewind.c:809 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes" msgstr[0] "WAL-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men kontrollfilen anger %d byte" msgstr[1] "WAL-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men kontrollfilen anger %d byte" -#: pg_rewind.c:854 pg_rewind.c:912 +#: pg_rewind.c:866 pg_rewind.c:924 #, c-format msgid "" "The program \"%s\" is needed by %s but was not found in the\n" @@ -732,7 +737,7 @@ "katalog som \"%s\".\n" "Kontrollera din installation." -#: pg_rewind.c:859 pg_rewind.c:917 +#: pg_rewind.c:871 pg_rewind.c:929 #, c-format msgid "" "The program \"%s\" was found by \"%s\"\n" @@ -743,22 +748,22 @@ "men är inte av samma version som %s.\n" "Kontrollera din installation." -#: pg_rewind.c:880 +#: pg_rewind.c:892 #, c-format msgid "restore_command is not set in the target cluster" msgstr "restore_command är inte satt i målklustret" -#: pg_rewind.c:923 +#: pg_rewind.c:935 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "kör \"%s\" för målservern för att slutföra krashåterställning" -#: pg_rewind.c:943 +#: pg_rewind.c:955 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "postgres enanvändarläge misslyckades i målklustret" -#: pg_rewind.c:944 +#: pg_rewind.c:956 #, c-format msgid "Command was: %s" msgstr "Kommandot var: %s" @@ -798,176 +803,137 @@ msgid "Timeline IDs must be less than child timeline's ID." msgstr "Tidslinje-ID:er måste vara mindre än barnens tidslinje-ID:er." -#: xlogreader.c:349 +#: xlogreader.c:354 #, c-format msgid "invalid record offset at %X/%X" msgstr "ogiltig postoffset vid %X/%X" -#: xlogreader.c:357 +#: xlogreader.c:362 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord är begärd vid %X/%X" -#: xlogreader.c:398 xlogreader.c:695 +#: xlogreader.c:403 xlogreader.c:733 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "ogiltig postlängd vid %X/%X: förväntade %u, fick %u" -#: xlogreader.c:422 +#: xlogreader.c:429 #, c-format msgid "record length %u at %X/%X too long" msgstr "postlängd %u vid %X/%X är för lång" -#: xlogreader.c:454 +#: xlogreader.c:478 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "det finns ingen contrecord-flagga vid %X/%X" -#: xlogreader.c:467 +#: xlogreader.c:491 #, c-format msgid "invalid contrecord length %u at %X/%X" msgstr "ogiltig contrecord-längd %u vid %X/%X" -#: xlogreader.c:703 +#: xlogreader.c:741 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ogiltigt resurshanterar-ID %u vid %X/%X" -#: xlogreader.c:717 xlogreader.c:734 +#: xlogreader.c:755 xlogreader.c:772 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "post med inkorrekt prev-link %X/%X vid %X/%X" -#: xlogreader.c:771 +#: xlogreader.c:809 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "felaktig resurshanterardatakontrollsumma i post vid %X/%X" -#: xlogreader.c:808 +#: xlogreader.c:846 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "felaktigt magiskt nummer %04X i loggsegment %s, offset %u" -#: xlogreader.c:822 xlogreader.c:863 +#: xlogreader.c:860 xlogreader.c:901 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "ogiltiga infobitar %04X i loggsegment %s, offset %u" -#: xlogreader.c:837 +#: xlogreader.c:875 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "WAL-fil är från ett annat databassystem: WAL-filens databassystemidentifierare är %llu, pg_control databassystemidentifierare är %llu" -#: xlogreader.c:845 +#: xlogreader.c:883 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL-fil är från ett annat databassystem: inkorrekt segmentstorlek i sidhuvud" -#: xlogreader.c:851 +#: xlogreader.c:889 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL-fil är från ett annat databassystem: inkorrekt XLOG_BLCKSZ i sidhuvud" -#: xlogreader.c:882 +#: xlogreader.c:920 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "oväntad sidadress %X/%X i loggsegment %s, offset %u" -#: xlogreader.c:907 +#: xlogreader.c:945 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "ej-i-sekvens för tidslinje-ID %u (efter %u) i loggsegment %s, offset %u" -#: xlogreader.c:1247 +#: xlogreader.c:1285 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ej-i-sekvens block_id %u vid %X/%X" -#: xlogreader.c:1270 +#: xlogreader.c:1308 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA satt, men ingen data inkluderad vid %X/%X" -#: xlogreader.c:1277 +#: xlogreader.c:1315 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA ej satt, men datalängd är %u vid %X/%X" -#: xlogreader.c:1313 +#: xlogreader.c:1351 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE satt, men håloffset %u längd %u block-image-längd %u vid %X/%X" -#: xlogreader.c:1329 +#: xlogreader.c:1367 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE ej satt, men håloffset %u längd %u vid %X/%X" -#: xlogreader.c:1344 +#: xlogreader.c:1382 #, c-format msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_IS_COMPRESSED satt, men block-image-längd %u vid %X/%X" -#: xlogreader.c:1359 +#: xlogreader.c:1397 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X" msgstr "varken BKPIMAGE_HAS_HOLE eller BKPIMAGE_IS_COMPRESSED satt, men block-image-längd är %u vid %X/%X" -#: xlogreader.c:1375 +#: xlogreader.c:1413 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL satt men ingen tidigare rel vid %X/%X" -#: xlogreader.c:1387 +#: xlogreader.c:1425 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ogiltig block_id %u vid %X/%X" -#: xlogreader.c:1476 +#: xlogreader.c:1514 #, c-format msgid "record with invalid length at %X/%X" msgstr "post med ogiltig längd vid %X/%X" -#: xlogreader.c:1565 +#: xlogreader.c:1603 #, c-format msgid "invalid compressed image at %X/%X, block %d" msgstr "ogiltig komprimerad image vid %X/%X, block %d" - -#~ msgid "could not load advapi32.dll: error code %lu" -#~ msgstr "kunde inte ladda advapi32.dll: felkod %lu" - -#~ msgid "" -#~ "The program \"%s\" was found by \"%s\" but was\n" -#~ "not the same version as %s.\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"%s\" hittades av \"%s\"\n" -#~ "men är inte av samma version som %s.\n" -#~ "Kontrollera din installation." - -#~ msgid "" -#~ "The program \"%s\" is needed by %s but was\n" -#~ "not found in the same directory as \"%s\".\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"%s\" behövs av %s men hittades inte i samma\n" -#~ "katalog som \"%s\".\n" -#~ "Kontrollera din installation." - -#~ msgid "" -#~ "The program \"postgres\" was found by \"%s\"\n" -#~ "but was not the same version as %s.\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"postgres\" hittades av \"%s\",\n" -#~ "men det är inte byggt i samma version som %s.\n" -#~ "Kontrollera din installation." - -#~ msgid "" -#~ "The program \"postgres\" is needed by %s but was not found in the\n" -#~ "same directory as \"%s\".\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"postgres\" behövs av %s men kunde inte hittas\n" -#~ "i samma katalog som \"%s\".\n" -#~ "Kontrollera din installation." diff -Nru postgresql-13-13.4/src/bin/pg_rewind/t/RewindTest.pm postgresql-13-13.7/src/bin/pg_rewind/t/RewindTest.pm --- postgresql-13-13.4/src/bin/pg_rewind/t/RewindTest.pm 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_rewind/t/RewindTest.pm 2022-05-09 21:16:30.000000000 +0000 @@ -112,7 +112,6 @@ } else { - $stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys'; is($stdout, $expected_stdout, "$test_name: query result matches"); } return; diff -Nru postgresql-13-13.4/src/bin/pg_test_fsync/po/ru.po postgresql-13-13.7/src/bin/pg_test_fsync/po/ru.po --- postgresql-13-13.4/src/bin/pg_test_fsync/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_test_fsync/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,7 +1,7 @@ # Russian message translation file for pg_test_fsync # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Alexander Lakhin , 2017. +# Alexander Lakhin , 2017, 2021. msgid "" msgstr "" "Project-Id-Version: pg_test_fsync (PostgreSQL) 10\n" diff -Nru postgresql-13-13.4/src/bin/pg_test_fsync/po/sv.po postgresql-13-13.7/src/bin/pg_test_fsync/po/sv.po --- postgresql-13-13.4/src/bin/pg_test_fsync/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_test_fsync/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for pg_test_fsync # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:17+0000\n" -"PO-Revision-Date: 2020-04-11 08:15+0200\n" +"POT-Creation-Date: 2022-02-18 04:32+0000\n" +"PO-Revision-Date: 2021-11-07 07:19+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" diff -Nru postgresql-13-13.4/src/bin/pg_test_timing/po/ru.po postgresql-13-13.7/src/bin/pg_test_timing/po/ru.po --- postgresql-13-13.4/src/bin/pg_test_timing/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_test_timing/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,7 +1,7 @@ # Russian message translation file for pg_test_timing # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Alexander Lakhin , 2017. +# Alexander Lakhin , 2017, 2021. msgid "" msgstr "" "Project-Id-Version: pg_test_timing (PostgreSQL) 10\n" diff -Nru postgresql-13-13.4/src/bin/pg_test_timing/po/sv.po postgresql-13-13.7/src/bin/pg_test_timing/po/sv.po --- postgresql-13-13.4/src/bin/pg_test_timing/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_test_timing/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for pg_test_timing # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:15+0000\n" -"PO-Revision-Date: 2020-04-11 08:17+0200\n" +"POT-Creation-Date: 2022-02-18 04:30+0000\n" +"PO-Revision-Date: 2021-11-06 21:59+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" diff -Nru postgresql-13-13.4/src/bin/pg_upgrade/file.c postgresql-13-13.7/src/bin/pg_upgrade/file.c --- postgresql-13-13.4/src/bin/pg_upgrade/file.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_upgrade/file.c 2022-05-09 21:16:30.000000000 +0000 @@ -19,7 +19,7 @@ #include #endif -#include "access/visibilitymap.h" +#include "access/visibilitymapdefs.h" #include "common/file_perm.h" #include "pg_upgrade.h" #include "storage/bufpage.h" diff -Nru postgresql-13-13.4/src/bin/pg_upgrade/po/fr.po postgresql-13-13.7/src/bin/pg_upgrade/po/fr.po --- postgresql-13-13.4/src/bin/pg_upgrade/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_upgrade/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: pg_upgrade (PostgreSQL) 12\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-04-30 20:29+0000\n" -"PO-Revision-Date: 2021-05-02 17:26+0200\n" +"POT-Creation-Date: 2021-08-25 13:58+0000\n" +"PO-Revision-Date: 2021-08-27 17:36+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.0\n" #: check.c:68 #, c-format @@ -55,7 +55,7 @@ "Si pg_upgrade échoue après cela, vous devez ré-exécuter initdb\n" "sur la nouvelle instance avant de continuer.\n" -#: check.c:235 +#: check.c:237 #, c-format msgid "" "Optimizer statistics are not transferred by pg_upgrade so,\n" @@ -68,7 +68,7 @@ " %s\n" "\n" -#: check.c:241 +#: check.c:243 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" @@ -78,7 +78,7 @@ "instance :\n" " %s\n" -#: check.c:246 +#: check.c:248 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" @@ -92,93 +92,93 @@ "de l'ancienne instance. Le contenu de l'ancienne instance doit être supprimé\n" "manuellement.\n" -#: check.c:256 +#: check.c:258 #, c-format msgid "Checking cluster versions" msgstr "Vérification des versions des instances" -#: check.c:268 +#: check.c:270 #, c-format msgid "This utility can only upgrade from PostgreSQL version 8.4 and later.\n" msgstr "Cet outil peut seulement mettre à jour les versions 8.4 et ultérieures de PostgreSQL.\n" -#: check.c:272 +#: check.c:274 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s.\n" msgstr "Cet outil peut seulement mettre à jour vers la version %s de PostgreSQL.\n" -#: check.c:281 +#: check.c:283 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions.\n" msgstr "Cet outil ne peut pas être utilisé pour mettre à jour vers des versions majeures plus anciennes de PostgreSQL.\n" -#: check.c:286 +#: check.c:288 #, c-format msgid "Old cluster data and binary directories are from different major versions.\n" msgstr "Les répertoires des données de l'ancienne instance et des binaires sont de versions majeures différentes.\n" -#: check.c:289 +#: check.c:291 #, c-format msgid "New cluster data and binary directories are from different major versions.\n" msgstr "Les répertoires des données de la nouvelle instance et des binaires sont de versions majeures différentes.\n" -#: check.c:306 +#: check.c:308 #, c-format msgid "When checking a pre-PG 9.1 live old server, you must specify the old server's port number.\n" msgstr "Lors de la vérification d'un serveur antérieur à la 9.1, vous devez spécifier le numéro de port de l'ancien serveur.\n" -#: check.c:310 +#: check.c:312 #, c-format msgid "When checking a live server, the old and new port numbers must be different.\n" msgstr "Lors de la vérification d'un serveur en production, l'ancien numéro de port doit être différent du nouveau.\n" -#: check.c:325 +#: check.c:327 #, c-format msgid "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "les encodages de la base de données « %s » ne correspondent pas : ancien « %s », nouveau « %s »\n" -#: check.c:330 +#: check.c:332 #, c-format msgid "lc_collate values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "les valeurs de lc_collate de la base de données « %s » ne correspondent pas : ancien « %s », nouveau « %s »\n" -#: check.c:333 +#: check.c:335 #, c-format msgid "lc_ctype values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "les valeurs de lc_ctype de la base de données « %s » ne correspondent pas : ancien « %s », nouveau « %s »\n" -#: check.c:406 +#: check.c:408 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"\n" msgstr "La nouvelle instance « %s » n'est pas vide : relation « %s.%s » trouvée\n" -#: check.c:455 +#: check.c:457 #, c-format msgid "Creating script to analyze new cluster" msgstr "Création d'un script pour analyser la nouvelle instance" -#: check.c:469 check.c:628 check.c:892 check.c:971 file.c:336 function.c:240 -#: option.c:497 version.c:54 version.c:204 version.c:374 +#: check.c:471 check.c:630 check.c:894 check.c:973 file.c:336 function.c:240 +#: option.c:497 version.c:54 version.c:204 version.c:374 version.c:509 #, c-format msgid "could not open file \"%s\": %s\n" msgstr "n'a pas pu ouvrir le fichier « %s » : %s\n" -#: check.c:517 check.c:684 +#: check.c:519 check.c:686 #, c-format msgid "could not add execute permission to file \"%s\": %s\n" msgstr "n'a pas pu ajouter les droits d'exécution pour le fichier « %s » : %s\n" -#: check.c:547 +#: check.c:549 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Vérification des répertoires de tablespace de la nouvelle instance" -#: check.c:558 +#: check.c:560 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"\n" msgstr "le répertoire du tablespace de la nouvelle instance existe déjà : « %s »\n" -#: check.c:591 +#: check.c:593 #, c-format msgid "" "\n" @@ -187,7 +187,7 @@ "\n" "AVERTISSEMENT : le nouveau répertoire de données ne doit pas être à l'intérieur de l'ancien répertoire de données, %s\n" -#: check.c:615 +#: check.c:617 #, c-format msgid "" "\n" @@ -196,73 +196,73 @@ "\n" "AVERTISSEMENT : les emplacements de tablespaces utilisateurs ne doivent pas être à l'intérieur du répertoire de données, %s\n" -#: check.c:625 +#: check.c:627 #, c-format msgid "Creating script to delete old cluster" msgstr "Création du script pour supprimer l'ancienne instance" -#: check.c:704 +#: check.c:706 #, c-format msgid "Checking database user is the install user" msgstr "Vérification que l'utilisateur de la base de données est l'utilisateur d'installation" -#: check.c:720 +#: check.c:722 #, c-format msgid "database user \"%s\" is not the install user\n" msgstr "l'utilisateur de la base de données « %s » n'est pas l'utilisateur d'installation\n" -#: check.c:731 +#: check.c:733 #, c-format msgid "could not determine the number of users\n" msgstr "n'a pas pu déterminer le nombre d'utilisateurs\n" -#: check.c:739 +#: check.c:741 #, c-format msgid "Only the install user can be defined in the new cluster.\n" msgstr "Seul l'utilisateur d'installation peut être défini dans la nouvelle instance.\n" -#: check.c:759 +#: check.c:761 #, c-format msgid "Checking database connection settings" msgstr "Vérification des paramètres de connexion de la base de données" -#: check.c:781 +#: check.c:783 #, c-format msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false\n" msgstr "template0 ne doit pas autoriser les connexions, ie pg_database.datallowconn doit valoir false\n" -#: check.c:791 +#: check.c:793 #, c-format msgid "All non-template0 databases must allow connections, i.e. their pg_database.datallowconn must be true\n" msgstr "Toutes les bases de données, autre que template0, doivent autoriser les connexions, ie pg_database.datallowconn doit valoir true\n" -#: check.c:816 +#: check.c:818 #, c-format msgid "Checking for prepared transactions" msgstr "Vérification des transactions préparées" -#: check.c:825 +#: check.c:827 #, c-format msgid "The source cluster contains prepared transactions\n" msgstr "L'instance source contient des transactions préparées\n" -#: check.c:827 +#: check.c:829 #, c-format msgid "The target cluster contains prepared transactions\n" msgstr "L'instance cible contient des transactions préparées\n" -#: check.c:853 +#: check.c:855 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Vérification de contrib/isn avec une différence sur le passage des bigint" -#: check.c:914 check.c:993 check.c:1050 check.c:1109 check.c:1138 +#: check.c:916 check.c:995 check.c:1052 check.c:1111 check.c:1140 #: function.c:262 version.c:278 version.c:315 version.c:458 #, c-format msgid "fatal\n" msgstr "fatal\n" -#: check.c:915 +#: check.c:917 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -285,12 +285,12 @@ " %s\n" "\n" -#: check.c:939 +#: check.c:941 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Vérification des tables WITH OIDS" -#: check.c:994 +#: check.c:996 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" @@ -306,12 +306,12 @@ "Une liste des tables ayant ce problème se trouve dans le fichier :\n" " %s\n" -#: check.c:1022 +#: check.c:1024 #, c-format msgid "Checking for system-defined composite types in user tables" msgstr "Vérification des types composites systèmes dans les tables utilisateurs" -#: check.c:1051 +#: check.c:1053 #, c-format msgid "" "Your installation contains system-defined composite type(s) in user tables.\n" @@ -330,12 +330,12 @@ " %s\n" "\n" -#: check.c:1079 +#: check.c:1081 #, c-format msgid "Checking for reg* data types in user tables" msgstr "Vérification des types de données reg* dans les tables utilisateurs" -#: check.c:1110 +#: check.c:1112 #, c-format msgid "" "Your installation contains one of the reg* data types in user tables.\n" @@ -355,12 +355,12 @@ " %s\n" "\n" -#: check.c:1132 +#: check.c:1134 #, c-format msgid "Checking for incompatible \"jsonb\" data type" msgstr "Vérification des types de données « jsonb » incompatibles" -#: check.c:1139 +#: check.c:1141 #, c-format msgid "" "Your installation contains the \"jsonb\" data type in user tables.\n" @@ -379,206 +379,211 @@ " %s\n" "\n" -#: check.c:1161 +#: check.c:1163 #, c-format msgid "Checking for roles starting with \"pg_\"" msgstr "Vérification des rôles commençant avec « pg_ »" -#: check.c:1171 +#: check.c:1173 #, c-format msgid "The source cluster contains roles starting with \"pg_\"\n" msgstr "L'instance source contient des rôles commençant avec « pg_ »\n" -#: check.c:1173 +#: check.c:1175 #, c-format msgid "The target cluster contains roles starting with \"pg_\"\n" msgstr "L'instance cible contient des rôles commençant avec « pg_ »\n" -#: check.c:1199 +#: check.c:1201 #, c-format msgid "failed to get the current locale\n" msgstr "a échoué pour obtenir la locale courante\n" -#: check.c:1208 +#: check.c:1210 #, c-format msgid "failed to get system locale name for \"%s\"\n" msgstr "a échoué pour obtenir le nom de la locale système « %s »\n" -#: check.c:1214 +#: check.c:1216 #, c-format msgid "failed to restore old locale \"%s\"\n" msgstr "a échoué pour restaurer l'ancienne locale « %s »\n" -#: controldata.c:127 controldata.c:195 +#: controldata.c:128 controldata.c:196 #, c-format msgid "could not get control data using %s: %s\n" msgstr "" "n'a pas pu obtenir les données de contrôle en utilisant %s : %s\n" "\n" -#: controldata.c:138 +#: controldata.c:139 #, c-format msgid "%d: database cluster state problem\n" msgstr "%d : problème sur l'état de l'instance de la base de données\n" -#: controldata.c:156 +#: controldata.c:157 #, c-format msgid "The source cluster was shut down while in recovery mode. To upgrade, use \"rsync\" as documented or shut it down as a primary.\n" msgstr "L'instance source a été arrêté alors qu'elle était en mode restauration. Pour mettre à jour, utilisez « rsync » comme documenté ou arrêtez-la en tant que serveur primaire.\n" -#: controldata.c:158 +#: controldata.c:159 #, c-format msgid "The target cluster was shut down while in recovery mode. To upgrade, use \"rsync\" as documented or shut it down as a primary.\n" msgstr "L'instance cible a été arrêté alors qu'elle était en mode restauration. Pour mettre à jour, utilisez « rsync » comme documenté ou arrêtez-la en tant que serveur primaire.\n" -#: controldata.c:163 +#: controldata.c:164 #, c-format msgid "The source cluster was not shut down cleanly.\n" msgstr "L'instance source n'a pas été arrêtée proprement.\n" -#: controldata.c:165 +#: controldata.c:166 #, c-format msgid "The target cluster was not shut down cleanly.\n" msgstr "L'instance cible n'a pas été arrêtée proprement.\n" -#: controldata.c:176 +#: controldata.c:177 #, c-format msgid "The source cluster lacks cluster state information:\n" msgstr "Il manque certaines informations d'état requises sur l'instance source :\n" -#: controldata.c:178 +#: controldata.c:179 #, c-format msgid "The target cluster lacks cluster state information:\n" msgstr "Il manque certaines informations d'état requises sur l'instance cible :\n" -#: controldata.c:208 dump.c:49 pg_upgrade.c:339 pg_upgrade.c:375 +#: controldata.c:209 dump.c:49 pg_upgrade.c:339 pg_upgrade.c:375 #: relfilenode.c:243 util.c:79 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:215 +#: controldata.c:216 #, c-format msgid "%d: pg_resetwal problem\n" msgstr "%d : problème avec pg_resetwal\n" -#: controldata.c:225 controldata.c:235 controldata.c:246 controldata.c:257 -#: controldata.c:268 controldata.c:287 controldata.c:298 controldata.c:309 -#: controldata.c:320 controldata.c:331 controldata.c:342 controldata.c:345 -#: controldata.c:349 controldata.c:359 controldata.c:371 controldata.c:382 -#: controldata.c:393 controldata.c:404 controldata.c:415 controldata.c:426 -#: controldata.c:437 controldata.c:448 controldata.c:459 controldata.c:470 -#: controldata.c:481 +#: controldata.c:226 controldata.c:236 controldata.c:247 controldata.c:258 +#: controldata.c:269 controldata.c:288 controldata.c:299 controldata.c:310 +#: controldata.c:321 controldata.c:332 controldata.c:343 controldata.c:354 +#: controldata.c:357 controldata.c:361 controldata.c:371 controldata.c:383 +#: controldata.c:394 controldata.c:405 controldata.c:416 controldata.c:427 +#: controldata.c:438 controldata.c:449 controldata.c:460 controldata.c:471 +#: controldata.c:482 controldata.c:493 #, c-format msgid "%d: controldata retrieval problem\n" msgstr "%d : problème de récupération des controldata\n" -#: controldata.c:546 +#: controldata.c:558 #, c-format msgid "The source cluster lacks some required control information:\n" msgstr "Il manque certaines informations de contrôle requises sur l'instance source :\n" -#: controldata.c:549 +#: controldata.c:561 #, c-format msgid "The target cluster lacks some required control information:\n" msgstr "Il manque certaines informations de contrôle requises sur l'instance cible :\n" -#: controldata.c:552 +#: controldata.c:564 #, c-format msgid " checkpoint next XID\n" msgstr " XID du prochain checkpoint\n" -#: controldata.c:555 +#: controldata.c:567 #, c-format msgid " latest checkpoint next OID\n" msgstr " prochain OID du dernier checkpoint\n" -#: controldata.c:558 +#: controldata.c:570 #, c-format msgid " latest checkpoint next MultiXactId\n" msgstr " prochain MultiXactId du dernier checkpoint\n" -#: controldata.c:562 +#: controldata.c:574 #, c-format msgid " latest checkpoint oldest MultiXactId\n" msgstr " plus ancien MultiXactId du dernier checkpoint\n" -#: controldata.c:565 +#: controldata.c:577 +#, c-format +msgid " latest checkpoint oldestXID\n" +msgstr " oldestXID du dernier checkpoint\n" + +#: controldata.c:580 #, c-format msgid " latest checkpoint next MultiXactOffset\n" msgstr " prochain MultiXactOffset du dernier checkpoint\n" -#: controldata.c:568 +#: controldata.c:583 #, c-format msgid " first WAL segment after reset\n" msgstr " premier segment WAL après réinitialisation\n" -#: controldata.c:571 +#: controldata.c:586 #, c-format msgid " float8 argument passing method\n" msgstr " méthode de passage de arguments float8\n" -#: controldata.c:574 +#: controldata.c:589 #, c-format msgid " maximum alignment\n" msgstr " alignement maximale\n" -#: controldata.c:577 +#: controldata.c:592 #, c-format msgid " block size\n" msgstr " taille de bloc\n" -#: controldata.c:580 +#: controldata.c:595 #, c-format msgid " large relation segment size\n" msgstr " taille de segment des relations\n" -#: controldata.c:583 +#: controldata.c:598 #, c-format msgid " WAL block size\n" msgstr " taille de bloc d'un WAL\n" -#: controldata.c:586 +#: controldata.c:601 #, c-format msgid " WAL segment size\n" msgstr " taille d'un segment WAL\n" -#: controldata.c:589 +#: controldata.c:604 #, c-format msgid " maximum identifier length\n" msgstr " longueur maximum d'un identifiant\n" -#: controldata.c:592 +#: controldata.c:607 #, c-format msgid " maximum number of indexed columns\n" msgstr " nombre maximum de colonnes indexées\n" -#: controldata.c:595 +#: controldata.c:610 #, c-format msgid " maximum TOAST chunk size\n" msgstr " taille maximale d'un morceau de TOAST\n" -#: controldata.c:599 +#: controldata.c:614 #, c-format msgid " large-object chunk size\n" msgstr " taille d'un morceau Large-Object\n" -#: controldata.c:602 +#: controldata.c:617 #, c-format msgid " dates/times are integers?\n" msgstr " les dates/heures sont-ils des integers?\n" -#: controldata.c:606 +#: controldata.c:621 #, c-format msgid " data checksum version\n" msgstr " version des sommes de contrôle des données\n" -#: controldata.c:608 +#: controldata.c:623 #, c-format msgid "Cannot continue without required control information, terminating\n" msgstr "Ne peut pas continuer sans les informations de contrôle requises, en arrêt\n" -#: controldata.c:623 +#: controldata.c:638 #, c-format msgid "" "old and new pg_controldata alignments are invalid or do not match\n" @@ -587,77 +592,77 @@ "les alignements sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" "Il est probable qu'une installation soit en 32 bits et l'autre en 64 bits.\n" -#: controldata.c:627 +#: controldata.c:642 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match\n" msgstr "les tailles de bloc sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:630 +#: controldata.c:645 #, c-format msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match\n" msgstr "les tailles maximales de segment de relation sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:633 +#: controldata.c:648 #, c-format msgid "old and new pg_controldata WAL block sizes are invalid or do not match\n" msgstr "les tailles de bloc des WAL sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:636 +#: controldata.c:651 #, c-format msgid "old and new pg_controldata WAL segment sizes are invalid or do not match\n" msgstr "les tailles de segment de WAL sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:639 +#: controldata.c:654 #, c-format msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match\n" msgstr "les longueurs maximales des identifiants sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:642 +#: controldata.c:657 #, c-format msgid "old and new pg_controldata maximum indexed columns are invalid or do not match\n" msgstr "les nombres maximums de colonnes indexées sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:645 +#: controldata.c:660 #, c-format msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match\n" msgstr "les tailles maximales de morceaux des TOAST sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:650 +#: controldata.c:665 #, c-format msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match\n" msgstr "les tailles des morceaux de Large Objects sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:653 +#: controldata.c:668 #, c-format msgid "old and new pg_controldata date/time storage types do not match\n" msgstr "les types de stockage date/heure ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:666 +#: controldata.c:681 #, c-format msgid "old cluster does not use data checksums but the new one does\n" msgstr "l'ancienne instance n'utilise pas les sommes de contrôle alors que la nouvelle les utilise\n" -#: controldata.c:669 +#: controldata.c:684 #, c-format msgid "old cluster uses data checksums but the new one does not\n" msgstr "l'ancienne instance utilise les sommes de contrôle alors que la nouvelle ne les utilise pas\n" -#: controldata.c:671 +#: controldata.c:686 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match\n" msgstr "les versions des sommes de contrôle ne correspondent pas entre l'ancien et le nouveau pg_controldata.\n" -#: controldata.c:682 +#: controldata.c:697 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "Ajout du suffixe « .old » à l'ancien global/pg_control" -#: controldata.c:687 +#: controldata.c:702 #, c-format msgid "Unable to rename %s to %s.\n" msgstr "Incapable de renommer %s à %s.\n" -#: controldata.c:690 +#: controldata.c:705 #, c-format msgid "" "\n" @@ -706,7 +711,7 @@ #: exec.c:149 option.c:217 #, c-format msgid "could not open log file \"%s\": %m\n" -msgstr "n'a pas pu ouvrir le fichier de traces « %s » : %m\n" +msgstr "n'a pas pu ouvrir le journal applicatif « %s » : %m\n" #: exec.c:178 #, c-format @@ -1091,7 +1096,9 @@ msgid "" "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n" "\n" -msgstr "pg_upgrade met à jour une instance PostgreSQL vers une version majeure différente.\n" +msgstr "" +"pg_upgrade met à jour une instance PostgreSQL vers une version majeure\n" +"différente.\n" #: option.c:289 #, c-format @@ -1115,7 +1122,9 @@ #: option.c:292 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" -msgstr " -b, --old-bindir=DIRBIN répertoire des exécutables de l'ancienne instance\n" +msgstr "" +" -b, --old-bindir=DIR_BIN répertoire des exécutables de l'ancienne\n" +" instance\n" #: option.c:293 #, c-format @@ -1123,69 +1132,89 @@ " -B, --new-bindir=BINDIR new cluster executable directory (default\n" " same directory as pg_upgrade)\n" msgstr "" -" -B, --new-bindir=DIRBIN répertoire des exécutables de la nouvelle instance (par défaut,\n" -" le même répertoire que pg_upgrade)\n" -"\n" +" -B, --new-bindir=DIR_BIN répertoire des exécutables de la nouvelle\n" +" instance (par défaut le même répertoire que\n" +" pg_upgrade)\n" #: option.c:295 #, c-format msgid " -c, --check check clusters only, don't change any data\n" -msgstr " -c, --check vérifie seulement les instances, pas de modifications\n" +msgstr "" +" -c, --check vérifie seulement les instances, pas de\n" +" modifications\n" #: option.c:296 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" -msgstr " -d, --old-datadir=DIRDONNEES répertoire des données de l'ancienne instance\n" +msgstr " -d, --old-datadir=DIR_DONNÉES répertoire des données de l'ancienne instance\n" #: option.c:297 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" -msgstr " -D, --new-datadir=DIRDONNEES répertoire des données de la nouvelle instance\n" +msgstr " -D, --new-datadir=DIR_DONNÉES répertoire des données de la nouvelle instance\n" #: option.c:298 #, c-format msgid " -j, --jobs=NUM number of simultaneous processes or threads to use\n" -msgstr " -j, --jobs=NUM nombre de processus ou threads simultanés à utiliser\n" +msgstr "" +" -j, --jobs=NOMBRE nombre de processus ou threads simultanés à\n" +" utiliser\n" #: option.c:299 #, c-format msgid " -k, --link link instead of copying files to new cluster\n" -msgstr " -k, --link lie les fichiers au lieu de les copier vers la nouvelle instance\n" +msgstr "" +" -k, --link lie les fichiers au lieu de les copier vers la\n" +" nouvelle instance\n" #: option.c:300 #, c-format msgid " -o, --old-options=OPTIONS old cluster options to pass to the server\n" -msgstr " -o, --old-options=OPTIONS options à passer au serveur de l'ancienne instance\n" +msgstr "" +" -o, --old-options=OPTIONS options à passer au serveur de l'ancienne\n" +" instance\n" #: option.c:301 #, c-format msgid " -O, --new-options=OPTIONS new cluster options to pass to the server\n" -msgstr " -O, --new-options=OPTIONS options à passer au serveur de la nouvelle instance\n" +msgstr "" +" -O, --new-options=OPTIONS options à passer au serveur de la nouvelle\n" +" instance\n" #: option.c:302 #, c-format msgid " -p, --old-port=PORT old cluster port number (default %d)\n" -msgstr " -p, --old-port=PORT numéro de port de l'ancienne instance (par défaut %d)\n" +msgstr "" +" -p, --old-port=PORT numéro de port de l'ancienne instance (par\n" +" défaut %d)\n" #: option.c:303 #, c-format msgid " -P, --new-port=PORT new cluster port number (default %d)\n" -msgstr " -P, --new-port=PORT numéro de port de la nouvelle instance (par défaut %d)\n" +msgstr "" +" -P, --new-port=PORT numéro de port de la nouvelle instance (par\n" +" défaut %d)\n" #: option.c:304 #, c-format msgid " -r, --retain retain SQL and log files after success\n" -msgstr " -r, --retain conserve les fichiers SQL et de traces en cas de succès\n" +msgstr "" +" -r, --retain conserve les fichiers SQL et de traces en cas de\n" +" succès\n" #: option.c:305 #, c-format msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" -msgstr " -s, --socketdir=DIR répertoire de la socket à utiliser (par défaut le répertoire courant)\n" +msgstr "" +" -s, --socketdir=RÉPERTOIRE répertoire de la socket à utiliser (par défaut\n" +" le répertoire courant)\n" #: option.c:306 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" -msgstr " -U, --username=NOM superutilisateur de l'instance (par défaut « %s »)\n" +msgstr "" +" -U, --username=NOM super-utilisateur de l'instance (par défaut\n" +" « %s »)\n" #: option.c:307 #, c-format @@ -1200,7 +1229,9 @@ #: option.c:309 #, c-format msgid " --clone clone instead of copying files to new cluster\n" -msgstr " --clone clone au lieu de copier les fichiers vers la nouvelle instance\n" +msgstr "" +" --clone clone au lieu de copier les fichiers vers la\n" +" nouvelle instance\n" #: option.c:310 #, c-format @@ -1235,10 +1266,10 @@ msgstr "" "\n" "Quand vous exécutez pg_upgrade, vous devez fournir les informations suivantes :\n" -" le répertoire de données pour l'ancienne instance (-d DIRDONNÉES)\n" -" le répertoire de données pour la nouvelle instance (-D DIRDONNÉES)\n" -" le répertoire « bin » pour l'ancienne version (-b DIRBIN)\n" -" le répertoire « bin » pour la nouvelle version (-B DIRBIN)\n" +" le répertoire de données pour l'ancienne instance (-d DIR_DONNÉES)\n" +" le répertoire de données pour la nouvelle instance (-D DIR_DONNÉES)\n" +" le répertoire « bin » pour l'ancienne version (-b DIR_BIN)\n" +" le répertoire « bin » pour la nouvelle version (-B DIR_BIN)\n" #: option.c:322 #, c-format @@ -1295,7 +1326,7 @@ #: option.c:340 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" #: option.c:380 #, c-format @@ -1396,7 +1427,7 @@ #: pg_upgrade.c:220 #, c-format msgid "%s: could not find own program executable\n" -msgstr "%s : n'a pas pu trouver son propre exécutable\n" +msgstr "%s : n'a pas pu trouver l'exécutable du programme\n" #: pg_upgrade.c:246 #, c-format @@ -1451,32 +1482,37 @@ msgid "Copying old %s to new server" msgstr "Copie de l'ancien %s vers le nouveau serveur" -#: pg_upgrade.c:475 +#: pg_upgrade.c:474 +#, c-format +msgid "Setting oldest XID for new cluster" +msgstr "Configuration du plus ancien XID sur la nouvelle instance" + +#: pg_upgrade.c:482 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "Configuration du prochain identifiant de transaction et de l'epoch pour la nouvelle instance" -#: pg_upgrade.c:505 +#: pg_upgrade.c:512 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "Configuration du prochain MultiXactId et décalage pour la nouvelle instance" -#: pg_upgrade.c:529 +#: pg_upgrade.c:536 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "Configuration du plus ancien identifiant multixact sur la nouvelle instance" -#: pg_upgrade.c:549 +#: pg_upgrade.c:556 #, c-format msgid "Resetting WAL archives" msgstr "Réinitialisation des archives WAL" -#: pg_upgrade.c:592 +#: pg_upgrade.c:599 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "Configuration des compteurs frozenxid et minmxid dans la nouvelle instance" -#: pg_upgrade.c:594 +#: pg_upgrade.c:601 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "Configuration du compteur minmxid dans la nouvelle instance" @@ -1808,35 +1844,60 @@ " %s\n" "\n" +#: version.c:483 +#, c-format +msgid "Checking for extension updates" +msgstr "Vérification des mises à jour d'extension" + +#: version.c:535 +#, c-format +msgid "notice" +msgstr "notice" + +#: version.c:536 +#, c-format +msgid "" +"\n" +"Your installation contains extensions that should be updated\n" +"with the ALTER EXTENSION command. The file\n" +" %s\n" +"when executed by psql by the database superuser will update\n" +"these extensions.\n" +"\n" +msgstr "" +"\n" +"Your installation contains extensions that should be updated\n" +"with the ALTER EXTENSION command. The file\n" +" %s\n" +"when executed by psql by the database superuser will update\n" +"these extensions.\n" +"\n" + #~ msgid "" -#~ "Optimizer statistics and free space information are not transferred\n" -#~ "by pg_upgrade so, once you start the new server, consider running:\n" -#~ " %s\n" #~ "\n" +#~ "Report bugs to .\n" #~ msgstr "" -#~ "Les statistiques de l'optimiseur et les informations sur l'espace libre\n" -#~ "ne sont pas transférées par pg_upgrade, donc une fois le nouveau\n" -#~ "serveur démarré, pensez à exécuter :\n" -#~ " %s\n" #~ "\n" +#~ "Rapporter les bogues à .\n" -#~ msgid "cannot write to log file %s\n" -#~ msgstr "ne peut pas écrire dans le fichier de traces %s\n" - -#~ msgid "cannot find current directory\n" -#~ msgstr "ne peut pas trouver le répertoire courant\n" +#~ msgid "could not parse PG_VERSION file from %s\n" +#~ msgstr "n'a pas pu analyser le fichier PG_VERSION à partir de %s\n" -#~ msgid "Cannot open file %s: %m\n" -#~ msgstr "Ne peut pas ouvrir le fichier %s : %m\n" +#~ msgid "------------------------------------------------\n" +#~ msgstr "------------------------------------------------\n" -#~ msgid "Cannot read line %d from %s: %m\n" -#~ msgstr "Ne peut pas lire la ligne %d à partir de %s : %m\n" +#~ msgid "-----------------------------\n" +#~ msgstr "-----------------------------\n" -#~ msgid "----------------\n" -#~ msgstr "----------------\n" +#~ msgid "" +#~ "This utility can only upgrade to PostgreSQL version 9.0 after 2010-01-11\n" +#~ "because of backend API changes made during development.\n" +#~ msgstr "" +#~ "Cet outil peut seulement mettre à jour à partir de la version 9.0 de PostgreSQL (après le 11 janvier 2010)\n" +#~ "à cause de changements dans l'API du moteur fait lors du développement.\n" -#~ msgid "------------------\n" -#~ msgstr "------------------\n" +#~ msgid "%s is not a directory\n" +#~ msgstr "%s n'est pas un répertoire\n" #~ msgid "" #~ "could not load library \"%s\":\n" @@ -1845,28 +1906,32 @@ #~ "n'a pas pu charger la biblothèque « %s »:\n" #~ "%s\n" -#~ msgid "%s is not a directory\n" -#~ msgstr "%s n'est pas un répertoire\n" +#~ msgid "------------------\n" +#~ msgstr "------------------\n" -#~ msgid "" -#~ "This utility can only upgrade to PostgreSQL version 9.0 after 2010-01-11\n" -#~ "because of backend API changes made during development.\n" -#~ msgstr "" -#~ "Cet outil peut seulement mettre à jour à partir de la version 9.0 de PostgreSQL (après le 11 janvier 2010)\n" -#~ "à cause de changements dans l'API du moteur fait lors du développement.\n" +#~ msgid "----------------\n" +#~ msgstr "----------------\n" -#~ msgid "-----------------------------\n" -#~ msgstr "-----------------------------\n" +#~ msgid "Cannot read line %d from %s: %m\n" +#~ msgstr "Ne peut pas lire la ligne %d à partir de %s : %m\n" -#~ msgid "------------------------------------------------\n" -#~ msgstr "------------------------------------------------\n" +#~ msgid "Cannot open file %s: %m\n" +#~ msgstr "Ne peut pas ouvrir le fichier %s : %m\n" -#~ msgid "could not parse PG_VERSION file from %s\n" -#~ msgstr "n'a pas pu analyser le fichier PG_VERSION à partir de %s\n" +#~ msgid "cannot find current directory\n" +#~ msgstr "ne peut pas trouver le répertoire courant\n" + +#~ msgid "cannot write to log file %s\n" +#~ msgstr "ne peut pas écrire dans le fichier de traces %s\n" #~ msgid "" +#~ "Optimizer statistics and free space information are not transferred\n" +#~ "by pg_upgrade so, once you start the new server, consider running:\n" +#~ " %s\n" #~ "\n" -#~ "Report bugs to .\n" #~ msgstr "" +#~ "Les statistiques de l'optimiseur et les informations sur l'espace libre\n" +#~ "ne sont pas transférées par pg_upgrade, donc une fois le nouveau\n" +#~ "serveur démarré, pensez à exécuter :\n" +#~ " %s\n" #~ "\n" -#~ "Rapporter les bogues à .\n" diff -Nru postgresql-13-13.4/src/bin/pg_upgrade/po/ru.po postgresql-13-13.7/src/bin/pg_upgrade/po/ru.po --- postgresql-13-13.4/src/bin/pg_upgrade/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_upgrade/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,13 +1,14 @@ # Russian message translation file for pg_upgrade # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Alexander Lakhin , 2017, 2018, 2019, 2020. +# Alexander Lakhin , 2017, 2018, 2019, 2020, 2021, 2022. +# Maxim Yablokov , 2021. msgid "" msgstr "" "Project-Id-Version: pg_upgrade (PostgreSQL) 10\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-11-09 07:34+0300\n" -"PO-Revision-Date: 2020-11-09 08:34+0300\n" +"POT-Creation-Date: 2021-08-14 06:30+0300\n" +"PO-Revision-Date: 2022-01-19 16:26+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -17,7 +18,7 @@ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: check.c:67 +#: check.c:68 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" @@ -26,7 +27,7 @@ "Проверка целостности на старом работающем сервере\n" "-------------------------------------------------\n" -#: check.c:73 +#: check.c:74 #, c-format msgid "" "Performing Consistency Checks\n" @@ -35,7 +36,7 @@ "Проведение проверок целостности\n" "-------------------------------\n" -#: check.c:193 +#: check.c:195 #, c-format msgid "" "\n" @@ -44,7 +45,7 @@ "\n" "*Кластеры совместимы*\n" -#: check.c:199 +#: check.c:201 #, c-format msgid "" "\n" @@ -56,7 +57,7 @@ "initdb\n" "для нового кластера, чтобы продолжить.\n" -#: check.c:233 +#: check.c:237 #, c-format msgid "" "Optimizer statistics are not transferred by pg_upgrade so,\n" @@ -69,7 +70,7 @@ " %s\n" "\n" -#: check.c:239 +#: check.c:243 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" @@ -78,7 +79,7 @@ "При запуске этого скрипта будут удалены файлы данных старого кластера:\n" " %s\n" -#: check.c:244 +#: check.c:248 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" @@ -91,24 +92,24 @@ "пространства или каталог данных нового кластера.\n" "Содержимое старого кластера нужно будет удалить вручную.\n" -#: check.c:254 +#: check.c:258 #, c-format msgid "Checking cluster versions" msgstr "Проверка версий кластеров" -#: check.c:266 +#: check.c:270 #, c-format msgid "This utility can only upgrade from PostgreSQL version 8.4 and later.\n" msgstr "" "Эта утилита может производить обновление только с версии PostgreSQL 8.4 и " "новее.\n" -#: check.c:270 +#: check.c:274 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s.\n" msgstr "Эта утилита может только повышать версию PostgreSQL до %s.\n" -#: check.c:279 +#: check.c:283 #, c-format msgid "" "This utility cannot be used to downgrade to older major PostgreSQL " @@ -117,7 +118,7 @@ "Эта утилита не может понижать версию до более старой основной версии " "PostgreSQL.\n" -#: check.c:284 +#: check.c:288 #, c-format msgid "" "Old cluster data and binary directories are from different major versions.\n" @@ -125,7 +126,7 @@ "Каталоги данных и исполняемых файлов старого кластера относятся к разным " "основным версиям.\n" -#: check.c:287 +#: check.c:291 #, c-format msgid "" "New cluster data and binary directories are from different major versions.\n" @@ -133,7 +134,7 @@ "Каталоги данных и исполняемых файлов нового кластера относятся к разным " "основным версиям.\n" -#: check.c:304 +#: check.c:308 #, c-format msgid "" "When checking a pre-PG 9.1 live old server, you must specify the old " @@ -142,7 +143,7 @@ "Для проверки старого работающего сервера версии до 9.1 необходимо указать " "номер порта этого сервера.\n" -#: check.c:308 +#: check.c:312 #, c-format msgid "" "When checking a live server, the old and new port numbers must be " @@ -151,14 +152,14 @@ "Для проверки работающего сервера новый номер порта должен отличаться от " "старого.\n" -#: check.c:323 +#: check.c:327 #, c-format msgid "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "" "кодировки в базе данных \"%s\" различаются: старая - \"%s\", новая - \"%s" "\"\n" -#: check.c:328 +#: check.c:332 #, c-format msgid "" "lc_collate values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" @@ -166,7 +167,7 @@ "значения lc_collate в базе данных \"%s\" различаются: старое - \"%s\", " "новое - \"%s\"\n" -#: check.c:331 +#: check.c:335 #, c-format msgid "" "lc_ctype values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" @@ -174,41 +175,40 @@ "значения lc_ctype в базе данных \"%s\" различаются: старое - \"%s\", новое " "- \"%s\"\n" -#: check.c:404 +#: check.c:408 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"\n" msgstr "" "Новая база данных кластера \"%s\" не пустая: найдено отношение \"%s.%s\"\n" -#: check.c:453 +#: check.c:457 #, c-format msgid "Creating script to analyze new cluster" msgstr "Создание скрипта для анализа нового кластера" -#: check.c:467 check.c:626 check.c:890 check.c:969 check.c:1079 check.c:1170 -#: file.c:336 function.c:240 option.c:497 version.c:54 version.c:199 -#: version.c:341 +#: check.c:471 check.c:630 check.c:894 check.c:973 file.c:336 function.c:240 +#: option.c:497 version.c:54 version.c:204 version.c:374 version.c:509 #, c-format msgid "could not open file \"%s\": %s\n" msgstr "не удалось открыть файл \"%s\": %s\n" -#: check.c:515 check.c:682 +#: check.c:519 check.c:686 #, c-format msgid "could not add execute permission to file \"%s\": %s\n" msgstr "не удалось добавить право выполнения для файла \"%s\": %s\n" -#: check.c:545 +#: check.c:549 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Проверка каталогов табличных пространств в новом кластере" -#: check.c:556 +#: check.c:560 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"\n" msgstr "" "каталог табличного пространства в новом кластере уже существует: \"%s\"\n" -#: check.c:589 +#: check.c:593 #, c-format msgid "" "\n" @@ -219,7 +219,7 @@ "ПРЕДУПРЕЖДЕНИЕ: новый каталог данных не должен располагаться внутри старого " "каталога данных, то есть, в %s\n" -#: check.c:613 +#: check.c:617 #, c-format msgid "" "\n" @@ -230,37 +230,37 @@ "ПРЕДУПРЕЖДЕНИЕ: пользовательские табличные пространства не должны " "располагаться внутри каталога данных, то есть, в %s\n" -#: check.c:623 +#: check.c:627 #, c-format msgid "Creating script to delete old cluster" msgstr "Создание скрипта для удаления старого кластера" -#: check.c:702 +#: check.c:706 #, c-format msgid "Checking database user is the install user" msgstr "Проверка, является ли пользователь БД стартовым пользователем" -#: check.c:718 +#: check.c:722 #, c-format msgid "database user \"%s\" is not the install user\n" msgstr "пользователь БД \"%s\" не является стартовым пользователем\n" -#: check.c:729 +#: check.c:733 #, c-format msgid "could not determine the number of users\n" msgstr "не удалось определить количество пользователей\n" -#: check.c:737 +#: check.c:741 #, c-format msgid "Only the install user can be defined in the new cluster.\n" msgstr "В новом кластере может быть определён только стартовый пользователь.\n" -#: check.c:757 +#: check.c:761 #, c-format msgid "Checking database connection settings" msgstr "Проверка параметров подключения к базе данных" -#: check.c:779 +#: check.c:783 #, c-format msgid "" "template0 must not allow connections, i.e. its pg_database.datallowconn must " @@ -269,7 +269,7 @@ "База template0 не должна допускать подключения, то есть её свойство " "pg_database.datallowconn должно быть false\n" -#: check.c:789 +#: check.c:793 #, c-format msgid "" "All non-template0 databases must allow connections, i.e. their pg_database." @@ -278,33 +278,33 @@ "Все базы, кроме template0, должны допускать подключения, то есть их свойство " "pg_database.datallowconn должно быть true\n" -#: check.c:814 +#: check.c:818 #, c-format msgid "Checking for prepared transactions" msgstr "Проверка наличия подготовленных транзакций" -#: check.c:823 +#: check.c:827 #, c-format msgid "The source cluster contains prepared transactions\n" msgstr "Исходный кластер содержит подготовленные транзакции\n" -#: check.c:825 +#: check.c:829 #, c-format msgid "The target cluster contains prepared transactions\n" msgstr "Целевой кластер содержит подготовленные транзакции\n" -#: check.c:851 +#: check.c:855 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Проверка несоответствия при передаче bigint в contrib/isn" -#: check.c:912 check.c:991 check.c:1102 check.c:1193 function.c:262 -#: version.c:245 version.c:282 version.c:425 +#: check.c:916 check.c:995 check.c:1052 check.c:1111 check.c:1140 +#: function.c:262 version.c:278 version.c:315 version.c:458 #, c-format msgid "fatal\n" msgstr "сбой\n" -#: check.c:913 +#: check.c:917 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -328,12 +328,12 @@ " %s\n" "\n" -#: check.c:937 +#: check.c:941 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Проверка таблиц со свойством WITH OIDS" -#: check.c:992 +#: check.c:996 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" @@ -351,12 +351,36 @@ " %s\n" "\n" -#: check.c:1022 +#: check.c:1024 +#, c-format +msgid "Checking for system-defined composite types in user tables" +msgstr "Проверка системных составных типов в пользовательских таблицах" + +#: check.c:1053 +#, c-format +msgid "" +"Your installation contains system-defined composite type(s) in user tables.\n" +"These type OIDs are not stable across PostgreSQL versions,\n" +"so this cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +"A list of the problem columns is in the file:\n" +" %s\n" +"\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы используют системные составные " +"типы.\n" +"OID таких типов могут различаться в разных версиях PostgreSQL, в настоящем\n" +"состоянии обновить кластер невозможно. Вы можете удалить проблемные столбцы\n" +"и перезапустить обновление. Список проблемных столбцов приведён в файле:\n" +" %s\n" +"\n" + +#: check.c:1081 #, c-format msgid "Checking for reg* data types in user tables" msgstr "Проверка типов данных reg* в пользовательских таблицах" -#: check.c:1103 +#: check.c:1112 #, c-format msgid "" "Your installation contains one of the reg* data types in user tables.\n" @@ -376,12 +400,12 @@ " %s\n" "\n" -#: check.c:1128 +#: check.c:1134 #, c-format msgid "Checking for incompatible \"jsonb\" data type" msgstr "Проверка несовместимого типа данных \"jsonb\"" -#: check.c:1194 +#: check.c:1141 #, c-format msgid "" "Your installation contains the \"jsonb\" data type in user tables.\n" @@ -400,47 +424,47 @@ " %s\n" "\n" -#: check.c:1216 +#: check.c:1163 #, c-format msgid "Checking for roles starting with \"pg_\"" msgstr "Проверка ролей с именами, начинающимися с \"pg_\"" -#: check.c:1226 +#: check.c:1173 #, c-format msgid "The source cluster contains roles starting with \"pg_\"\n" msgstr "В исходном кластере есть роли, имена которых начинаются с \"pg_\"\n" -#: check.c:1228 +#: check.c:1175 #, c-format msgid "The target cluster contains roles starting with \"pg_\"\n" msgstr "В целевом кластере есть роли, имена которых начинаются с \"pg_\"\n" -#: check.c:1254 +#: check.c:1201 #, c-format msgid "failed to get the current locale\n" msgstr "не удалось получить текущую локаль\n" -#: check.c:1263 +#: check.c:1210 #, c-format msgid "failed to get system locale name for \"%s\"\n" msgstr "не удалось получить системное имя локали для \"%s\"\n" -#: check.c:1269 +#: check.c:1216 #, c-format msgid "failed to restore old locale \"%s\"\n" msgstr "не удалось восстановить старую локаль \"%s\"\n" -#: controldata.c:127 controldata.c:195 +#: controldata.c:128 controldata.c:196 #, c-format msgid "could not get control data using %s: %s\n" msgstr "не удалось получить управляющие данные, выполнив %s: %s\n" -#: controldata.c:138 +#: controldata.c:139 #, c-format msgid "%d: database cluster state problem\n" msgstr "%d: недопустимое состояние кластера баз данных\n" -#: controldata.c:156 +#: controldata.c:157 #, c-format msgid "" "The source cluster was shut down while in recovery mode. To upgrade, use " @@ -450,7 +474,7 @@ "обновление, используйте документированный способ с rsync или отключите его в " "режиме главного сервера.\n" -#: controldata.c:158 +#: controldata.c:159 #, c-format msgid "" "The target cluster was shut down while in recovery mode. To upgrade, use " @@ -460,160 +484,166 @@ "обновление, используйте документированный способ с rsync или отключите его в " "режиме главного сервера.\n" -#: controldata.c:163 +#: controldata.c:164 #, c-format msgid "The source cluster was not shut down cleanly.\n" msgstr "Исходный кластер не был отключён штатным образом.\n" -#: controldata.c:165 +#: controldata.c:166 #, c-format msgid "The target cluster was not shut down cleanly.\n" msgstr "Целевой кластер не был отключён штатным образом.\n" -#: controldata.c:176 +#: controldata.c:177 #, c-format msgid "The source cluster lacks cluster state information:\n" msgstr "В исходном кластере не хватает информации о состоянии кластера:\n" -#: controldata.c:178 +#: controldata.c:179 #, c-format msgid "The target cluster lacks cluster state information:\n" msgstr "В целевом кластере не хватает информации о состоянии кластера:\n" -#: controldata.c:208 dump.c:49 pg_upgrade.c:339 pg_upgrade.c:375 +#: controldata.c:209 dump.c:49 pg_upgrade.c:339 pg_upgrade.c:375 #: relfilenode.c:243 util.c:79 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:215 +#: controldata.c:216 #, c-format msgid "%d: pg_resetwal problem\n" msgstr "%d: проблема с выводом pg_resetwal\n" -#: controldata.c:225 controldata.c:235 controldata.c:246 controldata.c:257 -#: controldata.c:268 controldata.c:287 controldata.c:298 controldata.c:309 -#: controldata.c:320 controldata.c:331 controldata.c:342 controldata.c:345 -#: controldata.c:349 controldata.c:359 controldata.c:371 controldata.c:382 -#: controldata.c:393 controldata.c:404 controldata.c:415 controldata.c:426 -#: controldata.c:437 controldata.c:448 controldata.c:459 controldata.c:470 -#: controldata.c:481 +#: controldata.c:226 controldata.c:236 controldata.c:247 controldata.c:258 +#: controldata.c:269 controldata.c:288 controldata.c:299 controldata.c:310 +#: controldata.c:321 controldata.c:332 controldata.c:343 controldata.c:354 +#: controldata.c:357 controldata.c:361 controldata.c:371 controldata.c:383 +#: controldata.c:394 controldata.c:405 controldata.c:416 controldata.c:427 +#: controldata.c:438 controldata.c:449 controldata.c:460 controldata.c:471 +#: controldata.c:482 controldata.c:493 #, c-format msgid "%d: controldata retrieval problem\n" msgstr "%d: проблема с получением управляющих данных\n" -#: controldata.c:546 +#: controldata.c:558 #, c-format msgid "The source cluster lacks some required control information:\n" msgstr "В исходном кластере не хватает необходимой управляющей информации:\n" -#: controldata.c:549 +#: controldata.c:561 #, c-format msgid "The target cluster lacks some required control information:\n" msgstr "В целевом кластере не хватает необходимой управляющей информации:\n" # skip-rule: capital-letter-first -#: controldata.c:552 +#: controldata.c:564 #, c-format msgid " checkpoint next XID\n" msgstr " следующий XID последней конт. точки\n" # skip-rule: capital-letter-first -#: controldata.c:555 +#: controldata.c:567 #, c-format msgid " latest checkpoint next OID\n" msgstr " следующий OID последней конт. точки\n" # skip-rule: capital-letter-first -#: controldata.c:558 +#: controldata.c:570 #, c-format msgid " latest checkpoint next MultiXactId\n" msgstr " следующий MultiXactId последней конт. точки\n" # skip-rule: capital-letter-first -#: controldata.c:562 +#: controldata.c:574 #, c-format msgid " latest checkpoint oldest MultiXactId\n" msgstr " старейший MultiXactId последней конт. точки\n" # skip-rule: capital-letter-first -#: controldata.c:565 +#: controldata.c:577 +#, c-format +msgid " latest checkpoint oldestXID\n" +msgstr " oldestXID последней конт. точки\n" + +# skip-rule: capital-letter-first +#: controldata.c:580 #, c-format msgid " latest checkpoint next MultiXactOffset\n" msgstr " следующий MultiXactOffset последней конт. точки\n" -#: controldata.c:568 +#: controldata.c:583 #, c-format msgid " first WAL segment after reset\n" msgstr " первый сегмент WAL после сброса\n" -#: controldata.c:571 +#: controldata.c:586 #, c-format msgid " float8 argument passing method\n" msgstr " метод передачи аргумента float8\n" -#: controldata.c:574 +#: controldata.c:589 #, c-format msgid " maximum alignment\n" msgstr " максимальное выравнивание\n" -#: controldata.c:577 +#: controldata.c:592 #, c-format msgid " block size\n" msgstr " размер блока\n" -#: controldata.c:580 +#: controldata.c:595 #, c-format msgid " large relation segment size\n" msgstr " размер сегмента большого отношения\n" -#: controldata.c:583 +#: controldata.c:598 #, c-format msgid " WAL block size\n" msgstr " размер блока WAL\n" -#: controldata.c:586 +#: controldata.c:601 #, c-format msgid " WAL segment size\n" msgstr " размер сегмента WAL\n" -#: controldata.c:589 +#: controldata.c:604 #, c-format msgid " maximum identifier length\n" msgstr " максимальная длина идентификатора\n" -#: controldata.c:592 +#: controldata.c:607 #, c-format msgid " maximum number of indexed columns\n" msgstr " максимальное число столбцов в индексе\n" -#: controldata.c:595 +#: controldata.c:610 #, c-format msgid " maximum TOAST chunk size\n" msgstr " максимальный размер порции TOAST\n" -#: controldata.c:599 +#: controldata.c:614 #, c-format msgid " large-object chunk size\n" msgstr " размер порции большого объекта\n" -#: controldata.c:602 +#: controldata.c:617 #, c-format msgid " dates/times are integers?\n" msgstr " дата/время представлены целыми числами?\n" -#: controldata.c:606 +#: controldata.c:621 #, c-format msgid " data checksum version\n" msgstr " версия контрольных сумм данных\n" -#: controldata.c:608 +#: controldata.c:623 #, c-format msgid "Cannot continue without required control information, terminating\n" msgstr "" "Нет необходимой управляющей информации для продолжения, работа прерывается\n" -#: controldata.c:623 +#: controldata.c:638 #, c-format msgid "" "old and new pg_controldata alignments are invalid or do not match\n" @@ -623,13 +653,13 @@ "Вероятно, один кластер установлен в 32-битной системе, а другой ~ в 64-" "битной\n" -#: controldata.c:627 +#: controldata.c:642 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match\n" msgstr "" "старый и новый размер блоков в pg_controldata различаются или некорректны\n" -#: controldata.c:630 +#: controldata.c:645 #, c-format msgid "" "old and new pg_controldata maximum relation segment sizes are invalid or do " @@ -638,7 +668,7 @@ "старый и новый максимальный размер сегментов отношений в pg_controldata " "различаются или некорректны\n" -#: controldata.c:633 +#: controldata.c:648 #, c-format msgid "" "old and new pg_controldata WAL block sizes are invalid or do not match\n" @@ -646,7 +676,7 @@ "старый и новый размер блоков WAL в pg_controldata различаются или " "некорректны\n" -#: controldata.c:636 +#: controldata.c:651 #, c-format msgid "" "old and new pg_controldata WAL segment sizes are invalid or do not match\n" @@ -654,7 +684,7 @@ "старый и новый размер сегментов WAL в pg_controldata различаются или " "некорректны\n" -#: controldata.c:639 +#: controldata.c:654 #, c-format msgid "" "old and new pg_controldata maximum identifier lengths are invalid or do not " @@ -663,7 +693,7 @@ "старая и новая максимальная длина идентификаторов в pg_controldata " "различаются или некорректны\n" -#: controldata.c:642 +#: controldata.c:657 #, c-format msgid "" "old and new pg_controldata maximum indexed columns are invalid or do not " @@ -672,7 +702,7 @@ "старый и новый максимум числа столбцов, составляющих индексы, в " "pg_controldata различаются или некорректны\n" -#: controldata.c:645 +#: controldata.c:660 #, c-format msgid "" "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not " @@ -681,7 +711,7 @@ "старый и новый максимальный размер порции TOAST в pg_controldata различаются " "или некорректны\n" -#: controldata.c:650 +#: controldata.c:665 #, c-format msgid "" "old and new pg_controldata large-object chunk sizes are invalid or do not " @@ -689,44 +719,44 @@ msgstr "" "старый и новый размер порции большого объекта различаются или некорректны\n" -#: controldata.c:653 +#: controldata.c:668 #, c-format msgid "old and new pg_controldata date/time storage types do not match\n" msgstr "" "старый и новый тип хранения даты/времени в pg_controldata различаются или " "некорректны\n" -#: controldata.c:666 +#: controldata.c:681 #, c-format msgid "old cluster does not use data checksums but the new one does\n" msgstr "" "в старом кластере не применялись контрольные суммы данных, но в новом они " "есть\n" -#: controldata.c:669 +#: controldata.c:684 #, c-format msgid "old cluster uses data checksums but the new one does not\n" msgstr "" "в старом кластере применялись контрольные суммы данных, но в новом их нет\n" -#: controldata.c:671 +#: controldata.c:686 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match\n" msgstr "" "старая и новая версия контрольных сумм кластера в pg_controldata " "различаются\n" -#: controldata.c:682 +#: controldata.c:697 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "Добавление расширения \".old\" к старому файлу global/pg_control" -#: controldata.c:687 +#: controldata.c:702 #, c-format msgid "Unable to rename %s to %s.\n" msgstr "Не удалось переименовать %s в %s.\n" -#: controldata.c:690 +#: controldata.c:705 #, c-format msgid "" "\n" @@ -838,19 +868,19 @@ #: exec.c:439 #, c-format msgid "check for \"%s\" failed: not a regular file\n" -msgstr "проверка файла \"%s\" не пройдена: это не обычный файл\n" +msgstr "программа \"%s\" не прошла проверку: это не обычный файл\n" #: exec.c:451 #, c-format msgid "check for \"%s\" failed: cannot read file (permission denied)\n" msgstr "" -"проверка файла \"%s\" не пройдена: не удаётся прочитать файл (нет доступа)\n" +"программа \"%s\" не прошла проверку: не удаётся прочитать файл (нет " +"доступа)\n" #: exec.c:459 #, c-format msgid "check for \"%s\" failed: cannot execute (permission denied)\n" -msgstr "" -"проверка файла \"%s\" не пройдена: выполнение невозможно (нет доступа)\n" +msgstr "программа \"%s\" не прошла проверку: ошибка выполнения (нет доступа)\n" #: file.c:43 file.c:61 #, c-format @@ -1613,35 +1643,40 @@ msgid "Copying old %s to new server" msgstr "Копирование старого каталога %s на новый сервер" -#: pg_upgrade.c:475 +#: pg_upgrade.c:474 +#, c-format +msgid "Setting oldest XID for new cluster" +msgstr "Установка старейшего OID для нового кластера" + +#: pg_upgrade.c:482 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "" "Установка следующего идентификатора транзакции и эпохи для нового кластера" -#: pg_upgrade.c:505 +#: pg_upgrade.c:512 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "" "Установка следующего идентификатора и смещения мультитранзакции для нового " "кластера" -#: pg_upgrade.c:529 +#: pg_upgrade.c:536 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "Установка старейшего идентификатора мультитранзакции в новом кластере" -#: pg_upgrade.c:549 +#: pg_upgrade.c:556 #, c-format msgid "Resetting WAL archives" msgstr "Сброс архивов WAL" -#: pg_upgrade.c:592 +#: pg_upgrade.c:599 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "Установка счётчиков frozenxid и minmxid в новом кластере" -#: pg_upgrade.c:594 +#: pg_upgrade.c:601 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "Установка счётчика minmxid в новом кластере" @@ -1822,14 +1857,14 @@ #: util.c:174 #, c-format msgid "ok" -msgstr "ok" +msgstr "ок" #: version.c:29 #, c-format msgid "Checking for large objects" msgstr "Проверка больших объектов" -#: version.c:77 version.c:384 +#: version.c:77 version.c:417 #, c-format msgid "warning" msgstr "предупреждение" @@ -1869,16 +1904,16 @@ "имеется дополнительная таблица с правами для больших объектов, поэтому\n" "для всех больших объектов должны определяться права по умолчанию. Скрипт\n" " %s\n" -"позволяет установить такие права (он предназначен для выполнения в psql\n" -"суперпользователем базы данных).\n" +"будучи выполненным администратором БД в psql, установит нужные права\n" +"по умолчанию.\n" "\n" -#: version.c:239 +#: version.c:272 #, c-format msgid "Checking for incompatible \"line\" data type" msgstr "Проверка несовместимого типа данных \"line\"" -#: version.c:246 +#: version.c:279 #, c-format msgid "" "Your installation contains the \"line\" data type in user tables. This\n" @@ -1900,12 +1935,12 @@ " %s\n" "\n" -#: version.c:276 +#: version.c:309 #, c-format msgid "Checking for invalid \"unknown\" user columns" msgstr "Проверка неправильных пользовательских столбцов типа \"unknown\"" -#: version.c:283 +#: version.c:316 #, c-format msgid "" "Your installation contains the \"unknown\" data type in user tables. This\n" @@ -1919,16 +1954,16 @@ "\".\n" "Теперь использование этого типа данных не допускается, поэтому в настоящем\n" "состоянии обновить кластер невозможно. Вы можете удалить проблемные таблицы\n" -"и перезапустить обновления. Список проблемных столбцов приведён в файле:\n" +"и перезапустить обновление. Список проблемных столбцов приведён в файле:\n" " %s\n" "\n" -#: version.c:306 +#: version.c:339 #, c-format msgid "Checking for hash indexes" msgstr "Проверка хеш-индексов" -#: version.c:386 +#: version.c:419 #, c-format msgid "" "\n" @@ -1945,7 +1980,7 @@ "инструкции по выполнению REINDEX.\n" "\n" -#: version.c:392 +#: version.c:425 #, c-format msgid "" "\n" @@ -1960,19 +1995,19 @@ "\n" "В вашей инсталляции используются хеш-индексы. Эти индексы имеют разные\n" "внутренние форматы в старом и новом кластерах, поэтому их необходимо\n" -"перестроить с помощью команды REINDEX. Скрипт\n" +"перестроить с помощью команды REINDEX. Скрипт\n" " %s\n" "будучи выполненным администратором БД в psql, пересоздаст все неправильные\n" "индексы; до этого никакие хеш-индексы не будут использоваться.\n" "\n" -#: version.c:418 +#: version.c:451 #, c-format msgid "Checking for invalid \"sql_identifier\" user columns" msgstr "" "Проверка неправильных пользовательских столбцов типа \"sql_identifier\"" -#: version.c:426 +#: version.c:459 #, c-format msgid "" "Your installation contains the \"sql_identifier\" data type in user tables\n" @@ -1987,11 +2022,40 @@ "данных \"sql_identifier\". Формат хранения таких данных на диске поменялся,\n" "поэтому обновить данный кластер невозможно. Вы можете удалить проблемные " "таблицы\n" -"или поменять тип данных на \"name\" и перезапустить обновления.\n" +"или поменять тип данных на \"name\" и перезапустить обновление.\n" "Список проблемных столбцов приведён в файле:\n" " %s\n" "\n" +#: version.c:483 +#, c-format +msgid "Checking for extension updates" +msgstr "Проверка обновлённых расширений" + +#: version.c:535 +#, c-format +msgid "notice" +msgstr "замечание" + +#: version.c:536 +#, c-format +msgid "" +"\n" +"Your installation contains extensions that should be updated\n" +"with the ALTER EXTENSION command. The file\n" +" %s\n" +"when executed by psql by the database superuser will update\n" +"these extensions.\n" +"\n" +msgstr "" +"\n" +"В вашей инсталляции есть расширения, которые надо обновить\n" +"командой ALTER EXTENSION. Скрипт\n" +" %s\n" +"будучи выполненным администратором БД в psql, обновит все\n" +"эти расширения.\n" +"\n" + #~ msgid "" #~ "Optimizer statistics and free space information are not transferred\n" #~ "by pg_upgrade so, once you start the new server, consider running:\n" diff -Nru postgresql-13-13.4/src/bin/pg_upgrade/po/sv.po postgresql-13-13.7/src/bin/pg_upgrade/po/sv.po --- postgresql-13-13.4/src/bin/pg_upgrade/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_upgrade/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for pg_upgrade # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-10-20 16:45+0000\n" -"PO-Revision-Date: 2020-10-20 20:29+0200\n" +"POT-Creation-Date: 2022-02-18 04:30+0000\n" +"PO-Revision-Date: 2021-11-09 06:33+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,7 +17,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: check.c:67 +#: check.c:68 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" @@ -26,7 +26,7 @@ "Utför konsistenskontroller på gamla live-servern\n" "------------------------------------------------\n" -#: check.c:73 +#: check.c:74 #, c-format msgid "" "Performing Consistency Checks\n" @@ -35,7 +35,7 @@ "Utför konsistenskontroller\n" "--------------------------\n" -#: check.c:193 +#: check.c:195 #, c-format msgid "" "\n" @@ -44,7 +44,7 @@ "\n" "*Klustren är kompatibla*\n" -#: check.c:199 +#: check.c:201 #, c-format msgid "" "\n" @@ -55,7 +55,7 @@ "Om pg_upgrade misslyckas efter denna punkt så måste du\n" "köra om initdb på nya klustret innan du fortsätter.\n" -#: check.c:233 +#: check.c:237 #, c-format msgid "" "Optimizer statistics are not transferred by pg_upgrade so,\n" @@ -68,7 +68,7 @@ " %s\n" "\n" -#: check.c:239 +#: check.c:243 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" @@ -77,7 +77,7 @@ "När detta skript körs så raderas gamla klustrets datafiler:\n" " %s\n" -#: check.c:244 +#: check.c:248 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" @@ -90,94 +90,93 @@ "ligger i gamla klusterkatalogen. Det gamla klustrets innehåll\n" "måste raderas för hand.\n" -#: check.c:254 +#: check.c:258 #, c-format msgid "Checking cluster versions" msgstr "Kontrollerar klustrets versioner" -#: check.c:266 +#: check.c:270 #, c-format msgid "This utility can only upgrade from PostgreSQL version 8.4 and later.\n" msgstr "Detta verktyg kan bara uppgradera från PostgreSQL version 8.4 eller nyare.\n" -#: check.c:270 +#: check.c:274 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s.\n" msgstr "Detta verktyg kan bara uppgradera till PostgreSQL version %s.\n" -#: check.c:279 +#: check.c:283 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions.\n" msgstr "Detta verktyg kan inte användas för att nergradera till äldre major-versioner av PostgreSQL.\n" -#: check.c:284 +#: check.c:288 #, c-format msgid "Old cluster data and binary directories are from different major versions.\n" msgstr "Gammal klusterdata och binära kataloger är från olika major-versioner.\n" -#: check.c:287 +#: check.c:291 #, c-format msgid "New cluster data and binary directories are from different major versions.\n" msgstr "Nya klusterdata och binära kataloger är från olika major-versioner.\n" -#: check.c:304 +#: check.c:308 #, c-format msgid "When checking a pre-PG 9.1 live old server, you must specify the old server's port number.\n" msgstr "Vid kontroll av en gammal live-server före PG 9.1 så måste den gamla serverns portnummer anges.\n" -#: check.c:308 +#: check.c:312 #, c-format msgid "When checking a live server, the old and new port numbers must be different.\n" msgstr "Vid kontroll av en live-server så måste gamla och nya portnumren vara olika.\n" -#: check.c:323 +#: check.c:327 #, c-format msgid "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "kodning för databasen \"%s\" matchar inte: gammal \"%s\", ny \"%s\"\n" -#: check.c:328 +#: check.c:332 #, c-format msgid "lc_collate values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "lc_collate-värden för databasen \"%s\" matchar inte: gammal \"%s\", ny \"%s\"\n" -#: check.c:331 +#: check.c:335 #, c-format msgid "lc_ctype values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "lc_ctype-värden för databasen \"%s\" matchar inte: gammal \"%s\", ny \"%s\"\n" -#: check.c:404 +#: check.c:408 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"\n" msgstr "Nya databasklustret \"%s\" är inte tomt: hittade relation \"%s.%s\"\n" -#: check.c:453 +#: check.c:457 #, c-format msgid "Creating script to analyze new cluster" msgstr "Skapar skript för att analysera nya klustret" -#: check.c:467 check.c:626 check.c:890 check.c:969 check.c:1079 check.c:1170 -#: file.c:336 function.c:240 option.c:497 version.c:54 version.c:199 -#: version.c:341 +#: check.c:471 check.c:630 check.c:894 check.c:973 file.c:336 function.c:240 +#: option.c:497 version.c:54 version.c:204 version.c:374 version.c:509 #, c-format msgid "could not open file \"%s\": %s\n" msgstr "kan inte öppna fil \"%s\": %s\n" -#: check.c:515 check.c:682 +#: check.c:519 check.c:686 #, c-format msgid "could not add execute permission to file \"%s\": %s\n" msgstr "kan inte sätta rättigheten \"körbar\" på filen \"%s\": %s\n" -#: check.c:545 +#: check.c:549 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Letar efter nya tablespace-kataloger i klustret" -#: check.c:556 +#: check.c:560 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"\n" msgstr "i klustret finns redan ny tablespace-katalog: \"%s\"\n" -#: check.c:589 +#: check.c:593 #, c-format msgid "" "\n" @@ -186,7 +185,7 @@ "\n" "VARNING: nya datakatalogen skall inte ligga inuti den gamla datakatalogen, dvs. %s\n" -#: check.c:613 +#: check.c:617 #, c-format msgid "" "\n" @@ -195,73 +194,73 @@ "\n" "VARNING: användardefinierade tabellutrymmens position skall inte vara i datakatalogen, dvs. %s\n" -#: check.c:623 +#: check.c:627 #, c-format msgid "Creating script to delete old cluster" msgstr "Skapar skript för att radera gamla klustret" -#: check.c:702 +#: check.c:706 #, c-format msgid "Checking database user is the install user" msgstr "Kontrollerar att databasanvändaren är installationsanvändaren" -#: check.c:718 +#: check.c:722 #, c-format msgid "database user \"%s\" is not the install user\n" msgstr "databasanvändare \"%s\" är inte installationsanvändaren\n" -#: check.c:729 +#: check.c:733 #, c-format msgid "could not determine the number of users\n" msgstr "kunde inte bestämma antalet användare\n" -#: check.c:737 +#: check.c:741 #, c-format msgid "Only the install user can be defined in the new cluster.\n" msgstr "Bara installationsanvändaren får finnas i nya klustret.\n" -#: check.c:757 +#: check.c:761 #, c-format msgid "Checking database connection settings" msgstr "Kontrollerar databasens anslutningsinställningar" -#: check.c:779 +#: check.c:783 #, c-format msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false\n" msgstr "template0 får inte tillåta anslutningar, dvs dess pg_database.datallowconn måste vara false\n" -#: check.c:789 +#: check.c:793 #, c-format msgid "All non-template0 databases must allow connections, i.e. their pg_database.datallowconn must be true\n" msgstr "Alla icke-template0-databaser måste tillåta anslutningar, dvs. deras pg_database.datallowconn måste vara true\n" -#: check.c:814 +#: check.c:818 #, c-format msgid "Checking for prepared transactions" msgstr "Letar efter förberedda transaktioner" -#: check.c:823 +#: check.c:827 #, c-format msgid "The source cluster contains prepared transactions\n" msgstr "Källklustret innehåller förberedda transaktioner\n" -#: check.c:825 +#: check.c:829 #, c-format msgid "The target cluster contains prepared transactions\n" msgstr "Målklustret innehåller förberedda transaktioner\n" -#: check.c:851 +#: check.c:855 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Letar efter contrib/isn med bigint-anropsfel" -#: check.c:912 check.c:991 check.c:1102 check.c:1193 function.c:262 -#: version.c:245 version.c:282 version.c:425 +#: check.c:916 check.c:995 check.c:1052 check.c:1111 check.c:1140 +#: function.c:262 version.c:278 version.c:315 version.c:458 #, c-format msgid "fatal\n" msgstr "fatalt\n" -#: check.c:913 +#: check.c:917 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -282,12 +281,12 @@ " %s\n" "\n" -#: check.c:937 +#: check.c:941 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Letar efter tabeller med WITH OIDS" -#: check.c:992 +#: check.c:996 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" @@ -305,12 +304,37 @@ "\n" # FIXME: is this msgid correct? -#: check.c:1022 +#: check.c:1024 +#, c-format +msgid "Checking for system-defined composite types in user tables" +msgstr "Letar i användartabeller efter systemdefinierade typer av sorten \"composite\"" + +#: check.c:1053 +#, c-format +msgid "" +"Your installation contains system-defined composite type(s) in user tables.\n" +"These type OIDs are not stable across PostgreSQL versions,\n" +"so this cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +"A list of the problem columns is in the file:\n" +" %s\n" +"\n" +msgstr "" +"Din installation innehåller användartabeller med systemdefinierade typer\n" +"av sorten \"composite\". OID:er för dessa typer är inte stabila över\n" +"PostgreSQL-versioner så detta kluster kan inte uppgraderas för tillfället.\n" +"Du kan slänga problemkolumnerna och återstarta uppgraderingen.\n" +"En lista med problemkolumner finns i filen:\n" +" %s\n" +"\n" + +# FIXME: is this msgid correct? +#: check.c:1081 #, c-format msgid "Checking for reg* data types in user tables" msgstr "Letar efter reg*-datatyper i användartabeller" -#: check.c:1103 +#: check.c:1112 #, c-format msgid "" "Your installation contains one of the reg* data types in user tables.\n" @@ -330,12 +354,12 @@ "\n" # FIXME: is this msgid correct? -#: check.c:1128 +#: check.c:1134 #, c-format msgid "Checking for incompatible \"jsonb\" data type" msgstr "Letar efter inkompatibel \"jsonb\"-datatyp" -#: check.c:1194 +#: check.c:1141 #, c-format msgid "" "Your installation contains the \"jsonb\" data type in user tables.\n" @@ -353,204 +377,209 @@ " %s\n" "\n" -#: check.c:1216 +#: check.c:1163 #, c-format msgid "Checking for roles starting with \"pg_\"" msgstr "Letar efter roller som startar med \"pg_\"" -#: check.c:1226 +#: check.c:1173 #, c-format msgid "The source cluster contains roles starting with \"pg_\"\n" msgstr "Källklustret innehåller roller som startar med \"pg_\"\n" -#: check.c:1228 +#: check.c:1175 #, c-format msgid "The target cluster contains roles starting with \"pg_\"\n" msgstr "Målklustret innehåller roller som startar med \"pg_\"\n" -#: check.c:1254 +#: check.c:1201 #, c-format msgid "failed to get the current locale\n" msgstr "misslyckades med att hämta aktuell lokal\n" -#: check.c:1263 +#: check.c:1210 #, c-format msgid "failed to get system locale name for \"%s\"\n" msgstr "misslyckades med att hämta systemlokalnamn för \"%s\"\n" -#: check.c:1269 +#: check.c:1216 #, c-format msgid "failed to restore old locale \"%s\"\n" msgstr "misslyckades med att återställa gamla lokalen \"%s\"\n" -#: controldata.c:127 controldata.c:195 +#: controldata.c:128 controldata.c:196 #, c-format msgid "could not get control data using %s: %s\n" msgstr "kunde inte hämta kontrolldata med %s: %s\n" -#: controldata.c:138 +#: controldata.c:139 #, c-format msgid "%d: database cluster state problem\n" msgstr "%d: state-problem för databaskluster\n" -#: controldata.c:156 +#: controldata.c:157 #, c-format msgid "The source cluster was shut down while in recovery mode. To upgrade, use \"rsync\" as documented or shut it down as a primary.\n" msgstr "Källklustret stängdes ner när det var i återställningsläge. För att uppgradera så använd \"rsync\" enligt dokumentation eller stäng ner den som en primär.\n" -#: controldata.c:158 +#: controldata.c:159 #, c-format msgid "The target cluster was shut down while in recovery mode. To upgrade, use \"rsync\" as documented or shut it down as a primary.\n" msgstr "Målklustret stängdes ner när det var i återställningsläge. För att uppgradera så använd \"rsync\" enligt dokumentation eller stäng ner den som en primär.\n" -#: controldata.c:163 +#: controldata.c:164 #, c-format msgid "The source cluster was not shut down cleanly.\n" msgstr "Källklustret har inte stängts ner på ett korrekt sätt.\n" -#: controldata.c:165 +#: controldata.c:166 #, c-format msgid "The target cluster was not shut down cleanly.\n" msgstr "Målklustret har inte stängts ner på ett korrekt sätt.\n" -#: controldata.c:176 +#: controldata.c:177 #, c-format msgid "The source cluster lacks cluster state information:\n" msgstr "Källklustret saknar information om kluster-state:\n" -#: controldata.c:178 +#: controldata.c:179 #, c-format msgid "The target cluster lacks cluster state information:\n" msgstr "Målklustret saknar information om kluster-state:\n" -#: controldata.c:208 dump.c:49 pg_upgrade.c:339 pg_upgrade.c:375 +#: controldata.c:209 dump.c:49 pg_upgrade.c:339 pg_upgrade.c:375 #: relfilenode.c:243 util.c:79 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:215 +#: controldata.c:216 #, c-format msgid "%d: pg_resetwal problem\n" msgstr "%d: pg_resetwal-problem\n" -#: controldata.c:225 controldata.c:235 controldata.c:246 controldata.c:257 -#: controldata.c:268 controldata.c:287 controldata.c:298 controldata.c:309 -#: controldata.c:320 controldata.c:331 controldata.c:342 controldata.c:345 -#: controldata.c:349 controldata.c:359 controldata.c:371 controldata.c:382 -#: controldata.c:393 controldata.c:404 controldata.c:415 controldata.c:426 -#: controldata.c:437 controldata.c:448 controldata.c:459 controldata.c:470 -#: controldata.c:481 +#: controldata.c:226 controldata.c:236 controldata.c:247 controldata.c:258 +#: controldata.c:269 controldata.c:288 controldata.c:299 controldata.c:310 +#: controldata.c:321 controldata.c:332 controldata.c:343 controldata.c:354 +#: controldata.c:357 controldata.c:361 controldata.c:371 controldata.c:383 +#: controldata.c:394 controldata.c:405 controldata.c:416 controldata.c:427 +#: controldata.c:438 controldata.c:449 controldata.c:460 controldata.c:471 +#: controldata.c:482 controldata.c:493 #, c-format msgid "%d: controldata retrieval problem\n" msgstr "%d: problem vid hämtning av kontrolldata\n" -#: controldata.c:546 +#: controldata.c:558 #, c-format msgid "The source cluster lacks some required control information:\n" msgstr "Källklustret saknar lite kontrolldata som krävs:\n" -#: controldata.c:549 +#: controldata.c:561 #, c-format msgid "The target cluster lacks some required control information:\n" msgstr "Målklustret saknar lite kontrolldata som krävs:\n" -#: controldata.c:552 +#: controldata.c:564 #, c-format msgid " checkpoint next XID\n" msgstr " checkpoint nästa-XID\n" -#: controldata.c:555 +#: controldata.c:567 #, c-format msgid " latest checkpoint next OID\n" msgstr " senaste checkpoint nästa-OID\n" -#: controldata.c:558 +#: controldata.c:570 #, c-format msgid " latest checkpoint next MultiXactId\n" msgstr " senaster checkpoint nästa-MultiXactId\n" -#: controldata.c:562 +#: controldata.c:574 #, c-format msgid " latest checkpoint oldest MultiXactId\n" msgstr " senaste checkpoint äldsta-MultiXactId\n" -#: controldata.c:565 +#: controldata.c:577 +#, c-format +msgid " latest checkpoint oldestXID\n" +msgstr " senaste checkpoint äldsta-XID\n" + +#: controldata.c:580 #, c-format msgid " latest checkpoint next MultiXactOffset\n" msgstr " senaste checkpoint nästa-MultiXactOffset\n" -#: controldata.c:568 +#: controldata.c:583 #, c-format msgid " first WAL segment after reset\n" msgstr " första WAL-segmentet efter reset\n" -#: controldata.c:571 +#: controldata.c:586 #, c-format msgid " float8 argument passing method\n" msgstr " float8 argumentöverföringsmetod\n" -#: controldata.c:574 +#: controldata.c:589 #, c-format msgid " maximum alignment\n" msgstr " maximal alignment\n" -#: controldata.c:577 +#: controldata.c:592 #, c-format msgid " block size\n" msgstr " blockstorlek\n" -#: controldata.c:580 +#: controldata.c:595 #, c-format msgid " large relation segment size\n" msgstr " stora relationers segmentstorlek\n" -#: controldata.c:583 +#: controldata.c:598 #, c-format msgid " WAL block size\n" msgstr " WAL-blockstorlek\n" -#: controldata.c:586 +#: controldata.c:601 #, c-format msgid " WAL segment size\n" msgstr " WAL-segmentstorlek\n" -#: controldata.c:589 +#: controldata.c:604 #, c-format msgid " maximum identifier length\n" msgstr " maximal identifierarlängd\n" -#: controldata.c:592 +#: controldata.c:607 #, c-format msgid " maximum number of indexed columns\n" msgstr " maximalt antal indexerade kolumner\n" -#: controldata.c:595 +#: controldata.c:610 #, c-format msgid " maximum TOAST chunk size\n" msgstr " maximal TOAST-chunkstorlek\n" -#: controldata.c:599 +#: controldata.c:614 #, c-format msgid " large-object chunk size\n" msgstr " stora-objekt chunkstorlek\n" -#: controldata.c:602 +#: controldata.c:617 #, c-format msgid " dates/times are integers?\n" msgstr " datum/tid är heltal?\n" -#: controldata.c:606 +#: controldata.c:621 #, c-format msgid " data checksum version\n" msgstr " datachecksumversion\n" -#: controldata.c:608 +#: controldata.c:623 #, c-format msgid "Cannot continue without required control information, terminating\n" msgstr "Kan inte fortsätta utan kontrollinformation som krävs, avslutar\n" -#: controldata.c:623 +#: controldata.c:638 #, c-format msgid "" "old and new pg_controldata alignments are invalid or do not match\n" @@ -559,77 +588,77 @@ "gamla och nya pg_controldata-alignments är ogiltiga eller matchar inte.\n" "Troligen är ett kluster en 32-bitars-installation och den andra 64-bitars\n" -#: controldata.c:627 +#: controldata.c:642 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match\n" msgstr "gamla och nya pg_controldata-blockstorlekar är ogiltiga eller matchar inte\n" -#: controldata.c:630 +#: controldata.c:645 #, c-format msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match\n" msgstr "gamla och nya pg_controldata maximala relationssegmentstorlekar är ogiltiga eller matchar inte\n" -#: controldata.c:633 +#: controldata.c:648 #, c-format msgid "old and new pg_controldata WAL block sizes are invalid or do not match\n" msgstr "gamla och nya pg_controldata WAL-blockstorlekar är ogiltiga eller matchar inte\n" -#: controldata.c:636 +#: controldata.c:651 #, c-format msgid "old and new pg_controldata WAL segment sizes are invalid or do not match\n" msgstr "gamla och nya pg_controldata WAL-segmentstorlekar är ogiltiga eller matchar inte\n" -#: controldata.c:639 +#: controldata.c:654 #, c-format msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match\n" msgstr "gamla och nya pg_controldata maximal identifierarlängder är ogiltiga eller matchar inte\n" -#: controldata.c:642 +#: controldata.c:657 #, c-format msgid "old and new pg_controldata maximum indexed columns are invalid or do not match\n" msgstr "gamla och nya pg_controldata maxilmalt indexerade kolumner ogiltiga eller matchar inte\n" -#: controldata.c:645 +#: controldata.c:660 #, c-format msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match\n" msgstr "gamla och nya pg_controldata maximal TOAST-chunkstorlek ogiltiga eller matchar inte\n" -#: controldata.c:650 +#: controldata.c:665 #, c-format msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match\n" msgstr "gamla och nya pg_controldata stora-objekt-chunkstorlekar är ogiltiga eller matchar inte\n" -#: controldata.c:653 +#: controldata.c:668 #, c-format msgid "old and new pg_controldata date/time storage types do not match\n" msgstr "gamla och nya pg_controldata datum/tid-lagringstyper matchar inte\n" -#: controldata.c:666 +#: controldata.c:681 #, c-format msgid "old cluster does not use data checksums but the new one does\n" msgstr "gamla klustret använder inte datachecksummor men nya gör det\n" -#: controldata.c:669 +#: controldata.c:684 #, c-format msgid "old cluster uses data checksums but the new one does not\n" msgstr "gamla klustret använder datachecksummor men nya gör inte det\n" -#: controldata.c:671 +#: controldata.c:686 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match\n" msgstr "gamla och nya klustrets pg_controldata checksumversioner matchar inte\n" -#: controldata.c:682 +#: controldata.c:697 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "Lägger till \".old\"-suffix till gamla global/pg_control" -#: controldata.c:687 +#: controldata.c:702 #, c-format msgid "Unable to rename %s to %s.\n" msgstr "Kan inte byta namn på %s till %s.\n" -#: controldata.c:690 +#: controldata.c:705 #, c-format msgid "" "\n" @@ -1163,7 +1192,7 @@ #: option.c:306 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" -msgstr " -U, --username=NAMN klustrets superanvändare (standard \"%s\")\n" +msgstr " -U, --username=NAMN klustrets superuser (standard \"%s\")\n" #: option.c:307 #, c-format @@ -1428,32 +1457,37 @@ msgid "Copying old %s to new server" msgstr "Kopierar gammal %s till ny server" -#: pg_upgrade.c:475 +#: pg_upgrade.c:474 +#, c-format +msgid "Setting oldest XID for new cluster" +msgstr "Sätter äldsta XID för nya klustret" + +#: pg_upgrade.c:482 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "Sätter nästa transaktions-ID och epoch för nytt kluster" -#: pg_upgrade.c:505 +#: pg_upgrade.c:512 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "Sätter nästa multixact-ID och offset för nytt kluster" -#: pg_upgrade.c:529 +#: pg_upgrade.c:536 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "Sätter äldsta multixact-ID i nytt kluster" -#: pg_upgrade.c:549 +#: pg_upgrade.c:556 #, c-format msgid "Resetting WAL archives" msgstr "Resettar WAL-arkiv" -#: pg_upgrade.c:592 +#: pg_upgrade.c:599 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "Sätter räknarna frozenxid och minmxid för nytt kluster" -#: pg_upgrade.c:594 +#: pg_upgrade.c:601 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "Sätter räknarenm minmxid för nytt kluster" @@ -1630,7 +1664,7 @@ msgid "Checking for large objects" msgstr "Letar efter stora objekt" -#: version.c:77 version.c:384 +#: version.c:77 version.c:417 #, c-format msgid "warning" msgstr "varning" @@ -1669,17 +1703,17 @@ "rättighetstabell för stora onbjekt så standardrättigheter måste ges för\n" "alla stora objekt. Filen\n" " %s\n" -"kan köras med psql av databasens superanvändare för att sätta\n" +"kan köras med psql av databasens superuser för att sätta\n" "standardrättigheter.\n" "\n" # FIXME: is this msgid correct? -#: version.c:239 +#: version.c:272 #, c-format msgid "Checking for incompatible \"line\" data type" msgstr "Letar efter inkompatibel \"line\"-datatyp" -#: version.c:246 +#: version.c:279 #, c-format msgid "" "Your installation contains the \"line\" data type in user tables. This\n" @@ -1698,12 +1732,12 @@ " %s\n" "\n" -#: version.c:276 +#: version.c:309 #, c-format msgid "Checking for invalid \"unknown\" user columns" msgstr "Letar efter ogiltiga användarkolumner av typen \"unknown\"" -#: version.c:283 +#: version.c:316 #, c-format msgid "" "Your installation contains the \"unknown\" data type in user tables. This\n" @@ -1720,12 +1754,12 @@ " %s\n" "\n" -#: version.c:306 +#: version.c:339 #, c-format msgid "Checking for hash indexes" msgstr "Letar efter hash-index" -#: version.c:386 +#: version.c:419 #, c-format msgid "" "\n" @@ -1742,7 +1776,7 @@ "REINDEX-instruktioner.\n" "\n" -#: version.c:392 +#: version.c:425 #, c-format msgid "" "\n" @@ -1759,16 +1793,16 @@ "format i ditt gamla och nya kluster så de måste omindexeras med\n" "kommandot REINDEX. Filen\n" " %s\n" -"kan köras med psql av databasens superanvändare och kommer återskapa\n" -"alla ogiltiga index; innan dess så kommer inget av dess index användas.\n" +"kan köras med psql av databasens superuser och kommer återskapa alla\n" +"ogiltiga index; innan dess så kommer inget av dess index användas.\n" "\n" -#: version.c:418 +#: version.c:451 #, c-format msgid "Checking for invalid \"sql_identifier\" user columns" msgstr "Letar efter ogiltiga användarkolumner av typen \"sql_identifier\"" -#: version.c:426 +#: version.c:459 #, c-format msgid "" "Your installation contains the \"sql_identifier\" data type in user tables\n" @@ -1788,12 +1822,30 @@ " %s\n" "\n" -#~ msgid "" -#~ "Optimizer statistics and free space information are not transferred\n" -#~ "by pg_upgrade so, once you start the new server, consider running:\n" -#~ " %s\n" -#~ "\n" -#~ msgstr "" -#~ "Optimeringsstatistik och information om ledigt utrymme överförs\n" -#~ "inte av pg_upgrade så när du startar nya servern så vill du nog köra:\n" -#~ " %s\n" +#: version.c:483 +#, c-format +msgid "Checking for extension updates" +msgstr "Letar efter uppdatering av utökningar" + +#: version.c:535 +#, c-format +msgid "notice" +msgstr "notis" + +#: version.c:536 +#, c-format +msgid "" +"\n" +"Your installation contains extensions that should be updated\n" +"with the ALTER EXTENSION command. The file\n" +" %s\n" +"when executed by psql by the database superuser will update\n" +"these extensions.\n" +"\n" +msgstr "" +"\n" +"Din installation innehåller utökningar som skall updateras med kommandot\n" +"ALTER EXTENSION. Filen\n" +" %s\n" +"kan köras med psql av databasens superuser och kommer uppdatera\n" +"dessa utökningar.\n" diff -Nru postgresql-13-13.4/src/bin/pg_upgrade/test.sh postgresql-13-13.7/src/bin/pg_upgrade/test.sh --- postgresql-13-13.4/src/bin/pg_upgrade/test.sh 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_upgrade/test.sh 2022-05-09 21:16:30.000000000 +0000 @@ -23,7 +23,8 @@ # To increase coverage of non-standard segment size and group access # without increasing test runtime, run these tests with a custom setting. # Also, specify "-A trust" explicitly to suppress initdb's warning. - "$1" -N --wal-segsize 1 -g -A trust + # --allow-group-access and --wal-segsize have been added in v11. + "$1" -N --wal-segsize 1 --allow-group-access -A trust if [ -n "$TEMP_CONFIG" -a -r "$TEMP_CONFIG" ] then cat "$TEMP_CONFIG" >> "$PGDATA/postgresql.conf" @@ -166,24 +167,31 @@ createdb "regression$dbname2" || createdb_status=$? createdb "regression$dbname3" || createdb_status=$? +# Extra options to apply to the dump. This may be changed later. +extra_dump_options="" + if "$MAKE" -C "$oldsrc" installcheck-parallel; then oldpgversion=`psql -X -A -t -d regression -c "SHOW server_version_num"` - # before dumping, get rid of objects not feasible in later versions + # Before dumping, tweak the database of the old instance depending + # on its version. if [ "$newsrc" != "$oldsrc" ]; then - fix_sql="" - case $oldpgversion in - 804??) - fix_sql="DROP FUNCTION public.myfunc(integer);" - ;; - esac - fix_sql="$fix_sql - DROP FUNCTION IF EXISTS - public.oldstyle_length(integer, text); -- last in 9.6"; - psql -X -d regression -c "$fix_sql;" || psql_fix_sql_status=$? + # This SQL script has its own idea of the cleanup that needs to be + # done on the cluster to-be-upgraded, and includes version checks. + # Note that this uses the script stored on the new branch. + psql -X -d regression -f "$newsrc/src/bin/pg_upgrade/upgrade_adapt.sql" \ + || psql_fix_sql_status=$? + + # Handling of --extra-float-digits gets messy after v12. + # Note that this changes the dumps from the old and new + # instances if involving an old cluster of v11 or older. + if [ $oldpgversion -lt 120000 ]; then + extra_dump_options="--extra-float-digits=0" + fi fi - pg_dumpall --no-sync -f "$temp_root"/dump1.sql || pg_dumpall1_status=$? + pg_dumpall $extra_dump_options --no-sync \ + -f "$temp_root"/dump1.sql || pg_dumpall1_status=$? if [ "$newsrc" != "$oldsrc" ]; then # update references to old source tree's regress.so etc @@ -253,7 +261,8 @@ *) sh ./analyze_new_cluster.sh ;; esac -pg_dumpall --no-sync -f "$temp_root"/dump2.sql || pg_dumpall2_status=$? +pg_dumpall $extra_dump_options --no-sync \ + -f "$temp_root"/dump2.sql || pg_dumpall2_status=$? pg_ctl -m fast stop if [ -n "$pg_dumpall2_status" ]; then diff -Nru postgresql-13-13.4/src/bin/pg_upgrade/upgrade_adapt.sql postgresql-13-13.7/src/bin/pg_upgrade/upgrade_adapt.sql --- postgresql-13-13.4/src/bin/pg_upgrade/upgrade_adapt.sql 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_upgrade/upgrade_adapt.sql 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,80 @@ +-- +-- SQL queries for upgrade tests across different major versions. +-- +-- This file includes a set of SQL queries to make a cluster to-be-upgraded +-- compatible with the version this file is based on. Note that this +-- requires psql, as per-version queries are controlled with a set of \if +-- clauses. + +-- This script is backward-compatible, so it is able to work with any version +-- newer than 9.2 we are upgrading from, up to the branch this script is stored +-- on (even if this would not run if running pg_upgrade with the same version +-- for the origin and the target). + +-- \if accepts a simple boolean value, so all the version checks are +-- saved based on this assumption. +SELECT + ver <= 902 AS oldpgversion_le92, + ver <= 904 AS oldpgversion_le94, + ver <= 906 AS oldpgversion_le96, + ver <= 1000 AS oldpgversion_le10, + ver <= 1100 AS oldpgversion_le11 + FROM (SELECT current_setting('server_version_num')::int / 100 AS ver) AS v; +\gset + +-- Objects last appearing in 9.2. +\if :oldpgversion_le92 +-- Note that those tables are removed from the regression tests in 9.3 +-- and newer versions. +DROP TABLE abstime_tbl; +DROP TABLE reltime_tbl; +DROP TABLE tinterval_tbl; +\endif + +-- Objects last appearing in 9.4. +\if :oldpgversion_le94 +-- This aggregate has been fixed in 9.5 and later versions, so drop +-- and re-create it. +DROP AGGREGATE array_cat_accum(anyarray); +CREATE AGGREGATE array_larger_accum (anyarray) ( + sfunc = array_larger, + stype = anyarray, + initcond = $${}$$); +-- This operator has been fixed in 9.5 and later versions, so drop and +-- re-create it. +DROP OPERATOR @#@ (NONE, bigint); +CREATE OPERATOR @#@ (PROCEDURE = factorial, + RIGHTARG = bigint); +\endif + +-- Objects last appearing in 9.6. +\if :oldpgversion_le96 +DROP FUNCTION public.oldstyle_length(integer, text); +\endif + +-- Objects last appearing in 10. +\if :oldpgversion_le10 +DROP FUNCTION IF EXISTS boxarea(box); +DROP FUNCTION IF EXISTS funny_dup17(); +\endif + +-- Objects last appearing in 11. +\if :oldpgversion_le11 +-- WITH OIDS is supported until v11, so remove its support for any +-- relations marked as such. +DO $stmt$ + DECLARE + rec text; + BEGIN + FOR rec in + SELECT oid::regclass::text + FROM pg_class + WHERE relname !~ '^pg_' + AND relhasoids + AND relkind in ('r','m') + ORDER BY 1 + LOOP + execute 'ALTER TABLE ' || rec || ' SET WITHOUT OIDS'; + END LOOP; + END; $stmt$; +\endif diff -Nru postgresql-13-13.4/src/bin/pg_verifybackup/po/fr.po postgresql-13-13.7/src/bin/pg_verifybackup/po/fr.po --- postgresql-13-13.4/src/bin/pg_verifybackup/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_verifybackup/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -289,7 +289,7 @@ "but was not the same version as %s.\n" "Check your installation." msgstr "" -"Le programme « %s » a été trouvé par « %s »,\n" +"Le programme « %s » a été trouvé par « %s »\n" "mais n'est pas de la même version que %s.\n" "Vérifiez votre installation." @@ -428,7 +428,7 @@ #: pg_verifybackup.c:896 #, c-format msgid " -n, --no-parse-wal do not try to parse WAL files\n" -msgstr " -n, --no-parse-wal n'essaie pas d'analyse les fichiers WAL\n" +msgstr " -n, --no-parse-wal n'essaie pas d'analyser les fichiers WAL\n" #: pg_verifybackup.c:897 #, c-format @@ -467,4 +467,4 @@ #: pg_verifybackup.c:903 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil de %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" diff -Nru postgresql-13-13.4/src/bin/pg_verifybackup/po/ru.po postgresql-13-13.7/src/bin/pg_verifybackup/po/ru.po --- postgresql-13-13.4/src/bin/pg_verifybackup/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_verifybackup/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,10 +1,10 @@ -# Alexander Lakhin , 2020. +# Alexander Lakhin , 2020, 2021. msgid "" msgstr "" "Project-Id-Version: pg_verifybackup (PostgreSQL) 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-15 18:25+0300\n" -"PO-Revision-Date: 2020-10-29 15:03+0300\n" +"POT-Creation-Date: 2021-08-14 06:30+0300\n" +"PO-Revision-Date: 2021-09-17 07:33+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -296,100 +296,100 @@ "но её версия отличается от версии %s.\n" "Проверьте правильность установки СУБД." -#: pg_verifybackup.c:361 +#: pg_verifybackup.c:362 #, c-format msgid "backup successfully verified\n" msgstr "копия проверена успешно\n" -#: pg_verifybackup.c:387 pg_verifybackup.c:723 +#: pg_verifybackup.c:388 pg_verifybackup.c:724 #, c-format msgid "could not open file \"%s\": %m" msgstr "не удалось открыть файл \"%s\": %m" -#: pg_verifybackup.c:391 +#: pg_verifybackup.c:392 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не удалось получить информацию о файле \"%s\": %m" -#: pg_verifybackup.c:411 pg_verifybackup.c:738 +#: pg_verifybackup.c:412 pg_verifybackup.c:739 #, c-format msgid "could not read file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" -#: pg_verifybackup.c:414 +#: pg_verifybackup.c:415 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" -#: pg_verifybackup.c:474 +#: pg_verifybackup.c:475 #, c-format msgid "duplicate path name in backup manifest: \"%s\"" msgstr "дублирующийся путь в манифесте копии: \"%s\"" -#: pg_verifybackup.c:537 pg_verifybackup.c:544 +#: pg_verifybackup.c:538 pg_verifybackup.c:545 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: pg_verifybackup.c:576 +#: pg_verifybackup.c:577 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не удалось закрыть каталог \"%s\": %m" -#: pg_verifybackup.c:596 +#: pg_verifybackup.c:597 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "не удалось получить информацию о файле или каталоге \"%s\": %m" -#: pg_verifybackup.c:619 +#: pg_verifybackup.c:620 #, c-format msgid "\"%s\" is not a file or directory" msgstr "\"%s\" не указывает на файл или каталог" -#: pg_verifybackup.c:629 +#: pg_verifybackup.c:630 #, c-format msgid "\"%s\" is present on disk but not in the manifest" msgstr "файл \"%s\" присутствует на диске, но отсутствует в манифесте" -#: pg_verifybackup.c:641 +#: pg_verifybackup.c:642 #, c-format msgid "\"%s\" has size %zu on disk but size %zu in the manifest" msgstr "" "файл \"%s\" имеет размер на диске: %zu, тогда как размер в манифесте: %zu" -#: pg_verifybackup.c:668 +#: pg_verifybackup.c:669 #, c-format msgid "\"%s\" is present in the manifest but not on disk" msgstr "файл \"%s\" присутствует в манифесте, но отсутствует на диске" -#: pg_verifybackup.c:744 +#: pg_verifybackup.c:745 #, c-format msgid "could not close file \"%s\": %m" msgstr "не удалось закрыть файл \"%s\": %m" -#: pg_verifybackup.c:763 +#: pg_verifybackup.c:764 #, c-format msgid "file \"%s\" should contain %zu bytes, but read %zu bytes" msgstr "файл \"%s\" должен содержать байт: %zu, но фактически прочитано: %zu" -#: pg_verifybackup.c:774 +#: pg_verifybackup.c:775 #, c-format msgid "file \"%s\" has checksum of length %d, but expected %d" msgstr "" "для файла \"%s\" задана контрольная сумма размером %d, но ожидаемый размер: " "%d" -#: pg_verifybackup.c:778 +#: pg_verifybackup.c:779 #, c-format msgid "checksum mismatch for file \"%s\"" msgstr "ошибка контрольной суммы для файла \"%s\"" -#: pg_verifybackup.c:804 +#: pg_verifybackup.c:805 #, c-format msgid "WAL parsing failed for timeline %u" msgstr "не удалось разобрать WAL для линии времени %u" -#: pg_verifybackup.c:890 +#: pg_verifybackup.c:891 #, c-format msgid "" "%s verifies a backup against the backup manifest.\n" @@ -398,7 +398,7 @@ "%s проверяет резервную копию, используя манифест копии.\n" "\n" -#: pg_verifybackup.c:891 +#: pg_verifybackup.c:892 #, c-format msgid "" "Usage:\n" @@ -409,62 +409,62 @@ " %s [ПАРАМЕТР]... КАТАЛОГ_КОПИИ\n" "\n" -#: pg_verifybackup.c:892 +#: pg_verifybackup.c:893 #, c-format msgid "Options:\n" msgstr "Параметры:\n" -#: pg_verifybackup.c:893 +#: pg_verifybackup.c:894 #, c-format msgid " -e, --exit-on-error exit immediately on error\n" msgstr " -e, --exit-on-error немедленный выход при ошибке\n" -#: pg_verifybackup.c:894 +#: pg_verifybackup.c:895 #, c-format msgid " -i, --ignore=RELATIVE_PATH ignore indicated path\n" msgstr "" " -i, --ignore=ОТНОСИТЕЛЬНЫЙ_ПУТЬ\n" " игнорировать заданный путь\n" -#: pg_verifybackup.c:895 +#: pg_verifybackup.c:896 #, c-format msgid " -m, --manifest-path=PATH use specified path for manifest\n" msgstr " -m, --manifest-path=ПУТЬ использовать заданный файл манифеста\n" -#: pg_verifybackup.c:896 +#: pg_verifybackup.c:897 #, c-format msgid " -n, --no-parse-wal do not try to parse WAL files\n" msgstr " -n, --no-parse-wal не пытаться разбирать файлы WAL\n" -#: pg_verifybackup.c:897 +#: pg_verifybackup.c:898 #, c-format msgid "" " -q, --quiet do not print any output, except for errors\n" msgstr "" " -q, --quiet не выводить никаких сообщений, кроме ошибок\n" -#: pg_verifybackup.c:898 +#: pg_verifybackup.c:899 #, c-format msgid " -s, --skip-checksums skip checksum verification\n" msgstr " -s, --skip-checksums пропустить проверку контрольных сумм\n" -#: pg_verifybackup.c:899 +#: pg_verifybackup.c:900 #, c-format msgid " -w, --wal-directory=PATH use specified path for WAL files\n" msgstr "" " -w, --wal-directory=ПУТЬ использовать заданный путь к файлам WAL\n" -#: pg_verifybackup.c:900 +#: pg_verifybackup.c:901 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_verifybackup.c:901 +#: pg_verifybackup.c:902 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help показать эту справку и выйти\n" +msgstr " -?, --help показать эту справку и выйти\n" -#: pg_verifybackup.c:902 +#: pg_verifybackup.c:903 #, c-format msgid "" "\n" @@ -473,7 +473,7 @@ "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_verifybackup.c:903 +#: pg_verifybackup.c:904 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" diff -Nru postgresql-13-13.4/src/bin/pg_verifybackup/po/sv.po postgresql-13-13.7/src/bin/pg_verifybackup/po/sv.po --- postgresql-13-13.4/src/bin/pg_verifybackup/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_verifybackup/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for pg_verifybackup # Copyright (C) 2020 PostgreSQL Global Development Group # This file is distributed under the same license as the pg_verifybackup (PostgreSQL) package. -# Dennis Björklund , 2020. +# Dennis Björklund , 2020, 2021 # msgid "" msgstr "" -"Project-Id-Version: pg_verifybackup (PostgreSQL) 13\n" +"Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-16 05:14+0000\n" -"PO-Revision-Date: 2020-09-16 07:55+0200\n" +"POT-Creation-Date: 2022-02-18 04:28+0000\n" +"PO-Revision-Date: 2021-11-07 10:18+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -184,7 +184,7 @@ #: parse_manifest.c:480 msgid "checksum without algorithm" -msgstr "checksumma utan algoritm" +msgstr "kontrollsumma utan algoritm" #: parse_manifest.c:494 msgid "could not decode file name" @@ -197,12 +197,12 @@ #: parse_manifest.c:510 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" -msgstr "okänd checksum-algoritm: \"%s\"" +msgstr "okänd algoritm för kontrollsumma: \"%s\"" #: parse_manifest.c:529 #, c-format msgid "invalid checksum for file \"%s\": \"%s\"" -msgstr "ogiltig checksumma för fil \"%s\": \"%s\"" +msgstr "ogiltig kontrollsumma för fil \"%s\": \"%s\"" #: parse_manifest.c:572 msgid "missing timeline" @@ -239,17 +239,17 @@ #: parse_manifest.c:661 #, c-format msgid "manifest has no checksum" -msgstr "manifestet har ingen checksumma" +msgstr "manifestet har ingen kontrollsumma" #: parse_manifest.c:665 #, c-format msgid "invalid manifest checksum: \"%s\"" -msgstr "ogiltig manifestchecksumma: \"%s\"" +msgstr "ogiltig kontrollsumma för manifest: \"%s\"" #: parse_manifest.c:669 #, c-format msgid "manifest checksum mismatch" -msgstr "manifestchecksumman matchar inte" +msgstr "kontrollsumma för manifest matchar inte" #: parse_manifest.c:683 #, c-format @@ -293,97 +293,97 @@ "men är inte av samma version som %s.\n" "Kontrollera din installation." -#: pg_verifybackup.c:361 +#: pg_verifybackup.c:362 #, c-format msgid "backup successfully verified\n" msgstr "korrekt verifierad backup\n" -#: pg_verifybackup.c:387 pg_verifybackup.c:723 +#: pg_verifybackup.c:388 pg_verifybackup.c:724 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" -#: pg_verifybackup.c:391 +#: pg_verifybackup.c:392 #, c-format msgid "could not stat file \"%s\": %m" msgstr "kunde inte göra stat() på fil \"%s\": %m" -#: pg_verifybackup.c:411 pg_verifybackup.c:738 +#: pg_verifybackup.c:412 pg_verifybackup.c:739 #, c-format msgid "could not read file \"%s\": %m" msgstr "kunde inte läsa fil \"%s\": %m" -#: pg_verifybackup.c:414 +#: pg_verifybackup.c:415 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "kunde inte läsa fil \"%s\": läste %d av %zu" -#: pg_verifybackup.c:474 +#: pg_verifybackup.c:475 #, c-format msgid "duplicate path name in backup manifest: \"%s\"" msgstr "duplicerad sökväg i backup-manifest: \"%s\"" -#: pg_verifybackup.c:537 pg_verifybackup.c:544 +#: pg_verifybackup.c:538 pg_verifybackup.c:545 #, c-format msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: pg_verifybackup.c:576 +#: pg_verifybackup.c:577 #, c-format msgid "could not close directory \"%s\": %m" msgstr "kunde inte stänga katalog \"%s\": %m" -#: pg_verifybackup.c:596 +#: pg_verifybackup.c:597 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "kunde inte ta status på fil eller katalog \"%s\": %m" -#: pg_verifybackup.c:619 +#: pg_verifybackup.c:620 #, c-format msgid "\"%s\" is not a file or directory" msgstr "\"%s\" är inte en fil eller katalog" -#: pg_verifybackup.c:629 +#: pg_verifybackup.c:630 #, c-format msgid "\"%s\" is present on disk but not in the manifest" msgstr "\"%s\" finns på disk men är inte i manifestet" -#: pg_verifybackup.c:641 +#: pg_verifybackup.c:642 #, c-format msgid "\"%s\" has size %zu on disk but size %zu in the manifest" msgstr "\"%s\" har storlek %zu på disk men storlek %zu i manifestet" -#: pg_verifybackup.c:668 +#: pg_verifybackup.c:669 #, c-format msgid "\"%s\" is present in the manifest but not on disk" msgstr "\"%s\" finns i manifestet men inte på disk" -#: pg_verifybackup.c:744 +#: pg_verifybackup.c:745 #, c-format msgid "could not close file \"%s\": %m" msgstr "kunde inte stänga fil \"%s\": %m" -#: pg_verifybackup.c:763 +#: pg_verifybackup.c:764 #, c-format msgid "file \"%s\" should contain %zu bytes, but read %zu bytes" msgstr "filen \"%s\" skall innehålla %zu byte men vi läste %zu byte" -#: pg_verifybackup.c:774 +#: pg_verifybackup.c:775 #, c-format msgid "file \"%s\" has checksum of length %d, but expected %d" -msgstr "filen \"%s\" har checksumma med längd %d men förväntade %d" +msgstr "filen \"%s\" har kontrollsumma med längd %d men förväntade %d" -#: pg_verifybackup.c:778 +#: pg_verifybackup.c:779 #, c-format msgid "checksum mismatch for file \"%s\"" -msgstr "checksumman matchar inte för fil \"%s\"" +msgstr "kontrollsumman matchar inte för fil \"%s\"" -#: pg_verifybackup.c:804 +#: pg_verifybackup.c:805 #, c-format msgid "WAL parsing failed for timeline %u" msgstr "WAL-parsning misslyckades för tidslinje %u" -#: pg_verifybackup.c:890 +#: pg_verifybackup.c:891 #, c-format msgid "" "%s verifies a backup against the backup manifest.\n" @@ -392,7 +392,7 @@ "%s verifierar en backup gentemot backup-manifestet.\n" "\n" -#: pg_verifybackup.c:891 +#: pg_verifybackup.c:892 #, c-format msgid "" "Usage:\n" @@ -403,57 +403,57 @@ " %s [FLAGGOR]... BACKUPKAT\n" "\n" -#: pg_verifybackup.c:892 +#: pg_verifybackup.c:893 #, c-format msgid "Options:\n" msgstr "Flaggor:\n" -#: pg_verifybackup.c:893 +#: pg_verifybackup.c:894 #, c-format msgid " -e, --exit-on-error exit immediately on error\n" msgstr " -e, --exit-on-error avsluta direkt vid fel\n" -#: pg_verifybackup.c:894 +#: pg_verifybackup.c:895 #, c-format msgid " -i, --ignore=RELATIVE_PATH ignore indicated path\n" msgstr " -i, --ignore=RELATIV_SÖKVÄG hoppa över angiven sökväg\n" -#: pg_verifybackup.c:895 +#: pg_verifybackup.c:896 #, c-format msgid " -m, --manifest-path=PATH use specified path for manifest\n" msgstr " -m, --manifest-path=SÖKVÄG använd denna sökväg till manifestet\n" -#: pg_verifybackup.c:896 +#: pg_verifybackup.c:897 #, c-format msgid " -n, --no-parse-wal do not try to parse WAL files\n" msgstr " -n, --no-parse-wal försök inte parsa WAL-filer\n" -#: pg_verifybackup.c:897 +#: pg_verifybackup.c:898 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet skriv inte ut några meddelanden förutom fel\n" -#: pg_verifybackup.c:898 +#: pg_verifybackup.c:899 #, c-format msgid " -s, --skip-checksums skip checksum verification\n" -msgstr " -s, --skip-checksums hoppa över verifiering av checksummor\n" +msgstr " -s, --skip-checksums hoppa över verifiering av kontrollsummor\n" -#: pg_verifybackup.c:899 +#: pg_verifybackup.c:900 #, c-format msgid " -w, --wal-directory=PATH use specified path for WAL files\n" msgstr " -w, --wal-directory=SÖKVÄG använd denna sökväg till WAL-filer\n" -#: pg_verifybackup.c:900 +#: pg_verifybackup.c:901 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_verifybackup.c:901 +#: pg_verifybackup.c:902 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: pg_verifybackup.c:902 +#: pg_verifybackup.c:903 #, c-format msgid "" "\n" @@ -462,25 +462,7 @@ "\n" "Rapportera fel till <%s>.\n" -#: pg_verifybackup.c:903 +#: pg_verifybackup.c:904 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" - -#~ msgid "" -#~ "The program \"%s\" is needed by %s but was\n" -#~ "not found in the same directory as \"%s\".\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"%s\" behövs av %s men hittades inte i samma\n" -#~ "katalog som \"%s\".\n" -#~ "Kontrollera din installation." - -#~ msgid "" -#~ "The program \"%s\" was found by \"%s\" but was\n" -#~ "not the same version as %s.\n" -#~ "Check your installation." -#~ msgstr "" -#~ "Programmet \"%s\" hittades av \"%s\"\n" -#~ "men är inte av samma version som %s.\n" -#~ "Kontrollera din installation." diff -Nru postgresql-13-13.4/src/bin/pg_verifybackup/t/003_corruption.pl postgresql-13-13.7/src/bin/pg_verifybackup/t/003_corruption.pl --- postgresql-13-13.4/src/bin/pg_verifybackup/t/003_corruption.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_verifybackup/t/003_corruption.pl 2022-05-09 21:16:30.000000000 +0000 @@ -15,7 +15,7 @@ # Include a user-defined tablespace in the hopes of detecting problems in that # area. -my $source_ts_path = TestLib::perl2host(TestLib::tempdir_short()); +my $source_ts_path = TestLib::tempdir_short(); my $source_ts_prefix = $source_ts_path; $source_ts_prefix =~ s!(^[A-Z]:/[^/]*)/.*!$1!; @@ -104,7 +104,7 @@ # Take a backup and check that it verifies OK. my $backup_path = $master->backup_dir . '/' . $name; - my $backup_ts_path = TestLib::perl2host(TestLib::tempdir_short()); + my $backup_ts_path = TestLib::tempdir_short(); # The tablespace map parameter confuses Msys2, which tries to mangle # it. Tell it not to. # See https://www.msys2.org/wiki/Porting/#filesystem-namespaces diff -Nru postgresql-13-13.4/src/bin/pg_verifybackup/t/005_bad_manifest.pl postgresql-13-13.7/src/bin/pg_verifybackup/t/005_bad_manifest.pl --- postgresql-13-13.4/src/bin/pg_verifybackup/t/005_bad_manifest.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_verifybackup/t/005_bad_manifest.pl 2022-05-09 21:16:30.000000000 +0000 @@ -173,6 +173,8 @@ sub test_parse_error { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($test_name, $manifest_contents) = @_; test_bad_manifest($test_name, @@ -183,6 +185,8 @@ sub test_fatal_error { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($test_name, $manifest_contents) = @_; test_bad_manifest($test_name, qr/fatal: $test_name/, $manifest_contents); @@ -191,6 +195,8 @@ sub test_bad_manifest { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($test_name, $regexp, $manifest_contents) = @_; open(my $fh, '>', "$tempdir/backup_manifest") || die "open: $!"; diff -Nru postgresql-13-13.4/src/bin/pg_verifybackup/t/007_wal.pl postgresql-13-13.7/src/bin/pg_verifybackup/t/007_wal.pl --- postgresql-13-13.4/src/bin/pg_verifybackup/t/007_wal.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_verifybackup/t/007_wal.pl 2022-05-09 21:16:30.000000000 +0000 @@ -7,7 +7,7 @@ use File::Path qw(rmtree); use PostgresNode; use TestLib; -use Test::More tests => 7; +use Test::More tests => 9; # Start up the server and take a backup. my $master = get_new_node('master'); @@ -56,3 +56,20 @@ [ 'pg_verifybackup', $backup_path ], qr/WAL parsing failed for timeline 1/, 'corrupt WAL file causes failure'); + +# Check that WAL-Ranges has correct values with a history file and +# a timeline > 1. Rather than plugging in a new standby, do a +# self-promotion of this node. +$master->stop; +$master->append_conf('standby.signal', ''); +$master->start; +$master->promote; +$master->safe_psql('postgres', 'SELECT pg_switch_wal()'); +my $backup_path2 = $master->backup_dir . '/test_tli'; +# The base backup run below does a checkpoint, that removes the first segment +# of the current timeline. +$master->command_ok([ 'pg_basebackup', '-D', $backup_path2, '--no-sync' ], + "base backup 2 ok"); +command_ok( + [ 'pg_verifybackup', $backup_path2 ], + 'valid base backup with timeline > 1'); diff -Nru postgresql-13-13.4/src/bin/pg_waldump/pg_waldump.c postgresql-13-13.7/src/bin/pg_waldump/pg_waldump.c --- postgresql-13-13.4/src/bin/pg_waldump/pg_waldump.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_waldump/pg_waldump.c 2022-05-09 21:16:30.000000000 +0000 @@ -177,7 +177,7 @@ if (IsXLogFileName(xlde->d_name)) { fd = open_file_in_directory(directory, xlde->d_name); - fname = xlde->d_name; + fname = pg_strdup(xlde->d_name); break; } } @@ -204,15 +204,12 @@ WalSegSz), fname, WalSegSz); } + else if (r < 0) + fatal_error("could not read file \"%s\": %m", + fname); else - { - if (errno != 0) - fatal_error("could not read file \"%s\": %m", - fname); - else - fatal_error("could not read file \"%s\": read %d of %zu", - fname, r, (Size) XLOG_BLCKSZ); - } + fatal_error("could not read file \"%s\": read %d of %zu", + fname, r, (Size) XLOG_BLCKSZ); close(fd); return true; } diff -Nru postgresql-13-13.4/src/bin/pg_waldump/po/fr.po postgresql-13-13.7/src/bin/pg_waldump/po/fr.po --- postgresql-13-13.4/src/bin/pg_waldump/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_waldump/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -86,7 +86,8 @@ "%s decodes and displays PostgreSQL write-ahead logs for debugging.\n" "\n" msgstr "" -"%s décode et affiche les journaux de transactions PostgreSQL pour du débogage.\n" +"%s décode et affiche les journaux de transactions PostgreSQL pour du\n" +"débogage.\n" "\n" #: pg_waldump.c:714 @@ -111,22 +112,28 @@ #: pg_waldump.c:717 #, c-format msgid " -b, --bkp-details output detailed information about backup blocks\n" -msgstr " -b, --bkp-details affiche des informations détaillées sur les blocs de sauvegarde\n" +msgstr "" +" -b, --bkp-details affiche des informations détaillées sur les\n" +" blocs de sauvegarde\n" #: pg_waldump.c:718 #, c-format msgid " -e, --end=RECPTR stop reading at WAL location RECPTR\n" -msgstr " -e, --end=RECPTR arrête la lecture des journaux de transactions à l'emplacement RECPTR\n" +msgstr "" +" -e, --end=RECPTR arrête la lecture des journaux de transactions à\n" +" l'emplacement RECPTR\n" #: pg_waldump.c:719 #, c-format msgid " -f, --follow keep retrying after reaching end of WAL\n" -msgstr " -f, --follow continue après avoir atteint la fin des journaux de transactions\n" +msgstr "" +" -f, --follow continue après avoir atteint la fin des journaux\n" +" de transactions\n" #: pg_waldump.c:720 #, c-format msgid " -n, --limit=N number of records to display\n" -msgstr " -n, --limit=N nombre d'enregistrements à afficher\n" +msgstr " -n, --limit=N nombre d'enregistrements à afficher\n" #: pg_waldump.c:721 #, c-format @@ -135,14 +142,15 @@ " directory with a ./pg_wal that contains such files\n" " (default: current directory, ./pg_wal, $PGDATA/pg_wal)\n" msgstr "" -" -p, --path=CHEMIN répertoire où trouver les fichiers des segments de journaux de transactions\n" -" ou un répertoire avec ./pg_wal qui contient ces fichiers\n" -" (par défaut: répertoire courant, ./pg_wal, $PGDATA/pg_wal)\n" +" -p, --path=CHEMIN répertoire où trouver les fichiers des segments\n" +" de journaux de transactions ou un répertoire avec\n" +" ./pg_wal qui contient ces fichiers (par défaut:\n" +" répertoire courant, ./pg_wal, $PGDATA/pg_wal)\n" #: pg_waldump.c:724 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" -msgstr " -q, --quiet n'écrit aucun message, sauf en cas d'erreur\n" +msgstr " -q, --quiet n'écrit aucun message, sauf en cas d'erreur\n" #: pg_waldump.c:725 #, c-format @@ -150,15 +158,17 @@ " -r, --rmgr=RMGR only show records generated by resource manager RMGR;\n" " use --rmgr=list to list valid resource manager names\n" msgstr "" -" -r, --rmgr=RMGR affiche seulement les enregistrements générés par le gestionnaire\n" -" de ressources RMGR, utilisez --rmgr=list pour avoir une liste des noms valides\n" -" de gestionnaires de ressources\n" -"\n" +" -r, --rmgr=RMGR affiche seulement les enregistrements générés\n" +" par le gestionnaire de ressources RMGR,\n" +" utilisez --rmgr=list pour avoir une liste des\n" +" noms valides de gestionnaires de ressources\n" #: pg_waldump.c:727 #, c-format msgid " -s, --start=RECPTR start reading at WAL location RECPTR\n" -msgstr " -s, --start=RECPTR commence à lire à l'emplacement RECPTR des journaux de transactions\n" +msgstr "" +" -s, --start=RECPTR commence à lire à l'emplacement RECPTR des\n" +" journaux de transactions\n" #: pg_waldump.c:728 #, c-format @@ -166,18 +176,21 @@ " -t, --timeline=TLI timeline from which to read log records\n" " (default: 1 or the value used in STARTSEG)\n" msgstr "" -" -t, --timeline=TLI timeline à partir de laquelle lire les enregistrements\n" -" des journaux (par défaut: 1 ou la valeur utilisée dans SEG_DÉBUT)\n" +" -t, --timeline=TLI timeline à partir de laquelle lire les\n" +" enregistrements des journaux (par défaut:\n" +" 1 ou la valeur utilisée dans SEG_DÉBUT)\n" #: pg_waldump.c:730 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: pg_waldump.c:731 #, c-format msgid " -x, --xid=XID only show records with transaction ID XID\n" -msgstr " -x, --xid=XID affiche seulement des enregistrements avec l'identifiant de transaction XID\n" +msgstr "" +" -x, --xid=XID affiche seulement des enregistrements avec\n" +" l'identifiant de transaction XID\n" #: pg_waldump.c:732 #, c-format @@ -185,13 +198,14 @@ " -z, --stats[=record] show statistics instead of records\n" " (optionally, show per-record statistics)\n" msgstr "" -" -z, --stats[=enregistrement] affiche des statistiques à la place d'enregistrements\n" -" (en option, affiche des statistiques par enregistrement)\n" +" -z, --stats[=enregistrement] affiche des statistiques à la place\n" +" d'enregistrements (en option, affiche\n" +" des statistiques par enregistrement)\n" #: pg_waldump.c:734 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" #: pg_waldump.c:735 #, c-format @@ -205,7 +219,7 @@ #: pg_waldump.c:736 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil %s : <%s>\n" +msgstr "Page d'accueil %s : <%s>\n" #: pg_waldump.c:813 #, c-format diff -Nru postgresql-13-13.4/src/bin/pg_waldump/po/ru.po postgresql-13-13.7/src/bin/pg_waldump/po/ru.po --- postgresql-13-13.4/src/bin/pg_waldump/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_waldump/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: pg_waldump (PostgreSQL) 10\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-03 11:22+0300\n" +"POT-Creation-Date: 2022-03-11 08:13+0300\n" "PO-Revision-Date: 2020-09-03 15:07+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -55,43 +55,43 @@ "Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " "ГБ, но в заголовке файла WAL \"%s\" указано значение: %d" -#: pg_waldump.c:210 +#: pg_waldump.c:208 #, c-format msgid "could not read file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" -#: pg_waldump.c:213 +#: pg_waldump.c:211 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" -#: pg_waldump.c:275 +#: pg_waldump.c:272 #, c-format msgid "could not locate WAL file \"%s\"" msgstr "не удалось найти файл WAL \"%s\"" -#: pg_waldump.c:277 +#: pg_waldump.c:274 #, c-format msgid "could not find any WAL file" msgstr "не удалось найти ни одного файла WAL" -#: pg_waldump.c:318 +#: pg_waldump.c:315 #, c-format msgid "could not find file \"%s\": %m" msgstr "не удалось найти файл \"%s\": %m" -#: pg_waldump.c:367 +#: pg_waldump.c:364 #, c-format msgid "could not read from file %s, offset %u: %m" msgstr "не удалось прочитать из файла \"%s\" по смещению %u: %m" -#: pg_waldump.c:371 +#: pg_waldump.c:368 #, c-format msgid "could not read from file %s, offset %u: read %d of %zu" msgstr "" "не удалось прочитать из файла %s по смещению %u (прочитано байт: %d из %zu)" -#: pg_waldump.c:720 +#: pg_waldump.c:726 #, c-format msgid "" "%s decodes and displays PostgreSQL write-ahead logs for debugging.\n" @@ -100,17 +100,17 @@ "%s декодирует и показывает журналы предзаписи PostgreSQL для целей отладки.\n" "\n" -#: pg_waldump.c:722 +#: pg_waldump.c:728 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: pg_waldump.c:723 +#: pg_waldump.c:729 #, c-format msgid " %s [OPTION]... [STARTSEG [ENDSEG]]\n" msgstr " %s [ПАРАМЕТР]... [НАЧАЛЬНЫЙ_СЕГМЕНТ [КОНЕЧНЫЙ_СЕГМЕНТ]]\n" -#: pg_waldump.c:724 +#: pg_waldump.c:730 #, c-format msgid "" "\n" @@ -119,7 +119,7 @@ "\n" "Параметры:\n" -#: pg_waldump.c:725 +#: pg_waldump.c:731 #, c-format msgid "" " -b, --bkp-details output detailed information about backup blocks\n" @@ -127,25 +127,25 @@ " -b, --bkp-details вывести подробную информацию о копиях страниц\n" # well-spelled: ПОЗЗАП -#: pg_waldump.c:726 +#: pg_waldump.c:732 #, c-format msgid " -e, --end=RECPTR stop reading at WAL location RECPTR\n" msgstr "" " -e, --end=ПОЗЗАП прекратить чтение в заданной позиции записи в WAL\n" -#: pg_waldump.c:727 +#: pg_waldump.c:733 #, c-format msgid " -f, --follow keep retrying after reaching end of WAL\n" msgstr "" " -f, --follow повторять попытки чтения по достижении конца WAL\n" -#: pg_waldump.c:728 +#: pg_waldump.c:734 #, c-format msgid " -n, --limit=N number of records to display\n" msgstr " -n, --limit=N число выводимых записей\n" # skip-rule: space-before-period -#: pg_waldump.c:729 +#: pg_waldump.c:735 #, c-format msgid "" " -p, --path=PATH directory in which to find log segment files or a\n" @@ -160,13 +160,13 @@ " (по умолчанию: текущий каталог,\n" " ./pg_wal, $PGDATA/pg_wal)\n" -#: pg_waldump.c:732 +#: pg_waldump.c:738 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet не выводить никаких сообщений, кроме ошибок\n" # well-spelled: МНГР -#: pg_waldump.c:733 +#: pg_waldump.c:739 #, c-format msgid "" " -r, --rmgr=RMGR only show records generated by resource manager " @@ -179,14 +179,14 @@ " укажите --rmgr=list\n" # well-spelled: ПОЗЗАП -#: pg_waldump.c:735 +#: pg_waldump.c:741 #, c-format msgid " -s, --start=RECPTR start reading at WAL location RECPTR\n" msgstr "" " -s, --start=ПОЗЗАП начать чтение с заданной позиции записи в WAL\n" # well-spelled: ЛВР -#: pg_waldump.c:736 +#: pg_waldump.c:742 #, c-format msgid "" " -t, --timeline=TLI timeline from which to read log records\n" @@ -197,19 +197,19 @@ "аргументом\n" " НАЧАЛЬНЫЙ_СЕГМЕНТ)\n" -#: pg_waldump.c:738 +#: pg_waldump.c:744 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_waldump.c:739 +#: pg_waldump.c:745 #, c-format msgid " -x, --xid=XID only show records with transaction ID XID\n" msgstr "" " -x, --xid=XID выводить только записи с заданным\n" " идентификатором транзакции\n" -#: pg_waldump.c:740 +#: pg_waldump.c:746 #, c-format msgid "" " -z, --stats[=record] show statistics instead of records\n" @@ -218,12 +218,12 @@ " -z, --stats[=record] показывать статистику вместо записей\n" " (также возможно получить статистику по записям)\n" -#: pg_waldump.c:742 +#: pg_waldump.c:748 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_waldump.c:743 +#: pg_waldump.c:749 #, c-format msgid "" "\n" @@ -232,97 +232,97 @@ "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_waldump.c:744 +#: pg_waldump.c:750 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_waldump.c:821 +#: pg_waldump.c:827 #, c-format msgid "no arguments specified" msgstr "аргументы не указаны" -#: pg_waldump.c:836 +#: pg_waldump.c:842 #, c-format msgid "could not parse end WAL location \"%s\"" msgstr "не удалось разобрать конечную позицию в WAL \"%s\"" -#: pg_waldump.c:848 +#: pg_waldump.c:854 #, c-format msgid "could not parse limit \"%s\"" msgstr "не удалось разобрать предел в \"%s\"" -#: pg_waldump.c:879 +#: pg_waldump.c:885 #, c-format msgid "resource manager \"%s\" does not exist" msgstr "менеджер ресурсов \"%s\" не существует" -#: pg_waldump.c:888 +#: pg_waldump.c:894 #, c-format msgid "could not parse start WAL location \"%s\"" msgstr "не удалось разобрать начальную позицию в WAL \"%s\"" -#: pg_waldump.c:898 +#: pg_waldump.c:904 #, c-format msgid "could not parse timeline \"%s\"" msgstr "не удалось разобрать линию времени в \"%s\"" -#: pg_waldump.c:905 +#: pg_waldump.c:911 #, c-format msgid "could not parse \"%s\" as a transaction ID" msgstr "не удалось разобрать в \"%s\" идентификатор транзакции" -#: pg_waldump.c:920 +#: pg_waldump.c:926 #, c-format msgid "unrecognized argument to --stats: %s" msgstr "нераспознанный аргумент ключа --stats: %s" -#: pg_waldump.c:933 +#: pg_waldump.c:939 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_waldump.c:943 pg_waldump.c:963 +#: pg_waldump.c:949 pg_waldump.c:969 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: pg_waldump.c:969 pg_waldump.c:1000 +#: pg_waldump.c:975 pg_waldump.c:1006 #, c-format msgid "could not open file \"%s\"" msgstr "не удалось открыть файл \"%s\"" -#: pg_waldump.c:979 +#: pg_waldump.c:985 #, c-format msgid "start WAL location %X/%X is not inside file \"%s\"" msgstr "начальная позиция в WAL %X/%X находится не в файле \"%s\"" -#: pg_waldump.c:1007 +#: pg_waldump.c:1013 #, c-format msgid "ENDSEG %s is before STARTSEG %s" msgstr "КОНЕЧНЫЙ_СЕГМЕНТ %s меньше, чем НАЧАЛЬНЫЙ_СЕГМЕНТ %s" -#: pg_waldump.c:1022 +#: pg_waldump.c:1028 #, c-format msgid "end WAL location %X/%X is not inside file \"%s\"" msgstr "конечная позиция в WAL %X/%X находится не в файле \"%s\"" -#: pg_waldump.c:1035 +#: pg_waldump.c:1041 #, c-format msgid "no start WAL location given" msgstr "начальная позиция в WAL не задана" -#: pg_waldump.c:1049 +#: pg_waldump.c:1055 #, c-format msgid "out of memory" msgstr "нехватка памяти" -#: pg_waldump.c:1055 +#: pg_waldump.c:1061 #, c-format msgid "could not find a valid record after %X/%X" msgstr "не удалось найти действительную запись после позиции %X/%X" -#: pg_waldump.c:1066 +#: pg_waldump.c:1072 #, c-format msgid "first record is after %X/%X, at %X/%X, skipping over %u byte\n" msgid_plural "first record is after %X/%X, at %X/%X, skipping over %u bytes\n" @@ -333,12 +333,12 @@ msgstr[2] "" "первая запись обнаружена после %X/%X, в позиции %X/%X, пропускается %u Б\n" -#: pg_waldump.c:1117 +#: pg_waldump.c:1123 #, c-format msgid "error in WAL record at %X/%X: %s" msgstr "ошибка в записи WAL в позиции %X/%X: %s" -#: pg_waldump.c:1127 +#: pg_waldump.c:1133 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Для дополнительной информации попробуйте \"%s --help\".\n" diff -Nru postgresql-13-13.4/src/bin/pg_waldump/po/sv.po postgresql-13-13.7/src/bin/pg_waldump/po/sv.po --- postgresql-13-13.4/src/bin/pg_waldump/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/pg_waldump/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for pg_waldump # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021 # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:15+0000\n" -"PO-Revision-Date: 2020-04-11 08:33+0200\n" +"POT-Creation-Date: 2022-02-18 04:29+0000\n" +"PO-Revision-Date: 2021-11-07 10:37+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -64,39 +64,39 @@ msgid "could not find any WAL file" msgstr "kunde inte hitta några WAL-filer" -#: pg_waldump.c:319 +#: pg_waldump.c:318 #, c-format msgid "could not find file \"%s\": %m" msgstr "kunde inte hitta filen \"%s\": %m" -#: pg_waldump.c:359 +#: pg_waldump.c:367 #, c-format msgid "could not read from file %s, offset %u: %m" msgstr "Kunde inte läsa från fil %s på offset %u: %m" -#: pg_waldump.c:363 +#: pg_waldump.c:371 #, c-format msgid "could not read from file %s, offset %u: read %d of %zu" msgstr "kunde inte läsa från fil %s, offset %u, läste %d av %zu" -#: pg_waldump.c:712 +#: pg_waldump.c:729 #, c-format msgid "" "%s decodes and displays PostgreSQL write-ahead logs for debugging.\n" "\n" msgstr "%s avkodar och visar PostgreSQLs write-ahead-logg för debuggning.\n" -#: pg_waldump.c:714 +#: pg_waldump.c:731 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_waldump.c:715 +#: pg_waldump.c:732 #, c-format msgid " %s [OPTION]... [STARTSEG [ENDSEG]]\n" msgstr " %s [FLAGGA]... [STARTSEG [SLUTSEG]]\n" -#: pg_waldump.c:716 +#: pg_waldump.c:733 #, c-format msgid "" "\n" @@ -105,27 +105,27 @@ "\n" "Flaggor:\n" -#: pg_waldump.c:717 +#: pg_waldump.c:734 #, c-format msgid " -b, --bkp-details output detailed information about backup blocks\n" msgstr " -b, --bkp-details skriv detaljerad information om backupblock\n" -#: pg_waldump.c:718 +#: pg_waldump.c:735 #, c-format msgid " -e, --end=RECPTR stop reading at WAL location RECPTR\n" msgstr " -e, --end=RECPTR stoppa läsning vid WAL-position RECPTR\n" -#: pg_waldump.c:719 +#: pg_waldump.c:736 #, c-format msgid " -f, --follow keep retrying after reaching end of WAL\n" msgstr " -f, --follow fortsätt försök efter att ha nått slutet av WAL\n" -#: pg_waldump.c:720 +#: pg_waldump.c:737 #, c-format msgid " -n, --limit=N number of records to display\n" msgstr " -n, --limit=N antal poster att visa\n" -#: pg_waldump.c:721 +#: pg_waldump.c:738 #, c-format msgid "" " -p, --path=PATH directory in which to find log segment files or a\n" @@ -136,12 +136,12 @@ " katalog med en ./pg_wal som innehåller sådana filer\n" " (standard: aktuell katalog, ./pg_wal, $PGDATA/pg_wal)\n" -#: pg_waldump.c:724 +#: pg_waldump.c:741 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet skriv inte ut några meddelanden förutom fel\n" -#: pg_waldump.c:725 +#: pg_waldump.c:742 #, c-format msgid "" " -r, --rmgr=RMGR only show records generated by resource manager RMGR;\n" @@ -150,12 +150,12 @@ " -r, --rmgr=RMGR visa bara poster skapade av resurshanteraren RMGR;\n" " använd --rmgr=list för att lista giltiga resurshanterarnamn\n" -#: pg_waldump.c:727 +#: pg_waldump.c:744 #, c-format msgid " -s, --start=RECPTR start reading at WAL location RECPTR\n" msgstr " -s, --start=RECPTR börja läsning vid WAL-position RECPTR\n" -#: pg_waldump.c:728 +#: pg_waldump.c:745 #, c-format msgid "" " -t, --timeline=TLI timeline from which to read log records\n" @@ -164,17 +164,17 @@ " -t, --timeline=TLI tidslinje från vilken vi läser loggposter\n" " (standard: 1 eller värdet som används i STARTSEG)\n" -#: pg_waldump.c:730 +#: pg_waldump.c:747 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_waldump.c:731 +#: pg_waldump.c:748 #, c-format msgid " -x, --xid=XID only show records with transaction ID XID\n" msgstr " -x, --xid=XID visa baras poster med transaktions-ID XID\n" -#: pg_waldump.c:732 +#: pg_waldump.c:749 #, c-format msgid "" " -z, --stats[=record] show statistics instead of records\n" @@ -183,12 +183,12 @@ " -z, --stats[=post] visa statistik istället för poster\n" " (alternativt, visa statistik per post)\n" -#: pg_waldump.c:734 +#: pg_waldump.c:751 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa den här hjälpen, avsluta sedan\n" -#: pg_waldump.c:735 +#: pg_waldump.c:752 #, c-format msgid "" "\n" @@ -197,109 +197,109 @@ "\n" "Rapportera fel till <%s>.\n" -#: pg_waldump.c:736 +#: pg_waldump.c:753 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_waldump.c:813 +#: pg_waldump.c:830 #, c-format msgid "no arguments specified" msgstr "inga argument angivna" -#: pg_waldump.c:828 +#: pg_waldump.c:845 #, c-format msgid "could not parse end WAL location \"%s\"" msgstr "kunde inte parsa slut-WAL-position \"%s\"" -#: pg_waldump.c:840 +#: pg_waldump.c:857 #, c-format msgid "could not parse limit \"%s\"" msgstr "kunde inte parsa gränsen \"%s\"" -#: pg_waldump.c:871 +#: pg_waldump.c:888 #, c-format msgid "resource manager \"%s\" does not exist" msgstr "resurshanterare \"%s\" finns inte" -#: pg_waldump.c:880 +#: pg_waldump.c:897 #, c-format msgid "could not parse start WAL location \"%s\"" msgstr "kunde inte parsa start-WAL-position \"%s\"" -#: pg_waldump.c:890 +#: pg_waldump.c:907 #, c-format msgid "could not parse timeline \"%s\"" msgstr "kunde inte parsa tidlinjen \"%s\"" -#: pg_waldump.c:897 +#: pg_waldump.c:914 #, c-format msgid "could not parse \"%s\" as a transaction ID" msgstr "kunde inte parsa \"%s\" som ett transaktions-ID" -#: pg_waldump.c:912 +#: pg_waldump.c:929 #, c-format msgid "unrecognized argument to --stats: %s" msgstr "okänt argument till --stats: %s" -#: pg_waldump.c:925 +#: pg_waldump.c:942 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_waldump.c:935 pg_waldump.c:955 +#: pg_waldump.c:952 pg_waldump.c:972 #, c-format msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: pg_waldump.c:961 pg_waldump.c:992 +#: pg_waldump.c:978 pg_waldump.c:1009 #, c-format msgid "could not open file \"%s\"" msgstr "kunde inte öppna filen \"%s\"" -#: pg_waldump.c:971 +#: pg_waldump.c:988 #, c-format msgid "start WAL location %X/%X is not inside file \"%s\"" msgstr "start-WAL-position %X/%X är inte i filen \"%s\"" -#: pg_waldump.c:999 +#: pg_waldump.c:1016 #, c-format msgid "ENDSEG %s is before STARTSEG %s" msgstr "SLUTSEG %s är före STARTSEG %s" -#: pg_waldump.c:1014 +#: pg_waldump.c:1031 #, c-format msgid "end WAL location %X/%X is not inside file \"%s\"" msgstr "slut-WAL-position %X/%X är inte i filen \"%s\"" -#: pg_waldump.c:1027 +#: pg_waldump.c:1044 #, c-format msgid "no start WAL location given" msgstr "ingen start-WAL-position angiven" -#: pg_waldump.c:1037 +#: pg_waldump.c:1058 #, c-format msgid "out of memory" msgstr "slut på minne" -#: pg_waldump.c:1043 +#: pg_waldump.c:1064 #, c-format msgid "could not find a valid record after %X/%X" msgstr "kunde inte hitta en giltig post efter %X/%X" -#: pg_waldump.c:1054 +#: pg_waldump.c:1075 #, c-format msgid "first record is after %X/%X, at %X/%X, skipping over %u byte\n" msgid_plural "first record is after %X/%X, at %X/%X, skipping over %u bytes\n" msgstr[0] "första posten efter %X/%X, vid %X/%X, hoppar över %u byte\n" msgstr[1] "första posten efter %X/%X, vid %X/%X, hoppar över %u byte\n" -#: pg_waldump.c:1105 +#: pg_waldump.c:1126 #, c-format msgid "error in WAL record at %X/%X: %s" msgstr "fel i WAL-post vid %X/%X: %s" -#: pg_waldump.c:1115 +#: pg_waldump.c:1136 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" diff -Nru postgresql-13-13.4/src/bin/psql/command.c postgresql-13-13.7/src/bin/psql/command.c --- postgresql-13-13.4/src/bin/psql/command.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/psql/command.c 2022-05-09 21:16:30.000000000 +0000 @@ -1963,12 +1963,29 @@ if (active_branch) { - char *opt0 = psql_scan_slash_option(scan_state, + char *user = psql_scan_slash_option(scan_state, OT_SQLID, NULL, true); char pw1[100]; char pw2[100]; + PQExpBufferData buf; - simple_prompt("Enter new password: ", pw1, sizeof(pw1), false); + if (user == NULL) + { + /* By default, the command applies to CURRENT_USER */ + PGresult *res; + + res = PSQLexec("SELECT CURRENT_USER"); + if (!res) + return PSQL_CMD_ERROR; + + user = pg_strdup(PQgetvalue(res, 0, 0)); + PQclear(res); + } + + initPQExpBuffer(&buf); + printfPQExpBuffer(&buf, _("Enter new password for user \"%s\": "), user); + + simple_prompt(buf.data, pw1, sizeof(pw1), false); simple_prompt("Enter it again: ", pw2, sizeof(pw2), false); if (strcmp(pw1, pw2) != 0) @@ -1978,14 +1995,8 @@ } else { - char *user; char *encrypted_password; - if (opt0) - user = opt0; - else - user = PQuser(pset.db); - encrypted_password = PQencryptPasswordConn(pset.db, pw1, user, NULL); if (!encrypted_password) @@ -1995,15 +2006,12 @@ } else { - PQExpBufferData buf; PGresult *res; - initPQExpBuffer(&buf); printfPQExpBuffer(&buf, "ALTER USER %s PASSWORD ", fmtId(user)); appendStringLiteralConn(&buf, encrypted_password, pset.db); res = PSQLexec(buf.data); - termPQExpBuffer(&buf); if (!res) success = false; else @@ -2012,8 +2020,8 @@ } } - if (opt0) - free(opt0); + free(user); + termPQExpBuffer(&buf); } else ignore_slash_options(scan_state); diff -Nru postgresql-13-13.4/src/bin/psql/describe.c postgresql-13-13.7/src/bin/psql/describe.c --- postgresql-13-13.4/src/bin/psql/describe.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/psql/describe.c 2022-05-09 21:16:30.000000000 +0000 @@ -2953,22 +2953,45 @@ printfPQExpBuffer(&buf, "SELECT t.tgname, " "pg_catalog.pg_get_triggerdef(t.oid%s), " - "t.tgenabled, %s, %s\n" - "FROM pg_catalog.pg_trigger t\n" - "WHERE t.tgrelid = '%s' AND ", + "t.tgenabled, %s,\n", (pset.sversion >= 90000 ? ", true" : ""), (pset.sversion >= 90000 ? "t.tgisinternal" : pset.sversion >= 80300 ? "t.tgconstraint <> 0 AS tgisinternal" : - "false AS tgisinternal"), - (pset.sversion >= 130000 ? - "(SELECT (NULLIF(a.relid, t.tgrelid))::pg_catalog.regclass" - " FROM pg_catalog.pg_trigger AS u, " - " pg_catalog.pg_partition_ancestors(t.tgrelid) AS a" - " WHERE u.tgname = t.tgname AND u.tgrelid = a.relid" - " AND u.tgparentid = 0) AS parent" : - "NULL AS parent"), + "false AS tgisinternal")); + + /* + * Detect whether each trigger is inherited, and if so, get the name + * of the topmost table it's inherited from. We have no easy way to + * do that pre-v13, for lack of the tgparentid column. Even with + * tgparentid, a straightforward search for the topmost parent would + * require a recursive CTE, which seems unduly expensive. We cheat a + * bit by assuming parent triggers will match by tgname; then, joining + * with pg_partition_ancestors() allows the planner to make use of + * pg_trigger_tgrelid_tgname_index if it wishes. We ensure we find + * the correct topmost parent by stopping at the first-in-partition- + * ancestry-order trigger that has tgparentid = 0. (There might be + * unrelated, non-inherited triggers with the same name further up the + * stack, so this is important.) + */ + if (pset.sversion >= 130000) + appendPQExpBufferStr(&buf, + " CASE WHEN t.tgparentid != 0 THEN\n" + " (SELECT u.tgrelid::pg_catalog.regclass\n" + " FROM pg_catalog.pg_trigger AS u,\n" + " pg_catalog.pg_partition_ancestors(t.tgrelid) WITH ORDINALITY AS a(relid, depth)\n" + " WHERE u.tgname = t.tgname AND u.tgrelid = a.relid\n" + " AND u.tgparentid = 0\n" + " ORDER BY a.depth LIMIT 1)\n" + " END AS parent\n"); + else + appendPQExpBufferStr(&buf, " NULL AS parent\n"); + + appendPQExpBuffer(&buf, + "FROM pg_catalog.pg_trigger t\n" + "WHERE t.tgrelid = '%s' AND ", oid); + if (pset.sversion >= 110000) appendPQExpBufferStr(&buf, "(NOT t.tgisinternal OR (t.tgisinternal AND t.tgenabled = 'D') \n" " OR EXISTS (SELECT 1 FROM pg_catalog.pg_depend WHERE objid = t.oid \n" @@ -3947,12 +3970,12 @@ if (showNested || pattern) appendPQExpBuffer(&buf, - ",\n inh.inhparent::regclass as \"%s\"", + ",\n inh.inhparent::pg_catalog.regclass as \"%s\"", gettext_noop("Parent name")); if (showIndexes) appendPQExpBuffer(&buf, - ",\n c2.oid::regclass as \"%s\"", + ",\n c2.oid::pg_catalog.regclass as \"%s\"", gettext_noop("Table")); if (verbose) diff -Nru postgresql-13-13.4/src/bin/psql/po/de.po postgresql-13-13.7/src/bin/psql/po/de.po --- postgresql-13-13.4/src/bin/psql/po/de.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/psql/po/de.po 2022-05-09 21:16:30.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-07-22 03:56+0000\n" +"POT-Creation-Date: 2022-02-03 03:28+0000\n" "PO-Revision-Date: 2021-07-22 08:42+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" @@ -68,7 +68,7 @@ msgstr "pclose fehlgeschlagen: %m" #: ../../common/exec.c:539 ../../common/exec.c:584 ../../common/exec.c:676 -#: command.c:1256 command.c:3193 command.c:3242 command.c:3359 input.c:227 +#: command.c:1256 command.c:3201 command.c:3250 command.c:3367 input.c:227 #: mainloop.c:81 mainloop.c:402 #, c-format msgid "out of memory" @@ -129,11 +129,11 @@ msgid "child process exited with unrecognized status %d" msgstr "Kindprozess hat mit unbekanntem Status %d beendet" -#: ../../fe_utils/cancel.c:161 ../../fe_utils/cancel.c:206 +#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 msgid "Cancel request sent\n" msgstr "Abbruchsanforderung gesendet\n" -#: ../../fe_utils/cancel.c:165 ../../fe_utils/cancel.c:210 +#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 msgid "Could not send cancel request: " msgstr "Konnte Abbruchsanforderung nicht senden: " @@ -224,12 +224,12 @@ msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Sie sind verbunden mit der Datenbank »%s« als Benutzer »%s« auf Host »%s« auf Port »%s«.\n" -#: command.c:966 command.c:1062 command.c:2551 +#: command.c:966 command.c:1062 command.c:2559 #, c-format msgid "no query buffer" msgstr "kein Anfragepuffer" -#: command.c:999 command.c:5211 +#: command.c:999 command.c:5219 #, c-format msgid "invalid line number: %s" msgstr "ungültige Zeilennummer: %s" @@ -253,7 +253,7 @@ msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s: ungültiger Kodierungsname oder Umwandlungsprozedur nicht gefunden" -#: command.c:1252 command.c:1993 command.c:3189 command.c:3381 command.c:5313 +#: command.c:1252 command.c:2004 command.c:3197 command.c:3389 command.c:5321 #: common.c:176 common.c:225 common.c:390 common.c:1246 common.c:1274 #: common.c:1383 common.c:1490 common.c:1528 copy.c:488 copy.c:707 help.c:62 #: large_obj.c:157 large_obj.c:192 large_obj.c:254 startup.c:299 @@ -270,8 +270,8 @@ msgid "\\%s: missing right parenthesis" msgstr "\\%s: rechte Klammer fehlt" -#: command.c:1549 command.c:1854 command.c:1868 command.c:1885 command.c:2045 -#: command.c:2282 command.c:2518 command.c:2558 +#: command.c:1549 command.c:1854 command.c:1868 command.c:1885 command.c:2053 +#: command.c:2290 command.c:2526 command.c:2566 #, c-format msgid "\\%s: missing required argument" msgstr "\\%s: notwendiges Argument fehlt" @@ -305,129 +305,130 @@ msgid "Query buffer is empty." msgstr "Anfragepuffer ist leer." -#: command.c:1971 -msgid "Enter new password: " -msgstr "Neues Passwort eingeben: " +#: command.c:1986 +#, c-format +msgid "Enter new password for user \"%s\": " +msgstr "Neues Passwort für Benutzer »%s« eingeben: " -#: command.c:1972 +#: command.c:1989 msgid "Enter it again: " msgstr "Geben Sie es noch einmal ein: " -#: command.c:1976 +#: command.c:1993 #, c-format msgid "Passwords didn't match." msgstr "Passwörter stimmten nicht überein." -#: command.c:2075 +#: command.c:2083 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: konnte Wert für Variable nicht lesen" -#: command.c:2178 +#: command.c:2186 msgid "Query buffer reset (cleared)." msgstr "Anfragepuffer wurde gelöscht." -#: command.c:2200 +#: command.c:2208 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "Befehlsgeschichte in Datei »%s« geschrieben.\n" -#: command.c:2287 +#: command.c:2295 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: Name der Umgebungsvariable darf kein »=« enthalten" -#: command.c:2348 +#: command.c:2356 #, c-format msgid "The server (version %s) does not support showing function source." msgstr "Der Server (Version %s) unterstützt das Anzeigen des Funktionsquelltextes nicht." -#: command.c:2351 +#: command.c:2359 #, c-format msgid "The server (version %s) does not support showing view definitions." msgstr "Der Server (Version %s) unterstützt das Anzeigen von Sichtdefinitionen nicht." -#: command.c:2358 +#: command.c:2366 #, c-format msgid "function name is required" msgstr "Funktionsname wird benötigt" -#: command.c:2360 +#: command.c:2368 #, c-format msgid "view name is required" msgstr "Sichtname wird benötigt" -#: command.c:2490 +#: command.c:2498 msgid "Timing is on." msgstr "Zeitmessung ist an." -#: command.c:2492 +#: command.c:2500 msgid "Timing is off." msgstr "Zeitmessung ist aus." -#: command.c:2577 command.c:2605 command.c:3790 command.c:3793 command.c:3796 -#: command.c:3802 command.c:3804 command.c:3830 command.c:3840 command.c:3852 -#: command.c:3866 command.c:3883 command.c:3941 common.c:72 copy.c:331 +#: command.c:2585 command.c:2613 command.c:3798 command.c:3801 command.c:3804 +#: command.c:3810 command.c:3812 command.c:3838 command.c:3848 command.c:3860 +#: command.c:3874 command.c:3891 command.c:3949 common.c:72 copy.c:331 #: copy.c:403 psqlscanslash.l:786 psqlscanslash.l:797 psqlscanslash.l:807 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2989 startup.c:236 startup.c:287 +#: command.c:2997 startup.c:236 startup.c:287 msgid "Password: " msgstr "Passwort: " -#: command.c:2994 startup.c:284 +#: command.c:3002 startup.c:284 #, c-format msgid "Password for user %s: " msgstr "Passwort für Benutzer %s: " -#: command.c:3048 +#: command.c:3056 #, c-format msgid "All connection parameters must be supplied because no database connection exists" msgstr "Alle Verbindungsparameter müssen angegeben werden, weil keine Datenbankverbindung besteht" -#: command.c:3387 +#: command.c:3395 #, c-format msgid "Previous connection kept" msgstr "Vorherige Verbindung wurde behalten" -#: command.c:3393 +#: command.c:3401 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3440 +#: command.c:3448 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Sie sind jetzt verbunden mit der Datenbank »%s« als Benutzer »%s« auf Adresse »%s« auf Port »%s«.\n" -#: command.c:3443 +#: command.c:3451 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Sie sind jetzt verbunden mit der Datenbank »%s« als Benutzer »%s« via Socket in »%s« auf Port »%s«.\n" -#: command.c:3449 +#: command.c:3457 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "Sie sind jetzt verbunden mit der Datenbank »%s« als Benutzer »%s« auf Host »%s« (Adresse »%s«) auf Port »%s«.\n" -#: command.c:3452 +#: command.c:3460 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Sie sind jetzt verbunden mit der Datenbank »%s« als Benutzer »%s« auf Host »%s« auf Port »%s«.\n" -#: command.c:3457 +#: command.c:3465 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "Sie sind jetzt verbunden mit der Datenbank »%s« als Benutzer »%s«.\n" -#: command.c:3490 +#: command.c:3498 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, Server %s)\n" -#: command.c:3498 +#: command.c:3506 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -436,29 +437,29 @@ "WARNUNG: %s-Hauptversion %s, Server-Hauptversion %s.\n" " Einige Features von psql werden eventuell nicht funktionieren.\n" -#: command.c:3537 +#: command.c:3545 #, c-format msgid "SSL connection (protocol: %s, cipher: %s, bits: %s, compression: %s)\n" msgstr "SSL-Verbindung (Protokoll: %s, Verschlüsselungsmethode: %s, Bits: %s, Komprimierung: %s)\n" -#: command.c:3538 command.c:3539 command.c:3540 +#: command.c:3546 command.c:3547 command.c:3548 msgid "unknown" msgstr "unbekannt" -#: command.c:3541 help.c:45 +#: command.c:3549 help.c:45 msgid "off" msgstr "aus" -#: command.c:3541 help.c:45 +#: command.c:3549 help.c:45 msgid "on" msgstr "an" -#: command.c:3555 +#: command.c:3563 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "GSSAPI-verschlüsselte Verbindung\n" -#: command.c:3575 +#: command.c:3583 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -470,259 +471,259 @@ " richtig. Einzelheiten finden Sie auf der psql-Handbuchseite unter\n" " »Notes for Windows users«.\n" -#: command.c:3679 +#: command.c:3687 #, c-format msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number" msgstr "Umgebungsvariable PSQL_EDITOR_LINENUMBER_ARG muss gesetzt werden, um eine Zeilennummer angeben zu können" -#: command.c:3708 +#: command.c:3716 #, c-format msgid "could not start editor \"%s\"" msgstr "konnte Editor »%s« nicht starten" -#: command.c:3710 +#: command.c:3718 #, c-format msgid "could not start /bin/sh" msgstr "konnte /bin/sh nicht starten" -#: command.c:3747 +#: command.c:3755 #, c-format msgid "could not locate temporary directory: %s" msgstr "konnte temporäres Verzeichnis nicht finden: %s" -#: command.c:3774 +#: command.c:3782 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "konnte temporäre Datei »%s« nicht öffnen: %m" -#: command.c:4100 +#: command.c:4108 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "\\pset: Abkürzung »%s« ist nicht eindeutig, passt auf »%s« und »%s«" -#: command.c:4120 +#: command.c:4128 #, c-format msgid "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" msgstr "\\pset: zulässige Formate sind aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" -#: command.c:4139 +#: command.c:4147 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: zulässige Linienstile sind ascii, old-ascii, unicode" -#: command.c:4154 +#: command.c:4162 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: zulässige Unicode-Rahmnenlinienstile sind single, double" -#: command.c:4169 +#: command.c:4177 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: zulässige Unicode-Spaltenlinienstile sind single, double" -#: command.c:4184 +#: command.c:4192 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: zulässige Unicode-Kopflinienstile sind single, double" -#: command.c:4227 +#: command.c:4235 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: csv_fieldsep muss ein einzelnes Ein-Byte-Zeichen sein" -#: command.c:4232 +#: command.c:4240 #, c-format msgid "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return" msgstr "\\pset: csv_fieldsep kann nicht doppeltes Anführungszeichen, Newline oder Carriage Return sein" -#: command.c:4369 command.c:4557 +#: command.c:4377 command.c:4565 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset: unbekannte Option: %s" -#: command.c:4389 +#: command.c:4397 #, c-format msgid "Border style is %d.\n" msgstr "Rahmenstil ist %d.\n" -#: command.c:4395 +#: command.c:4403 #, c-format msgid "Target width is unset.\n" msgstr "Zielbreite ist nicht gesetzt.\n" -#: command.c:4397 +#: command.c:4405 #, c-format msgid "Target width is %d.\n" msgstr "Zielbreite ist %d.\n" -#: command.c:4404 +#: command.c:4412 #, c-format msgid "Expanded display is on.\n" msgstr "Erweiterte Anzeige ist an.\n" -#: command.c:4406 +#: command.c:4414 #, c-format msgid "Expanded display is used automatically.\n" msgstr "Erweiterte Anzeige wird automatisch verwendet.\n" -#: command.c:4408 +#: command.c:4416 #, c-format msgid "Expanded display is off.\n" msgstr "Erweiterte Anzeige ist aus.\n" -#: command.c:4414 +#: command.c:4422 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Feldtrennzeichen für CSV ist »%s«.\n" -#: command.c:4422 command.c:4430 +#: command.c:4430 command.c:4438 #, c-format msgid "Field separator is zero byte.\n" msgstr "Feldtrennzeichen ist ein Null-Byte.\n" -#: command.c:4424 +#: command.c:4432 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Feldtrennzeichen ist »%s«.\n" -#: command.c:4437 +#: command.c:4445 #, c-format msgid "Default footer is on.\n" msgstr "Standardfußzeile ist an.\n" -#: command.c:4439 +#: command.c:4447 #, c-format msgid "Default footer is off.\n" msgstr "Standardfußzeile ist aus.\n" -#: command.c:4445 +#: command.c:4453 #, c-format msgid "Output format is %s.\n" msgstr "Ausgabeformat ist »%s«.\n" -#: command.c:4451 +#: command.c:4459 #, c-format msgid "Line style is %s.\n" msgstr "Linienstil ist %s.\n" -#: command.c:4458 +#: command.c:4466 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null-Anzeige ist »%s«.\n" -#: command.c:4466 +#: command.c:4474 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "Lokalisiertes Format für numerische Daten ist an.\n" -#: command.c:4468 +#: command.c:4476 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "Lokalisiertes Format für numerische Daten ist aus.\n" -#: command.c:4475 +#: command.c:4483 #, c-format msgid "Pager is used for long output.\n" msgstr "Pager wird für lange Ausgaben verwendet.\n" -#: command.c:4477 +#: command.c:4485 #, c-format msgid "Pager is always used.\n" msgstr "Pager wird immer verwendet.\n" -#: command.c:4479 +#: command.c:4487 #, c-format msgid "Pager usage is off.\n" msgstr "Pager-Verwendung ist aus.\n" -#: command.c:4485 +#: command.c:4493 #, c-format msgid "Pager won't be used for less than %d line.\n" msgid_plural "Pager won't be used for less than %d lines.\n" msgstr[0] "Pager wird nicht für weniger als %d Zeile verwendet werden.\n" msgstr[1] "Pager wird nicht für weniger als %d Zeilen verwendet werden.\n" -#: command.c:4495 command.c:4505 +#: command.c:4503 command.c:4513 #, c-format msgid "Record separator is zero byte.\n" msgstr "Satztrennzeichen ist ein Null-Byte.\n" -#: command.c:4497 +#: command.c:4505 #, c-format msgid "Record separator is .\n" msgstr "Satztrennzeichen ist .\n" -#: command.c:4499 +#: command.c:4507 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Satztrennzeichen ist »%s«.\n" -#: command.c:4512 +#: command.c:4520 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Tabellenattribute sind »%s«.\n" -#: command.c:4515 +#: command.c:4523 #, c-format msgid "Table attributes unset.\n" msgstr "Tabellenattribute sind nicht gesetzt.\n" -#: command.c:4522 +#: command.c:4530 #, c-format msgid "Title is \"%s\".\n" msgstr "Titel ist »%s«.\n" -#: command.c:4524 +#: command.c:4532 #, c-format msgid "Title is unset.\n" msgstr "Titel ist nicht gesetzt.\n" -#: command.c:4531 +#: command.c:4539 #, c-format msgid "Tuples only is on.\n" msgstr "Nur Datenzeilen ist an.\n" -#: command.c:4533 +#: command.c:4541 #, c-format msgid "Tuples only is off.\n" msgstr "Nur Datenzeilen ist aus.\n" -#: command.c:4539 +#: command.c:4547 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Unicode-Rahmenlinienstil ist »%s«.\n" -#: command.c:4545 +#: command.c:4553 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Unicode-Spaltenlinienstil ist »%s«.\n" -#: command.c:4551 +#: command.c:4559 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Unicode-Kopflinienstil ist »%s«.\n" -#: command.c:4784 +#: command.c:4792 #, c-format msgid "\\!: failed" msgstr "\\!: fehlgeschlagen" -#: command.c:4809 common.c:650 +#: command.c:4817 common.c:650 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch kann nicht mit einer leeren Anfrage verwendet werden" -#: command.c:4850 +#: command.c:4858 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (alle %gs)\n" -#: command.c:4853 +#: command.c:4861 #, c-format msgid "%s (every %gs)\n" msgstr "%s (alle %gs)\n" -#: command.c:4907 command.c:4914 common.c:550 common.c:557 common.c:1229 +#: command.c:4915 command.c:4922 common.c:550 common.c:557 common.c:1229 #, c-format msgid "" "********* QUERY **********\n" @@ -735,12 +736,12 @@ "**************************\n" "\n" -#: command.c:5106 +#: command.c:5114 #, c-format msgid "\"%s.%s\" is not a view" msgstr "»%s.%s« ist keine Sicht" -#: command.c:5122 +#: command.c:5130 #, c-format msgid "could not parse reloptions array" msgstr "konnte reloptions-Array nicht interpretieren" @@ -877,8 +878,8 @@ #: common.c:1513 describe.c:177 describe.c:393 describe.c:411 describe.c:456 #: describe.c:473 describe.c:962 describe.c:1126 describe.c:1711 -#: describe.c:1735 describe.c:2002 describe.c:3733 describe.c:3943 -#: describe.c:4176 describe.c:5382 +#: describe.c:1735 describe.c:2002 describe.c:3756 describe.c:3966 +#: describe.c:4199 describe.c:5405 msgid "Type" msgstr "Typ" @@ -1003,20 +1004,20 @@ msgstr "\\crosstabview: Spaltenname nicht gefunden: »%s«" #: describe.c:75 describe.c:373 describe.c:678 describe.c:810 describe.c:954 -#: describe.c:1115 describe.c:1187 describe.c:3722 describe.c:3930 -#: describe.c:4174 describe.c:4265 describe.c:4532 describe.c:4692 -#: describe.c:4933 describe.c:5008 describe.c:5019 describe.c:5081 -#: describe.c:5506 describe.c:5589 +#: describe.c:1115 describe.c:1187 describe.c:3745 describe.c:3953 +#: describe.c:4197 describe.c:4288 describe.c:4555 describe.c:4715 +#: describe.c:4956 describe.c:5031 describe.c:5042 describe.c:5104 +#: describe.c:5529 describe.c:5612 msgid "Schema" msgstr "Schema" #: describe.c:76 describe.c:174 describe.c:242 describe.c:250 describe.c:374 #: describe.c:679 describe.c:811 describe.c:872 describe.c:955 describe.c:1188 -#: describe.c:3723 describe.c:3931 describe.c:4097 describe.c:4175 -#: describe.c:4266 describe.c:4345 describe.c:4533 describe.c:4617 -#: describe.c:4693 describe.c:4934 describe.c:5009 describe.c:5020 -#: describe.c:5082 describe.c:5279 describe.c:5363 describe.c:5587 -#: describe.c:5759 describe.c:5999 +#: describe.c:3746 describe.c:3954 describe.c:4120 describe.c:4198 +#: describe.c:4289 describe.c:4368 describe.c:4556 describe.c:4640 +#: describe.c:4716 describe.c:4957 describe.c:5032 describe.c:5043 +#: describe.c:5105 describe.c:5302 describe.c:5386 describe.c:5610 +#: describe.c:5782 describe.c:6022 msgid "Name" msgstr "Name" @@ -1031,12 +1032,12 @@ #: describe.c:110 describe.c:117 describe.c:185 describe.c:273 describe.c:513 #: describe.c:727 describe.c:826 describe.c:897 describe.c:1190 describe.c:2020 -#: describe.c:3510 describe.c:3783 describe.c:3977 describe.c:4128 -#: describe.c:4202 describe.c:4275 describe.c:4358 describe.c:4441 -#: describe.c:4560 describe.c:4626 describe.c:4694 describe.c:4835 -#: describe.c:4877 describe.c:4950 describe.c:5012 describe.c:5021 -#: describe.c:5083 describe.c:5305 describe.c:5385 describe.c:5520 -#: describe.c:5590 large_obj.c:290 large_obj.c:300 +#: describe.c:3533 describe.c:3806 describe.c:4000 describe.c:4151 +#: describe.c:4225 describe.c:4298 describe.c:4381 describe.c:4464 +#: describe.c:4583 describe.c:4649 describe.c:4717 describe.c:4858 +#: describe.c:4900 describe.c:4973 describe.c:5035 describe.c:5044 +#: describe.c:5106 describe.c:5328 describe.c:5408 describe.c:5543 +#: describe.c:5613 large_obj.c:290 large_obj.c:300 msgid "Description" msgstr "Beschreibung" @@ -1053,11 +1054,11 @@ msgid "Index" msgstr "Index" -#: describe.c:176 describe.c:3741 describe.c:3956 describe.c:5507 +#: describe.c:176 describe.c:3764 describe.c:3979 describe.c:5530 msgid "Table" msgstr "Tabelle" -#: describe.c:184 describe.c:5284 +#: describe.c:184 describe.c:5307 msgid "Handler" msgstr "Handler" @@ -1071,10 +1072,10 @@ msgstr "Der Server (Version %s) unterstützt keine Tablespaces." #: describe.c:243 describe.c:251 describe.c:501 describe.c:717 describe.c:873 -#: describe.c:1114 describe.c:3734 describe.c:3932 describe.c:4101 -#: describe.c:4347 describe.c:4618 describe.c:5280 describe.c:5364 -#: describe.c:5760 describe.c:5897 describe.c:6000 describe.c:6115 -#: describe.c:6194 large_obj.c:289 +#: describe.c:1114 describe.c:3757 describe.c:3955 describe.c:4124 +#: describe.c:4370 describe.c:4641 describe.c:5303 describe.c:5387 +#: describe.c:5783 describe.c:5920 describe.c:6023 describe.c:6138 +#: describe.c:6217 large_obj.c:289 msgid "Owner" msgstr "Eigentümer" @@ -1082,11 +1083,11 @@ msgid "Location" msgstr "Pfad" -#: describe.c:263 describe.c:3327 +#: describe.c:263 describe.c:3350 msgid "Options" msgstr "Optionen" -#: describe.c:268 describe.c:690 describe.c:889 describe.c:3775 describe.c:3779 +#: describe.c:268 describe.c:690 describe.c:889 describe.c:3798 describe.c:3802 msgid "Size" msgstr "Größe" @@ -1205,8 +1206,8 @@ msgid "Result type" msgstr "Ergebnistyp" -#: describe.c:819 describe.c:4353 describe.c:4418 describe.c:4424 -#: describe.c:4834 describe.c:6366 describe.c:6370 +#: describe.c:819 describe.c:4376 describe.c:4441 describe.c:4447 +#: describe.c:4857 describe.c:6389 describe.c:6393 msgid "Function" msgstr "Funktion" @@ -1218,11 +1219,11 @@ msgid "Encoding" msgstr "Kodierung" -#: describe.c:879 describe.c:4534 +#: describe.c:879 describe.c:4557 msgid "Collate" msgstr "Sortierfolge" -#: describe.c:880 describe.c:4535 +#: describe.c:880 describe.c:4558 msgid "Ctype" msgstr "Zeichentyp" @@ -1234,27 +1235,27 @@ msgid "List of databases" msgstr "Liste der Datenbanken" -#: describe.c:956 describe.c:1117 describe.c:3724 +#: describe.c:956 describe.c:1117 describe.c:3747 msgid "table" msgstr "Tabelle" -#: describe.c:957 describe.c:3725 +#: describe.c:957 describe.c:3748 msgid "view" msgstr "Sicht" -#: describe.c:958 describe.c:3726 +#: describe.c:958 describe.c:3749 msgid "materialized view" msgstr "materialisierte Sicht" -#: describe.c:959 describe.c:1119 describe.c:3728 +#: describe.c:959 describe.c:1119 describe.c:3751 msgid "sequence" msgstr "Sequenz" -#: describe.c:960 describe.c:3730 +#: describe.c:960 describe.c:3753 msgid "foreign table" msgstr "Fremdtabelle" -#: describe.c:961 describe.c:3731 describe.c:3941 +#: describe.c:961 describe.c:3754 describe.c:3964 msgid "partitioned table" msgstr "partitionierte Tabelle" @@ -1266,7 +1267,7 @@ msgid "Policies" msgstr "Policys" -#: describe.c:1070 describe.c:6056 describe.c:6060 +#: describe.c:1070 describe.c:6079 describe.c:6083 msgid "Access privileges" msgstr "Zugriffsprivilegien" @@ -1319,12 +1320,12 @@ msgid "Object descriptions" msgstr "Objektbeschreibungen" -#: describe.c:1402 describe.c:3847 +#: describe.c:1402 describe.c:3870 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "Keine Relation namens »%s« gefunden" -#: describe.c:1405 describe.c:3850 +#: describe.c:1405 describe.c:3873 #, c-format msgid "Did not find any relations." msgstr "Keine Relationen gefunden" @@ -1350,13 +1351,13 @@ msgid "Increment" msgstr "Inkrement" -#: describe.c:1716 describe.c:1740 describe.c:1871 describe.c:4269 -#: describe.c:4435 describe.c:4549 describe.c:4554 describe.c:6103 +#: describe.c:1716 describe.c:1740 describe.c:1871 describe.c:4292 +#: describe.c:4458 describe.c:4572 describe.c:4577 describe.c:6126 msgid "yes" msgstr "ja" -#: describe.c:1717 describe.c:1741 describe.c:1872 describe.c:4269 -#: describe.c:4432 describe.c:4549 describe.c:6104 +#: describe.c:1717 describe.c:1741 describe.c:1872 describe.c:4292 +#: describe.c:4455 describe.c:4572 describe.c:6127 msgid "no" msgstr "nein" @@ -1458,15 +1459,15 @@ msgid "Partitioned table \"%s.%s\"" msgstr "Partitionierte Tabelle »%s.%s«" -#: describe.c:2005 describe.c:4182 +#: describe.c:2005 describe.c:4205 msgid "Collation" msgstr "Sortierfolge" -#: describe.c:2006 describe.c:4189 +#: describe.c:2006 describe.c:4212 msgid "Nullable" msgstr "NULL erlaubt?" -#: describe.c:2007 describe.c:4190 +#: describe.c:2007 describe.c:4213 msgid "Default" msgstr "Vorgabewert" @@ -1478,8 +1479,8 @@ msgid "Definition" msgstr "Definition" -#: describe.c:2014 describe.c:5300 describe.c:5384 describe.c:5455 -#: describe.c:5519 +#: describe.c:2014 describe.c:5323 describe.c:5407 describe.c:5478 +#: describe.c:5542 msgid "FDW options" msgstr "FDW-Optionen" @@ -1617,498 +1618,498 @@ msgid "View definition:" msgstr "Sichtdefinition:" -#: describe.c:3057 +#: describe.c:3080 msgid "Triggers:" msgstr "Trigger:" -#: describe.c:3061 +#: describe.c:3084 msgid "Disabled user triggers:" msgstr "Abgeschaltete Benutzer-Trigger:" -#: describe.c:3063 +#: describe.c:3086 msgid "Disabled triggers:" msgstr "Abgeschaltete Trigger:" -#: describe.c:3066 +#: describe.c:3089 msgid "Disabled internal triggers:" msgstr "Abgeschaltete interne Trigger:" -#: describe.c:3069 +#: describe.c:3092 msgid "Triggers firing always:" msgstr "Trigger, die immer aktiv werden:" -#: describe.c:3072 +#: describe.c:3095 msgid "Triggers firing on replica only:" msgstr "Trigger, die nur im Replikat aktiv werden:" -#: describe.c:3144 +#: describe.c:3167 #, c-format msgid "Server: %s" msgstr "Server: %s" -#: describe.c:3152 +#: describe.c:3175 #, c-format msgid "FDW options: (%s)" msgstr "FDW-Optionen: (%s)" -#: describe.c:3173 +#: describe.c:3196 msgid "Inherits" msgstr "Erbt von" -#: describe.c:3233 +#: describe.c:3256 #, c-format msgid "Number of partitions: %d" msgstr "Anzahl Partitionen: %d" -#: describe.c:3242 +#: describe.c:3265 #, c-format msgid "Number of partitions: %d (Use \\d+ to list them.)" msgstr "Anzahl Partitionen: %d (Mit \\d+ alle anzeigen.)" -#: describe.c:3244 +#: describe.c:3267 #, c-format msgid "Number of child tables: %d (Use \\d+ to list them.)" msgstr "Anzahl Kindtabellen: %d (Mit \\d+ alle anzeigen.)" -#: describe.c:3251 +#: describe.c:3274 msgid "Child tables" msgstr "Kindtabellen" -#: describe.c:3251 +#: describe.c:3274 msgid "Partitions" msgstr "Partitionen" -#: describe.c:3280 +#: describe.c:3303 #, c-format msgid "Typed table of type: %s" msgstr "Getypte Tabelle vom Typ: %s" -#: describe.c:3296 +#: describe.c:3319 msgid "Replica Identity" msgstr "Replika-Identität" -#: describe.c:3309 +#: describe.c:3332 msgid "Has OIDs: yes" msgstr "Hat OIDs: ja" -#: describe.c:3318 +#: describe.c:3341 #, c-format msgid "Access method: %s" msgstr "Zugriffsmethode: %s" -#: describe.c:3398 +#: describe.c:3421 #, c-format msgid "Tablespace: \"%s\"" msgstr "Tablespace: »%s«" #. translator: before this string there's an index description like #. '"foo_pkey" PRIMARY KEY, btree (a)' -#: describe.c:3410 +#: describe.c:3433 #, c-format msgid ", tablespace \"%s\"" msgstr ", Tablespace »%s«" -#: describe.c:3503 +#: describe.c:3526 msgid "List of roles" msgstr "Liste der Rollen" -#: describe.c:3505 +#: describe.c:3528 msgid "Role name" msgstr "Rollenname" -#: describe.c:3506 +#: describe.c:3529 msgid "Attributes" msgstr "Attribute" -#: describe.c:3507 +#: describe.c:3530 msgid "Member of" msgstr "Mitglied von" -#: describe.c:3518 +#: describe.c:3541 msgid "Superuser" msgstr "Superuser" -#: describe.c:3521 +#: describe.c:3544 msgid "No inheritance" msgstr "keine Vererbung" -#: describe.c:3524 +#: describe.c:3547 msgid "Create role" msgstr "Rolle erzeugen" -#: describe.c:3527 +#: describe.c:3550 msgid "Create DB" msgstr "DB erzeugen" -#: describe.c:3530 +#: describe.c:3553 msgid "Cannot login" msgstr "kann nicht einloggen" -#: describe.c:3534 +#: describe.c:3557 msgid "Replication" msgstr "Replikation" -#: describe.c:3538 +#: describe.c:3561 msgid "Bypass RLS" msgstr "Bypass RLS" -#: describe.c:3547 +#: describe.c:3570 msgid "No connections" msgstr "keine Verbindungen" -#: describe.c:3549 +#: describe.c:3572 #, c-format msgid "%d connection" msgid_plural "%d connections" msgstr[0] "%d Verbindung" msgstr[1] "%d Verbindungen" -#: describe.c:3559 +#: describe.c:3582 msgid "Password valid until " msgstr "Passwort gültig bis " -#: describe.c:3609 +#: describe.c:3632 #, c-format msgid "The server (version %s) does not support per-database role settings." msgstr "Der Server (Version %s) unterstützt keine Rolleneinstellungen pro Datenbank." -#: describe.c:3622 +#: describe.c:3645 msgid "Role" msgstr "Rolle" -#: describe.c:3623 +#: describe.c:3646 msgid "Database" msgstr "Datenbank" -#: describe.c:3624 +#: describe.c:3647 msgid "Settings" msgstr "Einstellung" -#: describe.c:3645 +#: describe.c:3668 #, c-format msgid "Did not find any settings for role \"%s\" and database \"%s\"." msgstr "Keine Einstellungen für Rolle »%s« und Datenbank »%s« gefunden" -#: describe.c:3648 +#: describe.c:3671 #, c-format msgid "Did not find any settings for role \"%s\"." msgstr "Keine Einstellungen für Rolle »%s« gefunden" -#: describe.c:3651 +#: describe.c:3674 #, c-format msgid "Did not find any settings." msgstr "Keine Einstellungen gefunden" -#: describe.c:3656 +#: describe.c:3679 msgid "List of settings" msgstr "Liste der Einstellungen" -#: describe.c:3727 +#: describe.c:3750 msgid "index" msgstr "Index" -#: describe.c:3729 +#: describe.c:3752 msgid "special" msgstr "speziell" -#: describe.c:3732 describe.c:3942 +#: describe.c:3755 describe.c:3965 msgid "partitioned index" msgstr "partitionierter Index" -#: describe.c:3756 +#: describe.c:3779 msgid "permanent" msgstr "permanent" -#: describe.c:3757 +#: describe.c:3780 msgid "temporary" msgstr "temporär" -#: describe.c:3758 +#: describe.c:3781 msgid "unlogged" msgstr "ungeloggt" -#: describe.c:3759 +#: describe.c:3782 msgid "Persistence" msgstr "Persistenz" -#: describe.c:3855 +#: describe.c:3878 msgid "List of relations" msgstr "Liste der Relationen" -#: describe.c:3903 +#: describe.c:3926 #, c-format msgid "The server (version %s) does not support declarative table partitioning." msgstr "Der Server (Version %s) unterstützt keine deklarative Tabellenpartitionierung." -#: describe.c:3914 +#: describe.c:3937 msgid "List of partitioned indexes" msgstr "Liste partitionierter Indexe" -#: describe.c:3916 +#: describe.c:3939 msgid "List of partitioned tables" msgstr "Liste partitionierte Tabellen" -#: describe.c:3920 +#: describe.c:3943 msgid "List of partitioned relations" msgstr "Liste partitionierter Relationen" -#: describe.c:3951 +#: describe.c:3974 msgid "Parent name" msgstr "Elternname" -#: describe.c:3964 +#: describe.c:3987 msgid "Leaf partition size" msgstr "Größe Leaf-Partition" -#: describe.c:3967 describe.c:3973 +#: describe.c:3990 describe.c:3996 msgid "Total size" msgstr "Gesamtgröße" -#: describe.c:4105 +#: describe.c:4128 msgid "Trusted" msgstr "Vertraut" -#: describe.c:4113 +#: describe.c:4136 msgid "Internal language" msgstr "Interne Sprache" -#: describe.c:4114 +#: describe.c:4137 msgid "Call handler" msgstr "Call-Handler" -#: describe.c:4115 describe.c:5287 +#: describe.c:4138 describe.c:5310 msgid "Validator" msgstr "Validator" -#: describe.c:4118 +#: describe.c:4141 msgid "Inline handler" msgstr "Inline-Handler" -#: describe.c:4146 +#: describe.c:4169 msgid "List of languages" msgstr "Liste der Sprachen" -#: describe.c:4191 +#: describe.c:4214 msgid "Check" msgstr "Check" -#: describe.c:4233 +#: describe.c:4256 msgid "List of domains" msgstr "Liste der Domänen" -#: describe.c:4267 +#: describe.c:4290 msgid "Source" msgstr "Quelle" -#: describe.c:4268 +#: describe.c:4291 msgid "Destination" msgstr "Ziel" -#: describe.c:4270 describe.c:6105 +#: describe.c:4293 describe.c:6128 msgid "Default?" msgstr "Standard?" -#: describe.c:4307 +#: describe.c:4330 msgid "List of conversions" msgstr "Liste der Konversionen" -#: describe.c:4346 +#: describe.c:4369 msgid "Event" msgstr "Ereignis" -#: describe.c:4348 +#: describe.c:4371 msgid "enabled" msgstr "eingeschaltet" -#: describe.c:4349 +#: describe.c:4372 msgid "replica" msgstr "Replika" -#: describe.c:4350 +#: describe.c:4373 msgid "always" msgstr "immer" -#: describe.c:4351 +#: describe.c:4374 msgid "disabled" msgstr "ausgeschaltet" -#: describe.c:4352 describe.c:6001 +#: describe.c:4375 describe.c:6024 msgid "Enabled" msgstr "Eingeschaltet" -#: describe.c:4354 +#: describe.c:4377 msgid "Tags" msgstr "Tags" -#: describe.c:4373 +#: describe.c:4396 msgid "List of event triggers" msgstr "Liste der Ereignistrigger" -#: describe.c:4402 +#: describe.c:4425 msgid "Source type" msgstr "Quelltyp" -#: describe.c:4403 +#: describe.c:4426 msgid "Target type" msgstr "Zieltyp" -#: describe.c:4434 +#: describe.c:4457 msgid "in assignment" msgstr "in Zuweisung" -#: describe.c:4436 +#: describe.c:4459 msgid "Implicit?" msgstr "Implizit?" -#: describe.c:4491 +#: describe.c:4514 msgid "List of casts" msgstr "Liste der Typumwandlungen" -#: describe.c:4519 +#: describe.c:4542 #, c-format msgid "The server (version %s) does not support collations." msgstr "Der Server (Version %s) unterstützt keine Sortierfolgen." -#: describe.c:4540 describe.c:4544 +#: describe.c:4563 describe.c:4567 msgid "Provider" msgstr "Provider" -#: describe.c:4550 describe.c:4555 +#: describe.c:4573 describe.c:4578 msgid "Deterministic?" msgstr "Deterministisch?" -#: describe.c:4590 +#: describe.c:4613 msgid "List of collations" msgstr "Liste der Sortierfolgen" -#: describe.c:4649 +#: describe.c:4672 msgid "List of schemas" msgstr "Liste der Schemas" -#: describe.c:4674 describe.c:4921 describe.c:4992 describe.c:5063 +#: describe.c:4697 describe.c:4944 describe.c:5015 describe.c:5086 #, c-format msgid "The server (version %s) does not support full text search." msgstr "Der Server (Version %s) unterstützt keine Volltextsuche." -#: describe.c:4709 +#: describe.c:4732 msgid "List of text search parsers" msgstr "Liste der Textsucheparser" -#: describe.c:4754 +#: describe.c:4777 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "Kein Textsucheparser namens »%s« gefunden" -#: describe.c:4757 +#: describe.c:4780 #, c-format msgid "Did not find any text search parsers." msgstr "Keine Textsucheparser gefunden" -#: describe.c:4832 +#: describe.c:4855 msgid "Start parse" msgstr "Parsen starten" -#: describe.c:4833 +#: describe.c:4856 msgid "Method" msgstr "Methode" -#: describe.c:4837 +#: describe.c:4860 msgid "Get next token" msgstr "Nächstes Token lesen" -#: describe.c:4839 +#: describe.c:4862 msgid "End parse" msgstr "Parsen beenden" -#: describe.c:4841 +#: describe.c:4864 msgid "Get headline" msgstr "Überschrift ermitteln" -#: describe.c:4843 +#: describe.c:4866 msgid "Get token types" msgstr "Tokentypen ermitteln" -#: describe.c:4854 +#: describe.c:4877 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "Textsucheparser »%s.%s«" -#: describe.c:4857 +#: describe.c:4880 #, c-format msgid "Text search parser \"%s\"" msgstr "Textsucheparser »%s«" -#: describe.c:4876 +#: describe.c:4899 msgid "Token name" msgstr "Tokenname" -#: describe.c:4887 +#: describe.c:4910 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "Tokentypen für Parser »%s.%s«" -#: describe.c:4890 +#: describe.c:4913 #, c-format msgid "Token types for parser \"%s\"" msgstr "Tokentypen für Parser »%s«" -#: describe.c:4944 +#: describe.c:4967 msgid "Template" msgstr "Vorlage" -#: describe.c:4945 +#: describe.c:4968 msgid "Init options" msgstr "Initialisierungsoptionen" -#: describe.c:4967 +#: describe.c:4990 msgid "List of text search dictionaries" msgstr "Liste der Textsuchewörterbücher" -#: describe.c:5010 +#: describe.c:5033 msgid "Init" msgstr "Init" -#: describe.c:5011 +#: describe.c:5034 msgid "Lexize" msgstr "Lexize" -#: describe.c:5038 +#: describe.c:5061 msgid "List of text search templates" msgstr "Liste der Textsuchevorlagen" -#: describe.c:5098 +#: describe.c:5121 msgid "List of text search configurations" msgstr "Liste der Textsuchekonfigurationen" -#: describe.c:5144 +#: describe.c:5167 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "Keine Textsuchekonfiguration namens »%s« gefunden" -#: describe.c:5147 +#: describe.c:5170 #, c-format msgid "Did not find any text search configurations." msgstr "Keine Textsuchekonfigurationen gefunden" -#: describe.c:5213 +#: describe.c:5236 msgid "Token" msgstr "Token" -#: describe.c:5214 +#: describe.c:5237 msgid "Dictionaries" msgstr "Wörterbücher" -#: describe.c:5225 +#: describe.c:5248 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "Textsuchekonfiguration »%s.%s«" -#: describe.c:5228 +#: describe.c:5251 #, c-format msgid "Text search configuration \"%s\"" msgstr "Textsuchekonfiguration »%s«" -#: describe.c:5232 +#: describe.c:5255 #, c-format msgid "" "\n" @@ -2117,7 +2118,7 @@ "\n" "Parser: »%s.%s«" -#: describe.c:5235 +#: describe.c:5258 #, c-format msgid "" "\n" @@ -2126,232 +2127,232 @@ "\n" "Parser: »%s«" -#: describe.c:5269 +#: describe.c:5292 #, c-format msgid "The server (version %s) does not support foreign-data wrappers." msgstr "Der Server (Version %s) unterstützt keine Fremddaten-Wrapper." -#: describe.c:5327 +#: describe.c:5350 msgid "List of foreign-data wrappers" msgstr "Liste der Fremddaten-Wrapper" -#: describe.c:5352 +#: describe.c:5375 #, c-format msgid "The server (version %s) does not support foreign servers." msgstr "Der Server (Version %s) unterstützt keine Fremdserver." -#: describe.c:5365 +#: describe.c:5388 msgid "Foreign-data wrapper" msgstr "Fremddaten-Wrapper" -#: describe.c:5383 describe.c:5588 +#: describe.c:5406 describe.c:5611 msgid "Version" msgstr "Version" -#: describe.c:5409 +#: describe.c:5432 msgid "List of foreign servers" msgstr "Liste der Fremdserver" -#: describe.c:5434 +#: describe.c:5457 #, c-format msgid "The server (version %s) does not support user mappings." msgstr "Der Server (Version %s) unterstützt keine Benutzerabbildungen." -#: describe.c:5444 describe.c:5508 +#: describe.c:5467 describe.c:5531 msgid "Server" msgstr "Server" -#: describe.c:5445 +#: describe.c:5468 msgid "User name" msgstr "Benutzername" -#: describe.c:5470 +#: describe.c:5493 msgid "List of user mappings" msgstr "Liste der Benutzerabbildungen" -#: describe.c:5495 +#: describe.c:5518 #, c-format msgid "The server (version %s) does not support foreign tables." msgstr "Der Server (Version %s) unterstützt keine Fremdtabellen." -#: describe.c:5548 +#: describe.c:5571 msgid "List of foreign tables" msgstr "Liste der Fremdtabellen" -#: describe.c:5573 describe.c:5630 +#: describe.c:5596 describe.c:5653 #, c-format msgid "The server (version %s) does not support extensions." msgstr "Der Server (Version %s) unterstützt keine Erweiterungen." -#: describe.c:5605 +#: describe.c:5628 msgid "List of installed extensions" msgstr "Liste der installierten Erweiterungen" -#: describe.c:5658 +#: describe.c:5681 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "Keine Erweiterung namens »%s« gefunden" -#: describe.c:5661 +#: describe.c:5684 #, c-format msgid "Did not find any extensions." msgstr "Keine Erweiterungen gefunden" -#: describe.c:5705 +#: describe.c:5728 msgid "Object description" msgstr "Objektbeschreibung" -#: describe.c:5715 +#: describe.c:5738 #, c-format msgid "Objects in extension \"%s\"" msgstr "Objekte in Erweiterung »%s«" -#: describe.c:5744 describe.c:5820 +#: describe.c:5767 describe.c:5843 #, c-format msgid "The server (version %s) does not support publications." msgstr "Der Server (Version %s) unterstützt keine Publikationen." -#: describe.c:5761 describe.c:5898 +#: describe.c:5784 describe.c:5921 msgid "All tables" msgstr "Alle Tabellen" -#: describe.c:5762 describe.c:5899 +#: describe.c:5785 describe.c:5922 msgid "Inserts" msgstr "Inserts" -#: describe.c:5763 describe.c:5900 +#: describe.c:5786 describe.c:5923 msgid "Updates" msgstr "Updates" -#: describe.c:5764 describe.c:5901 +#: describe.c:5787 describe.c:5924 msgid "Deletes" msgstr "Deletes" -#: describe.c:5768 describe.c:5903 +#: describe.c:5791 describe.c:5926 msgid "Truncates" msgstr "Truncates" -#: describe.c:5772 describe.c:5905 +#: describe.c:5795 describe.c:5928 msgid "Via root" msgstr "Über Wurzel" -#: describe.c:5789 +#: describe.c:5812 msgid "List of publications" msgstr "Liste der Publikationen" -#: describe.c:5862 +#: describe.c:5885 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "Keine Publikation namens »%s« gefunden" -#: describe.c:5865 +#: describe.c:5888 #, c-format msgid "Did not find any publications." msgstr "Keine Publikationen gefunden" -#: describe.c:5894 +#: describe.c:5917 #, c-format msgid "Publication %s" msgstr "Publikation %s" -#: describe.c:5942 +#: describe.c:5965 msgid "Tables:" msgstr "Tabellen:" -#: describe.c:5986 +#: describe.c:6009 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "Der Server (Version %s) unterstützt keine Subskriptionen." -#: describe.c:6002 +#: describe.c:6025 msgid "Publication" msgstr "Publikation" -#: describe.c:6009 +#: describe.c:6032 msgid "Synchronous commit" msgstr "Synchroner Commit" -#: describe.c:6010 +#: describe.c:6033 msgid "Conninfo" msgstr "Verbindungsinfo" -#: describe.c:6032 +#: describe.c:6055 msgid "List of subscriptions" msgstr "Liste der Subskriptionen" -#: describe.c:6099 describe.c:6188 describe.c:6274 describe.c:6357 +#: describe.c:6122 describe.c:6211 describe.c:6297 describe.c:6380 msgid "AM" msgstr "AM" -#: describe.c:6100 +#: describe.c:6123 msgid "Input type" msgstr "Eingabetyp" -#: describe.c:6101 +#: describe.c:6124 msgid "Storage type" msgstr "Storage-Typ" -#: describe.c:6102 +#: describe.c:6125 msgid "Operator class" msgstr "Operatorklasse" -#: describe.c:6114 describe.c:6189 describe.c:6275 describe.c:6358 +#: describe.c:6137 describe.c:6212 describe.c:6298 describe.c:6381 msgid "Operator family" msgstr "Operatorfamilie" -#: describe.c:6147 +#: describe.c:6170 msgid "List of operator classes" msgstr "Liste der Operatorklassen" -#: describe.c:6190 +#: describe.c:6213 msgid "Applicable types" msgstr "Passende Typen" -#: describe.c:6229 +#: describe.c:6252 msgid "List of operator families" msgstr "Liste der Operatorfamilien" -#: describe.c:6276 +#: describe.c:6299 msgid "Operator" msgstr "Operator" -#: describe.c:6277 +#: describe.c:6300 msgid "Strategy" msgstr "Strategie" -#: describe.c:6278 +#: describe.c:6301 msgid "ordering" msgstr "Sortieren" -#: describe.c:6279 +#: describe.c:6302 msgid "search" msgstr "Suchen" -#: describe.c:6280 +#: describe.c:6303 msgid "Purpose" msgstr "Zweck" -#: describe.c:6285 +#: describe.c:6308 msgid "Sort opfamily" msgstr "Sortier-Opfamilie" -#: describe.c:6316 +#: describe.c:6339 msgid "List of operators of operator families" msgstr "Liste der Operatoren in Operatorfamilien" -#: describe.c:6359 +#: describe.c:6382 msgid "Registered left type" msgstr "Registrierter linker Typ" -#: describe.c:6360 +#: describe.c:6383 msgid "Registered right type" msgstr "Registrierter rechter Typ" -#: describe.c:6361 +#: describe.c:6384 msgid "Number" msgstr "Nummer" -#: describe.c:6397 +#: describe.c:6420 msgid "List of support functions of operator families" msgstr "Liste der Unterstützungsfunktionen in Operatorfamilien" @@ -4149,31 +4150,31 @@ #: sql_help.c:1643 sql_help.c:1645 sql_help.c:1648 sql_help.c:1698 #: sql_help.c:1714 sql_help.c:1935 sql_help.c:2004 sql_help.c:2023 #: sql_help.c:2036 sql_help.c:2093 sql_help.c:2100 sql_help.c:2110 -#: sql_help.c:2131 sql_help.c:2157 sql_help.c:2175 sql_help.c:2202 -#: sql_help.c:2298 sql_help.c:2343 sql_help.c:2367 sql_help.c:2390 -#: sql_help.c:2394 sql_help.c:2428 sql_help.c:2448 sql_help.c:2470 -#: sql_help.c:2484 sql_help.c:2504 sql_help.c:2527 sql_help.c:2557 -#: sql_help.c:2582 sql_help.c:2628 sql_help.c:2906 sql_help.c:2919 -#: sql_help.c:2936 sql_help.c:2952 sql_help.c:2992 sql_help.c:3044 -#: sql_help.c:3048 sql_help.c:3050 sql_help.c:3056 sql_help.c:3074 -#: sql_help.c:3101 sql_help.c:3136 sql_help.c:3148 sql_help.c:3157 -#: sql_help.c:3201 sql_help.c:3215 sql_help.c:3243 sql_help.c:3251 -#: sql_help.c:3263 sql_help.c:3273 sql_help.c:3281 sql_help.c:3289 -#: sql_help.c:3297 sql_help.c:3305 sql_help.c:3314 sql_help.c:3325 -#: sql_help.c:3333 sql_help.c:3341 sql_help.c:3349 sql_help.c:3357 -#: sql_help.c:3367 sql_help.c:3376 sql_help.c:3385 sql_help.c:3393 -#: sql_help.c:3403 sql_help.c:3414 sql_help.c:3422 sql_help.c:3431 -#: sql_help.c:3442 sql_help.c:3451 sql_help.c:3459 sql_help.c:3467 -#: sql_help.c:3475 sql_help.c:3483 sql_help.c:3491 sql_help.c:3499 -#: sql_help.c:3507 sql_help.c:3515 sql_help.c:3523 sql_help.c:3531 -#: sql_help.c:3548 sql_help.c:3557 sql_help.c:3565 sql_help.c:3582 -#: sql_help.c:3597 sql_help.c:3872 sql_help.c:3923 sql_help.c:3952 -#: sql_help.c:3965 sql_help.c:4410 sql_help.c:4458 sql_help.c:4599 +#: sql_help.c:2131 sql_help.c:2157 sql_help.c:2175 sql_help.c:2203 +#: sql_help.c:2299 sql_help.c:2344 sql_help.c:2368 sql_help.c:2391 +#: sql_help.c:2395 sql_help.c:2429 sql_help.c:2449 sql_help.c:2471 +#: sql_help.c:2485 sql_help.c:2505 sql_help.c:2528 sql_help.c:2558 +#: sql_help.c:2583 sql_help.c:2629 sql_help.c:2907 sql_help.c:2920 +#: sql_help.c:2937 sql_help.c:2953 sql_help.c:2993 sql_help.c:3045 +#: sql_help.c:3049 sql_help.c:3051 sql_help.c:3057 sql_help.c:3075 +#: sql_help.c:3102 sql_help.c:3137 sql_help.c:3149 sql_help.c:3158 +#: sql_help.c:3202 sql_help.c:3216 sql_help.c:3244 sql_help.c:3252 +#: sql_help.c:3264 sql_help.c:3274 sql_help.c:3282 sql_help.c:3290 +#: sql_help.c:3298 sql_help.c:3306 sql_help.c:3315 sql_help.c:3326 +#: sql_help.c:3334 sql_help.c:3342 sql_help.c:3350 sql_help.c:3358 +#: sql_help.c:3368 sql_help.c:3377 sql_help.c:3386 sql_help.c:3394 +#: sql_help.c:3404 sql_help.c:3415 sql_help.c:3423 sql_help.c:3432 +#: sql_help.c:3443 sql_help.c:3452 sql_help.c:3460 sql_help.c:3468 +#: sql_help.c:3476 sql_help.c:3484 sql_help.c:3492 sql_help.c:3500 +#: sql_help.c:3508 sql_help.c:3516 sql_help.c:3524 sql_help.c:3532 +#: sql_help.c:3549 sql_help.c:3558 sql_help.c:3566 sql_help.c:3583 +#: sql_help.c:3598 sql_help.c:3873 sql_help.c:3924 sql_help.c:3953 +#: sql_help.c:3966 sql_help.c:4411 sql_help.c:4459 sql_help.c:4600 msgid "name" msgstr "Name" #: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:327 sql_help.c:1785 -#: sql_help.c:3216 sql_help.c:4196 +#: sql_help.c:3217 sql_help.c:4197 msgid "aggregate_signature" msgstr "Aggregatsignatur" @@ -4194,7 +4195,7 @@ #: sql_help.c:852 sql_help.c:890 sql_help.c:991 sql_help.c:1030 sql_help.c:1059 #: sql_help.c:1079 sql_help.c:1093 sql_help.c:1129 sql_help.c:1334 #: sql_help.c:1396 sql_help.c:1439 sql_help.c:1460 sql_help.c:1522 -#: sql_help.c:1637 sql_help.c:2892 +#: sql_help.c:1637 sql_help.c:2893 msgid "new_owner" msgstr "neuer_Eigentümer" @@ -4206,7 +4207,7 @@ msgid "new_schema" msgstr "neues_Schema" -#: sql_help.c:44 sql_help.c:1849 sql_help.c:3217 sql_help.c:4225 +#: sql_help.c:44 sql_help.c:1849 sql_help.c:3218 sql_help.c:4226 msgid "where aggregate_signature is:" msgstr "wobei Aggregatsignatur Folgendes ist:" @@ -4217,10 +4218,10 @@ #: sql_help.c:983 sql_help.c:988 sql_help.c:993 sql_help.c:998 sql_help.c:1803 #: sql_help.c:1820 sql_help.c:1826 sql_help.c:1850 sql_help.c:1853 #: sql_help.c:1856 sql_help.c:2005 sql_help.c:2024 sql_help.c:2027 -#: sql_help.c:2299 sql_help.c:2505 sql_help.c:3218 sql_help.c:3221 -#: sql_help.c:3224 sql_help.c:3315 sql_help.c:3404 sql_help.c:3432 -#: sql_help.c:3756 sql_help.c:4104 sql_help.c:4202 sql_help.c:4209 -#: sql_help.c:4215 sql_help.c:4226 sql_help.c:4229 sql_help.c:4232 +#: sql_help.c:2300 sql_help.c:2506 sql_help.c:3219 sql_help.c:3222 +#: sql_help.c:3225 sql_help.c:3316 sql_help.c:3405 sql_help.c:3433 +#: sql_help.c:3757 sql_help.c:4105 sql_help.c:4203 sql_help.c:4210 +#: sql_help.c:4216 sql_help.c:4227 sql_help.c:4230 sql_help.c:4233 msgid "argmode" msgstr "Argmodus" @@ -4231,10 +4232,10 @@ #: sql_help.c:984 sql_help.c:989 sql_help.c:994 sql_help.c:999 sql_help.c:1804 #: sql_help.c:1821 sql_help.c:1827 sql_help.c:1851 sql_help.c:1854 #: sql_help.c:1857 sql_help.c:2006 sql_help.c:2025 sql_help.c:2028 -#: sql_help.c:2300 sql_help.c:2506 sql_help.c:3219 sql_help.c:3222 -#: sql_help.c:3225 sql_help.c:3316 sql_help.c:3405 sql_help.c:3433 -#: sql_help.c:4203 sql_help.c:4210 sql_help.c:4216 sql_help.c:4227 -#: sql_help.c:4230 sql_help.c:4233 +#: sql_help.c:2301 sql_help.c:2507 sql_help.c:3220 sql_help.c:3223 +#: sql_help.c:3226 sql_help.c:3317 sql_help.c:3406 sql_help.c:3434 +#: sql_help.c:4204 sql_help.c:4211 sql_help.c:4217 sql_help.c:4228 +#: sql_help.c:4231 sql_help.c:4234 msgid "argname" msgstr "Argname" @@ -4244,25 +4245,25 @@ #: sql_help.c:846 sql_help.c:851 sql_help.c:856 sql_help.c:861 sql_help.c:980 #: sql_help.c:985 sql_help.c:990 sql_help.c:995 sql_help.c:1000 sql_help.c:1805 #: sql_help.c:1822 sql_help.c:1828 sql_help.c:1852 sql_help.c:1855 -#: sql_help.c:1858 sql_help.c:2301 sql_help.c:2507 sql_help.c:3220 -#: sql_help.c:3223 sql_help.c:3226 sql_help.c:3317 sql_help.c:3406 -#: sql_help.c:3434 sql_help.c:4204 sql_help.c:4211 sql_help.c:4217 -#: sql_help.c:4228 sql_help.c:4231 sql_help.c:4234 +#: sql_help.c:1858 sql_help.c:2302 sql_help.c:2508 sql_help.c:3221 +#: sql_help.c:3224 sql_help.c:3227 sql_help.c:3318 sql_help.c:3407 +#: sql_help.c:3435 sql_help.c:4205 sql_help.c:4212 sql_help.c:4218 +#: sql_help.c:4229 sql_help.c:4232 sql_help.c:4235 msgid "argtype" msgstr "Argtyp" #: sql_help.c:112 sql_help.c:394 sql_help.c:471 sql_help.c:483 sql_help.c:927 #: sql_help.c:1076 sql_help.c:1455 sql_help.c:1583 sql_help.c:1615 -#: sql_help.c:1667 sql_help.c:1906 sql_help.c:1913 sql_help.c:2205 -#: sql_help.c:2247 sql_help.c:2254 sql_help.c:2263 sql_help.c:2344 -#: sql_help.c:2558 sql_help.c:2650 sql_help.c:2921 sql_help.c:3102 -#: sql_help.c:3124 sql_help.c:3264 sql_help.c:3619 sql_help.c:3791 -#: sql_help.c:3964 sql_help.c:4661 +#: sql_help.c:1667 sql_help.c:1906 sql_help.c:1913 sql_help.c:2206 +#: sql_help.c:2248 sql_help.c:2255 sql_help.c:2264 sql_help.c:2345 +#: sql_help.c:2559 sql_help.c:2651 sql_help.c:2922 sql_help.c:3103 +#: sql_help.c:3125 sql_help.c:3265 sql_help.c:3620 sql_help.c:3792 +#: sql_help.c:3965 sql_help.c:4662 msgid "option" msgstr "Option" -#: sql_help.c:113 sql_help.c:928 sql_help.c:1584 sql_help.c:2345 -#: sql_help.c:2559 sql_help.c:3103 sql_help.c:3265 +#: sql_help.c:113 sql_help.c:928 sql_help.c:1584 sql_help.c:2346 +#: sql_help.c:2560 sql_help.c:3104 sql_help.c:3266 msgid "where option can be:" msgstr "wobei Option Folgendes sein kann:" @@ -4271,7 +4272,7 @@ msgstr "allowconn" #: sql_help.c:115 sql_help.c:929 sql_help.c:1585 sql_help.c:2140 -#: sql_help.c:2346 sql_help.c:2560 sql_help.c:3104 +#: sql_help.c:2347 sql_help.c:2561 sql_help.c:3105 msgid "connlimit" msgstr "Verbindungslimit" @@ -4287,8 +4288,8 @@ #: sql_help.c:548 sql_help.c:864 sql_help.c:866 sql_help.c:867 sql_help.c:936 #: sql_help.c:940 sql_help.c:943 sql_help.c:1005 sql_help.c:1007 #: sql_help.c:1008 sql_help.c:1142 sql_help.c:1145 sql_help.c:1592 -#: sql_help.c:1596 sql_help.c:1599 sql_help.c:2311 sql_help.c:2511 -#: sql_help.c:3983 sql_help.c:4399 +#: sql_help.c:1596 sql_help.c:1599 sql_help.c:2312 sql_help.c:2512 +#: sql_help.c:3984 sql_help.c:4400 msgid "configuration_parameter" msgstr "Konfigurationsparameter" @@ -4298,13 +4299,13 @@ #: sql_help.c:1119 sql_help.c:1122 sql_help.c:1127 sql_help.c:1143 #: sql_help.c:1144 sql_help.c:1309 sql_help.c:1329 sql_help.c:1377 #: sql_help.c:1399 sql_help.c:1456 sql_help.c:1540 sql_help.c:1593 -#: sql_help.c:1616 sql_help.c:2206 sql_help.c:2248 sql_help.c:2255 -#: sql_help.c:2264 sql_help.c:2312 sql_help.c:2313 sql_help.c:2375 -#: sql_help.c:2378 sql_help.c:2412 sql_help.c:2512 sql_help.c:2513 -#: sql_help.c:2530 sql_help.c:2651 sql_help.c:2681 sql_help.c:2786 -#: sql_help.c:2799 sql_help.c:2813 sql_help.c:2854 sql_help.c:2878 -#: sql_help.c:2895 sql_help.c:2922 sql_help.c:3125 sql_help.c:3792 -#: sql_help.c:4400 sql_help.c:4401 +#: sql_help.c:1616 sql_help.c:2207 sql_help.c:2249 sql_help.c:2256 +#: sql_help.c:2265 sql_help.c:2313 sql_help.c:2314 sql_help.c:2376 +#: sql_help.c:2379 sql_help.c:2413 sql_help.c:2513 sql_help.c:2514 +#: sql_help.c:2531 sql_help.c:2652 sql_help.c:2682 sql_help.c:2787 +#: sql_help.c:2800 sql_help.c:2814 sql_help.c:2855 sql_help.c:2879 +#: sql_help.c:2896 sql_help.c:2923 sql_help.c:3126 sql_help.c:3793 +#: sql_help.c:4401 sql_help.c:4402 msgid "value" msgstr "Wert" @@ -4312,9 +4313,9 @@ msgid "target_role" msgstr "Zielrolle" -#: sql_help.c:198 sql_help.c:2190 sql_help.c:2606 sql_help.c:2611 -#: sql_help.c:3738 sql_help.c:3745 sql_help.c:3759 sql_help.c:3765 -#: sql_help.c:4086 sql_help.c:4093 sql_help.c:4107 sql_help.c:4113 +#: sql_help.c:198 sql_help.c:2191 sql_help.c:2607 sql_help.c:2612 +#: sql_help.c:3739 sql_help.c:3746 sql_help.c:3760 sql_help.c:3766 +#: sql_help.c:4087 sql_help.c:4094 sql_help.c:4108 sql_help.c:4114 msgid "schema_name" msgstr "Schemaname" @@ -4329,29 +4330,29 @@ #: sql_help.c:201 sql_help.c:202 sql_help.c:203 sql_help.c:204 sql_help.c:205 #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 #: sql_help.c:570 sql_help.c:606 sql_help.c:671 sql_help.c:811 sql_help.c:947 -#: sql_help.c:1277 sql_help.c:1603 sql_help.c:2349 sql_help.c:2350 -#: sql_help.c:2351 sql_help.c:2352 sql_help.c:2353 sql_help.c:2486 -#: sql_help.c:2563 sql_help.c:2564 sql_help.c:2565 sql_help.c:2566 -#: sql_help.c:2567 sql_help.c:3107 sql_help.c:3108 sql_help.c:3109 -#: sql_help.c:3110 sql_help.c:3111 sql_help.c:3771 sql_help.c:3775 -#: sql_help.c:4119 sql_help.c:4123 sql_help.c:4420 +#: sql_help.c:1277 sql_help.c:1603 sql_help.c:2350 sql_help.c:2351 +#: sql_help.c:2352 sql_help.c:2353 sql_help.c:2354 sql_help.c:2487 +#: sql_help.c:2564 sql_help.c:2565 sql_help.c:2566 sql_help.c:2567 +#: sql_help.c:2568 sql_help.c:3108 sql_help.c:3109 sql_help.c:3110 +#: sql_help.c:3111 sql_help.c:3112 sql_help.c:3772 sql_help.c:3776 +#: sql_help.c:4120 sql_help.c:4124 sql_help.c:4421 msgid "role_name" msgstr "Rollenname" #: sql_help.c:236 sql_help.c:459 sql_help.c:1293 sql_help.c:1295 #: sql_help.c:1344 sql_help.c:1356 sql_help.c:1381 sql_help.c:1633 -#: sql_help.c:2160 sql_help.c:2164 sql_help.c:2267 sql_help.c:2272 -#: sql_help.c:2371 sql_help.c:2781 sql_help.c:2794 sql_help.c:2808 -#: sql_help.c:2817 sql_help.c:2829 sql_help.c:2858 sql_help.c:3823 -#: sql_help.c:3838 sql_help.c:3840 sql_help.c:4285 sql_help.c:4286 -#: sql_help.c:4295 sql_help.c:4336 sql_help.c:4337 sql_help.c:4338 -#: sql_help.c:4339 sql_help.c:4340 sql_help.c:4341 sql_help.c:4374 -#: sql_help.c:4375 sql_help.c:4380 sql_help.c:4385 sql_help.c:4524 -#: sql_help.c:4525 sql_help.c:4534 sql_help.c:4575 sql_help.c:4576 -#: sql_help.c:4577 sql_help.c:4578 sql_help.c:4579 sql_help.c:4580 -#: sql_help.c:4627 sql_help.c:4629 sql_help.c:4688 sql_help.c:4744 -#: sql_help.c:4745 sql_help.c:4754 sql_help.c:4795 sql_help.c:4796 -#: sql_help.c:4797 sql_help.c:4798 sql_help.c:4799 sql_help.c:4800 +#: sql_help.c:2160 sql_help.c:2164 sql_help.c:2268 sql_help.c:2273 +#: sql_help.c:2372 sql_help.c:2782 sql_help.c:2795 sql_help.c:2809 +#: sql_help.c:2818 sql_help.c:2830 sql_help.c:2859 sql_help.c:3824 +#: sql_help.c:3839 sql_help.c:3841 sql_help.c:4286 sql_help.c:4287 +#: sql_help.c:4296 sql_help.c:4337 sql_help.c:4338 sql_help.c:4339 +#: sql_help.c:4340 sql_help.c:4341 sql_help.c:4342 sql_help.c:4375 +#: sql_help.c:4376 sql_help.c:4381 sql_help.c:4386 sql_help.c:4525 +#: sql_help.c:4526 sql_help.c:4535 sql_help.c:4576 sql_help.c:4577 +#: sql_help.c:4578 sql_help.c:4579 sql_help.c:4580 sql_help.c:4581 +#: sql_help.c:4628 sql_help.c:4630 sql_help.c:4689 sql_help.c:4745 +#: sql_help.c:4746 sql_help.c:4755 sql_help.c:4796 sql_help.c:4797 +#: sql_help.c:4798 sql_help.c:4799 sql_help.c:4800 sql_help.c:4801 msgid "expression" msgstr "Ausdruck" @@ -4362,8 +4363,8 @@ #: sql_help.c:241 sql_help.c:243 sql_help.c:246 sql_help.c:474 sql_help.c:475 #: sql_help.c:1270 sql_help.c:1315 sql_help.c:1316 sql_help.c:1317 #: sql_help.c:1343 sql_help.c:1355 sql_help.c:1372 sql_help.c:1791 -#: sql_help.c:1793 sql_help.c:2163 sql_help.c:2266 sql_help.c:2271 -#: sql_help.c:2816 sql_help.c:2828 sql_help.c:3835 +#: sql_help.c:1793 sql_help.c:2163 sql_help.c:2267 sql_help.c:2272 +#: sql_help.c:2817 sql_help.c:2829 sql_help.c:3836 msgid "constraint_name" msgstr "Constraint-Name" @@ -4394,75 +4395,75 @@ #: sql_help.c:1824 sql_help.c:1831 sql_help.c:1832 sql_help.c:1833 #: sql_help.c:1834 sql_help.c:1835 sql_help.c:1836 sql_help.c:1837 #: sql_help.c:1838 sql_help.c:1839 sql_help.c:1840 sql_help.c:1841 -#: sql_help.c:1846 sql_help.c:1847 sql_help.c:4192 sql_help.c:4197 -#: sql_help.c:4198 sql_help.c:4199 sql_help.c:4200 sql_help.c:4206 -#: sql_help.c:4207 sql_help.c:4212 sql_help.c:4213 sql_help.c:4218 -#: sql_help.c:4219 sql_help.c:4220 sql_help.c:4221 sql_help.c:4222 -#: sql_help.c:4223 +#: sql_help.c:1846 sql_help.c:1847 sql_help.c:4193 sql_help.c:4198 +#: sql_help.c:4199 sql_help.c:4200 sql_help.c:4201 sql_help.c:4207 +#: sql_help.c:4208 sql_help.c:4213 sql_help.c:4214 sql_help.c:4219 +#: sql_help.c:4220 sql_help.c:4221 sql_help.c:4222 sql_help.c:4223 +#: sql_help.c:4224 msgid "object_name" msgstr "Objektname" -#: sql_help.c:326 sql_help.c:1784 sql_help.c:4195 +#: sql_help.c:326 sql_help.c:1784 sql_help.c:4196 msgid "aggregate_name" msgstr "Aggregatname" #: sql_help.c:328 sql_help.c:1786 sql_help.c:2070 sql_help.c:2074 -#: sql_help.c:2076 sql_help.c:3234 +#: sql_help.c:2076 sql_help.c:3235 msgid "source_type" msgstr "Quelltyp" #: sql_help.c:329 sql_help.c:1787 sql_help.c:2071 sql_help.c:2075 -#: sql_help.c:2077 sql_help.c:3235 +#: sql_help.c:2077 sql_help.c:3236 msgid "target_type" msgstr "Zieltyp" #: sql_help.c:336 sql_help.c:775 sql_help.c:1802 sql_help.c:2072 -#: sql_help.c:2113 sql_help.c:2178 sql_help.c:2429 sql_help.c:2460 -#: sql_help.c:2998 sql_help.c:4103 sql_help.c:4201 sql_help.c:4314 -#: sql_help.c:4318 sql_help.c:4322 sql_help.c:4325 sql_help.c:4553 -#: sql_help.c:4557 sql_help.c:4561 sql_help.c:4564 sql_help.c:4773 -#: sql_help.c:4777 sql_help.c:4781 sql_help.c:4784 +#: sql_help.c:2113 sql_help.c:2179 sql_help.c:2430 sql_help.c:2461 +#: sql_help.c:2999 sql_help.c:4104 sql_help.c:4202 sql_help.c:4315 +#: sql_help.c:4319 sql_help.c:4323 sql_help.c:4326 sql_help.c:4554 +#: sql_help.c:4558 sql_help.c:4562 sql_help.c:4565 sql_help.c:4774 +#: sql_help.c:4778 sql_help.c:4782 sql_help.c:4785 msgid "function_name" msgstr "Funktionsname" -#: sql_help.c:341 sql_help.c:768 sql_help.c:1809 sql_help.c:2453 +#: sql_help.c:341 sql_help.c:768 sql_help.c:1809 sql_help.c:2454 msgid "operator_name" msgstr "Operatorname" #: sql_help.c:342 sql_help.c:704 sql_help.c:708 sql_help.c:712 sql_help.c:1810 -#: sql_help.c:2430 sql_help.c:3358 +#: sql_help.c:2431 sql_help.c:3359 msgid "left_type" msgstr "linker_Typ" #: sql_help.c:343 sql_help.c:705 sql_help.c:709 sql_help.c:713 sql_help.c:1811 -#: sql_help.c:2431 sql_help.c:3359 +#: sql_help.c:2432 sql_help.c:3360 msgid "right_type" msgstr "rechter_Typ" #: sql_help.c:345 sql_help.c:347 sql_help.c:731 sql_help.c:734 sql_help.c:737 #: sql_help.c:766 sql_help.c:778 sql_help.c:786 sql_help.c:789 sql_help.c:792 -#: sql_help.c:1361 sql_help.c:1813 sql_help.c:1815 sql_help.c:2450 -#: sql_help.c:2471 sql_help.c:2834 sql_help.c:3368 sql_help.c:3377 +#: sql_help.c:1361 sql_help.c:1813 sql_help.c:1815 sql_help.c:2451 +#: sql_help.c:2472 sql_help.c:2835 sql_help.c:3369 sql_help.c:3378 msgid "index_method" msgstr "Indexmethode" -#: sql_help.c:349 sql_help.c:1819 sql_help.c:4208 +#: sql_help.c:349 sql_help.c:1819 sql_help.c:4209 msgid "procedure_name" msgstr "Prozedurname" -#: sql_help.c:353 sql_help.c:1825 sql_help.c:3755 sql_help.c:4214 +#: sql_help.c:353 sql_help.c:1825 sql_help.c:3756 sql_help.c:4215 msgid "routine_name" msgstr "Routinenname" -#: sql_help.c:365 sql_help.c:1333 sql_help.c:1842 sql_help.c:2307 -#: sql_help.c:2510 sql_help.c:2789 sql_help.c:2965 sql_help.c:3539 -#: sql_help.c:3769 sql_help.c:4117 +#: sql_help.c:365 sql_help.c:1333 sql_help.c:1842 sql_help.c:2308 +#: sql_help.c:2511 sql_help.c:2790 sql_help.c:2966 sql_help.c:3540 +#: sql_help.c:3770 sql_help.c:4118 msgid "type_name" msgstr "Typname" -#: sql_help.c:366 sql_help.c:1843 sql_help.c:2306 sql_help.c:2509 -#: sql_help.c:2966 sql_help.c:3192 sql_help.c:3540 sql_help.c:3761 -#: sql_help.c:4109 +#: sql_help.c:366 sql_help.c:1843 sql_help.c:2307 sql_help.c:2510 +#: sql_help.c:2967 sql_help.c:3193 sql_help.c:3541 sql_help.c:3762 +#: sql_help.c:4110 msgid "lang_name" msgstr "Sprachname" @@ -4470,11 +4471,11 @@ msgid "and aggregate_signature is:" msgstr "und Aggregatsignatur Folgendes ist:" -#: sql_help.c:392 sql_help.c:1937 sql_help.c:2203 +#: sql_help.c:392 sql_help.c:1937 sql_help.c:2204 msgid "handler_function" msgstr "Handler-Funktion" -#: sql_help.c:393 sql_help.c:2204 +#: sql_help.c:393 sql_help.c:2205 msgid "validator_function" msgstr "Validator-Funktion" @@ -4494,16 +4495,16 @@ #: sql_help.c:1366 sql_help.c:1375 sql_help.c:1380 sql_help.c:1632 #: sql_help.c:1635 sql_help.c:1639 sql_help.c:1675 sql_help.c:1790 #: sql_help.c:1903 sql_help.c:1909 sql_help.c:1922 sql_help.c:1923 -#: sql_help.c:1924 sql_help.c:2245 sql_help.c:2258 sql_help.c:2304 -#: sql_help.c:2370 sql_help.c:2376 sql_help.c:2409 sql_help.c:2636 -#: sql_help.c:2664 sql_help.c:2665 sql_help.c:2772 sql_help.c:2780 -#: sql_help.c:2790 sql_help.c:2793 sql_help.c:2803 sql_help.c:2807 -#: sql_help.c:2830 sql_help.c:2832 sql_help.c:2839 sql_help.c:2852 -#: sql_help.c:2857 sql_help.c:2875 sql_help.c:3001 sql_help.c:3137 -#: sql_help.c:3740 sql_help.c:3741 sql_help.c:3822 sql_help.c:3837 -#: sql_help.c:3839 sql_help.c:3841 sql_help.c:4088 sql_help.c:4089 -#: sql_help.c:4194 sql_help.c:4345 sql_help.c:4584 sql_help.c:4626 -#: sql_help.c:4628 sql_help.c:4630 sql_help.c:4676 sql_help.c:4804 +#: sql_help.c:1924 sql_help.c:2246 sql_help.c:2259 sql_help.c:2305 +#: sql_help.c:2371 sql_help.c:2377 sql_help.c:2410 sql_help.c:2637 +#: sql_help.c:2665 sql_help.c:2666 sql_help.c:2773 sql_help.c:2781 +#: sql_help.c:2791 sql_help.c:2794 sql_help.c:2804 sql_help.c:2808 +#: sql_help.c:2831 sql_help.c:2833 sql_help.c:2840 sql_help.c:2853 +#: sql_help.c:2858 sql_help.c:2876 sql_help.c:3002 sql_help.c:3138 +#: sql_help.c:3741 sql_help.c:3742 sql_help.c:3823 sql_help.c:3838 +#: sql_help.c:3840 sql_help.c:3842 sql_help.c:4089 sql_help.c:4090 +#: sql_help.c:4195 sql_help.c:4346 sql_help.c:4585 sql_help.c:4627 +#: sql_help.c:4629 sql_help.c:4631 sql_help.c:4677 sql_help.c:4805 msgid "column_name" msgstr "Spaltenname" @@ -4518,24 +4519,24 @@ #: sql_help.c:451 sql_help.c:456 sql_help.c:1049 sql_help.c:1286 #: sql_help.c:1291 sql_help.c:1543 sql_help.c:1547 sql_help.c:2158 -#: sql_help.c:2246 sql_help.c:2449 sql_help.c:2629 sql_help.c:2773 -#: sql_help.c:3046 sql_help.c:3924 +#: sql_help.c:2247 sql_help.c:2450 sql_help.c:2630 sql_help.c:2774 +#: sql_help.c:3047 sql_help.c:3925 msgid "data_type" msgstr "Datentyp" #: sql_help.c:452 sql_help.c:457 sql_help.c:1287 sql_help.c:1292 -#: sql_help.c:1544 sql_help.c:1548 sql_help.c:2159 sql_help.c:2249 -#: sql_help.c:2372 sql_help.c:2774 sql_help.c:2782 sql_help.c:2795 -#: sql_help.c:2809 sql_help.c:3047 sql_help.c:3053 sql_help.c:3832 +#: sql_help.c:1544 sql_help.c:1548 sql_help.c:2159 sql_help.c:2250 +#: sql_help.c:2373 sql_help.c:2775 sql_help.c:2783 sql_help.c:2796 +#: sql_help.c:2810 sql_help.c:3048 sql_help.c:3054 sql_help.c:3833 msgid "collation" msgstr "Sortierfolge" -#: sql_help.c:453 sql_help.c:1288 sql_help.c:2250 sql_help.c:2259 -#: sql_help.c:2775 sql_help.c:2791 sql_help.c:2804 +#: sql_help.c:453 sql_help.c:1288 sql_help.c:2251 sql_help.c:2260 +#: sql_help.c:2776 sql_help.c:2792 sql_help.c:2805 msgid "column_constraint" msgstr "Spalten-Constraint" -#: sql_help.c:463 sql_help.c:604 sql_help.c:675 sql_help.c:1306 sql_help.c:4673 +#: sql_help.c:463 sql_help.c:604 sql_help.c:675 sql_help.c:1306 sql_help.c:4674 msgid "integer" msgstr "ganze_Zahl" @@ -4544,8 +4545,8 @@ msgid "attribute_option" msgstr "Attributoption" -#: sql_help.c:473 sql_help.c:1313 sql_help.c:2251 sql_help.c:2260 -#: sql_help.c:2776 sql_help.c:2792 sql_help.c:2805 +#: sql_help.c:473 sql_help.c:1313 sql_help.c:2252 sql_help.c:2261 +#: sql_help.c:2777 sql_help.c:2793 sql_help.c:2806 msgid "table_constraint" msgstr "Tabellen-Constraint" @@ -4555,49 +4556,49 @@ msgstr "Triggername" #: sql_help.c:480 sql_help.c:481 sql_help.c:1331 sql_help.c:1332 -#: sql_help.c:2252 sql_help.c:2257 sql_help.c:2779 sql_help.c:2802 +#: sql_help.c:2253 sql_help.c:2258 sql_help.c:2780 sql_help.c:2803 msgid "parent_table" msgstr "Elterntabelle" #: sql_help.c:540 sql_help.c:596 sql_help.c:662 sql_help.c:862 sql_help.c:1001 -#: sql_help.c:1500 sql_help.c:2189 +#: sql_help.c:1500 sql_help.c:2190 msgid "extension_name" msgstr "Erweiterungsname" -#: sql_help.c:542 sql_help.c:1003 sql_help.c:2308 +#: sql_help.c:542 sql_help.c:1003 sql_help.c:2309 msgid "execution_cost" msgstr "Ausführungskosten" -#: sql_help.c:543 sql_help.c:1004 sql_help.c:2309 +#: sql_help.c:543 sql_help.c:1004 sql_help.c:2310 msgid "result_rows" msgstr "Ergebniszeilen" -#: sql_help.c:544 sql_help.c:2310 +#: sql_help.c:544 sql_help.c:2311 msgid "support_function" msgstr "Support-Funktion" #: sql_help.c:565 sql_help.c:567 sql_help.c:926 sql_help.c:934 sql_help.c:938 #: sql_help.c:941 sql_help.c:944 sql_help.c:1582 sql_help.c:1590 -#: sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 sql_help.c:2607 -#: sql_help.c:2609 sql_help.c:2612 sql_help.c:2613 sql_help.c:3739 -#: sql_help.c:3743 sql_help.c:3746 sql_help.c:3748 sql_help.c:3750 -#: sql_help.c:3752 sql_help.c:3754 sql_help.c:3760 sql_help.c:3762 -#: sql_help.c:3764 sql_help.c:3766 sql_help.c:3768 sql_help.c:3770 -#: sql_help.c:3772 sql_help.c:3773 sql_help.c:4087 sql_help.c:4091 -#: sql_help.c:4094 sql_help.c:4096 sql_help.c:4098 sql_help.c:4100 -#: sql_help.c:4102 sql_help.c:4108 sql_help.c:4110 sql_help.c:4112 -#: sql_help.c:4114 sql_help.c:4116 sql_help.c:4118 sql_help.c:4120 -#: sql_help.c:4121 +#: sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 sql_help.c:2608 +#: sql_help.c:2610 sql_help.c:2613 sql_help.c:2614 sql_help.c:3740 +#: sql_help.c:3744 sql_help.c:3747 sql_help.c:3749 sql_help.c:3751 +#: sql_help.c:3753 sql_help.c:3755 sql_help.c:3761 sql_help.c:3763 +#: sql_help.c:3765 sql_help.c:3767 sql_help.c:3769 sql_help.c:3771 +#: sql_help.c:3773 sql_help.c:3774 sql_help.c:4088 sql_help.c:4092 +#: sql_help.c:4095 sql_help.c:4097 sql_help.c:4099 sql_help.c:4101 +#: sql_help.c:4103 sql_help.c:4109 sql_help.c:4111 sql_help.c:4113 +#: sql_help.c:4115 sql_help.c:4117 sql_help.c:4119 sql_help.c:4121 +#: sql_help.c:4122 msgid "role_specification" msgstr "Rollenangabe" #: sql_help.c:566 sql_help.c:568 sql_help.c:1613 sql_help.c:2132 -#: sql_help.c:2615 sql_help.c:3122 sql_help.c:3573 sql_help.c:4430 +#: sql_help.c:2616 sql_help.c:3123 sql_help.c:3574 sql_help.c:4431 msgid "user_name" msgstr "Benutzername" -#: sql_help.c:569 sql_help.c:946 sql_help.c:1602 sql_help.c:2614 -#: sql_help.c:3774 sql_help.c:4122 +#: sql_help.c:569 sql_help.c:946 sql_help.c:1602 sql_help.c:2615 +#: sql_help.c:3775 sql_help.c:4123 msgid "where role_specification can be:" msgstr "wobei Rollenangabe Folgendes sein kann:" @@ -4605,10 +4606,10 @@ msgid "group_name" msgstr "Gruppenname" -#: sql_help.c:592 sql_help.c:1378 sql_help.c:2138 sql_help.c:2379 -#: sql_help.c:2413 sql_help.c:2787 sql_help.c:2800 sql_help.c:2814 -#: sql_help.c:2855 sql_help.c:2879 sql_help.c:2891 sql_help.c:3767 -#: sql_help.c:4115 +#: sql_help.c:592 sql_help.c:1378 sql_help.c:2138 sql_help.c:2380 +#: sql_help.c:2414 sql_help.c:2788 sql_help.c:2801 sql_help.c:2815 +#: sql_help.c:2856 sql_help.c:2880 sql_help.c:2892 sql_help.c:3768 +#: sql_help.c:4116 msgid "tablespace_name" msgstr "Tablespace-Name" @@ -4618,9 +4619,9 @@ msgstr "Indexname" #: sql_help.c:598 sql_help.c:601 sql_help.c:683 sql_help.c:685 sql_help.c:1328 -#: sql_help.c:1330 sql_help.c:1376 sql_help.c:2377 sql_help.c:2411 -#: sql_help.c:2785 sql_help.c:2798 sql_help.c:2812 sql_help.c:2853 -#: sql_help.c:2877 +#: sql_help.c:1330 sql_help.c:1376 sql_help.c:2378 sql_help.c:2412 +#: sql_help.c:2786 sql_help.c:2799 sql_help.c:2813 sql_help.c:2854 +#: sql_help.c:2878 msgid "storage_parameter" msgstr "Storage-Parameter" @@ -4628,38 +4629,38 @@ msgid "column_number" msgstr "Spaltennummer" -#: sql_help.c:627 sql_help.c:1807 sql_help.c:4205 +#: sql_help.c:627 sql_help.c:1807 sql_help.c:4206 msgid "large_object_oid" msgstr "Large-Object-OID" -#: sql_help.c:714 sql_help.c:2434 +#: sql_help.c:714 sql_help.c:2435 msgid "res_proc" msgstr "Res-Funktion" -#: sql_help.c:715 sql_help.c:2435 +#: sql_help.c:715 sql_help.c:2436 msgid "join_proc" msgstr "Join-Funktion" -#: sql_help.c:767 sql_help.c:779 sql_help.c:2452 +#: sql_help.c:767 sql_help.c:779 sql_help.c:2453 msgid "strategy_number" msgstr "Strategienummer" #: sql_help.c:769 sql_help.c:770 sql_help.c:773 sql_help.c:774 sql_help.c:780 -#: sql_help.c:781 sql_help.c:783 sql_help.c:784 sql_help.c:2454 sql_help.c:2455 -#: sql_help.c:2458 sql_help.c:2459 +#: sql_help.c:781 sql_help.c:783 sql_help.c:784 sql_help.c:2455 sql_help.c:2456 +#: sql_help.c:2459 sql_help.c:2460 msgid "op_type" msgstr "Optyp" -#: sql_help.c:771 sql_help.c:2456 +#: sql_help.c:771 sql_help.c:2457 msgid "sort_family_name" msgstr "Sortierfamilienname" -#: sql_help.c:772 sql_help.c:782 sql_help.c:2457 +#: sql_help.c:772 sql_help.c:782 sql_help.c:2458 msgid "support_number" msgstr "Unterst-Nummer" -#: sql_help.c:776 sql_help.c:2073 sql_help.c:2461 sql_help.c:2968 -#: sql_help.c:2970 +#: sql_help.c:776 sql_help.c:2073 sql_help.c:2462 sql_help.c:2969 +#: sql_help.c:2971 msgid "argument_type" msgstr "Argumenttyp" @@ -4667,61 +4668,61 @@ #: sql_help.c:1017 sql_help.c:1056 sql_help.c:1496 sql_help.c:1499 #: sql_help.c:1674 sql_help.c:1723 sql_help.c:1792 sql_help.c:1817 #: sql_help.c:1830 sql_help.c:1845 sql_help.c:1902 sql_help.c:1908 -#: sql_help.c:2244 sql_help.c:2256 sql_help.c:2368 sql_help.c:2408 -#: sql_help.c:2485 sql_help.c:2528 sql_help.c:2584 sql_help.c:2635 -#: sql_help.c:2666 sql_help.c:2771 sql_help.c:2788 sql_help.c:2801 -#: sql_help.c:2874 sql_help.c:2994 sql_help.c:3171 sql_help.c:3394 -#: sql_help.c:3443 sql_help.c:3549 sql_help.c:3737 sql_help.c:3742 -#: sql_help.c:3788 sql_help.c:3820 sql_help.c:4085 sql_help.c:4090 -#: sql_help.c:4193 sql_help.c:4300 sql_help.c:4302 sql_help.c:4351 -#: sql_help.c:4390 sql_help.c:4539 sql_help.c:4541 sql_help.c:4590 -#: sql_help.c:4624 sql_help.c:4675 sql_help.c:4759 sql_help.c:4761 -#: sql_help.c:4810 +#: sql_help.c:2245 sql_help.c:2257 sql_help.c:2369 sql_help.c:2409 +#: sql_help.c:2486 sql_help.c:2529 sql_help.c:2585 sql_help.c:2636 +#: sql_help.c:2667 sql_help.c:2772 sql_help.c:2789 sql_help.c:2802 +#: sql_help.c:2875 sql_help.c:2995 sql_help.c:3172 sql_help.c:3395 +#: sql_help.c:3444 sql_help.c:3550 sql_help.c:3738 sql_help.c:3743 +#: sql_help.c:3789 sql_help.c:3821 sql_help.c:4086 sql_help.c:4091 +#: sql_help.c:4194 sql_help.c:4301 sql_help.c:4303 sql_help.c:4352 +#: sql_help.c:4391 sql_help.c:4540 sql_help.c:4542 sql_help.c:4591 +#: sql_help.c:4625 sql_help.c:4676 sql_help.c:4760 sql_help.c:4762 +#: sql_help.c:4811 msgid "table_name" msgstr "Tabellenname" -#: sql_help.c:812 sql_help.c:2487 +#: sql_help.c:812 sql_help.c:2488 msgid "using_expression" msgstr "Using-Ausdruck" -#: sql_help.c:813 sql_help.c:2488 +#: sql_help.c:813 sql_help.c:2489 msgid "check_expression" msgstr "Check-Ausdruck" -#: sql_help.c:887 sql_help.c:2529 +#: sql_help.c:887 sql_help.c:2530 msgid "publication_parameter" msgstr "Publikationsparameter" -#: sql_help.c:930 sql_help.c:1586 sql_help.c:2347 sql_help.c:2561 -#: sql_help.c:3105 +#: sql_help.c:930 sql_help.c:1586 sql_help.c:2348 sql_help.c:2562 +#: sql_help.c:3106 msgid "password" msgstr "Passwort" -#: sql_help.c:931 sql_help.c:1587 sql_help.c:2348 sql_help.c:2562 -#: sql_help.c:3106 +#: sql_help.c:931 sql_help.c:1587 sql_help.c:2349 sql_help.c:2563 +#: sql_help.c:3107 msgid "timestamp" msgstr "Zeit" #: sql_help.c:935 sql_help.c:939 sql_help.c:942 sql_help.c:945 sql_help.c:1591 -#: sql_help.c:1595 sql_help.c:1598 sql_help.c:1601 sql_help.c:3747 -#: sql_help.c:4095 +#: sql_help.c:1595 sql_help.c:1598 sql_help.c:1601 sql_help.c:3748 +#: sql_help.c:4096 msgid "database_name" msgstr "Datenbankname" -#: sql_help.c:1050 sql_help.c:2630 +#: sql_help.c:1050 sql_help.c:2631 msgid "increment" msgstr "Inkrement" -#: sql_help.c:1051 sql_help.c:2631 +#: sql_help.c:1051 sql_help.c:2632 msgid "minvalue" msgstr "Minwert" -#: sql_help.c:1052 sql_help.c:2632 +#: sql_help.c:1052 sql_help.c:2633 msgid "maxvalue" msgstr "Maxwert" -#: sql_help.c:1053 sql_help.c:2633 sql_help.c:4298 sql_help.c:4388 -#: sql_help.c:4537 sql_help.c:4692 sql_help.c:4757 +#: sql_help.c:1053 sql_help.c:2634 sql_help.c:4299 sql_help.c:4389 +#: sql_help.c:4538 sql_help.c:4693 sql_help.c:4758 msgid "start" msgstr "Start" @@ -4729,7 +4730,7 @@ msgid "restart" msgstr "Restart" -#: sql_help.c:1055 sql_help.c:2634 +#: sql_help.c:1055 sql_help.c:2635 msgid "cache" msgstr "Cache" @@ -4737,11 +4738,11 @@ msgid "new_target" msgstr "neues_Ziel" -#: sql_help.c:1115 sql_help.c:2678 +#: sql_help.c:1115 sql_help.c:2679 msgid "conninfo" msgstr "Verbindungsinfo" -#: sql_help.c:1117 sql_help.c:2679 +#: sql_help.c:1117 sql_help.c:2680 msgid "publication_name" msgstr "Publikationsname" @@ -4753,7 +4754,7 @@ msgid "refresh_option" msgstr "Refresh-Option" -#: sql_help.c:1126 sql_help.c:2680 +#: sql_help.c:1126 sql_help.c:2681 msgid "subscription_parameter" msgstr "Subskriptionsparameter" @@ -4761,11 +4762,11 @@ msgid "partition_name" msgstr "Partitionsname" -#: sql_help.c:1281 sql_help.c:2261 sql_help.c:2806 +#: sql_help.c:1281 sql_help.c:2262 sql_help.c:2807 msgid "partition_bound_spec" msgstr "Partitionsbegrenzungsangabe" -#: sql_help.c:1300 sql_help.c:1347 sql_help.c:2820 +#: sql_help.c:1300 sql_help.c:1347 sql_help.c:2821 msgid "sequence_options" msgstr "Sequenzoptionen" @@ -4781,16 +4782,16 @@ msgid "rewrite_rule_name" msgstr "Regelname" -#: sql_help.c:1336 sql_help.c:2845 +#: sql_help.c:1336 sql_help.c:2846 msgid "and partition_bound_spec is:" msgstr "und Partitionsbegrenzungsangabe Folgendes ist:" -#: sql_help.c:1337 sql_help.c:1338 sql_help.c:1339 sql_help.c:2846 -#: sql_help.c:2847 sql_help.c:2848 +#: sql_help.c:1337 sql_help.c:1338 sql_help.c:1339 sql_help.c:2847 +#: sql_help.c:2848 sql_help.c:2849 msgid "partition_bound_expr" msgstr "Partitionsbegrenzungsausdruck" -#: sql_help.c:1340 sql_help.c:1341 sql_help.c:2849 sql_help.c:2850 +#: sql_help.c:1340 sql_help.c:1341 sql_help.c:2850 sql_help.c:2851 msgid "numeric_literal" msgstr "numerische_Konstante" @@ -4798,48 +4799,48 @@ msgid "and column_constraint is:" msgstr "und Spalten-Constraint Folgendes ist:" -#: sql_help.c:1345 sql_help.c:2268 sql_help.c:2302 sql_help.c:2508 -#: sql_help.c:2818 +#: sql_help.c:1345 sql_help.c:2269 sql_help.c:2303 sql_help.c:2509 +#: sql_help.c:2819 msgid "default_expr" msgstr "Vorgabeausdruck" -#: sql_help.c:1346 sql_help.c:2269 sql_help.c:2819 +#: sql_help.c:1346 sql_help.c:2270 sql_help.c:2820 msgid "generation_expr" msgstr "Generierungsausdruck" #: sql_help.c:1348 sql_help.c:1349 sql_help.c:1358 sql_help.c:1360 -#: sql_help.c:1364 sql_help.c:2821 sql_help.c:2822 sql_help.c:2831 -#: sql_help.c:2833 sql_help.c:2837 +#: sql_help.c:1364 sql_help.c:2822 sql_help.c:2823 sql_help.c:2832 +#: sql_help.c:2834 sql_help.c:2838 msgid "index_parameters" msgstr "Indexparameter" -#: sql_help.c:1350 sql_help.c:1367 sql_help.c:2823 sql_help.c:2840 +#: sql_help.c:1350 sql_help.c:1367 sql_help.c:2824 sql_help.c:2841 msgid "reftable" msgstr "Reftabelle" -#: sql_help.c:1351 sql_help.c:1368 sql_help.c:2824 sql_help.c:2841 +#: sql_help.c:1351 sql_help.c:1368 sql_help.c:2825 sql_help.c:2842 msgid "refcolumn" msgstr "Refspalte" #: sql_help.c:1352 sql_help.c:1353 sql_help.c:1369 sql_help.c:1370 -#: sql_help.c:2825 sql_help.c:2826 sql_help.c:2842 sql_help.c:2843 +#: sql_help.c:2826 sql_help.c:2827 sql_help.c:2843 sql_help.c:2844 msgid "referential_action" msgstr "Fremdschlüsselaktion" -#: sql_help.c:1354 sql_help.c:2270 sql_help.c:2827 +#: sql_help.c:1354 sql_help.c:2271 sql_help.c:2828 msgid "and table_constraint is:" msgstr "und Tabellen-Constraint Folgendes ist:" -#: sql_help.c:1362 sql_help.c:2835 +#: sql_help.c:1362 sql_help.c:2836 msgid "exclude_element" msgstr "Exclude-Element" -#: sql_help.c:1363 sql_help.c:2836 sql_help.c:4296 sql_help.c:4386 -#: sql_help.c:4535 sql_help.c:4690 sql_help.c:4755 +#: sql_help.c:1363 sql_help.c:2837 sql_help.c:4297 sql_help.c:4387 +#: sql_help.c:4536 sql_help.c:4691 sql_help.c:4756 msgid "operator" msgstr "Operator" -#: sql_help.c:1365 sql_help.c:2380 sql_help.c:2838 +#: sql_help.c:1365 sql_help.c:2381 sql_help.c:2839 msgid "predicate" msgstr "Prädikat" @@ -4847,20 +4848,20 @@ msgid "and table_constraint_using_index is:" msgstr "und Tabellen-Constraint-für-Index Folgendes ist:" -#: sql_help.c:1374 sql_help.c:2851 +#: sql_help.c:1374 sql_help.c:2852 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "Indexparameter bei UNIQUE-, PRIMARY KEY- und EXCLUDE-Constraints sind:" -#: sql_help.c:1379 sql_help.c:2856 +#: sql_help.c:1379 sql_help.c:2857 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "Exclude-Element in einem EXCLUDE-Constraint ist:" -#: sql_help.c:1382 sql_help.c:2373 sql_help.c:2783 sql_help.c:2796 -#: sql_help.c:2810 sql_help.c:2859 sql_help.c:3833 +#: sql_help.c:1382 sql_help.c:2374 sql_help.c:2784 sql_help.c:2797 +#: sql_help.c:2811 sql_help.c:2860 sql_help.c:3834 msgid "opclass" msgstr "Opklasse" -#: sql_help.c:1398 sql_help.c:1401 sql_help.c:2894 +#: sql_help.c:1398 sql_help.c:1401 sql_help.c:2895 msgid "tablespace_option" msgstr "Tablespace-Option" @@ -4881,7 +4882,7 @@ msgstr "neues_Wörterbuch" #: sql_help.c:1528 sql_help.c:1542 sql_help.c:1545 sql_help.c:1546 -#: sql_help.c:3045 +#: sql_help.c:3046 msgid "attribute_name" msgstr "Attributname" @@ -4905,54 +4906,54 @@ msgid "property" msgstr "Eigenschaft" -#: sql_help.c:1614 sql_help.c:2253 sql_help.c:2262 sql_help.c:2646 -#: sql_help.c:3123 sql_help.c:3574 sql_help.c:3753 sql_help.c:3789 -#: sql_help.c:4101 +#: sql_help.c:1614 sql_help.c:2254 sql_help.c:2263 sql_help.c:2647 +#: sql_help.c:3124 sql_help.c:3575 sql_help.c:3754 sql_help.c:3790 +#: sql_help.c:4102 msgid "server_name" msgstr "Servername" -#: sql_help.c:1646 sql_help.c:1649 sql_help.c:3138 +#: sql_help.c:1646 sql_help.c:1649 sql_help.c:3139 msgid "view_option_name" msgstr "Sichtoptionsname" -#: sql_help.c:1647 sql_help.c:3139 +#: sql_help.c:1647 sql_help.c:3140 msgid "view_option_value" msgstr "Sichtoptionswert" -#: sql_help.c:1668 sql_help.c:1669 sql_help.c:4662 sql_help.c:4663 +#: sql_help.c:1668 sql_help.c:1669 sql_help.c:4663 sql_help.c:4664 msgid "table_and_columns" msgstr "Tabelle-und-Spalten" -#: sql_help.c:1670 sql_help.c:1914 sql_help.c:3622 sql_help.c:3966 -#: sql_help.c:4664 +#: sql_help.c:1670 sql_help.c:1914 sql_help.c:3623 sql_help.c:3967 +#: sql_help.c:4665 msgid "where option can be one of:" msgstr "wobei Option eine der folgenden sein kann:" #: sql_help.c:1671 sql_help.c:1672 sql_help.c:1916 sql_help.c:1919 -#: sql_help.c:2098 sql_help.c:3623 sql_help.c:3624 sql_help.c:3625 -#: sql_help.c:3626 sql_help.c:3627 sql_help.c:3628 sql_help.c:3629 -#: sql_help.c:3630 sql_help.c:4665 sql_help.c:4666 sql_help.c:4667 -#: sql_help.c:4668 sql_help.c:4669 sql_help.c:4670 sql_help.c:4671 -#: sql_help.c:4672 +#: sql_help.c:2098 sql_help.c:3624 sql_help.c:3625 sql_help.c:3626 +#: sql_help.c:3627 sql_help.c:3628 sql_help.c:3629 sql_help.c:3630 +#: sql_help.c:3631 sql_help.c:4666 sql_help.c:4667 sql_help.c:4668 +#: sql_help.c:4669 sql_help.c:4670 sql_help.c:4671 sql_help.c:4672 +#: sql_help.c:4673 msgid "boolean" msgstr "boolean" -#: sql_help.c:1673 sql_help.c:4674 +#: sql_help.c:1673 sql_help.c:4675 msgid "and table_and_columns is:" msgstr "und Tabelle-und-Spalten Folgendes ist:" -#: sql_help.c:1689 sql_help.c:4446 sql_help.c:4448 sql_help.c:4472 +#: sql_help.c:1689 sql_help.c:4447 sql_help.c:4449 sql_help.c:4473 msgid "transaction_mode" msgstr "Transaktionsmodus" -#: sql_help.c:1690 sql_help.c:4449 sql_help.c:4473 +#: sql_help.c:1690 sql_help.c:4450 sql_help.c:4474 msgid "where transaction_mode is one of:" msgstr "wobei Transaktionsmodus Folgendes sein kann:" -#: sql_help.c:1699 sql_help.c:4306 sql_help.c:4315 sql_help.c:4319 -#: sql_help.c:4323 sql_help.c:4326 sql_help.c:4545 sql_help.c:4554 -#: sql_help.c:4558 sql_help.c:4562 sql_help.c:4565 sql_help.c:4765 -#: sql_help.c:4774 sql_help.c:4778 sql_help.c:4782 sql_help.c:4785 +#: sql_help.c:1699 sql_help.c:4307 sql_help.c:4316 sql_help.c:4320 +#: sql_help.c:4324 sql_help.c:4327 sql_help.c:4546 sql_help.c:4555 +#: sql_help.c:4559 sql_help.c:4563 sql_help.c:4566 sql_help.c:4766 +#: sql_help.c:4775 sql_help.c:4779 sql_help.c:4783 sql_help.c:4786 msgid "argument" msgstr "Argument" @@ -4960,7 +4961,7 @@ msgid "relation_name" msgstr "Relationsname" -#: sql_help.c:1794 sql_help.c:3749 sql_help.c:4097 +#: sql_help.c:1794 sql_help.c:3750 sql_help.c:4098 msgid "domain_name" msgstr "Domänenname" @@ -4976,28 +4977,28 @@ msgid "text" msgstr "Text" -#: sql_help.c:1873 sql_help.c:3933 sql_help.c:4138 +#: sql_help.c:1873 sql_help.c:3934 sql_help.c:4139 msgid "transaction_id" msgstr "Transaktions-ID" -#: sql_help.c:1904 sql_help.c:1911 sql_help.c:3859 +#: sql_help.c:1904 sql_help.c:1911 sql_help.c:3860 msgid "filename" msgstr "Dateiname" -#: sql_help.c:1905 sql_help.c:1912 sql_help.c:2586 sql_help.c:2587 -#: sql_help.c:2588 +#: sql_help.c:1905 sql_help.c:1912 sql_help.c:2587 sql_help.c:2588 +#: sql_help.c:2589 msgid "command" msgstr "Befehl" -#: sql_help.c:1907 sql_help.c:2585 sql_help.c:2997 sql_help.c:3174 -#: sql_help.c:3843 sql_help.c:4289 sql_help.c:4291 sql_help.c:4379 -#: sql_help.c:4381 sql_help.c:4528 sql_help.c:4530 sql_help.c:4633 -#: sql_help.c:4748 sql_help.c:4750 +#: sql_help.c:1907 sql_help.c:2586 sql_help.c:2998 sql_help.c:3175 +#: sql_help.c:3844 sql_help.c:4290 sql_help.c:4292 sql_help.c:4380 +#: sql_help.c:4382 sql_help.c:4529 sql_help.c:4531 sql_help.c:4634 +#: sql_help.c:4749 sql_help.c:4751 msgid "condition" msgstr "Bedingung" -#: sql_help.c:1910 sql_help.c:2414 sql_help.c:2880 sql_help.c:3140 -#: sql_help.c:3158 sql_help.c:3824 +#: sql_help.c:1910 sql_help.c:2415 sql_help.c:2881 sql_help.c:3141 +#: sql_help.c:3159 sql_help.c:3825 msgid "query" msgstr "Anfrage" @@ -5113,11 +5114,11 @@ msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2097 sql_help.c:4191 +#: sql_help.c:2097 sql_help.c:4192 msgid "provider" msgstr "Provider" -#: sql_help.c:2099 sql_help.c:2191 +#: sql_help.c:2099 sql_help.c:2192 msgid "version" msgstr "Version" @@ -5133,7 +5134,7 @@ msgid "dest_encoding" msgstr "Zielkodierung" -#: sql_help.c:2133 sql_help.c:2920 +#: sql_help.c:2133 sql_help.c:2921 msgid "template" msgstr "Vorlage" @@ -5149,7 +5150,7 @@ msgid "where constraint is:" msgstr "wobei Constraint Folgendes ist:" -#: sql_help.c:2176 sql_help.c:2583 sql_help.c:2993 +#: sql_help.c:2176 sql_help.c:2584 sql_help.c:2994 msgid "event" msgstr "Ereignis" @@ -5157,1198 +5158,1202 @@ msgid "filter_variable" msgstr "Filtervariable" -#: sql_help.c:2265 sql_help.c:2815 +#: sql_help.c:2178 +msgid "filter_value" +msgstr "Filterwert" + +#: sql_help.c:2266 sql_help.c:2816 msgid "where column_constraint is:" msgstr "wobei Spalten-Constraint Folgendes ist:" -#: sql_help.c:2303 +#: sql_help.c:2304 msgid "rettype" msgstr "Rückgabetyp" -#: sql_help.c:2305 +#: sql_help.c:2306 msgid "column_type" msgstr "Spaltentyp" -#: sql_help.c:2314 sql_help.c:2514 +#: sql_help.c:2315 sql_help.c:2515 msgid "definition" msgstr "Definition" -#: sql_help.c:2315 sql_help.c:2515 +#: sql_help.c:2316 sql_help.c:2516 msgid "obj_file" msgstr "Objektdatei" -#: sql_help.c:2316 sql_help.c:2516 +#: sql_help.c:2317 sql_help.c:2517 msgid "link_symbol" msgstr "Linksymbol" -#: sql_help.c:2354 sql_help.c:2568 sql_help.c:3112 +#: sql_help.c:2355 sql_help.c:2569 sql_help.c:3113 msgid "uid" msgstr "Uid" -#: sql_help.c:2369 sql_help.c:2410 sql_help.c:2784 sql_help.c:2797 -#: sql_help.c:2811 sql_help.c:2876 +#: sql_help.c:2370 sql_help.c:2411 sql_help.c:2785 sql_help.c:2798 +#: sql_help.c:2812 sql_help.c:2877 msgid "method" msgstr "Methode" -#: sql_help.c:2374 +#: sql_help.c:2375 msgid "opclass_parameter" msgstr "Opklassen-Parameter" -#: sql_help.c:2391 +#: sql_help.c:2392 msgid "call_handler" msgstr "Handler" -#: sql_help.c:2392 +#: sql_help.c:2393 msgid "inline_handler" msgstr "Inline-Handler" -#: sql_help.c:2393 +#: sql_help.c:2394 msgid "valfunction" msgstr "Valfunktion" -#: sql_help.c:2432 +#: sql_help.c:2433 msgid "com_op" msgstr "Kommutator-Op" -#: sql_help.c:2433 +#: sql_help.c:2434 msgid "neg_op" msgstr "Umkehrungs-Op" -#: sql_help.c:2451 +#: sql_help.c:2452 msgid "family_name" msgstr "Familienname" -#: sql_help.c:2462 +#: sql_help.c:2463 msgid "storage_type" msgstr "Storage-Typ" -#: sql_help.c:2589 sql_help.c:3000 +#: sql_help.c:2590 sql_help.c:3001 msgid "where event can be one of:" msgstr "wobei Ereignis eins der folgenden sein kann:" -#: sql_help.c:2608 sql_help.c:2610 +#: sql_help.c:2609 sql_help.c:2611 msgid "schema_element" msgstr "Schemaelement" -#: sql_help.c:2647 +#: sql_help.c:2648 msgid "server_type" msgstr "Servertyp" -#: sql_help.c:2648 +#: sql_help.c:2649 msgid "server_version" msgstr "Serverversion" -#: sql_help.c:2649 sql_help.c:3751 sql_help.c:4099 +#: sql_help.c:2650 sql_help.c:3752 sql_help.c:4100 msgid "fdw_name" msgstr "FDW-Name" -#: sql_help.c:2662 +#: sql_help.c:2663 msgid "statistics_name" msgstr "Statistikname" -#: sql_help.c:2663 +#: sql_help.c:2664 msgid "statistics_kind" msgstr "Statistikart" -#: sql_help.c:2677 +#: sql_help.c:2678 msgid "subscription_name" msgstr "Subskriptionsname" -#: sql_help.c:2777 +#: sql_help.c:2778 msgid "source_table" msgstr "Quelltabelle" -#: sql_help.c:2778 +#: sql_help.c:2779 msgid "like_option" msgstr "Like-Option" -#: sql_help.c:2844 +#: sql_help.c:2845 msgid "and like_option is:" msgstr "und Like-Option Folgendes ist:" -#: sql_help.c:2893 +#: sql_help.c:2894 msgid "directory" msgstr "Verzeichnis" -#: sql_help.c:2907 +#: sql_help.c:2908 msgid "parser_name" msgstr "Parser-Name" -#: sql_help.c:2908 +#: sql_help.c:2909 msgid "source_config" msgstr "Quellkonfig" -#: sql_help.c:2937 +#: sql_help.c:2938 msgid "start_function" msgstr "Startfunktion" -#: sql_help.c:2938 +#: sql_help.c:2939 msgid "gettoken_function" msgstr "Gettext-Funktion" -#: sql_help.c:2939 +#: sql_help.c:2940 msgid "end_function" msgstr "Endfunktion" -#: sql_help.c:2940 +#: sql_help.c:2941 msgid "lextypes_function" msgstr "Lextypenfunktion" -#: sql_help.c:2941 +#: sql_help.c:2942 msgid "headline_function" msgstr "Headline-Funktion" -#: sql_help.c:2953 +#: sql_help.c:2954 msgid "init_function" msgstr "Init-Funktion" -#: sql_help.c:2954 +#: sql_help.c:2955 msgid "lexize_function" msgstr "Lexize-Funktion" -#: sql_help.c:2967 +#: sql_help.c:2968 msgid "from_sql_function_name" msgstr "From-SQL-Funktionsname" -#: sql_help.c:2969 +#: sql_help.c:2970 msgid "to_sql_function_name" msgstr "To-SQL-Funktionsname" -#: sql_help.c:2995 +#: sql_help.c:2996 msgid "referenced_table_name" msgstr "verwiesener_Tabellenname" -#: sql_help.c:2996 +#: sql_help.c:2997 msgid "transition_relation_name" msgstr "Übergangsrelationsname" -#: sql_help.c:2999 +#: sql_help.c:3000 msgid "arguments" msgstr "Argumente" -#: sql_help.c:3049 sql_help.c:4224 +#: sql_help.c:3050 sql_help.c:4225 msgid "label" msgstr "Label" -#: sql_help.c:3051 +#: sql_help.c:3052 msgid "subtype" msgstr "Untertyp" -#: sql_help.c:3052 +#: sql_help.c:3053 msgid "subtype_operator_class" msgstr "Untertyp-Operatorklasse" -#: sql_help.c:3054 +#: sql_help.c:3055 msgid "canonical_function" msgstr "Canonical-Funktion" -#: sql_help.c:3055 +#: sql_help.c:3056 msgid "subtype_diff_function" msgstr "Untertyp-Diff-Funktion" -#: sql_help.c:3057 +#: sql_help.c:3058 msgid "input_function" msgstr "Eingabefunktion" -#: sql_help.c:3058 +#: sql_help.c:3059 msgid "output_function" msgstr "Ausgabefunktion" -#: sql_help.c:3059 +#: sql_help.c:3060 msgid "receive_function" msgstr "Empfangsfunktion" -#: sql_help.c:3060 +#: sql_help.c:3061 msgid "send_function" msgstr "Sendefunktion" -#: sql_help.c:3061 +#: sql_help.c:3062 msgid "type_modifier_input_function" msgstr "Typmod-Eingabefunktion" -#: sql_help.c:3062 +#: sql_help.c:3063 msgid "type_modifier_output_function" msgstr "Typmod-Ausgabefunktion" -#: sql_help.c:3063 +#: sql_help.c:3064 msgid "analyze_function" msgstr "Analyze-Funktion" -#: sql_help.c:3064 +#: sql_help.c:3065 msgid "internallength" msgstr "interne_Länge" -#: sql_help.c:3065 +#: sql_help.c:3066 msgid "alignment" msgstr "Ausrichtung" -#: sql_help.c:3066 +#: sql_help.c:3067 msgid "storage" msgstr "Speicherung" -#: sql_help.c:3067 +#: sql_help.c:3068 msgid "like_type" msgstr "wie_Typ" -#: sql_help.c:3068 +#: sql_help.c:3069 msgid "category" msgstr "Kategorie" -#: sql_help.c:3069 +#: sql_help.c:3070 msgid "preferred" msgstr "bevorzugt" -#: sql_help.c:3070 +#: sql_help.c:3071 msgid "default" msgstr "Vorgabewert" -#: sql_help.c:3071 +#: sql_help.c:3072 msgid "element" msgstr "Element" -#: sql_help.c:3072 +#: sql_help.c:3073 msgid "delimiter" msgstr "Trennzeichen" -#: sql_help.c:3073 +#: sql_help.c:3074 msgid "collatable" msgstr "sortierbar" -#: sql_help.c:3170 sql_help.c:3819 sql_help.c:4284 sql_help.c:4373 -#: sql_help.c:4523 sql_help.c:4623 sql_help.c:4743 +#: sql_help.c:3171 sql_help.c:3820 sql_help.c:4285 sql_help.c:4374 +#: sql_help.c:4524 sql_help.c:4624 sql_help.c:4744 msgid "with_query" msgstr "With-Anfrage" -#: sql_help.c:3172 sql_help.c:3821 sql_help.c:4303 sql_help.c:4309 -#: sql_help.c:4312 sql_help.c:4316 sql_help.c:4320 sql_help.c:4328 -#: sql_help.c:4542 sql_help.c:4548 sql_help.c:4551 sql_help.c:4555 -#: sql_help.c:4559 sql_help.c:4567 sql_help.c:4625 sql_help.c:4762 -#: sql_help.c:4768 sql_help.c:4771 sql_help.c:4775 sql_help.c:4779 -#: sql_help.c:4787 +#: sql_help.c:3173 sql_help.c:3822 sql_help.c:4304 sql_help.c:4310 +#: sql_help.c:4313 sql_help.c:4317 sql_help.c:4321 sql_help.c:4329 +#: sql_help.c:4543 sql_help.c:4549 sql_help.c:4552 sql_help.c:4556 +#: sql_help.c:4560 sql_help.c:4568 sql_help.c:4626 sql_help.c:4763 +#: sql_help.c:4769 sql_help.c:4772 sql_help.c:4776 sql_help.c:4780 +#: sql_help.c:4788 msgid "alias" msgstr "Alias" -#: sql_help.c:3173 sql_help.c:4288 sql_help.c:4330 sql_help.c:4332 -#: sql_help.c:4378 sql_help.c:4527 sql_help.c:4569 sql_help.c:4571 -#: sql_help.c:4632 sql_help.c:4747 sql_help.c:4789 sql_help.c:4791 +#: sql_help.c:3174 sql_help.c:4289 sql_help.c:4331 sql_help.c:4333 +#: sql_help.c:4379 sql_help.c:4528 sql_help.c:4570 sql_help.c:4572 +#: sql_help.c:4633 sql_help.c:4748 sql_help.c:4790 sql_help.c:4792 msgid "from_item" msgstr "From-Element" -#: sql_help.c:3175 sql_help.c:3656 sql_help.c:3900 sql_help.c:4634 +#: sql_help.c:3176 sql_help.c:3657 sql_help.c:3901 sql_help.c:4635 msgid "cursor_name" msgstr "Cursor-Name" -#: sql_help.c:3176 sql_help.c:3827 sql_help.c:4635 +#: sql_help.c:3177 sql_help.c:3828 sql_help.c:4636 msgid "output_expression" msgstr "Ausgabeausdruck" -#: sql_help.c:3177 sql_help.c:3828 sql_help.c:4287 sql_help.c:4376 -#: sql_help.c:4526 sql_help.c:4636 sql_help.c:4746 +#: sql_help.c:3178 sql_help.c:3829 sql_help.c:4288 sql_help.c:4377 +#: sql_help.c:4527 sql_help.c:4637 sql_help.c:4747 msgid "output_name" msgstr "Ausgabename" -#: sql_help.c:3193 +#: sql_help.c:3194 msgid "code" msgstr "Code" -#: sql_help.c:3598 +#: sql_help.c:3599 msgid "parameter" msgstr "Parameter" -#: sql_help.c:3620 sql_help.c:3621 sql_help.c:3925 +#: sql_help.c:3621 sql_help.c:3622 sql_help.c:3926 msgid "statement" msgstr "Anweisung" -#: sql_help.c:3655 sql_help.c:3899 +#: sql_help.c:3656 sql_help.c:3900 msgid "direction" msgstr "Richtung" -#: sql_help.c:3657 sql_help.c:3901 +#: sql_help.c:3658 sql_help.c:3902 msgid "where direction can be empty or one of:" msgstr "wobei Richtung leer sein kann oder Folgendes:" -#: sql_help.c:3658 sql_help.c:3659 sql_help.c:3660 sql_help.c:3661 -#: sql_help.c:3662 sql_help.c:3902 sql_help.c:3903 sql_help.c:3904 -#: sql_help.c:3905 sql_help.c:3906 sql_help.c:4297 sql_help.c:4299 -#: sql_help.c:4387 sql_help.c:4389 sql_help.c:4536 sql_help.c:4538 -#: sql_help.c:4691 sql_help.c:4693 sql_help.c:4756 sql_help.c:4758 +#: sql_help.c:3659 sql_help.c:3660 sql_help.c:3661 sql_help.c:3662 +#: sql_help.c:3663 sql_help.c:3903 sql_help.c:3904 sql_help.c:3905 +#: sql_help.c:3906 sql_help.c:3907 sql_help.c:4298 sql_help.c:4300 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4537 sql_help.c:4539 +#: sql_help.c:4692 sql_help.c:4694 sql_help.c:4757 sql_help.c:4759 msgid "count" msgstr "Anzahl" -#: sql_help.c:3744 sql_help.c:4092 +#: sql_help.c:3745 sql_help.c:4093 msgid "sequence_name" msgstr "Sequenzname" -#: sql_help.c:3757 sql_help.c:4105 +#: sql_help.c:3758 sql_help.c:4106 msgid "arg_name" msgstr "Argname" -#: sql_help.c:3758 sql_help.c:4106 +#: sql_help.c:3759 sql_help.c:4107 msgid "arg_type" msgstr "Argtyp" -#: sql_help.c:3763 sql_help.c:4111 +#: sql_help.c:3764 sql_help.c:4112 msgid "loid" msgstr "Large-Object-OID" -#: sql_help.c:3787 +#: sql_help.c:3788 msgid "remote_schema" msgstr "fernes_Schema" -#: sql_help.c:3790 +#: sql_help.c:3791 msgid "local_schema" msgstr "lokales_Schema" -#: sql_help.c:3825 +#: sql_help.c:3826 msgid "conflict_target" msgstr "Konfliktziel" -#: sql_help.c:3826 +#: sql_help.c:3827 msgid "conflict_action" msgstr "Konfliktaktion" -#: sql_help.c:3829 +#: sql_help.c:3830 msgid "where conflict_target can be one of:" msgstr "wobei Konfliktziel Folgendes sein kann:" -#: sql_help.c:3830 +#: sql_help.c:3831 msgid "index_column_name" msgstr "Indexspaltenname" -#: sql_help.c:3831 +#: sql_help.c:3832 msgid "index_expression" msgstr "Indexausdruck" -#: sql_help.c:3834 +#: sql_help.c:3835 msgid "index_predicate" msgstr "Indexprädikat" -#: sql_help.c:3836 +#: sql_help.c:3837 msgid "and conflict_action is one of:" msgstr "und Konfliktaktion Folgendes sein kann:" -#: sql_help.c:3842 sql_help.c:4631 +#: sql_help.c:3843 sql_help.c:4632 msgid "sub-SELECT" msgstr "Sub-SELECT" -#: sql_help.c:3851 sql_help.c:3914 sql_help.c:4607 +#: sql_help.c:3852 sql_help.c:3915 sql_help.c:4608 msgid "channel" msgstr "Kanal" -#: sql_help.c:3873 +#: sql_help.c:3874 msgid "lockmode" msgstr "Sperrmodus" -#: sql_help.c:3874 +#: sql_help.c:3875 msgid "where lockmode is one of:" msgstr "wobei Sperrmodus Folgendes sein kann:" -#: sql_help.c:3915 +#: sql_help.c:3916 msgid "payload" msgstr "Payload" -#: sql_help.c:3942 +#: sql_help.c:3943 msgid "old_role" msgstr "alte_Rolle" -#: sql_help.c:3943 +#: sql_help.c:3944 msgid "new_role" msgstr "neue_Rolle" -#: sql_help.c:3974 sql_help.c:4146 sql_help.c:4154 +#: sql_help.c:3975 sql_help.c:4147 sql_help.c:4155 msgid "savepoint_name" msgstr "Sicherungspunktsname" -#: sql_help.c:4290 sql_help.c:4342 sql_help.c:4529 sql_help.c:4581 -#: sql_help.c:4749 sql_help.c:4801 +#: sql_help.c:4291 sql_help.c:4343 sql_help.c:4530 sql_help.c:4582 +#: sql_help.c:4750 sql_help.c:4802 msgid "grouping_element" msgstr "Gruppierelement" -#: sql_help.c:4292 sql_help.c:4382 sql_help.c:4531 sql_help.c:4751 +#: sql_help.c:4293 sql_help.c:4383 sql_help.c:4532 sql_help.c:4752 msgid "window_name" msgstr "Fenstername" -#: sql_help.c:4293 sql_help.c:4383 sql_help.c:4532 sql_help.c:4752 +#: sql_help.c:4294 sql_help.c:4384 sql_help.c:4533 sql_help.c:4753 msgid "window_definition" msgstr "Fensterdefinition" -#: sql_help.c:4294 sql_help.c:4308 sql_help.c:4346 sql_help.c:4384 -#: sql_help.c:4533 sql_help.c:4547 sql_help.c:4585 sql_help.c:4753 -#: sql_help.c:4767 sql_help.c:4805 +#: sql_help.c:4295 sql_help.c:4309 sql_help.c:4347 sql_help.c:4385 +#: sql_help.c:4534 sql_help.c:4548 sql_help.c:4586 sql_help.c:4754 +#: sql_help.c:4768 sql_help.c:4806 msgid "select" msgstr "Select" -#: sql_help.c:4301 sql_help.c:4540 sql_help.c:4760 +#: sql_help.c:4302 sql_help.c:4541 sql_help.c:4761 msgid "where from_item can be one of:" msgstr "wobei From-Element Folgendes sein kann:" -#: sql_help.c:4304 sql_help.c:4310 sql_help.c:4313 sql_help.c:4317 -#: sql_help.c:4329 sql_help.c:4543 sql_help.c:4549 sql_help.c:4552 -#: sql_help.c:4556 sql_help.c:4568 sql_help.c:4763 sql_help.c:4769 -#: sql_help.c:4772 sql_help.c:4776 sql_help.c:4788 +#: sql_help.c:4305 sql_help.c:4311 sql_help.c:4314 sql_help.c:4318 +#: sql_help.c:4330 sql_help.c:4544 sql_help.c:4550 sql_help.c:4553 +#: sql_help.c:4557 sql_help.c:4569 sql_help.c:4764 sql_help.c:4770 +#: sql_help.c:4773 sql_help.c:4777 sql_help.c:4789 msgid "column_alias" msgstr "Spaltenalias" -#: sql_help.c:4305 sql_help.c:4544 sql_help.c:4764 +#: sql_help.c:4306 sql_help.c:4545 sql_help.c:4765 msgid "sampling_method" msgstr "Stichprobenmethode" -#: sql_help.c:4307 sql_help.c:4546 sql_help.c:4766 +#: sql_help.c:4308 sql_help.c:4547 sql_help.c:4767 msgid "seed" msgstr "Startwert" -#: sql_help.c:4311 sql_help.c:4344 sql_help.c:4550 sql_help.c:4583 -#: sql_help.c:4770 sql_help.c:4803 +#: sql_help.c:4312 sql_help.c:4345 sql_help.c:4551 sql_help.c:4584 +#: sql_help.c:4771 sql_help.c:4804 msgid "with_query_name" msgstr "With-Anfragename" -#: sql_help.c:4321 sql_help.c:4324 sql_help.c:4327 sql_help.c:4560 -#: sql_help.c:4563 sql_help.c:4566 sql_help.c:4780 sql_help.c:4783 -#: sql_help.c:4786 +#: sql_help.c:4322 sql_help.c:4325 sql_help.c:4328 sql_help.c:4561 +#: sql_help.c:4564 sql_help.c:4567 sql_help.c:4781 sql_help.c:4784 +#: sql_help.c:4787 msgid "column_definition" msgstr "Spaltendefinition" -#: sql_help.c:4331 sql_help.c:4570 sql_help.c:4790 +#: sql_help.c:4332 sql_help.c:4571 sql_help.c:4791 msgid "join_type" msgstr "Verbundtyp" -#: sql_help.c:4333 sql_help.c:4572 sql_help.c:4792 +#: sql_help.c:4334 sql_help.c:4573 sql_help.c:4793 msgid "join_condition" msgstr "Verbundbedingung" -#: sql_help.c:4334 sql_help.c:4573 sql_help.c:4793 +#: sql_help.c:4335 sql_help.c:4574 sql_help.c:4794 msgid "join_column" msgstr "Verbundspalte" -#: sql_help.c:4335 sql_help.c:4574 sql_help.c:4794 +#: sql_help.c:4336 sql_help.c:4575 sql_help.c:4795 msgid "and grouping_element can be one of:" msgstr "und Gruppierelement eins der folgenden sein kann:" -#: sql_help.c:4343 sql_help.c:4582 sql_help.c:4802 +#: sql_help.c:4344 sql_help.c:4583 sql_help.c:4803 msgid "and with_query is:" msgstr "und With-Anfrage ist:" -#: sql_help.c:4347 sql_help.c:4586 sql_help.c:4806 +#: sql_help.c:4348 sql_help.c:4587 sql_help.c:4807 msgid "values" msgstr "values" -#: sql_help.c:4348 sql_help.c:4587 sql_help.c:4807 +#: sql_help.c:4349 sql_help.c:4588 sql_help.c:4808 msgid "insert" msgstr "insert" -#: sql_help.c:4349 sql_help.c:4588 sql_help.c:4808 +#: sql_help.c:4350 sql_help.c:4589 sql_help.c:4809 msgid "update" msgstr "update" -#: sql_help.c:4350 sql_help.c:4589 sql_help.c:4809 +#: sql_help.c:4351 sql_help.c:4590 sql_help.c:4810 msgid "delete" msgstr "delete" -#: sql_help.c:4377 +#: sql_help.c:4378 msgid "new_table" msgstr "neue_Tabelle" -#: sql_help.c:4402 +#: sql_help.c:4403 msgid "timezone" msgstr "Zeitzone" -#: sql_help.c:4447 +#: sql_help.c:4448 msgid "snapshot_id" msgstr "Snapshot-ID" -#: sql_help.c:4689 +#: sql_help.c:4690 msgid "sort_expression" msgstr "Sortierausdruck" -#: sql_help.c:4816 sql_help.c:5794 +#: sql_help.c:4817 sql_help.c:5795 msgid "abort the current transaction" msgstr "bricht die aktuelle Transaktion ab" -#: sql_help.c:4822 +#: sql_help.c:4823 msgid "change the definition of an aggregate function" msgstr "ändert die Definition einer Aggregatfunktion" -#: sql_help.c:4828 +#: sql_help.c:4829 msgid "change the definition of a collation" msgstr "ändert die Definition einer Sortierfolge" -#: sql_help.c:4834 +#: sql_help.c:4835 msgid "change the definition of a conversion" msgstr "ändert die Definition einer Zeichensatzkonversion" -#: sql_help.c:4840 +#: sql_help.c:4841 msgid "change a database" msgstr "ändert eine Datenbank" -#: sql_help.c:4846 +#: sql_help.c:4847 msgid "define default access privileges" msgstr "definiert vorgegebene Zugriffsprivilegien" -#: sql_help.c:4852 +#: sql_help.c:4853 msgid "change the definition of a domain" msgstr "ändert die Definition einer Domäne" -#: sql_help.c:4858 +#: sql_help.c:4859 msgid "change the definition of an event trigger" msgstr "ändert die Definition eines Ereignistriggers" -#: sql_help.c:4864 +#: sql_help.c:4865 msgid "change the definition of an extension" msgstr "ändert die Definition einer Erweiterung" -#: sql_help.c:4870 +#: sql_help.c:4871 msgid "change the definition of a foreign-data wrapper" msgstr "ändert die Definition eines Fremddaten-Wrappers" -#: sql_help.c:4876 +#: sql_help.c:4877 msgid "change the definition of a foreign table" msgstr "ändert die Definition einer Fremdtabelle" -#: sql_help.c:4882 +#: sql_help.c:4883 msgid "change the definition of a function" msgstr "ändert die Definition einer Funktion" -#: sql_help.c:4888 +#: sql_help.c:4889 msgid "change role name or membership" msgstr "ändert Rollenname oder -mitglieder" -#: sql_help.c:4894 +#: sql_help.c:4895 msgid "change the definition of an index" msgstr "ändert die Definition eines Index" -#: sql_help.c:4900 +#: sql_help.c:4901 msgid "change the definition of a procedural language" msgstr "ändert die Definition einer prozeduralen Sprache" -#: sql_help.c:4906 +#: sql_help.c:4907 msgid "change the definition of a large object" msgstr "ändert die Definition eines Large Object" -#: sql_help.c:4912 +#: sql_help.c:4913 msgid "change the definition of a materialized view" msgstr "ändert die Definition einer materialisierten Sicht" -#: sql_help.c:4918 +#: sql_help.c:4919 msgid "change the definition of an operator" msgstr "ändert die Definition eines Operators" -#: sql_help.c:4924 +#: sql_help.c:4925 msgid "change the definition of an operator class" msgstr "ändert die Definition einer Operatorklasse" -#: sql_help.c:4930 +#: sql_help.c:4931 msgid "change the definition of an operator family" msgstr "ändert die Definition einer Operatorfamilie" -#: sql_help.c:4936 +#: sql_help.c:4937 msgid "change the definition of a row level security policy" msgstr "ändert die Definition einer Policy für Sicherheit auf Zeilenebene" -#: sql_help.c:4942 +#: sql_help.c:4943 msgid "change the definition of a procedure" msgstr "ändert die Definition einer Prozedur" -#: sql_help.c:4948 +#: sql_help.c:4949 msgid "change the definition of a publication" msgstr "ändert die Definition einer Publikation" -#: sql_help.c:4954 sql_help.c:5056 +#: sql_help.c:4955 sql_help.c:5057 msgid "change a database role" msgstr "ändert eine Datenbankrolle" -#: sql_help.c:4960 +#: sql_help.c:4961 msgid "change the definition of a routine" msgstr "ändert die Definition einer Routine" -#: sql_help.c:4966 +#: sql_help.c:4967 msgid "change the definition of a rule" msgstr "ändert die Definition einer Regel" -#: sql_help.c:4972 +#: sql_help.c:4973 msgid "change the definition of a schema" msgstr "ändert die Definition eines Schemas" -#: sql_help.c:4978 +#: sql_help.c:4979 msgid "change the definition of a sequence generator" msgstr "ändert die Definition eines Sequenzgenerators" -#: sql_help.c:4984 +#: sql_help.c:4985 msgid "change the definition of a foreign server" msgstr "ändert die Definition eines Fremdservers" -#: sql_help.c:4990 +#: sql_help.c:4991 msgid "change the definition of an extended statistics object" msgstr "ändert die Definition eines erweiterten Statistikobjekts" -#: sql_help.c:4996 +#: sql_help.c:4997 msgid "change the definition of a subscription" msgstr "ändert die Definition einer Subskription" -#: sql_help.c:5002 +#: sql_help.c:5003 msgid "change a server configuration parameter" msgstr "ändert einen Server-Konfigurationsparameter" -#: sql_help.c:5008 +#: sql_help.c:5009 msgid "change the definition of a table" msgstr "ändert die Definition einer Tabelle" -#: sql_help.c:5014 +#: sql_help.c:5015 msgid "change the definition of a tablespace" msgstr "ändert die Definition eines Tablespace" -#: sql_help.c:5020 +#: sql_help.c:5021 msgid "change the definition of a text search configuration" msgstr "ändert die Definition einer Textsuchekonfiguration" -#: sql_help.c:5026 +#: sql_help.c:5027 msgid "change the definition of a text search dictionary" msgstr "ändert die Definition eines Textsuchewörterbuchs" -#: sql_help.c:5032 +#: sql_help.c:5033 msgid "change the definition of a text search parser" msgstr "ändert die Definition eines Textsucheparsers" -#: sql_help.c:5038 +#: sql_help.c:5039 msgid "change the definition of a text search template" msgstr "ändert die Definition einer Textsuchevorlage" -#: sql_help.c:5044 +#: sql_help.c:5045 msgid "change the definition of a trigger" msgstr "ändert die Definition eines Triggers" -#: sql_help.c:5050 +#: sql_help.c:5051 msgid "change the definition of a type" msgstr "ändert die Definition eines Typs" -#: sql_help.c:5062 +#: sql_help.c:5063 msgid "change the definition of a user mapping" msgstr "ändert die Definition einer Benutzerabbildung" -#: sql_help.c:5068 +#: sql_help.c:5069 msgid "change the definition of a view" msgstr "ändert die Definition einer Sicht" -#: sql_help.c:5074 +#: sql_help.c:5075 msgid "collect statistics about a database" msgstr "sammelt Statistiken über eine Datenbank" -#: sql_help.c:5080 sql_help.c:5872 +#: sql_help.c:5081 sql_help.c:5873 msgid "start a transaction block" msgstr "startet einen Transaktionsblock" -#: sql_help.c:5086 +#: sql_help.c:5087 msgid "invoke a procedure" msgstr "ruft eine Prozedur auf" -#: sql_help.c:5092 +#: sql_help.c:5093 msgid "force a write-ahead log checkpoint" msgstr "erzwingt einen Checkpoint im Write-Ahead-Log" -#: sql_help.c:5098 +#: sql_help.c:5099 msgid "close a cursor" msgstr "schließt einen Cursor" -#: sql_help.c:5104 +#: sql_help.c:5105 msgid "cluster a table according to an index" msgstr "clustert eine Tabelle nach einem Index" -#: sql_help.c:5110 +#: sql_help.c:5111 msgid "define or change the comment of an object" msgstr "definiert oder ändert den Kommentar eines Objektes" -#: sql_help.c:5116 sql_help.c:5674 +#: sql_help.c:5117 sql_help.c:5675 msgid "commit the current transaction" msgstr "schließt die aktuelle Transaktion ab" -#: sql_help.c:5122 +#: sql_help.c:5123 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "schließt eine Transaktion ab, die vorher für Two-Phase-Commit vorbereitet worden war" -#: sql_help.c:5128 +#: sql_help.c:5129 msgid "copy data between a file and a table" msgstr "kopiert Daten zwischen einer Datei und einer Tabelle" -#: sql_help.c:5134 +#: sql_help.c:5135 msgid "define a new access method" msgstr "definiert eine neue Zugriffsmethode" -#: sql_help.c:5140 +#: sql_help.c:5141 msgid "define a new aggregate function" msgstr "definiert eine neue Aggregatfunktion" -#: sql_help.c:5146 +#: sql_help.c:5147 msgid "define a new cast" msgstr "definiert eine neue Typumwandlung" -#: sql_help.c:5152 +#: sql_help.c:5153 msgid "define a new collation" msgstr "definiert eine neue Sortierfolge" -#: sql_help.c:5158 +#: sql_help.c:5159 msgid "define a new encoding conversion" msgstr "definiert eine neue Kodierungskonversion" -#: sql_help.c:5164 +#: sql_help.c:5165 msgid "create a new database" msgstr "erzeugt eine neue Datenbank" -#: sql_help.c:5170 +#: sql_help.c:5171 msgid "define a new domain" msgstr "definiert eine neue Domäne" -#: sql_help.c:5176 +#: sql_help.c:5177 msgid "define a new event trigger" msgstr "definiert einen neuen Ereignistrigger" -#: sql_help.c:5182 +#: sql_help.c:5183 msgid "install an extension" msgstr "installiert eine Erweiterung" -#: sql_help.c:5188 +#: sql_help.c:5189 msgid "define a new foreign-data wrapper" msgstr "definiert einen neuen Fremddaten-Wrapper" -#: sql_help.c:5194 +#: sql_help.c:5195 msgid "define a new foreign table" msgstr "definiert eine neue Fremdtabelle" -#: sql_help.c:5200 +#: sql_help.c:5201 msgid "define a new function" msgstr "definiert eine neue Funktion" -#: sql_help.c:5206 sql_help.c:5266 sql_help.c:5368 +#: sql_help.c:5207 sql_help.c:5267 sql_help.c:5369 msgid "define a new database role" msgstr "definiert eine neue Datenbankrolle" -#: sql_help.c:5212 +#: sql_help.c:5213 msgid "define a new index" msgstr "definiert einen neuen Index" -#: sql_help.c:5218 +#: sql_help.c:5219 msgid "define a new procedural language" msgstr "definiert eine neue prozedurale Sprache" -#: sql_help.c:5224 +#: sql_help.c:5225 msgid "define a new materialized view" msgstr "definiert eine neue materialisierte Sicht" -#: sql_help.c:5230 +#: sql_help.c:5231 msgid "define a new operator" msgstr "definiert einen neuen Operator" -#: sql_help.c:5236 +#: sql_help.c:5237 msgid "define a new operator class" msgstr "definiert eine neue Operatorklasse" -#: sql_help.c:5242 +#: sql_help.c:5243 msgid "define a new operator family" msgstr "definiert eine neue Operatorfamilie" -#: sql_help.c:5248 +#: sql_help.c:5249 msgid "define a new row level security policy for a table" msgstr "definiert eine neue Policy für Sicherheit auf Zeilenebene für eine Tabelle" -#: sql_help.c:5254 +#: sql_help.c:5255 msgid "define a new procedure" msgstr "definiert eine neue Prozedur" -#: sql_help.c:5260 +#: sql_help.c:5261 msgid "define a new publication" msgstr "definiert eine neue Publikation" -#: sql_help.c:5272 +#: sql_help.c:5273 msgid "define a new rewrite rule" msgstr "definiert eine neue Umschreiberegel" -#: sql_help.c:5278 +#: sql_help.c:5279 msgid "define a new schema" msgstr "definiert ein neues Schema" -#: sql_help.c:5284 +#: sql_help.c:5285 msgid "define a new sequence generator" msgstr "definiert einen neuen Sequenzgenerator" -#: sql_help.c:5290 +#: sql_help.c:5291 msgid "define a new foreign server" msgstr "definiert einen neuen Fremdserver" -#: sql_help.c:5296 +#: sql_help.c:5297 msgid "define extended statistics" msgstr "definiert erweiterte Statistiken" -#: sql_help.c:5302 +#: sql_help.c:5303 msgid "define a new subscription" msgstr "definiert eine neue Subskription" -#: sql_help.c:5308 +#: sql_help.c:5309 msgid "define a new table" msgstr "definiert eine neue Tabelle" -#: sql_help.c:5314 sql_help.c:5830 +#: sql_help.c:5315 sql_help.c:5831 msgid "define a new table from the results of a query" msgstr "definiert eine neue Tabelle aus den Ergebnissen einer Anfrage" -#: sql_help.c:5320 +#: sql_help.c:5321 msgid "define a new tablespace" msgstr "definiert einen neuen Tablespace" -#: sql_help.c:5326 +#: sql_help.c:5327 msgid "define a new text search configuration" msgstr "definiert eine neue Textsuchekonfiguration" -#: sql_help.c:5332 +#: sql_help.c:5333 msgid "define a new text search dictionary" msgstr "definiert ein neues Textsuchewörterbuch" -#: sql_help.c:5338 +#: sql_help.c:5339 msgid "define a new text search parser" msgstr "definiert einen neuen Textsucheparser" -#: sql_help.c:5344 +#: sql_help.c:5345 msgid "define a new text search template" msgstr "definiert eine neue Textsuchevorlage" -#: sql_help.c:5350 +#: sql_help.c:5351 msgid "define a new transform" msgstr "definiert eine neue Transformation" -#: sql_help.c:5356 +#: sql_help.c:5357 msgid "define a new trigger" msgstr "definiert einen neuen Trigger" -#: sql_help.c:5362 +#: sql_help.c:5363 msgid "define a new data type" msgstr "definiert einen neuen Datentyp" -#: sql_help.c:5374 +#: sql_help.c:5375 msgid "define a new mapping of a user to a foreign server" msgstr "definiert eine neue Abbildung eines Benutzers auf einen Fremdserver" -#: sql_help.c:5380 +#: sql_help.c:5381 msgid "define a new view" msgstr "definiert eine neue Sicht" -#: sql_help.c:5386 +#: sql_help.c:5387 msgid "deallocate a prepared statement" msgstr "gibt einen vorbereiteten Befehl frei" -#: sql_help.c:5392 +#: sql_help.c:5393 msgid "define a cursor" msgstr "definiert einen Cursor" -#: sql_help.c:5398 +#: sql_help.c:5399 msgid "delete rows of a table" msgstr "löscht Zeilen einer Tabelle" -#: sql_help.c:5404 +#: sql_help.c:5405 msgid "discard session state" msgstr "verwirft den Sitzungszustand" -#: sql_help.c:5410 +#: sql_help.c:5411 msgid "execute an anonymous code block" msgstr "führt einen anonymen Codeblock aus" -#: sql_help.c:5416 +#: sql_help.c:5417 msgid "remove an access method" msgstr "entfernt eine Zugriffsmethode" -#: sql_help.c:5422 +#: sql_help.c:5423 msgid "remove an aggregate function" msgstr "entfernt eine Aggregatfunktion" -#: sql_help.c:5428 +#: sql_help.c:5429 msgid "remove a cast" msgstr "entfernt eine Typumwandlung" -#: sql_help.c:5434 +#: sql_help.c:5435 msgid "remove a collation" msgstr "entfernt eine Sortierfolge" -#: sql_help.c:5440 +#: sql_help.c:5441 msgid "remove a conversion" msgstr "entfernt eine Zeichensatzkonversion" -#: sql_help.c:5446 +#: sql_help.c:5447 msgid "remove a database" msgstr "entfernt eine Datenbank" -#: sql_help.c:5452 +#: sql_help.c:5453 msgid "remove a domain" msgstr "entfernt eine Domäne" -#: sql_help.c:5458 +#: sql_help.c:5459 msgid "remove an event trigger" msgstr "entfernt einen Ereignistrigger" -#: sql_help.c:5464 +#: sql_help.c:5465 msgid "remove an extension" msgstr "entfernt eine Erweiterung" -#: sql_help.c:5470 +#: sql_help.c:5471 msgid "remove a foreign-data wrapper" msgstr "entfernt einen Fremddaten-Wrapper" -#: sql_help.c:5476 +#: sql_help.c:5477 msgid "remove a foreign table" msgstr "entfernt eine Fremdtabelle" -#: sql_help.c:5482 +#: sql_help.c:5483 msgid "remove a function" msgstr "entfernt eine Funktion" -#: sql_help.c:5488 sql_help.c:5554 sql_help.c:5656 +#: sql_help.c:5489 sql_help.c:5555 sql_help.c:5657 msgid "remove a database role" msgstr "entfernt eine Datenbankrolle" -#: sql_help.c:5494 +#: sql_help.c:5495 msgid "remove an index" msgstr "entfernt einen Index" -#: sql_help.c:5500 +#: sql_help.c:5501 msgid "remove a procedural language" msgstr "entfernt eine prozedurale Sprache" -#: sql_help.c:5506 +#: sql_help.c:5507 msgid "remove a materialized view" msgstr "entfernt eine materialisierte Sicht" -#: sql_help.c:5512 +#: sql_help.c:5513 msgid "remove an operator" msgstr "entfernt einen Operator" -#: sql_help.c:5518 +#: sql_help.c:5519 msgid "remove an operator class" msgstr "entfernt eine Operatorklasse" -#: sql_help.c:5524 +#: sql_help.c:5525 msgid "remove an operator family" msgstr "entfernt eine Operatorfamilie" -#: sql_help.c:5530 +#: sql_help.c:5531 msgid "remove database objects owned by a database role" msgstr "entfernt die einer Datenbankrolle gehörenden Datenbankobjekte" -#: sql_help.c:5536 +#: sql_help.c:5537 msgid "remove a row level security policy from a table" msgstr "entfernt eine Policy für Sicherheit auf Zeilenebene von einer Tabelle" -#: sql_help.c:5542 +#: sql_help.c:5543 msgid "remove a procedure" msgstr "entfernt eine Prozedur" -#: sql_help.c:5548 +#: sql_help.c:5549 msgid "remove a publication" msgstr "entfernt eine Publikation" -#: sql_help.c:5560 +#: sql_help.c:5561 msgid "remove a routine" msgstr "entfernt eine Routine" -#: sql_help.c:5566 +#: sql_help.c:5567 msgid "remove a rewrite rule" msgstr "entfernt eine Umschreiberegel" -#: sql_help.c:5572 +#: sql_help.c:5573 msgid "remove a schema" msgstr "entfernt ein Schema" -#: sql_help.c:5578 +#: sql_help.c:5579 msgid "remove a sequence" msgstr "entfernt eine Sequenz" -#: sql_help.c:5584 +#: sql_help.c:5585 msgid "remove a foreign server descriptor" msgstr "entfernt einen Fremdserverdeskriptor" -#: sql_help.c:5590 +#: sql_help.c:5591 msgid "remove extended statistics" msgstr "entfernt erweiterte Statistiken" -#: sql_help.c:5596 +#: sql_help.c:5597 msgid "remove a subscription" msgstr "entfernt eine Subskription" -#: sql_help.c:5602 +#: sql_help.c:5603 msgid "remove a table" msgstr "entfernt eine Tabelle" -#: sql_help.c:5608 +#: sql_help.c:5609 msgid "remove a tablespace" msgstr "entfernt einen Tablespace" -#: sql_help.c:5614 +#: sql_help.c:5615 msgid "remove a text search configuration" msgstr "entfernt eine Textsuchekonfiguration" -#: sql_help.c:5620 +#: sql_help.c:5621 msgid "remove a text search dictionary" msgstr "entfernt ein Textsuchewörterbuch" -#: sql_help.c:5626 +#: sql_help.c:5627 msgid "remove a text search parser" msgstr "entfernt einen Textsucheparser" -#: sql_help.c:5632 +#: sql_help.c:5633 msgid "remove a text search template" msgstr "entfernt eine Textsuchevorlage" -#: sql_help.c:5638 +#: sql_help.c:5639 msgid "remove a transform" msgstr "entfernt eine Transformation" -#: sql_help.c:5644 +#: sql_help.c:5645 msgid "remove a trigger" msgstr "entfernt einen Trigger" -#: sql_help.c:5650 +#: sql_help.c:5651 msgid "remove a data type" msgstr "entfernt einen Datentyp" -#: sql_help.c:5662 +#: sql_help.c:5663 msgid "remove a user mapping for a foreign server" msgstr "entfernt eine Benutzerabbildung für einen Fremdserver" -#: sql_help.c:5668 +#: sql_help.c:5669 msgid "remove a view" msgstr "entfernt eine Sicht" -#: sql_help.c:5680 +#: sql_help.c:5681 msgid "execute a prepared statement" msgstr "führt einen vorbereiteten Befehl aus" -#: sql_help.c:5686 +#: sql_help.c:5687 msgid "show the execution plan of a statement" msgstr "zeigt den Ausführungsplan eines Befehls" -#: sql_help.c:5692 +#: sql_help.c:5693 msgid "retrieve rows from a query using a cursor" msgstr "liest Zeilen aus einer Anfrage mit einem Cursor" -#: sql_help.c:5698 +#: sql_help.c:5699 msgid "define access privileges" msgstr "definiert Zugriffsprivilegien" -#: sql_help.c:5704 +#: sql_help.c:5705 msgid "import table definitions from a foreign server" msgstr "importiert Tabellendefinitionen von einem Fremdserver" -#: sql_help.c:5710 +#: sql_help.c:5711 msgid "create new rows in a table" msgstr "erzeugt neue Zeilen in einer Tabelle" -#: sql_help.c:5716 +#: sql_help.c:5717 msgid "listen for a notification" msgstr "hört auf eine Benachrichtigung" -#: sql_help.c:5722 +#: sql_help.c:5723 msgid "load a shared library file" msgstr "lädt eine dynamische Bibliotheksdatei" -#: sql_help.c:5728 +#: sql_help.c:5729 msgid "lock a table" msgstr "sperrt eine Tabelle" -#: sql_help.c:5734 +#: sql_help.c:5735 msgid "position a cursor" msgstr "positioniert einen Cursor" -#: sql_help.c:5740 +#: sql_help.c:5741 msgid "generate a notification" msgstr "erzeugt eine Benachrichtigung" -#: sql_help.c:5746 +#: sql_help.c:5747 msgid "prepare a statement for execution" msgstr "bereitet einen Befehl zur Ausführung vor" -#: sql_help.c:5752 +#: sql_help.c:5753 msgid "prepare the current transaction for two-phase commit" msgstr "bereitet die aktuelle Transaktion für Two-Phase-Commit vor" -#: sql_help.c:5758 +#: sql_help.c:5759 msgid "change the ownership of database objects owned by a database role" msgstr "ändert den Eigentümer der der Rolle gehörenden Datenbankobjekte" -#: sql_help.c:5764 +#: sql_help.c:5765 msgid "replace the contents of a materialized view" msgstr "ersetzt den Inhalt einer materialisierten Sicht" -#: sql_help.c:5770 +#: sql_help.c:5771 msgid "rebuild indexes" msgstr "baut Indexe neu" -#: sql_help.c:5776 +#: sql_help.c:5777 msgid "destroy a previously defined savepoint" msgstr "gibt einen zuvor definierten Sicherungspunkt frei" -#: sql_help.c:5782 +#: sql_help.c:5783 msgid "restore the value of a run-time parameter to the default value" msgstr "setzt einen Konfigurationsparameter auf die Voreinstellung zurück" -#: sql_help.c:5788 +#: sql_help.c:5789 msgid "remove access privileges" msgstr "entfernt Zugriffsprivilegien" -#: sql_help.c:5800 +#: sql_help.c:5801 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "storniert eine Transaktion, die vorher für Two-Phase-Commit vorbereitet worden war" -#: sql_help.c:5806 +#: sql_help.c:5807 msgid "roll back to a savepoint" msgstr "rollt eine Transaktion bis zu einem Sicherungspunkt zurück" -#: sql_help.c:5812 +#: sql_help.c:5813 msgid "define a new savepoint within the current transaction" msgstr "definiert einen neuen Sicherungspunkt in der aktuellen Transaktion" -#: sql_help.c:5818 +#: sql_help.c:5819 msgid "define or change a security label applied to an object" msgstr "definiert oder ändert ein Security-Label eines Objektes" -#: sql_help.c:5824 sql_help.c:5878 sql_help.c:5914 +#: sql_help.c:5825 sql_help.c:5879 sql_help.c:5915 msgid "retrieve rows from a table or view" msgstr "liest Zeilen aus einer Tabelle oder Sicht" -#: sql_help.c:5836 +#: sql_help.c:5837 msgid "change a run-time parameter" msgstr "ändert einen Konfigurationsparameter" -#: sql_help.c:5842 +#: sql_help.c:5843 msgid "set constraint check timing for the current transaction" msgstr "setzt die Zeitsteuerung für Check-Constraints in der aktuellen Transaktion" -#: sql_help.c:5848 +#: sql_help.c:5849 msgid "set the current user identifier of the current session" msgstr "setzt den aktuellen Benutzernamen der aktuellen Sitzung" -#: sql_help.c:5854 +#: sql_help.c:5855 msgid "set the session user identifier and the current user identifier of the current session" msgstr "setzt den Sitzungsbenutzernamen und den aktuellen Benutzernamen der aktuellen Sitzung" -#: sql_help.c:5860 +#: sql_help.c:5861 msgid "set the characteristics of the current transaction" msgstr "setzt die Charakteristika der aktuellen Transaktion" -#: sql_help.c:5866 +#: sql_help.c:5867 msgid "show the value of a run-time parameter" msgstr "zeigt den Wert eines Konfigurationsparameters" -#: sql_help.c:5884 +#: sql_help.c:5885 msgid "empty a table or set of tables" msgstr "leert eine oder mehrere Tabellen" -#: sql_help.c:5890 +#: sql_help.c:5891 msgid "stop listening for a notification" msgstr "beendet das Hören auf eine Benachrichtigung" -#: sql_help.c:5896 +#: sql_help.c:5897 msgid "update rows of a table" msgstr "aktualisiert Zeilen einer Tabelle" -#: sql_help.c:5902 +#: sql_help.c:5903 msgid "garbage-collect and optionally analyze a database" msgstr "säubert und analysiert eine Datenbank" -#: sql_help.c:5908 +#: sql_help.c:5909 msgid "compute a set of rows" msgstr "berechnet eine Zeilenmenge" @@ -6391,7 +6396,7 @@ msgid "could not find own program executable" msgstr "konnte eigene Programmdatei nicht finden" -#: tab-complete.c:4642 +#: tab-complete.c:4681 #, c-format msgid "" "tab completion query failed: %s\n" diff -Nru postgresql-13-13.4/src/bin/psql/po/fr.po postgresql-13-13.7/src/bin/psql/po/fr.po --- postgresql-13-13.4/src/bin/psql/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/psql/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 12\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-06-13 18:57+0000\n" -"PO-Revision-Date: 2021-06-14 16:09+0200\n" +"POT-Creation-Date: 2021-12-30 04:58+0000\n" +"PO-Revision-Date: 2021-12-30 17:14+0100\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -18,7 +18,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 2.4.3\n" +"X-Generator: Poedit 3.0.1\n" #: ../../../src/common/logging.c:236 #, c-format @@ -71,7 +71,7 @@ msgstr "échec de pclose : %m" #: ../../common/exec.c:539 ../../common/exec.c:584 ../../common/exec.c:676 -#: command.c:1256 command.c:3193 command.c:3242 command.c:3359 input.c:227 +#: command.c:1256 command.c:3201 command.c:3250 command.c:3367 input.c:227 #: mainloop.c:81 mainloop.c:402 #, c-format msgid "out of memory" @@ -100,7 +100,7 @@ #: ../../common/username.c:60 #, c-format msgid "user name lookup failure: error code %lu" -msgstr "échec de la recherche du nom d'utilisateur : code erreur %lu" +msgstr "échec de la recherche du nom d'utilisateur : code d'erreur %lu" #: ../../common/wait_error.c:45 #, c-format @@ -231,12 +231,12 @@ msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Vous êtes connecté à la base de données « %s » en tant qu'utilisateur « %s » sur l'hôte « %s » via le port « %s ».\n" -#: command.c:966 command.c:1062 command.c:2551 +#: command.c:966 command.c:1062 command.c:2559 #, c-format msgid "no query buffer" msgstr "aucun tampon de requête" -#: command.c:999 command.c:5211 +#: command.c:999 command.c:5219 #, c-format msgid "invalid line number: %s" msgstr "numéro de ligne invalide : %s" @@ -260,7 +260,7 @@ msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s : nom d'encodage invalide ou procédure de conversion introuvable" -#: command.c:1252 command.c:1993 command.c:3189 command.c:3381 command.c:5313 +#: command.c:1252 command.c:2004 command.c:3197 command.c:3389 command.c:5321 #: common.c:176 common.c:225 common.c:390 common.c:1246 common.c:1274 #: common.c:1383 common.c:1490 common.c:1528 copy.c:488 copy.c:707 help.c:62 #: large_obj.c:157 large_obj.c:192 large_obj.c:254 startup.c:299 @@ -277,8 +277,8 @@ msgid "\\%s: missing right parenthesis" msgstr "\\%s: parenthèse droite manquante" -#: command.c:1549 command.c:1854 command.c:1868 command.c:1885 command.c:2045 -#: command.c:2282 command.c:2518 command.c:2558 +#: command.c:1549 command.c:1854 command.c:1868 command.c:1885 command.c:2053 +#: command.c:2290 command.c:2526 command.c:2566 #, c-format msgid "\\%s: missing required argument" msgstr "\\%s : argument requis manquant" @@ -312,129 +312,130 @@ msgid "Query buffer is empty." msgstr "Le tampon de requête est vide." -#: command.c:1971 -msgid "Enter new password: " -msgstr "Saisissez le nouveau mot de passe : " +#: command.c:1986 +#, c-format +msgid "Enter new password for user \"%s\": " +msgstr "Saisir le nouveau mot de passe de l'utilisateur « %s » : " -#: command.c:1972 +#: command.c:1989 msgid "Enter it again: " msgstr "Saisissez-le à nouveau : " -#: command.c:1976 +#: command.c:1993 #, c-format msgid "Passwords didn't match." msgstr "Les mots de passe ne sont pas identiques." -#: command.c:2075 +#: command.c:2083 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s : n'a pas pu lire la valeur pour la variable" -#: command.c:2178 +#: command.c:2186 msgid "Query buffer reset (cleared)." msgstr "Le tampon de requête a été effacé." -#: command.c:2200 +#: command.c:2208 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "Historique sauvegardé dans le fichier « %s ».\n" -#: command.c:2287 +#: command.c:2295 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s : le nom de la variable d'environnement ne doit pas contenir « = »" -#: command.c:2348 +#: command.c:2356 #, c-format msgid "The server (version %s) does not support showing function source." msgstr "Le serveur (version %s) ne supporte pas l'affichage du code de la fonction." -#: command.c:2351 +#: command.c:2359 #, c-format msgid "The server (version %s) does not support showing view definitions." msgstr "Le serveur (version %s) ne supporte pas l'affichage des définitions de vues." -#: command.c:2358 +#: command.c:2366 #, c-format msgid "function name is required" msgstr "le nom de la fonction est requis" -#: command.c:2360 +#: command.c:2368 #, c-format msgid "view name is required" msgstr "le nom de la vue est requis" -#: command.c:2490 +#: command.c:2498 msgid "Timing is on." msgstr "Chronométrage activé." -#: command.c:2492 +#: command.c:2500 msgid "Timing is off." msgstr "Chronométrage désactivé." -#: command.c:2577 command.c:2605 command.c:3790 command.c:3793 command.c:3796 -#: command.c:3802 command.c:3804 command.c:3830 command.c:3840 command.c:3852 -#: command.c:3866 command.c:3883 command.c:3941 common.c:72 copy.c:331 +#: command.c:2585 command.c:2613 command.c:3798 command.c:3801 command.c:3804 +#: command.c:3810 command.c:3812 command.c:3838 command.c:3848 command.c:3860 +#: command.c:3874 command.c:3891 command.c:3949 common.c:72 copy.c:331 #: copy.c:403 psqlscanslash.l:786 psqlscanslash.l:797 psqlscanslash.l:807 #, c-format msgid "%s: %m" msgstr "%s : %m" -#: command.c:2989 startup.c:236 startup.c:287 +#: command.c:2997 startup.c:236 startup.c:287 msgid "Password: " msgstr "Mot de passe : " -#: command.c:2994 startup.c:284 +#: command.c:3002 startup.c:284 #, c-format msgid "Password for user %s: " msgstr "Mot de passe pour l'utilisateur %s : " -#: command.c:3048 +#: command.c:3056 #, c-format msgid "All connection parameters must be supplied because no database connection exists" msgstr "Tous les paramètres de connexion doivent être fournis car il n'existe pas de connexion à une base de données" -#: command.c:3387 +#: command.c:3395 #, c-format msgid "Previous connection kept" msgstr "Connexion précédente conservée" -#: command.c:3393 +#: command.c:3401 #, c-format msgid "\\connect: %s" msgstr "\\connect : %s" -#: command.c:3440 +#: command.c:3448 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Vous êtes maintenant connecté à la base de données « %s » en tant qu'utilisateur « %s » à l'adresse « %s » via le port « %s ».\n" -#: command.c:3443 +#: command.c:3451 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Vous êtes maintenant connecté à la base de données « %s » en tant qu'utilisateur « %s » via le socket dans « %s » via le port « %s ».\n" -#: command.c:3449 +#: command.c:3457 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "Vous êtes maintenant connecté à la base de données « %s » en tant qu'utilisateur « %s » sur l'hôte « %s » (adresse « %s » ) via le port « %s ».\n" -#: command.c:3452 +#: command.c:3460 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Vous êtes maintenant connecté à la base de données « %s » en tant qu'utilisateur « %s » sur l'hôte « %s » via le port « %s ».\n" -#: command.c:3457 +#: command.c:3465 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "Vous êtes maintenant connecté à la base de données « %s » en tant qu'utilisateur « %s ».\n" -#: command.c:3490 +#: command.c:3498 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, serveur %s)\n" -#: command.c:3498 +#: command.c:3506 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -443,29 +444,29 @@ "ATTENTION : %s version majeure %s, version majeure du serveur %s.\n" " Certaines fonctionnalités de psql pourraient ne pas fonctionner.\n" -#: command.c:3537 +#: command.c:3545 #, c-format msgid "SSL connection (protocol: %s, cipher: %s, bits: %s, compression: %s)\n" msgstr "Connexion SSL (protocole : %s, chiffrement : %s, bits : %s, compression : %s)\n" -#: command.c:3538 command.c:3539 command.c:3540 +#: command.c:3546 command.c:3547 command.c:3548 msgid "unknown" msgstr "inconnu" -#: command.c:3541 help.c:45 +#: command.c:3549 help.c:45 msgid "off" msgstr "désactivé" -#: command.c:3541 help.c:45 +#: command.c:3549 help.c:45 msgid "on" msgstr "activé" -#: command.c:3555 +#: command.c:3563 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "connexion chiffrée avec GSSAPI\n" -#: command.c:3575 +#: command.c:3583 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -477,259 +478,259 @@ " Voir la section « Notes aux utilisateurs de Windows » de la page\n" " référence de psql pour les détails.\n" -#: command.c:3679 +#: command.c:3687 #, c-format msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number" msgstr "la variable d'environnement PSQL_EDITOR_LINENUMBER_ARG doit être définie avec un numéro de ligne" -#: command.c:3708 +#: command.c:3716 #, c-format msgid "could not start editor \"%s\"" msgstr "n'a pas pu exécuter l'éditeur « %s »" -#: command.c:3710 +#: command.c:3718 #, c-format msgid "could not start /bin/sh" msgstr "n'a pas pu exécuter /bin/sh" -#: command.c:3747 +#: command.c:3755 #, c-format msgid "could not locate temporary directory: %s" msgstr "n'a pas pu localiser le répertoire temporaire : %s" -#: command.c:3774 +#: command.c:3782 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier temporaire « %s » : %m" -#: command.c:4100 +#: command.c:4108 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "\\pset: abréviation ambigüe : « %s » correspond à « %s » comme à « %s »" -#: command.c:4120 +#: command.c:4128 #, c-format msgid "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" msgstr "\\pset : les formats autorisés sont aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" -#: command.c:4139 +#: command.c:4147 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: les styles de lignes autorisés sont ascii, old-ascii, unicode" -#: command.c:4154 +#: command.c:4162 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset : les styles autorisés de ligne de bordure Unicode sont single, double" -#: command.c:4169 +#: command.c:4177 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset : les styles autorisés pour la ligne de colonne Unicode sont single, double" -#: command.c:4184 +#: command.c:4192 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset : les styles autorisés pour la ligne d'en-tête Unicode sont single, double" -#: command.c:4227 +#: command.c:4235 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: csv_fieldsep doit être un unique caractère d'un octet" -#: command.c:4232 +#: command.c:4240 #, c-format msgid "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return" msgstr "\\pset: csv_fieldsep ne peut pas être un guillemet, un retour à la ligne ou un retour chariot" -#: command.c:4369 command.c:4557 +#: command.c:4377 command.c:4565 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset : option inconnue : %s" -#: command.c:4389 +#: command.c:4397 #, c-format msgid "Border style is %d.\n" msgstr "Le style de bordure est %d.\n" -#: command.c:4395 +#: command.c:4403 #, c-format msgid "Target width is unset.\n" msgstr "La largeur cible n'est pas configuré.\n" -#: command.c:4397 +#: command.c:4405 #, c-format msgid "Target width is %d.\n" msgstr "La largeur cible est %d.\n" -#: command.c:4404 +#: command.c:4412 #, c-format msgid "Expanded display is on.\n" msgstr "Affichage étendu activé.\n" -#: command.c:4406 +#: command.c:4414 #, c-format msgid "Expanded display is used automatically.\n" msgstr "L'affichage étendu est utilisé automatiquement.\n" -#: command.c:4408 +#: command.c:4416 #, c-format msgid "Expanded display is off.\n" msgstr "Affichage étendu désactivé.\n" -#: command.c:4414 +#: command.c:4422 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Le séparateur de champs pour un CSV est « %s ».\n" -#: command.c:4422 command.c:4430 +#: command.c:4430 command.c:4438 #, c-format msgid "Field separator is zero byte.\n" msgstr "Le séparateur de champs est l'octet zéro.\n" -#: command.c:4424 +#: command.c:4432 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Le séparateur de champs est « %s ».\n" -#: command.c:4437 +#: command.c:4445 #, c-format msgid "Default footer is on.\n" msgstr "Le bas de page pas défaut est activé.\n" -#: command.c:4439 +#: command.c:4447 #, c-format msgid "Default footer is off.\n" msgstr "Le bas de page par défaut est désactivé.\n" -#: command.c:4445 +#: command.c:4453 #, c-format msgid "Output format is %s.\n" msgstr "Le format de sortie est %s.\n" -#: command.c:4451 +#: command.c:4459 #, c-format msgid "Line style is %s.\n" msgstr "Le style de ligne est %s.\n" -#: command.c:4458 +#: command.c:4466 #, c-format msgid "Null display is \"%s\".\n" msgstr "L'affichage de null est « %s ».\n" -#: command.c:4466 +#: command.c:4474 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "L'affichage de la sortie numérique adaptée à la locale est activé.\n" -#: command.c:4468 +#: command.c:4476 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "L'affichage de la sortie numérique adaptée à la locale est désactivé.\n" -#: command.c:4475 +#: command.c:4483 #, c-format msgid "Pager is used for long output.\n" msgstr "Le paginateur est utilisé pour les affichages longs.\n" -#: command.c:4477 +#: command.c:4485 #, c-format msgid "Pager is always used.\n" msgstr "Le paginateur est toujours utilisé.\n" -#: command.c:4479 +#: command.c:4487 #, c-format msgid "Pager usage is off.\n" msgstr "L'utilisation du paginateur est désactivé.\n" -#: command.c:4485 +#: command.c:4493 #, c-format msgid "Pager won't be used for less than %d line.\n" msgid_plural "Pager won't be used for less than %d lines.\n" msgstr[0] "Le paginateur ne sera pas utilisé pour moins que %d ligne.\n" msgstr[1] "Le paginateur ne sera pas utilisé pour moins que %d lignes.\n" -#: command.c:4495 command.c:4505 +#: command.c:4503 command.c:4513 #, c-format msgid "Record separator is zero byte.\n" msgstr "Le séparateur d'enregistrements est l'octet zéro.\n" -#: command.c:4497 +#: command.c:4505 #, c-format msgid "Record separator is .\n" msgstr "Le séparateur d'enregistrement est .\n" -#: command.c:4499 +#: command.c:4507 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Le séparateur d'enregistrements est « %s ».\n" -#: command.c:4512 +#: command.c:4520 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Les attributs de la table sont « %s ».\n" -#: command.c:4515 +#: command.c:4523 #, c-format msgid "Table attributes unset.\n" msgstr "Les attributs de la table ne sont pas définis.\n" -#: command.c:4522 +#: command.c:4530 #, c-format msgid "Title is \"%s\".\n" msgstr "Le titre est « %s ».\n" -#: command.c:4524 +#: command.c:4532 #, c-format msgid "Title is unset.\n" msgstr "Le titre n'est pas défini.\n" -#: command.c:4531 +#: command.c:4539 #, c-format msgid "Tuples only is on.\n" msgstr "L'affichage des tuples seuls est activé.\n" -#: command.c:4533 +#: command.c:4541 #, c-format msgid "Tuples only is off.\n" msgstr "L'affichage des tuples seuls est désactivé.\n" -#: command.c:4539 +#: command.c:4547 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Le style de bordure Unicode est « %s ».\n" -#: command.c:4545 +#: command.c:4553 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Le style de ligne Unicode est « %s ».\n" -#: command.c:4551 +#: command.c:4559 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Le style d'en-tête Unicode est « %s ».\n" -#: command.c:4784 +#: command.c:4792 #, c-format msgid "\\!: failed" msgstr "\\! : échec" -#: command.c:4809 common.c:650 +#: command.c:4817 common.c:650 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch ne peut pas être utilisé avec une requête vide" -#: command.c:4850 +#: command.c:4858 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (chaque %gs)\n" -#: command.c:4853 +#: command.c:4861 #, c-format msgid "%s (every %gs)\n" msgstr "%s (chaque %gs)\n" -#: command.c:4907 command.c:4914 common.c:550 common.c:557 common.c:1229 +#: command.c:4915 command.c:4922 common.c:550 common.c:557 common.c:1229 #, c-format msgid "" "********* QUERY **********\n" @@ -742,12 +743,12 @@ "**************************\n" "\n" -#: command.c:5106 +#: command.c:5114 #, c-format msgid "\"%s.%s\" is not a view" msgstr "« %s.%s » n'est pas une vue" -#: command.c:5122 +#: command.c:5130 #, c-format msgid "could not parse reloptions array" msgstr "n'a pas pu analyser le tableau reloptions" @@ -2386,7 +2387,7 @@ " psql [OPTION]... [DBNAME [USERNAME]]\n" "\n" msgstr "" -" psql [OPTIONS]... [NOM_BASE [NOM_UTILISATEUR]]\n" +" psql [OPTIONS]... [BASE [UTILISATEUR]]\n" "\n" #: help.c:77 @@ -2398,28 +2399,25 @@ #, c-format msgid " -c, --command=COMMAND run only single command (SQL or internal) and exit\n" msgstr "" -" -c, --command=COMMANDE\n" -" exécute une commande unique (SQL ou interne), puis quitte\n" +" -c, --command=COMMANDE exécute une commande unique (SQL ou interne), puis\n" +" quitte\n" #: help.c:83 #, c-format msgid " -d, --dbname=DBNAME database name to connect to (default: \"%s\")\n" msgstr "" -" -d, --dbname=NOM_BASE\n" -" indique le nom de la base de données à laquelle se\n" -" connecter (par défaut : « %s »)\n" +" -d, --dbname=BASE indique le nom de la base de données à laquelle se\n" +" connecter (par défaut : « %s »)\n" #: help.c:84 #, c-format msgid " -f, --file=FILENAME execute commands from file, then exit\n" -msgstr "" -" -f, --file=FICHIER\n" -" exécute les commandes du fichier, puis quitte\n" +msgstr " -f, --file=FICHIER exécute les commandes du fichier, puis quitte\n" #: help.c:85 #, c-format msgid " -l, --list list available databases, then exit\n" -msgstr " -l, --list affiche les bases de données disponibles, puis quitte\n" +msgstr " -l, --list affiche les bases de données disponibles, puis quitte\n" #: help.c:86 #, c-format @@ -2429,18 +2427,18 @@ " (e.g., -v ON_ERROR_STOP=1)\n" msgstr "" " -v, --set=, --variable=NOM=VALEUR\n" -" configure la variable psql NOM en VALEUR\n" -" (e.g., -v ON_ERROR_STOP=1)\n" +" configure la variable psql NOM en VALEUR\n" +" (par exemple : -v ON_ERROR_STOP=1)\n" #: help.c:89 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: help.c:90 #, c-format msgid " -X, --no-psqlrc do not read startup file (~/.psqlrc)\n" -msgstr " -X, --no-psqlrc ne lit pas le fichier de démarrage (~/.psqlrc)\n" +msgstr " -X, --no-psqlrc ne lit pas le fichier de démarrage (~/.psqlrc)\n" #: help.c:91 #, c-format @@ -2449,22 +2447,22 @@ " execute as a single transaction (if non-interactive)\n" msgstr "" " -1 (« un »), --single-transaction\n" -" exécute dans une transaction unique (si non intéractif)\n" +" exécute dans une transaction unique (si non intéractif)\n" #: help.c:93 #, c-format msgid " -?, --help[=options] show this help, then exit\n" -msgstr " -?, --help[=options] affiche cette aide et quitte\n" +msgstr " -?, --help[=options] affiche cette aide et quitte\n" #: help.c:94 #, c-format msgid " --help=commands list backslash commands, then exit\n" -msgstr " --help=commandes liste les méta-commandes, puis quitte\n" +msgstr " --help=commandes liste les méta-commandes, puis quitte\n" #: help.c:95 #, c-format msgid " --help=variables list special variables, then exit\n" -msgstr " --help=variables liste les variables spéciales, puis quitte\n" +msgstr " --help=variables liste les variables spéciales, puis quitte\n" #: help.c:97 #, c-format @@ -2478,72 +2476,64 @@ #: help.c:98 #, c-format msgid " -a, --echo-all echo all input from script\n" -msgstr " -a, --echo-all affiche les lignes du script\n" +msgstr " -a, --echo-all affiche les lignes du script\n" #: help.c:99 #, c-format msgid " -b, --echo-errors echo failed commands\n" -msgstr " -b, --echo-errors affiche les commandes échouées\n" +msgstr " -b, --echo-errors affiche les commandes échouées\n" #: help.c:100 #, c-format msgid " -e, --echo-queries echo commands sent to server\n" -msgstr "" -" -e, --echo-queries\n" -" affiche les commandes envoyées au serveur\n" +msgstr " -e, --echo-queries affiche les commandes envoyées au serveur\n" #: help.c:101 #, c-format msgid " -E, --echo-hidden display queries that internal commands generate\n" msgstr "" -" -E, --echo-hidden\n" -" affiche les requêtes engendrées par les commandes internes\n" +" -E, --echo-hidden affiche les requêtes engendrées par les commandes\n" +" internes\n" #: help.c:102 #, c-format msgid " -L, --log-file=FILENAME send session log to file\n" -msgstr "" -" -L, --log-file=FICHIER\n" -" envoie les traces dans le fichier\n" +msgstr " -L, --log-file=FICHIER envoie les traces dans le fichier\n" #: help.c:103 #, c-format msgid " -n, --no-readline disable enhanced command line editing (readline)\n" msgstr "" -" -n, --no-readline\n" -" désactive l'édition avancée de la ligne de commande\n" -" (readline)\n" +" -n, --no-readline désactive l'édition avancée de la ligne de commande\n" +" (readline)\n" #: help.c:104 #, c-format msgid " -o, --output=FILENAME send query results to file (or |pipe)\n" msgstr "" -" -o, --output=FICHIER\n" -" écrit les résultats des requêtes dans un fichier (ou\n" -" |tube)\n" +" -o, --output=FICHIER écrit les résultats des requêtes dans un fichier (ou\n" +" |tube)\n" #: help.c:105 #, c-format msgid " -q, --quiet run quietly (no messages, only query output)\n" msgstr "" -" -q, --quiet s'exécute silencieusement (pas de messages, uniquement le\n" -" résultat des requêtes)\n" +" -q, --quiet s'exécute silencieusement (pas de messages, uniquement\n" +" le résultat des requêtes)\n" #: help.c:106 #, c-format msgid " -s, --single-step single-step mode (confirm each query)\n" msgstr "" -" -s, --single-step\n" -" active le mode étape par étape (confirmation pour chaque\n" -" requête)\n" +" -s, --single-step active le mode étape par étape (confirmation pour\n" +" chaque requête)\n" #: help.c:107 #, c-format msgid " -S, --single-line single-line mode (end of line terminates SQL command)\n" msgstr "" -" -S, --single-line\n" -" active le mode ligne par ligne (EOL termine la commande\n" -" SQL)\n" +" -S, --single-line active le mode ligne par ligne (EOL termine la commande\n" +" SQL)\n" #: help.c:109 #, c-format @@ -2558,15 +2548,13 @@ #, c-format msgid " -A, --no-align unaligned table output mode\n" msgstr "" -" -A, --no-align active le mode d'affichage non aligné des tables (-P\n" -" format=unaligned)\n" +" -A, --no-align active le mode d'affichage non aligné des tables\n" +" (-P format=unaligned)\n" #: help.c:111 #, c-format msgid " --csv CSV (Comma-Separated Values) table output mode\n" -msgstr "" -" --csv mode d'affichage CSV (valeurs séparées par des virgules)\n" -"\n" +msgstr " --csv mode d'affichage CSV (valeurs séparées par des virgules)\n" #: help.c:112 #, c-format @@ -2575,21 +2563,22 @@ " field separator for unaligned output (default: \"%s\")\n" msgstr "" " -F, --field-separator=CHAINE\n" -" séparateur de champs pour un affichage non aligné\n" -" (par défaut : « %s »)\n" +" séparateur de champs pour un affichage non aligné\n" +" (par défaut : « %s »)\n" #: help.c:115 #, c-format msgid " -H, --html HTML table output mode\n" -msgstr " -H, --html active le mode d'affichage HTML des tables (-P format=html)\n" +msgstr "" +" -H, --html active le mode d'affichage HTML des tables\n" +" (-P format=html)\n" #: help.c:116 #, c-format msgid " -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \\pset command)\n" msgstr "" -" -P, --pset=VAR[=ARG]\n" -" initialise l'option d'impression VAR à ARG (voir la\n" -" commande \\pset)\n" +" -P, --pset=VAR[=ARG] initialise l'option d'impression VAR à ARG (voir la\n" +" commande \\pset)\n" #: help.c:117 #, c-format @@ -2598,28 +2587,25 @@ " record separator for unaligned output (default: newline)\n" msgstr "" " -R, --record-separator=CHAINE\n" -" séparateur d'enregistrements pour un affichage non aligné\n" -" (par défaut : saut de ligne)\n" +" séparateur d'enregistrements pour un affichage non\n" +" aligné (par défaut : saut de ligne)\n" #: help.c:119 #, c-format msgid " -t, --tuples-only print rows only\n" -msgstr "" -" -t, --tuples-only\n" -" affiche seulement les lignes (-P tuples_only)\n" +msgstr " -t, --tuples-only affiche seulement les lignes (-P tuples_only)\n" #: help.c:120 #, c-format msgid " -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)\n" msgstr "" -" -T, --table-attr=TEXTE\n" -" initialise les attributs des balises HTML de tableau\n" -" (largeur, bordure) (-P tableattr=)\n" +" -T, --table-attr=TEXTE initialise les attributs des balises HTML de tableau\n" +" (largeur, bordure)\n" #: help.c:121 #, c-format msgid " -x, --expanded turn on expanded table output\n" -msgstr " -x, --expanded active l'affichage étendu des tables (-P expanded)\n" +msgstr " -x, --expanded active l'affichage étendu des tables (-P expanded)\n" #: help.c:122 #, c-format @@ -2628,8 +2614,8 @@ " set field separator for unaligned output to zero byte\n" msgstr "" " -z, --field-separator-zero\n" -" initialise le séparateur de champs pour un affichage non\n" -" aligné à l'octet zéro\n" +" initialise le séparateur de champs pour un affichage\n" +" non aligné à l'octet zéro\n" #: help.c:124 #, c-format @@ -2638,8 +2624,8 @@ " set record separator for unaligned output to zero byte\n" msgstr "" " -0, --record-separator-zero\n" -" initialise le séparateur d'enregistrements pour un affichage\n" -" non aligné à l'octet zéro\n" +" initialise le séparateur d'enregistrements pour un\n" +" affichage non aligné à l'octet zéro\n" #: help.c:127 #, c-format @@ -2654,8 +2640,8 @@ #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory (default: \"%s\")\n" msgstr "" -" -h, --host=HOTE nom d'hôte du serveur de la base de données ou répertoire\n" -" de la socket (par défaut : %s)\n" +" -h, --host=HÔTE nom d'hôte du serveur de la base de données ou\n" +" répertoire de la socket (par défaut : %s)\n" #: help.c:131 msgid "local socket" @@ -2665,30 +2651,28 @@ #, c-format msgid " -p, --port=PORT database server port (default: \"%s\")\n" msgstr "" -" -p, --port=PORT port du serveur de la base de données (par défaut :\n" -" « %s »)\n" +" -p, --port=PORT port du serveur de la base de données (par défaut :\n" +" « %s »)\n" #: help.c:140 #, c-format msgid " -U, --username=USERNAME database user name (default: \"%s\")\n" msgstr "" -" -U, --username=NOM\n" -" nom d'utilisateur de la base de données (par défaut :\n" -" « %s »)\n" +" -U, --username=UTILISATEUR\n" +" nom d'utilisateur de la base de données (par défaut :\n" +" « %s »)\n" #: help.c:141 #, c-format msgid " -w, --no-password never prompt for password\n" -msgstr "" -" -w, --no-password\n" -" ne demande jamais un mot de passe\n" +msgstr " -w, --no-password ne demande jamais un mot de passe\n" #: help.c:142 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr "" -" -W, --password force la demande du mot de passe (devrait survenir\n" -" automatiquement)\n" +" -W, --password force la demande du mot de passe (devrait survenir\n" +" automatiquement)\n" #: help.c:144 #, c-format @@ -2713,7 +2697,7 @@ #: help.c:148 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil de %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" #: help.c:174 #, c-format @@ -3272,7 +3256,7 @@ " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently \"%s\")\n" msgstr "" -" \\c[onnect] {[NOM_BASE|- UTILISATEUR|- HOTE|- PORT|-] | conninfo}\n" +" \\c[onnect] {[BASE|- UTILISATEUR|- HOTE|- PORT|-] | conninfo}\n" " se connecte à une autre base de données\n" " (actuellement « %s »)\n" @@ -3282,7 +3266,7 @@ " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" msgstr "" -" \\c[onnect] {[NOM_BASE|- UTILISATEUR|- HOTE|- PORT|-] | conninfo}\n" +" \\c[onnect] {[BASE|- UTILISATEUR|- HOTE|- PORT|-] | conninfo}\n" " se connecte à une nouvelle base de données\n" " (aucune connexion actuellement)\n" @@ -4210,192 +4194,192 @@ #: sql_help.c:249 sql_help.c:251 sql_help.c:263 sql_help.c:264 sql_help.c:265 #: sql_help.c:267 sql_help.c:316 sql_help.c:318 sql_help.c:320 sql_help.c:322 #: sql_help.c:391 sql_help.c:396 sql_help.c:398 sql_help.c:440 sql_help.c:442 -#: sql_help.c:445 sql_help.c:447 sql_help.c:515 sql_help.c:520 sql_help.c:525 -#: sql_help.c:530 sql_help.c:535 sql_help.c:588 sql_help.c:590 sql_help.c:592 -#: sql_help.c:594 sql_help.c:596 sql_help.c:599 sql_help.c:601 sql_help.c:604 -#: sql_help.c:615 sql_help.c:617 sql_help.c:658 sql_help.c:660 sql_help.c:662 -#: sql_help.c:665 sql_help.c:667 sql_help.c:669 sql_help.c:702 sql_help.c:706 -#: sql_help.c:710 sql_help.c:729 sql_help.c:732 sql_help.c:735 sql_help.c:764 -#: sql_help.c:776 sql_help.c:784 sql_help.c:787 sql_help.c:790 sql_help.c:805 -#: sql_help.c:808 sql_help.c:837 sql_help.c:842 sql_help.c:847 sql_help.c:852 -#: sql_help.c:857 sql_help.c:879 sql_help.c:881 sql_help.c:883 sql_help.c:885 -#: sql_help.c:888 sql_help.c:890 sql_help.c:931 sql_help.c:975 sql_help.c:980 -#: sql_help.c:985 sql_help.c:990 sql_help.c:995 sql_help.c:1014 sql_help.c:1025 -#: sql_help.c:1027 sql_help.c:1046 sql_help.c:1056 sql_help.c:1058 -#: sql_help.c:1060 sql_help.c:1072 sql_help.c:1076 sql_help.c:1078 -#: sql_help.c:1090 sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 -#: sql_help.c:1112 sql_help.c:1114 sql_help.c:1118 sql_help.c:1121 -#: sql_help.c:1122 sql_help.c:1123 sql_help.c:1126 sql_help.c:1128 -#: sql_help.c:1262 sql_help.c:1264 sql_help.c:1267 sql_help.c:1270 -#: sql_help.c:1272 sql_help.c:1274 sql_help.c:1277 sql_help.c:1280 -#: sql_help.c:1391 sql_help.c:1393 sql_help.c:1395 sql_help.c:1398 -#: sql_help.c:1419 sql_help.c:1422 sql_help.c:1425 sql_help.c:1428 -#: sql_help.c:1432 sql_help.c:1434 sql_help.c:1436 sql_help.c:1438 -#: sql_help.c:1452 sql_help.c:1455 sql_help.c:1457 sql_help.c:1459 -#: sql_help.c:1469 sql_help.c:1471 sql_help.c:1481 sql_help.c:1483 -#: sql_help.c:1493 sql_help.c:1496 sql_help.c:1519 sql_help.c:1521 -#: sql_help.c:1523 sql_help.c:1525 sql_help.c:1528 sql_help.c:1530 -#: sql_help.c:1533 sql_help.c:1536 sql_help.c:1586 sql_help.c:1629 -#: sql_help.c:1632 sql_help.c:1634 sql_help.c:1636 sql_help.c:1639 -#: sql_help.c:1641 sql_help.c:1643 sql_help.c:1646 sql_help.c:1696 -#: sql_help.c:1712 sql_help.c:1933 sql_help.c:2002 sql_help.c:2021 -#: sql_help.c:2034 sql_help.c:2091 sql_help.c:2098 sql_help.c:2108 -#: sql_help.c:2129 sql_help.c:2155 sql_help.c:2173 sql_help.c:2200 -#: sql_help.c:2295 sql_help.c:2340 sql_help.c:2364 sql_help.c:2387 -#: sql_help.c:2391 sql_help.c:2425 sql_help.c:2445 sql_help.c:2467 -#: sql_help.c:2481 sql_help.c:2501 sql_help.c:2524 sql_help.c:2554 -#: sql_help.c:2579 sql_help.c:2625 sql_help.c:2903 sql_help.c:2916 -#: sql_help.c:2933 sql_help.c:2949 sql_help.c:2989 sql_help.c:3041 -#: sql_help.c:3045 sql_help.c:3047 sql_help.c:3053 sql_help.c:3071 -#: sql_help.c:3098 sql_help.c:3133 sql_help.c:3145 sql_help.c:3154 -#: sql_help.c:3198 sql_help.c:3212 sql_help.c:3240 sql_help.c:3248 -#: sql_help.c:3260 sql_help.c:3270 sql_help.c:3278 sql_help.c:3286 -#: sql_help.c:3294 sql_help.c:3302 sql_help.c:3311 sql_help.c:3322 -#: sql_help.c:3330 sql_help.c:3338 sql_help.c:3346 sql_help.c:3354 -#: sql_help.c:3364 sql_help.c:3373 sql_help.c:3382 sql_help.c:3390 -#: sql_help.c:3400 sql_help.c:3411 sql_help.c:3419 sql_help.c:3428 -#: sql_help.c:3439 sql_help.c:3448 sql_help.c:3456 sql_help.c:3464 -#: sql_help.c:3472 sql_help.c:3480 sql_help.c:3488 sql_help.c:3496 -#: sql_help.c:3504 sql_help.c:3512 sql_help.c:3520 sql_help.c:3528 -#: sql_help.c:3545 sql_help.c:3554 sql_help.c:3562 sql_help.c:3579 -#: sql_help.c:3594 sql_help.c:3869 sql_help.c:3920 sql_help.c:3949 -#: sql_help.c:3962 sql_help.c:4407 sql_help.c:4455 sql_help.c:4596 +#: sql_help.c:445 sql_help.c:447 sql_help.c:516 sql_help.c:521 sql_help.c:526 +#: sql_help.c:531 sql_help.c:536 sql_help.c:589 sql_help.c:591 sql_help.c:593 +#: sql_help.c:595 sql_help.c:597 sql_help.c:600 sql_help.c:602 sql_help.c:605 +#: sql_help.c:616 sql_help.c:618 sql_help.c:659 sql_help.c:661 sql_help.c:663 +#: sql_help.c:666 sql_help.c:668 sql_help.c:670 sql_help.c:703 sql_help.c:707 +#: sql_help.c:711 sql_help.c:730 sql_help.c:733 sql_help.c:736 sql_help.c:765 +#: sql_help.c:777 sql_help.c:785 sql_help.c:788 sql_help.c:791 sql_help.c:806 +#: sql_help.c:809 sql_help.c:838 sql_help.c:843 sql_help.c:848 sql_help.c:853 +#: sql_help.c:858 sql_help.c:880 sql_help.c:882 sql_help.c:884 sql_help.c:886 +#: sql_help.c:889 sql_help.c:891 sql_help.c:932 sql_help.c:977 sql_help.c:982 +#: sql_help.c:987 sql_help.c:992 sql_help.c:997 sql_help.c:1016 sql_help.c:1027 +#: sql_help.c:1029 sql_help.c:1048 sql_help.c:1058 sql_help.c:1060 +#: sql_help.c:1062 sql_help.c:1074 sql_help.c:1078 sql_help.c:1080 +#: sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 sql_help.c:1098 +#: sql_help.c:1114 sql_help.c:1116 sql_help.c:1120 sql_help.c:1123 +#: sql_help.c:1124 sql_help.c:1125 sql_help.c:1128 sql_help.c:1130 +#: sql_help.c:1264 sql_help.c:1266 sql_help.c:1269 sql_help.c:1272 +#: sql_help.c:1274 sql_help.c:1276 sql_help.c:1279 sql_help.c:1282 +#: sql_help.c:1393 sql_help.c:1395 sql_help.c:1397 sql_help.c:1400 +#: sql_help.c:1421 sql_help.c:1424 sql_help.c:1427 sql_help.c:1430 +#: sql_help.c:1434 sql_help.c:1436 sql_help.c:1438 sql_help.c:1440 +#: sql_help.c:1454 sql_help.c:1457 sql_help.c:1459 sql_help.c:1461 +#: sql_help.c:1471 sql_help.c:1473 sql_help.c:1483 sql_help.c:1485 +#: sql_help.c:1495 sql_help.c:1498 sql_help.c:1521 sql_help.c:1523 +#: sql_help.c:1525 sql_help.c:1527 sql_help.c:1530 sql_help.c:1532 +#: sql_help.c:1535 sql_help.c:1538 sql_help.c:1588 sql_help.c:1631 +#: sql_help.c:1634 sql_help.c:1636 sql_help.c:1638 sql_help.c:1641 +#: sql_help.c:1643 sql_help.c:1645 sql_help.c:1648 sql_help.c:1698 +#: sql_help.c:1714 sql_help.c:1935 sql_help.c:2004 sql_help.c:2023 +#: sql_help.c:2036 sql_help.c:2093 sql_help.c:2100 sql_help.c:2110 +#: sql_help.c:2131 sql_help.c:2157 sql_help.c:2175 sql_help.c:2203 +#: sql_help.c:2299 sql_help.c:2344 sql_help.c:2368 sql_help.c:2391 +#: sql_help.c:2395 sql_help.c:2429 sql_help.c:2449 sql_help.c:2471 +#: sql_help.c:2485 sql_help.c:2505 sql_help.c:2528 sql_help.c:2558 +#: sql_help.c:2583 sql_help.c:2629 sql_help.c:2907 sql_help.c:2920 +#: sql_help.c:2937 sql_help.c:2953 sql_help.c:2993 sql_help.c:3045 +#: sql_help.c:3049 sql_help.c:3051 sql_help.c:3057 sql_help.c:3075 +#: sql_help.c:3102 sql_help.c:3137 sql_help.c:3149 sql_help.c:3158 +#: sql_help.c:3202 sql_help.c:3216 sql_help.c:3244 sql_help.c:3252 +#: sql_help.c:3264 sql_help.c:3274 sql_help.c:3282 sql_help.c:3290 +#: sql_help.c:3298 sql_help.c:3306 sql_help.c:3315 sql_help.c:3326 +#: sql_help.c:3334 sql_help.c:3342 sql_help.c:3350 sql_help.c:3358 +#: sql_help.c:3368 sql_help.c:3377 sql_help.c:3386 sql_help.c:3394 +#: sql_help.c:3404 sql_help.c:3415 sql_help.c:3423 sql_help.c:3432 +#: sql_help.c:3443 sql_help.c:3452 sql_help.c:3460 sql_help.c:3468 +#: sql_help.c:3476 sql_help.c:3484 sql_help.c:3492 sql_help.c:3500 +#: sql_help.c:3508 sql_help.c:3516 sql_help.c:3524 sql_help.c:3532 +#: sql_help.c:3549 sql_help.c:3558 sql_help.c:3566 sql_help.c:3583 +#: sql_help.c:3598 sql_help.c:3873 sql_help.c:3924 sql_help.c:3953 +#: sql_help.c:3966 sql_help.c:4411 sql_help.c:4459 sql_help.c:4600 msgid "name" msgstr "nom" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:327 sql_help.c:1783 -#: sql_help.c:3213 sql_help.c:4193 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:327 sql_help.c:1785 +#: sql_help.c:3217 sql_help.c:4197 msgid "aggregate_signature" msgstr "signature_agrégat" #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:118 sql_help.c:250 -#: sql_help.c:268 sql_help.c:399 sql_help.c:446 sql_help.c:524 sql_help.c:571 -#: sql_help.c:589 sql_help.c:616 sql_help.c:666 sql_help.c:731 sql_help.c:786 -#: sql_help.c:807 sql_help.c:846 sql_help.c:891 sql_help.c:932 sql_help.c:984 -#: sql_help.c:1016 sql_help.c:1026 sql_help.c:1059 sql_help.c:1079 -#: sql_help.c:1093 sql_help.c:1129 sql_help.c:1271 sql_help.c:1392 -#: sql_help.c:1435 sql_help.c:1456 sql_help.c:1470 sql_help.c:1482 -#: sql_help.c:1495 sql_help.c:1522 sql_help.c:1587 sql_help.c:1640 +#: sql_help.c:268 sql_help.c:399 sql_help.c:446 sql_help.c:525 sql_help.c:572 +#: sql_help.c:590 sql_help.c:617 sql_help.c:667 sql_help.c:732 sql_help.c:787 +#: sql_help.c:808 sql_help.c:847 sql_help.c:892 sql_help.c:933 sql_help.c:986 +#: sql_help.c:1018 sql_help.c:1028 sql_help.c:1061 sql_help.c:1081 +#: sql_help.c:1095 sql_help.c:1131 sql_help.c:1273 sql_help.c:1394 +#: sql_help.c:1437 sql_help.c:1458 sql_help.c:1472 sql_help.c:1484 +#: sql_help.c:1497 sql_help.c:1524 sql_help.c:1589 sql_help.c:1642 msgid "new_name" msgstr "nouveau_nom" #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:120 sql_help.c:248 -#: sql_help.c:266 sql_help.c:397 sql_help.c:482 sql_help.c:529 sql_help.c:618 -#: sql_help.c:627 sql_help.c:685 sql_help.c:705 sql_help.c:734 sql_help.c:789 -#: sql_help.c:851 sql_help.c:889 sql_help.c:989 sql_help.c:1028 sql_help.c:1057 -#: sql_help.c:1077 sql_help.c:1091 sql_help.c:1127 sql_help.c:1332 -#: sql_help.c:1394 sql_help.c:1437 sql_help.c:1458 sql_help.c:1520 -#: sql_help.c:1635 sql_help.c:2889 +#: sql_help.c:266 sql_help.c:397 sql_help.c:482 sql_help.c:530 sql_help.c:619 +#: sql_help.c:628 sql_help.c:686 sql_help.c:706 sql_help.c:735 sql_help.c:790 +#: sql_help.c:852 sql_help.c:890 sql_help.c:991 sql_help.c:1030 sql_help.c:1059 +#: sql_help.c:1079 sql_help.c:1093 sql_help.c:1129 sql_help.c:1334 +#: sql_help.c:1396 sql_help.c:1439 sql_help.c:1460 sql_help.c:1522 +#: sql_help.c:1637 sql_help.c:2893 msgid "new_owner" msgstr "nouveau_propriétaire" #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:252 sql_help.c:319 -#: sql_help.c:448 sql_help.c:534 sql_help.c:668 sql_help.c:709 sql_help.c:737 -#: sql_help.c:792 sql_help.c:856 sql_help.c:994 sql_help.c:1061 sql_help.c:1095 -#: sql_help.c:1273 sql_help.c:1439 sql_help.c:1460 sql_help.c:1472 -#: sql_help.c:1484 sql_help.c:1524 sql_help.c:1642 +#: sql_help.c:448 sql_help.c:535 sql_help.c:669 sql_help.c:710 sql_help.c:738 +#: sql_help.c:793 sql_help.c:857 sql_help.c:996 sql_help.c:1063 sql_help.c:1097 +#: sql_help.c:1275 sql_help.c:1441 sql_help.c:1462 sql_help.c:1474 +#: sql_help.c:1486 sql_help.c:1526 sql_help.c:1644 msgid "new_schema" msgstr "nouveau_schéma" -#: sql_help.c:44 sql_help.c:1847 sql_help.c:3214 sql_help.c:4222 +#: sql_help.c:44 sql_help.c:1849 sql_help.c:3218 sql_help.c:4226 msgid "where aggregate_signature is:" msgstr "où signature_agrégat est :" #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:337 sql_help.c:350 -#: sql_help.c:354 sql_help.c:370 sql_help.c:373 sql_help.c:376 sql_help.c:516 -#: sql_help.c:521 sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:838 -#: sql_help.c:843 sql_help.c:848 sql_help.c:853 sql_help.c:858 sql_help.c:976 -#: sql_help.c:981 sql_help.c:986 sql_help.c:991 sql_help.c:996 sql_help.c:1801 -#: sql_help.c:1818 sql_help.c:1824 sql_help.c:1848 sql_help.c:1851 -#: sql_help.c:1854 sql_help.c:2003 sql_help.c:2022 sql_help.c:2025 -#: sql_help.c:2296 sql_help.c:2502 sql_help.c:3215 sql_help.c:3218 -#: sql_help.c:3221 sql_help.c:3312 sql_help.c:3401 sql_help.c:3429 -#: sql_help.c:3753 sql_help.c:4101 sql_help.c:4199 sql_help.c:4206 -#: sql_help.c:4212 sql_help.c:4223 sql_help.c:4226 sql_help.c:4229 +#: sql_help.c:354 sql_help.c:370 sql_help.c:373 sql_help.c:376 sql_help.c:517 +#: sql_help.c:522 sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:839 +#: sql_help.c:844 sql_help.c:849 sql_help.c:854 sql_help.c:859 sql_help.c:978 +#: sql_help.c:983 sql_help.c:988 sql_help.c:993 sql_help.c:998 sql_help.c:1803 +#: sql_help.c:1820 sql_help.c:1826 sql_help.c:1850 sql_help.c:1853 +#: sql_help.c:1856 sql_help.c:2005 sql_help.c:2024 sql_help.c:2027 +#: sql_help.c:2300 sql_help.c:2506 sql_help.c:3219 sql_help.c:3222 +#: sql_help.c:3225 sql_help.c:3316 sql_help.c:3405 sql_help.c:3433 +#: sql_help.c:3757 sql_help.c:4105 sql_help.c:4203 sql_help.c:4210 +#: sql_help.c:4216 sql_help.c:4227 sql_help.c:4230 sql_help.c:4233 msgid "argmode" msgstr "mode_argument" #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:338 sql_help.c:351 -#: sql_help.c:355 sql_help.c:371 sql_help.c:374 sql_help.c:377 sql_help.c:517 -#: sql_help.c:522 sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:839 -#: sql_help.c:844 sql_help.c:849 sql_help.c:854 sql_help.c:859 sql_help.c:977 -#: sql_help.c:982 sql_help.c:987 sql_help.c:992 sql_help.c:997 sql_help.c:1802 -#: sql_help.c:1819 sql_help.c:1825 sql_help.c:1849 sql_help.c:1852 -#: sql_help.c:1855 sql_help.c:2004 sql_help.c:2023 sql_help.c:2026 -#: sql_help.c:2297 sql_help.c:2503 sql_help.c:3216 sql_help.c:3219 -#: sql_help.c:3222 sql_help.c:3313 sql_help.c:3402 sql_help.c:3430 -#: sql_help.c:4200 sql_help.c:4207 sql_help.c:4213 sql_help.c:4224 -#: sql_help.c:4227 sql_help.c:4230 +#: sql_help.c:355 sql_help.c:371 sql_help.c:374 sql_help.c:377 sql_help.c:518 +#: sql_help.c:523 sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:840 +#: sql_help.c:845 sql_help.c:850 sql_help.c:855 sql_help.c:860 sql_help.c:979 +#: sql_help.c:984 sql_help.c:989 sql_help.c:994 sql_help.c:999 sql_help.c:1804 +#: sql_help.c:1821 sql_help.c:1827 sql_help.c:1851 sql_help.c:1854 +#: sql_help.c:1857 sql_help.c:2006 sql_help.c:2025 sql_help.c:2028 +#: sql_help.c:2301 sql_help.c:2507 sql_help.c:3220 sql_help.c:3223 +#: sql_help.c:3226 sql_help.c:3317 sql_help.c:3406 sql_help.c:3434 +#: sql_help.c:4204 sql_help.c:4211 sql_help.c:4217 sql_help.c:4228 +#: sql_help.c:4231 sql_help.c:4234 msgid "argname" msgstr "nom_agrégat" #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:339 sql_help.c:352 -#: sql_help.c:356 sql_help.c:372 sql_help.c:375 sql_help.c:378 sql_help.c:518 -#: sql_help.c:523 sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:840 -#: sql_help.c:845 sql_help.c:850 sql_help.c:855 sql_help.c:860 sql_help.c:978 -#: sql_help.c:983 sql_help.c:988 sql_help.c:993 sql_help.c:998 sql_help.c:1803 -#: sql_help.c:1820 sql_help.c:1826 sql_help.c:1850 sql_help.c:1853 -#: sql_help.c:1856 sql_help.c:2298 sql_help.c:2504 sql_help.c:3217 -#: sql_help.c:3220 sql_help.c:3223 sql_help.c:3314 sql_help.c:3403 -#: sql_help.c:3431 sql_help.c:4201 sql_help.c:4208 sql_help.c:4214 -#: sql_help.c:4225 sql_help.c:4228 sql_help.c:4231 +#: sql_help.c:356 sql_help.c:372 sql_help.c:375 sql_help.c:378 sql_help.c:519 +#: sql_help.c:524 sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:841 +#: sql_help.c:846 sql_help.c:851 sql_help.c:856 sql_help.c:861 sql_help.c:980 +#: sql_help.c:985 sql_help.c:990 sql_help.c:995 sql_help.c:1000 sql_help.c:1805 +#: sql_help.c:1822 sql_help.c:1828 sql_help.c:1852 sql_help.c:1855 +#: sql_help.c:1858 sql_help.c:2302 sql_help.c:2508 sql_help.c:3221 +#: sql_help.c:3224 sql_help.c:3227 sql_help.c:3318 sql_help.c:3407 +#: sql_help.c:3435 sql_help.c:4205 sql_help.c:4212 sql_help.c:4218 +#: sql_help.c:4229 sql_help.c:4232 sql_help.c:4235 msgid "argtype" msgstr "type_argument" -#: sql_help.c:112 sql_help.c:394 sql_help.c:471 sql_help.c:483 sql_help.c:926 -#: sql_help.c:1074 sql_help.c:1453 sql_help.c:1581 sql_help.c:1613 -#: sql_help.c:1665 sql_help.c:1904 sql_help.c:1911 sql_help.c:2203 -#: sql_help.c:2245 sql_help.c:2252 sql_help.c:2261 sql_help.c:2341 -#: sql_help.c:2555 sql_help.c:2647 sql_help.c:2918 sql_help.c:3099 -#: sql_help.c:3121 sql_help.c:3261 sql_help.c:3616 sql_help.c:3788 -#: sql_help.c:3961 sql_help.c:4658 +#: sql_help.c:112 sql_help.c:394 sql_help.c:471 sql_help.c:483 sql_help.c:927 +#: sql_help.c:1076 sql_help.c:1455 sql_help.c:1583 sql_help.c:1615 +#: sql_help.c:1667 sql_help.c:1906 sql_help.c:1913 sql_help.c:2206 +#: sql_help.c:2248 sql_help.c:2255 sql_help.c:2264 sql_help.c:2345 +#: sql_help.c:2559 sql_help.c:2651 sql_help.c:2922 sql_help.c:3103 +#: sql_help.c:3125 sql_help.c:3265 sql_help.c:3620 sql_help.c:3792 +#: sql_help.c:3965 sql_help.c:4662 msgid "option" msgstr "option" -#: sql_help.c:113 sql_help.c:927 sql_help.c:1582 sql_help.c:2342 -#: sql_help.c:2556 sql_help.c:3100 sql_help.c:3262 +#: sql_help.c:113 sql_help.c:928 sql_help.c:1584 sql_help.c:2346 +#: sql_help.c:2560 sql_help.c:3104 sql_help.c:3266 msgid "where option can be:" msgstr "où option peut être :" -#: sql_help.c:114 sql_help.c:2137 +#: sql_help.c:114 sql_help.c:2139 msgid "allowconn" msgstr "allowconn" -#: sql_help.c:115 sql_help.c:928 sql_help.c:1583 sql_help.c:2138 -#: sql_help.c:2343 sql_help.c:2557 sql_help.c:3101 +#: sql_help.c:115 sql_help.c:929 sql_help.c:1585 sql_help.c:2140 +#: sql_help.c:2347 sql_help.c:2561 sql_help.c:3105 msgid "connlimit" msgstr "limite_de_connexion" -#: sql_help.c:116 sql_help.c:2139 +#: sql_help.c:116 sql_help.c:2141 msgid "istemplate" msgstr "istemplate" -#: sql_help.c:122 sql_help.c:606 sql_help.c:671 sql_help.c:1276 sql_help.c:1325 +#: sql_help.c:122 sql_help.c:607 sql_help.c:672 sql_help.c:1278 sql_help.c:1327 msgid "new_tablespace" msgstr "nouveau_tablespace" -#: sql_help.c:124 sql_help.c:127 sql_help.c:129 sql_help.c:544 sql_help.c:546 -#: sql_help.c:547 sql_help.c:863 sql_help.c:865 sql_help.c:866 sql_help.c:935 -#: sql_help.c:939 sql_help.c:942 sql_help.c:1003 sql_help.c:1005 -#: sql_help.c:1006 sql_help.c:1140 sql_help.c:1143 sql_help.c:1590 -#: sql_help.c:1594 sql_help.c:1597 sql_help.c:2308 sql_help.c:2508 -#: sql_help.c:3980 sql_help.c:4396 +#: sql_help.c:124 sql_help.c:127 sql_help.c:129 sql_help.c:545 sql_help.c:547 +#: sql_help.c:548 sql_help.c:864 sql_help.c:866 sql_help.c:867 sql_help.c:936 +#: sql_help.c:940 sql_help.c:943 sql_help.c:1005 sql_help.c:1007 +#: sql_help.c:1008 sql_help.c:1142 sql_help.c:1145 sql_help.c:1592 +#: sql_help.c:1596 sql_help.c:1599 sql_help.c:2312 sql_help.c:2512 +#: sql_help.c:3984 sql_help.c:4400 msgid "configuration_parameter" msgstr "paramètre_configuration" #: sql_help.c:125 sql_help.c:395 sql_help.c:466 sql_help.c:472 sql_help.c:484 -#: sql_help.c:545 sql_help.c:598 sql_help.c:677 sql_help.c:683 sql_help.c:864 -#: sql_help.c:887 sql_help.c:936 sql_help.c:1004 sql_help.c:1075 -#: sql_help.c:1117 sql_help.c:1120 sql_help.c:1125 sql_help.c:1141 -#: sql_help.c:1142 sql_help.c:1307 sql_help.c:1327 sql_help.c:1375 -#: sql_help.c:1397 sql_help.c:1454 sql_help.c:1538 sql_help.c:1591 -#: sql_help.c:1614 sql_help.c:2204 sql_help.c:2246 sql_help.c:2253 -#: sql_help.c:2262 sql_help.c:2309 sql_help.c:2310 sql_help.c:2372 -#: sql_help.c:2375 sql_help.c:2409 sql_help.c:2509 sql_help.c:2510 -#: sql_help.c:2527 sql_help.c:2648 sql_help.c:2678 sql_help.c:2783 -#: sql_help.c:2796 sql_help.c:2810 sql_help.c:2851 sql_help.c:2875 -#: sql_help.c:2892 sql_help.c:2919 sql_help.c:3122 sql_help.c:3789 -#: sql_help.c:4397 sql_help.c:4398 +#: sql_help.c:546 sql_help.c:599 sql_help.c:678 sql_help.c:684 sql_help.c:865 +#: sql_help.c:888 sql_help.c:937 sql_help.c:1006 sql_help.c:1077 +#: sql_help.c:1119 sql_help.c:1122 sql_help.c:1127 sql_help.c:1143 +#: sql_help.c:1144 sql_help.c:1309 sql_help.c:1329 sql_help.c:1377 +#: sql_help.c:1399 sql_help.c:1456 sql_help.c:1540 sql_help.c:1593 +#: sql_help.c:1616 sql_help.c:2207 sql_help.c:2249 sql_help.c:2256 +#: sql_help.c:2265 sql_help.c:2313 sql_help.c:2314 sql_help.c:2376 +#: sql_help.c:2379 sql_help.c:2413 sql_help.c:2513 sql_help.c:2514 +#: sql_help.c:2531 sql_help.c:2652 sql_help.c:2682 sql_help.c:2787 +#: sql_help.c:2800 sql_help.c:2814 sql_help.c:2855 sql_help.c:2879 +#: sql_help.c:2896 sql_help.c:2923 sql_help.c:3126 sql_help.c:3793 +#: sql_help.c:4401 sql_help.c:4402 msgid "value" msgstr "valeur" @@ -4403,9 +4387,9 @@ msgid "target_role" msgstr "rôle_cible" -#: sql_help.c:198 sql_help.c:2188 sql_help.c:2603 sql_help.c:2608 -#: sql_help.c:3735 sql_help.c:3742 sql_help.c:3756 sql_help.c:3762 -#: sql_help.c:4083 sql_help.c:4090 sql_help.c:4104 sql_help.c:4110 +#: sql_help.c:198 sql_help.c:2191 sql_help.c:2607 sql_help.c:2612 +#: sql_help.c:3739 sql_help.c:3746 sql_help.c:3760 sql_help.c:3766 +#: sql_help.c:4087 sql_help.c:4094 sql_help.c:4108 sql_help.c:4114 msgid "schema_name" msgstr "nom_schéma" @@ -4419,30 +4403,30 @@ #: sql_help.c:201 sql_help.c:202 sql_help.c:203 sql_help.c:204 sql_help.c:205 #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 -#: sql_help.c:569 sql_help.c:605 sql_help.c:670 sql_help.c:810 sql_help.c:946 -#: sql_help.c:1275 sql_help.c:1601 sql_help.c:2346 sql_help.c:2347 -#: sql_help.c:2348 sql_help.c:2349 sql_help.c:2350 sql_help.c:2483 -#: sql_help.c:2560 sql_help.c:2561 sql_help.c:2562 sql_help.c:2563 -#: sql_help.c:2564 sql_help.c:3104 sql_help.c:3105 sql_help.c:3106 -#: sql_help.c:3107 sql_help.c:3108 sql_help.c:3768 sql_help.c:3772 -#: sql_help.c:4116 sql_help.c:4120 sql_help.c:4417 +#: sql_help.c:570 sql_help.c:606 sql_help.c:671 sql_help.c:811 sql_help.c:947 +#: sql_help.c:1277 sql_help.c:1603 sql_help.c:2350 sql_help.c:2351 +#: sql_help.c:2352 sql_help.c:2353 sql_help.c:2354 sql_help.c:2487 +#: sql_help.c:2564 sql_help.c:2565 sql_help.c:2566 sql_help.c:2567 +#: sql_help.c:2568 sql_help.c:3108 sql_help.c:3109 sql_help.c:3110 +#: sql_help.c:3111 sql_help.c:3112 sql_help.c:3772 sql_help.c:3776 +#: sql_help.c:4120 sql_help.c:4124 sql_help.c:4421 msgid "role_name" msgstr "nom_rôle" -#: sql_help.c:236 sql_help.c:459 sql_help.c:1291 sql_help.c:1293 -#: sql_help.c:1342 sql_help.c:1354 sql_help.c:1379 sql_help.c:1631 -#: sql_help.c:2158 sql_help.c:2162 sql_help.c:2265 sql_help.c:2270 -#: sql_help.c:2368 sql_help.c:2778 sql_help.c:2791 sql_help.c:2805 -#: sql_help.c:2814 sql_help.c:2826 sql_help.c:2855 sql_help.c:3820 -#: sql_help.c:3835 sql_help.c:3837 sql_help.c:4282 sql_help.c:4283 -#: sql_help.c:4292 sql_help.c:4333 sql_help.c:4334 sql_help.c:4335 -#: sql_help.c:4336 sql_help.c:4337 sql_help.c:4338 sql_help.c:4371 -#: sql_help.c:4372 sql_help.c:4377 sql_help.c:4382 sql_help.c:4521 -#: sql_help.c:4522 sql_help.c:4531 sql_help.c:4572 sql_help.c:4573 -#: sql_help.c:4574 sql_help.c:4575 sql_help.c:4576 sql_help.c:4577 -#: sql_help.c:4624 sql_help.c:4626 sql_help.c:4685 sql_help.c:4741 -#: sql_help.c:4742 sql_help.c:4751 sql_help.c:4792 sql_help.c:4793 -#: sql_help.c:4794 sql_help.c:4795 sql_help.c:4796 sql_help.c:4797 +#: sql_help.c:236 sql_help.c:459 sql_help.c:1293 sql_help.c:1295 +#: sql_help.c:1344 sql_help.c:1356 sql_help.c:1381 sql_help.c:1633 +#: sql_help.c:2160 sql_help.c:2164 sql_help.c:2268 sql_help.c:2273 +#: sql_help.c:2372 sql_help.c:2782 sql_help.c:2795 sql_help.c:2809 +#: sql_help.c:2818 sql_help.c:2830 sql_help.c:2859 sql_help.c:3824 +#: sql_help.c:3839 sql_help.c:3841 sql_help.c:4286 sql_help.c:4287 +#: sql_help.c:4296 sql_help.c:4337 sql_help.c:4338 sql_help.c:4339 +#: sql_help.c:4340 sql_help.c:4341 sql_help.c:4342 sql_help.c:4375 +#: sql_help.c:4376 sql_help.c:4381 sql_help.c:4386 sql_help.c:4525 +#: sql_help.c:4526 sql_help.c:4535 sql_help.c:4576 sql_help.c:4577 +#: sql_help.c:4578 sql_help.c:4579 sql_help.c:4580 sql_help.c:4581 +#: sql_help.c:4628 sql_help.c:4630 sql_help.c:4689 sql_help.c:4745 +#: sql_help.c:4746 sql_help.c:4755 sql_help.c:4796 sql_help.c:4797 +#: sql_help.c:4798 sql_help.c:4799 sql_help.c:4800 sql_help.c:4801 msgid "expression" msgstr "expression" @@ -4451,18 +4435,18 @@ msgstr "contrainte_domaine" #: sql_help.c:241 sql_help.c:243 sql_help.c:246 sql_help.c:474 sql_help.c:475 -#: sql_help.c:1268 sql_help.c:1313 sql_help.c:1314 sql_help.c:1315 -#: sql_help.c:1341 sql_help.c:1353 sql_help.c:1370 sql_help.c:1789 -#: sql_help.c:1791 sql_help.c:2161 sql_help.c:2264 sql_help.c:2269 -#: sql_help.c:2813 sql_help.c:2825 sql_help.c:3832 +#: sql_help.c:1270 sql_help.c:1315 sql_help.c:1316 sql_help.c:1317 +#: sql_help.c:1343 sql_help.c:1355 sql_help.c:1372 sql_help.c:1791 +#: sql_help.c:1793 sql_help.c:2163 sql_help.c:2267 sql_help.c:2272 +#: sql_help.c:2817 sql_help.c:2829 sql_help.c:3836 msgid "constraint_name" msgstr "nom_contrainte" -#: sql_help.c:244 sql_help.c:1269 +#: sql_help.c:244 sql_help.c:1271 msgid "new_constraint_name" msgstr "nouvelle_nom_contrainte" -#: sql_help.c:317 sql_help.c:1073 +#: sql_help.c:317 sql_help.c:1075 msgid "new_version" msgstr "nouvelle_version" @@ -4478,82 +4462,82 @@ #: sql_help.c:334 sql_help.c:335 sql_help.c:340 sql_help.c:344 sql_help.c:346 #: sql_help.c:348 sql_help.c:357 sql_help.c:358 sql_help.c:359 sql_help.c:360 #: sql_help.c:361 sql_help.c:362 sql_help.c:363 sql_help.c:364 sql_help.c:367 -#: sql_help.c:368 sql_help.c:1781 sql_help.c:1786 sql_help.c:1793 -#: sql_help.c:1794 sql_help.c:1795 sql_help.c:1796 sql_help.c:1797 -#: sql_help.c:1798 sql_help.c:1799 sql_help.c:1804 sql_help.c:1806 -#: sql_help.c:1810 sql_help.c:1812 sql_help.c:1816 sql_help.c:1821 -#: sql_help.c:1822 sql_help.c:1829 sql_help.c:1830 sql_help.c:1831 -#: sql_help.c:1832 sql_help.c:1833 sql_help.c:1834 sql_help.c:1835 -#: sql_help.c:1836 sql_help.c:1837 sql_help.c:1838 sql_help.c:1839 -#: sql_help.c:1844 sql_help.c:1845 sql_help.c:4189 sql_help.c:4194 -#: sql_help.c:4195 sql_help.c:4196 sql_help.c:4197 sql_help.c:4203 -#: sql_help.c:4204 sql_help.c:4209 sql_help.c:4210 sql_help.c:4215 -#: sql_help.c:4216 sql_help.c:4217 sql_help.c:4218 sql_help.c:4219 -#: sql_help.c:4220 +#: sql_help.c:368 sql_help.c:1783 sql_help.c:1788 sql_help.c:1795 +#: sql_help.c:1796 sql_help.c:1797 sql_help.c:1798 sql_help.c:1799 +#: sql_help.c:1800 sql_help.c:1801 sql_help.c:1806 sql_help.c:1808 +#: sql_help.c:1812 sql_help.c:1814 sql_help.c:1818 sql_help.c:1823 +#: sql_help.c:1824 sql_help.c:1831 sql_help.c:1832 sql_help.c:1833 +#: sql_help.c:1834 sql_help.c:1835 sql_help.c:1836 sql_help.c:1837 +#: sql_help.c:1838 sql_help.c:1839 sql_help.c:1840 sql_help.c:1841 +#: sql_help.c:1846 sql_help.c:1847 sql_help.c:4193 sql_help.c:4198 +#: sql_help.c:4199 sql_help.c:4200 sql_help.c:4201 sql_help.c:4207 +#: sql_help.c:4208 sql_help.c:4213 sql_help.c:4214 sql_help.c:4219 +#: sql_help.c:4220 sql_help.c:4221 sql_help.c:4222 sql_help.c:4223 +#: sql_help.c:4224 msgid "object_name" msgstr "nom_objet" -#: sql_help.c:326 sql_help.c:1782 sql_help.c:4192 +#: sql_help.c:326 sql_help.c:1784 sql_help.c:4196 msgid "aggregate_name" msgstr "nom_agrégat" -#: sql_help.c:328 sql_help.c:1784 sql_help.c:2068 sql_help.c:2072 -#: sql_help.c:2074 sql_help.c:3231 +#: sql_help.c:328 sql_help.c:1786 sql_help.c:2070 sql_help.c:2074 +#: sql_help.c:2076 sql_help.c:3235 msgid "source_type" msgstr "type_source" -#: sql_help.c:329 sql_help.c:1785 sql_help.c:2069 sql_help.c:2073 -#: sql_help.c:2075 sql_help.c:3232 +#: sql_help.c:329 sql_help.c:1787 sql_help.c:2071 sql_help.c:2075 +#: sql_help.c:2077 sql_help.c:3236 msgid "target_type" msgstr "type_cible" -#: sql_help.c:336 sql_help.c:774 sql_help.c:1800 sql_help.c:2070 -#: sql_help.c:2111 sql_help.c:2176 sql_help.c:2426 sql_help.c:2457 -#: sql_help.c:2995 sql_help.c:4100 sql_help.c:4198 sql_help.c:4311 -#: sql_help.c:4315 sql_help.c:4319 sql_help.c:4322 sql_help.c:4550 -#: sql_help.c:4554 sql_help.c:4558 sql_help.c:4561 sql_help.c:4770 -#: sql_help.c:4774 sql_help.c:4778 sql_help.c:4781 +#: sql_help.c:336 sql_help.c:775 sql_help.c:1802 sql_help.c:2072 +#: sql_help.c:2113 sql_help.c:2179 sql_help.c:2430 sql_help.c:2461 +#: sql_help.c:2999 sql_help.c:4104 sql_help.c:4202 sql_help.c:4315 +#: sql_help.c:4319 sql_help.c:4323 sql_help.c:4326 sql_help.c:4554 +#: sql_help.c:4558 sql_help.c:4562 sql_help.c:4565 sql_help.c:4774 +#: sql_help.c:4778 sql_help.c:4782 sql_help.c:4785 msgid "function_name" msgstr "nom_fonction" -#: sql_help.c:341 sql_help.c:767 sql_help.c:1807 sql_help.c:2450 +#: sql_help.c:341 sql_help.c:768 sql_help.c:1809 sql_help.c:2454 msgid "operator_name" msgstr "nom_opérateur" -#: sql_help.c:342 sql_help.c:703 sql_help.c:707 sql_help.c:711 sql_help.c:1808 -#: sql_help.c:2427 sql_help.c:3355 +#: sql_help.c:342 sql_help.c:704 sql_help.c:708 sql_help.c:712 sql_help.c:1810 +#: sql_help.c:2431 sql_help.c:3359 msgid "left_type" msgstr "type_argument_gauche" -#: sql_help.c:343 sql_help.c:704 sql_help.c:708 sql_help.c:712 sql_help.c:1809 -#: sql_help.c:2428 sql_help.c:3356 +#: sql_help.c:343 sql_help.c:705 sql_help.c:709 sql_help.c:713 sql_help.c:1811 +#: sql_help.c:2432 sql_help.c:3360 msgid "right_type" msgstr "type_argument_droit" -#: sql_help.c:345 sql_help.c:347 sql_help.c:730 sql_help.c:733 sql_help.c:736 -#: sql_help.c:765 sql_help.c:777 sql_help.c:785 sql_help.c:788 sql_help.c:791 -#: sql_help.c:1359 sql_help.c:1811 sql_help.c:1813 sql_help.c:2447 -#: sql_help.c:2468 sql_help.c:2831 sql_help.c:3365 sql_help.c:3374 +#: sql_help.c:345 sql_help.c:347 sql_help.c:731 sql_help.c:734 sql_help.c:737 +#: sql_help.c:766 sql_help.c:778 sql_help.c:786 sql_help.c:789 sql_help.c:792 +#: sql_help.c:1361 sql_help.c:1813 sql_help.c:1815 sql_help.c:2451 +#: sql_help.c:2472 sql_help.c:2835 sql_help.c:3369 sql_help.c:3378 msgid "index_method" msgstr "méthode_indexage" -#: sql_help.c:349 sql_help.c:1817 sql_help.c:4205 +#: sql_help.c:349 sql_help.c:1819 sql_help.c:4209 msgid "procedure_name" msgstr "nom_procédure" -#: sql_help.c:353 sql_help.c:1823 sql_help.c:3752 sql_help.c:4211 +#: sql_help.c:353 sql_help.c:1825 sql_help.c:3756 sql_help.c:4215 msgid "routine_name" msgstr "nom_routine" -#: sql_help.c:365 sql_help.c:1331 sql_help.c:1840 sql_help.c:2304 -#: sql_help.c:2507 sql_help.c:2786 sql_help.c:2962 sql_help.c:3536 -#: sql_help.c:3766 sql_help.c:4114 +#: sql_help.c:365 sql_help.c:1333 sql_help.c:1842 sql_help.c:2308 +#: sql_help.c:2511 sql_help.c:2790 sql_help.c:2966 sql_help.c:3540 +#: sql_help.c:3770 sql_help.c:4118 msgid "type_name" msgstr "nom_type" -#: sql_help.c:366 sql_help.c:1841 sql_help.c:2303 sql_help.c:2506 -#: sql_help.c:2963 sql_help.c:3189 sql_help.c:3537 sql_help.c:3758 -#: sql_help.c:4106 +#: sql_help.c:366 sql_help.c:1843 sql_help.c:2307 sql_help.c:2510 +#: sql_help.c:2967 sql_help.c:3193 sql_help.c:3541 sql_help.c:3762 +#: sql_help.c:4110 msgid "lang_name" msgstr "nom_langage" @@ -4561,1891 +4545,1895 @@ msgid "and aggregate_signature is:" msgstr "et signature_agrégat est :" -#: sql_help.c:392 sql_help.c:1935 sql_help.c:2201 +#: sql_help.c:392 sql_help.c:1937 sql_help.c:2204 msgid "handler_function" msgstr "fonction_gestionnaire" -#: sql_help.c:393 sql_help.c:2202 +#: sql_help.c:393 sql_help.c:2205 msgid "validator_function" msgstr "fonction_validateur" -#: sql_help.c:441 sql_help.c:519 sql_help.c:659 sql_help.c:841 sql_help.c:979 -#: sql_help.c:1263 sql_help.c:1529 +#: sql_help.c:441 sql_help.c:520 sql_help.c:660 sql_help.c:842 sql_help.c:981 +#: sql_help.c:1265 sql_help.c:1531 msgid "action" msgstr "action" #: sql_help.c:443 sql_help.c:450 sql_help.c:454 sql_help.c:455 sql_help.c:458 #: sql_help.c:460 sql_help.c:461 sql_help.c:462 sql_help.c:464 sql_help.c:467 -#: sql_help.c:469 sql_help.c:470 sql_help.c:663 sql_help.c:673 sql_help.c:675 -#: sql_help.c:678 sql_help.c:680 sql_help.c:1055 sql_help.c:1265 -#: sql_help.c:1283 sql_help.c:1287 sql_help.c:1288 sql_help.c:1292 -#: sql_help.c:1294 sql_help.c:1295 sql_help.c:1296 sql_help.c:1297 -#: sql_help.c:1299 sql_help.c:1302 sql_help.c:1303 sql_help.c:1305 -#: sql_help.c:1308 sql_help.c:1310 sql_help.c:1355 sql_help.c:1357 -#: sql_help.c:1364 sql_help.c:1373 sql_help.c:1378 sql_help.c:1630 -#: sql_help.c:1633 sql_help.c:1637 sql_help.c:1673 sql_help.c:1788 -#: sql_help.c:1901 sql_help.c:1907 sql_help.c:1920 sql_help.c:1921 -#: sql_help.c:1922 sql_help.c:2243 sql_help.c:2256 sql_help.c:2301 -#: sql_help.c:2367 sql_help.c:2373 sql_help.c:2406 sql_help.c:2633 -#: sql_help.c:2661 sql_help.c:2662 sql_help.c:2769 sql_help.c:2777 -#: sql_help.c:2787 sql_help.c:2790 sql_help.c:2800 sql_help.c:2804 -#: sql_help.c:2827 sql_help.c:2829 sql_help.c:2836 sql_help.c:2849 -#: sql_help.c:2854 sql_help.c:2872 sql_help.c:2998 sql_help.c:3134 -#: sql_help.c:3737 sql_help.c:3738 sql_help.c:3819 sql_help.c:3834 -#: sql_help.c:3836 sql_help.c:3838 sql_help.c:4085 sql_help.c:4086 -#: sql_help.c:4191 sql_help.c:4342 sql_help.c:4581 sql_help.c:4623 -#: sql_help.c:4625 sql_help.c:4627 sql_help.c:4673 sql_help.c:4801 +#: sql_help.c:469 sql_help.c:470 sql_help.c:664 sql_help.c:674 sql_help.c:676 +#: sql_help.c:679 sql_help.c:681 sql_help.c:1057 sql_help.c:1267 +#: sql_help.c:1285 sql_help.c:1289 sql_help.c:1290 sql_help.c:1294 +#: sql_help.c:1296 sql_help.c:1297 sql_help.c:1298 sql_help.c:1299 +#: sql_help.c:1301 sql_help.c:1304 sql_help.c:1305 sql_help.c:1307 +#: sql_help.c:1310 sql_help.c:1312 sql_help.c:1357 sql_help.c:1359 +#: sql_help.c:1366 sql_help.c:1375 sql_help.c:1380 sql_help.c:1632 +#: sql_help.c:1635 sql_help.c:1639 sql_help.c:1675 sql_help.c:1790 +#: sql_help.c:1903 sql_help.c:1909 sql_help.c:1922 sql_help.c:1923 +#: sql_help.c:1924 sql_help.c:2246 sql_help.c:2259 sql_help.c:2305 +#: sql_help.c:2371 sql_help.c:2377 sql_help.c:2410 sql_help.c:2637 +#: sql_help.c:2665 sql_help.c:2666 sql_help.c:2773 sql_help.c:2781 +#: sql_help.c:2791 sql_help.c:2794 sql_help.c:2804 sql_help.c:2808 +#: sql_help.c:2831 sql_help.c:2833 sql_help.c:2840 sql_help.c:2853 +#: sql_help.c:2858 sql_help.c:2876 sql_help.c:3002 sql_help.c:3138 +#: sql_help.c:3741 sql_help.c:3742 sql_help.c:3823 sql_help.c:3838 +#: sql_help.c:3840 sql_help.c:3842 sql_help.c:4089 sql_help.c:4090 +#: sql_help.c:4195 sql_help.c:4346 sql_help.c:4585 sql_help.c:4627 +#: sql_help.c:4629 sql_help.c:4631 sql_help.c:4677 sql_help.c:4805 msgid "column_name" msgstr "nom_colonne" -#: sql_help.c:444 sql_help.c:664 sql_help.c:1266 sql_help.c:1638 +#: sql_help.c:444 sql_help.c:665 sql_help.c:1268 sql_help.c:1640 msgid "new_column_name" msgstr "nouvelle_nom_colonne" -#: sql_help.c:449 sql_help.c:540 sql_help.c:672 sql_help.c:862 sql_help.c:1000 -#: sql_help.c:1282 sql_help.c:1539 +#: sql_help.c:449 sql_help.c:541 sql_help.c:673 sql_help.c:863 sql_help.c:1002 +#: sql_help.c:1284 sql_help.c:1541 msgid "where action is one of:" msgstr "où action fait partie de :" -#: sql_help.c:451 sql_help.c:456 sql_help.c:1047 sql_help.c:1284 -#: sql_help.c:1289 sql_help.c:1541 sql_help.c:1545 sql_help.c:2156 -#: sql_help.c:2244 sql_help.c:2446 sql_help.c:2626 sql_help.c:2770 -#: sql_help.c:3043 sql_help.c:3921 +#: sql_help.c:451 sql_help.c:456 sql_help.c:1049 sql_help.c:1286 +#: sql_help.c:1291 sql_help.c:1543 sql_help.c:1547 sql_help.c:2158 +#: sql_help.c:2247 sql_help.c:2450 sql_help.c:2630 sql_help.c:2774 +#: sql_help.c:3047 sql_help.c:3925 msgid "data_type" msgstr "type_données" -#: sql_help.c:452 sql_help.c:457 sql_help.c:1285 sql_help.c:1290 -#: sql_help.c:1542 sql_help.c:1546 sql_help.c:2157 sql_help.c:2247 -#: sql_help.c:2369 sql_help.c:2771 sql_help.c:2779 sql_help.c:2792 -#: sql_help.c:2806 sql_help.c:3044 sql_help.c:3050 sql_help.c:3829 +#: sql_help.c:452 sql_help.c:457 sql_help.c:1287 sql_help.c:1292 +#: sql_help.c:1544 sql_help.c:1548 sql_help.c:2159 sql_help.c:2250 +#: sql_help.c:2373 sql_help.c:2775 sql_help.c:2783 sql_help.c:2796 +#: sql_help.c:2810 sql_help.c:3048 sql_help.c:3054 sql_help.c:3833 msgid "collation" msgstr "collationnement" -#: sql_help.c:453 sql_help.c:1286 sql_help.c:2248 sql_help.c:2257 -#: sql_help.c:2772 sql_help.c:2788 sql_help.c:2801 +#: sql_help.c:453 sql_help.c:1288 sql_help.c:2251 sql_help.c:2260 +#: sql_help.c:2776 sql_help.c:2792 sql_help.c:2805 msgid "column_constraint" msgstr "contrainte_colonne" -#: sql_help.c:463 sql_help.c:603 sql_help.c:674 sql_help.c:1304 sql_help.c:4670 +#: sql_help.c:463 sql_help.c:604 sql_help.c:675 sql_help.c:1306 sql_help.c:4674 msgid "integer" msgstr "entier" -#: sql_help.c:465 sql_help.c:468 sql_help.c:676 sql_help.c:679 sql_help.c:1306 -#: sql_help.c:1309 +#: sql_help.c:465 sql_help.c:468 sql_help.c:677 sql_help.c:680 sql_help.c:1308 +#: sql_help.c:1311 msgid "attribute_option" msgstr "option_attribut" -#: sql_help.c:473 sql_help.c:1311 sql_help.c:2249 sql_help.c:2258 -#: sql_help.c:2773 sql_help.c:2789 sql_help.c:2802 +#: sql_help.c:473 sql_help.c:1313 sql_help.c:2252 sql_help.c:2261 +#: sql_help.c:2777 sql_help.c:2793 sql_help.c:2806 msgid "table_constraint" msgstr "contrainte_table" -#: sql_help.c:476 sql_help.c:477 sql_help.c:478 sql_help.c:479 sql_help.c:1316 -#: sql_help.c:1317 sql_help.c:1318 sql_help.c:1319 sql_help.c:1842 +#: sql_help.c:476 sql_help.c:477 sql_help.c:478 sql_help.c:479 sql_help.c:1318 +#: sql_help.c:1319 sql_help.c:1320 sql_help.c:1321 sql_help.c:1844 msgid "trigger_name" msgstr "nom_trigger" -#: sql_help.c:480 sql_help.c:481 sql_help.c:1329 sql_help.c:1330 -#: sql_help.c:2250 sql_help.c:2255 sql_help.c:2776 sql_help.c:2799 +#: sql_help.c:480 sql_help.c:481 sql_help.c:1331 sql_help.c:1332 +#: sql_help.c:2253 sql_help.c:2258 sql_help.c:2780 sql_help.c:2803 msgid "parent_table" msgstr "table_parent" -#: sql_help.c:539 sql_help.c:595 sql_help.c:661 sql_help.c:861 sql_help.c:999 -#: sql_help.c:1498 sql_help.c:2187 +#: sql_help.c:540 sql_help.c:596 sql_help.c:662 sql_help.c:862 sql_help.c:1001 +#: sql_help.c:1500 sql_help.c:2190 msgid "extension_name" msgstr "nom_extension" -#: sql_help.c:541 sql_help.c:1001 sql_help.c:2305 +#: sql_help.c:542 sql_help.c:1003 sql_help.c:2309 msgid "execution_cost" msgstr "coût_exécution" -#: sql_help.c:542 sql_help.c:1002 sql_help.c:2306 +#: sql_help.c:543 sql_help.c:1004 sql_help.c:2310 msgid "result_rows" msgstr "lignes_de_résultat" -#: sql_help.c:543 sql_help.c:2307 +#: sql_help.c:544 sql_help.c:2311 msgid "support_function" msgstr "fonction_support" -#: sql_help.c:564 sql_help.c:566 sql_help.c:925 sql_help.c:933 sql_help.c:937 -#: sql_help.c:940 sql_help.c:943 sql_help.c:1580 sql_help.c:1588 -#: sql_help.c:1592 sql_help.c:1595 sql_help.c:1598 sql_help.c:2604 -#: sql_help.c:2606 sql_help.c:2609 sql_help.c:2610 sql_help.c:3736 -#: sql_help.c:3740 sql_help.c:3743 sql_help.c:3745 sql_help.c:3747 -#: sql_help.c:3749 sql_help.c:3751 sql_help.c:3757 sql_help.c:3759 -#: sql_help.c:3761 sql_help.c:3763 sql_help.c:3765 sql_help.c:3767 -#: sql_help.c:3769 sql_help.c:3770 sql_help.c:4084 sql_help.c:4088 -#: sql_help.c:4091 sql_help.c:4093 sql_help.c:4095 sql_help.c:4097 -#: sql_help.c:4099 sql_help.c:4105 sql_help.c:4107 sql_help.c:4109 -#: sql_help.c:4111 sql_help.c:4113 sql_help.c:4115 sql_help.c:4117 -#: sql_help.c:4118 +#: sql_help.c:565 sql_help.c:567 sql_help.c:926 sql_help.c:934 sql_help.c:938 +#: sql_help.c:941 sql_help.c:944 sql_help.c:1582 sql_help.c:1590 +#: sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 sql_help.c:2608 +#: sql_help.c:2610 sql_help.c:2613 sql_help.c:2614 sql_help.c:3740 +#: sql_help.c:3744 sql_help.c:3747 sql_help.c:3749 sql_help.c:3751 +#: sql_help.c:3753 sql_help.c:3755 sql_help.c:3761 sql_help.c:3763 +#: sql_help.c:3765 sql_help.c:3767 sql_help.c:3769 sql_help.c:3771 +#: sql_help.c:3773 sql_help.c:3774 sql_help.c:4088 sql_help.c:4092 +#: sql_help.c:4095 sql_help.c:4097 sql_help.c:4099 sql_help.c:4101 +#: sql_help.c:4103 sql_help.c:4109 sql_help.c:4111 sql_help.c:4113 +#: sql_help.c:4115 sql_help.c:4117 sql_help.c:4119 sql_help.c:4121 +#: sql_help.c:4122 msgid "role_specification" msgstr "specification_role" -#: sql_help.c:565 sql_help.c:567 sql_help.c:1611 sql_help.c:2130 -#: sql_help.c:2612 sql_help.c:3119 sql_help.c:3570 sql_help.c:4427 +#: sql_help.c:566 sql_help.c:568 sql_help.c:1613 sql_help.c:2132 +#: sql_help.c:2616 sql_help.c:3123 sql_help.c:3574 sql_help.c:4431 msgid "user_name" msgstr "nom_utilisateur" -#: sql_help.c:568 sql_help.c:945 sql_help.c:1600 sql_help.c:2611 -#: sql_help.c:3771 sql_help.c:4119 +#: sql_help.c:569 sql_help.c:946 sql_help.c:1602 sql_help.c:2615 +#: sql_help.c:3775 sql_help.c:4123 msgid "where role_specification can be:" msgstr "où specification_role peut être :" -#: sql_help.c:570 +#: sql_help.c:571 msgid "group_name" msgstr "nom_groupe" -#: sql_help.c:591 sql_help.c:1376 sql_help.c:2136 sql_help.c:2376 -#: sql_help.c:2410 sql_help.c:2784 sql_help.c:2797 sql_help.c:2811 -#: sql_help.c:2852 sql_help.c:2876 sql_help.c:2888 sql_help.c:3764 -#: sql_help.c:4112 +#: sql_help.c:592 sql_help.c:1378 sql_help.c:2138 sql_help.c:2380 +#: sql_help.c:2414 sql_help.c:2788 sql_help.c:2801 sql_help.c:2815 +#: sql_help.c:2856 sql_help.c:2880 sql_help.c:2892 sql_help.c:3768 +#: sql_help.c:4116 msgid "tablespace_name" msgstr "nom_tablespace" -#: sql_help.c:593 sql_help.c:681 sql_help.c:1324 sql_help.c:1333 -#: sql_help.c:1371 sql_help.c:1722 +#: sql_help.c:594 sql_help.c:682 sql_help.c:1326 sql_help.c:1335 +#: sql_help.c:1373 sql_help.c:1724 msgid "index_name" msgstr "nom_index" -#: sql_help.c:597 sql_help.c:600 sql_help.c:682 sql_help.c:684 sql_help.c:1326 -#: sql_help.c:1328 sql_help.c:1374 sql_help.c:2374 sql_help.c:2408 -#: sql_help.c:2782 sql_help.c:2795 sql_help.c:2809 sql_help.c:2850 -#: sql_help.c:2874 +#: sql_help.c:598 sql_help.c:601 sql_help.c:683 sql_help.c:685 sql_help.c:1328 +#: sql_help.c:1330 sql_help.c:1376 sql_help.c:2378 sql_help.c:2412 +#: sql_help.c:2786 sql_help.c:2799 sql_help.c:2813 sql_help.c:2854 +#: sql_help.c:2878 msgid "storage_parameter" msgstr "paramètre_stockage" -#: sql_help.c:602 +#: sql_help.c:603 msgid "column_number" msgstr "numéro_colonne" -#: sql_help.c:626 sql_help.c:1805 sql_help.c:4202 +#: sql_help.c:627 sql_help.c:1807 sql_help.c:4206 msgid "large_object_oid" msgstr "oid_large_object" -#: sql_help.c:713 sql_help.c:2431 +#: sql_help.c:714 sql_help.c:2435 msgid "res_proc" msgstr "res_proc" -#: sql_help.c:714 sql_help.c:2432 +#: sql_help.c:715 sql_help.c:2436 msgid "join_proc" msgstr "join_proc" -#: sql_help.c:766 sql_help.c:778 sql_help.c:2449 +#: sql_help.c:767 sql_help.c:779 sql_help.c:2453 msgid "strategy_number" msgstr "numéro_de_stratégie" -#: sql_help.c:768 sql_help.c:769 sql_help.c:772 sql_help.c:773 sql_help.c:779 -#: sql_help.c:780 sql_help.c:782 sql_help.c:783 sql_help.c:2451 sql_help.c:2452 -#: sql_help.c:2455 sql_help.c:2456 +#: sql_help.c:769 sql_help.c:770 sql_help.c:773 sql_help.c:774 sql_help.c:780 +#: sql_help.c:781 sql_help.c:783 sql_help.c:784 sql_help.c:2455 sql_help.c:2456 +#: sql_help.c:2459 sql_help.c:2460 msgid "op_type" msgstr "type_op" -#: sql_help.c:770 sql_help.c:2453 +#: sql_help.c:771 sql_help.c:2457 msgid "sort_family_name" msgstr "nom_famille_tri" -#: sql_help.c:771 sql_help.c:781 sql_help.c:2454 +#: sql_help.c:772 sql_help.c:782 sql_help.c:2458 msgid "support_number" msgstr "numéro_de_support" -#: sql_help.c:775 sql_help.c:2071 sql_help.c:2458 sql_help.c:2965 -#: sql_help.c:2967 +#: sql_help.c:776 sql_help.c:2073 sql_help.c:2462 sql_help.c:2969 +#: sql_help.c:2971 msgid "argument_type" msgstr "type_argument" -#: sql_help.c:806 sql_help.c:809 sql_help.c:880 sql_help.c:882 sql_help.c:884 -#: sql_help.c:1015 sql_help.c:1054 sql_help.c:1494 sql_help.c:1497 -#: sql_help.c:1672 sql_help.c:1721 sql_help.c:1790 sql_help.c:1815 -#: sql_help.c:1828 sql_help.c:1843 sql_help.c:1900 sql_help.c:1906 -#: sql_help.c:2242 sql_help.c:2254 sql_help.c:2365 sql_help.c:2405 -#: sql_help.c:2482 sql_help.c:2525 sql_help.c:2581 sql_help.c:2632 -#: sql_help.c:2663 sql_help.c:2768 sql_help.c:2785 sql_help.c:2798 -#: sql_help.c:2871 sql_help.c:2991 sql_help.c:3168 sql_help.c:3391 -#: sql_help.c:3440 sql_help.c:3546 sql_help.c:3734 sql_help.c:3739 -#: sql_help.c:3785 sql_help.c:3817 sql_help.c:4082 sql_help.c:4087 -#: sql_help.c:4190 sql_help.c:4297 sql_help.c:4299 sql_help.c:4348 -#: sql_help.c:4387 sql_help.c:4536 sql_help.c:4538 sql_help.c:4587 -#: sql_help.c:4621 sql_help.c:4672 sql_help.c:4756 sql_help.c:4758 -#: sql_help.c:4807 +#: sql_help.c:807 sql_help.c:810 sql_help.c:881 sql_help.c:883 sql_help.c:885 +#: sql_help.c:1017 sql_help.c:1056 sql_help.c:1496 sql_help.c:1499 +#: sql_help.c:1674 sql_help.c:1723 sql_help.c:1792 sql_help.c:1817 +#: sql_help.c:1830 sql_help.c:1845 sql_help.c:1902 sql_help.c:1908 +#: sql_help.c:2245 sql_help.c:2257 sql_help.c:2369 sql_help.c:2409 +#: sql_help.c:2486 sql_help.c:2529 sql_help.c:2585 sql_help.c:2636 +#: sql_help.c:2667 sql_help.c:2772 sql_help.c:2789 sql_help.c:2802 +#: sql_help.c:2875 sql_help.c:2995 sql_help.c:3172 sql_help.c:3395 +#: sql_help.c:3444 sql_help.c:3550 sql_help.c:3738 sql_help.c:3743 +#: sql_help.c:3789 sql_help.c:3821 sql_help.c:4086 sql_help.c:4091 +#: sql_help.c:4194 sql_help.c:4301 sql_help.c:4303 sql_help.c:4352 +#: sql_help.c:4391 sql_help.c:4540 sql_help.c:4542 sql_help.c:4591 +#: sql_help.c:4625 sql_help.c:4676 sql_help.c:4760 sql_help.c:4762 +#: sql_help.c:4811 msgid "table_name" msgstr "nom_table" -#: sql_help.c:811 sql_help.c:2484 +#: sql_help.c:812 sql_help.c:2488 msgid "using_expression" msgstr "expression_using" -#: sql_help.c:812 sql_help.c:2485 +#: sql_help.c:813 sql_help.c:2489 msgid "check_expression" msgstr "expression_check" -#: sql_help.c:886 sql_help.c:2526 +#: sql_help.c:887 sql_help.c:2530 msgid "publication_parameter" msgstr "paramètre_publication" -#: sql_help.c:929 sql_help.c:1584 sql_help.c:2344 sql_help.c:2558 -#: sql_help.c:3102 +#: sql_help.c:930 sql_help.c:1586 sql_help.c:2348 sql_help.c:2562 +#: sql_help.c:3106 msgid "password" msgstr "mot_de_passe" -#: sql_help.c:930 sql_help.c:1585 sql_help.c:2345 sql_help.c:2559 -#: sql_help.c:3103 +#: sql_help.c:931 sql_help.c:1587 sql_help.c:2349 sql_help.c:2563 +#: sql_help.c:3107 msgid "timestamp" msgstr "horodatage" -#: sql_help.c:934 sql_help.c:938 sql_help.c:941 sql_help.c:944 sql_help.c:1589 -#: sql_help.c:1593 sql_help.c:1596 sql_help.c:1599 sql_help.c:3744 -#: sql_help.c:4092 +#: sql_help.c:935 sql_help.c:939 sql_help.c:942 sql_help.c:945 sql_help.c:1591 +#: sql_help.c:1595 sql_help.c:1598 sql_help.c:1601 sql_help.c:3748 +#: sql_help.c:4096 msgid "database_name" msgstr "nom_base_de_donnée" -#: sql_help.c:1048 sql_help.c:2627 +#: sql_help.c:1050 sql_help.c:2631 msgid "increment" msgstr "incrément" -#: sql_help.c:1049 sql_help.c:2628 +#: sql_help.c:1051 sql_help.c:2632 msgid "minvalue" msgstr "valeur_min" -#: sql_help.c:1050 sql_help.c:2629 +#: sql_help.c:1052 sql_help.c:2633 msgid "maxvalue" msgstr "valeur_max" -#: sql_help.c:1051 sql_help.c:2630 sql_help.c:4295 sql_help.c:4385 -#: sql_help.c:4534 sql_help.c:4689 sql_help.c:4754 +#: sql_help.c:1053 sql_help.c:2634 sql_help.c:4299 sql_help.c:4389 +#: sql_help.c:4538 sql_help.c:4693 sql_help.c:4758 msgid "start" msgstr "début" -#: sql_help.c:1052 sql_help.c:1301 +#: sql_help.c:1054 sql_help.c:1303 msgid "restart" msgstr "nouveau_début" -#: sql_help.c:1053 sql_help.c:2631 +#: sql_help.c:1055 sql_help.c:2635 msgid "cache" msgstr "cache" -#: sql_help.c:1097 +#: sql_help.c:1099 msgid "new_target" msgstr "nouvelle_cible" -#: sql_help.c:1113 sql_help.c:2675 +#: sql_help.c:1115 sql_help.c:2679 msgid "conninfo" msgstr "conninfo" -#: sql_help.c:1115 sql_help.c:2676 +#: sql_help.c:1117 sql_help.c:2680 msgid "publication_name" msgstr "nom_publication" -#: sql_help.c:1116 +#: sql_help.c:1118 msgid "set_publication_option" msgstr "option_ensemble_publication" -#: sql_help.c:1119 +#: sql_help.c:1121 msgid "refresh_option" msgstr "option_rafraichissement" -#: sql_help.c:1124 sql_help.c:2677 +#: sql_help.c:1126 sql_help.c:2681 msgid "subscription_parameter" msgstr "paramètre_souscription" -#: sql_help.c:1278 sql_help.c:1281 +#: sql_help.c:1280 sql_help.c:1283 msgid "partition_name" msgstr "nom_partition" -#: sql_help.c:1279 sql_help.c:2259 sql_help.c:2803 +#: sql_help.c:1281 sql_help.c:2262 sql_help.c:2807 msgid "partition_bound_spec" msgstr "spec_limite_partition" -#: sql_help.c:1298 sql_help.c:1345 sql_help.c:2817 +#: sql_help.c:1300 sql_help.c:1347 sql_help.c:2821 msgid "sequence_options" msgstr "options_séquence" -#: sql_help.c:1300 +#: sql_help.c:1302 msgid "sequence_option" msgstr "option_séquence" -#: sql_help.c:1312 +#: sql_help.c:1314 msgid "table_constraint_using_index" msgstr "contrainte_table_utilisant_index" -#: sql_help.c:1320 sql_help.c:1321 sql_help.c:1322 sql_help.c:1323 +#: sql_help.c:1322 sql_help.c:1323 sql_help.c:1324 sql_help.c:1325 msgid "rewrite_rule_name" msgstr "nom_règle_réécriture" -#: sql_help.c:1334 sql_help.c:2842 +#: sql_help.c:1336 sql_help.c:2846 msgid "and partition_bound_spec is:" msgstr "et partition_bound_spec est :" -#: sql_help.c:1335 sql_help.c:1336 sql_help.c:1337 sql_help.c:2843 -#: sql_help.c:2844 sql_help.c:2845 +#: sql_help.c:1337 sql_help.c:1338 sql_help.c:1339 sql_help.c:2847 +#: sql_help.c:2848 sql_help.c:2849 msgid "partition_bound_expr" msgstr "expr_limite_partition" -#: sql_help.c:1338 sql_help.c:1339 sql_help.c:2846 sql_help.c:2847 +#: sql_help.c:1340 sql_help.c:1341 sql_help.c:2850 sql_help.c:2851 msgid "numeric_literal" msgstr "numeric_literal" -#: sql_help.c:1340 +#: sql_help.c:1342 msgid "and column_constraint is:" msgstr "et contrainte_colonne est :" -#: sql_help.c:1343 sql_help.c:2266 sql_help.c:2299 sql_help.c:2505 -#: sql_help.c:2815 +#: sql_help.c:1345 sql_help.c:2269 sql_help.c:2303 sql_help.c:2509 +#: sql_help.c:2819 msgid "default_expr" msgstr "expression_par_défaut" -#: sql_help.c:1344 sql_help.c:2267 sql_help.c:2816 +#: sql_help.c:1346 sql_help.c:2270 sql_help.c:2820 msgid "generation_expr" msgstr "expression_génération" -#: sql_help.c:1346 sql_help.c:1347 sql_help.c:1356 sql_help.c:1358 -#: sql_help.c:1362 sql_help.c:2818 sql_help.c:2819 sql_help.c:2828 -#: sql_help.c:2830 sql_help.c:2834 +#: sql_help.c:1348 sql_help.c:1349 sql_help.c:1358 sql_help.c:1360 +#: sql_help.c:1364 sql_help.c:2822 sql_help.c:2823 sql_help.c:2832 +#: sql_help.c:2834 sql_help.c:2838 msgid "index_parameters" msgstr "paramètres_index" -#: sql_help.c:1348 sql_help.c:1365 sql_help.c:2820 sql_help.c:2837 +#: sql_help.c:1350 sql_help.c:1367 sql_help.c:2824 sql_help.c:2841 msgid "reftable" msgstr "table_référence" -#: sql_help.c:1349 sql_help.c:1366 sql_help.c:2821 sql_help.c:2838 +#: sql_help.c:1351 sql_help.c:1368 sql_help.c:2825 sql_help.c:2842 msgid "refcolumn" msgstr "colonne_référence" -#: sql_help.c:1350 sql_help.c:1351 sql_help.c:1367 sql_help.c:1368 -#: sql_help.c:2822 sql_help.c:2823 sql_help.c:2839 sql_help.c:2840 +#: sql_help.c:1352 sql_help.c:1353 sql_help.c:1369 sql_help.c:1370 +#: sql_help.c:2826 sql_help.c:2827 sql_help.c:2843 sql_help.c:2844 msgid "referential_action" msgstr "action" -#: sql_help.c:1352 sql_help.c:2268 sql_help.c:2824 +#: sql_help.c:1354 sql_help.c:2271 sql_help.c:2828 msgid "and table_constraint is:" msgstr "et contrainte_table est :" -#: sql_help.c:1360 sql_help.c:2832 +#: sql_help.c:1362 sql_help.c:2836 msgid "exclude_element" msgstr "élément_exclusion" -#: sql_help.c:1361 sql_help.c:2833 sql_help.c:4293 sql_help.c:4383 -#: sql_help.c:4532 sql_help.c:4687 sql_help.c:4752 +#: sql_help.c:1363 sql_help.c:2837 sql_help.c:4297 sql_help.c:4387 +#: sql_help.c:4536 sql_help.c:4691 sql_help.c:4756 msgid "operator" msgstr "opérateur" -#: sql_help.c:1363 sql_help.c:2377 sql_help.c:2835 +#: sql_help.c:1365 sql_help.c:2381 sql_help.c:2839 msgid "predicate" msgstr "prédicat" -#: sql_help.c:1369 +#: sql_help.c:1371 msgid "and table_constraint_using_index is:" msgstr "et contrainte_table_utilisant_index est :" -#: sql_help.c:1372 sql_help.c:2848 +#: sql_help.c:1374 sql_help.c:2852 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "dans les contraintes UNIQUE, PRIMARY KEY et EXCLUDE, les paramètres_index sont :" -#: sql_help.c:1377 sql_help.c:2853 +#: sql_help.c:1379 sql_help.c:2857 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "élément_exclusion dans une contrainte EXCLUDE est :" -#: sql_help.c:1380 sql_help.c:2370 sql_help.c:2780 sql_help.c:2793 -#: sql_help.c:2807 sql_help.c:2856 sql_help.c:3830 +#: sql_help.c:1382 sql_help.c:2374 sql_help.c:2784 sql_help.c:2797 +#: sql_help.c:2811 sql_help.c:2860 sql_help.c:3834 msgid "opclass" msgstr "classe_d_opérateur" -#: sql_help.c:1396 sql_help.c:1399 sql_help.c:2891 +#: sql_help.c:1398 sql_help.c:1401 sql_help.c:2895 msgid "tablespace_option" msgstr "option_tablespace" -#: sql_help.c:1420 sql_help.c:1423 sql_help.c:1429 sql_help.c:1433 +#: sql_help.c:1422 sql_help.c:1425 sql_help.c:1431 sql_help.c:1435 msgid "token_type" msgstr "type_jeton" -#: sql_help.c:1421 sql_help.c:1424 +#: sql_help.c:1423 sql_help.c:1426 msgid "dictionary_name" msgstr "nom_dictionnaire" -#: sql_help.c:1426 sql_help.c:1430 +#: sql_help.c:1428 sql_help.c:1432 msgid "old_dictionary" msgstr "ancien_dictionnaire" -#: sql_help.c:1427 sql_help.c:1431 +#: sql_help.c:1429 sql_help.c:1433 msgid "new_dictionary" msgstr "nouveau_dictionnaire" -#: sql_help.c:1526 sql_help.c:1540 sql_help.c:1543 sql_help.c:1544 -#: sql_help.c:3042 +#: sql_help.c:1528 sql_help.c:1542 sql_help.c:1545 sql_help.c:1546 +#: sql_help.c:3046 msgid "attribute_name" msgstr "nom_attribut" -#: sql_help.c:1527 +#: sql_help.c:1529 msgid "new_attribute_name" msgstr "nouveau_nom_attribut" -#: sql_help.c:1531 sql_help.c:1535 +#: sql_help.c:1533 sql_help.c:1537 msgid "new_enum_value" msgstr "nouvelle_valeur_enum" -#: sql_help.c:1532 +#: sql_help.c:1534 msgid "neighbor_enum_value" msgstr "valeur_enum_voisine" -#: sql_help.c:1534 +#: sql_help.c:1536 msgid "existing_enum_value" msgstr "valeur_enum_existante" -#: sql_help.c:1537 +#: sql_help.c:1539 msgid "property" msgstr "propriété" -#: sql_help.c:1612 sql_help.c:2251 sql_help.c:2260 sql_help.c:2643 -#: sql_help.c:3120 sql_help.c:3571 sql_help.c:3750 sql_help.c:3786 -#: sql_help.c:4098 +#: sql_help.c:1614 sql_help.c:2254 sql_help.c:2263 sql_help.c:2647 +#: sql_help.c:3124 sql_help.c:3575 sql_help.c:3754 sql_help.c:3790 +#: sql_help.c:4102 msgid "server_name" msgstr "nom_serveur" -#: sql_help.c:1644 sql_help.c:1647 sql_help.c:3135 +#: sql_help.c:1646 sql_help.c:1649 sql_help.c:3139 msgid "view_option_name" msgstr "nom_option_vue" -#: sql_help.c:1645 sql_help.c:3136 +#: sql_help.c:1647 sql_help.c:3140 msgid "view_option_value" msgstr "valeur_option_vue" -#: sql_help.c:1666 sql_help.c:1667 sql_help.c:4659 sql_help.c:4660 +#: sql_help.c:1668 sql_help.c:1669 sql_help.c:4663 sql_help.c:4664 msgid "table_and_columns" msgstr "table_et_colonnes" -#: sql_help.c:1668 sql_help.c:1912 sql_help.c:3619 sql_help.c:3963 -#: sql_help.c:4661 +#: sql_help.c:1670 sql_help.c:1914 sql_help.c:3623 sql_help.c:3967 +#: sql_help.c:4665 msgid "where option can be one of:" msgstr "où option fait partie de :" -#: sql_help.c:1669 sql_help.c:1670 sql_help.c:1914 sql_help.c:1917 -#: sql_help.c:2096 sql_help.c:3620 sql_help.c:3621 sql_help.c:3622 -#: sql_help.c:3623 sql_help.c:3624 sql_help.c:3625 sql_help.c:3626 -#: sql_help.c:3627 sql_help.c:4662 sql_help.c:4663 sql_help.c:4664 -#: sql_help.c:4665 sql_help.c:4666 sql_help.c:4667 sql_help.c:4668 -#: sql_help.c:4669 +#: sql_help.c:1671 sql_help.c:1672 sql_help.c:1916 sql_help.c:1919 +#: sql_help.c:2098 sql_help.c:3624 sql_help.c:3625 sql_help.c:3626 +#: sql_help.c:3627 sql_help.c:3628 sql_help.c:3629 sql_help.c:3630 +#: sql_help.c:3631 sql_help.c:4666 sql_help.c:4667 sql_help.c:4668 +#: sql_help.c:4669 sql_help.c:4670 sql_help.c:4671 sql_help.c:4672 +#: sql_help.c:4673 msgid "boolean" msgstr "boolean" -#: sql_help.c:1671 sql_help.c:4671 +#: sql_help.c:1673 sql_help.c:4675 msgid "and table_and_columns is:" msgstr "et table_et_colonnes est :" -#: sql_help.c:1687 sql_help.c:4443 sql_help.c:4445 sql_help.c:4469 +#: sql_help.c:1689 sql_help.c:4447 sql_help.c:4449 sql_help.c:4473 msgid "transaction_mode" msgstr "mode_transaction" -#: sql_help.c:1688 sql_help.c:4446 sql_help.c:4470 +#: sql_help.c:1690 sql_help.c:4450 sql_help.c:4474 msgid "where transaction_mode is one of:" msgstr "où mode_transaction fait partie de :" -#: sql_help.c:1697 sql_help.c:4303 sql_help.c:4312 sql_help.c:4316 -#: sql_help.c:4320 sql_help.c:4323 sql_help.c:4542 sql_help.c:4551 -#: sql_help.c:4555 sql_help.c:4559 sql_help.c:4562 sql_help.c:4762 -#: sql_help.c:4771 sql_help.c:4775 sql_help.c:4779 sql_help.c:4782 +#: sql_help.c:1699 sql_help.c:4307 sql_help.c:4316 sql_help.c:4320 +#: sql_help.c:4324 sql_help.c:4327 sql_help.c:4546 sql_help.c:4555 +#: sql_help.c:4559 sql_help.c:4563 sql_help.c:4566 sql_help.c:4766 +#: sql_help.c:4775 sql_help.c:4779 sql_help.c:4783 sql_help.c:4786 msgid "argument" msgstr "argument" -#: sql_help.c:1787 +#: sql_help.c:1789 msgid "relation_name" msgstr "nom_relation" -#: sql_help.c:1792 sql_help.c:3746 sql_help.c:4094 +#: sql_help.c:1794 sql_help.c:3750 sql_help.c:4098 msgid "domain_name" msgstr "nom_domaine" -#: sql_help.c:1814 +#: sql_help.c:1816 msgid "policy_name" msgstr "nom_politique" -#: sql_help.c:1827 +#: sql_help.c:1829 msgid "rule_name" msgstr "nom_règle" -#: sql_help.c:1846 +#: sql_help.c:1848 msgid "text" msgstr "texte" -#: sql_help.c:1871 sql_help.c:3930 sql_help.c:4135 +#: sql_help.c:1873 sql_help.c:3934 sql_help.c:4139 msgid "transaction_id" msgstr "id_transaction" -#: sql_help.c:1902 sql_help.c:1909 sql_help.c:3856 +#: sql_help.c:1904 sql_help.c:1911 sql_help.c:3860 msgid "filename" msgstr "nom_fichier" -#: sql_help.c:1903 sql_help.c:1910 sql_help.c:2583 sql_help.c:2584 -#: sql_help.c:2585 +#: sql_help.c:1905 sql_help.c:1912 sql_help.c:2587 sql_help.c:2588 +#: sql_help.c:2589 msgid "command" msgstr "commande" -#: sql_help.c:1905 sql_help.c:2582 sql_help.c:2994 sql_help.c:3171 -#: sql_help.c:3840 sql_help.c:4286 sql_help.c:4288 sql_help.c:4376 -#: sql_help.c:4378 sql_help.c:4525 sql_help.c:4527 sql_help.c:4630 -#: sql_help.c:4745 sql_help.c:4747 +#: sql_help.c:1907 sql_help.c:2586 sql_help.c:2998 sql_help.c:3175 +#: sql_help.c:3844 sql_help.c:4290 sql_help.c:4292 sql_help.c:4380 +#: sql_help.c:4382 sql_help.c:4529 sql_help.c:4531 sql_help.c:4634 +#: sql_help.c:4749 sql_help.c:4751 msgid "condition" msgstr "condition" -#: sql_help.c:1908 sql_help.c:2411 sql_help.c:2877 sql_help.c:3137 -#: sql_help.c:3155 sql_help.c:3821 +#: sql_help.c:1910 sql_help.c:2415 sql_help.c:2881 sql_help.c:3141 +#: sql_help.c:3159 sql_help.c:3825 msgid "query" msgstr "requête" -#: sql_help.c:1913 +#: sql_help.c:1915 msgid "format_name" msgstr "nom_format" -#: sql_help.c:1915 +#: sql_help.c:1917 msgid "delimiter_character" msgstr "caractère_délimiteur" -#: sql_help.c:1916 +#: sql_help.c:1918 msgid "null_string" msgstr "chaîne_null" -#: sql_help.c:1918 +#: sql_help.c:1920 msgid "quote_character" msgstr "caractère_guillemet" -#: sql_help.c:1919 +#: sql_help.c:1921 msgid "escape_character" msgstr "chaîne_d_échappement" -#: sql_help.c:1923 +#: sql_help.c:1925 msgid "encoding_name" msgstr "nom_encodage" -#: sql_help.c:1934 +#: sql_help.c:1936 msgid "access_method_type" msgstr "access_method_type" -#: sql_help.c:2005 sql_help.c:2024 sql_help.c:2027 +#: sql_help.c:2007 sql_help.c:2026 sql_help.c:2029 msgid "arg_data_type" msgstr "type_données_arg" -#: sql_help.c:2006 sql_help.c:2028 sql_help.c:2036 +#: sql_help.c:2008 sql_help.c:2030 sql_help.c:2038 msgid "sfunc" msgstr "sfunc" -#: sql_help.c:2007 sql_help.c:2029 sql_help.c:2037 +#: sql_help.c:2009 sql_help.c:2031 sql_help.c:2039 msgid "state_data_type" msgstr "type_de_données_statut" -#: sql_help.c:2008 sql_help.c:2030 sql_help.c:2038 +#: sql_help.c:2010 sql_help.c:2032 sql_help.c:2040 msgid "state_data_size" msgstr "taille_de_données_statut" -#: sql_help.c:2009 sql_help.c:2031 sql_help.c:2039 +#: sql_help.c:2011 sql_help.c:2033 sql_help.c:2041 msgid "ffunc" msgstr "ffunc" -#: sql_help.c:2010 sql_help.c:2040 +#: sql_help.c:2012 sql_help.c:2042 msgid "combinefunc" msgstr "combinefunc" -#: sql_help.c:2011 sql_help.c:2041 +#: sql_help.c:2013 sql_help.c:2043 msgid "serialfunc" msgstr "serialfunc" -#: sql_help.c:2012 sql_help.c:2042 +#: sql_help.c:2014 sql_help.c:2044 msgid "deserialfunc" msgstr "deserialfunc" -#: sql_help.c:2013 sql_help.c:2032 sql_help.c:2043 +#: sql_help.c:2015 sql_help.c:2034 sql_help.c:2045 msgid "initial_condition" msgstr "condition_initiale" -#: sql_help.c:2014 sql_help.c:2044 +#: sql_help.c:2016 sql_help.c:2046 msgid "msfunc" msgstr "msfunc" -#: sql_help.c:2015 sql_help.c:2045 +#: sql_help.c:2017 sql_help.c:2047 msgid "minvfunc" msgstr "minvfunc" -#: sql_help.c:2016 sql_help.c:2046 +#: sql_help.c:2018 sql_help.c:2048 msgid "mstate_data_type" msgstr "m_type_de_données_statut" -#: sql_help.c:2017 sql_help.c:2047 +#: sql_help.c:2019 sql_help.c:2049 msgid "mstate_data_size" msgstr "m_taille_de_données_statut" -#: sql_help.c:2018 sql_help.c:2048 +#: sql_help.c:2020 sql_help.c:2050 msgid "mffunc" msgstr "mffunc" -#: sql_help.c:2019 sql_help.c:2049 +#: sql_help.c:2021 sql_help.c:2051 msgid "minitial_condition" msgstr "m_condition_initiale" -#: sql_help.c:2020 sql_help.c:2050 +#: sql_help.c:2022 sql_help.c:2052 msgid "sort_operator" msgstr "opérateur_de_tri" -#: sql_help.c:2033 +#: sql_help.c:2035 msgid "or the old syntax" msgstr "ou l'ancienne syntaxe" -#: sql_help.c:2035 +#: sql_help.c:2037 msgid "base_type" msgstr "type_base" -#: sql_help.c:2092 sql_help.c:2133 +#: sql_help.c:2094 sql_help.c:2135 msgid "locale" msgstr "locale" -#: sql_help.c:2093 sql_help.c:2134 +#: sql_help.c:2095 sql_help.c:2136 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2094 sql_help.c:2135 +#: sql_help.c:2096 sql_help.c:2137 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2095 sql_help.c:4188 +#: sql_help.c:2097 sql_help.c:4192 msgid "provider" msgstr "fournisseur" -#: sql_help.c:2097 sql_help.c:2189 +#: sql_help.c:2099 sql_help.c:2192 msgid "version" msgstr "version" -#: sql_help.c:2099 +#: sql_help.c:2101 msgid "existing_collation" msgstr "collationnement_existant" -#: sql_help.c:2109 +#: sql_help.c:2111 msgid "source_encoding" msgstr "encodage_source" -#: sql_help.c:2110 +#: sql_help.c:2112 msgid "dest_encoding" msgstr "encodage_destination" -#: sql_help.c:2131 sql_help.c:2917 +#: sql_help.c:2133 sql_help.c:2921 msgid "template" msgstr "modèle" -#: sql_help.c:2132 +#: sql_help.c:2134 msgid "encoding" msgstr "encodage" -#: sql_help.c:2159 +#: sql_help.c:2161 msgid "constraint" msgstr "contrainte" -#: sql_help.c:2160 +#: sql_help.c:2162 msgid "where constraint is:" msgstr "où la contrainte est :" -#: sql_help.c:2174 sql_help.c:2580 sql_help.c:2990 +#: sql_help.c:2176 sql_help.c:2584 sql_help.c:2994 msgid "event" msgstr "événement" -#: sql_help.c:2175 +#: sql_help.c:2177 msgid "filter_variable" msgstr "filter_variable" -#: sql_help.c:2263 sql_help.c:2812 +#: sql_help.c:2178 +msgid "filter_value" +msgstr "filtre_valeur" + +#: sql_help.c:2266 sql_help.c:2816 msgid "where column_constraint is:" msgstr "où contrainte_colonne est :" -#: sql_help.c:2300 +#: sql_help.c:2304 msgid "rettype" msgstr "type_en_retour" -#: sql_help.c:2302 +#: sql_help.c:2306 msgid "column_type" msgstr "type_colonne" -#: sql_help.c:2311 sql_help.c:2511 +#: sql_help.c:2315 sql_help.c:2515 msgid "definition" msgstr "définition" -#: sql_help.c:2312 sql_help.c:2512 +#: sql_help.c:2316 sql_help.c:2516 msgid "obj_file" msgstr "fichier_objet" -#: sql_help.c:2313 sql_help.c:2513 +#: sql_help.c:2317 sql_help.c:2517 msgid "link_symbol" msgstr "symbole_link" -#: sql_help.c:2351 sql_help.c:2565 sql_help.c:3109 +#: sql_help.c:2355 sql_help.c:2569 sql_help.c:3113 msgid "uid" msgstr "uid" -#: sql_help.c:2366 sql_help.c:2407 sql_help.c:2781 sql_help.c:2794 -#: sql_help.c:2808 sql_help.c:2873 +#: sql_help.c:2370 sql_help.c:2411 sql_help.c:2785 sql_help.c:2798 +#: sql_help.c:2812 sql_help.c:2877 msgid "method" msgstr "méthode" -#: sql_help.c:2371 +#: sql_help.c:2375 msgid "opclass_parameter" msgstr "paramètre_opclass" -#: sql_help.c:2388 +#: sql_help.c:2392 msgid "call_handler" msgstr "gestionnaire_d_appel" -#: sql_help.c:2389 +#: sql_help.c:2393 msgid "inline_handler" msgstr "gestionnaire_en_ligne" -#: sql_help.c:2390 +#: sql_help.c:2394 msgid "valfunction" msgstr "fonction_val" -#: sql_help.c:2429 +#: sql_help.c:2433 msgid "com_op" msgstr "com_op" -#: sql_help.c:2430 +#: sql_help.c:2434 msgid "neg_op" msgstr "neg_op" -#: sql_help.c:2448 +#: sql_help.c:2452 msgid "family_name" msgstr "nom_famille" -#: sql_help.c:2459 +#: sql_help.c:2463 msgid "storage_type" msgstr "type_stockage" -#: sql_help.c:2586 sql_help.c:2997 +#: sql_help.c:2590 sql_help.c:3001 msgid "where event can be one of:" msgstr "où événement fait partie de :" -#: sql_help.c:2605 sql_help.c:2607 +#: sql_help.c:2609 sql_help.c:2611 msgid "schema_element" msgstr "élément_schéma" -#: sql_help.c:2644 +#: sql_help.c:2648 msgid "server_type" msgstr "type_serveur" -#: sql_help.c:2645 +#: sql_help.c:2649 msgid "server_version" msgstr "version_serveur" -#: sql_help.c:2646 sql_help.c:3748 sql_help.c:4096 +#: sql_help.c:2650 sql_help.c:3752 sql_help.c:4100 msgid "fdw_name" msgstr "nom_fdw" -#: sql_help.c:2659 +#: sql_help.c:2663 msgid "statistics_name" msgstr "nom_statistique" -#: sql_help.c:2660 +#: sql_help.c:2664 msgid "statistics_kind" msgstr "statistics_kind" -#: sql_help.c:2674 +#: sql_help.c:2678 msgid "subscription_name" msgstr "nom_souscription" -#: sql_help.c:2774 +#: sql_help.c:2778 msgid "source_table" msgstr "table_source" -#: sql_help.c:2775 +#: sql_help.c:2779 msgid "like_option" msgstr "option_like" -#: sql_help.c:2841 +#: sql_help.c:2845 msgid "and like_option is:" msgstr "et option_like est :" -#: sql_help.c:2890 +#: sql_help.c:2894 msgid "directory" msgstr "répertoire" -#: sql_help.c:2904 +#: sql_help.c:2908 msgid "parser_name" msgstr "nom_analyseur" -#: sql_help.c:2905 +#: sql_help.c:2909 msgid "source_config" msgstr "configuration_source" -#: sql_help.c:2934 +#: sql_help.c:2938 msgid "start_function" msgstr "fonction_start" -#: sql_help.c:2935 +#: sql_help.c:2939 msgid "gettoken_function" msgstr "fonction_gettoken" -#: sql_help.c:2936 +#: sql_help.c:2940 msgid "end_function" msgstr "fonction_end" -#: sql_help.c:2937 +#: sql_help.c:2941 msgid "lextypes_function" msgstr "fonction_lextypes" -#: sql_help.c:2938 +#: sql_help.c:2942 msgid "headline_function" msgstr "fonction_headline" -#: sql_help.c:2950 +#: sql_help.c:2954 msgid "init_function" msgstr "fonction_init" -#: sql_help.c:2951 +#: sql_help.c:2955 msgid "lexize_function" msgstr "fonction_lexize" -#: sql_help.c:2964 +#: sql_help.c:2968 msgid "from_sql_function_name" msgstr "nom_fonction_from_sql" -#: sql_help.c:2966 +#: sql_help.c:2970 msgid "to_sql_function_name" msgstr "nom_fonction_to_sql" -#: sql_help.c:2992 +#: sql_help.c:2996 msgid "referenced_table_name" msgstr "nom_table_référencée" -#: sql_help.c:2993 +#: sql_help.c:2997 msgid "transition_relation_name" msgstr "nom_relation_transition" -#: sql_help.c:2996 +#: sql_help.c:3000 msgid "arguments" msgstr "arguments" -#: sql_help.c:3046 sql_help.c:4221 +#: sql_help.c:3050 sql_help.c:4225 msgid "label" msgstr "label" -#: sql_help.c:3048 +#: sql_help.c:3052 msgid "subtype" msgstr "sous_type" -#: sql_help.c:3049 +#: sql_help.c:3053 msgid "subtype_operator_class" msgstr "classe_opérateur_sous_type" -#: sql_help.c:3051 +#: sql_help.c:3055 msgid "canonical_function" msgstr "fonction_canonique" -#: sql_help.c:3052 +#: sql_help.c:3056 msgid "subtype_diff_function" msgstr "fonction_diff_sous_type" -#: sql_help.c:3054 +#: sql_help.c:3058 msgid "input_function" msgstr "fonction_en_sortie" -#: sql_help.c:3055 +#: sql_help.c:3059 msgid "output_function" msgstr "fonction_en_sortie" -#: sql_help.c:3056 +#: sql_help.c:3060 msgid "receive_function" msgstr "fonction_receive" -#: sql_help.c:3057 +#: sql_help.c:3061 msgid "send_function" msgstr "fonction_send" -#: sql_help.c:3058 +#: sql_help.c:3062 msgid "type_modifier_input_function" msgstr "fonction_en_entrée_modificateur_type" -#: sql_help.c:3059 +#: sql_help.c:3063 msgid "type_modifier_output_function" msgstr "fonction_en_sortie_modificateur_type" -#: sql_help.c:3060 +#: sql_help.c:3064 msgid "analyze_function" msgstr "fonction_analyze" -#: sql_help.c:3061 +#: sql_help.c:3065 msgid "internallength" msgstr "longueur_interne" -#: sql_help.c:3062 +#: sql_help.c:3066 msgid "alignment" msgstr "alignement" -#: sql_help.c:3063 +#: sql_help.c:3067 msgid "storage" msgstr "stockage" -#: sql_help.c:3064 +#: sql_help.c:3068 msgid "like_type" msgstr "type_like" -#: sql_help.c:3065 +#: sql_help.c:3069 msgid "category" msgstr "catégorie" -#: sql_help.c:3066 +#: sql_help.c:3070 msgid "preferred" msgstr "préféré" -#: sql_help.c:3067 +#: sql_help.c:3071 msgid "default" msgstr "par défaut" -#: sql_help.c:3068 +#: sql_help.c:3072 msgid "element" msgstr "élément" -#: sql_help.c:3069 +#: sql_help.c:3073 msgid "delimiter" msgstr "délimiteur" -#: sql_help.c:3070 +#: sql_help.c:3074 msgid "collatable" msgstr "collationnable" -#: sql_help.c:3167 sql_help.c:3816 sql_help.c:4281 sql_help.c:4370 -#: sql_help.c:4520 sql_help.c:4620 sql_help.c:4740 +#: sql_help.c:3171 sql_help.c:3820 sql_help.c:4285 sql_help.c:4374 +#: sql_help.c:4524 sql_help.c:4624 sql_help.c:4744 msgid "with_query" msgstr "requête_with" -#: sql_help.c:3169 sql_help.c:3818 sql_help.c:4300 sql_help.c:4306 -#: sql_help.c:4309 sql_help.c:4313 sql_help.c:4317 sql_help.c:4325 -#: sql_help.c:4539 sql_help.c:4545 sql_help.c:4548 sql_help.c:4552 -#: sql_help.c:4556 sql_help.c:4564 sql_help.c:4622 sql_help.c:4759 -#: sql_help.c:4765 sql_help.c:4768 sql_help.c:4772 sql_help.c:4776 -#: sql_help.c:4784 +#: sql_help.c:3173 sql_help.c:3822 sql_help.c:4304 sql_help.c:4310 +#: sql_help.c:4313 sql_help.c:4317 sql_help.c:4321 sql_help.c:4329 +#: sql_help.c:4543 sql_help.c:4549 sql_help.c:4552 sql_help.c:4556 +#: sql_help.c:4560 sql_help.c:4568 sql_help.c:4626 sql_help.c:4763 +#: sql_help.c:4769 sql_help.c:4772 sql_help.c:4776 sql_help.c:4780 +#: sql_help.c:4788 msgid "alias" msgstr "alias" -#: sql_help.c:3170 sql_help.c:4285 sql_help.c:4327 sql_help.c:4329 -#: sql_help.c:4375 sql_help.c:4524 sql_help.c:4566 sql_help.c:4568 -#: sql_help.c:4629 sql_help.c:4744 sql_help.c:4786 sql_help.c:4788 +#: sql_help.c:3174 sql_help.c:4289 sql_help.c:4331 sql_help.c:4333 +#: sql_help.c:4379 sql_help.c:4528 sql_help.c:4570 sql_help.c:4572 +#: sql_help.c:4633 sql_help.c:4748 sql_help.c:4790 sql_help.c:4792 msgid "from_item" msgstr "élément_from" -#: sql_help.c:3172 sql_help.c:3653 sql_help.c:3897 sql_help.c:4631 +#: sql_help.c:3176 sql_help.c:3657 sql_help.c:3901 sql_help.c:4635 msgid "cursor_name" msgstr "nom_curseur" -#: sql_help.c:3173 sql_help.c:3824 sql_help.c:4632 +#: sql_help.c:3177 sql_help.c:3828 sql_help.c:4636 msgid "output_expression" msgstr "expression_en_sortie" -#: sql_help.c:3174 sql_help.c:3825 sql_help.c:4284 sql_help.c:4373 -#: sql_help.c:4523 sql_help.c:4633 sql_help.c:4743 +#: sql_help.c:3178 sql_help.c:3829 sql_help.c:4288 sql_help.c:4377 +#: sql_help.c:4527 sql_help.c:4637 sql_help.c:4747 msgid "output_name" msgstr "nom_en_sortie" -#: sql_help.c:3190 +#: sql_help.c:3194 msgid "code" msgstr "code" -#: sql_help.c:3595 +#: sql_help.c:3599 msgid "parameter" msgstr "paramètre" -#: sql_help.c:3617 sql_help.c:3618 sql_help.c:3922 +#: sql_help.c:3621 sql_help.c:3622 sql_help.c:3926 msgid "statement" msgstr "instruction" -#: sql_help.c:3652 sql_help.c:3896 +#: sql_help.c:3656 sql_help.c:3900 msgid "direction" msgstr "direction" -#: sql_help.c:3654 sql_help.c:3898 +#: sql_help.c:3658 sql_help.c:3902 msgid "where direction can be empty or one of:" msgstr "où direction peut être vide ou faire partie de :" -#: sql_help.c:3655 sql_help.c:3656 sql_help.c:3657 sql_help.c:3658 -#: sql_help.c:3659 sql_help.c:3899 sql_help.c:3900 sql_help.c:3901 -#: sql_help.c:3902 sql_help.c:3903 sql_help.c:4294 sql_help.c:4296 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4533 sql_help.c:4535 -#: sql_help.c:4688 sql_help.c:4690 sql_help.c:4753 sql_help.c:4755 +#: sql_help.c:3659 sql_help.c:3660 sql_help.c:3661 sql_help.c:3662 +#: sql_help.c:3663 sql_help.c:3903 sql_help.c:3904 sql_help.c:3905 +#: sql_help.c:3906 sql_help.c:3907 sql_help.c:4298 sql_help.c:4300 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4537 sql_help.c:4539 +#: sql_help.c:4692 sql_help.c:4694 sql_help.c:4757 sql_help.c:4759 msgid "count" msgstr "nombre" -#: sql_help.c:3741 sql_help.c:4089 +#: sql_help.c:3745 sql_help.c:4093 msgid "sequence_name" msgstr "nom_séquence" -#: sql_help.c:3754 sql_help.c:4102 +#: sql_help.c:3758 sql_help.c:4106 msgid "arg_name" msgstr "nom_argument" -#: sql_help.c:3755 sql_help.c:4103 +#: sql_help.c:3759 sql_help.c:4107 msgid "arg_type" msgstr "type_arg" -#: sql_help.c:3760 sql_help.c:4108 +#: sql_help.c:3764 sql_help.c:4112 msgid "loid" msgstr "loid" -#: sql_help.c:3784 +#: sql_help.c:3788 msgid "remote_schema" msgstr "schema_distant" -#: sql_help.c:3787 +#: sql_help.c:3791 msgid "local_schema" msgstr "schéma_local" -#: sql_help.c:3822 +#: sql_help.c:3826 msgid "conflict_target" msgstr "cible_conflit" -#: sql_help.c:3823 +#: sql_help.c:3827 msgid "conflict_action" msgstr "action_conflit" -#: sql_help.c:3826 +#: sql_help.c:3830 msgid "where conflict_target can be one of:" msgstr "où cible_conflit fait partie de :" -#: sql_help.c:3827 +#: sql_help.c:3831 msgid "index_column_name" msgstr "index_nom_colonne" -#: sql_help.c:3828 +#: sql_help.c:3832 msgid "index_expression" msgstr "index_expression" -#: sql_help.c:3831 +#: sql_help.c:3835 msgid "index_predicate" msgstr "index_prédicat" -#: sql_help.c:3833 +#: sql_help.c:3837 msgid "and conflict_action is one of:" msgstr "où action_conflit fait partie de :" -#: sql_help.c:3839 sql_help.c:4628 +#: sql_help.c:3843 sql_help.c:4632 msgid "sub-SELECT" msgstr "sous-SELECT" -#: sql_help.c:3848 sql_help.c:3911 sql_help.c:4604 +#: sql_help.c:3852 sql_help.c:3915 sql_help.c:4608 msgid "channel" msgstr "canal" -#: sql_help.c:3870 +#: sql_help.c:3874 msgid "lockmode" msgstr "mode_de_verrou" -#: sql_help.c:3871 +#: sql_help.c:3875 msgid "where lockmode is one of:" msgstr "où mode_de_verrou fait partie de :" -#: sql_help.c:3912 +#: sql_help.c:3916 msgid "payload" msgstr "contenu" -#: sql_help.c:3939 +#: sql_help.c:3943 msgid "old_role" msgstr "ancien_rôle" -#: sql_help.c:3940 +#: sql_help.c:3944 msgid "new_role" msgstr "nouveau_rôle" -#: sql_help.c:3971 sql_help.c:4143 sql_help.c:4151 +#: sql_help.c:3975 sql_help.c:4147 sql_help.c:4155 msgid "savepoint_name" msgstr "nom_savepoint" -#: sql_help.c:4287 sql_help.c:4339 sql_help.c:4526 sql_help.c:4578 -#: sql_help.c:4746 sql_help.c:4798 +#: sql_help.c:4291 sql_help.c:4343 sql_help.c:4530 sql_help.c:4582 +#: sql_help.c:4750 sql_help.c:4802 msgid "grouping_element" msgstr "element_regroupement" -#: sql_help.c:4289 sql_help.c:4379 sql_help.c:4528 sql_help.c:4748 +#: sql_help.c:4293 sql_help.c:4383 sql_help.c:4532 sql_help.c:4752 msgid "window_name" msgstr "nom_window" -#: sql_help.c:4290 sql_help.c:4380 sql_help.c:4529 sql_help.c:4749 +#: sql_help.c:4294 sql_help.c:4384 sql_help.c:4533 sql_help.c:4753 msgid "window_definition" msgstr "définition_window" -#: sql_help.c:4291 sql_help.c:4305 sql_help.c:4343 sql_help.c:4381 -#: sql_help.c:4530 sql_help.c:4544 sql_help.c:4582 sql_help.c:4750 -#: sql_help.c:4764 sql_help.c:4802 +#: sql_help.c:4295 sql_help.c:4309 sql_help.c:4347 sql_help.c:4385 +#: sql_help.c:4534 sql_help.c:4548 sql_help.c:4586 sql_help.c:4754 +#: sql_help.c:4768 sql_help.c:4806 msgid "select" msgstr "sélection" -#: sql_help.c:4298 sql_help.c:4537 sql_help.c:4757 +#: sql_help.c:4302 sql_help.c:4541 sql_help.c:4761 msgid "where from_item can be one of:" msgstr "où élément_from fait partie de :" -#: sql_help.c:4301 sql_help.c:4307 sql_help.c:4310 sql_help.c:4314 -#: sql_help.c:4326 sql_help.c:4540 sql_help.c:4546 sql_help.c:4549 -#: sql_help.c:4553 sql_help.c:4565 sql_help.c:4760 sql_help.c:4766 -#: sql_help.c:4769 sql_help.c:4773 sql_help.c:4785 +#: sql_help.c:4305 sql_help.c:4311 sql_help.c:4314 sql_help.c:4318 +#: sql_help.c:4330 sql_help.c:4544 sql_help.c:4550 sql_help.c:4553 +#: sql_help.c:4557 sql_help.c:4569 sql_help.c:4764 sql_help.c:4770 +#: sql_help.c:4773 sql_help.c:4777 sql_help.c:4789 msgid "column_alias" msgstr "alias_colonne" -#: sql_help.c:4302 sql_help.c:4541 sql_help.c:4761 +#: sql_help.c:4306 sql_help.c:4545 sql_help.c:4765 msgid "sampling_method" msgstr "méthode_echantillonnage" -#: sql_help.c:4304 sql_help.c:4543 sql_help.c:4763 +#: sql_help.c:4308 sql_help.c:4547 sql_help.c:4767 msgid "seed" msgstr "graine" -#: sql_help.c:4308 sql_help.c:4341 sql_help.c:4547 sql_help.c:4580 -#: sql_help.c:4767 sql_help.c:4800 +#: sql_help.c:4312 sql_help.c:4345 sql_help.c:4551 sql_help.c:4584 +#: sql_help.c:4771 sql_help.c:4804 msgid "with_query_name" msgstr "nom_requête_with" -#: sql_help.c:4318 sql_help.c:4321 sql_help.c:4324 sql_help.c:4557 -#: sql_help.c:4560 sql_help.c:4563 sql_help.c:4777 sql_help.c:4780 -#: sql_help.c:4783 +#: sql_help.c:4322 sql_help.c:4325 sql_help.c:4328 sql_help.c:4561 +#: sql_help.c:4564 sql_help.c:4567 sql_help.c:4781 sql_help.c:4784 +#: sql_help.c:4787 msgid "column_definition" msgstr "définition_colonne" -#: sql_help.c:4328 sql_help.c:4567 sql_help.c:4787 +#: sql_help.c:4332 sql_help.c:4571 sql_help.c:4791 msgid "join_type" msgstr "type_de_jointure" -#: sql_help.c:4330 sql_help.c:4569 sql_help.c:4789 +#: sql_help.c:4334 sql_help.c:4573 sql_help.c:4793 msgid "join_condition" msgstr "condition_de_jointure" -#: sql_help.c:4331 sql_help.c:4570 sql_help.c:4790 +#: sql_help.c:4335 sql_help.c:4574 sql_help.c:4794 msgid "join_column" msgstr "colonne_de_jointure" -#: sql_help.c:4332 sql_help.c:4571 sql_help.c:4791 +#: sql_help.c:4336 sql_help.c:4575 sql_help.c:4795 msgid "and grouping_element can be one of:" msgstr "où element_regroupement fait partie de :" -#: sql_help.c:4340 sql_help.c:4579 sql_help.c:4799 +#: sql_help.c:4344 sql_help.c:4583 sql_help.c:4803 msgid "and with_query is:" msgstr "et requête_with est :" -#: sql_help.c:4344 sql_help.c:4583 sql_help.c:4803 +#: sql_help.c:4348 sql_help.c:4587 sql_help.c:4807 msgid "values" msgstr "valeurs" -#: sql_help.c:4345 sql_help.c:4584 sql_help.c:4804 +#: sql_help.c:4349 sql_help.c:4588 sql_help.c:4808 msgid "insert" msgstr "insert" -#: sql_help.c:4346 sql_help.c:4585 sql_help.c:4805 +#: sql_help.c:4350 sql_help.c:4589 sql_help.c:4809 msgid "update" msgstr "update" -#: sql_help.c:4347 sql_help.c:4586 sql_help.c:4806 +#: sql_help.c:4351 sql_help.c:4590 sql_help.c:4810 msgid "delete" msgstr "delete" -#: sql_help.c:4374 +#: sql_help.c:4378 msgid "new_table" msgstr "nouvelle_table" -#: sql_help.c:4399 +#: sql_help.c:4403 msgid "timezone" msgstr "fuseau_horaire" -#: sql_help.c:4444 +#: sql_help.c:4448 msgid "snapshot_id" msgstr "id_snapshot" -#: sql_help.c:4686 +#: sql_help.c:4690 msgid "sort_expression" msgstr "expression_de_tri" -#: sql_help.c:4813 sql_help.c:5791 +#: sql_help.c:4817 sql_help.c:5795 msgid "abort the current transaction" msgstr "abandonner la transaction en cours" -#: sql_help.c:4819 +#: sql_help.c:4823 msgid "change the definition of an aggregate function" msgstr "modifier la définition d'une fonction d'agrégation" -#: sql_help.c:4825 +#: sql_help.c:4829 msgid "change the definition of a collation" msgstr "modifier la définition d'un collationnement" -#: sql_help.c:4831 +#: sql_help.c:4835 msgid "change the definition of a conversion" msgstr "modifier la définition d'une conversion" -#: sql_help.c:4837 +#: sql_help.c:4841 msgid "change a database" msgstr "modifier une base de données" -#: sql_help.c:4843 +#: sql_help.c:4847 msgid "define default access privileges" msgstr "définir les droits d'accès par défaut" -#: sql_help.c:4849 +#: sql_help.c:4853 msgid "change the definition of a domain" msgstr "modifier la définition d'un domaine" -#: sql_help.c:4855 +#: sql_help.c:4859 msgid "change the definition of an event trigger" msgstr "modifier la définition d'un trigger sur évènement" -#: sql_help.c:4861 +#: sql_help.c:4865 msgid "change the definition of an extension" msgstr "modifier la définition d'une extension" -#: sql_help.c:4867 +#: sql_help.c:4871 msgid "change the definition of a foreign-data wrapper" msgstr "modifier la définition d'un wrapper de données distantes" -#: sql_help.c:4873 +#: sql_help.c:4877 msgid "change the definition of a foreign table" msgstr "modifier la définition d'une table distante" -#: sql_help.c:4879 +#: sql_help.c:4883 msgid "change the definition of a function" msgstr "modifier la définition d'une fonction" -#: sql_help.c:4885 +#: sql_help.c:4889 msgid "change role name or membership" msgstr "modifier le nom d'un groupe ou la liste des ses membres" -#: sql_help.c:4891 +#: sql_help.c:4895 msgid "change the definition of an index" msgstr "modifier la définition d'un index" -#: sql_help.c:4897 +#: sql_help.c:4901 msgid "change the definition of a procedural language" msgstr "modifier la définition d'un langage procédural" -#: sql_help.c:4903 +#: sql_help.c:4907 msgid "change the definition of a large object" msgstr "modifier la définition d'un « Large Object »" -#: sql_help.c:4909 +#: sql_help.c:4913 msgid "change the definition of a materialized view" msgstr "modifier la définition d'une vue matérialisée" -#: sql_help.c:4915 +#: sql_help.c:4919 msgid "change the definition of an operator" msgstr "modifier la définition d'un opérateur" -#: sql_help.c:4921 +#: sql_help.c:4925 msgid "change the definition of an operator class" msgstr "modifier la définition d'une classe d'opérateurs" -#: sql_help.c:4927 +#: sql_help.c:4931 msgid "change the definition of an operator family" msgstr "modifier la définition d'une famille d'opérateur" -#: sql_help.c:4933 +#: sql_help.c:4937 msgid "change the definition of a row level security policy" msgstr "modifier la définition d'une politique de sécurité au niveau ligne" -#: sql_help.c:4939 +#: sql_help.c:4943 msgid "change the definition of a procedure" msgstr "modifier la définition d'une procédure" -#: sql_help.c:4945 +#: sql_help.c:4949 msgid "change the definition of a publication" msgstr "modifier la définition d'une publication" -#: sql_help.c:4951 sql_help.c:5053 +#: sql_help.c:4955 sql_help.c:5057 msgid "change a database role" msgstr "modifier un rôle" -#: sql_help.c:4957 +#: sql_help.c:4961 msgid "change the definition of a routine" msgstr "modifier la définition d'une routine" -#: sql_help.c:4963 +#: sql_help.c:4967 msgid "change the definition of a rule" msgstr "modifier la définition d'une règle" -#: sql_help.c:4969 +#: sql_help.c:4973 msgid "change the definition of a schema" msgstr "modifier la définition d'un schéma" -#: sql_help.c:4975 +#: sql_help.c:4979 msgid "change the definition of a sequence generator" msgstr "modifier la définition d'un générateur de séquence" -#: sql_help.c:4981 +#: sql_help.c:4985 msgid "change the definition of a foreign server" msgstr "modifier la définition d'un serveur distant" -#: sql_help.c:4987 +#: sql_help.c:4991 msgid "change the definition of an extended statistics object" msgstr "modifier la définition d'un objet de statistiques étendues" -#: sql_help.c:4993 +#: sql_help.c:4997 msgid "change the definition of a subscription" msgstr "modifier la définition d'une souscription" -#: sql_help.c:4999 +#: sql_help.c:5003 msgid "change a server configuration parameter" msgstr "modifie un paramètre de configuration du serveur" -#: sql_help.c:5005 +#: sql_help.c:5009 msgid "change the definition of a table" msgstr "modifier la définition d'une table" -#: sql_help.c:5011 +#: sql_help.c:5015 msgid "change the definition of a tablespace" msgstr "modifier la définition d'un tablespace" -#: sql_help.c:5017 +#: sql_help.c:5021 msgid "change the definition of a text search configuration" msgstr "modifier la définition d'une configuration de la recherche de texte" -#: sql_help.c:5023 +#: sql_help.c:5027 msgid "change the definition of a text search dictionary" msgstr "modifier la définition d'un dictionnaire de la recherche de texte" -#: sql_help.c:5029 +#: sql_help.c:5033 msgid "change the definition of a text search parser" msgstr "modifier la définition d'un analyseur de la recherche de texte" -#: sql_help.c:5035 +#: sql_help.c:5039 msgid "change the definition of a text search template" msgstr "modifier la définition d'un modèle de la recherche de texte" -#: sql_help.c:5041 +#: sql_help.c:5045 msgid "change the definition of a trigger" msgstr "modifier la définition d'un trigger" -#: sql_help.c:5047 +#: sql_help.c:5051 msgid "change the definition of a type" msgstr "modifier la définition d'un type" -#: sql_help.c:5059 +#: sql_help.c:5063 msgid "change the definition of a user mapping" msgstr "modifier la définition d'une correspondance d'utilisateur" -#: sql_help.c:5065 +#: sql_help.c:5069 msgid "change the definition of a view" msgstr "modifier la définition d'une vue" -#: sql_help.c:5071 +#: sql_help.c:5075 msgid "collect statistics about a database" msgstr "acquérir des statistiques concernant la base de données" -#: sql_help.c:5077 sql_help.c:5869 +#: sql_help.c:5081 sql_help.c:5873 msgid "start a transaction block" msgstr "débuter un bloc de transaction" -#: sql_help.c:5083 +#: sql_help.c:5087 msgid "invoke a procedure" msgstr "appeler une procédure" -#: sql_help.c:5089 +#: sql_help.c:5093 msgid "force a write-ahead log checkpoint" msgstr "forcer un point de vérification des journaux de transactions" -#: sql_help.c:5095 +#: sql_help.c:5099 msgid "close a cursor" msgstr "fermer un curseur" -#: sql_help.c:5101 +#: sql_help.c:5105 msgid "cluster a table according to an index" msgstr "réorganiser (cluster) une table en fonction d'un index" -#: sql_help.c:5107 +#: sql_help.c:5111 msgid "define or change the comment of an object" msgstr "définir ou modifier les commentaires d'un objet" -#: sql_help.c:5113 sql_help.c:5671 +#: sql_help.c:5117 sql_help.c:5675 msgid "commit the current transaction" msgstr "valider la transaction en cours" -#: sql_help.c:5119 +#: sql_help.c:5123 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "" "valider une transaction précédemment préparée pour une validation en deux\n" "phases" -#: sql_help.c:5125 +#: sql_help.c:5129 msgid "copy data between a file and a table" msgstr "copier des données entre un fichier et une table" -#: sql_help.c:5131 +#: sql_help.c:5135 msgid "define a new access method" msgstr "définir une nouvelle méthode d'accès" -#: sql_help.c:5137 +#: sql_help.c:5141 msgid "define a new aggregate function" msgstr "définir une nouvelle fonction d'agrégation" -#: sql_help.c:5143 +#: sql_help.c:5147 msgid "define a new cast" msgstr "définir un nouveau transtypage" -#: sql_help.c:5149 +#: sql_help.c:5153 msgid "define a new collation" msgstr "définir un nouveau collationnement" -#: sql_help.c:5155 +#: sql_help.c:5159 msgid "define a new encoding conversion" msgstr "définir une nouvelle conversion d'encodage" -#: sql_help.c:5161 +#: sql_help.c:5165 msgid "create a new database" msgstr "créer une nouvelle base de données" -#: sql_help.c:5167 +#: sql_help.c:5171 msgid "define a new domain" msgstr "définir un nouveau domaine" -#: sql_help.c:5173 +#: sql_help.c:5177 msgid "define a new event trigger" msgstr "définir un nouveau trigger sur évènement" -#: sql_help.c:5179 +#: sql_help.c:5183 msgid "install an extension" msgstr "installer une extension" -#: sql_help.c:5185 +#: sql_help.c:5189 msgid "define a new foreign-data wrapper" msgstr "définir un nouveau wrapper de données distantes" -#: sql_help.c:5191 +#: sql_help.c:5195 msgid "define a new foreign table" msgstr "définir une nouvelle table distante" -#: sql_help.c:5197 +#: sql_help.c:5201 msgid "define a new function" msgstr "définir une nouvelle fonction" -#: sql_help.c:5203 sql_help.c:5263 sql_help.c:5365 +#: sql_help.c:5207 sql_help.c:5267 sql_help.c:5369 msgid "define a new database role" msgstr "définir un nouveau rôle" -#: sql_help.c:5209 +#: sql_help.c:5213 msgid "define a new index" msgstr "définir un nouvel index" -#: sql_help.c:5215 +#: sql_help.c:5219 msgid "define a new procedural language" msgstr "définir un nouveau langage de procédures" -#: sql_help.c:5221 +#: sql_help.c:5225 msgid "define a new materialized view" msgstr "définir une nouvelle vue matérialisée" -#: sql_help.c:5227 +#: sql_help.c:5231 msgid "define a new operator" msgstr "définir un nouvel opérateur" -#: sql_help.c:5233 +#: sql_help.c:5237 msgid "define a new operator class" msgstr "définir une nouvelle classe d'opérateur" -#: sql_help.c:5239 +#: sql_help.c:5243 msgid "define a new operator family" msgstr "définir une nouvelle famille d'opérateur" -#: sql_help.c:5245 +#: sql_help.c:5249 msgid "define a new row level security policy for a table" msgstr "définir une nouvelle politique de sécurité au niveau ligne pour une table" -#: sql_help.c:5251 +#: sql_help.c:5255 msgid "define a new procedure" msgstr "définir une nouvelle procédure" -#: sql_help.c:5257 +#: sql_help.c:5261 msgid "define a new publication" msgstr "définir une nouvelle publication" -#: sql_help.c:5269 +#: sql_help.c:5273 msgid "define a new rewrite rule" msgstr "définir une nouvelle règle de réécriture" -#: sql_help.c:5275 +#: sql_help.c:5279 msgid "define a new schema" msgstr "définir un nouveau schéma" -#: sql_help.c:5281 +#: sql_help.c:5285 msgid "define a new sequence generator" msgstr "définir un nouveau générateur de séquence" -#: sql_help.c:5287 +#: sql_help.c:5291 msgid "define a new foreign server" msgstr "définir un nouveau serveur distant" -#: sql_help.c:5293 +#: sql_help.c:5297 msgid "define extended statistics" msgstr "définir des statistiques étendues" -#: sql_help.c:5299 +#: sql_help.c:5303 msgid "define a new subscription" msgstr "définir une nouvelle souscription" -#: sql_help.c:5305 +#: sql_help.c:5309 msgid "define a new table" msgstr "définir une nouvelle table" -#: sql_help.c:5311 sql_help.c:5827 +#: sql_help.c:5315 sql_help.c:5831 msgid "define a new table from the results of a query" msgstr "définir une nouvelle table à partir des résultats d'une requête" -#: sql_help.c:5317 +#: sql_help.c:5321 msgid "define a new tablespace" msgstr "définir un nouveau tablespace" -#: sql_help.c:5323 +#: sql_help.c:5327 msgid "define a new text search configuration" msgstr "définir une nouvelle configuration de la recherche de texte" -#: sql_help.c:5329 +#: sql_help.c:5333 msgid "define a new text search dictionary" msgstr "définir un nouveau dictionnaire de la recherche de texte" -#: sql_help.c:5335 +#: sql_help.c:5339 msgid "define a new text search parser" msgstr "définir un nouvel analyseur de la recherche de texte" -#: sql_help.c:5341 +#: sql_help.c:5345 msgid "define a new text search template" msgstr "définir un nouveau modèle de la recherche de texte" -#: sql_help.c:5347 +#: sql_help.c:5351 msgid "define a new transform" msgstr "définir une nouvelle transformation" -#: sql_help.c:5353 +#: sql_help.c:5357 msgid "define a new trigger" msgstr "définir un nouveau trigger" -#: sql_help.c:5359 +#: sql_help.c:5363 msgid "define a new data type" msgstr "définir un nouveau type de données" -#: sql_help.c:5371 +#: sql_help.c:5375 msgid "define a new mapping of a user to a foreign server" msgstr "définit une nouvelle correspondance d'un utilisateur vers un serveur distant" -#: sql_help.c:5377 +#: sql_help.c:5381 msgid "define a new view" msgstr "définir une nouvelle vue" -#: sql_help.c:5383 +#: sql_help.c:5387 msgid "deallocate a prepared statement" msgstr "désallouer une instruction préparée" -#: sql_help.c:5389 +#: sql_help.c:5393 msgid "define a cursor" msgstr "définir un curseur" -#: sql_help.c:5395 +#: sql_help.c:5399 msgid "delete rows of a table" msgstr "supprimer des lignes d'une table" -#: sql_help.c:5401 +#: sql_help.c:5405 msgid "discard session state" msgstr "annuler l'état de la session" -#: sql_help.c:5407 +#: sql_help.c:5411 msgid "execute an anonymous code block" msgstr "exécute un bloc de code anonyme" -#: sql_help.c:5413 +#: sql_help.c:5417 msgid "remove an access method" msgstr "supprimer une méthode d'accès" -#: sql_help.c:5419 +#: sql_help.c:5423 msgid "remove an aggregate function" msgstr "supprimer une fonction d'agrégation" -#: sql_help.c:5425 +#: sql_help.c:5429 msgid "remove a cast" msgstr "supprimer un transtypage" -#: sql_help.c:5431 +#: sql_help.c:5435 msgid "remove a collation" msgstr "supprimer un collationnement" -#: sql_help.c:5437 +#: sql_help.c:5441 msgid "remove a conversion" msgstr "supprimer une conversion" -#: sql_help.c:5443 +#: sql_help.c:5447 msgid "remove a database" msgstr "supprimer une base de données" -#: sql_help.c:5449 +#: sql_help.c:5453 msgid "remove a domain" msgstr "supprimer un domaine" -#: sql_help.c:5455 +#: sql_help.c:5459 msgid "remove an event trigger" msgstr "supprimer un trigger sur évènement" -#: sql_help.c:5461 +#: sql_help.c:5465 msgid "remove an extension" msgstr "supprimer une extension" -#: sql_help.c:5467 +#: sql_help.c:5471 msgid "remove a foreign-data wrapper" msgstr "supprimer un wrapper de données distantes" -#: sql_help.c:5473 +#: sql_help.c:5477 msgid "remove a foreign table" msgstr "supprimer une table distante" -#: sql_help.c:5479 +#: sql_help.c:5483 msgid "remove a function" msgstr "supprimer une fonction" -#: sql_help.c:5485 sql_help.c:5551 sql_help.c:5653 +#: sql_help.c:5489 sql_help.c:5555 sql_help.c:5657 msgid "remove a database role" msgstr "supprimer un rôle de la base de données" -#: sql_help.c:5491 +#: sql_help.c:5495 msgid "remove an index" msgstr "supprimer un index" -#: sql_help.c:5497 +#: sql_help.c:5501 msgid "remove a procedural language" msgstr "supprimer un langage procédural" -#: sql_help.c:5503 +#: sql_help.c:5507 msgid "remove a materialized view" msgstr "supprimer une vue matérialisée" -#: sql_help.c:5509 +#: sql_help.c:5513 msgid "remove an operator" msgstr "supprimer un opérateur" -#: sql_help.c:5515 +#: sql_help.c:5519 msgid "remove an operator class" msgstr "supprimer une classe d'opérateur" -#: sql_help.c:5521 +#: sql_help.c:5525 msgid "remove an operator family" msgstr "supprimer une famille d'opérateur" -#: sql_help.c:5527 +#: sql_help.c:5531 msgid "remove database objects owned by a database role" msgstr "supprimer les objets appartenant à un rôle" -#: sql_help.c:5533 +#: sql_help.c:5537 msgid "remove a row level security policy from a table" msgstr "supprimer une nouvelle politique de sécurité au niveau ligne pour une table" -#: sql_help.c:5539 +#: sql_help.c:5543 msgid "remove a procedure" msgstr "supprimer une procédure" -#: sql_help.c:5545 +#: sql_help.c:5549 msgid "remove a publication" msgstr "supprimer une publication" -#: sql_help.c:5557 +#: sql_help.c:5561 msgid "remove a routine" msgstr "supprimer une routine" -#: sql_help.c:5563 +#: sql_help.c:5567 msgid "remove a rewrite rule" msgstr "supprimer une règle de réécriture" -#: sql_help.c:5569 +#: sql_help.c:5573 msgid "remove a schema" msgstr "supprimer un schéma" -#: sql_help.c:5575 +#: sql_help.c:5579 msgid "remove a sequence" msgstr "supprimer une séquence" -#: sql_help.c:5581 +#: sql_help.c:5585 msgid "remove a foreign server descriptor" msgstr "supprimer un descripteur de serveur distant" -#: sql_help.c:5587 +#: sql_help.c:5591 msgid "remove extended statistics" msgstr "supprimer des statistiques étendues" -#: sql_help.c:5593 +#: sql_help.c:5597 msgid "remove a subscription" msgstr "supprimer une souscription" -#: sql_help.c:5599 +#: sql_help.c:5603 msgid "remove a table" msgstr "supprimer une table" -#: sql_help.c:5605 +#: sql_help.c:5609 msgid "remove a tablespace" msgstr "supprimer un tablespace" -#: sql_help.c:5611 +#: sql_help.c:5615 msgid "remove a text search configuration" msgstr "supprimer une configuration de la recherche de texte" -#: sql_help.c:5617 +#: sql_help.c:5621 msgid "remove a text search dictionary" msgstr "supprimer un dictionnaire de la recherche de texte" -#: sql_help.c:5623 +#: sql_help.c:5627 msgid "remove a text search parser" msgstr "supprimer un analyseur de la recherche de texte" -#: sql_help.c:5629 +#: sql_help.c:5633 msgid "remove a text search template" msgstr "supprimer un modèle de la recherche de texte" -#: sql_help.c:5635 +#: sql_help.c:5639 msgid "remove a transform" msgstr "supprimer une transformation" -#: sql_help.c:5641 +#: sql_help.c:5645 msgid "remove a trigger" msgstr "supprimer un trigger" -#: sql_help.c:5647 +#: sql_help.c:5651 msgid "remove a data type" msgstr "supprimer un type de données" -#: sql_help.c:5659 +#: sql_help.c:5663 msgid "remove a user mapping for a foreign server" msgstr "supprime une correspondance utilisateur pour un serveur distant" -#: sql_help.c:5665 +#: sql_help.c:5669 msgid "remove a view" msgstr "supprimer une vue" -#: sql_help.c:5677 +#: sql_help.c:5681 msgid "execute a prepared statement" msgstr "exécuter une instruction préparée" -#: sql_help.c:5683 +#: sql_help.c:5687 msgid "show the execution plan of a statement" msgstr "afficher le plan d'exécution d'une instruction" -#: sql_help.c:5689 +#: sql_help.c:5693 msgid "retrieve rows from a query using a cursor" msgstr "extraire certaines lignes d'une requête à l'aide d'un curseur" -#: sql_help.c:5695 +#: sql_help.c:5699 msgid "define access privileges" msgstr "définir des privilèges d'accès" -#: sql_help.c:5701 +#: sql_help.c:5705 msgid "import table definitions from a foreign server" msgstr "importer la définition d'une table à partir d'un serveur distant" -#: sql_help.c:5707 +#: sql_help.c:5711 msgid "create new rows in a table" msgstr "créer de nouvelles lignes dans une table" -#: sql_help.c:5713 +#: sql_help.c:5717 msgid "listen for a notification" msgstr "se mettre à l'écoute d'une notification" -#: sql_help.c:5719 +#: sql_help.c:5723 msgid "load a shared library file" msgstr "charger un fichier de bibliothèque partagée" -#: sql_help.c:5725 +#: sql_help.c:5729 msgid "lock a table" msgstr "verrouiller une table" -#: sql_help.c:5731 +#: sql_help.c:5735 msgid "position a cursor" msgstr "positionner un curseur" -#: sql_help.c:5737 +#: sql_help.c:5741 msgid "generate a notification" msgstr "engendrer une notification" -#: sql_help.c:5743 +#: sql_help.c:5747 msgid "prepare a statement for execution" msgstr "préparer une instruction pour exécution" -#: sql_help.c:5749 +#: sql_help.c:5753 msgid "prepare the current transaction for two-phase commit" msgstr "préparer la transaction en cours pour une validation en deux phases" -#: sql_help.c:5755 +#: sql_help.c:5759 msgid "change the ownership of database objects owned by a database role" msgstr "changer le propriétaire des objets d'un rôle" -#: sql_help.c:5761 +#: sql_help.c:5765 msgid "replace the contents of a materialized view" msgstr "remplacer le contenu d'une vue matérialisée" -#: sql_help.c:5767 +#: sql_help.c:5771 msgid "rebuild indexes" msgstr "reconstruire des index" -#: sql_help.c:5773 +#: sql_help.c:5777 msgid "destroy a previously defined savepoint" msgstr "détruire un point de retournement précédemment défini" -#: sql_help.c:5779 +#: sql_help.c:5783 msgid "restore the value of a run-time parameter to the default value" msgstr "réinitialiser un paramètre d'exécution à sa valeur par défaut" -#: sql_help.c:5785 +#: sql_help.c:5789 msgid "remove access privileges" msgstr "supprimer des privilèges d'accès" -#: sql_help.c:5797 +#: sql_help.c:5801 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "" "annuler une transaction précédemment préparée pour une validation en deux\n" "phases" -#: sql_help.c:5803 +#: sql_help.c:5807 msgid "roll back to a savepoint" msgstr "annuler jusqu'au point de retournement" -#: sql_help.c:5809 +#: sql_help.c:5813 msgid "define a new savepoint within the current transaction" msgstr "définir un nouveau point de retournement pour la transaction en cours" -#: sql_help.c:5815 +#: sql_help.c:5819 msgid "define or change a security label applied to an object" msgstr "définir ou modifier un label de sécurité à un objet" -#: sql_help.c:5821 sql_help.c:5875 sql_help.c:5911 +#: sql_help.c:5825 sql_help.c:5879 sql_help.c:5915 msgid "retrieve rows from a table or view" msgstr "extraire des lignes d'une table ou d'une vue" -#: sql_help.c:5833 +#: sql_help.c:5837 msgid "change a run-time parameter" msgstr "modifier un paramètre d'exécution" -#: sql_help.c:5839 +#: sql_help.c:5843 msgid "set constraint check timing for the current transaction" msgstr "définir le moment de la vérification des contraintes pour la transaction en cours" -#: sql_help.c:5845 +#: sql_help.c:5849 msgid "set the current user identifier of the current session" msgstr "définir l'identifiant actuel de l'utilisateur de la session courante" -#: sql_help.c:5851 +#: sql_help.c:5855 msgid "set the session user identifier and the current user identifier of the current session" msgstr "" "définir l'identifiant de l'utilisateur de session et l'identifiant actuel de\n" "l'utilisateur de la session courante" -#: sql_help.c:5857 +#: sql_help.c:5861 msgid "set the characteristics of the current transaction" msgstr "définir les caractéristiques de la transaction en cours" -#: sql_help.c:5863 +#: sql_help.c:5867 msgid "show the value of a run-time parameter" msgstr "afficher la valeur d'un paramètre d'exécution" -#: sql_help.c:5881 +#: sql_help.c:5885 msgid "empty a table or set of tables" msgstr "vider une table ou un ensemble de tables" -#: sql_help.c:5887 +#: sql_help.c:5891 msgid "stop listening for a notification" msgstr "arrêter l'écoute d'une notification" -#: sql_help.c:5893 +#: sql_help.c:5897 msgid "update rows of a table" msgstr "actualiser les lignes d'une table" -#: sql_help.c:5899 +#: sql_help.c:5903 msgid "garbage-collect and optionally analyze a database" msgstr "compacter et optionnellement analyser une base de données" -#: sql_help.c:5905 +#: sql_help.c:5909 msgid "compute a set of rows" msgstr "calculer un ensemble de lignes" @@ -6457,7 +6445,7 @@ #: startup.c:327 #, c-format msgid "could not open log file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier applicatif « %s » : %m" +msgstr "n'a pas pu ouvrir le journal applicatif « %s » : %m" #: startup.c:439 #, c-format @@ -6523,37 +6511,20 @@ "valeur « %s » non reconnue pour « %s »\n" "Les valeurs disponibles sont : %s." -#~ msgid "Could not send cancel request: %s" -#~ msgstr "N'a pas pu envoyer la requête d'annulation : %s" - -#~ msgid "lock a named relation (table, etc)" -#~ msgstr "verrouille une relation nommée (table, etc)" - -#~ msgid "could not connect to server: %s" -#~ msgstr "n'a pas pu se connecter au serveur : %s" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapporter les bogues à .\n" - -#~ msgid " \\g [FILE] or ; execute query (and send results to file or |pipe)\n" -#~ msgstr "" -#~ " \\g [FICHIER] ou ; envoie le tampon de requêtes au serveur (et les\n" -#~ " résultats au fichier ou |tube)\n" - -#~ msgid "old_version" -#~ msgstr "ancienne_version" +#~ msgid " \"%s\"" +#~ msgstr " « %s »" -#~ msgid "using_list" -#~ msgstr "liste_using" +#~ msgid " \"%s\" IN %s %s" +#~ msgstr " \"%s\" DANS %s %s" -#~ msgid "from_list" -#~ msgstr "liste_from" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help affiche cette aide, puis quitte\n" -#~ msgid "normal" -#~ msgstr "normal" +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version affiche la version, puis quitte\n" -#~ msgid "Procedure" -#~ msgstr "Procédure" +#~ msgid " -?, --help show this help, then exit\n" +#~ msgstr " -?, --help affiche cette aide puis quitte\n" #~ msgid " SERVER_VERSION_NAME server's version (short string)\n" #~ msgstr " SERVER_VERSION_NAME version du serveur (chaîne courte)\n" @@ -6567,193 +6538,180 @@ #~ msgid " VERSION_NUM psql's version (numeric format)\n" #~ msgstr " VERSION_NUM version de psql (format numérique)\n" -#~ msgid "attribute" -#~ msgstr "attribut" +#~ msgid " \\dFd [PATTERN] list text search dictionaries (add \"+\" for more detail)\n" +#~ msgstr "" +#~ " \\dFd [MODÈLE] affiche la liste des dictionnaires de la recherche\n" +#~ " de texte (ajouter « + » pour plus de détails)\n" -#~ msgid "No per-database role settings support in this server version.\n" -#~ msgstr "Pas de supprot des paramètres rôle par base de données pour la version de ce serveur.\n" +#~ msgid " \\dFp [PATTERN] list text search parsers (add \"+\" for more detail)\n" +#~ msgstr "" +#~ " \\dFp [MODÈLE] affiche la liste des analyseurs de la recherche de\n" +#~ " texte (ajouter « + » pour plus de détails)\n" -#~ msgid "No matching settings found.\n" -#~ msgstr "Aucun paramètre correspondant trouvé.\n" +#~ msgid " \\dT [PATTERN] list data types (add \"+\" for more detail)\n" +#~ msgstr "" +#~ " \\dT [MODÈLE] affiche la liste des types de données (ajouter « + »\n" +#~ " pour plus de détails)\n" -#~ msgid "No settings found.\n" -#~ msgstr "Aucun paramètre trouvé.\n" +#~ msgid " \\db [PATTERN] list tablespaces (add \"+\" for more detail)\n" +#~ msgstr "" +#~ " \\db [MODÈLE] affiche la liste des tablespaces (ajouter « + » pour\n" +#~ " plus de détails)\n" -#~ msgid "No matching relations found.\n" -#~ msgstr "Aucune relation correspondante trouvée.\n" +#~ msgid " \\df [PATTERN] list functions (add \"+\" for more detail)\n" +#~ msgstr "" +#~ " \\df [MODÈLE] affiche la liste des fonctions (ajouter « + » pour\n" +#~ " plus de détails)\n" -#~ msgid "No relations found.\n" -#~ msgstr "Aucune relation trouvée.\n" +#~ msgid " \\dn [PATTERN] list schemas (add \"+\" for more detail)\n" +#~ msgstr "" +#~ " \\dn [MODÈLE] affiche la liste des schémas (ajouter « + » pour\n" +#~ " plus de détails)\n" -#~ msgid "Password encryption failed.\n" -#~ msgstr "Échec du chiffrement du mot de passe.\n" +#~ msgid "" +#~ " \\d{t|i|s|v|S} [PATTERN] (add \"+\" for more detail)\n" +#~ " list tables/indexes/sequences/views/system tables\n" +#~ msgstr "" +#~ " \\d{t|i|s|v|S} [MODÈLE] (ajouter « + » pour plus de détails)\n" +#~ " affiche la liste des\n" +#~ " tables/index/séquences/vues/tables système\n" -#~ msgid "\\%s: error while setting variable\n" -#~ msgstr "\\%s : erreur lors de l'initialisation de la variable\n" +#~ msgid " \\g [FILE] or ; execute query (and send results to file or |pipe)\n" +#~ msgstr "" +#~ " \\g [FICHIER] ou ; envoie le tampon de requêtes au serveur (et les\n" +#~ " résultats au fichier ou |tube)\n" -#~ msgid "+ opt(%d) = |%s|\n" -#~ msgstr "+ opt(%d) = |%s|\n" +#~ msgid " \\l list all databases (add \"+\" for more detail)\n" +#~ msgstr "" +#~ " \\l affiche la liste des bases de données (ajouter « + »\n" +#~ " pour plus de détails)\n" -#~ msgid "could not set variable \"%s\"\n" -#~ msgstr "n'a pas pu initialiser la variable « %s »\n" +#~ msgid " \\l[+] list all databases\n" +#~ msgstr " \\l[+] affiche la liste des bases de données\n" -#~ msgid "Modifiers" -#~ msgstr "Modificateurs" +#~ msgid " \\z [PATTERN] list table, view, and sequence access privileges (same as \\dp)\n" +#~ msgstr "" +#~ " \\z [MODÈLE] affiche la liste des privilèges d'accès aux tables,\n" +#~ " vues et séquences (identique à \\dp)\n" -#~ msgid "collate %s" -#~ msgstr "collationnement %s" +#~ msgid " as user \"%s\"" +#~ msgstr " comme utilisateur « %s »" -#~ msgid "not null" -#~ msgstr "non NULL" +#~ msgid " at port \"%s\"" +#~ msgstr " sur le port « %s »" -#~ msgid "default %s" -#~ msgstr "Par défaut, %s" +#~ msgid " on host \"%s\"" +#~ msgstr " sur l'hôte « %s »" -#~ msgid "Modifier" -#~ msgstr "Modificateur" +#~ msgid "%s\n" +#~ msgstr "%s\n" -#~ msgid "Object Description" -#~ msgstr "Description d'un objet" +#~ msgid "%s: %s\n" +#~ msgstr "%s : %s\n" + +#~ msgid "%s: could not open log file \"%s\": %s\n" +#~ msgstr "%s : n'a pas pu ouvrir le journal applicatif « %s » : %s\n" #~ msgid "%s: could not set variable \"%s\"\n" #~ msgstr "%s : n'a pas pu initialiser la variable « %s »\n" -#~ msgid "Watch every %lds\t%s" -#~ msgstr "Vérifier chaque %lds\t%s" +#~ msgid "%s: pg_strdup: cannot duplicate null pointer (internal error)\n" +#~ msgstr "%s : pg_strdup : ne peut pas dupliquer le pointeur null (erreur interne)\n" -#~ msgid "Showing locale-adjusted numeric output." -#~ msgstr "Affichage de la sortie numérique adaptée à la locale." +#~ msgid "(1 row)" +#~ msgid_plural "(%lu rows)" +#~ msgstr[0] "(1 ligne)" +#~ msgstr[1] "(%lu lignes)" -#~ msgid "Showing only tuples." -#~ msgstr "Affichage des tuples seuls." +#~ msgid "(No rows)\n" +#~ msgstr "(Aucune ligne)\n" -#~ msgid "could not get current user name: %s\n" -#~ msgstr "n'a pas pu obtenir le nom d'utilisateur courant : %s\n" +#~ msgid "+ opt(%d) = |%s|\n" +#~ msgstr "+ opt(%d) = |%s|\n" -#~ msgid "agg_name" -#~ msgstr "nom_d_agrégat" - -#~ msgid "agg_type" -#~ msgstr "type_aggrégat" +#~ msgid "?%c? \"%s.%s\"" +#~ msgstr "?%c? « %s.%s »" -#~ msgid "input_data_type" -#~ msgstr "type_de_données_en_entrée" +#~ msgid "Access privileges for database \"%s\"" +#~ msgstr "Droits d'accès pour la base de données « %s »" -#~ msgid "could not change directory to \"%s\"" -#~ msgstr "n'a pas pu accéder au répertoire « %s »" +#~ msgid "Copy, Large Object\n" +#~ msgstr "Copie, « Large Object »\n" -#~ msgid "%s: pg_strdup: cannot duplicate null pointer (internal error)\n" -#~ msgstr "%s : pg_strdup : ne peut pas dupliquer le pointeur null (erreur interne)\n" +#~ msgid "Could not send cancel request: %s" +#~ msgstr "N'a pas pu envoyer la requête d'annulation : %s" -#~ msgid " \\l[+] list all databases\n" -#~ msgstr " \\l[+] affiche la liste des bases de données\n" +#~ msgid "Enter new password: " +#~ msgstr "Saisissez le nouveau mot de passe : " -#~ msgid "\\%s: error\n" -#~ msgstr "\\%s : erreur\n" +#~ msgid "Exclusion constraints:" +#~ msgstr "Contraintes d'exclusion :" -#~ msgid "\\copy: %s" -#~ msgstr "\\copy : %s" +#~ msgid "Invalid command \\%s. Try \\? for help.\n" +#~ msgstr "Commande \\%s invalide. Essayez \\? pour l'aide-mémoire.\n" -#~ msgid "\\copy: unexpected response (%d)\n" -#~ msgstr "\\copy : réponse inattendue (%d)\n" +#~ msgid "Modifier" +#~ msgstr "Modificateur" -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide, puis quitte\n" +#~ msgid "Modifiers" +#~ msgstr "Modificateurs" -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version, puis quitte\n" +#~ msgid "No matching relations found.\n" +#~ msgstr "Aucune relation correspondante trouvée.\n" -#~ msgid "contains support for command-line editing" -#~ msgstr "contient une gestion avancée de la ligne de commande" +#~ msgid "No matching settings found.\n" +#~ msgstr "Aucun paramètre correspondant trouvé.\n" -#~ msgid "data type" -#~ msgstr "type de données" +#~ msgid "No per-database role settings support in this server version.\n" +#~ msgstr "Pas de supprot des paramètres rôle par base de données pour la version de ce serveur.\n" -#~ msgid "column" -#~ msgstr "colonne" +#~ msgid "No relations found.\n" +#~ msgstr "Aucune relation trouvée.\n" -#~ msgid "new_column" -#~ msgstr "nouvelle_colonne" +#~ msgid "No settings found.\n" +#~ msgstr "Aucun paramètre trouvé.\n" -#~ msgid "tablespace" -#~ msgstr "tablespace" +#~ msgid "Object Description" +#~ msgstr "Description d'un objet" -#~ msgid " on host \"%s\"" -#~ msgstr " sur l'hôte « %s »" +#~ msgid "Password encryption failed.\n" +#~ msgstr "Échec du chiffrement du mot de passe.\n" -#~ msgid " at port \"%s\"" -#~ msgstr " sur le port « %s »" +#~ msgid "Procedure" +#~ msgstr "Procédure" -#~ msgid " as user \"%s\"" -#~ msgstr " comme utilisateur « %s »" +#~ msgid "Report bugs to .\n" +#~ msgstr "Rapporter les bogues à .\n" -#~ msgid "define a new constraint trigger" -#~ msgstr "définir une nouvelle contrainte de déclenchement" +#~ msgid "Report bugs to .\n" +#~ msgstr "Rapportez les bogues à .\n" -#~ msgid "Exclusion constraints:" -#~ msgstr "Contraintes d'exclusion :" +#~ msgid "SSL connection (unknown cipher)\n" +#~ msgstr "Connexion SSL (chiffrement inconnu)\n" -#~ msgid "rolename" -#~ msgstr "nom_rôle" +#~ msgid "Showing locale-adjusted numeric output." +#~ msgstr "Affichage de la sortie numérique adaptée à la locale." -#~ msgid " \"%s\" IN %s %s" -#~ msgstr " \"%s\" DANS %s %s" +#~ msgid "Showing only tuples." +#~ msgstr "Affichage des tuples seuls." -#~ msgid "(1 row)" -#~ msgid_plural "(%lu rows)" -#~ msgstr[0] "(1 ligne)" -#~ msgstr[1] "(%lu lignes)" +#~ msgid "Value" +#~ msgstr "Valeur" #~ msgid "" -#~ " \\d{t|i|s|v|S} [PATTERN] (add \"+\" for more detail)\n" -#~ " list tables/indexes/sequences/views/system tables\n" -#~ msgstr "" -#~ " \\d{t|i|s|v|S} [MODÈLE] (ajouter « + » pour plus de détails)\n" -#~ " affiche la liste des\n" -#~ " tables/index/séquences/vues/tables système\n" - -#~ msgid " \\db [PATTERN] list tablespaces (add \"+\" for more detail)\n" -#~ msgstr "" -#~ " \\db [MODÈLE] affiche la liste des tablespaces (ajouter « + » pour\n" -#~ " plus de détails)\n" - -#~ msgid " \\df [PATTERN] list functions (add \"+\" for more detail)\n" -#~ msgstr "" -#~ " \\df [MODÈLE] affiche la liste des fonctions (ajouter « + » pour\n" -#~ " plus de détails)\n" - -#~ msgid " \\dFd [PATTERN] list text search dictionaries (add \"+\" for more detail)\n" -#~ msgstr "" -#~ " \\dFd [MODÈLE] affiche la liste des dictionnaires de la recherche\n" -#~ " de texte (ajouter « + » pour plus de détails)\n" - -#~ msgid " \\dFp [PATTERN] list text search parsers (add \"+\" for more detail)\n" -#~ msgstr "" -#~ " \\dFp [MODÈLE] affiche la liste des analyseurs de la recherche de\n" -#~ " texte (ajouter « + » pour plus de détails)\n" - -#~ msgid " \\dn [PATTERN] list schemas (add \"+\" for more detail)\n" -#~ msgstr "" -#~ " \\dn [MODÈLE] affiche la liste des schémas (ajouter « + » pour\n" -#~ " plus de détails)\n" - -#~ msgid " \\dT [PATTERN] list data types (add \"+\" for more detail)\n" -#~ msgstr "" -#~ " \\dT [MODÈLE] affiche la liste des types de données (ajouter « + »\n" -#~ " pour plus de détails)\n" - -#~ msgid " \\l list all databases (add \"+\" for more detail)\n" -#~ msgstr "" -#~ " \\l affiche la liste des bases de données (ajouter « + »\n" -#~ " pour plus de détails)\n" - -#~ msgid " \\z [PATTERN] list table, view, and sequence access privileges (same as \\dp)\n" +#~ "WARNING: You are connected to a server with major version %d.%d,\n" +#~ "but your %s client is major version %d.%d. Some backslash commands,\n" +#~ "such as \\d, might not work properly.\n" +#~ "\n" #~ msgstr "" -#~ " \\z [MODÈLE] affiche la liste des privilèges d'accès aux tables,\n" -#~ " vues et séquences (identique à \\dp)\n" +#~ "ATTENTION : vous êtes connecté sur un serveur dont la version majeure est\n" +#~ "%d.%d alors que votre client %s est en version majeure %d.%d. Certaines\n" +#~ "commandes avec antislashs, comme \\d, peuvent ne pas fonctionner\n" +#~ "correctement.\n" +#~ "\n" -#~ msgid "Copy, Large Object\n" -#~ msgstr "Copie, « Large Object »\n" +#~ msgid "Watch every %lds\t%s" +#~ msgstr "Vérifier chaque %lds\t%s" #~ msgid "" #~ "Welcome to %s %s (server %s), the PostgreSQL interactive terminal.\n" @@ -6769,92 +6727,125 @@ #~ "Bienvenue dans %s %s, l'interface interactive de PostgreSQL.\n" #~ "\n" -#~ msgid "" -#~ "WARNING: You are connected to a server with major version %d.%d,\n" -#~ "but your %s client is major version %d.%d. Some backslash commands,\n" -#~ "such as \\d, might not work properly.\n" -#~ "\n" -#~ msgstr "" -#~ "ATTENTION : vous êtes connecté sur un serveur dont la version majeure est\n" -#~ "%d.%d alors que votre client %s est en version majeure %d.%d. Certaines\n" -#~ "commandes avec antislashs, comme \\d, peuvent ne pas fonctionner\n" -#~ "correctement.\n" -#~ "\n" - -#~ msgid "Access privileges for database \"%s\"" -#~ msgstr "Droits d'accès pour la base de données « %s »" +#~ msgid "\\%s: error\n" +#~ msgstr "\\%s : erreur\n" -#~ msgid "?%c? \"%s.%s\"" -#~ msgstr "?%c? « %s.%s »" +#~ msgid "\\%s: error while setting variable\n" +#~ msgstr "\\%s : erreur lors de l'initialisation de la variable\n" -#~ msgid " \"%s\"" -#~ msgstr " « %s »" +#~ msgid "\\copy: %s" +#~ msgstr "\\copy : %s" -#~ msgid "(No rows)\n" -#~ msgstr "(Aucune ligne)\n" +#~ msgid "\\copy: unexpected response (%d)\n" +#~ msgstr "\\copy : réponse inattendue (%d)\n" -#~ msgid " -?, --help show this help, then exit\n" -#~ msgstr " -?, --help affiche cette aide puis quitte\n" +#~ msgid "agg_name" +#~ msgstr "nom_d_agrégat" -#~ msgid "SSL connection (unknown cipher)\n" -#~ msgstr "Connexion SSL (chiffrement inconnu)\n" +#~ msgid "agg_type" +#~ msgstr "type_aggrégat" -#~ msgid "serialtype" -#~ msgstr "serialtype" +#~ msgid "attribute" +#~ msgstr "attribut" -#~ msgid "statistic_type" -#~ msgstr "type_statistique" +#~ msgid "child process was terminated by signal %d" +#~ msgstr "le processus fils a été terminé par le signal %d" -#~ msgid "Value" -#~ msgstr "Valeur" +#~ msgid "child process was terminated by signal %s" +#~ msgstr "le processus fils a été terminé par le signal %s" -#~ msgid "%s: could not open log file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le journal applicatif « %s » : %s\n" +#~ msgid "collate %s" +#~ msgstr "collationnement %s" -#~ msgid "string_literal" -#~ msgstr "littéral_chaîne" +#~ msgid "column" +#~ msgstr "colonne" -#~ msgid "unterminated quoted string\n" -#~ msgstr "chaîne entre guillemets non terminée\n" +#~ msgid "contains support for command-line editing" +#~ msgstr "contient une gestion avancée de la ligne de commande" -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapportez les bogues à .\n" +#~ msgid "could not change directory to \"%s\"" +#~ msgstr "n'a pas pu accéder au répertoire « %s »" -#~ msgid "%s\n" -#~ msgstr "%s\n" +#~ msgid "could not change directory to \"%s\": %s" +#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s" #~ msgid "could not close pipe to external command: %s\n" #~ msgstr "n'a pas pu fermer le fichier pipe vers la commande externe : %s\n" -#~ msgid "could not stat file \"%s\": %s\n" -#~ msgstr "n'a pas pu tester le fichier « %s » : %s\n" +#~ msgid "could not connect to server: %s" +#~ msgstr "n'a pas pu se connecter au serveur : %s" #~ msgid "could not execute command \"%s\": %s\n" #~ msgstr "n'a pas pu exécuter la commande « %s » : %s\n" +#~ msgid "could not get current user name: %s\n" +#~ msgstr "n'a pas pu obtenir le nom d'utilisateur courant : %s\n" + +#~ msgid "could not identify current directory: %s" +#~ msgstr "n'a pas pu identifier le répertoire courant : %s" + #~ msgid "could not open temporary file \"%s\": %s\n" #~ msgstr "n'a pas pu ouvrir le fichier temporaire « %s » : %s\n" -#~ msgid "%s: %s\n" -#~ msgstr "%s : %s\n" +#~ msgid "could not read symbolic link \"%s\"" +#~ msgstr "n'a pas pu lire le lien symbolique « %s »" -#~ msgid "Invalid command \\%s. Try \\? for help.\n" -#~ msgstr "Commande \\%s invalide. Essayez \\? pour l'aide-mémoire.\n" +#~ msgid "could not set variable \"%s\"\n" +#~ msgstr "n'a pas pu initialiser la variable « %s »\n" -#~ msgid "child process was terminated by signal %d" -#~ msgstr "le processus fils a été terminé par le signal %d" +#~ msgid "could not stat file \"%s\": %s\n" +#~ msgstr "n'a pas pu tester le fichier « %s » : %s\n" -#~ msgid "child process was terminated by signal %s" -#~ msgstr "le processus fils a été terminé par le signal %s" +#~ msgid "data type" +#~ msgstr "type de données" + +#~ msgid "default %s" +#~ msgstr "Par défaut, %s" + +#~ msgid "define a new constraint trigger" +#~ msgstr "définir une nouvelle contrainte de déclenchement" + +#~ msgid "from_list" +#~ msgstr "liste_from" + +#~ msgid "input_data_type" +#~ msgstr "type_de_données_en_entrée" + +#~ msgid "lock a named relation (table, etc)" +#~ msgstr "verrouille une relation nommée (table, etc)" + +#~ msgid "new_column" +#~ msgstr "nouvelle_colonne" + +#~ msgid "normal" +#~ msgstr "normal" + +#~ msgid "not null" +#~ msgstr "non NULL" + +#~ msgid "old_version" +#~ msgstr "ancienne_version" #~ msgid "pclose failed: %s" #~ msgstr "échec de pclose : %s" -#~ msgid "could not read symbolic link \"%s\"" -#~ msgstr "n'a pas pu lire le lien symbolique « %s »" +#~ msgid "rolename" +#~ msgstr "nom_rôle" -#~ msgid "could not change directory to \"%s\": %s" -#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s" +#~ msgid "serialtype" +#~ msgstr "serialtype" -#~ msgid "could not identify current directory: %s" -#~ msgstr "n'a pas pu identifier le répertoire courant : %s" +#~ msgid "statistic_type" +#~ msgstr "type_statistique" + +#~ msgid "string_literal" +#~ msgstr "littéral_chaîne" + +#~ msgid "tablespace" +#~ msgstr "tablespace" + +#~ msgid "unterminated quoted string\n" +#~ msgstr "chaîne entre guillemets non terminée\n" + +#~ msgid "using_list" +#~ msgstr "liste_using" diff -Nru postgresql-13-13.4/src/bin/psql/po/ru.po postgresql-13-13.7/src/bin/psql/po/ru.po --- postgresql-13-13.4/src/bin/psql/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/psql/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -4,13 +4,14 @@ # Serguei A. Mokhov , 2001-2005. # Oleg Bartunov , 2004-2005. # Sergey Burladyan , 2012. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022. +# Maxim Yablokov , 2021. msgid "" msgstr "" "Project-Id-Version: psql (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-02-08 07:28+0300\n" -"PO-Revision-Date: 2020-11-20 15:23+0300\n" +"POT-Creation-Date: 2022-04-26 13:44+0300\n" +"PO-Revision-Date: 2022-02-07 11:38+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -35,43 +36,43 @@ msgid "warning: " msgstr "предупреждение: " -#: ../../common/exec.c:137 ../../common/exec.c:254 ../../common/exec.c:300 +#: ../../common/exec.c:142 ../../common/exec.c:259 ../../common/exec.c:305 #, c-format msgid "could not identify current directory: %m" msgstr "не удалось определить текущий каталог: %m" -#: ../../common/exec.c:156 +#: ../../common/exec.c:161 #, c-format msgid "invalid binary \"%s\"" msgstr "неверный исполняемый файл \"%s\"" -#: ../../common/exec.c:206 +#: ../../common/exec.c:211 #, c-format msgid "could not read binary \"%s\"" msgstr "не удалось прочитать исполняемый файл \"%s\"" -#: ../../common/exec.c:214 +#: ../../common/exec.c:219 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:270 ../../common/exec.c:309 +#: ../../common/exec.c:275 ../../common/exec.c:314 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: ../../common/exec.c:287 +#: ../../common/exec.c:292 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "не удалось прочитать символическую ссылку \"%s\": %m" -#: ../../common/exec.c:410 +#: ../../common/exec.c:415 #, c-format msgid "pclose failed: %m" msgstr "ошибка pclose: %m" -#: ../../common/exec.c:539 ../../common/exec.c:584 ../../common/exec.c:676 -#: command.c:1255 command.c:3173 command.c:3222 command.c:3339 input.c:227 +#: ../../common/exec.c:544 ../../common/exec.c:589 ../../common/exec.c:681 +#: command.c:1256 command.c:3201 command.c:3250 command.c:3367 input.c:227 #: mainloop.c:81 mainloop.c:402 #, c-format msgid "out of memory" @@ -93,7 +94,7 @@ msgid "could not look up effective user ID %ld: %s" msgstr "выяснить эффективный идентификатор пользователя (%ld) не удалось: %s" -#: ../../common/username.c:45 command.c:559 +#: ../../common/username.c:45 command.c:560 msgid "user does not exist" msgstr "пользователь не существует" @@ -132,11 +133,11 @@ msgid "child process exited with unrecognized status %d" msgstr "дочерний процесс завершился с нераспознанным состоянием %d" -#: ../../fe_utils/cancel.c:161 ../../fe_utils/cancel.c:206 +#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 msgid "Cancel request sent\n" msgstr "Сигнал отмены отправлен\n" -#: ../../fe_utils/cancel.c:165 ../../fe_utils/cancel.c:210 +#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 msgid "Could not send cancel request: " msgstr "Отправить сигнал отмены не удалось: " @@ -148,24 +149,24 @@ msgstr[1] "(%lu строки)" msgstr[2] "(%lu строк)" -#: ../../fe_utils/print.c:3055 +#: ../../fe_utils/print.c:3056 #, c-format msgid "Interrupted\n" msgstr "Прервано\n" -#: ../../fe_utils/print.c:3119 +#: ../../fe_utils/print.c:3120 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "" "Ошибка добавления заголовка таблицы: превышен предел числа столбцов (%d).\n" -#: ../../fe_utils/print.c:3159 +#: ../../fe_utils/print.c:3160 #, c-format msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" msgstr "" "Ошибка добавления ячейки в таблицу: превышен предел числа ячеек (%d).\n" -#: ../../fe_utils/print.c:3414 +#: ../../fe_utils/print.c:3418 #, c-format msgid "invalid output format (internal error): %d" msgstr "неверный формат вывода (внутренняя ошибка): %d" @@ -175,44 +176,44 @@ msgid "skipping recursive expansion of variable \"%s\"" msgstr "рекурсивное расширение переменной \"%s\" пропускается" -#: command.c:224 +#: command.c:225 #, c-format msgid "invalid command \\%s" msgstr "неверная команда \\%s" -#: command.c:226 +#: command.c:227 #, c-format msgid "Try \\? for help." msgstr "Введите \\? для получения справки." -#: command.c:244 +#: command.c:245 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: лишний аргумент \"%s\" пропущен" -#: command.c:296 +#: command.c:297 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "" "команда \\%s игнорируется; добавьте \\endif или нажмите Ctrl-C для " "завершения текущего блока \\if" -#: command.c:557 +#: command.c:558 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "не удалось получить домашний каталог пользователя c ид. %ld: %s" -#: command.c:575 +#: command.c:576 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: не удалось перейти в каталог \"%s\": %m" -#: command.c:600 +#: command.c:601 #, c-format msgid "You are currently not connected to a database.\n" msgstr "В данный момент вы не подключены к базе данных.\n" -#: command.c:613 +#: command.c:614 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at " @@ -221,7 +222,7 @@ "Вы подключены к базе данных \"%s\" как пользователь \"%s\" (адрес сервера " "\"%s\", порт \"%s\").\n" -#: command.c:616 +#: command.c:617 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at " @@ -230,7 +231,7 @@ "Вы подключены к базе данных \"%s\" как пользователь \"%s\" через сокет в \"%s" "\", порт \"%s\".\n" -#: command.c:622 +#: command.c:623 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address " @@ -239,7 +240,7 @@ "Вы подключены к базе данных \"%s\" как пользователь \"%s\" (сервер \"%s\": " "адрес \"%s\", порт \"%s\").\n" -#: command.c:625 +#: command.c:626 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port " @@ -248,169 +249,170 @@ "Вы подключены к базе данных \"%s\" как пользователь \"%s\" (сервер \"%s\", " "порт \"%s\").\n" -#: command.c:965 command.c:1061 command.c:2550 +#: command.c:966 command.c:1062 command.c:2559 #, c-format msgid "no query buffer" msgstr "нет буфера запросов" -#: command.c:998 command.c:5171 +#: command.c:999 command.c:5219 #, c-format msgid "invalid line number: %s" msgstr "неверный номер строки: %s" -#: command.c:1052 +#: command.c:1053 #, c-format msgid "The server (version %s) does not support editing function source." msgstr "" "Сервер (версия %s) не поддерживает редактирование исходного кода функции." -#: command.c:1055 +#: command.c:1056 #, c-format msgid "The server (version %s) does not support editing view definitions." msgstr "" "Сервер (версия %s) не поддерживает редактирование определения представления." -#: command.c:1137 +#: command.c:1138 msgid "No changes" msgstr "Изменений нет" -#: command.c:1216 +#: command.c:1217 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "" "%s: неверное название кодировки символов или не найдена процедура " "перекодировки" -#: command.c:1251 command.c:1992 command.c:3169 command.c:3361 command.c:5273 -#: common.c:174 common.c:223 common.c:388 common.c:1244 common.c:1272 -#: common.c:1380 common.c:1487 common.c:1525 copy.c:488 copy.c:707 help.c:62 +#: command.c:1252 command.c:2004 command.c:3197 command.c:3389 command.c:5321 +#: common.c:176 common.c:225 common.c:390 common.c:1246 common.c:1274 +#: common.c:1383 common.c:1490 common.c:1528 copy.c:488 copy.c:707 help.c:62 #: large_obj.c:157 large_obj.c:192 large_obj.c:254 startup.c:299 #, c-format msgid "%s" msgstr "%s" -#: command.c:1258 +#: command.c:1259 msgid "There is no previous error." msgstr "Ошибки не было." -#: command.c:1371 +#: command.c:1372 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: отсутствует правая скобка" -#: command.c:1548 command.c:1853 command.c:1867 command.c:1884 command.c:2044 -#: command.c:2281 command.c:2517 command.c:2557 +#: command.c:1549 command.c:1854 command.c:1868 command.c:1885 command.c:2053 +#: command.c:2290 command.c:2526 command.c:2566 #, c-format msgid "\\%s: missing required argument" msgstr "отсутствует необходимый аргумент \\%s" -#: command.c:1679 +#: command.c:1680 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif не может находиться после \\else" -#: command.c:1684 +#: command.c:1685 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif без соответствующего \\if" -#: command.c:1748 +#: command.c:1749 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else не может находиться после \\else" -#: command.c:1753 +#: command.c:1754 #, c-format msgid "\\else: no matching \\if" msgstr "\\else без соответствующего \\if" -#: command.c:1793 +#: command.c:1794 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif без соответствующего \\if" -#: command.c:1948 +#: command.c:1949 msgid "Query buffer is empty." msgstr "Буфер запроса пуст." -#: command.c:1970 -msgid "Enter new password: " -msgstr "Введите новый пароль: " +#: command.c:1986 +#, c-format +msgid "Enter new password for user \"%s\": " +msgstr "Введите новый пароль для пользователя \"%s\": " -#: command.c:1971 +#: command.c:1989 msgid "Enter it again: " msgstr "Повторите его: " -#: command.c:1975 +#: command.c:1993 #, c-format msgid "Passwords didn't match." msgstr "Пароли не совпадают." -#: command.c:2074 +#: command.c:2083 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: не удалось прочитать значение переменной" -#: command.c:2177 +#: command.c:2186 msgid "Query buffer reset (cleared)." msgstr "Буфер запроса сброшен (очищен)." -#: command.c:2199 +#: command.c:2208 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "История записана в файл \"%s\".\n" -#: command.c:2286 +#: command.c:2295 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: имя переменной окружения не может содержать знак \"=\"" -#: command.c:2347 +#: command.c:2356 #, c-format msgid "The server (version %s) does not support showing function source." msgstr "Сервер (версия %s) не поддерживает вывод исходного кода функции." -#: command.c:2350 +#: command.c:2359 #, c-format msgid "The server (version %s) does not support showing view definitions." msgstr "Сервер (версия %s) не поддерживает вывод определения представлений." -#: command.c:2357 +#: command.c:2366 #, c-format msgid "function name is required" msgstr "требуется имя функции" -#: command.c:2359 +#: command.c:2368 #, c-format msgid "view name is required" msgstr "требуется имя представления" -#: command.c:2489 +#: command.c:2498 msgid "Timing is on." msgstr "Секундомер включён." -#: command.c:2491 +#: command.c:2500 msgid "Timing is off." msgstr "Секундомер выключен." -#: command.c:2576 command.c:2604 command.c:3771 command.c:3774 command.c:3777 -#: command.c:3783 command.c:3785 command.c:3793 command.c:3803 command.c:3812 -#: command.c:3826 command.c:3843 command.c:3901 common.c:70 copy.c:331 -#: copy.c:403 psqlscanslash.l:784 psqlscanslash.l:795 psqlscanslash.l:805 +#: command.c:2585 command.c:2613 command.c:3798 command.c:3801 command.c:3804 +#: command.c:3810 command.c:3812 command.c:3838 command.c:3848 command.c:3860 +#: command.c:3874 command.c:3891 command.c:3949 common.c:72 copy.c:331 +#: copy.c:403 psqlscanslash.l:786 psqlscanslash.l:797 psqlscanslash.l:807 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2988 startup.c:236 startup.c:287 +#: command.c:2997 startup.c:236 startup.c:287 msgid "Password: " msgstr "Пароль: " -#: command.c:2993 startup.c:284 +#: command.c:3002 startup.c:284 #, c-format msgid "Password for user %s: " msgstr "Пароль пользователя %s: " -#: command.c:3047 +#: command.c:3056 #, c-format msgid "" "All connection parameters must be supplied because no database connection " @@ -418,17 +420,17 @@ msgstr "" "Без подключения к базе данных необходимо указывать все параметры подключения" -#: command.c:3367 +#: command.c:3395 #, c-format msgid "Previous connection kept" msgstr "Сохранено предыдущее подключение" -#: command.c:3373 +#: command.c:3401 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3420 +#: command.c:3448 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at " @@ -437,7 +439,7 @@ "Сейчас вы подключены к базе данных \"%s\" как пользователь \"%s\" (адрес " "сервера \"%s\", порт \"%s\").\n" -#: command.c:3423 +#: command.c:3451 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" " @@ -446,7 +448,7 @@ "Вы подключены к базе данных \"%s\" как пользователь \"%s\" через сокет в \"%s" "\", порт \"%s\".\n" -#: command.c:3429 +#: command.c:3457 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" on host \"%s" @@ -455,7 +457,7 @@ "Сейчас вы подключены к базе данных \"%s\" как пользователь \"%s\" (сервер " "\"%s\": адрес \"%s\", порт \"%s\").\n" -#: command.c:3432 +#: command.c:3460 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at " @@ -464,17 +466,17 @@ "Вы подключены к базе данных \"%s\" как пользователь \"%s\" (сервер \"%s\", " "порт \"%s\").\n" -#: command.c:3437 +#: command.c:3465 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "Вы подключены к базе данных \"%s\" как пользователь \"%s\".\n" -#: command.c:3470 +#: command.c:3498 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, сервер %s)\n" -#: command.c:3478 +#: command.c:3506 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -483,29 +485,29 @@ "ПРЕДУПРЕЖДЕНИЕ: %s имеет базовую версию %s, а сервер - %s.\n" " Часть функций psql может не работать.\n" -#: command.c:3517 +#: command.c:3545 #, c-format msgid "SSL connection (protocol: %s, cipher: %s, bits: %s, compression: %s)\n" msgstr "SSL-соединение (протокол: %s, шифр: %s, бит: %s, сжатие: %s)\n" -#: command.c:3518 command.c:3519 command.c:3520 +#: command.c:3546 command.c:3547 command.c:3548 msgid "unknown" msgstr "неизвестно" -#: command.c:3521 help.c:45 +#: command.c:3549 help.c:45 msgid "off" msgstr "выкл." -#: command.c:3521 help.c:45 +#: command.c:3549 help.c:45 msgid "on" msgstr "вкл." -#: command.c:3535 +#: command.c:3563 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "Соединение зашифровано GSSAPI\n" -#: command.c:3555 +#: command.c:3583 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -518,7 +520,7 @@ " Подробнее об этом смотрите документацию psql, раздел\n" " \"Notes for Windows users\".\n" -#: command.c:3659 +#: command.c:3687 #, c-format msgid "" "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a " @@ -527,33 +529,33 @@ "в переменной окружения PSQL_EDITOR_LINENUMBER_ARG должен быть указан номер " "строки" -#: command.c:3688 +#: command.c:3716 #, c-format msgid "could not start editor \"%s\"" msgstr "не удалось запустить редактор \"%s\"" -#: command.c:3690 +#: command.c:3718 #, c-format msgid "could not start /bin/sh" msgstr "не удалось запустить /bin/sh" -#: command.c:3728 +#: command.c:3755 #, c-format msgid "could not locate temporary directory: %s" msgstr "не удалось найти временный каталог: %s" -#: command.c:3755 +#: command.c:3782 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "не удалось открыть временный файл \"%s\": %m" -#: command.c:4060 +#: command.c:4108 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "" "\\pset: неоднозначному сокращению \"%s\" соответствует и \"%s\", и \"%s\"" -#: command.c:4080 +#: command.c:4128 #, c-format msgid "" "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-" @@ -562,32 +564,32 @@ "\\pset: допустимые форматы: aligned, asciidoc, csv, html, latex, latex-" "longtable, troff-ms, unaligned, wrapped" -#: command.c:4099 +#: command.c:4147 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: допустимые стили линий: ascii, old-ascii, unicode" -#: command.c:4114 +#: command.c:4162 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: допустимые стили Unicode-линий границ: single, double" -#: command.c:4129 +#: command.c:4177 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: допустимые стили Unicode-линий столбцов: single, double" -#: command.c:4144 +#: command.c:4192 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: допустимые стили Unicode-линий заголовков: single, double" -#: command.c:4187 +#: command.c:4235 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: символ csv_fieldsep должен быть однобайтовым" -#: command.c:4192 +#: command.c:4240 #, c-format msgid "" "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage " @@ -596,107 +598,107 @@ "\\pset: в качестве csv_fieldsep нельзя выбрать символ кавычек, новой строки " "или возврата каретки" -#: command.c:4329 command.c:4517 +#: command.c:4377 command.c:4565 #, c-format msgid "\\pset: unknown option: %s" msgstr "неизвестный параметр \\pset: %s" -#: command.c:4349 +#: command.c:4397 #, c-format msgid "Border style is %d.\n" msgstr "Стиль границ: %d.\n" -#: command.c:4355 +#: command.c:4403 #, c-format msgid "Target width is unset.\n" msgstr "Ширина вывода сброшена.\n" -#: command.c:4357 +#: command.c:4405 #, c-format msgid "Target width is %d.\n" msgstr "Ширина вывода: %d.\n" -#: command.c:4364 +#: command.c:4412 #, c-format msgid "Expanded display is on.\n" msgstr "Расширенный вывод включён.\n" -#: command.c:4366 +#: command.c:4414 #, c-format msgid "Expanded display is used automatically.\n" msgstr "Расширенный вывод применяется автоматически.\n" -#: command.c:4368 +#: command.c:4416 #, c-format msgid "Expanded display is off.\n" msgstr "Расширенный вывод выключен.\n" -#: command.c:4374 +#: command.c:4422 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Разделитель полей для CSV: \"%s\".\n" -#: command.c:4382 command.c:4390 +#: command.c:4430 command.c:4438 #, c-format msgid "Field separator is zero byte.\n" msgstr "Разделитель полей - нулевой байт.\n" -#: command.c:4384 +#: command.c:4432 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Разделитель полей: \"%s\".\n" -#: command.c:4397 +#: command.c:4445 #, c-format msgid "Default footer is on.\n" msgstr "Строка итогов включена.\n" -#: command.c:4399 +#: command.c:4447 #, c-format msgid "Default footer is off.\n" msgstr "Строка итогов выключена.\n" -#: command.c:4405 +#: command.c:4453 #, c-format msgid "Output format is %s.\n" msgstr "Формат вывода: %s.\n" -#: command.c:4411 +#: command.c:4459 #, c-format msgid "Line style is %s.\n" msgstr "Установлен стиль линий: %s.\n" -#: command.c:4418 +#: command.c:4466 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null выводится как: \"%s\".\n" -#: command.c:4426 +#: command.c:4474 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "Локализованный вывод чисел включён.\n" -#: command.c:4428 +#: command.c:4476 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "Локализованный вывод чисел выключен.\n" -#: command.c:4435 +#: command.c:4483 #, c-format msgid "Pager is used for long output.\n" msgstr "Постраничник используется для вывода длинного текста.\n" -#: command.c:4437 +#: command.c:4485 #, c-format msgid "Pager is always used.\n" msgstr "Постраничник используется всегда.\n" -#: command.c:4439 +#: command.c:4487 #, c-format msgid "Pager usage is off.\n" msgstr "Постраничник выключен.\n" -#: command.c:4445 +#: command.c:4493 #, c-format msgid "Pager won't be used for less than %d line.\n" msgid_plural "Pager won't be used for less than %d lines.\n" @@ -704,87 +706,87 @@ msgstr[1] "Постраничник не будет использоваться, если строк меньше %d\n" msgstr[2] "Постраничник не будет использоваться, если строк меньше %d\n" -#: command.c:4455 command.c:4465 +#: command.c:4503 command.c:4513 #, c-format msgid "Record separator is zero byte.\n" msgstr "Разделитель записей - нулевой байт.\n" -#: command.c:4457 +#: command.c:4505 #, c-format msgid "Record separator is .\n" msgstr "Разделитель записей: <новая строка>.\n" -#: command.c:4459 +#: command.c:4507 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Разделитель записей: \"%s\".\n" -#: command.c:4472 +#: command.c:4520 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Атрибуты HTML-таблицы: \"%s\".\n" -#: command.c:4475 +#: command.c:4523 #, c-format msgid "Table attributes unset.\n" msgstr "Атрибуты HTML-таблицы не заданы.\n" -#: command.c:4482 +#: command.c:4530 #, c-format msgid "Title is \"%s\".\n" msgstr "Заголовок: \"%s\".\n" -#: command.c:4484 +#: command.c:4532 #, c-format msgid "Title is unset.\n" msgstr "Заголовок не задан.\n" -#: command.c:4491 +#: command.c:4539 #, c-format msgid "Tuples only is on.\n" msgstr "Режим вывода только кортежей включён.\n" -#: command.c:4493 +#: command.c:4541 #, c-format msgid "Tuples only is off.\n" msgstr "Режим вывода только кортежей выключен.\n" -#: command.c:4499 +#: command.c:4547 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Стиль Unicode-линий границ: \"%s\".\n" -#: command.c:4505 +#: command.c:4553 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Стиль Unicode-линий столбцов: \"%s\".\n" -#: command.c:4511 +#: command.c:4559 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Стиль Unicode-линий границ: \"%s\".\n" -#: command.c:4744 +#: command.c:4792 #, c-format msgid "\\!: failed" msgstr "\\!: ошибка" -#: command.c:4769 common.c:648 +#: command.c:4817 common.c:650 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch нельзя использовать с пустым запросом" -#: command.c:4810 +#: command.c:4858 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (обновление: %g с)\n" -#: command.c:4813 +#: command.c:4861 #, c-format msgid "%s (every %gs)\n" msgstr "%s (обновление: %g с)\n" -#: command.c:4867 command.c:4874 common.c:548 common.c:555 common.c:1227 +#: command.c:4915 command.c:4922 common.c:550 common.c:557 common.c:1229 #, c-format msgid "" "********* QUERY **********\n" @@ -797,89 +799,89 @@ "**************************\n" "\n" -#: command.c:5066 +#: command.c:5114 #, c-format msgid "\"%s.%s\" is not a view" msgstr "\"%s.%s\" — не представление" -#: command.c:5082 +#: command.c:5130 #, c-format msgid "could not parse reloptions array" msgstr "не удалось разобрать массив reloptions" -#: common.c:159 +#: common.c:161 #, c-format msgid "cannot escape without active connection" msgstr "экранирование строк не работает без подключения к БД" -#: common.c:200 +#: common.c:202 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"" msgstr "" "аргумент команды оболочки содержит символ новой строки или перевода каретки: " "\"%s\"" -#: common.c:304 +#: common.c:306 #, c-format msgid "connection to server was lost" msgstr "подключение к серверу было потеряно" -#: common.c:308 +#: common.c:310 #, c-format msgid "The connection to the server was lost. Attempting reset: " msgstr "Подключение к серверу потеряно. Попытка восстановления " -#: common.c:313 +#: common.c:315 #, c-format msgid "Failed.\n" msgstr "неудачна.\n" -#: common.c:326 +#: common.c:328 #, c-format msgid "Succeeded.\n" msgstr "удачна.\n" -#: common.c:378 common.c:945 common.c:1162 +#: common.c:380 common.c:947 common.c:1164 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "неожиданное значение PQresultStatus: %d" -#: common.c:487 +#: common.c:489 #, c-format msgid "Time: %.3f ms\n" msgstr "Время: %.3f мс\n" -#: common.c:502 +#: common.c:504 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "Время: %.3f мс (%02d:%06.3f)\n" -#: common.c:511 +#: common.c:513 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "Время: %.3f мс (%02d:%02d:%06.3f)\n" -#: common.c:518 +#: common.c:520 #, c-format msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" msgstr "Время: %.3f мс (%.0f д. %02d:%02d:%06.3f)\n" -#: common.c:542 common.c:600 common.c:1198 +#: common.c:544 common.c:602 common.c:1200 #, c-format msgid "You are currently not connected to a database." msgstr "В данный момент вы не подключены к базе данных." -#: common.c:655 +#: common.c:657 #, c-format msgid "\\watch cannot be used with COPY" msgstr "\\watch нельзя использовать с COPY" -#: common.c:660 +#: common.c:662 #, c-format msgid "unexpected result status for \\watch" msgstr "неожиданное состояние результата для \\watch" -#: common.c:690 +#: common.c:692 #, c-format msgid "" "Asynchronous notification \"%s\" with payload \"%s\" received from server " @@ -888,34 +890,34 @@ "Получено асинхронное уведомление \"%s\" с сообщением-нагрузкой \"%s\" от " "серверного процесса с PID %d.\n" -#: common.c:693 +#: common.c:695 #, c-format msgid "" "Asynchronous notification \"%s\" received from server process with PID %d.\n" msgstr "" "Получено асинхронное уведомление \"%s\" от серверного процесса с PID %d.\n" -#: common.c:726 common.c:743 +#: common.c:728 common.c:745 #, c-format msgid "could not print result table: %m" msgstr "не удалось вывести таблицу результатов: %m" -#: common.c:764 +#: common.c:766 #, c-format msgid "no rows returned for \\gset" msgstr "сервер не возвратил строк для \\gset" -#: common.c:769 +#: common.c:771 #, c-format msgid "more than one row returned for \\gset" msgstr "сервер возвратил больше одной строки для \\gset" -#: common.c:787 +#: common.c:789 #, c-format msgid "attempt to \\gset into specially treated variable \"%s\" ignored" msgstr "попытка выполнить \\gset со специальной переменной \"%s\" игнорируется" -#: common.c:1207 +#: common.c:1209 #, c-format msgid "" "***(Single step mode: verify " @@ -929,35 +931,35 @@ "%s\n" "***(Enter - выполнение; x и Enter - отмена)**************\n" -#: common.c:1262 +#: common.c:1264 #, c-format msgid "" "The server (version %s) does not support savepoints for ON_ERROR_ROLLBACK." msgstr "" "Сервер (версия %s) не поддерживает точки сохранения для ON_ERROR_ROLLBACK." -#: common.c:1325 +#: common.c:1327 #, c-format msgid "STATEMENT: %s" msgstr "ОПЕРАТОР: %s" -#: common.c:1368 +#: common.c:1371 #, c-format msgid "unexpected transaction status (%d)" msgstr "неожиданное состояние транзакции (%d)" -#: common.c:1509 describe.c:2001 +#: common.c:1512 describe.c:2001 msgid "Column" msgstr "Столбец" -#: common.c:1510 describe.c:177 describe.c:393 describe.c:411 describe.c:456 +#: common.c:1513 describe.c:177 describe.c:393 describe.c:411 describe.c:456 #: describe.c:473 describe.c:962 describe.c:1126 describe.c:1711 -#: describe.c:1735 describe.c:2002 describe.c:3733 describe.c:3943 -#: describe.c:4176 describe.c:5382 +#: describe.c:1735 describe.c:2002 describe.c:3756 describe.c:3966 +#: describe.c:4199 describe.c:5405 msgid "Type" msgstr "Тип" -#: common.c:1559 +#: common.c:1562 #, c-format msgid "The command has no result, or the result has no columns.\n" msgstr "Команда не выдала результат, либо в результате нет столбцов.\n" @@ -1089,20 +1091,20 @@ msgstr "\\crosstabview: имя столбца не найдено: \"%s\"" #: describe.c:75 describe.c:373 describe.c:678 describe.c:810 describe.c:954 -#: describe.c:1115 describe.c:1187 describe.c:3722 describe.c:3930 -#: describe.c:4174 describe.c:4265 describe.c:4532 describe.c:4692 -#: describe.c:4933 describe.c:5008 describe.c:5019 describe.c:5081 -#: describe.c:5506 describe.c:5589 +#: describe.c:1115 describe.c:1187 describe.c:3745 describe.c:3953 +#: describe.c:4197 describe.c:4288 describe.c:4555 describe.c:4715 +#: describe.c:4956 describe.c:5031 describe.c:5042 describe.c:5104 +#: describe.c:5529 describe.c:5612 msgid "Schema" msgstr "Схема" #: describe.c:76 describe.c:174 describe.c:242 describe.c:250 describe.c:374 #: describe.c:679 describe.c:811 describe.c:872 describe.c:955 describe.c:1188 -#: describe.c:3723 describe.c:3931 describe.c:4097 describe.c:4175 -#: describe.c:4266 describe.c:4345 describe.c:4533 describe.c:4617 -#: describe.c:4693 describe.c:4934 describe.c:5009 describe.c:5020 -#: describe.c:5082 describe.c:5279 describe.c:5363 describe.c:5587 -#: describe.c:5759 describe.c:5999 +#: describe.c:3746 describe.c:3954 describe.c:4120 describe.c:4198 +#: describe.c:4289 describe.c:4368 describe.c:4556 describe.c:4640 +#: describe.c:4716 describe.c:4957 describe.c:5032 describe.c:5043 +#: describe.c:5105 describe.c:5302 describe.c:5386 describe.c:5610 +#: describe.c:5782 describe.c:6022 msgid "Name" msgstr "Имя" @@ -1117,12 +1119,12 @@ #: describe.c:110 describe.c:117 describe.c:185 describe.c:273 describe.c:513 #: describe.c:727 describe.c:826 describe.c:897 describe.c:1190 describe.c:2020 -#: describe.c:3510 describe.c:3783 describe.c:3977 describe.c:4128 -#: describe.c:4202 describe.c:4275 describe.c:4358 describe.c:4441 -#: describe.c:4560 describe.c:4626 describe.c:4694 describe.c:4835 -#: describe.c:4877 describe.c:4950 describe.c:5012 describe.c:5021 -#: describe.c:5083 describe.c:5305 describe.c:5385 describe.c:5520 -#: describe.c:5590 large_obj.c:290 large_obj.c:300 +#: describe.c:3533 describe.c:3806 describe.c:4000 describe.c:4151 +#: describe.c:4225 describe.c:4298 describe.c:4381 describe.c:4464 +#: describe.c:4583 describe.c:4649 describe.c:4717 describe.c:4858 +#: describe.c:4900 describe.c:4973 describe.c:5035 describe.c:5044 +#: describe.c:5106 describe.c:5328 describe.c:5408 describe.c:5543 +#: describe.c:5613 large_obj.c:290 large_obj.c:300 msgid "Description" msgstr "Описание" @@ -1139,11 +1141,11 @@ msgid "Index" msgstr "Индекс" -#: describe.c:176 describe.c:3741 describe.c:3956 describe.c:5507 +#: describe.c:176 describe.c:3764 describe.c:3979 describe.c:5530 msgid "Table" msgstr "Таблица" -#: describe.c:184 describe.c:5284 +#: describe.c:184 describe.c:5307 msgid "Handler" msgstr "Обработчик" @@ -1157,10 +1159,10 @@ msgstr "Сервер (версия %s) не поддерживает табличные пространства." #: describe.c:243 describe.c:251 describe.c:501 describe.c:717 describe.c:873 -#: describe.c:1114 describe.c:3734 describe.c:3932 describe.c:4101 -#: describe.c:4347 describe.c:4618 describe.c:5280 describe.c:5364 -#: describe.c:5760 describe.c:5897 describe.c:6000 describe.c:6115 -#: describe.c:6194 large_obj.c:289 +#: describe.c:1114 describe.c:3757 describe.c:3955 describe.c:4124 +#: describe.c:4370 describe.c:4641 describe.c:5303 describe.c:5387 +#: describe.c:5783 describe.c:5920 describe.c:6023 describe.c:6138 +#: describe.c:6217 large_obj.c:289 msgid "Owner" msgstr "Владелец" @@ -1168,11 +1170,11 @@ msgid "Location" msgstr "Расположение" -#: describe.c:263 describe.c:3327 +#: describe.c:263 describe.c:3350 msgid "Options" msgstr "Параметры" -#: describe.c:268 describe.c:690 describe.c:889 describe.c:3775 describe.c:3779 +#: describe.c:268 describe.c:690 describe.c:889 describe.c:3798 describe.c:3802 msgid "Size" msgstr "Размер" @@ -1293,8 +1295,8 @@ msgid "Result type" msgstr "Результирующий тип" -#: describe.c:819 describe.c:4353 describe.c:4418 describe.c:4424 -#: describe.c:4834 describe.c:6366 describe.c:6370 +#: describe.c:819 describe.c:4376 describe.c:4441 describe.c:4447 +#: describe.c:4857 describe.c:6389 describe.c:6393 msgid "Function" msgstr "Функция" @@ -1306,11 +1308,11 @@ msgid "Encoding" msgstr "Кодировка" -#: describe.c:879 describe.c:4534 +#: describe.c:879 describe.c:4557 msgid "Collate" msgstr "LC_COLLATE" -#: describe.c:880 describe.c:4535 +#: describe.c:880 describe.c:4558 msgid "Ctype" msgstr "LC_CTYPE" @@ -1322,27 +1324,27 @@ msgid "List of databases" msgstr "Список баз данных" -#: describe.c:956 describe.c:1117 describe.c:3724 +#: describe.c:956 describe.c:1117 describe.c:3747 msgid "table" msgstr "таблица" -#: describe.c:957 describe.c:3725 +#: describe.c:957 describe.c:3748 msgid "view" msgstr "представление" -#: describe.c:958 describe.c:3726 +#: describe.c:958 describe.c:3749 msgid "materialized view" msgstr "материализованное представление" -#: describe.c:959 describe.c:1119 describe.c:3728 +#: describe.c:959 describe.c:1119 describe.c:3751 msgid "sequence" msgstr "последовательность" -#: describe.c:960 describe.c:3730 +#: describe.c:960 describe.c:3753 msgid "foreign table" msgstr "сторонняя таблица" -#: describe.c:961 describe.c:3731 describe.c:3941 +#: describe.c:961 describe.c:3754 describe.c:3964 msgid "partitioned table" msgstr "секционированная таблица" @@ -1354,7 +1356,7 @@ msgid "Policies" msgstr "Политики" -#: describe.c:1070 describe.c:6056 describe.c:6060 +#: describe.c:1070 describe.c:6079 describe.c:6083 msgid "Access privileges" msgstr "Права доступа" @@ -1407,12 +1409,12 @@ msgid "Object descriptions" msgstr "Описание объекта" -#: describe.c:1402 describe.c:3847 +#: describe.c:1402 describe.c:3870 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "Отношение \"%s\" не найдено." -#: describe.c:1405 describe.c:3850 +#: describe.c:1405 describe.c:3873 #, c-format msgid "Did not find any relations." msgstr "Отношения не найдены." @@ -1438,13 +1440,13 @@ msgid "Increment" msgstr "Шаг" -#: describe.c:1716 describe.c:1740 describe.c:1871 describe.c:4269 -#: describe.c:4435 describe.c:4549 describe.c:4554 describe.c:6103 +#: describe.c:1716 describe.c:1740 describe.c:1871 describe.c:4292 +#: describe.c:4458 describe.c:4572 describe.c:4577 describe.c:6126 msgid "yes" msgstr "да" -#: describe.c:1717 describe.c:1741 describe.c:1872 describe.c:4269 -#: describe.c:4432 describe.c:4549 describe.c:6104 +#: describe.c:1717 describe.c:1741 describe.c:1872 describe.c:4292 +#: describe.c:4455 describe.c:4572 describe.c:6127 msgid "no" msgstr "нет" @@ -1546,15 +1548,15 @@ msgid "Partitioned table \"%s.%s\"" msgstr "Секционированная таблица \"%s.%s\"" -#: describe.c:2005 describe.c:4182 +#: describe.c:2005 describe.c:4205 msgid "Collation" msgstr "Правило сортировки" -#: describe.c:2006 describe.c:4189 +#: describe.c:2006 describe.c:4212 msgid "Nullable" msgstr "Допустимость NULL" -#: describe.c:2007 describe.c:4190 +#: describe.c:2007 describe.c:4213 msgid "Default" msgstr "По умолчанию" @@ -1567,8 +1569,8 @@ msgstr "Определение" # well-spelled: ОСД -#: describe.c:2014 describe.c:5300 describe.c:5384 describe.c:5455 -#: describe.c:5519 +#: describe.c:2014 describe.c:5323 describe.c:5407 describe.c:5478 +#: describe.c:5542 msgid "FDW options" msgstr "Параметры ОСД" @@ -1583,7 +1585,7 @@ #: describe.c:2135 #, c-format msgid "Partition of: %s %s" -msgstr "Секция из: %s %s" +msgstr "Секция: %s %s" #: describe.c:2147 msgid "No partition constraint" @@ -1707,147 +1709,147 @@ msgid "View definition:" msgstr "Определение представления:" -#: describe.c:3057 +#: describe.c:3080 msgid "Triggers:" msgstr "Триггеры:" -#: describe.c:3061 +#: describe.c:3084 msgid "Disabled user triggers:" msgstr "Отключённые пользовательские триггеры:" -#: describe.c:3063 +#: describe.c:3086 msgid "Disabled triggers:" msgstr "Отключённые триггеры:" -#: describe.c:3066 +#: describe.c:3089 msgid "Disabled internal triggers:" msgstr "Отключённые внутренние триггеры:" -#: describe.c:3069 +#: describe.c:3092 msgid "Triggers firing always:" msgstr "Триггеры, срабатывающие всегда:" -#: describe.c:3072 +#: describe.c:3095 msgid "Triggers firing on replica only:" msgstr "Триггеры, срабатывающие только в реплике:" -#: describe.c:3144 +#: describe.c:3167 #, c-format msgid "Server: %s" msgstr "Сервер: %s" # well-spelled: ОСД -#: describe.c:3152 +#: describe.c:3175 #, c-format msgid "FDW options: (%s)" msgstr "Параметр ОСД: (%s)" -#: describe.c:3173 +#: describe.c:3196 msgid "Inherits" msgstr "Наследует" -#: describe.c:3233 +#: describe.c:3256 #, c-format msgid "Number of partitions: %d" msgstr "Число секций: %d" -#: describe.c:3242 +#: describe.c:3265 #, c-format msgid "Number of partitions: %d (Use \\d+ to list them.)" msgstr "Число секций: %d (чтобы просмотреть их, введите \\d+)" -#: describe.c:3244 +#: describe.c:3267 #, c-format msgid "Number of child tables: %d (Use \\d+ to list them.)" msgstr "Дочерних таблиц: %d (чтобы просмотреть и их, воспользуйтесь \\d+)" -#: describe.c:3251 +#: describe.c:3274 msgid "Child tables" msgstr "Дочерние таблицы" -#: describe.c:3251 +#: describe.c:3274 msgid "Partitions" msgstr "Секции" -#: describe.c:3280 +#: describe.c:3303 #, c-format msgid "Typed table of type: %s" msgstr "Типизированная таблица типа: %s" -#: describe.c:3296 +#: describe.c:3319 msgid "Replica Identity" msgstr "Идентификация реплики" -#: describe.c:3309 +#: describe.c:3332 msgid "Has OIDs: yes" msgstr "Содержит OID: да" -#: describe.c:3318 +#: describe.c:3341 #, c-format msgid "Access method: %s" msgstr "Метод доступа: %s" -#: describe.c:3398 +#: describe.c:3421 #, c-format msgid "Tablespace: \"%s\"" msgstr "Табличное пространство: \"%s\"" #. translator: before this string there's an index description like #. '"foo_pkey" PRIMARY KEY, btree (a)' -#: describe.c:3410 +#: describe.c:3433 #, c-format msgid ", tablespace \"%s\"" msgstr ", табл. пространство \"%s\"" -#: describe.c:3503 +#: describe.c:3526 msgid "List of roles" msgstr "Список ролей" -#: describe.c:3505 +#: describe.c:3528 msgid "Role name" msgstr "Имя роли" -#: describe.c:3506 +#: describe.c:3529 msgid "Attributes" msgstr "Атрибуты" -#: describe.c:3507 +#: describe.c:3530 msgid "Member of" msgstr "Член ролей" -#: describe.c:3518 +#: describe.c:3541 msgid "Superuser" msgstr "Суперпользователь" -#: describe.c:3521 +#: describe.c:3544 msgid "No inheritance" msgstr "Не наследуется" -#: describe.c:3524 +#: describe.c:3547 msgid "Create role" msgstr "Создаёт роли" -#: describe.c:3527 +#: describe.c:3550 msgid "Create DB" msgstr "Создаёт БД" -#: describe.c:3530 +#: describe.c:3553 msgid "Cannot login" msgstr "Вход запрещён" -#: describe.c:3534 +#: describe.c:3557 msgid "Replication" msgstr "Репликация" -#: describe.c:3538 +#: describe.c:3561 msgid "Bypass RLS" msgstr "Пропускать RLS" -#: describe.c:3547 +#: describe.c:3570 msgid "No connections" msgstr "Нет подключений" -#: describe.c:3549 +#: describe.c:3572 #, c-format msgid "%d connection" msgid_plural "%d connections" @@ -1855,357 +1857,357 @@ msgstr[1] "%d подключения" msgstr[2] "%d подключений" -#: describe.c:3559 +#: describe.c:3582 msgid "Password valid until " msgstr "Пароль действует до " -#: describe.c:3609 +#: describe.c:3632 #, c-format msgid "The server (version %s) does not support per-database role settings." msgstr "" "Сервер (версия %s) не поддерживает назначение параметров ролей для баз " "данных." -#: describe.c:3622 +#: describe.c:3645 msgid "Role" msgstr "Роль" -#: describe.c:3623 +#: describe.c:3646 msgid "Database" msgstr "БД" -#: describe.c:3624 +#: describe.c:3647 msgid "Settings" msgstr "Параметры" -#: describe.c:3645 +#: describe.c:3668 #, c-format msgid "Did not find any settings for role \"%s\" and database \"%s\"." msgstr "Параметры для роли \"%s\" и базы данных \"%s\" не найдены." -#: describe.c:3648 +#: describe.c:3671 #, c-format msgid "Did not find any settings for role \"%s\"." msgstr "Параметры для роли \"%s\" не найдены." -#: describe.c:3651 +#: describe.c:3674 #, c-format msgid "Did not find any settings." msgstr "Никакие параметры не найдены." -#: describe.c:3656 +#: describe.c:3679 msgid "List of settings" msgstr "Список параметров" -#: describe.c:3727 +#: describe.c:3750 msgid "index" msgstr "индекс" # skip-rule: capital-letter-first -#: describe.c:3729 +#: describe.c:3752 msgid "special" msgstr "спец. отношение" -#: describe.c:3732 describe.c:3942 +#: describe.c:3755 describe.c:3965 msgid "partitioned index" msgstr "секционированный индекс" -#: describe.c:3756 +#: describe.c:3779 msgid "permanent" msgstr "постоянное" -#: describe.c:3757 +#: describe.c:3780 msgid "temporary" msgstr "временное" -#: describe.c:3758 +#: describe.c:3781 msgid "unlogged" msgstr "нежурналируемое" -#: describe.c:3759 +#: describe.c:3782 msgid "Persistence" msgstr "Хранение" -#: describe.c:3855 +#: describe.c:3878 msgid "List of relations" msgstr "Список отношений" -#: describe.c:3903 +#: describe.c:3926 #, c-format msgid "" "The server (version %s) does not support declarative table partitioning." msgstr "" "Сервер (версия %s) не поддерживает декларативное секционирование таблиц." -#: describe.c:3914 +#: describe.c:3937 msgid "List of partitioned indexes" msgstr "Список секционированных индексов" -#: describe.c:3916 +#: describe.c:3939 msgid "List of partitioned tables" msgstr "Список секционированных таблиц" -#: describe.c:3920 +#: describe.c:3943 msgid "List of partitioned relations" msgstr "Список секционированных отношений" -#: describe.c:3951 +#: describe.c:3974 msgid "Parent name" msgstr "Имя родителя" -#: describe.c:3964 +#: describe.c:3987 msgid "Leaf partition size" msgstr "Размер конечной секции" -#: describe.c:3967 describe.c:3973 +#: describe.c:3990 describe.c:3996 msgid "Total size" msgstr "Общий размер" -#: describe.c:4105 +#: describe.c:4128 msgid "Trusted" msgstr "Доверенный" -#: describe.c:4113 +#: describe.c:4136 msgid "Internal language" msgstr "Внутренний язык" -#: describe.c:4114 +#: describe.c:4137 msgid "Call handler" msgstr "Обработчик вызова" -#: describe.c:4115 describe.c:5287 +#: describe.c:4138 describe.c:5310 msgid "Validator" msgstr "Функция проверки" -#: describe.c:4118 +#: describe.c:4141 msgid "Inline handler" msgstr "Обработчик внедрённого кода" -#: describe.c:4146 +#: describe.c:4169 msgid "List of languages" msgstr "Список языков" -#: describe.c:4191 +#: describe.c:4214 msgid "Check" msgstr "Проверка" -#: describe.c:4233 +#: describe.c:4256 msgid "List of domains" msgstr "Список доменов" -#: describe.c:4267 +#: describe.c:4290 msgid "Source" msgstr "Источник" -#: describe.c:4268 +#: describe.c:4291 msgid "Destination" msgstr "Назначение" -#: describe.c:4270 describe.c:6105 +#: describe.c:4293 describe.c:6128 msgid "Default?" msgstr "По умолчанию?" -#: describe.c:4307 +#: describe.c:4330 msgid "List of conversions" msgstr "Список преобразований" -#: describe.c:4346 +#: describe.c:4369 msgid "Event" msgstr "Событие" -#: describe.c:4348 +#: describe.c:4371 msgid "enabled" msgstr "включён" -#: describe.c:4349 +#: describe.c:4372 msgid "replica" msgstr "реплика" -#: describe.c:4350 +#: describe.c:4373 msgid "always" msgstr "всегда" -#: describe.c:4351 +#: describe.c:4374 msgid "disabled" msgstr "отключён" -#: describe.c:4352 describe.c:6001 +#: describe.c:4375 describe.c:6024 msgid "Enabled" msgstr "Включён" -#: describe.c:4354 +#: describe.c:4377 msgid "Tags" msgstr "Теги" -#: describe.c:4373 +#: describe.c:4396 msgid "List of event triggers" msgstr "Список событийных триггеров" -#: describe.c:4402 +#: describe.c:4425 msgid "Source type" msgstr "Исходный тип" -#: describe.c:4403 +#: describe.c:4426 msgid "Target type" msgstr "Целевой тип" -#: describe.c:4434 +#: describe.c:4457 msgid "in assignment" msgstr "в присваивании" -#: describe.c:4436 +#: describe.c:4459 msgid "Implicit?" msgstr "Неявное?" -#: describe.c:4491 +#: describe.c:4514 msgid "List of casts" msgstr "Список приведений типов" -#: describe.c:4519 +#: describe.c:4542 #, c-format msgid "The server (version %s) does not support collations." msgstr "Сервер (версия %s) не поддерживает правила сравнения." -#: describe.c:4540 describe.c:4544 +#: describe.c:4563 describe.c:4567 msgid "Provider" -msgstr "Поставщик" +msgstr "Провайдер" -#: describe.c:4550 describe.c:4555 +#: describe.c:4573 describe.c:4578 msgid "Deterministic?" msgstr "Детерминированное?" -#: describe.c:4590 +#: describe.c:4613 msgid "List of collations" msgstr "Список правил сортировки" -#: describe.c:4649 +#: describe.c:4672 msgid "List of schemas" msgstr "Список схем" -#: describe.c:4674 describe.c:4921 describe.c:4992 describe.c:5063 +#: describe.c:4697 describe.c:4944 describe.c:5015 describe.c:5086 #, c-format msgid "The server (version %s) does not support full text search." msgstr "Сервер (версия %s) не поддерживает полнотекстовый поиск." -#: describe.c:4709 +#: describe.c:4732 msgid "List of text search parsers" msgstr "Список анализаторов текстового поиска" -#: describe.c:4754 +#: describe.c:4777 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "Анализатор текстового поиска \"%s\" не найден." -#: describe.c:4757 +#: describe.c:4780 #, c-format msgid "Did not find any text search parsers." msgstr "Никакие анализаторы текстового поиска не найдены." -#: describe.c:4832 +#: describe.c:4855 msgid "Start parse" msgstr "Начало разбора" -#: describe.c:4833 +#: describe.c:4856 msgid "Method" msgstr "Метод" -#: describe.c:4837 +#: describe.c:4860 msgid "Get next token" msgstr "Получение следующего фрагмента" -#: describe.c:4839 +#: describe.c:4862 msgid "End parse" msgstr "Окончание разбора" -#: describe.c:4841 +#: describe.c:4864 msgid "Get headline" msgstr "Получение выдержки" -#: describe.c:4843 +#: describe.c:4866 msgid "Get token types" msgstr "Получение типов фрагментов" -#: describe.c:4854 +#: describe.c:4877 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "Анализатор текстового поиска \"%s.%s\"" -#: describe.c:4857 +#: describe.c:4880 #, c-format msgid "Text search parser \"%s\"" msgstr "Анализатор текстового поиска \"%s\"" -#: describe.c:4876 +#: describe.c:4899 msgid "Token name" msgstr "Имя фрагмента" -#: describe.c:4887 +#: describe.c:4910 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "Типы фрагментов для анализатора \"%s.%s\"" -#: describe.c:4890 +#: describe.c:4913 #, c-format msgid "Token types for parser \"%s\"" msgstr "Типы фрагментов для анализатора \"%s\"" -#: describe.c:4944 +#: describe.c:4967 msgid "Template" msgstr "Шаблон" -#: describe.c:4945 +#: describe.c:4968 msgid "Init options" msgstr "Параметры инициализации" -#: describe.c:4967 +#: describe.c:4990 msgid "List of text search dictionaries" msgstr "Список словарей текстового поиска" -#: describe.c:5010 +#: describe.c:5033 msgid "Init" msgstr "Инициализация" -#: describe.c:5011 +#: describe.c:5034 msgid "Lexize" msgstr "Выделение лексем" -#: describe.c:5038 +#: describe.c:5061 msgid "List of text search templates" msgstr "Список шаблонов текстового поиска" -#: describe.c:5098 +#: describe.c:5121 msgid "List of text search configurations" msgstr "Список конфигураций текстового поиска" -#: describe.c:5144 +#: describe.c:5167 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "Конфигурация текстового поиска \"%s\" не найдена." -#: describe.c:5147 +#: describe.c:5170 #, c-format msgid "Did not find any text search configurations." msgstr "Никакие конфигурации текстового поиска не найдены." -#: describe.c:5213 +#: describe.c:5236 msgid "Token" msgstr "Фрагмент" -#: describe.c:5214 +#: describe.c:5237 msgid "Dictionaries" msgstr "Словари" -#: describe.c:5225 +#: describe.c:5248 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "Конфигурация текстового поиска \"%s.%s\"" -#: describe.c:5228 +#: describe.c:5251 #, c-format msgid "Text search configuration \"%s\"" msgstr "Конфигурация текстового поиска \"%s\"" -#: describe.c:5232 +#: describe.c:5255 #, c-format msgid "" "\n" @@ -2214,7 +2216,7 @@ "\n" "Анализатор: \"%s.%s\"" -#: describe.c:5235 +#: describe.c:5258 #, c-format msgid "" "\n" @@ -2223,232 +2225,232 @@ "\n" "Анализатор: \"%s\"" -#: describe.c:5269 +#: describe.c:5292 #, c-format msgid "The server (version %s) does not support foreign-data wrappers." msgstr "Сервер (версия %s) не поддерживает обёртки сторонних данных." -#: describe.c:5327 +#: describe.c:5350 msgid "List of foreign-data wrappers" msgstr "Список обёрток сторонних данных" -#: describe.c:5352 +#: describe.c:5375 #, c-format msgid "The server (version %s) does not support foreign servers." msgstr "Сервер (версия %s) не поддерживает сторонние серверы." -#: describe.c:5365 +#: describe.c:5388 msgid "Foreign-data wrapper" msgstr "Обёртка сторонних данных" -#: describe.c:5383 describe.c:5588 +#: describe.c:5406 describe.c:5611 msgid "Version" msgstr "Версия" -#: describe.c:5409 +#: describe.c:5432 msgid "List of foreign servers" msgstr "Список сторонних серверов" -#: describe.c:5434 +#: describe.c:5457 #, c-format msgid "The server (version %s) does not support user mappings." msgstr "Сервер (версия %s) не поддерживает сопоставления пользователей." -#: describe.c:5444 describe.c:5508 +#: describe.c:5467 describe.c:5531 msgid "Server" msgstr "Сервер" -#: describe.c:5445 +#: describe.c:5468 msgid "User name" msgstr "Имя пользователя" -#: describe.c:5470 +#: describe.c:5493 msgid "List of user mappings" msgstr "Список сопоставлений пользователей" -#: describe.c:5495 +#: describe.c:5518 #, c-format msgid "The server (version %s) does not support foreign tables." msgstr "Сервер (версия %s) не поддерживает сторонние таблицы." -#: describe.c:5548 +#: describe.c:5571 msgid "List of foreign tables" msgstr "Список сторонних таблиц" -#: describe.c:5573 describe.c:5630 +#: describe.c:5596 describe.c:5653 #, c-format msgid "The server (version %s) does not support extensions." msgstr "Сервер (версия %s) не поддерживает расширения." -#: describe.c:5605 +#: describe.c:5628 msgid "List of installed extensions" msgstr "Список установленных расширений" -#: describe.c:5658 +#: describe.c:5681 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "Расширение \"%s\" не найдено." -#: describe.c:5661 +#: describe.c:5684 #, c-format msgid "Did not find any extensions." msgstr "Никакие расширения не найдены." -#: describe.c:5705 +#: describe.c:5728 msgid "Object description" msgstr "Описание объекта" -#: describe.c:5715 +#: describe.c:5738 #, c-format msgid "Objects in extension \"%s\"" msgstr "Объекты в расширении \"%s\"" -#: describe.c:5744 describe.c:5820 +#: describe.c:5767 describe.c:5843 #, c-format msgid "The server (version %s) does not support publications." msgstr "Сервер (версия %s) не поддерживает публикации." -#: describe.c:5761 describe.c:5898 +#: describe.c:5784 describe.c:5921 msgid "All tables" msgstr "Все таблицы" -#: describe.c:5762 describe.c:5899 +#: describe.c:5785 describe.c:5922 msgid "Inserts" msgstr "Добавления" -#: describe.c:5763 describe.c:5900 +#: describe.c:5786 describe.c:5923 msgid "Updates" msgstr "Изменения" -#: describe.c:5764 describe.c:5901 +#: describe.c:5787 describe.c:5924 msgid "Deletes" msgstr "Удаления" -#: describe.c:5768 describe.c:5903 +#: describe.c:5791 describe.c:5926 msgid "Truncates" msgstr "Опустошения" -#: describe.c:5772 describe.c:5905 +#: describe.c:5795 describe.c:5928 msgid "Via root" msgstr "Через корень" -#: describe.c:5789 +#: describe.c:5812 msgid "List of publications" msgstr "Список публикаций" -#: describe.c:5862 +#: describe.c:5885 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "Публикация \"%s\" не найдена." -#: describe.c:5865 +#: describe.c:5888 #, c-format msgid "Did not find any publications." msgstr "Никакие публикации не найдены." -#: describe.c:5894 +#: describe.c:5917 #, c-format msgid "Publication %s" msgstr "Публикация %s" -#: describe.c:5942 +#: describe.c:5965 msgid "Tables:" msgstr "Таблицы:" -#: describe.c:5986 +#: describe.c:6009 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "Сервер (версия %s) не поддерживает подписки." -#: describe.c:6002 +#: describe.c:6025 msgid "Publication" msgstr "Публикация" -#: describe.c:6009 +#: describe.c:6032 msgid "Synchronous commit" msgstr "Синхронная фиксация" -#: describe.c:6010 +#: describe.c:6033 msgid "Conninfo" msgstr "Строка подключения" -#: describe.c:6032 +#: describe.c:6055 msgid "List of subscriptions" msgstr "Список подписок" -#: describe.c:6099 describe.c:6188 describe.c:6274 describe.c:6357 +#: describe.c:6122 describe.c:6211 describe.c:6297 describe.c:6380 msgid "AM" msgstr "МД" -#: describe.c:6100 +#: describe.c:6123 msgid "Input type" msgstr "Входной тип" -#: describe.c:6101 +#: describe.c:6124 msgid "Storage type" msgstr "Тип хранения" -#: describe.c:6102 +#: describe.c:6125 msgid "Operator class" msgstr "Класс операторов" -#: describe.c:6114 describe.c:6189 describe.c:6275 describe.c:6358 +#: describe.c:6137 describe.c:6212 describe.c:6298 describe.c:6381 msgid "Operator family" msgstr "Семейство операторов" -#: describe.c:6147 +#: describe.c:6170 msgid "List of operator classes" msgstr "Список классов операторов" -#: describe.c:6190 +#: describe.c:6213 msgid "Applicable types" msgstr "Применимые типы" -#: describe.c:6229 +#: describe.c:6252 msgid "List of operator families" msgstr "Список семейств операторов" -#: describe.c:6276 +#: describe.c:6299 msgid "Operator" msgstr "Оператор" -#: describe.c:6277 +#: describe.c:6300 msgid "Strategy" msgstr "Стратегия" -#: describe.c:6278 +#: describe.c:6301 msgid "ordering" msgstr "сортировка" -#: describe.c:6279 +#: describe.c:6302 msgid "search" msgstr "поиск" -#: describe.c:6280 +#: describe.c:6303 msgid "Purpose" msgstr "Назначение" -#: describe.c:6285 +#: describe.c:6308 msgid "Sort opfamily" msgstr "Семейство для сортировки" -#: describe.c:6316 +#: describe.c:6339 msgid "List of operators of operator families" msgstr "Список операторов из семейств операторов" -#: describe.c:6359 +#: describe.c:6382 msgid "Registered left type" msgstr "Зарегистрированный левый тип" -#: describe.c:6360 +#: describe.c:6383 msgid "Registered right type" msgstr "Зарегистрированный правый тип" -#: describe.c:6361 +#: describe.c:6384 msgid "Number" msgstr "Номер" -#: describe.c:6397 +#: describe.c:6420 msgid "List of support functions of operator families" msgstr "Список опорных функций из семейств операторов" @@ -3116,10 +3118,8 @@ #: help.c:234 #, c-format msgid "" -" \\dAp [AMPTRN [OPFPTRN]] list support functions of operator families\n" -msgstr "" -" \\dAp [МСК_МД [МСК_СОП]] список опорных функций из семейств " -"операторов\n" +" \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" +msgstr " \\dAp[+] [МСК_МД [МСК_СОП]] список опорных функций из семейств\n" #: help.c:235 #, c-format @@ -3240,8 +3240,8 @@ #: help.c:257 #, c-format -msgid " \\do[S] [PATTERN] list operators\n" -msgstr " \\do[S] [МАСКА] список операторов\n" +msgid " \\do[S+] [PATTERN] list operators\n" +msgstr " \\do[S+] [МАСКА] список операторов\n" #: help.c:258 #, c-format @@ -3314,8 +3314,8 @@ #: help.c:270 #, c-format -msgid " \\dy [PATTERN] list event triggers\n" -msgstr " \\dy [МАСКА] список событийных триггеров\n" +msgid " \\dy[+] [PATTERN] list event triggers\n" +msgstr " \\dy[+] [МАСКА] список событийных триггеров\n" #: help.c:271 #, c-format @@ -4366,12 +4366,12 @@ msgid "reached EOF without finding closing \\endif(s)" msgstr "в закончившемся потоке команд не хватает \\endif" -#: psqlscanslash.l:638 +#: psqlscanslash.l:640 #, c-format msgid "unterminated quoted string" msgstr "незавершённая строка в кавычках" -#: psqlscanslash.l:811 +#: psqlscanslash.l:813 #, c-format msgid "%s: out of memory" msgstr "%s: нехватка памяти" @@ -4384,192 +4384,193 @@ #: sql_help.c:249 sql_help.c:251 sql_help.c:263 sql_help.c:264 sql_help.c:265 #: sql_help.c:267 sql_help.c:316 sql_help.c:318 sql_help.c:320 sql_help.c:322 #: sql_help.c:391 sql_help.c:396 sql_help.c:398 sql_help.c:440 sql_help.c:442 -#: sql_help.c:445 sql_help.c:447 sql_help.c:515 sql_help.c:520 sql_help.c:525 -#: sql_help.c:530 sql_help.c:535 sql_help.c:588 sql_help.c:590 sql_help.c:592 -#: sql_help.c:594 sql_help.c:596 sql_help.c:599 sql_help.c:601 sql_help.c:604 -#: sql_help.c:615 sql_help.c:617 sql_help.c:658 sql_help.c:660 sql_help.c:662 -#: sql_help.c:665 sql_help.c:667 sql_help.c:669 sql_help.c:702 sql_help.c:706 -#: sql_help.c:710 sql_help.c:729 sql_help.c:732 sql_help.c:735 sql_help.c:764 -#: sql_help.c:776 sql_help.c:784 sql_help.c:787 sql_help.c:790 sql_help.c:805 -#: sql_help.c:808 sql_help.c:837 sql_help.c:842 sql_help.c:847 sql_help.c:852 -#: sql_help.c:857 sql_help.c:879 sql_help.c:881 sql_help.c:883 sql_help.c:885 -#: sql_help.c:888 sql_help.c:890 sql_help.c:931 sql_help.c:975 sql_help.c:980 -#: sql_help.c:985 sql_help.c:990 sql_help.c:995 sql_help.c:1014 sql_help.c:1025 -#: sql_help.c:1027 sql_help.c:1046 sql_help.c:1056 sql_help.c:1058 -#: sql_help.c:1060 sql_help.c:1072 sql_help.c:1076 sql_help.c:1078 -#: sql_help.c:1090 sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 -#: sql_help.c:1112 sql_help.c:1114 sql_help.c:1118 sql_help.c:1121 -#: sql_help.c:1122 sql_help.c:1123 sql_help.c:1126 sql_help.c:1128 -#: sql_help.c:1262 sql_help.c:1264 sql_help.c:1267 sql_help.c:1270 -#: sql_help.c:1272 sql_help.c:1274 sql_help.c:1277 sql_help.c:1280 -#: sql_help.c:1391 sql_help.c:1393 sql_help.c:1395 sql_help.c:1398 -#: sql_help.c:1419 sql_help.c:1422 sql_help.c:1425 sql_help.c:1428 -#: sql_help.c:1432 sql_help.c:1434 sql_help.c:1436 sql_help.c:1438 -#: sql_help.c:1452 sql_help.c:1455 sql_help.c:1457 sql_help.c:1459 -#: sql_help.c:1469 sql_help.c:1471 sql_help.c:1481 sql_help.c:1483 -#: sql_help.c:1493 sql_help.c:1496 sql_help.c:1519 sql_help.c:1521 -#: sql_help.c:1523 sql_help.c:1525 sql_help.c:1528 sql_help.c:1530 -#: sql_help.c:1533 sql_help.c:1536 sql_help.c:1586 sql_help.c:1629 -#: sql_help.c:1632 sql_help.c:1634 sql_help.c:1636 sql_help.c:1639 -#: sql_help.c:1641 sql_help.c:1643 sql_help.c:1646 sql_help.c:1696 -#: sql_help.c:1712 sql_help.c:1933 sql_help.c:2002 sql_help.c:2021 -#: sql_help.c:2034 sql_help.c:2091 sql_help.c:2098 sql_help.c:2108 -#: sql_help.c:2129 sql_help.c:2155 sql_help.c:2173 sql_help.c:2200 -#: sql_help.c:2295 sql_help.c:2340 sql_help.c:2364 sql_help.c:2387 -#: sql_help.c:2391 sql_help.c:2425 sql_help.c:2445 sql_help.c:2467 -#: sql_help.c:2481 sql_help.c:2501 sql_help.c:2524 sql_help.c:2554 -#: sql_help.c:2579 sql_help.c:2625 sql_help.c:2903 sql_help.c:2916 -#: sql_help.c:2933 sql_help.c:2949 sql_help.c:2989 sql_help.c:3041 -#: sql_help.c:3045 sql_help.c:3047 sql_help.c:3053 sql_help.c:3071 -#: sql_help.c:3098 sql_help.c:3133 sql_help.c:3145 sql_help.c:3154 -#: sql_help.c:3198 sql_help.c:3212 sql_help.c:3240 sql_help.c:3248 -#: sql_help.c:3260 sql_help.c:3270 sql_help.c:3278 sql_help.c:3286 -#: sql_help.c:3294 sql_help.c:3302 sql_help.c:3311 sql_help.c:3322 -#: sql_help.c:3330 sql_help.c:3338 sql_help.c:3346 sql_help.c:3354 -#: sql_help.c:3364 sql_help.c:3373 sql_help.c:3382 sql_help.c:3390 -#: sql_help.c:3400 sql_help.c:3411 sql_help.c:3419 sql_help.c:3428 -#: sql_help.c:3439 sql_help.c:3448 sql_help.c:3456 sql_help.c:3464 -#: sql_help.c:3472 sql_help.c:3480 sql_help.c:3488 sql_help.c:3496 -#: sql_help.c:3504 sql_help.c:3512 sql_help.c:3520 sql_help.c:3528 -#: sql_help.c:3545 sql_help.c:3554 sql_help.c:3562 sql_help.c:3579 -#: sql_help.c:3594 sql_help.c:3869 sql_help.c:3920 sql_help.c:3949 -#: sql_help.c:3962 sql_help.c:4407 sql_help.c:4455 sql_help.c:4596 +#: sql_help.c:445 sql_help.c:447 sql_help.c:516 sql_help.c:521 sql_help.c:526 +#: sql_help.c:531 sql_help.c:536 sql_help.c:589 sql_help.c:591 sql_help.c:593 +#: sql_help.c:595 sql_help.c:597 sql_help.c:600 sql_help.c:602 sql_help.c:605 +#: sql_help.c:616 sql_help.c:618 sql_help.c:660 sql_help.c:662 sql_help.c:664 +#: sql_help.c:667 sql_help.c:669 sql_help.c:671 sql_help.c:705 sql_help.c:709 +#: sql_help.c:713 sql_help.c:732 sql_help.c:735 sql_help.c:738 sql_help.c:767 +#: sql_help.c:779 sql_help.c:787 sql_help.c:790 sql_help.c:793 sql_help.c:808 +#: sql_help.c:811 sql_help.c:840 sql_help.c:845 sql_help.c:850 sql_help.c:855 +#: sql_help.c:860 sql_help.c:882 sql_help.c:884 sql_help.c:886 sql_help.c:888 +#: sql_help.c:891 sql_help.c:893 sql_help.c:934 sql_help.c:979 sql_help.c:984 +#: sql_help.c:989 sql_help.c:994 sql_help.c:999 sql_help.c:1018 sql_help.c:1029 +#: sql_help.c:1031 sql_help.c:1050 sql_help.c:1060 sql_help.c:1062 +#: sql_help.c:1064 sql_help.c:1076 sql_help.c:1080 sql_help.c:1082 +#: sql_help.c:1094 sql_help.c:1096 sql_help.c:1098 sql_help.c:1100 +#: sql_help.c:1116 sql_help.c:1118 sql_help.c:1122 sql_help.c:1125 +#: sql_help.c:1126 sql_help.c:1127 sql_help.c:1130 sql_help.c:1132 +#: sql_help.c:1266 sql_help.c:1268 sql_help.c:1271 sql_help.c:1274 +#: sql_help.c:1276 sql_help.c:1278 sql_help.c:1281 sql_help.c:1284 +#: sql_help.c:1395 sql_help.c:1397 sql_help.c:1399 sql_help.c:1402 +#: sql_help.c:1423 sql_help.c:1426 sql_help.c:1429 sql_help.c:1432 +#: sql_help.c:1436 sql_help.c:1438 sql_help.c:1440 sql_help.c:1442 +#: sql_help.c:1456 sql_help.c:1459 sql_help.c:1461 sql_help.c:1463 +#: sql_help.c:1473 sql_help.c:1475 sql_help.c:1485 sql_help.c:1487 +#: sql_help.c:1497 sql_help.c:1500 sql_help.c:1523 sql_help.c:1525 +#: sql_help.c:1527 sql_help.c:1529 sql_help.c:1532 sql_help.c:1534 +#: sql_help.c:1537 sql_help.c:1540 sql_help.c:1590 sql_help.c:1633 +#: sql_help.c:1636 sql_help.c:1638 sql_help.c:1640 sql_help.c:1643 +#: sql_help.c:1645 sql_help.c:1647 sql_help.c:1650 sql_help.c:1700 +#: sql_help.c:1716 sql_help.c:1937 sql_help.c:2006 sql_help.c:2025 +#: sql_help.c:2038 sql_help.c:2095 sql_help.c:2102 sql_help.c:2112 +#: sql_help.c:2133 sql_help.c:2159 sql_help.c:2177 sql_help.c:2205 +#: sql_help.c:2301 sql_help.c:2346 sql_help.c:2370 sql_help.c:2393 +#: sql_help.c:2397 sql_help.c:2431 sql_help.c:2451 sql_help.c:2473 +#: sql_help.c:2487 sql_help.c:2507 sql_help.c:2530 sql_help.c:2560 +#: sql_help.c:2585 sql_help.c:2631 sql_help.c:2909 sql_help.c:2922 +#: sql_help.c:2939 sql_help.c:2955 sql_help.c:2995 sql_help.c:3047 +#: sql_help.c:3051 sql_help.c:3053 sql_help.c:3059 sql_help.c:3077 +#: sql_help.c:3104 sql_help.c:3139 sql_help.c:3151 sql_help.c:3160 +#: sql_help.c:3204 sql_help.c:3218 sql_help.c:3246 sql_help.c:3254 +#: sql_help.c:3266 sql_help.c:3276 sql_help.c:3284 sql_help.c:3292 +#: sql_help.c:3300 sql_help.c:3308 sql_help.c:3317 sql_help.c:3328 +#: sql_help.c:3336 sql_help.c:3344 sql_help.c:3352 sql_help.c:3360 +#: sql_help.c:3370 sql_help.c:3379 sql_help.c:3388 sql_help.c:3396 +#: sql_help.c:3406 sql_help.c:3417 sql_help.c:3425 sql_help.c:3434 +#: sql_help.c:3445 sql_help.c:3454 sql_help.c:3462 sql_help.c:3470 +#: sql_help.c:3478 sql_help.c:3486 sql_help.c:3494 sql_help.c:3502 +#: sql_help.c:3510 sql_help.c:3518 sql_help.c:3526 sql_help.c:3534 +#: sql_help.c:3551 sql_help.c:3560 sql_help.c:3568 sql_help.c:3585 +#: sql_help.c:3600 sql_help.c:3875 sql_help.c:3926 sql_help.c:3955 +#: sql_help.c:3968 sql_help.c:4413 sql_help.c:4461 sql_help.c:4602 msgid "name" msgstr "имя" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:327 sql_help.c:1783 -#: sql_help.c:3213 sql_help.c:4193 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:327 sql_help.c:1787 +#: sql_help.c:3219 sql_help.c:4199 msgid "aggregate_signature" msgstr "сигнатура_агр_функции" #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:118 sql_help.c:250 -#: sql_help.c:268 sql_help.c:399 sql_help.c:446 sql_help.c:524 sql_help.c:571 -#: sql_help.c:589 sql_help.c:616 sql_help.c:666 sql_help.c:731 sql_help.c:786 -#: sql_help.c:807 sql_help.c:846 sql_help.c:891 sql_help.c:932 sql_help.c:984 -#: sql_help.c:1016 sql_help.c:1026 sql_help.c:1059 sql_help.c:1079 -#: sql_help.c:1093 sql_help.c:1129 sql_help.c:1271 sql_help.c:1392 -#: sql_help.c:1435 sql_help.c:1456 sql_help.c:1470 sql_help.c:1482 -#: sql_help.c:1495 sql_help.c:1522 sql_help.c:1587 sql_help.c:1640 +#: sql_help.c:268 sql_help.c:399 sql_help.c:446 sql_help.c:525 sql_help.c:572 +#: sql_help.c:590 sql_help.c:617 sql_help.c:668 sql_help.c:734 sql_help.c:789 +#: sql_help.c:810 sql_help.c:849 sql_help.c:894 sql_help.c:935 sql_help.c:988 +#: sql_help.c:1020 sql_help.c:1030 sql_help.c:1063 sql_help.c:1083 +#: sql_help.c:1097 sql_help.c:1133 sql_help.c:1275 sql_help.c:1396 +#: sql_help.c:1439 sql_help.c:1460 sql_help.c:1474 sql_help.c:1486 +#: sql_help.c:1499 sql_help.c:1526 sql_help.c:1591 sql_help.c:1644 msgid "new_name" msgstr "новое_имя" #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:120 sql_help.c:248 -#: sql_help.c:266 sql_help.c:397 sql_help.c:482 sql_help.c:529 sql_help.c:618 -#: sql_help.c:627 sql_help.c:685 sql_help.c:705 sql_help.c:734 sql_help.c:789 -#: sql_help.c:851 sql_help.c:889 sql_help.c:989 sql_help.c:1028 sql_help.c:1057 -#: sql_help.c:1077 sql_help.c:1091 sql_help.c:1127 sql_help.c:1332 -#: sql_help.c:1394 sql_help.c:1437 sql_help.c:1458 sql_help.c:1520 -#: sql_help.c:1635 sql_help.c:2889 +#: sql_help.c:266 sql_help.c:397 sql_help.c:482 sql_help.c:530 sql_help.c:619 +#: sql_help.c:628 sql_help.c:688 sql_help.c:708 sql_help.c:737 sql_help.c:792 +#: sql_help.c:854 sql_help.c:892 sql_help.c:993 sql_help.c:1032 sql_help.c:1061 +#: sql_help.c:1081 sql_help.c:1095 sql_help.c:1131 sql_help.c:1336 +#: sql_help.c:1398 sql_help.c:1441 sql_help.c:1462 sql_help.c:1524 +#: sql_help.c:1639 sql_help.c:2895 msgid "new_owner" msgstr "новый_владелец" #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:252 sql_help.c:319 -#: sql_help.c:448 sql_help.c:534 sql_help.c:668 sql_help.c:709 sql_help.c:737 -#: sql_help.c:792 sql_help.c:856 sql_help.c:994 sql_help.c:1061 sql_help.c:1095 -#: sql_help.c:1273 sql_help.c:1439 sql_help.c:1460 sql_help.c:1472 -#: sql_help.c:1484 sql_help.c:1524 sql_help.c:1642 +#: sql_help.c:448 sql_help.c:535 sql_help.c:670 sql_help.c:712 sql_help.c:740 +#: sql_help.c:795 sql_help.c:859 sql_help.c:998 sql_help.c:1065 sql_help.c:1099 +#: sql_help.c:1277 sql_help.c:1443 sql_help.c:1464 sql_help.c:1476 +#: sql_help.c:1488 sql_help.c:1528 sql_help.c:1646 msgid "new_schema" msgstr "новая_схема" -#: sql_help.c:44 sql_help.c:1847 sql_help.c:3214 sql_help.c:4222 +#: sql_help.c:44 sql_help.c:1851 sql_help.c:3220 sql_help.c:4228 msgid "where aggregate_signature is:" msgstr "где сигнатура_агр_функции:" #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:337 sql_help.c:350 -#: sql_help.c:354 sql_help.c:370 sql_help.c:373 sql_help.c:376 sql_help.c:516 -#: sql_help.c:521 sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:838 -#: sql_help.c:843 sql_help.c:848 sql_help.c:853 sql_help.c:858 sql_help.c:976 -#: sql_help.c:981 sql_help.c:986 sql_help.c:991 sql_help.c:996 sql_help.c:1801 -#: sql_help.c:1818 sql_help.c:1824 sql_help.c:1848 sql_help.c:1851 -#: sql_help.c:1854 sql_help.c:2003 sql_help.c:2022 sql_help.c:2025 -#: sql_help.c:2296 sql_help.c:2502 sql_help.c:3215 sql_help.c:3218 -#: sql_help.c:3221 sql_help.c:3312 sql_help.c:3401 sql_help.c:3429 -#: sql_help.c:3753 sql_help.c:4101 sql_help.c:4199 sql_help.c:4206 -#: sql_help.c:4212 sql_help.c:4223 sql_help.c:4226 sql_help.c:4229 +#: sql_help.c:354 sql_help.c:370 sql_help.c:373 sql_help.c:376 sql_help.c:517 +#: sql_help.c:522 sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:841 +#: sql_help.c:846 sql_help.c:851 sql_help.c:856 sql_help.c:861 sql_help.c:980 +#: sql_help.c:985 sql_help.c:990 sql_help.c:995 sql_help.c:1000 sql_help.c:1805 +#: sql_help.c:1822 sql_help.c:1828 sql_help.c:1852 sql_help.c:1855 +#: sql_help.c:1858 sql_help.c:2007 sql_help.c:2026 sql_help.c:2029 +#: sql_help.c:2302 sql_help.c:2508 sql_help.c:3221 sql_help.c:3224 +#: sql_help.c:3227 sql_help.c:3318 sql_help.c:3407 sql_help.c:3435 +#: sql_help.c:3759 sql_help.c:4107 sql_help.c:4205 sql_help.c:4212 +#: sql_help.c:4218 sql_help.c:4229 sql_help.c:4232 sql_help.c:4235 msgid "argmode" msgstr "режим_аргумента" #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:338 sql_help.c:351 -#: sql_help.c:355 sql_help.c:371 sql_help.c:374 sql_help.c:377 sql_help.c:517 -#: sql_help.c:522 sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:839 -#: sql_help.c:844 sql_help.c:849 sql_help.c:854 sql_help.c:859 sql_help.c:977 -#: sql_help.c:982 sql_help.c:987 sql_help.c:992 sql_help.c:997 sql_help.c:1802 -#: sql_help.c:1819 sql_help.c:1825 sql_help.c:1849 sql_help.c:1852 -#: sql_help.c:1855 sql_help.c:2004 sql_help.c:2023 sql_help.c:2026 -#: sql_help.c:2297 sql_help.c:2503 sql_help.c:3216 sql_help.c:3219 -#: sql_help.c:3222 sql_help.c:3313 sql_help.c:3402 sql_help.c:3430 -#: sql_help.c:4200 sql_help.c:4207 sql_help.c:4213 sql_help.c:4224 -#: sql_help.c:4227 sql_help.c:4230 +#: sql_help.c:355 sql_help.c:371 sql_help.c:374 sql_help.c:377 sql_help.c:518 +#: sql_help.c:523 sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:842 +#: sql_help.c:847 sql_help.c:852 sql_help.c:857 sql_help.c:862 sql_help.c:981 +#: sql_help.c:986 sql_help.c:991 sql_help.c:996 sql_help.c:1001 sql_help.c:1806 +#: sql_help.c:1823 sql_help.c:1829 sql_help.c:1853 sql_help.c:1856 +#: sql_help.c:1859 sql_help.c:2008 sql_help.c:2027 sql_help.c:2030 +#: sql_help.c:2303 sql_help.c:2509 sql_help.c:3222 sql_help.c:3225 +#: sql_help.c:3228 sql_help.c:3319 sql_help.c:3408 sql_help.c:3436 +#: sql_help.c:4206 sql_help.c:4213 sql_help.c:4219 sql_help.c:4230 +#: sql_help.c:4233 sql_help.c:4236 msgid "argname" msgstr "имя_аргумента" #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:339 sql_help.c:352 -#: sql_help.c:356 sql_help.c:372 sql_help.c:375 sql_help.c:378 sql_help.c:518 -#: sql_help.c:523 sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:840 -#: sql_help.c:845 sql_help.c:850 sql_help.c:855 sql_help.c:860 sql_help.c:978 -#: sql_help.c:983 sql_help.c:988 sql_help.c:993 sql_help.c:998 sql_help.c:1803 -#: sql_help.c:1820 sql_help.c:1826 sql_help.c:1850 sql_help.c:1853 -#: sql_help.c:1856 sql_help.c:2298 sql_help.c:2504 sql_help.c:3217 -#: sql_help.c:3220 sql_help.c:3223 sql_help.c:3314 sql_help.c:3403 -#: sql_help.c:3431 sql_help.c:4201 sql_help.c:4208 sql_help.c:4214 -#: sql_help.c:4225 sql_help.c:4228 sql_help.c:4231 +#: sql_help.c:356 sql_help.c:372 sql_help.c:375 sql_help.c:378 sql_help.c:519 +#: sql_help.c:524 sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:843 +#: sql_help.c:848 sql_help.c:853 sql_help.c:858 sql_help.c:863 sql_help.c:982 +#: sql_help.c:987 sql_help.c:992 sql_help.c:997 sql_help.c:1002 sql_help.c:1807 +#: sql_help.c:1824 sql_help.c:1830 sql_help.c:1854 sql_help.c:1857 +#: sql_help.c:1860 sql_help.c:2304 sql_help.c:2510 sql_help.c:3223 +#: sql_help.c:3226 sql_help.c:3229 sql_help.c:3320 sql_help.c:3409 +#: sql_help.c:3437 sql_help.c:4207 sql_help.c:4214 sql_help.c:4220 +#: sql_help.c:4231 sql_help.c:4234 sql_help.c:4237 msgid "argtype" msgstr "тип_аргумента" -#: sql_help.c:112 sql_help.c:394 sql_help.c:471 sql_help.c:483 sql_help.c:926 -#: sql_help.c:1074 sql_help.c:1453 sql_help.c:1581 sql_help.c:1613 -#: sql_help.c:1665 sql_help.c:1904 sql_help.c:1911 sql_help.c:2203 -#: sql_help.c:2245 sql_help.c:2252 sql_help.c:2261 sql_help.c:2341 -#: sql_help.c:2555 sql_help.c:2647 sql_help.c:2918 sql_help.c:3099 -#: sql_help.c:3121 sql_help.c:3261 sql_help.c:3616 sql_help.c:3788 -#: sql_help.c:3961 sql_help.c:4658 +#: sql_help.c:112 sql_help.c:394 sql_help.c:471 sql_help.c:483 sql_help.c:929 +#: sql_help.c:1078 sql_help.c:1457 sql_help.c:1585 sql_help.c:1617 +#: sql_help.c:1669 sql_help.c:1908 sql_help.c:1915 sql_help.c:2208 +#: sql_help.c:2250 sql_help.c:2257 sql_help.c:2266 sql_help.c:2347 +#: sql_help.c:2561 sql_help.c:2653 sql_help.c:2924 sql_help.c:3105 +#: sql_help.c:3127 sql_help.c:3267 sql_help.c:3622 sql_help.c:3794 +#: sql_help.c:3967 sql_help.c:4664 msgid "option" msgstr "параметр" -#: sql_help.c:113 sql_help.c:927 sql_help.c:1582 sql_help.c:2342 -#: sql_help.c:2556 sql_help.c:3100 sql_help.c:3262 +#: sql_help.c:113 sql_help.c:930 sql_help.c:1586 sql_help.c:2348 +#: sql_help.c:2562 sql_help.c:3106 sql_help.c:3268 msgid "where option can be:" msgstr "где допустимые параметры:" -#: sql_help.c:114 sql_help.c:2137 +#: sql_help.c:114 sql_help.c:2141 msgid "allowconn" msgstr "разр_подключения" -#: sql_help.c:115 sql_help.c:928 sql_help.c:1583 sql_help.c:2138 -#: sql_help.c:2343 sql_help.c:2557 sql_help.c:3101 +#: sql_help.c:115 sql_help.c:931 sql_help.c:1587 sql_help.c:2142 +#: sql_help.c:2349 sql_help.c:2563 sql_help.c:3107 msgid "connlimit" msgstr "предел_подключений" -#: sql_help.c:116 sql_help.c:2139 +#: sql_help.c:116 sql_help.c:2143 msgid "istemplate" msgstr "это_шаблон" -#: sql_help.c:122 sql_help.c:606 sql_help.c:671 sql_help.c:1276 sql_help.c:1325 +#: sql_help.c:122 sql_help.c:607 sql_help.c:673 sql_help.c:684 sql_help.c:1280 +#: sql_help.c:1329 msgid "new_tablespace" msgstr "новое_табл_пространство" -#: sql_help.c:124 sql_help.c:127 sql_help.c:129 sql_help.c:544 sql_help.c:546 -#: sql_help.c:547 sql_help.c:863 sql_help.c:865 sql_help.c:866 sql_help.c:935 -#: sql_help.c:939 sql_help.c:942 sql_help.c:1003 sql_help.c:1005 -#: sql_help.c:1006 sql_help.c:1140 sql_help.c:1143 sql_help.c:1590 -#: sql_help.c:1594 sql_help.c:1597 sql_help.c:2308 sql_help.c:2508 -#: sql_help.c:3980 sql_help.c:4396 +#: sql_help.c:124 sql_help.c:127 sql_help.c:129 sql_help.c:545 sql_help.c:547 +#: sql_help.c:548 sql_help.c:866 sql_help.c:868 sql_help.c:869 sql_help.c:938 +#: sql_help.c:942 sql_help.c:945 sql_help.c:1007 sql_help.c:1009 +#: sql_help.c:1010 sql_help.c:1144 sql_help.c:1147 sql_help.c:1594 +#: sql_help.c:1598 sql_help.c:1601 sql_help.c:2314 sql_help.c:2514 +#: sql_help.c:3986 sql_help.c:4402 msgid "configuration_parameter" msgstr "параметр_конфигурации" #: sql_help.c:125 sql_help.c:395 sql_help.c:466 sql_help.c:472 sql_help.c:484 -#: sql_help.c:545 sql_help.c:598 sql_help.c:677 sql_help.c:683 sql_help.c:864 -#: sql_help.c:887 sql_help.c:936 sql_help.c:1004 sql_help.c:1075 -#: sql_help.c:1117 sql_help.c:1120 sql_help.c:1125 sql_help.c:1141 -#: sql_help.c:1142 sql_help.c:1307 sql_help.c:1327 sql_help.c:1375 -#: sql_help.c:1397 sql_help.c:1454 sql_help.c:1538 sql_help.c:1591 -#: sql_help.c:1614 sql_help.c:2204 sql_help.c:2246 sql_help.c:2253 -#: sql_help.c:2262 sql_help.c:2309 sql_help.c:2310 sql_help.c:2372 -#: sql_help.c:2375 sql_help.c:2409 sql_help.c:2509 sql_help.c:2510 -#: sql_help.c:2527 sql_help.c:2648 sql_help.c:2678 sql_help.c:2783 -#: sql_help.c:2796 sql_help.c:2810 sql_help.c:2851 sql_help.c:2875 -#: sql_help.c:2892 sql_help.c:2919 sql_help.c:3122 sql_help.c:3789 -#: sql_help.c:4397 sql_help.c:4398 +#: sql_help.c:546 sql_help.c:599 sql_help.c:679 sql_help.c:686 sql_help.c:867 +#: sql_help.c:890 sql_help.c:939 sql_help.c:1008 sql_help.c:1079 +#: sql_help.c:1121 sql_help.c:1124 sql_help.c:1129 sql_help.c:1145 +#: sql_help.c:1146 sql_help.c:1311 sql_help.c:1331 sql_help.c:1379 +#: sql_help.c:1401 sql_help.c:1458 sql_help.c:1542 sql_help.c:1595 +#: sql_help.c:1618 sql_help.c:2209 sql_help.c:2251 sql_help.c:2258 +#: sql_help.c:2267 sql_help.c:2315 sql_help.c:2316 sql_help.c:2378 +#: sql_help.c:2381 sql_help.c:2415 sql_help.c:2515 sql_help.c:2516 +#: sql_help.c:2533 sql_help.c:2654 sql_help.c:2684 sql_help.c:2789 +#: sql_help.c:2802 sql_help.c:2816 sql_help.c:2857 sql_help.c:2881 +#: sql_help.c:2898 sql_help.c:2925 sql_help.c:3128 sql_help.c:3795 +#: sql_help.c:4403 sql_help.c:4404 msgid "value" msgstr "значение" @@ -4577,9 +4578,9 @@ msgid "target_role" msgstr "целевая_роль" -#: sql_help.c:198 sql_help.c:2188 sql_help.c:2603 sql_help.c:2608 -#: sql_help.c:3735 sql_help.c:3742 sql_help.c:3756 sql_help.c:3762 -#: sql_help.c:4083 sql_help.c:4090 sql_help.c:4104 sql_help.c:4110 +#: sql_help.c:198 sql_help.c:2193 sql_help.c:2609 sql_help.c:2614 +#: sql_help.c:3741 sql_help.c:3748 sql_help.c:3762 sql_help.c:3768 +#: sql_help.c:4089 sql_help.c:4096 sql_help.c:4110 sql_help.c:4116 msgid "schema_name" msgstr "имя_схемы" @@ -4593,30 +4594,30 @@ #: sql_help.c:201 sql_help.c:202 sql_help.c:203 sql_help.c:204 sql_help.c:205 #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 -#: sql_help.c:569 sql_help.c:605 sql_help.c:670 sql_help.c:810 sql_help.c:946 -#: sql_help.c:1275 sql_help.c:1601 sql_help.c:2346 sql_help.c:2347 -#: sql_help.c:2348 sql_help.c:2349 sql_help.c:2350 sql_help.c:2483 -#: sql_help.c:2560 sql_help.c:2561 sql_help.c:2562 sql_help.c:2563 -#: sql_help.c:2564 sql_help.c:3104 sql_help.c:3105 sql_help.c:3106 -#: sql_help.c:3107 sql_help.c:3108 sql_help.c:3768 sql_help.c:3772 -#: sql_help.c:4116 sql_help.c:4120 sql_help.c:4417 +#: sql_help.c:570 sql_help.c:606 sql_help.c:672 sql_help.c:813 sql_help.c:949 +#: sql_help.c:1279 sql_help.c:1605 sql_help.c:2352 sql_help.c:2353 +#: sql_help.c:2354 sql_help.c:2355 sql_help.c:2356 sql_help.c:2489 +#: sql_help.c:2566 sql_help.c:2567 sql_help.c:2568 sql_help.c:2569 +#: sql_help.c:2570 sql_help.c:3110 sql_help.c:3111 sql_help.c:3112 +#: sql_help.c:3113 sql_help.c:3114 sql_help.c:3774 sql_help.c:3778 +#: sql_help.c:4122 sql_help.c:4126 sql_help.c:4423 msgid "role_name" msgstr "имя_роли" -#: sql_help.c:236 sql_help.c:459 sql_help.c:1291 sql_help.c:1293 -#: sql_help.c:1342 sql_help.c:1354 sql_help.c:1379 sql_help.c:1631 -#: sql_help.c:2158 sql_help.c:2162 sql_help.c:2265 sql_help.c:2270 -#: sql_help.c:2368 sql_help.c:2778 sql_help.c:2791 sql_help.c:2805 -#: sql_help.c:2814 sql_help.c:2826 sql_help.c:2855 sql_help.c:3820 -#: sql_help.c:3835 sql_help.c:3837 sql_help.c:4282 sql_help.c:4283 -#: sql_help.c:4292 sql_help.c:4333 sql_help.c:4334 sql_help.c:4335 -#: sql_help.c:4336 sql_help.c:4337 sql_help.c:4338 sql_help.c:4371 -#: sql_help.c:4372 sql_help.c:4377 sql_help.c:4382 sql_help.c:4521 -#: sql_help.c:4522 sql_help.c:4531 sql_help.c:4572 sql_help.c:4573 -#: sql_help.c:4574 sql_help.c:4575 sql_help.c:4576 sql_help.c:4577 -#: sql_help.c:4624 sql_help.c:4626 sql_help.c:4685 sql_help.c:4741 -#: sql_help.c:4742 sql_help.c:4751 sql_help.c:4792 sql_help.c:4793 -#: sql_help.c:4794 sql_help.c:4795 sql_help.c:4796 sql_help.c:4797 +#: sql_help.c:236 sql_help.c:459 sql_help.c:1295 sql_help.c:1297 +#: sql_help.c:1346 sql_help.c:1358 sql_help.c:1383 sql_help.c:1635 +#: sql_help.c:2162 sql_help.c:2166 sql_help.c:2270 sql_help.c:2275 +#: sql_help.c:2374 sql_help.c:2784 sql_help.c:2797 sql_help.c:2811 +#: sql_help.c:2820 sql_help.c:2832 sql_help.c:2861 sql_help.c:3826 +#: sql_help.c:3841 sql_help.c:3843 sql_help.c:4288 sql_help.c:4289 +#: sql_help.c:4298 sql_help.c:4339 sql_help.c:4340 sql_help.c:4341 +#: sql_help.c:4342 sql_help.c:4343 sql_help.c:4344 sql_help.c:4377 +#: sql_help.c:4378 sql_help.c:4383 sql_help.c:4388 sql_help.c:4527 +#: sql_help.c:4528 sql_help.c:4537 sql_help.c:4578 sql_help.c:4579 +#: sql_help.c:4580 sql_help.c:4581 sql_help.c:4582 sql_help.c:4583 +#: sql_help.c:4630 sql_help.c:4632 sql_help.c:4691 sql_help.c:4747 +#: sql_help.c:4748 sql_help.c:4757 sql_help.c:4798 sql_help.c:4799 +#: sql_help.c:4800 sql_help.c:4801 sql_help.c:4802 sql_help.c:4803 msgid "expression" msgstr "выражение" @@ -4625,18 +4626,18 @@ msgstr "ограничение_домена" #: sql_help.c:241 sql_help.c:243 sql_help.c:246 sql_help.c:474 sql_help.c:475 -#: sql_help.c:1268 sql_help.c:1313 sql_help.c:1314 sql_help.c:1315 -#: sql_help.c:1341 sql_help.c:1353 sql_help.c:1370 sql_help.c:1789 -#: sql_help.c:1791 sql_help.c:2161 sql_help.c:2264 sql_help.c:2269 -#: sql_help.c:2813 sql_help.c:2825 sql_help.c:3832 +#: sql_help.c:1272 sql_help.c:1317 sql_help.c:1318 sql_help.c:1319 +#: sql_help.c:1345 sql_help.c:1357 sql_help.c:1374 sql_help.c:1793 +#: sql_help.c:1795 sql_help.c:2165 sql_help.c:2269 sql_help.c:2274 +#: sql_help.c:2819 sql_help.c:2831 sql_help.c:3838 msgid "constraint_name" msgstr "имя_ограничения" -#: sql_help.c:244 sql_help.c:1269 +#: sql_help.c:244 sql_help.c:1273 msgid "new_constraint_name" msgstr "имя_нового_ограничения" -#: sql_help.c:317 sql_help.c:1073 +#: sql_help.c:317 sql_help.c:1077 msgid "new_version" msgstr "новая_версия" @@ -4652,83 +4653,83 @@ #: sql_help.c:334 sql_help.c:335 sql_help.c:340 sql_help.c:344 sql_help.c:346 #: sql_help.c:348 sql_help.c:357 sql_help.c:358 sql_help.c:359 sql_help.c:360 #: sql_help.c:361 sql_help.c:362 sql_help.c:363 sql_help.c:364 sql_help.c:367 -#: sql_help.c:368 sql_help.c:1781 sql_help.c:1786 sql_help.c:1793 -#: sql_help.c:1794 sql_help.c:1795 sql_help.c:1796 sql_help.c:1797 -#: sql_help.c:1798 sql_help.c:1799 sql_help.c:1804 sql_help.c:1806 -#: sql_help.c:1810 sql_help.c:1812 sql_help.c:1816 sql_help.c:1821 -#: sql_help.c:1822 sql_help.c:1829 sql_help.c:1830 sql_help.c:1831 -#: sql_help.c:1832 sql_help.c:1833 sql_help.c:1834 sql_help.c:1835 +#: sql_help.c:368 sql_help.c:1785 sql_help.c:1790 sql_help.c:1797 +#: sql_help.c:1798 sql_help.c:1799 sql_help.c:1800 sql_help.c:1801 +#: sql_help.c:1802 sql_help.c:1803 sql_help.c:1808 sql_help.c:1810 +#: sql_help.c:1814 sql_help.c:1816 sql_help.c:1820 sql_help.c:1825 +#: sql_help.c:1826 sql_help.c:1833 sql_help.c:1834 sql_help.c:1835 #: sql_help.c:1836 sql_help.c:1837 sql_help.c:1838 sql_help.c:1839 -#: sql_help.c:1844 sql_help.c:1845 sql_help.c:4189 sql_help.c:4194 -#: sql_help.c:4195 sql_help.c:4196 sql_help.c:4197 sql_help.c:4203 -#: sql_help.c:4204 sql_help.c:4209 sql_help.c:4210 sql_help.c:4215 -#: sql_help.c:4216 sql_help.c:4217 sql_help.c:4218 sql_help.c:4219 -#: sql_help.c:4220 +#: sql_help.c:1840 sql_help.c:1841 sql_help.c:1842 sql_help.c:1843 +#: sql_help.c:1848 sql_help.c:1849 sql_help.c:4195 sql_help.c:4200 +#: sql_help.c:4201 sql_help.c:4202 sql_help.c:4203 sql_help.c:4209 +#: sql_help.c:4210 sql_help.c:4215 sql_help.c:4216 sql_help.c:4221 +#: sql_help.c:4222 sql_help.c:4223 sql_help.c:4224 sql_help.c:4225 +#: sql_help.c:4226 msgid "object_name" msgstr "имя_объекта" # well-spelled: агр -#: sql_help.c:326 sql_help.c:1782 sql_help.c:4192 +#: sql_help.c:326 sql_help.c:1786 sql_help.c:4198 msgid "aggregate_name" msgstr "имя_агр_функции" -#: sql_help.c:328 sql_help.c:1784 sql_help.c:2068 sql_help.c:2072 -#: sql_help.c:2074 sql_help.c:3231 +#: sql_help.c:328 sql_help.c:1788 sql_help.c:2072 sql_help.c:2076 +#: sql_help.c:2078 sql_help.c:3237 msgid "source_type" msgstr "исходный_тип" -#: sql_help.c:329 sql_help.c:1785 sql_help.c:2069 sql_help.c:2073 -#: sql_help.c:2075 sql_help.c:3232 +#: sql_help.c:329 sql_help.c:1789 sql_help.c:2073 sql_help.c:2077 +#: sql_help.c:2079 sql_help.c:3238 msgid "target_type" msgstr "целевой_тип" -#: sql_help.c:336 sql_help.c:774 sql_help.c:1800 sql_help.c:2070 -#: sql_help.c:2111 sql_help.c:2176 sql_help.c:2426 sql_help.c:2457 -#: sql_help.c:2995 sql_help.c:4100 sql_help.c:4198 sql_help.c:4311 -#: sql_help.c:4315 sql_help.c:4319 sql_help.c:4322 sql_help.c:4550 -#: sql_help.c:4554 sql_help.c:4558 sql_help.c:4561 sql_help.c:4770 -#: sql_help.c:4774 sql_help.c:4778 sql_help.c:4781 +#: sql_help.c:336 sql_help.c:777 sql_help.c:1804 sql_help.c:2074 +#: sql_help.c:2115 sql_help.c:2181 sql_help.c:2432 sql_help.c:2463 +#: sql_help.c:3001 sql_help.c:4106 sql_help.c:4204 sql_help.c:4317 +#: sql_help.c:4321 sql_help.c:4325 sql_help.c:4328 sql_help.c:4556 +#: sql_help.c:4560 sql_help.c:4564 sql_help.c:4567 sql_help.c:4776 +#: sql_help.c:4780 sql_help.c:4784 sql_help.c:4787 msgid "function_name" msgstr "имя_функции" -#: sql_help.c:341 sql_help.c:767 sql_help.c:1807 sql_help.c:2450 +#: sql_help.c:341 sql_help.c:770 sql_help.c:1811 sql_help.c:2456 msgid "operator_name" msgstr "имя_оператора" -#: sql_help.c:342 sql_help.c:703 sql_help.c:707 sql_help.c:711 sql_help.c:1808 -#: sql_help.c:2427 sql_help.c:3355 +#: sql_help.c:342 sql_help.c:706 sql_help.c:710 sql_help.c:714 sql_help.c:1812 +#: sql_help.c:2433 sql_help.c:3361 msgid "left_type" msgstr "тип_слева" -#: sql_help.c:343 sql_help.c:704 sql_help.c:708 sql_help.c:712 sql_help.c:1809 -#: sql_help.c:2428 sql_help.c:3356 +#: sql_help.c:343 sql_help.c:707 sql_help.c:711 sql_help.c:715 sql_help.c:1813 +#: sql_help.c:2434 sql_help.c:3362 msgid "right_type" msgstr "тип_справа" -#: sql_help.c:345 sql_help.c:347 sql_help.c:730 sql_help.c:733 sql_help.c:736 -#: sql_help.c:765 sql_help.c:777 sql_help.c:785 sql_help.c:788 sql_help.c:791 -#: sql_help.c:1359 sql_help.c:1811 sql_help.c:1813 sql_help.c:2447 -#: sql_help.c:2468 sql_help.c:2831 sql_help.c:3365 sql_help.c:3374 +#: sql_help.c:345 sql_help.c:347 sql_help.c:733 sql_help.c:736 sql_help.c:739 +#: sql_help.c:768 sql_help.c:780 sql_help.c:788 sql_help.c:791 sql_help.c:794 +#: sql_help.c:1363 sql_help.c:1815 sql_help.c:1817 sql_help.c:2453 +#: sql_help.c:2474 sql_help.c:2837 sql_help.c:3371 sql_help.c:3380 msgid "index_method" msgstr "метод_индекса" -#: sql_help.c:349 sql_help.c:1817 sql_help.c:4205 +#: sql_help.c:349 sql_help.c:1821 sql_help.c:4211 msgid "procedure_name" msgstr "имя_процедуры" -#: sql_help.c:353 sql_help.c:1823 sql_help.c:3752 sql_help.c:4211 +#: sql_help.c:353 sql_help.c:1827 sql_help.c:3758 sql_help.c:4217 msgid "routine_name" msgstr "имя_подпрограммы" -#: sql_help.c:365 sql_help.c:1331 sql_help.c:1840 sql_help.c:2304 -#: sql_help.c:2507 sql_help.c:2786 sql_help.c:2962 sql_help.c:3536 -#: sql_help.c:3766 sql_help.c:4114 +#: sql_help.c:365 sql_help.c:1335 sql_help.c:1844 sql_help.c:2310 +#: sql_help.c:2513 sql_help.c:2792 sql_help.c:2968 sql_help.c:3542 +#: sql_help.c:3772 sql_help.c:4120 msgid "type_name" msgstr "имя_типа" -#: sql_help.c:366 sql_help.c:1841 sql_help.c:2303 sql_help.c:2506 -#: sql_help.c:2963 sql_help.c:3189 sql_help.c:3537 sql_help.c:3758 -#: sql_help.c:4106 +#: sql_help.c:366 sql_help.c:1845 sql_help.c:2309 sql_help.c:2512 +#: sql_help.c:2969 sql_help.c:3195 sql_help.c:3543 sql_help.c:3764 +#: sql_help.c:4112 msgid "lang_name" msgstr "имя_языка" @@ -4736,1857 +4737,1861 @@ msgid "and aggregate_signature is:" msgstr "и сигнатура_агр_функции:" -#: sql_help.c:392 sql_help.c:1935 sql_help.c:2201 +#: sql_help.c:392 sql_help.c:1939 sql_help.c:2206 msgid "handler_function" msgstr "функция_обработчик" -#: sql_help.c:393 sql_help.c:2202 +#: sql_help.c:393 sql_help.c:2207 msgid "validator_function" msgstr "функция_проверки" -#: sql_help.c:441 sql_help.c:519 sql_help.c:659 sql_help.c:841 sql_help.c:979 -#: sql_help.c:1263 sql_help.c:1529 +#: sql_help.c:441 sql_help.c:520 sql_help.c:661 sql_help.c:844 sql_help.c:983 +#: sql_help.c:1267 sql_help.c:1533 msgid "action" msgstr "действие" #: sql_help.c:443 sql_help.c:450 sql_help.c:454 sql_help.c:455 sql_help.c:458 #: sql_help.c:460 sql_help.c:461 sql_help.c:462 sql_help.c:464 sql_help.c:467 -#: sql_help.c:469 sql_help.c:470 sql_help.c:663 sql_help.c:673 sql_help.c:675 -#: sql_help.c:678 sql_help.c:680 sql_help.c:1055 sql_help.c:1265 -#: sql_help.c:1283 sql_help.c:1287 sql_help.c:1288 sql_help.c:1292 -#: sql_help.c:1294 sql_help.c:1295 sql_help.c:1296 sql_help.c:1297 -#: sql_help.c:1299 sql_help.c:1302 sql_help.c:1303 sql_help.c:1305 -#: sql_help.c:1308 sql_help.c:1310 sql_help.c:1355 sql_help.c:1357 -#: sql_help.c:1364 sql_help.c:1373 sql_help.c:1378 sql_help.c:1630 -#: sql_help.c:1633 sql_help.c:1637 sql_help.c:1673 sql_help.c:1788 -#: sql_help.c:1901 sql_help.c:1907 sql_help.c:1920 sql_help.c:1921 -#: sql_help.c:1922 sql_help.c:2243 sql_help.c:2256 sql_help.c:2301 -#: sql_help.c:2367 sql_help.c:2373 sql_help.c:2406 sql_help.c:2633 -#: sql_help.c:2661 sql_help.c:2662 sql_help.c:2769 sql_help.c:2777 -#: sql_help.c:2787 sql_help.c:2790 sql_help.c:2800 sql_help.c:2804 -#: sql_help.c:2827 sql_help.c:2829 sql_help.c:2836 sql_help.c:2849 -#: sql_help.c:2854 sql_help.c:2872 sql_help.c:2998 sql_help.c:3134 -#: sql_help.c:3737 sql_help.c:3738 sql_help.c:3819 sql_help.c:3834 -#: sql_help.c:3836 sql_help.c:3838 sql_help.c:4085 sql_help.c:4086 -#: sql_help.c:4191 sql_help.c:4342 sql_help.c:4581 sql_help.c:4623 -#: sql_help.c:4625 sql_help.c:4627 sql_help.c:4673 sql_help.c:4801 +#: sql_help.c:469 sql_help.c:470 sql_help.c:665 sql_help.c:675 sql_help.c:677 +#: sql_help.c:680 sql_help.c:682 sql_help.c:1059 sql_help.c:1269 +#: sql_help.c:1287 sql_help.c:1291 sql_help.c:1292 sql_help.c:1296 +#: sql_help.c:1298 sql_help.c:1299 sql_help.c:1300 sql_help.c:1301 +#: sql_help.c:1303 sql_help.c:1306 sql_help.c:1307 sql_help.c:1309 +#: sql_help.c:1312 sql_help.c:1314 sql_help.c:1359 sql_help.c:1361 +#: sql_help.c:1368 sql_help.c:1377 sql_help.c:1382 sql_help.c:1634 +#: sql_help.c:1637 sql_help.c:1641 sql_help.c:1677 sql_help.c:1792 +#: sql_help.c:1905 sql_help.c:1911 sql_help.c:1924 sql_help.c:1925 +#: sql_help.c:1926 sql_help.c:2248 sql_help.c:2261 sql_help.c:2307 +#: sql_help.c:2373 sql_help.c:2379 sql_help.c:2412 sql_help.c:2639 +#: sql_help.c:2667 sql_help.c:2668 sql_help.c:2775 sql_help.c:2783 +#: sql_help.c:2793 sql_help.c:2796 sql_help.c:2806 sql_help.c:2810 +#: sql_help.c:2833 sql_help.c:2835 sql_help.c:2842 sql_help.c:2855 +#: sql_help.c:2860 sql_help.c:2878 sql_help.c:3004 sql_help.c:3140 +#: sql_help.c:3743 sql_help.c:3744 sql_help.c:3825 sql_help.c:3840 +#: sql_help.c:3842 sql_help.c:3844 sql_help.c:4091 sql_help.c:4092 +#: sql_help.c:4197 sql_help.c:4348 sql_help.c:4587 sql_help.c:4629 +#: sql_help.c:4631 sql_help.c:4633 sql_help.c:4679 sql_help.c:4807 msgid "column_name" msgstr "имя_столбца" -#: sql_help.c:444 sql_help.c:664 sql_help.c:1266 sql_help.c:1638 +#: sql_help.c:444 sql_help.c:666 sql_help.c:1270 sql_help.c:1642 msgid "new_column_name" msgstr "новое_имя_столбца" -#: sql_help.c:449 sql_help.c:540 sql_help.c:672 sql_help.c:862 sql_help.c:1000 -#: sql_help.c:1282 sql_help.c:1539 +#: sql_help.c:449 sql_help.c:541 sql_help.c:674 sql_help.c:865 sql_help.c:1004 +#: sql_help.c:1286 sql_help.c:1543 msgid "where action is one of:" msgstr "где допустимое действие:" -#: sql_help.c:451 sql_help.c:456 sql_help.c:1047 sql_help.c:1284 -#: sql_help.c:1289 sql_help.c:1541 sql_help.c:1545 sql_help.c:2156 -#: sql_help.c:2244 sql_help.c:2446 sql_help.c:2626 sql_help.c:2770 -#: sql_help.c:3043 sql_help.c:3921 +#: sql_help.c:451 sql_help.c:456 sql_help.c:1051 sql_help.c:1288 +#: sql_help.c:1293 sql_help.c:1545 sql_help.c:1549 sql_help.c:2160 +#: sql_help.c:2249 sql_help.c:2452 sql_help.c:2632 sql_help.c:2776 +#: sql_help.c:3049 sql_help.c:3927 msgid "data_type" msgstr "тип_данных" -#: sql_help.c:452 sql_help.c:457 sql_help.c:1285 sql_help.c:1290 -#: sql_help.c:1542 sql_help.c:1546 sql_help.c:2157 sql_help.c:2247 -#: sql_help.c:2369 sql_help.c:2771 sql_help.c:2779 sql_help.c:2792 -#: sql_help.c:2806 sql_help.c:3044 sql_help.c:3050 sql_help.c:3829 +#: sql_help.c:452 sql_help.c:457 sql_help.c:1289 sql_help.c:1294 +#: sql_help.c:1546 sql_help.c:1550 sql_help.c:2161 sql_help.c:2252 +#: sql_help.c:2375 sql_help.c:2777 sql_help.c:2785 sql_help.c:2798 +#: sql_help.c:2812 sql_help.c:3050 sql_help.c:3056 sql_help.c:3835 msgid "collation" msgstr "правило_сортировки" -#: sql_help.c:453 sql_help.c:1286 sql_help.c:2248 sql_help.c:2257 -#: sql_help.c:2772 sql_help.c:2788 sql_help.c:2801 +#: sql_help.c:453 sql_help.c:1290 sql_help.c:2253 sql_help.c:2262 +#: sql_help.c:2778 sql_help.c:2794 sql_help.c:2807 msgid "column_constraint" msgstr "ограничение_столбца" -#: sql_help.c:463 sql_help.c:603 sql_help.c:674 sql_help.c:1304 sql_help.c:4670 +#: sql_help.c:463 sql_help.c:604 sql_help.c:676 sql_help.c:1308 sql_help.c:4676 msgid "integer" msgstr "целое" -#: sql_help.c:465 sql_help.c:468 sql_help.c:676 sql_help.c:679 sql_help.c:1306 -#: sql_help.c:1309 +#: sql_help.c:465 sql_help.c:468 sql_help.c:678 sql_help.c:681 sql_help.c:1310 +#: sql_help.c:1313 msgid "attribute_option" msgstr "атрибут" -#: sql_help.c:473 sql_help.c:1311 sql_help.c:2249 sql_help.c:2258 -#: sql_help.c:2773 sql_help.c:2789 sql_help.c:2802 +#: sql_help.c:473 sql_help.c:1315 sql_help.c:2254 sql_help.c:2263 +#: sql_help.c:2779 sql_help.c:2795 sql_help.c:2808 msgid "table_constraint" msgstr "ограничение_таблицы" -#: sql_help.c:476 sql_help.c:477 sql_help.c:478 sql_help.c:479 sql_help.c:1316 -#: sql_help.c:1317 sql_help.c:1318 sql_help.c:1319 sql_help.c:1842 +#: sql_help.c:476 sql_help.c:477 sql_help.c:478 sql_help.c:479 sql_help.c:1320 +#: sql_help.c:1321 sql_help.c:1322 sql_help.c:1323 sql_help.c:1846 msgid "trigger_name" msgstr "имя_триггера" -#: sql_help.c:480 sql_help.c:481 sql_help.c:1329 sql_help.c:1330 -#: sql_help.c:2250 sql_help.c:2255 sql_help.c:2776 sql_help.c:2799 +#: sql_help.c:480 sql_help.c:481 sql_help.c:1333 sql_help.c:1334 +#: sql_help.c:2255 sql_help.c:2260 sql_help.c:2782 sql_help.c:2805 msgid "parent_table" msgstr "таблица_родитель" -#: sql_help.c:539 sql_help.c:595 sql_help.c:661 sql_help.c:861 sql_help.c:999 -#: sql_help.c:1498 sql_help.c:2187 +#: sql_help.c:540 sql_help.c:596 sql_help.c:663 sql_help.c:864 sql_help.c:1003 +#: sql_help.c:1502 sql_help.c:2192 msgid "extension_name" msgstr "имя_расширения" -#: sql_help.c:541 sql_help.c:1001 sql_help.c:2305 +#: sql_help.c:542 sql_help.c:1005 sql_help.c:2311 msgid "execution_cost" msgstr "стоимость_выполнения" -#: sql_help.c:542 sql_help.c:1002 sql_help.c:2306 +#: sql_help.c:543 sql_help.c:1006 sql_help.c:2312 msgid "result_rows" msgstr "строк_в_результате" -#: sql_help.c:543 sql_help.c:2307 +#: sql_help.c:544 sql_help.c:2313 msgid "support_function" msgstr "вспомогательная_функция" -#: sql_help.c:564 sql_help.c:566 sql_help.c:925 sql_help.c:933 sql_help.c:937 -#: sql_help.c:940 sql_help.c:943 sql_help.c:1580 sql_help.c:1588 -#: sql_help.c:1592 sql_help.c:1595 sql_help.c:1598 sql_help.c:2604 -#: sql_help.c:2606 sql_help.c:2609 sql_help.c:2610 sql_help.c:3736 -#: sql_help.c:3740 sql_help.c:3743 sql_help.c:3745 sql_help.c:3747 -#: sql_help.c:3749 sql_help.c:3751 sql_help.c:3757 sql_help.c:3759 -#: sql_help.c:3761 sql_help.c:3763 sql_help.c:3765 sql_help.c:3767 -#: sql_help.c:3769 sql_help.c:3770 sql_help.c:4084 sql_help.c:4088 -#: sql_help.c:4091 sql_help.c:4093 sql_help.c:4095 sql_help.c:4097 -#: sql_help.c:4099 sql_help.c:4105 sql_help.c:4107 sql_help.c:4109 -#: sql_help.c:4111 sql_help.c:4113 sql_help.c:4115 sql_help.c:4117 -#: sql_help.c:4118 +#: sql_help.c:565 sql_help.c:567 sql_help.c:928 sql_help.c:936 sql_help.c:940 +#: sql_help.c:943 sql_help.c:946 sql_help.c:1584 sql_help.c:1592 +#: sql_help.c:1596 sql_help.c:1599 sql_help.c:1602 sql_help.c:2610 +#: sql_help.c:2612 sql_help.c:2615 sql_help.c:2616 sql_help.c:3742 +#: sql_help.c:3746 sql_help.c:3749 sql_help.c:3751 sql_help.c:3753 +#: sql_help.c:3755 sql_help.c:3757 sql_help.c:3763 sql_help.c:3765 +#: sql_help.c:3767 sql_help.c:3769 sql_help.c:3771 sql_help.c:3773 +#: sql_help.c:3775 sql_help.c:3776 sql_help.c:4090 sql_help.c:4094 +#: sql_help.c:4097 sql_help.c:4099 sql_help.c:4101 sql_help.c:4103 +#: sql_help.c:4105 sql_help.c:4111 sql_help.c:4113 sql_help.c:4115 +#: sql_help.c:4117 sql_help.c:4119 sql_help.c:4121 sql_help.c:4123 +#: sql_help.c:4124 msgid "role_specification" msgstr "указание_роли" -#: sql_help.c:565 sql_help.c:567 sql_help.c:1611 sql_help.c:2130 -#: sql_help.c:2612 sql_help.c:3119 sql_help.c:3570 sql_help.c:4427 +#: sql_help.c:566 sql_help.c:568 sql_help.c:1615 sql_help.c:2134 +#: sql_help.c:2618 sql_help.c:3125 sql_help.c:3576 sql_help.c:4433 msgid "user_name" msgstr "имя_пользователя" -#: sql_help.c:568 sql_help.c:945 sql_help.c:1600 sql_help.c:2611 -#: sql_help.c:3771 sql_help.c:4119 +#: sql_help.c:569 sql_help.c:948 sql_help.c:1604 sql_help.c:2617 +#: sql_help.c:3777 sql_help.c:4125 msgid "where role_specification can be:" msgstr "где допустимое указание_роли:" -#: sql_help.c:570 +#: sql_help.c:571 msgid "group_name" msgstr "имя_группы" -#: sql_help.c:591 sql_help.c:1376 sql_help.c:2136 sql_help.c:2376 -#: sql_help.c:2410 sql_help.c:2784 sql_help.c:2797 sql_help.c:2811 -#: sql_help.c:2852 sql_help.c:2876 sql_help.c:2888 sql_help.c:3764 -#: sql_help.c:4112 +#: sql_help.c:592 sql_help.c:1380 sql_help.c:2140 sql_help.c:2382 +#: sql_help.c:2416 sql_help.c:2790 sql_help.c:2803 sql_help.c:2817 +#: sql_help.c:2858 sql_help.c:2882 sql_help.c:2894 sql_help.c:3770 +#: sql_help.c:4118 msgid "tablespace_name" msgstr "табл_пространство" -#: sql_help.c:593 sql_help.c:681 sql_help.c:1324 sql_help.c:1333 -#: sql_help.c:1371 sql_help.c:1722 +#: sql_help.c:594 sql_help.c:683 sql_help.c:1328 sql_help.c:1337 +#: sql_help.c:1375 sql_help.c:1726 msgid "index_name" msgstr "имя_индекса" -#: sql_help.c:597 sql_help.c:600 sql_help.c:682 sql_help.c:684 sql_help.c:1326 -#: sql_help.c:1328 sql_help.c:1374 sql_help.c:2374 sql_help.c:2408 -#: sql_help.c:2782 sql_help.c:2795 sql_help.c:2809 sql_help.c:2850 -#: sql_help.c:2874 +#: sql_help.c:598 sql_help.c:601 sql_help.c:685 sql_help.c:687 sql_help.c:1330 +#: sql_help.c:1332 sql_help.c:1378 sql_help.c:2380 sql_help.c:2414 +#: sql_help.c:2788 sql_help.c:2801 sql_help.c:2815 sql_help.c:2856 +#: sql_help.c:2880 msgid "storage_parameter" msgstr "параметр_хранения" -#: sql_help.c:602 +#: sql_help.c:603 msgid "column_number" msgstr "номер_столбца" -#: sql_help.c:626 sql_help.c:1805 sql_help.c:4202 +#: sql_help.c:627 sql_help.c:1809 sql_help.c:4208 msgid "large_object_oid" msgstr "oid_большого_объекта" -#: sql_help.c:713 sql_help.c:2431 +#: sql_help.c:716 sql_help.c:2437 msgid "res_proc" msgstr "процедура_ограничения" -#: sql_help.c:714 sql_help.c:2432 +#: sql_help.c:717 sql_help.c:2438 msgid "join_proc" msgstr "процедура_соединения" -#: sql_help.c:766 sql_help.c:778 sql_help.c:2449 +#: sql_help.c:769 sql_help.c:781 sql_help.c:2455 msgid "strategy_number" msgstr "номер_стратегии" -#: sql_help.c:768 sql_help.c:769 sql_help.c:772 sql_help.c:773 sql_help.c:779 -#: sql_help.c:780 sql_help.c:782 sql_help.c:783 sql_help.c:2451 sql_help.c:2452 -#: sql_help.c:2455 sql_help.c:2456 +#: sql_help.c:771 sql_help.c:772 sql_help.c:775 sql_help.c:776 sql_help.c:782 +#: sql_help.c:783 sql_help.c:785 sql_help.c:786 sql_help.c:2457 sql_help.c:2458 +#: sql_help.c:2461 sql_help.c:2462 msgid "op_type" msgstr "тип_операции" -#: sql_help.c:770 sql_help.c:2453 +#: sql_help.c:773 sql_help.c:2459 msgid "sort_family_name" msgstr "семейство_сортировки" -#: sql_help.c:771 sql_help.c:781 sql_help.c:2454 +#: sql_help.c:774 sql_help.c:784 sql_help.c:2460 msgid "support_number" msgstr "номер_опорной_процедуры" -#: sql_help.c:775 sql_help.c:2071 sql_help.c:2458 sql_help.c:2965 -#: sql_help.c:2967 +#: sql_help.c:778 sql_help.c:2075 sql_help.c:2464 sql_help.c:2971 +#: sql_help.c:2973 msgid "argument_type" msgstr "тип_аргумента" -#: sql_help.c:806 sql_help.c:809 sql_help.c:880 sql_help.c:882 sql_help.c:884 -#: sql_help.c:1015 sql_help.c:1054 sql_help.c:1494 sql_help.c:1497 -#: sql_help.c:1672 sql_help.c:1721 sql_help.c:1790 sql_help.c:1815 -#: sql_help.c:1828 sql_help.c:1843 sql_help.c:1900 sql_help.c:1906 -#: sql_help.c:2242 sql_help.c:2254 sql_help.c:2365 sql_help.c:2405 -#: sql_help.c:2482 sql_help.c:2525 sql_help.c:2581 sql_help.c:2632 -#: sql_help.c:2663 sql_help.c:2768 sql_help.c:2785 sql_help.c:2798 -#: sql_help.c:2871 sql_help.c:2991 sql_help.c:3168 sql_help.c:3391 -#: sql_help.c:3440 sql_help.c:3546 sql_help.c:3734 sql_help.c:3739 -#: sql_help.c:3785 sql_help.c:3817 sql_help.c:4082 sql_help.c:4087 -#: sql_help.c:4190 sql_help.c:4297 sql_help.c:4299 sql_help.c:4348 -#: sql_help.c:4387 sql_help.c:4536 sql_help.c:4538 sql_help.c:4587 -#: sql_help.c:4621 sql_help.c:4672 sql_help.c:4756 sql_help.c:4758 -#: sql_help.c:4807 +#: sql_help.c:809 sql_help.c:812 sql_help.c:883 sql_help.c:885 sql_help.c:887 +#: sql_help.c:1019 sql_help.c:1058 sql_help.c:1498 sql_help.c:1501 +#: sql_help.c:1676 sql_help.c:1725 sql_help.c:1794 sql_help.c:1819 +#: sql_help.c:1832 sql_help.c:1847 sql_help.c:1904 sql_help.c:1910 +#: sql_help.c:2247 sql_help.c:2259 sql_help.c:2371 sql_help.c:2411 +#: sql_help.c:2488 sql_help.c:2531 sql_help.c:2587 sql_help.c:2638 +#: sql_help.c:2669 sql_help.c:2774 sql_help.c:2791 sql_help.c:2804 +#: sql_help.c:2877 sql_help.c:2997 sql_help.c:3174 sql_help.c:3397 +#: sql_help.c:3446 sql_help.c:3552 sql_help.c:3740 sql_help.c:3745 +#: sql_help.c:3791 sql_help.c:3823 sql_help.c:4088 sql_help.c:4093 +#: sql_help.c:4196 sql_help.c:4303 sql_help.c:4305 sql_help.c:4354 +#: sql_help.c:4393 sql_help.c:4542 sql_help.c:4544 sql_help.c:4593 +#: sql_help.c:4627 sql_help.c:4678 sql_help.c:4762 sql_help.c:4764 +#: sql_help.c:4813 msgid "table_name" msgstr "имя_таблицы" -#: sql_help.c:811 sql_help.c:2484 +#: sql_help.c:814 sql_help.c:2490 msgid "using_expression" msgstr "выражение_использования" -#: sql_help.c:812 sql_help.c:2485 +#: sql_help.c:815 sql_help.c:2491 msgid "check_expression" msgstr "выражение_проверки" -#: sql_help.c:886 sql_help.c:2526 +#: sql_help.c:889 sql_help.c:2532 msgid "publication_parameter" msgstr "параметр_публикации" -#: sql_help.c:929 sql_help.c:1584 sql_help.c:2344 sql_help.c:2558 -#: sql_help.c:3102 +#: sql_help.c:932 sql_help.c:1588 sql_help.c:2350 sql_help.c:2564 +#: sql_help.c:3108 msgid "password" msgstr "пароль" -#: sql_help.c:930 sql_help.c:1585 sql_help.c:2345 sql_help.c:2559 -#: sql_help.c:3103 +#: sql_help.c:933 sql_help.c:1589 sql_help.c:2351 sql_help.c:2565 +#: sql_help.c:3109 msgid "timestamp" msgstr "timestamp" -#: sql_help.c:934 sql_help.c:938 sql_help.c:941 sql_help.c:944 sql_help.c:1589 -#: sql_help.c:1593 sql_help.c:1596 sql_help.c:1599 sql_help.c:3744 -#: sql_help.c:4092 +#: sql_help.c:937 sql_help.c:941 sql_help.c:944 sql_help.c:947 sql_help.c:1593 +#: sql_help.c:1597 sql_help.c:1600 sql_help.c:1603 sql_help.c:3750 +#: sql_help.c:4098 msgid "database_name" msgstr "имя_БД" -#: sql_help.c:1048 sql_help.c:2627 +#: sql_help.c:1052 sql_help.c:2633 msgid "increment" msgstr "шаг" -#: sql_help.c:1049 sql_help.c:2628 +#: sql_help.c:1053 sql_help.c:2634 msgid "minvalue" msgstr "мин_значение" -#: sql_help.c:1050 sql_help.c:2629 +#: sql_help.c:1054 sql_help.c:2635 msgid "maxvalue" msgstr "макс_значение" -#: sql_help.c:1051 sql_help.c:2630 sql_help.c:4295 sql_help.c:4385 -#: sql_help.c:4534 sql_help.c:4689 sql_help.c:4754 +#: sql_help.c:1055 sql_help.c:2636 sql_help.c:4301 sql_help.c:4391 +#: sql_help.c:4540 sql_help.c:4695 sql_help.c:4760 msgid "start" msgstr "начальное_значение" -#: sql_help.c:1052 sql_help.c:1301 +#: sql_help.c:1056 sql_help.c:1305 msgid "restart" msgstr "значение_перезапуска" -#: sql_help.c:1053 sql_help.c:2631 +#: sql_help.c:1057 sql_help.c:2637 msgid "cache" msgstr "кеш" -#: sql_help.c:1097 +#: sql_help.c:1101 msgid "new_target" msgstr "новое_имя" -#: sql_help.c:1113 sql_help.c:2675 +#: sql_help.c:1117 sql_help.c:2681 msgid "conninfo" msgstr "строка_подключения" -#: sql_help.c:1115 sql_help.c:2676 +#: sql_help.c:1119 sql_help.c:2682 msgid "publication_name" msgstr "имя_публикации" -#: sql_help.c:1116 +#: sql_help.c:1120 msgid "set_publication_option" msgstr "параметр_set_publication" -#: sql_help.c:1119 +#: sql_help.c:1123 msgid "refresh_option" msgstr "параметр_обновления" -#: sql_help.c:1124 sql_help.c:2677 +#: sql_help.c:1128 sql_help.c:2683 msgid "subscription_parameter" msgstr "параметр_подписки" -#: sql_help.c:1278 sql_help.c:1281 +#: sql_help.c:1282 sql_help.c:1285 msgid "partition_name" msgstr "имя_секции" -#: sql_help.c:1279 sql_help.c:2259 sql_help.c:2803 +#: sql_help.c:1283 sql_help.c:2264 sql_help.c:2809 msgid "partition_bound_spec" msgstr "указание_границ_секции" -#: sql_help.c:1298 sql_help.c:1345 sql_help.c:2817 +#: sql_help.c:1302 sql_help.c:1349 sql_help.c:2823 msgid "sequence_options" msgstr "параметры_последовательности" -#: sql_help.c:1300 +#: sql_help.c:1304 msgid "sequence_option" msgstr "параметр_последовательности" -#: sql_help.c:1312 +#: sql_help.c:1316 msgid "table_constraint_using_index" msgstr "ограничение_таблицы_с_индексом" -#: sql_help.c:1320 sql_help.c:1321 sql_help.c:1322 sql_help.c:1323 +#: sql_help.c:1324 sql_help.c:1325 sql_help.c:1326 sql_help.c:1327 msgid "rewrite_rule_name" msgstr "имя_правила_перезаписи" -#: sql_help.c:1334 sql_help.c:2842 +#: sql_help.c:1338 sql_help.c:2848 msgid "and partition_bound_spec is:" msgstr "и указание_границ_секции:" -#: sql_help.c:1335 sql_help.c:1336 sql_help.c:1337 sql_help.c:2843 -#: sql_help.c:2844 sql_help.c:2845 +#: sql_help.c:1339 sql_help.c:1340 sql_help.c:1341 sql_help.c:2849 +#: sql_help.c:2850 sql_help.c:2851 msgid "partition_bound_expr" msgstr "выражение_границ_секции" -#: sql_help.c:1338 sql_help.c:1339 sql_help.c:2846 sql_help.c:2847 +#: sql_help.c:1342 sql_help.c:1343 sql_help.c:2852 sql_help.c:2853 msgid "numeric_literal" msgstr "числовая_константа" -#: sql_help.c:1340 +#: sql_help.c:1344 msgid "and column_constraint is:" msgstr "и ограничение_столбца:" -#: sql_help.c:1343 sql_help.c:2266 sql_help.c:2299 sql_help.c:2505 -#: sql_help.c:2815 +#: sql_help.c:1347 sql_help.c:2271 sql_help.c:2305 sql_help.c:2511 +#: sql_help.c:2821 msgid "default_expr" msgstr "выражение_по_умолчанию" -#: sql_help.c:1344 sql_help.c:2267 sql_help.c:2816 +#: sql_help.c:1348 sql_help.c:2272 sql_help.c:2822 msgid "generation_expr" msgstr "генерирующее_выражение" -#: sql_help.c:1346 sql_help.c:1347 sql_help.c:1356 sql_help.c:1358 -#: sql_help.c:1362 sql_help.c:2818 sql_help.c:2819 sql_help.c:2828 -#: sql_help.c:2830 sql_help.c:2834 +#: sql_help.c:1350 sql_help.c:1351 sql_help.c:1360 sql_help.c:1362 +#: sql_help.c:1366 sql_help.c:2824 sql_help.c:2825 sql_help.c:2834 +#: sql_help.c:2836 sql_help.c:2840 msgid "index_parameters" msgstr "параметры_индекса" -#: sql_help.c:1348 sql_help.c:1365 sql_help.c:2820 sql_help.c:2837 +#: sql_help.c:1352 sql_help.c:1369 sql_help.c:2826 sql_help.c:2843 msgid "reftable" msgstr "целевая_таблица" -#: sql_help.c:1349 sql_help.c:1366 sql_help.c:2821 sql_help.c:2838 +#: sql_help.c:1353 sql_help.c:1370 sql_help.c:2827 sql_help.c:2844 msgid "refcolumn" msgstr "целевой_столбец" -#: sql_help.c:1350 sql_help.c:1351 sql_help.c:1367 sql_help.c:1368 -#: sql_help.c:2822 sql_help.c:2823 sql_help.c:2839 sql_help.c:2840 +#: sql_help.c:1354 sql_help.c:1355 sql_help.c:1371 sql_help.c:1372 +#: sql_help.c:2828 sql_help.c:2829 sql_help.c:2845 sql_help.c:2846 msgid "referential_action" msgstr "ссылочное_действие" -#: sql_help.c:1352 sql_help.c:2268 sql_help.c:2824 +#: sql_help.c:1356 sql_help.c:2273 sql_help.c:2830 msgid "and table_constraint is:" msgstr "и ограничение_таблицы:" -#: sql_help.c:1360 sql_help.c:2832 +#: sql_help.c:1364 sql_help.c:2838 msgid "exclude_element" msgstr "объект_исключения" -#: sql_help.c:1361 sql_help.c:2833 sql_help.c:4293 sql_help.c:4383 -#: sql_help.c:4532 sql_help.c:4687 sql_help.c:4752 +#: sql_help.c:1365 sql_help.c:2839 sql_help.c:4299 sql_help.c:4389 +#: sql_help.c:4538 sql_help.c:4693 sql_help.c:4758 msgid "operator" msgstr "оператор" -#: sql_help.c:1363 sql_help.c:2377 sql_help.c:2835 +#: sql_help.c:1367 sql_help.c:2383 sql_help.c:2841 msgid "predicate" msgstr "предикат" -#: sql_help.c:1369 +#: sql_help.c:1373 msgid "and table_constraint_using_index is:" msgstr "и ограничение_таблицы_с_индексом:" -#: sql_help.c:1372 sql_help.c:2848 +#: sql_help.c:1376 sql_help.c:2854 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "параметры_индекса в ограничениях UNIQUE, PRIMARY KEY и EXCLUDE:" -#: sql_help.c:1377 sql_help.c:2853 +#: sql_help.c:1381 sql_help.c:2859 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "объект_исключения в ограничении EXCLUDE:" -#: sql_help.c:1380 sql_help.c:2370 sql_help.c:2780 sql_help.c:2793 -#: sql_help.c:2807 sql_help.c:2856 sql_help.c:3830 +#: sql_help.c:1384 sql_help.c:2376 sql_help.c:2786 sql_help.c:2799 +#: sql_help.c:2813 sql_help.c:2862 sql_help.c:3836 msgid "opclass" msgstr "класс_оператора" -#: sql_help.c:1396 sql_help.c:1399 sql_help.c:2891 +#: sql_help.c:1400 sql_help.c:1403 sql_help.c:2897 msgid "tablespace_option" msgstr "параметр_табл_пространства" -#: sql_help.c:1420 sql_help.c:1423 sql_help.c:1429 sql_help.c:1433 +#: sql_help.c:1424 sql_help.c:1427 sql_help.c:1433 sql_help.c:1437 msgid "token_type" msgstr "тип_фрагмента" -#: sql_help.c:1421 sql_help.c:1424 +#: sql_help.c:1425 sql_help.c:1428 msgid "dictionary_name" msgstr "имя_словаря" -#: sql_help.c:1426 sql_help.c:1430 +#: sql_help.c:1430 sql_help.c:1434 msgid "old_dictionary" msgstr "старый_словарь" -#: sql_help.c:1427 sql_help.c:1431 +#: sql_help.c:1431 sql_help.c:1435 msgid "new_dictionary" msgstr "новый_словарь" -#: sql_help.c:1526 sql_help.c:1540 sql_help.c:1543 sql_help.c:1544 -#: sql_help.c:3042 +#: sql_help.c:1530 sql_help.c:1544 sql_help.c:1547 sql_help.c:1548 +#: sql_help.c:3048 msgid "attribute_name" msgstr "имя_атрибута" -#: sql_help.c:1527 +#: sql_help.c:1531 msgid "new_attribute_name" msgstr "новое_имя_атрибута" -#: sql_help.c:1531 sql_help.c:1535 +#: sql_help.c:1535 sql_help.c:1539 msgid "new_enum_value" msgstr "новое_значение_перечисления" -#: sql_help.c:1532 +#: sql_help.c:1536 msgid "neighbor_enum_value" msgstr "соседнее_значение_перечисления" -#: sql_help.c:1534 +#: sql_help.c:1538 msgid "existing_enum_value" msgstr "существующее_значение_перечисления" -#: sql_help.c:1537 +#: sql_help.c:1541 msgid "property" msgstr "свойство" -#: sql_help.c:1612 sql_help.c:2251 sql_help.c:2260 sql_help.c:2643 -#: sql_help.c:3120 sql_help.c:3571 sql_help.c:3750 sql_help.c:3786 -#: sql_help.c:4098 +#: sql_help.c:1616 sql_help.c:2256 sql_help.c:2265 sql_help.c:2649 +#: sql_help.c:3126 sql_help.c:3577 sql_help.c:3756 sql_help.c:3792 +#: sql_help.c:4104 msgid "server_name" msgstr "имя_сервера" -#: sql_help.c:1644 sql_help.c:1647 sql_help.c:3135 +#: sql_help.c:1648 sql_help.c:1651 sql_help.c:3141 msgid "view_option_name" msgstr "имя_параметра_представления" -#: sql_help.c:1645 sql_help.c:3136 +#: sql_help.c:1649 sql_help.c:3142 msgid "view_option_value" msgstr "значение_параметра_представления" -#: sql_help.c:1666 sql_help.c:1667 sql_help.c:4659 sql_help.c:4660 +#: sql_help.c:1670 sql_help.c:1671 sql_help.c:4665 sql_help.c:4666 msgid "table_and_columns" msgstr "таблица_и_столбцы" -#: sql_help.c:1668 sql_help.c:1912 sql_help.c:3619 sql_help.c:3963 -#: sql_help.c:4661 +#: sql_help.c:1672 sql_help.c:1916 sql_help.c:3625 sql_help.c:3969 +#: sql_help.c:4667 msgid "where option can be one of:" msgstr "где допустимый параметр:" -#: sql_help.c:1669 sql_help.c:1670 sql_help.c:1914 sql_help.c:1917 -#: sql_help.c:2096 sql_help.c:3620 sql_help.c:3621 sql_help.c:3622 -#: sql_help.c:3623 sql_help.c:3624 sql_help.c:3625 sql_help.c:3626 -#: sql_help.c:3627 sql_help.c:4662 sql_help.c:4663 sql_help.c:4664 -#: sql_help.c:4665 sql_help.c:4666 sql_help.c:4667 sql_help.c:4668 -#: sql_help.c:4669 +#: sql_help.c:1673 sql_help.c:1674 sql_help.c:1918 sql_help.c:1921 +#: sql_help.c:2100 sql_help.c:3626 sql_help.c:3627 sql_help.c:3628 +#: sql_help.c:3629 sql_help.c:3630 sql_help.c:3631 sql_help.c:3632 +#: sql_help.c:3633 sql_help.c:4668 sql_help.c:4669 sql_help.c:4670 +#: sql_help.c:4671 sql_help.c:4672 sql_help.c:4673 sql_help.c:4674 +#: sql_help.c:4675 msgid "boolean" msgstr "логическое_значение" -#: sql_help.c:1671 sql_help.c:4671 +#: sql_help.c:1675 sql_help.c:4677 msgid "and table_and_columns is:" msgstr "и таблица_и_столбцы:" -#: sql_help.c:1687 sql_help.c:4443 sql_help.c:4445 sql_help.c:4469 +#: sql_help.c:1691 sql_help.c:4449 sql_help.c:4451 sql_help.c:4475 msgid "transaction_mode" msgstr "режим_транзакции" -#: sql_help.c:1688 sql_help.c:4446 sql_help.c:4470 +#: sql_help.c:1692 sql_help.c:4452 sql_help.c:4476 msgid "where transaction_mode is one of:" msgstr "где допустимый режим_транзакции:" -#: sql_help.c:1697 sql_help.c:4303 sql_help.c:4312 sql_help.c:4316 -#: sql_help.c:4320 sql_help.c:4323 sql_help.c:4542 sql_help.c:4551 -#: sql_help.c:4555 sql_help.c:4559 sql_help.c:4562 sql_help.c:4762 -#: sql_help.c:4771 sql_help.c:4775 sql_help.c:4779 sql_help.c:4782 +#: sql_help.c:1701 sql_help.c:4309 sql_help.c:4318 sql_help.c:4322 +#: sql_help.c:4326 sql_help.c:4329 sql_help.c:4548 sql_help.c:4557 +#: sql_help.c:4561 sql_help.c:4565 sql_help.c:4568 sql_help.c:4768 +#: sql_help.c:4777 sql_help.c:4781 sql_help.c:4785 sql_help.c:4788 msgid "argument" msgstr "аргумент" -#: sql_help.c:1787 +#: sql_help.c:1791 msgid "relation_name" msgstr "имя_отношения" -#: sql_help.c:1792 sql_help.c:3746 sql_help.c:4094 +#: sql_help.c:1796 sql_help.c:3752 sql_help.c:4100 msgid "domain_name" msgstr "имя_домена" -#: sql_help.c:1814 +#: sql_help.c:1818 msgid "policy_name" msgstr "имя_политики" -#: sql_help.c:1827 +#: sql_help.c:1831 msgid "rule_name" msgstr "имя_правила" -#: sql_help.c:1846 +#: sql_help.c:1850 msgid "text" msgstr "текст" -#: sql_help.c:1871 sql_help.c:3930 sql_help.c:4135 +#: sql_help.c:1875 sql_help.c:3936 sql_help.c:4141 msgid "transaction_id" msgstr "код_транзакции" -#: sql_help.c:1902 sql_help.c:1909 sql_help.c:3856 +#: sql_help.c:1906 sql_help.c:1913 sql_help.c:3862 msgid "filename" msgstr "имя_файла" -#: sql_help.c:1903 sql_help.c:1910 sql_help.c:2583 sql_help.c:2584 -#: sql_help.c:2585 +#: sql_help.c:1907 sql_help.c:1914 sql_help.c:2589 sql_help.c:2590 +#: sql_help.c:2591 msgid "command" msgstr "команда" -#: sql_help.c:1905 sql_help.c:2582 sql_help.c:2994 sql_help.c:3171 -#: sql_help.c:3840 sql_help.c:4286 sql_help.c:4288 sql_help.c:4376 -#: sql_help.c:4378 sql_help.c:4525 sql_help.c:4527 sql_help.c:4630 -#: sql_help.c:4745 sql_help.c:4747 +#: sql_help.c:1909 sql_help.c:2588 sql_help.c:3000 sql_help.c:3177 +#: sql_help.c:3846 sql_help.c:4292 sql_help.c:4294 sql_help.c:4382 +#: sql_help.c:4384 sql_help.c:4531 sql_help.c:4533 sql_help.c:4636 +#: sql_help.c:4751 sql_help.c:4753 msgid "condition" msgstr "условие" -#: sql_help.c:1908 sql_help.c:2411 sql_help.c:2877 sql_help.c:3137 -#: sql_help.c:3155 sql_help.c:3821 +#: sql_help.c:1912 sql_help.c:2417 sql_help.c:2883 sql_help.c:3143 +#: sql_help.c:3161 sql_help.c:3827 msgid "query" msgstr "запрос" -#: sql_help.c:1913 +#: sql_help.c:1917 msgid "format_name" msgstr "имя_формата" -#: sql_help.c:1915 +#: sql_help.c:1919 msgid "delimiter_character" msgstr "символ_разделитель" -#: sql_help.c:1916 +#: sql_help.c:1920 msgid "null_string" msgstr "представление_NULL" -#: sql_help.c:1918 +#: sql_help.c:1922 msgid "quote_character" msgstr "символ_кавычек" -#: sql_help.c:1919 +#: sql_help.c:1923 msgid "escape_character" msgstr "спецсимвол" -#: sql_help.c:1923 +#: sql_help.c:1927 msgid "encoding_name" msgstr "имя_кодировки" -#: sql_help.c:1934 +#: sql_help.c:1938 msgid "access_method_type" msgstr "тип_метода_доступа" -#: sql_help.c:2005 sql_help.c:2024 sql_help.c:2027 +#: sql_help.c:2009 sql_help.c:2028 sql_help.c:2031 msgid "arg_data_type" msgstr "тип_данных_аргумента" -#: sql_help.c:2006 sql_help.c:2028 sql_help.c:2036 +#: sql_help.c:2010 sql_help.c:2032 sql_help.c:2040 msgid "sfunc" msgstr "функция_состояния" -#: sql_help.c:2007 sql_help.c:2029 sql_help.c:2037 +#: sql_help.c:2011 sql_help.c:2033 sql_help.c:2041 msgid "state_data_type" msgstr "тип_данных_состояния" -#: sql_help.c:2008 sql_help.c:2030 sql_help.c:2038 +#: sql_help.c:2012 sql_help.c:2034 sql_help.c:2042 msgid "state_data_size" msgstr "размер_данных_состояния" -#: sql_help.c:2009 sql_help.c:2031 sql_help.c:2039 +#: sql_help.c:2013 sql_help.c:2035 sql_help.c:2043 msgid "ffunc" msgstr "функция_завершения" -#: sql_help.c:2010 sql_help.c:2040 +#: sql_help.c:2014 sql_help.c:2044 msgid "combinefunc" msgstr "комбинирующая_функция" -#: sql_help.c:2011 sql_help.c:2041 +#: sql_help.c:2015 sql_help.c:2045 msgid "serialfunc" msgstr "функция_сериализации" -#: sql_help.c:2012 sql_help.c:2042 +#: sql_help.c:2016 sql_help.c:2046 msgid "deserialfunc" msgstr "функция_десериализации" -#: sql_help.c:2013 sql_help.c:2032 sql_help.c:2043 +#: sql_help.c:2017 sql_help.c:2036 sql_help.c:2047 msgid "initial_condition" msgstr "начальное_условие" -#: sql_help.c:2014 sql_help.c:2044 +#: sql_help.c:2018 sql_help.c:2048 msgid "msfunc" msgstr "функция_состояния_движ" -#: sql_help.c:2015 sql_help.c:2045 +#: sql_help.c:2019 sql_help.c:2049 msgid "minvfunc" msgstr "обратная_функция_движ" -#: sql_help.c:2016 sql_help.c:2046 +#: sql_help.c:2020 sql_help.c:2050 msgid "mstate_data_type" msgstr "тип_данных_состояния_движ" -#: sql_help.c:2017 sql_help.c:2047 +#: sql_help.c:2021 sql_help.c:2051 msgid "mstate_data_size" msgstr "размер_данных_состояния_движ" -#: sql_help.c:2018 sql_help.c:2048 +#: sql_help.c:2022 sql_help.c:2052 msgid "mffunc" msgstr "функция_завершения_движ" -#: sql_help.c:2019 sql_help.c:2049 +#: sql_help.c:2023 sql_help.c:2053 msgid "minitial_condition" msgstr "начальное_условие_движ" -#: sql_help.c:2020 sql_help.c:2050 +#: sql_help.c:2024 sql_help.c:2054 msgid "sort_operator" msgstr "оператор_сортировки" -#: sql_help.c:2033 +#: sql_help.c:2037 msgid "or the old syntax" msgstr "или старый синтаксис" -#: sql_help.c:2035 +#: sql_help.c:2039 msgid "base_type" msgstr "базовый_тип" -#: sql_help.c:2092 sql_help.c:2133 +#: sql_help.c:2096 sql_help.c:2137 msgid "locale" msgstr "код_локали" -#: sql_help.c:2093 sql_help.c:2134 +#: sql_help.c:2097 sql_help.c:2138 msgid "lc_collate" msgstr "код_правила_сортировки" -#: sql_help.c:2094 sql_help.c:2135 +#: sql_help.c:2098 sql_help.c:2139 msgid "lc_ctype" msgstr "код_классификации_символов" -#: sql_help.c:2095 sql_help.c:4188 +#: sql_help.c:2099 sql_help.c:4194 msgid "provider" -msgstr "поставщик" +msgstr "провайдер" -#: sql_help.c:2097 sql_help.c:2189 +#: sql_help.c:2101 sql_help.c:2194 msgid "version" msgstr "версия" -#: sql_help.c:2099 +#: sql_help.c:2103 msgid "existing_collation" msgstr "существующее_правило_сортировки" -#: sql_help.c:2109 +#: sql_help.c:2113 msgid "source_encoding" msgstr "исходная_кодировка" -#: sql_help.c:2110 +#: sql_help.c:2114 msgid "dest_encoding" msgstr "целевая_кодировка" -#: sql_help.c:2131 sql_help.c:2917 +#: sql_help.c:2135 sql_help.c:2923 msgid "template" msgstr "шаблон" -#: sql_help.c:2132 +#: sql_help.c:2136 msgid "encoding" msgstr "кодировка" -#: sql_help.c:2159 +#: sql_help.c:2163 msgid "constraint" msgstr "ограничение" -#: sql_help.c:2160 +#: sql_help.c:2164 msgid "where constraint is:" msgstr "где ограничение:" -#: sql_help.c:2174 sql_help.c:2580 sql_help.c:2990 +#: sql_help.c:2178 sql_help.c:2586 sql_help.c:2996 msgid "event" msgstr "событие" -#: sql_help.c:2175 +#: sql_help.c:2179 msgid "filter_variable" msgstr "переменная_фильтра" -#: sql_help.c:2263 sql_help.c:2812 +#: sql_help.c:2180 +msgid "filter_value" +msgstr "значение_фильтра" + +#: sql_help.c:2268 sql_help.c:2818 msgid "where column_constraint is:" msgstr "где ограничение_столбца:" -#: sql_help.c:2300 +#: sql_help.c:2306 msgid "rettype" msgstr "тип_возврата" -#: sql_help.c:2302 +#: sql_help.c:2308 msgid "column_type" msgstr "тип_столбца" -#: sql_help.c:2311 sql_help.c:2511 +#: sql_help.c:2317 sql_help.c:2517 msgid "definition" msgstr "определение" -#: sql_help.c:2312 sql_help.c:2512 +#: sql_help.c:2318 sql_help.c:2518 msgid "obj_file" msgstr "объектный_файл" -#: sql_help.c:2313 sql_help.c:2513 +#: sql_help.c:2319 sql_help.c:2519 msgid "link_symbol" msgstr "символ_в_экспорте" -#: sql_help.c:2351 sql_help.c:2565 sql_help.c:3109 +#: sql_help.c:2357 sql_help.c:2571 sql_help.c:3115 msgid "uid" msgstr "uid" -#: sql_help.c:2366 sql_help.c:2407 sql_help.c:2781 sql_help.c:2794 -#: sql_help.c:2808 sql_help.c:2873 +#: sql_help.c:2372 sql_help.c:2413 sql_help.c:2787 sql_help.c:2800 +#: sql_help.c:2814 sql_help.c:2879 msgid "method" msgstr "метод" -#: sql_help.c:2371 +#: sql_help.c:2377 msgid "opclass_parameter" msgstr "параметр_класса_оп" -#: sql_help.c:2388 +#: sql_help.c:2394 msgid "call_handler" msgstr "обработчик_вызова" -#: sql_help.c:2389 +#: sql_help.c:2395 msgid "inline_handler" msgstr "обработчик_внедрённого_кода" -#: sql_help.c:2390 +#: sql_help.c:2396 msgid "valfunction" msgstr "функция_проверки" -#: sql_help.c:2429 +#: sql_help.c:2435 msgid "com_op" msgstr "коммут_оператор" -#: sql_help.c:2430 +#: sql_help.c:2436 msgid "neg_op" msgstr "обратный_оператор" -#: sql_help.c:2448 +#: sql_help.c:2454 msgid "family_name" msgstr "имя_семейства" -#: sql_help.c:2459 +#: sql_help.c:2465 msgid "storage_type" msgstr "тип_хранения" -#: sql_help.c:2586 sql_help.c:2997 +#: sql_help.c:2592 sql_help.c:3003 msgid "where event can be one of:" msgstr "где допустимое событие:" -#: sql_help.c:2605 sql_help.c:2607 +#: sql_help.c:2611 sql_help.c:2613 msgid "schema_element" msgstr "элемент_схемы" -#: sql_help.c:2644 +#: sql_help.c:2650 msgid "server_type" msgstr "тип_сервера" -#: sql_help.c:2645 +#: sql_help.c:2651 msgid "server_version" msgstr "версия_сервера" -#: sql_help.c:2646 sql_help.c:3748 sql_help.c:4096 +#: sql_help.c:2652 sql_help.c:3754 sql_help.c:4102 msgid "fdw_name" msgstr "имя_обёртки_сторонних_данных" -#: sql_help.c:2659 +#: sql_help.c:2665 msgid "statistics_name" msgstr "имя_статистики" -#: sql_help.c:2660 +#: sql_help.c:2666 msgid "statistics_kind" msgstr "вид_статистики" -#: sql_help.c:2674 +#: sql_help.c:2680 msgid "subscription_name" msgstr "имя_подписки" -#: sql_help.c:2774 +#: sql_help.c:2780 msgid "source_table" msgstr "исходная_таблица" -#: sql_help.c:2775 +#: sql_help.c:2781 msgid "like_option" msgstr "параметр_порождения" -#: sql_help.c:2841 +#: sql_help.c:2847 msgid "and like_option is:" msgstr "и параметр_порождения:" -#: sql_help.c:2890 +#: sql_help.c:2896 msgid "directory" msgstr "каталог" -#: sql_help.c:2904 +#: sql_help.c:2910 msgid "parser_name" msgstr "имя_анализатора" -#: sql_help.c:2905 +#: sql_help.c:2911 msgid "source_config" msgstr "исходная_конфигурация" -#: sql_help.c:2934 +#: sql_help.c:2940 msgid "start_function" msgstr "функция_начала" -#: sql_help.c:2935 +#: sql_help.c:2941 msgid "gettoken_function" msgstr "функция_выдачи_фрагмента" -#: sql_help.c:2936 +#: sql_help.c:2942 msgid "end_function" msgstr "функция_окончания" -#: sql_help.c:2937 +#: sql_help.c:2943 msgid "lextypes_function" msgstr "функция_лекс_типов" -#: sql_help.c:2938 +#: sql_help.c:2944 msgid "headline_function" msgstr "функция_создания_выдержек" -#: sql_help.c:2950 +#: sql_help.c:2956 msgid "init_function" msgstr "функция_инициализации" -#: sql_help.c:2951 +#: sql_help.c:2957 msgid "lexize_function" msgstr "функция_выделения_лексем" -#: sql_help.c:2964 +#: sql_help.c:2970 msgid "from_sql_function_name" msgstr "имя_функции_из_sql" -#: sql_help.c:2966 +#: sql_help.c:2972 msgid "to_sql_function_name" msgstr "имя_функции_в_sql" -#: sql_help.c:2992 +#: sql_help.c:2998 msgid "referenced_table_name" msgstr "ссылающаяся_таблица" -#: sql_help.c:2993 +#: sql_help.c:2999 msgid "transition_relation_name" msgstr "имя_переходного_отношения" -#: sql_help.c:2996 +#: sql_help.c:3002 msgid "arguments" msgstr "аргументы" -#: sql_help.c:3046 sql_help.c:4221 +#: sql_help.c:3052 sql_help.c:4227 msgid "label" msgstr "метка" -#: sql_help.c:3048 +#: sql_help.c:3054 msgid "subtype" msgstr "подтип" -#: sql_help.c:3049 +#: sql_help.c:3055 msgid "subtype_operator_class" msgstr "класс_оператора_подтипа" -#: sql_help.c:3051 +#: sql_help.c:3057 msgid "canonical_function" msgstr "каноническая_функция" -#: sql_help.c:3052 +#: sql_help.c:3058 msgid "subtype_diff_function" msgstr "функция_различий_подтипа" -#: sql_help.c:3054 +#: sql_help.c:3060 msgid "input_function" msgstr "функция_ввода" -#: sql_help.c:3055 +#: sql_help.c:3061 msgid "output_function" msgstr "функция_вывода" -#: sql_help.c:3056 +#: sql_help.c:3062 msgid "receive_function" msgstr "функция_получения" -#: sql_help.c:3057 +#: sql_help.c:3063 msgid "send_function" msgstr "функция_отправки" -#: sql_help.c:3058 +#: sql_help.c:3064 msgid "type_modifier_input_function" msgstr "функция_ввода_модификатора_типа" -#: sql_help.c:3059 +#: sql_help.c:3065 msgid "type_modifier_output_function" msgstr "функция_вывода_модификатора_типа" -#: sql_help.c:3060 +#: sql_help.c:3066 msgid "analyze_function" msgstr "функция_анализа" -#: sql_help.c:3061 +#: sql_help.c:3067 msgid "internallength" msgstr "внутр_длина" -#: sql_help.c:3062 +#: sql_help.c:3068 msgid "alignment" msgstr "выравнивание" -#: sql_help.c:3063 +#: sql_help.c:3069 msgid "storage" msgstr "хранение" -#: sql_help.c:3064 +#: sql_help.c:3070 msgid "like_type" msgstr "тип_образец" -#: sql_help.c:3065 +#: sql_help.c:3071 msgid "category" msgstr "категория" -#: sql_help.c:3066 +#: sql_help.c:3072 msgid "preferred" msgstr "предпочитаемый" -#: sql_help.c:3067 +#: sql_help.c:3073 msgid "default" msgstr "по_умолчанию" -#: sql_help.c:3068 +#: sql_help.c:3074 msgid "element" msgstr "элемент" -#: sql_help.c:3069 +#: sql_help.c:3075 msgid "delimiter" msgstr "разделитель" -#: sql_help.c:3070 +#: sql_help.c:3076 msgid "collatable" msgstr "сортируемый" -#: sql_help.c:3167 sql_help.c:3816 sql_help.c:4281 sql_help.c:4370 -#: sql_help.c:4520 sql_help.c:4620 sql_help.c:4740 +#: sql_help.c:3173 sql_help.c:3822 sql_help.c:4287 sql_help.c:4376 +#: sql_help.c:4526 sql_help.c:4626 sql_help.c:4746 msgid "with_query" msgstr "запрос_WITH" -#: sql_help.c:3169 sql_help.c:3818 sql_help.c:4300 sql_help.c:4306 -#: sql_help.c:4309 sql_help.c:4313 sql_help.c:4317 sql_help.c:4325 -#: sql_help.c:4539 sql_help.c:4545 sql_help.c:4548 sql_help.c:4552 -#: sql_help.c:4556 sql_help.c:4564 sql_help.c:4622 sql_help.c:4759 -#: sql_help.c:4765 sql_help.c:4768 sql_help.c:4772 sql_help.c:4776 -#: sql_help.c:4784 +#: sql_help.c:3175 sql_help.c:3824 sql_help.c:4306 sql_help.c:4312 +#: sql_help.c:4315 sql_help.c:4319 sql_help.c:4323 sql_help.c:4331 +#: sql_help.c:4545 sql_help.c:4551 sql_help.c:4554 sql_help.c:4558 +#: sql_help.c:4562 sql_help.c:4570 sql_help.c:4628 sql_help.c:4765 +#: sql_help.c:4771 sql_help.c:4774 sql_help.c:4778 sql_help.c:4782 +#: sql_help.c:4790 msgid "alias" msgstr "псевдоним" -#: sql_help.c:3170 sql_help.c:4285 sql_help.c:4327 sql_help.c:4329 -#: sql_help.c:4375 sql_help.c:4524 sql_help.c:4566 sql_help.c:4568 -#: sql_help.c:4629 sql_help.c:4744 sql_help.c:4786 sql_help.c:4788 +#: sql_help.c:3176 sql_help.c:4291 sql_help.c:4333 sql_help.c:4335 +#: sql_help.c:4381 sql_help.c:4530 sql_help.c:4572 sql_help.c:4574 +#: sql_help.c:4635 sql_help.c:4750 sql_help.c:4792 sql_help.c:4794 msgid "from_item" msgstr "источник_данных" -#: sql_help.c:3172 sql_help.c:3653 sql_help.c:3897 sql_help.c:4631 +#: sql_help.c:3178 sql_help.c:3659 sql_help.c:3903 sql_help.c:4637 msgid "cursor_name" msgstr "имя_курсора" -#: sql_help.c:3173 sql_help.c:3824 sql_help.c:4632 +#: sql_help.c:3179 sql_help.c:3830 sql_help.c:4638 msgid "output_expression" msgstr "выражение_результата" -#: sql_help.c:3174 sql_help.c:3825 sql_help.c:4284 sql_help.c:4373 -#: sql_help.c:4523 sql_help.c:4633 sql_help.c:4743 +#: sql_help.c:3180 sql_help.c:3831 sql_help.c:4290 sql_help.c:4379 +#: sql_help.c:4529 sql_help.c:4639 sql_help.c:4749 msgid "output_name" msgstr "имя_результата" -#: sql_help.c:3190 +#: sql_help.c:3196 msgid "code" msgstr "внедрённый_код" -#: sql_help.c:3595 +#: sql_help.c:3601 msgid "parameter" msgstr "параметр" -#: sql_help.c:3617 sql_help.c:3618 sql_help.c:3922 +#: sql_help.c:3623 sql_help.c:3624 sql_help.c:3928 msgid "statement" msgstr "оператор" -#: sql_help.c:3652 sql_help.c:3896 +#: sql_help.c:3658 sql_help.c:3902 msgid "direction" msgstr "направление" -#: sql_help.c:3654 sql_help.c:3898 +#: sql_help.c:3660 sql_help.c:3904 msgid "where direction can be empty or one of:" msgstr "где допустимое направление пустое или:" -#: sql_help.c:3655 sql_help.c:3656 sql_help.c:3657 sql_help.c:3658 -#: sql_help.c:3659 sql_help.c:3899 sql_help.c:3900 sql_help.c:3901 -#: sql_help.c:3902 sql_help.c:3903 sql_help.c:4294 sql_help.c:4296 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4533 sql_help.c:4535 -#: sql_help.c:4688 sql_help.c:4690 sql_help.c:4753 sql_help.c:4755 +#: sql_help.c:3661 sql_help.c:3662 sql_help.c:3663 sql_help.c:3664 +#: sql_help.c:3665 sql_help.c:3905 sql_help.c:3906 sql_help.c:3907 +#: sql_help.c:3908 sql_help.c:3909 sql_help.c:4300 sql_help.c:4302 +#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4539 sql_help.c:4541 +#: sql_help.c:4694 sql_help.c:4696 sql_help.c:4759 sql_help.c:4761 msgid "count" msgstr "число" -#: sql_help.c:3741 sql_help.c:4089 +#: sql_help.c:3747 sql_help.c:4095 msgid "sequence_name" msgstr "имя_последовательности" -#: sql_help.c:3754 sql_help.c:4102 +#: sql_help.c:3760 sql_help.c:4108 msgid "arg_name" msgstr "имя_аргумента" -#: sql_help.c:3755 sql_help.c:4103 +#: sql_help.c:3761 sql_help.c:4109 msgid "arg_type" msgstr "тип_аргумента" -#: sql_help.c:3760 sql_help.c:4108 +#: sql_help.c:3766 sql_help.c:4114 msgid "loid" msgstr "код_БО" -#: sql_help.c:3784 +#: sql_help.c:3790 msgid "remote_schema" msgstr "удалённая_схема" -#: sql_help.c:3787 +#: sql_help.c:3793 msgid "local_schema" msgstr "локальная_схема" -#: sql_help.c:3822 +#: sql_help.c:3828 msgid "conflict_target" msgstr "объект_конфликта" -#: sql_help.c:3823 +#: sql_help.c:3829 msgid "conflict_action" msgstr "действие_при_конфликте" -#: sql_help.c:3826 +#: sql_help.c:3832 msgid "where conflict_target can be one of:" msgstr "где допустимый объект_конфликта:" -#: sql_help.c:3827 +#: sql_help.c:3833 msgid "index_column_name" msgstr "имя_столбца_индекса" -#: sql_help.c:3828 +#: sql_help.c:3834 msgid "index_expression" msgstr "выражение_индекса" -#: sql_help.c:3831 +#: sql_help.c:3837 msgid "index_predicate" msgstr "предикат_индекса" -#: sql_help.c:3833 +#: sql_help.c:3839 msgid "and conflict_action is one of:" msgstr "а допустимое действие_при_конфликте:" -#: sql_help.c:3839 sql_help.c:4628 +#: sql_help.c:3845 sql_help.c:4634 msgid "sub-SELECT" msgstr "вложенный_SELECT" -#: sql_help.c:3848 sql_help.c:3911 sql_help.c:4604 +#: sql_help.c:3854 sql_help.c:3917 sql_help.c:4610 msgid "channel" msgstr "канал" -#: sql_help.c:3870 +#: sql_help.c:3876 msgid "lockmode" msgstr "режим_блокировки" -#: sql_help.c:3871 +#: sql_help.c:3877 msgid "where lockmode is one of:" msgstr "где допустимый режим_блокировки:" -#: sql_help.c:3912 +#: sql_help.c:3918 msgid "payload" msgstr "сообщение_нагрузка" -#: sql_help.c:3939 +#: sql_help.c:3945 msgid "old_role" msgstr "старая_роль" -#: sql_help.c:3940 +#: sql_help.c:3946 msgid "new_role" msgstr "новая_роль" -#: sql_help.c:3971 sql_help.c:4143 sql_help.c:4151 +#: sql_help.c:3977 sql_help.c:4149 sql_help.c:4157 msgid "savepoint_name" msgstr "имя_точки_сохранения" -#: sql_help.c:4287 sql_help.c:4339 sql_help.c:4526 sql_help.c:4578 -#: sql_help.c:4746 sql_help.c:4798 +#: sql_help.c:4293 sql_help.c:4345 sql_help.c:4532 sql_help.c:4584 +#: sql_help.c:4752 sql_help.c:4804 msgid "grouping_element" msgstr "элемент_группирования" -#: sql_help.c:4289 sql_help.c:4379 sql_help.c:4528 sql_help.c:4748 +#: sql_help.c:4295 sql_help.c:4385 sql_help.c:4534 sql_help.c:4754 msgid "window_name" msgstr "имя_окна" -#: sql_help.c:4290 sql_help.c:4380 sql_help.c:4529 sql_help.c:4749 +#: sql_help.c:4296 sql_help.c:4386 sql_help.c:4535 sql_help.c:4755 msgid "window_definition" msgstr "определение_окна" -#: sql_help.c:4291 sql_help.c:4305 sql_help.c:4343 sql_help.c:4381 -#: sql_help.c:4530 sql_help.c:4544 sql_help.c:4582 sql_help.c:4750 -#: sql_help.c:4764 sql_help.c:4802 +#: sql_help.c:4297 sql_help.c:4311 sql_help.c:4349 sql_help.c:4387 +#: sql_help.c:4536 sql_help.c:4550 sql_help.c:4588 sql_help.c:4756 +#: sql_help.c:4770 sql_help.c:4808 msgid "select" msgstr "select" -#: sql_help.c:4298 sql_help.c:4537 sql_help.c:4757 +#: sql_help.c:4304 sql_help.c:4543 sql_help.c:4763 msgid "where from_item can be one of:" msgstr "где допустимый источник_данных:" -#: sql_help.c:4301 sql_help.c:4307 sql_help.c:4310 sql_help.c:4314 -#: sql_help.c:4326 sql_help.c:4540 sql_help.c:4546 sql_help.c:4549 -#: sql_help.c:4553 sql_help.c:4565 sql_help.c:4760 sql_help.c:4766 -#: sql_help.c:4769 sql_help.c:4773 sql_help.c:4785 +#: sql_help.c:4307 sql_help.c:4313 sql_help.c:4316 sql_help.c:4320 +#: sql_help.c:4332 sql_help.c:4546 sql_help.c:4552 sql_help.c:4555 +#: sql_help.c:4559 sql_help.c:4571 sql_help.c:4766 sql_help.c:4772 +#: sql_help.c:4775 sql_help.c:4779 sql_help.c:4791 msgid "column_alias" msgstr "псевдоним_столбца" -#: sql_help.c:4302 sql_help.c:4541 sql_help.c:4761 +#: sql_help.c:4308 sql_help.c:4547 sql_help.c:4767 msgid "sampling_method" msgstr "метод_выборки" -#: sql_help.c:4304 sql_help.c:4543 sql_help.c:4763 +#: sql_help.c:4310 sql_help.c:4549 sql_help.c:4769 msgid "seed" msgstr "начальное_число" -#: sql_help.c:4308 sql_help.c:4341 sql_help.c:4547 sql_help.c:4580 -#: sql_help.c:4767 sql_help.c:4800 +#: sql_help.c:4314 sql_help.c:4347 sql_help.c:4553 sql_help.c:4586 +#: sql_help.c:4773 sql_help.c:4806 msgid "with_query_name" msgstr "имя_запроса_WITH" -#: sql_help.c:4318 sql_help.c:4321 sql_help.c:4324 sql_help.c:4557 -#: sql_help.c:4560 sql_help.c:4563 sql_help.c:4777 sql_help.c:4780 -#: sql_help.c:4783 +#: sql_help.c:4324 sql_help.c:4327 sql_help.c:4330 sql_help.c:4563 +#: sql_help.c:4566 sql_help.c:4569 sql_help.c:4783 sql_help.c:4786 +#: sql_help.c:4789 msgid "column_definition" msgstr "определение_столбца" -#: sql_help.c:4328 sql_help.c:4567 sql_help.c:4787 +#: sql_help.c:4334 sql_help.c:4573 sql_help.c:4793 msgid "join_type" msgstr "тип_соединения" -#: sql_help.c:4330 sql_help.c:4569 sql_help.c:4789 +#: sql_help.c:4336 sql_help.c:4575 sql_help.c:4795 msgid "join_condition" msgstr "условие_соединения" -#: sql_help.c:4331 sql_help.c:4570 sql_help.c:4790 +#: sql_help.c:4337 sql_help.c:4576 sql_help.c:4796 msgid "join_column" msgstr "столбец_соединения" -#: sql_help.c:4332 sql_help.c:4571 sql_help.c:4791 +#: sql_help.c:4338 sql_help.c:4577 sql_help.c:4797 msgid "and grouping_element can be one of:" msgstr "где допустимый элемент_группирования:" -#: sql_help.c:4340 sql_help.c:4579 sql_help.c:4799 +#: sql_help.c:4346 sql_help.c:4585 sql_help.c:4805 msgid "and with_query is:" msgstr "и запрос_WITH:" -#: sql_help.c:4344 sql_help.c:4583 sql_help.c:4803 +#: sql_help.c:4350 sql_help.c:4589 sql_help.c:4809 msgid "values" msgstr "значения" -#: sql_help.c:4345 sql_help.c:4584 sql_help.c:4804 +#: sql_help.c:4351 sql_help.c:4590 sql_help.c:4810 msgid "insert" msgstr "insert" -#: sql_help.c:4346 sql_help.c:4585 sql_help.c:4805 +#: sql_help.c:4352 sql_help.c:4591 sql_help.c:4811 msgid "update" msgstr "update" -#: sql_help.c:4347 sql_help.c:4586 sql_help.c:4806 +#: sql_help.c:4353 sql_help.c:4592 sql_help.c:4812 msgid "delete" msgstr "delete" -#: sql_help.c:4374 +#: sql_help.c:4380 msgid "new_table" msgstr "новая_таблица" -#: sql_help.c:4399 +#: sql_help.c:4405 msgid "timezone" msgstr "часовой_пояс" -#: sql_help.c:4444 +#: sql_help.c:4450 msgid "snapshot_id" msgstr "код_снимка" -#: sql_help.c:4686 +#: sql_help.c:4692 msgid "sort_expression" msgstr "выражение_сортировки" -#: sql_help.c:4813 sql_help.c:5791 +#: sql_help.c:4819 sql_help.c:5797 msgid "abort the current transaction" msgstr "прервать текущую транзакцию" -#: sql_help.c:4819 +#: sql_help.c:4825 msgid "change the definition of an aggregate function" msgstr "изменить определение агрегатной функции" -#: sql_help.c:4825 +#: sql_help.c:4831 msgid "change the definition of a collation" msgstr "изменить определение правила сортировки" -#: sql_help.c:4831 +#: sql_help.c:4837 msgid "change the definition of a conversion" msgstr "изменить определение преобразования" -#: sql_help.c:4837 +#: sql_help.c:4843 msgid "change a database" msgstr "изменить атрибуты базы данных" -#: sql_help.c:4843 +#: sql_help.c:4849 msgid "define default access privileges" msgstr "определить права доступа по умолчанию" -#: sql_help.c:4849 +#: sql_help.c:4855 msgid "change the definition of a domain" msgstr "изменить определение домена" -#: sql_help.c:4855 +#: sql_help.c:4861 msgid "change the definition of an event trigger" msgstr "изменить определение событийного триггера" -#: sql_help.c:4861 +#: sql_help.c:4867 msgid "change the definition of an extension" msgstr "изменить определение расширения" -#: sql_help.c:4867 +#: sql_help.c:4873 msgid "change the definition of a foreign-data wrapper" msgstr "изменить определение обёртки сторонних данных" -#: sql_help.c:4873 +#: sql_help.c:4879 msgid "change the definition of a foreign table" msgstr "изменить определение сторонней таблицы" -#: sql_help.c:4879 +#: sql_help.c:4885 msgid "change the definition of a function" msgstr "изменить определение функции" -#: sql_help.c:4885 +#: sql_help.c:4891 msgid "change role name or membership" msgstr "изменить имя роли или членство" -#: sql_help.c:4891 +#: sql_help.c:4897 msgid "change the definition of an index" msgstr "изменить определение индекса" -#: sql_help.c:4897 +#: sql_help.c:4903 msgid "change the definition of a procedural language" msgstr "изменить определение процедурного языка" -#: sql_help.c:4903 +#: sql_help.c:4909 msgid "change the definition of a large object" msgstr "изменить определение большого объекта" -#: sql_help.c:4909 +#: sql_help.c:4915 msgid "change the definition of a materialized view" msgstr "изменить определение материализованного представления" -#: sql_help.c:4915 +#: sql_help.c:4921 msgid "change the definition of an operator" msgstr "изменить определение оператора" -#: sql_help.c:4921 +#: sql_help.c:4927 msgid "change the definition of an operator class" msgstr "изменить определение класса операторов" -#: sql_help.c:4927 +#: sql_help.c:4933 msgid "change the definition of an operator family" msgstr "изменить определение семейства операторов" -#: sql_help.c:4933 +#: sql_help.c:4939 msgid "change the definition of a row level security policy" -msgstr "изменить определение политики безопасности на уровне строк" +msgstr "изменить определение политики защиты на уровне строк" -#: sql_help.c:4939 +#: sql_help.c:4945 msgid "change the definition of a procedure" msgstr "изменить определение процедуры" -#: sql_help.c:4945 +#: sql_help.c:4951 msgid "change the definition of a publication" msgstr "изменить определение публикации" -#: sql_help.c:4951 sql_help.c:5053 +#: sql_help.c:4957 sql_help.c:5059 msgid "change a database role" msgstr "изменить роль пользователя БД" -#: sql_help.c:4957 +#: sql_help.c:4963 msgid "change the definition of a routine" msgstr "изменить определение подпрограммы" -#: sql_help.c:4963 +#: sql_help.c:4969 msgid "change the definition of a rule" msgstr "изменить определение правила" -#: sql_help.c:4969 +#: sql_help.c:4975 msgid "change the definition of a schema" msgstr "изменить определение схемы" -#: sql_help.c:4975 +#: sql_help.c:4981 msgid "change the definition of a sequence generator" msgstr "изменить определение генератора последовательности" -#: sql_help.c:4981 +#: sql_help.c:4987 msgid "change the definition of a foreign server" msgstr "изменить определение стороннего сервера" -#: sql_help.c:4987 +#: sql_help.c:4993 msgid "change the definition of an extended statistics object" msgstr "изменить определение объекта расширенной статистики" -#: sql_help.c:4993 +#: sql_help.c:4999 msgid "change the definition of a subscription" msgstr "изменить определение подписки" -#: sql_help.c:4999 +#: sql_help.c:5005 msgid "change a server configuration parameter" msgstr "изменить параметр конфигурации сервера" -#: sql_help.c:5005 +#: sql_help.c:5011 msgid "change the definition of a table" msgstr "изменить определение таблицы" -#: sql_help.c:5011 +#: sql_help.c:5017 msgid "change the definition of a tablespace" msgstr "изменить определение табличного пространства" -#: sql_help.c:5017 +#: sql_help.c:5023 msgid "change the definition of a text search configuration" msgstr "изменить определение конфигурации текстового поиска" -#: sql_help.c:5023 +#: sql_help.c:5029 msgid "change the definition of a text search dictionary" msgstr "изменить определение словаря текстового поиска" -#: sql_help.c:5029 +#: sql_help.c:5035 msgid "change the definition of a text search parser" msgstr "изменить определение анализатора текстового поиска" -#: sql_help.c:5035 +#: sql_help.c:5041 msgid "change the definition of a text search template" msgstr "изменить определение шаблона текстового поиска" -#: sql_help.c:5041 +#: sql_help.c:5047 msgid "change the definition of a trigger" msgstr "изменить определение триггера" -#: sql_help.c:5047 +#: sql_help.c:5053 msgid "change the definition of a type" msgstr "изменить определение типа" -#: sql_help.c:5059 +#: sql_help.c:5065 msgid "change the definition of a user mapping" msgstr "изменить сопоставление пользователей" -#: sql_help.c:5065 +#: sql_help.c:5071 msgid "change the definition of a view" msgstr "изменить определение представления" -#: sql_help.c:5071 +#: sql_help.c:5077 msgid "collect statistics about a database" msgstr "собрать статистику о базе данных" -#: sql_help.c:5077 sql_help.c:5869 +#: sql_help.c:5083 sql_help.c:5875 msgid "start a transaction block" msgstr "начать транзакцию" -#: sql_help.c:5083 +#: sql_help.c:5089 msgid "invoke a procedure" msgstr "вызвать процедуру" -#: sql_help.c:5089 +#: sql_help.c:5095 msgid "force a write-ahead log checkpoint" msgstr "произвести контрольную точку в журнале предзаписи" -#: sql_help.c:5095 +#: sql_help.c:5101 msgid "close a cursor" msgstr "закрыть курсор" -#: sql_help.c:5101 +#: sql_help.c:5107 msgid "cluster a table according to an index" msgstr "перегруппировать таблицу по индексу" -#: sql_help.c:5107 +#: sql_help.c:5113 msgid "define or change the comment of an object" msgstr "задать или изменить комментарий объекта" -#: sql_help.c:5113 sql_help.c:5671 +#: sql_help.c:5119 sql_help.c:5677 msgid "commit the current transaction" msgstr "зафиксировать текущую транзакцию" -#: sql_help.c:5119 +#: sql_help.c:5125 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "зафиксировать транзакцию, ранее подготовленную для двухфазной фиксации" -#: sql_help.c:5125 +#: sql_help.c:5131 msgid "copy data between a file and a table" msgstr "импорт/экспорт данных в файл" -#: sql_help.c:5131 +#: sql_help.c:5137 msgid "define a new access method" msgstr "создать новый метод доступа" -#: sql_help.c:5137 +#: sql_help.c:5143 msgid "define a new aggregate function" msgstr "создать агрегатную функцию" -#: sql_help.c:5143 +#: sql_help.c:5149 msgid "define a new cast" msgstr "создать приведение типов" -#: sql_help.c:5149 +#: sql_help.c:5155 msgid "define a new collation" msgstr "создать правило сортировки" -#: sql_help.c:5155 +#: sql_help.c:5161 msgid "define a new encoding conversion" msgstr "создать преобразование кодировки" -#: sql_help.c:5161 +#: sql_help.c:5167 msgid "create a new database" msgstr "создать базу данных" -#: sql_help.c:5167 +#: sql_help.c:5173 msgid "define a new domain" msgstr "создать домен" -#: sql_help.c:5173 +#: sql_help.c:5179 msgid "define a new event trigger" msgstr "создать событийный триггер" -#: sql_help.c:5179 +#: sql_help.c:5185 msgid "install an extension" msgstr "установить расширение" -#: sql_help.c:5185 +#: sql_help.c:5191 msgid "define a new foreign-data wrapper" msgstr "создать обёртку сторонних данных" -#: sql_help.c:5191 +#: sql_help.c:5197 msgid "define a new foreign table" msgstr "создать стороннюю таблицу" -#: sql_help.c:5197 +#: sql_help.c:5203 msgid "define a new function" msgstr "создать функцию" -#: sql_help.c:5203 sql_help.c:5263 sql_help.c:5365 +#: sql_help.c:5209 sql_help.c:5269 sql_help.c:5371 msgid "define a new database role" msgstr "создать роль пользователя БД" -#: sql_help.c:5209 +#: sql_help.c:5215 msgid "define a new index" msgstr "создать индекс" -#: sql_help.c:5215 +#: sql_help.c:5221 msgid "define a new procedural language" msgstr "создать процедурный язык" -#: sql_help.c:5221 +#: sql_help.c:5227 msgid "define a new materialized view" msgstr "создать материализованное представление" -#: sql_help.c:5227 +#: sql_help.c:5233 msgid "define a new operator" msgstr "создать оператор" -#: sql_help.c:5233 +#: sql_help.c:5239 msgid "define a new operator class" msgstr "создать класс операторов" -#: sql_help.c:5239 +#: sql_help.c:5245 msgid "define a new operator family" msgstr "создать семейство операторов" -#: sql_help.c:5245 +#: sql_help.c:5251 msgid "define a new row level security policy for a table" -msgstr "создать новую политику безопасности на уровне строк для таблицы" +msgstr "создать новую политику защиты на уровне строк для таблицы" -#: sql_help.c:5251 +#: sql_help.c:5257 msgid "define a new procedure" msgstr "создать процедуру" -#: sql_help.c:5257 +#: sql_help.c:5263 msgid "define a new publication" msgstr "создать публикацию" -#: sql_help.c:5269 +#: sql_help.c:5275 msgid "define a new rewrite rule" msgstr "создать правило перезаписи" -#: sql_help.c:5275 +#: sql_help.c:5281 msgid "define a new schema" msgstr "создать схему" -#: sql_help.c:5281 +#: sql_help.c:5287 msgid "define a new sequence generator" msgstr "создать генератор последовательностей" -#: sql_help.c:5287 +#: sql_help.c:5293 msgid "define a new foreign server" msgstr "создать сторонний сервер" -#: sql_help.c:5293 +#: sql_help.c:5299 msgid "define extended statistics" msgstr "создать расширенную статистику" -#: sql_help.c:5299 +#: sql_help.c:5305 msgid "define a new subscription" msgstr "создать подписку" -#: sql_help.c:5305 +#: sql_help.c:5311 msgid "define a new table" msgstr "создать таблицу" -#: sql_help.c:5311 sql_help.c:5827 +#: sql_help.c:5317 sql_help.c:5833 msgid "define a new table from the results of a query" msgstr "создать таблицу из результатов запроса" -#: sql_help.c:5317 +#: sql_help.c:5323 msgid "define a new tablespace" msgstr "создать табличное пространство" -#: sql_help.c:5323 +#: sql_help.c:5329 msgid "define a new text search configuration" msgstr "создать конфигурацию текстового поиска" -#: sql_help.c:5329 +#: sql_help.c:5335 msgid "define a new text search dictionary" msgstr "создать словарь текстового поиска" -#: sql_help.c:5335 +#: sql_help.c:5341 msgid "define a new text search parser" msgstr "создать анализатор текстового поиска" -#: sql_help.c:5341 +#: sql_help.c:5347 msgid "define a new text search template" msgstr "создать шаблон текстового поиска" -#: sql_help.c:5347 +#: sql_help.c:5353 msgid "define a new transform" msgstr "создать преобразование" -#: sql_help.c:5353 +#: sql_help.c:5359 msgid "define a new trigger" msgstr "создать триггер" -#: sql_help.c:5359 +#: sql_help.c:5365 msgid "define a new data type" msgstr "создать тип данных" -#: sql_help.c:5371 +#: sql_help.c:5377 msgid "define a new mapping of a user to a foreign server" msgstr "создать сопоставление пользователя для стороннего сервера" -#: sql_help.c:5377 +#: sql_help.c:5383 msgid "define a new view" msgstr "создать представление" -#: sql_help.c:5383 +#: sql_help.c:5389 msgid "deallocate a prepared statement" msgstr "освободить подготовленный оператор" -#: sql_help.c:5389 +#: sql_help.c:5395 msgid "define a cursor" msgstr "создать курсор" -#: sql_help.c:5395 +#: sql_help.c:5401 msgid "delete rows of a table" msgstr "удалить записи таблицы" -#: sql_help.c:5401 +#: sql_help.c:5407 msgid "discard session state" msgstr "очистить состояние сеанса" -#: sql_help.c:5407 +#: sql_help.c:5413 msgid "execute an anonymous code block" msgstr "выполнить анонимный блок кода" -#: sql_help.c:5413 +#: sql_help.c:5419 msgid "remove an access method" msgstr "удалить метод доступа" -#: sql_help.c:5419 +#: sql_help.c:5425 msgid "remove an aggregate function" msgstr "удалить агрегатную функцию" -#: sql_help.c:5425 +#: sql_help.c:5431 msgid "remove a cast" msgstr "удалить приведение типа" -#: sql_help.c:5431 +#: sql_help.c:5437 msgid "remove a collation" msgstr "удалить правило сортировки" -#: sql_help.c:5437 +#: sql_help.c:5443 msgid "remove a conversion" msgstr "удалить преобразование" -#: sql_help.c:5443 +#: sql_help.c:5449 msgid "remove a database" msgstr "удалить базу данных" -#: sql_help.c:5449 +#: sql_help.c:5455 msgid "remove a domain" msgstr "удалить домен" -#: sql_help.c:5455 +#: sql_help.c:5461 msgid "remove an event trigger" msgstr "удалить событийный триггер" -#: sql_help.c:5461 +#: sql_help.c:5467 msgid "remove an extension" msgstr "удалить расширение" -#: sql_help.c:5467 +#: sql_help.c:5473 msgid "remove a foreign-data wrapper" msgstr "удалить обёртку сторонних данных" -#: sql_help.c:5473 +#: sql_help.c:5479 msgid "remove a foreign table" msgstr "удалить стороннюю таблицу" -#: sql_help.c:5479 +#: sql_help.c:5485 msgid "remove a function" msgstr "удалить функцию" -#: sql_help.c:5485 sql_help.c:5551 sql_help.c:5653 +#: sql_help.c:5491 sql_help.c:5557 sql_help.c:5659 msgid "remove a database role" msgstr "удалить роль пользователя БД" -#: sql_help.c:5491 +#: sql_help.c:5497 msgid "remove an index" msgstr "удалить индекс" -#: sql_help.c:5497 +#: sql_help.c:5503 msgid "remove a procedural language" msgstr "удалить процедурный язык" -#: sql_help.c:5503 +#: sql_help.c:5509 msgid "remove a materialized view" msgstr "удалить материализованное представление" -#: sql_help.c:5509 +#: sql_help.c:5515 msgid "remove an operator" msgstr "удалить оператор" -#: sql_help.c:5515 +#: sql_help.c:5521 msgid "remove an operator class" msgstr "удалить класс операторов" -#: sql_help.c:5521 +#: sql_help.c:5527 msgid "remove an operator family" msgstr "удалить семейство операторов" -#: sql_help.c:5527 +#: sql_help.c:5533 msgid "remove database objects owned by a database role" msgstr "удалить объекты базы данных, принадлежащие роли" -#: sql_help.c:5533 +#: sql_help.c:5539 msgid "remove a row level security policy from a table" -msgstr "удалить политику безопасности на уровне строк из таблицы" +msgstr "удалить из таблицы политику защиты на уровне строк" -#: sql_help.c:5539 +#: sql_help.c:5545 msgid "remove a procedure" msgstr "удалить процедуру" -#: sql_help.c:5545 +#: sql_help.c:5551 msgid "remove a publication" msgstr "удалить публикацию" -#: sql_help.c:5557 +#: sql_help.c:5563 msgid "remove a routine" msgstr "удалить подпрограмму" -#: sql_help.c:5563 +#: sql_help.c:5569 msgid "remove a rewrite rule" msgstr "удалить правило перезаписи" -#: sql_help.c:5569 +#: sql_help.c:5575 msgid "remove a schema" msgstr "удалить схему" -#: sql_help.c:5575 +#: sql_help.c:5581 msgid "remove a sequence" msgstr "удалить последовательность" -#: sql_help.c:5581 +#: sql_help.c:5587 msgid "remove a foreign server descriptor" msgstr "удалить описание стороннего сервера" -#: sql_help.c:5587 +#: sql_help.c:5593 msgid "remove extended statistics" msgstr "удалить расширенную статистику" -#: sql_help.c:5593 +#: sql_help.c:5599 msgid "remove a subscription" msgstr "удалить подписку" -#: sql_help.c:5599 +#: sql_help.c:5605 msgid "remove a table" msgstr "удалить таблицу" -#: sql_help.c:5605 +#: sql_help.c:5611 msgid "remove a tablespace" msgstr "удалить табличное пространство" -#: sql_help.c:5611 +#: sql_help.c:5617 msgid "remove a text search configuration" msgstr "удалить конфигурацию текстового поиска" -#: sql_help.c:5617 +#: sql_help.c:5623 msgid "remove a text search dictionary" msgstr "удалить словарь текстового поиска" -#: sql_help.c:5623 +#: sql_help.c:5629 msgid "remove a text search parser" msgstr "удалить анализатор текстового поиска" -#: sql_help.c:5629 +#: sql_help.c:5635 msgid "remove a text search template" msgstr "удалить шаблон текстового поиска" -#: sql_help.c:5635 +#: sql_help.c:5641 msgid "remove a transform" msgstr "удалить преобразование" -#: sql_help.c:5641 +#: sql_help.c:5647 msgid "remove a trigger" msgstr "удалить триггер" -#: sql_help.c:5647 +#: sql_help.c:5653 msgid "remove a data type" msgstr "удалить тип данных" -#: sql_help.c:5659 +#: sql_help.c:5665 msgid "remove a user mapping for a foreign server" msgstr "удалить сопоставление пользователя для стороннего сервера" -#: sql_help.c:5665 +#: sql_help.c:5671 msgid "remove a view" msgstr "удалить представление" -#: sql_help.c:5677 +#: sql_help.c:5683 msgid "execute a prepared statement" msgstr "выполнить подготовленный оператор" -#: sql_help.c:5683 +#: sql_help.c:5689 msgid "show the execution plan of a statement" msgstr "показать план выполнения оператора" -#: sql_help.c:5689 +#: sql_help.c:5695 msgid "retrieve rows from a query using a cursor" msgstr "получить результат запроса через курсор" -#: sql_help.c:5695 +#: sql_help.c:5701 msgid "define access privileges" msgstr "определить права доступа" -#: sql_help.c:5701 +#: sql_help.c:5707 msgid "import table definitions from a foreign server" msgstr "импортировать определения таблиц со стороннего сервера" -#: sql_help.c:5707 +#: sql_help.c:5713 msgid "create new rows in a table" msgstr "добавить строки в таблицу" -#: sql_help.c:5713 +#: sql_help.c:5719 msgid "listen for a notification" msgstr "ожидать уведомления" -#: sql_help.c:5719 +#: sql_help.c:5725 msgid "load a shared library file" msgstr "загрузить файл разделяемой библиотеки" -#: sql_help.c:5725 +#: sql_help.c:5731 msgid "lock a table" msgstr "заблокировать таблицу" -#: sql_help.c:5731 +#: sql_help.c:5737 msgid "position a cursor" msgstr "установить курсор" -#: sql_help.c:5737 +#: sql_help.c:5743 msgid "generate a notification" msgstr "сгенерировать уведомление" -#: sql_help.c:5743 +#: sql_help.c:5749 msgid "prepare a statement for execution" msgstr "подготовить оператор для выполнения" -#: sql_help.c:5749 +#: sql_help.c:5755 msgid "prepare the current transaction for two-phase commit" msgstr "подготовить текущую транзакцию для двухфазной фиксации" -#: sql_help.c:5755 +#: sql_help.c:5761 msgid "change the ownership of database objects owned by a database role" msgstr "изменить владельца объектов БД, принадлежащих заданной роли" -#: sql_help.c:5761 +#: sql_help.c:5767 msgid "replace the contents of a materialized view" msgstr "заменить содержимое материализованного представления" -#: sql_help.c:5767 +#: sql_help.c:5773 msgid "rebuild indexes" msgstr "перестроить индексы" -#: sql_help.c:5773 +#: sql_help.c:5779 msgid "destroy a previously defined savepoint" msgstr "удалить ранее определённую точку сохранения" -#: sql_help.c:5779 +#: sql_help.c:5785 msgid "restore the value of a run-time parameter to the default value" msgstr "восстановить исходное значение параметра выполнения" -#: sql_help.c:5785 +#: sql_help.c:5791 msgid "remove access privileges" msgstr "удалить права доступа" -#: sql_help.c:5797 +#: sql_help.c:5803 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "отменить транзакцию, подготовленную ранее для двухфазной фиксации" -#: sql_help.c:5803 +#: sql_help.c:5809 msgid "roll back to a savepoint" msgstr "откатиться к точке сохранения" -#: sql_help.c:5809 +#: sql_help.c:5815 msgid "define a new savepoint within the current transaction" msgstr "определить новую точку сохранения в текущей транзакции" -#: sql_help.c:5815 +#: sql_help.c:5821 msgid "define or change a security label applied to an object" msgstr "задать или изменить метку безопасности, применённую к объекту" -#: sql_help.c:5821 sql_help.c:5875 sql_help.c:5911 +#: sql_help.c:5827 sql_help.c:5881 sql_help.c:5917 msgid "retrieve rows from a table or view" msgstr "выбрать строки из таблицы или представления" -#: sql_help.c:5833 +#: sql_help.c:5839 msgid "change a run-time parameter" msgstr "изменить параметр выполнения" -#: sql_help.c:5839 +#: sql_help.c:5845 msgid "set constraint check timing for the current transaction" msgstr "установить время проверки ограничений для текущей транзакции" -#: sql_help.c:5845 +#: sql_help.c:5851 msgid "set the current user identifier of the current session" msgstr "задать идентификатор текущего пользователя в текущем сеансе" -#: sql_help.c:5851 +#: sql_help.c:5857 msgid "" "set the session user identifier and the current user identifier of the " "current session" @@ -6594,31 +6599,31 @@ "задать идентификатор пользователя сеанса и идентификатор текущего " "пользователя в текущем сеансе" -#: sql_help.c:5857 +#: sql_help.c:5863 msgid "set the characteristics of the current transaction" msgstr "задать свойства текущей транзакции" -#: sql_help.c:5863 +#: sql_help.c:5869 msgid "show the value of a run-time parameter" msgstr "показать значение параметра выполнения" -#: sql_help.c:5881 +#: sql_help.c:5887 msgid "empty a table or set of tables" msgstr "опустошить таблицу или набор таблиц" -#: sql_help.c:5887 +#: sql_help.c:5893 msgid "stop listening for a notification" msgstr "прекратить ожидание уведомлений" -#: sql_help.c:5893 +#: sql_help.c:5899 msgid "update rows of a table" msgstr "изменить строки таблицы" -#: sql_help.c:5899 +#: sql_help.c:5905 msgid "garbage-collect and optionally analyze a database" msgstr "произвести сборку мусора и проанализировать базу данных" -#: sql_help.c:5905 +#: sql_help.c:5911 msgid "compute a set of rows" msgstr "получить набор строк" @@ -6659,9 +6664,9 @@ #: startup.c:763 #, c-format msgid "could not find own program executable" -msgstr "не удалось найти собственный исполняемый файл" +msgstr "не удалось найти свой исполняемый файл" -#: tab-complete.c:4640 +#: tab-complete.c:4681 #, c-format msgid "" "tab completion query failed: %s\n" @@ -6697,6 +6702,9 @@ "нераспознанное значение \"%s\" для \"%s\"\n" "Допустимые значения: %s." +#~ msgid "Enter new password: " +#~ msgstr "Введите новый пароль: " + #~ msgid "Could not send cancel request: %s" #~ msgstr "Отправить сигнал отмены не удалось: %s" diff -Nru postgresql-13-13.4/src/bin/psql/po/sv.po postgresql-13-13.7/src/bin/psql/po/sv.po --- postgresql-13-13.4/src/bin/psql/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/psql/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-08-27 21:44+0000\n" -"PO-Revision-Date: 2020-08-30 10:09+0200\n" +"POT-Creation-Date: 2022-02-18 04:28+0000\n" +"PO-Revision-Date: 2021-11-12 23:29+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -69,7 +69,8 @@ msgstr "pclose misslyckades: %m" #: ../../common/exec.c:539 ../../common/exec.c:584 ../../common/exec.c:676 -#: command.c:1255 input.c:227 mainloop.c:81 mainloop.c:402 +#: command.c:1256 command.c:3201 command.c:3250 command.c:3367 input.c:227 +#: mainloop.c:81 mainloop.c:402 #, c-format msgid "out of memory" msgstr "slut på minne" @@ -90,7 +91,7 @@ msgid "could not look up effective user ID %ld: %s" msgstr "kunde inte slå upp effektivt användar-id %ld: %s" -#: ../../common/username.c:45 command.c:559 +#: ../../common/username.c:45 command.c:560 msgid "user does not exist" msgstr "användaren finns inte" @@ -129,19 +130,14 @@ msgid "child process exited with unrecognized status %d" msgstr "barnprocess avslutade med okänd statuskod %d" -#: ../../fe_utils/cancel.c:161 ../../fe_utils/cancel.c:206 +#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 msgid "Cancel request sent\n" msgstr "Förfrågan om avbrytning skickad\n" -#: ../../fe_utils/cancel.c:165 +#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 msgid "Could not send cancel request: " msgstr "Kunde inte skicka förfrågan om avbrytning: " -#: ../../fe_utils/cancel.c:210 -#, c-format -msgid "Could not send cancel request: %s" -msgstr "Kunde inte skicka förfrågan om avbrytning: %s" - #: ../../fe_utils/print.c:350 #, c-format msgid "(%lu row)" @@ -164,7 +160,7 @@ msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" msgstr "Kan inte lägga till cell till tabellinnehåll: totala cellantalet (%d) överskridet.\n" -#: ../../fe_utils/print.c:3414 +#: ../../fe_utils/print.c:3417 #, c-format msgid "invalid output format (internal error): %d" msgstr "ogiltigt utdataformat (internt fel): %d" @@ -174,265 +170,266 @@ msgid "skipping recursive expansion of variable \"%s\"" msgstr "hoppar över rekursiv expandering av variabeln \"%s\"" -#: command.c:224 +#: command.c:225 #, c-format msgid "invalid command \\%s" msgstr "ogiltigt kommando \\%s" -#: command.c:226 +#: command.c:227 #, c-format msgid "Try \\? for help." msgstr "Försök med \\? för hjälp." -#: command.c:244 +#: command.c:245 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: extra argument \"%s\" ignorerat" -#: command.c:296 +#: command.c:297 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "kommandot \\%s ignorerat; använd \\endif eller Ctrl-C för att avsluta nuvarande \\if-block" -#: command.c:557 +#: command.c:558 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "kunde inte hämta hemkatalog för användar-ID %ld: %s" -#: command.c:575 +#: command.c:576 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: kunde inte byta katalog till \"%s\": %m" -#: command.c:600 +#: command.c:601 #, c-format msgid "You are currently not connected to a database.\n" msgstr "Du är för närvarande inte uppkopplad mot en databas.\n" -#: command.c:613 +#: command.c:614 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Du är uppkopplad upp mot databas \"%s\" som användare \"%s\" på adress \"%s\" på port \"%s\".\n" -#: command.c:616 +#: command.c:617 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Du är uppkopplad mot databas \"%s\" som användare \"%s\" via uttag i \"%s\" på port \"%s\".\n" -#: command.c:622 +#: command.c:623 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "Du är uppkopplad upp mot databas \"%s\" som användare \"%s\" på värd \"%s\" (adress \"%s\") på port \"%s\".\n" -#: command.c:625 +#: command.c:626 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Du är uppkopplad upp mot databas \"%s\" som användare \"%s\" på värd \"%s\" på port \"%s\".\n" -#: command.c:965 command.c:1061 command.c:2550 +#: command.c:966 command.c:1062 command.c:2559 #, c-format msgid "no query buffer" msgstr "ingen frågebuffert" -#: command.c:998 command.c:5061 +#: command.c:999 command.c:5219 #, c-format msgid "invalid line number: %s" msgstr "ogiltigt radnummer: %s" -#: command.c:1052 +#: command.c:1053 #, c-format msgid "The server (version %s) does not support editing function source." msgstr "Servern (version %s) stöder inte redigering av funktionskällkod." -#: command.c:1055 +#: command.c:1056 #, c-format msgid "The server (version %s) does not support editing view definitions." msgstr "Servern (version %s) stöder inte redigering av vydefinitioner." -#: command.c:1137 +#: command.c:1138 msgid "No changes" msgstr "Inga ändringar" -#: command.c:1216 +#: command.c:1217 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s: ogiltigt kodningsnamn eller konverteringsprocedur hittades inte" -#: command.c:1251 command.c:1992 command.c:3253 command.c:5163 common.c:174 -#: common.c:223 common.c:388 common.c:1237 common.c:1265 common.c:1373 -#: common.c:1480 common.c:1518 copy.c:488 copy.c:707 help.c:62 large_obj.c:157 -#: large_obj.c:192 large_obj.c:254 +#: command.c:1252 command.c:2004 command.c:3197 command.c:3389 command.c:5321 +#: common.c:176 common.c:225 common.c:390 common.c:1246 common.c:1274 +#: common.c:1383 common.c:1490 common.c:1528 copy.c:488 copy.c:707 help.c:62 +#: large_obj.c:157 large_obj.c:192 large_obj.c:254 startup.c:299 #, c-format msgid "%s" msgstr "%s" -#: command.c:1258 +#: command.c:1259 msgid "There is no previous error." msgstr "Det finns inget tidigare fel." -#: command.c:1371 +#: command.c:1372 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: saknar höger parentes" -#: command.c:1548 command.c:1853 command.c:1867 command.c:1884 command.c:2044 -#: command.c:2281 command.c:2517 command.c:2557 +#: command.c:1549 command.c:1854 command.c:1868 command.c:1885 command.c:2053 +#: command.c:2290 command.c:2526 command.c:2566 #, c-format msgid "\\%s: missing required argument" msgstr "\\%s: obligatoriskt argument saknas" -#: command.c:1679 +#: command.c:1680 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif: kan inte komma efter \\else" -#: command.c:1684 +#: command.c:1685 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif: ingen matchande \\if" -#: command.c:1748 +#: command.c:1749 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else: kan inte komma efter \\else" -#: command.c:1753 +#: command.c:1754 #, c-format msgid "\\else: no matching \\if" msgstr "\\else: ingen matchande \\if" -#: command.c:1793 +#: command.c:1794 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif: ingen matchande \\if" -#: command.c:1948 +#: command.c:1949 msgid "Query buffer is empty." msgstr "Frågebufferten är tom." -#: command.c:1970 -msgid "Enter new password: " -msgstr "Mata in nytt lösenord: " +#: command.c:1986 +#, c-format +msgid "Enter new password for user \"%s\": " +msgstr "Mata in nytt lösenord för användare \"%s\": " -#: command.c:1971 +#: command.c:1989 msgid "Enter it again: " msgstr "Mata in det igen: " -#: command.c:1975 +#: command.c:1993 #, c-format msgid "Passwords didn't match." msgstr "Lösenorden stämde inte överens." -#: command.c:2074 +#: command.c:2083 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: kunde inte läsa värde på varibeln" -#: command.c:2177 +#: command.c:2186 msgid "Query buffer reset (cleared)." msgstr "Frågebufferten har blivit borttagen." -#: command.c:2199 +#: command.c:2208 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "Skrev historiken till fil \"%s\".\n" -#: command.c:2286 +#: command.c:2295 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: omgivningsvariabelnamn får ej innehålla \"=\"" -#: command.c:2347 +#: command.c:2356 #, c-format msgid "The server (version %s) does not support showing function source." msgstr "Servern (version %s) stöder inte visning av funktionskällkod." -#: command.c:2350 +#: command.c:2359 #, c-format msgid "The server (version %s) does not support showing view definitions." msgstr "Servern (version %s) stöder inte visning av vydefinitioner." -#: command.c:2357 +#: command.c:2366 #, c-format msgid "function name is required" msgstr "funktionsnamn krävs" -#: command.c:2359 +#: command.c:2368 #, c-format msgid "view name is required" msgstr "vynamn krävs" -#: command.c:2489 +#: command.c:2498 msgid "Timing is on." msgstr "Tidtagning är på." -#: command.c:2491 +#: command.c:2500 msgid "Timing is off." msgstr "Tidtagning är av." -#: command.c:2576 command.c:2604 command.c:3661 command.c:3664 command.c:3667 -#: command.c:3673 command.c:3675 command.c:3683 command.c:3693 command.c:3702 -#: command.c:3716 command.c:3733 command.c:3791 common.c:70 copy.c:331 -#: copy.c:403 psqlscanslash.l:784 psqlscanslash.l:795 psqlscanslash.l:805 +#: command.c:2585 command.c:2613 command.c:3798 command.c:3801 command.c:3804 +#: command.c:3810 command.c:3812 command.c:3838 command.c:3848 command.c:3860 +#: command.c:3874 command.c:3891 command.c:3949 common.c:72 copy.c:331 +#: copy.c:403 psqlscanslash.l:786 psqlscanslash.l:797 psqlscanslash.l:807 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2988 startup.c:236 startup.c:287 +#: command.c:2997 startup.c:236 startup.c:287 msgid "Password: " msgstr "Lösenord: " -#: command.c:2993 startup.c:284 +#: command.c:3002 startup.c:284 #, c-format msgid "Password for user %s: " msgstr "Lösenord för användare %s: " -#: command.c:3064 +#: command.c:3056 #, c-format msgid "All connection parameters must be supplied because no database connection exists" msgstr "Alla anslutningsparametrar måste anges då ingen databasuppkoppling är gjord" -#: command.c:3257 +#: command.c:3395 #, c-format msgid "Previous connection kept" -msgstr "Föregående förbindelse bevarad" +msgstr "Föregående anslutning bevarad" -#: command.c:3261 +#: command.c:3401 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3310 +#: command.c:3448 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Du är nu uppkopplad mot databasen \"%s\" som användare \"%s\" på adress \"%s\" på port \"%s\".\n" -#: command.c:3313 +#: command.c:3451 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Du är nu uppkopplad mot databasen \"%s\" som användare \"%s\" via uttag i \"%s\" på port \"%s\".\n" -#: command.c:3319 +#: command.c:3457 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "Du är nu uppkopplad mot databasen \"%s\" som användare \"%s\" på värd \"%s\" (adress \"%s\") på port \"%s\".\n" -#: command.c:3322 +#: command.c:3460 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Du är nu uppkopplad mot databasen \"%s\" som användare \"%s\" på värd \"%s\" på port \"%s\".\n" -#: command.c:3327 +#: command.c:3465 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "Du är nu uppkopplad mot databasen \"%s\" som användare \"%s\".\n" -#: command.c:3360 +#: command.c:3498 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, server %s)\n" -#: command.c:3368 +#: command.c:3506 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -441,29 +438,29 @@ "VARNING: %s huvudversion %s, server huvudversion %s.\n" " En del psql-finesser kommer kanske inte fungera.\n" -#: command.c:3407 +#: command.c:3545 #, c-format msgid "SSL connection (protocol: %s, cipher: %s, bits: %s, compression: %s)\n" -msgstr "SSL-förbindelse (protokoll: %s, krypto: %s, bitar: %s, komprimering: %s)\n" +msgstr "SSL-anslutning (protokoll: %s, krypto: %s, bitar: %s, komprimering: %s)\n" -#: command.c:3408 command.c:3409 command.c:3410 +#: command.c:3546 command.c:3547 command.c:3548 msgid "unknown" msgstr "okänd" -#: command.c:3411 help.c:45 +#: command.c:3549 help.c:45 msgid "off" msgstr "av" -#: command.c:3411 help.c:45 +#: command.c:3549 help.c:45 msgid "on" msgstr "på" -#: command.c:3425 +#: command.c:3563 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "GSSAPI-krypterad anslutning\n" -#: command.c:3445 +#: command.c:3583 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -474,259 +471,259 @@ " 8-bitars tecken kommer troligen inte fungera korrekt. Se psql:s\n" " referensmanual i sektionen \"Notes for Windows users\" för mer detaljer.\n" -#: command.c:3549 +#: command.c:3687 #, c-format msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number" msgstr "omgivningsvariabeln PSQL_EDITOR_LINENUMBER_ARG måste ange ett radnummer" -#: command.c:3578 +#: command.c:3716 #, c-format msgid "could not start editor \"%s\"" msgstr "kunde inte starta editorn \"%s\"" -#: command.c:3580 +#: command.c:3718 #, c-format msgid "could not start /bin/sh" msgstr "kunde inte starta /bin/sh" -#: command.c:3618 +#: command.c:3755 #, c-format msgid "could not locate temporary directory: %s" msgstr "kunde inte hitta temp-katalog: %s" -#: command.c:3645 +#: command.c:3782 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "kunde inte öppna temporär fil \"%s\": %m" -#: command.c:3950 +#: command.c:4108 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "\\pset: tvetydig förkortning \"%s\" matchar både \"%s\" och \"%s\"" -#: command.c:3970 +#: command.c:4128 #, c-format msgid "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" msgstr "\\pset: tillåtna format är aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" -#: command.c:3989 +#: command.c:4147 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: tillåtna linjestilar är ascii, old-ascii, unicode" -#: command.c:4004 +#: command.c:4162 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: tillåtna Unicode-ramstilar är single, double" -#: command.c:4019 +#: command.c:4177 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: tillåtna Unicode-kolumnlinjestilar ärsingle, double" -#: command.c:4034 +#: command.c:4192 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: tillåtna Unicode-rubriklinjestilar är single, double" -#: command.c:4077 +#: command.c:4235 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: csv_fieldsep måste vara ett ensamt en-byte-tecken" -#: command.c:4082 +#: command.c:4240 #, c-format msgid "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return" msgstr "\\pset: csv_fieldset kan inte vara dubbelcitat, nyrad eller vagnretur" -#: command.c:4219 command.c:4407 +#: command.c:4377 command.c:4565 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset: okänd parameter: %s" -#: command.c:4239 +#: command.c:4397 #, c-format msgid "Border style is %d.\n" msgstr "Ramstil är %d.\n" -#: command.c:4245 +#: command.c:4403 #, c-format msgid "Target width is unset.\n" msgstr "Målvidd är inte satt.\n" -#: command.c:4247 +#: command.c:4405 #, c-format msgid "Target width is %d.\n" msgstr "Målvidd är %d.\n" -#: command.c:4254 +#: command.c:4412 #, c-format msgid "Expanded display is on.\n" msgstr "Utökad visning är på.\n" -#: command.c:4256 +#: command.c:4414 #, c-format msgid "Expanded display is used automatically.\n" msgstr "Utökad visning används automatiskt.\n" -#: command.c:4258 +#: command.c:4416 #, c-format msgid "Expanded display is off.\n" msgstr "Utökad visning är av.\n" -#: command.c:4264 +#: command.c:4422 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Fältseparatorn för CSV är \"%s\".\n" -#: command.c:4272 command.c:4280 +#: command.c:4430 command.c:4438 #, c-format msgid "Field separator is zero byte.\n" msgstr "Fältseparatorn är noll-byte.\n" -#: command.c:4274 +#: command.c:4432 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Fältseparatorn är \"%s\".\n" -#: command.c:4287 +#: command.c:4445 #, c-format msgid "Default footer is on.\n" msgstr "Standard sidfot är på.\n" -#: command.c:4289 +#: command.c:4447 #, c-format msgid "Default footer is off.\n" msgstr "Standard sidfot är av.\n" -#: command.c:4295 +#: command.c:4453 #, c-format msgid "Output format is %s.\n" msgstr "Utdataformatet är \"%s\".\n" -#: command.c:4301 +#: command.c:4459 #, c-format msgid "Line style is %s.\n" msgstr "Linjestil är %s.\n" -#: command.c:4308 +#: command.c:4466 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null-visare är \"%s\".\n" -#: command.c:4316 +#: command.c:4474 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "Lokal-anpassad numerisk utdata är på.\n" -#: command.c:4318 +#: command.c:4476 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "Lokal-anpassad numerisk utdata är av.\n" -#: command.c:4325 +#: command.c:4483 #, c-format msgid "Pager is used for long output.\n" msgstr "Siduppdelare är på för lång utdata.\n" -#: command.c:4327 +#: command.c:4485 #, c-format msgid "Pager is always used.\n" msgstr "Siduppdelare används alltid.\n" -#: command.c:4329 +#: command.c:4487 #, c-format msgid "Pager usage is off.\n" msgstr "Siduppdelare är av.\n" -#: command.c:4335 +#: command.c:4493 #, c-format msgid "Pager won't be used for less than %d line.\n" msgid_plural "Pager won't be used for less than %d lines.\n" msgstr[0] "Siduppdelare kommer inte användas för färre än %d linje.\n" msgstr[1] "Siduppdelare kommer inte användas för färre än %d linjer.\n" -#: command.c:4345 command.c:4355 +#: command.c:4503 command.c:4513 #, c-format msgid "Record separator is zero byte.\n" msgstr "Postseparatorn är noll-byte.\n" -#: command.c:4347 +#: command.c:4505 #, c-format msgid "Record separator is .\n" msgstr "Postseparatorn är .\n" -#: command.c:4349 +#: command.c:4507 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Postseparatorn är \"%s\".\n" -#: command.c:4362 +#: command.c:4520 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Tabellattributen är \"%s\".\n" -#: command.c:4365 +#: command.c:4523 #, c-format msgid "Table attributes unset.\n" msgstr "Tabellattributen är ej satta.\n" -#: command.c:4372 +#: command.c:4530 #, c-format msgid "Title is \"%s\".\n" msgstr "Titeln är \"%s\".\n" -#: command.c:4374 +#: command.c:4532 #, c-format msgid "Title is unset.\n" msgstr "Titeln är inte satt.\n" -#: command.c:4381 +#: command.c:4539 #, c-format msgid "Tuples only is on.\n" msgstr "Visa bara tupler är på.\n" -#: command.c:4383 +#: command.c:4541 #, c-format msgid "Tuples only is off.\n" msgstr "Visa bara tupler är av.\n" -#: command.c:4389 +#: command.c:4547 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Unicode-ramstil är \"%s\".\n" -#: command.c:4395 +#: command.c:4553 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Unicode-kolumnLinjestil är \"%s\".\n" -#: command.c:4401 +#: command.c:4559 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Unicode-rubriklinjestil är \"%s\".\n" -#: command.c:4634 +#: command.c:4792 #, c-format msgid "\\!: failed" msgstr "\\!: misslyckades" -#: command.c:4659 common.c:648 +#: command.c:4817 common.c:650 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch kan inte användas på en tom fråga" -#: command.c:4700 +#: command.c:4858 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (varje %gs)\n" -#: command.c:4703 +#: command.c:4861 #, c-format msgid "%s (every %gs)\n" msgstr "%s (varje %gs)\n" -#: command.c:4757 command.c:4764 common.c:548 common.c:555 common.c:1220 +#: command.c:4915 command.c:4922 common.c:550 common.c:557 common.c:1229 #, c-format msgid "" "********* QUERY **********\n" @@ -739,112 +736,117 @@ "**************************\n" "\n" -#: command.c:4956 +#: command.c:5114 #, c-format msgid "\"%s.%s\" is not a view" msgstr "\"%s.%s\" är inte en vy" -#: command.c:4972 +#: command.c:5130 #, c-format msgid "could not parse reloptions array" msgstr "kunde inte parsa arrayen reloptions" -#: common.c:159 +#: common.c:161 #, c-format msgid "cannot escape without active connection" msgstr "kan inte escape:a utan en aktiv uppkoppling" -#: common.c:200 +#: common.c:202 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"" msgstr "shell-kommandots argument innehåller nyrad eller vagnretur: \"%s\"" -#: common.c:304 +#: common.c:306 #, c-format msgid "connection to server was lost" -msgstr "förbindelsen till servern har brutits" +msgstr "uppkopplingen till servern har brutits" -#: common.c:308 +#: common.c:310 #, c-format msgid "The connection to the server was lost. Attempting reset: " -msgstr "Förbindelsen till servern har brutits. Försöker starta om: " +msgstr "Anslutningen till servern har brutits. Försöker starta om: " -#: common.c:313 +#: common.c:315 #, c-format msgid "Failed.\n" msgstr "Misslyckades.\n" -#: common.c:326 +#: common.c:328 #, c-format msgid "Succeeded.\n" msgstr "Lyckades.\n" -#: common.c:378 common.c:938 common.c:1155 +#: common.c:380 common.c:947 common.c:1164 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "oväntad PQresultStatus: %d" -#: common.c:487 +#: common.c:489 #, c-format msgid "Time: %.3f ms\n" msgstr "Tid: %.3f ms\n" -#: common.c:502 +#: common.c:504 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "Tid: %.3f ms (%02d:%06.3f)\n" -#: common.c:511 +#: common.c:513 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "Tid: %.3f ms (%02d:%02d:%06.3f)\n" -#: common.c:518 +#: common.c:520 #, c-format msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" msgstr "Tid: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" -#: common.c:542 common.c:600 common.c:1191 +#: common.c:544 common.c:602 common.c:1200 #, c-format msgid "You are currently not connected to a database." msgstr "Du är för närvarande inte uppkopplad mot en databas." -#: common.c:655 +#: common.c:657 #, c-format msgid "\\watch cannot be used with COPY" msgstr "\\watch kan inte användas med COPY" -#: common.c:660 +#: common.c:662 #, c-format msgid "unexpected result status for \\watch" msgstr "oväntat resultatstatus för \\watch" -#: common.c:690 +#: common.c:692 #, c-format msgid "Asynchronous notification \"%s\" with payload \"%s\" received from server process with PID %d.\n" msgstr "Asynkron notificering \"%s\" mottagen med innehåll \"%s\" från serverprocess med PID %d.\n" -#: common.c:693 +#: common.c:695 #, c-format msgid "Asynchronous notification \"%s\" received from server process with PID %d.\n" msgstr "Asynkron notificering \"%s\" mottagen från serverprocess med PID %d.\n" -#: common.c:726 common.c:743 +#: common.c:728 common.c:745 #, c-format msgid "could not print result table: %m" msgstr "kunde inte visa resultatabell: %m" -#: common.c:764 +#: common.c:766 #, c-format msgid "no rows returned for \\gset" msgstr "inga rader returnerades för \\gset" -#: common.c:769 +#: common.c:771 #, c-format msgid "more than one row returned for \\gset" msgstr "mer än en rad returnerades för \\gset" -#: common.c:1200 +#: common.c:789 +#, c-format +msgid "attempt to \\gset into specially treated variable \"%s\" ignored" +msgstr "försök att utföra \\gset in i en speciellt hanterad variabel \"%s\" hoppas över" + +#: common.c:1209 #, c-format msgid "" "***(Single step mode: verify command)*******************************************\n" @@ -855,33 +857,33 @@ "%s\n" "***(tryck return för att fortsätta eller skriv x och return för att avbryta)*****\n" -#: common.c:1255 +#: common.c:1264 #, c-format msgid "The server (version %s) does not support savepoints for ON_ERROR_ROLLBACK." msgstr "Servern (version %s) stöder inte sparpunkter för ON_ERROR_ROLLBACK." -#: common.c:1318 +#: common.c:1327 #, c-format msgid "STATEMENT: %s" msgstr "SATS: %s" -#: common.c:1361 +#: common.c:1371 #, c-format msgid "unexpected transaction status (%d)" msgstr "oväntad transaktionsstatus (%d)" -#: common.c:1502 describe.c:2001 +#: common.c:1512 describe.c:2001 msgid "Column" msgstr "Kolumn" -#: common.c:1503 describe.c:177 describe.c:393 describe.c:411 describe.c:456 +#: common.c:1513 describe.c:177 describe.c:393 describe.c:411 describe.c:456 #: describe.c:473 describe.c:962 describe.c:1126 describe.c:1711 -#: describe.c:1735 describe.c:2002 describe.c:3719 describe.c:3929 -#: describe.c:4162 describe.c:5368 +#: describe.c:1735 describe.c:2002 describe.c:3756 describe.c:3966 +#: describe.c:4199 describe.c:5405 msgid "Type" msgstr "Typ" -#: common.c:1552 +#: common.c:1562 #, c-format msgid "The command has no result, or the result has no columns.\n" msgstr "Kommandot hade inget resultat eller så hade resultatet inga kolumner.\n" @@ -1002,20 +1004,20 @@ msgstr "\\crosstabview: hittar ej kolumnnamn: \"%s\"" #: describe.c:75 describe.c:373 describe.c:678 describe.c:810 describe.c:954 -#: describe.c:1115 describe.c:1187 describe.c:3708 describe.c:3916 -#: describe.c:4160 describe.c:4251 describe.c:4518 describe.c:4678 -#: describe.c:4919 describe.c:4994 describe.c:5005 describe.c:5067 -#: describe.c:5492 describe.c:5575 +#: describe.c:1115 describe.c:1187 describe.c:3745 describe.c:3953 +#: describe.c:4197 describe.c:4288 describe.c:4555 describe.c:4715 +#: describe.c:4956 describe.c:5031 describe.c:5042 describe.c:5104 +#: describe.c:5529 describe.c:5612 msgid "Schema" msgstr "Schema" #: describe.c:76 describe.c:174 describe.c:242 describe.c:250 describe.c:374 #: describe.c:679 describe.c:811 describe.c:872 describe.c:955 describe.c:1188 -#: describe.c:3709 describe.c:3917 describe.c:4083 describe.c:4161 -#: describe.c:4252 describe.c:4331 describe.c:4519 describe.c:4603 -#: describe.c:4679 describe.c:4920 describe.c:4995 describe.c:5006 -#: describe.c:5068 describe.c:5265 describe.c:5349 describe.c:5573 -#: describe.c:5745 describe.c:5985 +#: describe.c:3746 describe.c:3954 describe.c:4120 describe.c:4198 +#: describe.c:4289 describe.c:4368 describe.c:4556 describe.c:4640 +#: describe.c:4716 describe.c:4957 describe.c:5032 describe.c:5043 +#: describe.c:5105 describe.c:5302 describe.c:5386 describe.c:5610 +#: describe.c:5782 describe.c:6022 msgid "Name" msgstr "Namn" @@ -1030,12 +1032,12 @@ #: describe.c:110 describe.c:117 describe.c:185 describe.c:273 describe.c:513 #: describe.c:727 describe.c:826 describe.c:897 describe.c:1190 describe.c:2020 -#: describe.c:3496 describe.c:3769 describe.c:3963 describe.c:4114 -#: describe.c:4188 describe.c:4261 describe.c:4344 describe.c:4427 -#: describe.c:4546 describe.c:4612 describe.c:4680 describe.c:4821 -#: describe.c:4863 describe.c:4936 describe.c:4998 describe.c:5007 -#: describe.c:5069 describe.c:5291 describe.c:5371 describe.c:5506 -#: describe.c:5576 large_obj.c:290 large_obj.c:300 +#: describe.c:3533 describe.c:3806 describe.c:4000 describe.c:4151 +#: describe.c:4225 describe.c:4298 describe.c:4381 describe.c:4464 +#: describe.c:4583 describe.c:4649 describe.c:4717 describe.c:4858 +#: describe.c:4900 describe.c:4973 describe.c:5035 describe.c:5044 +#: describe.c:5106 describe.c:5328 describe.c:5408 describe.c:5543 +#: describe.c:5613 large_obj.c:290 large_obj.c:300 msgid "Description" msgstr "Beskrivning" @@ -1052,11 +1054,11 @@ msgid "Index" msgstr "Index" -#: describe.c:176 describe.c:3727 describe.c:3942 describe.c:5493 +#: describe.c:176 describe.c:3764 describe.c:3979 describe.c:5530 msgid "Table" msgstr "Tabell" -#: describe.c:184 describe.c:5270 +#: describe.c:184 describe.c:5307 msgid "Handler" msgstr "Hanterare" @@ -1070,10 +1072,10 @@ msgstr "Servern (version %s) stöder inte tabellutrymmen." #: describe.c:243 describe.c:251 describe.c:501 describe.c:717 describe.c:873 -#: describe.c:1114 describe.c:3720 describe.c:3918 describe.c:4087 -#: describe.c:4333 describe.c:4604 describe.c:5266 describe.c:5350 -#: describe.c:5746 describe.c:5883 describe.c:5986 describe.c:6101 -#: describe.c:6180 large_obj.c:289 +#: describe.c:1114 describe.c:3757 describe.c:3955 describe.c:4124 +#: describe.c:4370 describe.c:4641 describe.c:5303 describe.c:5387 +#: describe.c:5783 describe.c:5920 describe.c:6023 describe.c:6138 +#: describe.c:6217 large_obj.c:289 msgid "Owner" msgstr "Ägare" @@ -1081,11 +1083,11 @@ msgid "Location" msgstr "Plats" -#: describe.c:263 describe.c:3313 +#: describe.c:263 describe.c:3350 msgid "Options" msgstr "Alternativ" -#: describe.c:268 describe.c:690 describe.c:889 describe.c:3761 describe.c:3765 +#: describe.c:268 describe.c:690 describe.c:889 describe.c:3798 describe.c:3802 msgid "Size" msgstr "Storlek" @@ -1204,8 +1206,8 @@ msgid "Result type" msgstr "Resultattyp" -#: describe.c:819 describe.c:4339 describe.c:4404 describe.c:4410 -#: describe.c:4820 describe.c:6352 describe.c:6356 +#: describe.c:819 describe.c:4376 describe.c:4441 describe.c:4447 +#: describe.c:4857 describe.c:6389 describe.c:6393 msgid "Function" msgstr "Funktion" @@ -1217,11 +1219,11 @@ msgid "Encoding" msgstr "Kodning" -#: describe.c:879 describe.c:4520 +#: describe.c:879 describe.c:4557 msgid "Collate" msgstr "Jämförelse" -#: describe.c:880 describe.c:4521 +#: describe.c:880 describe.c:4558 msgid "Ctype" msgstr "Ctype" @@ -1233,27 +1235,27 @@ msgid "List of databases" msgstr "Lista med databaser" -#: describe.c:956 describe.c:1117 describe.c:3710 +#: describe.c:956 describe.c:1117 describe.c:3747 msgid "table" msgstr "tabell" -#: describe.c:957 describe.c:3711 +#: describe.c:957 describe.c:3748 msgid "view" msgstr "vy" -#: describe.c:958 describe.c:3712 +#: describe.c:958 describe.c:3749 msgid "materialized view" msgstr "materialiserad vy" -#: describe.c:959 describe.c:1119 describe.c:3714 +#: describe.c:959 describe.c:1119 describe.c:3751 msgid "sequence" msgstr "sekvens" -#: describe.c:960 describe.c:3716 +#: describe.c:960 describe.c:3753 msgid "foreign table" msgstr "främmande tabell" -#: describe.c:961 describe.c:3717 describe.c:3927 +#: describe.c:961 describe.c:3754 describe.c:3964 msgid "partitioned table" msgstr "partitionerad tabell" @@ -1265,7 +1267,7 @@ msgid "Policies" msgstr "Policys" -#: describe.c:1070 describe.c:6042 describe.c:6046 +#: describe.c:1070 describe.c:6079 describe.c:6083 msgid "Access privileges" msgstr "Åtkomsträttigheter" @@ -1318,12 +1320,12 @@ msgid "Object descriptions" msgstr "Objektbeskrivningar" -#: describe.c:1402 describe.c:3833 +#: describe.c:1402 describe.c:3870 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "Kunde inte hitta en relation med namn \"%s\"." -#: describe.c:1405 describe.c:3836 +#: describe.c:1405 describe.c:3873 #, c-format msgid "Did not find any relations." msgstr "Kunde inte hitta några relationer." @@ -1349,13 +1351,13 @@ msgid "Increment" msgstr "Ökning" -#: describe.c:1716 describe.c:1740 describe.c:1871 describe.c:4255 -#: describe.c:4421 describe.c:4535 describe.c:4540 describe.c:6089 +#: describe.c:1716 describe.c:1740 describe.c:1871 describe.c:4292 +#: describe.c:4458 describe.c:4572 describe.c:4577 describe.c:6126 msgid "yes" msgstr "ja" -#: describe.c:1717 describe.c:1741 describe.c:1872 describe.c:4255 -#: describe.c:4418 describe.c:4535 describe.c:6090 +#: describe.c:1717 describe.c:1741 describe.c:1872 describe.c:4292 +#: describe.c:4455 describe.c:4572 describe.c:6127 msgid "no" msgstr "nej" @@ -1457,15 +1459,15 @@ msgid "Partitioned table \"%s.%s\"" msgstr "Partitionerad tabell \"%s.%s\"" -#: describe.c:2005 describe.c:4168 +#: describe.c:2005 describe.c:4205 msgid "Collation" msgstr "Jämförelse" -#: describe.c:2006 describe.c:4175 +#: describe.c:2006 describe.c:4212 msgid "Nullable" msgstr "Nullbar" -#: describe.c:2007 describe.c:4176 +#: describe.c:2007 describe.c:4213 msgid "Default" msgstr "Standard" @@ -1477,8 +1479,8 @@ msgid "Definition" msgstr "Definition" -#: describe.c:2014 describe.c:5286 describe.c:5370 describe.c:5441 -#: describe.c:5505 +#: describe.c:2014 describe.c:5323 describe.c:5407 describe.c:5478 +#: describe.c:5542 msgid "FDW options" msgstr "FDW-alternativ" @@ -1490,624 +1492,624 @@ msgid "Stats target" msgstr "Statistikmål" -#: describe.c:2131 +#: describe.c:2135 #, c-format msgid "Partition of: %s %s" msgstr "Partition av: %s %s" -#: describe.c:2143 +#: describe.c:2147 msgid "No partition constraint" msgstr "Inget partitioneringsvillkor" -#: describe.c:2145 +#: describe.c:2149 #, c-format msgid "Partition constraint: %s" msgstr "Partitioneringsvillkor: %s" -#: describe.c:2169 +#: describe.c:2173 #, c-format msgid "Partition key: %s" msgstr "Partitioneringsnyckel: %s" -#: describe.c:2195 +#: describe.c:2199 #, c-format msgid "Owning table: \"%s.%s\"" msgstr "Ägande tabell \"%s.%s\"" -#: describe.c:2266 +#: describe.c:2270 msgid "primary key, " msgstr "primärnyckel, " -#: describe.c:2268 +#: describe.c:2272 msgid "unique, " msgstr "unik, " -#: describe.c:2274 +#: describe.c:2278 #, c-format msgid "for table \"%s.%s\"" msgstr "för tabell \"%s.%s\"" -#: describe.c:2278 +#: describe.c:2282 #, c-format msgid ", predicate (%s)" msgstr ", predikat (%s)" -#: describe.c:2281 +#: describe.c:2285 msgid ", clustered" msgstr ", klustrad" -#: describe.c:2284 +#: describe.c:2288 msgid ", invalid" msgstr ", ogiltig" -#: describe.c:2287 +#: describe.c:2291 msgid ", deferrable" msgstr ", uppskjutbar" -#: describe.c:2290 +#: describe.c:2294 msgid ", initially deferred" msgstr ", initialt uppskjuten" -#: describe.c:2293 +#: describe.c:2297 msgid ", replica identity" msgstr ", replikaidentitet" -#: describe.c:2360 +#: describe.c:2364 msgid "Indexes:" msgstr "Index:" -#: describe.c:2444 +#: describe.c:2448 msgid "Check constraints:" msgstr "Kontrollvillkor:" -#: describe.c:2512 +#: describe.c:2516 msgid "Foreign-key constraints:" msgstr "Främmande nyckel-villkor:" -#: describe.c:2575 +#: describe.c:2579 msgid "Referenced by:" msgstr "Refererad av:" -#: describe.c:2625 +#: describe.c:2629 msgid "Policies:" msgstr "Policys:" -#: describe.c:2628 +#: describe.c:2632 msgid "Policies (forced row security enabled):" msgstr "Policys (tvingad radsäkerhet påslagen):" -#: describe.c:2631 +#: describe.c:2635 msgid "Policies (row security enabled): (none)" msgstr "Policys (radsäkerhet påslagna): (ingen)" -#: describe.c:2634 +#: describe.c:2638 msgid "Policies (forced row security enabled): (none)" msgstr "Policys (tvingad radsäkerhet påslagen): (ingen)" -#: describe.c:2637 +#: describe.c:2641 msgid "Policies (row security disabled):" msgstr "Policys (radsäkerhet avstängd):" -#: describe.c:2700 +#: describe.c:2709 msgid "Statistics objects:" msgstr "Statistikobjekt:" -#: describe.c:2809 describe.c:2913 +#: describe.c:2823 describe.c:2927 msgid "Rules:" msgstr "Regler:" -#: describe.c:2812 +#: describe.c:2826 msgid "Disabled rules:" msgstr "Avstängda regler:" -#: describe.c:2815 +#: describe.c:2829 msgid "Rules firing always:" msgstr "Regler som alltid utförs:" -#: describe.c:2818 +#: describe.c:2832 msgid "Rules firing on replica only:" msgstr "Regler som utförs enbart på replika:" -#: describe.c:2858 +#: describe.c:2872 msgid "Publications:" msgstr "Publiceringar:" -#: describe.c:2896 +#: describe.c:2910 msgid "View definition:" msgstr "Vydefinition:" -#: describe.c:3043 +#: describe.c:3080 msgid "Triggers:" msgstr "Utlösare:" -#: describe.c:3047 +#: describe.c:3084 msgid "Disabled user triggers:" msgstr "Avstängda användarutlösare:" -#: describe.c:3049 +#: describe.c:3086 msgid "Disabled triggers:" msgstr "Avstängda utlösare:" -#: describe.c:3052 +#: describe.c:3089 msgid "Disabled internal triggers:" msgstr "Avstängda interna utlösare:" -#: describe.c:3055 +#: describe.c:3092 msgid "Triggers firing always:" msgstr "Utlösare som alltid aktiveras:" -#: describe.c:3058 +#: describe.c:3095 msgid "Triggers firing on replica only:" msgstr "Utlösare som aktiveras enbart på replika:" -#: describe.c:3130 +#: describe.c:3167 #, c-format msgid "Server: %s" msgstr "Server: %s" -#: describe.c:3138 +#: describe.c:3175 #, c-format msgid "FDW options: (%s)" msgstr "FDW-alternativ: (%s)" -#: describe.c:3159 +#: describe.c:3196 msgid "Inherits" msgstr "Ärver" -#: describe.c:3219 +#: describe.c:3256 #, c-format msgid "Number of partitions: %d" msgstr "Antal partitioner: %d" -#: describe.c:3228 +#: describe.c:3265 #, c-format msgid "Number of partitions: %d (Use \\d+ to list them.)" msgstr "Antal partitioner: %d (Använd \\d+ för att lista dem.)" -#: describe.c:3230 +#: describe.c:3267 #, c-format msgid "Number of child tables: %d (Use \\d+ to list them.)" msgstr "Antal barntabeller: %d (Använd \\d+ för att lista dem.)" -#: describe.c:3237 +#: describe.c:3274 msgid "Child tables" msgstr "Barntabeller" -#: describe.c:3237 +#: describe.c:3274 msgid "Partitions" msgstr "Partitioner" -#: describe.c:3266 +#: describe.c:3303 #, c-format msgid "Typed table of type: %s" msgstr "Typad tabell av typ: %s" -#: describe.c:3282 +#: describe.c:3319 msgid "Replica Identity" msgstr "Replikaidentitet" -#: describe.c:3295 +#: describe.c:3332 msgid "Has OIDs: yes" msgstr "Har OID:er: ja" -#: describe.c:3304 +#: describe.c:3341 #, c-format msgid "Access method: %s" msgstr "Accessmetod: %s" -#: describe.c:3384 +#: describe.c:3421 #, c-format msgid "Tablespace: \"%s\"" msgstr "Tabellutrymme: \"%s\"" #. translator: before this string there's an index description like #. '"foo_pkey" PRIMARY KEY, btree (a)' -#: describe.c:3396 +#: describe.c:3433 #, c-format msgid ", tablespace \"%s\"" msgstr ", tabellutrymme: \"%s\"" -#: describe.c:3489 +#: describe.c:3526 msgid "List of roles" msgstr "Lista med roller" -#: describe.c:3491 +#: describe.c:3528 msgid "Role name" msgstr "Rollnamn" -#: describe.c:3492 +#: describe.c:3529 msgid "Attributes" msgstr "Attribut" -#: describe.c:3493 +#: describe.c:3530 msgid "Member of" msgstr "Medlem av" -#: describe.c:3504 +#: describe.c:3541 msgid "Superuser" msgstr "Superanvändare" -#: describe.c:3507 +#: describe.c:3544 msgid "No inheritance" msgstr "Inget arv" -#: describe.c:3510 +#: describe.c:3547 msgid "Create role" msgstr "Skapa roll" -#: describe.c:3513 +#: describe.c:3550 msgid "Create DB" msgstr "Skapa DB" -#: describe.c:3516 +#: describe.c:3553 msgid "Cannot login" msgstr "Kan inte logga in" -#: describe.c:3520 +#: describe.c:3557 msgid "Replication" msgstr "Replikering" -#: describe.c:3524 +#: describe.c:3561 msgid "Bypass RLS" msgstr "Hopp över RLS" -#: describe.c:3533 +#: describe.c:3570 msgid "No connections" msgstr "Inga uppkopplingar" -#: describe.c:3535 +#: describe.c:3572 #, c-format msgid "%d connection" msgid_plural "%d connections" msgstr[0] "%d uppkoppling" msgstr[1] "%d uppkopplingar" -#: describe.c:3545 +#: describe.c:3582 msgid "Password valid until " msgstr "Lösenord giltigt till " -#: describe.c:3595 +#: describe.c:3632 #, c-format msgid "The server (version %s) does not support per-database role settings." msgstr "Servern (version %s) stöder inte rollinställningar per databas." -#: describe.c:3608 +#: describe.c:3645 msgid "Role" msgstr "Roll" -#: describe.c:3609 +#: describe.c:3646 msgid "Database" msgstr "Databas" -#: describe.c:3610 +#: describe.c:3647 msgid "Settings" msgstr "Inställningar" -#: describe.c:3631 +#: describe.c:3668 #, c-format msgid "Did not find any settings for role \"%s\" and database \"%s\"." msgstr "Kunde inte hitta några inställningar för roll \"%s\" och databas \"%s\"." -#: describe.c:3634 +#: describe.c:3671 #, c-format msgid "Did not find any settings for role \"%s\"." msgstr "Kunde inte hitta några inställningar för roll \"%s\"." -#: describe.c:3637 +#: describe.c:3674 #, c-format msgid "Did not find any settings." msgstr "Kunde inte hitta några inställningar." -#: describe.c:3642 +#: describe.c:3679 msgid "List of settings" msgstr "Lista med inställningar" -#: describe.c:3713 +#: describe.c:3750 msgid "index" msgstr "index" -#: describe.c:3715 +#: describe.c:3752 msgid "special" msgstr "särskild" -#: describe.c:3718 describe.c:3928 +#: describe.c:3755 describe.c:3965 msgid "partitioned index" msgstr "partitionerat index" -#: describe.c:3742 +#: describe.c:3779 msgid "permanent" msgstr "permanent" -#: describe.c:3743 +#: describe.c:3780 msgid "temporary" msgstr "temporär" -#: describe.c:3744 +#: describe.c:3781 msgid "unlogged" msgstr "ologgad" -#: describe.c:3745 +#: describe.c:3782 msgid "Persistence" msgstr "Persistens" -#: describe.c:3841 +#: describe.c:3878 msgid "List of relations" msgstr "Lista med relationer" -#: describe.c:3889 +#: describe.c:3926 #, c-format msgid "The server (version %s) does not support declarative table partitioning." msgstr "Servern (version %s) stöder inte deklarativ tabellpartitionering." -#: describe.c:3900 +#: describe.c:3937 msgid "List of partitioned indexes" msgstr "Lista med partitionerade index" -#: describe.c:3902 +#: describe.c:3939 msgid "List of partitioned tables" msgstr "Lista med partitionerade tabeller" -#: describe.c:3906 +#: describe.c:3943 msgid "List of partitioned relations" msgstr "Lista med partitionerade relationer" -#: describe.c:3937 +#: describe.c:3974 msgid "Parent name" msgstr "Föräldranamn" -#: describe.c:3950 +#: describe.c:3987 msgid "Leaf partition size" msgstr "Partitionsstorlek av löv" -#: describe.c:3953 describe.c:3959 +#: describe.c:3990 describe.c:3996 msgid "Total size" msgstr "Total storlek" -#: describe.c:4091 +#: describe.c:4128 msgid "Trusted" msgstr "Tillförlitlig" -#: describe.c:4099 +#: describe.c:4136 msgid "Internal language" msgstr "Internt språk" -#: describe.c:4100 +#: describe.c:4137 msgid "Call handler" msgstr "Anropshanterare" -#: describe.c:4101 describe.c:5273 +#: describe.c:4138 describe.c:5310 msgid "Validator" msgstr "Validerare" -#: describe.c:4104 +#: describe.c:4141 msgid "Inline handler" msgstr "Inline-hanterare" -#: describe.c:4132 +#: describe.c:4169 msgid "List of languages" msgstr "Lista med språk" -#: describe.c:4177 +#: describe.c:4214 msgid "Check" msgstr "Check" -#: describe.c:4219 +#: describe.c:4256 msgid "List of domains" msgstr "Lista med domäner" -#: describe.c:4253 +#: describe.c:4290 msgid "Source" msgstr "Källa" -#: describe.c:4254 +#: describe.c:4291 msgid "Destination" msgstr "Mål" -#: describe.c:4256 describe.c:6091 +#: describe.c:4293 describe.c:6128 msgid "Default?" msgstr "Standard?" -#: describe.c:4293 +#: describe.c:4330 msgid "List of conversions" msgstr "Lista med konverteringar" -#: describe.c:4332 +#: describe.c:4369 msgid "Event" msgstr "Händelse" -#: describe.c:4334 +#: describe.c:4371 msgid "enabled" msgstr "påslagen" -#: describe.c:4335 +#: describe.c:4372 msgid "replica" msgstr "replika" -#: describe.c:4336 +#: describe.c:4373 msgid "always" msgstr "alltid" -#: describe.c:4337 +#: describe.c:4374 msgid "disabled" msgstr "avstängd" -#: describe.c:4338 describe.c:5987 +#: describe.c:4375 describe.c:6024 msgid "Enabled" msgstr "Påslagen" -#: describe.c:4340 +#: describe.c:4377 msgid "Tags" msgstr "Etiketter" -#: describe.c:4359 +#: describe.c:4396 msgid "List of event triggers" msgstr "Lista med händelseutlösare" -#: describe.c:4388 +#: describe.c:4425 msgid "Source type" msgstr "Källtyp" -#: describe.c:4389 +#: describe.c:4426 msgid "Target type" msgstr "Måltyp" -#: describe.c:4420 +#: describe.c:4457 msgid "in assignment" msgstr "i tilldelning" -#: describe.c:4422 +#: describe.c:4459 msgid "Implicit?" msgstr "Implicit?" -#: describe.c:4477 +#: describe.c:4514 msgid "List of casts" msgstr "Lista med typomvandlingar" -#: describe.c:4505 +#: describe.c:4542 #, c-format msgid "The server (version %s) does not support collations." msgstr "Servern (version %s) stöder inte jämförelser (collations)." -#: describe.c:4526 describe.c:4530 +#: describe.c:4563 describe.c:4567 msgid "Provider" msgstr "Leverantör" -#: describe.c:4536 describe.c:4541 +#: describe.c:4573 describe.c:4578 msgid "Deterministic?" msgstr "Deterministisk?" -#: describe.c:4576 +#: describe.c:4613 msgid "List of collations" msgstr "Lista med jämförelser (collations)" -#: describe.c:4635 +#: describe.c:4672 msgid "List of schemas" msgstr "Lista med scheman" -#: describe.c:4660 describe.c:4907 describe.c:4978 describe.c:5049 +#: describe.c:4697 describe.c:4944 describe.c:5015 describe.c:5086 #, c-format msgid "The server (version %s) does not support full text search." msgstr "Servern (version %s) stöder inte fulltextsökning." -#: describe.c:4695 +#: describe.c:4732 msgid "List of text search parsers" msgstr "Lista med textsökparsrar" -#: describe.c:4740 +#: describe.c:4777 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "Kunde inte hitta en textsökparser med namn \"%s\"." -#: describe.c:4743 +#: describe.c:4780 #, c-format msgid "Did not find any text search parsers." msgstr "Kunde inte hitta några textsökparsrar." -#: describe.c:4818 +#: describe.c:4855 msgid "Start parse" msgstr "Starta parsning" -#: describe.c:4819 +#: describe.c:4856 msgid "Method" msgstr "Metod" -#: describe.c:4823 +#: describe.c:4860 msgid "Get next token" msgstr "Hämta nästa symbol" -#: describe.c:4825 +#: describe.c:4862 msgid "End parse" msgstr "Avsluta parsning" -#: describe.c:4827 +#: describe.c:4864 msgid "Get headline" msgstr "Hämta rubrik" -#: describe.c:4829 +#: describe.c:4866 msgid "Get token types" msgstr "Hämta symboltyper" -#: describe.c:4840 +#: describe.c:4877 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "Textsökparser \"%s.%s\"" -#: describe.c:4843 +#: describe.c:4880 #, c-format msgid "Text search parser \"%s\"" msgstr "Textsökparser \"%s\"" -#: describe.c:4862 +#: describe.c:4899 msgid "Token name" msgstr "Symbolnamn" -#: describe.c:4873 +#: describe.c:4910 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "Symboltyper för parser \"%s.%s\"" -#: describe.c:4876 +#: describe.c:4913 #, c-format msgid "Token types for parser \"%s\"" msgstr "Symboltyper för parser \"%s\"" -#: describe.c:4930 +#: describe.c:4967 msgid "Template" msgstr "Mall" -#: describe.c:4931 +#: describe.c:4968 msgid "Init options" msgstr "Initieringsalternativ" -#: describe.c:4953 +#: describe.c:4990 msgid "List of text search dictionaries" msgstr "Lista med textsökordlistor" -#: describe.c:4996 +#: describe.c:5033 msgid "Init" msgstr "Init" -#: describe.c:4997 +#: describe.c:5034 msgid "Lexize" msgstr "Symboluppdelning" -#: describe.c:5024 +#: describe.c:5061 msgid "List of text search templates" msgstr "Lista med textsökmallar" -#: describe.c:5084 +#: describe.c:5121 msgid "List of text search configurations" msgstr "Lista med textsökkonfigurationer" -#: describe.c:5130 +#: describe.c:5167 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "Kunde inte hitta en textsökkonfiguration med namn \"%s\"." -#: describe.c:5133 +#: describe.c:5170 #, c-format msgid "Did not find any text search configurations." msgstr "Kunde inte hitta några textsökkonfigurationer." -#: describe.c:5199 +#: describe.c:5236 msgid "Token" msgstr "Symbol" -#: describe.c:5200 +#: describe.c:5237 msgid "Dictionaries" msgstr "Ordlistor" -#: describe.c:5211 +#: describe.c:5248 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "Textsökkonfiguration \"%s.%s\"" -#: describe.c:5214 +#: describe.c:5251 #, c-format msgid "Text search configuration \"%s\"" msgstr "Textsökkonfiguration \"%s\"" -#: describe.c:5218 +#: describe.c:5255 #, c-format msgid "" "\n" @@ -2116,7 +2118,7 @@ "\n" "Parser: \"%s.%s\"" -#: describe.c:5221 +#: describe.c:5258 #, c-format msgid "" "\n" @@ -2125,232 +2127,232 @@ "\n" "Parser: \"%s\"" -#: describe.c:5255 +#: describe.c:5292 #, c-format msgid "The server (version %s) does not support foreign-data wrappers." msgstr "Servern (version %s) stöder inte främmande data-omvandlare." -#: describe.c:5313 +#: describe.c:5350 msgid "List of foreign-data wrappers" msgstr "Lista med främmande data-omvandlare" -#: describe.c:5338 +#: describe.c:5375 #, c-format msgid "The server (version %s) does not support foreign servers." msgstr "Servern (version %s) stöder inte främmande servrar." -#: describe.c:5351 +#: describe.c:5388 msgid "Foreign-data wrapper" msgstr "Främmande data-omvandlare" -#: describe.c:5369 describe.c:5574 +#: describe.c:5406 describe.c:5611 msgid "Version" msgstr "Version" -#: describe.c:5395 +#: describe.c:5432 msgid "List of foreign servers" msgstr "Lista med främmande servrar" -#: describe.c:5420 +#: describe.c:5457 #, c-format msgid "The server (version %s) does not support user mappings." msgstr "Servern (version %s) stöder inte användarmappningar." -#: describe.c:5430 describe.c:5494 +#: describe.c:5467 describe.c:5531 msgid "Server" msgstr "Server" -#: describe.c:5431 +#: describe.c:5468 msgid "User name" msgstr "Användarnamn" -#: describe.c:5456 +#: describe.c:5493 msgid "List of user mappings" msgstr "Lista av användarmappningar" -#: describe.c:5481 +#: describe.c:5518 #, c-format msgid "The server (version %s) does not support foreign tables." msgstr "Servern (version %s) stöder inte främmande tabeller." -#: describe.c:5534 +#: describe.c:5571 msgid "List of foreign tables" msgstr "Lista med främmande tabeller" -#: describe.c:5559 describe.c:5616 +#: describe.c:5596 describe.c:5653 #, c-format msgid "The server (version %s) does not support extensions." msgstr "Servern (version %s) stöder inte utökningar." -#: describe.c:5591 +#: describe.c:5628 msgid "List of installed extensions" msgstr "Lista med installerade utökningar" -#: describe.c:5644 +#: describe.c:5681 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "Kunde inte hitta en utökning med namn \"%s\"." -#: describe.c:5647 +#: describe.c:5684 #, c-format msgid "Did not find any extensions." msgstr "Kunde inte hitta några utökningar." -#: describe.c:5691 +#: describe.c:5728 msgid "Object description" msgstr "Objektbeskrivning" -#: describe.c:5701 +#: describe.c:5738 #, c-format msgid "Objects in extension \"%s\"" msgstr "Objekt i utökning \"%s\"" -#: describe.c:5730 describe.c:5806 +#: describe.c:5767 describe.c:5843 #, c-format msgid "The server (version %s) does not support publications." msgstr "Servern (version %s) stöder inte publiceringar." -#: describe.c:5747 describe.c:5884 +#: describe.c:5784 describe.c:5921 msgid "All tables" msgstr "Alla tabeller" -#: describe.c:5748 describe.c:5885 +#: describe.c:5785 describe.c:5922 msgid "Inserts" msgstr "Insättningar" -#: describe.c:5749 describe.c:5886 +#: describe.c:5786 describe.c:5923 msgid "Updates" msgstr "Uppdateringar" -#: describe.c:5750 describe.c:5887 +#: describe.c:5787 describe.c:5924 msgid "Deletes" msgstr "Borttagningar" -#: describe.c:5754 describe.c:5889 +#: describe.c:5791 describe.c:5926 msgid "Truncates" -msgstr "Trunkerar" +msgstr "Trunkeringar" -#: describe.c:5758 describe.c:5891 +#: describe.c:5795 describe.c:5928 msgid "Via root" msgstr "Via root" -#: describe.c:5775 +#: describe.c:5812 msgid "List of publications" msgstr "Lista med publiceringar" -#: describe.c:5848 +#: describe.c:5885 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "Kunde inte hitta någon publicering med namn \"%s\"." -#: describe.c:5851 +#: describe.c:5888 #, c-format msgid "Did not find any publications." msgstr "Kunde inte hitta några publiceringar." -#: describe.c:5880 +#: describe.c:5917 #, c-format msgid "Publication %s" msgstr "Publicering %s" -#: describe.c:5928 +#: describe.c:5965 msgid "Tables:" msgstr "Tabeller:" -#: describe.c:5972 +#: describe.c:6009 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "Denna server (version %s) stöder inte prenumerationer." -#: describe.c:5988 +#: describe.c:6025 msgid "Publication" msgstr "Publicering" -#: describe.c:5995 +#: describe.c:6032 msgid "Synchronous commit" msgstr "Synkron commit" -#: describe.c:5996 +#: describe.c:6033 msgid "Conninfo" -msgstr "Förbindelseinfo" +msgstr "Anslutningsinfo" -#: describe.c:6018 +#: describe.c:6055 msgid "List of subscriptions" msgstr "Lista med prenumerationer" -#: describe.c:6085 describe.c:6174 describe.c:6260 describe.c:6343 +#: describe.c:6122 describe.c:6211 describe.c:6297 describe.c:6380 msgid "AM" msgstr "AM" -#: describe.c:6086 +#: describe.c:6123 msgid "Input type" msgstr "Indatatyp" -#: describe.c:6087 +#: describe.c:6124 msgid "Storage type" msgstr "Lagringstyp" -#: describe.c:6088 +#: describe.c:6125 msgid "Operator class" msgstr "Operatorklass" -#: describe.c:6100 describe.c:6175 describe.c:6261 describe.c:6344 +#: describe.c:6137 describe.c:6212 describe.c:6298 describe.c:6381 msgid "Operator family" msgstr "Operatorfamilj" -#: describe.c:6133 +#: describe.c:6170 msgid "List of operator classes" msgstr "Lista med operatorklasser" -#: describe.c:6176 +#: describe.c:6213 msgid "Applicable types" msgstr "Applicerbara typer" -#: describe.c:6215 +#: describe.c:6252 msgid "List of operator families" msgstr "Lista med operatorfamiljer" -#: describe.c:6262 +#: describe.c:6299 msgid "Operator" msgstr "Operator" -#: describe.c:6263 +#: describe.c:6300 msgid "Strategy" msgstr "Strategi" -#: describe.c:6264 +#: describe.c:6301 msgid "ordering" msgstr "ordning" -#: describe.c:6265 +#: describe.c:6302 msgid "search" msgstr "sök" -#: describe.c:6266 +#: describe.c:6303 msgid "Purpose" msgstr "Ändamål" -#: describe.c:6271 +#: describe.c:6308 msgid "Sort opfamily" msgstr "Sortering-opfamilj" -#: describe.c:6302 +#: describe.c:6339 msgid "List of operators of operator families" msgstr "Lista med operatorer i operatorfamiljer" -#: describe.c:6345 +#: describe.c:6382 msgid "Registered left type" msgstr "Registrerad vänstertyp" -#: describe.c:6346 +#: describe.c:6383 msgid "Registered right type" msgstr "Registrerad högertyp" -#: describe.c:6347 +#: describe.c:6384 msgid "Number" msgstr "Nummer" -#: describe.c:6383 +#: describe.c:6420 msgid "List of support functions of operator families" msgstr "Lista med supportfunktioner i operatorfamiljer" @@ -2883,12 +2885,12 @@ #: help.c:233 #, c-format msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" -msgstr " \\dAo[+] [AMPTRN [OPFPTRN]] lista operatorer i operatorfamiljer\n" +msgstr " \\dAo[+] [AMPTRN [OPFPTRN]] lista operatorer i operatorfamiljer\n" #: help.c:234 #, c-format -msgid " \\dAp [AMPTRN [OPFPTRN]] list support functions of operator families\n" -msgstr " \\dAp [AMPTRN [OPFPTRN]] lista supportfunktioner i operatorfamiljer\n" +msgid " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" +msgstr " \\dAp[+] [AMPTRN [OPFPTRN]] lista supportfunktioner i operatorfamiljer\n" #: help.c:235 #, c-format @@ -3002,8 +3004,8 @@ #: help.c:257 #, c-format -msgid " \\do[S] [PATTERN] list operators\n" -msgstr " \\do[S] [MALL] lista operatorer\n" +msgid " \\do[S+] [PATTERN] list operators\n" +msgstr " \\do[S+] [MALL] lista operatorer\n" #: help.c:258 #, c-format @@ -3067,8 +3069,8 @@ #: help.c:270 #, c-format -msgid " \\dy [PATTERN] list event triggers\n" -msgstr " \\dy [MALL] lista händelseutlösare\n" +msgid " \\dy[+] [PATTERN] list event triggers\n" +msgstr " \\dy[+] [MALL] lista händelseutlösare\n" #: help.c:271 #, c-format @@ -3152,7 +3154,7 @@ #: help.c:297 #, c-format msgid "Connection\n" -msgstr "Förbindelse\n" +msgstr "Anslutning\n" #: help.c:299 #, c-format @@ -3922,11 +3924,11 @@ " TMPDIR\n" " katalog för temporärfiler\n" -#: help.c:554 +#: help.c:555 msgid "Available help:\n" msgstr "Tillgänglig hjälp:\n" -#: help.c:642 +#: help.c:650 #, c-format msgid "" "Command: %s\n" @@ -3945,7 +3947,7 @@ "URL: %s\n" "\n" -#: help.c:661 +#: help.c:673 #, c-format msgid "" "No help available for \"%s\".\n" @@ -4059,12 +4061,12 @@ msgid "reached EOF without finding closing \\endif(s)" msgstr "kom till EOF utan att hitta avslutande \\endif" -#: psqlscanslash.l:638 +#: psqlscanslash.l:640 #, c-format msgid "unterminated quoted string" msgstr "icketerminerad citerad sträng" -#: psqlscanslash.l:811 +#: psqlscanslash.l:813 #, c-format msgid "%s: out of memory" msgstr "%s: slut på minne" @@ -4077,192 +4079,192 @@ #: sql_help.c:249 sql_help.c:251 sql_help.c:263 sql_help.c:264 sql_help.c:265 #: sql_help.c:267 sql_help.c:316 sql_help.c:318 sql_help.c:320 sql_help.c:322 #: sql_help.c:391 sql_help.c:396 sql_help.c:398 sql_help.c:440 sql_help.c:442 -#: sql_help.c:445 sql_help.c:447 sql_help.c:515 sql_help.c:520 sql_help.c:525 -#: sql_help.c:530 sql_help.c:535 sql_help.c:588 sql_help.c:590 sql_help.c:592 -#: sql_help.c:594 sql_help.c:596 sql_help.c:599 sql_help.c:601 sql_help.c:604 -#: sql_help.c:615 sql_help.c:617 sql_help.c:658 sql_help.c:660 sql_help.c:662 -#: sql_help.c:665 sql_help.c:667 sql_help.c:669 sql_help.c:702 sql_help.c:706 -#: sql_help.c:710 sql_help.c:729 sql_help.c:732 sql_help.c:735 sql_help.c:764 -#: sql_help.c:776 sql_help.c:784 sql_help.c:787 sql_help.c:790 sql_help.c:805 -#: sql_help.c:808 sql_help.c:837 sql_help.c:842 sql_help.c:847 sql_help.c:852 -#: sql_help.c:857 sql_help.c:879 sql_help.c:881 sql_help.c:883 sql_help.c:885 -#: sql_help.c:888 sql_help.c:890 sql_help.c:931 sql_help.c:975 sql_help.c:980 -#: sql_help.c:985 sql_help.c:990 sql_help.c:995 sql_help.c:1014 sql_help.c:1025 -#: sql_help.c:1027 sql_help.c:1046 sql_help.c:1056 sql_help.c:1058 -#: sql_help.c:1060 sql_help.c:1072 sql_help.c:1076 sql_help.c:1078 -#: sql_help.c:1090 sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 -#: sql_help.c:1112 sql_help.c:1114 sql_help.c:1118 sql_help.c:1121 -#: sql_help.c:1122 sql_help.c:1123 sql_help.c:1126 sql_help.c:1128 -#: sql_help.c:1262 sql_help.c:1264 sql_help.c:1267 sql_help.c:1270 -#: sql_help.c:1272 sql_help.c:1274 sql_help.c:1277 sql_help.c:1280 -#: sql_help.c:1391 sql_help.c:1393 sql_help.c:1395 sql_help.c:1398 -#: sql_help.c:1419 sql_help.c:1422 sql_help.c:1425 sql_help.c:1428 -#: sql_help.c:1432 sql_help.c:1434 sql_help.c:1436 sql_help.c:1438 -#: sql_help.c:1452 sql_help.c:1455 sql_help.c:1457 sql_help.c:1459 -#: sql_help.c:1469 sql_help.c:1471 sql_help.c:1481 sql_help.c:1483 -#: sql_help.c:1493 sql_help.c:1496 sql_help.c:1519 sql_help.c:1521 -#: sql_help.c:1523 sql_help.c:1525 sql_help.c:1528 sql_help.c:1530 -#: sql_help.c:1533 sql_help.c:1536 sql_help.c:1586 sql_help.c:1629 -#: sql_help.c:1632 sql_help.c:1634 sql_help.c:1636 sql_help.c:1639 -#: sql_help.c:1641 sql_help.c:1643 sql_help.c:1646 sql_help.c:1696 -#: sql_help.c:1712 sql_help.c:1933 sql_help.c:2002 sql_help.c:2021 -#: sql_help.c:2034 sql_help.c:2091 sql_help.c:2098 sql_help.c:2108 -#: sql_help.c:2129 sql_help.c:2155 sql_help.c:2173 sql_help.c:2200 -#: sql_help.c:2295 sql_help.c:2340 sql_help.c:2364 sql_help.c:2387 -#: sql_help.c:2391 sql_help.c:2425 sql_help.c:2445 sql_help.c:2467 -#: sql_help.c:2481 sql_help.c:2501 sql_help.c:2524 sql_help.c:2554 -#: sql_help.c:2579 sql_help.c:2625 sql_help.c:2903 sql_help.c:2916 -#: sql_help.c:2933 sql_help.c:2949 sql_help.c:2989 sql_help.c:3041 -#: sql_help.c:3045 sql_help.c:3047 sql_help.c:3053 sql_help.c:3071 -#: sql_help.c:3098 sql_help.c:3133 sql_help.c:3145 sql_help.c:3154 -#: sql_help.c:3198 sql_help.c:3212 sql_help.c:3240 sql_help.c:3248 -#: sql_help.c:3260 sql_help.c:3270 sql_help.c:3278 sql_help.c:3286 -#: sql_help.c:3294 sql_help.c:3302 sql_help.c:3311 sql_help.c:3322 -#: sql_help.c:3330 sql_help.c:3338 sql_help.c:3346 sql_help.c:3354 -#: sql_help.c:3364 sql_help.c:3373 sql_help.c:3382 sql_help.c:3390 -#: sql_help.c:3400 sql_help.c:3411 sql_help.c:3419 sql_help.c:3428 -#: sql_help.c:3439 sql_help.c:3448 sql_help.c:3456 sql_help.c:3464 -#: sql_help.c:3472 sql_help.c:3480 sql_help.c:3488 sql_help.c:3496 -#: sql_help.c:3504 sql_help.c:3512 sql_help.c:3520 sql_help.c:3528 -#: sql_help.c:3545 sql_help.c:3554 sql_help.c:3562 sql_help.c:3579 -#: sql_help.c:3594 sql_help.c:3869 sql_help.c:3920 sql_help.c:3949 -#: sql_help.c:3962 sql_help.c:4407 sql_help.c:4455 sql_help.c:4596 +#: sql_help.c:445 sql_help.c:447 sql_help.c:516 sql_help.c:521 sql_help.c:526 +#: sql_help.c:531 sql_help.c:536 sql_help.c:589 sql_help.c:591 sql_help.c:593 +#: sql_help.c:595 sql_help.c:597 sql_help.c:600 sql_help.c:602 sql_help.c:605 +#: sql_help.c:616 sql_help.c:618 sql_help.c:659 sql_help.c:661 sql_help.c:663 +#: sql_help.c:666 sql_help.c:668 sql_help.c:670 sql_help.c:703 sql_help.c:707 +#: sql_help.c:711 sql_help.c:730 sql_help.c:733 sql_help.c:736 sql_help.c:765 +#: sql_help.c:777 sql_help.c:785 sql_help.c:788 sql_help.c:791 sql_help.c:806 +#: sql_help.c:809 sql_help.c:838 sql_help.c:843 sql_help.c:848 sql_help.c:853 +#: sql_help.c:858 sql_help.c:880 sql_help.c:882 sql_help.c:884 sql_help.c:886 +#: sql_help.c:889 sql_help.c:891 sql_help.c:932 sql_help.c:977 sql_help.c:982 +#: sql_help.c:987 sql_help.c:992 sql_help.c:997 sql_help.c:1016 sql_help.c:1027 +#: sql_help.c:1029 sql_help.c:1048 sql_help.c:1058 sql_help.c:1060 +#: sql_help.c:1062 sql_help.c:1074 sql_help.c:1078 sql_help.c:1080 +#: sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 sql_help.c:1098 +#: sql_help.c:1114 sql_help.c:1116 sql_help.c:1120 sql_help.c:1123 +#: sql_help.c:1124 sql_help.c:1125 sql_help.c:1128 sql_help.c:1130 +#: sql_help.c:1264 sql_help.c:1266 sql_help.c:1269 sql_help.c:1272 +#: sql_help.c:1274 sql_help.c:1276 sql_help.c:1279 sql_help.c:1282 +#: sql_help.c:1393 sql_help.c:1395 sql_help.c:1397 sql_help.c:1400 +#: sql_help.c:1421 sql_help.c:1424 sql_help.c:1427 sql_help.c:1430 +#: sql_help.c:1434 sql_help.c:1436 sql_help.c:1438 sql_help.c:1440 +#: sql_help.c:1454 sql_help.c:1457 sql_help.c:1459 sql_help.c:1461 +#: sql_help.c:1471 sql_help.c:1473 sql_help.c:1483 sql_help.c:1485 +#: sql_help.c:1495 sql_help.c:1498 sql_help.c:1521 sql_help.c:1523 +#: sql_help.c:1525 sql_help.c:1527 sql_help.c:1530 sql_help.c:1532 +#: sql_help.c:1535 sql_help.c:1538 sql_help.c:1588 sql_help.c:1631 +#: sql_help.c:1634 sql_help.c:1636 sql_help.c:1638 sql_help.c:1641 +#: sql_help.c:1643 sql_help.c:1645 sql_help.c:1648 sql_help.c:1698 +#: sql_help.c:1714 sql_help.c:1935 sql_help.c:2004 sql_help.c:2023 +#: sql_help.c:2036 sql_help.c:2093 sql_help.c:2100 sql_help.c:2110 +#: sql_help.c:2131 sql_help.c:2157 sql_help.c:2175 sql_help.c:2203 +#: sql_help.c:2299 sql_help.c:2344 sql_help.c:2368 sql_help.c:2391 +#: sql_help.c:2395 sql_help.c:2429 sql_help.c:2449 sql_help.c:2471 +#: sql_help.c:2485 sql_help.c:2505 sql_help.c:2528 sql_help.c:2558 +#: sql_help.c:2583 sql_help.c:2629 sql_help.c:2907 sql_help.c:2920 +#: sql_help.c:2937 sql_help.c:2953 sql_help.c:2993 sql_help.c:3045 +#: sql_help.c:3049 sql_help.c:3051 sql_help.c:3057 sql_help.c:3075 +#: sql_help.c:3102 sql_help.c:3137 sql_help.c:3149 sql_help.c:3158 +#: sql_help.c:3202 sql_help.c:3216 sql_help.c:3244 sql_help.c:3252 +#: sql_help.c:3264 sql_help.c:3274 sql_help.c:3282 sql_help.c:3290 +#: sql_help.c:3298 sql_help.c:3306 sql_help.c:3315 sql_help.c:3326 +#: sql_help.c:3334 sql_help.c:3342 sql_help.c:3350 sql_help.c:3358 +#: sql_help.c:3368 sql_help.c:3377 sql_help.c:3386 sql_help.c:3394 +#: sql_help.c:3404 sql_help.c:3415 sql_help.c:3423 sql_help.c:3432 +#: sql_help.c:3443 sql_help.c:3452 sql_help.c:3460 sql_help.c:3468 +#: sql_help.c:3476 sql_help.c:3484 sql_help.c:3492 sql_help.c:3500 +#: sql_help.c:3508 sql_help.c:3516 sql_help.c:3524 sql_help.c:3532 +#: sql_help.c:3549 sql_help.c:3558 sql_help.c:3566 sql_help.c:3583 +#: sql_help.c:3598 sql_help.c:3873 sql_help.c:3924 sql_help.c:3953 +#: sql_help.c:3966 sql_help.c:4411 sql_help.c:4459 sql_help.c:4600 msgid "name" msgstr "namn" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:327 sql_help.c:1783 -#: sql_help.c:3213 sql_help.c:4193 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:327 sql_help.c:1785 +#: sql_help.c:3217 sql_help.c:4197 msgid "aggregate_signature" msgstr "aggregatsignatur" #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:118 sql_help.c:250 -#: sql_help.c:268 sql_help.c:399 sql_help.c:446 sql_help.c:524 sql_help.c:571 -#: sql_help.c:589 sql_help.c:616 sql_help.c:666 sql_help.c:731 sql_help.c:786 -#: sql_help.c:807 sql_help.c:846 sql_help.c:891 sql_help.c:932 sql_help.c:984 -#: sql_help.c:1016 sql_help.c:1026 sql_help.c:1059 sql_help.c:1079 -#: sql_help.c:1093 sql_help.c:1129 sql_help.c:1271 sql_help.c:1392 -#: sql_help.c:1435 sql_help.c:1456 sql_help.c:1470 sql_help.c:1482 -#: sql_help.c:1495 sql_help.c:1522 sql_help.c:1587 sql_help.c:1640 +#: sql_help.c:268 sql_help.c:399 sql_help.c:446 sql_help.c:525 sql_help.c:572 +#: sql_help.c:590 sql_help.c:617 sql_help.c:667 sql_help.c:732 sql_help.c:787 +#: sql_help.c:808 sql_help.c:847 sql_help.c:892 sql_help.c:933 sql_help.c:986 +#: sql_help.c:1018 sql_help.c:1028 sql_help.c:1061 sql_help.c:1081 +#: sql_help.c:1095 sql_help.c:1131 sql_help.c:1273 sql_help.c:1394 +#: sql_help.c:1437 sql_help.c:1458 sql_help.c:1472 sql_help.c:1484 +#: sql_help.c:1497 sql_help.c:1524 sql_help.c:1589 sql_help.c:1642 msgid "new_name" msgstr "nytt_namn" #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:120 sql_help.c:248 -#: sql_help.c:266 sql_help.c:397 sql_help.c:482 sql_help.c:529 sql_help.c:618 -#: sql_help.c:627 sql_help.c:685 sql_help.c:705 sql_help.c:734 sql_help.c:789 -#: sql_help.c:851 sql_help.c:889 sql_help.c:989 sql_help.c:1028 sql_help.c:1057 -#: sql_help.c:1077 sql_help.c:1091 sql_help.c:1127 sql_help.c:1332 -#: sql_help.c:1394 sql_help.c:1437 sql_help.c:1458 sql_help.c:1520 -#: sql_help.c:1635 sql_help.c:2889 +#: sql_help.c:266 sql_help.c:397 sql_help.c:482 sql_help.c:530 sql_help.c:619 +#: sql_help.c:628 sql_help.c:686 sql_help.c:706 sql_help.c:735 sql_help.c:790 +#: sql_help.c:852 sql_help.c:890 sql_help.c:991 sql_help.c:1030 sql_help.c:1059 +#: sql_help.c:1079 sql_help.c:1093 sql_help.c:1129 sql_help.c:1334 +#: sql_help.c:1396 sql_help.c:1439 sql_help.c:1460 sql_help.c:1522 +#: sql_help.c:1637 sql_help.c:2893 msgid "new_owner" msgstr "ny_ägare" #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:252 sql_help.c:319 -#: sql_help.c:448 sql_help.c:534 sql_help.c:668 sql_help.c:709 sql_help.c:737 -#: sql_help.c:792 sql_help.c:856 sql_help.c:994 sql_help.c:1061 sql_help.c:1095 -#: sql_help.c:1273 sql_help.c:1439 sql_help.c:1460 sql_help.c:1472 -#: sql_help.c:1484 sql_help.c:1524 sql_help.c:1642 +#: sql_help.c:448 sql_help.c:535 sql_help.c:669 sql_help.c:710 sql_help.c:738 +#: sql_help.c:793 sql_help.c:857 sql_help.c:996 sql_help.c:1063 sql_help.c:1097 +#: sql_help.c:1275 sql_help.c:1441 sql_help.c:1462 sql_help.c:1474 +#: sql_help.c:1486 sql_help.c:1526 sql_help.c:1644 msgid "new_schema" msgstr "nytt_schema" -#: sql_help.c:44 sql_help.c:1847 sql_help.c:3214 sql_help.c:4222 +#: sql_help.c:44 sql_help.c:1849 sql_help.c:3218 sql_help.c:4226 msgid "where aggregate_signature is:" msgstr "där aggregatsignatur är:" #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:337 sql_help.c:350 -#: sql_help.c:354 sql_help.c:370 sql_help.c:373 sql_help.c:376 sql_help.c:516 -#: sql_help.c:521 sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:838 -#: sql_help.c:843 sql_help.c:848 sql_help.c:853 sql_help.c:858 sql_help.c:976 -#: sql_help.c:981 sql_help.c:986 sql_help.c:991 sql_help.c:996 sql_help.c:1801 -#: sql_help.c:1818 sql_help.c:1824 sql_help.c:1848 sql_help.c:1851 -#: sql_help.c:1854 sql_help.c:2003 sql_help.c:2022 sql_help.c:2025 -#: sql_help.c:2296 sql_help.c:2502 sql_help.c:3215 sql_help.c:3218 -#: sql_help.c:3221 sql_help.c:3312 sql_help.c:3401 sql_help.c:3429 -#: sql_help.c:3753 sql_help.c:4101 sql_help.c:4199 sql_help.c:4206 -#: sql_help.c:4212 sql_help.c:4223 sql_help.c:4226 sql_help.c:4229 +#: sql_help.c:354 sql_help.c:370 sql_help.c:373 sql_help.c:376 sql_help.c:517 +#: sql_help.c:522 sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:839 +#: sql_help.c:844 sql_help.c:849 sql_help.c:854 sql_help.c:859 sql_help.c:978 +#: sql_help.c:983 sql_help.c:988 sql_help.c:993 sql_help.c:998 sql_help.c:1803 +#: sql_help.c:1820 sql_help.c:1826 sql_help.c:1850 sql_help.c:1853 +#: sql_help.c:1856 sql_help.c:2005 sql_help.c:2024 sql_help.c:2027 +#: sql_help.c:2300 sql_help.c:2506 sql_help.c:3219 sql_help.c:3222 +#: sql_help.c:3225 sql_help.c:3316 sql_help.c:3405 sql_help.c:3433 +#: sql_help.c:3757 sql_help.c:4105 sql_help.c:4203 sql_help.c:4210 +#: sql_help.c:4216 sql_help.c:4227 sql_help.c:4230 sql_help.c:4233 msgid "argmode" msgstr "arg_läge" #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:338 sql_help.c:351 -#: sql_help.c:355 sql_help.c:371 sql_help.c:374 sql_help.c:377 sql_help.c:517 -#: sql_help.c:522 sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:839 -#: sql_help.c:844 sql_help.c:849 sql_help.c:854 sql_help.c:859 sql_help.c:977 -#: sql_help.c:982 sql_help.c:987 sql_help.c:992 sql_help.c:997 sql_help.c:1802 -#: sql_help.c:1819 sql_help.c:1825 sql_help.c:1849 sql_help.c:1852 -#: sql_help.c:1855 sql_help.c:2004 sql_help.c:2023 sql_help.c:2026 -#: sql_help.c:2297 sql_help.c:2503 sql_help.c:3216 sql_help.c:3219 -#: sql_help.c:3222 sql_help.c:3313 sql_help.c:3402 sql_help.c:3430 -#: sql_help.c:4200 sql_help.c:4207 sql_help.c:4213 sql_help.c:4224 -#: sql_help.c:4227 sql_help.c:4230 +#: sql_help.c:355 sql_help.c:371 sql_help.c:374 sql_help.c:377 sql_help.c:518 +#: sql_help.c:523 sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:840 +#: sql_help.c:845 sql_help.c:850 sql_help.c:855 sql_help.c:860 sql_help.c:979 +#: sql_help.c:984 sql_help.c:989 sql_help.c:994 sql_help.c:999 sql_help.c:1804 +#: sql_help.c:1821 sql_help.c:1827 sql_help.c:1851 sql_help.c:1854 +#: sql_help.c:1857 sql_help.c:2006 sql_help.c:2025 sql_help.c:2028 +#: sql_help.c:2301 sql_help.c:2507 sql_help.c:3220 sql_help.c:3223 +#: sql_help.c:3226 sql_help.c:3317 sql_help.c:3406 sql_help.c:3434 +#: sql_help.c:4204 sql_help.c:4211 sql_help.c:4217 sql_help.c:4228 +#: sql_help.c:4231 sql_help.c:4234 msgid "argname" msgstr "arg_namn" #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:339 sql_help.c:352 -#: sql_help.c:356 sql_help.c:372 sql_help.c:375 sql_help.c:378 sql_help.c:518 -#: sql_help.c:523 sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:840 -#: sql_help.c:845 sql_help.c:850 sql_help.c:855 sql_help.c:860 sql_help.c:978 -#: sql_help.c:983 sql_help.c:988 sql_help.c:993 sql_help.c:998 sql_help.c:1803 -#: sql_help.c:1820 sql_help.c:1826 sql_help.c:1850 sql_help.c:1853 -#: sql_help.c:1856 sql_help.c:2298 sql_help.c:2504 sql_help.c:3217 -#: sql_help.c:3220 sql_help.c:3223 sql_help.c:3314 sql_help.c:3403 -#: sql_help.c:3431 sql_help.c:4201 sql_help.c:4208 sql_help.c:4214 -#: sql_help.c:4225 sql_help.c:4228 sql_help.c:4231 +#: sql_help.c:356 sql_help.c:372 sql_help.c:375 sql_help.c:378 sql_help.c:519 +#: sql_help.c:524 sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:841 +#: sql_help.c:846 sql_help.c:851 sql_help.c:856 sql_help.c:861 sql_help.c:980 +#: sql_help.c:985 sql_help.c:990 sql_help.c:995 sql_help.c:1000 sql_help.c:1805 +#: sql_help.c:1822 sql_help.c:1828 sql_help.c:1852 sql_help.c:1855 +#: sql_help.c:1858 sql_help.c:2302 sql_help.c:2508 sql_help.c:3221 +#: sql_help.c:3224 sql_help.c:3227 sql_help.c:3318 sql_help.c:3407 +#: sql_help.c:3435 sql_help.c:4205 sql_help.c:4212 sql_help.c:4218 +#: sql_help.c:4229 sql_help.c:4232 sql_help.c:4235 msgid "argtype" msgstr "arg_typ" -#: sql_help.c:112 sql_help.c:394 sql_help.c:471 sql_help.c:483 sql_help.c:926 -#: sql_help.c:1074 sql_help.c:1453 sql_help.c:1581 sql_help.c:1613 -#: sql_help.c:1665 sql_help.c:1904 sql_help.c:1911 sql_help.c:2203 -#: sql_help.c:2245 sql_help.c:2252 sql_help.c:2261 sql_help.c:2341 -#: sql_help.c:2555 sql_help.c:2647 sql_help.c:2918 sql_help.c:3099 -#: sql_help.c:3121 sql_help.c:3261 sql_help.c:3616 sql_help.c:3788 -#: sql_help.c:3961 sql_help.c:4658 +#: sql_help.c:112 sql_help.c:394 sql_help.c:471 sql_help.c:483 sql_help.c:927 +#: sql_help.c:1076 sql_help.c:1455 sql_help.c:1583 sql_help.c:1615 +#: sql_help.c:1667 sql_help.c:1906 sql_help.c:1913 sql_help.c:2206 +#: sql_help.c:2248 sql_help.c:2255 sql_help.c:2264 sql_help.c:2345 +#: sql_help.c:2559 sql_help.c:2651 sql_help.c:2922 sql_help.c:3103 +#: sql_help.c:3125 sql_help.c:3265 sql_help.c:3620 sql_help.c:3792 +#: sql_help.c:3965 sql_help.c:4662 msgid "option" msgstr "flaggor" -#: sql_help.c:113 sql_help.c:927 sql_help.c:1582 sql_help.c:2342 -#: sql_help.c:2556 sql_help.c:3100 sql_help.c:3262 +#: sql_help.c:113 sql_help.c:928 sql_help.c:1584 sql_help.c:2346 +#: sql_help.c:2560 sql_help.c:3104 sql_help.c:3266 msgid "where option can be:" msgstr "där flaggor kan vara:" -#: sql_help.c:114 sql_help.c:2137 +#: sql_help.c:114 sql_help.c:2139 msgid "allowconn" msgstr "tillåtansl" -#: sql_help.c:115 sql_help.c:928 sql_help.c:1583 sql_help.c:2138 -#: sql_help.c:2343 sql_help.c:2557 sql_help.c:3101 +#: sql_help.c:115 sql_help.c:929 sql_help.c:1585 sql_help.c:2140 +#: sql_help.c:2347 sql_help.c:2561 sql_help.c:3105 msgid "connlimit" msgstr "anslutningstak" -#: sql_help.c:116 sql_help.c:2139 +#: sql_help.c:116 sql_help.c:2141 msgid "istemplate" msgstr "ärmall" -#: sql_help.c:122 sql_help.c:606 sql_help.c:671 sql_help.c:1276 sql_help.c:1325 +#: sql_help.c:122 sql_help.c:607 sql_help.c:672 sql_help.c:1278 sql_help.c:1327 msgid "new_tablespace" msgstr "nytt_tabellutrymme" -#: sql_help.c:124 sql_help.c:127 sql_help.c:129 sql_help.c:544 sql_help.c:546 -#: sql_help.c:547 sql_help.c:863 sql_help.c:865 sql_help.c:866 sql_help.c:935 -#: sql_help.c:939 sql_help.c:942 sql_help.c:1003 sql_help.c:1005 -#: sql_help.c:1006 sql_help.c:1140 sql_help.c:1143 sql_help.c:1590 -#: sql_help.c:1594 sql_help.c:1597 sql_help.c:2308 sql_help.c:2508 -#: sql_help.c:3980 sql_help.c:4396 +#: sql_help.c:124 sql_help.c:127 sql_help.c:129 sql_help.c:545 sql_help.c:547 +#: sql_help.c:548 sql_help.c:864 sql_help.c:866 sql_help.c:867 sql_help.c:936 +#: sql_help.c:940 sql_help.c:943 sql_help.c:1005 sql_help.c:1007 +#: sql_help.c:1008 sql_help.c:1142 sql_help.c:1145 sql_help.c:1592 +#: sql_help.c:1596 sql_help.c:1599 sql_help.c:2312 sql_help.c:2512 +#: sql_help.c:3984 sql_help.c:4400 msgid "configuration_parameter" msgstr "konfigurationsparameter" #: sql_help.c:125 sql_help.c:395 sql_help.c:466 sql_help.c:472 sql_help.c:484 -#: sql_help.c:545 sql_help.c:598 sql_help.c:677 sql_help.c:683 sql_help.c:864 -#: sql_help.c:887 sql_help.c:936 sql_help.c:1004 sql_help.c:1075 -#: sql_help.c:1117 sql_help.c:1120 sql_help.c:1125 sql_help.c:1141 -#: sql_help.c:1142 sql_help.c:1307 sql_help.c:1327 sql_help.c:1375 -#: sql_help.c:1397 sql_help.c:1454 sql_help.c:1538 sql_help.c:1591 -#: sql_help.c:1614 sql_help.c:2204 sql_help.c:2246 sql_help.c:2253 -#: sql_help.c:2262 sql_help.c:2309 sql_help.c:2310 sql_help.c:2372 -#: sql_help.c:2375 sql_help.c:2409 sql_help.c:2509 sql_help.c:2510 -#: sql_help.c:2527 sql_help.c:2648 sql_help.c:2678 sql_help.c:2783 -#: sql_help.c:2796 sql_help.c:2810 sql_help.c:2851 sql_help.c:2875 -#: sql_help.c:2892 sql_help.c:2919 sql_help.c:3122 sql_help.c:3789 -#: sql_help.c:4397 sql_help.c:4398 +#: sql_help.c:546 sql_help.c:599 sql_help.c:678 sql_help.c:684 sql_help.c:865 +#: sql_help.c:888 sql_help.c:937 sql_help.c:1006 sql_help.c:1077 +#: sql_help.c:1119 sql_help.c:1122 sql_help.c:1127 sql_help.c:1143 +#: sql_help.c:1144 sql_help.c:1309 sql_help.c:1329 sql_help.c:1377 +#: sql_help.c:1399 sql_help.c:1456 sql_help.c:1540 sql_help.c:1593 +#: sql_help.c:1616 sql_help.c:2207 sql_help.c:2249 sql_help.c:2256 +#: sql_help.c:2265 sql_help.c:2313 sql_help.c:2314 sql_help.c:2376 +#: sql_help.c:2379 sql_help.c:2413 sql_help.c:2513 sql_help.c:2514 +#: sql_help.c:2531 sql_help.c:2652 sql_help.c:2682 sql_help.c:2787 +#: sql_help.c:2800 sql_help.c:2814 sql_help.c:2855 sql_help.c:2879 +#: sql_help.c:2896 sql_help.c:2923 sql_help.c:3126 sql_help.c:3793 +#: sql_help.c:4401 sql_help.c:4402 msgid "value" msgstr "värde" @@ -4270,9 +4272,9 @@ msgid "target_role" msgstr "målroll" -#: sql_help.c:198 sql_help.c:2188 sql_help.c:2603 sql_help.c:2608 -#: sql_help.c:3735 sql_help.c:3742 sql_help.c:3756 sql_help.c:3762 -#: sql_help.c:4083 sql_help.c:4090 sql_help.c:4104 sql_help.c:4110 +#: sql_help.c:198 sql_help.c:2191 sql_help.c:2607 sql_help.c:2612 +#: sql_help.c:3739 sql_help.c:3746 sql_help.c:3760 sql_help.c:3766 +#: sql_help.c:4087 sql_help.c:4094 sql_help.c:4108 sql_help.c:4114 msgid "schema_name" msgstr "schemanamn" @@ -4286,30 +4288,30 @@ #: sql_help.c:201 sql_help.c:202 sql_help.c:203 sql_help.c:204 sql_help.c:205 #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 -#: sql_help.c:569 sql_help.c:605 sql_help.c:670 sql_help.c:810 sql_help.c:946 -#: sql_help.c:1275 sql_help.c:1601 sql_help.c:2346 sql_help.c:2347 -#: sql_help.c:2348 sql_help.c:2349 sql_help.c:2350 sql_help.c:2483 -#: sql_help.c:2560 sql_help.c:2561 sql_help.c:2562 sql_help.c:2563 -#: sql_help.c:2564 sql_help.c:3104 sql_help.c:3105 sql_help.c:3106 -#: sql_help.c:3107 sql_help.c:3108 sql_help.c:3768 sql_help.c:3772 -#: sql_help.c:4116 sql_help.c:4120 sql_help.c:4417 +#: sql_help.c:570 sql_help.c:606 sql_help.c:671 sql_help.c:811 sql_help.c:947 +#: sql_help.c:1277 sql_help.c:1603 sql_help.c:2350 sql_help.c:2351 +#: sql_help.c:2352 sql_help.c:2353 sql_help.c:2354 sql_help.c:2487 +#: sql_help.c:2564 sql_help.c:2565 sql_help.c:2566 sql_help.c:2567 +#: sql_help.c:2568 sql_help.c:3108 sql_help.c:3109 sql_help.c:3110 +#: sql_help.c:3111 sql_help.c:3112 sql_help.c:3772 sql_help.c:3776 +#: sql_help.c:4120 sql_help.c:4124 sql_help.c:4421 msgid "role_name" msgstr "rollnamn" -#: sql_help.c:236 sql_help.c:459 sql_help.c:1291 sql_help.c:1293 -#: sql_help.c:1342 sql_help.c:1354 sql_help.c:1379 sql_help.c:1631 -#: sql_help.c:2158 sql_help.c:2162 sql_help.c:2265 sql_help.c:2270 -#: sql_help.c:2368 sql_help.c:2778 sql_help.c:2791 sql_help.c:2805 -#: sql_help.c:2814 sql_help.c:2826 sql_help.c:2855 sql_help.c:3820 -#: sql_help.c:3835 sql_help.c:3837 sql_help.c:4282 sql_help.c:4283 -#: sql_help.c:4292 sql_help.c:4333 sql_help.c:4334 sql_help.c:4335 -#: sql_help.c:4336 sql_help.c:4337 sql_help.c:4338 sql_help.c:4371 -#: sql_help.c:4372 sql_help.c:4377 sql_help.c:4382 sql_help.c:4521 -#: sql_help.c:4522 sql_help.c:4531 sql_help.c:4572 sql_help.c:4573 -#: sql_help.c:4574 sql_help.c:4575 sql_help.c:4576 sql_help.c:4577 -#: sql_help.c:4624 sql_help.c:4626 sql_help.c:4685 sql_help.c:4741 -#: sql_help.c:4742 sql_help.c:4751 sql_help.c:4792 sql_help.c:4793 -#: sql_help.c:4794 sql_help.c:4795 sql_help.c:4796 sql_help.c:4797 +#: sql_help.c:236 sql_help.c:459 sql_help.c:1293 sql_help.c:1295 +#: sql_help.c:1344 sql_help.c:1356 sql_help.c:1381 sql_help.c:1633 +#: sql_help.c:2160 sql_help.c:2164 sql_help.c:2268 sql_help.c:2273 +#: sql_help.c:2372 sql_help.c:2782 sql_help.c:2795 sql_help.c:2809 +#: sql_help.c:2818 sql_help.c:2830 sql_help.c:2859 sql_help.c:3824 +#: sql_help.c:3839 sql_help.c:3841 sql_help.c:4286 sql_help.c:4287 +#: sql_help.c:4296 sql_help.c:4337 sql_help.c:4338 sql_help.c:4339 +#: sql_help.c:4340 sql_help.c:4341 sql_help.c:4342 sql_help.c:4375 +#: sql_help.c:4376 sql_help.c:4381 sql_help.c:4386 sql_help.c:4525 +#: sql_help.c:4526 sql_help.c:4535 sql_help.c:4576 sql_help.c:4577 +#: sql_help.c:4578 sql_help.c:4579 sql_help.c:4580 sql_help.c:4581 +#: sql_help.c:4628 sql_help.c:4630 sql_help.c:4689 sql_help.c:4745 +#: sql_help.c:4746 sql_help.c:4755 sql_help.c:4796 sql_help.c:4797 +#: sql_help.c:4798 sql_help.c:4799 sql_help.c:4800 sql_help.c:4801 msgid "expression" msgstr "uttryck" @@ -4318,18 +4320,18 @@ msgstr "domain_villkor" #: sql_help.c:241 sql_help.c:243 sql_help.c:246 sql_help.c:474 sql_help.c:475 -#: sql_help.c:1268 sql_help.c:1313 sql_help.c:1314 sql_help.c:1315 -#: sql_help.c:1341 sql_help.c:1353 sql_help.c:1370 sql_help.c:1789 -#: sql_help.c:1791 sql_help.c:2161 sql_help.c:2264 sql_help.c:2269 -#: sql_help.c:2813 sql_help.c:2825 sql_help.c:3832 +#: sql_help.c:1270 sql_help.c:1315 sql_help.c:1316 sql_help.c:1317 +#: sql_help.c:1343 sql_help.c:1355 sql_help.c:1372 sql_help.c:1791 +#: sql_help.c:1793 sql_help.c:2163 sql_help.c:2267 sql_help.c:2272 +#: sql_help.c:2817 sql_help.c:2829 sql_help.c:3836 msgid "constraint_name" msgstr "villkorsnamn" -#: sql_help.c:244 sql_help.c:1269 +#: sql_help.c:244 sql_help.c:1271 msgid "new_constraint_name" msgstr "nyy_villkorsnamn" -#: sql_help.c:317 sql_help.c:1073 +#: sql_help.c:317 sql_help.c:1075 msgid "new_version" msgstr "ny_version" @@ -4345,82 +4347,82 @@ #: sql_help.c:334 sql_help.c:335 sql_help.c:340 sql_help.c:344 sql_help.c:346 #: sql_help.c:348 sql_help.c:357 sql_help.c:358 sql_help.c:359 sql_help.c:360 #: sql_help.c:361 sql_help.c:362 sql_help.c:363 sql_help.c:364 sql_help.c:367 -#: sql_help.c:368 sql_help.c:1781 sql_help.c:1786 sql_help.c:1793 -#: sql_help.c:1794 sql_help.c:1795 sql_help.c:1796 sql_help.c:1797 -#: sql_help.c:1798 sql_help.c:1799 sql_help.c:1804 sql_help.c:1806 -#: sql_help.c:1810 sql_help.c:1812 sql_help.c:1816 sql_help.c:1821 -#: sql_help.c:1822 sql_help.c:1829 sql_help.c:1830 sql_help.c:1831 -#: sql_help.c:1832 sql_help.c:1833 sql_help.c:1834 sql_help.c:1835 -#: sql_help.c:1836 sql_help.c:1837 sql_help.c:1838 sql_help.c:1839 -#: sql_help.c:1844 sql_help.c:1845 sql_help.c:4189 sql_help.c:4194 -#: sql_help.c:4195 sql_help.c:4196 sql_help.c:4197 sql_help.c:4203 -#: sql_help.c:4204 sql_help.c:4209 sql_help.c:4210 sql_help.c:4215 -#: sql_help.c:4216 sql_help.c:4217 sql_help.c:4218 sql_help.c:4219 -#: sql_help.c:4220 +#: sql_help.c:368 sql_help.c:1783 sql_help.c:1788 sql_help.c:1795 +#: sql_help.c:1796 sql_help.c:1797 sql_help.c:1798 sql_help.c:1799 +#: sql_help.c:1800 sql_help.c:1801 sql_help.c:1806 sql_help.c:1808 +#: sql_help.c:1812 sql_help.c:1814 sql_help.c:1818 sql_help.c:1823 +#: sql_help.c:1824 sql_help.c:1831 sql_help.c:1832 sql_help.c:1833 +#: sql_help.c:1834 sql_help.c:1835 sql_help.c:1836 sql_help.c:1837 +#: sql_help.c:1838 sql_help.c:1839 sql_help.c:1840 sql_help.c:1841 +#: sql_help.c:1846 sql_help.c:1847 sql_help.c:4193 sql_help.c:4198 +#: sql_help.c:4199 sql_help.c:4200 sql_help.c:4201 sql_help.c:4207 +#: sql_help.c:4208 sql_help.c:4213 sql_help.c:4214 sql_help.c:4219 +#: sql_help.c:4220 sql_help.c:4221 sql_help.c:4222 sql_help.c:4223 +#: sql_help.c:4224 msgid "object_name" msgstr "objektnamn" -#: sql_help.c:326 sql_help.c:1782 sql_help.c:4192 +#: sql_help.c:326 sql_help.c:1784 sql_help.c:4196 msgid "aggregate_name" msgstr "aggregatnamn" -#: sql_help.c:328 sql_help.c:1784 sql_help.c:2068 sql_help.c:2072 -#: sql_help.c:2074 sql_help.c:3231 +#: sql_help.c:328 sql_help.c:1786 sql_help.c:2070 sql_help.c:2074 +#: sql_help.c:2076 sql_help.c:3235 msgid "source_type" msgstr "källtyp" -#: sql_help.c:329 sql_help.c:1785 sql_help.c:2069 sql_help.c:2073 -#: sql_help.c:2075 sql_help.c:3232 +#: sql_help.c:329 sql_help.c:1787 sql_help.c:2071 sql_help.c:2075 +#: sql_help.c:2077 sql_help.c:3236 msgid "target_type" msgstr "måltyp" -#: sql_help.c:336 sql_help.c:774 sql_help.c:1800 sql_help.c:2070 -#: sql_help.c:2111 sql_help.c:2176 sql_help.c:2426 sql_help.c:2457 -#: sql_help.c:2995 sql_help.c:4100 sql_help.c:4198 sql_help.c:4311 -#: sql_help.c:4315 sql_help.c:4319 sql_help.c:4322 sql_help.c:4550 -#: sql_help.c:4554 sql_help.c:4558 sql_help.c:4561 sql_help.c:4770 -#: sql_help.c:4774 sql_help.c:4778 sql_help.c:4781 +#: sql_help.c:336 sql_help.c:775 sql_help.c:1802 sql_help.c:2072 +#: sql_help.c:2113 sql_help.c:2179 sql_help.c:2430 sql_help.c:2461 +#: sql_help.c:2999 sql_help.c:4104 sql_help.c:4202 sql_help.c:4315 +#: sql_help.c:4319 sql_help.c:4323 sql_help.c:4326 sql_help.c:4554 +#: sql_help.c:4558 sql_help.c:4562 sql_help.c:4565 sql_help.c:4774 +#: sql_help.c:4778 sql_help.c:4782 sql_help.c:4785 msgid "function_name" msgstr "funktionsnamn" -#: sql_help.c:341 sql_help.c:767 sql_help.c:1807 sql_help.c:2450 +#: sql_help.c:341 sql_help.c:768 sql_help.c:1809 sql_help.c:2454 msgid "operator_name" msgstr "operatornamn" -#: sql_help.c:342 sql_help.c:703 sql_help.c:707 sql_help.c:711 sql_help.c:1808 -#: sql_help.c:2427 sql_help.c:3355 +#: sql_help.c:342 sql_help.c:704 sql_help.c:708 sql_help.c:712 sql_help.c:1810 +#: sql_help.c:2431 sql_help.c:3359 msgid "left_type" msgstr "vänster_typ" -#: sql_help.c:343 sql_help.c:704 sql_help.c:708 sql_help.c:712 sql_help.c:1809 -#: sql_help.c:2428 sql_help.c:3356 +#: sql_help.c:343 sql_help.c:705 sql_help.c:709 sql_help.c:713 sql_help.c:1811 +#: sql_help.c:2432 sql_help.c:3360 msgid "right_type" msgstr "höger_typ" -#: sql_help.c:345 sql_help.c:347 sql_help.c:730 sql_help.c:733 sql_help.c:736 -#: sql_help.c:765 sql_help.c:777 sql_help.c:785 sql_help.c:788 sql_help.c:791 -#: sql_help.c:1359 sql_help.c:1811 sql_help.c:1813 sql_help.c:2447 -#: sql_help.c:2468 sql_help.c:2831 sql_help.c:3365 sql_help.c:3374 +#: sql_help.c:345 sql_help.c:347 sql_help.c:731 sql_help.c:734 sql_help.c:737 +#: sql_help.c:766 sql_help.c:778 sql_help.c:786 sql_help.c:789 sql_help.c:792 +#: sql_help.c:1361 sql_help.c:1813 sql_help.c:1815 sql_help.c:2451 +#: sql_help.c:2472 sql_help.c:2835 sql_help.c:3369 sql_help.c:3378 msgid "index_method" msgstr "indexmetod" -#: sql_help.c:349 sql_help.c:1817 sql_help.c:4205 +#: sql_help.c:349 sql_help.c:1819 sql_help.c:4209 msgid "procedure_name" msgstr "procedurnamn" -#: sql_help.c:353 sql_help.c:1823 sql_help.c:3752 sql_help.c:4211 +#: sql_help.c:353 sql_help.c:1825 sql_help.c:3756 sql_help.c:4215 msgid "routine_name" msgstr "rutinnamn" -#: sql_help.c:365 sql_help.c:1331 sql_help.c:1840 sql_help.c:2304 -#: sql_help.c:2507 sql_help.c:2786 sql_help.c:2962 sql_help.c:3536 -#: sql_help.c:3766 sql_help.c:4114 +#: sql_help.c:365 sql_help.c:1333 sql_help.c:1842 sql_help.c:2308 +#: sql_help.c:2511 sql_help.c:2790 sql_help.c:2966 sql_help.c:3540 +#: sql_help.c:3770 sql_help.c:4118 msgid "type_name" msgstr "typnamn" -#: sql_help.c:366 sql_help.c:1841 sql_help.c:2303 sql_help.c:2506 -#: sql_help.c:2963 sql_help.c:3189 sql_help.c:3537 sql_help.c:3758 -#: sql_help.c:4106 +#: sql_help.c:366 sql_help.c:1843 sql_help.c:2307 sql_help.c:2510 +#: sql_help.c:2967 sql_help.c:3193 sql_help.c:3541 sql_help.c:3762 +#: sql_help.c:4110 msgid "lang_name" msgstr "språknamn" @@ -4428,1885 +4430,1889 @@ msgid "and aggregate_signature is:" msgstr "och aggregatsignatur är:" -#: sql_help.c:392 sql_help.c:1935 sql_help.c:2201 +#: sql_help.c:392 sql_help.c:1937 sql_help.c:2204 msgid "handler_function" msgstr "hanterarfunktion" -#: sql_help.c:393 sql_help.c:2202 +#: sql_help.c:393 sql_help.c:2205 msgid "validator_function" msgstr "valideringsfunktion" -#: sql_help.c:441 sql_help.c:519 sql_help.c:659 sql_help.c:841 sql_help.c:979 -#: sql_help.c:1263 sql_help.c:1529 +#: sql_help.c:441 sql_help.c:520 sql_help.c:660 sql_help.c:842 sql_help.c:981 +#: sql_help.c:1265 sql_help.c:1531 msgid "action" msgstr "aktion" #: sql_help.c:443 sql_help.c:450 sql_help.c:454 sql_help.c:455 sql_help.c:458 #: sql_help.c:460 sql_help.c:461 sql_help.c:462 sql_help.c:464 sql_help.c:467 -#: sql_help.c:469 sql_help.c:470 sql_help.c:663 sql_help.c:673 sql_help.c:675 -#: sql_help.c:678 sql_help.c:680 sql_help.c:1055 sql_help.c:1265 -#: sql_help.c:1283 sql_help.c:1287 sql_help.c:1288 sql_help.c:1292 -#: sql_help.c:1294 sql_help.c:1295 sql_help.c:1296 sql_help.c:1297 -#: sql_help.c:1299 sql_help.c:1302 sql_help.c:1303 sql_help.c:1305 -#: sql_help.c:1308 sql_help.c:1310 sql_help.c:1355 sql_help.c:1357 -#: sql_help.c:1364 sql_help.c:1373 sql_help.c:1378 sql_help.c:1630 -#: sql_help.c:1633 sql_help.c:1637 sql_help.c:1673 sql_help.c:1788 -#: sql_help.c:1901 sql_help.c:1907 sql_help.c:1920 sql_help.c:1921 -#: sql_help.c:1922 sql_help.c:2243 sql_help.c:2256 sql_help.c:2301 -#: sql_help.c:2367 sql_help.c:2373 sql_help.c:2406 sql_help.c:2633 -#: sql_help.c:2661 sql_help.c:2662 sql_help.c:2769 sql_help.c:2777 -#: sql_help.c:2787 sql_help.c:2790 sql_help.c:2800 sql_help.c:2804 -#: sql_help.c:2827 sql_help.c:2829 sql_help.c:2836 sql_help.c:2849 -#: sql_help.c:2854 sql_help.c:2872 sql_help.c:2998 sql_help.c:3134 -#: sql_help.c:3737 sql_help.c:3738 sql_help.c:3819 sql_help.c:3834 -#: sql_help.c:3836 sql_help.c:3838 sql_help.c:4085 sql_help.c:4086 -#: sql_help.c:4191 sql_help.c:4342 sql_help.c:4581 sql_help.c:4623 -#: sql_help.c:4625 sql_help.c:4627 sql_help.c:4673 sql_help.c:4801 +#: sql_help.c:469 sql_help.c:470 sql_help.c:664 sql_help.c:674 sql_help.c:676 +#: sql_help.c:679 sql_help.c:681 sql_help.c:1057 sql_help.c:1267 +#: sql_help.c:1285 sql_help.c:1289 sql_help.c:1290 sql_help.c:1294 +#: sql_help.c:1296 sql_help.c:1297 sql_help.c:1298 sql_help.c:1299 +#: sql_help.c:1301 sql_help.c:1304 sql_help.c:1305 sql_help.c:1307 +#: sql_help.c:1310 sql_help.c:1312 sql_help.c:1357 sql_help.c:1359 +#: sql_help.c:1366 sql_help.c:1375 sql_help.c:1380 sql_help.c:1632 +#: sql_help.c:1635 sql_help.c:1639 sql_help.c:1675 sql_help.c:1790 +#: sql_help.c:1903 sql_help.c:1909 sql_help.c:1922 sql_help.c:1923 +#: sql_help.c:1924 sql_help.c:2246 sql_help.c:2259 sql_help.c:2305 +#: sql_help.c:2371 sql_help.c:2377 sql_help.c:2410 sql_help.c:2637 +#: sql_help.c:2665 sql_help.c:2666 sql_help.c:2773 sql_help.c:2781 +#: sql_help.c:2791 sql_help.c:2794 sql_help.c:2804 sql_help.c:2808 +#: sql_help.c:2831 sql_help.c:2833 sql_help.c:2840 sql_help.c:2853 +#: sql_help.c:2858 sql_help.c:2876 sql_help.c:3002 sql_help.c:3138 +#: sql_help.c:3741 sql_help.c:3742 sql_help.c:3823 sql_help.c:3838 +#: sql_help.c:3840 sql_help.c:3842 sql_help.c:4089 sql_help.c:4090 +#: sql_help.c:4195 sql_help.c:4346 sql_help.c:4585 sql_help.c:4627 +#: sql_help.c:4629 sql_help.c:4631 sql_help.c:4677 sql_help.c:4805 msgid "column_name" msgstr "kolumnnamn" -#: sql_help.c:444 sql_help.c:664 sql_help.c:1266 sql_help.c:1638 +#: sql_help.c:444 sql_help.c:665 sql_help.c:1268 sql_help.c:1640 msgid "new_column_name" msgstr "nytt_kolumnnamn" -#: sql_help.c:449 sql_help.c:540 sql_help.c:672 sql_help.c:862 sql_help.c:1000 -#: sql_help.c:1282 sql_help.c:1539 +#: sql_help.c:449 sql_help.c:541 sql_help.c:673 sql_help.c:863 sql_help.c:1002 +#: sql_help.c:1284 sql_help.c:1541 msgid "where action is one of:" msgstr "där aktion är en av:" -#: sql_help.c:451 sql_help.c:456 sql_help.c:1047 sql_help.c:1284 -#: sql_help.c:1289 sql_help.c:1541 sql_help.c:1545 sql_help.c:2156 -#: sql_help.c:2244 sql_help.c:2446 sql_help.c:2626 sql_help.c:2770 -#: sql_help.c:3043 sql_help.c:3921 +#: sql_help.c:451 sql_help.c:456 sql_help.c:1049 sql_help.c:1286 +#: sql_help.c:1291 sql_help.c:1543 sql_help.c:1547 sql_help.c:2158 +#: sql_help.c:2247 sql_help.c:2450 sql_help.c:2630 sql_help.c:2774 +#: sql_help.c:3047 sql_help.c:3925 msgid "data_type" msgstr "datatyp" -#: sql_help.c:452 sql_help.c:457 sql_help.c:1285 sql_help.c:1290 -#: sql_help.c:1542 sql_help.c:1546 sql_help.c:2157 sql_help.c:2247 -#: sql_help.c:2369 sql_help.c:2771 sql_help.c:2779 sql_help.c:2792 -#: sql_help.c:2806 sql_help.c:3044 sql_help.c:3050 sql_help.c:3829 +#: sql_help.c:452 sql_help.c:457 sql_help.c:1287 sql_help.c:1292 +#: sql_help.c:1544 sql_help.c:1548 sql_help.c:2159 sql_help.c:2250 +#: sql_help.c:2373 sql_help.c:2775 sql_help.c:2783 sql_help.c:2796 +#: sql_help.c:2810 sql_help.c:3048 sql_help.c:3054 sql_help.c:3833 msgid "collation" msgstr "jämförelse" -#: sql_help.c:453 sql_help.c:1286 sql_help.c:2248 sql_help.c:2257 -#: sql_help.c:2772 sql_help.c:2788 sql_help.c:2801 +#: sql_help.c:453 sql_help.c:1288 sql_help.c:2251 sql_help.c:2260 +#: sql_help.c:2776 sql_help.c:2792 sql_help.c:2805 msgid "column_constraint" msgstr "kolumnvillkor" -#: sql_help.c:463 sql_help.c:603 sql_help.c:674 sql_help.c:1304 sql_help.c:4670 +#: sql_help.c:463 sql_help.c:604 sql_help.c:675 sql_help.c:1306 sql_help.c:4674 msgid "integer" msgstr "heltal" -#: sql_help.c:465 sql_help.c:468 sql_help.c:676 sql_help.c:679 sql_help.c:1306 -#: sql_help.c:1309 +#: sql_help.c:465 sql_help.c:468 sql_help.c:677 sql_help.c:680 sql_help.c:1308 +#: sql_help.c:1311 msgid "attribute_option" msgstr "attributalternativ" -#: sql_help.c:473 sql_help.c:1311 sql_help.c:2249 sql_help.c:2258 -#: sql_help.c:2773 sql_help.c:2789 sql_help.c:2802 +#: sql_help.c:473 sql_help.c:1313 sql_help.c:2252 sql_help.c:2261 +#: sql_help.c:2777 sql_help.c:2793 sql_help.c:2806 msgid "table_constraint" msgstr "tabellvillkor" -#: sql_help.c:476 sql_help.c:477 sql_help.c:478 sql_help.c:479 sql_help.c:1316 -#: sql_help.c:1317 sql_help.c:1318 sql_help.c:1319 sql_help.c:1842 +#: sql_help.c:476 sql_help.c:477 sql_help.c:478 sql_help.c:479 sql_help.c:1318 +#: sql_help.c:1319 sql_help.c:1320 sql_help.c:1321 sql_help.c:1844 msgid "trigger_name" msgstr "utlösarnamn" -#: sql_help.c:480 sql_help.c:481 sql_help.c:1329 sql_help.c:1330 -#: sql_help.c:2250 sql_help.c:2255 sql_help.c:2776 sql_help.c:2799 +#: sql_help.c:480 sql_help.c:481 sql_help.c:1331 sql_help.c:1332 +#: sql_help.c:2253 sql_help.c:2258 sql_help.c:2780 sql_help.c:2803 msgid "parent_table" msgstr "föräldertabell" -#: sql_help.c:539 sql_help.c:595 sql_help.c:661 sql_help.c:861 sql_help.c:999 -#: sql_help.c:1498 sql_help.c:2187 +#: sql_help.c:540 sql_help.c:596 sql_help.c:662 sql_help.c:862 sql_help.c:1001 +#: sql_help.c:1500 sql_help.c:2190 msgid "extension_name" msgstr "utökningsnamn" -#: sql_help.c:541 sql_help.c:1001 sql_help.c:2305 +#: sql_help.c:542 sql_help.c:1003 sql_help.c:2309 msgid "execution_cost" msgstr "körkostnad" -#: sql_help.c:542 sql_help.c:1002 sql_help.c:2306 +#: sql_help.c:543 sql_help.c:1004 sql_help.c:2310 msgid "result_rows" msgstr "resultatrader" -#: sql_help.c:543 sql_help.c:2307 +#: sql_help.c:544 sql_help.c:2311 msgid "support_function" msgstr "supportfunktion" -#: sql_help.c:564 sql_help.c:566 sql_help.c:925 sql_help.c:933 sql_help.c:937 -#: sql_help.c:940 sql_help.c:943 sql_help.c:1580 sql_help.c:1588 -#: sql_help.c:1592 sql_help.c:1595 sql_help.c:1598 sql_help.c:2604 -#: sql_help.c:2606 sql_help.c:2609 sql_help.c:2610 sql_help.c:3736 -#: sql_help.c:3740 sql_help.c:3743 sql_help.c:3745 sql_help.c:3747 -#: sql_help.c:3749 sql_help.c:3751 sql_help.c:3757 sql_help.c:3759 -#: sql_help.c:3761 sql_help.c:3763 sql_help.c:3765 sql_help.c:3767 -#: sql_help.c:3769 sql_help.c:3770 sql_help.c:4084 sql_help.c:4088 -#: sql_help.c:4091 sql_help.c:4093 sql_help.c:4095 sql_help.c:4097 -#: sql_help.c:4099 sql_help.c:4105 sql_help.c:4107 sql_help.c:4109 -#: sql_help.c:4111 sql_help.c:4113 sql_help.c:4115 sql_help.c:4117 -#: sql_help.c:4118 +#: sql_help.c:565 sql_help.c:567 sql_help.c:926 sql_help.c:934 sql_help.c:938 +#: sql_help.c:941 sql_help.c:944 sql_help.c:1582 sql_help.c:1590 +#: sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 sql_help.c:2608 +#: sql_help.c:2610 sql_help.c:2613 sql_help.c:2614 sql_help.c:3740 +#: sql_help.c:3744 sql_help.c:3747 sql_help.c:3749 sql_help.c:3751 +#: sql_help.c:3753 sql_help.c:3755 sql_help.c:3761 sql_help.c:3763 +#: sql_help.c:3765 sql_help.c:3767 sql_help.c:3769 sql_help.c:3771 +#: sql_help.c:3773 sql_help.c:3774 sql_help.c:4088 sql_help.c:4092 +#: sql_help.c:4095 sql_help.c:4097 sql_help.c:4099 sql_help.c:4101 +#: sql_help.c:4103 sql_help.c:4109 sql_help.c:4111 sql_help.c:4113 +#: sql_help.c:4115 sql_help.c:4117 sql_help.c:4119 sql_help.c:4121 +#: sql_help.c:4122 msgid "role_specification" msgstr "rollspecifikation" -#: sql_help.c:565 sql_help.c:567 sql_help.c:1611 sql_help.c:2130 -#: sql_help.c:2612 sql_help.c:3119 sql_help.c:3570 sql_help.c:4427 +#: sql_help.c:566 sql_help.c:568 sql_help.c:1613 sql_help.c:2132 +#: sql_help.c:2616 sql_help.c:3123 sql_help.c:3574 sql_help.c:4431 msgid "user_name" msgstr "användarnamn" -#: sql_help.c:568 sql_help.c:945 sql_help.c:1600 sql_help.c:2611 -#: sql_help.c:3771 sql_help.c:4119 +#: sql_help.c:569 sql_help.c:946 sql_help.c:1602 sql_help.c:2615 +#: sql_help.c:3775 sql_help.c:4123 msgid "where role_specification can be:" msgstr "där rollspecifikation kan vara:" -#: sql_help.c:570 +#: sql_help.c:571 msgid "group_name" msgstr "gruppnamn" -#: sql_help.c:591 sql_help.c:1376 sql_help.c:2136 sql_help.c:2376 -#: sql_help.c:2410 sql_help.c:2784 sql_help.c:2797 sql_help.c:2811 -#: sql_help.c:2852 sql_help.c:2876 sql_help.c:2888 sql_help.c:3764 -#: sql_help.c:4112 +#: sql_help.c:592 sql_help.c:1378 sql_help.c:2138 sql_help.c:2380 +#: sql_help.c:2414 sql_help.c:2788 sql_help.c:2801 sql_help.c:2815 +#: sql_help.c:2856 sql_help.c:2880 sql_help.c:2892 sql_help.c:3768 +#: sql_help.c:4116 msgid "tablespace_name" msgstr "tabellutrymmesnamn" -#: sql_help.c:593 sql_help.c:681 sql_help.c:1324 sql_help.c:1333 -#: sql_help.c:1371 sql_help.c:1722 +#: sql_help.c:594 sql_help.c:682 sql_help.c:1326 sql_help.c:1335 +#: sql_help.c:1373 sql_help.c:1724 msgid "index_name" msgstr "indexnamn" -#: sql_help.c:597 sql_help.c:600 sql_help.c:682 sql_help.c:684 sql_help.c:1326 -#: sql_help.c:1328 sql_help.c:1374 sql_help.c:2374 sql_help.c:2408 -#: sql_help.c:2782 sql_help.c:2795 sql_help.c:2809 sql_help.c:2850 -#: sql_help.c:2874 +#: sql_help.c:598 sql_help.c:601 sql_help.c:683 sql_help.c:685 sql_help.c:1328 +#: sql_help.c:1330 sql_help.c:1376 sql_help.c:2378 sql_help.c:2412 +#: sql_help.c:2786 sql_help.c:2799 sql_help.c:2813 sql_help.c:2854 +#: sql_help.c:2878 msgid "storage_parameter" msgstr "lagringsparameter" -#: sql_help.c:602 +#: sql_help.c:603 msgid "column_number" msgstr "kolumnnummer" -#: sql_help.c:626 sql_help.c:1805 sql_help.c:4202 +#: sql_help.c:627 sql_help.c:1807 sql_help.c:4206 msgid "large_object_oid" msgstr "stort_objekt_oid" -#: sql_help.c:713 sql_help.c:2431 +#: sql_help.c:714 sql_help.c:2435 msgid "res_proc" msgstr "res_proc" -#: sql_help.c:714 sql_help.c:2432 +#: sql_help.c:715 sql_help.c:2436 msgid "join_proc" msgstr "join_proc" -#: sql_help.c:766 sql_help.c:778 sql_help.c:2449 +#: sql_help.c:767 sql_help.c:779 sql_help.c:2453 msgid "strategy_number" msgstr "strateginummer" -#: sql_help.c:768 sql_help.c:769 sql_help.c:772 sql_help.c:773 sql_help.c:779 -#: sql_help.c:780 sql_help.c:782 sql_help.c:783 sql_help.c:2451 sql_help.c:2452 -#: sql_help.c:2455 sql_help.c:2456 +#: sql_help.c:769 sql_help.c:770 sql_help.c:773 sql_help.c:774 sql_help.c:780 +#: sql_help.c:781 sql_help.c:783 sql_help.c:784 sql_help.c:2455 sql_help.c:2456 +#: sql_help.c:2459 sql_help.c:2460 msgid "op_type" msgstr "op_typ" -#: sql_help.c:770 sql_help.c:2453 +#: sql_help.c:771 sql_help.c:2457 msgid "sort_family_name" msgstr "sorteringsfamiljnamn" -#: sql_help.c:771 sql_help.c:781 sql_help.c:2454 +#: sql_help.c:772 sql_help.c:782 sql_help.c:2458 msgid "support_number" msgstr "supportnummer" -#: sql_help.c:775 sql_help.c:2071 sql_help.c:2458 sql_help.c:2965 -#: sql_help.c:2967 +#: sql_help.c:776 sql_help.c:2073 sql_help.c:2462 sql_help.c:2969 +#: sql_help.c:2971 msgid "argument_type" msgstr "argumenttyp" -#: sql_help.c:806 sql_help.c:809 sql_help.c:880 sql_help.c:882 sql_help.c:884 -#: sql_help.c:1015 sql_help.c:1054 sql_help.c:1494 sql_help.c:1497 -#: sql_help.c:1672 sql_help.c:1721 sql_help.c:1790 sql_help.c:1815 -#: sql_help.c:1828 sql_help.c:1843 sql_help.c:1900 sql_help.c:1906 -#: sql_help.c:2242 sql_help.c:2254 sql_help.c:2365 sql_help.c:2405 -#: sql_help.c:2482 sql_help.c:2525 sql_help.c:2581 sql_help.c:2632 -#: sql_help.c:2663 sql_help.c:2768 sql_help.c:2785 sql_help.c:2798 -#: sql_help.c:2871 sql_help.c:2991 sql_help.c:3168 sql_help.c:3391 -#: sql_help.c:3440 sql_help.c:3546 sql_help.c:3734 sql_help.c:3739 -#: sql_help.c:3785 sql_help.c:3817 sql_help.c:4082 sql_help.c:4087 -#: sql_help.c:4190 sql_help.c:4297 sql_help.c:4299 sql_help.c:4348 -#: sql_help.c:4387 sql_help.c:4536 sql_help.c:4538 sql_help.c:4587 -#: sql_help.c:4621 sql_help.c:4672 sql_help.c:4756 sql_help.c:4758 -#: sql_help.c:4807 +#: sql_help.c:807 sql_help.c:810 sql_help.c:881 sql_help.c:883 sql_help.c:885 +#: sql_help.c:1017 sql_help.c:1056 sql_help.c:1496 sql_help.c:1499 +#: sql_help.c:1674 sql_help.c:1723 sql_help.c:1792 sql_help.c:1817 +#: sql_help.c:1830 sql_help.c:1845 sql_help.c:1902 sql_help.c:1908 +#: sql_help.c:2245 sql_help.c:2257 sql_help.c:2369 sql_help.c:2409 +#: sql_help.c:2486 sql_help.c:2529 sql_help.c:2585 sql_help.c:2636 +#: sql_help.c:2667 sql_help.c:2772 sql_help.c:2789 sql_help.c:2802 +#: sql_help.c:2875 sql_help.c:2995 sql_help.c:3172 sql_help.c:3395 +#: sql_help.c:3444 sql_help.c:3550 sql_help.c:3738 sql_help.c:3743 +#: sql_help.c:3789 sql_help.c:3821 sql_help.c:4086 sql_help.c:4091 +#: sql_help.c:4194 sql_help.c:4301 sql_help.c:4303 sql_help.c:4352 +#: sql_help.c:4391 sql_help.c:4540 sql_help.c:4542 sql_help.c:4591 +#: sql_help.c:4625 sql_help.c:4676 sql_help.c:4760 sql_help.c:4762 +#: sql_help.c:4811 msgid "table_name" msgstr "tabellnamn" -#: sql_help.c:811 sql_help.c:2484 +#: sql_help.c:812 sql_help.c:2488 msgid "using_expression" msgstr "using-uttryck" -#: sql_help.c:812 sql_help.c:2485 +#: sql_help.c:813 sql_help.c:2489 msgid "check_expression" msgstr "check-uttryck" -#: sql_help.c:886 sql_help.c:2526 +#: sql_help.c:887 sql_help.c:2530 msgid "publication_parameter" msgstr "publiceringsparameter" -#: sql_help.c:929 sql_help.c:1584 sql_help.c:2344 sql_help.c:2558 -#: sql_help.c:3102 +#: sql_help.c:930 sql_help.c:1586 sql_help.c:2348 sql_help.c:2562 +#: sql_help.c:3106 msgid "password" msgstr "lösenord" -#: sql_help.c:930 sql_help.c:1585 sql_help.c:2345 sql_help.c:2559 -#: sql_help.c:3103 +#: sql_help.c:931 sql_help.c:1587 sql_help.c:2349 sql_help.c:2563 +#: sql_help.c:3107 msgid "timestamp" msgstr "tidsstämpel" -#: sql_help.c:934 sql_help.c:938 sql_help.c:941 sql_help.c:944 sql_help.c:1589 -#: sql_help.c:1593 sql_help.c:1596 sql_help.c:1599 sql_help.c:3744 -#: sql_help.c:4092 +#: sql_help.c:935 sql_help.c:939 sql_help.c:942 sql_help.c:945 sql_help.c:1591 +#: sql_help.c:1595 sql_help.c:1598 sql_help.c:1601 sql_help.c:3748 +#: sql_help.c:4096 msgid "database_name" msgstr "databasnamn" -#: sql_help.c:1048 sql_help.c:2627 +#: sql_help.c:1050 sql_help.c:2631 msgid "increment" msgstr "ökningsvärde" -#: sql_help.c:1049 sql_help.c:2628 +#: sql_help.c:1051 sql_help.c:2632 msgid "minvalue" msgstr "minvärde" -#: sql_help.c:1050 sql_help.c:2629 +#: sql_help.c:1052 sql_help.c:2633 msgid "maxvalue" msgstr "maxvärde" -#: sql_help.c:1051 sql_help.c:2630 sql_help.c:4295 sql_help.c:4385 -#: sql_help.c:4534 sql_help.c:4689 sql_help.c:4754 +#: sql_help.c:1053 sql_help.c:2634 sql_help.c:4299 sql_help.c:4389 +#: sql_help.c:4538 sql_help.c:4693 sql_help.c:4758 msgid "start" msgstr "start" -#: sql_help.c:1052 sql_help.c:1301 +#: sql_help.c:1054 sql_help.c:1303 msgid "restart" msgstr "starta om" -#: sql_help.c:1053 sql_help.c:2631 +#: sql_help.c:1055 sql_help.c:2635 msgid "cache" msgstr "cache" -#: sql_help.c:1097 +#: sql_help.c:1099 msgid "new_target" msgstr "nytt_mål" -#: sql_help.c:1113 sql_help.c:2675 +#: sql_help.c:1115 sql_help.c:2679 msgid "conninfo" msgstr "anslinfo" -#: sql_help.c:1115 sql_help.c:2676 +#: sql_help.c:1117 sql_help.c:2680 msgid "publication_name" msgstr "publiceringsnamn" -#: sql_help.c:1116 +#: sql_help.c:1118 msgid "set_publication_option" msgstr "sätt_publicerings_alternativ" -#: sql_help.c:1119 +#: sql_help.c:1121 msgid "refresh_option" msgstr "refresh_alternativ" -#: sql_help.c:1124 sql_help.c:2677 +#: sql_help.c:1126 sql_help.c:2681 msgid "subscription_parameter" msgstr "prenumerationsparameter" -#: sql_help.c:1278 sql_help.c:1281 +#: sql_help.c:1280 sql_help.c:1283 msgid "partition_name" msgstr "partitionsnamn" -#: sql_help.c:1279 sql_help.c:2259 sql_help.c:2803 +#: sql_help.c:1281 sql_help.c:2262 sql_help.c:2807 msgid "partition_bound_spec" msgstr "partitionsgränsspec" -#: sql_help.c:1298 sql_help.c:1345 sql_help.c:2817 +#: sql_help.c:1300 sql_help.c:1347 sql_help.c:2821 msgid "sequence_options" msgstr "sekvensalternativ" -#: sql_help.c:1300 +#: sql_help.c:1302 msgid "sequence_option" msgstr "sekvensalternativ" -#: sql_help.c:1312 +#: sql_help.c:1314 msgid "table_constraint_using_index" msgstr "tabellvillkor_för_index" -#: sql_help.c:1320 sql_help.c:1321 sql_help.c:1322 sql_help.c:1323 +#: sql_help.c:1322 sql_help.c:1323 sql_help.c:1324 sql_help.c:1325 msgid "rewrite_rule_name" msgstr "omskrivningsregelnamn" -#: sql_help.c:1334 sql_help.c:2842 +#: sql_help.c:1336 sql_help.c:2846 msgid "and partition_bound_spec is:" msgstr "och partitionsgränsspec är:" -#: sql_help.c:1335 sql_help.c:1336 sql_help.c:1337 sql_help.c:2843 -#: sql_help.c:2844 sql_help.c:2845 +#: sql_help.c:1337 sql_help.c:1338 sql_help.c:1339 sql_help.c:2847 +#: sql_help.c:2848 sql_help.c:2849 msgid "partition_bound_expr" msgstr "partitionsgränsuttryck" -#: sql_help.c:1338 sql_help.c:1339 sql_help.c:2846 sql_help.c:2847 +#: sql_help.c:1340 sql_help.c:1341 sql_help.c:2850 sql_help.c:2851 msgid "numeric_literal" msgstr "numerisk_literal" -#: sql_help.c:1340 +#: sql_help.c:1342 msgid "and column_constraint is:" msgstr "och kolumnvillkor är:" -#: sql_help.c:1343 sql_help.c:2266 sql_help.c:2299 sql_help.c:2505 -#: sql_help.c:2815 +#: sql_help.c:1345 sql_help.c:2269 sql_help.c:2303 sql_help.c:2509 +#: sql_help.c:2819 msgid "default_expr" msgstr "default_uttryck" -#: sql_help.c:1344 sql_help.c:2267 sql_help.c:2816 +#: sql_help.c:1346 sql_help.c:2270 sql_help.c:2820 msgid "generation_expr" msgstr "generatoruttryck" -#: sql_help.c:1346 sql_help.c:1347 sql_help.c:1356 sql_help.c:1358 -#: sql_help.c:1362 sql_help.c:2818 sql_help.c:2819 sql_help.c:2828 -#: sql_help.c:2830 sql_help.c:2834 +#: sql_help.c:1348 sql_help.c:1349 sql_help.c:1358 sql_help.c:1360 +#: sql_help.c:1364 sql_help.c:2822 sql_help.c:2823 sql_help.c:2832 +#: sql_help.c:2834 sql_help.c:2838 msgid "index_parameters" msgstr "indexparametrar" -#: sql_help.c:1348 sql_help.c:1365 sql_help.c:2820 sql_help.c:2837 +#: sql_help.c:1350 sql_help.c:1367 sql_help.c:2824 sql_help.c:2841 msgid "reftable" msgstr "reftabell" -#: sql_help.c:1349 sql_help.c:1366 sql_help.c:2821 sql_help.c:2838 +#: sql_help.c:1351 sql_help.c:1368 sql_help.c:2825 sql_help.c:2842 msgid "refcolumn" msgstr "refkolumn" -#: sql_help.c:1350 sql_help.c:1351 sql_help.c:1367 sql_help.c:1368 -#: sql_help.c:2822 sql_help.c:2823 sql_help.c:2839 sql_help.c:2840 +#: sql_help.c:1352 sql_help.c:1353 sql_help.c:1369 sql_help.c:1370 +#: sql_help.c:2826 sql_help.c:2827 sql_help.c:2843 sql_help.c:2844 msgid "referential_action" msgstr "referentiell_aktion" -#: sql_help.c:1352 sql_help.c:2268 sql_help.c:2824 +#: sql_help.c:1354 sql_help.c:2271 sql_help.c:2828 msgid "and table_constraint is:" msgstr "och tabellvillkor är:" -#: sql_help.c:1360 sql_help.c:2832 +#: sql_help.c:1362 sql_help.c:2836 msgid "exclude_element" msgstr "uteslutelement" -#: sql_help.c:1361 sql_help.c:2833 sql_help.c:4293 sql_help.c:4383 -#: sql_help.c:4532 sql_help.c:4687 sql_help.c:4752 +#: sql_help.c:1363 sql_help.c:2837 sql_help.c:4297 sql_help.c:4387 +#: sql_help.c:4536 sql_help.c:4691 sql_help.c:4756 msgid "operator" msgstr "operator" -#: sql_help.c:1363 sql_help.c:2377 sql_help.c:2835 +#: sql_help.c:1365 sql_help.c:2381 sql_help.c:2839 msgid "predicate" msgstr "predikat" -#: sql_help.c:1369 +#: sql_help.c:1371 msgid "and table_constraint_using_index is:" msgstr "och tabellvillkor_för_index är:" -#: sql_help.c:1372 sql_help.c:2848 +#: sql_help.c:1374 sql_help.c:2852 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "indexparametrar i UNIQUE-, PRIMARY KEY- och EXCLUDE-villkor är:" -#: sql_help.c:1377 sql_help.c:2853 +#: sql_help.c:1379 sql_help.c:2857 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "uteslutelement i ett EXCLUDE-villkort är:" -#: sql_help.c:1380 sql_help.c:2370 sql_help.c:2780 sql_help.c:2793 -#: sql_help.c:2807 sql_help.c:2856 sql_help.c:3830 +#: sql_help.c:1382 sql_help.c:2374 sql_help.c:2784 sql_help.c:2797 +#: sql_help.c:2811 sql_help.c:2860 sql_help.c:3834 msgid "opclass" msgstr "op-klass" -#: sql_help.c:1396 sql_help.c:1399 sql_help.c:2891 +#: sql_help.c:1398 sql_help.c:1401 sql_help.c:2895 msgid "tablespace_option" msgstr "tabellutrymmesalternativ" -#: sql_help.c:1420 sql_help.c:1423 sql_help.c:1429 sql_help.c:1433 +#: sql_help.c:1422 sql_help.c:1425 sql_help.c:1431 sql_help.c:1435 msgid "token_type" msgstr "symboltyp" -#: sql_help.c:1421 sql_help.c:1424 +#: sql_help.c:1423 sql_help.c:1426 msgid "dictionary_name" msgstr "ordlistnamn" -#: sql_help.c:1426 sql_help.c:1430 +#: sql_help.c:1428 sql_help.c:1432 msgid "old_dictionary" msgstr "gammal_ordlista" -#: sql_help.c:1427 sql_help.c:1431 +#: sql_help.c:1429 sql_help.c:1433 msgid "new_dictionary" msgstr "ny_ordlista" -#: sql_help.c:1526 sql_help.c:1540 sql_help.c:1543 sql_help.c:1544 -#: sql_help.c:3042 +#: sql_help.c:1528 sql_help.c:1542 sql_help.c:1545 sql_help.c:1546 +#: sql_help.c:3046 msgid "attribute_name" msgstr "attributnamn" -#: sql_help.c:1527 +#: sql_help.c:1529 msgid "new_attribute_name" msgstr "nytt_attributnamn" -#: sql_help.c:1531 sql_help.c:1535 +#: sql_help.c:1533 sql_help.c:1537 msgid "new_enum_value" msgstr "nytt_enumvärde" -#: sql_help.c:1532 +#: sql_help.c:1534 msgid "neighbor_enum_value" msgstr "närliggande_enumvärde" -#: sql_help.c:1534 +#: sql_help.c:1536 msgid "existing_enum_value" msgstr "existerande_enumvärde" -#: sql_help.c:1537 +#: sql_help.c:1539 msgid "property" msgstr "egenskap" -#: sql_help.c:1612 sql_help.c:2251 sql_help.c:2260 sql_help.c:2643 -#: sql_help.c:3120 sql_help.c:3571 sql_help.c:3750 sql_help.c:3786 -#: sql_help.c:4098 +#: sql_help.c:1614 sql_help.c:2254 sql_help.c:2263 sql_help.c:2647 +#: sql_help.c:3124 sql_help.c:3575 sql_help.c:3754 sql_help.c:3790 +#: sql_help.c:4102 msgid "server_name" msgstr "servernamn" -#: sql_help.c:1644 sql_help.c:1647 sql_help.c:3135 +#: sql_help.c:1646 sql_help.c:1649 sql_help.c:3139 msgid "view_option_name" msgstr "visningsalternativnamn" -#: sql_help.c:1645 sql_help.c:3136 +#: sql_help.c:1647 sql_help.c:3140 msgid "view_option_value" msgstr "visningsalternativvärde" -#: sql_help.c:1666 sql_help.c:1667 sql_help.c:4659 sql_help.c:4660 +#: sql_help.c:1668 sql_help.c:1669 sql_help.c:4663 sql_help.c:4664 msgid "table_and_columns" msgstr "tabell_och_kolumner" -#: sql_help.c:1668 sql_help.c:1912 sql_help.c:3619 sql_help.c:3963 -#: sql_help.c:4661 +#: sql_help.c:1670 sql_help.c:1914 sql_help.c:3623 sql_help.c:3967 +#: sql_help.c:4665 msgid "where option can be one of:" msgstr "där flaggor kan vara en av:" -#: sql_help.c:1669 sql_help.c:1670 sql_help.c:1914 sql_help.c:1917 -#: sql_help.c:2096 sql_help.c:3620 sql_help.c:3621 sql_help.c:3622 -#: sql_help.c:3623 sql_help.c:3624 sql_help.c:3625 sql_help.c:3626 -#: sql_help.c:3627 sql_help.c:4662 sql_help.c:4663 sql_help.c:4664 -#: sql_help.c:4665 sql_help.c:4666 sql_help.c:4667 sql_help.c:4668 -#: sql_help.c:4669 +#: sql_help.c:1671 sql_help.c:1672 sql_help.c:1916 sql_help.c:1919 +#: sql_help.c:2098 sql_help.c:3624 sql_help.c:3625 sql_help.c:3626 +#: sql_help.c:3627 sql_help.c:3628 sql_help.c:3629 sql_help.c:3630 +#: sql_help.c:3631 sql_help.c:4666 sql_help.c:4667 sql_help.c:4668 +#: sql_help.c:4669 sql_help.c:4670 sql_help.c:4671 sql_help.c:4672 +#: sql_help.c:4673 msgid "boolean" msgstr "boolean" -#: sql_help.c:1671 sql_help.c:4671 +#: sql_help.c:1673 sql_help.c:4675 msgid "and table_and_columns is:" msgstr "och tabell_och_kolumner är:" -#: sql_help.c:1687 sql_help.c:4443 sql_help.c:4445 sql_help.c:4469 +#: sql_help.c:1689 sql_help.c:4447 sql_help.c:4449 sql_help.c:4473 msgid "transaction_mode" msgstr "transaktionsläge" -#: sql_help.c:1688 sql_help.c:4446 sql_help.c:4470 +#: sql_help.c:1690 sql_help.c:4450 sql_help.c:4474 msgid "where transaction_mode is one of:" msgstr "där transaktionsläge är en av:" -#: sql_help.c:1697 sql_help.c:4303 sql_help.c:4312 sql_help.c:4316 -#: sql_help.c:4320 sql_help.c:4323 sql_help.c:4542 sql_help.c:4551 -#: sql_help.c:4555 sql_help.c:4559 sql_help.c:4562 sql_help.c:4762 -#: sql_help.c:4771 sql_help.c:4775 sql_help.c:4779 sql_help.c:4782 +#: sql_help.c:1699 sql_help.c:4307 sql_help.c:4316 sql_help.c:4320 +#: sql_help.c:4324 sql_help.c:4327 sql_help.c:4546 sql_help.c:4555 +#: sql_help.c:4559 sql_help.c:4563 sql_help.c:4566 sql_help.c:4766 +#: sql_help.c:4775 sql_help.c:4779 sql_help.c:4783 sql_help.c:4786 msgid "argument" msgstr "argument" -#: sql_help.c:1787 +#: sql_help.c:1789 msgid "relation_name" msgstr "relationsnamn" -#: sql_help.c:1792 sql_help.c:3746 sql_help.c:4094 +#: sql_help.c:1794 sql_help.c:3750 sql_help.c:4098 msgid "domain_name" msgstr "domännamn" -#: sql_help.c:1814 +#: sql_help.c:1816 msgid "policy_name" msgstr "policynamn" -#: sql_help.c:1827 +#: sql_help.c:1829 msgid "rule_name" msgstr "regelnamn" -#: sql_help.c:1846 +#: sql_help.c:1848 msgid "text" msgstr "text" -#: sql_help.c:1871 sql_help.c:3930 sql_help.c:4135 +#: sql_help.c:1873 sql_help.c:3934 sql_help.c:4139 msgid "transaction_id" msgstr "transaktions-id" -#: sql_help.c:1902 sql_help.c:1909 sql_help.c:3856 +#: sql_help.c:1904 sql_help.c:1911 sql_help.c:3860 msgid "filename" msgstr "filnamn" -#: sql_help.c:1903 sql_help.c:1910 sql_help.c:2583 sql_help.c:2584 -#: sql_help.c:2585 +#: sql_help.c:1905 sql_help.c:1912 sql_help.c:2587 sql_help.c:2588 +#: sql_help.c:2589 msgid "command" msgstr "kommando" -#: sql_help.c:1905 sql_help.c:2582 sql_help.c:2994 sql_help.c:3171 -#: sql_help.c:3840 sql_help.c:4286 sql_help.c:4288 sql_help.c:4376 -#: sql_help.c:4378 sql_help.c:4525 sql_help.c:4527 sql_help.c:4630 -#: sql_help.c:4745 sql_help.c:4747 +#: sql_help.c:1907 sql_help.c:2586 sql_help.c:2998 sql_help.c:3175 +#: sql_help.c:3844 sql_help.c:4290 sql_help.c:4292 sql_help.c:4380 +#: sql_help.c:4382 sql_help.c:4529 sql_help.c:4531 sql_help.c:4634 +#: sql_help.c:4749 sql_help.c:4751 msgid "condition" msgstr "villkor" -#: sql_help.c:1908 sql_help.c:2411 sql_help.c:2877 sql_help.c:3137 -#: sql_help.c:3155 sql_help.c:3821 +#: sql_help.c:1910 sql_help.c:2415 sql_help.c:2881 sql_help.c:3141 +#: sql_help.c:3159 sql_help.c:3825 msgid "query" msgstr "fråga" -#: sql_help.c:1913 +#: sql_help.c:1915 msgid "format_name" msgstr "formatnamn" -#: sql_help.c:1915 +#: sql_help.c:1917 msgid "delimiter_character" msgstr "avdelartecken" -#: sql_help.c:1916 +#: sql_help.c:1918 msgid "null_string" msgstr "null-sträng" -#: sql_help.c:1918 +#: sql_help.c:1920 msgid "quote_character" msgstr "citattecken" -#: sql_help.c:1919 +#: sql_help.c:1921 msgid "escape_character" msgstr "escape-tecken" -#: sql_help.c:1923 +#: sql_help.c:1925 msgid "encoding_name" msgstr "kodningsnamn" -#: sql_help.c:1934 +#: sql_help.c:1936 msgid "access_method_type" msgstr "accessmetodtyp" -#: sql_help.c:2005 sql_help.c:2024 sql_help.c:2027 +#: sql_help.c:2007 sql_help.c:2026 sql_help.c:2029 msgid "arg_data_type" msgstr "arg_datatyp" -#: sql_help.c:2006 sql_help.c:2028 sql_help.c:2036 +#: sql_help.c:2008 sql_help.c:2030 sql_help.c:2038 msgid "sfunc" msgstr "sfunc" -#: sql_help.c:2007 sql_help.c:2029 sql_help.c:2037 +#: sql_help.c:2009 sql_help.c:2031 sql_help.c:2039 msgid "state_data_type" msgstr "tillståndsdatatyp" -#: sql_help.c:2008 sql_help.c:2030 sql_help.c:2038 +#: sql_help.c:2010 sql_help.c:2032 sql_help.c:2040 msgid "state_data_size" msgstr "tillståndsdatastorlek" -#: sql_help.c:2009 sql_help.c:2031 sql_help.c:2039 +#: sql_help.c:2011 sql_help.c:2033 sql_help.c:2041 msgid "ffunc" msgstr "ffunc" -#: sql_help.c:2010 sql_help.c:2040 +#: sql_help.c:2012 sql_help.c:2042 msgid "combinefunc" msgstr "kombinerafunk" -#: sql_help.c:2011 sql_help.c:2041 +#: sql_help.c:2013 sql_help.c:2043 msgid "serialfunc" msgstr "serialiseringsfunk" -#: sql_help.c:2012 sql_help.c:2042 +#: sql_help.c:2014 sql_help.c:2044 msgid "deserialfunc" msgstr "deserialiseringsfunk" -#: sql_help.c:2013 sql_help.c:2032 sql_help.c:2043 +#: sql_help.c:2015 sql_help.c:2034 sql_help.c:2045 msgid "initial_condition" msgstr "startvärde" -#: sql_help.c:2014 sql_help.c:2044 +#: sql_help.c:2016 sql_help.c:2046 msgid "msfunc" msgstr "msfunk" -#: sql_help.c:2015 sql_help.c:2045 +#: sql_help.c:2017 sql_help.c:2047 msgid "minvfunc" msgstr "minvfunk" -#: sql_help.c:2016 sql_help.c:2046 +#: sql_help.c:2018 sql_help.c:2048 msgid "mstate_data_type" msgstr "mtillståndsdatatyp" -#: sql_help.c:2017 sql_help.c:2047 +#: sql_help.c:2019 sql_help.c:2049 msgid "mstate_data_size" msgstr "ntillståndsstorlek" -#: sql_help.c:2018 sql_help.c:2048 +#: sql_help.c:2020 sql_help.c:2050 msgid "mffunc" msgstr "mffunk" -#: sql_help.c:2019 sql_help.c:2049 +#: sql_help.c:2021 sql_help.c:2051 msgid "minitial_condition" msgstr "mstartvärde" -#: sql_help.c:2020 sql_help.c:2050 +#: sql_help.c:2022 sql_help.c:2052 msgid "sort_operator" msgstr "sorteringsoperator" -#: sql_help.c:2033 +#: sql_help.c:2035 msgid "or the old syntax" msgstr "eller gamla syntaxen" -#: sql_help.c:2035 +#: sql_help.c:2037 msgid "base_type" msgstr "bastyp" -#: sql_help.c:2092 sql_help.c:2133 +#: sql_help.c:2094 sql_help.c:2135 msgid "locale" msgstr "lokal" -#: sql_help.c:2093 sql_help.c:2134 +#: sql_help.c:2095 sql_help.c:2136 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2094 sql_help.c:2135 +#: sql_help.c:2096 sql_help.c:2137 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2095 sql_help.c:4188 +#: sql_help.c:2097 sql_help.c:4192 msgid "provider" msgstr "leverantör" -#: sql_help.c:2097 sql_help.c:2189 +#: sql_help.c:2099 sql_help.c:2192 msgid "version" msgstr "version" -#: sql_help.c:2099 +#: sql_help.c:2101 msgid "existing_collation" msgstr "existerande_jämförelse" -#: sql_help.c:2109 +#: sql_help.c:2111 msgid "source_encoding" msgstr "källkodning" -#: sql_help.c:2110 +#: sql_help.c:2112 msgid "dest_encoding" msgstr "målkodning" -#: sql_help.c:2131 sql_help.c:2917 +#: sql_help.c:2133 sql_help.c:2921 msgid "template" msgstr "mall" -#: sql_help.c:2132 +#: sql_help.c:2134 msgid "encoding" msgstr "kodning" -#: sql_help.c:2159 +#: sql_help.c:2161 msgid "constraint" msgstr "villkor" -#: sql_help.c:2160 +#: sql_help.c:2162 msgid "where constraint is:" msgstr "där villkor är:" -#: sql_help.c:2174 sql_help.c:2580 sql_help.c:2990 +#: sql_help.c:2176 sql_help.c:2584 sql_help.c:2994 msgid "event" msgstr "händelse" -#: sql_help.c:2175 +#: sql_help.c:2177 msgid "filter_variable" msgstr "filtervariabel" -#: sql_help.c:2263 sql_help.c:2812 +#: sql_help.c:2178 +msgid "filter_value" +msgstr "filtervärde" + +#: sql_help.c:2266 sql_help.c:2816 msgid "where column_constraint is:" msgstr "där kolumnvillkor är:" -#: sql_help.c:2300 +#: sql_help.c:2304 msgid "rettype" msgstr "rettyp" -#: sql_help.c:2302 +#: sql_help.c:2306 msgid "column_type" msgstr "kolumntyp" -#: sql_help.c:2311 sql_help.c:2511 +#: sql_help.c:2315 sql_help.c:2515 msgid "definition" msgstr "definition" -#: sql_help.c:2312 sql_help.c:2512 +#: sql_help.c:2316 sql_help.c:2516 msgid "obj_file" msgstr "obj-fil" -#: sql_help.c:2313 sql_help.c:2513 +#: sql_help.c:2317 sql_help.c:2517 msgid "link_symbol" msgstr "linksymbol" -#: sql_help.c:2351 sql_help.c:2565 sql_help.c:3109 +#: sql_help.c:2355 sql_help.c:2569 sql_help.c:3113 msgid "uid" msgstr "uid" -#: sql_help.c:2366 sql_help.c:2407 sql_help.c:2781 sql_help.c:2794 -#: sql_help.c:2808 sql_help.c:2873 +#: sql_help.c:2370 sql_help.c:2411 sql_help.c:2785 sql_help.c:2798 +#: sql_help.c:2812 sql_help.c:2877 msgid "method" msgstr "metod" -#: sql_help.c:2371 +#: sql_help.c:2375 msgid "opclass_parameter" msgstr "opclass_parameter" -#: sql_help.c:2388 +#: sql_help.c:2392 msgid "call_handler" msgstr "anropshanterare" -#: sql_help.c:2389 +#: sql_help.c:2393 msgid "inline_handler" msgstr "inline-hanterare" -#: sql_help.c:2390 +#: sql_help.c:2394 msgid "valfunction" msgstr "val-funktion" -#: sql_help.c:2429 +#: sql_help.c:2433 msgid "com_op" msgstr "com_op" -#: sql_help.c:2430 +#: sql_help.c:2434 msgid "neg_op" msgstr "neg_op" -#: sql_help.c:2448 +#: sql_help.c:2452 msgid "family_name" msgstr "familjenamn" -#: sql_help.c:2459 +#: sql_help.c:2463 msgid "storage_type" msgstr "lagringstyp" -#: sql_help.c:2586 sql_help.c:2997 +#: sql_help.c:2590 sql_help.c:3001 msgid "where event can be one of:" msgstr "där händelse kan vara en av:" -#: sql_help.c:2605 sql_help.c:2607 +#: sql_help.c:2609 sql_help.c:2611 msgid "schema_element" msgstr "schema-element" -#: sql_help.c:2644 +#: sql_help.c:2648 msgid "server_type" msgstr "servertyp" -#: sql_help.c:2645 +#: sql_help.c:2649 msgid "server_version" msgstr "serverversion" -#: sql_help.c:2646 sql_help.c:3748 sql_help.c:4096 +#: sql_help.c:2650 sql_help.c:3752 sql_help.c:4100 msgid "fdw_name" msgstr "fdw-namn" -#: sql_help.c:2659 +#: sql_help.c:2663 msgid "statistics_name" msgstr "statistiknamn" -#: sql_help.c:2660 +#: sql_help.c:2664 msgid "statistics_kind" msgstr "statistiksort" -#: sql_help.c:2674 +#: sql_help.c:2678 msgid "subscription_name" msgstr "prenumerationsnamn" -#: sql_help.c:2774 +#: sql_help.c:2778 msgid "source_table" msgstr "källtabell" -#: sql_help.c:2775 +#: sql_help.c:2779 msgid "like_option" msgstr "like_alternativ" -#: sql_help.c:2841 +#: sql_help.c:2845 msgid "and like_option is:" msgstr "och likealternativ är:" -#: sql_help.c:2890 +#: sql_help.c:2894 msgid "directory" msgstr "katalog" -#: sql_help.c:2904 +#: sql_help.c:2908 msgid "parser_name" msgstr "parsernamn" -#: sql_help.c:2905 +#: sql_help.c:2909 msgid "source_config" msgstr "källkonfig" -#: sql_help.c:2934 +#: sql_help.c:2938 msgid "start_function" msgstr "startfunktion" -#: sql_help.c:2935 +#: sql_help.c:2939 msgid "gettoken_function" msgstr "gettoken_funktion" -#: sql_help.c:2936 +#: sql_help.c:2940 msgid "end_function" msgstr "slutfunktion" -#: sql_help.c:2937 +#: sql_help.c:2941 msgid "lextypes_function" msgstr "symboltypfunktion" -#: sql_help.c:2938 +#: sql_help.c:2942 msgid "headline_function" msgstr "rubrikfunktion" -#: sql_help.c:2950 +#: sql_help.c:2954 msgid "init_function" msgstr "init_funktion" -#: sql_help.c:2951 +#: sql_help.c:2955 msgid "lexize_function" msgstr "symboluppdelningsfunktion" -#: sql_help.c:2964 +#: sql_help.c:2968 msgid "from_sql_function_name" msgstr "från_sql_funktionsnamn" -#: sql_help.c:2966 +#: sql_help.c:2970 msgid "to_sql_function_name" msgstr "till_sql_funktionsnamn" -#: sql_help.c:2992 +#: sql_help.c:2996 msgid "referenced_table_name" msgstr "refererat_tabellnamn" -#: sql_help.c:2993 +#: sql_help.c:2997 msgid "transition_relation_name" msgstr "övergångsrelationsnamn" -#: sql_help.c:2996 +#: sql_help.c:3000 msgid "arguments" msgstr "argument" -#: sql_help.c:3046 sql_help.c:4221 +#: sql_help.c:3050 sql_help.c:4225 msgid "label" msgstr "etikett" -#: sql_help.c:3048 +#: sql_help.c:3052 msgid "subtype" msgstr "subtyp" -#: sql_help.c:3049 +#: sql_help.c:3053 msgid "subtype_operator_class" msgstr "subtypoperatorklass" -#: sql_help.c:3051 +#: sql_help.c:3055 msgid "canonical_function" msgstr "kanonisk_funktion" -#: sql_help.c:3052 +#: sql_help.c:3056 msgid "subtype_diff_function" msgstr "subtyp_diff_funktion" -#: sql_help.c:3054 +#: sql_help.c:3058 msgid "input_function" msgstr "inmatningsfunktion" -#: sql_help.c:3055 +#: sql_help.c:3059 msgid "output_function" msgstr "utmatningsfunktion" -#: sql_help.c:3056 +#: sql_help.c:3060 msgid "receive_function" msgstr "mottagarfunktion" -#: sql_help.c:3057 +#: sql_help.c:3061 msgid "send_function" msgstr "sändfunktion" -#: sql_help.c:3058 +#: sql_help.c:3062 msgid "type_modifier_input_function" msgstr "typmodifiering_indatafunktion" -#: sql_help.c:3059 +#: sql_help.c:3063 msgid "type_modifier_output_function" msgstr "typmodifiering_utdatafunktion" -#: sql_help.c:3060 +#: sql_help.c:3064 msgid "analyze_function" msgstr "analysfunktion" -#: sql_help.c:3061 +#: sql_help.c:3065 msgid "internallength" msgstr "internlängd" -#: sql_help.c:3062 +#: sql_help.c:3066 msgid "alignment" msgstr "justering" -#: sql_help.c:3063 +#: sql_help.c:3067 msgid "storage" msgstr "lagring" -#: sql_help.c:3064 +#: sql_help.c:3068 msgid "like_type" msgstr "liketyp" -#: sql_help.c:3065 +#: sql_help.c:3069 msgid "category" msgstr "kategori" -#: sql_help.c:3066 +#: sql_help.c:3070 msgid "preferred" msgstr "föredragen" -#: sql_help.c:3067 +#: sql_help.c:3071 msgid "default" msgstr "standard" -#: sql_help.c:3068 +#: sql_help.c:3072 msgid "element" msgstr "element" -#: sql_help.c:3069 +#: sql_help.c:3073 msgid "delimiter" msgstr "avskiljare" -#: sql_help.c:3070 +#: sql_help.c:3074 msgid "collatable" msgstr "sorterbar" -#: sql_help.c:3167 sql_help.c:3816 sql_help.c:4281 sql_help.c:4370 -#: sql_help.c:4520 sql_help.c:4620 sql_help.c:4740 +#: sql_help.c:3171 sql_help.c:3820 sql_help.c:4285 sql_help.c:4374 +#: sql_help.c:4524 sql_help.c:4624 sql_help.c:4744 msgid "with_query" msgstr "with_fråga" -#: sql_help.c:3169 sql_help.c:3818 sql_help.c:4300 sql_help.c:4306 -#: sql_help.c:4309 sql_help.c:4313 sql_help.c:4317 sql_help.c:4325 -#: sql_help.c:4539 sql_help.c:4545 sql_help.c:4548 sql_help.c:4552 -#: sql_help.c:4556 sql_help.c:4564 sql_help.c:4622 sql_help.c:4759 -#: sql_help.c:4765 sql_help.c:4768 sql_help.c:4772 sql_help.c:4776 -#: sql_help.c:4784 +#: sql_help.c:3173 sql_help.c:3822 sql_help.c:4304 sql_help.c:4310 +#: sql_help.c:4313 sql_help.c:4317 sql_help.c:4321 sql_help.c:4329 +#: sql_help.c:4543 sql_help.c:4549 sql_help.c:4552 sql_help.c:4556 +#: sql_help.c:4560 sql_help.c:4568 sql_help.c:4626 sql_help.c:4763 +#: sql_help.c:4769 sql_help.c:4772 sql_help.c:4776 sql_help.c:4780 +#: sql_help.c:4788 msgid "alias" msgstr "alias" -#: sql_help.c:3170 sql_help.c:4285 sql_help.c:4327 sql_help.c:4329 -#: sql_help.c:4375 sql_help.c:4524 sql_help.c:4566 sql_help.c:4568 -#: sql_help.c:4629 sql_help.c:4744 sql_help.c:4786 sql_help.c:4788 +#: sql_help.c:3174 sql_help.c:4289 sql_help.c:4331 sql_help.c:4333 +#: sql_help.c:4379 sql_help.c:4528 sql_help.c:4570 sql_help.c:4572 +#: sql_help.c:4633 sql_help.c:4748 sql_help.c:4790 sql_help.c:4792 msgid "from_item" msgstr "frånval" -#: sql_help.c:3172 sql_help.c:3653 sql_help.c:3897 sql_help.c:4631 +#: sql_help.c:3176 sql_help.c:3657 sql_help.c:3901 sql_help.c:4635 msgid "cursor_name" msgstr "markörnamn" -#: sql_help.c:3173 sql_help.c:3824 sql_help.c:4632 +#: sql_help.c:3177 sql_help.c:3828 sql_help.c:4636 msgid "output_expression" msgstr "utdatauttryck" -#: sql_help.c:3174 sql_help.c:3825 sql_help.c:4284 sql_help.c:4373 -#: sql_help.c:4523 sql_help.c:4633 sql_help.c:4743 +#: sql_help.c:3178 sql_help.c:3829 sql_help.c:4288 sql_help.c:4377 +#: sql_help.c:4527 sql_help.c:4637 sql_help.c:4747 msgid "output_name" msgstr "utdatanamn" -#: sql_help.c:3190 +#: sql_help.c:3194 msgid "code" msgstr "kod" -#: sql_help.c:3595 +#: sql_help.c:3599 msgid "parameter" msgstr "parameter" -#: sql_help.c:3617 sql_help.c:3618 sql_help.c:3922 +#: sql_help.c:3621 sql_help.c:3622 sql_help.c:3926 msgid "statement" msgstr "sats" -#: sql_help.c:3652 sql_help.c:3896 +#: sql_help.c:3656 sql_help.c:3900 msgid "direction" msgstr "riktning" -#: sql_help.c:3654 sql_help.c:3898 +#: sql_help.c:3658 sql_help.c:3902 msgid "where direction can be empty or one of:" msgstr "där riktning kan vara tom eller en av:" -#: sql_help.c:3655 sql_help.c:3656 sql_help.c:3657 sql_help.c:3658 -#: sql_help.c:3659 sql_help.c:3899 sql_help.c:3900 sql_help.c:3901 -#: sql_help.c:3902 sql_help.c:3903 sql_help.c:4294 sql_help.c:4296 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4533 sql_help.c:4535 -#: sql_help.c:4688 sql_help.c:4690 sql_help.c:4753 sql_help.c:4755 +#: sql_help.c:3659 sql_help.c:3660 sql_help.c:3661 sql_help.c:3662 +#: sql_help.c:3663 sql_help.c:3903 sql_help.c:3904 sql_help.c:3905 +#: sql_help.c:3906 sql_help.c:3907 sql_help.c:4298 sql_help.c:4300 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4537 sql_help.c:4539 +#: sql_help.c:4692 sql_help.c:4694 sql_help.c:4757 sql_help.c:4759 msgid "count" msgstr "antal" -#: sql_help.c:3741 sql_help.c:4089 +#: sql_help.c:3745 sql_help.c:4093 msgid "sequence_name" msgstr "sekvensnamn" -#: sql_help.c:3754 sql_help.c:4102 +#: sql_help.c:3758 sql_help.c:4106 msgid "arg_name" msgstr "arg_namn" -#: sql_help.c:3755 sql_help.c:4103 +#: sql_help.c:3759 sql_help.c:4107 msgid "arg_type" msgstr "arg_typ" -#: sql_help.c:3760 sql_help.c:4108 +#: sql_help.c:3764 sql_help.c:4112 msgid "loid" msgstr "loid" -#: sql_help.c:3784 +#: sql_help.c:3788 msgid "remote_schema" msgstr "externt_schema" -#: sql_help.c:3787 +#: sql_help.c:3791 msgid "local_schema" msgstr "lokalt_schema" -#: sql_help.c:3822 +#: sql_help.c:3826 msgid "conflict_target" msgstr "konfliktmål" -#: sql_help.c:3823 +#: sql_help.c:3827 msgid "conflict_action" msgstr "konfliktaktion" -#: sql_help.c:3826 +#: sql_help.c:3830 msgid "where conflict_target can be one of:" msgstr "där konfliktmål kan vara en av:" -#: sql_help.c:3827 +#: sql_help.c:3831 msgid "index_column_name" msgstr "indexkolumnnamn" -#: sql_help.c:3828 +#: sql_help.c:3832 msgid "index_expression" msgstr "indexuttryck" -#: sql_help.c:3831 +#: sql_help.c:3835 msgid "index_predicate" msgstr "indexpredikat" -#: sql_help.c:3833 +#: sql_help.c:3837 msgid "and conflict_action is one of:" msgstr "och konfliktaktion är en av:" -#: sql_help.c:3839 sql_help.c:4628 +#: sql_help.c:3843 sql_help.c:4632 msgid "sub-SELECT" msgstr "sub-SELECT" -#: sql_help.c:3848 sql_help.c:3911 sql_help.c:4604 +#: sql_help.c:3852 sql_help.c:3915 sql_help.c:4608 msgid "channel" msgstr "kanal" -#: sql_help.c:3870 +#: sql_help.c:3874 msgid "lockmode" msgstr "låsläge" -#: sql_help.c:3871 +#: sql_help.c:3875 msgid "where lockmode is one of:" msgstr "där låsläge är en av:" -#: sql_help.c:3912 +#: sql_help.c:3916 msgid "payload" msgstr "innehåll" -#: sql_help.c:3939 +#: sql_help.c:3943 msgid "old_role" msgstr "gammal_roll" -#: sql_help.c:3940 +#: sql_help.c:3944 msgid "new_role" msgstr "ny_roll" -#: sql_help.c:3971 sql_help.c:4143 sql_help.c:4151 +#: sql_help.c:3975 sql_help.c:4147 sql_help.c:4155 msgid "savepoint_name" msgstr "sparpunktnamn" -#: sql_help.c:4287 sql_help.c:4339 sql_help.c:4526 sql_help.c:4578 -#: sql_help.c:4746 sql_help.c:4798 +#: sql_help.c:4291 sql_help.c:4343 sql_help.c:4530 sql_help.c:4582 +#: sql_help.c:4750 sql_help.c:4802 msgid "grouping_element" msgstr "gruperingselement" -#: sql_help.c:4289 sql_help.c:4379 sql_help.c:4528 sql_help.c:4748 +#: sql_help.c:4293 sql_help.c:4383 sql_help.c:4532 sql_help.c:4752 msgid "window_name" msgstr "fönsternamn" -#: sql_help.c:4290 sql_help.c:4380 sql_help.c:4529 sql_help.c:4749 +#: sql_help.c:4294 sql_help.c:4384 sql_help.c:4533 sql_help.c:4753 msgid "window_definition" msgstr "fönsterdefinition" -#: sql_help.c:4291 sql_help.c:4305 sql_help.c:4343 sql_help.c:4381 -#: sql_help.c:4530 sql_help.c:4544 sql_help.c:4582 sql_help.c:4750 -#: sql_help.c:4764 sql_help.c:4802 +#: sql_help.c:4295 sql_help.c:4309 sql_help.c:4347 sql_help.c:4385 +#: sql_help.c:4534 sql_help.c:4548 sql_help.c:4586 sql_help.c:4754 +#: sql_help.c:4768 sql_help.c:4806 msgid "select" msgstr "select" -#: sql_help.c:4298 sql_help.c:4537 sql_help.c:4757 +#: sql_help.c:4302 sql_help.c:4541 sql_help.c:4761 msgid "where from_item can be one of:" msgstr "där frånval kan vara en av:" -#: sql_help.c:4301 sql_help.c:4307 sql_help.c:4310 sql_help.c:4314 -#: sql_help.c:4326 sql_help.c:4540 sql_help.c:4546 sql_help.c:4549 -#: sql_help.c:4553 sql_help.c:4565 sql_help.c:4760 sql_help.c:4766 -#: sql_help.c:4769 sql_help.c:4773 sql_help.c:4785 +#: sql_help.c:4305 sql_help.c:4311 sql_help.c:4314 sql_help.c:4318 +#: sql_help.c:4330 sql_help.c:4544 sql_help.c:4550 sql_help.c:4553 +#: sql_help.c:4557 sql_help.c:4569 sql_help.c:4764 sql_help.c:4770 +#: sql_help.c:4773 sql_help.c:4777 sql_help.c:4789 msgid "column_alias" msgstr "kolumnalias" -#: sql_help.c:4302 sql_help.c:4541 sql_help.c:4761 +#: sql_help.c:4306 sql_help.c:4545 sql_help.c:4765 msgid "sampling_method" msgstr "samplingsmetod" -#: sql_help.c:4304 sql_help.c:4543 sql_help.c:4763 +#: sql_help.c:4308 sql_help.c:4547 sql_help.c:4767 msgid "seed" msgstr "frö" -#: sql_help.c:4308 sql_help.c:4341 sql_help.c:4547 sql_help.c:4580 -#: sql_help.c:4767 sql_help.c:4800 +#: sql_help.c:4312 sql_help.c:4345 sql_help.c:4551 sql_help.c:4584 +#: sql_help.c:4771 sql_help.c:4804 msgid "with_query_name" msgstr "with_frågenamn" -#: sql_help.c:4318 sql_help.c:4321 sql_help.c:4324 sql_help.c:4557 -#: sql_help.c:4560 sql_help.c:4563 sql_help.c:4777 sql_help.c:4780 -#: sql_help.c:4783 +#: sql_help.c:4322 sql_help.c:4325 sql_help.c:4328 sql_help.c:4561 +#: sql_help.c:4564 sql_help.c:4567 sql_help.c:4781 sql_help.c:4784 +#: sql_help.c:4787 msgid "column_definition" msgstr "kolumndefinition" -#: sql_help.c:4328 sql_help.c:4567 sql_help.c:4787 +#: sql_help.c:4332 sql_help.c:4571 sql_help.c:4791 msgid "join_type" msgstr "join-typ" -#: sql_help.c:4330 sql_help.c:4569 sql_help.c:4789 +#: sql_help.c:4334 sql_help.c:4573 sql_help.c:4793 msgid "join_condition" msgstr "join-villkor" -#: sql_help.c:4331 sql_help.c:4570 sql_help.c:4790 +#: sql_help.c:4335 sql_help.c:4574 sql_help.c:4794 msgid "join_column" msgstr "join-kolumn" -#: sql_help.c:4332 sql_help.c:4571 sql_help.c:4791 +#: sql_help.c:4336 sql_help.c:4575 sql_help.c:4795 msgid "and grouping_element can be one of:" msgstr "och grupperingselement kan vara en av:" -#: sql_help.c:4340 sql_help.c:4579 sql_help.c:4799 +#: sql_help.c:4344 sql_help.c:4583 sql_help.c:4803 msgid "and with_query is:" msgstr "och with_fråga är:" -#: sql_help.c:4344 sql_help.c:4583 sql_help.c:4803 +#: sql_help.c:4348 sql_help.c:4587 sql_help.c:4807 msgid "values" msgstr "värden" -#: sql_help.c:4345 sql_help.c:4584 sql_help.c:4804 +#: sql_help.c:4349 sql_help.c:4588 sql_help.c:4808 msgid "insert" msgstr "insert" -#: sql_help.c:4346 sql_help.c:4585 sql_help.c:4805 +#: sql_help.c:4350 sql_help.c:4589 sql_help.c:4809 msgid "update" msgstr "update" -#: sql_help.c:4347 sql_help.c:4586 sql_help.c:4806 +#: sql_help.c:4351 sql_help.c:4590 sql_help.c:4810 msgid "delete" msgstr "delete" -#: sql_help.c:4374 +#: sql_help.c:4378 msgid "new_table" msgstr "ny_tabell" -#: sql_help.c:4399 +#: sql_help.c:4403 msgid "timezone" msgstr "tidszon" -#: sql_help.c:4444 +#: sql_help.c:4448 msgid "snapshot_id" msgstr "snapshot_id" -#: sql_help.c:4686 +#: sql_help.c:4690 msgid "sort_expression" msgstr "sorteringsuttryck" -#: sql_help.c:4813 sql_help.c:5791 +#: sql_help.c:4817 sql_help.c:5795 msgid "abort the current transaction" msgstr "avbryt aktuell transaktion" -#: sql_help.c:4819 +#: sql_help.c:4823 msgid "change the definition of an aggregate function" msgstr "ändra definitionen av en aggregatfunktion" -#: sql_help.c:4825 +#: sql_help.c:4829 msgid "change the definition of a collation" msgstr "ändra definitionen av en jämförelse" -#: sql_help.c:4831 +#: sql_help.c:4835 msgid "change the definition of a conversion" msgstr "ändra definitionen av en konvertering" -#: sql_help.c:4837 +#: sql_help.c:4841 msgid "change a database" msgstr "ändra en databas" -#: sql_help.c:4843 +#: sql_help.c:4847 msgid "define default access privileges" msgstr "definiera standardaccessrättigheter" -#: sql_help.c:4849 +#: sql_help.c:4853 msgid "change the definition of a domain" msgstr "ändra definitionen av en domän" -#: sql_help.c:4855 +#: sql_help.c:4859 msgid "change the definition of an event trigger" msgstr "ändra definitionen av en händelseutlösare" -#: sql_help.c:4861 +#: sql_help.c:4865 msgid "change the definition of an extension" msgstr "ändra definitionen av en utökning" -#: sql_help.c:4867 +#: sql_help.c:4871 msgid "change the definition of a foreign-data wrapper" msgstr "ändra definitionen av en främmande data-omvandlare" -#: sql_help.c:4873 +#: sql_help.c:4877 msgid "change the definition of a foreign table" msgstr "ändra definitionen av en främmande tabell" -#: sql_help.c:4879 +#: sql_help.c:4883 msgid "change the definition of a function" msgstr "ändra definitionen av en funktion" -#: sql_help.c:4885 +#: sql_help.c:4889 msgid "change role name or membership" msgstr "ändra rollnamn eller medlemskap" -#: sql_help.c:4891 +#: sql_help.c:4895 msgid "change the definition of an index" msgstr "ändra definitionen av ett index" -#: sql_help.c:4897 +#: sql_help.c:4901 msgid "change the definition of a procedural language" msgstr "ändra definitionen av ett procedur-språk" -#: sql_help.c:4903 +#: sql_help.c:4907 msgid "change the definition of a large object" msgstr "ändra definitionen av ett stort objekt" -#: sql_help.c:4909 +#: sql_help.c:4913 msgid "change the definition of a materialized view" msgstr "ändra definitionen av en materialiserad vy" -#: sql_help.c:4915 +#: sql_help.c:4919 msgid "change the definition of an operator" msgstr "ändra definitionen av en operator" -#: sql_help.c:4921 +#: sql_help.c:4925 msgid "change the definition of an operator class" msgstr "ändra definitionen av en operatorklass" -#: sql_help.c:4927 +#: sql_help.c:4931 msgid "change the definition of an operator family" msgstr "ändra definitionen av en operatorfamilj" -#: sql_help.c:4933 +#: sql_help.c:4937 msgid "change the definition of a row level security policy" msgstr "ändra definitionen av en säkerhetspolicy på radnivå" -#: sql_help.c:4939 +#: sql_help.c:4943 msgid "change the definition of a procedure" msgstr "ändra definitionen av en procedur" -#: sql_help.c:4945 +#: sql_help.c:4949 msgid "change the definition of a publication" msgstr "ändra definitionen av en publicering" -#: sql_help.c:4951 sql_help.c:5053 +#: sql_help.c:4955 sql_help.c:5057 msgid "change a database role" msgstr "ändra databasroll" -#: sql_help.c:4957 +#: sql_help.c:4961 msgid "change the definition of a routine" msgstr "ändra definitionen av en rutin" -#: sql_help.c:4963 +#: sql_help.c:4967 msgid "change the definition of a rule" msgstr "ändra definitionen av en regel" -#: sql_help.c:4969 +#: sql_help.c:4973 msgid "change the definition of a schema" msgstr "ändra definitionen av ett schema" -#: sql_help.c:4975 +#: sql_help.c:4979 msgid "change the definition of a sequence generator" msgstr "ändra definitionen av en sekvensgenerator" -#: sql_help.c:4981 +#: sql_help.c:4985 msgid "change the definition of a foreign server" msgstr "ändra definitionen av en främmande server" -#: sql_help.c:4987 +#: sql_help.c:4991 msgid "change the definition of an extended statistics object" msgstr "ändra definitionen av ett utökat statistikobjekt" -#: sql_help.c:4993 +#: sql_help.c:4997 msgid "change the definition of a subscription" msgstr "ändra definitionen av en prenumerering" -#: sql_help.c:4999 +#: sql_help.c:5003 msgid "change a server configuration parameter" msgstr "ändra en servers konfigurationsparameter" -#: sql_help.c:5005 +#: sql_help.c:5009 msgid "change the definition of a table" msgstr "ändra definitionen av en tabell" -#: sql_help.c:5011 +#: sql_help.c:5015 msgid "change the definition of a tablespace" msgstr "ändra definitionen av ett tabellutrymme" -#: sql_help.c:5017 +#: sql_help.c:5021 msgid "change the definition of a text search configuration" msgstr "ändra definitionen av en textsökkonfiguration" -#: sql_help.c:5023 +#: sql_help.c:5027 msgid "change the definition of a text search dictionary" msgstr "ändra definitionen av en textsökordlista" -#: sql_help.c:5029 +#: sql_help.c:5033 msgid "change the definition of a text search parser" msgstr "ändra definitionen av en textsökparser" -#: sql_help.c:5035 +#: sql_help.c:5039 msgid "change the definition of a text search template" msgstr "ändra definitionen av en textsökmall" -#: sql_help.c:5041 +#: sql_help.c:5045 msgid "change the definition of a trigger" msgstr "ändra definitionen av en utlösare" -#: sql_help.c:5047 +#: sql_help.c:5051 msgid "change the definition of a type" msgstr "ändra definitionen av en typ" -#: sql_help.c:5059 +#: sql_help.c:5063 msgid "change the definition of a user mapping" msgstr "ändra definitionen av en användarmappning" -#: sql_help.c:5065 +#: sql_help.c:5069 msgid "change the definition of a view" msgstr "ändra definitionen av en vy" -#: sql_help.c:5071 +#: sql_help.c:5075 msgid "collect statistics about a database" msgstr "samla in statistik om en databas" -#: sql_help.c:5077 sql_help.c:5869 +#: sql_help.c:5081 sql_help.c:5873 msgid "start a transaction block" msgstr "starta ett transaktionsblock" -#: sql_help.c:5083 +#: sql_help.c:5087 msgid "invoke a procedure" msgstr "anropa en procedur" -#: sql_help.c:5089 +#: sql_help.c:5093 msgid "force a write-ahead log checkpoint" msgstr "tvinga checkpoint i transaktionsloggen" -#: sql_help.c:5095 +#: sql_help.c:5099 msgid "close a cursor" msgstr "stäng en markör" -#: sql_help.c:5101 +#: sql_help.c:5105 msgid "cluster a table according to an index" msgstr "klustra en tabell efter ett index" -#: sql_help.c:5107 +#: sql_help.c:5111 msgid "define or change the comment of an object" msgstr "definiera eller ändra en kommentar på ett objekt" -#: sql_help.c:5113 sql_help.c:5671 +#: sql_help.c:5117 sql_help.c:5675 msgid "commit the current transaction" msgstr "utför den aktuella transaktionen" -#: sql_help.c:5119 +#: sql_help.c:5123 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "utför commit på en transaktion som tidigare förberetts för två-fas-commit" -#: sql_help.c:5125 +#: sql_help.c:5129 msgid "copy data between a file and a table" msgstr "kopiera data mellan en fil och en tabell" -#: sql_help.c:5131 +#: sql_help.c:5135 msgid "define a new access method" msgstr "definiera en ny accessmetod" -#: sql_help.c:5137 +#: sql_help.c:5141 msgid "define a new aggregate function" msgstr "definiera en ny aggregatfunktion" -#: sql_help.c:5143 +#: sql_help.c:5147 msgid "define a new cast" msgstr "definiera en ny typomvandling" -#: sql_help.c:5149 +#: sql_help.c:5153 msgid "define a new collation" msgstr "definiera en ny jämförelse" -#: sql_help.c:5155 +#: sql_help.c:5159 msgid "define a new encoding conversion" msgstr "definiera en ny teckenkodningskonvertering" -#: sql_help.c:5161 +#: sql_help.c:5165 msgid "create a new database" msgstr "skapa en ny databas" -#: sql_help.c:5167 +#: sql_help.c:5171 msgid "define a new domain" msgstr "definiera en ny domän" -#: sql_help.c:5173 +#: sql_help.c:5177 msgid "define a new event trigger" msgstr "definiera en ny händelseutlösare" -#: sql_help.c:5179 +#: sql_help.c:5183 msgid "install an extension" msgstr "installera en utökning" -#: sql_help.c:5185 +#: sql_help.c:5189 msgid "define a new foreign-data wrapper" msgstr "definiera en ny främmande data-omvandlare" -#: sql_help.c:5191 +#: sql_help.c:5195 msgid "define a new foreign table" msgstr "definiera en ny främmande tabell" -#: sql_help.c:5197 +#: sql_help.c:5201 msgid "define a new function" msgstr "definiera en ny funktion" -#: sql_help.c:5203 sql_help.c:5263 sql_help.c:5365 +#: sql_help.c:5207 sql_help.c:5267 sql_help.c:5369 msgid "define a new database role" msgstr "definiera en ny databasroll" -#: sql_help.c:5209 +#: sql_help.c:5213 msgid "define a new index" msgstr "skapa ett nytt index" -#: sql_help.c:5215 +#: sql_help.c:5219 msgid "define a new procedural language" msgstr "definiera ett nytt procedur-språk" -#: sql_help.c:5221 +#: sql_help.c:5225 msgid "define a new materialized view" msgstr "definiera en ny materialiserad vy" -#: sql_help.c:5227 +#: sql_help.c:5231 msgid "define a new operator" msgstr "definiera en ny operator" -#: sql_help.c:5233 +#: sql_help.c:5237 msgid "define a new operator class" msgstr "definiera en ny operatorklass" -#: sql_help.c:5239 +#: sql_help.c:5243 msgid "define a new operator family" msgstr "definiera en ny operatorfamilj" -#: sql_help.c:5245 +#: sql_help.c:5249 msgid "define a new row level security policy for a table" msgstr "definiera en ny säkerhetspolicy på radnivå för en tabell" -#: sql_help.c:5251 +#: sql_help.c:5255 msgid "define a new procedure" msgstr "definiera ett ny procedur" -#: sql_help.c:5257 +#: sql_help.c:5261 msgid "define a new publication" msgstr "definiera en ny publicering" -#: sql_help.c:5269 +#: sql_help.c:5273 msgid "define a new rewrite rule" msgstr "definiera en ny omskrivningsregel" -#: sql_help.c:5275 +#: sql_help.c:5279 msgid "define a new schema" msgstr "definiera ett nytt schema" -#: sql_help.c:5281 +#: sql_help.c:5285 msgid "define a new sequence generator" msgstr "definiera en ny sekvensgenerator" -#: sql_help.c:5287 +#: sql_help.c:5291 msgid "define a new foreign server" msgstr "definiera en ny främmande server" -#: sql_help.c:5293 +#: sql_help.c:5297 msgid "define extended statistics" msgstr "definiera utökad statistik" -#: sql_help.c:5299 +#: sql_help.c:5303 msgid "define a new subscription" msgstr "definiera en ny prenumeration" -#: sql_help.c:5305 +#: sql_help.c:5309 msgid "define a new table" msgstr "definiera en ny tabell" -#: sql_help.c:5311 sql_help.c:5827 +#: sql_help.c:5315 sql_help.c:5831 msgid "define a new table from the results of a query" msgstr "definiera en ny tabell utifrån resultatet av en fråga" -#: sql_help.c:5317 +#: sql_help.c:5321 msgid "define a new tablespace" msgstr "definiera ett nytt tabellutrymme" -#: sql_help.c:5323 +#: sql_help.c:5327 msgid "define a new text search configuration" msgstr "definiera en ny textsökkonfiguration" -#: sql_help.c:5329 +#: sql_help.c:5333 msgid "define a new text search dictionary" msgstr "definiera en ny textsökordlista" -#: sql_help.c:5335 +#: sql_help.c:5339 msgid "define a new text search parser" msgstr "definiera en ny textsökparser" -#: sql_help.c:5341 +#: sql_help.c:5345 msgid "define a new text search template" msgstr "definiera en ny textsökmall" -#: sql_help.c:5347 +#: sql_help.c:5351 msgid "define a new transform" msgstr "definiera en ny transform" -#: sql_help.c:5353 +#: sql_help.c:5357 msgid "define a new trigger" msgstr "definiera en ny utlösare" -#: sql_help.c:5359 +#: sql_help.c:5363 msgid "define a new data type" msgstr "definiera en ny datatyp" -#: sql_help.c:5371 +#: sql_help.c:5375 msgid "define a new mapping of a user to a foreign server" msgstr "definiera en ny mappning av en användare till en främmande server" -#: sql_help.c:5377 +#: sql_help.c:5381 msgid "define a new view" msgstr "definiera en ny vy" -#: sql_help.c:5383 +#: sql_help.c:5387 msgid "deallocate a prepared statement" msgstr "deallokera en förberedd sats" -#: sql_help.c:5389 +#: sql_help.c:5393 msgid "define a cursor" msgstr "definiera en markör" -#: sql_help.c:5395 +#: sql_help.c:5399 msgid "delete rows of a table" msgstr "radera rader i en tabell" -#: sql_help.c:5401 +#: sql_help.c:5405 msgid "discard session state" msgstr "släng sessionstillstånd" -#: sql_help.c:5407 +#: sql_help.c:5411 msgid "execute an anonymous code block" msgstr "kör ett annonymt kodblock" -#: sql_help.c:5413 +#: sql_help.c:5417 msgid "remove an access method" msgstr "ta bort en accessmetod" -#: sql_help.c:5419 +#: sql_help.c:5423 msgid "remove an aggregate function" msgstr "ta bort en aggregatfunktioner" -#: sql_help.c:5425 +#: sql_help.c:5429 msgid "remove a cast" msgstr "ta bort en typomvandling" -#: sql_help.c:5431 +#: sql_help.c:5435 msgid "remove a collation" msgstr "ta bort en jämförelse" -#: sql_help.c:5437 +#: sql_help.c:5441 msgid "remove a conversion" msgstr "ta bort en konvertering" -#: sql_help.c:5443 +#: sql_help.c:5447 msgid "remove a database" msgstr "ta bort en databas" -#: sql_help.c:5449 +#: sql_help.c:5453 msgid "remove a domain" msgstr "ta bort en domän" -#: sql_help.c:5455 +#: sql_help.c:5459 msgid "remove an event trigger" msgstr "ta bort en händelseutlösare" -#: sql_help.c:5461 +#: sql_help.c:5465 msgid "remove an extension" msgstr "ta bort en utökning" -#: sql_help.c:5467 +#: sql_help.c:5471 msgid "remove a foreign-data wrapper" msgstr "ta bort en frammande data-omvandlare" -#: sql_help.c:5473 +#: sql_help.c:5477 msgid "remove a foreign table" msgstr "ta bort en främmande tabell" -#: sql_help.c:5479 +#: sql_help.c:5483 msgid "remove a function" msgstr "ta bort en funktion" -#: sql_help.c:5485 sql_help.c:5551 sql_help.c:5653 +#: sql_help.c:5489 sql_help.c:5555 sql_help.c:5657 msgid "remove a database role" msgstr "ta bort en databasroll" -#: sql_help.c:5491 +#: sql_help.c:5495 msgid "remove an index" msgstr "ta bort ett index" -#: sql_help.c:5497 +#: sql_help.c:5501 msgid "remove a procedural language" msgstr "ta bort ett procedur-språk" -#: sql_help.c:5503 +#: sql_help.c:5507 msgid "remove a materialized view" msgstr "ta bort en materialiserad vy" -#: sql_help.c:5509 +#: sql_help.c:5513 msgid "remove an operator" msgstr "ta bort en operator" -#: sql_help.c:5515 +#: sql_help.c:5519 msgid "remove an operator class" msgstr "ta bort en operatorklass" -#: sql_help.c:5521 +#: sql_help.c:5525 msgid "remove an operator family" msgstr "ta bort en operatorfamilj" -#: sql_help.c:5527 +#: sql_help.c:5531 msgid "remove database objects owned by a database role" msgstr "ta bort databasobjekt som ägs av databasroll" -#: sql_help.c:5533 +#: sql_help.c:5537 msgid "remove a row level security policy from a table" msgstr "ta bort en säkerhetspolicy på radnivå från en tabell" -#: sql_help.c:5539 +#: sql_help.c:5543 msgid "remove a procedure" msgstr "ta bort en procedur" -#: sql_help.c:5545 +#: sql_help.c:5549 msgid "remove a publication" msgstr "ta bort en publicering" -#: sql_help.c:5557 +#: sql_help.c:5561 msgid "remove a routine" msgstr "ta bort en rutin" -#: sql_help.c:5563 +#: sql_help.c:5567 msgid "remove a rewrite rule" msgstr "ta bort en omskrivningsregel" -#: sql_help.c:5569 +#: sql_help.c:5573 msgid "remove a schema" msgstr "ta bort ett schema" -#: sql_help.c:5575 +#: sql_help.c:5579 msgid "remove a sequence" msgstr "ta bort en sekvens" -#: sql_help.c:5581 +#: sql_help.c:5585 msgid "remove a foreign server descriptor" msgstr "ta bort en främmande server-deskriptor" -#: sql_help.c:5587 +#: sql_help.c:5591 msgid "remove extended statistics" msgstr "ta bort utökad statistik" -#: sql_help.c:5593 +#: sql_help.c:5597 msgid "remove a subscription" msgstr "ta bort en prenumeration" -#: sql_help.c:5599 +#: sql_help.c:5603 msgid "remove a table" msgstr "ta bort en tabell" -#: sql_help.c:5605 +#: sql_help.c:5609 msgid "remove a tablespace" msgstr "ta bort ett tabellutrymme" -#: sql_help.c:5611 +#: sql_help.c:5615 msgid "remove a text search configuration" msgstr "ta bort en textsökkonfiguration" -#: sql_help.c:5617 +#: sql_help.c:5621 msgid "remove a text search dictionary" msgstr "ta bort en textsökordlista" -#: sql_help.c:5623 +#: sql_help.c:5627 msgid "remove a text search parser" msgstr "ta bort en textsökparser" -#: sql_help.c:5629 +#: sql_help.c:5633 msgid "remove a text search template" msgstr "ta bort en textsökmall" -#: sql_help.c:5635 +#: sql_help.c:5639 msgid "remove a transform" msgstr "ta bort en transform" -#: sql_help.c:5641 +#: sql_help.c:5645 msgid "remove a trigger" msgstr "ta bort en utlösare" -#: sql_help.c:5647 +#: sql_help.c:5651 msgid "remove a data type" msgstr "ta bort en datatyp" -#: sql_help.c:5659 +#: sql_help.c:5663 msgid "remove a user mapping for a foreign server" msgstr "ta bort en användarmappning för en främmande server" -#: sql_help.c:5665 +#: sql_help.c:5669 msgid "remove a view" msgstr "ta bort en vy" -#: sql_help.c:5677 +#: sql_help.c:5681 msgid "execute a prepared statement" msgstr "utför en förberedd sats" -#: sql_help.c:5683 +#: sql_help.c:5687 msgid "show the execution plan of a statement" msgstr "visa körningsplanen för en sats" -#: sql_help.c:5689 +#: sql_help.c:5693 msgid "retrieve rows from a query using a cursor" msgstr "hämta rader från en fråga med hjälp av en markör" -#: sql_help.c:5695 +#: sql_help.c:5699 msgid "define access privileges" msgstr "definera åtkomsträttigheter" -#: sql_help.c:5701 +#: sql_help.c:5705 msgid "import table definitions from a foreign server" msgstr "importera tabelldefinitioner från en främmande server" -#: sql_help.c:5707 +#: sql_help.c:5711 msgid "create new rows in a table" msgstr "skapa nya rader i en tabell" -#: sql_help.c:5713 +#: sql_help.c:5717 msgid "listen for a notification" msgstr "lyssna efter notifiering" -#: sql_help.c:5719 +#: sql_help.c:5723 msgid "load a shared library file" msgstr "ladda en delad biblioteksfil (shared library)" -#: sql_help.c:5725 +#: sql_help.c:5729 msgid "lock a table" msgstr "lås en tabell" -#: sql_help.c:5731 +#: sql_help.c:5735 msgid "position a cursor" msgstr "flytta en markör" -#: sql_help.c:5737 +#: sql_help.c:5741 msgid "generate a notification" msgstr "generera en notifiering" -#: sql_help.c:5743 +#: sql_help.c:5747 msgid "prepare a statement for execution" msgstr "förbered en sats för körning" -#: sql_help.c:5749 +#: sql_help.c:5753 msgid "prepare the current transaction for two-phase commit" msgstr "avbryt aktuell transaktion för två-fas-commit" -#: sql_help.c:5755 +#: sql_help.c:5759 msgid "change the ownership of database objects owned by a database role" msgstr "byt ägare på databasobjekt som ägs av en databasroll" -#: sql_help.c:5761 +#: sql_help.c:5765 msgid "replace the contents of a materialized view" msgstr "ersätt innehållet av en materialiserad vy" -#: sql_help.c:5767 +#: sql_help.c:5771 msgid "rebuild indexes" msgstr "återskapa index" -#: sql_help.c:5773 +#: sql_help.c:5777 msgid "destroy a previously defined savepoint" msgstr "ta bort en tidigare definierad sparpunkt" -#: sql_help.c:5779 +#: sql_help.c:5783 msgid "restore the value of a run-time parameter to the default value" msgstr "återställ värde av körningsparameter till standardvärdet" -#: sql_help.c:5785 +#: sql_help.c:5789 msgid "remove access privileges" msgstr "ta bort åtkomsträttigheter" -#: sql_help.c:5797 +#: sql_help.c:5801 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "avbryt en transaktion som tidigare förberetts för två-fas-commit" -#: sql_help.c:5803 +#: sql_help.c:5807 msgid "roll back to a savepoint" msgstr "rulla tillbaka till sparpunkt" -#: sql_help.c:5809 +#: sql_help.c:5813 msgid "define a new savepoint within the current transaction" msgstr "definera en ny sparpunkt i den aktuella transaktionen" -#: sql_help.c:5815 +#: sql_help.c:5819 msgid "define or change a security label applied to an object" msgstr "definiera eller ändra en säkerhetsetikett på ett objekt" -#: sql_help.c:5821 sql_help.c:5875 sql_help.c:5911 +#: sql_help.c:5825 sql_help.c:5879 sql_help.c:5915 msgid "retrieve rows from a table or view" msgstr "hämta rader från en tabell eller vy" -#: sql_help.c:5833 +#: sql_help.c:5837 msgid "change a run-time parameter" msgstr "ändra en körningsparameter" -#: sql_help.c:5839 +#: sql_help.c:5843 msgid "set constraint check timing for the current transaction" msgstr "sätt integritetsvillkorstiming för nuvarande transaktion" -#: sql_help.c:5845 +#: sql_help.c:5849 msgid "set the current user identifier of the current session" msgstr "sätt användare för den aktiva sessionen" -#: sql_help.c:5851 +#: sql_help.c:5855 msgid "set the session user identifier and the current user identifier of the current session" msgstr "sätt sessionsanvändaridentifierare och nuvarande användaridentifierare för den aktiva sessionen" -#: sql_help.c:5857 +#: sql_help.c:5861 msgid "set the characteristics of the current transaction" msgstr "sätt inställningar för nuvarande transaktionen" -#: sql_help.c:5863 +#: sql_help.c:5867 msgid "show the value of a run-time parameter" msgstr "visa värde på en körningsparameter" -#: sql_help.c:5881 +#: sql_help.c:5885 msgid "empty a table or set of tables" msgstr "töm en eller flera tabeller" -#: sql_help.c:5887 +#: sql_help.c:5891 msgid "stop listening for a notification" msgstr "sluta att lyssna efter notifiering" -#: sql_help.c:5893 +#: sql_help.c:5897 msgid "update rows of a table" msgstr "uppdatera rader i en tabell" -#: sql_help.c:5899 +#: sql_help.c:5903 msgid "garbage-collect and optionally analyze a database" msgstr "skräpsamla och eventuellt analysera en databas" -#: sql_help.c:5905 +#: sql_help.c:5909 msgid "compute a set of rows" msgstr "beräkna en mängd rader" @@ -6315,11 +6321,6 @@ msgid "-1 can only be used in non-interactive mode" msgstr "-1 kan bara användas i icke-interaktivt läge" -#: startup.c:299 -#, c-format -msgid "could not connect to server: %s" -msgstr "kunde inte ansluta till server: %s" - #: startup.c:327 #, c-format msgid "could not open log file \"%s\": %m" @@ -6354,7 +6355,7 @@ msgid "could not find own program executable" msgstr "kunde inte hitta det egna programmets körbara fil" -#: tab-complete.c:4640 +#: tab-complete.c:4681 #, c-format msgid "" "tab completion query failed: %s\n" @@ -6380,7 +6381,7 @@ msgid "invalid variable name: \"%s\"" msgstr "ogiltigt variabelnamn: \"%s\"" -#: variables.c:393 +#: variables.c:419 #, c-format msgid "" "unrecognized value \"%s\" for \"%s\"\n" @@ -6388,15 +6389,3 @@ msgstr "" "okänt värde \"%s\" för \"%s\"\n" "Tillgängliga värden är: %s." - -#~ msgid "Opfamily Name" -#~ msgstr "Opfamiljenamn" - -#~ msgid "Proc name" -#~ msgstr "Proc-namn" - -#~ msgid "List of procedures of operator families" -#~ msgstr "Lista med procedurer i operatorfamilj" - -#~ msgid " \\g with no arguments is equivalent to a semicolon\n" -#~ msgstr " \\g utan argument är ekvivalent med ett semikolon\n" diff -Nru postgresql-13-13.4/src/bin/psql/sql_help.c postgresql-13-13.7/src/bin/psql/sql_help.c --- postgresql-13-13.4/src/bin/psql/sql_help.c 2021-08-09 21:03:34.000000000 +0000 +++ postgresql-13-13.7/src/bin/psql/sql_help.c 2022-05-09 21:29:48.000000000 +0000 @@ -653,6 +653,7 @@ " ALTER [ COLUMN ] %s SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }\n" " CLUSTER ON %s\n" " SET WITHOUT CLUSTER\n" + " SET TABLESPACE %s\n" " SET ( %s [= %s] [, ... ] )\n" " RESET ( %s [, ... ] )\n" " OWNER TO { %s | CURRENT_USER | SESSION_USER }", @@ -680,6 +681,7 @@ _("attribute_option"), _("column_name"), _("index_name"), + _("new_tablespace"), _("storage_parameter"), _("value"), _("storage_parameter"), @@ -2170,11 +2172,12 @@ appendPQExpBuffer(buf, "CREATE EVENT TRIGGER %s\n" " ON %s\n" - " [ WHEN %s IN (filter_value [, ... ]) [ AND ... ] ]\n" + " [ WHEN %s IN (%s [, ... ]) [ AND ... ] ]\n" " EXECUTE { FUNCTION | PROCEDURE } %s()", _("name"), _("event"), _("filter_variable"), + _("filter_value"), _("function_name")); } @@ -4912,7 +4915,7 @@ N_("change the definition of a materialized view"), "sql-altermaterializedview", sql_help_ALTER_MATERIALIZED_VIEW, - 23 }, + 24 }, { "ALTER OPERATOR", N_("change the definition of an operator"), diff -Nru postgresql-13-13.4/src/bin/psql/t/010_tab_completion.pl postgresql-13-13.7/src/bin/psql/t/010_tab_completion.pl --- postgresql-13-13.4/src/bin/psql/t/010_tab_completion.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/psql/t/010_tab_completion.pl 2022-05-09 21:16:30.000000000 +0000 @@ -39,7 +39,8 @@ $node->safe_psql('postgres', "CREATE TABLE tab1 (f1 int, f2 text);\n" . "CREATE TABLE mytab123 (f1 int, f2 text);\n" - . "CREATE TABLE mytab246 (f1 int, f2 text);\n"); + . "CREATE TABLE mytab246 (f1 int, f2 text);\n" + . "CREATE TYPE enum1 AS ENUM ('foo', 'bar', 'baz');\n"); # Developers would not appreciate this test adding a bunch of junk to # their ~/.psql_history, so be sure to redirect history into a temp file. @@ -88,7 +89,7 @@ my $in = ''; my $out = ''; -my $timer = timer(5); +my $timer = timer($TestLib::timeout_default); my $h = $node->interactive_psql('postgres', \$in, \$out, $timer); @@ -105,7 +106,7 @@ # reset output collector $out = ""; # restart per-command timer - $timer->start(5); + $timer->start($TestLib::timeout_default); # send the data to be sent $in .= $send; # wait ... @@ -124,6 +125,8 @@ # (won't work if we are inside a string literal!) sub clear_query { + local $Test::Builder::Level = $Test::Builder::Level + 1; + check_completion("\\r\n", qr/postgres=# /, "\\r works"); return; } @@ -133,6 +136,8 @@ # than clear_query because we lose evidence in the history file) sub clear_line { + local $Test::Builder::Level = $Test::Builder::Level + 1; + check_completion("\025\n", qr/postgres=# /, "control-U works"); return; } @@ -216,8 +221,18 @@ clear_line(); +# check enum label completion +# some versions of readline/libedit require two tabs here, some only need one +# also, some versions will offer quotes, some will not +check_completion( + "ALTER TYPE enum1 RENAME VALUE 'ba\t\t", + qr|'?bar'? +'?baz'?|, + "offer multiple enum choices"); + +clear_line(); + # send psql an explicit \q to shut it down, else pty won't close properly -$timer->start(5); +$timer->start($TestLib::timeout_default); $in .= "\\q\n"; finish $h or die "psql returned $?"; $timer->reset; diff -Nru postgresql-13-13.4/src/bin/psql/tab-complete.c postgresql-13-13.7/src/bin/psql/tab-complete.c --- postgresql-13-13.4/src/bin/psql/tab-complete.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/psql/tab-complete.c 2022-05-09 21:16:30.000000000 +0000 @@ -280,25 +280,40 @@ matches = rl_completion_matches(text, complete_from_query); \ } while (0) +/* + * libedit will typically include the literal's leading single quote in + * "text", while readline will not. Adapt our offered strings to fit. + * But include a quote if there's not one just before "text", to get the + * user off to the right start. + */ #define COMPLETE_WITH_ENUM_VALUE(type) \ do { \ char *_completion_schema; \ char *_completion_type; \ + bool use_quotes; \ \ _completion_schema = strtokx(type, " \t\n\r", ".", "\"", 0, \ false, false, pset.encoding); \ (void) strtokx(NULL, " \t\n\r", ".", "\"", 0, \ false, false, pset.encoding); \ _completion_type = strtokx(NULL, " \t\n\r", ".", "\"", 0, \ - false, false, pset.encoding); \ - if (_completion_type == NULL)\ + false, false, pset.encoding); \ + use_quotes = (text[0] == '\'' || \ + start == 0 || rl_line_buffer[start - 1] != '\''); \ + if (_completion_type == NULL) \ { \ - completion_charp = Query_for_list_of_enum_values; \ + if (use_quotes) \ + completion_charp = Query_for_list_of_enum_values_quoted; \ + else \ + completion_charp = Query_for_list_of_enum_values_unquoted; \ completion_info_charp = type; \ } \ else \ { \ - completion_charp = Query_for_list_of_enum_values_with_schema; \ + if (use_quotes) \ + completion_charp = Query_for_list_of_enum_values_with_schema_quoted; \ + else \ + completion_charp = Query_for_list_of_enum_values_with_schema_unquoted; \ completion_info_charp = _completion_type; \ completion_info_charp2 = _completion_schema; \ } \ @@ -654,7 +669,7 @@ " AND (pg_catalog.quote_ident(nspname)='%s' "\ " OR '\"' || nspname || '\"' ='%s') " -#define Query_for_list_of_enum_values \ +#define Query_for_list_of_enum_values_quoted \ "SELECT pg_catalog.quote_literal(enumlabel) "\ " FROM pg_catalog.pg_enum e, pg_catalog.pg_type t "\ " WHERE t.oid = e.enumtypid "\ @@ -663,7 +678,16 @@ " OR '\"' || typname || '\"'='%s') "\ " AND pg_catalog.pg_type_is_visible(t.oid)" -#define Query_for_list_of_enum_values_with_schema \ +#define Query_for_list_of_enum_values_unquoted \ +"SELECT enumlabel "\ +" FROM pg_catalog.pg_enum e, pg_catalog.pg_type t "\ +" WHERE t.oid = e.enumtypid "\ +" AND substring(enumlabel,1,%d)='%s' "\ +" AND (pg_catalog.quote_ident(typname)='%s' "\ +" OR '\"' || typname || '\"'='%s') "\ +" AND pg_catalog.pg_type_is_visible(t.oid)" + +#define Query_for_list_of_enum_values_with_schema_quoted \ "SELECT pg_catalog.quote_literal(enumlabel) "\ " FROM pg_catalog.pg_enum e, pg_catalog.pg_type t, pg_catalog.pg_namespace n "\ " WHERE t.oid = e.enumtypid "\ @@ -674,6 +698,17 @@ " AND (pg_catalog.quote_ident(nspname)='%s' "\ " OR '\"' || nspname || '\"' ='%s') " +#define Query_for_list_of_enum_values_with_schema_unquoted \ +"SELECT enumlabel "\ +" FROM pg_catalog.pg_enum e, pg_catalog.pg_type t, pg_catalog.pg_namespace n "\ +" WHERE t.oid = e.enumtypid "\ +" AND n.oid = t.typnamespace "\ +" AND substring(enumlabel,1,%d)='%s' "\ +" AND (pg_catalog.quote_ident(typname)='%s' "\ +" OR '\"' || typname || '\"'='%s') "\ +" AND (pg_catalog.quote_ident(nspname)='%s' "\ +" OR '\"' || nspname || '\"' ='%s') " + #define Query_for_list_of_template_databases \ "SELECT pg_catalog.quote_ident(d.datname) "\ " FROM pg_catalog.pg_database d "\ @@ -3934,9 +3969,13 @@ if (matches == NULL) { COMPLETE_WITH_CONST(true, ""); + /* Also, prevent Readline from appending stuff to the non-match */ #ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER rl_completion_append_character = '\0'; #endif +#ifdef HAVE_RL_COMPLETION_SUPPRESS_QUOTE + rl_completion_suppress_quote = 1; +#endif } /* free storage */ diff -Nru postgresql-13-13.4/src/bin/scripts/po/de.po postgresql-13-13.7/src/bin/scripts/po/de.po --- postgresql-13-13.4/src/bin/scripts/po/de.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/scripts/po/de.po 2022-05-09 21:16:30.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-07-22 03:58+0000\n" -"PO-Revision-Date: 2021-04-18 21:32+0200\n" +"POT-Creation-Date: 2021-11-05 15:58+0000\n" +"PO-Revision-Date: 2021-11-06 10:46+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -937,8 +937,8 @@ #: reindexdb.c:760 #, c-format -msgid " -s, --system reindex system catalogs\n" -msgstr " -s, --system Systemkataloge reindizieren\n" +msgid " -s, --system reindex system catalogs only\n" +msgstr " -s, --system nur Systemkataloge reindizieren\n" #: reindexdb.c:761 #, c-format diff -Nru postgresql-13-13.4/src/bin/scripts/po/fr.po postgresql-13-13.7/src/bin/scripts/po/fr.po --- postgresql-13-13.4/src/bin/scripts/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/scripts/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: PostgreSQL 12\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-05-27 12:00+0000\n" -"PO-Revision-Date: 2021-05-28 15:24+0200\n" +"POT-Creation-Date: 2021-10-28 16:28+0000\n" +"PO-Revision-Date: 2021-10-29 16:17+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: PostgreSQLfr \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.3\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../../src/common/logging.c:236 @@ -58,7 +58,7 @@ #: ../../common/username.c:60 #, c-format msgid "user name lookup failure: error code %lu" -msgstr "échec lors de la recherche du nom d'utilisateur : code erreur %lu" +msgstr "échec de la recherche du nom d'utilisateur : code d'erreur %lu" #: ../../fe_utils/cancel.c:161 ../../fe_utils/cancel.c:206 msgid "Cancel request sent\n" @@ -144,8 +144,8 @@ "%s clusters all previously clustered tables in a database.\n" "\n" msgstr "" -"%s réorganise toutes les tables précédemment réorganisées au sein d'une base\n" -"de données via la commande CLUSTER.\n" +"%s réorganise toutes les tables précédemment réorganisées au sein d'une\n" +"base de données via la commande CLUSTER.\n" "\n" #: clusterdb.c:266 createdb.c:266 createuser.c:354 dropdb.c:170 dropuser.c:170 @@ -157,7 +157,7 @@ #: clusterdb.c:267 reindexdb.c:751 vacuumdb.c:912 #, c-format msgid " %s [OPTION]... [DBNAME]\n" -msgstr " %s [OPTION]... [NOMBASE]\n" +msgstr " %s [OPTION]... [BASE]\n" #: clusterdb.c:268 createdb.c:268 createuser.c:356 dropdb.c:172 dropuser.c:172 #: pg_isready.c:227 reindexdb.c:752 vacuumdb.c:913 @@ -172,12 +172,12 @@ #: clusterdb.c:269 #, c-format msgid " -a, --all cluster all databases\n" -msgstr " -a, --all réorganise toutes les bases de données\n" +msgstr " -a, --all réorganise toutes les bases de données\n" #: clusterdb.c:270 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" -msgstr " -d, --dbname=NOMBASE base de données à réorganiser\n" +msgstr " -d, --dbname=BASE base de données à réorganiser\n" #: clusterdb.c:271 createuser.c:360 dropdb.c:173 dropuser.c:173 reindexdb.c:756 #, c-format @@ -187,27 +187,27 @@ #: clusterdb.c:272 reindexdb.c:759 #, c-format msgid " -q, --quiet don't write any messages\n" -msgstr " -q, --quiet n'écrit aucun message\n" +msgstr " -q, --quiet n'écrit aucun message\n" #: clusterdb.c:273 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" -msgstr " -t, --table=TABLE réorganise uniquement cette(ces) table(s)\n" +msgstr " -t, --table=TABLE réorganise uniquement cette table\n" #: clusterdb.c:274 reindexdb.c:763 #, c-format msgid " -v, --verbose write a lot of output\n" -msgstr " -v, --verbose mode verbeux\n" +msgstr " -v, --verbose mode verbeux\n" #: clusterdb.c:275 createuser.c:372 dropdb.c:176 dropuser.c:176 reindexdb.c:764 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: clusterdb.c:276 createuser.c:377 dropdb.c:178 dropuser.c:178 reindexdb.c:765 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" #: clusterdb.c:277 createdb.c:279 createuser.c:378 dropdb.c:179 dropuser.c:179 #: pg_isready.c:233 reindexdb.c:766 vacuumdb.c:934 @@ -224,7 +224,7 @@ #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=HOTE hôte du serveur de bases de données ou\n" +" -h, --host=HÔTE hôte du serveur de bases de données ou\n" " répertoire des sockets\n" #: clusterdb.c:279 createuser.c:380 dropdb.c:181 dropuser.c:181 reindexdb.c:768 @@ -236,24 +236,24 @@ #: clusterdb.c:280 dropdb.c:182 reindexdb.c:769 vacuumdb.c:937 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" -msgstr " -U, --username=NOMUTILISATEUR nom d'utilisateur pour la connexion\n" +msgstr " -U, --username=UTILISATEUR nom d'utilisateur pour la connexion\n" #: clusterdb.c:281 createuser.c:382 dropdb.c:183 dropuser.c:183 reindexdb.c:770 #: vacuumdb.c:938 #, c-format msgid " -w, --no-password never prompt for password\n" -msgstr " -w, --no-password empêche la demande d'un mot de passe\n" +msgstr " -w, --no-password empêche la demande d'un mot de passe\n" #: clusterdb.c:282 createuser.c:383 dropdb.c:184 dropuser.c:184 reindexdb.c:771 #: vacuumdb.c:939 #, c-format msgid " -W, --password force password prompt\n" -msgstr " -W, --password force la demande d'un mot de passe\n" +msgstr " -W, --password force la demande d'un mot de passe\n" #: clusterdb.c:283 dropdb.c:185 reindexdb.c:772 vacuumdb.c:940 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" -msgstr " --maintenance-db=NOM_BASE indique une autre base par défaut\n" +msgstr " --maintenance-db=BASE indique une autre base par défaut\n" #: clusterdb.c:284 #, c-format @@ -278,38 +278,38 @@ #: pg_isready.c:239 reindexdb.c:775 vacuumdb.c:943 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" -#: common.c:80 common.c:138 +#: common.c:82 common.c:140 msgid "Password: " msgstr "Mot de passe : " -#: common.c:125 +#: common.c:127 #, c-format msgid "could not connect to database %s: out of memory" msgstr "n'a pas pu se connecter à la base de données %s : plus de mémoire" -#: common.c:152 +#: common.c:154 #, c-format msgid "could not connect to database %s: %s" msgstr "n'a pas pu se connecter à la base de données %s : %s" -#: common.c:231 common.c:256 +#: common.c:233 common.c:258 #, c-format msgid "query failed: %s" msgstr "échec de la requête : %s" -#: common.c:232 common.c:257 +#: common.c:234 common.c:259 #, c-format msgid "query was: %s" msgstr "la requête était : %s" -#: common.c:329 +#: common.c:331 #, c-format msgid "processing of database \"%s\" failed: %s" msgstr "le traitement de la base de données « %s » a échoué : %s" -#: common.c:423 +#: common.c:425 #, c-format msgid "query returned %d row instead of one: %s" msgid_plural "query returned %d rows instead of one: %s" @@ -317,23 +317,23 @@ msgstr[1] "la requête a renvoyé %d lignes au lieu d'une seule : %s" #. translator: abbreviation for "yes" -#: common.c:447 +#: common.c:449 msgid "y" msgstr "o" #. translator: abbreviation for "no" -#: common.c:449 +#: common.c:451 msgid "n" msgstr "n" #. translator: This is a question followed by the translated options for #. "yes" and "no". -#: common.c:459 +#: common.c:461 #, c-format msgid "%s (%s/%s) " msgstr "%s (%s/%s) " -#: common.c:473 +#: common.c:475 #, c-format msgid "Please answer \"%s\" or \"%s\".\n" msgstr "Merci de répondre « %s » ou « %s ».\n" @@ -375,7 +375,7 @@ #: createdb.c:267 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" -msgstr " %s [OPTION]... [NOMBASE] [DESCRIPTION]\n" +msgstr " %s [OPTION]... [BASE] [DESCRIPTION]\n" #: createdb.c:269 #, c-format @@ -390,14 +390,12 @@ #: createdb.c:271 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" -msgstr " -E, --encoding=ENC encodage de la base de données\n" +msgstr " -E, --encoding=ENCODAGE encodage de la base de données\n" #: createdb.c:272 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" -msgstr "" -" -l, --locale=LOCALE paramètre de la locale pour la base de\n" -" données\n" +msgstr " -l, --locale=LOCALE paramètre de la locale pour la base de données\n" #: createdb.c:273 #, c-format @@ -424,18 +422,18 @@ #: createdb.c:277 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: createdb.c:278 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" #: createdb.c:280 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=HOTE hôte du serveur de bases de données\n" +" -h, --host=HÔTE hôte du serveur de bases de données\n" " ou répertoire des sockets\n" #: createdb.c:281 @@ -446,7 +444,7 @@ #: createdb.c:282 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" -msgstr " -U, --username=NOMUTILISATEUR nom d'utilisateur pour la connexion\n" +msgstr " -U, --username=UTILISATEUR nom d'utilisateur pour la connexion\n" #: createdb.c:283 #, c-format @@ -461,7 +459,7 @@ #: createdb.c:285 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" -msgstr " --maintenance-db=NOM_BASE indique une autre base par défaut\n" +msgstr " --maintenance-db=BASE indique une autre base par défaut\n" #: createdb.c:286 #, c-format @@ -487,7 +485,7 @@ #: createuser.c:214 msgid "Enter it again: " -msgstr "Le saisir de nouveau : " +msgstr "Saisir le mot de passe à nouveau : " #: createuser.c:217 #, c-format @@ -528,33 +526,31 @@ #: createuser.c:355 dropuser.c:171 #, c-format msgid " %s [OPTION]... [ROLENAME]\n" -msgstr " %s [OPTION]... [NOMROLE]\n" +msgstr " %s [OPTION]... [RÔLE]\n" #: createuser.c:357 #, c-format msgid " -c, --connection-limit=N connection limit for role (default: no limit)\n" msgstr "" -" -c, --connection-limit=N nombre maximal de connexions pour le rôle\n" -" (par défaut sans limite)\n" +" -c, --connection-limit=N nombre maximum de connexions pour le rôle (par\n" +" défaut sans limite)\n" #: createuser.c:358 #, c-format msgid " -d, --createdb role can create new databases\n" -msgstr "" -" -d, --createdb l'utilisateur peut créer des bases de\n" -" données\n" +msgstr " -d, --createdb l'utilisateur peut créer des bases de données\n" #: createuser.c:359 #, c-format msgid " -D, --no-createdb role cannot create databases (default)\n" msgstr "" -" -D, --no-createdb le rôle ne peut pas créer de bases de\n" -" données (par défaut)\n" +" -D, --no-createdb le rôle ne peut pas créer de bases de données\n" +" (par défaut)\n" #: createuser.c:361 #, c-format msgid " -g, --role=ROLE new role will be a member of this role\n" -msgstr " -g, --role=ROLE le nouveau rôle sera un membre de ce rôle\n" +msgstr " -g, --role=RÔLE le nouveau rôle sera un membre de ce rôle\n" #: createuser.c:362 #, c-format @@ -603,7 +599,9 @@ #: createuser.c:371 #, c-format msgid " -S, --no-superuser role will not be superuser (default)\n" -msgstr " -S, --no-superuser le rôle ne sera pas super-utilisateur (par défaut)\n" +msgstr "" +" -S, --no-superuser le rôle ne sera pas super-utilisateur (par\n" +" défaut)\n" #: createuser.c:373 #, c-format @@ -611,28 +609,28 @@ " --interactive prompt for missing role name and attributes rather\n" " than using defaults\n" msgstr "" -" --interactive demande le nom du rôle et les attributs\n" -" plutôt qu'utiliser des valeurs par défaut\n" +" --interactive demande le nom du rôle et les attributs plutôt\n" +" qu'utiliser des valeurs par défaut\n" #: createuser.c:375 #, c-format msgid " --replication role can initiate replication\n" msgstr "" -" --replication le rôle peut initier une connexion de\n" -" réplication\n" +" --replication le rôle peut initier une connexion de\n" +" réplication\n" #: createuser.c:376 #, c-format msgid " --no-replication role cannot initiate replication\n" msgstr "" -" --no-replication le rôle ne peut pas initier de connexion de\n" -" réplication\n" +" --no-replication le rôle ne peut pas initier de connexion de\n" +" réplication\n" #: createuser.c:381 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to create)\n" msgstr "" -" -U, --username=NOMUTILISATEUR nom de l'utilisateur pour la connexion (pas\n" +" -U, --username=UTILISATEUR nom de l'utilisateur pour la connexion (pas\n" " celui à créer)\n" #: dropdb.c:110 @@ -666,26 +664,26 @@ #: dropdb.c:171 #, c-format msgid " %s [OPTION]... DBNAME\n" -msgstr " %s [OPTION]... NOMBASE\n" +msgstr " %s [OPTION]... BASE\n" #: dropdb.c:174 #, c-format msgid " -f, --force try to terminate other connections before dropping\n" -msgstr " -f, --force essaie d'arrêter les autres connexions avant de supprimer\n" +msgstr "" +" -f, --force essaie d'arrêter les autres connexions avant de\n" +" supprimer\n" #: dropdb.c:175 #, c-format msgid " -i, --interactive prompt before deleting anything\n" msgstr "" -" -i, --interactive demande confirmation avant de supprimer quoi que\n" -" ce soit\n" +" -i, --interactive demande confirmation avant de supprimer quoi\n" +" que ce soit\n" #: dropdb.c:177 #, c-format msgid " --if-exists don't report error if database doesn't exist\n" -msgstr "" -" --if-exists ne renvoie pas d'erreur si la base\n" -" n'existe pas\n" +msgstr " --if-exists ne renvoie pas d'erreur si la base n'existe pas\n" #: dropuser.c:116 msgid "Enter name of role to drop: " @@ -721,22 +719,22 @@ " -i, --interactive prompt before deleting anything, and prompt for\n" " role name if not specified\n" msgstr "" -" -i, --interactive demande confirmation avant de supprimer quoi que\n" -" ce soit, et demande le nom du rôle s'il n'est pas\n" -" indiqué\n" +" -i, --interactive demande confirmation avant de supprimer quoi\n" +" que ce soit, et demande le nom du rôle s'il\n" +" n'est pas indiqué\n" #: dropuser.c:177 #, c-format msgid " --if-exists don't report error if user doesn't exist\n" msgstr "" -" --if-exists ne renvoie pas d'erreur si l'utilisateur\n" -" n'existe pas\n" +" --if-exists ne renvoie pas d'erreur si l'utilisateur\n" +" n'existe pas\n" #: dropuser.c:182 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to drop)\n" msgstr "" -" -U, --username=NOMUTILISATEUR nom de l'utilisateur pour la connexion (pas\n" +" -U, --username=UTILISATEUR nom de l'utilisateur pour la connexion (pas\n" " celui à supprimer)\n" #: pg_isready.c:144 @@ -780,7 +778,7 @@ "%s issues a connection check to a PostgreSQL database.\n" "\n" msgstr "" -"%s produitun test de connexion à une base de données PostgreSQL.\n" +"%s réalise un test de connexion à une base de données PostgreSQL.\n" "\n" #: pg_isready.c:225 @@ -791,46 +789,46 @@ #: pg_isready.c:228 #, c-format msgid " -d, --dbname=DBNAME database name\n" -msgstr " -d, --dbname=NOMBASE base de données\n" +msgstr " -d, --dbname=BASE base de données\n" #: pg_isready.c:229 #, c-format msgid " -q, --quiet run quietly\n" -msgstr " -q, --quiet s'exécute sans affichage\n" +msgstr " -q, --quiet s'exécute sans affichage\n" #: pg_isready.c:230 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: pg_isready.c:231 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" #: pg_isready.c:234 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=NOMHÔTE hôte du serveur de bases de données ou\n" -" répertoire des sockets\n" +" -h, --host=HÔTE hôte du serveur de bases de données ou\n" +" répertoire des sockets\n" #: pg_isready.c:235 #, c-format msgid " -p, --port=PORT database server port\n" -msgstr " -p, --port=PORT port du serveur de bases de données\n" +msgstr " -p, --port=PORT port du serveur de bases de données\n" #: pg_isready.c:236 #, c-format msgid " -t, --timeout=SECS seconds to wait when attempting connection, 0 disables (default: %s)\n" msgstr "" -" -t, --timeout=SECS durée en secondes à attendre lors d'une tentative de connexion\n" -" 0 pour désactiver (défaut: %s)\n" +" -t, --timeout=SECS durée en secondes à attendre lors d'une tentative\n" +" de connexion ; 0 pour désactiver (défaut: %s)\n" #: pg_isready.c:237 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" -msgstr " -U, --username=NOMUTILISATEUR nom d'utilisateur pour la connexion\n" +msgstr " -U, --username=UTILISATEUR nom d'utilisateur pour la connexion\n" #: reindexdb.c:152 vacuumdb.c:184 #, c-format @@ -940,44 +938,44 @@ #: reindexdb.c:753 #, c-format msgid " -a, --all reindex all databases\n" -msgstr " -a, --all réindexe toutes les bases de données\n" +msgstr " -a, --all réindexe toutes les bases de données\n" #: reindexdb.c:754 #, c-format msgid " --concurrently reindex concurrently\n" -msgstr " --concurrently réindexation en concurrence\n" +msgstr " --concurrently réindexation en concurrence\n" #: reindexdb.c:755 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" -msgstr " -d, --dbname=NOMBASE base de données à réindexer\n" +msgstr " -d, --dbname=BASE réindexe tous les index de cette base\n" #: reindexdb.c:757 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" -msgstr " -i, --index=INDEX recrée uniquement cet (ces) index\n" +msgstr " -i, --index=INDEX réindexe uniquement cet index\n" #: reindexdb.c:758 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n" msgstr "" -" -j, --jobs=NUM utilise ce nombre de connexions concurrentes pour\n" -" le REINDEX\n" +" -j, --jobs=NOMBRE utilise ce nombre de connexions concurrentes\n" +" pour la réindexation\n" #: reindexdb.c:760 #, c-format -msgid " -s, --system reindex system catalogs\n" -msgstr " -s, --system réindexe les catalogues système\n" +msgid " -s, --system reindex system catalogs only\n" +msgstr " -s, --system réindexe seulement les catalogues système\n" #: reindexdb.c:761 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" -msgstr " -S, --schema=SCHEMA réindexe seulement le(s) schéma(s) indiqué(s)\n" +msgstr " -S, --schema=SCHEMA réindexe seulement le schéma indiqué\n" #: reindexdb.c:762 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" -msgstr " -t, --table=TABLE réindexe uniquement cette (ces) table(s)\n" +msgstr " -t, --table=TABLE réindexe seulement la table indiquée\n" #: reindexdb.c:773 #, c-format @@ -1072,14 +1070,12 @@ #: vacuumdb.c:914 #, c-format msgid " -a, --all vacuum all databases\n" -msgstr "" -" -a, --all exécute VACUUM sur toutes les bases de\n" -" données\n" +msgstr " -a, --all exécute VACUUM sur toutes les bases de données\n" #: vacuumdb.c:915 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" -msgstr " -d, --dbname=NOMBASE exécute VACUUM sur cette base de données\n" +msgstr " -d, --dbname=BASE exécute VACUUM sur cette base de données\n" #: vacuumdb.c:916 #, c-format @@ -1100,30 +1096,36 @@ #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr "" -" -F, --freeze gèle les informations de transactions des\n" -" lignes\n" +" -F, --freeze gèle les informations de transactions des\n" +" lignes\n" #: vacuumdb.c:920 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to vacuum\n" msgstr "" -" -j, --jobs=NUMERO utilise ce nombre de connexions concurrentes pour\n" -" le VACUUM\n" +" -j, --jobs=NUMERO utilise ce nombre de connexions concurrentes\n" +" pour le VACUUM\n" #: vacuumdb.c:921 #, c-format msgid " --min-mxid-age=MXID_AGE minimum multixact ID age of tables to vacuum\n" -msgstr " --min-mxid-age=MXID_AGE âge minimum des identifiants de multitransactions pour les tables à nettoyer\n" +msgstr "" +" --min-mxid-age=MXID_AGE âge minimum des identifiants de\n" +" multitransactions pour les tables à nettoyer\n" #: vacuumdb.c:922 #, c-format msgid " --min-xid-age=XID_AGE minimum transaction ID age of tables to vacuum\n" -msgstr " --min-xid-age=XID_AGE âge minimum des identifiants de transactions pour les tables à nettoyer\n" +msgstr "" +" --min-xid-age=XID_AGE âge minimum des identifiants de transactions\n" +" pour les tables à nettoyer\n" #: vacuumdb.c:923 #, c-format msgid " -P, --parallel=PARALLEL_WORKERS use this many background workers for vacuum, if available\n" -msgstr " -P, --parallel=PARALLEL_WORKERS utilise ce nombre de processus en tâche de fond pour le VACUUM, si possible\n" +msgstr "" +" -P, --parallel=NOMBRE utilise ce nombre de processus en\n" +" tâche de fond pour le VACUUM, si possible\n" #: vacuumdb.c:924 #, c-format @@ -1148,19 +1150,19 @@ #: vacuumdb.c:928 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" +msgstr " -V, --version affiche la version puis quitte\n" #: vacuumdb.c:929 #, c-format msgid " -z, --analyze update optimizer statistics\n" -msgstr " -z, --analyze met à jour les statistiques de l'optimiseur\n" +msgstr " -z, --analyze met à jour les statistiques de l'optimiseur\n" #: vacuumdb.c:930 #, c-format msgid " -Z, --analyze-only only update optimizer statistics; no vacuum\n" msgstr "" -" -Z, --analyze-only met seulement à jour les statistiques de\n" -" l'optimiseur ; pas de VACUUM\n" +" -Z, --analyze-only met seulement à jour les statistiques de\n" +" l'optimiseur ; pas de VACUUM\n" #: vacuumdb.c:931 #, c-format @@ -1168,14 +1170,14 @@ " --analyze-in-stages only update optimizer statistics, in multiple\n" " stages for faster results; no vacuum\n" msgstr "" -" --analyze-in-stages met seulement à jour les statistiques de\n" -" l'optimiseur, en plusieurs étapes pour de\n" -" meilleurs résultats ; pas de VACUUM\n" +" --analyze-in-stages met seulement à jour les statistiques de\n" +" l'optimiseur, en plusieurs étapes pour de\n" +" meilleurs résultats ; pas de VACUUM\n" #: vacuumdb.c:933 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" +msgstr " -?, --help affiche cette aide puis quitte\n" #: vacuumdb.c:941 #, c-format @@ -1186,159 +1188,159 @@ "\n" "Lire la description de la commande SQL VACUUM pour plus d'informations.\n" -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" +#~ msgid "Could not send cancel request: %s" +#~ msgstr "N'a pas pu envoyer la requête d'annulation : %s" -#~ msgid "reindexing of system catalogs failed: %s" -#~ msgstr "la réindexation des catalogues système a échoué : %s" +#~ msgid "parallel vacuum degree must be a non-negative integer" +#~ msgstr "le degré de parallélisation du VACUUM doit être un entier non négatif" -#~ msgid "%s: invalid socket: %s" -#~ msgstr "%s : socket invalide : %s" +#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" +#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" -#~ msgid "%s: could not obtain information about current user: %s\n" -#~ msgstr "%s : n'a pas pu obtenir les informations concernant l'utilisateur actuel : %s\n" +#~ msgid "%s: query failed: %s" +#~ msgstr "%s : échec de la requête : %s" -#~ msgid "%s: could not get current user name: %s\n" -#~ msgstr "%s : n'a pas pu récupérer le nom de l'utilisateur actuel : %s\n" +#~ msgid "%s: query was: %s\n" +#~ msgstr "%s : la requête était : %s\n" -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version et quitte\n" +#~ msgid "%s: query returned %d row instead of one: %s\n" +#~ msgid_plural "%s: query returned %d rows instead of one: %s\n" +#~ msgstr[0] "%s : la requête a renvoyé %d ligne au lieu d'une seule : %s\n" +#~ msgstr[1] "%s : la requête a renvoyé %d lignes au lieu d'une seule : %s\n" -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide et quitte\n" +#~ msgid "%s: \"%s\" is not a valid encoding name\n" +#~ msgstr "%s : « %s » n'est pas un nom d'encodage valide\n" -#~ msgid "%s: still %s functions declared in language \"%s\"; language not removed\n" -#~ msgstr "" -#~ "%s : il existe encore %s fonctions déclarées dans le langage « %s » ;\n" -#~ "langage non supprimé\n" +#~ msgid "%s: %s" +#~ msgstr "%s : %s" -#~ msgid "" -#~ "\n" -#~ "If one of -d, -D, -r, -R, -s, -S, and ROLENAME is not specified, you will\n" -#~ "be prompted interactively.\n" -#~ msgstr "" -#~ "\n" -#~ "Si une des options -d, -D, -r, -R, -s, -S et NOMROLE n'est pas précisée,\n" -#~ "elle sera demandée interactivement.\n" +#~ msgid "%s: too many parallel jobs requested (maximum: %d)\n" +#~ msgstr "%s : trop de jobs en parallèle demandés (maximum %d)\n" -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version et quitte\n" +#~ msgid "Name" +#~ msgstr "Nom" -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide et quitte\n" +#~ msgid "no" +#~ msgstr "non" -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version et quitte\n" +#~ msgid "yes" +#~ msgstr "oui" -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide et quitte\n" +#~ msgid "Trusted?" +#~ msgstr "De confiance (trusted) ?" -#~ msgid "pg_strdup: cannot duplicate null pointer (internal error)\n" -#~ msgstr "pg_strdup : ne peut pas dupliquer un pointeur nul (erreur interne)\n" +#~ msgid "Procedural Languages" +#~ msgstr "Langages procéduraux" -#~ msgid "%s: out of memory\n" -#~ msgstr "%s : mémoire épuisée\n" +#~ msgid "%s: missing required argument language name\n" +#~ msgstr "%s : argument nom du langage requis mais manquant\n" -#~ msgid "%s: cannot use the \"freeze\" option when performing only analyze\n" -#~ msgstr "" -#~ "%s : ne peut utiliser l'option « freeze » lors de l'exécution d'un ANALYZE\n" -#~ "seul\n" +#~ msgid "%s: language \"%s\" is already installed in database \"%s\"\n" +#~ msgstr "%s : le langage « %s » est déjà installé sur la base de données « %s »\n" -#~ msgid " -d, --dbname=DBNAME database from which to remove the language\n" -#~ msgstr "" -#~ " -d, --dbname=NOMBASE base de données à partir de laquelle\n" -#~ " supprimer le langage\n" +#~ msgid "%s: language installation failed: %s" +#~ msgstr "%s : l'installation du langage a échoué : %s" #~ msgid "" -#~ "%s removes a procedural language from a database.\n" +#~ "%s installs a procedural language into a PostgreSQL database.\n" #~ "\n" #~ msgstr "" -#~ "%s supprime un langage procédural d'une base de données.\n" +#~ "%s installe un langage de procédures dans une base de données PostgreSQL.\n" #~ "\n" -#~ msgid "%s: language removal failed: %s" -#~ msgstr "%s : la suppression du langage a échoué : %s" - -#~ msgid "%s: language \"%s\" is not installed in database \"%s\"\n" -#~ msgstr "%s : le langage « %s » n'est pas installé dans la base de données « %s »\n" - -#~ msgid " -N, --unencrypted do not encrypt stored password\n" -#~ msgstr " -N, --unencrypted ne chiffre pas le mot de passe stocké\n" +#~ msgid " %s [OPTION]... LANGNAME [DBNAME]\n" +#~ msgstr " %s [OPTION]... NOMLANGAGE [BASE]\n" -#~ msgid " -E, --encrypted encrypt stored password\n" -#~ msgstr " -E, --encrypted chiffre le mot de passe stocké\n" +#~ msgid " -d, --dbname=DBNAME database to install language in\n" +#~ msgstr " -d, --dbname=BASE base sur laquelle installer le langage\n" #~ msgid " -l, --list show a list of currently installed languages\n" #~ msgstr "" #~ " -l, --list affiche la liste des langages déjà\n" #~ " installés\n" -#~ msgid " -d, --dbname=DBNAME database to install language in\n" -#~ msgstr " -d, --dbname=NOMBASE base sur laquelle installer le langage\n" +#~ msgid " -E, --encrypted encrypt stored password\n" +#~ msgstr " -E, --encrypted chiffre le mot de passe stocké\n" -#~ msgid " %s [OPTION]... LANGNAME [DBNAME]\n" -#~ msgstr " %s [OPTION]... NOMLANGAGE [NOMBASE]\n" +#~ msgid " -N, --unencrypted do not encrypt stored password\n" +#~ msgstr " -N, --unencrypted ne chiffre pas le mot de passe stocké\n" + +#~ msgid "%s: language \"%s\" is not installed in database \"%s\"\n" +#~ msgstr "%s : le langage « %s » n'est pas installé dans la base de données « %s »\n" + +#~ msgid "%s: language removal failed: %s" +#~ msgstr "%s : la suppression du langage a échoué : %s" #~ msgid "" -#~ "%s installs a procedural language into a PostgreSQL database.\n" +#~ "%s removes a procedural language from a database.\n" #~ "\n" #~ msgstr "" -#~ "%s installe un langage de procédures dans une base de données PostgreSQL.\n" +#~ "%s supprime un langage procédural d'une base de données.\n" #~ "\n" -#~ msgid "%s: language installation failed: %s" -#~ msgstr "%s : l'installation du langage a échoué : %s" +#~ msgid " -d, --dbname=DBNAME database from which to remove the language\n" +#~ msgstr "" +#~ " -d, --dbname=BASE base de données à partir de laquelle\n" +#~ " supprimer le langage\n" -#~ msgid "%s: language \"%s\" is already installed in database \"%s\"\n" -#~ msgstr "%s : le langage « %s » est déjà installé sur la base de données « %s »\n" +#~ msgid "%s: cannot use the \"freeze\" option when performing only analyze\n" +#~ msgstr "" +#~ "%s : ne peut utiliser l'option « freeze » lors de l'exécution d'un ANALYZE\n" +#~ "seul\n" -#~ msgid "%s: missing required argument language name\n" -#~ msgstr "%s : argument nom du langage requis mais manquant\n" +#~ msgid "%s: out of memory\n" +#~ msgstr "%s : mémoire épuisée\n" -#~ msgid "Procedural Languages" -#~ msgstr "Langages procéduraux" +#~ msgid "pg_strdup: cannot duplicate null pointer (internal error)\n" +#~ msgstr "pg_strdup : ne peut pas dupliquer un pointeur nul (erreur interne)\n" -#~ msgid "Trusted?" -#~ msgstr "De confiance (trusted) ?" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help affiche cette aide et quitte\n" -#~ msgid "yes" -#~ msgstr "oui" +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version affiche la version et quitte\n" -#~ msgid "no" -#~ msgstr "non" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help affiche cette aide et quitte\n" -#~ msgid "Name" -#~ msgstr "Nom" +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version affiche la version et quitte\n" -#~ msgid "%s: too many parallel jobs requested (maximum: %d)\n" -#~ msgstr "%s : trop de jobs en parallèle demandés (maximum %d)\n" +#~ msgid "" +#~ "\n" +#~ "If one of -d, -D, -r, -R, -s, -S, and ROLENAME is not specified, you will\n" +#~ "be prompted interactively.\n" +#~ msgstr "" +#~ "\n" +#~ "Si une des options -d, -D, -r, -R, -s, -S et RÔLE n'est pas précisée,\n" +#~ "elle sera demandée interactivement.\n" -#~ msgid "%s: %s" -#~ msgstr "%s : %s" +#~ msgid "%s: still %s functions declared in language \"%s\"; language not removed\n" +#~ msgstr "" +#~ "%s : il existe encore %s fonctions déclarées dans le langage « %s » ;\n" +#~ "langage non supprimé\n" -#~ msgid "%s: \"%s\" is not a valid encoding name\n" -#~ msgstr "%s : « %s » n'est pas un nom d'encodage valide\n" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help affiche cette aide et quitte\n" -#~ msgid "%s: query returned %d row instead of one: %s\n" -#~ msgid_plural "%s: query returned %d rows instead of one: %s\n" -#~ msgstr[0] "%s : la requête a renvoyé %d ligne au lieu d'une seule : %s\n" -#~ msgstr[1] "%s : la requête a renvoyé %d lignes au lieu d'une seule : %s\n" +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version affiche la version et quitte\n" -#~ msgid "%s: query was: %s\n" -#~ msgstr "%s : la requête était : %s\n" +#~ msgid "%s: could not get current user name: %s\n" +#~ msgstr "%s : n'a pas pu récupérer le nom de l'utilisateur actuel : %s\n" -#~ msgid "%s: query failed: %s" -#~ msgstr "%s : échec de la requête : %s" +#~ msgid "%s: could not obtain information about current user: %s\n" +#~ msgstr "%s : n'a pas pu obtenir les informations concernant l'utilisateur actuel : %s\n" -#~ msgid "%s: too many command-line arguments (first is \"%s\")\n" -#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" +#~ msgid "%s: invalid socket: %s" +#~ msgstr "%s : socket invalide : %s" -#~ msgid "parallel vacuum degree must be a non-negative integer" -#~ msgstr "le degré de parallélisation du VACUUM doit être un entier non négatif" +#~ msgid "reindexing of system catalogs failed: %s" +#~ msgstr "la réindexation des catalogues système a échoué : %s" -#~ msgid "Could not send cancel request: %s" -#~ msgstr "N'a pas pu envoyer la requête d'annulation : %s" +#~ msgid "" +#~ "\n" +#~ "Report bugs to .\n" +#~ msgstr "" +#~ "\n" +#~ "Rapporter les bogues à .\n" diff -Nru postgresql-13-13.4/src/bin/scripts/po/ru.po postgresql-13-13.7/src/bin/scripts/po/ru.po --- postgresql-13-13.4/src/bin/scripts/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/scripts/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -3,13 +3,13 @@ # This file is distributed under the same license as the PostgreSQL package. # Serguei A. Mokhov, , 2003-2004. # Oleg Bartunov , 2004. -# Alexander Lakhin , 2012-2017, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2019, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: pgscripts (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-11-20 15:13+0300\n" -"PO-Revision-Date: 2020-09-15 18:56+0300\n" +"POT-Creation-Date: 2022-03-11 08:13+0300\n" +"PO-Revision-Date: 2021-11-08 05:30+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -59,11 +59,11 @@ msgid "user name lookup failure: error code %lu" msgstr "распознать имя пользователя не удалось (код ошибки: %lu)" -#: ../../fe_utils/cancel.c:161 ../../fe_utils/cancel.c:206 +#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 msgid "Cancel request sent\n" msgstr "Сигнал отмены отправлен\n" -#: ../../fe_utils/cancel.c:165 ../../fe_utils/cancel.c:210 +#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 msgid "Could not send cancel request: " msgstr "Отправить сигнал отмены не удалось: " @@ -75,26 +75,24 @@ msgstr[1] "(%lu строки)" msgstr[2] "(%lu строк)" -#: ../../fe_utils/print.c:3055 +#: ../../fe_utils/print.c:3056 #, c-format msgid "Interrupted\n" -msgstr "Прерывание\n" +msgstr "Прервано\n" -#: ../../fe_utils/print.c:3119 +#: ../../fe_utils/print.c:3120 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "" -"Добавить заголовок к содержимому таблицы нельзя: число столбцов превышает " -"%d.\n" +"Ошибка добавления заголовка таблицы: превышен предел числа столбцов (%d).\n" -#: ../../fe_utils/print.c:3159 +#: ../../fe_utils/print.c:3160 #, c-format msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" msgstr "" -"Добавить ячейку к содержимому таблицы нельзя: общее число ячеек превышает " -"%d.\n" +"Ошибка добавления ячейки в таблицу: превышен предел числа ячеек (%d).\n" -#: ../../fe_utils/print.c:3414 +#: ../../fe_utils/print.c:3418 #, c-format msgid "invalid output format (internal error): %d" msgstr "неверный формат вывода (внутренняя ошибка): %d" @@ -254,7 +252,7 @@ #: clusterdb.c:283 dropdb.c:185 reindexdb.c:772 vacuumdb.c:940 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" -msgstr " --maintenance-db=ИМЯ_БД выбор другой обслуживаемой базы данных\n" +msgstr " --maintenance-db=ИМЯ_БД сменить опорную базу данных\n" #: clusterdb.c:284 #, c-format @@ -281,36 +279,36 @@ msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: common.c:80 common.c:138 +#: common.c:82 common.c:140 msgid "Password: " msgstr "Пароль: " -#: common.c:125 +#: common.c:127 #, c-format msgid "could not connect to database %s: out of memory" msgstr "не удалось подключиться к базе %s (нехватка памяти)" -#: common.c:152 +#: common.c:154 #, c-format msgid "could not connect to database %s: %s" msgstr "не удалось подключиться к базе %s: %s" -#: common.c:231 common.c:256 +#: common.c:233 common.c:258 #, c-format msgid "query failed: %s" msgstr "ошибка при выполнении запроса: %s" -#: common.c:232 common.c:257 +#: common.c:234 common.c:259 #, c-format msgid "query was: %s" msgstr "запрос: %s" -#: common.c:329 +#: common.c:331 #, c-format msgid "processing of database \"%s\" failed: %s" msgstr "ошибка при обработке базы \"%s\": %s" -#: common.c:423 +#: common.c:425 #, c-format msgid "query returned %d row instead of one: %s" msgid_plural "query returned %d rows instead of one: %s" @@ -319,23 +317,23 @@ msgstr[2] "запрос вернул %d строк вместо одной: %s" #. translator: abbreviation for "yes" -#: common.c:447 +#: common.c:449 msgid "y" msgstr "y" #. translator: abbreviation for "no" -#: common.c:449 +#: common.c:451 msgid "n" msgstr "n" #. translator: This is a question followed by the translated options for #. "yes" and "no". -#: common.c:459 +#: common.c:461 #, c-format msgid "%s (%s/%s) " msgstr "%s (%s - да/%s - нет) " -#: common.c:473 +#: common.c:475 #, c-format msgid "Please answer \"%s\" or \"%s\".\n" msgstr "Пожалуйста, введите \"%s\" или \"%s\".\n" @@ -466,8 +464,7 @@ #: createdb.c:285 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" -msgstr "" -" --maintenance-db=ИМЯ_БД выбор другой обслуживаемой базы данных\n" +msgstr " --maintenance-db=ИМЯ_БД сменить опорную базу данных\n" #: createdb.c:286 #, c-format @@ -992,8 +989,9 @@ #: reindexdb.c:760 #, c-format -msgid " -s, --system reindex system catalogs\n" -msgstr " -s, --system переиндексировать системные каталоги\n" +msgid " -s, --system reindex system catalogs only\n" +msgstr "" +" -s, --system переиндексировать только системные каталоги\n" #: reindexdb.c:761 #, c-format @@ -1023,9 +1021,10 @@ #: vacuumdb.c:192 #, c-format -msgid "parallel vacuum degree must be a non-negative integer" +msgid "parallel workers for vacuum must be greater than or equal to zero" msgstr "" -"степень параллельности для очистки должна задаваться неотрицательным целым" +"число параллельных исполнителей для выполнения очистки должно быть " +"неотрицательным" #: vacuumdb.c:212 #, c-format @@ -1165,10 +1164,10 @@ #: vacuumdb.c:923 #, c-format msgid "" -" -P, --parallel=PARALLEL_DEGREE use this many background workers for " +" -P, --parallel=PARALLEL_WORKERS use this many background workers for " "vacuum, if available\n" msgstr "" -" -P, --parallel=СТЕПЕНЬ_ПАРАЛЛЕЛЬНОСТИ\n" +" -P, --parallel=ПАРАЛЛЕЛЬНЫЕ_ИСПОЛНИТЕЛИ\n" " по возможности использовать для очистки\n" " заданное число фоновых процессов\n" @@ -1243,6 +1242,10 @@ "\n" "Подробнее об очистке вы можете узнать в описании SQL-команды VACUUM.\n" +#~ msgid "parallel vacuum degree must be a non-negative integer" +#~ msgstr "" +#~ "степень параллельности для очистки должна задаваться неотрицательным целым" + #~ msgid "Could not send cancel request: %s" #~ msgstr "Отправить сигнал отмены не удалось: %s" diff -Nru postgresql-13-13.4/src/bin/scripts/po/sv.po postgresql-13-13.7/src/bin/scripts/po/sv.po --- postgresql-13-13.4/src/bin/scripts/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/scripts/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,5 +1,5 @@ # Swedish message translation file for postgresql -# Dennis Björklund , 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020. +# Dennis Björklund , 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021. # Peter Eisentraut , 2013. # Mats Erik Andersson , 2014. # @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-16 05:16+0000\n" -"PO-Revision-Date: 2020-09-16 07:56+0200\n" +"POT-Creation-Date: 2022-02-18 04:31+0000\n" +"PO-Revision-Date: 2021-11-09 06:34+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -57,19 +57,14 @@ msgid "user name lookup failure: error code %lu" msgstr "misslyckad sökning efter användarnamn: felkod %lu" -#: ../../fe_utils/cancel.c:161 ../../fe_utils/cancel.c:206 +#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 msgid "Cancel request sent\n" msgstr "Förfrågan om avbrytning skickad\n" -#: ../../fe_utils/cancel.c:165 +#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 msgid "Could not send cancel request: " msgstr "Kunde inte skicka förfrågan om avbrytning: " -#: ../../fe_utils/cancel.c:210 -#, c-format -msgid "Could not send cancel request: %s" -msgstr "Kunde inte skicka förfrågan om avbrytning: %s" - #: ../../fe_utils/print.c:350 #, c-format msgid "(%lu row)" @@ -92,51 +87,51 @@ msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" msgstr "Kan inte lägga till cell till tabellinnehåll: totala cellantalet (%d) överskridet.\n" -#: ../../fe_utils/print.c:3414 +#: ../../fe_utils/print.c:3417 #, c-format msgid "invalid output format (internal error): %d" msgstr "ogiltigt utdataformat (internt fel): %d" -#: clusterdb.c:114 clusterdb.c:133 createdb.c:121 createdb.c:140 -#: createuser.c:171 createuser.c:186 dropdb.c:101 dropdb.c:110 dropdb.c:118 -#: dropuser.c:92 dropuser.c:107 dropuser.c:122 pg_isready.c:95 pg_isready.c:109 -#: reindexdb.c:168 reindexdb.c:187 vacuumdb.c:227 vacuumdb.c:246 +#: clusterdb.c:110 clusterdb.c:129 createdb.c:122 createdb.c:141 +#: createuser.c:172 createuser.c:187 dropdb.c:102 dropdb.c:111 dropdb.c:119 +#: dropuser.c:93 dropuser.c:108 dropuser.c:123 pg_isready.c:95 pg_isready.c:109 +#: reindexdb.c:166 reindexdb.c:185 vacuumdb.c:225 vacuumdb.c:244 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" -#: clusterdb.c:131 createdb.c:138 createuser.c:184 dropdb.c:116 dropuser.c:105 -#: pg_isready.c:107 reindexdb.c:185 vacuumdb.c:244 +#: clusterdb.c:127 createdb.c:139 createuser.c:185 dropdb.c:117 dropuser.c:106 +#: pg_isready.c:107 reindexdb.c:183 vacuumdb.c:242 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: clusterdb.c:143 +#: clusterdb.c:146 #, c-format msgid "cannot cluster all databases and a specific one at the same time" msgstr "kan inte klustra alla databaser och en angiven på samma gång" -#: clusterdb.c:149 +#: clusterdb.c:152 #, c-format msgid "cannot cluster specific table(s) in all databases" msgstr "kan inte klustra angivna tabeller i alla databaser" -#: clusterdb.c:217 +#: clusterdb.c:218 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "klustring av tabell \"%s\" i databas \"%s\" misslyckades: %s" -#: clusterdb.c:220 +#: clusterdb.c:221 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "klustring av databas \"%s\" misslyckades: %s" -#: clusterdb.c:253 +#: clusterdb.c:249 #, c-format msgid "%s: clustering database \"%s\"\n" msgstr "%s: klustring av databas \"%s\"\n" -#: clusterdb.c:274 +#: clusterdb.c:265 #, c-format msgid "" "%s clusters all previously clustered tables in a database.\n" @@ -145,19 +140,19 @@ "%s klustrar alla tidigare klustrade tabeller i en databas.\n" "\n" -#: clusterdb.c:275 createdb.c:259 createuser.c:347 dropdb.c:164 dropuser.c:163 -#: pg_isready.c:224 reindexdb.c:753 vacuumdb.c:921 +#: clusterdb.c:266 createdb.c:266 createuser.c:354 dropdb.c:170 dropuser.c:170 +#: pg_isready.c:224 reindexdb.c:750 vacuumdb.c:911 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: clusterdb.c:276 reindexdb.c:754 vacuumdb.c:922 +#: clusterdb.c:267 reindexdb.c:751 vacuumdb.c:912 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [FLAGGA]... [DBNAMN]\n" -#: clusterdb.c:277 createdb.c:261 createuser.c:349 dropdb.c:166 dropuser.c:165 -#: pg_isready.c:227 reindexdb.c:755 vacuumdb.c:923 +#: clusterdb.c:268 createdb.c:268 createuser.c:356 dropdb.c:172 dropuser.c:172 +#: pg_isready.c:227 reindexdb.c:752 vacuumdb.c:913 #, c-format msgid "" "\n" @@ -166,48 +161,48 @@ "\n" "Flaggor:\n" -#: clusterdb.c:278 +#: clusterdb.c:269 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all klustra alla databaser\n" -#: clusterdb.c:279 +#: clusterdb.c:270 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=DBNAME databas att klustra\n" -#: clusterdb.c:280 createuser.c:353 dropdb.c:167 dropuser.c:166 reindexdb.c:759 +#: clusterdb.c:271 createuser.c:360 dropdb.c:173 dropuser.c:173 reindexdb.c:756 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo visa kommandon som skickas till servern\n" -#: clusterdb.c:281 reindexdb.c:762 +#: clusterdb.c:272 reindexdb.c:759 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet skriv inte ut några meddelanden\n" -#: clusterdb.c:282 +#: clusterdb.c:273 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=TABELL klustra enbart ingivna tabeller\n" -#: clusterdb.c:283 reindexdb.c:766 +#: clusterdb.c:274 reindexdb.c:763 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose skriv massor med utdata\n" -#: clusterdb.c:284 createuser.c:365 dropdb.c:170 dropuser.c:169 reindexdb.c:767 +#: clusterdb.c:275 createuser.c:372 dropdb.c:176 dropuser.c:176 reindexdb.c:764 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: clusterdb.c:285 createuser.c:370 dropdb.c:172 dropuser.c:171 reindexdb.c:768 +#: clusterdb.c:276 createuser.c:377 dropdb.c:178 dropuser.c:178 reindexdb.c:765 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: clusterdb.c:286 createdb.c:272 createuser.c:371 dropdb.c:173 dropuser.c:172 -#: pg_isready.c:233 reindexdb.c:769 vacuumdb.c:944 +#: clusterdb.c:277 createdb.c:279 createuser.c:378 dropdb.c:179 dropuser.c:179 +#: pg_isready.c:233 reindexdb.c:766 vacuumdb.c:934 #, c-format msgid "" "\n" @@ -216,41 +211,41 @@ "\n" "Flaggor för anslutning:\n" -#: clusterdb.c:287 createuser.c:372 dropdb.c:174 dropuser.c:173 reindexdb.c:770 -#: vacuumdb.c:945 +#: clusterdb.c:278 createuser.c:379 dropdb.c:180 dropuser.c:180 reindexdb.c:767 +#: vacuumdb.c:935 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=VÄRDNAMN databasens värdnamn eller socketkatalog\n" -#: clusterdb.c:288 createuser.c:373 dropdb.c:175 dropuser.c:174 reindexdb.c:771 -#: vacuumdb.c:946 +#: clusterdb.c:279 createuser.c:380 dropdb.c:181 dropuser.c:181 reindexdb.c:768 +#: vacuumdb.c:936 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT databasserverns port\n" -#: clusterdb.c:289 dropdb.c:176 reindexdb.c:772 vacuumdb.c:947 +#: clusterdb.c:280 dropdb.c:182 reindexdb.c:769 vacuumdb.c:937 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ANVÄNDARE användarnamn att ansluta som\n" -#: clusterdb.c:290 createuser.c:375 dropdb.c:177 dropuser.c:176 reindexdb.c:773 -#: vacuumdb.c:948 +#: clusterdb.c:281 createuser.c:382 dropdb.c:183 dropuser.c:183 reindexdb.c:770 +#: vacuumdb.c:938 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password fråga ej efter lösenord\n" -#: clusterdb.c:291 createuser.c:376 dropdb.c:178 dropuser.c:177 reindexdb.c:774 -#: vacuumdb.c:949 +#: clusterdb.c:282 createuser.c:383 dropdb.c:184 dropuser.c:184 reindexdb.c:771 +#: vacuumdb.c:939 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password framtvinga fråga om lösenord\n" -#: clusterdb.c:292 dropdb.c:179 reindexdb.c:775 vacuumdb.c:950 +#: clusterdb.c:283 dropdb.c:185 reindexdb.c:772 vacuumdb.c:940 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAMN annat val av underhållsdatabas\n" -#: clusterdb.c:293 +#: clusterdb.c:284 #, c-format msgid "" "\n" @@ -259,8 +254,8 @@ "\n" "Läs beskrivningen av SQL-kommandot CLUSTER för detaljer.\n" -#: clusterdb.c:294 createdb.c:280 createuser.c:377 dropdb.c:180 dropuser.c:178 -#: pg_isready.c:238 reindexdb.c:777 vacuumdb.c:952 +#: clusterdb.c:285 createdb.c:287 createuser.c:384 dropdb.c:186 dropuser.c:185 +#: pg_isready.c:238 reindexdb.c:774 vacuumdb.c:942 #, c-format msgid "" "\n" @@ -269,42 +264,42 @@ "\n" "Rapportera fel till <%s>.\n" -#: clusterdb.c:295 createdb.c:281 createuser.c:378 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:239 reindexdb.c:778 vacuumdb.c:953 +#: clusterdb.c:286 createdb.c:288 createuser.c:385 dropdb.c:187 dropuser.c:186 +#: pg_isready.c:239 reindexdb.c:775 vacuumdb.c:943 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: common.c:79 common.c:125 +#: common.c:82 common.c:140 msgid "Password: " msgstr "Lösenord: " -#: common.c:112 +#: common.c:127 #, c-format msgid "could not connect to database %s: out of memory" msgstr "kunde inte ansluta till databas %s: slut på minne" -#: common.c:139 +#: common.c:154 #, c-format msgid "could not connect to database %s: %s" msgstr "kunde inte ansluta till databas %s: %s" -#: common.c:214 common.c:239 +#: common.c:233 common.c:258 #, c-format msgid "query failed: %s" msgstr "fråga misslyckades: %s" -#: common.c:215 common.c:240 +#: common.c:234 common.c:259 #, c-format msgid "query was: %s" msgstr "frågan var: %s" -#: common.c:312 +#: common.c:331 #, c-format msgid "processing of database \"%s\" failed: %s" msgstr "processande av databas \"%s\" misslyckades: %s" -#: common.c:406 +#: common.c:425 #, c-format msgid "query returned %d row instead of one: %s" msgid_plural "query returned %d rows instead of one: %s" @@ -312,53 +307,53 @@ msgstr[1] "fråga gav %d rader istället för en: %s" #. translator: abbreviation for "yes" -#: common.c:430 +#: common.c:449 msgid "y" msgstr "j" #. translator: abbreviation for "no" -#: common.c:432 +#: common.c:451 msgid "n" msgstr "n" #. translator: This is a question followed by the translated options for #. "yes" and "no". -#: common.c:442 +#: common.c:461 #, c-format msgid "%s (%s/%s) " msgstr "%s (%s/%s) " -#: common.c:456 +#: common.c:475 #, c-format msgid "Please answer \"%s\" or \"%s\".\n" msgstr "Var vänlig att svara \"%s\" eller \"%s\".\n" -#: createdb.c:148 +#: createdb.c:149 #, c-format msgid "only one of --locale and --lc-ctype can be specified" msgstr "endast en av --locale och --lc-ctype kan anges" -#: createdb.c:153 +#: createdb.c:154 #, c-format msgid "only one of --locale and --lc-collate can be specified" msgstr "endast en av --locale och --lc-collate kan anges" -#: createdb.c:164 +#: createdb.c:165 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" är inte ett giltigt kodningsnamn" -#: createdb.c:221 +#: createdb.c:228 #, c-format msgid "database creation failed: %s" msgstr "misslyckades att skapa databas: %s" -#: createdb.c:240 +#: createdb.c:247 #, c-format msgid "comment creation failed (database was created): %s" msgstr "misslyckades att skapa kommentar (databasen skapades): %s" -#: createdb.c:258 +#: createdb.c:265 #, c-format msgid "" "%s creates a PostgreSQL database.\n" @@ -367,92 +362,92 @@ "%s skapar en PostgreSQL-databas.\n" "\n" -#: createdb.c:260 +#: createdb.c:267 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [FLAGGA]... [DBNAMN] [BESKRIVNING]\n" -#: createdb.c:262 +#: createdb.c:269 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr " -D, --tablespace=TABELLRYMD förvalt tabellutrymme för databasen\n" -#: createdb.c:263 +#: createdb.c:270 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo visa kommandon som skickas till servern\n" -#: createdb.c:264 +#: createdb.c:271 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=KODNING teckenkodning för databasen\n" -#: createdb.c:265 +#: createdb.c:272 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=LOKAL lokalnamn för databasen\n" -#: createdb.c:266 +#: createdb.c:273 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=LOKAL värde på LC_COLLATE för databasen\n" -#: createdb.c:267 +#: createdb.c:274 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=LOKAL värde på LC_CTYPE för databasen\n" -#: createdb.c:268 +#: createdb.c:275 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" msgstr " -O, --owner=ÄGARE databasanvändare som äger nya databasen\n" -#: createdb.c:269 +#: createdb.c:276 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --template=MALL databasmall att kopiera\n" -#: createdb.c:270 +#: createdb.c:277 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: createdb.c:271 +#: createdb.c:278 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: createdb.c:273 +#: createdb.c:280 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=VÄRDNAMN databasens värdnamn eller socketkatalog\n" -#: createdb.c:274 +#: createdb.c:281 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT databasserverns port\n" -#: createdb.c:275 +#: createdb.c:282 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ANVÄNDARE användarnamn att ansluta som\n" -#: createdb.c:276 +#: createdb.c:283 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password fråga ej efter lösenord\n" -#: createdb.c:277 +#: createdb.c:284 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password framtvinga fråga om lösenord\n" -#: createdb.c:278 +#: createdb.c:285 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAMN annat val av underhållsdatabas\n" -#: createdb.c:279 +#: createdb.c:286 #, c-format msgid "" "\n" @@ -461,51 +456,51 @@ "\n" "Som standard skapas en databas med samma namn som den nuvarande användares namn.\n" -#: createuser.c:150 +#: createuser.c:151 #, c-format msgid "invalid value for --connection-limit: %s" msgstr "ogiltigt värde till --connection-limit: %s" -#: createuser.c:194 +#: createuser.c:195 msgid "Enter name of role to add: " msgstr "Mata in namn på den roll som skall läggas till: " -#: createuser.c:211 +#: createuser.c:212 msgid "Enter password for new role: " msgstr "Mata in lösenord för den nya rollen: " -#: createuser.c:213 +#: createuser.c:214 msgid "Enter it again: " msgstr "Mata in det igen: " -#: createuser.c:216 +#: createuser.c:217 #, c-format msgid "Passwords didn't match.\n" msgstr "Lösenorden stämde inte överens.\n" -#: createuser.c:224 +#: createuser.c:225 msgid "Shall the new role be a superuser?" -msgstr "Skall den nya rollen vara en superanvändare?" +msgstr "Skall den nya rollen vara en superuser?" -#: createuser.c:239 +#: createuser.c:240 msgid "Shall the new role be allowed to create databases?" msgstr "Skall den nya rollen tillåtas skapa databaser?" -#: createuser.c:247 +#: createuser.c:248 msgid "Shall the new role be allowed to create more new roles?" msgstr "Skall den nya rollen tillåtas skapa fler nya roller?" -#: createuser.c:277 +#: createuser.c:284 #, c-format msgid "password encryption failed: %s" msgstr "misslyckades med lösenordskryptering: %s" -#: createuser.c:332 +#: createuser.c:339 #, c-format msgid "creation of new role failed: %s" msgstr "misslyckades med att skapa ny roll: %s" -#: createuser.c:346 +#: createuser.c:353 #, c-format msgid "" "%s creates a new PostgreSQL role.\n" @@ -514,32 +509,32 @@ "%s skapar en ny PostgreSQL-roll.\n" "\n" -#: createuser.c:348 dropuser.c:164 +#: createuser.c:355 dropuser.c:171 #, c-format msgid " %s [OPTION]... [ROLENAME]\n" msgstr " %s [FLAGGA]... [ROLLNAMN]\n" -#: createuser.c:350 +#: createuser.c:357 #, c-format msgid " -c, --connection-limit=N connection limit for role (default: no limit)\n" msgstr " -c, --connection-limit=N anslutningsgräns för roll (standard: ingen gräns)\n" -#: createuser.c:351 +#: createuser.c:358 #, c-format msgid " -d, --createdb role can create new databases\n" msgstr " -d, --createdb rollen kan skapa nya databaser\n" -#: createuser.c:352 +#: createuser.c:359 #, c-format msgid " -D, --no-createdb role cannot create databases (default)\n" msgstr " -D, --no-createdb rollen kan inte skapa databaser (standard)\n" -#: createuser.c:354 +#: createuser.c:361 #, c-format msgid " -g, --role=ROLE new role will be a member of this role\n" msgstr " -g, --role=ROLL nya rollen kommer bli medlem i denna roll\n" -#: createuser.c:355 +#: createuser.c:362 #, c-format msgid "" " -i, --inherit role inherits privileges of roles it is a\n" @@ -548,47 +543,47 @@ " -i, --inherit rollen ärver rättigheter från roller den\n" " är medlem i (standard)\n" -#: createuser.c:357 +#: createuser.c:364 #, c-format msgid " -I, --no-inherit role does not inherit privileges\n" msgstr " -I, --no-inherit rollen ärver inga rättigheter\n" -#: createuser.c:358 +#: createuser.c:365 #, c-format msgid " -l, --login role can login (default)\n" msgstr " -l, --login rollen kan logga in (standard)\n" -#: createuser.c:359 +#: createuser.c:366 #, c-format msgid " -L, --no-login role cannot login\n" msgstr " -L, --no-login rollen kan inte logga in\n" -#: createuser.c:360 +#: createuser.c:367 #, c-format msgid " -P, --pwprompt assign a password to new role\n" msgstr " -P, --pwprompt tilldela den nya rollen ett lösenord\n" -#: createuser.c:361 +#: createuser.c:368 #, c-format msgid " -r, --createrole role can create new roles\n" msgstr " -r, --createrole rollen kan skapa nya roller\n" -#: createuser.c:362 +#: createuser.c:369 #, c-format msgid " -R, --no-createrole role cannot create roles (default)\n" msgstr " -R, --no-createrole rollen kan inte skapa roller (standard)\n" -#: createuser.c:363 +#: createuser.c:370 #, c-format msgid " -s, --superuser role will be superuser\n" -msgstr " -s, --superuser rollen blir en superanvändare\n" +msgstr " -s, --superuser rollen blir en superuser\n" -#: createuser.c:364 +#: createuser.c:371 #, c-format msgid " -S, --no-superuser role will not be superuser (default)\n" -msgstr " -S, --no-superuser rollen blir inte superanvändare (standard)\n" +msgstr " -S, --no-superuser rollen blir inte superuser (standard)\n" -#: createuser.c:366 +#: createuser.c:373 #, c-format msgid "" " --interactive prompt for missing role name and attributes rather\n" @@ -597,41 +592,41 @@ " --interactive fråga efter rollnamn och egenskaper, snarare än\n" " att falla tillbaka på förval\n" -#: createuser.c:368 +#: createuser.c:375 #, c-format msgid " --replication role can initiate replication\n" msgstr " --replication rollen kan starta replikering\n" -#: createuser.c:369 +#: createuser.c:376 #, c-format msgid " --no-replication role cannot initiate replication\n" msgstr " --no-replication rollen får inte starta replikering\n" -#: createuser.c:374 +#: createuser.c:381 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to create)\n" msgstr " -U, --username=ANVÄNDARE användarnamn att ansluta som (ej den som skapas)\n" -#: dropdb.c:109 +#: dropdb.c:110 #, c-format msgid "missing required argument database name" msgstr "saknar nödvändigt databasnamn" -#: dropdb.c:124 +#: dropdb.c:125 #, c-format msgid "Database \"%s\" will be permanently removed.\n" msgstr "Databasen \"%s\" kommer att tas bort permanent.\n" -#: dropdb.c:125 dropuser.c:130 +#: dropdb.c:126 dropuser.c:131 msgid "Are you sure?" msgstr "Är du säker?" -#: dropdb.c:149 +#: dropdb.c:155 #, c-format msgid "database removal failed: %s" msgstr "borttagning av databas misslyckades: %s" -#: dropdb.c:163 +#: dropdb.c:169 #, c-format msgid "" "%s removes a PostgreSQL database.\n" @@ -640,53 +635,53 @@ "%s tar bort en PostgreSQL-databas.\n" "\n" -#: dropdb.c:165 +#: dropdb.c:171 #, c-format msgid " %s [OPTION]... DBNAME\n" msgstr " %s [FLAGGA]... DBNAMN\n" -#: dropdb.c:168 +#: dropdb.c:174 #, c-format msgid " -f, --force try to terminate other connections before dropping\n" msgstr " -f, --force försöka stänga andra uppkopplingar innan radering\n" -#: dropdb.c:169 +#: dropdb.c:175 #, c-format msgid " -i, --interactive prompt before deleting anything\n" msgstr " -i, --interactive fråga innan något tas bort\n" -#: dropdb.c:171 +#: dropdb.c:177 #, c-format msgid " --if-exists don't report error if database doesn't exist\n" msgstr " --if-exists felrapportera ej om databasen saknas\n" -#: dropuser.c:115 +#: dropuser.c:116 msgid "Enter name of role to drop: " msgstr "Mata inn namnet på den roll som skall tas bort: " -#: dropuser.c:121 +#: dropuser.c:122 #, c-format msgid "missing required argument role name" msgstr "saknar ett nödvändigt rollnamn" -#: dropuser.c:129 +#: dropuser.c:130 #, c-format msgid "Role \"%s\" will be permanently removed.\n" msgstr "Rollen \"%s\" kommer att tas bort permanent.\n" -#: dropuser.c:147 +#: dropuser.c:154 #, c-format msgid "removal of role \"%s\" failed: %s" msgstr "borttagning av rollen \"%s\" misslyckades: %s" -#: dropuser.c:162 +#: dropuser.c:169 #, c-format msgid "" "%s removes a PostgreSQL role.\n" "\n" msgstr "%s tar bort en PostgreSQL-roll.\n" -#: dropuser.c:167 +#: dropuser.c:174 #, c-format msgid "" " -i, --interactive prompt before deleting anything, and prompt for\n" @@ -695,12 +690,12 @@ " -i, --interactive fråga innan något tas bort och fråga efter\n" " rollnamn om sådant saknas\n" -#: dropuser.c:170 +#: dropuser.c:177 #, c-format msgid " --if-exists don't report error if user doesn't exist\n" msgstr " --if-exists felrapportera ej om användaren saknas\n" -#: dropuser.c:175 +#: dropuser.c:182 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to drop)\n" msgstr " -U, --username=ANVÄNDARE användare som ansluter (inte den som tas bort)\n" @@ -794,103 +789,103 @@ msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ANVÄNDARE användarnamn att ansluta som\n" -#: reindexdb.c:154 vacuumdb.c:186 +#: reindexdb.c:152 vacuumdb.c:184 #, c-format msgid "number of parallel jobs must be at least 1" msgstr "antalet parallella jobb måste vara minst 1" -#: reindexdb.c:197 +#: reindexdb.c:202 #, c-format msgid "cannot reindex all databases and a specific one at the same time" msgstr "kan inte omindexera alla databaser och samtidigt en specifik databas" -#: reindexdb.c:202 +#: reindexdb.c:207 #, c-format msgid "cannot reindex all databases and system catalogs at the same time" msgstr "kan inte omindexera alla databaser samtidigt med systemkatalogerna" -#: reindexdb.c:207 +#: reindexdb.c:212 #, c-format msgid "cannot reindex specific schema(s) in all databases" msgstr "kan inte omindexera angivna scheman i alla databaser" -#: reindexdb.c:212 +#: reindexdb.c:217 #, c-format msgid "cannot reindex specific table(s) in all databases" msgstr "Kan inte indexera specifik tabell i alla databaser" -#: reindexdb.c:217 +#: reindexdb.c:222 #, c-format msgid "cannot reindex specific index(es) in all databases" msgstr "Kan inte omindexera angivet index i alla databaser" -#: reindexdb.c:229 +#: reindexdb.c:235 #, c-format msgid "cannot reindex specific schema(s) and system catalogs at the same time" msgstr "kan inte omindexera angivna scheman och systemkataloger på samma gång" -#: reindexdb.c:234 +#: reindexdb.c:240 #, c-format msgid "cannot reindex specific table(s) and system catalogs at the same time" msgstr "kan inte omindexera specifik tabell och systemkatalogerna samtidigt" -#: reindexdb.c:239 +#: reindexdb.c:245 #, c-format msgid "cannot reindex specific index(es) and system catalogs at the same time" msgstr "kan inte omindexera angivna index och systemkatalogerna samtidigt." -#: reindexdb.c:245 +#: reindexdb.c:251 #, c-format msgid "cannot use multiple jobs to reindex system catalogs" msgstr "kan inte använda multipla jobb för att omindexera systemkataloger" -#: reindexdb.c:272 +#: reindexdb.c:280 #, c-format msgid "cannot use multiple jobs to reindex indexes" msgstr "kan inte använda multipla jobb för att omindexera index" -#: reindexdb.c:337 vacuumdb.c:410 vacuumdb.c:418 vacuumdb.c:425 vacuumdb.c:432 -#: vacuumdb.c:439 +#: reindexdb.c:344 vacuumdb.c:413 vacuumdb.c:421 vacuumdb.c:428 vacuumdb.c:435 +#: vacuumdb.c:442 #, c-format msgid "cannot use the \"%s\" option on server versions older than PostgreSQL %s" msgstr "flaggan \"%s\" kan inte användas på serverversioner äldre än PostgreSQL %s" -#: reindexdb.c:377 +#: reindexdb.c:384 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "kan inte omindexera systemkataloger parallellt, hoppar över alla" -#: reindexdb.c:558 +#: reindexdb.c:564 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "omindexering av databasen \"%s\" misslyckades: %s" -#: reindexdb.c:562 +#: reindexdb.c:568 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "omindexering av index \"%s\" i databasen \"%s\" misslyckades: %s" -#: reindexdb.c:566 +#: reindexdb.c:572 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "omindexering av schemat \"%s\" i databasen \"%s\" misslyckades: %s" -#: reindexdb.c:570 +#: reindexdb.c:576 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "omindexering av systemkataloger i databasen \"%s\" misslyckades: %s" -#: reindexdb.c:574 +#: reindexdb.c:580 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "omindexering av tabell \"%s\" i databasen \"%s\" misslyckades: %s" -#: reindexdb.c:731 +#: reindexdb.c:732 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: omindexering av databasen \"%s\"\n" -#: reindexdb.c:752 +#: reindexdb.c:749 #, c-format msgid "" "%s reindexes a PostgreSQL database.\n" @@ -899,47 +894,47 @@ "%s indexerar om en PostgreSQL-databas.\n" "\n" -#: reindexdb.c:756 +#: reindexdb.c:753 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all indexera om alla databaser\n" -#: reindexdb.c:757 +#: reindexdb.c:754 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently indexer om utan att låsa\n" -#: reindexdb.c:758 +#: reindexdb.c:755 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=DBNAME databas att indexera om\n" -#: reindexdb.c:760 +#: reindexdb.c:757 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=INDEX återskapa enbart angivna index\n" -#: reindexdb.c:761 +#: reindexdb.c:758 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n" msgstr " -j, --jobs=NUM använd så här många samtida anslutningar för omindexering\n" -#: reindexdb.c:763 +#: reindexdb.c:760 #, c-format -msgid " -s, --system reindex system catalogs\n" -msgstr " -s, --system indexera om systemkatalogerna\n" +msgid " -s, --system reindex system catalogs only\n" +msgstr " -s, --system indexera enbart om systemkatalogerna\n" -#: reindexdb.c:764 +#: reindexdb.c:761 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=SCHEMA indexera enbart om angivna scheman\n" -#: reindexdb.c:765 +#: reindexdb.c:762 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=TABELL indexera endast om angivna tabeller\n" -#: reindexdb.c:776 +#: reindexdb.c:773 #, c-format msgid "" "\n" @@ -948,79 +943,79 @@ "\n" "Läs beskrivningen av SQL-kommandot REINDEX för detaljer.\n" -#: scripts_parallel.c:234 +#: scripts_parallel.c:232 #, c-format msgid "too many jobs for this platform -- try %d" msgstr "för många jobb för denna plattform -- försök med %d" -#: vacuumdb.c:194 +#: vacuumdb.c:192 #, c-format -msgid "parallel vacuum degree must be a non-negative integer" -msgstr "parallell städningsnivå måste vara ett ickenegativt heltal" +msgid "parallel workers for vacuum must be greater than or equal to zero" +msgstr "parallella arbetare för städning måste vara större än eller lika med noll" -#: vacuumdb.c:214 +#: vacuumdb.c:212 #, c-format msgid "minimum transaction ID age must be at least 1" msgstr "minimal transaktions-ID-ålder måste vara minst 1" -#: vacuumdb.c:222 +#: vacuumdb.c:220 #, c-format msgid "minimum multixact ID age must be at least 1" msgstr "minimal multixact-ID-ålder måste vara minst 1" -#: vacuumdb.c:254 vacuumdb.c:260 vacuumdb.c:266 vacuumdb.c:278 +#: vacuumdb.c:252 vacuumdb.c:258 vacuumdb.c:264 vacuumdb.c:276 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "flaggan \"%s\" kan inte användas vid enbart analys" -#: vacuumdb.c:284 +#: vacuumdb.c:282 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "flaggan \"%s\" kan inte användas vid \"full vacuum\"" -#: vacuumdb.c:300 +#: vacuumdb.c:305 #, c-format msgid "cannot vacuum all databases and a specific one at the same time" msgstr "kan inte städa alla databaser och endast en angiven på samma gång" -#: vacuumdb.c:305 +#: vacuumdb.c:310 #, c-format msgid "cannot vacuum specific table(s) in all databases" msgstr "kan inte städa en specifik tabell i alla databaser." -#: vacuumdb.c:396 +#: vacuumdb.c:400 msgid "Generating minimal optimizer statistics (1 target)" msgstr "Skapar minimal optimeringsstatistik (1 mål)" -#: vacuumdb.c:397 +#: vacuumdb.c:401 msgid "Generating medium optimizer statistics (10 targets)" msgstr "Skapar medium optimeringsstatistik (10 mål)" -#: vacuumdb.c:398 +#: vacuumdb.c:402 msgid "Generating default (full) optimizer statistics" msgstr "Skapar förvald (full) optimeringsstatistik" -#: vacuumdb.c:447 +#: vacuumdb.c:450 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s: processar databasen \"%s\": %s\n" -#: vacuumdb.c:450 +#: vacuumdb.c:453 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s: städar databasen \"%s\".\n" -#: vacuumdb.c:909 +#: vacuumdb.c:899 #, c-format msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s" msgstr "städning av tabell \"%s\" i databasen \"%s\" misslyckades: %s" -#: vacuumdb.c:912 +#: vacuumdb.c:902 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "städning av databasen \"%s\" misslyckades: %s" -#: vacuumdb.c:920 +#: vacuumdb.c:910 #, c-format msgid "" "%s cleans and analyzes a PostgreSQL database.\n" @@ -1029,92 +1024,94 @@ "%s städar och analyserar en PostgreSQL-databas.\n" "\n" -#: vacuumdb.c:924 +#: vacuumdb.c:914 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all städa i alla databaser\n" -#: vacuumdb.c:925 +#: vacuumdb.c:915 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=DBNAMN databas att städa i\n" -#: vacuumdb.c:926 +#: vacuumdb.c:916 #, c-format msgid " --disable-page-skipping disable all page-skipping behavior\n" msgstr " --disable-page-skipping stäng av alla sidöverhoppande beteeenden\n" -#: vacuumdb.c:927 +#: vacuumdb.c:917 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo visa kommandon som skickas till servern\n" -#: vacuumdb.c:928 +#: vacuumdb.c:918 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full utför full städning\n" -#: vacuumdb.c:929 +#: vacuumdb.c:919 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr " -F, --freeze frys information om radtransaktioner\n" -#: vacuumdb.c:930 +#: vacuumdb.c:920 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to vacuum\n" msgstr " -j, --jobs=NUM använd så här många samtida anslutningar för städning\n" -#: vacuumdb.c:931 +#: vacuumdb.c:921 #, c-format msgid " --min-mxid-age=MXID_AGE minimum multixact ID age of tables to vacuum\n" msgstr " --min-mxid-age=MXID_ÅLDER minimal multixact-ID-ålder i tabeller som skall städas\n" -#: vacuumdb.c:932 +#: vacuumdb.c:922 #, c-format msgid " --min-xid-age=XID_AGE minimum transaction ID age of tables to vacuum\n" msgstr " --min-xid-age=XID_ÅLDER minimal transaktions-ID-ålder i tabeller som skall städas\n" -#: vacuumdb.c:933 +#: vacuumdb.c:923 #, c-format -msgid " -P, --parallel=PARALLEL_DEGREE use this many background workers for vacuum, if available\n" -msgstr " -P, --parallel=PARALLELLNIVÅ använda så här många bakgrundsarbetare för städning, om det finns\n" +msgid " -P, --parallel=PARALLEL_WORKERS use this many background workers for vacuum, if available\n" +msgstr "" +" -P, --parallel=PARALLELLA_ARBETARE\n" +" använda så här många bakgrundsarbetare för städning, om det finns\n" -#: vacuumdb.c:934 +#: vacuumdb.c:924 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet skriv inte ut några meddelanden\n" -#: vacuumdb.c:935 +#: vacuumdb.c:925 #, c-format msgid " --skip-locked skip relations that cannot be immediately locked\n" msgstr " --skip-locked hoppa äver relationer som inte kan låsas direkt\n" -#: vacuumdb.c:936 +#: vacuumdb.c:926 #, c-format msgid " -t, --table='TABLE[(COLUMNS)]' vacuum specific table(s) only\n" msgstr " -t, --table='TABELL[(KOLUMNER)]' städa enbart i dessa tabeller\n" -#: vacuumdb.c:937 +#: vacuumdb.c:927 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose skriv massor med utdata\n" -#: vacuumdb.c:938 +#: vacuumdb.c:928 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: vacuumdb.c:939 +#: vacuumdb.c:929 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze uppdatera optimeringsstatistik\n" -#: vacuumdb.c:940 +#: vacuumdb.c:930 #, c-format msgid " -Z, --analyze-only only update optimizer statistics; no vacuum\n" msgstr " -Z, --analyze-only uppdatera bara optimeringsstatistik; ingen städning\n" -#: vacuumdb.c:941 +#: vacuumdb.c:931 #, c-format msgid "" " --analyze-in-stages only update optimizer statistics, in multiple\n" @@ -1123,12 +1120,12 @@ " --analyze-in-stages uppdatera bara optimeringsstatistik, men i\n" " flera steg för snabbare resultat; ingen städning\n" -#: vacuumdb.c:943 +#: vacuumdb.c:933 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: vacuumdb.c:951 +#: vacuumdb.c:941 #, c-format msgid "" "\n" diff -Nru postgresql-13-13.4/src/bin/scripts/reindexdb.c postgresql-13-13.7/src/bin/scripts/reindexdb.c --- postgresql-13-13.4/src/bin/scripts/reindexdb.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/scripts/reindexdb.c 2022-05-09 21:16:30.000000000 +0000 @@ -757,7 +757,7 @@ printf(_(" -i, --index=INDEX recreate specific index(es) only\n")); printf(_(" -j, --jobs=NUM use this many concurrent connections to reindex\n")); printf(_(" -q, --quiet don't write any messages\n")); - printf(_(" -s, --system reindex system catalogs\n")); + printf(_(" -s, --system reindex system catalogs only\n")); printf(_(" -S, --schema=SCHEMA reindex specific schema(s) only\n")); printf(_(" -t, --table=TABLE reindex specific table(s) only\n")); printf(_(" -v, --verbose write a lot of output\n")); diff -Nru postgresql-13-13.4/src/bin/scripts/t/080_pg_isready.pl postgresql-13-13.7/src/bin/scripts/t/080_pg_isready.pl --- postgresql-13-13.4/src/bin/scripts/t/080_pg_isready.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/bin/scripts/t/080_pg_isready.pl 2022-05-09 21:16:30.000000000 +0000 @@ -15,6 +15,6 @@ $node->init; $node->start; -# use a long timeout for the benefit of very slow buildfarm machines -$node->command_ok([qw(pg_isready --timeout=60)], +$node->command_ok( + [ 'pg_isready', "--timeout=$TestLib::timeout_default" ], 'succeeds with server running'); diff -Nru postgresql-13-13.4/src/common/exec.c postgresql-13-13.7/src/common/exec.c --- postgresql-13-13.4/src/common/exec.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/common/exec.c 2022-05-09 21:16:30.000000000 +0000 @@ -25,6 +25,11 @@ #include #include +/* Inhibit mingw CRT's auto-globbing of command line arguments */ +#if defined(WIN32) && !defined(_MSC_VER) +extern int _CRT_glob = 0; /* 0 turns off globbing; 1 turns it on */ +#endif + /* * Hacky solution to allow expressing both frontend and backend error reports * in one macro call. First argument of log_error is an errcode() call of diff -Nru postgresql-13-13.4/src/common/unicode_norm.c postgresql-13-13.7/src/common/unicode_norm.c --- postgresql-13-13.4/src/common/unicode_norm.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/common/unicode_norm.c 2022-05-09 21:16:30.000000000 +0000 @@ -349,6 +349,10 @@ decomp_chars[decomp_size] = '\0'; Assert(decomp_size == current_size); + /* Leave if there is nothing to decompose */ + if (decomp_size == 0) + return decomp_chars; + /* * Now apply canonical ordering. */ diff -Nru postgresql-13-13.4/src/fe_utils/cancel.c postgresql-13-13.7/src/fe_utils/cancel.c --- postgresql-13-13.4/src/fe_utils/cancel.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/fe_utils/cancel.c 2022-05-09 21:16:30.000000000 +0000 @@ -43,6 +43,13 @@ static PGcancel *volatile cancelConn = NULL; /* + * Predetermined localized error strings --- needed to avoid trying + * to call gettext() from a signal handler. + */ +static const char *cancel_sent_msg = NULL; +static const char *cancel_not_sent_msg = NULL; + +/* * CancelRequested is set when we receive SIGINT (or local equivalent). * There is no provision in this module for resetting it; but applications * might choose to clear it after successfully recovering from a cancel. @@ -158,11 +165,11 @@ { if (PQcancel(cancelConn, errbuf, sizeof(errbuf))) { - write_stderr(_("Cancel request sent\n")); + write_stderr(cancel_sent_msg); } else { - write_stderr(_("Could not send cancel request: ")); + write_stderr(cancel_not_sent_msg); write_stderr(errbuf); } } @@ -179,6 +186,9 @@ setup_cancel_handler(void (*callback) (void)) { cancel_callback = callback; + cancel_sent_msg = _("Cancel request sent\n"); + cancel_not_sent_msg = _("Could not send cancel request: "); + pqsignal(SIGINT, handle_sigint); } @@ -203,11 +213,11 @@ { if (PQcancel(cancelConn, errbuf, sizeof(errbuf))) { - write_stderr(_("Cancel request sent\n")); + write_stderr(cancel_sent_msg); } else { - write_stderr(_("Could not send cancel request: ")); + write_stderr(cancel_not_sent_msg); write_stderr(errbuf); } } @@ -225,6 +235,8 @@ setup_cancel_handler(void (*callback) (void)) { cancel_callback = callback; + cancel_sent_msg = _("Cancel request sent\n"); + cancel_not_sent_msg = _("Could not send cancel request: "); InitializeCriticalSection(&cancelConnLock); diff -Nru postgresql-13-13.4/src/fe_utils/print.c postgresql-13-13.7/src/fe_utils/print.c --- postgresql-13-13.4/src/fe_utils/print.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/fe_utils/print.c 2022-05-09 21:16:30.000000000 +0000 @@ -910,7 +910,8 @@ more_col_wrapping = col_count; curr_nl_line = 0; - memset(header_done, false, col_count * sizeof(bool)); + if (col_count > 0) + memset(header_done, false, col_count * sizeof(bool)); while (more_col_wrapping) { if (opt_border == 2) diff -Nru postgresql-13-13.4/src/include/access/heapam.h postgresql-13-13.7/src/include/access/heapam.h --- postgresql-13-13.4/src/include/access/heapam.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/access/heapam.h 2022-05-09 21:16:30.000000000 +0000 @@ -124,6 +124,9 @@ extern bool heap_fetch(Relation relation, Snapshot snapshot, HeapTuple tuple, Buffer *userbuf); +extern bool heap_fetch_extended(Relation relation, Snapshot snapshot, + HeapTuple tuple, Buffer *userbuf, + bool keep_buf); extern bool heap_hot_search_buffer(ItemPointer tid, Relation relation, Buffer buffer, Snapshot snapshot, HeapTuple heapTuple, bool *all_dead, bool first_call); diff -Nru postgresql-13-13.4/src/include/access/twophase.h postgresql-13-13.7/src/include/access/twophase.h --- postgresql-13-13.4/src/include/access/twophase.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/access/twophase.h 2022-05-09 21:16:30.000000000 +0000 @@ -34,6 +34,8 @@ extern void AtAbort_Twophase(void); extern void PostPrepare_Twophase(void); +extern TransactionId TwoPhaseGetXidByVirtualXID(VirtualTransactionId vxid, + bool *have_more); extern PGPROC *TwoPhaseGetDummyProc(TransactionId xid, bool lock_held); extern BackendId TwoPhaseGetDummyBackendId(TransactionId xid, bool lock_held); diff -Nru postgresql-13-13.4/src/include/access/visibilitymapdefs.h postgresql-13-13.7/src/include/access/visibilitymapdefs.h --- postgresql-13-13.4/src/include/access/visibilitymapdefs.h 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/include/access/visibilitymapdefs.h 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,25 @@ +/*------------------------------------------------------------------------- + * + * visibilitymapdefs.h + * macros for accessing contents of visibility map pages + * + * + * Copyright (c) 2021, PostgreSQL Global Development Group + * + * src/include/access/visibilitymapdefs.h + * + *------------------------------------------------------------------------- + */ +#ifndef VISIBILITYMAPDEFS_H +#define VISIBILITYMAPDEFS_H + +/* Number of bits for one heap page */ +#define BITS_PER_HEAPBLOCK 2 + +/* Flags for bit map */ +#define VISIBILITYMAP_ALL_VISIBLE 0x01 +#define VISIBILITYMAP_ALL_FROZEN 0x02 +#define VISIBILITYMAP_VALID_BITS 0x03 /* OR of all valid visibilitymap + * flags bits */ + +#endif /* VISIBILITYMAPDEFS_H */ diff -Nru postgresql-13-13.4/src/include/access/visibilitymap.h postgresql-13-13.7/src/include/access/visibilitymap.h --- postgresql-13-13.4/src/include/access/visibilitymap.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/access/visibilitymap.h 2022-05-09 21:16:30.000000000 +0000 @@ -14,20 +14,12 @@ #ifndef VISIBILITYMAP_H #define VISIBILITYMAP_H +#include "access/visibilitymapdefs.h" #include "access/xlogdefs.h" #include "storage/block.h" #include "storage/buf.h" #include "utils/relcache.h" -/* Number of bits for one heap page */ -#define BITS_PER_HEAPBLOCK 2 - -/* Flags for bit map */ -#define VISIBILITYMAP_ALL_VISIBLE 0x01 -#define VISIBILITYMAP_ALL_FROZEN 0x02 -#define VISIBILITYMAP_VALID_BITS 0x03 /* OR of all valid visibilitymap - * flags bits */ - /* Macros for visibilitymap test */ #define VM_ALL_VISIBLE(r, b, v) \ ((visibilitymap_get_status((r), (b), (v)) & VISIBILITYMAP_ALL_VISIBLE) != 0) diff -Nru postgresql-13-13.4/src/include/access/xlog_internal.h postgresql-13-13.7/src/include/access/xlog_internal.h --- postgresql-13-13.4/src/include/access/xlog_internal.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/access/xlog_internal.h 2022-05-09 21:16:30.000000000 +0000 @@ -79,8 +79,10 @@ #define XLP_LONG_HEADER 0x0002 /* This flag indicates backup blocks starting in this page are optional */ #define XLP_BKP_REMOVABLE 0x0004 +/* Replaces a missing contrecord; see CreateOverwriteContrecordRecord */ +#define XLP_FIRST_IS_OVERWRITE_CONTRECORD 0x0008 /* All defined flag bits in xlp_info (used for validity checking of header) */ -#define XLP_ALL_FLAGS 0x0007 +#define XLP_ALL_FLAGS 0x000F #define XLogPageHeaderSize(hdr) \ (((hdr)->xlp_info & XLP_LONG_HEADER) ? SizeOfXLogLongPHD : SizeOfXLogShortPHD) @@ -252,6 +254,13 @@ char rp_name[MAXFNAMELEN]; } xl_restore_point; +/* Overwrite of prior contrecord */ +typedef struct xl_overwrite_contrecord +{ + XLogRecPtr overwritten_lsn; + TimestampTz overwrite_time; +} xl_overwrite_contrecord; + /* End of recovery mark, when we don't do an END_OF_RECOVERY checkpoint */ typedef struct xl_end_of_recovery { diff -Nru postgresql-13-13.4/src/include/access/xlogreader.h postgresql-13-13.7/src/include/access/xlogreader.h --- postgresql-13-13.4/src/include/access/xlogreader.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/access/xlogreader.h 2022-05-09 21:16:30.000000000 +0000 @@ -250,6 +250,16 @@ /* Buffer to hold error message */ char *errormsg_buf; + + /* + * Set at the end of recovery: the start point of a partial record at the + * end of WAL (InvalidXLogRecPtr if there wasn't one), and the start + * location of its first contrecord that went missing. + */ + XLogRecPtr abortedRecPtr; + XLogRecPtr missingContrecPtr; + /* Set when XLP_FIRST_IS_OVERWRITE_CONTRECORD is found */ + XLogRecPtr overwrittenRecPtr; }; /* Get a new XLogReader */ diff -Nru postgresql-13-13.4/src/include/catalog/pg_class.h postgresql-13-13.7/src/include/catalog/pg_class.h --- postgresql-13-13.4/src/include/catalog/pg_class.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/catalog/pg_class.h 2022-05-09 21:16:30.000000000 +0000 @@ -178,7 +178,7 @@ /* * an explicitly chosen candidate key's columns are used as replica identity. * Note this will still be set if the index has been dropped; in that case it - * has the same meaning as 'd'. + * has the same meaning as 'n'. */ #define REPLICA_IDENTITY_INDEX 'i' diff -Nru postgresql-13-13.4/src/include/catalog/pg_control.h postgresql-13-13.7/src/include/catalog/pg_control.h --- postgresql-13-13.4/src/include/catalog/pg_control.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/catalog/pg_control.h 2022-05-09 21:16:30.000000000 +0000 @@ -76,6 +76,8 @@ #define XLOG_END_OF_RECOVERY 0x90 #define XLOG_FPI_FOR_HINT 0xA0 #define XLOG_FPI 0xB0 +/* 0xC0 is used in Postgres 9.5-11 */ +#define XLOG_OVERWRITE_CONTRECORD 0xD0 /* diff -Nru postgresql-13-13.4/src/include/catalog/pg_operator.h postgresql-13-13.7/src/include/catalog/pg_operator.h --- postgresql-13-13.4/src/include/catalog/pg_operator.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/catalog/pg_operator.h 2022-05-09 21:16:30.000000000 +0000 @@ -95,7 +95,9 @@ bool canMerge, bool canHash); -extern ObjectAddress makeOperatorDependencies(HeapTuple tuple, bool isUpdate); +extern ObjectAddress makeOperatorDependencies(HeapTuple tuple, + bool makeExtensionDep, + bool isUpdate); extern void OperatorUpd(Oid baseId, Oid commId, Oid negId, bool isDelete); diff -Nru postgresql-13-13.4/src/include/catalog/pg_publication.h postgresql-13-13.7/src/include/catalog/pg_publication.h --- postgresql-13-13.4/src/include/catalog/pg_publication.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/catalog/pg_publication.h 2022-05-09 21:16:30.000000000 +0000 @@ -107,6 +107,9 @@ extern bool is_publishable_relation(Relation rel); extern ObjectAddress publication_add_relation(Oid pubid, Relation targetrel, bool if_not_exists); +extern List *GetPubPartitionOptionRelations(List *result, + PublicationPartOpt pub_partopt, + Oid relid); extern Oid get_publication_oid(const char *pubname, bool missing_ok); extern char *get_publication_name(Oid pubid, bool missing_ok); diff -Nru postgresql-13-13.4/src/include/catalog/pg_type.h postgresql-13-13.7/src/include/catalog/pg_type.h --- postgresql-13-13.4/src/include/catalog/pg_type.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/catalog/pg_type.h 2022-05-09 21:16:30.000000000 +0000 @@ -359,6 +359,7 @@ * rowtypes */ bool isImplicitArray, bool isDependentType, + bool makeExtensionDep, bool rebuild); extern void RenameTypeInternal(Oid typeOid, const char *newTypeName, diff -Nru postgresql-13-13.4/src/include/catalog/toasting.h postgresql-13-13.7/src/include/catalog/toasting.h --- postgresql-13-13.4/src/include/catalog/toasting.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/catalog/toasting.h 2022-05-09 21:16:30.000000000 +0000 @@ -24,7 +24,7 @@ */ extern void NewRelationCreateToastTable(Oid relOid, Datum reloptions); extern void NewHeapCreateToastTable(Oid relOid, Datum reloptions, - LOCKMODE lockmode); + LOCKMODE lockmode, Oid OIDOldToast); extern void AlterTableCreateToastTable(Oid relOid, Datum reloptions, LOCKMODE lockmode); extern void BootstrapToastTable(char *relName, diff -Nru postgresql-13-13.4/src/include/commands/async.h postgresql-13-13.7/src/include/commands/async.h --- postgresql-13-13.4/src/include/commands/async.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/commands/async.h 2022-05-09 21:16:30.000000000 +0000 @@ -49,6 +49,6 @@ extern void HandleNotifyInterrupt(void); /* process interrupts */ -extern void ProcessNotifyInterrupt(void); +extern void ProcessNotifyInterrupt(bool flush); #endif /* ASYNC_H */ diff -Nru postgresql-13-13.4/src/include/commands/publicationcmds.h postgresql-13-13.7/src/include/commands/publicationcmds.h --- postgresql-13-13.4/src/include/commands/publicationcmds.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/commands/publicationcmds.h 2022-05-09 21:16:30.000000000 +0000 @@ -17,6 +17,10 @@ #include "catalog/objectaddress.h" #include "nodes/parsenodes.h" +#include "utils/inval.h" + +/* Same as MAXNUMMESSAGES in sinvaladt.c */ +#define MAX_RELCACHE_INVAL_MSGS 4096 extern ObjectAddress CreatePublication(CreatePublicationStmt *stmt); extern void AlterPublication(AlterPublicationStmt *stmt); @@ -25,5 +29,6 @@ extern ObjectAddress AlterPublicationOwner(const char *name, Oid newOwnerId); extern void AlterPublicationOwner_oid(Oid pubid, Oid newOwnerId); +extern void InvalidatePublicationRels(List *relids); #endif /* PUBLICATIONCMDS_H */ diff -Nru postgresql-13-13.4/src/include/commands/tablecmds.h postgresql-13-13.7/src/include/commands/tablecmds.h --- postgresql-13-13.4/src/include/commands/tablecmds.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/commands/tablecmds.h 2022-05-09 21:16:30.000000000 +0000 @@ -71,6 +71,8 @@ const char *newrelname, bool is_internal, bool is_index); +extern void ResetRelRewrite(Oid myrelid); + extern void find_composite_type_dependencies(Oid typeOid, Relation origRelation, const char *origTypeName); diff -Nru postgresql-13-13.4/src/include/jit/llvmjit.h postgresql-13-13.7/src/include/jit/llvmjit.h --- postgresql-13-13.4/src/include/jit/llvmjit.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/jit/llvmjit.h 2022-05-09 21:16:30.000000000 +0000 @@ -84,6 +84,7 @@ extern void llvm_enter_fatal_on_oom(void); extern void llvm_leave_fatal_on_oom(void); +extern bool llvm_in_fatal_on_oom(void); extern void llvm_reset_after_error(void); extern void llvm_assert_in_fatal_section(void); diff -Nru postgresql-13-13.4/src/include/lib/simplehash.h postgresql-13-13.7/src/include/lib/simplehash.h --- postgresql-13-13.4/src/include/lib/simplehash.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/lib/simplehash.h 2022-05-09 21:16:30.000000000 +0000 @@ -55,6 +55,11 @@ * presence is relevant to determine whether a lookup needs to continue * looking or is done - buckets following a deleted element are shifted * backwards, unless they're empty or already at their optimal position. + * + * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/lib/simplehash.h */ #include "port/pg_bitutils.h" @@ -156,7 +161,7 @@ #endif SH_SCOPE void SH_DESTROY(SH_TYPE * tb); SH_SCOPE void SH_RESET(SH_TYPE * tb); -SH_SCOPE void SH_GROW(SH_TYPE * tb, uint32 newsize); +SH_SCOPE void SH_GROW(SH_TYPE * tb, uint64 newsize); SH_SCOPE SH_ELEMENT_TYPE *SH_INSERT(SH_TYPE * tb, SH_KEY_TYPE key, bool *found); SH_SCOPE SH_ELEMENT_TYPE *SH_INSERT_HASH(SH_TYPE * tb, SH_KEY_TYPE key, uint32 hash, bool *found); @@ -218,7 +223,8 @@ #define SIMPLEHASH_H #ifdef FRONTEND -#define sh_error(...) pg_log_error(__VA_ARGS__) +#define sh_error(...) \ + do { pg_log_fatal(__VA_ARGS__); exit(1); } while(0) #define sh_log(...) pg_log_info(__VA_ARGS__) #else #define sh_error(...) elog(ERROR, __VA_ARGS__) @@ -232,7 +238,7 @@ * the hashtable. */ static inline void -SH_COMPUTE_PARAMETERS(SH_TYPE * tb, uint32 newsize) +SH_COMPUTE_PARAMETERS(SH_TYPE * tb, uint64 newsize) { uint64 size; @@ -247,16 +253,12 @@ * Verify that allocation of ->data is possible on this platform, without * overflowing Size. */ - if ((((uint64) sizeof(SH_ELEMENT_TYPE)) * size) >= SIZE_MAX / 2) + if (unlikely((((uint64) sizeof(SH_ELEMENT_TYPE)) * size) >= SIZE_MAX / 2)) sh_error("hash table too large"); /* now set size */ tb->size = size; - - if (tb->size == SH_MAX_SIZE) - tb->sizemask = 0; - else - tb->sizemask = tb->size - 1; + tb->sizemask = (uint32) (size - 1); /* * Compute the next threshold at which we need to grow the hash table @@ -406,7 +408,7 @@ * performance-wise, when known at some point. */ SH_SCOPE void -SH_GROW(SH_TYPE * tb, uint32 newsize) +SH_GROW(SH_TYPE * tb, uint64 newsize) { uint64 oldsize = tb->size; SH_ELEMENT_TYPE *olddata = tb->data; @@ -536,10 +538,8 @@ */ if (unlikely(tb->members >= tb->grow_threshold)) { - if (tb->size == SH_MAX_SIZE) - { + if (unlikely(tb->size == SH_MAX_SIZE)) sh_error("hash table size exceeded"); - } /* * When optimizing, it can be very useful to print these out. diff -Nru postgresql-13-13.4/src/include/libpq/be-gssapi-common.h postgresql-13-13.7/src/include/libpq/be-gssapi-common.h --- postgresql-13-13.4/src/include/libpq/be-gssapi-common.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/libpq/be-gssapi-common.h 2022-05-09 21:16:30.000000000 +0000 @@ -14,6 +14,8 @@ #ifndef BE_GSSAPI_COMMON_H #define BE_GSSAPI_COMMON_H +#ifdef ENABLE_GSS + #if defined(HAVE_GSSAPI_H) #include #else @@ -23,4 +25,6 @@ extern void pg_GSS_error(const char *errmsg, OM_uint32 maj_stat, OM_uint32 min_stat); +#endif /* ENABLE_GSS */ + #endif /* BE_GSSAPI_COMMON_H */ diff -Nru postgresql-13-13.4/src/include/libpq/libpq.h postgresql-13-13.7/src/include/libpq/libpq.h --- postgresql-13-13.4/src/include/libpq/libpq.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/libpq/libpq.h 2022-05-09 21:16:30.000000000 +0000 @@ -72,6 +72,7 @@ extern int pq_getbyte(void); extern int pq_peekbyte(void); extern int pq_getbyte_if_available(unsigned char *c); +extern bool pq_buffer_has_data(void); extern int pq_putbytes(const char *s, size_t len); /* diff -Nru postgresql-13-13.4/src/include/nodes/execnodes.h postgresql-13-13.7/src/include/nodes/execnodes.h --- postgresql-13-13.4/src/include/nodes/execnodes.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/nodes/execnodes.h 2022-05-09 21:16:30.000000000 +0000 @@ -1454,7 +1454,7 @@ /* ---------------- * IndexOnlyScanState information * - * indexqual execution state for indexqual expressions + * recheckqual execution state for recheckqual expressions * ScanKeys Skey structures for index quals * NumScanKeys number of ScanKeys * OrderByKeys Skey structures for index ordering operators @@ -1473,7 +1473,7 @@ typedef struct IndexOnlyScanState { ScanState ss; /* its first field is NodeTag */ - ExprState *indexqual; + ExprState *recheckqual; struct ScanKeyData *ioss_ScanKeys; int ioss_NumScanKeys; struct ScanKeyData *ioss_OrderByKeys; diff -Nru postgresql-13-13.4/src/include/nodes/parsenodes.h postgresql-13-13.7/src/include/nodes/parsenodes.h --- postgresql-13-13.4/src/include/nodes/parsenodes.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/nodes/parsenodes.h 2022-05-09 21:16:30.000000000 +0000 @@ -915,10 +915,10 @@ * inFromCl marks those range variables that are listed in the FROM clause. * It's false for RTEs that are added to a query behind the scenes, such * as the NEW and OLD variables for a rule, or the subqueries of a UNION. - * This flag is not used anymore during parsing, since the parser now uses - * a separate "namespace" data structure to control visibility, but it is - * needed by ruleutils.c to determine whether RTEs should be shown in - * decompiled queries. + * This flag is not used during parsing (except in transformLockingClause, + * q.v.); the parser now uses a separate "namespace" data structure to + * control visibility. But it is needed by ruleutils.c to determine + * whether RTEs should be shown in decompiled queries. * * requiredPerms and checkAsUser specify run-time access permissions * checks to be performed at query startup. The user must have *all* diff -Nru postgresql-13-13.4/src/include/nodes/pathnodes.h postgresql-13-13.7/src/include/nodes/pathnodes.h --- postgresql-13-13.4/src/include/nodes/pathnodes.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/nodes/pathnodes.h 2022-05-09 21:16:30.000000000 +0000 @@ -258,7 +258,8 @@ List *init_plans; /* init SubPlans for query */ - List *cte_plan_ids; /* per-CTE-item list of subplan IDs */ + List *cte_plan_ids; /* per-CTE-item list of subplan IDs (or -1 if + * no subplan was made for that CTE) */ List *multiexpr_params; /* List of Lists of Params for MULTIEXPR * subquery outputs */ diff -Nru postgresql-13-13.4/src/include/nodes/pg_list.h postgresql-13-13.7/src/include/nodes/pg_list.h --- postgresql-13-13.4/src/include/nodes/pg_list.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/nodes/pg_list.h 2022-05-09 21:16:30.000000000 +0000 @@ -560,6 +560,7 @@ extern List *list_delete_oid(List *list, Oid datum); extern List *list_delete_first(List *list); extern List *list_delete_last(List *list); +extern List *list_delete_first_n(List *list, int n); extern List *list_delete_nth_cell(List *list, int n); extern List *list_delete_cell(List *list, ListCell *cell); diff -Nru postgresql-13-13.4/src/include/nodes/plannodes.h postgresql-13-13.7/src/include/nodes/plannodes.h --- postgresql-13-13.4/src/include/nodes/plannodes.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/nodes/plannodes.h 2022-05-09 21:16:30.000000000 +0000 @@ -418,14 +418,28 @@ * index-only scan, in which the data comes from the index not the heap. * Because of this, *all* Vars in the plan node's targetlist, qual, and * index expressions reference index columns and have varno = INDEX_VAR. - * Hence we do not need separate indexqualorig and indexorderbyorig lists, - * since their contents would be equivalent to indexqual and indexorderby. + * + * We could almost use indexqual directly against the index's output tuple + * when rechecking lossy index operators, but that won't work for quals on + * index columns that are not retrievable. Hence, recheckqual is needed + * for rechecks: it expresses the same condition as indexqual, but using + * only index columns that are retrievable. (We will not generate an + * index-only scan if this is not possible. An example is that if an + * index has table column "x" in a retrievable index column "ind1", plus + * an expression f(x) in a non-retrievable column "ind2", an indexable + * query on f(x) will use "ind2" in indexqual and f(ind1) in recheckqual. + * Without the "ind1" column, an index-only scan would be disallowed.) + * + * We don't currently need a recheckable equivalent of indexorderby, + * because we don't support lossy operators in index ORDER BY. * * To help EXPLAIN interpret the index Vars for display, we provide * indextlist, which represents the contents of the index as a targetlist * with one TLE per index column. Vars appearing in this list reference * the base table, and this is the only field in the plan node that may - * contain such Vars. + * contain such Vars. Also, for the convenience of setrefs.c, TLEs in + * indextlist are marked as resjunk if they correspond to columns that + * the index AM cannot reconstruct. * ---------------- */ typedef struct IndexOnlyScan @@ -436,6 +450,7 @@ List *indexorderby; /* list of index ORDER BY exprs */ List *indextlist; /* TargetEntry list describing index's cols */ ScanDirection indexorderdir; /* forward or backward or don't care */ + List *recheckqual; /* index quals in recheckable form */ } IndexOnlyScan; /* ---------------- diff -Nru postgresql-13-13.4/src/include/parser/parse_coerce.h postgresql-13-13.7/src/include/parser/parse_coerce.h --- postgresql-13-13.4/src/include/parser/parse_coerce.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/parser/parse_coerce.h 2022-05-09 21:16:30.000000000 +0000 @@ -70,6 +70,7 @@ extern Node *coerce_to_common_type(ParseState *pstate, Node *node, Oid targetTypeId, const char *context); +extern bool verify_common_type(Oid common_type, List *exprs); extern bool check_generic_type_consistency(const Oid *actual_arg_types, const Oid *declared_arg_types, diff -Nru postgresql-13-13.4/src/include/pg_config.h.in postgresql-13-13.7/src/include/pg_config.h.in --- postgresql-13-13.4/src/include/pg_config.h.in 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/pg_config.h.in 2022-05-09 21:16:30.000000000 +0000 @@ -707,6 +707,9 @@ /* Define to 1 if your compiler understands __builtin_ctz. */ #undef HAVE__BUILTIN_CTZ +/* Define to 1 if your compiler understands __builtin_frame_address. */ +#undef HAVE__BUILTIN_FRAME_ADDRESS + /* Define to 1 if your compiler understands __builtin_$op_overflow. */ #undef HAVE__BUILTIN_OP_OVERFLOW diff -Nru postgresql-13-13.4/src/include/pgstat.h postgresql-13-13.7/src/include/pgstat.h --- postgresql-13-13.4/src/include/pgstat.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/pgstat.h 2022-05-09 21:16:30.000000000 +0000 @@ -902,7 +902,8 @@ WAIT_EVENT_PG_SLEEP, WAIT_EVENT_RECOVERY_APPLY_DELAY, WAIT_EVENT_RECOVERY_RETRIEVE_RETRY_INTERVAL, - WAIT_EVENT_VACUUM_DELAY + WAIT_EVENT_VACUUM_DELAY, + WAIT_EVENT_REGISTER_SYNC_REQUEST } WaitEventTimeout; /* ---------- diff -Nru postgresql-13-13.4/src/include/replication/snapbuild.h postgresql-13-13.7/src/include/replication/snapbuild.h --- postgresql-13-13.4/src/include/replication/snapbuild.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/replication/snapbuild.h 2022-05-09 21:16:30.000000000 +0000 @@ -69,6 +69,7 @@ extern Snapshot SnapBuildInitialSnapshot(SnapBuild *builder); extern const char *SnapBuildExportSnapshot(SnapBuild *snapstate); extern void SnapBuildClearExportedSnapshot(void); +extern void SnapBuildResetExportedSnapshotState(void); extern SnapBuildState SnapBuildCurrentState(SnapBuild *snapstate); extern Snapshot SnapBuildGetOrBuildSnapshot(SnapBuild *builder, diff -Nru postgresql-13-13.4/src/include/replication/walsender_private.h postgresql-13-13.7/src/include/replication/walsender_private.h --- postgresql-13-13.4/src/include/replication/walsender_private.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/replication/walsender_private.h 2022-05-09 21:16:30.000000000 +0000 @@ -121,6 +121,7 @@ extern void replication_yyerror(const char *str) pg_attribute_noreturn(); extern void replication_scanner_init(const char *query_string); extern void replication_scanner_finish(void); +extern bool replication_scanner_is_replication_command(void); extern Node *replication_parse_result; diff -Nru postgresql-13-13.4/src/include/storage/block.h postgresql-13-13.7/src/include/storage/block.h --- postgresql-13-13.4/src/include/storage/block.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/storage/block.h 2022-05-09 21:16:30.000000000 +0000 @@ -115,7 +115,7 @@ #define BlockIdGetBlockNumber(blockId) \ ( \ AssertMacro(BlockIdIsValid(blockId)), \ - (BlockNumber) (((blockId)->bi_hi << 16) | ((uint16) (blockId)->bi_lo)) \ + ((((BlockNumber) (blockId)->bi_hi) << 16) | ((BlockNumber) (blockId)->bi_lo)) \ ) #endif /* BLOCK_H */ diff -Nru postgresql-13-13.4/src/include/storage/lock.h postgresql-13-13.7/src/include/storage/lock.h --- postgresql-13-13.4/src/include/storage/lock.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/storage/lock.h 2022-05-09 21:16:30.000000000 +0000 @@ -46,10 +46,11 @@ /* * Top-level transactions are identified by VirtualTransactionIDs comprising - * PGPROC fields backendId and lxid. For prepared transactions, the - * LocalTransactionId is an ordinary XID. These are guaranteed unique over - * the short term, but will be reused after a database restart or XID - * wraparound; hence they should never be stored on disk. + * PGPROC fields backendId and lxid. For recovered prepared transactions, the + * LocalTransactionId is an ordinary XID; LOCKTAG_VIRTUALTRANSACTION never + * refers to that kind. These are guaranteed unique over the short term, but + * will be reused after a database restart or XID wraparound; hence they + * should never be stored on disk. * * Note that struct VirtualTransactionId can not be assumed to be atomically * assignable as a whole. However, type LocalTransactionId is assumed to @@ -69,7 +70,7 @@ #define LocalTransactionIdIsValid(lxid) ((lxid) != InvalidLocalTransactionId) #define VirtualTransactionIdIsValid(vxid) \ (LocalTransactionIdIsValid((vxid).localTransactionId)) -#define VirtualTransactionIdIsPreparedXact(vxid) \ +#define VirtualTransactionIdIsRecoveredPreparedXact(vxid) \ ((vxid).backendId == InvalidBackendId) #define VirtualTransactionIdEquals(vxid1, vxid2) \ ((vxid1).backendId == (vxid2).backendId && \ diff -Nru postgresql-13-13.4/src/include/storage/procarray.h postgresql-13-13.7/src/include/storage/procarray.h --- postgresql-13-13.4/src/include/storage/procarray.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/storage/procarray.h 2022-05-09 21:16:30.000000000 +0000 @@ -93,7 +93,11 @@ extern TransactionId GetOldestSafeDecodingTransactionId(bool catalogOnly); extern VirtualTransactionId *GetVirtualXIDsDelayingChkpt(int *nvxids); -extern bool HaveVirtualXIDsDelayingChkpt(VirtualTransactionId *vxids, int nvxids); +extern VirtualTransactionId *GetVirtualXIDsDelayingChkptEnd(int *nvxids); +extern bool HaveVirtualXIDsDelayingChkpt(VirtualTransactionId *vxids, + int nvxids); +extern bool HaveVirtualXIDsDelayingChkptEnd(VirtualTransactionId *vxids, + int nvxids); extern PGPROC *BackendPidGetProc(int pid); extern PGPROC *BackendPidGetProcWithLock(int pid); diff -Nru postgresql-13-13.4/src/include/storage/proc.h postgresql-13-13.7/src/include/storage/proc.h --- postgresql-13-13.4/src/include/storage/proc.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/storage/proc.h 2022-05-09 21:16:30.000000000 +0000 @@ -63,6 +63,13 @@ (PROC_IN_VACUUM | PROC_IN_ANALYZE | PROC_VACUUM_FOR_WRAPAROUND) /* + * Flags that are valid to copy from another proc, the parallel leader + * process in practice. Currently, a flag that is set during parallel + * vacuum is allowed. + */ +#define PROC_COPYABLE_FLAGS (PROC_IN_VACUUM) + +/* * We allow a small number of "weak" relation locks (AccessShareLock, * RowShareLock, RowExclusiveLock) to be recorded in the PGPROC structure * rather than the main lock table. This eases contention on the lock @@ -77,6 +84,13 @@ #define INVALID_PGPROCNO PG_INT32_MAX /* + * Flags used only for type of internal functions + * GetVirtualXIDsDelayingChkptGuts and HaveVirtualXIDsDelayingChkptGuts. + */ +#define DELAY_CHKPT_START (1<<0) +#define DELAY_CHKPT_COMPLETE (1<<1) + +/* * Each backend has a PGPROC struct in shared memory. There is also a list of * currently-unused PGPROC structs that will be reallocated to new backends. * @@ -143,6 +157,7 @@ * lock object by this backend */ bool delayChkpt; /* true if this proc delays checkpoint start */ + bool delayChkptEnd; /* true if this proc delays checkpoint end */ /* * Info to allow us to wait for synchronous replication, if needed. diff -Nru postgresql-13-13.4/src/include/storage/s_lock.h postgresql-13-13.7/src/include/storage/s_lock.h --- postgresql-13-13.4/src/include/storage/s_lock.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/storage/s_lock.h 2022-05-09 21:16:30.000000000 +0000 @@ -314,6 +314,7 @@ #endif /* __INTEL_COMPILER */ #endif /* __ia64__ || __ia64 */ + /* * On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available. * @@ -340,6 +341,29 @@ #endif /* __arm__ || __arm || __aarch64__ || __aarch64 */ +/* + * RISC-V likewise uses __sync_lock_test_and_set(int *, int) if available. + */ +#if defined(__riscv) +#ifdef HAVE_GCC__SYNC_INT32_TAS +#define HAS_TEST_AND_SET + +#define TAS(lock) tas(lock) + +typedef int slock_t; + +static __inline__ int +tas(volatile slock_t *lock) +{ + return __sync_lock_test_and_set(lock, 1); +} + +#define S_UNLOCK(lock) __sync_lock_release(lock) + +#endif /* HAVE_GCC__SYNC_INT32_TAS */ +#endif /* __riscv */ + + /* S/390 and S/390x Linux (32- and 64-bit zSeries) */ #if defined(__s390__) || defined(__s390x__) #define HAS_TEST_AND_SET diff -Nru postgresql-13-13.4/src/include/utils/builtins.h postgresql-13-13.7/src/include/utils/builtins.h --- postgresql-13-13.4/src/include/utils/builtins.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/utils/builtins.h 2022-05-09 21:16:30.000000000 +0000 @@ -89,6 +89,7 @@ /* xid.c */ extern int xidComparator(const void *arg1, const void *arg2); +extern int xidLogicalComparator(const void *arg1, const void *arg2); /* inet_cidr_ntop.c */ extern char *pg_inet_cidr_ntop(int af, const void *src, int bits, diff -Nru postgresql-13-13.4/src/include/utils/inval.h postgresql-13-13.7/src/include/utils/inval.h --- postgresql-13-13.4/src/include/utils/inval.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/utils/inval.h 2022-05-09 21:16:30.000000000 +0000 @@ -61,4 +61,5 @@ extern void CallSyscacheCallbacks(int cacheid, uint32 hashvalue); extern void InvalidateSystemCaches(void); +extern void InvalidateSystemCachesExtended(bool debug_discard); #endif /* INVAL_H */ diff -Nru postgresql-13-13.4/src/include/utils/portal.h postgresql-13-13.7/src/include/utils/portal.h --- postgresql-13-13.4/src/include/utils/portal.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/utils/portal.h 2022-05-09 21:16:30.000000000 +0000 @@ -195,6 +195,8 @@ TimestampTz creation_time; /* time at which this portal was defined */ bool visible; /* include this portal in pg_cursors? */ + /* Stuff added at the end to avoid ABI break in stable branches: */ + /* * Outermost ActiveSnapshot for execution of the portal's queries. For * all but a few utility commands, we require such a snapshot to exist. @@ -202,6 +204,7 @@ * and helps to reduce thrashing of the process's exposed xmin. */ Snapshot portalSnapshot; /* active snapshot, or NULL if none */ + int createLevel; /* creating subxact's nesting level */ } PortalData; /* @@ -219,6 +222,7 @@ extern void PortalErrorCleanup(void); extern void AtSubCommit_Portals(SubTransactionId mySubid, SubTransactionId parentSubid, + int parentLevel, ResourceOwner parentXactOwner); extern void AtSubAbort_Portals(SubTransactionId mySubid, SubTransactionId parentSubid, diff -Nru postgresql-13-13.4/src/include/utils/relcache.h postgresql-13-13.7/src/include/utils/relcache.h --- postgresql-13-13.4/src/include/utils/relcache.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/utils/relcache.h 2022-05-09 21:16:30.000000000 +0000 @@ -14,7 +14,6 @@ #ifndef RELCACHE_H #define RELCACHE_H -#include "postgres.h" #include "access/tupdesc.h" #include "nodes/bitmapset.h" @@ -121,7 +120,7 @@ extern void RelationCacheInvalidateEntry(Oid relationId); -extern void RelationCacheInvalidate(void); +extern void RelationCacheInvalidate(bool debug_discard); extern void RelationCloseSmgrByOid(Oid relationId); diff -Nru postgresql-13-13.4/src/include/utils/rel.h postgresql-13-13.7/src/include/utils/rel.h --- postgresql-13-13.4/src/include/utils/rel.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/utils/rel.h 2022-05-09 21:16:30.000000000 +0000 @@ -298,7 +298,6 @@ { int32 vl_len_; /* varlena header (do not touch directly!) */ int fillfactor; /* page fill factor in percent (0..100) */ - /* fraction of newly inserted tuples prior to trigger index cleanup */ int toast_tuple_target; /* target for tuple toasting */ AutoVacOpts autovacuum; /* autovacuum-related options */ bool user_catalog_table; /* use as an additional catalog relation */ diff -Nru postgresql-13-13.4/src/include/utils/relptr.h postgresql-13-13.7/src/include/utils/relptr.h --- postgresql-13-13.4/src/include/utils/relptr.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/utils/relptr.h 2022-05-09 21:16:30.000000000 +0000 @@ -56,11 +56,24 @@ #define relptr_is_null(rp) \ ((rp).relptr_off == 0) +/* We use this inline to avoid double eval of "val" in relptr_store */ +static inline Size +relptr_store_eval(char *base, char *val) +{ + if (val == NULL) + return 0; + else + { + Assert(val > base); + return val - base; + } +} + #ifdef HAVE__BUILTIN_TYPES_COMPATIBLE_P #define relptr_store(base, rp, val) \ (AssertVariableIsOfTypeMacro(base, char *), \ AssertVariableIsOfTypeMacro(val, __typeof__((rp).relptr_type)), \ - (rp).relptr_off = ((val) == NULL ? 0 : ((char *) (val)) - (base))) + (rp).relptr_off = relptr_store_eval(base, (char *) (val))) #else /* * If we don't have __builtin_types_compatible_p, assume we might not have @@ -68,7 +81,7 @@ */ #define relptr_store(base, rp, val) \ (AssertVariableIsOfTypeMacro(base, char *), \ - (rp).relptr_off = ((val) == NULL ? 0 : ((char *) (val)) - (base))) + (rp).relptr_off = relptr_store_eval(base, (char *) (val))) #endif #define relptr_copy(rp1, rp2) \ diff -Nru postgresql-13-13.4/src/include/utils/snapmgr.h postgresql-13-13.7/src/include/utils/snapmgr.h --- postgresql-13-13.4/src/include/utils/snapmgr.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/include/utils/snapmgr.h 2022-05-09 21:16:30.000000000 +0000 @@ -110,6 +110,7 @@ extern void InvalidateCatalogSnapshotConditionally(void); extern void PushActiveSnapshot(Snapshot snapshot); +extern void PushActiveSnapshotWithLevel(Snapshot snapshot, int snap_level); extern void PushCopiedSnapshot(Snapshot snapshot); extern void UpdateActiveSnapshotCommandId(void); extern void PopActiveSnapshot(void); diff -Nru postgresql-13-13.4/src/interfaces/ecpg/ecpglib/connect.c postgresql-13-13.7/src/interfaces/ecpg/ecpglib/connect.c --- postgresql-13-13.4/src/interfaces/ecpg/ecpglib/connect.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/ecpglib/connect.c 2022-05-09 21:16:30.000000000 +0000 @@ -484,37 +484,10 @@ else realname = NULL; - /* add connection to our list */ -#ifdef ENABLE_THREAD_SAFETY - pthread_mutex_lock(&connections_mutex); -#endif - if (connection_name != NULL) - this->name = ecpg_strdup(connection_name, lineno); - else - this->name = ecpg_strdup(realname, lineno); - - this->cache_head = NULL; - this->prep_stmts = NULL; - - if (all_connections == NULL) - this->next = NULL; - else - this->next = all_connections; - - all_connections = this; -#ifdef ENABLE_THREAD_SAFETY - pthread_setspecific(actual_connection_key, all_connections); -#endif - actual_connection = all_connections; - - ecpg_log("ECPGconnect: opening database %s on %s port %s %s%s %s%s\n", - realname ? realname : "", - host ? host : "", - port ? (ecpg_internal_regression_mode ? "" : port) : "", - options ? "with options " : "", options ? options : "", - (user && strlen(user) > 0) ? "for user " : "", user ? user : ""); - - /* count options (this may produce an overestimate, it's ok) */ + /* + * Count options for the allocation done below (this may produce an + * overestimate, it's ok). + */ if (options) for (i = 0; options[i]; i++) if (options[i] == '=') @@ -525,7 +498,11 @@ if (passwd && strlen(passwd) > 0) connect_params++; - /* allocate enough space for all connection parameters */ + /* + * Allocate enough space for all connection parameters. These allocations + * are done before manipulating the list of connections to ease the error + * handling on failure. + */ conn_keywords = (const char **) ecpg_alloc((connect_params + 1) * sizeof(char *), lineno); conn_values = (const char **) ecpg_alloc(connect_params * sizeof(char *), lineno); if (conn_keywords == NULL || conn_values == NULL) @@ -548,6 +525,36 @@ return false; } + /* add connection to our list */ +#ifdef ENABLE_THREAD_SAFETY + pthread_mutex_lock(&connections_mutex); +#endif + if (connection_name != NULL) + this->name = ecpg_strdup(connection_name, lineno); + else + this->name = ecpg_strdup(realname, lineno); + + this->cache_head = NULL; + this->prep_stmts = NULL; + + if (all_connections == NULL) + this->next = NULL; + else + this->next = all_connections; + + all_connections = this; +#ifdef ENABLE_THREAD_SAFETY + pthread_setspecific(actual_connection_key, all_connections); +#endif + actual_connection = all_connections; + + ecpg_log("ECPGconnect: opening database %s on %s port %s %s%s %s%s\n", + realname ? realname : "", + host ? host : "", + port ? (ecpg_internal_regression_mode ? "" : port) : "", + options ? "with options " : "", options ? options : "", + (user && strlen(user) > 0) ? "for user " : "", user ? user : ""); + i = 0; if (realname) { diff -Nru postgresql-13-13.4/src/interfaces/ecpg/ecpglib/misc.c postgresql-13-13.7/src/interfaces/ecpg/ecpglib/misc.c --- postgresql-13-13.4/src/interfaces/ecpg/ecpglib/misc.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/ecpglib/misc.c 2022-05-09 21:16:30.000000000 +0000 @@ -491,7 +491,14 @@ char * ecpg_gettext(const char *msgid) { - static bool already_bound = false; + /* + * If multiple threads come through here at about the same time, it's okay + * for more than one of them to call bindtextdomain(). But it's not okay + * for any of them to reach dgettext() before bindtextdomain() is + * complete, so don't set the flag till that's done. Use "volatile" just + * to be sure the compiler doesn't try to get cute. + */ + static volatile bool already_bound = false; if (!already_bound) { @@ -503,12 +510,12 @@ #endif const char *ldir; - already_bound = true; /* No relocatable lookup here because the binary could be anywhere */ ldir = getenv("PGLOCALEDIR"); if (!ldir) ldir = LOCALEDIR; bindtextdomain(PG_TEXTDOMAIN("ecpglib"), ldir); + already_bound = true; #ifdef WIN32 SetLastError(save_errno); #else diff -Nru postgresql-13-13.4/src/interfaces/ecpg/ecpglib/po/ru.po postgresql-13-13.7/src/interfaces/ecpg/ecpglib/po/ru.po --- postgresql-13-13.4/src/interfaces/ecpg/ecpglib/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/ecpglib/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: ecpglib (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-03 11:22+0300\n" +"POT-Creation-Date: 2021-09-13 07:55+0300\n" "PO-Revision-Date: 2019-09-09 13:30+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -21,7 +21,7 @@ msgid "empty message text" msgstr "пустое сообщение" -#: connect.c:401 connect.c:430 connect.c:653 +#: connect.c:401 connect.c:430 connect.c:660 msgid "" msgstr "<ПО_УМОЛЧАНИЮ>" diff -Nru postgresql-13-13.4/src/interfaces/ecpg/ecpglib/po/sv.po postgresql-13-13.7/src/interfaces/ecpg/ecpglib/po/sv.po --- postgresql-13-13.4/src/interfaces/ecpg/ecpglib/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/ecpglib/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # SWEDISH message translation file for ecpglib # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-10 02:39+0000\n" -"PO-Revision-Date: 2020-04-10 07:44+0200\n" +"POT-Creation-Date: 2022-02-18 04:23+0000\n" +"PO-Revision-Date: 2021-11-07 10:36+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -21,7 +21,7 @@ msgid "empty message text" msgstr "tom meddelandetext" -#: connect.c:401 connect.c:430 connect.c:653 +#: connect.c:401 connect.c:430 connect.c:660 msgid "" msgstr "" diff -Nru postgresql-13-13.4/src/interfaces/ecpg/Makefile postgresql-13-13.7/src/interfaces/ecpg/Makefile --- postgresql-13-13.4/src/interfaces/ecpg/Makefile 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/Makefile 2022-05-09 21:16:30.000000000 +0000 @@ -26,5 +26,6 @@ clean distclean maintainer-clean: $(MAKE) -C test clean +checktcp: | temp-install check checktcp installcheck: $(MAKE) -C test $@ diff -Nru postgresql-13-13.4/src/interfaces/ecpg/preproc/po/fr.po postgresql-13-13.7/src/interfaces/ecpg/preproc/po/fr.po --- postgresql-13-13.4/src/interfaces/ecpg/preproc/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/preproc/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -78,7 +78,7 @@ #: ecpg.c:40 #, c-format msgid "Options:\n" -msgstr "Options:\n" +msgstr "Options :\n" #: ecpg.c:41 #, c-format @@ -86,8 +86,8 @@ " -c automatically generate C code from embedded SQL code;\n" " this affects EXEC SQL TYPE\n" msgstr "" -" -c produit automatiquement le code C à partir du code SQL embarqué ;\n" -" ceci affecte EXEC SQL TYPE\n" +" -c produit automatiquement le code C à partir du code SQL\n" +" embarqué ; ceci affecte EXEC SQL TYPE\n" #: ecpg.c:43 #, c-format @@ -111,7 +111,9 @@ #: ecpg.c:49 #, c-format msgid " -h parse a header file, this option includes option \"-c\"\n" -msgstr " -h analyse un fichier d'en-tête, cette option inclut l'option « -c »\n" +msgstr "" +" -h analyse un fichier d'en-tête, cette option inclut l'option\n" +" « -c »\n" #: ecpg.c:50 #, c-format @@ -165,9 +167,9 @@ "input file name, after stripping off .pgc if present.\n" msgstr "" "\n" -"Si aucun nom de fichier en sortie n'est fourni, le nom est formaté en\n" -"ajoutant le suffixe .c au nom du fichier en entrée après avoir supprimé le\n" -"suffixe .pgc s'il est présent\n" +"Si aucun nom de fichier en sortie n'est fourni, le nom est formaté en ajoutant\n" +"le suffixe .c au nom du fichier en entrée après avoir supprimé le suffixe .pgc\n" +"s'il est présent.\n" #: ecpg.c:61 #, c-format @@ -181,12 +183,12 @@ #: ecpg.c:62 #, c-format msgid "%s home page: <%s>\n" -msgstr "page d'accueil de %s : <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" #: ecpg.c:140 #, c-format msgid "%s: could not locate my own executable path\n" -msgstr "%s : n'a pas pu localiser mon propre exécutable\n" +msgstr "%s : n'a pas pu localiser le chemin de mon propre exécutable\n" #: ecpg.c:175 ecpg.c:332 ecpg.c:343 #, c-format @@ -246,7 +248,7 @@ #: pgc.l:527 #, c-format msgid "unterminated hexadecimal string literal" -msgstr "chaîne hexadécimale litéralle non terminée" +msgstr "chaîne hexadécimale litérale non terminée" #: pgc.l:602 #, c-format diff -Nru postgresql-13-13.4/src/interfaces/ecpg/preproc/po/ru.po postgresql-13-13.7/src/interfaces/ecpg/preproc/po/ru.po --- postgresql-13-13.4/src/interfaces/ecpg/preproc/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/preproc/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,13 +1,13 @@ # Russian message translation file for ecpg # Copyright (C) 2012-2016 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: ecpg (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2020-11-09 07:34+0300\n" -"PO-Revision-Date: 2020-11-09 08:27+0300\n" +"PO-Revision-Date: 2021-09-04 10:54+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -184,7 +184,7 @@ #: ecpg.c:140 #, c-format msgid "%s: could not locate my own executable path\n" -msgstr "%s: не удалось найти свой путь к исполняемым файлам\n" +msgstr "%s: не удалось найти путь к собственному исполняемому файлу\n" #: ecpg.c:175 ecpg.c:332 ecpg.c:343 #, c-format @@ -271,7 +271,7 @@ #: pgc.l:705 #, c-format msgid "unterminated dollar-quoted string" -msgstr "незавершённая строка в долларах" +msgstr "незавершённая строка с $" #: pgc.l:723 pgc.l:736 #, c-format diff -Nru postgresql-13-13.4/src/interfaces/ecpg/preproc/po/sv.po postgresql-13-13.7/src/interfaces/ecpg/preproc/po/sv.po --- postgresql-13-13.4/src/interfaces/ecpg/preproc/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/preproc/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # SWEDISHE message translation file for ecpg # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-10 02:39+0000\n" -"PO-Revision-Date: 2020-04-10 07:48+0200\n" +"POT-Creation-Date: 2022-02-18 04:23+0000\n" +"PO-Revision-Date: 2021-11-06 21:58+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -170,7 +170,9 @@ msgid "" "\n" "Report bugs to <%s>.\n" -msgstr "\nRapportera fel till <%s>.\n" +msgstr "" +"\n" +"Rapportera fel till <%s>.\n" #: ecpg.c:62 #, c-format @@ -227,112 +229,117 @@ msgid "could not remove output file \"%s\"\n" msgstr "kunde inte ta bort utdatafil \"%s\"\n" -#: pgc.l:486 +#: pgc.l:502 #, c-format msgid "unterminated /* comment" msgstr "ej avslutad /*-kommentar" -#: pgc.l:503 +#: pgc.l:519 #, c-format msgid "unterminated bit string literal" msgstr "ej avslutad bitsträngslitteral" -#: pgc.l:511 +#: pgc.l:527 #, c-format msgid "unterminated hexadecimal string literal" msgstr "ej avslutad hexadecimal stränglitteral" -#: pgc.l:586 +#: pgc.l:602 #, c-format msgid "invalid bit string literal" msgstr "ogiltig bit-sträng-literal" #: pgc.l:607 #, c-format +msgid "invalid hex string literal" +msgstr "ogiltig hex-sträng-literal" + +#: pgc.l:625 +#, c-format msgid "unhandled previous state in xqs\n" msgstr "tidigare state i xqs som ej kan hanteras\n" -#: pgc.l:636 pgc.l:738 +#: pgc.l:654 pgc.l:756 #, c-format msgid "unterminated quoted string" msgstr "icketerminerad citerad sträng" -#: pgc.l:687 +#: pgc.l:705 #, c-format msgid "unterminated dollar-quoted string" msgstr "icke terminerad dollarciterad sträng" -#: pgc.l:705 pgc.l:718 +#: pgc.l:723 pgc.l:736 #, c-format msgid "zero-length delimited identifier" msgstr "noll-längds avdelad identifierare" -#: pgc.l:729 +#: pgc.l:747 #, c-format msgid "unterminated quoted identifier" msgstr "ej avslutad citerad identifierare" -#: pgc.l:1060 +#: pgc.l:1078 #, c-format msgid "nested /* ... */ comments" msgstr "nästlade /* ... */-kommentarer" -#: pgc.l:1153 +#: pgc.l:1171 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "saknar identifierare i EXEC SQL UNDEF-kommando" -#: pgc.l:1199 pgc.l:1213 +#: pgc.l:1189 pgc.l:1202 pgc.l:1218 pgc.l:1231 +#, c-format +msgid "too many nested EXEC SQL IFDEF conditions" +msgstr "för många nästlade EXEC SQL IFDEF-villkor" + +#: pgc.l:1247 pgc.l:1258 pgc.l:1273 pgc.l:1295 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "saknar matchande \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" -#: pgc.l:1202 pgc.l:1215 pgc.l:1393 +#: pgc.l:1249 pgc.l:1260 pgc.l:1441 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "saknar \"EXEC SQL ENDIF;\"" -#: pgc.l:1231 pgc.l:1250 +#: pgc.l:1275 pgc.l:1297 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "mer än en EXEC SQL ELSE" -#: pgc.l:1272 pgc.l:1286 +#: pgc.l:1320 pgc.l:1334 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "ej matchad EXEC SQL ENDIF" -#: pgc.l:1306 -#, c-format -msgid "too many nested EXEC SQL IFDEF conditions" -msgstr "för många nästlade EXEC SQL IFDEF-villkor" - -#: pgc.l:1341 +#: pgc.l:1389 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "saknar identifierare i EXEC SQL IFDEF-kommando" -#: pgc.l:1350 +#: pgc.l:1398 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "saknar identifierare i EXEC SQL DEFINE-kommando" -#: pgc.l:1383 +#: pgc.l:1431 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "syntaxfel i EXEC SQL INCLUDE-kommando" -#: pgc.l:1433 +#: pgc.l:1481 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "internt fel: state som ej skall kunna nås; vänligen rapportera detta till <%s>" -#: pgc.l:1583 +#: pgc.l:1633 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "Fel: include-sökväg \"%s/%s\" är för lång på rad %d, hoppar över\n" -#: pgc.l:1606 +#: pgc.l:1656 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "kunde inte öppna inkludefil \"%s\" på rad %d" @@ -351,200 +358,200 @@ msgid "ERROR: " msgstr "FEL: " -#: preproc.y:509 +#: preproc.y:512 #, c-format msgid "cursor \"%s\" does not exist" msgstr "markör \"%s\" existerar inte" -#: preproc.y:538 +#: preproc.y:541 #, c-format msgid "initializer not allowed in type definition" msgstr "initialiserare tillåts inte i typdefinition" -#: preproc.y:540 +#: preproc.y:543 #, c-format msgid "type name \"string\" is reserved in Informix mode" msgstr "typnamn \"string\" är reserverat i Informix-läge" -#: preproc.y:547 preproc.y:15954 +#: preproc.y:550 preproc.y:15962 #, c-format msgid "type \"%s\" is already defined" msgstr "typen \"%s\" är redan definierad" -#: preproc.y:572 preproc.y:16597 preproc.y:16922 variable.c:621 +#: preproc.y:575 preproc.y:16605 preproc.y:16930 variable.c:621 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "multidimensionella array:er för enkla datatyper stöds inte" -#: preproc.y:1701 +#: preproc.y:1706 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "AT-flaggan tillåts inte i CLOSE DATABASE-sats" -#: preproc.y:1949 +#: preproc.y:1954 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "AT-flaggan tillåts inte i CONNECT-sats" -#: preproc.y:1983 +#: preproc.y:1988 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "AT-flaggan tillåts inte i DISCONNECT-sats" -#: preproc.y:2038 +#: preproc.y:2043 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "AT-flaggan tillåts inte i SET CONNECTION-sats" -#: preproc.y:2060 +#: preproc.y:2065 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "AT-flaggan tillåts inte i TYPE-sats" -#: preproc.y:2069 +#: preproc.y:2074 #, c-format msgid "AT option not allowed in VAR statement" msgstr "AT-flaggan tillåts inte i VAR-sats" -#: preproc.y:2076 +#: preproc.y:2081 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "AT-flaggan tillåts inte i WHENEVER-sats" -#: preproc.y:2153 preproc.y:2325 preproc.y:2330 preproc.y:2453 preproc.y:4031 -#: preproc.y:4691 preproc.y:5633 preproc.y:5933 preproc.y:7551 preproc.y:9079 -#: preproc.y:9084 preproc.y:11915 +#: preproc.y:2158 preproc.y:2330 preproc.y:2335 preproc.y:2458 preproc.y:4036 +#: preproc.y:4684 preproc.y:5626 preproc.y:5926 preproc.y:7544 preproc.y:9083 +#: preproc.y:9088 preproc.y:11923 #, c-format msgid "unsupported feature will be passed to server" msgstr "ej stödd funktion skickass till servern" -#: preproc.y:2711 +#: preproc.y:2716 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL är inte implementerad" -#: preproc.y:3379 +#: preproc.y:3384 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "COPY FROM STDIN är inte implementerad" -#: preproc.y:10058 preproc.y:15539 +#: preproc.y:10062 preproc.y:15547 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "använda variabel \"%s\" i olika deklarationssatser stöds inte" -#: preproc.y:10060 preproc.y:15541 +#: preproc.y:10064 preproc.y:15549 #, c-format msgid "cursor \"%s\" is already defined" msgstr "markören \"%s\" är redan definierad" -#: preproc.y:10500 +#: preproc.y:10504 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "ej längre stödd syntax LIMIT #,# har skickats till servern" -#: preproc.y:10829 preproc.y:10836 +#: preproc.y:10837 preproc.y:10844 #, c-format msgid "subquery in FROM must have an alias" msgstr "subfråga i FROM måste ha ett alias" -#: preproc.y:15262 preproc.y:15269 +#: preproc.y:15270 preproc.y:15277 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "CREATE TABLE AS kan inte ange INTO" -#: preproc.y:15305 +#: preproc.y:15313 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "förväntade \"@\", hittade \"%s\"" -#: preproc.y:15317 +#: preproc.y:15325 #, c-format msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported" msgstr "bara protokoll \"tcp\" och \"unix\" samt databastyp \"postgresql\" stöds" -#: preproc.y:15320 +#: preproc.y:15328 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "förväntade \"://\", hittade \"%s\"" -#: preproc.y:15325 +#: preproc.y:15333 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "Unix-domän-socket fungerart bara på \"localhost\" men inte på \"%s\"" -#: preproc.y:15351 +#: preproc.y:15359 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "förväntade \"postgresql\", hittade \"%s\"" -#: preproc.y:15354 +#: preproc.y:15362 #, c-format msgid "invalid connection type: %s" msgstr "ogiltig anslutningstyp: %s" -#: preproc.y:15363 +#: preproc.y:15371 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "förväntade \"@\" eller \"://\", hittade \"%s\"" -#: preproc.y:15438 preproc.y:15456 +#: preproc.y:15446 preproc.y:15464 #, c-format msgid "invalid data type" msgstr "ogiltig datatyp" -#: preproc.y:15467 preproc.y:15484 +#: preproc.y:15475 preproc.y:15492 #, c-format msgid "incomplete statement" msgstr "ofullständig sats" -#: preproc.y:15470 preproc.y:15487 +#: preproc.y:15478 preproc.y:15495 #, c-format msgid "unrecognized token \"%s\"" msgstr "okänd symbol \"%s\"" -#: preproc.y:15757 +#: preproc.y:15765 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "bara datatyperna numeric och decimal har precision/skala-argument" -#: preproc.y:15769 +#: preproc.y:15777 #, c-format msgid "interval specification not allowed here" msgstr "intervallspecifikation tillåts inte här" -#: preproc.y:15929 preproc.y:15981 +#: preproc.y:15937 preproc.y:15989 #, c-format msgid "too many levels in nested structure/union definition" msgstr "för många nästlade nivåer i struktur/union-definition" -#: preproc.y:16104 +#: preproc.y:16112 #, c-format msgid "pointers to varchar are not implemented" msgstr "pekare till varchar är inte implementerat" -#: preproc.y:16291 preproc.y:16316 +#: preproc.y:16299 preproc.y:16324 #, c-format msgid "using unsupported DESCRIBE statement" msgstr "använder ej stödd DESCRIBE-sats" -#: preproc.y:16563 +#: preproc.y:16571 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "initialiserare tillåts inte i EXEC SQL VAR-kommando" -#: preproc.y:16880 +#: preproc.y:16888 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "array:er av indikatorer tillåts inte vid indata" -#: preproc.y:17067 +#: preproc.y:17075 #, c-format msgid "operator not allowed in variable definition" msgstr "operator tillåts inte i variabeldefinition" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:17108 +#: preproc.y:17116 #, c-format msgid "%s at or near \"%s\"" msgstr "%s vid eller nära \"%s\"" diff -Nru postgresql-13-13.4/src/interfaces/ecpg/preproc/preproc.c postgresql-13-13.7/src/interfaces/ecpg/preproc/preproc.c --- postgresql-13-13.4/src/interfaces/ecpg/preproc/preproc.c 2021-08-09 21:03:34.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/preproc/preproc.c 2022-05-09 21:29:48.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,13 +70,12 @@ #define yyerror base_yyerror #define yydebug base_yydebug #define yynerrs base_yynerrs - #define yylval base_yylval #define yychar base_yychar #define yylloc base_yylloc /* First part of user prologue. */ -#line 5 "preproc.y" /* yacc.c:337 */ +#line 5 "preproc.y" #include "postgres_fe.h" @@ -652,7 +652,17 @@ } } -#line 656 "preproc.c" /* yacc.c:337 */ +#line 656 "preproc.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -665,625 +675,1395 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* In a future release of Bison, this section will be replaced - by #include "preproc.h". */ -#ifndef YY_BASE_YY_PREPROC_H_INCLUDED -# define YY_BASE_YY_PREPROC_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int base_yydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - SQL_ALLOCATE = 258, - SQL_AUTOCOMMIT = 259, - SQL_BOOL = 260, - SQL_BREAK = 261, - SQL_CARDINALITY = 262, - SQL_CONNECT = 263, - SQL_COUNT = 264, - SQL_DATETIME_INTERVAL_CODE = 265, - SQL_DATETIME_INTERVAL_PRECISION = 266, - SQL_DESCRIBE = 267, - SQL_DESCRIPTOR = 268, - SQL_DISCONNECT = 269, - SQL_FOUND = 270, - SQL_FREE = 271, - SQL_GET = 272, - SQL_GO = 273, - SQL_GOTO = 274, - SQL_IDENTIFIED = 275, - SQL_INDICATOR = 276, - SQL_KEY_MEMBER = 277, - SQL_LENGTH = 278, - SQL_LONG = 279, - SQL_NULLABLE = 280, - SQL_OCTET_LENGTH = 281, - SQL_OPEN = 282, - SQL_OUTPUT = 283, - SQL_REFERENCE = 284, - SQL_RETURNED_LENGTH = 285, - SQL_RETURNED_OCTET_LENGTH = 286, - SQL_SCALE = 287, - SQL_SECTION = 288, - SQL_SHORT = 289, - SQL_SIGNED = 290, - SQL_SQLERROR = 291, - SQL_SQLPRINT = 292, - SQL_SQLWARNING = 293, - SQL_START = 294, - SQL_STOP = 295, - SQL_STRUCT = 296, - SQL_UNSIGNED = 297, - SQL_VAR = 298, - SQL_WHENEVER = 299, - S_ADD = 300, - S_AND = 301, - S_ANYTHING = 302, - S_AUTO = 303, - S_CONST = 304, - S_DEC = 305, - S_DIV = 306, - S_DOTPOINT = 307, - S_EQUAL = 308, - S_EXTERN = 309, - S_INC = 310, - S_LSHIFT = 311, - S_MEMPOINT = 312, - S_MEMBER = 313, - S_MOD = 314, - S_MUL = 315, - S_NEQUAL = 316, - S_OR = 317, - S_REGISTER = 318, - S_RSHIFT = 319, - S_STATIC = 320, - S_SUB = 321, - S_VOLATILE = 322, - S_TYPEDEF = 323, - CSTRING = 324, - CVARIABLE = 325, - CPP_LINE = 326, - IP = 327, - IDENT = 328, - UIDENT = 329, - FCONST = 330, - SCONST = 331, - USCONST = 332, - BCONST = 333, - XCONST = 334, - Op = 335, - ICONST = 336, - PARAM = 337, - TYPECAST = 338, - DOT_DOT = 339, - COLON_EQUALS = 340, - EQUALS_GREATER = 341, - LESS_EQUALS = 342, - GREATER_EQUALS = 343, - NOT_EQUALS = 344, - ABORT_P = 345, - ABSOLUTE_P = 346, - ACCESS = 347, - ACTION = 348, - ADD_P = 349, - ADMIN = 350, - AFTER = 351, - AGGREGATE = 352, - ALL = 353, - ALSO = 354, - ALTER = 355, - ALWAYS = 356, - ANALYSE = 357, - ANALYZE = 358, - AND = 359, - ANY = 360, - ARRAY = 361, - AS = 362, - ASC = 363, - ASSERTION = 364, - ASSIGNMENT = 365, - ASYMMETRIC = 366, - AT = 367, - ATTACH = 368, - ATTRIBUTE = 369, - AUTHORIZATION = 370, - BACKWARD = 371, - BEFORE = 372, - BEGIN_P = 373, - BETWEEN = 374, - BIGINT = 375, - BINARY = 376, - BIT = 377, - BOOLEAN_P = 378, - BOTH = 379, - BY = 380, - CACHE = 381, - CALL = 382, - CALLED = 383, - CASCADE = 384, - CASCADED = 385, - CASE = 386, - CAST = 387, - CATALOG_P = 388, - CHAIN = 389, - CHAR_P = 390, - CHARACTER = 391, - CHARACTERISTICS = 392, - CHECK = 393, - CHECKPOINT = 394, - CLASS = 395, - CLOSE = 396, - CLUSTER = 397, - COALESCE = 398, - COLLATE = 399, - COLLATION = 400, - COLUMN = 401, - COLUMNS = 402, - COMMENT = 403, - COMMENTS = 404, - COMMIT = 405, - COMMITTED = 406, - CONCURRENTLY = 407, - CONFIGURATION = 408, - CONFLICT = 409, - CONNECTION = 410, - CONSTRAINT = 411, - CONSTRAINTS = 412, - CONTENT_P = 413, - CONTINUE_P = 414, - CONVERSION_P = 415, - COPY = 416, - COST = 417, - CREATE = 418, - CROSS = 419, - CSV = 420, - CUBE = 421, - CURRENT_P = 422, - CURRENT_CATALOG = 423, - CURRENT_DATE = 424, - CURRENT_ROLE = 425, - CURRENT_SCHEMA = 426, - CURRENT_TIME = 427, - CURRENT_TIMESTAMP = 428, - CURRENT_USER = 429, - CURSOR = 430, - CYCLE = 431, - DATA_P = 432, - DATABASE = 433, - DAY_P = 434, - DEALLOCATE = 435, - DEC = 436, - DECIMAL_P = 437, - DECLARE = 438, - DEFAULT = 439, - DEFAULTS = 440, - DEFERRABLE = 441, - DEFERRED = 442, - DEFINER = 443, - DELETE_P = 444, - DELIMITER = 445, - DELIMITERS = 446, - DEPENDS = 447, - DESC = 448, - DETACH = 449, - DICTIONARY = 450, - DISABLE_P = 451, - DISCARD = 452, - DISTINCT = 453, - DO = 454, - DOCUMENT_P = 455, - DOMAIN_P = 456, - DOUBLE_P = 457, - DROP = 458, - EACH = 459, - ELSE = 460, - ENABLE_P = 461, - ENCODING = 462, - ENCRYPTED = 463, - END_P = 464, - ENUM_P = 465, - ESCAPE = 466, - EVENT = 467, - EXCEPT = 468, - EXCLUDE = 469, - EXCLUDING = 470, - EXCLUSIVE = 471, - EXECUTE = 472, - EXISTS = 473, - EXPLAIN = 474, - EXPRESSION = 475, - EXTENSION = 476, - EXTERNAL = 477, - EXTRACT = 478, - FALSE_P = 479, - FAMILY = 480, - FETCH = 481, - FILTER = 482, - FIRST_P = 483, - FLOAT_P = 484, - FOLLOWING = 485, - FOR = 486, - FORCE = 487, - FOREIGN = 488, - FORWARD = 489, - FREEZE = 490, - FROM = 491, - FULL = 492, - FUNCTION = 493, - FUNCTIONS = 494, - GENERATED = 495, - GLOBAL = 496, - GRANT = 497, - GRANTED = 498, - GREATEST = 499, - GROUP_P = 500, - GROUPING = 501, - GROUPS = 502, - HANDLER = 503, - HAVING = 504, - HEADER_P = 505, - HOLD = 506, - HOUR_P = 507, - IDENTITY_P = 508, - IF_P = 509, - ILIKE = 510, - IMMEDIATE = 511, - IMMUTABLE = 512, - IMPLICIT_P = 513, - IMPORT_P = 514, - IN_P = 515, - INCLUDE = 516, - INCLUDING = 517, - INCREMENT = 518, - INDEX = 519, - INDEXES = 520, - INHERIT = 521, - INHERITS = 522, - INITIALLY = 523, - INLINE_P = 524, - INNER_P = 525, - INOUT = 526, - INPUT_P = 527, - INSENSITIVE = 528, - INSERT = 529, - INSTEAD = 530, - INT_P = 531, - INTEGER = 532, - INTERSECT = 533, - INTERVAL = 534, - INTO = 535, - INVOKER = 536, - IS = 537, - ISNULL = 538, - ISOLATION = 539, - JOIN = 540, - KEY = 541, - LABEL = 542, - LANGUAGE = 543, - LARGE_P = 544, - LAST_P = 545, - LATERAL_P = 546, - LEADING = 547, - LEAKPROOF = 548, - LEAST = 549, - LEFT = 550, - LEVEL = 551, - LIKE = 552, - LIMIT = 553, - LISTEN = 554, - LOAD = 555, - LOCAL = 556, - LOCALTIME = 557, - LOCALTIMESTAMP = 558, - LOCATION = 559, - LOCK_P = 560, - LOCKED = 561, - LOGGED = 562, - MAPPING = 563, - MATCH = 564, - MATERIALIZED = 565, - MAXVALUE = 566, - METHOD = 567, - MINUTE_P = 568, - MINVALUE = 569, - MODE = 570, - MONTH_P = 571, - MOVE = 572, - NAME_P = 573, - NAMES = 574, - NATIONAL = 575, - NATURAL = 576, - NCHAR = 577, - NEW = 578, - NEXT = 579, - NFC = 580, - NFD = 581, - NFKC = 582, - NFKD = 583, - NO = 584, - NONE = 585, - NORMALIZE = 586, - NORMALIZED = 587, - NOT = 588, - NOTHING = 589, - NOTIFY = 590, - NOTNULL = 591, - NOWAIT = 592, - NULL_P = 593, - NULLIF = 594, - NULLS_P = 595, - NUMERIC = 596, - OBJECT_P = 597, - OF = 598, - OFF = 599, - OFFSET = 600, - OIDS = 601, - OLD = 602, - ON = 603, - ONLY = 604, - OPERATOR = 605, - OPTION = 606, - OPTIONS = 607, - OR = 608, - ORDER = 609, - ORDINALITY = 610, - OTHERS = 611, - OUT_P = 612, - OUTER_P = 613, - OVER = 614, - OVERLAPS = 615, - OVERLAY = 616, - OVERRIDING = 617, - OWNED = 618, - OWNER = 619, - PARALLEL = 620, - PARSER = 621, - PARTIAL = 622, - PARTITION = 623, - PASSING = 624, - PASSWORD = 625, - PLACING = 626, - PLANS = 627, - POLICY = 628, - POSITION = 629, - PRECEDING = 630, - PRECISION = 631, - PRESERVE = 632, - PREPARE = 633, - PREPARED = 634, - PRIMARY = 635, - PRIOR = 636, - PRIVILEGES = 637, - PROCEDURAL = 638, - PROCEDURE = 639, - PROCEDURES = 640, - PROGRAM = 641, - PUBLICATION = 642, - QUOTE = 643, - RANGE = 644, - READ = 645, - REAL = 646, - REASSIGN = 647, - RECHECK = 648, - RECURSIVE = 649, - REF = 650, - REFERENCES = 651, - REFERENCING = 652, - REFRESH = 653, - REINDEX = 654, - RELATIVE_P = 655, - RELEASE = 656, - RENAME = 657, - REPEATABLE = 658, - REPLACE = 659, - REPLICA = 660, - RESET = 661, - RESTART = 662, - RESTRICT = 663, - RETURNING = 664, - RETURNS = 665, - REVOKE = 666, - RIGHT = 667, - ROLE = 668, - ROLLBACK = 669, - ROLLUP = 670, - ROUTINE = 671, - ROUTINES = 672, - ROW = 673, - ROWS = 674, - RULE = 675, - SAVEPOINT = 676, - SCHEMA = 677, - SCHEMAS = 678, - SCROLL = 679, - SEARCH = 680, - SECOND_P = 681, - SECURITY = 682, - SELECT = 683, - SEQUENCE = 684, - SEQUENCES = 685, - SERIALIZABLE = 686, - SERVER = 687, - SESSION = 688, - SESSION_USER = 689, - SET = 690, - SETS = 691, - SETOF = 692, - SHARE = 693, - SHOW = 694, - SIMILAR = 695, - SIMPLE = 696, - SKIP = 697, - SMALLINT = 698, - SNAPSHOT = 699, - SOME = 700, - SQL_P = 701, - STABLE = 702, - STANDALONE_P = 703, - START = 704, - STATEMENT = 705, - STATISTICS = 706, - STDIN = 707, - STDOUT = 708, - STORAGE = 709, - STORED = 710, - STRICT_P = 711, - STRIP_P = 712, - SUBSCRIPTION = 713, - SUBSTRING = 714, - SUPPORT = 715, - SYMMETRIC = 716, - SYSID = 717, - SYSTEM_P = 718, - TABLE = 719, - TABLES = 720, - TABLESAMPLE = 721, - TABLESPACE = 722, - TEMP = 723, - TEMPLATE = 724, - TEMPORARY = 725, - TEXT_P = 726, - THEN = 727, - TIES = 728, - TIME = 729, - TIMESTAMP = 730, - TO = 731, - TRAILING = 732, - TRANSACTION = 733, - TRANSFORM = 734, - TREAT = 735, - TRIGGER = 736, - TRIM = 737, - TRUE_P = 738, - TRUNCATE = 739, - TRUSTED = 740, - TYPE_P = 741, - TYPES_P = 742, - UESCAPE = 743, - UNBOUNDED = 744, - UNCOMMITTED = 745, - UNENCRYPTED = 746, - UNION = 747, - UNIQUE = 748, - UNKNOWN = 749, - UNLISTEN = 750, - UNLOGGED = 751, - UNTIL = 752, - UPDATE = 753, - USER = 754, - USING = 755, - VACUUM = 756, - VALID = 757, - VALIDATE = 758, - VALIDATOR = 759, - VALUE_P = 760, - VALUES = 761, - VARCHAR = 762, - VARIADIC = 763, - VARYING = 764, - VERBOSE = 765, - VERSION_P = 766, - VIEW = 767, - VIEWS = 768, - VOLATILE = 769, - WHEN = 770, - WHERE = 771, - WHITESPACE_P = 772, - WINDOW = 773, - WITH = 774, - WITHIN = 775, - WITHOUT = 776, - WORK = 777, - WRAPPER = 778, - WRITE = 779, - XML_P = 780, - XMLATTRIBUTES = 781, - XMLCONCAT = 782, - XMLELEMENT = 783, - XMLEXISTS = 784, - XMLFOREST = 785, - XMLNAMESPACES = 786, - XMLPARSE = 787, - XMLPI = 788, - XMLROOT = 789, - XMLSERIALIZE = 790, - XMLTABLE = 791, - YEAR_P = 792, - YES_P = 793, - ZONE = 794, - NOT_LA = 795, - NULLS_LA = 796, - WITH_LA = 797, - POSTFIXOP = 798, - UMINUS = 799 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - -union YYSTYPE -{ -#line 586 "preproc.y" /* yacc.c:352 */ - - double dval; - char *str; - int ival; - struct when action; - struct index index; - int tagname; - struct this_type type; - enum ECPGttype type_enum; - enum ECPGdtype dtype_enum; - struct fetch_desc descriptor; - struct su_symbol struct_union; - struct prep prep; - struct exec exec; - -#line 1260 "preproc.c" /* yacc.c:352 */ -}; - -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - -/* Location type. */ -#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE YYLTYPE; -struct YYLTYPE +#include "preproc.h" +/* Symbol kind. */ +enum yysymbol_kind_t { - int first_line; - int first_column; - int last_line; - int last_column; + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_SQL_ALLOCATE = 3, /* SQL_ALLOCATE */ + YYSYMBOL_SQL_AUTOCOMMIT = 4, /* SQL_AUTOCOMMIT */ + YYSYMBOL_SQL_BOOL = 5, /* SQL_BOOL */ + YYSYMBOL_SQL_BREAK = 6, /* SQL_BREAK */ + YYSYMBOL_SQL_CARDINALITY = 7, /* SQL_CARDINALITY */ + YYSYMBOL_SQL_CONNECT = 8, /* SQL_CONNECT */ + YYSYMBOL_SQL_COUNT = 9, /* SQL_COUNT */ + YYSYMBOL_SQL_DATETIME_INTERVAL_CODE = 10, /* SQL_DATETIME_INTERVAL_CODE */ + YYSYMBOL_SQL_DATETIME_INTERVAL_PRECISION = 11, /* SQL_DATETIME_INTERVAL_PRECISION */ + YYSYMBOL_SQL_DESCRIBE = 12, /* SQL_DESCRIBE */ + YYSYMBOL_SQL_DESCRIPTOR = 13, /* SQL_DESCRIPTOR */ + YYSYMBOL_SQL_DISCONNECT = 14, /* SQL_DISCONNECT */ + YYSYMBOL_SQL_FOUND = 15, /* SQL_FOUND */ + YYSYMBOL_SQL_FREE = 16, /* SQL_FREE */ + YYSYMBOL_SQL_GET = 17, /* SQL_GET */ + YYSYMBOL_SQL_GO = 18, /* SQL_GO */ + YYSYMBOL_SQL_GOTO = 19, /* SQL_GOTO */ + YYSYMBOL_SQL_IDENTIFIED = 20, /* SQL_IDENTIFIED */ + YYSYMBOL_SQL_INDICATOR = 21, /* SQL_INDICATOR */ + YYSYMBOL_SQL_KEY_MEMBER = 22, /* SQL_KEY_MEMBER */ + YYSYMBOL_SQL_LENGTH = 23, /* SQL_LENGTH */ + YYSYMBOL_SQL_LONG = 24, /* SQL_LONG */ + YYSYMBOL_SQL_NULLABLE = 25, /* SQL_NULLABLE */ + YYSYMBOL_SQL_OCTET_LENGTH = 26, /* SQL_OCTET_LENGTH */ + YYSYMBOL_SQL_OPEN = 27, /* SQL_OPEN */ + YYSYMBOL_SQL_OUTPUT = 28, /* SQL_OUTPUT */ + YYSYMBOL_SQL_REFERENCE = 29, /* SQL_REFERENCE */ + YYSYMBOL_SQL_RETURNED_LENGTH = 30, /* SQL_RETURNED_LENGTH */ + YYSYMBOL_SQL_RETURNED_OCTET_LENGTH = 31, /* SQL_RETURNED_OCTET_LENGTH */ + YYSYMBOL_SQL_SCALE = 32, /* SQL_SCALE */ + YYSYMBOL_SQL_SECTION = 33, /* SQL_SECTION */ + YYSYMBOL_SQL_SHORT = 34, /* SQL_SHORT */ + YYSYMBOL_SQL_SIGNED = 35, /* SQL_SIGNED */ + YYSYMBOL_SQL_SQLERROR = 36, /* SQL_SQLERROR */ + YYSYMBOL_SQL_SQLPRINT = 37, /* SQL_SQLPRINT */ + YYSYMBOL_SQL_SQLWARNING = 38, /* SQL_SQLWARNING */ + YYSYMBOL_SQL_START = 39, /* SQL_START */ + YYSYMBOL_SQL_STOP = 40, /* SQL_STOP */ + YYSYMBOL_SQL_STRUCT = 41, /* SQL_STRUCT */ + YYSYMBOL_SQL_UNSIGNED = 42, /* SQL_UNSIGNED */ + YYSYMBOL_SQL_VAR = 43, /* SQL_VAR */ + YYSYMBOL_SQL_WHENEVER = 44, /* SQL_WHENEVER */ + YYSYMBOL_S_ADD = 45, /* S_ADD */ + YYSYMBOL_S_AND = 46, /* S_AND */ + YYSYMBOL_S_ANYTHING = 47, /* S_ANYTHING */ + YYSYMBOL_S_AUTO = 48, /* S_AUTO */ + YYSYMBOL_S_CONST = 49, /* S_CONST */ + YYSYMBOL_S_DEC = 50, /* S_DEC */ + YYSYMBOL_S_DIV = 51, /* S_DIV */ + YYSYMBOL_S_DOTPOINT = 52, /* S_DOTPOINT */ + YYSYMBOL_S_EQUAL = 53, /* S_EQUAL */ + YYSYMBOL_S_EXTERN = 54, /* S_EXTERN */ + YYSYMBOL_S_INC = 55, /* S_INC */ + YYSYMBOL_S_LSHIFT = 56, /* S_LSHIFT */ + YYSYMBOL_S_MEMPOINT = 57, /* S_MEMPOINT */ + YYSYMBOL_S_MEMBER = 58, /* S_MEMBER */ + YYSYMBOL_S_MOD = 59, /* S_MOD */ + YYSYMBOL_S_MUL = 60, /* S_MUL */ + YYSYMBOL_S_NEQUAL = 61, /* S_NEQUAL */ + YYSYMBOL_S_OR = 62, /* S_OR */ + YYSYMBOL_S_REGISTER = 63, /* S_REGISTER */ + YYSYMBOL_S_RSHIFT = 64, /* S_RSHIFT */ + YYSYMBOL_S_STATIC = 65, /* S_STATIC */ + YYSYMBOL_S_SUB = 66, /* S_SUB */ + YYSYMBOL_S_VOLATILE = 67, /* S_VOLATILE */ + YYSYMBOL_S_TYPEDEF = 68, /* S_TYPEDEF */ + YYSYMBOL_CSTRING = 69, /* CSTRING */ + YYSYMBOL_CVARIABLE = 70, /* CVARIABLE */ + YYSYMBOL_CPP_LINE = 71, /* CPP_LINE */ + YYSYMBOL_IP = 72, /* IP */ + YYSYMBOL_IDENT = 73, /* IDENT */ + YYSYMBOL_UIDENT = 74, /* UIDENT */ + YYSYMBOL_FCONST = 75, /* FCONST */ + YYSYMBOL_SCONST = 76, /* SCONST */ + YYSYMBOL_USCONST = 77, /* USCONST */ + YYSYMBOL_BCONST = 78, /* BCONST */ + YYSYMBOL_XCONST = 79, /* XCONST */ + YYSYMBOL_Op = 80, /* Op */ + YYSYMBOL_ICONST = 81, /* ICONST */ + YYSYMBOL_PARAM = 82, /* PARAM */ + YYSYMBOL_TYPECAST = 83, /* TYPECAST */ + YYSYMBOL_DOT_DOT = 84, /* DOT_DOT */ + YYSYMBOL_COLON_EQUALS = 85, /* COLON_EQUALS */ + YYSYMBOL_EQUALS_GREATER = 86, /* EQUALS_GREATER */ + YYSYMBOL_LESS_EQUALS = 87, /* LESS_EQUALS */ + YYSYMBOL_GREATER_EQUALS = 88, /* GREATER_EQUALS */ + YYSYMBOL_NOT_EQUALS = 89, /* NOT_EQUALS */ + YYSYMBOL_ABORT_P = 90, /* ABORT_P */ + YYSYMBOL_ABSOLUTE_P = 91, /* ABSOLUTE_P */ + YYSYMBOL_ACCESS = 92, /* ACCESS */ + YYSYMBOL_ACTION = 93, /* ACTION */ + YYSYMBOL_ADD_P = 94, /* ADD_P */ + YYSYMBOL_ADMIN = 95, /* ADMIN */ + YYSYMBOL_AFTER = 96, /* AFTER */ + YYSYMBOL_AGGREGATE = 97, /* AGGREGATE */ + YYSYMBOL_ALL = 98, /* ALL */ + YYSYMBOL_ALSO = 99, /* ALSO */ + YYSYMBOL_ALTER = 100, /* ALTER */ + YYSYMBOL_ALWAYS = 101, /* ALWAYS */ + YYSYMBOL_ANALYSE = 102, /* ANALYSE */ + YYSYMBOL_ANALYZE = 103, /* ANALYZE */ + YYSYMBOL_AND = 104, /* AND */ + YYSYMBOL_ANY = 105, /* ANY */ + YYSYMBOL_ARRAY = 106, /* ARRAY */ + YYSYMBOL_AS = 107, /* AS */ + YYSYMBOL_ASC = 108, /* ASC */ + YYSYMBOL_ASSERTION = 109, /* ASSERTION */ + YYSYMBOL_ASSIGNMENT = 110, /* ASSIGNMENT */ + YYSYMBOL_ASYMMETRIC = 111, /* ASYMMETRIC */ + YYSYMBOL_AT = 112, /* AT */ + YYSYMBOL_ATTACH = 113, /* ATTACH */ + YYSYMBOL_ATTRIBUTE = 114, /* ATTRIBUTE */ + YYSYMBOL_AUTHORIZATION = 115, /* AUTHORIZATION */ + YYSYMBOL_BACKWARD = 116, /* BACKWARD */ + YYSYMBOL_BEFORE = 117, /* BEFORE */ + YYSYMBOL_BEGIN_P = 118, /* BEGIN_P */ + YYSYMBOL_BETWEEN = 119, /* BETWEEN */ + YYSYMBOL_BIGINT = 120, /* BIGINT */ + YYSYMBOL_BINARY = 121, /* BINARY */ + YYSYMBOL_BIT = 122, /* BIT */ + YYSYMBOL_BOOLEAN_P = 123, /* BOOLEAN_P */ + YYSYMBOL_BOTH = 124, /* BOTH */ + YYSYMBOL_BY = 125, /* BY */ + YYSYMBOL_CACHE = 126, /* CACHE */ + YYSYMBOL_CALL = 127, /* CALL */ + YYSYMBOL_CALLED = 128, /* CALLED */ + YYSYMBOL_CASCADE = 129, /* CASCADE */ + YYSYMBOL_CASCADED = 130, /* CASCADED */ + YYSYMBOL_CASE = 131, /* CASE */ + YYSYMBOL_CAST = 132, /* CAST */ + YYSYMBOL_CATALOG_P = 133, /* CATALOG_P */ + YYSYMBOL_CHAIN = 134, /* CHAIN */ + YYSYMBOL_CHAR_P = 135, /* CHAR_P */ + YYSYMBOL_CHARACTER = 136, /* CHARACTER */ + YYSYMBOL_CHARACTERISTICS = 137, /* CHARACTERISTICS */ + YYSYMBOL_CHECK = 138, /* CHECK */ + YYSYMBOL_CHECKPOINT = 139, /* CHECKPOINT */ + YYSYMBOL_CLASS = 140, /* CLASS */ + YYSYMBOL_CLOSE = 141, /* CLOSE */ + YYSYMBOL_CLUSTER = 142, /* CLUSTER */ + YYSYMBOL_COALESCE = 143, /* COALESCE */ + YYSYMBOL_COLLATE = 144, /* COLLATE */ + YYSYMBOL_COLLATION = 145, /* COLLATION */ + YYSYMBOL_COLUMN = 146, /* COLUMN */ + YYSYMBOL_COLUMNS = 147, /* COLUMNS */ + YYSYMBOL_COMMENT = 148, /* COMMENT */ + YYSYMBOL_COMMENTS = 149, /* COMMENTS */ + YYSYMBOL_COMMIT = 150, /* COMMIT */ + YYSYMBOL_COMMITTED = 151, /* COMMITTED */ + YYSYMBOL_CONCURRENTLY = 152, /* CONCURRENTLY */ + YYSYMBOL_CONFIGURATION = 153, /* CONFIGURATION */ + YYSYMBOL_CONFLICT = 154, /* CONFLICT */ + YYSYMBOL_CONNECTION = 155, /* CONNECTION */ + YYSYMBOL_CONSTRAINT = 156, /* CONSTRAINT */ + YYSYMBOL_CONSTRAINTS = 157, /* CONSTRAINTS */ + YYSYMBOL_CONTENT_P = 158, /* CONTENT_P */ + YYSYMBOL_CONTINUE_P = 159, /* CONTINUE_P */ + YYSYMBOL_CONVERSION_P = 160, /* CONVERSION_P */ + YYSYMBOL_COPY = 161, /* COPY */ + YYSYMBOL_COST = 162, /* COST */ + YYSYMBOL_CREATE = 163, /* CREATE */ + YYSYMBOL_CROSS = 164, /* CROSS */ + YYSYMBOL_CSV = 165, /* CSV */ + YYSYMBOL_CUBE = 166, /* CUBE */ + YYSYMBOL_CURRENT_P = 167, /* CURRENT_P */ + YYSYMBOL_CURRENT_CATALOG = 168, /* CURRENT_CATALOG */ + YYSYMBOL_CURRENT_DATE = 169, /* CURRENT_DATE */ + YYSYMBOL_CURRENT_ROLE = 170, /* CURRENT_ROLE */ + YYSYMBOL_CURRENT_SCHEMA = 171, /* CURRENT_SCHEMA */ + YYSYMBOL_CURRENT_TIME = 172, /* CURRENT_TIME */ + YYSYMBOL_CURRENT_TIMESTAMP = 173, /* CURRENT_TIMESTAMP */ + YYSYMBOL_CURRENT_USER = 174, /* CURRENT_USER */ + YYSYMBOL_CURSOR = 175, /* CURSOR */ + YYSYMBOL_CYCLE = 176, /* CYCLE */ + YYSYMBOL_DATA_P = 177, /* DATA_P */ + YYSYMBOL_DATABASE = 178, /* DATABASE */ + YYSYMBOL_DAY_P = 179, /* DAY_P */ + YYSYMBOL_DEALLOCATE = 180, /* DEALLOCATE */ + YYSYMBOL_DEC = 181, /* DEC */ + YYSYMBOL_DECIMAL_P = 182, /* DECIMAL_P */ + YYSYMBOL_DECLARE = 183, /* DECLARE */ + YYSYMBOL_DEFAULT = 184, /* DEFAULT */ + YYSYMBOL_DEFAULTS = 185, /* DEFAULTS */ + YYSYMBOL_DEFERRABLE = 186, /* DEFERRABLE */ + YYSYMBOL_DEFERRED = 187, /* DEFERRED */ + YYSYMBOL_DEFINER = 188, /* DEFINER */ + YYSYMBOL_DELETE_P = 189, /* DELETE_P */ + YYSYMBOL_DELIMITER = 190, /* DELIMITER */ + YYSYMBOL_DELIMITERS = 191, /* DELIMITERS */ + YYSYMBOL_DEPENDS = 192, /* DEPENDS */ + YYSYMBOL_DESC = 193, /* DESC */ + YYSYMBOL_DETACH = 194, /* DETACH */ + YYSYMBOL_DICTIONARY = 195, /* DICTIONARY */ + YYSYMBOL_DISABLE_P = 196, /* DISABLE_P */ + YYSYMBOL_DISCARD = 197, /* DISCARD */ + YYSYMBOL_DISTINCT = 198, /* DISTINCT */ + YYSYMBOL_DO = 199, /* DO */ + YYSYMBOL_DOCUMENT_P = 200, /* DOCUMENT_P */ + YYSYMBOL_DOMAIN_P = 201, /* DOMAIN_P */ + YYSYMBOL_DOUBLE_P = 202, /* DOUBLE_P */ + YYSYMBOL_DROP = 203, /* DROP */ + YYSYMBOL_EACH = 204, /* EACH */ + YYSYMBOL_ELSE = 205, /* ELSE */ + YYSYMBOL_ENABLE_P = 206, /* ENABLE_P */ + YYSYMBOL_ENCODING = 207, /* ENCODING */ + YYSYMBOL_ENCRYPTED = 208, /* ENCRYPTED */ + YYSYMBOL_END_P = 209, /* END_P */ + YYSYMBOL_ENUM_P = 210, /* ENUM_P */ + YYSYMBOL_ESCAPE = 211, /* ESCAPE */ + YYSYMBOL_EVENT = 212, /* EVENT */ + YYSYMBOL_EXCEPT = 213, /* EXCEPT */ + YYSYMBOL_EXCLUDE = 214, /* EXCLUDE */ + YYSYMBOL_EXCLUDING = 215, /* EXCLUDING */ + YYSYMBOL_EXCLUSIVE = 216, /* EXCLUSIVE */ + YYSYMBOL_EXECUTE = 217, /* EXECUTE */ + YYSYMBOL_EXISTS = 218, /* EXISTS */ + YYSYMBOL_EXPLAIN = 219, /* EXPLAIN */ + YYSYMBOL_EXPRESSION = 220, /* EXPRESSION */ + YYSYMBOL_EXTENSION = 221, /* EXTENSION */ + YYSYMBOL_EXTERNAL = 222, /* EXTERNAL */ + YYSYMBOL_EXTRACT = 223, /* EXTRACT */ + YYSYMBOL_FALSE_P = 224, /* FALSE_P */ + YYSYMBOL_FAMILY = 225, /* FAMILY */ + YYSYMBOL_FETCH = 226, /* FETCH */ + YYSYMBOL_FILTER = 227, /* FILTER */ + YYSYMBOL_FIRST_P = 228, /* FIRST_P */ + YYSYMBOL_FLOAT_P = 229, /* FLOAT_P */ + YYSYMBOL_FOLLOWING = 230, /* FOLLOWING */ + YYSYMBOL_FOR = 231, /* FOR */ + YYSYMBOL_FORCE = 232, /* FORCE */ + YYSYMBOL_FOREIGN = 233, /* FOREIGN */ + YYSYMBOL_FORWARD = 234, /* FORWARD */ + YYSYMBOL_FREEZE = 235, /* FREEZE */ + YYSYMBOL_FROM = 236, /* FROM */ + YYSYMBOL_FULL = 237, /* FULL */ + YYSYMBOL_FUNCTION = 238, /* FUNCTION */ + YYSYMBOL_FUNCTIONS = 239, /* FUNCTIONS */ + YYSYMBOL_GENERATED = 240, /* GENERATED */ + YYSYMBOL_GLOBAL = 241, /* GLOBAL */ + YYSYMBOL_GRANT = 242, /* GRANT */ + YYSYMBOL_GRANTED = 243, /* GRANTED */ + YYSYMBOL_GREATEST = 244, /* GREATEST */ + YYSYMBOL_GROUP_P = 245, /* GROUP_P */ + YYSYMBOL_GROUPING = 246, /* GROUPING */ + YYSYMBOL_GROUPS = 247, /* GROUPS */ + YYSYMBOL_HANDLER = 248, /* HANDLER */ + YYSYMBOL_HAVING = 249, /* HAVING */ + YYSYMBOL_HEADER_P = 250, /* HEADER_P */ + YYSYMBOL_HOLD = 251, /* HOLD */ + YYSYMBOL_HOUR_P = 252, /* HOUR_P */ + YYSYMBOL_IDENTITY_P = 253, /* IDENTITY_P */ + YYSYMBOL_IF_P = 254, /* IF_P */ + YYSYMBOL_ILIKE = 255, /* ILIKE */ + YYSYMBOL_IMMEDIATE = 256, /* IMMEDIATE */ + YYSYMBOL_IMMUTABLE = 257, /* IMMUTABLE */ + YYSYMBOL_IMPLICIT_P = 258, /* IMPLICIT_P */ + YYSYMBOL_IMPORT_P = 259, /* IMPORT_P */ + YYSYMBOL_IN_P = 260, /* IN_P */ + YYSYMBOL_INCLUDE = 261, /* INCLUDE */ + YYSYMBOL_INCLUDING = 262, /* INCLUDING */ + YYSYMBOL_INCREMENT = 263, /* INCREMENT */ + YYSYMBOL_INDEX = 264, /* INDEX */ + YYSYMBOL_INDEXES = 265, /* INDEXES */ + YYSYMBOL_INHERIT = 266, /* INHERIT */ + YYSYMBOL_INHERITS = 267, /* INHERITS */ + YYSYMBOL_INITIALLY = 268, /* INITIALLY */ + YYSYMBOL_INLINE_P = 269, /* INLINE_P */ + YYSYMBOL_INNER_P = 270, /* INNER_P */ + YYSYMBOL_INOUT = 271, /* INOUT */ + YYSYMBOL_INPUT_P = 272, /* INPUT_P */ + YYSYMBOL_INSENSITIVE = 273, /* INSENSITIVE */ + YYSYMBOL_INSERT = 274, /* INSERT */ + YYSYMBOL_INSTEAD = 275, /* INSTEAD */ + YYSYMBOL_INT_P = 276, /* INT_P */ + YYSYMBOL_INTEGER = 277, /* INTEGER */ + YYSYMBOL_INTERSECT = 278, /* INTERSECT */ + YYSYMBOL_INTERVAL = 279, /* INTERVAL */ + YYSYMBOL_INTO = 280, /* INTO */ + YYSYMBOL_INVOKER = 281, /* INVOKER */ + YYSYMBOL_IS = 282, /* IS */ + YYSYMBOL_ISNULL = 283, /* ISNULL */ + YYSYMBOL_ISOLATION = 284, /* ISOLATION */ + YYSYMBOL_JOIN = 285, /* JOIN */ + YYSYMBOL_KEY = 286, /* KEY */ + YYSYMBOL_LABEL = 287, /* LABEL */ + YYSYMBOL_LANGUAGE = 288, /* LANGUAGE */ + YYSYMBOL_LARGE_P = 289, /* LARGE_P */ + YYSYMBOL_LAST_P = 290, /* LAST_P */ + YYSYMBOL_LATERAL_P = 291, /* LATERAL_P */ + YYSYMBOL_LEADING = 292, /* LEADING */ + YYSYMBOL_LEAKPROOF = 293, /* LEAKPROOF */ + YYSYMBOL_LEAST = 294, /* LEAST */ + YYSYMBOL_LEFT = 295, /* LEFT */ + YYSYMBOL_LEVEL = 296, /* LEVEL */ + YYSYMBOL_LIKE = 297, /* LIKE */ + YYSYMBOL_LIMIT = 298, /* LIMIT */ + YYSYMBOL_LISTEN = 299, /* LISTEN */ + YYSYMBOL_LOAD = 300, /* LOAD */ + YYSYMBOL_LOCAL = 301, /* LOCAL */ + YYSYMBOL_LOCALTIME = 302, /* LOCALTIME */ + YYSYMBOL_LOCALTIMESTAMP = 303, /* LOCALTIMESTAMP */ + YYSYMBOL_LOCATION = 304, /* LOCATION */ + YYSYMBOL_LOCK_P = 305, /* LOCK_P */ + YYSYMBOL_LOCKED = 306, /* LOCKED */ + YYSYMBOL_LOGGED = 307, /* LOGGED */ + YYSYMBOL_MAPPING = 308, /* MAPPING */ + YYSYMBOL_MATCH = 309, /* MATCH */ + YYSYMBOL_MATERIALIZED = 310, /* MATERIALIZED */ + YYSYMBOL_MAXVALUE = 311, /* MAXVALUE */ + YYSYMBOL_METHOD = 312, /* METHOD */ + YYSYMBOL_MINUTE_P = 313, /* MINUTE_P */ + YYSYMBOL_MINVALUE = 314, /* MINVALUE */ + YYSYMBOL_MODE = 315, /* MODE */ + YYSYMBOL_MONTH_P = 316, /* MONTH_P */ + YYSYMBOL_MOVE = 317, /* MOVE */ + YYSYMBOL_NAME_P = 318, /* NAME_P */ + YYSYMBOL_NAMES = 319, /* NAMES */ + YYSYMBOL_NATIONAL = 320, /* NATIONAL */ + YYSYMBOL_NATURAL = 321, /* NATURAL */ + YYSYMBOL_NCHAR = 322, /* NCHAR */ + YYSYMBOL_NEW = 323, /* NEW */ + YYSYMBOL_NEXT = 324, /* NEXT */ + YYSYMBOL_NFC = 325, /* NFC */ + YYSYMBOL_NFD = 326, /* NFD */ + YYSYMBOL_NFKC = 327, /* NFKC */ + YYSYMBOL_NFKD = 328, /* NFKD */ + YYSYMBOL_NO = 329, /* NO */ + YYSYMBOL_NONE = 330, /* NONE */ + YYSYMBOL_NORMALIZE = 331, /* NORMALIZE */ + YYSYMBOL_NORMALIZED = 332, /* NORMALIZED */ + YYSYMBOL_NOT = 333, /* NOT */ + YYSYMBOL_NOTHING = 334, /* NOTHING */ + YYSYMBOL_NOTIFY = 335, /* NOTIFY */ + YYSYMBOL_NOTNULL = 336, /* NOTNULL */ + YYSYMBOL_NOWAIT = 337, /* NOWAIT */ + YYSYMBOL_NULL_P = 338, /* NULL_P */ + YYSYMBOL_NULLIF = 339, /* NULLIF */ + YYSYMBOL_NULLS_P = 340, /* NULLS_P */ + YYSYMBOL_NUMERIC = 341, /* NUMERIC */ + YYSYMBOL_OBJECT_P = 342, /* OBJECT_P */ + YYSYMBOL_OF = 343, /* OF */ + YYSYMBOL_OFF = 344, /* OFF */ + YYSYMBOL_OFFSET = 345, /* OFFSET */ + YYSYMBOL_OIDS = 346, /* OIDS */ + YYSYMBOL_OLD = 347, /* OLD */ + YYSYMBOL_ON = 348, /* ON */ + YYSYMBOL_ONLY = 349, /* ONLY */ + YYSYMBOL_OPERATOR = 350, /* OPERATOR */ + YYSYMBOL_OPTION = 351, /* OPTION */ + YYSYMBOL_OPTIONS = 352, /* OPTIONS */ + YYSYMBOL_OR = 353, /* OR */ + YYSYMBOL_ORDER = 354, /* ORDER */ + YYSYMBOL_ORDINALITY = 355, /* ORDINALITY */ + YYSYMBOL_OTHERS = 356, /* OTHERS */ + YYSYMBOL_OUT_P = 357, /* OUT_P */ + YYSYMBOL_OUTER_P = 358, /* OUTER_P */ + YYSYMBOL_OVER = 359, /* OVER */ + YYSYMBOL_OVERLAPS = 360, /* OVERLAPS */ + YYSYMBOL_OVERLAY = 361, /* OVERLAY */ + YYSYMBOL_OVERRIDING = 362, /* OVERRIDING */ + YYSYMBOL_OWNED = 363, /* OWNED */ + YYSYMBOL_OWNER = 364, /* OWNER */ + YYSYMBOL_PARALLEL = 365, /* PARALLEL */ + YYSYMBOL_PARSER = 366, /* PARSER */ + YYSYMBOL_PARTIAL = 367, /* PARTIAL */ + YYSYMBOL_PARTITION = 368, /* PARTITION */ + YYSYMBOL_PASSING = 369, /* PASSING */ + YYSYMBOL_PASSWORD = 370, /* PASSWORD */ + YYSYMBOL_PLACING = 371, /* PLACING */ + YYSYMBOL_PLANS = 372, /* PLANS */ + YYSYMBOL_POLICY = 373, /* POLICY */ + YYSYMBOL_POSITION = 374, /* POSITION */ + YYSYMBOL_PRECEDING = 375, /* PRECEDING */ + YYSYMBOL_PRECISION = 376, /* PRECISION */ + YYSYMBOL_PRESERVE = 377, /* PRESERVE */ + YYSYMBOL_PREPARE = 378, /* PREPARE */ + YYSYMBOL_PREPARED = 379, /* PREPARED */ + YYSYMBOL_PRIMARY = 380, /* PRIMARY */ + YYSYMBOL_PRIOR = 381, /* PRIOR */ + YYSYMBOL_PRIVILEGES = 382, /* PRIVILEGES */ + YYSYMBOL_PROCEDURAL = 383, /* PROCEDURAL */ + YYSYMBOL_PROCEDURE = 384, /* PROCEDURE */ + YYSYMBOL_PROCEDURES = 385, /* PROCEDURES */ + YYSYMBOL_PROGRAM = 386, /* PROGRAM */ + YYSYMBOL_PUBLICATION = 387, /* PUBLICATION */ + YYSYMBOL_QUOTE = 388, /* QUOTE */ + YYSYMBOL_RANGE = 389, /* RANGE */ + YYSYMBOL_READ = 390, /* READ */ + YYSYMBOL_REAL = 391, /* REAL */ + YYSYMBOL_REASSIGN = 392, /* REASSIGN */ + YYSYMBOL_RECHECK = 393, /* RECHECK */ + YYSYMBOL_RECURSIVE = 394, /* RECURSIVE */ + YYSYMBOL_REF = 395, /* REF */ + YYSYMBOL_REFERENCES = 396, /* REFERENCES */ + YYSYMBOL_REFERENCING = 397, /* REFERENCING */ + YYSYMBOL_REFRESH = 398, /* REFRESH */ + YYSYMBOL_REINDEX = 399, /* REINDEX */ + YYSYMBOL_RELATIVE_P = 400, /* RELATIVE_P */ + YYSYMBOL_RELEASE = 401, /* RELEASE */ + YYSYMBOL_RENAME = 402, /* RENAME */ + YYSYMBOL_REPEATABLE = 403, /* REPEATABLE */ + YYSYMBOL_REPLACE = 404, /* REPLACE */ + YYSYMBOL_REPLICA = 405, /* REPLICA */ + YYSYMBOL_RESET = 406, /* RESET */ + YYSYMBOL_RESTART = 407, /* RESTART */ + YYSYMBOL_RESTRICT = 408, /* RESTRICT */ + YYSYMBOL_RETURNING = 409, /* RETURNING */ + YYSYMBOL_RETURNS = 410, /* RETURNS */ + YYSYMBOL_REVOKE = 411, /* REVOKE */ + YYSYMBOL_RIGHT = 412, /* RIGHT */ + YYSYMBOL_ROLE = 413, /* ROLE */ + YYSYMBOL_ROLLBACK = 414, /* ROLLBACK */ + YYSYMBOL_ROLLUP = 415, /* ROLLUP */ + YYSYMBOL_ROUTINE = 416, /* ROUTINE */ + YYSYMBOL_ROUTINES = 417, /* ROUTINES */ + YYSYMBOL_ROW = 418, /* ROW */ + YYSYMBOL_ROWS = 419, /* ROWS */ + YYSYMBOL_RULE = 420, /* RULE */ + YYSYMBOL_SAVEPOINT = 421, /* SAVEPOINT */ + YYSYMBOL_SCHEMA = 422, /* SCHEMA */ + YYSYMBOL_SCHEMAS = 423, /* SCHEMAS */ + YYSYMBOL_SCROLL = 424, /* SCROLL */ + YYSYMBOL_SEARCH = 425, /* SEARCH */ + YYSYMBOL_SECOND_P = 426, /* SECOND_P */ + YYSYMBOL_SECURITY = 427, /* SECURITY */ + YYSYMBOL_SELECT = 428, /* SELECT */ + YYSYMBOL_SEQUENCE = 429, /* SEQUENCE */ + YYSYMBOL_SEQUENCES = 430, /* SEQUENCES */ + YYSYMBOL_SERIALIZABLE = 431, /* SERIALIZABLE */ + YYSYMBOL_SERVER = 432, /* SERVER */ + YYSYMBOL_SESSION = 433, /* SESSION */ + YYSYMBOL_SESSION_USER = 434, /* SESSION_USER */ + YYSYMBOL_SET = 435, /* SET */ + YYSYMBOL_SETS = 436, /* SETS */ + YYSYMBOL_SETOF = 437, /* SETOF */ + YYSYMBOL_SHARE = 438, /* SHARE */ + YYSYMBOL_SHOW = 439, /* SHOW */ + YYSYMBOL_SIMILAR = 440, /* SIMILAR */ + YYSYMBOL_SIMPLE = 441, /* SIMPLE */ + YYSYMBOL_SKIP = 442, /* SKIP */ + YYSYMBOL_SMALLINT = 443, /* SMALLINT */ + YYSYMBOL_SNAPSHOT = 444, /* SNAPSHOT */ + YYSYMBOL_SOME = 445, /* SOME */ + YYSYMBOL_SQL_P = 446, /* SQL_P */ + YYSYMBOL_STABLE = 447, /* STABLE */ + YYSYMBOL_STANDALONE_P = 448, /* STANDALONE_P */ + YYSYMBOL_START = 449, /* START */ + YYSYMBOL_STATEMENT = 450, /* STATEMENT */ + YYSYMBOL_STATISTICS = 451, /* STATISTICS */ + YYSYMBOL_STDIN = 452, /* STDIN */ + YYSYMBOL_STDOUT = 453, /* STDOUT */ + YYSYMBOL_STORAGE = 454, /* STORAGE */ + YYSYMBOL_STORED = 455, /* STORED */ + YYSYMBOL_STRICT_P = 456, /* STRICT_P */ + YYSYMBOL_STRIP_P = 457, /* STRIP_P */ + YYSYMBOL_SUBSCRIPTION = 458, /* SUBSCRIPTION */ + YYSYMBOL_SUBSTRING = 459, /* SUBSTRING */ + YYSYMBOL_SUPPORT = 460, /* SUPPORT */ + YYSYMBOL_SYMMETRIC = 461, /* SYMMETRIC */ + YYSYMBOL_SYSID = 462, /* SYSID */ + YYSYMBOL_SYSTEM_P = 463, /* SYSTEM_P */ + YYSYMBOL_TABLE = 464, /* TABLE */ + YYSYMBOL_TABLES = 465, /* TABLES */ + YYSYMBOL_TABLESAMPLE = 466, /* TABLESAMPLE */ + YYSYMBOL_TABLESPACE = 467, /* TABLESPACE */ + YYSYMBOL_TEMP = 468, /* TEMP */ + YYSYMBOL_TEMPLATE = 469, /* TEMPLATE */ + YYSYMBOL_TEMPORARY = 470, /* TEMPORARY */ + YYSYMBOL_TEXT_P = 471, /* TEXT_P */ + YYSYMBOL_THEN = 472, /* THEN */ + YYSYMBOL_TIES = 473, /* TIES */ + YYSYMBOL_TIME = 474, /* TIME */ + YYSYMBOL_TIMESTAMP = 475, /* TIMESTAMP */ + YYSYMBOL_TO = 476, /* TO */ + YYSYMBOL_TRAILING = 477, /* TRAILING */ + YYSYMBOL_TRANSACTION = 478, /* TRANSACTION */ + YYSYMBOL_TRANSFORM = 479, /* TRANSFORM */ + YYSYMBOL_TREAT = 480, /* TREAT */ + YYSYMBOL_TRIGGER = 481, /* TRIGGER */ + YYSYMBOL_TRIM = 482, /* TRIM */ + YYSYMBOL_TRUE_P = 483, /* TRUE_P */ + YYSYMBOL_TRUNCATE = 484, /* TRUNCATE */ + YYSYMBOL_TRUSTED = 485, /* TRUSTED */ + YYSYMBOL_TYPE_P = 486, /* TYPE_P */ + YYSYMBOL_TYPES_P = 487, /* TYPES_P */ + YYSYMBOL_UESCAPE = 488, /* UESCAPE */ + YYSYMBOL_UNBOUNDED = 489, /* UNBOUNDED */ + YYSYMBOL_UNCOMMITTED = 490, /* UNCOMMITTED */ + YYSYMBOL_UNENCRYPTED = 491, /* UNENCRYPTED */ + YYSYMBOL_UNION = 492, /* UNION */ + YYSYMBOL_UNIQUE = 493, /* UNIQUE */ + YYSYMBOL_UNKNOWN = 494, /* UNKNOWN */ + YYSYMBOL_UNLISTEN = 495, /* UNLISTEN */ + YYSYMBOL_UNLOGGED = 496, /* UNLOGGED */ + YYSYMBOL_UNTIL = 497, /* UNTIL */ + YYSYMBOL_UPDATE = 498, /* UPDATE */ + YYSYMBOL_USER = 499, /* USER */ + YYSYMBOL_USING = 500, /* USING */ + YYSYMBOL_VACUUM = 501, /* VACUUM */ + YYSYMBOL_VALID = 502, /* VALID */ + YYSYMBOL_VALIDATE = 503, /* VALIDATE */ + YYSYMBOL_VALIDATOR = 504, /* VALIDATOR */ + YYSYMBOL_VALUE_P = 505, /* VALUE_P */ + YYSYMBOL_VALUES = 506, /* VALUES */ + YYSYMBOL_VARCHAR = 507, /* VARCHAR */ + YYSYMBOL_VARIADIC = 508, /* VARIADIC */ + YYSYMBOL_VARYING = 509, /* VARYING */ + YYSYMBOL_VERBOSE = 510, /* VERBOSE */ + YYSYMBOL_VERSION_P = 511, /* VERSION_P */ + YYSYMBOL_VIEW = 512, /* VIEW */ + YYSYMBOL_VIEWS = 513, /* VIEWS */ + YYSYMBOL_VOLATILE = 514, /* VOLATILE */ + YYSYMBOL_WHEN = 515, /* WHEN */ + YYSYMBOL_WHERE = 516, /* WHERE */ + YYSYMBOL_WHITESPACE_P = 517, /* WHITESPACE_P */ + YYSYMBOL_WINDOW = 518, /* WINDOW */ + YYSYMBOL_WITH = 519, /* WITH */ + YYSYMBOL_WITHIN = 520, /* WITHIN */ + YYSYMBOL_WITHOUT = 521, /* WITHOUT */ + YYSYMBOL_WORK = 522, /* WORK */ + YYSYMBOL_WRAPPER = 523, /* WRAPPER */ + YYSYMBOL_WRITE = 524, /* WRITE */ + YYSYMBOL_XML_P = 525, /* XML_P */ + YYSYMBOL_XMLATTRIBUTES = 526, /* XMLATTRIBUTES */ + YYSYMBOL_XMLCONCAT = 527, /* XMLCONCAT */ + YYSYMBOL_XMLELEMENT = 528, /* XMLELEMENT */ + YYSYMBOL_XMLEXISTS = 529, /* XMLEXISTS */ + YYSYMBOL_XMLFOREST = 530, /* XMLFOREST */ + YYSYMBOL_XMLNAMESPACES = 531, /* XMLNAMESPACES */ + YYSYMBOL_XMLPARSE = 532, /* XMLPARSE */ + YYSYMBOL_XMLPI = 533, /* XMLPI */ + YYSYMBOL_XMLROOT = 534, /* XMLROOT */ + YYSYMBOL_XMLSERIALIZE = 535, /* XMLSERIALIZE */ + YYSYMBOL_XMLTABLE = 536, /* XMLTABLE */ + YYSYMBOL_YEAR_P = 537, /* YEAR_P */ + YYSYMBOL_YES_P = 538, /* YES_P */ + YYSYMBOL_ZONE = 539, /* ZONE */ + YYSYMBOL_NOT_LA = 540, /* NOT_LA */ + YYSYMBOL_NULLS_LA = 541, /* NULLS_LA */ + YYSYMBOL_WITH_LA = 542, /* WITH_LA */ + YYSYMBOL_543_ = 543, /* '<' */ + YYSYMBOL_544_ = 544, /* '>' */ + YYSYMBOL_545_ = 545, /* '=' */ + YYSYMBOL_POSTFIXOP = 546, /* POSTFIXOP */ + YYSYMBOL_547_ = 547, /* '+' */ + YYSYMBOL_548_ = 548, /* '-' */ + YYSYMBOL_549_ = 549, /* '*' */ + YYSYMBOL_550_ = 550, /* '/' */ + YYSYMBOL_551_ = 551, /* '%' */ + YYSYMBOL_552_ = 552, /* '^' */ + YYSYMBOL_UMINUS = 553, /* UMINUS */ + YYSYMBOL_554_ = 554, /* '[' */ + YYSYMBOL_555_ = 555, /* ']' */ + YYSYMBOL_556_ = 556, /* '(' */ + YYSYMBOL_557_ = 557, /* ')' */ + YYSYMBOL_558_ = 558, /* '.' */ + YYSYMBOL_559_ = 559, /* ',' */ + YYSYMBOL_560_ = 560, /* ';' */ + YYSYMBOL_561_ = 561, /* ':' */ + YYSYMBOL_562_ = 562, /* '{' */ + YYSYMBOL_563_ = 563, /* '}' */ + YYSYMBOL_YYACCEPT = 564, /* $accept */ + YYSYMBOL_prog = 565, /* prog */ + YYSYMBOL_stmt = 566, /* stmt */ + YYSYMBOL_CallStmt = 567, /* CallStmt */ + YYSYMBOL_CreateRoleStmt = 568, /* CreateRoleStmt */ + YYSYMBOL_opt_with = 569, /* opt_with */ + YYSYMBOL_OptRoleList = 570, /* OptRoleList */ + YYSYMBOL_AlterOptRoleList = 571, /* AlterOptRoleList */ + YYSYMBOL_AlterOptRoleElem = 572, /* AlterOptRoleElem */ + YYSYMBOL_CreateOptRoleElem = 573, /* CreateOptRoleElem */ + YYSYMBOL_CreateUserStmt = 574, /* CreateUserStmt */ + YYSYMBOL_AlterRoleStmt = 575, /* AlterRoleStmt */ + YYSYMBOL_opt_in_database = 576, /* opt_in_database */ + YYSYMBOL_AlterRoleSetStmt = 577, /* AlterRoleSetStmt */ + YYSYMBOL_DropRoleStmt = 578, /* DropRoleStmt */ + YYSYMBOL_CreateGroupStmt = 579, /* CreateGroupStmt */ + YYSYMBOL_AlterGroupStmt = 580, /* AlterGroupStmt */ + YYSYMBOL_add_drop = 581, /* add_drop */ + YYSYMBOL_CreateSchemaStmt = 582, /* CreateSchemaStmt */ + YYSYMBOL_OptSchemaName = 583, /* OptSchemaName */ + YYSYMBOL_OptSchemaEltList = 584, /* OptSchemaEltList */ + YYSYMBOL_schema_stmt = 585, /* schema_stmt */ + YYSYMBOL_VariableSetStmt = 586, /* VariableSetStmt */ + YYSYMBOL_set_rest = 587, /* set_rest */ + YYSYMBOL_generic_set = 588, /* generic_set */ + YYSYMBOL_set_rest_more = 589, /* set_rest_more */ + YYSYMBOL_var_name = 590, /* var_name */ + YYSYMBOL_var_list = 591, /* var_list */ + YYSYMBOL_var_value = 592, /* var_value */ + YYSYMBOL_iso_level = 593, /* iso_level */ + YYSYMBOL_opt_boolean_or_string = 594, /* opt_boolean_or_string */ + YYSYMBOL_zone_value = 595, /* zone_value */ + YYSYMBOL_opt_encoding = 596, /* opt_encoding */ + YYSYMBOL_NonReservedWord_or_Sconst = 597, /* NonReservedWord_or_Sconst */ + YYSYMBOL_VariableResetStmt = 598, /* VariableResetStmt */ + YYSYMBOL_reset_rest = 599, /* reset_rest */ + YYSYMBOL_generic_reset = 600, /* generic_reset */ + YYSYMBOL_SetResetClause = 601, /* SetResetClause */ + YYSYMBOL_FunctionSetResetClause = 602, /* FunctionSetResetClause */ + YYSYMBOL_VariableShowStmt = 603, /* VariableShowStmt */ + YYSYMBOL_ConstraintsSetStmt = 604, /* ConstraintsSetStmt */ + YYSYMBOL_constraints_set_list = 605, /* constraints_set_list */ + YYSYMBOL_constraints_set_mode = 606, /* constraints_set_mode */ + YYSYMBOL_CheckPointStmt = 607, /* CheckPointStmt */ + YYSYMBOL_DiscardStmt = 608, /* DiscardStmt */ + YYSYMBOL_AlterTableStmt = 609, /* AlterTableStmt */ + YYSYMBOL_alter_table_cmds = 610, /* alter_table_cmds */ + YYSYMBOL_partition_cmd = 611, /* partition_cmd */ + YYSYMBOL_index_partition_cmd = 612, /* index_partition_cmd */ + YYSYMBOL_alter_table_cmd = 613, /* alter_table_cmd */ + YYSYMBOL_alter_column_default = 614, /* alter_column_default */ + YYSYMBOL_opt_drop_behavior = 615, /* opt_drop_behavior */ + YYSYMBOL_opt_collate_clause = 616, /* opt_collate_clause */ + YYSYMBOL_alter_using = 617, /* alter_using */ + YYSYMBOL_replica_identity = 618, /* replica_identity */ + YYSYMBOL_reloptions = 619, /* reloptions */ + YYSYMBOL_opt_reloptions = 620, /* opt_reloptions */ + YYSYMBOL_reloption_list = 621, /* reloption_list */ + YYSYMBOL_reloption_elem = 622, /* reloption_elem */ + YYSYMBOL_alter_identity_column_option_list = 623, /* alter_identity_column_option_list */ + YYSYMBOL_alter_identity_column_option = 624, /* alter_identity_column_option */ + YYSYMBOL_PartitionBoundSpec = 625, /* PartitionBoundSpec */ + YYSYMBOL_hash_partbound_elem = 626, /* hash_partbound_elem */ + YYSYMBOL_hash_partbound = 627, /* hash_partbound */ + YYSYMBOL_AlterCompositeTypeStmt = 628, /* AlterCompositeTypeStmt */ + YYSYMBOL_alter_type_cmds = 629, /* alter_type_cmds */ + YYSYMBOL_alter_type_cmd = 630, /* alter_type_cmd */ + YYSYMBOL_ClosePortalStmt = 631, /* ClosePortalStmt */ + YYSYMBOL_CopyStmt = 632, /* CopyStmt */ + YYSYMBOL_copy_from = 633, /* copy_from */ + YYSYMBOL_opt_program = 634, /* opt_program */ + YYSYMBOL_copy_file_name = 635, /* copy_file_name */ + YYSYMBOL_copy_options = 636, /* copy_options */ + YYSYMBOL_copy_opt_list = 637, /* copy_opt_list */ + YYSYMBOL_copy_opt_item = 638, /* copy_opt_item */ + YYSYMBOL_opt_binary = 639, /* opt_binary */ + YYSYMBOL_copy_delimiter = 640, /* copy_delimiter */ + YYSYMBOL_opt_using = 641, /* opt_using */ + YYSYMBOL_copy_generic_opt_list = 642, /* copy_generic_opt_list */ + YYSYMBOL_copy_generic_opt_elem = 643, /* copy_generic_opt_elem */ + YYSYMBOL_copy_generic_opt_arg = 644, /* copy_generic_opt_arg */ + YYSYMBOL_copy_generic_opt_arg_list = 645, /* copy_generic_opt_arg_list */ + YYSYMBOL_copy_generic_opt_arg_list_item = 646, /* copy_generic_opt_arg_list_item */ + YYSYMBOL_CreateStmt = 647, /* CreateStmt */ + YYSYMBOL_OptTemp = 648, /* OptTemp */ + YYSYMBOL_OptTableElementList = 649, /* OptTableElementList */ + YYSYMBOL_OptTypedTableElementList = 650, /* OptTypedTableElementList */ + YYSYMBOL_TableElementList = 651, /* TableElementList */ + YYSYMBOL_TypedTableElementList = 652, /* TypedTableElementList */ + YYSYMBOL_TableElement = 653, /* TableElement */ + YYSYMBOL_TypedTableElement = 654, /* TypedTableElement */ + YYSYMBOL_columnDef = 655, /* columnDef */ + YYSYMBOL_columnOptions = 656, /* columnOptions */ + YYSYMBOL_ColQualList = 657, /* ColQualList */ + YYSYMBOL_ColConstraint = 658, /* ColConstraint */ + YYSYMBOL_ColConstraintElem = 659, /* ColConstraintElem */ + YYSYMBOL_generated_when = 660, /* generated_when */ + YYSYMBOL_ConstraintAttr = 661, /* ConstraintAttr */ + YYSYMBOL_TableLikeClause = 662, /* TableLikeClause */ + YYSYMBOL_TableLikeOptionList = 663, /* TableLikeOptionList */ + YYSYMBOL_TableLikeOption = 664, /* TableLikeOption */ + YYSYMBOL_TableConstraint = 665, /* TableConstraint */ + YYSYMBOL_ConstraintElem = 666, /* ConstraintElem */ + YYSYMBOL_opt_no_inherit = 667, /* opt_no_inherit */ + YYSYMBOL_opt_column_list = 668, /* opt_column_list */ + YYSYMBOL_columnList = 669, /* columnList */ + YYSYMBOL_columnElem = 670, /* columnElem */ + YYSYMBOL_opt_c_include = 671, /* opt_c_include */ + YYSYMBOL_key_match = 672, /* key_match */ + YYSYMBOL_ExclusionConstraintList = 673, /* ExclusionConstraintList */ + YYSYMBOL_ExclusionConstraintElem = 674, /* ExclusionConstraintElem */ + YYSYMBOL_ExclusionWhereClause = 675, /* ExclusionWhereClause */ + YYSYMBOL_key_actions = 676, /* key_actions */ + YYSYMBOL_key_update = 677, /* key_update */ + YYSYMBOL_key_delete = 678, /* key_delete */ + YYSYMBOL_key_action = 679, /* key_action */ + YYSYMBOL_OptInherit = 680, /* OptInherit */ + YYSYMBOL_OptPartitionSpec = 681, /* OptPartitionSpec */ + YYSYMBOL_PartitionSpec = 682, /* PartitionSpec */ + YYSYMBOL_part_params = 683, /* part_params */ + YYSYMBOL_part_elem = 684, /* part_elem */ + YYSYMBOL_table_access_method_clause = 685, /* table_access_method_clause */ + YYSYMBOL_OptWith = 686, /* OptWith */ + YYSYMBOL_OnCommitOption = 687, /* OnCommitOption */ + YYSYMBOL_OptTableSpace = 688, /* OptTableSpace */ + YYSYMBOL_OptConsTableSpace = 689, /* OptConsTableSpace */ + YYSYMBOL_ExistingIndex = 690, /* ExistingIndex */ + YYSYMBOL_CreateStatsStmt = 691, /* CreateStatsStmt */ + YYSYMBOL_AlterStatsStmt = 692, /* AlterStatsStmt */ + YYSYMBOL_create_as_target = 693, /* create_as_target */ + YYSYMBOL_opt_with_data = 694, /* opt_with_data */ + YYSYMBOL_CreateMatViewStmt = 695, /* CreateMatViewStmt */ + YYSYMBOL_create_mv_target = 696, /* create_mv_target */ + YYSYMBOL_OptNoLog = 697, /* OptNoLog */ + YYSYMBOL_RefreshMatViewStmt = 698, /* RefreshMatViewStmt */ + YYSYMBOL_CreateSeqStmt = 699, /* CreateSeqStmt */ + YYSYMBOL_AlterSeqStmt = 700, /* AlterSeqStmt */ + YYSYMBOL_OptSeqOptList = 701, /* OptSeqOptList */ + YYSYMBOL_OptParenthesizedSeqOptList = 702, /* OptParenthesizedSeqOptList */ + YYSYMBOL_SeqOptList = 703, /* SeqOptList */ + YYSYMBOL_SeqOptElem = 704, /* SeqOptElem */ + YYSYMBOL_opt_by = 705, /* opt_by */ + YYSYMBOL_NumericOnly = 706, /* NumericOnly */ + YYSYMBOL_NumericOnly_list = 707, /* NumericOnly_list */ + YYSYMBOL_CreatePLangStmt = 708, /* CreatePLangStmt */ + YYSYMBOL_opt_trusted = 709, /* opt_trusted */ + YYSYMBOL_handler_name = 710, /* handler_name */ + YYSYMBOL_opt_inline_handler = 711, /* opt_inline_handler */ + YYSYMBOL_validator_clause = 712, /* validator_clause */ + YYSYMBOL_opt_validator = 713, /* opt_validator */ + YYSYMBOL_DropPLangStmt = 714, /* DropPLangStmt */ + YYSYMBOL_opt_procedural = 715, /* opt_procedural */ + YYSYMBOL_CreateTableSpaceStmt = 716, /* CreateTableSpaceStmt */ + YYSYMBOL_OptTableSpaceOwner = 717, /* OptTableSpaceOwner */ + YYSYMBOL_DropTableSpaceStmt = 718, /* DropTableSpaceStmt */ + YYSYMBOL_CreateExtensionStmt = 719, /* CreateExtensionStmt */ + YYSYMBOL_create_extension_opt_list = 720, /* create_extension_opt_list */ + YYSYMBOL_create_extension_opt_item = 721, /* create_extension_opt_item */ + YYSYMBOL_AlterExtensionStmt = 722, /* AlterExtensionStmt */ + YYSYMBOL_alter_extension_opt_list = 723, /* alter_extension_opt_list */ + YYSYMBOL_alter_extension_opt_item = 724, /* alter_extension_opt_item */ + YYSYMBOL_AlterExtensionContentsStmt = 725, /* AlterExtensionContentsStmt */ + YYSYMBOL_CreateFdwStmt = 726, /* CreateFdwStmt */ + YYSYMBOL_fdw_option = 727, /* fdw_option */ + YYSYMBOL_fdw_options = 728, /* fdw_options */ + YYSYMBOL_opt_fdw_options = 729, /* opt_fdw_options */ + YYSYMBOL_AlterFdwStmt = 730, /* AlterFdwStmt */ + YYSYMBOL_create_generic_options = 731, /* create_generic_options */ + YYSYMBOL_generic_option_list = 732, /* generic_option_list */ + YYSYMBOL_alter_generic_options = 733, /* alter_generic_options */ + YYSYMBOL_alter_generic_option_list = 734, /* alter_generic_option_list */ + YYSYMBOL_alter_generic_option_elem = 735, /* alter_generic_option_elem */ + YYSYMBOL_generic_option_elem = 736, /* generic_option_elem */ + YYSYMBOL_generic_option_name = 737, /* generic_option_name */ + YYSYMBOL_generic_option_arg = 738, /* generic_option_arg */ + YYSYMBOL_CreateForeignServerStmt = 739, /* CreateForeignServerStmt */ + YYSYMBOL_opt_type = 740, /* opt_type */ + YYSYMBOL_foreign_server_version = 741, /* foreign_server_version */ + YYSYMBOL_opt_foreign_server_version = 742, /* opt_foreign_server_version */ + YYSYMBOL_AlterForeignServerStmt = 743, /* AlterForeignServerStmt */ + YYSYMBOL_CreateForeignTableStmt = 744, /* CreateForeignTableStmt */ + YYSYMBOL_AlterForeignTableStmt = 745, /* AlterForeignTableStmt */ + YYSYMBOL_ImportForeignSchemaStmt = 746, /* ImportForeignSchemaStmt */ + YYSYMBOL_import_qualification_type = 747, /* import_qualification_type */ + YYSYMBOL_import_qualification = 748, /* import_qualification */ + YYSYMBOL_CreateUserMappingStmt = 749, /* CreateUserMappingStmt */ + YYSYMBOL_auth_ident = 750, /* auth_ident */ + YYSYMBOL_DropUserMappingStmt = 751, /* DropUserMappingStmt */ + YYSYMBOL_AlterUserMappingStmt = 752, /* AlterUserMappingStmt */ + YYSYMBOL_CreatePolicyStmt = 753, /* CreatePolicyStmt */ + YYSYMBOL_AlterPolicyStmt = 754, /* AlterPolicyStmt */ + YYSYMBOL_RowSecurityOptionalExpr = 755, /* RowSecurityOptionalExpr */ + YYSYMBOL_RowSecurityOptionalWithCheck = 756, /* RowSecurityOptionalWithCheck */ + YYSYMBOL_RowSecurityDefaultToRole = 757, /* RowSecurityDefaultToRole */ + YYSYMBOL_RowSecurityOptionalToRole = 758, /* RowSecurityOptionalToRole */ + YYSYMBOL_RowSecurityDefaultPermissive = 759, /* RowSecurityDefaultPermissive */ + YYSYMBOL_RowSecurityDefaultForCmd = 760, /* RowSecurityDefaultForCmd */ + YYSYMBOL_row_security_cmd = 761, /* row_security_cmd */ + YYSYMBOL_CreateAmStmt = 762, /* CreateAmStmt */ + YYSYMBOL_am_type = 763, /* am_type */ + YYSYMBOL_CreateTrigStmt = 764, /* CreateTrigStmt */ + YYSYMBOL_TriggerActionTime = 765, /* TriggerActionTime */ + YYSYMBOL_TriggerEvents = 766, /* TriggerEvents */ + YYSYMBOL_TriggerOneEvent = 767, /* TriggerOneEvent */ + YYSYMBOL_TriggerReferencing = 768, /* TriggerReferencing */ + YYSYMBOL_TriggerTransitions = 769, /* TriggerTransitions */ + YYSYMBOL_TriggerTransition = 770, /* TriggerTransition */ + YYSYMBOL_TransitionOldOrNew = 771, /* TransitionOldOrNew */ + YYSYMBOL_TransitionRowOrTable = 772, /* TransitionRowOrTable */ + YYSYMBOL_TransitionRelName = 773, /* TransitionRelName */ + YYSYMBOL_TriggerForSpec = 774, /* TriggerForSpec */ + YYSYMBOL_TriggerForOptEach = 775, /* TriggerForOptEach */ + YYSYMBOL_TriggerForType = 776, /* TriggerForType */ + YYSYMBOL_TriggerWhen = 777, /* TriggerWhen */ + YYSYMBOL_FUNCTION_or_PROCEDURE = 778, /* FUNCTION_or_PROCEDURE */ + YYSYMBOL_TriggerFuncArgs = 779, /* TriggerFuncArgs */ + YYSYMBOL_TriggerFuncArg = 780, /* TriggerFuncArg */ + YYSYMBOL_OptConstrFromTable = 781, /* OptConstrFromTable */ + YYSYMBOL_ConstraintAttributeSpec = 782, /* ConstraintAttributeSpec */ + YYSYMBOL_ConstraintAttributeElem = 783, /* ConstraintAttributeElem */ + YYSYMBOL_CreateEventTrigStmt = 784, /* CreateEventTrigStmt */ + YYSYMBOL_event_trigger_when_list = 785, /* event_trigger_when_list */ + YYSYMBOL_event_trigger_when_item = 786, /* event_trigger_when_item */ + YYSYMBOL_event_trigger_value_list = 787, /* event_trigger_value_list */ + YYSYMBOL_AlterEventTrigStmt = 788, /* AlterEventTrigStmt */ + YYSYMBOL_enable_trigger = 789, /* enable_trigger */ + YYSYMBOL_CreateAssertionStmt = 790, /* CreateAssertionStmt */ + YYSYMBOL_DefineStmt = 791, /* DefineStmt */ + YYSYMBOL_definition = 792, /* definition */ + YYSYMBOL_def_list = 793, /* def_list */ + YYSYMBOL_def_elem = 794, /* def_elem */ + YYSYMBOL_def_arg = 795, /* def_arg */ + YYSYMBOL_old_aggr_definition = 796, /* old_aggr_definition */ + YYSYMBOL_old_aggr_list = 797, /* old_aggr_list */ + YYSYMBOL_old_aggr_elem = 798, /* old_aggr_elem */ + YYSYMBOL_opt_enum_val_list = 799, /* opt_enum_val_list */ + YYSYMBOL_enum_val_list = 800, /* enum_val_list */ + YYSYMBOL_AlterEnumStmt = 801, /* AlterEnumStmt */ + YYSYMBOL_opt_if_not_exists = 802, /* opt_if_not_exists */ + YYSYMBOL_CreateOpClassStmt = 803, /* CreateOpClassStmt */ + YYSYMBOL_opclass_item_list = 804, /* opclass_item_list */ + YYSYMBOL_opclass_item = 805, /* opclass_item */ + YYSYMBOL_opt_default = 806, /* opt_default */ + YYSYMBOL_opt_opfamily = 807, /* opt_opfamily */ + YYSYMBOL_opclass_purpose = 808, /* opclass_purpose */ + YYSYMBOL_opt_recheck = 809, /* opt_recheck */ + YYSYMBOL_CreateOpFamilyStmt = 810, /* CreateOpFamilyStmt */ + YYSYMBOL_AlterOpFamilyStmt = 811, /* AlterOpFamilyStmt */ + YYSYMBOL_opclass_drop_list = 812, /* opclass_drop_list */ + YYSYMBOL_opclass_drop = 813, /* opclass_drop */ + YYSYMBOL_DropOpClassStmt = 814, /* DropOpClassStmt */ + YYSYMBOL_DropOpFamilyStmt = 815, /* DropOpFamilyStmt */ + YYSYMBOL_DropOwnedStmt = 816, /* DropOwnedStmt */ + YYSYMBOL_ReassignOwnedStmt = 817, /* ReassignOwnedStmt */ + YYSYMBOL_DropStmt = 818, /* DropStmt */ + YYSYMBOL_drop_type_any_name = 819, /* drop_type_any_name */ + YYSYMBOL_drop_type_name = 820, /* drop_type_name */ + YYSYMBOL_drop_type_name_on_any_name = 821, /* drop_type_name_on_any_name */ + YYSYMBOL_any_name_list = 822, /* any_name_list */ + YYSYMBOL_any_name = 823, /* any_name */ + YYSYMBOL_attrs = 824, /* attrs */ + YYSYMBOL_type_name_list = 825, /* type_name_list */ + YYSYMBOL_TruncateStmt = 826, /* TruncateStmt */ + YYSYMBOL_opt_restart_seqs = 827, /* opt_restart_seqs */ + YYSYMBOL_CommentStmt = 828, /* CommentStmt */ + YYSYMBOL_comment_type_any_name = 829, /* comment_type_any_name */ + YYSYMBOL_comment_type_name = 830, /* comment_type_name */ + YYSYMBOL_comment_text = 831, /* comment_text */ + YYSYMBOL_SecLabelStmt = 832, /* SecLabelStmt */ + YYSYMBOL_opt_provider = 833, /* opt_provider */ + YYSYMBOL_security_label_type_any_name = 834, /* security_label_type_any_name */ + YYSYMBOL_security_label_type_name = 835, /* security_label_type_name */ + YYSYMBOL_security_label = 836, /* security_label */ + YYSYMBOL_FetchStmt = 837, /* FetchStmt */ + YYSYMBOL_fetch_args = 838, /* fetch_args */ + YYSYMBOL_from_in = 839, /* from_in */ + YYSYMBOL_opt_from_in = 840, /* opt_from_in */ + YYSYMBOL_GrantStmt = 841, /* GrantStmt */ + YYSYMBOL_RevokeStmt = 842, /* RevokeStmt */ + YYSYMBOL_privileges = 843, /* privileges */ + YYSYMBOL_privilege_list = 844, /* privilege_list */ + YYSYMBOL_privilege = 845, /* privilege */ + YYSYMBOL_privilege_target = 846, /* privilege_target */ + YYSYMBOL_grantee_list = 847, /* grantee_list */ + YYSYMBOL_grantee = 848, /* grantee */ + YYSYMBOL_opt_grant_grant_option = 849, /* opt_grant_grant_option */ + YYSYMBOL_GrantRoleStmt = 850, /* GrantRoleStmt */ + YYSYMBOL_RevokeRoleStmt = 851, /* RevokeRoleStmt */ + YYSYMBOL_opt_grant_admin_option = 852, /* opt_grant_admin_option */ + YYSYMBOL_opt_granted_by = 853, /* opt_granted_by */ + YYSYMBOL_AlterDefaultPrivilegesStmt = 854, /* AlterDefaultPrivilegesStmt */ + YYSYMBOL_DefACLOptionList = 855, /* DefACLOptionList */ + YYSYMBOL_DefACLOption = 856, /* DefACLOption */ + YYSYMBOL_DefACLAction = 857, /* DefACLAction */ + YYSYMBOL_defacl_privilege_target = 858, /* defacl_privilege_target */ + YYSYMBOL_IndexStmt = 859, /* IndexStmt */ + YYSYMBOL_opt_unique = 860, /* opt_unique */ + YYSYMBOL_opt_concurrently = 861, /* opt_concurrently */ + YYSYMBOL_opt_index_name = 862, /* opt_index_name */ + YYSYMBOL_access_method_clause = 863, /* access_method_clause */ + YYSYMBOL_index_params = 864, /* index_params */ + YYSYMBOL_index_elem_options = 865, /* index_elem_options */ + YYSYMBOL_index_elem = 866, /* index_elem */ + YYSYMBOL_opt_include = 867, /* opt_include */ + YYSYMBOL_index_including_params = 868, /* index_including_params */ + YYSYMBOL_opt_collate = 869, /* opt_collate */ + YYSYMBOL_opt_class = 870, /* opt_class */ + YYSYMBOL_opt_asc_desc = 871, /* opt_asc_desc */ + YYSYMBOL_opt_nulls_order = 872, /* opt_nulls_order */ + YYSYMBOL_CreateFunctionStmt = 873, /* CreateFunctionStmt */ + YYSYMBOL_opt_or_replace = 874, /* opt_or_replace */ + YYSYMBOL_func_args = 875, /* func_args */ + YYSYMBOL_func_args_list = 876, /* func_args_list */ + YYSYMBOL_function_with_argtypes_list = 877, /* function_with_argtypes_list */ + YYSYMBOL_function_with_argtypes = 878, /* function_with_argtypes */ + YYSYMBOL_func_args_with_defaults = 879, /* func_args_with_defaults */ + YYSYMBOL_func_args_with_defaults_list = 880, /* func_args_with_defaults_list */ + YYSYMBOL_func_arg = 881, /* func_arg */ + YYSYMBOL_arg_class = 882, /* arg_class */ + YYSYMBOL_param_name = 883, /* param_name */ + YYSYMBOL_func_return = 884, /* func_return */ + YYSYMBOL_func_type = 885, /* func_type */ + YYSYMBOL_func_arg_with_default = 886, /* func_arg_with_default */ + YYSYMBOL_aggr_arg = 887, /* aggr_arg */ + YYSYMBOL_aggr_args = 888, /* aggr_args */ + YYSYMBOL_aggr_args_list = 889, /* aggr_args_list */ + YYSYMBOL_aggregate_with_argtypes = 890, /* aggregate_with_argtypes */ + YYSYMBOL_aggregate_with_argtypes_list = 891, /* aggregate_with_argtypes_list */ + YYSYMBOL_createfunc_opt_list = 892, /* createfunc_opt_list */ + YYSYMBOL_common_func_opt_item = 893, /* common_func_opt_item */ + YYSYMBOL_createfunc_opt_item = 894, /* createfunc_opt_item */ + YYSYMBOL_func_as = 895, /* func_as */ + YYSYMBOL_transform_type_list = 896, /* transform_type_list */ + YYSYMBOL_opt_definition = 897, /* opt_definition */ + YYSYMBOL_table_func_column = 898, /* table_func_column */ + YYSYMBOL_table_func_column_list = 899, /* table_func_column_list */ + YYSYMBOL_AlterFunctionStmt = 900, /* AlterFunctionStmt */ + YYSYMBOL_alterfunc_opt_list = 901, /* alterfunc_opt_list */ + YYSYMBOL_opt_restrict = 902, /* opt_restrict */ + YYSYMBOL_RemoveFuncStmt = 903, /* RemoveFuncStmt */ + YYSYMBOL_RemoveAggrStmt = 904, /* RemoveAggrStmt */ + YYSYMBOL_RemoveOperStmt = 905, /* RemoveOperStmt */ + YYSYMBOL_oper_argtypes = 906, /* oper_argtypes */ + YYSYMBOL_any_operator = 907, /* any_operator */ + YYSYMBOL_operator_with_argtypes_list = 908, /* operator_with_argtypes_list */ + YYSYMBOL_operator_with_argtypes = 909, /* operator_with_argtypes */ + YYSYMBOL_DoStmt = 910, /* DoStmt */ + YYSYMBOL_dostmt_opt_list = 911, /* dostmt_opt_list */ + YYSYMBOL_dostmt_opt_item = 912, /* dostmt_opt_item */ + YYSYMBOL_CreateCastStmt = 913, /* CreateCastStmt */ + YYSYMBOL_cast_context = 914, /* cast_context */ + YYSYMBOL_DropCastStmt = 915, /* DropCastStmt */ + YYSYMBOL_opt_if_exists = 916, /* opt_if_exists */ + YYSYMBOL_CreateTransformStmt = 917, /* CreateTransformStmt */ + YYSYMBOL_transform_element_list = 918, /* transform_element_list */ + YYSYMBOL_DropTransformStmt = 919, /* DropTransformStmt */ + YYSYMBOL_ReindexStmt = 920, /* ReindexStmt */ + YYSYMBOL_reindex_target_type = 921, /* reindex_target_type */ + YYSYMBOL_reindex_target_multitable = 922, /* reindex_target_multitable */ + YYSYMBOL_reindex_option_list = 923, /* reindex_option_list */ + YYSYMBOL_reindex_option_elem = 924, /* reindex_option_elem */ + YYSYMBOL_AlterTblSpcStmt = 925, /* AlterTblSpcStmt */ + YYSYMBOL_RenameStmt = 926, /* RenameStmt */ + YYSYMBOL_opt_column = 927, /* opt_column */ + YYSYMBOL_opt_set_data = 928, /* opt_set_data */ + YYSYMBOL_AlterObjectDependsStmt = 929, /* AlterObjectDependsStmt */ + YYSYMBOL_opt_no = 930, /* opt_no */ + YYSYMBOL_AlterObjectSchemaStmt = 931, /* AlterObjectSchemaStmt */ + YYSYMBOL_AlterOperatorStmt = 932, /* AlterOperatorStmt */ + YYSYMBOL_operator_def_list = 933, /* operator_def_list */ + YYSYMBOL_operator_def_elem = 934, /* operator_def_elem */ + YYSYMBOL_operator_def_arg = 935, /* operator_def_arg */ + YYSYMBOL_AlterTypeStmt = 936, /* AlterTypeStmt */ + YYSYMBOL_AlterOwnerStmt = 937, /* AlterOwnerStmt */ + YYSYMBOL_CreatePublicationStmt = 938, /* CreatePublicationStmt */ + YYSYMBOL_opt_publication_for_tables = 939, /* opt_publication_for_tables */ + YYSYMBOL_publication_for_tables = 940, /* publication_for_tables */ + YYSYMBOL_AlterPublicationStmt = 941, /* AlterPublicationStmt */ + YYSYMBOL_CreateSubscriptionStmt = 942, /* CreateSubscriptionStmt */ + YYSYMBOL_publication_name_list = 943, /* publication_name_list */ + YYSYMBOL_publication_name_item = 944, /* publication_name_item */ + YYSYMBOL_AlterSubscriptionStmt = 945, /* AlterSubscriptionStmt */ + YYSYMBOL_DropSubscriptionStmt = 946, /* DropSubscriptionStmt */ + YYSYMBOL_RuleStmt = 947, /* RuleStmt */ + YYSYMBOL_RuleActionList = 948, /* RuleActionList */ + YYSYMBOL_RuleActionMulti = 949, /* RuleActionMulti */ + YYSYMBOL_RuleActionStmt = 950, /* RuleActionStmt */ + YYSYMBOL_RuleActionStmtOrEmpty = 951, /* RuleActionStmtOrEmpty */ + YYSYMBOL_event = 952, /* event */ + YYSYMBOL_opt_instead = 953, /* opt_instead */ + YYSYMBOL_NotifyStmt = 954, /* NotifyStmt */ + YYSYMBOL_notify_payload = 955, /* notify_payload */ + YYSYMBOL_ListenStmt = 956, /* ListenStmt */ + YYSYMBOL_UnlistenStmt = 957, /* UnlistenStmt */ + YYSYMBOL_TransactionStmt = 958, /* TransactionStmt */ + YYSYMBOL_opt_transaction = 959, /* opt_transaction */ + YYSYMBOL_transaction_mode_item = 960, /* transaction_mode_item */ + YYSYMBOL_transaction_mode_list = 961, /* transaction_mode_list */ + YYSYMBOL_transaction_mode_list_or_empty = 962, /* transaction_mode_list_or_empty */ + YYSYMBOL_opt_transaction_chain = 963, /* opt_transaction_chain */ + YYSYMBOL_ViewStmt = 964, /* ViewStmt */ + YYSYMBOL_opt_check_option = 965, /* opt_check_option */ + YYSYMBOL_LoadStmt = 966, /* LoadStmt */ + YYSYMBOL_CreatedbStmt = 967, /* CreatedbStmt */ + YYSYMBOL_createdb_opt_list = 968, /* createdb_opt_list */ + YYSYMBOL_createdb_opt_items = 969, /* createdb_opt_items */ + YYSYMBOL_createdb_opt_item = 970, /* createdb_opt_item */ + YYSYMBOL_createdb_opt_name = 971, /* createdb_opt_name */ + YYSYMBOL_opt_equal = 972, /* opt_equal */ + YYSYMBOL_AlterDatabaseStmt = 973, /* AlterDatabaseStmt */ + YYSYMBOL_AlterDatabaseSetStmt = 974, /* AlterDatabaseSetStmt */ + YYSYMBOL_DropdbStmt = 975, /* DropdbStmt */ + YYSYMBOL_drop_option_list = 976, /* drop_option_list */ + YYSYMBOL_drop_option = 977, /* drop_option */ + YYSYMBOL_AlterCollationStmt = 978, /* AlterCollationStmt */ + YYSYMBOL_AlterSystemStmt = 979, /* AlterSystemStmt */ + YYSYMBOL_CreateDomainStmt = 980, /* CreateDomainStmt */ + YYSYMBOL_AlterDomainStmt = 981, /* AlterDomainStmt */ + YYSYMBOL_opt_as = 982, /* opt_as */ + YYSYMBOL_AlterTSDictionaryStmt = 983, /* AlterTSDictionaryStmt */ + YYSYMBOL_AlterTSConfigurationStmt = 984, /* AlterTSConfigurationStmt */ + YYSYMBOL_any_with = 985, /* any_with */ + YYSYMBOL_CreateConversionStmt = 986, /* CreateConversionStmt */ + YYSYMBOL_ClusterStmt = 987, /* ClusterStmt */ + YYSYMBOL_cluster_index_specification = 988, /* cluster_index_specification */ + YYSYMBOL_VacuumStmt = 989, /* VacuumStmt */ + YYSYMBOL_AnalyzeStmt = 990, /* AnalyzeStmt */ + YYSYMBOL_vac_analyze_option_list = 991, /* vac_analyze_option_list */ + YYSYMBOL_analyze_keyword = 992, /* analyze_keyword */ + YYSYMBOL_vac_analyze_option_elem = 993, /* vac_analyze_option_elem */ + YYSYMBOL_vac_analyze_option_name = 994, /* vac_analyze_option_name */ + YYSYMBOL_vac_analyze_option_arg = 995, /* vac_analyze_option_arg */ + YYSYMBOL_opt_analyze = 996, /* opt_analyze */ + YYSYMBOL_opt_verbose = 997, /* opt_verbose */ + YYSYMBOL_opt_full = 998, /* opt_full */ + YYSYMBOL_opt_freeze = 999, /* opt_freeze */ + YYSYMBOL_opt_name_list = 1000, /* opt_name_list */ + YYSYMBOL_vacuum_relation = 1001, /* vacuum_relation */ + YYSYMBOL_vacuum_relation_list = 1002, /* vacuum_relation_list */ + YYSYMBOL_opt_vacuum_relation_list = 1003, /* opt_vacuum_relation_list */ + YYSYMBOL_ExplainStmt = 1004, /* ExplainStmt */ + YYSYMBOL_ExplainableStmt = 1005, /* ExplainableStmt */ + YYSYMBOL_explain_option_list = 1006, /* explain_option_list */ + YYSYMBOL_explain_option_elem = 1007, /* explain_option_elem */ + YYSYMBOL_explain_option_name = 1008, /* explain_option_name */ + YYSYMBOL_explain_option_arg = 1009, /* explain_option_arg */ + YYSYMBOL_PrepareStmt = 1010, /* PrepareStmt */ + YYSYMBOL_prep_type_clause = 1011, /* prep_type_clause */ + YYSYMBOL_PreparableStmt = 1012, /* PreparableStmt */ + YYSYMBOL_ExecuteStmt = 1013, /* ExecuteStmt */ + YYSYMBOL_execute_param_clause = 1014, /* execute_param_clause */ + YYSYMBOL_InsertStmt = 1015, /* InsertStmt */ + YYSYMBOL_insert_target = 1016, /* insert_target */ + YYSYMBOL_insert_rest = 1017, /* insert_rest */ + YYSYMBOL_override_kind = 1018, /* override_kind */ + YYSYMBOL_insert_column_list = 1019, /* insert_column_list */ + YYSYMBOL_insert_column_item = 1020, /* insert_column_item */ + YYSYMBOL_opt_on_conflict = 1021, /* opt_on_conflict */ + YYSYMBOL_opt_conf_expr = 1022, /* opt_conf_expr */ + YYSYMBOL_returning_clause = 1023, /* returning_clause */ + YYSYMBOL_DeleteStmt = 1024, /* DeleteStmt */ + YYSYMBOL_using_clause = 1025, /* using_clause */ + YYSYMBOL_LockStmt = 1026, /* LockStmt */ + YYSYMBOL_opt_lock = 1027, /* opt_lock */ + YYSYMBOL_lock_type = 1028, /* lock_type */ + YYSYMBOL_opt_nowait = 1029, /* opt_nowait */ + YYSYMBOL_opt_nowait_or_skip = 1030, /* opt_nowait_or_skip */ + YYSYMBOL_UpdateStmt = 1031, /* UpdateStmt */ + YYSYMBOL_set_clause_list = 1032, /* set_clause_list */ + YYSYMBOL_set_clause = 1033, /* set_clause */ + YYSYMBOL_set_target = 1034, /* set_target */ + YYSYMBOL_set_target_list = 1035, /* set_target_list */ + YYSYMBOL_DeclareCursorStmt = 1036, /* DeclareCursorStmt */ + YYSYMBOL_cursor_name = 1037, /* cursor_name */ + YYSYMBOL_cursor_options = 1038, /* cursor_options */ + YYSYMBOL_opt_hold = 1039, /* opt_hold */ + YYSYMBOL_SelectStmt = 1040, /* SelectStmt */ + YYSYMBOL_select_with_parens = 1041, /* select_with_parens */ + YYSYMBOL_select_no_parens = 1042, /* select_no_parens */ + YYSYMBOL_select_clause = 1043, /* select_clause */ + YYSYMBOL_simple_select = 1044, /* simple_select */ + YYSYMBOL_with_clause = 1045, /* with_clause */ + YYSYMBOL_cte_list = 1046, /* cte_list */ + YYSYMBOL_common_table_expr = 1047, /* common_table_expr */ + YYSYMBOL_opt_materialized = 1048, /* opt_materialized */ + YYSYMBOL_opt_with_clause = 1049, /* opt_with_clause */ + YYSYMBOL_into_clause = 1050, /* into_clause */ + YYSYMBOL_OptTempTableName = 1051, /* OptTempTableName */ + YYSYMBOL_opt_table = 1052, /* opt_table */ + YYSYMBOL_all_or_distinct = 1053, /* all_or_distinct */ + YYSYMBOL_distinct_clause = 1054, /* distinct_clause */ + YYSYMBOL_opt_all_clause = 1055, /* opt_all_clause */ + YYSYMBOL_opt_sort_clause = 1056, /* opt_sort_clause */ + YYSYMBOL_sort_clause = 1057, /* sort_clause */ + YYSYMBOL_sortby_list = 1058, /* sortby_list */ + YYSYMBOL_sortby = 1059, /* sortby */ + YYSYMBOL_select_limit = 1060, /* select_limit */ + YYSYMBOL_opt_select_limit = 1061, /* opt_select_limit */ + YYSYMBOL_limit_clause = 1062, /* limit_clause */ + YYSYMBOL_offset_clause = 1063, /* offset_clause */ + YYSYMBOL_select_limit_value = 1064, /* select_limit_value */ + YYSYMBOL_select_offset_value = 1065, /* select_offset_value */ + YYSYMBOL_select_fetch_first_value = 1066, /* select_fetch_first_value */ + YYSYMBOL_I_or_F_const = 1067, /* I_or_F_const */ + YYSYMBOL_row_or_rows = 1068, /* row_or_rows */ + YYSYMBOL_first_or_next = 1069, /* first_or_next */ + YYSYMBOL_group_clause = 1070, /* group_clause */ + YYSYMBOL_group_by_list = 1071, /* group_by_list */ + YYSYMBOL_group_by_item = 1072, /* group_by_item */ + YYSYMBOL_empty_grouping_set = 1073, /* empty_grouping_set */ + YYSYMBOL_rollup_clause = 1074, /* rollup_clause */ + YYSYMBOL_cube_clause = 1075, /* cube_clause */ + YYSYMBOL_grouping_sets_clause = 1076, /* grouping_sets_clause */ + YYSYMBOL_having_clause = 1077, /* having_clause */ + YYSYMBOL_for_locking_clause = 1078, /* for_locking_clause */ + YYSYMBOL_opt_for_locking_clause = 1079, /* opt_for_locking_clause */ + YYSYMBOL_for_locking_items = 1080, /* for_locking_items */ + YYSYMBOL_for_locking_item = 1081, /* for_locking_item */ + YYSYMBOL_for_locking_strength = 1082, /* for_locking_strength */ + YYSYMBOL_locked_rels_list = 1083, /* locked_rels_list */ + YYSYMBOL_values_clause = 1084, /* values_clause */ + YYSYMBOL_from_clause = 1085, /* from_clause */ + YYSYMBOL_from_list = 1086, /* from_list */ + YYSYMBOL_table_ref = 1087, /* table_ref */ + YYSYMBOL_joined_table = 1088, /* joined_table */ + YYSYMBOL_alias_clause = 1089, /* alias_clause */ + YYSYMBOL_opt_alias_clause = 1090, /* opt_alias_clause */ + YYSYMBOL_func_alias_clause = 1091, /* func_alias_clause */ + YYSYMBOL_join_type = 1092, /* join_type */ + YYSYMBOL_join_outer = 1093, /* join_outer */ + YYSYMBOL_join_qual = 1094, /* join_qual */ + YYSYMBOL_relation_expr = 1095, /* relation_expr */ + YYSYMBOL_relation_expr_list = 1096, /* relation_expr_list */ + YYSYMBOL_relation_expr_opt_alias = 1097, /* relation_expr_opt_alias */ + YYSYMBOL_tablesample_clause = 1098, /* tablesample_clause */ + YYSYMBOL_opt_repeatable_clause = 1099, /* opt_repeatable_clause */ + YYSYMBOL_func_table = 1100, /* func_table */ + YYSYMBOL_rowsfrom_item = 1101, /* rowsfrom_item */ + YYSYMBOL_rowsfrom_list = 1102, /* rowsfrom_list */ + YYSYMBOL_opt_col_def_list = 1103, /* opt_col_def_list */ + YYSYMBOL_opt_ordinality = 1104, /* opt_ordinality */ + YYSYMBOL_where_clause = 1105, /* where_clause */ + YYSYMBOL_where_or_current_clause = 1106, /* where_or_current_clause */ + YYSYMBOL_OptTableFuncElementList = 1107, /* OptTableFuncElementList */ + YYSYMBOL_TableFuncElementList = 1108, /* TableFuncElementList */ + YYSYMBOL_TableFuncElement = 1109, /* TableFuncElement */ + YYSYMBOL_xmltable = 1110, /* xmltable */ + YYSYMBOL_xmltable_column_list = 1111, /* xmltable_column_list */ + YYSYMBOL_xmltable_column_el = 1112, /* xmltable_column_el */ + YYSYMBOL_xmltable_column_option_list = 1113, /* xmltable_column_option_list */ + YYSYMBOL_xmltable_column_option_el = 1114, /* xmltable_column_option_el */ + YYSYMBOL_xml_namespace_list = 1115, /* xml_namespace_list */ + YYSYMBOL_xml_namespace_el = 1116, /* xml_namespace_el */ + YYSYMBOL_Typename = 1117, /* Typename */ + YYSYMBOL_opt_array_bounds = 1118, /* opt_array_bounds */ + YYSYMBOL_SimpleTypename = 1119, /* SimpleTypename */ + YYSYMBOL_ConstTypename = 1120, /* ConstTypename */ + YYSYMBOL_GenericType = 1121, /* GenericType */ + YYSYMBOL_opt_type_modifiers = 1122, /* opt_type_modifiers */ + YYSYMBOL_Numeric = 1123, /* Numeric */ + YYSYMBOL_opt_float = 1124, /* opt_float */ + YYSYMBOL_Bit = 1125, /* Bit */ + YYSYMBOL_ConstBit = 1126, /* ConstBit */ + YYSYMBOL_BitWithLength = 1127, /* BitWithLength */ + YYSYMBOL_BitWithoutLength = 1128, /* BitWithoutLength */ + YYSYMBOL_Character = 1129, /* Character */ + YYSYMBOL_ConstCharacter = 1130, /* ConstCharacter */ + YYSYMBOL_CharacterWithLength = 1131, /* CharacterWithLength */ + YYSYMBOL_CharacterWithoutLength = 1132, /* CharacterWithoutLength */ + YYSYMBOL_character = 1133, /* character */ + YYSYMBOL_opt_varying = 1134, /* opt_varying */ + YYSYMBOL_ConstDatetime = 1135, /* ConstDatetime */ + YYSYMBOL_ConstInterval = 1136, /* ConstInterval */ + YYSYMBOL_opt_timezone = 1137, /* opt_timezone */ + YYSYMBOL_opt_interval = 1138, /* opt_interval */ + YYSYMBOL_interval_second = 1139, /* interval_second */ + YYSYMBOL_a_expr = 1140, /* a_expr */ + YYSYMBOL_b_expr = 1141, /* b_expr */ + YYSYMBOL_c_expr = 1142, /* c_expr */ + YYSYMBOL_func_application = 1143, /* func_application */ + YYSYMBOL_func_expr = 1144, /* func_expr */ + YYSYMBOL_func_expr_windowless = 1145, /* func_expr_windowless */ + YYSYMBOL_func_expr_common_subexpr = 1146, /* func_expr_common_subexpr */ + YYSYMBOL_xml_root_version = 1147, /* xml_root_version */ + YYSYMBOL_opt_xml_root_standalone = 1148, /* opt_xml_root_standalone */ + YYSYMBOL_xml_attributes = 1149, /* xml_attributes */ + YYSYMBOL_xml_attribute_list = 1150, /* xml_attribute_list */ + YYSYMBOL_xml_attribute_el = 1151, /* xml_attribute_el */ + YYSYMBOL_document_or_content = 1152, /* document_or_content */ + YYSYMBOL_xml_whitespace_option = 1153, /* xml_whitespace_option */ + YYSYMBOL_xmlexists_argument = 1154, /* xmlexists_argument */ + YYSYMBOL_xml_passing_mech = 1155, /* xml_passing_mech */ + YYSYMBOL_within_group_clause = 1156, /* within_group_clause */ + YYSYMBOL_filter_clause = 1157, /* filter_clause */ + YYSYMBOL_window_clause = 1158, /* window_clause */ + YYSYMBOL_window_definition_list = 1159, /* window_definition_list */ + YYSYMBOL_window_definition = 1160, /* window_definition */ + YYSYMBOL_over_clause = 1161, /* over_clause */ + YYSYMBOL_window_specification = 1162, /* window_specification */ + YYSYMBOL_opt_existing_window_name = 1163, /* opt_existing_window_name */ + YYSYMBOL_opt_partition_clause = 1164, /* opt_partition_clause */ + YYSYMBOL_opt_frame_clause = 1165, /* opt_frame_clause */ + YYSYMBOL_frame_extent = 1166, /* frame_extent */ + YYSYMBOL_frame_bound = 1167, /* frame_bound */ + YYSYMBOL_opt_window_exclusion_clause = 1168, /* opt_window_exclusion_clause */ + YYSYMBOL_row = 1169, /* row */ + YYSYMBOL_explicit_row = 1170, /* explicit_row */ + YYSYMBOL_implicit_row = 1171, /* implicit_row */ + YYSYMBOL_sub_type = 1172, /* sub_type */ + YYSYMBOL_all_Op = 1173, /* all_Op */ + YYSYMBOL_MathOp = 1174, /* MathOp */ + YYSYMBOL_qual_Op = 1175, /* qual_Op */ + YYSYMBOL_qual_all_Op = 1176, /* qual_all_Op */ + YYSYMBOL_subquery_Op = 1177, /* subquery_Op */ + YYSYMBOL_expr_list = 1178, /* expr_list */ + YYSYMBOL_func_arg_list = 1179, /* func_arg_list */ + YYSYMBOL_func_arg_expr = 1180, /* func_arg_expr */ + YYSYMBOL_type_list = 1181, /* type_list */ + YYSYMBOL_array_expr = 1182, /* array_expr */ + YYSYMBOL_array_expr_list = 1183, /* array_expr_list */ + YYSYMBOL_extract_list = 1184, /* extract_list */ + YYSYMBOL_extract_arg = 1185, /* extract_arg */ + YYSYMBOL_unicode_normal_form = 1186, /* unicode_normal_form */ + YYSYMBOL_overlay_list = 1187, /* overlay_list */ + YYSYMBOL_overlay_placing = 1188, /* overlay_placing */ + YYSYMBOL_position_list = 1189, /* position_list */ + YYSYMBOL_substr_list = 1190, /* substr_list */ + YYSYMBOL_substr_from = 1191, /* substr_from */ + YYSYMBOL_substr_for = 1192, /* substr_for */ + YYSYMBOL_trim_list = 1193, /* trim_list */ + YYSYMBOL_in_expr = 1194, /* in_expr */ + YYSYMBOL_case_expr = 1195, /* case_expr */ + YYSYMBOL_when_clause_list = 1196, /* when_clause_list */ + YYSYMBOL_when_clause = 1197, /* when_clause */ + YYSYMBOL_case_default = 1198, /* case_default */ + YYSYMBOL_case_arg = 1199, /* case_arg */ + YYSYMBOL_columnref = 1200, /* columnref */ + YYSYMBOL_indirection_el = 1201, /* indirection_el */ + YYSYMBOL_opt_slice_bound = 1202, /* opt_slice_bound */ + YYSYMBOL_indirection = 1203, /* indirection */ + YYSYMBOL_opt_indirection = 1204, /* opt_indirection */ + YYSYMBOL_opt_asymmetric = 1205, /* opt_asymmetric */ + YYSYMBOL_opt_target_list = 1206, /* opt_target_list */ + YYSYMBOL_target_list = 1207, /* target_list */ + YYSYMBOL_target_el = 1208, /* target_el */ + YYSYMBOL_qualified_name_list = 1209, /* qualified_name_list */ + YYSYMBOL_qualified_name = 1210, /* qualified_name */ + YYSYMBOL_name_list = 1211, /* name_list */ + YYSYMBOL_name = 1212, /* name */ + YYSYMBOL_database_name = 1213, /* database_name */ + YYSYMBOL_access_method = 1214, /* access_method */ + YYSYMBOL_attr_name = 1215, /* attr_name */ + YYSYMBOL_index_name = 1216, /* index_name */ + YYSYMBOL_file_name = 1217, /* file_name */ + YYSYMBOL_func_name = 1218, /* func_name */ + YYSYMBOL_AexprConst = 1219, /* AexprConst */ + YYSYMBOL_Iconst = 1220, /* Iconst */ + YYSYMBOL_SignedIconst = 1221, /* SignedIconst */ + YYSYMBOL_RoleId = 1222, /* RoleId */ + YYSYMBOL_RoleSpec = 1223, /* RoleSpec */ + YYSYMBOL_role_list = 1224, /* role_list */ + YYSYMBOL_NonReservedWord = 1225, /* NonReservedWord */ + YYSYMBOL_unreserved_keyword = 1226, /* unreserved_keyword */ + YYSYMBOL_col_name_keyword = 1227, /* col_name_keyword */ + YYSYMBOL_type_func_name_keyword = 1228, /* type_func_name_keyword */ + YYSYMBOL_reserved_keyword = 1229, /* reserved_keyword */ + YYSYMBOL_statements = 1230, /* statements */ + YYSYMBOL_statement = 1231, /* statement */ + YYSYMBOL_CreateAsStmt = 1232, /* CreateAsStmt */ + YYSYMBOL_1233_1 = 1233, /* $@1 */ + YYSYMBOL_1234_2 = 1234, /* $@2 */ + YYSYMBOL_at = 1235, /* at */ + YYSYMBOL_ECPGConnect = 1236, /* ECPGConnect */ + YYSYMBOL_connection_target = 1237, /* connection_target */ + YYSYMBOL_opt_database_name = 1238, /* opt_database_name */ + YYSYMBOL_db_prefix = 1239, /* db_prefix */ + YYSYMBOL_server = 1240, /* server */ + YYSYMBOL_opt_server = 1241, /* opt_server */ + YYSYMBOL_server_name = 1242, /* server_name */ + YYSYMBOL_opt_port = 1243, /* opt_port */ + YYSYMBOL_opt_connection_name = 1244, /* opt_connection_name */ + YYSYMBOL_opt_user = 1245, /* opt_user */ + YYSYMBOL_ora_user = 1246, /* ora_user */ + YYSYMBOL_user_name = 1247, /* user_name */ + YYSYMBOL_char_variable = 1248, /* char_variable */ + YYSYMBOL_opt_options = 1249, /* opt_options */ + YYSYMBOL_connect_options = 1250, /* connect_options */ + YYSYMBOL_opt_opt_value = 1251, /* opt_opt_value */ + YYSYMBOL_prepared_name = 1252, /* prepared_name */ + YYSYMBOL_ECPGCursorStmt = 1253, /* ECPGCursorStmt */ + YYSYMBOL_ECPGExecuteImmediateStmt = 1254, /* ECPGExecuteImmediateStmt */ + YYSYMBOL_ECPGVarDeclaration = 1255, /* ECPGVarDeclaration */ + YYSYMBOL_single_vt_declaration = 1256, /* single_vt_declaration */ + YYSYMBOL_precision = 1257, /* precision */ + YYSYMBOL_opt_scale = 1258, /* opt_scale */ + YYSYMBOL_ecpg_interval = 1259, /* ecpg_interval */ + YYSYMBOL_ECPGDeclaration = 1260, /* ECPGDeclaration */ + YYSYMBOL_1261_3 = 1261, /* $@3 */ + YYSYMBOL_sql_startdeclare = 1262, /* sql_startdeclare */ + YYSYMBOL_sql_enddeclare = 1263, /* sql_enddeclare */ + YYSYMBOL_var_type_declarations = 1264, /* var_type_declarations */ + YYSYMBOL_vt_declarations = 1265, /* vt_declarations */ + YYSYMBOL_variable_declarations = 1266, /* variable_declarations */ + YYSYMBOL_type_declaration = 1267, /* type_declaration */ + YYSYMBOL_1268_4 = 1268, /* $@4 */ + YYSYMBOL_var_declaration = 1269, /* var_declaration */ + YYSYMBOL_1270_5 = 1270, /* $@5 */ + YYSYMBOL_1271_6 = 1271, /* $@6 */ + YYSYMBOL_opt_bit_field = 1272, /* opt_bit_field */ + YYSYMBOL_storage_declaration = 1273, /* storage_declaration */ + YYSYMBOL_storage_clause = 1274, /* storage_clause */ + YYSYMBOL_storage_modifier = 1275, /* storage_modifier */ + YYSYMBOL_var_type = 1276, /* var_type */ + YYSYMBOL_enum_type = 1277, /* enum_type */ + YYSYMBOL_enum_definition = 1278, /* enum_definition */ + YYSYMBOL_struct_union_type_with_symbol = 1279, /* struct_union_type_with_symbol */ + YYSYMBOL_1280_7 = 1280, /* $@7 */ + YYSYMBOL_struct_union_type = 1281, /* struct_union_type */ + YYSYMBOL_1282_8 = 1282, /* $@8 */ + YYSYMBOL_s_struct_union_symbol = 1283, /* s_struct_union_symbol */ + YYSYMBOL_s_struct_union = 1284, /* s_struct_union */ + YYSYMBOL_simple_type = 1285, /* simple_type */ + YYSYMBOL_unsigned_type = 1286, /* unsigned_type */ + YYSYMBOL_signed_type = 1287, /* signed_type */ + YYSYMBOL_opt_signed = 1288, /* opt_signed */ + YYSYMBOL_variable_list = 1289, /* variable_list */ + YYSYMBOL_variable = 1290, /* variable */ + YYSYMBOL_opt_initializer = 1291, /* opt_initializer */ + YYSYMBOL_opt_pointer = 1292, /* opt_pointer */ + YYSYMBOL_ECPGDeclare = 1293, /* ECPGDeclare */ + YYSYMBOL_ECPGDisconnect = 1294, /* ECPGDisconnect */ + YYSYMBOL_dis_name = 1295, /* dis_name */ + YYSYMBOL_connection_object = 1296, /* connection_object */ + YYSYMBOL_execstring = 1297, /* execstring */ + YYSYMBOL_ECPGFree = 1298, /* ECPGFree */ + YYSYMBOL_ECPGOpen = 1299, /* ECPGOpen */ + YYSYMBOL_opt_ecpg_using = 1300, /* opt_ecpg_using */ + YYSYMBOL_ecpg_using = 1301, /* ecpg_using */ + YYSYMBOL_using_descriptor = 1302, /* using_descriptor */ + YYSYMBOL_into_descriptor = 1303, /* into_descriptor */ + YYSYMBOL_into_sqlda = 1304, /* into_sqlda */ + YYSYMBOL_using_list = 1305, /* using_list */ + YYSYMBOL_UsingValue = 1306, /* UsingValue */ + YYSYMBOL_UsingConst = 1307, /* UsingConst */ + YYSYMBOL_ECPGDescribe = 1308, /* ECPGDescribe */ + YYSYMBOL_opt_output = 1309, /* opt_output */ + YYSYMBOL_ECPGAllocateDescr = 1310, /* ECPGAllocateDescr */ + YYSYMBOL_ECPGDeallocateDescr = 1311, /* ECPGDeallocateDescr */ + YYSYMBOL_ECPGGetDescriptorHeader = 1312, /* ECPGGetDescriptorHeader */ + YYSYMBOL_ECPGGetDescHeaderItems = 1313, /* ECPGGetDescHeaderItems */ + YYSYMBOL_ECPGGetDescHeaderItem = 1314, /* ECPGGetDescHeaderItem */ + YYSYMBOL_ECPGSetDescriptorHeader = 1315, /* ECPGSetDescriptorHeader */ + YYSYMBOL_ECPGSetDescHeaderItems = 1316, /* ECPGSetDescHeaderItems */ + YYSYMBOL_ECPGSetDescHeaderItem = 1317, /* ECPGSetDescHeaderItem */ + YYSYMBOL_IntConstVar = 1318, /* IntConstVar */ + YYSYMBOL_desc_header_item = 1319, /* desc_header_item */ + YYSYMBOL_ECPGGetDescriptor = 1320, /* ECPGGetDescriptor */ + YYSYMBOL_ECPGGetDescItems = 1321, /* ECPGGetDescItems */ + YYSYMBOL_ECPGGetDescItem = 1322, /* ECPGGetDescItem */ + YYSYMBOL_ECPGSetDescriptor = 1323, /* ECPGSetDescriptor */ + YYSYMBOL_ECPGSetDescItems = 1324, /* ECPGSetDescItems */ + YYSYMBOL_ECPGSetDescItem = 1325, /* ECPGSetDescItem */ + YYSYMBOL_AllConstVar = 1326, /* AllConstVar */ + YYSYMBOL_descriptor_item = 1327, /* descriptor_item */ + YYSYMBOL_ECPGSetAutocommit = 1328, /* ECPGSetAutocommit */ + YYSYMBOL_on_off = 1329, /* on_off */ + YYSYMBOL_ECPGSetConnection = 1330, /* ECPGSetConnection */ + YYSYMBOL_ECPGTypedef = 1331, /* ECPGTypedef */ + YYSYMBOL_1332_9 = 1332, /* $@9 */ + YYSYMBOL_opt_reference = 1333, /* opt_reference */ + YYSYMBOL_ECPGVar = 1334, /* ECPGVar */ + YYSYMBOL_1335_10 = 1335, /* $@10 */ + YYSYMBOL_ECPGWhenever = 1336, /* ECPGWhenever */ + YYSYMBOL_action = 1337, /* action */ + YYSYMBOL_ECPGKeywords = 1338, /* ECPGKeywords */ + YYSYMBOL_ECPGKeywords_vanames = 1339, /* ECPGKeywords_vanames */ + YYSYMBOL_ECPGKeywords_rest = 1340, /* ECPGKeywords_rest */ + YYSYMBOL_ECPGTypeName = 1341, /* ECPGTypeName */ + YYSYMBOL_symbol = 1342, /* symbol */ + YYSYMBOL_ECPGColId = 1343, /* ECPGColId */ + YYSYMBOL_ColId = 1344, /* ColId */ + YYSYMBOL_type_function_name = 1345, /* type_function_name */ + YYSYMBOL_ColLabel = 1346, /* ColLabel */ + YYSYMBOL_ECPGColLabel = 1347, /* ECPGColLabel */ + YYSYMBOL_ECPGColLabelCommon = 1348, /* ECPGColLabelCommon */ + YYSYMBOL_ECPGCKeywords = 1349, /* ECPGCKeywords */ + YYSYMBOL_all_unreserved_keyword = 1350, /* all_unreserved_keyword */ + YYSYMBOL_ECPGunreserved_interval = 1351, /* ECPGunreserved_interval */ + YYSYMBOL_into_list = 1352, /* into_list */ + YYSYMBOL_ecpgstart = 1353, /* ecpgstart */ + YYSYMBOL_c_args = 1354, /* c_args */ + YYSYMBOL_coutputvariable = 1355, /* coutputvariable */ + YYSYMBOL_civarind = 1356, /* civarind */ + YYSYMBOL_char_civar = 1357, /* char_civar */ + YYSYMBOL_civar = 1358, /* civar */ + YYSYMBOL_indicator = 1359, /* indicator */ + YYSYMBOL_cvariable = 1360, /* cvariable */ + YYSYMBOL_ecpg_param = 1361, /* ecpg_param */ + YYSYMBOL_ecpg_bconst = 1362, /* ecpg_bconst */ + YYSYMBOL_ecpg_fconst = 1363, /* ecpg_fconst */ + YYSYMBOL_ecpg_sconst = 1364, /* ecpg_sconst */ + YYSYMBOL_ecpg_xconst = 1365, /* ecpg_xconst */ + YYSYMBOL_ecpg_ident = 1366, /* ecpg_ident */ + YYSYMBOL_quoted_ident_stringvar = 1367, /* quoted_ident_stringvar */ + YYSYMBOL_c_stuff_item = 1368, /* c_stuff_item */ + YYSYMBOL_c_stuff = 1369, /* c_stuff */ + YYSYMBOL_c_list = 1370, /* c_list */ + YYSYMBOL_c_term = 1371, /* c_term */ + YYSYMBOL_c_thing = 1372, /* c_thing */ + YYSYMBOL_c_anything = 1373, /* c_anything */ + YYSYMBOL_DeallocateStmt = 1374, /* DeallocateStmt */ + YYSYMBOL_Iresult = 1375, /* Iresult */ + YYSYMBOL_execute_rest = 1376, /* execute_rest */ + YYSYMBOL_ecpg_into = 1377, /* ecpg_into */ + YYSYMBOL_opt_ecpg_into = 1378, /* opt_ecpg_into */ + YYSYMBOL_ecpg_fetch_into = 1379, /* ecpg_fetch_into */ + YYSYMBOL_opt_ecpg_fetch_into = 1380 /* opt_ecpg_fetch_into */ }; -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 -#endif - - -extern YYSTYPE base_yylval; -extern YYLTYPE base_yylloc; -int base_yyparse (void); +typedef enum yysymbol_kind_t yysymbol_kind_t; -#endif /* !YY_BASE_YY_PREPROC_H_INCLUDED */ @@ -1291,28 +2071,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; +#endif + +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -1320,7 +2159,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -1328,7 +2167,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -1342,38 +2194,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -1386,8 +2237,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif -#if ! defined yyoverflow || YYERROR_VERBOSE + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -1452,8 +2317,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -1463,18 +2327,19 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \ + + YYSIZEOF (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -1487,11 +2352,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -1503,12 +2368,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -1531,17 +2396,20 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 6212 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 799 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint16 yytranslate[] = +static const yytype_int16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1627,7 +2495,7 @@ #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { 0, 1624, 1624, 1627, 1629, 1631, 1633, 1635, 1637, 1639, 1641, 1643, 1645, 1647, 1649, 1651, 1653, 1655, 1657, 1659, @@ -1956,110 +2824,118 @@ }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "SQL_ALLOCATE", "SQL_AUTOCOMMIT", - "SQL_BOOL", "SQL_BREAK", "SQL_CARDINALITY", "SQL_CONNECT", "SQL_COUNT", - "SQL_DATETIME_INTERVAL_CODE", "SQL_DATETIME_INTERVAL_PRECISION", - "SQL_DESCRIBE", "SQL_DESCRIPTOR", "SQL_DISCONNECT", "SQL_FOUND", - "SQL_FREE", "SQL_GET", "SQL_GO", "SQL_GOTO", "SQL_IDENTIFIED", - "SQL_INDICATOR", "SQL_KEY_MEMBER", "SQL_LENGTH", "SQL_LONG", - "SQL_NULLABLE", "SQL_OCTET_LENGTH", "SQL_OPEN", "SQL_OUTPUT", - "SQL_REFERENCE", "SQL_RETURNED_LENGTH", "SQL_RETURNED_OCTET_LENGTH", - "SQL_SCALE", "SQL_SECTION", "SQL_SHORT", "SQL_SIGNED", "SQL_SQLERROR", - "SQL_SQLPRINT", "SQL_SQLWARNING", "SQL_START", "SQL_STOP", "SQL_STRUCT", - "SQL_UNSIGNED", "SQL_VAR", "SQL_WHENEVER", "S_ADD", "S_AND", - "S_ANYTHING", "S_AUTO", "S_CONST", "S_DEC", "S_DIV", "S_DOTPOINT", - "S_EQUAL", "S_EXTERN", "S_INC", "S_LSHIFT", "S_MEMPOINT", "S_MEMBER", - "S_MOD", "S_MUL", "S_NEQUAL", "S_OR", "S_REGISTER", "S_RSHIFT", - "S_STATIC", "S_SUB", "S_VOLATILE", "S_TYPEDEF", "CSTRING", "CVARIABLE", - "CPP_LINE", "IP", "IDENT", "UIDENT", "FCONST", "SCONST", "USCONST", - "BCONST", "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", - "COLON_EQUALS", "EQUALS_GREATER", "LESS_EQUALS", "GREATER_EQUALS", - "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", - "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", "ALTER", "ALWAYS", - "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "ASSERTION", - "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTACH", "ATTRIBUTE", "AUTHORIZATION", - "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", - "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL", "CALLED", "CASCADE", - "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", - "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", - "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS", "COMMENT", - "COMMENTS", "COMMIT", "COMMITTED", "CONCURRENTLY", "CONFIGURATION", - "CONFLICT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", - "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE", "CROSS", "CSV", - "CUBE", "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", - "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", - "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P", "DEALLOCATE", "DEC", - "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED", - "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", "DESC", - "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT", "DO", - "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE", "ENABLE_P", - "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE", "EVENT", "EXCEPT", - "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", - "EXPRESSION", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", - "FETCH", "FILTER", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", - "FOREIGN", "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS", - "GENERATED", "GLOBAL", "GRANT", "GRANTED", "GREATEST", "GROUP_P", - "GROUPING", "GROUPS", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P", - "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", - "IMPORT_P", "IN_P", "INCLUDE", "INCLUDING", "INCREMENT", "INDEX", - "INDEXES", "INHERIT", "INHERITS", "INITIALLY", "INLINE_P", "INNER_P", - "INOUT", "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD", "INT_P", - "INTEGER", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL", - "ISOLATION", "JOIN", "KEY", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P", - "LATERAL_P", "LEADING", "LEAKPROOF", "LEAST", "LEFT", "LEVEL", "LIKE", - "LIMIT", "LISTEN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", - "LOCATION", "LOCK_P", "LOCKED", "LOGGED", "MAPPING", "MATCH", - "MATERIALIZED", "MAXVALUE", "METHOD", "MINUTE_P", "MINVALUE", "MODE", - "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", "NATURAL", "NCHAR", - "NEW", "NEXT", "NFC", "NFD", "NFKC", "NFKD", "NO", "NONE", "NORMALIZE", - "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", - "NULLIF", "NULLS_P", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET", - "OIDS", "OLD", "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR", - "ORDER", "ORDINALITY", "OTHERS", "OUT_P", "OUTER_P", "OVER", "OVERLAPS", - "OVERLAY", "OVERRIDING", "OWNED", "OWNER", "PARALLEL", "PARSER", - "PARTIAL", "PARTITION", "PASSING", "PASSWORD", "PLACING", "PLANS", - "POLICY", "POSITION", "PRECEDING", "PRECISION", "PRESERVE", "PREPARE", - "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", - "PROCEDURES", "PROGRAM", "PUBLICATION", "QUOTE", "RANGE", "READ", "REAL", - "REASSIGN", "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", - "REFRESH", "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", - "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RETURNING", - "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROUTINE", - "ROUTINES", "ROW", "ROWS", "RULE", "SAVEPOINT", "SCHEMA", "SCHEMAS", - "SCROLL", "SEARCH", "SECOND_P", "SECURITY", "SELECT", "SEQUENCE", - "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SESSION_USER", "SET", - "SETS", "SETOF", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP", - "SMALLINT", "SNAPSHOT", "SOME", "SQL_P", "STABLE", "STANDALONE_P", - "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE", - "STORED", "STRICT_P", "STRIP_P", "SUBSCRIPTION", "SUBSTRING", "SUPPORT", - "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLES", "TABLESAMPLE", - "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIES", - "TIME", "TIMESTAMP", "TO", "TRAILING", "TRANSACTION", "TRANSFORM", - "TREAT", "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", - "TYPES_P", "UESCAPE", "UNBOUNDED", "UNCOMMITTED", "UNENCRYPTED", "UNION", - "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED", "UNTIL", "UPDATE", "USER", - "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES", - "VARCHAR", "VARIADIC", "VARYING", "VERBOSE", "VERSION_P", "VIEW", - "VIEWS", "VOLATILE", "WHEN", "WHERE", "WHITESPACE_P", "WINDOW", "WITH", - "WITHIN", "WITHOUT", "WORK", "WRAPPER", "WRITE", "XML_P", - "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", "XMLEXISTS", "XMLFOREST", - "XMLNAMESPACES", "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE", - "XMLTABLE", "YEAR_P", "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", - "'<'", "'>'", "'='", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", - "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "','", "';'", "':'", - "'{'", "'}'", "$accept", "prog", "stmt", "CallStmt", "CreateRoleStmt", - "opt_with", "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem", - "CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt", - "opt_in_database", "AlterRoleSetStmt", "DropRoleStmt", "CreateGroupStmt", - "AlterGroupStmt", "add_drop", "CreateSchemaStmt", "OptSchemaName", - "OptSchemaEltList", "schema_stmt", "VariableSetStmt", "set_rest", - "generic_set", "set_rest_more", "var_name", "var_list", "var_value", - "iso_level", "opt_boolean_or_string", "zone_value", "opt_encoding", + "\"end of file\"", "error", "\"invalid token\"", "SQL_ALLOCATE", + "SQL_AUTOCOMMIT", "SQL_BOOL", "SQL_BREAK", "SQL_CARDINALITY", + "SQL_CONNECT", "SQL_COUNT", "SQL_DATETIME_INTERVAL_CODE", + "SQL_DATETIME_INTERVAL_PRECISION", "SQL_DESCRIBE", "SQL_DESCRIPTOR", + "SQL_DISCONNECT", "SQL_FOUND", "SQL_FREE", "SQL_GET", "SQL_GO", + "SQL_GOTO", "SQL_IDENTIFIED", "SQL_INDICATOR", "SQL_KEY_MEMBER", + "SQL_LENGTH", "SQL_LONG", "SQL_NULLABLE", "SQL_OCTET_LENGTH", "SQL_OPEN", + "SQL_OUTPUT", "SQL_REFERENCE", "SQL_RETURNED_LENGTH", + "SQL_RETURNED_OCTET_LENGTH", "SQL_SCALE", "SQL_SECTION", "SQL_SHORT", + "SQL_SIGNED", "SQL_SQLERROR", "SQL_SQLPRINT", "SQL_SQLWARNING", + "SQL_START", "SQL_STOP", "SQL_STRUCT", "SQL_UNSIGNED", "SQL_VAR", + "SQL_WHENEVER", "S_ADD", "S_AND", "S_ANYTHING", "S_AUTO", "S_CONST", + "S_DEC", "S_DIV", "S_DOTPOINT", "S_EQUAL", "S_EXTERN", "S_INC", + "S_LSHIFT", "S_MEMPOINT", "S_MEMBER", "S_MOD", "S_MUL", "S_NEQUAL", + "S_OR", "S_REGISTER", "S_RSHIFT", "S_STATIC", "S_SUB", "S_VOLATILE", + "S_TYPEDEF", "CSTRING", "CVARIABLE", "CPP_LINE", "IP", "IDENT", "UIDENT", + "FCONST", "SCONST", "USCONST", "BCONST", "XCONST", "Op", "ICONST", + "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", + "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P", + "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", + "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", + "AS", "ASC", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTACH", + "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", + "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL", + "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", + "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", + "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", + "COLUMNS", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "CONCURRENTLY", + "CONFIGURATION", "CONFLICT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", + "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE", + "CROSS", "CSV", "CUBE", "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE", + "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", + "CURRENT_USER", "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P", + "DEALLOCATE", "DEC", "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", + "DEFERRABLE", "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER", + "DELIMITERS", "DEPENDS", "DESC", "DETACH", "DICTIONARY", "DISABLE_P", + "DISCARD", "DISTINCT", "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", + "DROP", "EACH", "ELSE", "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", + "ENUM_P", "ESCAPE", "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING", + "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXPRESSION", "EXTENSION", + "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER", "FIRST_P", + "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORWARD", "FREEZE", + "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GENERATED", "GLOBAL", "GRANT", + "GRANTED", "GREATEST", "GROUP_P", "GROUPING", "GROUPS", "HANDLER", + "HAVING", "HEADER_P", "HOLD", "HOUR_P", "IDENTITY_P", "IF_P", "ILIKE", + "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IMPORT_P", "IN_P", "INCLUDE", + "INCLUDING", "INCREMENT", "INDEX", "INDEXES", "INHERIT", "INHERITS", + "INITIALLY", "INLINE_P", "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE", + "INSERT", "INSTEAD", "INT_P", "INTEGER", "INTERSECT", "INTERVAL", "INTO", + "INVOKER", "IS", "ISNULL", "ISOLATION", "JOIN", "KEY", "LABEL", + "LANGUAGE", "LARGE_P", "LAST_P", "LATERAL_P", "LEADING", "LEAKPROOF", + "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL", + "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", "LOCK_P", "LOCKED", "LOGGED", + "MAPPING", "MATCH", "MATERIALIZED", "MAXVALUE", "METHOD", "MINUTE_P", + "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", + "NATURAL", "NCHAR", "NEW", "NEXT", "NFC", "NFD", "NFKC", "NFKD", "NO", + "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", + "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC", "OBJECT_P", "OF", + "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPERATOR", "OPTION", + "OPTIONS", "OR", "ORDER", "ORDINALITY", "OTHERS", "OUT_P", "OUTER_P", + "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNED", "OWNER", + "PARALLEL", "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD", + "PLACING", "PLANS", "POLICY", "POSITION", "PRECEDING", "PRECISION", + "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", + "PROCEDURAL", "PROCEDURE", "PROCEDURES", "PROGRAM", "PUBLICATION", + "QUOTE", "RANGE", "READ", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", + "REF", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX", "RELATIVE_P", + "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", + "RESTART", "RESTRICT", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", + "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINES", "ROW", "ROWS", "RULE", + "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCROLL", "SEARCH", "SECOND_P", + "SECURITY", "SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", + "SESSION", "SESSION_USER", "SET", "SETS", "SETOF", "SHARE", "SHOW", + "SIMILAR", "SIMPLE", "SKIP", "SMALLINT", "SNAPSHOT", "SOME", "SQL_P", + "STABLE", "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", + "STDOUT", "STORAGE", "STORED", "STRICT_P", "STRIP_P", "SUBSCRIPTION", + "SUBSTRING", "SUPPORT", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", + "TABLES", "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", + "TEXT_P", "THEN", "TIES", "TIME", "TIMESTAMP", "TO", "TRAILING", + "TRANSACTION", "TRANSFORM", "TREAT", "TRIGGER", "TRIM", "TRUE_P", + "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P", "UESCAPE", "UNBOUNDED", + "UNCOMMITTED", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", + "UNLOGGED", "UNTIL", "UPDATE", "USER", "USING", "VACUUM", "VALID", + "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES", "VARCHAR", "VARIADIC", + "VARYING", "VERBOSE", "VERSION_P", "VIEW", "VIEWS", "VOLATILE", "WHEN", + "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", + "WRAPPER", "WRITE", "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", + "XMLEXISTS", "XMLFOREST", "XMLNAMESPACES", "XMLPARSE", "XMLPI", + "XMLROOT", "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YES_P", "ZONE", + "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", + "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", + "'.'", "','", "';'", "':'", "'{'", "'}'", "$accept", "prog", "stmt", + "CallStmt", "CreateRoleStmt", "opt_with", "OptRoleList", + "AlterOptRoleList", "AlterOptRoleElem", "CreateOptRoleElem", + "CreateUserStmt", "AlterRoleStmt", "opt_in_database", "AlterRoleSetStmt", + "DropRoleStmt", "CreateGroupStmt", "AlterGroupStmt", "add_drop", + "CreateSchemaStmt", "OptSchemaName", "OptSchemaEltList", "schema_stmt", + "VariableSetStmt", "set_rest", "generic_set", "set_rest_more", + "var_name", "var_list", "var_value", "iso_level", + "opt_boolean_or_string", "zone_value", "opt_encoding", "NonReservedWord_or_Sconst", "VariableResetStmt", "reset_rest", "generic_reset", "SetResetClause", "FunctionSetResetClause", "VariableShowStmt", "ConstraintsSetStmt", "constraints_set_list", @@ -2286,12 +3162,18 @@ "c_thing", "c_anything", "DeallocateStmt", "Iresult", "execute_rest", "ecpg_into", "opt_ecpg_into", "ecpg_fetch_into", "opt_ecpg_fetch_into", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -2351,17 +3233,17 @@ 47, 37, 94, 799, 91, 93, 40, 41, 46, 44, 59, 58, 123, 125 }; -# endif +#endif -#define YYPACT_NINF -5580 +#define YYPACT_NINF (-5580) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-5580))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -3077 +#define YYTABLE_NINF (-3077) -#define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-3077))) +#define yytable_value_is_error(Yyn) \ + ((Yyn) == YYTABLE_NINF) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ @@ -2994,7 +3876,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint16 yydefact[] = +static const yytype_int16 yydefact[] = { 2759, 0, 2, 1, 3185, 3189, 3193, 3194, 3116, 3195, 3196, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, @@ -3710,7 +4592,7 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 248, 249, 250, 2058, 3047, 2898, 3884, 3885, + 0, 1, 248, 249, 250, 2058, 3047, 2898, 3884, 3885, 251, 252, 2054, 253, 254, 255, 256, 1972, 257, 1443, 2223, 3062, 258, 2733, 1172, 1173, 1174, 2582, 2583, 2986, 2584, 2571, 1794, 2377, 1994, 1137, 1138, 1953, 1995, 260, @@ -32513,7 +33395,7 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = +static const yytype_int16 yystos[] = { 0, 565, 1230, 0, 5, 24, 34, 35, 39, 41, 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, @@ -33140,7 +34022,7 @@ }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = +static const yytype_int16 yyr1[] = { 0, 564, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, @@ -33469,7 +34351,7 @@ }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -33798,10 +34680,10 @@ }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -33827,10 +34709,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -33878,8 +34759,8 @@ This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# ifndef YY_LOCATION_PRINT +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ @@ -33909,22 +34790,22 @@ return res; } -# define YY_LOCATION_PRINT(File, Loc) \ +# define YY_LOCATION_PRINT(File, Loc) \ yy_location_print_ (File, &(Loc)) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +# endif /* !defined YY_LOCATION_PRINT */ -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value, Location); \ + Kind, Value, Location); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -33935,18 +34816,21 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) { FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (yylocationp); + YY_USE (yyoutput); + YY_USE (yylocationp); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -33955,14 +34839,15 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); YY_LOCATION_PRINT (yyo, *yylocationp); YYFPRINTF (yyo, ": "); - yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp); + yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp); YYFPRINTF (yyo, ")"); } @@ -33972,7 +34857,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -33995,21 +34880,22 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, + int yyrule) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - , &(yylsp[(yyi + 1) - (yynrhs)]) ); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], + &(yylsp[(yyi + 1) - (yynrhs)])); YYFPRINTF (stderr, "\n"); } } @@ -34024,8 +34910,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -34048,255 +34934,31 @@ #endif -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - if (! yyres) - return yystrlen (yystr); - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) { - YYUSE (yyvaluep); - YYUSE (yylocationp); + YY_USE (yyvaluep); + YY_USE (yylocationp); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -34311,6 +34973,8 @@ int yynerrs; + + /*----------. | yyparse. | `----------*/ @@ -34318,53 +34982,45 @@ int yyparse (void) { - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - 'yyls': related to locations. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - /* The semantic value stack. */ + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; - /* The location stack. */ + /* The location stack: array, bottom, top. */ YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls; - YYLTYPE *yylsp; - - /* The locations where the error started and ended. */ - YYLTYPE yyerror_range[3]; - - YYSIZE_T yystacksize; + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp = yyls; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[3]; + + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) @@ -34372,16 +35028,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yylsp = yyls = yylsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ yylsp[0] = yylloc; goto yysetstate; @@ -34397,10 +35045,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -34408,15 +35061,15 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the @@ -34424,9 +35077,9 @@ conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yyls1, yysize * YYSIZEOF (*yylsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -34441,15 +35094,16 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -34459,16 +35113,16 @@ yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -34489,18 +35143,30 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + yyerror_range[1] = yylloc; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -34528,15 +35194,14 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; + + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -34573,225 +35238,225 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 3: -#line 1628 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34580 "preproc.c" /* yacc.c:1652 */ + case 3: /* stmt: AlterEventTrigStmt */ +#line 1628 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35245 "preproc.c" break; - case 4: -#line 1630 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34586 "preproc.c" /* yacc.c:1652 */ + case 4: /* stmt: AlterCollationStmt */ +#line 1630 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35251 "preproc.c" break; - case 5: -#line 1632 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34592 "preproc.c" /* yacc.c:1652 */ + case 5: /* stmt: AlterDatabaseStmt */ +#line 1632 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35257 "preproc.c" break; - case 6: -#line 1634 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34598 "preproc.c" /* yacc.c:1652 */ + case 6: /* stmt: AlterDatabaseSetStmt */ +#line 1634 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35263 "preproc.c" break; - case 7: -#line 1636 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34604 "preproc.c" /* yacc.c:1652 */ + case 7: /* stmt: AlterDefaultPrivilegesStmt */ +#line 1636 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35269 "preproc.c" break; - case 8: -#line 1638 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34610 "preproc.c" /* yacc.c:1652 */ + case 8: /* stmt: AlterDomainStmt */ +#line 1638 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35275 "preproc.c" break; - case 9: -#line 1640 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34616 "preproc.c" /* yacc.c:1652 */ + case 9: /* stmt: AlterEnumStmt */ +#line 1640 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35281 "preproc.c" break; - case 10: -#line 1642 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34622 "preproc.c" /* yacc.c:1652 */ + case 10: /* stmt: AlterExtensionStmt */ +#line 1642 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35287 "preproc.c" break; - case 11: -#line 1644 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34628 "preproc.c" /* yacc.c:1652 */ + case 11: /* stmt: AlterExtensionContentsStmt */ +#line 1644 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35293 "preproc.c" break; - case 12: -#line 1646 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34634 "preproc.c" /* yacc.c:1652 */ + case 12: /* stmt: AlterFdwStmt */ +#line 1646 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35299 "preproc.c" break; - case 13: -#line 1648 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34640 "preproc.c" /* yacc.c:1652 */ + case 13: /* stmt: AlterForeignServerStmt */ +#line 1648 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35305 "preproc.c" break; - case 14: -#line 1650 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34646 "preproc.c" /* yacc.c:1652 */ + case 14: /* stmt: AlterForeignTableStmt */ +#line 1650 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35311 "preproc.c" break; - case 15: -#line 1652 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34652 "preproc.c" /* yacc.c:1652 */ + case 15: /* stmt: AlterFunctionStmt */ +#line 1652 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35317 "preproc.c" break; - case 16: -#line 1654 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34658 "preproc.c" /* yacc.c:1652 */ + case 16: /* stmt: AlterGroupStmt */ +#line 1654 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35323 "preproc.c" break; - case 17: -#line 1656 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34664 "preproc.c" /* yacc.c:1652 */ + case 17: /* stmt: AlterObjectDependsStmt */ +#line 1656 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35329 "preproc.c" break; - case 18: -#line 1658 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34670 "preproc.c" /* yacc.c:1652 */ + case 18: /* stmt: AlterObjectSchemaStmt */ +#line 1658 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35335 "preproc.c" break; - case 19: -#line 1660 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34676 "preproc.c" /* yacc.c:1652 */ + case 19: /* stmt: AlterOwnerStmt */ +#line 1660 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35341 "preproc.c" break; - case 20: -#line 1662 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34682 "preproc.c" /* yacc.c:1652 */ + case 20: /* stmt: AlterOperatorStmt */ +#line 1662 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35347 "preproc.c" break; - case 21: -#line 1664 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34688 "preproc.c" /* yacc.c:1652 */ + case 21: /* stmt: AlterTypeStmt */ +#line 1664 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35353 "preproc.c" break; - case 22: -#line 1666 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34694 "preproc.c" /* yacc.c:1652 */ + case 22: /* stmt: AlterPolicyStmt */ +#line 1666 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35359 "preproc.c" break; - case 23: -#line 1668 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34700 "preproc.c" /* yacc.c:1652 */ + case 23: /* stmt: AlterSeqStmt */ +#line 1668 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35365 "preproc.c" break; - case 24: -#line 1670 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34706 "preproc.c" /* yacc.c:1652 */ + case 24: /* stmt: AlterSystemStmt */ +#line 1670 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35371 "preproc.c" break; - case 25: -#line 1672 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34712 "preproc.c" /* yacc.c:1652 */ + case 25: /* stmt: AlterTableStmt */ +#line 1672 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35377 "preproc.c" break; - case 26: -#line 1674 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34718 "preproc.c" /* yacc.c:1652 */ + case 26: /* stmt: AlterTblSpcStmt */ +#line 1674 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35383 "preproc.c" break; - case 27: -#line 1676 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34724 "preproc.c" /* yacc.c:1652 */ + case 27: /* stmt: AlterCompositeTypeStmt */ +#line 1676 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35389 "preproc.c" break; - case 28: -#line 1678 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34730 "preproc.c" /* yacc.c:1652 */ + case 28: /* stmt: AlterPublicationStmt */ +#line 1678 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35395 "preproc.c" break; - case 29: -#line 1680 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34736 "preproc.c" /* yacc.c:1652 */ + case 29: /* stmt: AlterRoleSetStmt */ +#line 1680 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35401 "preproc.c" break; - case 30: -#line 1682 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34742 "preproc.c" /* yacc.c:1652 */ + case 30: /* stmt: AlterRoleStmt */ +#line 1682 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35407 "preproc.c" break; - case 31: -#line 1684 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34748 "preproc.c" /* yacc.c:1652 */ + case 31: /* stmt: AlterSubscriptionStmt */ +#line 1684 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35413 "preproc.c" break; - case 32: -#line 1686 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34754 "preproc.c" /* yacc.c:1652 */ + case 32: /* stmt: AlterStatsStmt */ +#line 1686 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35419 "preproc.c" break; - case 33: -#line 1688 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34760 "preproc.c" /* yacc.c:1652 */ + case 33: /* stmt: AlterTSConfigurationStmt */ +#line 1688 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35425 "preproc.c" break; - case 34: -#line 1690 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34766 "preproc.c" /* yacc.c:1652 */ + case 34: /* stmt: AlterTSDictionaryStmt */ +#line 1690 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35431 "preproc.c" break; - case 35: -#line 1692 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34772 "preproc.c" /* yacc.c:1652 */ + case 35: /* stmt: AlterUserMappingStmt */ +#line 1692 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35437 "preproc.c" break; - case 36: -#line 1694 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34778 "preproc.c" /* yacc.c:1652 */ + case 36: /* stmt: AnalyzeStmt */ +#line 1694 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35443 "preproc.c" break; - case 37: -#line 1696 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34784 "preproc.c" /* yacc.c:1652 */ + case 37: /* stmt: CallStmt */ +#line 1696 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35449 "preproc.c" break; - case 38: -#line 1698 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34790 "preproc.c" /* yacc.c:1652 */ + case 38: /* stmt: CheckPointStmt */ +#line 1698 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35455 "preproc.c" break; - case 39: -#line 1700 "preproc.y" /* yacc.c:1652 */ - { + case 39: /* stmt: ClosePortalStmt */ +#line 1700 "preproc.y" + { if (INFORMIX_MODE) { if (pg_strcasecmp((yyvsp[0].str)+strlen("close "), "database") == 0) @@ -34808,338 +35473,338 @@ output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34812 "preproc.c" /* yacc.c:1652 */ +#line 35477 "preproc.c" break; - case 40: -#line 1718 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34818 "preproc.c" /* yacc.c:1652 */ + case 40: /* stmt: ClusterStmt */ +#line 1718 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35483 "preproc.c" break; - case 41: -#line 1720 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34824 "preproc.c" /* yacc.c:1652 */ + case 41: /* stmt: CommentStmt */ +#line 1720 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35489 "preproc.c" break; - case 42: -#line 1722 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34830 "preproc.c" /* yacc.c:1652 */ + case 42: /* stmt: ConstraintsSetStmt */ +#line 1722 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35495 "preproc.c" break; - case 43: -#line 1724 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34836 "preproc.c" /* yacc.c:1652 */ + case 43: /* stmt: CopyStmt */ +#line 1724 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35501 "preproc.c" break; - case 44: -#line 1726 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34842 "preproc.c" /* yacc.c:1652 */ + case 44: /* stmt: CreateAmStmt */ +#line 1726 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35507 "preproc.c" break; - case 45: -#line 1728 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34848 "preproc.c" /* yacc.c:1652 */ + case 45: /* stmt: CreateAsStmt */ +#line 1728 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35513 "preproc.c" break; - case 46: -#line 1730 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34854 "preproc.c" /* yacc.c:1652 */ + case 46: /* stmt: CreateAssertionStmt */ +#line 1730 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35519 "preproc.c" break; - case 47: -#line 1732 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34860 "preproc.c" /* yacc.c:1652 */ + case 47: /* stmt: CreateCastStmt */ +#line 1732 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35525 "preproc.c" break; - case 48: -#line 1734 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34866 "preproc.c" /* yacc.c:1652 */ + case 48: /* stmt: CreateConversionStmt */ +#line 1734 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35531 "preproc.c" break; - case 49: -#line 1736 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34872 "preproc.c" /* yacc.c:1652 */ + case 49: /* stmt: CreateDomainStmt */ +#line 1736 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35537 "preproc.c" break; - case 50: -#line 1738 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34878 "preproc.c" /* yacc.c:1652 */ + case 50: /* stmt: CreateExtensionStmt */ +#line 1738 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35543 "preproc.c" break; - case 51: -#line 1740 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34884 "preproc.c" /* yacc.c:1652 */ + case 51: /* stmt: CreateFdwStmt */ +#line 1740 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35549 "preproc.c" break; - case 52: -#line 1742 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34890 "preproc.c" /* yacc.c:1652 */ + case 52: /* stmt: CreateForeignServerStmt */ +#line 1742 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35555 "preproc.c" break; - case 53: -#line 1744 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34896 "preproc.c" /* yacc.c:1652 */ + case 53: /* stmt: CreateForeignTableStmt */ +#line 1744 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35561 "preproc.c" break; - case 54: -#line 1746 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34902 "preproc.c" /* yacc.c:1652 */ + case 54: /* stmt: CreateFunctionStmt */ +#line 1746 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35567 "preproc.c" break; - case 55: -#line 1748 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34908 "preproc.c" /* yacc.c:1652 */ + case 55: /* stmt: CreateGroupStmt */ +#line 1748 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35573 "preproc.c" break; - case 56: -#line 1750 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34914 "preproc.c" /* yacc.c:1652 */ + case 56: /* stmt: CreateMatViewStmt */ +#line 1750 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35579 "preproc.c" break; - case 57: -#line 1752 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34920 "preproc.c" /* yacc.c:1652 */ + case 57: /* stmt: CreateOpClassStmt */ +#line 1752 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35585 "preproc.c" break; - case 58: -#line 1754 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34926 "preproc.c" /* yacc.c:1652 */ + case 58: /* stmt: CreateOpFamilyStmt */ +#line 1754 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35591 "preproc.c" break; - case 59: -#line 1756 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34932 "preproc.c" /* yacc.c:1652 */ + case 59: /* stmt: CreatePublicationStmt */ +#line 1756 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35597 "preproc.c" break; - case 60: -#line 1758 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34938 "preproc.c" /* yacc.c:1652 */ + case 60: /* stmt: AlterOpFamilyStmt */ +#line 1758 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35603 "preproc.c" break; - case 61: -#line 1760 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34944 "preproc.c" /* yacc.c:1652 */ + case 61: /* stmt: CreatePolicyStmt */ +#line 1760 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35609 "preproc.c" break; - case 62: -#line 1762 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34950 "preproc.c" /* yacc.c:1652 */ + case 62: /* stmt: CreatePLangStmt */ +#line 1762 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35615 "preproc.c" break; - case 63: -#line 1764 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34956 "preproc.c" /* yacc.c:1652 */ + case 63: /* stmt: CreateSchemaStmt */ +#line 1764 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35621 "preproc.c" break; - case 64: -#line 1766 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34962 "preproc.c" /* yacc.c:1652 */ + case 64: /* stmt: CreateSeqStmt */ +#line 1766 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35627 "preproc.c" break; - case 65: -#line 1768 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34968 "preproc.c" /* yacc.c:1652 */ + case 65: /* stmt: CreateStmt */ +#line 1768 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35633 "preproc.c" break; - case 66: -#line 1770 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34974 "preproc.c" /* yacc.c:1652 */ + case 66: /* stmt: CreateSubscriptionStmt */ +#line 1770 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35639 "preproc.c" break; - case 67: -#line 1772 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34980 "preproc.c" /* yacc.c:1652 */ + case 67: /* stmt: CreateStatsStmt */ +#line 1772 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35645 "preproc.c" break; - case 68: -#line 1774 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34986 "preproc.c" /* yacc.c:1652 */ + case 68: /* stmt: CreateTableSpaceStmt */ +#line 1774 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35651 "preproc.c" break; - case 69: -#line 1776 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34992 "preproc.c" /* yacc.c:1652 */ + case 69: /* stmt: CreateTransformStmt */ +#line 1776 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35657 "preproc.c" break; - case 70: -#line 1778 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 34998 "preproc.c" /* yacc.c:1652 */ + case 70: /* stmt: CreateTrigStmt */ +#line 1778 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35663 "preproc.c" break; - case 71: -#line 1780 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35004 "preproc.c" /* yacc.c:1652 */ + case 71: /* stmt: CreateEventTrigStmt */ +#line 1780 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35669 "preproc.c" break; - case 72: -#line 1782 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35010 "preproc.c" /* yacc.c:1652 */ + case 72: /* stmt: CreateRoleStmt */ +#line 1782 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35675 "preproc.c" break; - case 73: -#line 1784 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35016 "preproc.c" /* yacc.c:1652 */ + case 73: /* stmt: CreateUserStmt */ +#line 1784 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35681 "preproc.c" break; - case 74: -#line 1786 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35022 "preproc.c" /* yacc.c:1652 */ + case 74: /* stmt: CreateUserMappingStmt */ +#line 1786 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35687 "preproc.c" break; - case 75: -#line 1788 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35028 "preproc.c" /* yacc.c:1652 */ + case 75: /* stmt: CreatedbStmt */ +#line 1788 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35693 "preproc.c" break; - case 76: -#line 1790 "preproc.y" /* yacc.c:1652 */ - { + case 76: /* stmt: DeallocateStmt */ +#line 1790 "preproc.y" + { output_deallocate_prepare_statement((yyvsp[0].str)); } -#line 35036 "preproc.c" /* yacc.c:1652 */ +#line 35701 "preproc.c" break; - case 77: -#line 1794 "preproc.y" /* yacc.c:1652 */ - { output_simple_statement((yyvsp[0].str), (strncmp((yyvsp[0].str), "ECPGset_var", strlen("ECPGset_var")) == 0) ? 4 : 0); } -#line 35042 "preproc.c" /* yacc.c:1652 */ + case 77: /* stmt: DeclareCursorStmt */ +#line 1794 "preproc.y" + { output_simple_statement((yyvsp[0].str), (strncmp((yyvsp[0].str), "ECPGset_var", strlen("ECPGset_var")) == 0) ? 4 : 0); } +#line 35707 "preproc.c" break; - case 78: -#line 1796 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35048 "preproc.c" /* yacc.c:1652 */ + case 78: /* stmt: DefineStmt */ +#line 1796 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35713 "preproc.c" break; - case 79: -#line 1798 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 1, ECPGst_prepnormal); } -#line 35054 "preproc.c" /* yacc.c:1652 */ + case 79: /* stmt: DeleteStmt */ +#line 1798 "preproc.y" + { output_statement((yyvsp[0].str), 1, ECPGst_prepnormal); } +#line 35719 "preproc.c" break; - case 80: -#line 1800 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 1, ECPGst_normal); } -#line 35060 "preproc.c" /* yacc.c:1652 */ + case 80: /* stmt: DiscardStmt */ +#line 1800 "preproc.y" + { output_statement((yyvsp[0].str), 1, ECPGst_normal); } +#line 35725 "preproc.c" break; - case 81: -#line 1802 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35066 "preproc.c" /* yacc.c:1652 */ + case 81: /* stmt: DoStmt */ +#line 1802 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35731 "preproc.c" break; - case 82: -#line 1804 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35072 "preproc.c" /* yacc.c:1652 */ + case 82: /* stmt: DropCastStmt */ +#line 1804 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35737 "preproc.c" break; - case 83: -#line 1806 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35078 "preproc.c" /* yacc.c:1652 */ + case 83: /* stmt: DropOpClassStmt */ +#line 1806 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35743 "preproc.c" break; - case 84: -#line 1808 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35084 "preproc.c" /* yacc.c:1652 */ + case 84: /* stmt: DropOpFamilyStmt */ +#line 1808 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35749 "preproc.c" break; - case 85: -#line 1810 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35090 "preproc.c" /* yacc.c:1652 */ + case 85: /* stmt: DropOwnedStmt */ +#line 1810 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35755 "preproc.c" break; - case 86: -#line 1812 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35096 "preproc.c" /* yacc.c:1652 */ + case 86: /* stmt: DropPLangStmt */ +#line 1812 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35761 "preproc.c" break; - case 87: -#line 1814 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35102 "preproc.c" /* yacc.c:1652 */ + case 87: /* stmt: DropStmt */ +#line 1814 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35767 "preproc.c" break; - case 88: -#line 1816 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35108 "preproc.c" /* yacc.c:1652 */ + case 88: /* stmt: DropSubscriptionStmt */ +#line 1816 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35773 "preproc.c" break; - case 89: -#line 1818 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35114 "preproc.c" /* yacc.c:1652 */ + case 89: /* stmt: DropTableSpaceStmt */ +#line 1818 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35779 "preproc.c" break; - case 90: -#line 1820 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35120 "preproc.c" /* yacc.c:1652 */ + case 90: /* stmt: DropTransformStmt */ +#line 1820 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35785 "preproc.c" break; - case 91: -#line 1822 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35126 "preproc.c" /* yacc.c:1652 */ + case 91: /* stmt: DropRoleStmt */ +#line 1822 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35791 "preproc.c" break; - case 92: -#line 1824 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35132 "preproc.c" /* yacc.c:1652 */ + case 92: /* stmt: DropUserMappingStmt */ +#line 1824 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35797 "preproc.c" break; - case 93: -#line 1826 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35138 "preproc.c" /* yacc.c:1652 */ + case 93: /* stmt: DropdbStmt */ +#line 1826 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35803 "preproc.c" break; - case 94: -#line 1828 "preproc.y" /* yacc.c:1652 */ - { + case 94: /* stmt: ExecuteStmt */ +#line 1828 "preproc.y" + { if ((yyvsp[0].exec).type == NULL || strlen((yyvsp[0].exec).type) == 0) output_statement((yyvsp[0].exec).name, 1, ECPGst_execute); else @@ -35161,84 +35826,84 @@ output_statement(cat_str(3, mm_strdup("execute"), mm_strdup("$0"), (yyvsp[0].exec).type), 0, ECPGst_exec_with_exprlist); } } -#line 35165 "preproc.c" /* yacc.c:1652 */ +#line 35830 "preproc.c" break; - case 95: -#line 1851 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35171 "preproc.c" /* yacc.c:1652 */ + case 95: /* stmt: ExplainStmt */ +#line 1851 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35836 "preproc.c" break; - case 96: -#line 1853 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 1, ECPGst_normal); } -#line 35177 "preproc.c" /* yacc.c:1652 */ + case 96: /* stmt: FetchStmt */ +#line 1853 "preproc.y" + { output_statement((yyvsp[0].str), 1, ECPGst_normal); } +#line 35842 "preproc.c" break; - case 97: -#line 1855 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35183 "preproc.c" /* yacc.c:1652 */ + case 97: /* stmt: GrantStmt */ +#line 1855 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35848 "preproc.c" break; - case 98: -#line 1857 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35189 "preproc.c" /* yacc.c:1652 */ + case 98: /* stmt: GrantRoleStmt */ +#line 1857 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35854 "preproc.c" break; - case 99: -#line 1859 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35195 "preproc.c" /* yacc.c:1652 */ + case 99: /* stmt: ImportForeignSchemaStmt */ +#line 1859 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35860 "preproc.c" break; - case 100: -#line 1861 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35201 "preproc.c" /* yacc.c:1652 */ + case 100: /* stmt: IndexStmt */ +#line 1861 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35866 "preproc.c" break; - case 101: -#line 1863 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 1, ECPGst_prepnormal); } -#line 35207 "preproc.c" /* yacc.c:1652 */ + case 101: /* stmt: InsertStmt */ +#line 1863 "preproc.y" + { output_statement((yyvsp[0].str), 1, ECPGst_prepnormal); } +#line 35872 "preproc.c" break; - case 102: -#line 1865 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35213 "preproc.c" /* yacc.c:1652 */ + case 102: /* stmt: ListenStmt */ +#line 1865 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35878 "preproc.c" break; - case 103: -#line 1867 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35219 "preproc.c" /* yacc.c:1652 */ + case 103: /* stmt: RefreshMatViewStmt */ +#line 1867 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35884 "preproc.c" break; - case 104: -#line 1869 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35225 "preproc.c" /* yacc.c:1652 */ + case 104: /* stmt: LoadStmt */ +#line 1869 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35890 "preproc.c" break; - case 105: -#line 1871 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35231 "preproc.c" /* yacc.c:1652 */ + case 105: /* stmt: LockStmt */ +#line 1871 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35896 "preproc.c" break; - case 106: -#line 1873 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35237 "preproc.c" /* yacc.c:1652 */ + case 106: /* stmt: NotifyStmt */ +#line 1873 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35902 "preproc.c" break; - case 107: -#line 1875 "preproc.y" /* yacc.c:1652 */ - { + case 107: /* stmt: PrepareStmt */ +#line 1875 "preproc.y" + { if ((yyvsp[0].prep).type == NULL) output_prepare_statement((yyvsp[0].prep).name, (yyvsp[0].prep).stmt); else if (strlen((yyvsp[0].prep).type) == 0) @@ -35264,146 +35929,146 @@ output_statement(cat_str(5, mm_strdup("prepare"), mm_strdup("$0"), (yyvsp[0].prep).type, mm_strdup("as"), (yyvsp[0].prep).stmt), 0, ECPGst_prepare); } } -#line 35268 "preproc.c" /* yacc.c:1652 */ +#line 35933 "preproc.c" break; - case 108: -#line 1902 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35274 "preproc.c" /* yacc.c:1652 */ + case 108: /* stmt: ReassignOwnedStmt */ +#line 1902 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35939 "preproc.c" break; - case 109: -#line 1904 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35280 "preproc.c" /* yacc.c:1652 */ + case 109: /* stmt: ReindexStmt */ +#line 1904 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35945 "preproc.c" break; - case 110: -#line 1906 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35286 "preproc.c" /* yacc.c:1652 */ + case 110: /* stmt: RemoveAggrStmt */ +#line 1906 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35951 "preproc.c" break; - case 111: -#line 1908 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35292 "preproc.c" /* yacc.c:1652 */ + case 111: /* stmt: RemoveFuncStmt */ +#line 1908 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35957 "preproc.c" break; - case 112: -#line 1910 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35298 "preproc.c" /* yacc.c:1652 */ + case 112: /* stmt: RemoveOperStmt */ +#line 1910 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35963 "preproc.c" break; - case 113: -#line 1912 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35304 "preproc.c" /* yacc.c:1652 */ + case 113: /* stmt: RenameStmt */ +#line 1912 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35969 "preproc.c" break; - case 114: -#line 1914 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35310 "preproc.c" /* yacc.c:1652 */ + case 114: /* stmt: RevokeStmt */ +#line 1914 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35975 "preproc.c" break; - case 115: -#line 1916 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35316 "preproc.c" /* yacc.c:1652 */ + case 115: /* stmt: RevokeRoleStmt */ +#line 1916 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35981 "preproc.c" break; - case 116: -#line 1918 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35322 "preproc.c" /* yacc.c:1652 */ + case 116: /* stmt: RuleStmt */ +#line 1918 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35987 "preproc.c" break; - case 117: -#line 1920 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35328 "preproc.c" /* yacc.c:1652 */ + case 117: /* stmt: SecLabelStmt */ +#line 1920 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 35993 "preproc.c" break; - case 118: -#line 1922 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 1, ECPGst_prepnormal); } -#line 35334 "preproc.c" /* yacc.c:1652 */ + case 118: /* stmt: SelectStmt */ +#line 1922 "preproc.y" + { output_statement((yyvsp[0].str), 1, ECPGst_prepnormal); } +#line 35999 "preproc.c" break; - case 119: -#line 1924 "preproc.y" /* yacc.c:1652 */ - { + case 119: /* stmt: TransactionStmt */ +#line 1924 "preproc.y" + { fprintf(base_yyout, "{ ECPGtrans(__LINE__, %s, \"%s\");", connection ? connection : "NULL", (yyvsp[0].str)); whenever_action(2); free((yyvsp[0].str)); } -#line 35344 "preproc.c" /* yacc.c:1652 */ +#line 36009 "preproc.c" break; - case 120: -#line 1930 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35350 "preproc.c" /* yacc.c:1652 */ + case 120: /* stmt: TruncateStmt */ +#line 1930 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 36015 "preproc.c" break; - case 121: -#line 1932 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35356 "preproc.c" /* yacc.c:1652 */ + case 121: /* stmt: UnlistenStmt */ +#line 1932 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 36021 "preproc.c" break; - case 122: -#line 1934 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 1, ECPGst_prepnormal); } -#line 35362 "preproc.c" /* yacc.c:1652 */ + case 122: /* stmt: UpdateStmt */ +#line 1934 "preproc.y" + { output_statement((yyvsp[0].str), 1, ECPGst_prepnormal); } +#line 36027 "preproc.c" break; - case 123: -#line 1936 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35368 "preproc.c" /* yacc.c:1652 */ + case 123: /* stmt: VacuumStmt */ +#line 1936 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 36033 "preproc.c" break; - case 124: -#line 1938 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35374 "preproc.c" /* yacc.c:1652 */ + case 124: /* stmt: VariableResetStmt */ +#line 1938 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 36039 "preproc.c" break; - case 125: -#line 1940 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35380 "preproc.c" /* yacc.c:1652 */ + case 125: /* stmt: VariableSetStmt */ +#line 1940 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 36045 "preproc.c" break; - case 126: -#line 1942 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35386 "preproc.c" /* yacc.c:1652 */ + case 126: /* stmt: VariableShowStmt */ +#line 1942 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 36051 "preproc.c" break; - case 127: -#line 1944 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_normal); } -#line 35392 "preproc.c" /* yacc.c:1652 */ + case 127: /* stmt: ViewStmt */ +#line 1944 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_normal); } +#line 36057 "preproc.c" break; - case 128: -#line 1946 "preproc.y" /* yacc.c:1652 */ - { + case 128: /* stmt: ECPGAllocateDescr */ +#line 1946 "preproc.y" + { fprintf(base_yyout,"ECPGallocate_desc(__LINE__, %s);",(yyvsp[0].str)); whenever_action(0); free((yyvsp[0].str)); } -#line 35402 "preproc.c" /* yacc.c:1652 */ +#line 36067 "preproc.c" break; - case 129: -#line 1952 "preproc.y" /* yacc.c:1652 */ - { + case 129: /* stmt: ECPGConnect */ +#line 1952 "preproc.y" + { if (connection) mmerror(PARSE_ERROR, ET_ERROR, "AT option not allowed in CONNECT statement"); @@ -35412,38 +36077,38 @@ whenever_action(2); free((yyvsp[0].str)); } -#line 35416 "preproc.c" /* yacc.c:1652 */ +#line 36081 "preproc.c" break; - case 130: -#line 1962 "preproc.y" /* yacc.c:1652 */ - { + case 130: /* stmt: ECPGCursorStmt */ +#line 1962 "preproc.y" + { output_simple_statement((yyvsp[0].str), (strncmp((yyvsp[0].str), "ECPGset_var", strlen("ECPGset_var")) == 0) ? 4 : 0); } -#line 35424 "preproc.c" /* yacc.c:1652 */ +#line 36089 "preproc.c" break; - case 131: -#line 1966 "preproc.y" /* yacc.c:1652 */ - { + case 131: /* stmt: ECPGDeallocateDescr */ +#line 1966 "preproc.y" + { fprintf(base_yyout,"ECPGdeallocate_desc(__LINE__, %s);",(yyvsp[0].str)); whenever_action(0); free((yyvsp[0].str)); } -#line 35434 "preproc.c" /* yacc.c:1652 */ +#line 36099 "preproc.c" break; - case 132: -#line 1972 "preproc.y" /* yacc.c:1652 */ - { + case 132: /* stmt: ECPGDeclare */ +#line 1972 "preproc.y" + { output_simple_statement((yyvsp[0].str), 0); } -#line 35442 "preproc.c" /* yacc.c:1652 */ +#line 36107 "preproc.c" break; - case 133: -#line 1976 "preproc.y" /* yacc.c:1652 */ - { + case 133: /* stmt: ECPGDescribe */ +#line 1976 "preproc.y" + { fprintf(base_yyout, "{ ECPGdescribe(__LINE__, %d, %s,", compat, (yyvsp[0].str)); dump_variables(argsresult, 1); fputs("ECPGt_EORT);", base_yyout); @@ -35452,12 +36117,12 @@ free((yyvsp[0].str)); } -#line 35456 "preproc.c" /* yacc.c:1652 */ +#line 36121 "preproc.c" break; - case 134: -#line 1986 "preproc.y" /* yacc.c:1652 */ - { + case 134: /* stmt: ECPGDisconnect */ +#line 1986 "preproc.y" + { if (connection) mmerror(PARSE_ERROR, ET_ERROR, "AT option not allowed in DISCONNECT statement"); @@ -35466,18 +36131,18 @@ whenever_action(2); free((yyvsp[0].str)); } -#line 35470 "preproc.c" /* yacc.c:1652 */ +#line 36135 "preproc.c" break; - case 135: -#line 1995 "preproc.y" /* yacc.c:1652 */ - { output_statement((yyvsp[0].str), 0, ECPGst_exec_immediate); } -#line 35476 "preproc.c" /* yacc.c:1652 */ + case 135: /* stmt: ECPGExecuteImmediateStmt */ +#line 1995 "preproc.y" + { output_statement((yyvsp[0].str), 0, ECPGst_exec_immediate); } +#line 36141 "preproc.c" break; - case 136: -#line 1997 "preproc.y" /* yacc.c:1652 */ - { + case 136: /* stmt: ECPGFree */ +#line 1997 "preproc.y" + { const char *con = connection ? connection : "NULL"; if (strcmp((yyvsp[0].str), "all") == 0) @@ -35490,33 +36155,33 @@ whenever_action(2); free((yyvsp[0].str)); } -#line 35494 "preproc.c" /* yacc.c:1652 */ +#line 36159 "preproc.c" break; - case 137: -#line 2011 "preproc.y" /* yacc.c:1652 */ - { + case 137: /* stmt: ECPGGetDescriptor */ +#line 2011 "preproc.y" + { lookup_descriptor((yyvsp[0].descriptor).name, connection); output_get_descr((yyvsp[0].descriptor).name, (yyvsp[0].descriptor).str); free((yyvsp[0].descriptor).name); free((yyvsp[0].descriptor).str); } -#line 35505 "preproc.c" /* yacc.c:1652 */ +#line 36170 "preproc.c" break; - case 138: -#line 2018 "preproc.y" /* yacc.c:1652 */ - { + case 138: /* stmt: ECPGGetDescriptorHeader */ +#line 2018 "preproc.y" + { lookup_descriptor((yyvsp[0].str), connection); output_get_descr_header((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 35515 "preproc.c" /* yacc.c:1652 */ +#line 36180 "preproc.c" break; - case 139: -#line 2024 "preproc.y" /* yacc.c:1652 */ - { + case 139: /* stmt: ECPGOpen */ +#line 2024 "preproc.y" + { struct cursor *ptr; if ((ptr = add_additional_variables((yyvsp[0].str), true)) != NULL) @@ -35526,22 +36191,22 @@ ptr->opened = true; } } -#line 35530 "preproc.c" /* yacc.c:1652 */ +#line 36195 "preproc.c" break; - case 140: -#line 2035 "preproc.y" /* yacc.c:1652 */ - { + case 140: /* stmt: ECPGSetAutocommit */ +#line 2035 "preproc.y" + { fprintf(base_yyout, "{ ECPGsetcommit(__LINE__, \"%s\", %s);", (yyvsp[0].str), connection ? connection : "NULL"); whenever_action(2); free((yyvsp[0].str)); } -#line 35540 "preproc.c" /* yacc.c:1652 */ +#line 36205 "preproc.c" break; - case 141: -#line 2041 "preproc.y" /* yacc.c:1652 */ - { + case 141: /* stmt: ECPGSetConnection */ +#line 2041 "preproc.y" + { if (connection) mmerror(PARSE_ERROR, ET_ERROR, "AT option not allowed in SET CONNECTION statement"); @@ -35549,33 +36214,33 @@ whenever_action(2); free((yyvsp[0].str)); } -#line 35553 "preproc.c" /* yacc.c:1652 */ +#line 36218 "preproc.c" break; - case 142: -#line 2050 "preproc.y" /* yacc.c:1652 */ - { + case 142: /* stmt: ECPGSetDescriptor */ +#line 2050 "preproc.y" + { lookup_descriptor((yyvsp[0].descriptor).name, connection); output_set_descr((yyvsp[0].descriptor).name, (yyvsp[0].descriptor).str); free((yyvsp[0].descriptor).name); free((yyvsp[0].descriptor).str); } -#line 35564 "preproc.c" /* yacc.c:1652 */ +#line 36229 "preproc.c" break; - case 143: -#line 2057 "preproc.y" /* yacc.c:1652 */ - { + case 143: /* stmt: ECPGSetDescriptorHeader */ +#line 2057 "preproc.y" + { lookup_descriptor((yyvsp[0].str), connection); output_set_descr_header((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 35574 "preproc.c" /* yacc.c:1652 */ +#line 36239 "preproc.c" break; - case 144: -#line 2063 "preproc.y" /* yacc.c:1652 */ - { + case 144: /* stmt: ECPGTypedef */ +#line 2063 "preproc.y" + { if (connection) mmerror(PARSE_ERROR, ET_ERROR, "AT option not allowed in TYPE statement"); @@ -35583,702 +36248,702 @@ free((yyvsp[0].str)); output_line_number(); } -#line 35587 "preproc.c" /* yacc.c:1652 */ +#line 36252 "preproc.c" break; - case 145: -#line 2072 "preproc.y" /* yacc.c:1652 */ - { + case 145: /* stmt: ECPGVar */ +#line 2072 "preproc.y" + { if (connection) mmerror(PARSE_ERROR, ET_ERROR, "AT option not allowed in VAR statement"); output_simple_statement((yyvsp[0].str), 0); } -#line 35598 "preproc.c" /* yacc.c:1652 */ +#line 36263 "preproc.c" break; - case 146: -#line 2079 "preproc.y" /* yacc.c:1652 */ - { + case 146: /* stmt: ECPGWhenever */ +#line 2079 "preproc.y" + { if (connection) mmerror(PARSE_ERROR, ET_ERROR, "AT option not allowed in WHENEVER statement"); output_simple_statement((yyvsp[0].str), 0); } -#line 35609 "preproc.c" /* yacc.c:1652 */ +#line 36274 "preproc.c" break; - case 147: -#line 2086 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 35615 "preproc.c" /* yacc.c:1652 */ + case 147: /* stmt: %empty */ +#line 2086 "preproc.y" + { (yyval.str) = NULL; } +#line 36280 "preproc.c" break; - case 148: -#line 2092 "preproc.y" /* yacc.c:1652 */ - { + case 148: /* CallStmt: CALL func_application */ +#line 2092 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("call"),(yyvsp[0].str)); } -#line 35623 "preproc.c" /* yacc.c:1652 */ +#line 36288 "preproc.c" break; - case 149: -#line 2100 "preproc.y" /* yacc.c:1652 */ - { + case 149: /* CreateRoleStmt: CREATE ROLE RoleId opt_with OptRoleList */ +#line 2100 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create role"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35631 "preproc.c" /* yacc.c:1652 */ +#line 36296 "preproc.c" break; - case 150: -#line 2108 "preproc.y" /* yacc.c:1652 */ - { + case 150: /* opt_with: WITH */ +#line 2108 "preproc.y" + { (yyval.str) = mm_strdup("with"); } -#line 35639 "preproc.c" /* yacc.c:1652 */ +#line 36304 "preproc.c" break; - case 151: -#line 2112 "preproc.y" /* yacc.c:1652 */ - { + case 151: /* opt_with: WITH_LA */ +#line 2112 "preproc.y" + { (yyval.str) = mm_strdup("with"); } -#line 35647 "preproc.c" /* yacc.c:1652 */ +#line 36312 "preproc.c" break; - case 152: -#line 2116 "preproc.y" /* yacc.c:1652 */ - { + case 152: /* opt_with: %empty */ +#line 2116 "preproc.y" + { (yyval.str)=EMPTY; } -#line 35654 "preproc.c" /* yacc.c:1652 */ +#line 36319 "preproc.c" break; - case 153: -#line 2123 "preproc.y" /* yacc.c:1652 */ - { + case 153: /* OptRoleList: OptRoleList CreateOptRoleElem */ +#line 2123 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35662 "preproc.c" /* yacc.c:1652 */ +#line 36327 "preproc.c" break; - case 154: -#line 2127 "preproc.y" /* yacc.c:1652 */ - { + case 154: /* OptRoleList: %empty */ +#line 2127 "preproc.y" + { (yyval.str)=EMPTY; } -#line 35669 "preproc.c" /* yacc.c:1652 */ +#line 36334 "preproc.c" break; - case 155: -#line 2134 "preproc.y" /* yacc.c:1652 */ - { + case 155: /* AlterOptRoleList: AlterOptRoleList AlterOptRoleElem */ +#line 2134 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35677 "preproc.c" /* yacc.c:1652 */ +#line 36342 "preproc.c" break; - case 156: -#line 2138 "preproc.y" /* yacc.c:1652 */ - { + case 156: /* AlterOptRoleList: %empty */ +#line 2138 "preproc.y" + { (yyval.str)=EMPTY; } -#line 35684 "preproc.c" /* yacc.c:1652 */ +#line 36349 "preproc.c" break; - case 157: -#line 2145 "preproc.y" /* yacc.c:1652 */ - { + case 157: /* AlterOptRoleElem: PASSWORD ecpg_sconst */ +#line 2145 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("password"),(yyvsp[0].str)); } -#line 35692 "preproc.c" /* yacc.c:1652 */ +#line 36357 "preproc.c" break; - case 158: -#line 2149 "preproc.y" /* yacc.c:1652 */ - { + case 158: /* AlterOptRoleElem: PASSWORD NULL_P */ +#line 2149 "preproc.y" + { (yyval.str) = mm_strdup("password null"); } -#line 35700 "preproc.c" /* yacc.c:1652 */ +#line 36365 "preproc.c" break; - case 159: -#line 2153 "preproc.y" /* yacc.c:1652 */ - { + case 159: /* AlterOptRoleElem: ENCRYPTED PASSWORD ecpg_sconst */ +#line 2153 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("encrypted password"),(yyvsp[0].str)); } -#line 35708 "preproc.c" /* yacc.c:1652 */ +#line 36373 "preproc.c" break; - case 160: -#line 2157 "preproc.y" /* yacc.c:1652 */ - { + case 160: /* AlterOptRoleElem: UNENCRYPTED PASSWORD ecpg_sconst */ +#line 2157 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(2,mm_strdup("unencrypted password"),(yyvsp[0].str)); } -#line 35717 "preproc.c" /* yacc.c:1652 */ +#line 36382 "preproc.c" break; - case 161: -#line 2162 "preproc.y" /* yacc.c:1652 */ - { + case 161: /* AlterOptRoleElem: INHERIT */ +#line 2162 "preproc.y" + { (yyval.str) = mm_strdup("inherit"); } -#line 35725 "preproc.c" /* yacc.c:1652 */ +#line 36390 "preproc.c" break; - case 162: -#line 2166 "preproc.y" /* yacc.c:1652 */ - { + case 162: /* AlterOptRoleElem: CONNECTION LIMIT SignedIconst */ +#line 2166 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("connection limit"),(yyvsp[0].str)); } -#line 35733 "preproc.c" /* yacc.c:1652 */ +#line 36398 "preproc.c" break; - case 163: -#line 2170 "preproc.y" /* yacc.c:1652 */ - { + case 163: /* AlterOptRoleElem: VALID UNTIL ecpg_sconst */ +#line 2170 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("valid until"),(yyvsp[0].str)); } -#line 35741 "preproc.c" /* yacc.c:1652 */ +#line 36406 "preproc.c" break; - case 164: -#line 2174 "preproc.y" /* yacc.c:1652 */ - { + case 164: /* AlterOptRoleElem: USER role_list */ +#line 2174 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("user"),(yyvsp[0].str)); } -#line 35749 "preproc.c" /* yacc.c:1652 */ +#line 36414 "preproc.c" break; - case 165: -#line 2178 "preproc.y" /* yacc.c:1652 */ - { + case 165: /* AlterOptRoleElem: ecpg_ident */ +#line 2178 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 35757 "preproc.c" /* yacc.c:1652 */ +#line 36422 "preproc.c" break; - case 166: -#line 2186 "preproc.y" /* yacc.c:1652 */ - { + case 166: /* CreateOptRoleElem: AlterOptRoleElem */ +#line 2186 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 35765 "preproc.c" /* yacc.c:1652 */ +#line 36430 "preproc.c" break; - case 167: -#line 2190 "preproc.y" /* yacc.c:1652 */ - { + case 167: /* CreateOptRoleElem: SYSID Iconst */ +#line 2190 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("sysid"),(yyvsp[0].str)); } -#line 35773 "preproc.c" /* yacc.c:1652 */ +#line 36438 "preproc.c" break; - case 168: -#line 2194 "preproc.y" /* yacc.c:1652 */ - { + case 168: /* CreateOptRoleElem: ADMIN role_list */ +#line 2194 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("admin"),(yyvsp[0].str)); } -#line 35781 "preproc.c" /* yacc.c:1652 */ +#line 36446 "preproc.c" break; - case 169: -#line 2198 "preproc.y" /* yacc.c:1652 */ - { + case 169: /* CreateOptRoleElem: ROLE role_list */ +#line 2198 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("role"),(yyvsp[0].str)); } -#line 35789 "preproc.c" /* yacc.c:1652 */ +#line 36454 "preproc.c" break; - case 170: -#line 2202 "preproc.y" /* yacc.c:1652 */ - { + case 170: /* CreateOptRoleElem: IN_P ROLE role_list */ +#line 2202 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("in role"),(yyvsp[0].str)); } -#line 35797 "preproc.c" /* yacc.c:1652 */ +#line 36462 "preproc.c" break; - case 171: -#line 2206 "preproc.y" /* yacc.c:1652 */ - { + case 171: /* CreateOptRoleElem: IN_P GROUP_P role_list */ +#line 2206 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("in group"),(yyvsp[0].str)); } -#line 35805 "preproc.c" /* yacc.c:1652 */ +#line 36470 "preproc.c" break; - case 172: -#line 2214 "preproc.y" /* yacc.c:1652 */ - { + case 172: /* CreateUserStmt: CREATE USER RoleId opt_with OptRoleList */ +#line 2214 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create user"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35813 "preproc.c" /* yacc.c:1652 */ +#line 36478 "preproc.c" break; - case 173: -#line 2222 "preproc.y" /* yacc.c:1652 */ - { + case 173: /* AlterRoleStmt: ALTER ROLE RoleSpec opt_with AlterOptRoleList */ +#line 2222 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter role"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35821 "preproc.c" /* yacc.c:1652 */ +#line 36486 "preproc.c" break; - case 174: -#line 2226 "preproc.y" /* yacc.c:1652 */ - { + case 174: /* AlterRoleStmt: ALTER USER RoleSpec opt_with AlterOptRoleList */ +#line 2226 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter user"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35829 "preproc.c" /* yacc.c:1652 */ +#line 36494 "preproc.c" break; - case 175: -#line 2234 "preproc.y" /* yacc.c:1652 */ - { + case 175: /* opt_in_database: %empty */ +#line 2234 "preproc.y" + { (yyval.str)=EMPTY; } -#line 35836 "preproc.c" /* yacc.c:1652 */ +#line 36501 "preproc.c" break; - case 176: -#line 2237 "preproc.y" /* yacc.c:1652 */ - { + case 176: /* opt_in_database: IN_P DATABASE database_name */ +#line 2237 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("in database"),(yyvsp[0].str)); } -#line 35844 "preproc.c" /* yacc.c:1652 */ +#line 36509 "preproc.c" break; - case 177: -#line 2245 "preproc.y" /* yacc.c:1652 */ - { + case 177: /* AlterRoleSetStmt: ALTER ROLE RoleSpec opt_in_database SetResetClause */ +#line 2245 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter role"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35852 "preproc.c" /* yacc.c:1652 */ +#line 36517 "preproc.c" break; - case 178: -#line 2249 "preproc.y" /* yacc.c:1652 */ - { + case 178: /* AlterRoleSetStmt: ALTER ROLE ALL opt_in_database SetResetClause */ +#line 2249 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter role all"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35860 "preproc.c" /* yacc.c:1652 */ +#line 36525 "preproc.c" break; - case 179: -#line 2253 "preproc.y" /* yacc.c:1652 */ - { + case 179: /* AlterRoleSetStmt: ALTER USER RoleSpec opt_in_database SetResetClause */ +#line 2253 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter user"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35868 "preproc.c" /* yacc.c:1652 */ +#line 36533 "preproc.c" break; - case 180: -#line 2257 "preproc.y" /* yacc.c:1652 */ - { + case 180: /* AlterRoleSetStmt: ALTER USER ALL opt_in_database SetResetClause */ +#line 2257 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter user all"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35876 "preproc.c" /* yacc.c:1652 */ +#line 36541 "preproc.c" break; - case 181: -#line 2265 "preproc.y" /* yacc.c:1652 */ - { + case 181: /* DropRoleStmt: DROP ROLE role_list */ +#line 2265 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop role"),(yyvsp[0].str)); } -#line 35884 "preproc.c" /* yacc.c:1652 */ +#line 36549 "preproc.c" break; - case 182: -#line 2269 "preproc.y" /* yacc.c:1652 */ - { + case 182: /* DropRoleStmt: DROP ROLE IF_P EXISTS role_list */ +#line 2269 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop role if exists"),(yyvsp[0].str)); } -#line 35892 "preproc.c" /* yacc.c:1652 */ +#line 36557 "preproc.c" break; - case 183: -#line 2273 "preproc.y" /* yacc.c:1652 */ - { + case 183: /* DropRoleStmt: DROP USER role_list */ +#line 2273 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop user"),(yyvsp[0].str)); } -#line 35900 "preproc.c" /* yacc.c:1652 */ +#line 36565 "preproc.c" break; - case 184: -#line 2277 "preproc.y" /* yacc.c:1652 */ - { + case 184: /* DropRoleStmt: DROP USER IF_P EXISTS role_list */ +#line 2277 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop user if exists"),(yyvsp[0].str)); } -#line 35908 "preproc.c" /* yacc.c:1652 */ +#line 36573 "preproc.c" break; - case 185: -#line 2281 "preproc.y" /* yacc.c:1652 */ - { + case 185: /* DropRoleStmt: DROP GROUP_P role_list */ +#line 2281 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop group"),(yyvsp[0].str)); } -#line 35916 "preproc.c" /* yacc.c:1652 */ +#line 36581 "preproc.c" break; - case 186: -#line 2285 "preproc.y" /* yacc.c:1652 */ - { + case 186: /* DropRoleStmt: DROP GROUP_P IF_P EXISTS role_list */ +#line 2285 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop group if exists"),(yyvsp[0].str)); } -#line 35924 "preproc.c" /* yacc.c:1652 */ +#line 36589 "preproc.c" break; - case 187: -#line 2293 "preproc.y" /* yacc.c:1652 */ - { + case 187: /* CreateGroupStmt: CREATE GROUP_P RoleId opt_with OptRoleList */ +#line 2293 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create group"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35932 "preproc.c" /* yacc.c:1652 */ +#line 36597 "preproc.c" break; - case 188: -#line 2301 "preproc.y" /* yacc.c:1652 */ - { + case 188: /* AlterGroupStmt: ALTER GROUP_P RoleSpec add_drop USER role_list */ +#line 2301 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter group"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("user"),(yyvsp[0].str)); } -#line 35940 "preproc.c" /* yacc.c:1652 */ +#line 36605 "preproc.c" break; - case 189: -#line 2309 "preproc.y" /* yacc.c:1652 */ - { + case 189: /* add_drop: ADD_P */ +#line 2309 "preproc.y" + { (yyval.str) = mm_strdup("add"); } -#line 35948 "preproc.c" /* yacc.c:1652 */ +#line 36613 "preproc.c" break; - case 190: -#line 2313 "preproc.y" /* yacc.c:1652 */ - { + case 190: /* add_drop: DROP */ +#line 2313 "preproc.y" + { (yyval.str) = mm_strdup("drop"); } -#line 35956 "preproc.c" /* yacc.c:1652 */ +#line 36621 "preproc.c" break; - case 191: -#line 2321 "preproc.y" /* yacc.c:1652 */ - { + case 191: /* CreateSchemaStmt: CREATE SCHEMA OptSchemaName AUTHORIZATION RoleSpec OptSchemaEltList */ +#line 2321 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("create schema"),(yyvsp[-3].str),mm_strdup("authorization"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35964 "preproc.c" /* yacc.c:1652 */ +#line 36629 "preproc.c" break; - case 192: -#line 2325 "preproc.y" /* yacc.c:1652 */ - { + case 192: /* CreateSchemaStmt: CREATE SCHEMA ColId OptSchemaEltList */ +#line 2325 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("create schema"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35972 "preproc.c" /* yacc.c:1652 */ +#line 36637 "preproc.c" break; - case 193: -#line 2329 "preproc.y" /* yacc.c:1652 */ - { + case 193: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS OptSchemaName AUTHORIZATION RoleSpec OptSchemaEltList */ +#line 2329 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(5,mm_strdup("create schema if not exists"),(yyvsp[-3].str),mm_strdup("authorization"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35981 "preproc.c" /* yacc.c:1652 */ +#line 36646 "preproc.c" break; - case 194: -#line 2334 "preproc.y" /* yacc.c:1652 */ - { + case 194: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS ColId OptSchemaEltList */ +#line 2334 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(3,mm_strdup("create schema if not exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 35990 "preproc.c" /* yacc.c:1652 */ +#line 36655 "preproc.c" break; - case 195: -#line 2343 "preproc.y" /* yacc.c:1652 */ - { + case 195: /* OptSchemaName: ColId */ +#line 2343 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 35998 "preproc.c" /* yacc.c:1652 */ +#line 36663 "preproc.c" break; - case 196: -#line 2347 "preproc.y" /* yacc.c:1652 */ - { + case 196: /* OptSchemaName: %empty */ +#line 2347 "preproc.y" + { (yyval.str)=EMPTY; } -#line 36005 "preproc.c" /* yacc.c:1652 */ +#line 36670 "preproc.c" break; - case 197: -#line 2354 "preproc.y" /* yacc.c:1652 */ - { + case 197: /* OptSchemaEltList: OptSchemaEltList schema_stmt */ +#line 2354 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36013 "preproc.c" /* yacc.c:1652 */ +#line 36678 "preproc.c" break; - case 198: -#line 2358 "preproc.y" /* yacc.c:1652 */ - { + case 198: /* OptSchemaEltList: %empty */ +#line 2358 "preproc.y" + { (yyval.str)=EMPTY; } -#line 36020 "preproc.c" /* yacc.c:1652 */ +#line 36685 "preproc.c" break; - case 199: -#line 2365 "preproc.y" /* yacc.c:1652 */ - { + case 199: /* schema_stmt: CreateStmt */ +#line 2365 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36028 "preproc.c" /* yacc.c:1652 */ +#line 36693 "preproc.c" break; - case 200: -#line 2369 "preproc.y" /* yacc.c:1652 */ - { + case 200: /* schema_stmt: IndexStmt */ +#line 2369 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36036 "preproc.c" /* yacc.c:1652 */ +#line 36701 "preproc.c" break; - case 201: -#line 2373 "preproc.y" /* yacc.c:1652 */ - { + case 201: /* schema_stmt: CreateSeqStmt */ +#line 2373 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36044 "preproc.c" /* yacc.c:1652 */ +#line 36709 "preproc.c" break; - case 202: -#line 2377 "preproc.y" /* yacc.c:1652 */ - { + case 202: /* schema_stmt: CreateTrigStmt */ +#line 2377 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36052 "preproc.c" /* yacc.c:1652 */ +#line 36717 "preproc.c" break; - case 203: -#line 2381 "preproc.y" /* yacc.c:1652 */ - { + case 203: /* schema_stmt: GrantStmt */ +#line 2381 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36060 "preproc.c" /* yacc.c:1652 */ +#line 36725 "preproc.c" break; - case 204: -#line 2385 "preproc.y" /* yacc.c:1652 */ - { + case 204: /* schema_stmt: ViewStmt */ +#line 2385 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36068 "preproc.c" /* yacc.c:1652 */ +#line 36733 "preproc.c" break; - case 205: -#line 2393 "preproc.y" /* yacc.c:1652 */ - { + case 205: /* VariableSetStmt: SET set_rest */ +#line 2393 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 36076 "preproc.c" /* yacc.c:1652 */ +#line 36741 "preproc.c" break; - case 206: -#line 2397 "preproc.y" /* yacc.c:1652 */ - { + case 206: /* VariableSetStmt: SET LOCAL set_rest */ +#line 2397 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set local"),(yyvsp[0].str)); } -#line 36084 "preproc.c" /* yacc.c:1652 */ +#line 36749 "preproc.c" break; - case 207: -#line 2401 "preproc.y" /* yacc.c:1652 */ - { + case 207: /* VariableSetStmt: SET SESSION set_rest */ +#line 2401 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set session"),(yyvsp[0].str)); } -#line 36092 "preproc.c" /* yacc.c:1652 */ +#line 36757 "preproc.c" break; - case 208: -#line 2409 "preproc.y" /* yacc.c:1652 */ - { + case 208: /* set_rest: TRANSACTION transaction_mode_list */ +#line 2409 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("transaction"),(yyvsp[0].str)); } -#line 36100 "preproc.c" /* yacc.c:1652 */ +#line 36765 "preproc.c" break; - case 209: -#line 2413 "preproc.y" /* yacc.c:1652 */ - { + case 209: /* set_rest: SESSION CHARACTERISTICS AS TRANSACTION transaction_mode_list */ +#line 2413 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("session characteristics as transaction"),(yyvsp[0].str)); } -#line 36108 "preproc.c" /* yacc.c:1652 */ +#line 36773 "preproc.c" break; - case 210: -#line 2417 "preproc.y" /* yacc.c:1652 */ - { + case 210: /* set_rest: set_rest_more */ +#line 2417 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36116 "preproc.c" /* yacc.c:1652 */ +#line 36781 "preproc.c" break; - case 211: -#line 2425 "preproc.y" /* yacc.c:1652 */ - { + case 211: /* generic_set: var_name TO var_list */ +#line 2425 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 36124 "preproc.c" /* yacc.c:1652 */ +#line 36789 "preproc.c" break; - case 212: -#line 2429 "preproc.y" /* yacc.c:1652 */ - { + case 212: /* generic_set: var_name '=' var_list */ +#line 2429 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 36132 "preproc.c" /* yacc.c:1652 */ +#line 36797 "preproc.c" break; - case 213: -#line 2433 "preproc.y" /* yacc.c:1652 */ - { + case 213: /* generic_set: var_name TO DEFAULT */ +#line 2433 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("to default")); } -#line 36140 "preproc.c" /* yacc.c:1652 */ +#line 36805 "preproc.c" break; - case 214: -#line 2437 "preproc.y" /* yacc.c:1652 */ - { + case 214: /* generic_set: var_name '=' DEFAULT */ +#line 2437 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("= default")); } -#line 36148 "preproc.c" /* yacc.c:1652 */ +#line 36813 "preproc.c" break; - case 215: -#line 2445 "preproc.y" /* yacc.c:1652 */ - { + case 215: /* set_rest_more: generic_set */ +#line 2445 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36156 "preproc.c" /* yacc.c:1652 */ +#line 36821 "preproc.c" break; - case 216: -#line 2449 "preproc.y" /* yacc.c:1652 */ - { + case 216: /* set_rest_more: var_name FROM CURRENT_P */ +#line 2449 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("from current")); } -#line 36164 "preproc.c" /* yacc.c:1652 */ +#line 36829 "preproc.c" break; - case 217: -#line 2453 "preproc.y" /* yacc.c:1652 */ - { + case 217: /* set_rest_more: TIME ZONE zone_value */ +#line 2453 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("time zone"),(yyvsp[0].str)); } -#line 36172 "preproc.c" /* yacc.c:1652 */ +#line 36837 "preproc.c" break; - case 218: -#line 2457 "preproc.y" /* yacc.c:1652 */ - { + case 218: /* set_rest_more: CATALOG_P ecpg_sconst */ +#line 2457 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(2,mm_strdup("catalog"),(yyvsp[0].str)); } -#line 36181 "preproc.c" /* yacc.c:1652 */ +#line 36846 "preproc.c" break; - case 219: -#line 2462 "preproc.y" /* yacc.c:1652 */ - { + case 219: /* set_rest_more: SCHEMA ecpg_sconst */ +#line 2462 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("schema"),(yyvsp[0].str)); } -#line 36189 "preproc.c" /* yacc.c:1652 */ +#line 36854 "preproc.c" break; - case 220: -#line 2466 "preproc.y" /* yacc.c:1652 */ - { + case 220: /* set_rest_more: NAMES opt_encoding */ +#line 2466 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("names"),(yyvsp[0].str)); } -#line 36197 "preproc.c" /* yacc.c:1652 */ +#line 36862 "preproc.c" break; - case 221: -#line 2470 "preproc.y" /* yacc.c:1652 */ - { + case 221: /* set_rest_more: ROLE NonReservedWord_or_Sconst */ +#line 2470 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("role"),(yyvsp[0].str)); } -#line 36205 "preproc.c" /* yacc.c:1652 */ +#line 36870 "preproc.c" break; - case 222: -#line 2474 "preproc.y" /* yacc.c:1652 */ - { + case 222: /* set_rest_more: SESSION AUTHORIZATION NonReservedWord_or_Sconst */ +#line 2474 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("session authorization"),(yyvsp[0].str)); } -#line 36213 "preproc.c" /* yacc.c:1652 */ +#line 36878 "preproc.c" break; - case 223: -#line 2478 "preproc.y" /* yacc.c:1652 */ - { + case 223: /* set_rest_more: SESSION AUTHORIZATION DEFAULT */ +#line 2478 "preproc.y" + { (yyval.str) = mm_strdup("session authorization default"); } -#line 36221 "preproc.c" /* yacc.c:1652 */ +#line 36886 "preproc.c" break; - case 224: -#line 2482 "preproc.y" /* yacc.c:1652 */ - { + case 224: /* set_rest_more: XML_P OPTION document_or_content */ +#line 2482 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("xml option"),(yyvsp[0].str)); } -#line 36229 "preproc.c" /* yacc.c:1652 */ +#line 36894 "preproc.c" break; - case 225: -#line 2486 "preproc.y" /* yacc.c:1652 */ - { + case 225: /* set_rest_more: TRANSACTION SNAPSHOT ecpg_sconst */ +#line 2486 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("transaction snapshot"),(yyvsp[0].str)); } -#line 36237 "preproc.c" /* yacc.c:1652 */ +#line 36902 "preproc.c" break; - case 226: -#line 2494 "preproc.y" /* yacc.c:1652 */ - { + case 226: /* var_name: ECPGColId */ +#line 2494 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36245 "preproc.c" /* yacc.c:1652 */ +#line 36910 "preproc.c" break; - case 227: -#line 2498 "preproc.y" /* yacc.c:1652 */ - { + case 227: /* var_name: var_name '.' ColId */ +#line 2498 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("."),(yyvsp[0].str)); } -#line 36253 "preproc.c" /* yacc.c:1652 */ +#line 36918 "preproc.c" break; - case 228: -#line 2506 "preproc.y" /* yacc.c:1652 */ - { + case 228: /* var_list: var_value */ +#line 2506 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36261 "preproc.c" /* yacc.c:1652 */ +#line 36926 "preproc.c" break; - case 229: -#line 2510 "preproc.y" /* yacc.c:1652 */ - { + case 229: /* var_list: var_list ',' var_value */ +#line 2510 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 36269 "preproc.c" /* yacc.c:1652 */ +#line 36934 "preproc.c" break; - case 230: -#line 2518 "preproc.y" /* yacc.c:1652 */ - { + case 230: /* var_value: opt_boolean_or_string */ +#line 2518 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36277 "preproc.c" /* yacc.c:1652 */ +#line 36942 "preproc.c" break; - case 231: -#line 2522 "preproc.y" /* yacc.c:1652 */ - { + case 231: /* var_value: NumericOnly */ +#line 2522 "preproc.y" + { if ((yyvsp[0].str)[0] == '$') { free((yyvsp[0].str)); @@ -36287,6307 +36952,6307 @@ (yyval.str) = (yyvsp[0].str); } -#line 36291 "preproc.c" /* yacc.c:1652 */ +#line 36956 "preproc.c" break; - case 232: -#line 2536 "preproc.y" /* yacc.c:1652 */ - { + case 232: /* iso_level: READ UNCOMMITTED */ +#line 2536 "preproc.y" + { (yyval.str) = mm_strdup("read uncommitted"); } -#line 36299 "preproc.c" /* yacc.c:1652 */ +#line 36964 "preproc.c" break; - case 233: -#line 2540 "preproc.y" /* yacc.c:1652 */ - { + case 233: /* iso_level: READ COMMITTED */ +#line 2540 "preproc.y" + { (yyval.str) = mm_strdup("read committed"); } -#line 36307 "preproc.c" /* yacc.c:1652 */ +#line 36972 "preproc.c" break; - case 234: -#line 2544 "preproc.y" /* yacc.c:1652 */ - { + case 234: /* iso_level: REPEATABLE READ */ +#line 2544 "preproc.y" + { (yyval.str) = mm_strdup("repeatable read"); } -#line 36315 "preproc.c" /* yacc.c:1652 */ +#line 36980 "preproc.c" break; - case 235: -#line 2548 "preproc.y" /* yacc.c:1652 */ - { + case 235: /* iso_level: SERIALIZABLE */ +#line 2548 "preproc.y" + { (yyval.str) = mm_strdup("serializable"); } -#line 36323 "preproc.c" /* yacc.c:1652 */ +#line 36988 "preproc.c" break; - case 236: -#line 2556 "preproc.y" /* yacc.c:1652 */ - { + case 236: /* opt_boolean_or_string: TRUE_P */ +#line 2556 "preproc.y" + { (yyval.str) = mm_strdup("true"); } -#line 36331 "preproc.c" /* yacc.c:1652 */ +#line 36996 "preproc.c" break; - case 237: -#line 2560 "preproc.y" /* yacc.c:1652 */ - { + case 237: /* opt_boolean_or_string: FALSE_P */ +#line 2560 "preproc.y" + { (yyval.str) = mm_strdup("false"); } -#line 36339 "preproc.c" /* yacc.c:1652 */ +#line 37004 "preproc.c" break; - case 238: -#line 2564 "preproc.y" /* yacc.c:1652 */ - { + case 238: /* opt_boolean_or_string: ON */ +#line 2564 "preproc.y" + { (yyval.str) = mm_strdup("on"); } -#line 36347 "preproc.c" /* yacc.c:1652 */ +#line 37012 "preproc.c" break; - case 239: -#line 2568 "preproc.y" /* yacc.c:1652 */ - { + case 239: /* opt_boolean_or_string: NonReservedWord_or_Sconst */ +#line 2568 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36355 "preproc.c" /* yacc.c:1652 */ +#line 37020 "preproc.c" break; - case 240: -#line 2576 "preproc.y" /* yacc.c:1652 */ - { + case 240: /* zone_value: ecpg_sconst */ +#line 2576 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36363 "preproc.c" /* yacc.c:1652 */ +#line 37028 "preproc.c" break; - case 241: -#line 2580 "preproc.y" /* yacc.c:1652 */ - { + case 241: /* zone_value: ecpg_ident */ +#line 2580 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36371 "preproc.c" /* yacc.c:1652 */ +#line 37036 "preproc.c" break; - case 242: -#line 2584 "preproc.y" /* yacc.c:1652 */ - { + case 242: /* zone_value: ConstInterval ecpg_sconst opt_interval */ +#line 2584 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36379 "preproc.c" /* yacc.c:1652 */ +#line 37044 "preproc.c" break; - case 243: -#line 2588 "preproc.y" /* yacc.c:1652 */ - { + case 243: /* zone_value: ConstInterval '(' Iconst ')' ecpg_sconst */ +#line 2588 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 36387 "preproc.c" /* yacc.c:1652 */ +#line 37052 "preproc.c" break; - case 244: -#line 2592 "preproc.y" /* yacc.c:1652 */ - { + case 244: /* zone_value: NumericOnly */ +#line 2592 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36395 "preproc.c" /* yacc.c:1652 */ +#line 37060 "preproc.c" break; - case 245: -#line 2596 "preproc.y" /* yacc.c:1652 */ - { + case 245: /* zone_value: DEFAULT */ +#line 2596 "preproc.y" + { (yyval.str) = mm_strdup("default"); } -#line 36403 "preproc.c" /* yacc.c:1652 */ +#line 37068 "preproc.c" break; - case 246: -#line 2600 "preproc.y" /* yacc.c:1652 */ - { + case 246: /* zone_value: LOCAL */ +#line 2600 "preproc.y" + { (yyval.str) = mm_strdup("local"); } -#line 36411 "preproc.c" /* yacc.c:1652 */ +#line 37076 "preproc.c" break; - case 247: -#line 2608 "preproc.y" /* yacc.c:1652 */ - { + case 247: /* opt_encoding: ecpg_sconst */ +#line 2608 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36419 "preproc.c" /* yacc.c:1652 */ +#line 37084 "preproc.c" break; - case 248: -#line 2612 "preproc.y" /* yacc.c:1652 */ - { + case 248: /* opt_encoding: DEFAULT */ +#line 2612 "preproc.y" + { (yyval.str) = mm_strdup("default"); } -#line 36427 "preproc.c" /* yacc.c:1652 */ +#line 37092 "preproc.c" break; - case 249: -#line 2616 "preproc.y" /* yacc.c:1652 */ - { + case 249: /* opt_encoding: %empty */ +#line 2616 "preproc.y" + { (yyval.str)=EMPTY; } -#line 36434 "preproc.c" /* yacc.c:1652 */ +#line 37099 "preproc.c" break; - case 250: -#line 2623 "preproc.y" /* yacc.c:1652 */ - { + case 250: /* NonReservedWord_or_Sconst: NonReservedWord */ +#line 2623 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36442 "preproc.c" /* yacc.c:1652 */ +#line 37107 "preproc.c" break; - case 251: -#line 2627 "preproc.y" /* yacc.c:1652 */ - { + case 251: /* NonReservedWord_or_Sconst: ecpg_sconst */ +#line 2627 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36450 "preproc.c" /* yacc.c:1652 */ +#line 37115 "preproc.c" break; - case 252: -#line 2635 "preproc.y" /* yacc.c:1652 */ - { + case 252: /* VariableResetStmt: RESET reset_rest */ +#line 2635 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("reset"),(yyvsp[0].str)); } -#line 36458 "preproc.c" /* yacc.c:1652 */ +#line 37123 "preproc.c" break; - case 253: -#line 2643 "preproc.y" /* yacc.c:1652 */ - { + case 253: /* reset_rest: generic_reset */ +#line 2643 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36466 "preproc.c" /* yacc.c:1652 */ +#line 37131 "preproc.c" break; - case 254: -#line 2647 "preproc.y" /* yacc.c:1652 */ - { + case 254: /* reset_rest: TIME ZONE */ +#line 2647 "preproc.y" + { (yyval.str) = mm_strdup("time zone"); } -#line 36474 "preproc.c" /* yacc.c:1652 */ +#line 37139 "preproc.c" break; - case 255: -#line 2651 "preproc.y" /* yacc.c:1652 */ - { + case 255: /* reset_rest: TRANSACTION ISOLATION LEVEL */ +#line 2651 "preproc.y" + { (yyval.str) = mm_strdup("transaction isolation level"); } -#line 36482 "preproc.c" /* yacc.c:1652 */ +#line 37147 "preproc.c" break; - case 256: -#line 2655 "preproc.y" /* yacc.c:1652 */ - { + case 256: /* reset_rest: SESSION AUTHORIZATION */ +#line 2655 "preproc.y" + { (yyval.str) = mm_strdup("session authorization"); } -#line 36490 "preproc.c" /* yacc.c:1652 */ +#line 37155 "preproc.c" break; - case 257: -#line 2663 "preproc.y" /* yacc.c:1652 */ - { + case 257: /* generic_reset: var_name */ +#line 2663 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36498 "preproc.c" /* yacc.c:1652 */ +#line 37163 "preproc.c" break; - case 258: -#line 2667 "preproc.y" /* yacc.c:1652 */ - { + case 258: /* generic_reset: ALL */ +#line 2667 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 36506 "preproc.c" /* yacc.c:1652 */ +#line 37171 "preproc.c" break; - case 259: -#line 2675 "preproc.y" /* yacc.c:1652 */ - { + case 259: /* SetResetClause: SET set_rest */ +#line 2675 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 36514 "preproc.c" /* yacc.c:1652 */ +#line 37179 "preproc.c" break; - case 260: -#line 2679 "preproc.y" /* yacc.c:1652 */ - { + case 260: /* SetResetClause: VariableResetStmt */ +#line 2679 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36522 "preproc.c" /* yacc.c:1652 */ +#line 37187 "preproc.c" break; - case 261: -#line 2687 "preproc.y" /* yacc.c:1652 */ - { + case 261: /* FunctionSetResetClause: SET set_rest_more */ +#line 2687 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 36530 "preproc.c" /* yacc.c:1652 */ +#line 37195 "preproc.c" break; - case 262: -#line 2691 "preproc.y" /* yacc.c:1652 */ - { + case 262: /* FunctionSetResetClause: VariableResetStmt */ +#line 2691 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36538 "preproc.c" /* yacc.c:1652 */ +#line 37203 "preproc.c" break; - case 263: -#line 2699 "preproc.y" /* yacc.c:1652 */ - { + case 263: /* VariableShowStmt: SHOW var_name ecpg_into */ +#line 2699 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("show"),(yyvsp[-1].str)); } -#line 36546 "preproc.c" /* yacc.c:1652 */ +#line 37211 "preproc.c" break; - case 264: -#line 2703 "preproc.y" /* yacc.c:1652 */ - { + case 264: /* VariableShowStmt: SHOW TIME ZONE ecpg_into */ +#line 2703 "preproc.y" + { (yyval.str) = mm_strdup("show time zone"); } -#line 36554 "preproc.c" /* yacc.c:1652 */ +#line 37219 "preproc.c" break; - case 265: -#line 2707 "preproc.y" /* yacc.c:1652 */ - { + case 265: /* VariableShowStmt: SHOW TRANSACTION ISOLATION LEVEL ecpg_into */ +#line 2707 "preproc.y" + { (yyval.str) = mm_strdup("show transaction isolation level"); } -#line 36562 "preproc.c" /* yacc.c:1652 */ +#line 37227 "preproc.c" break; - case 266: -#line 2711 "preproc.y" /* yacc.c:1652 */ - { + case 266: /* VariableShowStmt: SHOW SESSION AUTHORIZATION ecpg_into */ +#line 2711 "preproc.y" + { (yyval.str) = mm_strdup("show session authorization"); } -#line 36570 "preproc.c" /* yacc.c:1652 */ +#line 37235 "preproc.c" break; - case 267: -#line 2715 "preproc.y" /* yacc.c:1652 */ - { + case 267: /* VariableShowStmt: SHOW ALL */ +#line 2715 "preproc.y" + { mmerror(PARSE_ERROR, ET_ERROR, "SHOW ALL is not implemented"); (yyval.str) = EMPTY; } -#line 36579 "preproc.c" /* yacc.c:1652 */ +#line 37244 "preproc.c" break; - case 268: -#line 2724 "preproc.y" /* yacc.c:1652 */ - { + case 268: /* ConstraintsSetStmt: SET CONSTRAINTS constraints_set_list constraints_set_mode */ +#line 2724 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("set constraints"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36587 "preproc.c" /* yacc.c:1652 */ +#line 37252 "preproc.c" break; - case 269: -#line 2732 "preproc.y" /* yacc.c:1652 */ - { + case 269: /* constraints_set_list: ALL */ +#line 2732 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 36595 "preproc.c" /* yacc.c:1652 */ +#line 37260 "preproc.c" break; - case 270: -#line 2736 "preproc.y" /* yacc.c:1652 */ - { + case 270: /* constraints_set_list: qualified_name_list */ +#line 2736 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36603 "preproc.c" /* yacc.c:1652 */ +#line 37268 "preproc.c" break; - case 271: -#line 2744 "preproc.y" /* yacc.c:1652 */ - { + case 271: /* constraints_set_mode: DEFERRED */ +#line 2744 "preproc.y" + { (yyval.str) = mm_strdup("deferred"); } -#line 36611 "preproc.c" /* yacc.c:1652 */ +#line 37276 "preproc.c" break; - case 272: -#line 2748 "preproc.y" /* yacc.c:1652 */ - { + case 272: /* constraints_set_mode: IMMEDIATE */ +#line 2748 "preproc.y" + { (yyval.str) = mm_strdup("immediate"); } -#line 36619 "preproc.c" /* yacc.c:1652 */ +#line 37284 "preproc.c" break; - case 273: -#line 2756 "preproc.y" /* yacc.c:1652 */ - { + case 273: /* CheckPointStmt: CHECKPOINT */ +#line 2756 "preproc.y" + { (yyval.str) = mm_strdup("checkpoint"); } -#line 36627 "preproc.c" /* yacc.c:1652 */ +#line 37292 "preproc.c" break; - case 274: -#line 2764 "preproc.y" /* yacc.c:1652 */ - { + case 274: /* DiscardStmt: DISCARD ALL */ +#line 2764 "preproc.y" + { (yyval.str) = mm_strdup("discard all"); } -#line 36635 "preproc.c" /* yacc.c:1652 */ +#line 37300 "preproc.c" break; - case 275: -#line 2768 "preproc.y" /* yacc.c:1652 */ - { + case 275: /* DiscardStmt: DISCARD TEMP */ +#line 2768 "preproc.y" + { (yyval.str) = mm_strdup("discard temp"); } -#line 36643 "preproc.c" /* yacc.c:1652 */ +#line 37308 "preproc.c" break; - case 276: -#line 2772 "preproc.y" /* yacc.c:1652 */ - { + case 276: /* DiscardStmt: DISCARD TEMPORARY */ +#line 2772 "preproc.y" + { (yyval.str) = mm_strdup("discard temporary"); } -#line 36651 "preproc.c" /* yacc.c:1652 */ +#line 37316 "preproc.c" break; - case 277: -#line 2776 "preproc.y" /* yacc.c:1652 */ - { + case 277: /* DiscardStmt: DISCARD PLANS */ +#line 2776 "preproc.y" + { (yyval.str) = mm_strdup("discard plans"); } -#line 36659 "preproc.c" /* yacc.c:1652 */ +#line 37324 "preproc.c" break; - case 278: -#line 2780 "preproc.y" /* yacc.c:1652 */ - { + case 278: /* DiscardStmt: DISCARD SEQUENCES */ +#line 2780 "preproc.y" + { (yyval.str) = mm_strdup("discard sequences"); } -#line 36667 "preproc.c" /* yacc.c:1652 */ +#line 37332 "preproc.c" break; - case 279: -#line 2788 "preproc.y" /* yacc.c:1652 */ - { + case 279: /* AlterTableStmt: ALTER TABLE relation_expr alter_table_cmds */ +#line 2788 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter table"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36675 "preproc.c" /* yacc.c:1652 */ +#line 37340 "preproc.c" break; - case 280: -#line 2792 "preproc.y" /* yacc.c:1652 */ - { + case 280: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr alter_table_cmds */ +#line 2792 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter table if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36683 "preproc.c" /* yacc.c:1652 */ +#line 37348 "preproc.c" break; - case 281: -#line 2796 "preproc.y" /* yacc.c:1652 */ - { + case 281: /* AlterTableStmt: ALTER TABLE relation_expr partition_cmd */ +#line 2796 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter table"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36691 "preproc.c" /* yacc.c:1652 */ +#line 37356 "preproc.c" break; - case 282: -#line 2800 "preproc.y" /* yacc.c:1652 */ - { + case 282: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr partition_cmd */ +#line 2800 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter table if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36699 "preproc.c" /* yacc.c:1652 */ +#line 37364 "preproc.c" break; - case 283: -#line 2804 "preproc.y" /* yacc.c:1652 */ - { + case 283: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */ +#line 2804 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter table all in tablespace"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36707 "preproc.c" /* yacc.c:1652 */ +#line 37372 "preproc.c" break; - case 284: -#line 2808 "preproc.y" /* yacc.c:1652 */ - { + case 284: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */ +#line 2808 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter table all in tablespace"),(yyvsp[-7].str),mm_strdup("owned by"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36715 "preproc.c" /* yacc.c:1652 */ +#line 37380 "preproc.c" break; - case 285: -#line 2812 "preproc.y" /* yacc.c:1652 */ - { + case 285: /* AlterTableStmt: ALTER INDEX qualified_name alter_table_cmds */ +#line 2812 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter index"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36723 "preproc.c" /* yacc.c:1652 */ +#line 37388 "preproc.c" break; - case 286: -#line 2816 "preproc.y" /* yacc.c:1652 */ - { + case 286: /* AlterTableStmt: ALTER INDEX IF_P EXISTS qualified_name alter_table_cmds */ +#line 2816 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter index if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36731 "preproc.c" /* yacc.c:1652 */ +#line 37396 "preproc.c" break; - case 287: -#line 2820 "preproc.y" /* yacc.c:1652 */ - { + case 287: /* AlterTableStmt: ALTER INDEX qualified_name index_partition_cmd */ +#line 2820 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter index"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36739 "preproc.c" /* yacc.c:1652 */ +#line 37404 "preproc.c" break; - case 288: -#line 2824 "preproc.y" /* yacc.c:1652 */ - { + case 288: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */ +#line 2824 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter index all in tablespace"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36747 "preproc.c" /* yacc.c:1652 */ +#line 37412 "preproc.c" break; - case 289: -#line 2828 "preproc.y" /* yacc.c:1652 */ - { + case 289: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */ +#line 2828 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter index all in tablespace"),(yyvsp[-7].str),mm_strdup("owned by"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36755 "preproc.c" /* yacc.c:1652 */ +#line 37420 "preproc.c" break; - case 290: -#line 2832 "preproc.y" /* yacc.c:1652 */ - { + case 290: /* AlterTableStmt: ALTER SEQUENCE qualified_name alter_table_cmds */ +#line 2832 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter sequence"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36763 "preproc.c" /* yacc.c:1652 */ +#line 37428 "preproc.c" break; - case 291: -#line 2836 "preproc.y" /* yacc.c:1652 */ - { + case 291: /* AlterTableStmt: ALTER SEQUENCE IF_P EXISTS qualified_name alter_table_cmds */ +#line 2836 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter sequence if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36771 "preproc.c" /* yacc.c:1652 */ +#line 37436 "preproc.c" break; - case 292: -#line 2840 "preproc.y" /* yacc.c:1652 */ - { + case 292: /* AlterTableStmt: ALTER VIEW qualified_name alter_table_cmds */ +#line 2840 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter view"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36779 "preproc.c" /* yacc.c:1652 */ +#line 37444 "preproc.c" break; - case 293: -#line 2844 "preproc.y" /* yacc.c:1652 */ - { + case 293: /* AlterTableStmt: ALTER VIEW IF_P EXISTS qualified_name alter_table_cmds */ +#line 2844 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter view if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36787 "preproc.c" /* yacc.c:1652 */ +#line 37452 "preproc.c" break; - case 294: -#line 2848 "preproc.y" /* yacc.c:1652 */ - { + case 294: /* AlterTableStmt: ALTER MATERIALIZED VIEW qualified_name alter_table_cmds */ +#line 2848 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter materialized view"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36795 "preproc.c" /* yacc.c:1652 */ +#line 37460 "preproc.c" break; - case 295: -#line 2852 "preproc.y" /* yacc.c:1652 */ - { + case 295: /* AlterTableStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name alter_table_cmds */ +#line 2852 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter materialized view if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36803 "preproc.c" /* yacc.c:1652 */ +#line 37468 "preproc.c" break; - case 296: -#line 2856 "preproc.y" /* yacc.c:1652 */ - { + case 296: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */ +#line 2856 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter materialized view all in tablespace"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36811 "preproc.c" /* yacc.c:1652 */ +#line 37476 "preproc.c" break; - case 297: -#line 2860 "preproc.y" /* yacc.c:1652 */ - { + case 297: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */ +#line 2860 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter materialized view all in tablespace"),(yyvsp[-7].str),mm_strdup("owned by"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36819 "preproc.c" /* yacc.c:1652 */ +#line 37484 "preproc.c" break; - case 298: -#line 2868 "preproc.y" /* yacc.c:1652 */ - { + case 298: /* alter_table_cmds: alter_table_cmd */ +#line 2868 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 36827 "preproc.c" /* yacc.c:1652 */ +#line 37492 "preproc.c" break; - case 299: -#line 2872 "preproc.y" /* yacc.c:1652 */ - { + case 299: /* alter_table_cmds: alter_table_cmds ',' alter_table_cmd */ +#line 2872 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 36835 "preproc.c" /* yacc.c:1652 */ +#line 37500 "preproc.c" break; - case 300: -#line 2880 "preproc.y" /* yacc.c:1652 */ - { + case 300: /* partition_cmd: ATTACH PARTITION qualified_name PartitionBoundSpec */ +#line 2880 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("attach partition"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36843 "preproc.c" /* yacc.c:1652 */ +#line 37508 "preproc.c" break; - case 301: -#line 2884 "preproc.y" /* yacc.c:1652 */ - { + case 301: /* partition_cmd: DETACH PARTITION qualified_name */ +#line 2884 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("detach partition"),(yyvsp[0].str)); } -#line 36851 "preproc.c" /* yacc.c:1652 */ +#line 37516 "preproc.c" break; - case 302: -#line 2892 "preproc.y" /* yacc.c:1652 */ - { + case 302: /* index_partition_cmd: ATTACH PARTITION qualified_name */ +#line 2892 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("attach partition"),(yyvsp[0].str)); } -#line 36859 "preproc.c" /* yacc.c:1652 */ +#line 37524 "preproc.c" break; - case 303: -#line 2900 "preproc.y" /* yacc.c:1652 */ - { + case 303: /* alter_table_cmd: ADD_P columnDef */ +#line 2900 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("add"),(yyvsp[0].str)); } -#line 36867 "preproc.c" /* yacc.c:1652 */ +#line 37532 "preproc.c" break; - case 304: -#line 2904 "preproc.y" /* yacc.c:1652 */ - { + case 304: /* alter_table_cmd: ADD_P IF_P NOT EXISTS columnDef */ +#line 2904 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("add if not exists"),(yyvsp[0].str)); } -#line 36875 "preproc.c" /* yacc.c:1652 */ +#line 37540 "preproc.c" break; - case 305: -#line 2908 "preproc.y" /* yacc.c:1652 */ - { + case 305: /* alter_table_cmd: ADD_P COLUMN columnDef */ +#line 2908 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("add column"),(yyvsp[0].str)); } -#line 36883 "preproc.c" /* yacc.c:1652 */ +#line 37548 "preproc.c" break; - case 306: -#line 2912 "preproc.y" /* yacc.c:1652 */ - { + case 306: /* alter_table_cmd: ADD_P COLUMN IF_P NOT EXISTS columnDef */ +#line 2912 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("add column if not exists"),(yyvsp[0].str)); } -#line 36891 "preproc.c" /* yacc.c:1652 */ +#line 37556 "preproc.c" break; - case 307: -#line 2916 "preproc.y" /* yacc.c:1652 */ - { + case 307: /* alter_table_cmd: ALTER opt_column ColId alter_column_default */ +#line 2916 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36899 "preproc.c" /* yacc.c:1652 */ +#line 37564 "preproc.c" break; - case 308: -#line 2920 "preproc.y" /* yacc.c:1652 */ - { + case 308: /* alter_table_cmd: ALTER opt_column ColId DROP NOT NULL_P */ +#line 2920 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("drop not null")); } -#line 36907 "preproc.c" /* yacc.c:1652 */ +#line 37572 "preproc.c" break; - case 309: -#line 2924 "preproc.y" /* yacc.c:1652 */ - { + case 309: /* alter_table_cmd: ALTER opt_column ColId SET NOT NULL_P */ +#line 2924 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("set not null")); } -#line 36915 "preproc.c" /* yacc.c:1652 */ +#line 37580 "preproc.c" break; - case 310: -#line 2928 "preproc.y" /* yacc.c:1652 */ - { + case 310: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION */ +#line 2928 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("drop expression")); } -#line 36923 "preproc.c" /* yacc.c:1652 */ +#line 37588 "preproc.c" break; - case 311: -#line 2932 "preproc.y" /* yacc.c:1652 */ - { + case 311: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION IF_P EXISTS */ +#line 2932 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("drop expression if exists")); } -#line 36931 "preproc.c" /* yacc.c:1652 */ +#line 37596 "preproc.c" break; - case 312: -#line 2936 "preproc.y" /* yacc.c:1652 */ - { + case 312: /* alter_table_cmd: ALTER opt_column ColId SET STATISTICS SignedIconst */ +#line 2936 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("set statistics"),(yyvsp[0].str)); } -#line 36939 "preproc.c" /* yacc.c:1652 */ +#line 37604 "preproc.c" break; - case 313: -#line 2940 "preproc.y" /* yacc.c:1652 */ - { + case 313: /* alter_table_cmd: ALTER opt_column Iconst SET STATISTICS SignedIconst */ +#line 2940 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("set statistics"),(yyvsp[0].str)); } -#line 36947 "preproc.c" /* yacc.c:1652 */ +#line 37612 "preproc.c" break; - case 314: -#line 2944 "preproc.y" /* yacc.c:1652 */ - { + case 314: /* alter_table_cmd: ALTER opt_column ColId SET reloptions */ +#line 2944 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 36955 "preproc.c" /* yacc.c:1652 */ +#line 37620 "preproc.c" break; - case 315: -#line 2948 "preproc.y" /* yacc.c:1652 */ - { + case 315: /* alter_table_cmd: ALTER opt_column ColId RESET reloptions */ +#line 2948 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("reset"),(yyvsp[0].str)); } -#line 36963 "preproc.c" /* yacc.c:1652 */ +#line 37628 "preproc.c" break; - case 316: -#line 2952 "preproc.y" /* yacc.c:1652 */ - { + case 316: /* alter_table_cmd: ALTER opt_column ColId SET STORAGE ColId */ +#line 2952 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("set storage"),(yyvsp[0].str)); } -#line 36971 "preproc.c" /* yacc.c:1652 */ +#line 37636 "preproc.c" break; - case 317: -#line 2956 "preproc.y" /* yacc.c:1652 */ - { + case 317: /* alter_table_cmd: ALTER opt_column ColId ADD_P GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */ +#line 2956 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter"),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("add generated"),(yyvsp[-3].str),mm_strdup("as identity"),(yyvsp[0].str)); } -#line 36979 "preproc.c" /* yacc.c:1652 */ +#line 37644 "preproc.c" break; - case 318: -#line 2960 "preproc.y" /* yacc.c:1652 */ - { + case 318: /* alter_table_cmd: ALTER opt_column ColId alter_identity_column_option_list */ +#line 2960 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 36987 "preproc.c" /* yacc.c:1652 */ +#line 37652 "preproc.c" break; - case 319: -#line 2964 "preproc.y" /* yacc.c:1652 */ - { + case 319: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P */ +#line 2964 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("drop identity")); } -#line 36995 "preproc.c" /* yacc.c:1652 */ +#line 37660 "preproc.c" break; - case 320: -#line 2968 "preproc.y" /* yacc.c:1652 */ - { + case 320: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P IF_P EXISTS */ +#line 2968 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("drop identity if exists")); } -#line 37003 "preproc.c" /* yacc.c:1652 */ +#line 37668 "preproc.c" break; - case 321: -#line 2972 "preproc.y" /* yacc.c:1652 */ - { + case 321: /* alter_table_cmd: DROP opt_column IF_P EXISTS ColId opt_drop_behavior */ +#line 2972 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("drop"),(yyvsp[-4].str),mm_strdup("if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37011 "preproc.c" /* yacc.c:1652 */ +#line 37676 "preproc.c" break; - case 322: -#line 2976 "preproc.y" /* yacc.c:1652 */ - { + case 322: /* alter_table_cmd: DROP opt_column ColId opt_drop_behavior */ +#line 2976 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("drop"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37019 "preproc.c" /* yacc.c:1652 */ +#line 37684 "preproc.c" break; - case 323: -#line 2980 "preproc.y" /* yacc.c:1652 */ - { + case 323: /* alter_table_cmd: ALTER opt_column ColId opt_set_data TYPE_P Typename opt_collate_clause alter_using */ +#line 2980 "preproc.y" + { (yyval.str) = cat_str(8,mm_strdup("alter"),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("type"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37027 "preproc.c" /* yacc.c:1652 */ +#line 37692 "preproc.c" break; - case 324: -#line 2984 "preproc.y" /* yacc.c:1652 */ - { + case 324: /* alter_table_cmd: ALTER opt_column ColId alter_generic_options */ +#line 2984 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37035 "preproc.c" /* yacc.c:1652 */ +#line 37700 "preproc.c" break; - case 325: -#line 2988 "preproc.y" /* yacc.c:1652 */ - { + case 325: /* alter_table_cmd: ADD_P TableConstraint */ +#line 2988 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("add"),(yyvsp[0].str)); } -#line 37043 "preproc.c" /* yacc.c:1652 */ +#line 37708 "preproc.c" break; - case 326: -#line 2992 "preproc.y" /* yacc.c:1652 */ - { + case 326: /* alter_table_cmd: ALTER CONSTRAINT name ConstraintAttributeSpec */ +#line 2992 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37051 "preproc.c" /* yacc.c:1652 */ +#line 37716 "preproc.c" break; - case 327: -#line 2996 "preproc.y" /* yacc.c:1652 */ - { + case 327: /* alter_table_cmd: VALIDATE CONSTRAINT name */ +#line 2996 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("validate constraint"),(yyvsp[0].str)); } -#line 37059 "preproc.c" /* yacc.c:1652 */ +#line 37724 "preproc.c" break; - case 328: -#line 3000 "preproc.y" /* yacc.c:1652 */ - { + case 328: /* alter_table_cmd: DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */ +#line 3000 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop constraint if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37067 "preproc.c" /* yacc.c:1652 */ +#line 37732 "preproc.c" break; - case 329: -#line 3004 "preproc.y" /* yacc.c:1652 */ - { + case 329: /* alter_table_cmd: DROP CONSTRAINT name opt_drop_behavior */ +#line 3004 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37075 "preproc.c" /* yacc.c:1652 */ +#line 37740 "preproc.c" break; - case 330: -#line 3008 "preproc.y" /* yacc.c:1652 */ - { + case 330: /* alter_table_cmd: SET WITHOUT OIDS */ +#line 3008 "preproc.y" + { (yyval.str) = mm_strdup("set without oids"); } -#line 37083 "preproc.c" /* yacc.c:1652 */ +#line 37748 "preproc.c" break; - case 331: -#line 3012 "preproc.y" /* yacc.c:1652 */ - { + case 331: /* alter_table_cmd: CLUSTER ON name */ +#line 3012 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("cluster on"),(yyvsp[0].str)); } -#line 37091 "preproc.c" /* yacc.c:1652 */ +#line 37756 "preproc.c" break; - case 332: -#line 3016 "preproc.y" /* yacc.c:1652 */ - { + case 332: /* alter_table_cmd: SET WITHOUT CLUSTER */ +#line 3016 "preproc.y" + { (yyval.str) = mm_strdup("set without cluster"); } -#line 37099 "preproc.c" /* yacc.c:1652 */ +#line 37764 "preproc.c" break; - case 333: -#line 3020 "preproc.y" /* yacc.c:1652 */ - { + case 333: /* alter_table_cmd: SET LOGGED */ +#line 3020 "preproc.y" + { (yyval.str) = mm_strdup("set logged"); } -#line 37107 "preproc.c" /* yacc.c:1652 */ +#line 37772 "preproc.c" break; - case 334: -#line 3024 "preproc.y" /* yacc.c:1652 */ - { + case 334: /* alter_table_cmd: SET UNLOGGED */ +#line 3024 "preproc.y" + { (yyval.str) = mm_strdup("set unlogged"); } -#line 37115 "preproc.c" /* yacc.c:1652 */ +#line 37780 "preproc.c" break; - case 335: -#line 3028 "preproc.y" /* yacc.c:1652 */ - { + case 335: /* alter_table_cmd: ENABLE_P TRIGGER name */ +#line 3028 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("enable trigger"),(yyvsp[0].str)); } -#line 37123 "preproc.c" /* yacc.c:1652 */ +#line 37788 "preproc.c" break; - case 336: -#line 3032 "preproc.y" /* yacc.c:1652 */ - { + case 336: /* alter_table_cmd: ENABLE_P ALWAYS TRIGGER name */ +#line 3032 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("enable always trigger"),(yyvsp[0].str)); } -#line 37131 "preproc.c" /* yacc.c:1652 */ +#line 37796 "preproc.c" break; - case 337: -#line 3036 "preproc.y" /* yacc.c:1652 */ - { + case 337: /* alter_table_cmd: ENABLE_P REPLICA TRIGGER name */ +#line 3036 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("enable replica trigger"),(yyvsp[0].str)); } -#line 37139 "preproc.c" /* yacc.c:1652 */ +#line 37804 "preproc.c" break; - case 338: -#line 3040 "preproc.y" /* yacc.c:1652 */ - { + case 338: /* alter_table_cmd: ENABLE_P TRIGGER ALL */ +#line 3040 "preproc.y" + { (yyval.str) = mm_strdup("enable trigger all"); } -#line 37147 "preproc.c" /* yacc.c:1652 */ +#line 37812 "preproc.c" break; - case 339: -#line 3044 "preproc.y" /* yacc.c:1652 */ - { + case 339: /* alter_table_cmd: ENABLE_P TRIGGER USER */ +#line 3044 "preproc.y" + { (yyval.str) = mm_strdup("enable trigger user"); } -#line 37155 "preproc.c" /* yacc.c:1652 */ +#line 37820 "preproc.c" break; - case 340: -#line 3048 "preproc.y" /* yacc.c:1652 */ - { + case 340: /* alter_table_cmd: DISABLE_P TRIGGER name */ +#line 3048 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("disable trigger"),(yyvsp[0].str)); } -#line 37163 "preproc.c" /* yacc.c:1652 */ +#line 37828 "preproc.c" break; - case 341: -#line 3052 "preproc.y" /* yacc.c:1652 */ - { + case 341: /* alter_table_cmd: DISABLE_P TRIGGER ALL */ +#line 3052 "preproc.y" + { (yyval.str) = mm_strdup("disable trigger all"); } -#line 37171 "preproc.c" /* yacc.c:1652 */ +#line 37836 "preproc.c" break; - case 342: -#line 3056 "preproc.y" /* yacc.c:1652 */ - { + case 342: /* alter_table_cmd: DISABLE_P TRIGGER USER */ +#line 3056 "preproc.y" + { (yyval.str) = mm_strdup("disable trigger user"); } -#line 37179 "preproc.c" /* yacc.c:1652 */ +#line 37844 "preproc.c" break; - case 343: -#line 3060 "preproc.y" /* yacc.c:1652 */ - { + case 343: /* alter_table_cmd: ENABLE_P RULE name */ +#line 3060 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("enable rule"),(yyvsp[0].str)); } -#line 37187 "preproc.c" /* yacc.c:1652 */ +#line 37852 "preproc.c" break; - case 344: -#line 3064 "preproc.y" /* yacc.c:1652 */ - { + case 344: /* alter_table_cmd: ENABLE_P ALWAYS RULE name */ +#line 3064 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("enable always rule"),(yyvsp[0].str)); } -#line 37195 "preproc.c" /* yacc.c:1652 */ +#line 37860 "preproc.c" break; - case 345: -#line 3068 "preproc.y" /* yacc.c:1652 */ - { + case 345: /* alter_table_cmd: ENABLE_P REPLICA RULE name */ +#line 3068 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("enable replica rule"),(yyvsp[0].str)); } -#line 37203 "preproc.c" /* yacc.c:1652 */ +#line 37868 "preproc.c" break; - case 346: -#line 3072 "preproc.y" /* yacc.c:1652 */ - { + case 346: /* alter_table_cmd: DISABLE_P RULE name */ +#line 3072 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("disable rule"),(yyvsp[0].str)); } -#line 37211 "preproc.c" /* yacc.c:1652 */ +#line 37876 "preproc.c" break; - case 347: -#line 3076 "preproc.y" /* yacc.c:1652 */ - { + case 347: /* alter_table_cmd: INHERIT qualified_name */ +#line 3076 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("inherit"),(yyvsp[0].str)); } -#line 37219 "preproc.c" /* yacc.c:1652 */ +#line 37884 "preproc.c" break; - case 348: -#line 3080 "preproc.y" /* yacc.c:1652 */ - { + case 348: /* alter_table_cmd: NO INHERIT qualified_name */ +#line 3080 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("no inherit"),(yyvsp[0].str)); } -#line 37227 "preproc.c" /* yacc.c:1652 */ +#line 37892 "preproc.c" break; - case 349: -#line 3084 "preproc.y" /* yacc.c:1652 */ - { + case 349: /* alter_table_cmd: OF any_name */ +#line 3084 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("of"),(yyvsp[0].str)); } -#line 37235 "preproc.c" /* yacc.c:1652 */ +#line 37900 "preproc.c" break; - case 350: -#line 3088 "preproc.y" /* yacc.c:1652 */ - { + case 350: /* alter_table_cmd: NOT OF */ +#line 3088 "preproc.y" + { (yyval.str) = mm_strdup("not of"); } -#line 37243 "preproc.c" /* yacc.c:1652 */ +#line 37908 "preproc.c" break; - case 351: -#line 3092 "preproc.y" /* yacc.c:1652 */ - { + case 351: /* alter_table_cmd: OWNER TO RoleSpec */ +#line 3092 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("owner to"),(yyvsp[0].str)); } -#line 37251 "preproc.c" /* yacc.c:1652 */ +#line 37916 "preproc.c" break; - case 352: -#line 3096 "preproc.y" /* yacc.c:1652 */ - { + case 352: /* alter_table_cmd: SET TABLESPACE name */ +#line 3096 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set tablespace"),(yyvsp[0].str)); } -#line 37259 "preproc.c" /* yacc.c:1652 */ +#line 37924 "preproc.c" break; - case 353: -#line 3100 "preproc.y" /* yacc.c:1652 */ - { + case 353: /* alter_table_cmd: SET reloptions */ +#line 3100 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 37267 "preproc.c" /* yacc.c:1652 */ +#line 37932 "preproc.c" break; - case 354: -#line 3104 "preproc.y" /* yacc.c:1652 */ - { + case 354: /* alter_table_cmd: RESET reloptions */ +#line 3104 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("reset"),(yyvsp[0].str)); } -#line 37275 "preproc.c" /* yacc.c:1652 */ +#line 37940 "preproc.c" break; - case 355: -#line 3108 "preproc.y" /* yacc.c:1652 */ - { + case 355: /* alter_table_cmd: REPLICA IDENTITY_P replica_identity */ +#line 3108 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("replica identity"),(yyvsp[0].str)); } -#line 37283 "preproc.c" /* yacc.c:1652 */ +#line 37948 "preproc.c" break; - case 356: -#line 3112 "preproc.y" /* yacc.c:1652 */ - { + case 356: /* alter_table_cmd: ENABLE_P ROW LEVEL SECURITY */ +#line 3112 "preproc.y" + { (yyval.str) = mm_strdup("enable row level security"); } -#line 37291 "preproc.c" /* yacc.c:1652 */ +#line 37956 "preproc.c" break; - case 357: -#line 3116 "preproc.y" /* yacc.c:1652 */ - { + case 357: /* alter_table_cmd: DISABLE_P ROW LEVEL SECURITY */ +#line 3116 "preproc.y" + { (yyval.str) = mm_strdup("disable row level security"); } -#line 37299 "preproc.c" /* yacc.c:1652 */ +#line 37964 "preproc.c" break; - case 358: -#line 3120 "preproc.y" /* yacc.c:1652 */ - { + case 358: /* alter_table_cmd: FORCE ROW LEVEL SECURITY */ +#line 3120 "preproc.y" + { (yyval.str) = mm_strdup("force row level security"); } -#line 37307 "preproc.c" /* yacc.c:1652 */ +#line 37972 "preproc.c" break; - case 359: -#line 3124 "preproc.y" /* yacc.c:1652 */ - { + case 359: /* alter_table_cmd: NO FORCE ROW LEVEL SECURITY */ +#line 3124 "preproc.y" + { (yyval.str) = mm_strdup("no force row level security"); } -#line 37315 "preproc.c" /* yacc.c:1652 */ +#line 37980 "preproc.c" break; - case 360: -#line 3128 "preproc.y" /* yacc.c:1652 */ - { + case 360: /* alter_table_cmd: alter_generic_options */ +#line 3128 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37323 "preproc.c" /* yacc.c:1652 */ +#line 37988 "preproc.c" break; - case 361: -#line 3136 "preproc.y" /* yacc.c:1652 */ - { + case 361: /* alter_column_default: SET DEFAULT a_expr */ +#line 3136 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set default"),(yyvsp[0].str)); } -#line 37331 "preproc.c" /* yacc.c:1652 */ +#line 37996 "preproc.c" break; - case 362: -#line 3140 "preproc.y" /* yacc.c:1652 */ - { + case 362: /* alter_column_default: DROP DEFAULT */ +#line 3140 "preproc.y" + { (yyval.str) = mm_strdup("drop default"); } -#line 37339 "preproc.c" /* yacc.c:1652 */ +#line 38004 "preproc.c" break; - case 363: -#line 3148 "preproc.y" /* yacc.c:1652 */ - { + case 363: /* opt_drop_behavior: CASCADE */ +#line 3148 "preproc.y" + { (yyval.str) = mm_strdup("cascade"); } -#line 37347 "preproc.c" /* yacc.c:1652 */ +#line 38012 "preproc.c" break; - case 364: -#line 3152 "preproc.y" /* yacc.c:1652 */ - { + case 364: /* opt_drop_behavior: RESTRICT */ +#line 3152 "preproc.y" + { (yyval.str) = mm_strdup("restrict"); } -#line 37355 "preproc.c" /* yacc.c:1652 */ +#line 38020 "preproc.c" break; - case 365: -#line 3156 "preproc.y" /* yacc.c:1652 */ - { + case 365: /* opt_drop_behavior: %empty */ +#line 3156 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37362 "preproc.c" /* yacc.c:1652 */ +#line 38027 "preproc.c" break; - case 366: -#line 3163 "preproc.y" /* yacc.c:1652 */ - { + case 366: /* opt_collate_clause: COLLATE any_name */ +#line 3163 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("collate"),(yyvsp[0].str)); } -#line 37370 "preproc.c" /* yacc.c:1652 */ +#line 38035 "preproc.c" break; - case 367: -#line 3167 "preproc.y" /* yacc.c:1652 */ - { + case 367: /* opt_collate_clause: %empty */ +#line 3167 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37377 "preproc.c" /* yacc.c:1652 */ +#line 38042 "preproc.c" break; - case 368: -#line 3174 "preproc.y" /* yacc.c:1652 */ - { + case 368: /* alter_using: USING a_expr */ +#line 3174 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 37385 "preproc.c" /* yacc.c:1652 */ +#line 38050 "preproc.c" break; - case 369: -#line 3178 "preproc.y" /* yacc.c:1652 */ - { + case 369: /* alter_using: %empty */ +#line 3178 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37392 "preproc.c" /* yacc.c:1652 */ +#line 38057 "preproc.c" break; - case 370: -#line 3185 "preproc.y" /* yacc.c:1652 */ - { + case 370: /* replica_identity: NOTHING */ +#line 3185 "preproc.y" + { (yyval.str) = mm_strdup("nothing"); } -#line 37400 "preproc.c" /* yacc.c:1652 */ +#line 38065 "preproc.c" break; - case 371: -#line 3189 "preproc.y" /* yacc.c:1652 */ - { + case 371: /* replica_identity: FULL */ +#line 3189 "preproc.y" + { (yyval.str) = mm_strdup("full"); } -#line 37408 "preproc.c" /* yacc.c:1652 */ +#line 38073 "preproc.c" break; - case 372: -#line 3193 "preproc.y" /* yacc.c:1652 */ - { + case 372: /* replica_identity: DEFAULT */ +#line 3193 "preproc.y" + { (yyval.str) = mm_strdup("default"); } -#line 37416 "preproc.c" /* yacc.c:1652 */ +#line 38081 "preproc.c" break; - case 373: -#line 3197 "preproc.y" /* yacc.c:1652 */ - { + case 373: /* replica_identity: USING INDEX name */ +#line 3197 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("using index"),(yyvsp[0].str)); } -#line 37424 "preproc.c" /* yacc.c:1652 */ +#line 38089 "preproc.c" break; - case 374: -#line 3205 "preproc.y" /* yacc.c:1652 */ - { + case 374: /* reloptions: '(' reloption_list ')' */ +#line 3205 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 37432 "preproc.c" /* yacc.c:1652 */ +#line 38097 "preproc.c" break; - case 375: -#line 3213 "preproc.y" /* yacc.c:1652 */ - { + case 375: /* opt_reloptions: WITH reloptions */ +#line 3213 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 37440 "preproc.c" /* yacc.c:1652 */ +#line 38105 "preproc.c" break; - case 376: -#line 3217 "preproc.y" /* yacc.c:1652 */ - { + case 376: /* opt_reloptions: %empty */ +#line 3217 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37447 "preproc.c" /* yacc.c:1652 */ +#line 38112 "preproc.c" break; - case 377: -#line 3224 "preproc.y" /* yacc.c:1652 */ - { + case 377: /* reloption_list: reloption_elem */ +#line 3224 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37455 "preproc.c" /* yacc.c:1652 */ +#line 38120 "preproc.c" break; - case 378: -#line 3228 "preproc.y" /* yacc.c:1652 */ - { + case 378: /* reloption_list: reloption_list ',' reloption_elem */ +#line 3228 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 37463 "preproc.c" /* yacc.c:1652 */ +#line 38128 "preproc.c" break; - case 379: -#line 3236 "preproc.y" /* yacc.c:1652 */ - { + case 379: /* reloption_elem: ColLabel '=' def_arg */ +#line 3236 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 37471 "preproc.c" /* yacc.c:1652 */ +#line 38136 "preproc.c" break; - case 380: -#line 3240 "preproc.y" /* yacc.c:1652 */ - { + case 380: /* reloption_elem: ColLabel */ +#line 3240 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37479 "preproc.c" /* yacc.c:1652 */ +#line 38144 "preproc.c" break; - case 381: -#line 3244 "preproc.y" /* yacc.c:1652 */ - { + case 381: /* reloption_elem: ColLabel '.' ColLabel '=' def_arg */ +#line 3244 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("."),(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 37487 "preproc.c" /* yacc.c:1652 */ +#line 38152 "preproc.c" break; - case 382: -#line 3248 "preproc.y" /* yacc.c:1652 */ - { + case 382: /* reloption_elem: ColLabel '.' ColLabel */ +#line 3248 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("."),(yyvsp[0].str)); } -#line 37495 "preproc.c" /* yacc.c:1652 */ +#line 38160 "preproc.c" break; - case 383: -#line 3256 "preproc.y" /* yacc.c:1652 */ - { + case 383: /* alter_identity_column_option_list: alter_identity_column_option */ +#line 3256 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37503 "preproc.c" /* yacc.c:1652 */ +#line 38168 "preproc.c" break; - case 384: -#line 3260 "preproc.y" /* yacc.c:1652 */ - { + case 384: /* alter_identity_column_option_list: alter_identity_column_option_list alter_identity_column_option */ +#line 3260 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37511 "preproc.c" /* yacc.c:1652 */ +#line 38176 "preproc.c" break; - case 385: -#line 3268 "preproc.y" /* yacc.c:1652 */ - { + case 385: /* alter_identity_column_option: RESTART */ +#line 3268 "preproc.y" + { (yyval.str) = mm_strdup("restart"); } -#line 37519 "preproc.c" /* yacc.c:1652 */ +#line 38184 "preproc.c" break; - case 386: -#line 3272 "preproc.y" /* yacc.c:1652 */ - { + case 386: /* alter_identity_column_option: RESTART opt_with NumericOnly */ +#line 3272 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("restart"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37527 "preproc.c" /* yacc.c:1652 */ +#line 38192 "preproc.c" break; - case 387: -#line 3276 "preproc.y" /* yacc.c:1652 */ - { + case 387: /* alter_identity_column_option: SET SeqOptElem */ +#line 3276 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 37535 "preproc.c" /* yacc.c:1652 */ +#line 38200 "preproc.c" break; - case 388: -#line 3280 "preproc.y" /* yacc.c:1652 */ - { + case 388: /* alter_identity_column_option: SET GENERATED generated_when */ +#line 3280 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set generated"),(yyvsp[0].str)); } -#line 37543 "preproc.c" /* yacc.c:1652 */ +#line 38208 "preproc.c" break; - case 389: -#line 3288 "preproc.y" /* yacc.c:1652 */ - { + case 389: /* PartitionBoundSpec: FOR VALUES WITH '(' hash_partbound ')' */ +#line 3288 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("for values with ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 37551 "preproc.c" /* yacc.c:1652 */ +#line 38216 "preproc.c" break; - case 390: -#line 3292 "preproc.y" /* yacc.c:1652 */ - { + case 390: /* PartitionBoundSpec: FOR VALUES IN_P '(' expr_list ')' */ +#line 3292 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("for values in ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 37559 "preproc.c" /* yacc.c:1652 */ +#line 38224 "preproc.c" break; - case 391: -#line 3296 "preproc.y" /* yacc.c:1652 */ - { + case 391: /* PartitionBoundSpec: FOR VALUES FROM '(' expr_list ')' TO '(' expr_list ')' */ +#line 3296 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("for values from ("),(yyvsp[-5].str),mm_strdup(") to ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 37567 "preproc.c" /* yacc.c:1652 */ +#line 38232 "preproc.c" break; - case 392: -#line 3300 "preproc.y" /* yacc.c:1652 */ - { + case 392: /* PartitionBoundSpec: DEFAULT */ +#line 3300 "preproc.y" + { (yyval.str) = mm_strdup("default"); } -#line 37575 "preproc.c" /* yacc.c:1652 */ +#line 38240 "preproc.c" break; - case 393: -#line 3308 "preproc.y" /* yacc.c:1652 */ - { + case 393: /* hash_partbound_elem: NonReservedWord Iconst */ +#line 3308 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37583 "preproc.c" /* yacc.c:1652 */ +#line 38248 "preproc.c" break; - case 394: -#line 3316 "preproc.y" /* yacc.c:1652 */ - { + case 394: /* hash_partbound: hash_partbound_elem */ +#line 3316 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37591 "preproc.c" /* yacc.c:1652 */ +#line 38256 "preproc.c" break; - case 395: -#line 3320 "preproc.y" /* yacc.c:1652 */ - { + case 395: /* hash_partbound: hash_partbound ',' hash_partbound_elem */ +#line 3320 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 37599 "preproc.c" /* yacc.c:1652 */ +#line 38264 "preproc.c" break; - case 396: -#line 3328 "preproc.y" /* yacc.c:1652 */ - { + case 396: /* AlterCompositeTypeStmt: ALTER TYPE_P any_name alter_type_cmds */ +#line 3328 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter type"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37607 "preproc.c" /* yacc.c:1652 */ +#line 38272 "preproc.c" break; - case 397: -#line 3336 "preproc.y" /* yacc.c:1652 */ - { + case 397: /* alter_type_cmds: alter_type_cmd */ +#line 3336 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37615 "preproc.c" /* yacc.c:1652 */ +#line 38280 "preproc.c" break; - case 398: -#line 3340 "preproc.y" /* yacc.c:1652 */ - { + case 398: /* alter_type_cmds: alter_type_cmds ',' alter_type_cmd */ +#line 3340 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 37623 "preproc.c" /* yacc.c:1652 */ +#line 38288 "preproc.c" break; - case 399: -#line 3348 "preproc.y" /* yacc.c:1652 */ - { + case 399: /* alter_type_cmd: ADD_P ATTRIBUTE TableFuncElement opt_drop_behavior */ +#line 3348 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("add attribute"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37631 "preproc.c" /* yacc.c:1652 */ +#line 38296 "preproc.c" break; - case 400: -#line 3352 "preproc.y" /* yacc.c:1652 */ - { + case 400: /* alter_type_cmd: DROP ATTRIBUTE IF_P EXISTS ColId opt_drop_behavior */ +#line 3352 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop attribute if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37639 "preproc.c" /* yacc.c:1652 */ +#line 38304 "preproc.c" break; - case 401: -#line 3356 "preproc.y" /* yacc.c:1652 */ - { + case 401: /* alter_type_cmd: DROP ATTRIBUTE ColId opt_drop_behavior */ +#line 3356 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop attribute"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37647 "preproc.c" /* yacc.c:1652 */ +#line 38312 "preproc.c" break; - case 402: -#line 3360 "preproc.y" /* yacc.c:1652 */ - { + case 402: /* alter_type_cmd: ALTER ATTRIBUTE ColId opt_set_data TYPE_P Typename opt_collate_clause opt_drop_behavior */ +#line 3360 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter attribute"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("type"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37655 "preproc.c" /* yacc.c:1652 */ +#line 38320 "preproc.c" break; - case 403: -#line 3368 "preproc.y" /* yacc.c:1652 */ - { + case 403: /* ClosePortalStmt: CLOSE cursor_name */ +#line 3368 "preproc.y" + { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); (yyval.str) = cat2_str(mm_strdup("close"), cursor_marker); } -#line 37664 "preproc.c" /* yacc.c:1652 */ +#line 38329 "preproc.c" break; - case 404: -#line 3373 "preproc.y" /* yacc.c:1652 */ - { + case 404: /* ClosePortalStmt: CLOSE ALL */ +#line 3373 "preproc.y" + { (yyval.str) = mm_strdup("close all"); } -#line 37672 "preproc.c" /* yacc.c:1652 */ +#line 38337 "preproc.c" break; - case 405: -#line 3381 "preproc.y" /* yacc.c:1652 */ - { + case 405: /* CopyStmt: COPY opt_binary qualified_name opt_column_list copy_from opt_program copy_file_name copy_delimiter opt_with copy_options where_clause */ +#line 3381 "preproc.y" + { if (strcmp((yyvsp[-5].str), "from") == 0 && (strcmp((yyvsp[-4].str), "stdin") == 0 || strcmp((yyvsp[-4].str), "stdout") == 0)) mmerror(PARSE_ERROR, ET_WARNING, "COPY FROM STDIN is not implemented"); (yyval.str) = cat_str(11,mm_strdup("copy"),(yyvsp[-9].str),(yyvsp[-8].str),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37684 "preproc.c" /* yacc.c:1652 */ +#line 38349 "preproc.c" break; - case 406: -#line 3389 "preproc.y" /* yacc.c:1652 */ - { + case 406: /* CopyStmt: COPY '(' PreparableStmt ')' TO opt_program copy_file_name opt_with copy_options */ +#line 3389 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("copy ("),(yyvsp[-6].str),mm_strdup(") to"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37692 "preproc.c" /* yacc.c:1652 */ +#line 38357 "preproc.c" break; - case 407: -#line 3397 "preproc.y" /* yacc.c:1652 */ - { + case 407: /* copy_from: FROM */ +#line 3397 "preproc.y" + { (yyval.str) = mm_strdup("from"); } -#line 37700 "preproc.c" /* yacc.c:1652 */ +#line 38365 "preproc.c" break; - case 408: -#line 3401 "preproc.y" /* yacc.c:1652 */ - { + case 408: /* copy_from: TO */ +#line 3401 "preproc.y" + { (yyval.str) = mm_strdup("to"); } -#line 37708 "preproc.c" /* yacc.c:1652 */ +#line 38373 "preproc.c" break; - case 409: -#line 3409 "preproc.y" /* yacc.c:1652 */ - { + case 409: /* opt_program: PROGRAM */ +#line 3409 "preproc.y" + { (yyval.str) = mm_strdup("program"); } -#line 37716 "preproc.c" /* yacc.c:1652 */ +#line 38381 "preproc.c" break; - case 410: -#line 3413 "preproc.y" /* yacc.c:1652 */ - { + case 410: /* opt_program: %empty */ +#line 3413 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37723 "preproc.c" /* yacc.c:1652 */ +#line 38388 "preproc.c" break; - case 411: -#line 3420 "preproc.y" /* yacc.c:1652 */ - { + case 411: /* copy_file_name: ecpg_sconst */ +#line 3420 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37731 "preproc.c" /* yacc.c:1652 */ +#line 38396 "preproc.c" break; - case 412: -#line 3424 "preproc.y" /* yacc.c:1652 */ - { + case 412: /* copy_file_name: STDIN */ +#line 3424 "preproc.y" + { (yyval.str) = mm_strdup("stdin"); } -#line 37739 "preproc.c" /* yacc.c:1652 */ +#line 38404 "preproc.c" break; - case 413: -#line 3428 "preproc.y" /* yacc.c:1652 */ - { + case 413: /* copy_file_name: STDOUT */ +#line 3428 "preproc.y" + { (yyval.str) = mm_strdup("stdout"); } -#line 37747 "preproc.c" /* yacc.c:1652 */ +#line 38412 "preproc.c" break; - case 414: -#line 3436 "preproc.y" /* yacc.c:1652 */ - { + case 414: /* copy_options: copy_opt_list */ +#line 3436 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37755 "preproc.c" /* yacc.c:1652 */ +#line 38420 "preproc.c" break; - case 415: -#line 3440 "preproc.y" /* yacc.c:1652 */ - { + case 415: /* copy_options: '(' copy_generic_opt_list ')' */ +#line 3440 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 37763 "preproc.c" /* yacc.c:1652 */ +#line 38428 "preproc.c" break; - case 416: -#line 3448 "preproc.y" /* yacc.c:1652 */ - { + case 416: /* copy_opt_list: copy_opt_list copy_opt_item */ +#line 3448 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37771 "preproc.c" /* yacc.c:1652 */ +#line 38436 "preproc.c" break; - case 417: -#line 3452 "preproc.y" /* yacc.c:1652 */ - { + case 417: /* copy_opt_list: %empty */ +#line 3452 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37778 "preproc.c" /* yacc.c:1652 */ +#line 38443 "preproc.c" break; - case 418: -#line 3459 "preproc.y" /* yacc.c:1652 */ - { + case 418: /* copy_opt_item: BINARY */ +#line 3459 "preproc.y" + { (yyval.str) = mm_strdup("binary"); } -#line 37786 "preproc.c" /* yacc.c:1652 */ +#line 38451 "preproc.c" break; - case 419: -#line 3463 "preproc.y" /* yacc.c:1652 */ - { + case 419: /* copy_opt_item: FREEZE */ +#line 3463 "preproc.y" + { (yyval.str) = mm_strdup("freeze"); } -#line 37794 "preproc.c" /* yacc.c:1652 */ +#line 38459 "preproc.c" break; - case 420: -#line 3467 "preproc.y" /* yacc.c:1652 */ - { + case 420: /* copy_opt_item: DELIMITER opt_as ecpg_sconst */ +#line 3467 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("delimiter"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37802 "preproc.c" /* yacc.c:1652 */ +#line 38467 "preproc.c" break; - case 421: -#line 3471 "preproc.y" /* yacc.c:1652 */ - { + case 421: /* copy_opt_item: NULL_P opt_as ecpg_sconst */ +#line 3471 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("null"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37810 "preproc.c" /* yacc.c:1652 */ +#line 38475 "preproc.c" break; - case 422: -#line 3475 "preproc.y" /* yacc.c:1652 */ - { + case 422: /* copy_opt_item: CSV */ +#line 3475 "preproc.y" + { (yyval.str) = mm_strdup("csv"); } -#line 37818 "preproc.c" /* yacc.c:1652 */ +#line 38483 "preproc.c" break; - case 423: -#line 3479 "preproc.y" /* yacc.c:1652 */ - { + case 423: /* copy_opt_item: HEADER_P */ +#line 3479 "preproc.y" + { (yyval.str) = mm_strdup("header"); } -#line 37826 "preproc.c" /* yacc.c:1652 */ +#line 38491 "preproc.c" break; - case 424: -#line 3483 "preproc.y" /* yacc.c:1652 */ - { + case 424: /* copy_opt_item: QUOTE opt_as ecpg_sconst */ +#line 3483 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("quote"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37834 "preproc.c" /* yacc.c:1652 */ +#line 38499 "preproc.c" break; - case 425: -#line 3487 "preproc.y" /* yacc.c:1652 */ - { + case 425: /* copy_opt_item: ESCAPE opt_as ecpg_sconst */ +#line 3487 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("escape"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37842 "preproc.c" /* yacc.c:1652 */ +#line 38507 "preproc.c" break; - case 426: -#line 3491 "preproc.y" /* yacc.c:1652 */ - { + case 426: /* copy_opt_item: FORCE QUOTE columnList */ +#line 3491 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("force quote"),(yyvsp[0].str)); } -#line 37850 "preproc.c" /* yacc.c:1652 */ +#line 38515 "preproc.c" break; - case 427: -#line 3495 "preproc.y" /* yacc.c:1652 */ - { + case 427: /* copy_opt_item: FORCE QUOTE '*' */ +#line 3495 "preproc.y" + { (yyval.str) = mm_strdup("force quote *"); } -#line 37858 "preproc.c" /* yacc.c:1652 */ +#line 38523 "preproc.c" break; - case 428: -#line 3499 "preproc.y" /* yacc.c:1652 */ - { + case 428: /* copy_opt_item: FORCE NOT NULL_P columnList */ +#line 3499 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("force not null"),(yyvsp[0].str)); } -#line 37866 "preproc.c" /* yacc.c:1652 */ +#line 38531 "preproc.c" break; - case 429: -#line 3503 "preproc.y" /* yacc.c:1652 */ - { + case 429: /* copy_opt_item: FORCE NULL_P columnList */ +#line 3503 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("force null"),(yyvsp[0].str)); } -#line 37874 "preproc.c" /* yacc.c:1652 */ +#line 38539 "preproc.c" break; - case 430: -#line 3507 "preproc.y" /* yacc.c:1652 */ - { + case 430: /* copy_opt_item: ENCODING ecpg_sconst */ +#line 3507 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("encoding"),(yyvsp[0].str)); } -#line 37882 "preproc.c" /* yacc.c:1652 */ +#line 38547 "preproc.c" break; - case 431: -#line 3515 "preproc.y" /* yacc.c:1652 */ - { + case 431: /* opt_binary: BINARY */ +#line 3515 "preproc.y" + { (yyval.str) = mm_strdup("binary"); } -#line 37890 "preproc.c" /* yacc.c:1652 */ +#line 38555 "preproc.c" break; - case 432: -#line 3519 "preproc.y" /* yacc.c:1652 */ - { + case 432: /* opt_binary: %empty */ +#line 3519 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37897 "preproc.c" /* yacc.c:1652 */ +#line 38562 "preproc.c" break; - case 433: -#line 3526 "preproc.y" /* yacc.c:1652 */ - { + case 433: /* copy_delimiter: opt_using DELIMITERS ecpg_sconst */ +#line 3526 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("delimiters"),(yyvsp[0].str)); } -#line 37905 "preproc.c" /* yacc.c:1652 */ +#line 38570 "preproc.c" break; - case 434: -#line 3530 "preproc.y" /* yacc.c:1652 */ - { + case 434: /* copy_delimiter: %empty */ +#line 3530 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37912 "preproc.c" /* yacc.c:1652 */ +#line 38577 "preproc.c" break; - case 435: -#line 3537 "preproc.y" /* yacc.c:1652 */ - { + case 435: /* opt_using: USING */ +#line 3537 "preproc.y" + { (yyval.str) = mm_strdup("using"); } -#line 37920 "preproc.c" /* yacc.c:1652 */ +#line 38585 "preproc.c" break; - case 436: -#line 3541 "preproc.y" /* yacc.c:1652 */ - { + case 436: /* opt_using: %empty */ +#line 3541 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37927 "preproc.c" /* yacc.c:1652 */ +#line 38592 "preproc.c" break; - case 437: -#line 3548 "preproc.y" /* yacc.c:1652 */ - { + case 437: /* copy_generic_opt_list: copy_generic_opt_elem */ +#line 3548 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37935 "preproc.c" /* yacc.c:1652 */ +#line 38600 "preproc.c" break; - case 438: -#line 3552 "preproc.y" /* yacc.c:1652 */ - { + case 438: /* copy_generic_opt_list: copy_generic_opt_list ',' copy_generic_opt_elem */ +#line 3552 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 37943 "preproc.c" /* yacc.c:1652 */ +#line 38608 "preproc.c" break; - case 439: -#line 3560 "preproc.y" /* yacc.c:1652 */ - { + case 439: /* copy_generic_opt_elem: ColLabel copy_generic_opt_arg */ +#line 3560 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 37951 "preproc.c" /* yacc.c:1652 */ +#line 38616 "preproc.c" break; - case 440: -#line 3568 "preproc.y" /* yacc.c:1652 */ - { + case 440: /* copy_generic_opt_arg: opt_boolean_or_string */ +#line 3568 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37959 "preproc.c" /* yacc.c:1652 */ +#line 38624 "preproc.c" break; - case 441: -#line 3572 "preproc.y" /* yacc.c:1652 */ - { + case 441: /* copy_generic_opt_arg: NumericOnly */ +#line 3572 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37967 "preproc.c" /* yacc.c:1652 */ +#line 38632 "preproc.c" break; - case 442: -#line 3576 "preproc.y" /* yacc.c:1652 */ - { + case 442: /* copy_generic_opt_arg: '*' */ +#line 3576 "preproc.y" + { (yyval.str) = mm_strdup("*"); } -#line 37975 "preproc.c" /* yacc.c:1652 */ +#line 38640 "preproc.c" break; - case 443: -#line 3580 "preproc.y" /* yacc.c:1652 */ - { + case 443: /* copy_generic_opt_arg: '(' copy_generic_opt_arg_list ')' */ +#line 3580 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 37983 "preproc.c" /* yacc.c:1652 */ +#line 38648 "preproc.c" break; - case 444: -#line 3584 "preproc.y" /* yacc.c:1652 */ - { + case 444: /* copy_generic_opt_arg: %empty */ +#line 3584 "preproc.y" + { (yyval.str)=EMPTY; } -#line 37990 "preproc.c" /* yacc.c:1652 */ +#line 38655 "preproc.c" break; - case 445: -#line 3591 "preproc.y" /* yacc.c:1652 */ - { + case 445: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list_item */ +#line 3591 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 37998 "preproc.c" /* yacc.c:1652 */ +#line 38663 "preproc.c" break; - case 446: -#line 3595 "preproc.y" /* yacc.c:1652 */ - { + case 446: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list ',' copy_generic_opt_arg_list_item */ +#line 3595 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 38006 "preproc.c" /* yacc.c:1652 */ +#line 38671 "preproc.c" break; - case 447: -#line 3603 "preproc.y" /* yacc.c:1652 */ - { + case 447: /* copy_generic_opt_arg_list_item: opt_boolean_or_string */ +#line 3603 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38014 "preproc.c" /* yacc.c:1652 */ +#line 38679 "preproc.c" break; - case 448: -#line 3611 "preproc.y" /* yacc.c:1652 */ - { + case 448: /* CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3611 "preproc.y" + { (yyval.str) = cat_str(13,mm_strdup("create"),(yyvsp[-11].str),mm_strdup("table"),(yyvsp[-9].str),mm_strdup("("),(yyvsp[-7].str),mm_strdup(")"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38022 "preproc.c" /* yacc.c:1652 */ +#line 38687 "preproc.c" break; - case 449: -#line 3615 "preproc.y" /* yacc.c:1652 */ - { + case 449: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3615 "preproc.y" + { (yyval.str) = cat_str(13,mm_strdup("create"),(yyvsp[-14].str),mm_strdup("table if not exists"),(yyvsp[-9].str),mm_strdup("("),(yyvsp[-7].str),mm_strdup(")"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38030 "preproc.c" /* yacc.c:1652 */ +#line 38695 "preproc.c" break; - case 450: -#line 3619 "preproc.y" /* yacc.c:1652 */ - { + case 450: /* CreateStmt: CREATE OptTemp TABLE qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3619 "preproc.y" + { (yyval.str) = cat_str(12,mm_strdup("create"),(yyvsp[-10].str),mm_strdup("table"),(yyvsp[-8].str),mm_strdup("of"),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38038 "preproc.c" /* yacc.c:1652 */ +#line 38703 "preproc.c" break; - case 451: -#line 3623 "preproc.y" /* yacc.c:1652 */ - { + case 451: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3623 "preproc.y" + { (yyval.str) = cat_str(12,mm_strdup("create"),(yyvsp[-13].str),mm_strdup("table if not exists"),(yyvsp[-8].str),mm_strdup("of"),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38046 "preproc.c" /* yacc.c:1652 */ +#line 38711 "preproc.c" break; - case 452: -#line 3627 "preproc.y" /* yacc.c:1652 */ - { + case 452: /* CreateStmt: CREATE OptTemp TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3627 "preproc.y" + { (yyval.str) = cat_str(13,mm_strdup("create"),(yyvsp[-12].str),mm_strdup("table"),(yyvsp[-10].str),mm_strdup("partition of"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38054 "preproc.c" /* yacc.c:1652 */ +#line 38719 "preproc.c" break; - case 453: -#line 3631 "preproc.y" /* yacc.c:1652 */ - { + case 453: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 3631 "preproc.y" + { (yyval.str) = cat_str(13,mm_strdup("create"),(yyvsp[-15].str),mm_strdup("table if not exists"),(yyvsp[-10].str),mm_strdup("partition of"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38062 "preproc.c" /* yacc.c:1652 */ +#line 38727 "preproc.c" break; - case 454: -#line 3639 "preproc.y" /* yacc.c:1652 */ - { + case 454: /* OptTemp: TEMPORARY */ +#line 3639 "preproc.y" + { (yyval.str) = mm_strdup("temporary"); } -#line 38070 "preproc.c" /* yacc.c:1652 */ +#line 38735 "preproc.c" break; - case 455: -#line 3643 "preproc.y" /* yacc.c:1652 */ - { + case 455: /* OptTemp: TEMP */ +#line 3643 "preproc.y" + { (yyval.str) = mm_strdup("temp"); } -#line 38078 "preproc.c" /* yacc.c:1652 */ +#line 38743 "preproc.c" break; - case 456: -#line 3647 "preproc.y" /* yacc.c:1652 */ - { + case 456: /* OptTemp: LOCAL TEMPORARY */ +#line 3647 "preproc.y" + { (yyval.str) = mm_strdup("local temporary"); } -#line 38086 "preproc.c" /* yacc.c:1652 */ +#line 38751 "preproc.c" break; - case 457: -#line 3651 "preproc.y" /* yacc.c:1652 */ - { + case 457: /* OptTemp: LOCAL TEMP */ +#line 3651 "preproc.y" + { (yyval.str) = mm_strdup("local temp"); } -#line 38094 "preproc.c" /* yacc.c:1652 */ +#line 38759 "preproc.c" break; - case 458: -#line 3655 "preproc.y" /* yacc.c:1652 */ - { + case 458: /* OptTemp: GLOBAL TEMPORARY */ +#line 3655 "preproc.y" + { (yyval.str) = mm_strdup("global temporary"); } -#line 38102 "preproc.c" /* yacc.c:1652 */ +#line 38767 "preproc.c" break; - case 459: -#line 3659 "preproc.y" /* yacc.c:1652 */ - { + case 459: /* OptTemp: GLOBAL TEMP */ +#line 3659 "preproc.y" + { (yyval.str) = mm_strdup("global temp"); } -#line 38110 "preproc.c" /* yacc.c:1652 */ +#line 38775 "preproc.c" break; - case 460: -#line 3663 "preproc.y" /* yacc.c:1652 */ - { + case 460: /* OptTemp: UNLOGGED */ +#line 3663 "preproc.y" + { (yyval.str) = mm_strdup("unlogged"); } -#line 38118 "preproc.c" /* yacc.c:1652 */ +#line 38783 "preproc.c" break; - case 461: -#line 3667 "preproc.y" /* yacc.c:1652 */ - { + case 461: /* OptTemp: %empty */ +#line 3667 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38125 "preproc.c" /* yacc.c:1652 */ +#line 38790 "preproc.c" break; - case 462: -#line 3674 "preproc.y" /* yacc.c:1652 */ - { + case 462: /* OptTableElementList: TableElementList */ +#line 3674 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38133 "preproc.c" /* yacc.c:1652 */ +#line 38798 "preproc.c" break; - case 463: -#line 3678 "preproc.y" /* yacc.c:1652 */ - { + case 463: /* OptTableElementList: %empty */ +#line 3678 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38140 "preproc.c" /* yacc.c:1652 */ +#line 38805 "preproc.c" break; - case 464: -#line 3685 "preproc.y" /* yacc.c:1652 */ - { + case 464: /* OptTypedTableElementList: '(' TypedTableElementList ')' */ +#line 3685 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 38148 "preproc.c" /* yacc.c:1652 */ +#line 38813 "preproc.c" break; - case 465: -#line 3689 "preproc.y" /* yacc.c:1652 */ - { + case 465: /* OptTypedTableElementList: %empty */ +#line 3689 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38155 "preproc.c" /* yacc.c:1652 */ +#line 38820 "preproc.c" break; - case 466: -#line 3696 "preproc.y" /* yacc.c:1652 */ - { + case 466: /* TableElementList: TableElement */ +#line 3696 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38163 "preproc.c" /* yacc.c:1652 */ +#line 38828 "preproc.c" break; - case 467: -#line 3700 "preproc.y" /* yacc.c:1652 */ - { + case 467: /* TableElementList: TableElementList ',' TableElement */ +#line 3700 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 38171 "preproc.c" /* yacc.c:1652 */ +#line 38836 "preproc.c" break; - case 468: -#line 3708 "preproc.y" /* yacc.c:1652 */ - { + case 468: /* TypedTableElementList: TypedTableElement */ +#line 3708 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38179 "preproc.c" /* yacc.c:1652 */ +#line 38844 "preproc.c" break; - case 469: -#line 3712 "preproc.y" /* yacc.c:1652 */ - { + case 469: /* TypedTableElementList: TypedTableElementList ',' TypedTableElement */ +#line 3712 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 38187 "preproc.c" /* yacc.c:1652 */ +#line 38852 "preproc.c" break; - case 470: -#line 3720 "preproc.y" /* yacc.c:1652 */ - { + case 470: /* TableElement: columnDef */ +#line 3720 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38195 "preproc.c" /* yacc.c:1652 */ +#line 38860 "preproc.c" break; - case 471: -#line 3724 "preproc.y" /* yacc.c:1652 */ - { + case 471: /* TableElement: TableLikeClause */ +#line 3724 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38203 "preproc.c" /* yacc.c:1652 */ +#line 38868 "preproc.c" break; - case 472: -#line 3728 "preproc.y" /* yacc.c:1652 */ - { + case 472: /* TableElement: TableConstraint */ +#line 3728 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38211 "preproc.c" /* yacc.c:1652 */ +#line 38876 "preproc.c" break; - case 473: -#line 3736 "preproc.y" /* yacc.c:1652 */ - { + case 473: /* TypedTableElement: columnOptions */ +#line 3736 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38219 "preproc.c" /* yacc.c:1652 */ +#line 38884 "preproc.c" break; - case 474: -#line 3740 "preproc.y" /* yacc.c:1652 */ - { + case 474: /* TypedTableElement: TableConstraint */ +#line 3740 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38227 "preproc.c" /* yacc.c:1652 */ +#line 38892 "preproc.c" break; - case 475: -#line 3748 "preproc.y" /* yacc.c:1652 */ - { + case 475: /* columnDef: ColId Typename create_generic_options ColQualList */ +#line 3748 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38235 "preproc.c" /* yacc.c:1652 */ +#line 38900 "preproc.c" break; - case 476: -#line 3756 "preproc.y" /* yacc.c:1652 */ - { + case 476: /* columnOptions: ColId ColQualList */ +#line 3756 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38243 "preproc.c" /* yacc.c:1652 */ +#line 38908 "preproc.c" break; - case 477: -#line 3760 "preproc.y" /* yacc.c:1652 */ - { + case 477: /* columnOptions: ColId WITH OPTIONS ColQualList */ +#line 3760 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("with options"),(yyvsp[0].str)); } -#line 38251 "preproc.c" /* yacc.c:1652 */ +#line 38916 "preproc.c" break; - case 478: -#line 3768 "preproc.y" /* yacc.c:1652 */ - { + case 478: /* ColQualList: ColQualList ColConstraint */ +#line 3768 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38259 "preproc.c" /* yacc.c:1652 */ +#line 38924 "preproc.c" break; - case 479: -#line 3772 "preproc.y" /* yacc.c:1652 */ - { + case 479: /* ColQualList: %empty */ +#line 3772 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38266 "preproc.c" /* yacc.c:1652 */ +#line 38931 "preproc.c" break; - case 480: -#line 3779 "preproc.y" /* yacc.c:1652 */ - { + case 480: /* ColConstraint: CONSTRAINT name ColConstraintElem */ +#line 3779 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38274 "preproc.c" /* yacc.c:1652 */ +#line 38939 "preproc.c" break; - case 481: -#line 3783 "preproc.y" /* yacc.c:1652 */ - { + case 481: /* ColConstraint: ColConstraintElem */ +#line 3783 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38282 "preproc.c" /* yacc.c:1652 */ +#line 38947 "preproc.c" break; - case 482: -#line 3787 "preproc.y" /* yacc.c:1652 */ - { + case 482: /* ColConstraint: ConstraintAttr */ +#line 3787 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38290 "preproc.c" /* yacc.c:1652 */ +#line 38955 "preproc.c" break; - case 483: -#line 3791 "preproc.y" /* yacc.c:1652 */ - { + case 483: /* ColConstraint: COLLATE any_name */ +#line 3791 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("collate"),(yyvsp[0].str)); } -#line 38298 "preproc.c" /* yacc.c:1652 */ +#line 38963 "preproc.c" break; - case 484: -#line 3799 "preproc.y" /* yacc.c:1652 */ - { + case 484: /* ColConstraintElem: NOT NULL_P */ +#line 3799 "preproc.y" + { (yyval.str) = mm_strdup("not null"); } -#line 38306 "preproc.c" /* yacc.c:1652 */ +#line 38971 "preproc.c" break; - case 485: -#line 3803 "preproc.y" /* yacc.c:1652 */ - { + case 485: /* ColConstraintElem: NULL_P */ +#line 3803 "preproc.y" + { (yyval.str) = mm_strdup("null"); } -#line 38314 "preproc.c" /* yacc.c:1652 */ +#line 38979 "preproc.c" break; - case 486: -#line 3807 "preproc.y" /* yacc.c:1652 */ - { + case 486: /* ColConstraintElem: UNIQUE opt_definition OptConsTableSpace */ +#line 3807 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("unique"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38322 "preproc.c" /* yacc.c:1652 */ +#line 38987 "preproc.c" break; - case 487: -#line 3811 "preproc.y" /* yacc.c:1652 */ - { + case 487: /* ColConstraintElem: PRIMARY KEY opt_definition OptConsTableSpace */ +#line 3811 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("primary key"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38330 "preproc.c" /* yacc.c:1652 */ +#line 38995 "preproc.c" break; - case 488: -#line 3815 "preproc.y" /* yacc.c:1652 */ - { + case 488: /* ColConstraintElem: CHECK '(' a_expr ')' opt_no_inherit */ +#line 3815 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("check ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 38338 "preproc.c" /* yacc.c:1652 */ +#line 39003 "preproc.c" break; - case 489: -#line 3819 "preproc.y" /* yacc.c:1652 */ - { + case 489: /* ColConstraintElem: DEFAULT b_expr */ +#line 3819 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("default"),(yyvsp[0].str)); } -#line 38346 "preproc.c" /* yacc.c:1652 */ +#line 39011 "preproc.c" break; - case 490: -#line 3823 "preproc.y" /* yacc.c:1652 */ - { + case 490: /* ColConstraintElem: GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */ +#line 3823 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("generated"),(yyvsp[-3].str),mm_strdup("as identity"),(yyvsp[0].str)); } -#line 38354 "preproc.c" /* yacc.c:1652 */ +#line 39019 "preproc.c" break; - case 491: -#line 3827 "preproc.y" /* yacc.c:1652 */ - { + case 491: /* ColConstraintElem: GENERATED generated_when AS '(' a_expr ')' STORED */ +#line 3827 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("generated"),(yyvsp[-5].str),mm_strdup("as ("),(yyvsp[-2].str),mm_strdup(") stored")); } -#line 38362 "preproc.c" /* yacc.c:1652 */ +#line 39027 "preproc.c" break; - case 492: -#line 3831 "preproc.y" /* yacc.c:1652 */ - { + case 492: /* ColConstraintElem: REFERENCES qualified_name opt_column_list key_match key_actions */ +#line 3831 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("references"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38370 "preproc.c" /* yacc.c:1652 */ +#line 39035 "preproc.c" break; - case 493: -#line 3839 "preproc.y" /* yacc.c:1652 */ - { + case 493: /* generated_when: ALWAYS */ +#line 3839 "preproc.y" + { (yyval.str) = mm_strdup("always"); } -#line 38378 "preproc.c" /* yacc.c:1652 */ +#line 39043 "preproc.c" break; - case 494: -#line 3843 "preproc.y" /* yacc.c:1652 */ - { + case 494: /* generated_when: BY DEFAULT */ +#line 3843 "preproc.y" + { (yyval.str) = mm_strdup("by default"); } -#line 38386 "preproc.c" /* yacc.c:1652 */ +#line 39051 "preproc.c" break; - case 495: -#line 3851 "preproc.y" /* yacc.c:1652 */ - { + case 495: /* ConstraintAttr: DEFERRABLE */ +#line 3851 "preproc.y" + { (yyval.str) = mm_strdup("deferrable"); } -#line 38394 "preproc.c" /* yacc.c:1652 */ +#line 39059 "preproc.c" break; - case 496: -#line 3855 "preproc.y" /* yacc.c:1652 */ - { + case 496: /* ConstraintAttr: NOT DEFERRABLE */ +#line 3855 "preproc.y" + { (yyval.str) = mm_strdup("not deferrable"); } -#line 38402 "preproc.c" /* yacc.c:1652 */ +#line 39067 "preproc.c" break; - case 497: -#line 3859 "preproc.y" /* yacc.c:1652 */ - { + case 497: /* ConstraintAttr: INITIALLY DEFERRED */ +#line 3859 "preproc.y" + { (yyval.str) = mm_strdup("initially deferred"); } -#line 38410 "preproc.c" /* yacc.c:1652 */ +#line 39075 "preproc.c" break; - case 498: -#line 3863 "preproc.y" /* yacc.c:1652 */ - { + case 498: /* ConstraintAttr: INITIALLY IMMEDIATE */ +#line 3863 "preproc.y" + { (yyval.str) = mm_strdup("initially immediate"); } -#line 38418 "preproc.c" /* yacc.c:1652 */ +#line 39083 "preproc.c" break; - case 499: -#line 3871 "preproc.y" /* yacc.c:1652 */ - { + case 499: /* TableLikeClause: LIKE qualified_name TableLikeOptionList */ +#line 3871 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("like"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38426 "preproc.c" /* yacc.c:1652 */ +#line 39091 "preproc.c" break; - case 500: -#line 3879 "preproc.y" /* yacc.c:1652 */ - { + case 500: /* TableLikeOptionList: TableLikeOptionList INCLUDING TableLikeOption */ +#line 3879 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("including"),(yyvsp[0].str)); } -#line 38434 "preproc.c" /* yacc.c:1652 */ +#line 39099 "preproc.c" break; - case 501: -#line 3883 "preproc.y" /* yacc.c:1652 */ - { + case 501: /* TableLikeOptionList: TableLikeOptionList EXCLUDING TableLikeOption */ +#line 3883 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("excluding"),(yyvsp[0].str)); } -#line 38442 "preproc.c" /* yacc.c:1652 */ +#line 39107 "preproc.c" break; - case 502: -#line 3887 "preproc.y" /* yacc.c:1652 */ - { + case 502: /* TableLikeOptionList: %empty */ +#line 3887 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38449 "preproc.c" /* yacc.c:1652 */ +#line 39114 "preproc.c" break; - case 503: -#line 3894 "preproc.y" /* yacc.c:1652 */ - { + case 503: /* TableLikeOption: COMMENTS */ +#line 3894 "preproc.y" + { (yyval.str) = mm_strdup("comments"); } -#line 38457 "preproc.c" /* yacc.c:1652 */ +#line 39122 "preproc.c" break; - case 504: -#line 3898 "preproc.y" /* yacc.c:1652 */ - { + case 504: /* TableLikeOption: CONSTRAINTS */ +#line 3898 "preproc.y" + { (yyval.str) = mm_strdup("constraints"); } -#line 38465 "preproc.c" /* yacc.c:1652 */ +#line 39130 "preproc.c" break; - case 505: -#line 3902 "preproc.y" /* yacc.c:1652 */ - { + case 505: /* TableLikeOption: DEFAULTS */ +#line 3902 "preproc.y" + { (yyval.str) = mm_strdup("defaults"); } -#line 38473 "preproc.c" /* yacc.c:1652 */ +#line 39138 "preproc.c" break; - case 506: -#line 3906 "preproc.y" /* yacc.c:1652 */ - { + case 506: /* TableLikeOption: IDENTITY_P */ +#line 3906 "preproc.y" + { (yyval.str) = mm_strdup("identity"); } -#line 38481 "preproc.c" /* yacc.c:1652 */ +#line 39146 "preproc.c" break; - case 507: -#line 3910 "preproc.y" /* yacc.c:1652 */ - { + case 507: /* TableLikeOption: GENERATED */ +#line 3910 "preproc.y" + { (yyval.str) = mm_strdup("generated"); } -#line 38489 "preproc.c" /* yacc.c:1652 */ +#line 39154 "preproc.c" break; - case 508: -#line 3914 "preproc.y" /* yacc.c:1652 */ - { + case 508: /* TableLikeOption: INDEXES */ +#line 3914 "preproc.y" + { (yyval.str) = mm_strdup("indexes"); } -#line 38497 "preproc.c" /* yacc.c:1652 */ +#line 39162 "preproc.c" break; - case 509: -#line 3918 "preproc.y" /* yacc.c:1652 */ - { + case 509: /* TableLikeOption: STATISTICS */ +#line 3918 "preproc.y" + { (yyval.str) = mm_strdup("statistics"); } -#line 38505 "preproc.c" /* yacc.c:1652 */ +#line 39170 "preproc.c" break; - case 510: -#line 3922 "preproc.y" /* yacc.c:1652 */ - { + case 510: /* TableLikeOption: STORAGE */ +#line 3922 "preproc.y" + { (yyval.str) = mm_strdup("storage"); } -#line 38513 "preproc.c" /* yacc.c:1652 */ +#line 39178 "preproc.c" break; - case 511: -#line 3926 "preproc.y" /* yacc.c:1652 */ - { + case 511: /* TableLikeOption: ALL */ +#line 3926 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 38521 "preproc.c" /* yacc.c:1652 */ +#line 39186 "preproc.c" break; - case 512: -#line 3934 "preproc.y" /* yacc.c:1652 */ - { + case 512: /* TableConstraint: CONSTRAINT name ConstraintElem */ +#line 3934 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38529 "preproc.c" /* yacc.c:1652 */ +#line 39194 "preproc.c" break; - case 513: -#line 3938 "preproc.y" /* yacc.c:1652 */ - { + case 513: /* TableConstraint: ConstraintElem */ +#line 3938 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38537 "preproc.c" /* yacc.c:1652 */ +#line 39202 "preproc.c" break; - case 514: -#line 3946 "preproc.y" /* yacc.c:1652 */ - { + case 514: /* ConstraintElem: CHECK '(' a_expr ')' ConstraintAttributeSpec */ +#line 3946 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("check ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 38545 "preproc.c" /* yacc.c:1652 */ +#line 39210 "preproc.c" break; - case 515: -#line 3950 "preproc.y" /* yacc.c:1652 */ - { + case 515: /* ConstraintElem: UNIQUE '(' columnList ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */ +#line 3950 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("unique ("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38553 "preproc.c" /* yacc.c:1652 */ +#line 39218 "preproc.c" break; - case 516: -#line 3954 "preproc.y" /* yacc.c:1652 */ - { + case 516: /* ConstraintElem: UNIQUE ExistingIndex ConstraintAttributeSpec */ +#line 3954 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("unique"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38561 "preproc.c" /* yacc.c:1652 */ +#line 39226 "preproc.c" break; - case 517: -#line 3958 "preproc.y" /* yacc.c:1652 */ - { + case 517: /* ConstraintElem: PRIMARY KEY '(' columnList ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */ +#line 3958 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("primary key ("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38569 "preproc.c" /* yacc.c:1652 */ +#line 39234 "preproc.c" break; - case 518: -#line 3962 "preproc.y" /* yacc.c:1652 */ - { + case 518: /* ConstraintElem: PRIMARY KEY ExistingIndex ConstraintAttributeSpec */ +#line 3962 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("primary key"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38577 "preproc.c" /* yacc.c:1652 */ +#line 39242 "preproc.c" break; - case 519: -#line 3966 "preproc.y" /* yacc.c:1652 */ - { + case 519: /* ConstraintElem: EXCLUDE access_method_clause '(' ExclusionConstraintList ')' opt_c_include opt_definition OptConsTableSpace ExclusionWhereClause ConstraintAttributeSpec */ +#line 3966 "preproc.y" + { (yyval.str) = cat_str(10,mm_strdup("exclude"),(yyvsp[-8].str),mm_strdup("("),(yyvsp[-6].str),mm_strdup(")"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38585 "preproc.c" /* yacc.c:1652 */ +#line 39250 "preproc.c" break; - case 520: -#line 3970 "preproc.y" /* yacc.c:1652 */ - { + case 520: /* ConstraintElem: FOREIGN KEY '(' columnList ')' REFERENCES qualified_name opt_column_list key_match key_actions ConstraintAttributeSpec */ +#line 3970 "preproc.y" + { (yyval.str) = cat_str(8,mm_strdup("foreign key ("),(yyvsp[-7].str),mm_strdup(") references"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38593 "preproc.c" /* yacc.c:1652 */ +#line 39258 "preproc.c" break; - case 521: -#line 3978 "preproc.y" /* yacc.c:1652 */ - { + case 521: /* opt_no_inherit: NO INHERIT */ +#line 3978 "preproc.y" + { (yyval.str) = mm_strdup("no inherit"); } -#line 38601 "preproc.c" /* yacc.c:1652 */ +#line 39266 "preproc.c" break; - case 522: -#line 3982 "preproc.y" /* yacc.c:1652 */ - { + case 522: /* opt_no_inherit: %empty */ +#line 3982 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38608 "preproc.c" /* yacc.c:1652 */ +#line 39273 "preproc.c" break; - case 523: -#line 3989 "preproc.y" /* yacc.c:1652 */ - { + case 523: /* opt_column_list: '(' columnList ')' */ +#line 3989 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 38616 "preproc.c" /* yacc.c:1652 */ +#line 39281 "preproc.c" break; - case 524: -#line 3993 "preproc.y" /* yacc.c:1652 */ - { + case 524: /* opt_column_list: %empty */ +#line 3993 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38623 "preproc.c" /* yacc.c:1652 */ +#line 39288 "preproc.c" break; - case 525: -#line 4000 "preproc.y" /* yacc.c:1652 */ - { + case 525: /* columnList: columnElem */ +#line 4000 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38631 "preproc.c" /* yacc.c:1652 */ +#line 39296 "preproc.c" break; - case 526: -#line 4004 "preproc.y" /* yacc.c:1652 */ - { + case 526: /* columnList: columnList ',' columnElem */ +#line 4004 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 38639 "preproc.c" /* yacc.c:1652 */ +#line 39304 "preproc.c" break; - case 527: -#line 4012 "preproc.y" /* yacc.c:1652 */ - { + case 527: /* columnElem: ColId */ +#line 4012 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38647 "preproc.c" /* yacc.c:1652 */ +#line 39312 "preproc.c" break; - case 528: -#line 4020 "preproc.y" /* yacc.c:1652 */ - { + case 528: /* opt_c_include: INCLUDE '(' columnList ')' */ +#line 4020 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("include ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 38655 "preproc.c" /* yacc.c:1652 */ +#line 39320 "preproc.c" break; - case 529: -#line 4024 "preproc.y" /* yacc.c:1652 */ - { + case 529: /* opt_c_include: %empty */ +#line 4024 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38662 "preproc.c" /* yacc.c:1652 */ +#line 39327 "preproc.c" break; - case 530: -#line 4031 "preproc.y" /* yacc.c:1652 */ - { + case 530: /* key_match: MATCH FULL */ +#line 4031 "preproc.y" + { (yyval.str) = mm_strdup("match full"); } -#line 38670 "preproc.c" /* yacc.c:1652 */ +#line 39335 "preproc.c" break; - case 531: -#line 4035 "preproc.y" /* yacc.c:1652 */ - { + case 531: /* key_match: MATCH PARTIAL */ +#line 4035 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = mm_strdup("match partial"); } -#line 38679 "preproc.c" /* yacc.c:1652 */ +#line 39344 "preproc.c" break; - case 532: -#line 4040 "preproc.y" /* yacc.c:1652 */ - { + case 532: /* key_match: MATCH SIMPLE */ +#line 4040 "preproc.y" + { (yyval.str) = mm_strdup("match simple"); } -#line 38687 "preproc.c" /* yacc.c:1652 */ +#line 39352 "preproc.c" break; - case 533: -#line 4044 "preproc.y" /* yacc.c:1652 */ - { + case 533: /* key_match: %empty */ +#line 4044 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38694 "preproc.c" /* yacc.c:1652 */ +#line 39359 "preproc.c" break; - case 534: -#line 4051 "preproc.y" /* yacc.c:1652 */ - { + case 534: /* ExclusionConstraintList: ExclusionConstraintElem */ +#line 4051 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38702 "preproc.c" /* yacc.c:1652 */ +#line 39367 "preproc.c" break; - case 535: -#line 4055 "preproc.y" /* yacc.c:1652 */ - { + case 535: /* ExclusionConstraintList: ExclusionConstraintList ',' ExclusionConstraintElem */ +#line 4055 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 38710 "preproc.c" /* yacc.c:1652 */ +#line 39375 "preproc.c" break; - case 536: -#line 4063 "preproc.y" /* yacc.c:1652 */ - { + case 536: /* ExclusionConstraintElem: index_elem WITH any_operator */ +#line 4063 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("with"),(yyvsp[0].str)); } -#line 38718 "preproc.c" /* yacc.c:1652 */ +#line 39383 "preproc.c" break; - case 537: -#line 4067 "preproc.y" /* yacc.c:1652 */ - { + case 537: /* ExclusionConstraintElem: index_elem WITH OPERATOR '(' any_operator ')' */ +#line 4067 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-5].str),mm_strdup("with operator ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 38726 "preproc.c" /* yacc.c:1652 */ +#line 39391 "preproc.c" break; - case 538: -#line 4075 "preproc.y" /* yacc.c:1652 */ - { + case 538: /* ExclusionWhereClause: WHERE '(' a_expr ')' */ +#line 4075 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("where ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 38734 "preproc.c" /* yacc.c:1652 */ +#line 39399 "preproc.c" break; - case 539: -#line 4079 "preproc.y" /* yacc.c:1652 */ - { + case 539: /* ExclusionWhereClause: %empty */ +#line 4079 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38741 "preproc.c" /* yacc.c:1652 */ +#line 39406 "preproc.c" break; - case 540: -#line 4086 "preproc.y" /* yacc.c:1652 */ - { + case 540: /* key_actions: key_update */ +#line 4086 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38749 "preproc.c" /* yacc.c:1652 */ +#line 39414 "preproc.c" break; - case 541: -#line 4090 "preproc.y" /* yacc.c:1652 */ - { + case 541: /* key_actions: key_delete */ +#line 4090 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38757 "preproc.c" /* yacc.c:1652 */ +#line 39422 "preproc.c" break; - case 542: -#line 4094 "preproc.y" /* yacc.c:1652 */ - { + case 542: /* key_actions: key_update key_delete */ +#line 4094 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38765 "preproc.c" /* yacc.c:1652 */ +#line 39430 "preproc.c" break; - case 543: -#line 4098 "preproc.y" /* yacc.c:1652 */ - { + case 543: /* key_actions: key_delete key_update */ +#line 4098 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38773 "preproc.c" /* yacc.c:1652 */ +#line 39438 "preproc.c" break; - case 544: -#line 4102 "preproc.y" /* yacc.c:1652 */ - { + case 544: /* key_actions: %empty */ +#line 4102 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38780 "preproc.c" /* yacc.c:1652 */ +#line 39445 "preproc.c" break; - case 545: -#line 4109 "preproc.y" /* yacc.c:1652 */ - { + case 545: /* key_update: ON UPDATE key_action */ +#line 4109 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("on update"),(yyvsp[0].str)); } -#line 38788 "preproc.c" /* yacc.c:1652 */ +#line 39453 "preproc.c" break; - case 546: -#line 4117 "preproc.y" /* yacc.c:1652 */ - { + case 546: /* key_delete: ON DELETE_P key_action */ +#line 4117 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("on delete"),(yyvsp[0].str)); } -#line 38796 "preproc.c" /* yacc.c:1652 */ +#line 39461 "preproc.c" break; - case 547: -#line 4125 "preproc.y" /* yacc.c:1652 */ - { + case 547: /* key_action: NO ACTION */ +#line 4125 "preproc.y" + { (yyval.str) = mm_strdup("no action"); } -#line 38804 "preproc.c" /* yacc.c:1652 */ +#line 39469 "preproc.c" break; - case 548: -#line 4129 "preproc.y" /* yacc.c:1652 */ - { + case 548: /* key_action: RESTRICT */ +#line 4129 "preproc.y" + { (yyval.str) = mm_strdup("restrict"); } -#line 38812 "preproc.c" /* yacc.c:1652 */ +#line 39477 "preproc.c" break; - case 549: -#line 4133 "preproc.y" /* yacc.c:1652 */ - { + case 549: /* key_action: CASCADE */ +#line 4133 "preproc.y" + { (yyval.str) = mm_strdup("cascade"); } -#line 38820 "preproc.c" /* yacc.c:1652 */ +#line 39485 "preproc.c" break; - case 550: -#line 4137 "preproc.y" /* yacc.c:1652 */ - { + case 550: /* key_action: SET NULL_P */ +#line 4137 "preproc.y" + { (yyval.str) = mm_strdup("set null"); } -#line 38828 "preproc.c" /* yacc.c:1652 */ +#line 39493 "preproc.c" break; - case 551: -#line 4141 "preproc.y" /* yacc.c:1652 */ - { + case 551: /* key_action: SET DEFAULT */ +#line 4141 "preproc.y" + { (yyval.str) = mm_strdup("set default"); } -#line 38836 "preproc.c" /* yacc.c:1652 */ +#line 39501 "preproc.c" break; - case 552: -#line 4149 "preproc.y" /* yacc.c:1652 */ - { + case 552: /* OptInherit: INHERITS '(' qualified_name_list ')' */ +#line 4149 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("inherits ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 38844 "preproc.c" /* yacc.c:1652 */ +#line 39509 "preproc.c" break; - case 553: -#line 4153 "preproc.y" /* yacc.c:1652 */ - { + case 553: /* OptInherit: %empty */ +#line 4153 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38851 "preproc.c" /* yacc.c:1652 */ +#line 39516 "preproc.c" break; - case 554: -#line 4160 "preproc.y" /* yacc.c:1652 */ - { + case 554: /* OptPartitionSpec: PartitionSpec */ +#line 4160 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38859 "preproc.c" /* yacc.c:1652 */ +#line 39524 "preproc.c" break; - case 555: -#line 4164 "preproc.y" /* yacc.c:1652 */ - { + case 555: /* OptPartitionSpec: %empty */ +#line 4164 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38866 "preproc.c" /* yacc.c:1652 */ +#line 39531 "preproc.c" break; - case 556: -#line 4171 "preproc.y" /* yacc.c:1652 */ - { + case 556: /* PartitionSpec: PARTITION BY ColId '(' part_params ')' */ +#line 4171 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("partition by"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 38874 "preproc.c" /* yacc.c:1652 */ +#line 39539 "preproc.c" break; - case 557: -#line 4179 "preproc.y" /* yacc.c:1652 */ - { + case 557: /* part_params: part_elem */ +#line 4179 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 38882 "preproc.c" /* yacc.c:1652 */ +#line 39547 "preproc.c" break; - case 558: -#line 4183 "preproc.y" /* yacc.c:1652 */ - { + case 558: /* part_params: part_params ',' part_elem */ +#line 4183 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 38890 "preproc.c" /* yacc.c:1652 */ +#line 39555 "preproc.c" break; - case 559: -#line 4191 "preproc.y" /* yacc.c:1652 */ - { + case 559: /* part_elem: ColId opt_collate opt_class */ +#line 4191 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38898 "preproc.c" /* yacc.c:1652 */ +#line 39563 "preproc.c" break; - case 560: -#line 4195 "preproc.y" /* yacc.c:1652 */ - { + case 560: /* part_elem: func_expr_windowless opt_collate opt_class */ +#line 4195 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38906 "preproc.c" /* yacc.c:1652 */ +#line 39571 "preproc.c" break; - case 561: -#line 4199 "preproc.y" /* yacc.c:1652 */ - { + case 561: /* part_elem: '(' a_expr ')' opt_collate opt_class */ +#line 4199 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-3].str),mm_strdup(")"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 38914 "preproc.c" /* yacc.c:1652 */ +#line 39579 "preproc.c" break; - case 562: -#line 4207 "preproc.y" /* yacc.c:1652 */ - { + case 562: /* table_access_method_clause: USING access_method */ +#line 4207 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 38922 "preproc.c" /* yacc.c:1652 */ +#line 39587 "preproc.c" break; - case 563: -#line 4211 "preproc.y" /* yacc.c:1652 */ - { + case 563: /* table_access_method_clause: %empty */ +#line 4211 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38929 "preproc.c" /* yacc.c:1652 */ +#line 39594 "preproc.c" break; - case 564: -#line 4218 "preproc.y" /* yacc.c:1652 */ - { + case 564: /* OptWith: WITH reloptions */ +#line 4218 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 38937 "preproc.c" /* yacc.c:1652 */ +#line 39602 "preproc.c" break; - case 565: -#line 4222 "preproc.y" /* yacc.c:1652 */ - { + case 565: /* OptWith: WITHOUT OIDS */ +#line 4222 "preproc.y" + { (yyval.str) = mm_strdup("without oids"); } -#line 38945 "preproc.c" /* yacc.c:1652 */ +#line 39610 "preproc.c" break; - case 566: -#line 4226 "preproc.y" /* yacc.c:1652 */ - { + case 566: /* OptWith: %empty */ +#line 4226 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38952 "preproc.c" /* yacc.c:1652 */ +#line 39617 "preproc.c" break; - case 567: -#line 4233 "preproc.y" /* yacc.c:1652 */ - { + case 567: /* OnCommitOption: ON COMMIT DROP */ +#line 4233 "preproc.y" + { (yyval.str) = mm_strdup("on commit drop"); } -#line 38960 "preproc.c" /* yacc.c:1652 */ +#line 39625 "preproc.c" break; - case 568: -#line 4237 "preproc.y" /* yacc.c:1652 */ - { + case 568: /* OnCommitOption: ON COMMIT DELETE_P ROWS */ +#line 4237 "preproc.y" + { (yyval.str) = mm_strdup("on commit delete rows"); } -#line 38968 "preproc.c" /* yacc.c:1652 */ +#line 39633 "preproc.c" break; - case 569: -#line 4241 "preproc.y" /* yacc.c:1652 */ - { + case 569: /* OnCommitOption: ON COMMIT PRESERVE ROWS */ +#line 4241 "preproc.y" + { (yyval.str) = mm_strdup("on commit preserve rows"); } -#line 38976 "preproc.c" /* yacc.c:1652 */ +#line 39641 "preproc.c" break; - case 570: -#line 4245 "preproc.y" /* yacc.c:1652 */ - { + case 570: /* OnCommitOption: %empty */ +#line 4245 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38983 "preproc.c" /* yacc.c:1652 */ +#line 39648 "preproc.c" break; - case 571: -#line 4252 "preproc.y" /* yacc.c:1652 */ - { + case 571: /* OptTableSpace: TABLESPACE name */ +#line 4252 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("tablespace"),(yyvsp[0].str)); } -#line 38991 "preproc.c" /* yacc.c:1652 */ +#line 39656 "preproc.c" break; - case 572: -#line 4256 "preproc.y" /* yacc.c:1652 */ - { + case 572: /* OptTableSpace: %empty */ +#line 4256 "preproc.y" + { (yyval.str)=EMPTY; } -#line 38998 "preproc.c" /* yacc.c:1652 */ +#line 39663 "preproc.c" break; - case 573: -#line 4263 "preproc.y" /* yacc.c:1652 */ - { + case 573: /* OptConsTableSpace: USING INDEX TABLESPACE name */ +#line 4263 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("using index tablespace"),(yyvsp[0].str)); } -#line 39006 "preproc.c" /* yacc.c:1652 */ +#line 39671 "preproc.c" break; - case 574: -#line 4267 "preproc.y" /* yacc.c:1652 */ - { + case 574: /* OptConsTableSpace: %empty */ +#line 4267 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39013 "preproc.c" /* yacc.c:1652 */ +#line 39678 "preproc.c" break; - case 575: -#line 4274 "preproc.y" /* yacc.c:1652 */ - { + case 575: /* ExistingIndex: USING INDEX index_name */ +#line 4274 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("using index"),(yyvsp[0].str)); } -#line 39021 "preproc.c" /* yacc.c:1652 */ +#line 39686 "preproc.c" break; - case 576: -#line 4282 "preproc.y" /* yacc.c:1652 */ - { + case 576: /* CreateStatsStmt: CREATE STATISTICS any_name opt_name_list ON expr_list FROM from_list */ +#line 4282 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("create statistics"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 39029 "preproc.c" /* yacc.c:1652 */ +#line 39694 "preproc.c" break; - case 577: -#line 4286 "preproc.y" /* yacc.c:1652 */ - { + case 577: /* CreateStatsStmt: CREATE STATISTICS IF_P NOT EXISTS any_name opt_name_list ON expr_list FROM from_list */ +#line 4286 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("create statistics if not exists"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 39037 "preproc.c" /* yacc.c:1652 */ +#line 39702 "preproc.c" break; - case 578: -#line 4294 "preproc.y" /* yacc.c:1652 */ - { + case 578: /* AlterStatsStmt: ALTER STATISTICS any_name SET STATISTICS SignedIconst */ +#line 4294 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter statistics"),(yyvsp[-3].str),mm_strdup("set statistics"),(yyvsp[0].str)); } -#line 39045 "preproc.c" /* yacc.c:1652 */ +#line 39710 "preproc.c" break; - case 579: -#line 4298 "preproc.y" /* yacc.c:1652 */ - { + case 579: /* AlterStatsStmt: ALTER STATISTICS IF_P EXISTS any_name SET STATISTICS SignedIconst */ +#line 4298 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter statistics if exists"),(yyvsp[-3].str),mm_strdup("set statistics"),(yyvsp[0].str)); } -#line 39053 "preproc.c" /* yacc.c:1652 */ +#line 39718 "preproc.c" break; - case 580: -#line 4306 "preproc.y" /* yacc.c:1652 */ - { + case 580: /* create_as_target: qualified_name opt_column_list table_access_method_clause OptWith OnCommitOption OptTableSpace */ +#line 4306 "preproc.y" + { (yyval.str) = cat_str(6,(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39061 "preproc.c" /* yacc.c:1652 */ +#line 39726 "preproc.c" break; - case 581: -#line 4314 "preproc.y" /* yacc.c:1652 */ - { + case 581: /* opt_with_data: WITH DATA_P */ +#line 4314 "preproc.y" + { (yyval.str) = mm_strdup("with data"); } -#line 39069 "preproc.c" /* yacc.c:1652 */ +#line 39734 "preproc.c" break; - case 582: -#line 4318 "preproc.y" /* yacc.c:1652 */ - { + case 582: /* opt_with_data: WITH NO DATA_P */ +#line 4318 "preproc.y" + { (yyval.str) = mm_strdup("with no data"); } -#line 39077 "preproc.c" /* yacc.c:1652 */ +#line 39742 "preproc.c" break; - case 583: -#line 4322 "preproc.y" /* yacc.c:1652 */ - { + case 583: /* opt_with_data: %empty */ +#line 4322 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39084 "preproc.c" /* yacc.c:1652 */ +#line 39749 "preproc.c" break; - case 584: -#line 4329 "preproc.y" /* yacc.c:1652 */ - { + case 584: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW create_mv_target AS SelectStmt opt_with_data */ +#line 4329 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("create"),(yyvsp[-6].str),mm_strdup("materialized view"),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39092 "preproc.c" /* yacc.c:1652 */ +#line 39757 "preproc.c" break; - case 585: -#line 4333 "preproc.y" /* yacc.c:1652 */ - { + case 585: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW IF_P NOT EXISTS create_mv_target AS SelectStmt opt_with_data */ +#line 4333 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("create"),(yyvsp[-9].str),mm_strdup("materialized view if not exists"),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39100 "preproc.c" /* yacc.c:1652 */ +#line 39765 "preproc.c" break; - case 586: -#line 4341 "preproc.y" /* yacc.c:1652 */ - { + case 586: /* create_mv_target: qualified_name opt_column_list table_access_method_clause opt_reloptions OptTableSpace */ +#line 4341 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39108 "preproc.c" /* yacc.c:1652 */ +#line 39773 "preproc.c" break; - case 587: -#line 4349 "preproc.y" /* yacc.c:1652 */ - { + case 587: /* OptNoLog: UNLOGGED */ +#line 4349 "preproc.y" + { (yyval.str) = mm_strdup("unlogged"); } -#line 39116 "preproc.c" /* yacc.c:1652 */ +#line 39781 "preproc.c" break; - case 588: -#line 4353 "preproc.y" /* yacc.c:1652 */ - { + case 588: /* OptNoLog: %empty */ +#line 4353 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39123 "preproc.c" /* yacc.c:1652 */ +#line 39788 "preproc.c" break; - case 589: -#line 4360 "preproc.y" /* yacc.c:1652 */ - { + case 589: /* RefreshMatViewStmt: REFRESH MATERIALIZED VIEW opt_concurrently qualified_name opt_with_data */ +#line 4360 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("refresh materialized view"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39131 "preproc.c" /* yacc.c:1652 */ +#line 39796 "preproc.c" break; - case 590: -#line 4368 "preproc.y" /* yacc.c:1652 */ - { + case 590: /* CreateSeqStmt: CREATE OptTemp SEQUENCE qualified_name OptSeqOptList */ +#line 4368 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("create"),(yyvsp[-3].str),mm_strdup("sequence"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39139 "preproc.c" /* yacc.c:1652 */ +#line 39804 "preproc.c" break; - case 591: -#line 4372 "preproc.y" /* yacc.c:1652 */ - { + case 591: /* CreateSeqStmt: CREATE OptTemp SEQUENCE IF_P NOT EXISTS qualified_name OptSeqOptList */ +#line 4372 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("create"),(yyvsp[-6].str),mm_strdup("sequence if not exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39147 "preproc.c" /* yacc.c:1652 */ +#line 39812 "preproc.c" break; - case 592: -#line 4380 "preproc.y" /* yacc.c:1652 */ - { + case 592: /* AlterSeqStmt: ALTER SEQUENCE qualified_name SeqOptList */ +#line 4380 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter sequence"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39155 "preproc.c" /* yacc.c:1652 */ +#line 39820 "preproc.c" break; - case 593: -#line 4384 "preproc.y" /* yacc.c:1652 */ - { + case 593: /* AlterSeqStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SeqOptList */ +#line 4384 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter sequence if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39163 "preproc.c" /* yacc.c:1652 */ +#line 39828 "preproc.c" break; - case 594: -#line 4392 "preproc.y" /* yacc.c:1652 */ - { + case 594: /* OptSeqOptList: SeqOptList */ +#line 4392 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39171 "preproc.c" /* yacc.c:1652 */ +#line 39836 "preproc.c" break; - case 595: -#line 4396 "preproc.y" /* yacc.c:1652 */ - { + case 595: /* OptSeqOptList: %empty */ +#line 4396 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39178 "preproc.c" /* yacc.c:1652 */ +#line 39843 "preproc.c" break; - case 596: -#line 4403 "preproc.y" /* yacc.c:1652 */ - { + case 596: /* OptParenthesizedSeqOptList: '(' SeqOptList ')' */ +#line 4403 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 39186 "preproc.c" /* yacc.c:1652 */ +#line 39851 "preproc.c" break; - case 597: -#line 4407 "preproc.y" /* yacc.c:1652 */ - { + case 597: /* OptParenthesizedSeqOptList: %empty */ +#line 4407 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39193 "preproc.c" /* yacc.c:1652 */ +#line 39858 "preproc.c" break; - case 598: -#line 4414 "preproc.y" /* yacc.c:1652 */ - { + case 598: /* SeqOptList: SeqOptElem */ +#line 4414 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39201 "preproc.c" /* yacc.c:1652 */ +#line 39866 "preproc.c" break; - case 599: -#line 4418 "preproc.y" /* yacc.c:1652 */ - { + case 599: /* SeqOptList: SeqOptList SeqOptElem */ +#line 4418 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39209 "preproc.c" /* yacc.c:1652 */ +#line 39874 "preproc.c" break; - case 600: -#line 4426 "preproc.y" /* yacc.c:1652 */ - { + case 600: /* SeqOptElem: AS SimpleTypename */ +#line 4426 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("as"),(yyvsp[0].str)); } -#line 39217 "preproc.c" /* yacc.c:1652 */ +#line 39882 "preproc.c" break; - case 601: -#line 4430 "preproc.y" /* yacc.c:1652 */ - { + case 601: /* SeqOptElem: CACHE NumericOnly */ +#line 4430 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("cache"),(yyvsp[0].str)); } -#line 39225 "preproc.c" /* yacc.c:1652 */ +#line 39890 "preproc.c" break; - case 602: -#line 4434 "preproc.y" /* yacc.c:1652 */ - { + case 602: /* SeqOptElem: CYCLE */ +#line 4434 "preproc.y" + { (yyval.str) = mm_strdup("cycle"); } -#line 39233 "preproc.c" /* yacc.c:1652 */ +#line 39898 "preproc.c" break; - case 603: -#line 4438 "preproc.y" /* yacc.c:1652 */ - { + case 603: /* SeqOptElem: NO CYCLE */ +#line 4438 "preproc.y" + { (yyval.str) = mm_strdup("no cycle"); } -#line 39241 "preproc.c" /* yacc.c:1652 */ +#line 39906 "preproc.c" break; - case 604: -#line 4442 "preproc.y" /* yacc.c:1652 */ - { + case 604: /* SeqOptElem: INCREMENT opt_by NumericOnly */ +#line 4442 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("increment"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39249 "preproc.c" /* yacc.c:1652 */ +#line 39914 "preproc.c" break; - case 605: -#line 4446 "preproc.y" /* yacc.c:1652 */ - { + case 605: /* SeqOptElem: MAXVALUE NumericOnly */ +#line 4446 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("maxvalue"),(yyvsp[0].str)); } -#line 39257 "preproc.c" /* yacc.c:1652 */ +#line 39922 "preproc.c" break; - case 606: -#line 4450 "preproc.y" /* yacc.c:1652 */ - { + case 606: /* SeqOptElem: MINVALUE NumericOnly */ +#line 4450 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("minvalue"),(yyvsp[0].str)); } -#line 39265 "preproc.c" /* yacc.c:1652 */ +#line 39930 "preproc.c" break; - case 607: -#line 4454 "preproc.y" /* yacc.c:1652 */ - { + case 607: /* SeqOptElem: NO MAXVALUE */ +#line 4454 "preproc.y" + { (yyval.str) = mm_strdup("no maxvalue"); } -#line 39273 "preproc.c" /* yacc.c:1652 */ +#line 39938 "preproc.c" break; - case 608: -#line 4458 "preproc.y" /* yacc.c:1652 */ - { + case 608: /* SeqOptElem: NO MINVALUE */ +#line 4458 "preproc.y" + { (yyval.str) = mm_strdup("no minvalue"); } -#line 39281 "preproc.c" /* yacc.c:1652 */ +#line 39946 "preproc.c" break; - case 609: -#line 4462 "preproc.y" /* yacc.c:1652 */ - { + case 609: /* SeqOptElem: OWNED BY any_name */ +#line 4462 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("owned by"),(yyvsp[0].str)); } -#line 39289 "preproc.c" /* yacc.c:1652 */ +#line 39954 "preproc.c" break; - case 610: -#line 4466 "preproc.y" /* yacc.c:1652 */ - { + case 610: /* SeqOptElem: SEQUENCE NAME_P any_name */ +#line 4466 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("sequence name"),(yyvsp[0].str)); } -#line 39297 "preproc.c" /* yacc.c:1652 */ +#line 39962 "preproc.c" break; - case 611: -#line 4470 "preproc.y" /* yacc.c:1652 */ - { + case 611: /* SeqOptElem: START opt_with NumericOnly */ +#line 4470 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("start"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39305 "preproc.c" /* yacc.c:1652 */ +#line 39970 "preproc.c" break; - case 612: -#line 4474 "preproc.y" /* yacc.c:1652 */ - { + case 612: /* SeqOptElem: RESTART */ +#line 4474 "preproc.y" + { (yyval.str) = mm_strdup("restart"); } -#line 39313 "preproc.c" /* yacc.c:1652 */ +#line 39978 "preproc.c" break; - case 613: -#line 4478 "preproc.y" /* yacc.c:1652 */ - { + case 613: /* SeqOptElem: RESTART opt_with NumericOnly */ +#line 4478 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("restart"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39321 "preproc.c" /* yacc.c:1652 */ +#line 39986 "preproc.c" break; - case 614: -#line 4486 "preproc.y" /* yacc.c:1652 */ - { + case 614: /* opt_by: BY */ +#line 4486 "preproc.y" + { (yyval.str) = mm_strdup("by"); } -#line 39329 "preproc.c" /* yacc.c:1652 */ +#line 39994 "preproc.c" break; - case 615: -#line 4490 "preproc.y" /* yacc.c:1652 */ - { + case 615: /* opt_by: %empty */ +#line 4490 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39336 "preproc.c" /* yacc.c:1652 */ +#line 40001 "preproc.c" break; - case 616: -#line 4497 "preproc.y" /* yacc.c:1652 */ - { + case 616: /* NumericOnly: ecpg_fconst */ +#line 4497 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39344 "preproc.c" /* yacc.c:1652 */ +#line 40009 "preproc.c" break; - case 617: -#line 4501 "preproc.y" /* yacc.c:1652 */ - { + case 617: /* NumericOnly: '+' ecpg_fconst */ +#line 4501 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 39352 "preproc.c" /* yacc.c:1652 */ +#line 40017 "preproc.c" break; - case 618: -#line 4505 "preproc.y" /* yacc.c:1652 */ - { + case 618: /* NumericOnly: '-' ecpg_fconst */ +#line 4505 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 39360 "preproc.c" /* yacc.c:1652 */ +#line 40025 "preproc.c" break; - case 619: -#line 4509 "preproc.y" /* yacc.c:1652 */ - { + case 619: /* NumericOnly: SignedIconst */ +#line 4509 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39368 "preproc.c" /* yacc.c:1652 */ +#line 40033 "preproc.c" break; - case 620: -#line 4517 "preproc.y" /* yacc.c:1652 */ - { + case 620: /* NumericOnly_list: NumericOnly */ +#line 4517 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39376 "preproc.c" /* yacc.c:1652 */ +#line 40041 "preproc.c" break; - case 621: -#line 4521 "preproc.y" /* yacc.c:1652 */ - { + case 621: /* NumericOnly_list: NumericOnly_list ',' NumericOnly */ +#line 4521 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 39384 "preproc.c" /* yacc.c:1652 */ +#line 40049 "preproc.c" break; - case 622: -#line 4529 "preproc.y" /* yacc.c:1652 */ - { + case 622: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE NonReservedWord_or_Sconst */ +#line 4529 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("create"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("language"),(yyvsp[0].str)); } -#line 39392 "preproc.c" /* yacc.c:1652 */ +#line 40057 "preproc.c" break; - case 623: -#line 4533 "preproc.y" /* yacc.c:1652 */ - { + case 623: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE NonReservedWord_or_Sconst HANDLER handler_name opt_inline_handler opt_validator */ +#line 4533 "preproc.y" + { (yyval.str) = cat_str(10,mm_strdup("create"),(yyvsp[-8].str),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("language"),(yyvsp[-4].str),mm_strdup("handler"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39400 "preproc.c" /* yacc.c:1652 */ +#line 40065 "preproc.c" break; - case 624: -#line 4541 "preproc.y" /* yacc.c:1652 */ - { + case 624: /* opt_trusted: TRUSTED */ +#line 4541 "preproc.y" + { (yyval.str) = mm_strdup("trusted"); } -#line 39408 "preproc.c" /* yacc.c:1652 */ +#line 40073 "preproc.c" break; - case 625: -#line 4545 "preproc.y" /* yacc.c:1652 */ - { + case 625: /* opt_trusted: %empty */ +#line 4545 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39415 "preproc.c" /* yacc.c:1652 */ +#line 40080 "preproc.c" break; - case 626: -#line 4552 "preproc.y" /* yacc.c:1652 */ - { + case 626: /* handler_name: name */ +#line 4552 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39423 "preproc.c" /* yacc.c:1652 */ +#line 40088 "preproc.c" break; - case 627: -#line 4556 "preproc.y" /* yacc.c:1652 */ - { + case 627: /* handler_name: name attrs */ +#line 4556 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39431 "preproc.c" /* yacc.c:1652 */ +#line 40096 "preproc.c" break; - case 628: -#line 4564 "preproc.y" /* yacc.c:1652 */ - { + case 628: /* opt_inline_handler: INLINE_P handler_name */ +#line 4564 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("inline"),(yyvsp[0].str)); } -#line 39439 "preproc.c" /* yacc.c:1652 */ +#line 40104 "preproc.c" break; - case 629: -#line 4568 "preproc.y" /* yacc.c:1652 */ - { + case 629: /* opt_inline_handler: %empty */ +#line 4568 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39446 "preproc.c" /* yacc.c:1652 */ +#line 40111 "preproc.c" break; - case 630: -#line 4575 "preproc.y" /* yacc.c:1652 */ - { + case 630: /* validator_clause: VALIDATOR handler_name */ +#line 4575 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("validator"),(yyvsp[0].str)); } -#line 39454 "preproc.c" /* yacc.c:1652 */ +#line 40119 "preproc.c" break; - case 631: -#line 4579 "preproc.y" /* yacc.c:1652 */ - { + case 631: /* validator_clause: NO VALIDATOR */ +#line 4579 "preproc.y" + { (yyval.str) = mm_strdup("no validator"); } -#line 39462 "preproc.c" /* yacc.c:1652 */ +#line 40127 "preproc.c" break; - case 632: -#line 4587 "preproc.y" /* yacc.c:1652 */ - { + case 632: /* opt_validator: validator_clause */ +#line 4587 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39470 "preproc.c" /* yacc.c:1652 */ +#line 40135 "preproc.c" break; - case 633: -#line 4591 "preproc.y" /* yacc.c:1652 */ - { + case 633: /* opt_validator: %empty */ +#line 4591 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39477 "preproc.c" /* yacc.c:1652 */ +#line 40142 "preproc.c" break; - case 634: -#line 4598 "preproc.y" /* yacc.c:1652 */ - { + case 634: /* DropPLangStmt: DROP opt_procedural LANGUAGE NonReservedWord_or_Sconst opt_drop_behavior */ +#line 4598 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("drop"),(yyvsp[-3].str),mm_strdup("language"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39485 "preproc.c" /* yacc.c:1652 */ +#line 40150 "preproc.c" break; - case 635: -#line 4602 "preproc.y" /* yacc.c:1652 */ - { + case 635: /* DropPLangStmt: DROP opt_procedural LANGUAGE IF_P EXISTS NonReservedWord_or_Sconst opt_drop_behavior */ +#line 4602 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("drop"),(yyvsp[-5].str),mm_strdup("language if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39493 "preproc.c" /* yacc.c:1652 */ +#line 40158 "preproc.c" break; - case 636: -#line 4610 "preproc.y" /* yacc.c:1652 */ - { + case 636: /* opt_procedural: PROCEDURAL */ +#line 4610 "preproc.y" + { (yyval.str) = mm_strdup("procedural"); } -#line 39501 "preproc.c" /* yacc.c:1652 */ +#line 40166 "preproc.c" break; - case 637: -#line 4614 "preproc.y" /* yacc.c:1652 */ - { + case 637: /* opt_procedural: %empty */ +#line 4614 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39508 "preproc.c" /* yacc.c:1652 */ +#line 40173 "preproc.c" break; - case 638: -#line 4621 "preproc.y" /* yacc.c:1652 */ - { + case 638: /* CreateTableSpaceStmt: CREATE TABLESPACE name OptTableSpaceOwner LOCATION ecpg_sconst opt_reloptions */ +#line 4621 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("create tablespace"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("location"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39516 "preproc.c" /* yacc.c:1652 */ +#line 40181 "preproc.c" break; - case 639: -#line 4629 "preproc.y" /* yacc.c:1652 */ - { + case 639: /* OptTableSpaceOwner: OWNER RoleSpec */ +#line 4629 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("owner"),(yyvsp[0].str)); } -#line 39524 "preproc.c" /* yacc.c:1652 */ +#line 40189 "preproc.c" break; - case 640: -#line 4633 "preproc.y" /* yacc.c:1652 */ - { + case 640: /* OptTableSpaceOwner: %empty */ +#line 4633 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39531 "preproc.c" /* yacc.c:1652 */ +#line 40196 "preproc.c" break; - case 641: -#line 4640 "preproc.y" /* yacc.c:1652 */ - { + case 641: /* DropTableSpaceStmt: DROP TABLESPACE name */ +#line 4640 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop tablespace"),(yyvsp[0].str)); } -#line 39539 "preproc.c" /* yacc.c:1652 */ +#line 40204 "preproc.c" break; - case 642: -#line 4644 "preproc.y" /* yacc.c:1652 */ - { + case 642: /* DropTableSpaceStmt: DROP TABLESPACE IF_P EXISTS name */ +#line 4644 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop tablespace if exists"),(yyvsp[0].str)); } -#line 39547 "preproc.c" /* yacc.c:1652 */ +#line 40212 "preproc.c" break; - case 643: -#line 4652 "preproc.y" /* yacc.c:1652 */ - { + case 643: /* CreateExtensionStmt: CREATE EXTENSION name opt_with create_extension_opt_list */ +#line 4652 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create extension"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39555 "preproc.c" /* yacc.c:1652 */ +#line 40220 "preproc.c" break; - case 644: -#line 4656 "preproc.y" /* yacc.c:1652 */ - { + case 644: /* CreateExtensionStmt: CREATE EXTENSION IF_P NOT EXISTS name opt_with create_extension_opt_list */ +#line 4656 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create extension if not exists"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39563 "preproc.c" /* yacc.c:1652 */ +#line 40228 "preproc.c" break; - case 645: -#line 4664 "preproc.y" /* yacc.c:1652 */ - { + case 645: /* create_extension_opt_list: create_extension_opt_list create_extension_opt_item */ +#line 4664 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39571 "preproc.c" /* yacc.c:1652 */ +#line 40236 "preproc.c" break; - case 646: -#line 4668 "preproc.y" /* yacc.c:1652 */ - { + case 646: /* create_extension_opt_list: %empty */ +#line 4668 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39578 "preproc.c" /* yacc.c:1652 */ +#line 40243 "preproc.c" break; - case 647: -#line 4675 "preproc.y" /* yacc.c:1652 */ - { + case 647: /* create_extension_opt_item: SCHEMA name */ +#line 4675 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("schema"),(yyvsp[0].str)); } -#line 39586 "preproc.c" /* yacc.c:1652 */ +#line 40251 "preproc.c" break; - case 648: -#line 4679 "preproc.y" /* yacc.c:1652 */ - { + case 648: /* create_extension_opt_item: VERSION_P NonReservedWord_or_Sconst */ +#line 4679 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("version"),(yyvsp[0].str)); } -#line 39594 "preproc.c" /* yacc.c:1652 */ +#line 40259 "preproc.c" break; - case 649: -#line 4683 "preproc.y" /* yacc.c:1652 */ - { + case 649: /* create_extension_opt_item: FROM NonReservedWord_or_Sconst */ +#line 4683 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(2,mm_strdup("from"),(yyvsp[0].str)); } -#line 39603 "preproc.c" /* yacc.c:1652 */ +#line 40268 "preproc.c" break; - case 650: -#line 4688 "preproc.y" /* yacc.c:1652 */ - { + case 650: /* create_extension_opt_item: CASCADE */ +#line 4688 "preproc.y" + { (yyval.str) = mm_strdup("cascade"); } -#line 39611 "preproc.c" /* yacc.c:1652 */ +#line 40276 "preproc.c" break; - case 651: -#line 4696 "preproc.y" /* yacc.c:1652 */ - { + case 651: /* AlterExtensionStmt: ALTER EXTENSION name UPDATE alter_extension_opt_list */ +#line 4696 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter extension"),(yyvsp[-2].str),mm_strdup("update"),(yyvsp[0].str)); } -#line 39619 "preproc.c" /* yacc.c:1652 */ +#line 40284 "preproc.c" break; - case 652: -#line 4704 "preproc.y" /* yacc.c:1652 */ - { + case 652: /* alter_extension_opt_list: alter_extension_opt_list alter_extension_opt_item */ +#line 4704 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39627 "preproc.c" /* yacc.c:1652 */ +#line 40292 "preproc.c" break; - case 653: -#line 4708 "preproc.y" /* yacc.c:1652 */ - { + case 653: /* alter_extension_opt_list: %empty */ +#line 4708 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39634 "preproc.c" /* yacc.c:1652 */ +#line 40299 "preproc.c" break; - case 654: -#line 4715 "preproc.y" /* yacc.c:1652 */ - { + case 654: /* alter_extension_opt_item: TO NonReservedWord_or_Sconst */ +#line 4715 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("to"),(yyvsp[0].str)); } -#line 39642 "preproc.c" /* yacc.c:1652 */ +#line 40307 "preproc.c" break; - case 655: -#line 4723 "preproc.y" /* yacc.c:1652 */ - { + case 655: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop ACCESS METHOD name */ +#line 4723 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("access method"),(yyvsp[0].str)); } -#line 39650 "preproc.c" /* yacc.c:1652 */ +#line 40315 "preproc.c" break; - case 656: -#line 4727 "preproc.y" /* yacc.c:1652 */ - { + case 656: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop AGGREGATE aggregate_with_argtypes */ +#line 4727 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("aggregate"),(yyvsp[0].str)); } -#line 39658 "preproc.c" /* yacc.c:1652 */ +#line 40323 "preproc.c" break; - case 657: -#line 4731 "preproc.y" /* yacc.c:1652 */ - { + case 657: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')' */ +#line 4731 "preproc.y" + { (yyval.str) = cat_str(8,mm_strdup("alter extension"),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("cast ("),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),mm_strdup(")")); } -#line 39666 "preproc.c" /* yacc.c:1652 */ +#line 40331 "preproc.c" break; - case 658: -#line 4735 "preproc.y" /* yacc.c:1652 */ - { + case 658: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop COLLATION any_name */ +#line 4735 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("collation"),(yyvsp[0].str)); } -#line 39674 "preproc.c" /* yacc.c:1652 */ +#line 40339 "preproc.c" break; - case 659: -#line 4739 "preproc.y" /* yacc.c:1652 */ - { + case 659: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop CONVERSION_P any_name */ +#line 4739 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("conversion"),(yyvsp[0].str)); } -#line 39682 "preproc.c" /* yacc.c:1652 */ +#line 40347 "preproc.c" break; - case 660: -#line 4743 "preproc.y" /* yacc.c:1652 */ - { + case 660: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop DOMAIN_P Typename */ +#line 4743 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("domain"),(yyvsp[0].str)); } -#line 39690 "preproc.c" /* yacc.c:1652 */ +#line 40355 "preproc.c" break; - case 661: -#line 4747 "preproc.y" /* yacc.c:1652 */ - { + case 661: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FUNCTION function_with_argtypes */ +#line 4747 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("function"),(yyvsp[0].str)); } -#line 39698 "preproc.c" /* yacc.c:1652 */ +#line 40363 "preproc.c" break; - case 662: -#line 4751 "preproc.y" /* yacc.c:1652 */ - { + case 662: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop opt_procedural LANGUAGE name */ +#line 4751 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter extension"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("language"),(yyvsp[0].str)); } -#line 39706 "preproc.c" /* yacc.c:1652 */ +#line 40371 "preproc.c" break; - case 663: -#line 4755 "preproc.y" /* yacc.c:1652 */ - { + case 663: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR operator_with_argtypes */ +#line 4755 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("operator"),(yyvsp[0].str)); } -#line 39714 "preproc.c" /* yacc.c:1652 */ +#line 40379 "preproc.c" break; - case 664: -#line 4759 "preproc.y" /* yacc.c:1652 */ - { + case 664: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR CLASS any_name USING access_method */ +#line 4759 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter extension"),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("operator class"),(yyvsp[-2].str),mm_strdup("using"),(yyvsp[0].str)); } -#line 39722 "preproc.c" /* yacc.c:1652 */ +#line 40387 "preproc.c" break; - case 665: -#line 4763 "preproc.y" /* yacc.c:1652 */ - { + case 665: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR FAMILY any_name USING access_method */ +#line 4763 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter extension"),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("operator family"),(yyvsp[-2].str),mm_strdup("using"),(yyvsp[0].str)); } -#line 39730 "preproc.c" /* yacc.c:1652 */ +#line 40395 "preproc.c" break; - case 666: -#line 4767 "preproc.y" /* yacc.c:1652 */ - { + case 666: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop PROCEDURE function_with_argtypes */ +#line 4767 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("procedure"),(yyvsp[0].str)); } -#line 39738 "preproc.c" /* yacc.c:1652 */ +#line 40403 "preproc.c" break; - case 667: -#line 4771 "preproc.y" /* yacc.c:1652 */ - { + case 667: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop ROUTINE function_with_argtypes */ +#line 4771 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("routine"),(yyvsp[0].str)); } -#line 39746 "preproc.c" /* yacc.c:1652 */ +#line 40411 "preproc.c" break; - case 668: -#line 4775 "preproc.y" /* yacc.c:1652 */ - { + case 668: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop SCHEMA name */ +#line 4775 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("schema"),(yyvsp[0].str)); } -#line 39754 "preproc.c" /* yacc.c:1652 */ +#line 40419 "preproc.c" break; - case 669: -#line 4779 "preproc.y" /* yacc.c:1652 */ - { + case 669: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop EVENT TRIGGER name */ +#line 4779 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("event trigger"),(yyvsp[0].str)); } -#line 39762 "preproc.c" /* yacc.c:1652 */ +#line 40427 "preproc.c" break; - case 670: -#line 4783 "preproc.y" /* yacc.c:1652 */ - { + case 670: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TABLE any_name */ +#line 4783 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("table"),(yyvsp[0].str)); } -#line 39770 "preproc.c" /* yacc.c:1652 */ +#line 40435 "preproc.c" break; - case 671: -#line 4787 "preproc.y" /* yacc.c:1652 */ - { + case 671: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TEXT_P SEARCH PARSER any_name */ +#line 4787 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("text search parser"),(yyvsp[0].str)); } -#line 39778 "preproc.c" /* yacc.c:1652 */ +#line 40443 "preproc.c" break; - case 672: -#line 4791 "preproc.y" /* yacc.c:1652 */ - { + case 672: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TEXT_P SEARCH DICTIONARY any_name */ +#line 4791 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("text search dictionary"),(yyvsp[0].str)); } -#line 39786 "preproc.c" /* yacc.c:1652 */ +#line 40451 "preproc.c" break; - case 673: -#line 4795 "preproc.y" /* yacc.c:1652 */ - { + case 673: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TEXT_P SEARCH TEMPLATE any_name */ +#line 4795 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("text search template"),(yyvsp[0].str)); } -#line 39794 "preproc.c" /* yacc.c:1652 */ +#line 40459 "preproc.c" break; - case 674: -#line 4799 "preproc.y" /* yacc.c:1652 */ - { + case 674: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TEXT_P SEARCH CONFIGURATION any_name */ +#line 4799 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("text search configuration"),(yyvsp[0].str)); } -#line 39802 "preproc.c" /* yacc.c:1652 */ +#line 40467 "preproc.c" break; - case 675: -#line 4803 "preproc.y" /* yacc.c:1652 */ - { + case 675: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop SEQUENCE any_name */ +#line 4803 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("sequence"),(yyvsp[0].str)); } -#line 39810 "preproc.c" /* yacc.c:1652 */ +#line 40475 "preproc.c" break; - case 676: -#line 4807 "preproc.y" /* yacc.c:1652 */ - { + case 676: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop VIEW any_name */ +#line 4807 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("view"),(yyvsp[0].str)); } -#line 39818 "preproc.c" /* yacc.c:1652 */ +#line 40483 "preproc.c" break; - case 677: -#line 4811 "preproc.y" /* yacc.c:1652 */ - { + case 677: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop MATERIALIZED VIEW any_name */ +#line 4811 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("materialized view"),(yyvsp[0].str)); } -#line 39826 "preproc.c" /* yacc.c:1652 */ +#line 40491 "preproc.c" break; - case 678: -#line 4815 "preproc.y" /* yacc.c:1652 */ - { + case 678: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FOREIGN TABLE any_name */ +#line 4815 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("foreign table"),(yyvsp[0].str)); } -#line 39834 "preproc.c" /* yacc.c:1652 */ +#line 40499 "preproc.c" break; - case 679: -#line 4819 "preproc.y" /* yacc.c:1652 */ - { + case 679: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FOREIGN DATA_P WRAPPER name */ +#line 4819 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("foreign data wrapper"),(yyvsp[0].str)); } -#line 39842 "preproc.c" /* yacc.c:1652 */ +#line 40507 "preproc.c" break; - case 680: -#line 4823 "preproc.y" /* yacc.c:1652 */ - { + case 680: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop SERVER name */ +#line 4823 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("server"),(yyvsp[0].str)); } -#line 39850 "preproc.c" /* yacc.c:1652 */ +#line 40515 "preproc.c" break; - case 681: -#line 4827 "preproc.y" /* yacc.c:1652 */ - { + case 681: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TRANSFORM FOR Typename LANGUAGE name */ +#line 4827 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter extension"),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("transform for"),(yyvsp[-2].str),mm_strdup("language"),(yyvsp[0].str)); } -#line 39858 "preproc.c" /* yacc.c:1652 */ +#line 40523 "preproc.c" break; - case 682: -#line 4831 "preproc.y" /* yacc.c:1652 */ - { + case 682: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TYPE_P Typename */ +#line 4831 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("type"),(yyvsp[0].str)); } -#line 39866 "preproc.c" /* yacc.c:1652 */ +#line 40531 "preproc.c" break; - case 683: -#line 4839 "preproc.y" /* yacc.c:1652 */ - { + case 683: /* CreateFdwStmt: CREATE FOREIGN DATA_P WRAPPER name opt_fdw_options create_generic_options */ +#line 4839 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create foreign data wrapper"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39874 "preproc.c" /* yacc.c:1652 */ +#line 40539 "preproc.c" break; - case 684: -#line 4847 "preproc.y" /* yacc.c:1652 */ - { + case 684: /* fdw_option: HANDLER handler_name */ +#line 4847 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("handler"),(yyvsp[0].str)); } -#line 39882 "preproc.c" /* yacc.c:1652 */ +#line 40547 "preproc.c" break; - case 685: -#line 4851 "preproc.y" /* yacc.c:1652 */ - { + case 685: /* fdw_option: NO HANDLER */ +#line 4851 "preproc.y" + { (yyval.str) = mm_strdup("no handler"); } -#line 39890 "preproc.c" /* yacc.c:1652 */ +#line 40555 "preproc.c" break; - case 686: -#line 4855 "preproc.y" /* yacc.c:1652 */ - { + case 686: /* fdw_option: VALIDATOR handler_name */ +#line 4855 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("validator"),(yyvsp[0].str)); } -#line 39898 "preproc.c" /* yacc.c:1652 */ +#line 40563 "preproc.c" break; - case 687: -#line 4859 "preproc.y" /* yacc.c:1652 */ - { + case 687: /* fdw_option: NO VALIDATOR */ +#line 4859 "preproc.y" + { (yyval.str) = mm_strdup("no validator"); } -#line 39906 "preproc.c" /* yacc.c:1652 */ +#line 40571 "preproc.c" break; - case 688: -#line 4867 "preproc.y" /* yacc.c:1652 */ - { + case 688: /* fdw_options: fdw_option */ +#line 4867 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39914 "preproc.c" /* yacc.c:1652 */ +#line 40579 "preproc.c" break; - case 689: -#line 4871 "preproc.y" /* yacc.c:1652 */ - { + case 689: /* fdw_options: fdw_options fdw_option */ +#line 4871 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39922 "preproc.c" /* yacc.c:1652 */ +#line 40587 "preproc.c" break; - case 690: -#line 4879 "preproc.y" /* yacc.c:1652 */ - { + case 690: /* opt_fdw_options: fdw_options */ +#line 4879 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39930 "preproc.c" /* yacc.c:1652 */ +#line 40595 "preproc.c" break; - case 691: -#line 4883 "preproc.y" /* yacc.c:1652 */ - { + case 691: /* opt_fdw_options: %empty */ +#line 4883 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39937 "preproc.c" /* yacc.c:1652 */ +#line 40602 "preproc.c" break; - case 692: -#line 4890 "preproc.y" /* yacc.c:1652 */ - { + case 692: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name opt_fdw_options alter_generic_options */ +#line 4890 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter foreign data wrapper"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39945 "preproc.c" /* yacc.c:1652 */ +#line 40610 "preproc.c" break; - case 693: -#line 4894 "preproc.y" /* yacc.c:1652 */ - { + case 693: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name fdw_options */ +#line 4894 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter foreign data wrapper"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39953 "preproc.c" /* yacc.c:1652 */ +#line 40618 "preproc.c" break; - case 694: -#line 4902 "preproc.y" /* yacc.c:1652 */ - { + case 694: /* create_generic_options: OPTIONS '(' generic_option_list ')' */ +#line 4902 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("options ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 39961 "preproc.c" /* yacc.c:1652 */ +#line 40626 "preproc.c" break; - case 695: -#line 4906 "preproc.y" /* yacc.c:1652 */ - { + case 695: /* create_generic_options: %empty */ +#line 4906 "preproc.y" + { (yyval.str)=EMPTY; } -#line 39968 "preproc.c" /* yacc.c:1652 */ +#line 40633 "preproc.c" break; - case 696: -#line 4913 "preproc.y" /* yacc.c:1652 */ - { + case 696: /* generic_option_list: generic_option_elem */ +#line 4913 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 39976 "preproc.c" /* yacc.c:1652 */ +#line 40641 "preproc.c" break; - case 697: -#line 4917 "preproc.y" /* yacc.c:1652 */ - { + case 697: /* generic_option_list: generic_option_list ',' generic_option_elem */ +#line 4917 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 39984 "preproc.c" /* yacc.c:1652 */ +#line 40649 "preproc.c" break; - case 698: -#line 4925 "preproc.y" /* yacc.c:1652 */ - { + case 698: /* alter_generic_options: OPTIONS '(' alter_generic_option_list ')' */ +#line 4925 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("options ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 39992 "preproc.c" /* yacc.c:1652 */ +#line 40657 "preproc.c" break; - case 699: -#line 4933 "preproc.y" /* yacc.c:1652 */ - { + case 699: /* alter_generic_option_list: alter_generic_option_elem */ +#line 4933 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40000 "preproc.c" /* yacc.c:1652 */ +#line 40665 "preproc.c" break; - case 700: -#line 4937 "preproc.y" /* yacc.c:1652 */ - { + case 700: /* alter_generic_option_list: alter_generic_option_list ',' alter_generic_option_elem */ +#line 4937 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 40008 "preproc.c" /* yacc.c:1652 */ +#line 40673 "preproc.c" break; - case 701: -#line 4945 "preproc.y" /* yacc.c:1652 */ - { + case 701: /* alter_generic_option_elem: generic_option_elem */ +#line 4945 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40016 "preproc.c" /* yacc.c:1652 */ +#line 40681 "preproc.c" break; - case 702: -#line 4949 "preproc.y" /* yacc.c:1652 */ - { + case 702: /* alter_generic_option_elem: SET generic_option_elem */ +#line 4949 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 40024 "preproc.c" /* yacc.c:1652 */ +#line 40689 "preproc.c" break; - case 703: -#line 4953 "preproc.y" /* yacc.c:1652 */ - { + case 703: /* alter_generic_option_elem: ADD_P generic_option_elem */ +#line 4953 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("add"),(yyvsp[0].str)); } -#line 40032 "preproc.c" /* yacc.c:1652 */ +#line 40697 "preproc.c" break; - case 704: -#line 4957 "preproc.y" /* yacc.c:1652 */ - { + case 704: /* alter_generic_option_elem: DROP generic_option_name */ +#line 4957 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop"),(yyvsp[0].str)); } -#line 40040 "preproc.c" /* yacc.c:1652 */ +#line 40705 "preproc.c" break; - case 705: -#line 4965 "preproc.y" /* yacc.c:1652 */ - { + case 705: /* generic_option_elem: generic_option_name generic_option_arg */ +#line 4965 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40048 "preproc.c" /* yacc.c:1652 */ +#line 40713 "preproc.c" break; - case 706: -#line 4973 "preproc.y" /* yacc.c:1652 */ - { + case 706: /* generic_option_name: ColLabel */ +#line 4973 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40056 "preproc.c" /* yacc.c:1652 */ +#line 40721 "preproc.c" break; - case 707: -#line 4981 "preproc.y" /* yacc.c:1652 */ - { + case 707: /* generic_option_arg: ecpg_sconst */ +#line 4981 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40064 "preproc.c" /* yacc.c:1652 */ +#line 40729 "preproc.c" break; - case 708: -#line 4989 "preproc.y" /* yacc.c:1652 */ - { + case 708: /* CreateForeignServerStmt: CREATE SERVER name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */ +#line 4989 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("create server"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("foreign data wrapper"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40072 "preproc.c" /* yacc.c:1652 */ +#line 40737 "preproc.c" break; - case 709: -#line 4993 "preproc.y" /* yacc.c:1652 */ - { + case 709: /* CreateForeignServerStmt: CREATE SERVER IF_P NOT EXISTS name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */ +#line 4993 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("create server if not exists"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("foreign data wrapper"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40080 "preproc.c" /* yacc.c:1652 */ +#line 40745 "preproc.c" break; - case 710: -#line 5001 "preproc.y" /* yacc.c:1652 */ - { + case 710: /* opt_type: TYPE_P ecpg_sconst */ +#line 5001 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("type"),(yyvsp[0].str)); } -#line 40088 "preproc.c" /* yacc.c:1652 */ +#line 40753 "preproc.c" break; - case 711: -#line 5005 "preproc.y" /* yacc.c:1652 */ - { + case 711: /* opt_type: %empty */ +#line 5005 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40095 "preproc.c" /* yacc.c:1652 */ +#line 40760 "preproc.c" break; - case 712: -#line 5012 "preproc.y" /* yacc.c:1652 */ - { + case 712: /* foreign_server_version: VERSION_P ecpg_sconst */ +#line 5012 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("version"),(yyvsp[0].str)); } -#line 40103 "preproc.c" /* yacc.c:1652 */ +#line 40768 "preproc.c" break; - case 713: -#line 5016 "preproc.y" /* yacc.c:1652 */ - { + case 713: /* foreign_server_version: VERSION_P NULL_P */ +#line 5016 "preproc.y" + { (yyval.str) = mm_strdup("version null"); } -#line 40111 "preproc.c" /* yacc.c:1652 */ +#line 40776 "preproc.c" break; - case 714: -#line 5024 "preproc.y" /* yacc.c:1652 */ - { + case 714: /* opt_foreign_server_version: foreign_server_version */ +#line 5024 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40119 "preproc.c" /* yacc.c:1652 */ +#line 40784 "preproc.c" break; - case 715: -#line 5028 "preproc.y" /* yacc.c:1652 */ - { + case 715: /* opt_foreign_server_version: %empty */ +#line 5028 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40126 "preproc.c" /* yacc.c:1652 */ +#line 40791 "preproc.c" break; - case 716: -#line 5035 "preproc.y" /* yacc.c:1652 */ - { + case 716: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version alter_generic_options */ +#line 5035 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter server"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40134 "preproc.c" /* yacc.c:1652 */ +#line 40799 "preproc.c" break; - case 717: -#line 5039 "preproc.y" /* yacc.c:1652 */ - { + case 717: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version */ +#line 5039 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40142 "preproc.c" /* yacc.c:1652 */ +#line 40807 "preproc.c" break; - case 718: -#line 5043 "preproc.y" /* yacc.c:1652 */ - { + case 718: /* AlterForeignServerStmt: ALTER SERVER name alter_generic_options */ +#line 5043 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40150 "preproc.c" /* yacc.c:1652 */ +#line 40815 "preproc.c" break; - case 719: -#line 5051 "preproc.y" /* yacc.c:1652 */ - { + case 719: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */ +#line 5051 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("create foreign table"),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40158 "preproc.c" /* yacc.c:1652 */ +#line 40823 "preproc.c" break; - case 720: -#line 5055 "preproc.y" /* yacc.c:1652 */ - { + case 720: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */ +#line 5055 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("create foreign table if not exists"),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40166 "preproc.c" /* yacc.c:1652 */ +#line 40831 "preproc.c" break; - case 721: -#line 5059 "preproc.y" /* yacc.c:1652 */ - { + case 721: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */ +#line 5059 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("create foreign table"),(yyvsp[-8].str),mm_strdup("partition of"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40174 "preproc.c" /* yacc.c:1652 */ +#line 40839 "preproc.c" break; - case 722: -#line 5063 "preproc.y" /* yacc.c:1652 */ - { + case 722: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */ +#line 5063 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("create foreign table if not exists"),(yyvsp[-8].str),mm_strdup("partition of"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40182 "preproc.c" /* yacc.c:1652 */ +#line 40847 "preproc.c" break; - case 723: -#line 5071 "preproc.y" /* yacc.c:1652 */ - { + case 723: /* AlterForeignTableStmt: ALTER FOREIGN TABLE relation_expr alter_table_cmds */ +#line 5071 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter foreign table"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40190 "preproc.c" /* yacc.c:1652 */ +#line 40855 "preproc.c" break; - case 724: -#line 5075 "preproc.y" /* yacc.c:1652 */ - { + case 724: /* AlterForeignTableStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr alter_table_cmds */ +#line 5075 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter foreign table if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40198 "preproc.c" /* yacc.c:1652 */ +#line 40863 "preproc.c" break; - case 725: -#line 5083 "preproc.y" /* yacc.c:1652 */ - { + case 725: /* ImportForeignSchemaStmt: IMPORT_P FOREIGN SCHEMA name import_qualification FROM SERVER name INTO name create_generic_options */ +#line 5083 "preproc.y" + { (yyval.str) = cat_str(8,mm_strdup("import foreign schema"),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("from server"),(yyvsp[-3].str),mm_strdup("into"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40206 "preproc.c" /* yacc.c:1652 */ +#line 40871 "preproc.c" break; - case 726: -#line 5091 "preproc.y" /* yacc.c:1652 */ - { + case 726: /* import_qualification_type: LIMIT TO */ +#line 5091 "preproc.y" + { (yyval.str) = mm_strdup("limit to"); } -#line 40214 "preproc.c" /* yacc.c:1652 */ +#line 40879 "preproc.c" break; - case 727: -#line 5095 "preproc.y" /* yacc.c:1652 */ - { + case 727: /* import_qualification_type: EXCEPT */ +#line 5095 "preproc.y" + { (yyval.str) = mm_strdup("except"); } -#line 40222 "preproc.c" /* yacc.c:1652 */ +#line 40887 "preproc.c" break; - case 728: -#line 5103 "preproc.y" /* yacc.c:1652 */ - { + case 728: /* import_qualification: import_qualification_type '(' relation_expr_list ')' */ +#line 5103 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40230 "preproc.c" /* yacc.c:1652 */ +#line 40895 "preproc.c" break; - case 729: -#line 5107 "preproc.y" /* yacc.c:1652 */ - { + case 729: /* import_qualification: %empty */ +#line 5107 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40237 "preproc.c" /* yacc.c:1652 */ +#line 40902 "preproc.c" break; - case 730: -#line 5114 "preproc.y" /* yacc.c:1652 */ - { + case 730: /* CreateUserMappingStmt: CREATE USER MAPPING FOR auth_ident SERVER name create_generic_options */ +#line 5114 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("create user mapping for"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40245 "preproc.c" /* yacc.c:1652 */ +#line 40910 "preproc.c" break; - case 731: -#line 5118 "preproc.y" /* yacc.c:1652 */ - { + case 731: /* CreateUserMappingStmt: CREATE USER MAPPING IF_P NOT EXISTS FOR auth_ident SERVER name create_generic_options */ +#line 5118 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("create user mapping if not exists for"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40253 "preproc.c" /* yacc.c:1652 */ +#line 40918 "preproc.c" break; - case 732: -#line 5126 "preproc.y" /* yacc.c:1652 */ - { + case 732: /* auth_ident: RoleSpec */ +#line 5126 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40261 "preproc.c" /* yacc.c:1652 */ +#line 40926 "preproc.c" break; - case 733: -#line 5130 "preproc.y" /* yacc.c:1652 */ - { + case 733: /* auth_ident: USER */ +#line 5130 "preproc.y" + { (yyval.str) = mm_strdup("user"); } -#line 40269 "preproc.c" /* yacc.c:1652 */ +#line 40934 "preproc.c" break; - case 734: -#line 5138 "preproc.y" /* yacc.c:1652 */ - { + case 734: /* DropUserMappingStmt: DROP USER MAPPING FOR auth_ident SERVER name */ +#line 5138 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("drop user mapping for"),(yyvsp[-2].str),mm_strdup("server"),(yyvsp[0].str)); } -#line 40277 "preproc.c" /* yacc.c:1652 */ +#line 40942 "preproc.c" break; - case 735: -#line 5142 "preproc.y" /* yacc.c:1652 */ - { + case 735: /* DropUserMappingStmt: DROP USER MAPPING IF_P EXISTS FOR auth_ident SERVER name */ +#line 5142 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("drop user mapping if exists for"),(yyvsp[-2].str),mm_strdup("server"),(yyvsp[0].str)); } -#line 40285 "preproc.c" /* yacc.c:1652 */ +#line 40950 "preproc.c" break; - case 736: -#line 5150 "preproc.y" /* yacc.c:1652 */ - { + case 736: /* AlterUserMappingStmt: ALTER USER MAPPING FOR auth_ident SERVER name alter_generic_options */ +#line 5150 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter user mapping for"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40293 "preproc.c" /* yacc.c:1652 */ +#line 40958 "preproc.c" break; - case 737: -#line 5158 "preproc.y" /* yacc.c:1652 */ - { + case 737: /* CreatePolicyStmt: CREATE POLICY name ON qualified_name RowSecurityDefaultPermissive RowSecurityDefaultForCmd RowSecurityDefaultToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */ +#line 5158 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("create policy"),(yyvsp[-7].str),mm_strdup("on"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40301 "preproc.c" /* yacc.c:1652 */ +#line 40966 "preproc.c" break; - case 738: -#line 5166 "preproc.y" /* yacc.c:1652 */ - { + case 738: /* AlterPolicyStmt: ALTER POLICY name ON qualified_name RowSecurityOptionalToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */ +#line 5166 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter policy"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40309 "preproc.c" /* yacc.c:1652 */ +#line 40974 "preproc.c" break; - case 739: -#line 5174 "preproc.y" /* yacc.c:1652 */ - { + case 739: /* RowSecurityOptionalExpr: USING '(' a_expr ')' */ +#line 5174 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("using ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40317 "preproc.c" /* yacc.c:1652 */ +#line 40982 "preproc.c" break; - case 740: -#line 5178 "preproc.y" /* yacc.c:1652 */ - { + case 740: /* RowSecurityOptionalExpr: %empty */ +#line 5178 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40324 "preproc.c" /* yacc.c:1652 */ +#line 40989 "preproc.c" break; - case 741: -#line 5185 "preproc.y" /* yacc.c:1652 */ - { + case 741: /* RowSecurityOptionalWithCheck: WITH CHECK '(' a_expr ')' */ +#line 5185 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("with check ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40332 "preproc.c" /* yacc.c:1652 */ +#line 40997 "preproc.c" break; - case 742: -#line 5189 "preproc.y" /* yacc.c:1652 */ - { + case 742: /* RowSecurityOptionalWithCheck: %empty */ +#line 5189 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40339 "preproc.c" /* yacc.c:1652 */ +#line 41004 "preproc.c" break; - case 743: -#line 5196 "preproc.y" /* yacc.c:1652 */ - { + case 743: /* RowSecurityDefaultToRole: TO role_list */ +#line 5196 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("to"),(yyvsp[0].str)); } -#line 40347 "preproc.c" /* yacc.c:1652 */ +#line 41012 "preproc.c" break; - case 744: -#line 5200 "preproc.y" /* yacc.c:1652 */ - { + case 744: /* RowSecurityDefaultToRole: %empty */ +#line 5200 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40354 "preproc.c" /* yacc.c:1652 */ +#line 41019 "preproc.c" break; - case 745: -#line 5207 "preproc.y" /* yacc.c:1652 */ - { + case 745: /* RowSecurityOptionalToRole: TO role_list */ +#line 5207 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("to"),(yyvsp[0].str)); } -#line 40362 "preproc.c" /* yacc.c:1652 */ +#line 41027 "preproc.c" break; - case 746: -#line 5211 "preproc.y" /* yacc.c:1652 */ - { + case 746: /* RowSecurityOptionalToRole: %empty */ +#line 5211 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40369 "preproc.c" /* yacc.c:1652 */ +#line 41034 "preproc.c" break; - case 747: -#line 5218 "preproc.y" /* yacc.c:1652 */ - { + case 747: /* RowSecurityDefaultPermissive: AS ecpg_ident */ +#line 5218 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("as"),(yyvsp[0].str)); } -#line 40377 "preproc.c" /* yacc.c:1652 */ +#line 41042 "preproc.c" break; - case 748: -#line 5222 "preproc.y" /* yacc.c:1652 */ - { + case 748: /* RowSecurityDefaultPermissive: %empty */ +#line 5222 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40384 "preproc.c" /* yacc.c:1652 */ +#line 41049 "preproc.c" break; - case 749: -#line 5229 "preproc.y" /* yacc.c:1652 */ - { + case 749: /* RowSecurityDefaultForCmd: FOR row_security_cmd */ +#line 5229 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("for"),(yyvsp[0].str)); } -#line 40392 "preproc.c" /* yacc.c:1652 */ +#line 41057 "preproc.c" break; - case 750: -#line 5233 "preproc.y" /* yacc.c:1652 */ - { + case 750: /* RowSecurityDefaultForCmd: %empty */ +#line 5233 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40399 "preproc.c" /* yacc.c:1652 */ +#line 41064 "preproc.c" break; - case 751: -#line 5240 "preproc.y" /* yacc.c:1652 */ - { + case 751: /* row_security_cmd: ALL */ +#line 5240 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 40407 "preproc.c" /* yacc.c:1652 */ +#line 41072 "preproc.c" break; - case 752: -#line 5244 "preproc.y" /* yacc.c:1652 */ - { + case 752: /* row_security_cmd: SELECT */ +#line 5244 "preproc.y" + { (yyval.str) = mm_strdup("select"); } -#line 40415 "preproc.c" /* yacc.c:1652 */ +#line 41080 "preproc.c" break; - case 753: -#line 5248 "preproc.y" /* yacc.c:1652 */ - { + case 753: /* row_security_cmd: INSERT */ +#line 5248 "preproc.y" + { (yyval.str) = mm_strdup("insert"); } -#line 40423 "preproc.c" /* yacc.c:1652 */ +#line 41088 "preproc.c" break; - case 754: -#line 5252 "preproc.y" /* yacc.c:1652 */ - { + case 754: /* row_security_cmd: UPDATE */ +#line 5252 "preproc.y" + { (yyval.str) = mm_strdup("update"); } -#line 40431 "preproc.c" /* yacc.c:1652 */ +#line 41096 "preproc.c" break; - case 755: -#line 5256 "preproc.y" /* yacc.c:1652 */ - { + case 755: /* row_security_cmd: DELETE_P */ +#line 5256 "preproc.y" + { (yyval.str) = mm_strdup("delete"); } -#line 40439 "preproc.c" /* yacc.c:1652 */ +#line 41104 "preproc.c" break; - case 756: -#line 5264 "preproc.y" /* yacc.c:1652 */ - { + case 756: /* CreateAmStmt: CREATE ACCESS METHOD name TYPE_P am_type HANDLER handler_name */ +#line 5264 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("create access method"),(yyvsp[-4].str),mm_strdup("type"),(yyvsp[-2].str),mm_strdup("handler"),(yyvsp[0].str)); } -#line 40447 "preproc.c" /* yacc.c:1652 */ +#line 41112 "preproc.c" break; - case 757: -#line 5272 "preproc.y" /* yacc.c:1652 */ - { + case 757: /* am_type: INDEX */ +#line 5272 "preproc.y" + { (yyval.str) = mm_strdup("index"); } -#line 40455 "preproc.c" /* yacc.c:1652 */ +#line 41120 "preproc.c" break; - case 758: -#line 5276 "preproc.y" /* yacc.c:1652 */ - { + case 758: /* am_type: TABLE */ +#line 5276 "preproc.y" + { (yyval.str) = mm_strdup("table"); } -#line 40463 "preproc.c" /* yacc.c:1652 */ +#line 41128 "preproc.c" break; - case 759: -#line 5284 "preproc.y" /* yacc.c:1652 */ - { + case 759: /* CreateTrigStmt: CREATE TRIGGER name TriggerActionTime TriggerEvents ON qualified_name TriggerReferencing TriggerForSpec TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */ +#line 5284 "preproc.y" + { (yyval.str) = cat_str(15,mm_strdup("create trigger"),(yyvsp[-13].str),(yyvsp[-12].str),(yyvsp[-11].str),mm_strdup("on"),(yyvsp[-9].str),(yyvsp[-8].str),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("execute"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40471 "preproc.c" /* yacc.c:1652 */ +#line 41136 "preproc.c" break; - case 760: -#line 5288 "preproc.y" /* yacc.c:1652 */ - { + case 760: /* CreateTrigStmt: CREATE CONSTRAINT TRIGGER name AFTER TriggerEvents ON qualified_name OptConstrFromTable ConstraintAttributeSpec FOR EACH ROW TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */ +#line 5288 "preproc.y" + { (yyval.str) = cat_str(16,mm_strdup("create constraint trigger"),(yyvsp[-16].str),mm_strdup("after"),(yyvsp[-14].str),mm_strdup("on"),(yyvsp[-12].str),(yyvsp[-11].str),(yyvsp[-10].str),mm_strdup("for each row"),(yyvsp[-6].str),mm_strdup("execute"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40479 "preproc.c" /* yacc.c:1652 */ +#line 41144 "preproc.c" break; - case 761: -#line 5296 "preproc.y" /* yacc.c:1652 */ - { + case 761: /* TriggerActionTime: BEFORE */ +#line 5296 "preproc.y" + { (yyval.str) = mm_strdup("before"); } -#line 40487 "preproc.c" /* yacc.c:1652 */ +#line 41152 "preproc.c" break; - case 762: -#line 5300 "preproc.y" /* yacc.c:1652 */ - { + case 762: /* TriggerActionTime: AFTER */ +#line 5300 "preproc.y" + { (yyval.str) = mm_strdup("after"); } -#line 40495 "preproc.c" /* yacc.c:1652 */ +#line 41160 "preproc.c" break; - case 763: -#line 5304 "preproc.y" /* yacc.c:1652 */ - { + case 763: /* TriggerActionTime: INSTEAD OF */ +#line 5304 "preproc.y" + { (yyval.str) = mm_strdup("instead of"); } -#line 40503 "preproc.c" /* yacc.c:1652 */ +#line 41168 "preproc.c" break; - case 764: -#line 5312 "preproc.y" /* yacc.c:1652 */ - { + case 764: /* TriggerEvents: TriggerOneEvent */ +#line 5312 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40511 "preproc.c" /* yacc.c:1652 */ +#line 41176 "preproc.c" break; - case 765: -#line 5316 "preproc.y" /* yacc.c:1652 */ - { + case 765: /* TriggerEvents: TriggerEvents OR TriggerOneEvent */ +#line 5316 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("or"),(yyvsp[0].str)); } -#line 40519 "preproc.c" /* yacc.c:1652 */ +#line 41184 "preproc.c" break; - case 766: -#line 5324 "preproc.y" /* yacc.c:1652 */ - { + case 766: /* TriggerOneEvent: INSERT */ +#line 5324 "preproc.y" + { (yyval.str) = mm_strdup("insert"); } -#line 40527 "preproc.c" /* yacc.c:1652 */ +#line 41192 "preproc.c" break; - case 767: -#line 5328 "preproc.y" /* yacc.c:1652 */ - { + case 767: /* TriggerOneEvent: DELETE_P */ +#line 5328 "preproc.y" + { (yyval.str) = mm_strdup("delete"); } -#line 40535 "preproc.c" /* yacc.c:1652 */ +#line 41200 "preproc.c" break; - case 768: -#line 5332 "preproc.y" /* yacc.c:1652 */ - { + case 768: /* TriggerOneEvent: UPDATE */ +#line 5332 "preproc.y" + { (yyval.str) = mm_strdup("update"); } -#line 40543 "preproc.c" /* yacc.c:1652 */ +#line 41208 "preproc.c" break; - case 769: -#line 5336 "preproc.y" /* yacc.c:1652 */ - { + case 769: /* TriggerOneEvent: UPDATE OF columnList */ +#line 5336 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("update of"),(yyvsp[0].str)); } -#line 40551 "preproc.c" /* yacc.c:1652 */ +#line 41216 "preproc.c" break; - case 770: -#line 5340 "preproc.y" /* yacc.c:1652 */ - { + case 770: /* TriggerOneEvent: TRUNCATE */ +#line 5340 "preproc.y" + { (yyval.str) = mm_strdup("truncate"); } -#line 40559 "preproc.c" /* yacc.c:1652 */ +#line 41224 "preproc.c" break; - case 771: -#line 5348 "preproc.y" /* yacc.c:1652 */ - { + case 771: /* TriggerReferencing: REFERENCING TriggerTransitions */ +#line 5348 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("referencing"),(yyvsp[0].str)); } -#line 40567 "preproc.c" /* yacc.c:1652 */ +#line 41232 "preproc.c" break; - case 772: -#line 5352 "preproc.y" /* yacc.c:1652 */ - { + case 772: /* TriggerReferencing: %empty */ +#line 5352 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40574 "preproc.c" /* yacc.c:1652 */ +#line 41239 "preproc.c" break; - case 773: -#line 5359 "preproc.y" /* yacc.c:1652 */ - { + case 773: /* TriggerTransitions: TriggerTransition */ +#line 5359 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40582 "preproc.c" /* yacc.c:1652 */ +#line 41247 "preproc.c" break; - case 774: -#line 5363 "preproc.y" /* yacc.c:1652 */ - { + case 774: /* TriggerTransitions: TriggerTransitions TriggerTransition */ +#line 5363 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40590 "preproc.c" /* yacc.c:1652 */ +#line 41255 "preproc.c" break; - case 775: -#line 5371 "preproc.y" /* yacc.c:1652 */ - { + case 775: /* TriggerTransition: TransitionOldOrNew TransitionRowOrTable opt_as TransitionRelName */ +#line 5371 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40598 "preproc.c" /* yacc.c:1652 */ +#line 41263 "preproc.c" break; - case 776: -#line 5379 "preproc.y" /* yacc.c:1652 */ - { + case 776: /* TransitionOldOrNew: NEW */ +#line 5379 "preproc.y" + { (yyval.str) = mm_strdup("new"); } -#line 40606 "preproc.c" /* yacc.c:1652 */ +#line 41271 "preproc.c" break; - case 777: -#line 5383 "preproc.y" /* yacc.c:1652 */ - { + case 777: /* TransitionOldOrNew: OLD */ +#line 5383 "preproc.y" + { (yyval.str) = mm_strdup("old"); } -#line 40614 "preproc.c" /* yacc.c:1652 */ +#line 41279 "preproc.c" break; - case 778: -#line 5391 "preproc.y" /* yacc.c:1652 */ - { + case 778: /* TransitionRowOrTable: TABLE */ +#line 5391 "preproc.y" + { (yyval.str) = mm_strdup("table"); } -#line 40622 "preproc.c" /* yacc.c:1652 */ +#line 41287 "preproc.c" break; - case 779: -#line 5395 "preproc.y" /* yacc.c:1652 */ - { + case 779: /* TransitionRowOrTable: ROW */ +#line 5395 "preproc.y" + { (yyval.str) = mm_strdup("row"); } -#line 40630 "preproc.c" /* yacc.c:1652 */ +#line 41295 "preproc.c" break; - case 780: -#line 5403 "preproc.y" /* yacc.c:1652 */ - { + case 780: /* TransitionRelName: ColId */ +#line 5403 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40638 "preproc.c" /* yacc.c:1652 */ +#line 41303 "preproc.c" break; - case 781: -#line 5411 "preproc.y" /* yacc.c:1652 */ - { + case 781: /* TriggerForSpec: FOR TriggerForOptEach TriggerForType */ +#line 5411 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("for"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40646 "preproc.c" /* yacc.c:1652 */ +#line 41311 "preproc.c" break; - case 782: -#line 5415 "preproc.y" /* yacc.c:1652 */ - { + case 782: /* TriggerForSpec: %empty */ +#line 5415 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40653 "preproc.c" /* yacc.c:1652 */ +#line 41318 "preproc.c" break; - case 783: -#line 5422 "preproc.y" /* yacc.c:1652 */ - { + case 783: /* TriggerForOptEach: EACH */ +#line 5422 "preproc.y" + { (yyval.str) = mm_strdup("each"); } -#line 40661 "preproc.c" /* yacc.c:1652 */ +#line 41326 "preproc.c" break; - case 784: -#line 5426 "preproc.y" /* yacc.c:1652 */ - { + case 784: /* TriggerForOptEach: %empty */ +#line 5426 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40668 "preproc.c" /* yacc.c:1652 */ +#line 41333 "preproc.c" break; - case 785: -#line 5433 "preproc.y" /* yacc.c:1652 */ - { + case 785: /* TriggerForType: ROW */ +#line 5433 "preproc.y" + { (yyval.str) = mm_strdup("row"); } -#line 40676 "preproc.c" /* yacc.c:1652 */ +#line 41341 "preproc.c" break; - case 786: -#line 5437 "preproc.y" /* yacc.c:1652 */ - { + case 786: /* TriggerForType: STATEMENT */ +#line 5437 "preproc.y" + { (yyval.str) = mm_strdup("statement"); } -#line 40684 "preproc.c" /* yacc.c:1652 */ +#line 41349 "preproc.c" break; - case 787: -#line 5445 "preproc.y" /* yacc.c:1652 */ - { + case 787: /* TriggerWhen: WHEN '(' a_expr ')' */ +#line 5445 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("when ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40692 "preproc.c" /* yacc.c:1652 */ +#line 41357 "preproc.c" break; - case 788: -#line 5449 "preproc.y" /* yacc.c:1652 */ - { + case 788: /* TriggerWhen: %empty */ +#line 5449 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40699 "preproc.c" /* yacc.c:1652 */ +#line 41364 "preproc.c" break; - case 789: -#line 5456 "preproc.y" /* yacc.c:1652 */ - { + case 789: /* FUNCTION_or_PROCEDURE: FUNCTION */ +#line 5456 "preproc.y" + { (yyval.str) = mm_strdup("function"); } -#line 40707 "preproc.c" /* yacc.c:1652 */ +#line 41372 "preproc.c" break; - case 790: -#line 5460 "preproc.y" /* yacc.c:1652 */ - { + case 790: /* FUNCTION_or_PROCEDURE: PROCEDURE */ +#line 5460 "preproc.y" + { (yyval.str) = mm_strdup("procedure"); } -#line 40715 "preproc.c" /* yacc.c:1652 */ +#line 41380 "preproc.c" break; - case 791: -#line 5468 "preproc.y" /* yacc.c:1652 */ - { + case 791: /* TriggerFuncArgs: TriggerFuncArg */ +#line 5468 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40723 "preproc.c" /* yacc.c:1652 */ +#line 41388 "preproc.c" break; - case 792: -#line 5472 "preproc.y" /* yacc.c:1652 */ - { + case 792: /* TriggerFuncArgs: TriggerFuncArgs ',' TriggerFuncArg */ +#line 5472 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 40731 "preproc.c" /* yacc.c:1652 */ +#line 41396 "preproc.c" break; - case 793: -#line 5476 "preproc.y" /* yacc.c:1652 */ - { + case 793: /* TriggerFuncArgs: %empty */ +#line 5476 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40738 "preproc.c" /* yacc.c:1652 */ +#line 41403 "preproc.c" break; - case 794: -#line 5483 "preproc.y" /* yacc.c:1652 */ - { + case 794: /* TriggerFuncArg: Iconst */ +#line 5483 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40746 "preproc.c" /* yacc.c:1652 */ +#line 41411 "preproc.c" break; - case 795: -#line 5487 "preproc.y" /* yacc.c:1652 */ - { + case 795: /* TriggerFuncArg: ecpg_fconst */ +#line 5487 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40754 "preproc.c" /* yacc.c:1652 */ +#line 41419 "preproc.c" break; - case 796: -#line 5491 "preproc.y" /* yacc.c:1652 */ - { + case 796: /* TriggerFuncArg: ecpg_sconst */ +#line 5491 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40762 "preproc.c" /* yacc.c:1652 */ +#line 41427 "preproc.c" break; - case 797: -#line 5495 "preproc.y" /* yacc.c:1652 */ - { + case 797: /* TriggerFuncArg: ColLabel */ +#line 5495 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40770 "preproc.c" /* yacc.c:1652 */ +#line 41435 "preproc.c" break; - case 798: -#line 5503 "preproc.y" /* yacc.c:1652 */ - { + case 798: /* OptConstrFromTable: FROM qualified_name */ +#line 5503 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("from"),(yyvsp[0].str)); } -#line 40778 "preproc.c" /* yacc.c:1652 */ +#line 41443 "preproc.c" break; - case 799: -#line 5507 "preproc.y" /* yacc.c:1652 */ - { + case 799: /* OptConstrFromTable: %empty */ +#line 5507 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40785 "preproc.c" /* yacc.c:1652 */ +#line 41450 "preproc.c" break; - case 800: -#line 5514 "preproc.y" /* yacc.c:1652 */ - { + case 800: /* ConstraintAttributeSpec: %empty */ +#line 5514 "preproc.y" + { (yyval.str)=EMPTY; } -#line 40792 "preproc.c" /* yacc.c:1652 */ +#line 41457 "preproc.c" break; - case 801: -#line 5517 "preproc.y" /* yacc.c:1652 */ - { + case 801: /* ConstraintAttributeSpec: ConstraintAttributeSpec ConstraintAttributeElem */ +#line 5517 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40800 "preproc.c" /* yacc.c:1652 */ +#line 41465 "preproc.c" break; - case 802: -#line 5525 "preproc.y" /* yacc.c:1652 */ - { + case 802: /* ConstraintAttributeElem: NOT DEFERRABLE */ +#line 5525 "preproc.y" + { (yyval.str) = mm_strdup("not deferrable"); } -#line 40808 "preproc.c" /* yacc.c:1652 */ +#line 41473 "preproc.c" break; - case 803: -#line 5529 "preproc.y" /* yacc.c:1652 */ - { + case 803: /* ConstraintAttributeElem: DEFERRABLE */ +#line 5529 "preproc.y" + { (yyval.str) = mm_strdup("deferrable"); } -#line 40816 "preproc.c" /* yacc.c:1652 */ +#line 41481 "preproc.c" break; - case 804: -#line 5533 "preproc.y" /* yacc.c:1652 */ - { + case 804: /* ConstraintAttributeElem: INITIALLY IMMEDIATE */ +#line 5533 "preproc.y" + { (yyval.str) = mm_strdup("initially immediate"); } -#line 40824 "preproc.c" /* yacc.c:1652 */ +#line 41489 "preproc.c" break; - case 805: -#line 5537 "preproc.y" /* yacc.c:1652 */ - { + case 805: /* ConstraintAttributeElem: INITIALLY DEFERRED */ +#line 5537 "preproc.y" + { (yyval.str) = mm_strdup("initially deferred"); } -#line 40832 "preproc.c" /* yacc.c:1652 */ +#line 41497 "preproc.c" break; - case 806: -#line 5541 "preproc.y" /* yacc.c:1652 */ - { + case 806: /* ConstraintAttributeElem: NOT VALID */ +#line 5541 "preproc.y" + { (yyval.str) = mm_strdup("not valid"); } -#line 40840 "preproc.c" /* yacc.c:1652 */ +#line 41505 "preproc.c" break; - case 807: -#line 5545 "preproc.y" /* yacc.c:1652 */ - { + case 807: /* ConstraintAttributeElem: NO INHERIT */ +#line 5545 "preproc.y" + { (yyval.str) = mm_strdup("no inherit"); } -#line 40848 "preproc.c" /* yacc.c:1652 */ +#line 41513 "preproc.c" break; - case 808: -#line 5553 "preproc.y" /* yacc.c:1652 */ - { + case 808: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */ +#line 5553 "preproc.y" + { (yyval.str) = cat_str(8,mm_strdup("create event trigger"),(yyvsp[-7].str),mm_strdup("on"),(yyvsp[-5].str),mm_strdup("execute"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("( )")); } -#line 40856 "preproc.c" /* yacc.c:1652 */ +#line 41521 "preproc.c" break; - case 809: -#line 5557 "preproc.y" /* yacc.c:1652 */ - { + case 809: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel WHEN event_trigger_when_list EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */ +#line 5557 "preproc.y" + { (yyval.str) = cat_str(10,mm_strdup("create event trigger"),(yyvsp[-9].str),mm_strdup("on"),(yyvsp[-7].str),mm_strdup("when"),(yyvsp[-5].str),mm_strdup("execute"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("( )")); } -#line 40864 "preproc.c" /* yacc.c:1652 */ +#line 41529 "preproc.c" break; - case 810: -#line 5565 "preproc.y" /* yacc.c:1652 */ - { + case 810: /* event_trigger_when_list: event_trigger_when_item */ +#line 5565 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 40872 "preproc.c" /* yacc.c:1652 */ +#line 41537 "preproc.c" break; - case 811: -#line 5569 "preproc.y" /* yacc.c:1652 */ - { + case 811: /* event_trigger_when_list: event_trigger_when_list AND event_trigger_when_item */ +#line 5569 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 40880 "preproc.c" /* yacc.c:1652 */ +#line 41545 "preproc.c" break; - case 812: -#line 5577 "preproc.y" /* yacc.c:1652 */ - { + case 812: /* event_trigger_when_item: ColId IN_P '(' event_trigger_value_list ')' */ +#line 5577 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-4].str),mm_strdup("in ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40888 "preproc.c" /* yacc.c:1652 */ +#line 41553 "preproc.c" break; - case 813: -#line 5585 "preproc.y" /* yacc.c:1652 */ - { + case 813: /* event_trigger_value_list: SCONST */ +#line 5585 "preproc.y" + { (yyval.str) = mm_strdup("sconst"); } -#line 40896 "preproc.c" /* yacc.c:1652 */ +#line 41561 "preproc.c" break; - case 814: -#line 5589 "preproc.y" /* yacc.c:1652 */ - { + case 814: /* event_trigger_value_list: event_trigger_value_list ',' SCONST */ +#line 5589 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup(", sconst")); } -#line 40904 "preproc.c" /* yacc.c:1652 */ +#line 41569 "preproc.c" break; - case 815: -#line 5597 "preproc.y" /* yacc.c:1652 */ - { + case 815: /* AlterEventTrigStmt: ALTER EVENT TRIGGER name enable_trigger */ +#line 5597 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter event trigger"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40912 "preproc.c" /* yacc.c:1652 */ +#line 41577 "preproc.c" break; - case 816: -#line 5605 "preproc.y" /* yacc.c:1652 */ - { + case 816: /* enable_trigger: ENABLE_P */ +#line 5605 "preproc.y" + { (yyval.str) = mm_strdup("enable"); } -#line 40920 "preproc.c" /* yacc.c:1652 */ +#line 41585 "preproc.c" break; - case 817: -#line 5609 "preproc.y" /* yacc.c:1652 */ - { + case 817: /* enable_trigger: ENABLE_P REPLICA */ +#line 5609 "preproc.y" + { (yyval.str) = mm_strdup("enable replica"); } -#line 40928 "preproc.c" /* yacc.c:1652 */ +#line 41593 "preproc.c" break; - case 818: -#line 5613 "preproc.y" /* yacc.c:1652 */ - { + case 818: /* enable_trigger: ENABLE_P ALWAYS */ +#line 5613 "preproc.y" + { (yyval.str) = mm_strdup("enable always"); } -#line 40936 "preproc.c" /* yacc.c:1652 */ +#line 41601 "preproc.c" break; - case 819: -#line 5617 "preproc.y" /* yacc.c:1652 */ - { + case 819: /* enable_trigger: DISABLE_P */ +#line 5617 "preproc.y" + { (yyval.str) = mm_strdup("disable"); } -#line 40944 "preproc.c" /* yacc.c:1652 */ +#line 41609 "preproc.c" break; - case 820: -#line 5625 "preproc.y" /* yacc.c:1652 */ - { + case 820: /* CreateAssertionStmt: CREATE ASSERTION any_name CHECK '(' a_expr ')' ConstraintAttributeSpec */ +#line 5625 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(6,mm_strdup("create assertion"),(yyvsp[-5].str),mm_strdup("check ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 40953 "preproc.c" /* yacc.c:1652 */ +#line 41618 "preproc.c" break; - case 821: -#line 5634 "preproc.y" /* yacc.c:1652 */ - { + case 821: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name aggr_args definition */ +#line 5634 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("create"),(yyvsp[-4].str),mm_strdup("aggregate"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40961 "preproc.c" /* yacc.c:1652 */ +#line 41626 "preproc.c" break; - case 822: -#line 5638 "preproc.y" /* yacc.c:1652 */ - { + case 822: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name old_aggr_definition */ +#line 5638 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("create"),(yyvsp[-3].str),mm_strdup("aggregate"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40969 "preproc.c" /* yacc.c:1652 */ +#line 41634 "preproc.c" break; - case 823: -#line 5642 "preproc.y" /* yacc.c:1652 */ - { + case 823: /* DefineStmt: CREATE OPERATOR any_operator definition */ +#line 5642 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("create operator"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40977 "preproc.c" /* yacc.c:1652 */ +#line 41642 "preproc.c" break; - case 824: -#line 5646 "preproc.y" /* yacc.c:1652 */ - { + case 824: /* DefineStmt: CREATE TYPE_P any_name definition */ +#line 5646 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("create type"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40985 "preproc.c" /* yacc.c:1652 */ +#line 41650 "preproc.c" break; - case 825: -#line 5650 "preproc.y" /* yacc.c:1652 */ - { + case 825: /* DefineStmt: CREATE TYPE_P any_name */ +#line 5650 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("create type"),(yyvsp[0].str)); } -#line 40993 "preproc.c" /* yacc.c:1652 */ +#line 41658 "preproc.c" break; - case 826: -#line 5654 "preproc.y" /* yacc.c:1652 */ - { + case 826: /* DefineStmt: CREATE TYPE_P any_name AS '(' OptTableFuncElementList ')' */ +#line 5654 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("create type"),(yyvsp[-4].str),mm_strdup("as ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41001 "preproc.c" /* yacc.c:1652 */ +#line 41666 "preproc.c" break; - case 827: -#line 5658 "preproc.y" /* yacc.c:1652 */ - { + case 827: /* DefineStmt: CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')' */ +#line 5658 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("create type"),(yyvsp[-5].str),mm_strdup("as enum ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41009 "preproc.c" /* yacc.c:1652 */ +#line 41674 "preproc.c" break; - case 828: -#line 5662 "preproc.y" /* yacc.c:1652 */ - { + case 828: /* DefineStmt: CREATE TYPE_P any_name AS RANGE definition */ +#line 5662 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create type"),(yyvsp[-3].str),mm_strdup("as range"),(yyvsp[0].str)); } -#line 41017 "preproc.c" /* yacc.c:1652 */ +#line 41682 "preproc.c" break; - case 829: -#line 5666 "preproc.y" /* yacc.c:1652 */ - { + case 829: /* DefineStmt: CREATE TEXT_P SEARCH PARSER any_name definition */ +#line 5666 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("create text search parser"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41025 "preproc.c" /* yacc.c:1652 */ +#line 41690 "preproc.c" break; - case 830: -#line 5670 "preproc.y" /* yacc.c:1652 */ - { + case 830: /* DefineStmt: CREATE TEXT_P SEARCH DICTIONARY any_name definition */ +#line 5670 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("create text search dictionary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41033 "preproc.c" /* yacc.c:1652 */ +#line 41698 "preproc.c" break; - case 831: -#line 5674 "preproc.y" /* yacc.c:1652 */ - { + case 831: /* DefineStmt: CREATE TEXT_P SEARCH TEMPLATE any_name definition */ +#line 5674 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("create text search template"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41041 "preproc.c" /* yacc.c:1652 */ +#line 41706 "preproc.c" break; - case 832: -#line 5678 "preproc.y" /* yacc.c:1652 */ - { + case 832: /* DefineStmt: CREATE TEXT_P SEARCH CONFIGURATION any_name definition */ +#line 5678 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("create text search configuration"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41049 "preproc.c" /* yacc.c:1652 */ +#line 41714 "preproc.c" break; - case 833: -#line 5682 "preproc.y" /* yacc.c:1652 */ - { + case 833: /* DefineStmt: CREATE COLLATION any_name definition */ +#line 5682 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("create collation"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41057 "preproc.c" /* yacc.c:1652 */ +#line 41722 "preproc.c" break; - case 834: -#line 5686 "preproc.y" /* yacc.c:1652 */ - { + case 834: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name definition */ +#line 5686 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("create collation if not exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41065 "preproc.c" /* yacc.c:1652 */ +#line 41730 "preproc.c" break; - case 835: -#line 5690 "preproc.y" /* yacc.c:1652 */ - { + case 835: /* DefineStmt: CREATE COLLATION any_name FROM any_name */ +#line 5690 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create collation"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 41073 "preproc.c" /* yacc.c:1652 */ +#line 41738 "preproc.c" break; - case 836: -#line 5694 "preproc.y" /* yacc.c:1652 */ - { + case 836: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name FROM any_name */ +#line 5694 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create collation if not exists"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 41081 "preproc.c" /* yacc.c:1652 */ +#line 41746 "preproc.c" break; - case 837: -#line 5702 "preproc.y" /* yacc.c:1652 */ - { + case 837: /* definition: '(' def_list ')' */ +#line 5702 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41089 "preproc.c" /* yacc.c:1652 */ +#line 41754 "preproc.c" break; - case 838: -#line 5710 "preproc.y" /* yacc.c:1652 */ - { + case 838: /* def_list: def_elem */ +#line 5710 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41097 "preproc.c" /* yacc.c:1652 */ +#line 41762 "preproc.c" break; - case 839: -#line 5714 "preproc.y" /* yacc.c:1652 */ - { + case 839: /* def_list: def_list ',' def_elem */ +#line 5714 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41105 "preproc.c" /* yacc.c:1652 */ +#line 41770 "preproc.c" break; - case 840: -#line 5722 "preproc.y" /* yacc.c:1652 */ - { + case 840: /* def_elem: ColLabel '=' def_arg */ +#line 5722 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 41113 "preproc.c" /* yacc.c:1652 */ +#line 41778 "preproc.c" break; - case 841: -#line 5726 "preproc.y" /* yacc.c:1652 */ - { + case 841: /* def_elem: ColLabel */ +#line 5726 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41121 "preproc.c" /* yacc.c:1652 */ +#line 41786 "preproc.c" break; - case 842: -#line 5734 "preproc.y" /* yacc.c:1652 */ - { + case 842: /* def_arg: func_type */ +#line 5734 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41129 "preproc.c" /* yacc.c:1652 */ +#line 41794 "preproc.c" break; - case 843: -#line 5738 "preproc.y" /* yacc.c:1652 */ - { + case 843: /* def_arg: reserved_keyword */ +#line 5738 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41137 "preproc.c" /* yacc.c:1652 */ +#line 41802 "preproc.c" break; - case 844: -#line 5742 "preproc.y" /* yacc.c:1652 */ - { + case 844: /* def_arg: qual_all_Op */ +#line 5742 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41145 "preproc.c" /* yacc.c:1652 */ +#line 41810 "preproc.c" break; - case 845: -#line 5746 "preproc.y" /* yacc.c:1652 */ - { + case 845: /* def_arg: NumericOnly */ +#line 5746 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41153 "preproc.c" /* yacc.c:1652 */ +#line 41818 "preproc.c" break; - case 846: -#line 5750 "preproc.y" /* yacc.c:1652 */ - { + case 846: /* def_arg: ecpg_sconst */ +#line 5750 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41161 "preproc.c" /* yacc.c:1652 */ +#line 41826 "preproc.c" break; - case 847: -#line 5754 "preproc.y" /* yacc.c:1652 */ - { + case 847: /* def_arg: NONE */ +#line 5754 "preproc.y" + { (yyval.str) = mm_strdup("none"); } -#line 41169 "preproc.c" /* yacc.c:1652 */ +#line 41834 "preproc.c" break; - case 848: -#line 5762 "preproc.y" /* yacc.c:1652 */ - { + case 848: /* old_aggr_definition: '(' old_aggr_list ')' */ +#line 5762 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41177 "preproc.c" /* yacc.c:1652 */ +#line 41842 "preproc.c" break; - case 849: -#line 5770 "preproc.y" /* yacc.c:1652 */ - { + case 849: /* old_aggr_list: old_aggr_elem */ +#line 5770 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41185 "preproc.c" /* yacc.c:1652 */ +#line 41850 "preproc.c" break; - case 850: -#line 5774 "preproc.y" /* yacc.c:1652 */ - { + case 850: /* old_aggr_list: old_aggr_list ',' old_aggr_elem */ +#line 5774 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41193 "preproc.c" /* yacc.c:1652 */ +#line 41858 "preproc.c" break; - case 851: -#line 5782 "preproc.y" /* yacc.c:1652 */ - { + case 851: /* old_aggr_elem: ecpg_ident '=' def_arg */ +#line 5782 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 41201 "preproc.c" /* yacc.c:1652 */ +#line 41866 "preproc.c" break; - case 852: -#line 5790 "preproc.y" /* yacc.c:1652 */ - { + case 852: /* opt_enum_val_list: enum_val_list */ +#line 5790 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41209 "preproc.c" /* yacc.c:1652 */ +#line 41874 "preproc.c" break; - case 853: -#line 5794 "preproc.y" /* yacc.c:1652 */ - { + case 853: /* opt_enum_val_list: %empty */ +#line 5794 "preproc.y" + { (yyval.str)=EMPTY; } -#line 41216 "preproc.c" /* yacc.c:1652 */ +#line 41881 "preproc.c" break; - case 854: -#line 5801 "preproc.y" /* yacc.c:1652 */ - { + case 854: /* enum_val_list: ecpg_sconst */ +#line 5801 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41224 "preproc.c" /* yacc.c:1652 */ +#line 41889 "preproc.c" break; - case 855: -#line 5805 "preproc.y" /* yacc.c:1652 */ - { + case 855: /* enum_val_list: enum_val_list ',' ecpg_sconst */ +#line 5805 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41232 "preproc.c" /* yacc.c:1652 */ +#line 41897 "preproc.c" break; - case 856: -#line 5813 "preproc.y" /* yacc.c:1652 */ - { + case 856: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists ecpg_sconst */ +#line 5813 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter type"),(yyvsp[-4].str),mm_strdup("add value"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41240 "preproc.c" /* yacc.c:1652 */ +#line 41905 "preproc.c" break; - case 857: -#line 5817 "preproc.y" /* yacc.c:1652 */ - { + case 857: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists ecpg_sconst BEFORE ecpg_sconst */ +#line 5817 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter type"),(yyvsp[-6].str),mm_strdup("add value"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("before"),(yyvsp[0].str)); } -#line 41248 "preproc.c" /* yacc.c:1652 */ +#line 41913 "preproc.c" break; - case 858: -#line 5821 "preproc.y" /* yacc.c:1652 */ - { + case 858: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists ecpg_sconst AFTER ecpg_sconst */ +#line 5821 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter type"),(yyvsp[-6].str),mm_strdup("add value"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("after"),(yyvsp[0].str)); } -#line 41256 "preproc.c" /* yacc.c:1652 */ +#line 41921 "preproc.c" break; - case 859: -#line 5825 "preproc.y" /* yacc.c:1652 */ - { + case 859: /* AlterEnumStmt: ALTER TYPE_P any_name RENAME VALUE_P ecpg_sconst TO ecpg_sconst */ +#line 5825 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter type"),(yyvsp[-5].str),mm_strdup("rename value"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 41264 "preproc.c" /* yacc.c:1652 */ +#line 41929 "preproc.c" break; - case 860: -#line 5833 "preproc.y" /* yacc.c:1652 */ - { + case 860: /* opt_if_not_exists: IF_P NOT EXISTS */ +#line 5833 "preproc.y" + { (yyval.str) = mm_strdup("if not exists"); } -#line 41272 "preproc.c" /* yacc.c:1652 */ +#line 41937 "preproc.c" break; - case 861: -#line 5837 "preproc.y" /* yacc.c:1652 */ - { + case 861: /* opt_if_not_exists: %empty */ +#line 5837 "preproc.y" + { (yyval.str)=EMPTY; } -#line 41279 "preproc.c" /* yacc.c:1652 */ +#line 41944 "preproc.c" break; - case 862: -#line 5844 "preproc.y" /* yacc.c:1652 */ - { + case 862: /* CreateOpClassStmt: CREATE OPERATOR CLASS any_name opt_default FOR TYPE_P Typename USING access_method opt_opfamily AS opclass_item_list */ +#line 5844 "preproc.y" + { (yyval.str) = cat_str(10,mm_strdup("create operator class"),(yyvsp[-9].str),(yyvsp[-8].str),mm_strdup("for type"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 41287 "preproc.c" /* yacc.c:1652 */ +#line 41952 "preproc.c" break; - case 863: -#line 5852 "preproc.y" /* yacc.c:1652 */ - { + case 863: /* opclass_item_list: opclass_item */ +#line 5852 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41295 "preproc.c" /* yacc.c:1652 */ +#line 41960 "preproc.c" break; - case 864: -#line 5856 "preproc.y" /* yacc.c:1652 */ - { + case 864: /* opclass_item_list: opclass_item_list ',' opclass_item */ +#line 5856 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41303 "preproc.c" /* yacc.c:1652 */ +#line 41968 "preproc.c" break; - case 865: -#line 5864 "preproc.y" /* yacc.c:1652 */ - { + case 865: /* opclass_item: OPERATOR Iconst any_operator opclass_purpose opt_recheck */ +#line 5864 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("operator"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41311 "preproc.c" /* yacc.c:1652 */ +#line 41976 "preproc.c" break; - case 866: -#line 5868 "preproc.y" /* yacc.c:1652 */ - { + case 866: /* opclass_item: OPERATOR Iconst operator_with_argtypes opclass_purpose opt_recheck */ +#line 5868 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("operator"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41319 "preproc.c" /* yacc.c:1652 */ +#line 41984 "preproc.c" break; - case 867: -#line 5872 "preproc.y" /* yacc.c:1652 */ - { + case 867: /* opclass_item: FUNCTION Iconst function_with_argtypes */ +#line 5872 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("function"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41327 "preproc.c" /* yacc.c:1652 */ +#line 41992 "preproc.c" break; - case 868: -#line 5876 "preproc.y" /* yacc.c:1652 */ - { + case 868: /* opclass_item: FUNCTION Iconst '(' type_list ')' function_with_argtypes */ +#line 5876 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("function"),(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 41335 "preproc.c" /* yacc.c:1652 */ +#line 42000 "preproc.c" break; - case 869: -#line 5880 "preproc.y" /* yacc.c:1652 */ - { + case 869: /* opclass_item: STORAGE Typename */ +#line 5880 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("storage"),(yyvsp[0].str)); } -#line 41343 "preproc.c" /* yacc.c:1652 */ +#line 42008 "preproc.c" break; - case 870: -#line 5888 "preproc.y" /* yacc.c:1652 */ - { + case 870: /* opt_default: DEFAULT */ +#line 5888 "preproc.y" + { (yyval.str) = mm_strdup("default"); } -#line 41351 "preproc.c" /* yacc.c:1652 */ +#line 42016 "preproc.c" break; - case 871: -#line 5892 "preproc.y" /* yacc.c:1652 */ - { + case 871: /* opt_default: %empty */ +#line 5892 "preproc.y" + { (yyval.str)=EMPTY; } -#line 41358 "preproc.c" /* yacc.c:1652 */ +#line 42023 "preproc.c" break; - case 872: -#line 5899 "preproc.y" /* yacc.c:1652 */ - { + case 872: /* opt_opfamily: FAMILY any_name */ +#line 5899 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("family"),(yyvsp[0].str)); } -#line 41366 "preproc.c" /* yacc.c:1652 */ +#line 42031 "preproc.c" break; - case 873: -#line 5903 "preproc.y" /* yacc.c:1652 */ - { + case 873: /* opt_opfamily: %empty */ +#line 5903 "preproc.y" + { (yyval.str)=EMPTY; } -#line 41373 "preproc.c" /* yacc.c:1652 */ +#line 42038 "preproc.c" break; - case 874: -#line 5910 "preproc.y" /* yacc.c:1652 */ - { + case 874: /* opclass_purpose: FOR SEARCH */ +#line 5910 "preproc.y" + { (yyval.str) = mm_strdup("for search"); } -#line 41381 "preproc.c" /* yacc.c:1652 */ +#line 42046 "preproc.c" break; - case 875: -#line 5914 "preproc.y" /* yacc.c:1652 */ - { + case 875: /* opclass_purpose: FOR ORDER BY any_name */ +#line 5914 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("for order by"),(yyvsp[0].str)); } -#line 41389 "preproc.c" /* yacc.c:1652 */ +#line 42054 "preproc.c" break; - case 876: -#line 5918 "preproc.y" /* yacc.c:1652 */ - { + case 876: /* opclass_purpose: %empty */ +#line 5918 "preproc.y" + { (yyval.str)=EMPTY; } -#line 41396 "preproc.c" /* yacc.c:1652 */ +#line 42061 "preproc.c" break; - case 877: -#line 5925 "preproc.y" /* yacc.c:1652 */ - { + case 877: /* opt_recheck: RECHECK */ +#line 5925 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = mm_strdup("recheck"); } -#line 41405 "preproc.c" /* yacc.c:1652 */ +#line 42070 "preproc.c" break; - case 878: -#line 5930 "preproc.y" /* yacc.c:1652 */ - { + case 878: /* opt_recheck: %empty */ +#line 5930 "preproc.y" + { (yyval.str)=EMPTY; } -#line 41412 "preproc.c" /* yacc.c:1652 */ +#line 42077 "preproc.c" break; - case 879: -#line 5937 "preproc.y" /* yacc.c:1652 */ - { + case 879: /* CreateOpFamilyStmt: CREATE OPERATOR FAMILY any_name USING access_method */ +#line 5937 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create operator family"),(yyvsp[-2].str),mm_strdup("using"),(yyvsp[0].str)); } -#line 41420 "preproc.c" /* yacc.c:1652 */ +#line 42085 "preproc.c" break; - case 880: -#line 5945 "preproc.y" /* yacc.c:1652 */ - { + case 880: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING access_method ADD_P opclass_item_list */ +#line 5945 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-4].str),mm_strdup("using"),(yyvsp[-2].str),mm_strdup("add"),(yyvsp[0].str)); } -#line 41428 "preproc.c" /* yacc.c:1652 */ +#line 42093 "preproc.c" break; - case 881: -#line 5949 "preproc.y" /* yacc.c:1652 */ - { + case 881: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING access_method DROP opclass_drop_list */ +#line 5949 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-4].str),mm_strdup("using"),(yyvsp[-2].str),mm_strdup("drop"),(yyvsp[0].str)); } -#line 41436 "preproc.c" /* yacc.c:1652 */ +#line 42101 "preproc.c" break; - case 882: -#line 5957 "preproc.y" /* yacc.c:1652 */ - { + case 882: /* opclass_drop_list: opclass_drop */ +#line 5957 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41444 "preproc.c" /* yacc.c:1652 */ +#line 42109 "preproc.c" break; - case 883: -#line 5961 "preproc.y" /* yacc.c:1652 */ - { + case 883: /* opclass_drop_list: opclass_drop_list ',' opclass_drop */ +#line 5961 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41452 "preproc.c" /* yacc.c:1652 */ +#line 42117 "preproc.c" break; - case 884: -#line 5969 "preproc.y" /* yacc.c:1652 */ - { + case 884: /* opclass_drop: OPERATOR Iconst '(' type_list ')' */ +#line 5969 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("operator"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41460 "preproc.c" /* yacc.c:1652 */ +#line 42125 "preproc.c" break; - case 885: -#line 5973 "preproc.y" /* yacc.c:1652 */ - { + case 885: /* opclass_drop: FUNCTION Iconst '(' type_list ')' */ +#line 5973 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("function"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41468 "preproc.c" /* yacc.c:1652 */ +#line 42133 "preproc.c" break; - case 886: -#line 5981 "preproc.y" /* yacc.c:1652 */ - { + case 886: /* DropOpClassStmt: DROP OPERATOR CLASS any_name USING access_method opt_drop_behavior */ +#line 5981 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("drop operator class"),(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41476 "preproc.c" /* yacc.c:1652 */ +#line 42141 "preproc.c" break; - case 887: -#line 5985 "preproc.y" /* yacc.c:1652 */ - { + case 887: /* DropOpClassStmt: DROP OPERATOR CLASS IF_P EXISTS any_name USING access_method opt_drop_behavior */ +#line 5985 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("drop operator class if exists"),(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41484 "preproc.c" /* yacc.c:1652 */ +#line 42149 "preproc.c" break; - case 888: -#line 5993 "preproc.y" /* yacc.c:1652 */ - { + case 888: /* DropOpFamilyStmt: DROP OPERATOR FAMILY any_name USING access_method opt_drop_behavior */ +#line 5993 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("drop operator family"),(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41492 "preproc.c" /* yacc.c:1652 */ +#line 42157 "preproc.c" break; - case 889: -#line 5997 "preproc.y" /* yacc.c:1652 */ - { + case 889: /* DropOpFamilyStmt: DROP OPERATOR FAMILY IF_P EXISTS any_name USING access_method opt_drop_behavior */ +#line 5997 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("drop operator family if exists"),(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41500 "preproc.c" /* yacc.c:1652 */ +#line 42165 "preproc.c" break; - case 890: -#line 6005 "preproc.y" /* yacc.c:1652 */ - { + case 890: /* DropOwnedStmt: DROP OWNED BY role_list opt_drop_behavior */ +#line 6005 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop owned by"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41508 "preproc.c" /* yacc.c:1652 */ +#line 42173 "preproc.c" break; - case 891: -#line 6013 "preproc.y" /* yacc.c:1652 */ - { + case 891: /* ReassignOwnedStmt: REASSIGN OWNED BY role_list TO RoleSpec */ +#line 6013 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("reassign owned by"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 41516 "preproc.c" /* yacc.c:1652 */ +#line 42181 "preproc.c" break; - case 892: -#line 6021 "preproc.y" /* yacc.c:1652 */ - { + case 892: /* DropStmt: DROP drop_type_any_name IF_P EXISTS any_name_list opt_drop_behavior */ +#line 6021 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("drop"),(yyvsp[-4].str),mm_strdup("if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41524 "preproc.c" /* yacc.c:1652 */ +#line 42189 "preproc.c" break; - case 893: -#line 6025 "preproc.y" /* yacc.c:1652 */ - { + case 893: /* DropStmt: DROP drop_type_any_name any_name_list opt_drop_behavior */ +#line 6025 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("drop"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41532 "preproc.c" /* yacc.c:1652 */ +#line 42197 "preproc.c" break; - case 894: -#line 6029 "preproc.y" /* yacc.c:1652 */ - { + case 894: /* DropStmt: DROP drop_type_name IF_P EXISTS name_list opt_drop_behavior */ +#line 6029 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("drop"),(yyvsp[-4].str),mm_strdup("if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41540 "preproc.c" /* yacc.c:1652 */ +#line 42205 "preproc.c" break; - case 895: -#line 6033 "preproc.y" /* yacc.c:1652 */ - { + case 895: /* DropStmt: DROP drop_type_name name_list opt_drop_behavior */ +#line 6033 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("drop"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41548 "preproc.c" /* yacc.c:1652 */ +#line 42213 "preproc.c" break; - case 896: -#line 6037 "preproc.y" /* yacc.c:1652 */ - { + case 896: /* DropStmt: DROP drop_type_name_on_any_name name ON any_name opt_drop_behavior */ +#line 6037 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("drop"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("on"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41556 "preproc.c" /* yacc.c:1652 */ +#line 42221 "preproc.c" break; - case 897: -#line 6041 "preproc.y" /* yacc.c:1652 */ - { + case 897: /* DropStmt: DROP drop_type_name_on_any_name IF_P EXISTS name ON any_name opt_drop_behavior */ +#line 6041 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("drop"),(yyvsp[-6].str),mm_strdup("if exists"),(yyvsp[-3].str),mm_strdup("on"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41564 "preproc.c" /* yacc.c:1652 */ +#line 42229 "preproc.c" break; - case 898: -#line 6045 "preproc.y" /* yacc.c:1652 */ - { + case 898: /* DropStmt: DROP TYPE_P type_name_list opt_drop_behavior */ +#line 6045 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop type"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41572 "preproc.c" /* yacc.c:1652 */ +#line 42237 "preproc.c" break; - case 899: -#line 6049 "preproc.y" /* yacc.c:1652 */ - { + case 899: /* DropStmt: DROP TYPE_P IF_P EXISTS type_name_list opt_drop_behavior */ +#line 6049 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop type if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41580 "preproc.c" /* yacc.c:1652 */ +#line 42245 "preproc.c" break; - case 900: -#line 6053 "preproc.y" /* yacc.c:1652 */ - { + case 900: /* DropStmt: DROP DOMAIN_P type_name_list opt_drop_behavior */ +#line 6053 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop domain"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41588 "preproc.c" /* yacc.c:1652 */ +#line 42253 "preproc.c" break; - case 901: -#line 6057 "preproc.y" /* yacc.c:1652 */ - { + case 901: /* DropStmt: DROP DOMAIN_P IF_P EXISTS type_name_list opt_drop_behavior */ +#line 6057 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop domain if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41596 "preproc.c" /* yacc.c:1652 */ +#line 42261 "preproc.c" break; - case 902: -#line 6061 "preproc.y" /* yacc.c:1652 */ - { + case 902: /* DropStmt: DROP INDEX CONCURRENTLY any_name_list opt_drop_behavior */ +#line 6061 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop index concurrently"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41604 "preproc.c" /* yacc.c:1652 */ +#line 42269 "preproc.c" break; - case 903: -#line 6065 "preproc.y" /* yacc.c:1652 */ - { + case 903: /* DropStmt: DROP INDEX CONCURRENTLY IF_P EXISTS any_name_list opt_drop_behavior */ +#line 6065 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop index concurrently if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41612 "preproc.c" /* yacc.c:1652 */ +#line 42277 "preproc.c" break; - case 904: -#line 6073 "preproc.y" /* yacc.c:1652 */ - { + case 904: /* drop_type_any_name: TABLE */ +#line 6073 "preproc.y" + { (yyval.str) = mm_strdup("table"); } -#line 41620 "preproc.c" /* yacc.c:1652 */ +#line 42285 "preproc.c" break; - case 905: -#line 6077 "preproc.y" /* yacc.c:1652 */ - { + case 905: /* drop_type_any_name: SEQUENCE */ +#line 6077 "preproc.y" + { (yyval.str) = mm_strdup("sequence"); } -#line 41628 "preproc.c" /* yacc.c:1652 */ +#line 42293 "preproc.c" break; - case 906: -#line 6081 "preproc.y" /* yacc.c:1652 */ - { + case 906: /* drop_type_any_name: VIEW */ +#line 6081 "preproc.y" + { (yyval.str) = mm_strdup("view"); } -#line 41636 "preproc.c" /* yacc.c:1652 */ +#line 42301 "preproc.c" break; - case 907: -#line 6085 "preproc.y" /* yacc.c:1652 */ - { + case 907: /* drop_type_any_name: MATERIALIZED VIEW */ +#line 6085 "preproc.y" + { (yyval.str) = mm_strdup("materialized view"); } -#line 41644 "preproc.c" /* yacc.c:1652 */ +#line 42309 "preproc.c" break; - case 908: -#line 6089 "preproc.y" /* yacc.c:1652 */ - { + case 908: /* drop_type_any_name: INDEX */ +#line 6089 "preproc.y" + { (yyval.str) = mm_strdup("index"); } -#line 41652 "preproc.c" /* yacc.c:1652 */ +#line 42317 "preproc.c" break; - case 909: -#line 6093 "preproc.y" /* yacc.c:1652 */ - { + case 909: /* drop_type_any_name: FOREIGN TABLE */ +#line 6093 "preproc.y" + { (yyval.str) = mm_strdup("foreign table"); } -#line 41660 "preproc.c" /* yacc.c:1652 */ +#line 42325 "preproc.c" break; - case 910: -#line 6097 "preproc.y" /* yacc.c:1652 */ - { + case 910: /* drop_type_any_name: COLLATION */ +#line 6097 "preproc.y" + { (yyval.str) = mm_strdup("collation"); } -#line 41668 "preproc.c" /* yacc.c:1652 */ +#line 42333 "preproc.c" break; - case 911: -#line 6101 "preproc.y" /* yacc.c:1652 */ - { + case 911: /* drop_type_any_name: CONVERSION_P */ +#line 6101 "preproc.y" + { (yyval.str) = mm_strdup("conversion"); } -#line 41676 "preproc.c" /* yacc.c:1652 */ +#line 42341 "preproc.c" break; - case 912: -#line 6105 "preproc.y" /* yacc.c:1652 */ - { + case 912: /* drop_type_any_name: STATISTICS */ +#line 6105 "preproc.y" + { (yyval.str) = mm_strdup("statistics"); } -#line 41684 "preproc.c" /* yacc.c:1652 */ +#line 42349 "preproc.c" break; - case 913: -#line 6109 "preproc.y" /* yacc.c:1652 */ - { + case 913: /* drop_type_any_name: TEXT_P SEARCH PARSER */ +#line 6109 "preproc.y" + { (yyval.str) = mm_strdup("text search parser"); } -#line 41692 "preproc.c" /* yacc.c:1652 */ +#line 42357 "preproc.c" break; - case 914: -#line 6113 "preproc.y" /* yacc.c:1652 */ - { + case 914: /* drop_type_any_name: TEXT_P SEARCH DICTIONARY */ +#line 6113 "preproc.y" + { (yyval.str) = mm_strdup("text search dictionary"); } -#line 41700 "preproc.c" /* yacc.c:1652 */ +#line 42365 "preproc.c" break; - case 915: -#line 6117 "preproc.y" /* yacc.c:1652 */ - { + case 915: /* drop_type_any_name: TEXT_P SEARCH TEMPLATE */ +#line 6117 "preproc.y" + { (yyval.str) = mm_strdup("text search template"); } -#line 41708 "preproc.c" /* yacc.c:1652 */ +#line 42373 "preproc.c" break; - case 916: -#line 6121 "preproc.y" /* yacc.c:1652 */ - { + case 916: /* drop_type_any_name: TEXT_P SEARCH CONFIGURATION */ +#line 6121 "preproc.y" + { (yyval.str) = mm_strdup("text search configuration"); } -#line 41716 "preproc.c" /* yacc.c:1652 */ +#line 42381 "preproc.c" break; - case 917: -#line 6129 "preproc.y" /* yacc.c:1652 */ - { + case 917: /* drop_type_name: ACCESS METHOD */ +#line 6129 "preproc.y" + { (yyval.str) = mm_strdup("access method"); } -#line 41724 "preproc.c" /* yacc.c:1652 */ +#line 42389 "preproc.c" break; - case 918: -#line 6133 "preproc.y" /* yacc.c:1652 */ - { + case 918: /* drop_type_name: EVENT TRIGGER */ +#line 6133 "preproc.y" + { (yyval.str) = mm_strdup("event trigger"); } -#line 41732 "preproc.c" /* yacc.c:1652 */ +#line 42397 "preproc.c" break; - case 919: -#line 6137 "preproc.y" /* yacc.c:1652 */ - { + case 919: /* drop_type_name: EXTENSION */ +#line 6137 "preproc.y" + { (yyval.str) = mm_strdup("extension"); } -#line 41740 "preproc.c" /* yacc.c:1652 */ +#line 42405 "preproc.c" break; - case 920: -#line 6141 "preproc.y" /* yacc.c:1652 */ - { + case 920: /* drop_type_name: FOREIGN DATA_P WRAPPER */ +#line 6141 "preproc.y" + { (yyval.str) = mm_strdup("foreign data wrapper"); } -#line 41748 "preproc.c" /* yacc.c:1652 */ +#line 42413 "preproc.c" break; - case 921: -#line 6145 "preproc.y" /* yacc.c:1652 */ - { + case 921: /* drop_type_name: PUBLICATION */ +#line 6145 "preproc.y" + { (yyval.str) = mm_strdup("publication"); } -#line 41756 "preproc.c" /* yacc.c:1652 */ +#line 42421 "preproc.c" break; - case 922: -#line 6149 "preproc.y" /* yacc.c:1652 */ - { + case 922: /* drop_type_name: SCHEMA */ +#line 6149 "preproc.y" + { (yyval.str) = mm_strdup("schema"); } -#line 41764 "preproc.c" /* yacc.c:1652 */ +#line 42429 "preproc.c" break; - case 923: -#line 6153 "preproc.y" /* yacc.c:1652 */ - { + case 923: /* drop_type_name: SERVER */ +#line 6153 "preproc.y" + { (yyval.str) = mm_strdup("server"); } -#line 41772 "preproc.c" /* yacc.c:1652 */ +#line 42437 "preproc.c" break; - case 924: -#line 6161 "preproc.y" /* yacc.c:1652 */ - { + case 924: /* drop_type_name_on_any_name: POLICY */ +#line 6161 "preproc.y" + { (yyval.str) = mm_strdup("policy"); } -#line 41780 "preproc.c" /* yacc.c:1652 */ +#line 42445 "preproc.c" break; - case 925: -#line 6165 "preproc.y" /* yacc.c:1652 */ - { + case 925: /* drop_type_name_on_any_name: RULE */ +#line 6165 "preproc.y" + { (yyval.str) = mm_strdup("rule"); } -#line 41788 "preproc.c" /* yacc.c:1652 */ +#line 42453 "preproc.c" break; - case 926: -#line 6169 "preproc.y" /* yacc.c:1652 */ - { + case 926: /* drop_type_name_on_any_name: TRIGGER */ +#line 6169 "preproc.y" + { (yyval.str) = mm_strdup("trigger"); } -#line 41796 "preproc.c" /* yacc.c:1652 */ +#line 42461 "preproc.c" break; - case 927: -#line 6177 "preproc.y" /* yacc.c:1652 */ - { + case 927: /* any_name_list: any_name */ +#line 6177 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41804 "preproc.c" /* yacc.c:1652 */ +#line 42469 "preproc.c" break; - case 928: -#line 6181 "preproc.y" /* yacc.c:1652 */ - { + case 928: /* any_name_list: any_name_list ',' any_name */ +#line 6181 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41812 "preproc.c" /* yacc.c:1652 */ +#line 42477 "preproc.c" break; - case 929: -#line 6189 "preproc.y" /* yacc.c:1652 */ - { + case 929: /* any_name: ColId */ +#line 6189 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41820 "preproc.c" /* yacc.c:1652 */ +#line 42485 "preproc.c" break; - case 930: -#line 6193 "preproc.y" /* yacc.c:1652 */ - { + case 930: /* any_name: ColId attrs */ +#line 6193 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41828 "preproc.c" /* yacc.c:1652 */ +#line 42493 "preproc.c" break; - case 931: -#line 6201 "preproc.y" /* yacc.c:1652 */ - { + case 931: /* attrs: '.' attr_name */ +#line 6201 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("."),(yyvsp[0].str)); } -#line 41836 "preproc.c" /* yacc.c:1652 */ +#line 42501 "preproc.c" break; - case 932: -#line 6205 "preproc.y" /* yacc.c:1652 */ - { + case 932: /* attrs: attrs '.' attr_name */ +#line 6205 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("."),(yyvsp[0].str)); } -#line 41844 "preproc.c" /* yacc.c:1652 */ +#line 42509 "preproc.c" break; - case 933: -#line 6213 "preproc.y" /* yacc.c:1652 */ - { + case 933: /* type_name_list: Typename */ +#line 6213 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 41852 "preproc.c" /* yacc.c:1652 */ +#line 42517 "preproc.c" break; - case 934: -#line 6217 "preproc.y" /* yacc.c:1652 */ - { + case 934: /* type_name_list: type_name_list ',' Typename */ +#line 6217 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41860 "preproc.c" /* yacc.c:1652 */ +#line 42525 "preproc.c" break; - case 935: -#line 6225 "preproc.y" /* yacc.c:1652 */ - { + case 935: /* TruncateStmt: TRUNCATE opt_table relation_expr_list opt_restart_seqs opt_drop_behavior */ +#line 6225 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("truncate"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41868 "preproc.c" /* yacc.c:1652 */ +#line 42533 "preproc.c" break; - case 936: -#line 6233 "preproc.y" /* yacc.c:1652 */ - { + case 936: /* opt_restart_seqs: CONTINUE_P IDENTITY_P */ +#line 6233 "preproc.y" + { (yyval.str) = mm_strdup("continue identity"); } -#line 41876 "preproc.c" /* yacc.c:1652 */ +#line 42541 "preproc.c" break; - case 937: -#line 6237 "preproc.y" /* yacc.c:1652 */ - { + case 937: /* opt_restart_seqs: RESTART IDENTITY_P */ +#line 6237 "preproc.y" + { (yyval.str) = mm_strdup("restart identity"); } -#line 41884 "preproc.c" /* yacc.c:1652 */ +#line 42549 "preproc.c" break; - case 938: -#line 6241 "preproc.y" /* yacc.c:1652 */ - { + case 938: /* opt_restart_seqs: %empty */ +#line 6241 "preproc.y" + { (yyval.str)=EMPTY; } -#line 41891 "preproc.c" /* yacc.c:1652 */ +#line 42556 "preproc.c" break; - case 939: -#line 6248 "preproc.y" /* yacc.c:1652 */ - { + case 939: /* CommentStmt: COMMENT ON comment_type_any_name any_name IS comment_text */ +#line 6248 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("comment on"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41899 "preproc.c" /* yacc.c:1652 */ +#line 42564 "preproc.c" break; - case 940: -#line 6252 "preproc.y" /* yacc.c:1652 */ - { + case 940: /* CommentStmt: COMMENT ON comment_type_name name IS comment_text */ +#line 6252 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("comment on"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41907 "preproc.c" /* yacc.c:1652 */ +#line 42572 "preproc.c" break; - case 941: -#line 6256 "preproc.y" /* yacc.c:1652 */ - { + case 941: /* CommentStmt: COMMENT ON TYPE_P Typename IS comment_text */ +#line 6256 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("comment on type"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41915 "preproc.c" /* yacc.c:1652 */ +#line 42580 "preproc.c" break; - case 942: -#line 6260 "preproc.y" /* yacc.c:1652 */ - { + case 942: /* CommentStmt: COMMENT ON DOMAIN_P Typename IS comment_text */ +#line 6260 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("comment on domain"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41923 "preproc.c" /* yacc.c:1652 */ +#line 42588 "preproc.c" break; - case 943: -#line 6264 "preproc.y" /* yacc.c:1652 */ - { + case 943: /* CommentStmt: COMMENT ON AGGREGATE aggregate_with_argtypes IS comment_text */ +#line 6264 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("comment on aggregate"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41931 "preproc.c" /* yacc.c:1652 */ +#line 42596 "preproc.c" break; - case 944: -#line 6268 "preproc.y" /* yacc.c:1652 */ - { + case 944: /* CommentStmt: COMMENT ON FUNCTION function_with_argtypes IS comment_text */ +#line 6268 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("comment on function"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41939 "preproc.c" /* yacc.c:1652 */ +#line 42604 "preproc.c" break; - case 945: -#line 6272 "preproc.y" /* yacc.c:1652 */ - { + case 945: /* CommentStmt: COMMENT ON OPERATOR operator_with_argtypes IS comment_text */ +#line 6272 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("comment on operator"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41947 "preproc.c" /* yacc.c:1652 */ +#line 42612 "preproc.c" break; - case 946: -#line 6276 "preproc.y" /* yacc.c:1652 */ - { + case 946: /* CommentStmt: COMMENT ON CONSTRAINT name ON any_name IS comment_text */ +#line 6276 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("comment on constraint"),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41955 "preproc.c" /* yacc.c:1652 */ +#line 42620 "preproc.c" break; - case 947: -#line 6280 "preproc.y" /* yacc.c:1652 */ - { + case 947: /* CommentStmt: COMMENT ON CONSTRAINT name ON DOMAIN_P any_name IS comment_text */ +#line 6280 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("comment on constraint"),(yyvsp[-5].str),mm_strdup("on domain"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41963 "preproc.c" /* yacc.c:1652 */ +#line 42628 "preproc.c" break; - case 948: -#line 6284 "preproc.y" /* yacc.c:1652 */ - { + case 948: /* CommentStmt: COMMENT ON POLICY name ON any_name IS comment_text */ +#line 6284 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("comment on policy"),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41971 "preproc.c" /* yacc.c:1652 */ +#line 42636 "preproc.c" break; - case 949: -#line 6288 "preproc.y" /* yacc.c:1652 */ - { + case 949: /* CommentStmt: COMMENT ON PROCEDURE function_with_argtypes IS comment_text */ +#line 6288 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("comment on procedure"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41979 "preproc.c" /* yacc.c:1652 */ +#line 42644 "preproc.c" break; - case 950: -#line 6292 "preproc.y" /* yacc.c:1652 */ - { + case 950: /* CommentStmt: COMMENT ON ROUTINE function_with_argtypes IS comment_text */ +#line 6292 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("comment on routine"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41987 "preproc.c" /* yacc.c:1652 */ +#line 42652 "preproc.c" break; - case 951: -#line 6296 "preproc.y" /* yacc.c:1652 */ - { + case 951: /* CommentStmt: COMMENT ON RULE name ON any_name IS comment_text */ +#line 6296 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("comment on rule"),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 41995 "preproc.c" /* yacc.c:1652 */ +#line 42660 "preproc.c" break; - case 952: -#line 6300 "preproc.y" /* yacc.c:1652 */ - { + case 952: /* CommentStmt: COMMENT ON TRANSFORM FOR Typename LANGUAGE name IS comment_text */ +#line 6300 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("comment on transform for"),(yyvsp[-4].str),mm_strdup("language"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42003 "preproc.c" /* yacc.c:1652 */ +#line 42668 "preproc.c" break; - case 953: -#line 6304 "preproc.y" /* yacc.c:1652 */ - { + case 953: /* CommentStmt: COMMENT ON TRIGGER name ON any_name IS comment_text */ +#line 6304 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("comment on trigger"),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42011 "preproc.c" /* yacc.c:1652 */ +#line 42676 "preproc.c" break; - case 954: -#line 6308 "preproc.y" /* yacc.c:1652 */ - { + case 954: /* CommentStmt: COMMENT ON OPERATOR CLASS any_name USING access_method IS comment_text */ +#line 6308 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("comment on operator class"),(yyvsp[-4].str),mm_strdup("using"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42019 "preproc.c" /* yacc.c:1652 */ +#line 42684 "preproc.c" break; - case 955: -#line 6312 "preproc.y" /* yacc.c:1652 */ - { + case 955: /* CommentStmt: COMMENT ON OPERATOR FAMILY any_name USING access_method IS comment_text */ +#line 6312 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("comment on operator family"),(yyvsp[-4].str),mm_strdup("using"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42027 "preproc.c" /* yacc.c:1652 */ +#line 42692 "preproc.c" break; - case 956: -#line 6316 "preproc.y" /* yacc.c:1652 */ - { + case 956: /* CommentStmt: COMMENT ON LARGE_P OBJECT_P NumericOnly IS comment_text */ +#line 6316 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("comment on large object"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42035 "preproc.c" /* yacc.c:1652 */ +#line 42700 "preproc.c" break; - case 957: -#line 6320 "preproc.y" /* yacc.c:1652 */ - { + case 957: /* CommentStmt: COMMENT ON CAST '(' Typename AS Typename ')' IS comment_text */ +#line 6320 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("comment on cast ("),(yyvsp[-5].str),mm_strdup("as"),(yyvsp[-3].str),mm_strdup(") is"),(yyvsp[0].str)); } -#line 42043 "preproc.c" /* yacc.c:1652 */ +#line 42708 "preproc.c" break; - case 958: -#line 6328 "preproc.y" /* yacc.c:1652 */ - { + case 958: /* comment_type_any_name: COLUMN */ +#line 6328 "preproc.y" + { (yyval.str) = mm_strdup("column"); } -#line 42051 "preproc.c" /* yacc.c:1652 */ +#line 42716 "preproc.c" break; - case 959: -#line 6332 "preproc.y" /* yacc.c:1652 */ - { + case 959: /* comment_type_any_name: INDEX */ +#line 6332 "preproc.y" + { (yyval.str) = mm_strdup("index"); } -#line 42059 "preproc.c" /* yacc.c:1652 */ +#line 42724 "preproc.c" break; - case 960: -#line 6336 "preproc.y" /* yacc.c:1652 */ - { + case 960: /* comment_type_any_name: SEQUENCE */ +#line 6336 "preproc.y" + { (yyval.str) = mm_strdup("sequence"); } -#line 42067 "preproc.c" /* yacc.c:1652 */ +#line 42732 "preproc.c" break; - case 961: -#line 6340 "preproc.y" /* yacc.c:1652 */ - { + case 961: /* comment_type_any_name: STATISTICS */ +#line 6340 "preproc.y" + { (yyval.str) = mm_strdup("statistics"); } -#line 42075 "preproc.c" /* yacc.c:1652 */ +#line 42740 "preproc.c" break; - case 962: -#line 6344 "preproc.y" /* yacc.c:1652 */ - { + case 962: /* comment_type_any_name: TABLE */ +#line 6344 "preproc.y" + { (yyval.str) = mm_strdup("table"); } -#line 42083 "preproc.c" /* yacc.c:1652 */ +#line 42748 "preproc.c" break; - case 963: -#line 6348 "preproc.y" /* yacc.c:1652 */ - { + case 963: /* comment_type_any_name: VIEW */ +#line 6348 "preproc.y" + { (yyval.str) = mm_strdup("view"); } -#line 42091 "preproc.c" /* yacc.c:1652 */ +#line 42756 "preproc.c" break; - case 964: -#line 6352 "preproc.y" /* yacc.c:1652 */ - { + case 964: /* comment_type_any_name: MATERIALIZED VIEW */ +#line 6352 "preproc.y" + { (yyval.str) = mm_strdup("materialized view"); } -#line 42099 "preproc.c" /* yacc.c:1652 */ +#line 42764 "preproc.c" break; - case 965: -#line 6356 "preproc.y" /* yacc.c:1652 */ - { + case 965: /* comment_type_any_name: COLLATION */ +#line 6356 "preproc.y" + { (yyval.str) = mm_strdup("collation"); } -#line 42107 "preproc.c" /* yacc.c:1652 */ +#line 42772 "preproc.c" break; - case 966: -#line 6360 "preproc.y" /* yacc.c:1652 */ - { + case 966: /* comment_type_any_name: CONVERSION_P */ +#line 6360 "preproc.y" + { (yyval.str) = mm_strdup("conversion"); } -#line 42115 "preproc.c" /* yacc.c:1652 */ +#line 42780 "preproc.c" break; - case 967: -#line 6364 "preproc.y" /* yacc.c:1652 */ - { + case 967: /* comment_type_any_name: FOREIGN TABLE */ +#line 6364 "preproc.y" + { (yyval.str) = mm_strdup("foreign table"); } -#line 42123 "preproc.c" /* yacc.c:1652 */ +#line 42788 "preproc.c" break; - case 968: -#line 6368 "preproc.y" /* yacc.c:1652 */ - { + case 968: /* comment_type_any_name: TEXT_P SEARCH CONFIGURATION */ +#line 6368 "preproc.y" + { (yyval.str) = mm_strdup("text search configuration"); } -#line 42131 "preproc.c" /* yacc.c:1652 */ +#line 42796 "preproc.c" break; - case 969: -#line 6372 "preproc.y" /* yacc.c:1652 */ - { + case 969: /* comment_type_any_name: TEXT_P SEARCH DICTIONARY */ +#line 6372 "preproc.y" + { (yyval.str) = mm_strdup("text search dictionary"); } -#line 42139 "preproc.c" /* yacc.c:1652 */ +#line 42804 "preproc.c" break; - case 970: -#line 6376 "preproc.y" /* yacc.c:1652 */ - { + case 970: /* comment_type_any_name: TEXT_P SEARCH PARSER */ +#line 6376 "preproc.y" + { (yyval.str) = mm_strdup("text search parser"); } -#line 42147 "preproc.c" /* yacc.c:1652 */ +#line 42812 "preproc.c" break; - case 971: -#line 6380 "preproc.y" /* yacc.c:1652 */ - { + case 971: /* comment_type_any_name: TEXT_P SEARCH TEMPLATE */ +#line 6380 "preproc.y" + { (yyval.str) = mm_strdup("text search template"); } -#line 42155 "preproc.c" /* yacc.c:1652 */ +#line 42820 "preproc.c" break; - case 972: -#line 6388 "preproc.y" /* yacc.c:1652 */ - { + case 972: /* comment_type_name: ACCESS METHOD */ +#line 6388 "preproc.y" + { (yyval.str) = mm_strdup("access method"); } -#line 42163 "preproc.c" /* yacc.c:1652 */ +#line 42828 "preproc.c" break; - case 973: -#line 6392 "preproc.y" /* yacc.c:1652 */ - { + case 973: /* comment_type_name: DATABASE */ +#line 6392 "preproc.y" + { (yyval.str) = mm_strdup("database"); } -#line 42171 "preproc.c" /* yacc.c:1652 */ +#line 42836 "preproc.c" break; - case 974: -#line 6396 "preproc.y" /* yacc.c:1652 */ - { + case 974: /* comment_type_name: EVENT TRIGGER */ +#line 6396 "preproc.y" + { (yyval.str) = mm_strdup("event trigger"); } -#line 42179 "preproc.c" /* yacc.c:1652 */ +#line 42844 "preproc.c" break; - case 975: -#line 6400 "preproc.y" /* yacc.c:1652 */ - { + case 975: /* comment_type_name: EXTENSION */ +#line 6400 "preproc.y" + { (yyval.str) = mm_strdup("extension"); } -#line 42187 "preproc.c" /* yacc.c:1652 */ +#line 42852 "preproc.c" break; - case 976: -#line 6404 "preproc.y" /* yacc.c:1652 */ - { + case 976: /* comment_type_name: FOREIGN DATA_P WRAPPER */ +#line 6404 "preproc.y" + { (yyval.str) = mm_strdup("foreign data wrapper"); } -#line 42195 "preproc.c" /* yacc.c:1652 */ +#line 42860 "preproc.c" break; - case 977: -#line 6408 "preproc.y" /* yacc.c:1652 */ - { + case 977: /* comment_type_name: opt_procedural LANGUAGE */ +#line 6408 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("language")); } -#line 42203 "preproc.c" /* yacc.c:1652 */ +#line 42868 "preproc.c" break; - case 978: -#line 6412 "preproc.y" /* yacc.c:1652 */ - { + case 978: /* comment_type_name: PUBLICATION */ +#line 6412 "preproc.y" + { (yyval.str) = mm_strdup("publication"); } -#line 42211 "preproc.c" /* yacc.c:1652 */ +#line 42876 "preproc.c" break; - case 979: -#line 6416 "preproc.y" /* yacc.c:1652 */ - { + case 979: /* comment_type_name: ROLE */ +#line 6416 "preproc.y" + { (yyval.str) = mm_strdup("role"); } -#line 42219 "preproc.c" /* yacc.c:1652 */ +#line 42884 "preproc.c" break; - case 980: -#line 6420 "preproc.y" /* yacc.c:1652 */ - { + case 980: /* comment_type_name: SCHEMA */ +#line 6420 "preproc.y" + { (yyval.str) = mm_strdup("schema"); } -#line 42227 "preproc.c" /* yacc.c:1652 */ +#line 42892 "preproc.c" break; - case 981: -#line 6424 "preproc.y" /* yacc.c:1652 */ - { + case 981: /* comment_type_name: SERVER */ +#line 6424 "preproc.y" + { (yyval.str) = mm_strdup("server"); } -#line 42235 "preproc.c" /* yacc.c:1652 */ +#line 42900 "preproc.c" break; - case 982: -#line 6428 "preproc.y" /* yacc.c:1652 */ - { + case 982: /* comment_type_name: SUBSCRIPTION */ +#line 6428 "preproc.y" + { (yyval.str) = mm_strdup("subscription"); } -#line 42243 "preproc.c" /* yacc.c:1652 */ +#line 42908 "preproc.c" break; - case 983: -#line 6432 "preproc.y" /* yacc.c:1652 */ - { + case 983: /* comment_type_name: TABLESPACE */ +#line 6432 "preproc.y" + { (yyval.str) = mm_strdup("tablespace"); } -#line 42251 "preproc.c" /* yacc.c:1652 */ +#line 42916 "preproc.c" break; - case 984: -#line 6440 "preproc.y" /* yacc.c:1652 */ - { + case 984: /* comment_text: ecpg_sconst */ +#line 6440 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 42259 "preproc.c" /* yacc.c:1652 */ +#line 42924 "preproc.c" break; - case 985: -#line 6444 "preproc.y" /* yacc.c:1652 */ - { + case 985: /* comment_text: NULL_P */ +#line 6444 "preproc.y" + { (yyval.str) = mm_strdup("null"); } -#line 42267 "preproc.c" /* yacc.c:1652 */ +#line 42932 "preproc.c" break; - case 986: -#line 6452 "preproc.y" /* yacc.c:1652 */ - { + case 986: /* SecLabelStmt: SECURITY LABEL opt_provider ON security_label_type_any_name any_name IS security_label */ +#line 6452 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42275 "preproc.c" /* yacc.c:1652 */ +#line 42940 "preproc.c" break; - case 987: -#line 6456 "preproc.y" /* yacc.c:1652 */ - { + case 987: /* SecLabelStmt: SECURITY LABEL opt_provider ON security_label_type_name name IS security_label */ +#line 6456 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42283 "preproc.c" /* yacc.c:1652 */ +#line 42948 "preproc.c" break; - case 988: -#line 6460 "preproc.y" /* yacc.c:1652 */ - { + case 988: /* SecLabelStmt: SECURITY LABEL opt_provider ON TYPE_P Typename IS security_label */ +#line 6460 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on type"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42291 "preproc.c" /* yacc.c:1652 */ +#line 42956 "preproc.c" break; - case 989: -#line 6464 "preproc.y" /* yacc.c:1652 */ - { + case 989: /* SecLabelStmt: SECURITY LABEL opt_provider ON DOMAIN_P Typename IS security_label */ +#line 6464 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on domain"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42299 "preproc.c" /* yacc.c:1652 */ +#line 42964 "preproc.c" break; - case 990: -#line 6468 "preproc.y" /* yacc.c:1652 */ - { + case 990: /* SecLabelStmt: SECURITY LABEL opt_provider ON AGGREGATE aggregate_with_argtypes IS security_label */ +#line 6468 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on aggregate"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42307 "preproc.c" /* yacc.c:1652 */ +#line 42972 "preproc.c" break; - case 991: -#line 6472 "preproc.y" /* yacc.c:1652 */ - { + case 991: /* SecLabelStmt: SECURITY LABEL opt_provider ON FUNCTION function_with_argtypes IS security_label */ +#line 6472 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on function"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42315 "preproc.c" /* yacc.c:1652 */ +#line 42980 "preproc.c" break; - case 992: -#line 6476 "preproc.y" /* yacc.c:1652 */ - { + case 992: /* SecLabelStmt: SECURITY LABEL opt_provider ON LARGE_P OBJECT_P NumericOnly IS security_label */ +#line 6476 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-6].str),mm_strdup("on large object"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42323 "preproc.c" /* yacc.c:1652 */ +#line 42988 "preproc.c" break; - case 993: -#line 6480 "preproc.y" /* yacc.c:1652 */ - { + case 993: /* SecLabelStmt: SECURITY LABEL opt_provider ON PROCEDURE function_with_argtypes IS security_label */ +#line 6480 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on procedure"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42331 "preproc.c" /* yacc.c:1652 */ +#line 42996 "preproc.c" break; - case 994: -#line 6484 "preproc.y" /* yacc.c:1652 */ - { + case 994: /* SecLabelStmt: SECURITY LABEL opt_provider ON ROUTINE function_with_argtypes IS security_label */ +#line 6484 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on routine"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 42339 "preproc.c" /* yacc.c:1652 */ +#line 43004 "preproc.c" break; - case 995: -#line 6492 "preproc.y" /* yacc.c:1652 */ - { + case 995: /* opt_provider: FOR NonReservedWord_or_Sconst */ +#line 6492 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("for"),(yyvsp[0].str)); } -#line 42347 "preproc.c" /* yacc.c:1652 */ +#line 43012 "preproc.c" break; - case 996: -#line 6496 "preproc.y" /* yacc.c:1652 */ - { + case 996: /* opt_provider: %empty */ +#line 6496 "preproc.y" + { (yyval.str)=EMPTY; } -#line 42354 "preproc.c" /* yacc.c:1652 */ +#line 43019 "preproc.c" break; - case 997: -#line 6503 "preproc.y" /* yacc.c:1652 */ - { + case 997: /* security_label_type_any_name: COLUMN */ +#line 6503 "preproc.y" + { (yyval.str) = mm_strdup("column"); } -#line 42362 "preproc.c" /* yacc.c:1652 */ +#line 43027 "preproc.c" break; - case 998: -#line 6507 "preproc.y" /* yacc.c:1652 */ - { + case 998: /* security_label_type_any_name: FOREIGN TABLE */ +#line 6507 "preproc.y" + { (yyval.str) = mm_strdup("foreign table"); } -#line 42370 "preproc.c" /* yacc.c:1652 */ +#line 43035 "preproc.c" break; - case 999: -#line 6511 "preproc.y" /* yacc.c:1652 */ - { + case 999: /* security_label_type_any_name: SEQUENCE */ +#line 6511 "preproc.y" + { (yyval.str) = mm_strdup("sequence"); } -#line 42378 "preproc.c" /* yacc.c:1652 */ +#line 43043 "preproc.c" break; - case 1000: -#line 6515 "preproc.y" /* yacc.c:1652 */ - { + case 1000: /* security_label_type_any_name: TABLE */ +#line 6515 "preproc.y" + { (yyval.str) = mm_strdup("table"); } -#line 42386 "preproc.c" /* yacc.c:1652 */ +#line 43051 "preproc.c" break; - case 1001: -#line 6519 "preproc.y" /* yacc.c:1652 */ - { + case 1001: /* security_label_type_any_name: VIEW */ +#line 6519 "preproc.y" + { (yyval.str) = mm_strdup("view"); } -#line 42394 "preproc.c" /* yacc.c:1652 */ +#line 43059 "preproc.c" break; - case 1002: -#line 6523 "preproc.y" /* yacc.c:1652 */ - { + case 1002: /* security_label_type_any_name: MATERIALIZED VIEW */ +#line 6523 "preproc.y" + { (yyval.str) = mm_strdup("materialized view"); } -#line 42402 "preproc.c" /* yacc.c:1652 */ +#line 43067 "preproc.c" break; - case 1003: -#line 6531 "preproc.y" /* yacc.c:1652 */ - { + case 1003: /* security_label_type_name: DATABASE */ +#line 6531 "preproc.y" + { (yyval.str) = mm_strdup("database"); } -#line 42410 "preproc.c" /* yacc.c:1652 */ +#line 43075 "preproc.c" break; - case 1004: -#line 6535 "preproc.y" /* yacc.c:1652 */ - { + case 1004: /* security_label_type_name: EVENT TRIGGER */ +#line 6535 "preproc.y" + { (yyval.str) = mm_strdup("event trigger"); } -#line 42418 "preproc.c" /* yacc.c:1652 */ +#line 43083 "preproc.c" break; - case 1005: -#line 6539 "preproc.y" /* yacc.c:1652 */ - { + case 1005: /* security_label_type_name: opt_procedural LANGUAGE */ +#line 6539 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("language")); } -#line 42426 "preproc.c" /* yacc.c:1652 */ +#line 43091 "preproc.c" break; - case 1006: -#line 6543 "preproc.y" /* yacc.c:1652 */ - { + case 1006: /* security_label_type_name: PUBLICATION */ +#line 6543 "preproc.y" + { (yyval.str) = mm_strdup("publication"); } -#line 42434 "preproc.c" /* yacc.c:1652 */ +#line 43099 "preproc.c" break; - case 1007: -#line 6547 "preproc.y" /* yacc.c:1652 */ - { + case 1007: /* security_label_type_name: ROLE */ +#line 6547 "preproc.y" + { (yyval.str) = mm_strdup("role"); } -#line 42442 "preproc.c" /* yacc.c:1652 */ +#line 43107 "preproc.c" break; - case 1008: -#line 6551 "preproc.y" /* yacc.c:1652 */ - { + case 1008: /* security_label_type_name: SCHEMA */ +#line 6551 "preproc.y" + { (yyval.str) = mm_strdup("schema"); } -#line 42450 "preproc.c" /* yacc.c:1652 */ +#line 43115 "preproc.c" break; - case 1009: -#line 6555 "preproc.y" /* yacc.c:1652 */ - { + case 1009: /* security_label_type_name: SUBSCRIPTION */ +#line 6555 "preproc.y" + { (yyval.str) = mm_strdup("subscription"); } -#line 42458 "preproc.c" /* yacc.c:1652 */ +#line 43123 "preproc.c" break; - case 1010: -#line 6559 "preproc.y" /* yacc.c:1652 */ - { + case 1010: /* security_label_type_name: TABLESPACE */ +#line 6559 "preproc.y" + { (yyval.str) = mm_strdup("tablespace"); } -#line 42466 "preproc.c" /* yacc.c:1652 */ +#line 43131 "preproc.c" break; - case 1011: -#line 6567 "preproc.y" /* yacc.c:1652 */ - { + case 1011: /* security_label: ecpg_sconst */ +#line 6567 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 42474 "preproc.c" /* yacc.c:1652 */ +#line 43139 "preproc.c" break; - case 1012: -#line 6571 "preproc.y" /* yacc.c:1652 */ - { + case 1012: /* security_label: NULL_P */ +#line 6571 "preproc.y" + { (yyval.str) = mm_strdup("null"); } -#line 42482 "preproc.c" /* yacc.c:1652 */ +#line 43147 "preproc.c" break; - case 1013: -#line 6579 "preproc.y" /* yacc.c:1652 */ - { + case 1013: /* FetchStmt: FETCH fetch_args */ +#line 6579 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("fetch"),(yyvsp[0].str)); } -#line 42490 "preproc.c" /* yacc.c:1652 */ +#line 43155 "preproc.c" break; - case 1014: -#line 6583 "preproc.y" /* yacc.c:1652 */ - { + case 1014: /* FetchStmt: MOVE fetch_args */ +#line 6583 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("move"),(yyvsp[0].str)); } -#line 42498 "preproc.c" /* yacc.c:1652 */ +#line 43163 "preproc.c" break; - case 1015: -#line 6587 "preproc.y" /* yacc.c:1652 */ - { + case 1015: /* FetchStmt: FETCH fetch_args ecpg_fetch_into */ +#line 6587 "preproc.y" + { (yyval.str) = cat2_str(mm_strdup("fetch"), (yyvsp[-1].str)); } -#line 42506 "preproc.c" /* yacc.c:1652 */ +#line 43171 "preproc.c" break; - case 1016: -#line 6591 "preproc.y" /* yacc.c:1652 */ - { + case 1016: /* FetchStmt: FETCH FORWARD cursor_name opt_ecpg_fetch_into */ +#line 6591 "preproc.y" + { char *cursor_marker = (yyvsp[-1].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[-1].str); add_additional_variables((yyvsp[-1].str), false); (yyval.str) = cat_str(2, mm_strdup("fetch forward"), cursor_marker); } -#line 42516 "preproc.c" /* yacc.c:1652 */ +#line 43181 "preproc.c" break; - case 1017: -#line 6597 "preproc.y" /* yacc.c:1652 */ - { + case 1017: /* FetchStmt: FETCH FORWARD from_in cursor_name opt_ecpg_fetch_into */ +#line 6597 "preproc.y" + { char *cursor_marker = (yyvsp[-1].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[-1].str); add_additional_variables((yyvsp[-1].str), false); (yyval.str) = cat_str(2, mm_strdup("fetch forward from"), cursor_marker); } -#line 42526 "preproc.c" /* yacc.c:1652 */ +#line 43191 "preproc.c" break; - case 1018: -#line 6603 "preproc.y" /* yacc.c:1652 */ - { + case 1018: /* FetchStmt: FETCH BACKWARD cursor_name opt_ecpg_fetch_into */ +#line 6603 "preproc.y" + { char *cursor_marker = (yyvsp[-1].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[-1].str); add_additional_variables((yyvsp[-1].str), false); (yyval.str) = cat_str(2, mm_strdup("fetch backward"), cursor_marker); } -#line 42536 "preproc.c" /* yacc.c:1652 */ +#line 43201 "preproc.c" break; - case 1019: -#line 6609 "preproc.y" /* yacc.c:1652 */ - { + case 1019: /* FetchStmt: FETCH BACKWARD from_in cursor_name opt_ecpg_fetch_into */ +#line 6609 "preproc.y" + { char *cursor_marker = (yyvsp[-1].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[-1].str); add_additional_variables((yyvsp[-1].str), false); (yyval.str) = cat_str(2, mm_strdup("fetch backward from"), cursor_marker); } -#line 42546 "preproc.c" /* yacc.c:1652 */ +#line 43211 "preproc.c" break; - case 1020: -#line 6615 "preproc.y" /* yacc.c:1652 */ - { + case 1020: /* FetchStmt: MOVE FORWARD cursor_name */ +#line 6615 "preproc.y" + { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); add_additional_variables((yyvsp[0].str), false); (yyval.str) = cat_str(2, mm_strdup("move forward"), cursor_marker); } -#line 42556 "preproc.c" /* yacc.c:1652 */ +#line 43221 "preproc.c" break; - case 1021: -#line 6621 "preproc.y" /* yacc.c:1652 */ - { + case 1021: /* FetchStmt: MOVE FORWARD from_in cursor_name */ +#line 6621 "preproc.y" + { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); add_additional_variables((yyvsp[0].str), false); (yyval.str) = cat_str(2, mm_strdup("move forward from"), cursor_marker); } -#line 42566 "preproc.c" /* yacc.c:1652 */ +#line 43231 "preproc.c" break; - case 1022: -#line 6627 "preproc.y" /* yacc.c:1652 */ - { + case 1022: /* FetchStmt: MOVE BACKWARD cursor_name */ +#line 6627 "preproc.y" + { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); add_additional_variables((yyvsp[0].str), false); (yyval.str) = cat_str(2, mm_strdup("move backward"), cursor_marker); } -#line 42576 "preproc.c" /* yacc.c:1652 */ +#line 43241 "preproc.c" break; - case 1023: -#line 6633 "preproc.y" /* yacc.c:1652 */ - { + case 1023: /* FetchStmt: MOVE BACKWARD from_in cursor_name */ +#line 6633 "preproc.y" + { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); add_additional_variables((yyvsp[0].str), false); (yyval.str) = cat_str(2, mm_strdup("move backward from"), cursor_marker); } -#line 42586 "preproc.c" /* yacc.c:1652 */ +#line 43251 "preproc.c" break; - case 1024: -#line 6643 "preproc.y" /* yacc.c:1652 */ - { + case 1024: /* fetch_args: cursor_name */ +#line 6643 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42597,12 +43262,12 @@ (yyval.str) = (yyvsp[0].str); } -#line 42601 "preproc.c" /* yacc.c:1652 */ +#line 43266 "preproc.c" break; - case 1025: -#line 6654 "preproc.y" /* yacc.c:1652 */ - { + case 1025: /* fetch_args: from_in cursor_name */ +#line 6654 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42612,12 +43277,12 @@ (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42616 "preproc.c" /* yacc.c:1652 */ +#line 43281 "preproc.c" break; - case 1026: -#line 6665 "preproc.y" /* yacc.c:1652 */ - { + case 1026: /* fetch_args: NEXT opt_from_in cursor_name */ +#line 6665 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42627,12 +43292,12 @@ (yyval.str) = cat_str(3,mm_strdup("next"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42631 "preproc.c" /* yacc.c:1652 */ +#line 43296 "preproc.c" break; - case 1027: -#line 6676 "preproc.y" /* yacc.c:1652 */ - { + case 1027: /* fetch_args: PRIOR opt_from_in cursor_name */ +#line 6676 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42642,12 +43307,12 @@ (yyval.str) = cat_str(3,mm_strdup("prior"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42646 "preproc.c" /* yacc.c:1652 */ +#line 43311 "preproc.c" break; - case 1028: -#line 6687 "preproc.y" /* yacc.c:1652 */ - { + case 1028: /* fetch_args: FIRST_P opt_from_in cursor_name */ +#line 6687 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42657,12 +43322,12 @@ (yyval.str) = cat_str(3,mm_strdup("first"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42661 "preproc.c" /* yacc.c:1652 */ +#line 43326 "preproc.c" break; - case 1029: -#line 6698 "preproc.y" /* yacc.c:1652 */ - { + case 1029: /* fetch_args: LAST_P opt_from_in cursor_name */ +#line 6698 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42672,12 +43337,12 @@ (yyval.str) = cat_str(3,mm_strdup("last"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42676 "preproc.c" /* yacc.c:1652 */ +#line 43341 "preproc.c" break; - case 1030: -#line 6709 "preproc.y" /* yacc.c:1652 */ - { + case 1030: /* fetch_args: ABSOLUTE_P SignedIconst opt_from_in cursor_name */ +#line 6709 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42692,12 +43357,12 @@ (yyval.str) = cat_str(4,mm_strdup("absolute"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42696 "preproc.c" /* yacc.c:1652 */ +#line 43361 "preproc.c" break; - case 1031: -#line 6725 "preproc.y" /* yacc.c:1652 */ - { + case 1031: /* fetch_args: RELATIVE_P SignedIconst opt_from_in cursor_name */ +#line 6725 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42712,12 +43377,12 @@ (yyval.str) = cat_str(4,mm_strdup("relative"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42716 "preproc.c" /* yacc.c:1652 */ +#line 43381 "preproc.c" break; - case 1032: -#line 6741 "preproc.y" /* yacc.c:1652 */ - { + case 1032: /* fetch_args: SignedIconst opt_from_in cursor_name */ +#line 6741 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42732,12 +43397,12 @@ (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42736 "preproc.c" /* yacc.c:1652 */ +#line 43401 "preproc.c" break; - case 1033: -#line 6757 "preproc.y" /* yacc.c:1652 */ - { + case 1033: /* fetch_args: ALL opt_from_in cursor_name */ +#line 6757 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42747,12 +43412,12 @@ (yyval.str) = cat_str(3,mm_strdup("all"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42751 "preproc.c" /* yacc.c:1652 */ +#line 43416 "preproc.c" break; - case 1034: -#line 6768 "preproc.y" /* yacc.c:1652 */ - { + case 1034: /* fetch_args: FORWARD SignedIconst opt_from_in cursor_name */ +#line 6768 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42767,12 +43432,12 @@ (yyval.str) = cat_str(4,mm_strdup("forward"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42771 "preproc.c" /* yacc.c:1652 */ +#line 43436 "preproc.c" break; - case 1035: -#line 6784 "preproc.y" /* yacc.c:1652 */ - { + case 1035: /* fetch_args: FORWARD ALL opt_from_in cursor_name */ +#line 6784 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42782,12 +43447,12 @@ (yyval.str) = cat_str(3,mm_strdup("forward all"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42786 "preproc.c" /* yacc.c:1652 */ +#line 43451 "preproc.c" break; - case 1036: -#line 6795 "preproc.y" /* yacc.c:1652 */ - { + case 1036: /* fetch_args: BACKWARD SignedIconst opt_from_in cursor_name */ +#line 6795 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42802,12 +43467,12 @@ (yyval.str) = cat_str(4,mm_strdup("backward"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42806 "preproc.c" /* yacc.c:1652 */ +#line 43471 "preproc.c" break; - case 1037: -#line 6811 "preproc.y" /* yacc.c:1652 */ - { + case 1037: /* fetch_args: BACKWARD ALL opt_from_in cursor_name */ +#line 6811 "preproc.y" + { add_additional_variables((yyvsp[0].str), false); if ((yyvsp[0].str)[0] == ':') { @@ -42817,4929 +43482,4929 @@ (yyval.str) = cat_str(3,mm_strdup("backward all"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42821 "preproc.c" /* yacc.c:1652 */ +#line 43486 "preproc.c" break; - case 1038: -#line 6826 "preproc.y" /* yacc.c:1652 */ - { + case 1038: /* from_in: FROM */ +#line 6826 "preproc.y" + { (yyval.str) = mm_strdup("from"); } -#line 42829 "preproc.c" /* yacc.c:1652 */ +#line 43494 "preproc.c" break; - case 1039: -#line 6830 "preproc.y" /* yacc.c:1652 */ - { + case 1039: /* from_in: IN_P */ +#line 6830 "preproc.y" + { (yyval.str) = mm_strdup("in"); } -#line 42837 "preproc.c" /* yacc.c:1652 */ +#line 43502 "preproc.c" break; - case 1040: -#line 6838 "preproc.y" /* yacc.c:1652 */ - { + case 1040: /* opt_from_in: from_in */ +#line 6838 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 42845 "preproc.c" /* yacc.c:1652 */ +#line 43510 "preproc.c" break; - case 1041: -#line 6842 "preproc.y" /* yacc.c:1652 */ - { + case 1041: /* opt_from_in: %empty */ +#line 6842 "preproc.y" + { (yyval.str)=EMPTY; } -#line 42852 "preproc.c" /* yacc.c:1652 */ +#line 43517 "preproc.c" break; - case 1042: -#line 6849 "preproc.y" /* yacc.c:1652 */ - { + case 1042: /* GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_option */ +#line 6849 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("grant"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("to"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42860 "preproc.c" /* yacc.c:1652 */ +#line 43525 "preproc.c" break; - case 1043: -#line 6857 "preproc.y" /* yacc.c:1652 */ - { + case 1043: /* RevokeStmt: REVOKE privileges ON privilege_target FROM grantee_list opt_drop_behavior */ +#line 6857 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("revoke"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("from"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42868 "preproc.c" /* yacc.c:1652 */ +#line 43533 "preproc.c" break; - case 1044: -#line 6861 "preproc.y" /* yacc.c:1652 */ - { + case 1044: /* RevokeStmt: REVOKE GRANT OPTION FOR privileges ON privilege_target FROM grantee_list opt_drop_behavior */ +#line 6861 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("revoke grant option for"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("from"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42876 "preproc.c" /* yacc.c:1652 */ +#line 43541 "preproc.c" break; - case 1045: -#line 6869 "preproc.y" /* yacc.c:1652 */ - { + case 1045: /* privileges: privilege_list */ +#line 6869 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 42884 "preproc.c" /* yacc.c:1652 */ +#line 43549 "preproc.c" break; - case 1046: -#line 6873 "preproc.y" /* yacc.c:1652 */ - { + case 1046: /* privileges: ALL */ +#line 6873 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 42892 "preproc.c" /* yacc.c:1652 */ +#line 43557 "preproc.c" break; - case 1047: -#line 6877 "preproc.y" /* yacc.c:1652 */ - { + case 1047: /* privileges: ALL PRIVILEGES */ +#line 6877 "preproc.y" + { (yyval.str) = mm_strdup("all privileges"); } -#line 42900 "preproc.c" /* yacc.c:1652 */ +#line 43565 "preproc.c" break; - case 1048: -#line 6881 "preproc.y" /* yacc.c:1652 */ - { + case 1048: /* privileges: ALL '(' columnList ')' */ +#line 6881 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("all ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 42908 "preproc.c" /* yacc.c:1652 */ +#line 43573 "preproc.c" break; - case 1049: -#line 6885 "preproc.y" /* yacc.c:1652 */ - { + case 1049: /* privileges: ALL PRIVILEGES '(' columnList ')' */ +#line 6885 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("all privileges ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 42916 "preproc.c" /* yacc.c:1652 */ +#line 43581 "preproc.c" break; - case 1050: -#line 6893 "preproc.y" /* yacc.c:1652 */ - { + case 1050: /* privilege_list: privilege */ +#line 6893 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 42924 "preproc.c" /* yacc.c:1652 */ +#line 43589 "preproc.c" break; - case 1051: -#line 6897 "preproc.y" /* yacc.c:1652 */ - { + case 1051: /* privilege_list: privilege_list ',' privilege */ +#line 6897 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 42932 "preproc.c" /* yacc.c:1652 */ +#line 43597 "preproc.c" break; - case 1052: -#line 6905 "preproc.y" /* yacc.c:1652 */ - { + case 1052: /* privilege: SELECT opt_column_list */ +#line 6905 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("select"),(yyvsp[0].str)); } -#line 42940 "preproc.c" /* yacc.c:1652 */ +#line 43605 "preproc.c" break; - case 1053: -#line 6909 "preproc.y" /* yacc.c:1652 */ - { + case 1053: /* privilege: REFERENCES opt_column_list */ +#line 6909 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("references"),(yyvsp[0].str)); } -#line 42948 "preproc.c" /* yacc.c:1652 */ +#line 43613 "preproc.c" break; - case 1054: -#line 6913 "preproc.y" /* yacc.c:1652 */ - { + case 1054: /* privilege: CREATE opt_column_list */ +#line 6913 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("create"),(yyvsp[0].str)); } -#line 42956 "preproc.c" /* yacc.c:1652 */ +#line 43621 "preproc.c" break; - case 1055: -#line 6917 "preproc.y" /* yacc.c:1652 */ - { + case 1055: /* privilege: ColId opt_column_list */ +#line 6917 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42964 "preproc.c" /* yacc.c:1652 */ +#line 43629 "preproc.c" break; - case 1056: -#line 6925 "preproc.y" /* yacc.c:1652 */ - { + case 1056: /* privilege_target: qualified_name_list */ +#line 6925 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 42972 "preproc.c" /* yacc.c:1652 */ +#line 43637 "preproc.c" break; - case 1057: -#line 6929 "preproc.y" /* yacc.c:1652 */ - { + case 1057: /* privilege_target: TABLE qualified_name_list */ +#line 6929 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("table"),(yyvsp[0].str)); } -#line 42980 "preproc.c" /* yacc.c:1652 */ +#line 43645 "preproc.c" break; - case 1058: -#line 6933 "preproc.y" /* yacc.c:1652 */ - { + case 1058: /* privilege_target: SEQUENCE qualified_name_list */ +#line 6933 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("sequence"),(yyvsp[0].str)); } -#line 42988 "preproc.c" /* yacc.c:1652 */ +#line 43653 "preproc.c" break; - case 1059: -#line 6937 "preproc.y" /* yacc.c:1652 */ - { + case 1059: /* privilege_target: FOREIGN DATA_P WRAPPER name_list */ +#line 6937 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("foreign data wrapper"),(yyvsp[0].str)); } -#line 42996 "preproc.c" /* yacc.c:1652 */ +#line 43661 "preproc.c" break; - case 1060: -#line 6941 "preproc.y" /* yacc.c:1652 */ - { + case 1060: /* privilege_target: FOREIGN SERVER name_list */ +#line 6941 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("foreign server"),(yyvsp[0].str)); } -#line 43004 "preproc.c" /* yacc.c:1652 */ +#line 43669 "preproc.c" break; - case 1061: -#line 6945 "preproc.y" /* yacc.c:1652 */ - { + case 1061: /* privilege_target: FUNCTION function_with_argtypes_list */ +#line 6945 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("function"),(yyvsp[0].str)); } -#line 43012 "preproc.c" /* yacc.c:1652 */ +#line 43677 "preproc.c" break; - case 1062: -#line 6949 "preproc.y" /* yacc.c:1652 */ - { + case 1062: /* privilege_target: PROCEDURE function_with_argtypes_list */ +#line 6949 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("procedure"),(yyvsp[0].str)); } -#line 43020 "preproc.c" /* yacc.c:1652 */ +#line 43685 "preproc.c" break; - case 1063: -#line 6953 "preproc.y" /* yacc.c:1652 */ - { + case 1063: /* privilege_target: ROUTINE function_with_argtypes_list */ +#line 6953 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("routine"),(yyvsp[0].str)); } -#line 43028 "preproc.c" /* yacc.c:1652 */ +#line 43693 "preproc.c" break; - case 1064: -#line 6957 "preproc.y" /* yacc.c:1652 */ - { + case 1064: /* privilege_target: DATABASE name_list */ +#line 6957 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("database"),(yyvsp[0].str)); } -#line 43036 "preproc.c" /* yacc.c:1652 */ +#line 43701 "preproc.c" break; - case 1065: -#line 6961 "preproc.y" /* yacc.c:1652 */ - { + case 1065: /* privilege_target: DOMAIN_P any_name_list */ +#line 6961 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("domain"),(yyvsp[0].str)); } -#line 43044 "preproc.c" /* yacc.c:1652 */ +#line 43709 "preproc.c" break; - case 1066: -#line 6965 "preproc.y" /* yacc.c:1652 */ - { + case 1066: /* privilege_target: LANGUAGE name_list */ +#line 6965 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("language"),(yyvsp[0].str)); } -#line 43052 "preproc.c" /* yacc.c:1652 */ +#line 43717 "preproc.c" break; - case 1067: -#line 6969 "preproc.y" /* yacc.c:1652 */ - { + case 1067: /* privilege_target: LARGE_P OBJECT_P NumericOnly_list */ +#line 6969 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("large object"),(yyvsp[0].str)); } -#line 43060 "preproc.c" /* yacc.c:1652 */ +#line 43725 "preproc.c" break; - case 1068: -#line 6973 "preproc.y" /* yacc.c:1652 */ - { + case 1068: /* privilege_target: SCHEMA name_list */ +#line 6973 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("schema"),(yyvsp[0].str)); } -#line 43068 "preproc.c" /* yacc.c:1652 */ +#line 43733 "preproc.c" break; - case 1069: -#line 6977 "preproc.y" /* yacc.c:1652 */ - { + case 1069: /* privilege_target: TABLESPACE name_list */ +#line 6977 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("tablespace"),(yyvsp[0].str)); } -#line 43076 "preproc.c" /* yacc.c:1652 */ +#line 43741 "preproc.c" break; - case 1070: -#line 6981 "preproc.y" /* yacc.c:1652 */ - { + case 1070: /* privilege_target: TYPE_P any_name_list */ +#line 6981 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("type"),(yyvsp[0].str)); } -#line 43084 "preproc.c" /* yacc.c:1652 */ +#line 43749 "preproc.c" break; - case 1071: -#line 6985 "preproc.y" /* yacc.c:1652 */ - { + case 1071: /* privilege_target: ALL TABLES IN_P SCHEMA name_list */ +#line 6985 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("all tables in schema"),(yyvsp[0].str)); } -#line 43092 "preproc.c" /* yacc.c:1652 */ +#line 43757 "preproc.c" break; - case 1072: -#line 6989 "preproc.y" /* yacc.c:1652 */ - { + case 1072: /* privilege_target: ALL SEQUENCES IN_P SCHEMA name_list */ +#line 6989 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("all sequences in schema"),(yyvsp[0].str)); } -#line 43100 "preproc.c" /* yacc.c:1652 */ +#line 43765 "preproc.c" break; - case 1073: -#line 6993 "preproc.y" /* yacc.c:1652 */ - { + case 1073: /* privilege_target: ALL FUNCTIONS IN_P SCHEMA name_list */ +#line 6993 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("all functions in schema"),(yyvsp[0].str)); } -#line 43108 "preproc.c" /* yacc.c:1652 */ +#line 43773 "preproc.c" break; - case 1074: -#line 6997 "preproc.y" /* yacc.c:1652 */ - { + case 1074: /* privilege_target: ALL PROCEDURES IN_P SCHEMA name_list */ +#line 6997 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("all procedures in schema"),(yyvsp[0].str)); } -#line 43116 "preproc.c" /* yacc.c:1652 */ +#line 43781 "preproc.c" break; - case 1075: -#line 7001 "preproc.y" /* yacc.c:1652 */ - { + case 1075: /* privilege_target: ALL ROUTINES IN_P SCHEMA name_list */ +#line 7001 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("all routines in schema"),(yyvsp[0].str)); } -#line 43124 "preproc.c" /* yacc.c:1652 */ +#line 43789 "preproc.c" break; - case 1076: -#line 7009 "preproc.y" /* yacc.c:1652 */ - { + case 1076: /* grantee_list: grantee */ +#line 7009 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43132 "preproc.c" /* yacc.c:1652 */ +#line 43797 "preproc.c" break; - case 1077: -#line 7013 "preproc.y" /* yacc.c:1652 */ - { + case 1077: /* grantee_list: grantee_list ',' grantee */ +#line 7013 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43140 "preproc.c" /* yacc.c:1652 */ +#line 43805 "preproc.c" break; - case 1078: -#line 7021 "preproc.y" /* yacc.c:1652 */ - { + case 1078: /* grantee: RoleSpec */ +#line 7021 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43148 "preproc.c" /* yacc.c:1652 */ +#line 43813 "preproc.c" break; - case 1079: -#line 7025 "preproc.y" /* yacc.c:1652 */ - { + case 1079: /* grantee: GROUP_P RoleSpec */ +#line 7025 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("group"),(yyvsp[0].str)); } -#line 43156 "preproc.c" /* yacc.c:1652 */ +#line 43821 "preproc.c" break; - case 1080: -#line 7033 "preproc.y" /* yacc.c:1652 */ - { + case 1080: /* opt_grant_grant_option: WITH GRANT OPTION */ +#line 7033 "preproc.y" + { (yyval.str) = mm_strdup("with grant option"); } -#line 43164 "preproc.c" /* yacc.c:1652 */ +#line 43829 "preproc.c" break; - case 1081: -#line 7037 "preproc.y" /* yacc.c:1652 */ - { + case 1081: /* opt_grant_grant_option: %empty */ +#line 7037 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43171 "preproc.c" /* yacc.c:1652 */ +#line 43836 "preproc.c" break; - case 1082: -#line 7044 "preproc.y" /* yacc.c:1652 */ - { + case 1082: /* GrantRoleStmt: GRANT privilege_list TO role_list opt_grant_admin_option opt_granted_by */ +#line 7044 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("grant"),(yyvsp[-4].str),mm_strdup("to"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43179 "preproc.c" /* yacc.c:1652 */ +#line 43844 "preproc.c" break; - case 1083: -#line 7052 "preproc.y" /* yacc.c:1652 */ - { + case 1083: /* RevokeRoleStmt: REVOKE privilege_list FROM role_list opt_granted_by opt_drop_behavior */ +#line 7052 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("revoke"),(yyvsp[-4].str),mm_strdup("from"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43187 "preproc.c" /* yacc.c:1652 */ +#line 43852 "preproc.c" break; - case 1084: -#line 7056 "preproc.y" /* yacc.c:1652 */ - { + case 1084: /* RevokeRoleStmt: REVOKE ADMIN OPTION FOR privilege_list FROM role_list opt_granted_by opt_drop_behavior */ +#line 7056 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("revoke admin option for"),(yyvsp[-4].str),mm_strdup("from"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43195 "preproc.c" /* yacc.c:1652 */ +#line 43860 "preproc.c" break; - case 1085: -#line 7064 "preproc.y" /* yacc.c:1652 */ - { + case 1085: /* opt_grant_admin_option: WITH ADMIN OPTION */ +#line 7064 "preproc.y" + { (yyval.str) = mm_strdup("with admin option"); } -#line 43203 "preproc.c" /* yacc.c:1652 */ +#line 43868 "preproc.c" break; - case 1086: -#line 7068 "preproc.y" /* yacc.c:1652 */ - { + case 1086: /* opt_grant_admin_option: %empty */ +#line 7068 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43210 "preproc.c" /* yacc.c:1652 */ +#line 43875 "preproc.c" break; - case 1087: -#line 7075 "preproc.y" /* yacc.c:1652 */ - { + case 1087: /* opt_granted_by: GRANTED BY RoleSpec */ +#line 7075 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("granted by"),(yyvsp[0].str)); } -#line 43218 "preproc.c" /* yacc.c:1652 */ +#line 43883 "preproc.c" break; - case 1088: -#line 7079 "preproc.y" /* yacc.c:1652 */ - { + case 1088: /* opt_granted_by: %empty */ +#line 7079 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43225 "preproc.c" /* yacc.c:1652 */ +#line 43890 "preproc.c" break; - case 1089: -#line 7086 "preproc.y" /* yacc.c:1652 */ - { + case 1089: /* AlterDefaultPrivilegesStmt: ALTER DEFAULT PRIVILEGES DefACLOptionList DefACLAction */ +#line 7086 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter default privileges"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43233 "preproc.c" /* yacc.c:1652 */ +#line 43898 "preproc.c" break; - case 1090: -#line 7094 "preproc.y" /* yacc.c:1652 */ - { + case 1090: /* DefACLOptionList: DefACLOptionList DefACLOption */ +#line 7094 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43241 "preproc.c" /* yacc.c:1652 */ +#line 43906 "preproc.c" break; - case 1091: -#line 7098 "preproc.y" /* yacc.c:1652 */ - { + case 1091: /* DefACLOptionList: %empty */ +#line 7098 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43248 "preproc.c" /* yacc.c:1652 */ +#line 43913 "preproc.c" break; - case 1092: -#line 7105 "preproc.y" /* yacc.c:1652 */ - { + case 1092: /* DefACLOption: IN_P SCHEMA name_list */ +#line 7105 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("in schema"),(yyvsp[0].str)); } -#line 43256 "preproc.c" /* yacc.c:1652 */ +#line 43921 "preproc.c" break; - case 1093: -#line 7109 "preproc.y" /* yacc.c:1652 */ - { + case 1093: /* DefACLOption: FOR ROLE role_list */ +#line 7109 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("for role"),(yyvsp[0].str)); } -#line 43264 "preproc.c" /* yacc.c:1652 */ +#line 43929 "preproc.c" break; - case 1094: -#line 7113 "preproc.y" /* yacc.c:1652 */ - { + case 1094: /* DefACLOption: FOR USER role_list */ +#line 7113 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("for user"),(yyvsp[0].str)); } -#line 43272 "preproc.c" /* yacc.c:1652 */ +#line 43937 "preproc.c" break; - case 1095: -#line 7121 "preproc.y" /* yacc.c:1652 */ - { + case 1095: /* DefACLAction: GRANT privileges ON defacl_privilege_target TO grantee_list opt_grant_grant_option */ +#line 7121 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("grant"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("to"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43280 "preproc.c" /* yacc.c:1652 */ +#line 43945 "preproc.c" break; - case 1096: -#line 7125 "preproc.y" /* yacc.c:1652 */ - { + case 1096: /* DefACLAction: REVOKE privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */ +#line 7125 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("revoke"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("from"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43288 "preproc.c" /* yacc.c:1652 */ +#line 43953 "preproc.c" break; - case 1097: -#line 7129 "preproc.y" /* yacc.c:1652 */ - { + case 1097: /* DefACLAction: REVOKE GRANT OPTION FOR privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */ +#line 7129 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("revoke grant option for"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("from"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43296 "preproc.c" /* yacc.c:1652 */ +#line 43961 "preproc.c" break; - case 1098: -#line 7137 "preproc.y" /* yacc.c:1652 */ - { + case 1098: /* defacl_privilege_target: TABLES */ +#line 7137 "preproc.y" + { (yyval.str) = mm_strdup("tables"); } -#line 43304 "preproc.c" /* yacc.c:1652 */ +#line 43969 "preproc.c" break; - case 1099: -#line 7141 "preproc.y" /* yacc.c:1652 */ - { + case 1099: /* defacl_privilege_target: FUNCTIONS */ +#line 7141 "preproc.y" + { (yyval.str) = mm_strdup("functions"); } -#line 43312 "preproc.c" /* yacc.c:1652 */ +#line 43977 "preproc.c" break; - case 1100: -#line 7145 "preproc.y" /* yacc.c:1652 */ - { + case 1100: /* defacl_privilege_target: ROUTINES */ +#line 7145 "preproc.y" + { (yyval.str) = mm_strdup("routines"); } -#line 43320 "preproc.c" /* yacc.c:1652 */ +#line 43985 "preproc.c" break; - case 1101: -#line 7149 "preproc.y" /* yacc.c:1652 */ - { + case 1101: /* defacl_privilege_target: SEQUENCES */ +#line 7149 "preproc.y" + { (yyval.str) = mm_strdup("sequences"); } -#line 43328 "preproc.c" /* yacc.c:1652 */ +#line 43993 "preproc.c" break; - case 1102: -#line 7153 "preproc.y" /* yacc.c:1652 */ - { + case 1102: /* defacl_privilege_target: TYPES_P */ +#line 7153 "preproc.y" + { (yyval.str) = mm_strdup("types"); } -#line 43336 "preproc.c" /* yacc.c:1652 */ +#line 44001 "preproc.c" break; - case 1103: -#line 7157 "preproc.y" /* yacc.c:1652 */ - { + case 1103: /* defacl_privilege_target: SCHEMAS */ +#line 7157 "preproc.y" + { (yyval.str) = mm_strdup("schemas"); } -#line 43344 "preproc.c" /* yacc.c:1652 */ +#line 44009 "preproc.c" break; - case 1104: -#line 7165 "preproc.y" /* yacc.c:1652 */ - { + case 1104: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently opt_index_name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_reloptions OptTableSpace where_clause */ +#line 7165 "preproc.y" + { (yyval.str) = cat_str(15,mm_strdup("create"),(yyvsp[-13].str),mm_strdup("index"),(yyvsp[-11].str),(yyvsp[-10].str),mm_strdup("on"),(yyvsp[-8].str),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43352 "preproc.c" /* yacc.c:1652 */ +#line 44017 "preproc.c" break; - case 1105: -#line 7169 "preproc.y" /* yacc.c:1652 */ - { + case 1105: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently IF_P NOT EXISTS index_name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_reloptions OptTableSpace where_clause */ +#line 7169 "preproc.y" + { (yyval.str) = cat_str(16,mm_strdup("create"),(yyvsp[-16].str),mm_strdup("index"),(yyvsp[-14].str),mm_strdup("if not exists"),(yyvsp[-10].str),mm_strdup("on"),(yyvsp[-8].str),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43360 "preproc.c" /* yacc.c:1652 */ +#line 44025 "preproc.c" break; - case 1106: -#line 7177 "preproc.y" /* yacc.c:1652 */ - { + case 1106: /* opt_unique: UNIQUE */ +#line 7177 "preproc.y" + { (yyval.str) = mm_strdup("unique"); } -#line 43368 "preproc.c" /* yacc.c:1652 */ +#line 44033 "preproc.c" break; - case 1107: -#line 7181 "preproc.y" /* yacc.c:1652 */ - { + case 1107: /* opt_unique: %empty */ +#line 7181 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43375 "preproc.c" /* yacc.c:1652 */ +#line 44040 "preproc.c" break; - case 1108: -#line 7188 "preproc.y" /* yacc.c:1652 */ - { + case 1108: /* opt_concurrently: CONCURRENTLY */ +#line 7188 "preproc.y" + { (yyval.str) = mm_strdup("concurrently"); } -#line 43383 "preproc.c" /* yacc.c:1652 */ +#line 44048 "preproc.c" break; - case 1109: -#line 7192 "preproc.y" /* yacc.c:1652 */ - { + case 1109: /* opt_concurrently: %empty */ +#line 7192 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43390 "preproc.c" /* yacc.c:1652 */ +#line 44055 "preproc.c" break; - case 1110: -#line 7199 "preproc.y" /* yacc.c:1652 */ - { + case 1110: /* opt_index_name: index_name */ +#line 7199 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43398 "preproc.c" /* yacc.c:1652 */ +#line 44063 "preproc.c" break; - case 1111: -#line 7203 "preproc.y" /* yacc.c:1652 */ - { + case 1111: /* opt_index_name: %empty */ +#line 7203 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43405 "preproc.c" /* yacc.c:1652 */ +#line 44070 "preproc.c" break; - case 1112: -#line 7210 "preproc.y" /* yacc.c:1652 */ - { + case 1112: /* access_method_clause: USING access_method */ +#line 7210 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 43413 "preproc.c" /* yacc.c:1652 */ +#line 44078 "preproc.c" break; - case 1113: -#line 7214 "preproc.y" /* yacc.c:1652 */ - { + case 1113: /* access_method_clause: %empty */ +#line 7214 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43420 "preproc.c" /* yacc.c:1652 */ +#line 44085 "preproc.c" break; - case 1114: -#line 7221 "preproc.y" /* yacc.c:1652 */ - { + case 1114: /* index_params: index_elem */ +#line 7221 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43428 "preproc.c" /* yacc.c:1652 */ +#line 44093 "preproc.c" break; - case 1115: -#line 7225 "preproc.y" /* yacc.c:1652 */ - { + case 1115: /* index_params: index_params ',' index_elem */ +#line 7225 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43436 "preproc.c" /* yacc.c:1652 */ +#line 44101 "preproc.c" break; - case 1116: -#line 7233 "preproc.y" /* yacc.c:1652 */ - { + case 1116: /* index_elem_options: opt_collate opt_class opt_asc_desc opt_nulls_order */ +#line 7233 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43444 "preproc.c" /* yacc.c:1652 */ +#line 44109 "preproc.c" break; - case 1117: -#line 7237 "preproc.y" /* yacc.c:1652 */ - { + case 1117: /* index_elem_options: opt_collate any_name reloptions opt_asc_desc opt_nulls_order */ +#line 7237 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43452 "preproc.c" /* yacc.c:1652 */ +#line 44117 "preproc.c" break; - case 1118: -#line 7245 "preproc.y" /* yacc.c:1652 */ - { + case 1118: /* index_elem: ColId index_elem_options */ +#line 7245 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43460 "preproc.c" /* yacc.c:1652 */ +#line 44125 "preproc.c" break; - case 1119: -#line 7249 "preproc.y" /* yacc.c:1652 */ - { + case 1119: /* index_elem: func_expr_windowless index_elem_options */ +#line 7249 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43468 "preproc.c" /* yacc.c:1652 */ +#line 44133 "preproc.c" break; - case 1120: -#line 7253 "preproc.y" /* yacc.c:1652 */ - { + case 1120: /* index_elem: '(' a_expr ')' index_elem_options */ +#line 7253 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 43476 "preproc.c" /* yacc.c:1652 */ +#line 44141 "preproc.c" break; - case 1121: -#line 7261 "preproc.y" /* yacc.c:1652 */ - { + case 1121: /* opt_include: INCLUDE '(' index_including_params ')' */ +#line 7261 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("include ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43484 "preproc.c" /* yacc.c:1652 */ +#line 44149 "preproc.c" break; - case 1122: -#line 7265 "preproc.y" /* yacc.c:1652 */ - { + case 1122: /* opt_include: %empty */ +#line 7265 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43491 "preproc.c" /* yacc.c:1652 */ +#line 44156 "preproc.c" break; - case 1123: -#line 7272 "preproc.y" /* yacc.c:1652 */ - { + case 1123: /* index_including_params: index_elem */ +#line 7272 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43499 "preproc.c" /* yacc.c:1652 */ +#line 44164 "preproc.c" break; - case 1124: -#line 7276 "preproc.y" /* yacc.c:1652 */ - { + case 1124: /* index_including_params: index_including_params ',' index_elem */ +#line 7276 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43507 "preproc.c" /* yacc.c:1652 */ +#line 44172 "preproc.c" break; - case 1125: -#line 7284 "preproc.y" /* yacc.c:1652 */ - { + case 1125: /* opt_collate: COLLATE any_name */ +#line 7284 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("collate"),(yyvsp[0].str)); } -#line 43515 "preproc.c" /* yacc.c:1652 */ +#line 44180 "preproc.c" break; - case 1126: -#line 7288 "preproc.y" /* yacc.c:1652 */ - { + case 1126: /* opt_collate: %empty */ +#line 7288 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43522 "preproc.c" /* yacc.c:1652 */ +#line 44187 "preproc.c" break; - case 1127: -#line 7295 "preproc.y" /* yacc.c:1652 */ - { + case 1127: /* opt_class: any_name */ +#line 7295 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43530 "preproc.c" /* yacc.c:1652 */ +#line 44195 "preproc.c" break; - case 1128: -#line 7299 "preproc.y" /* yacc.c:1652 */ - { + case 1128: /* opt_class: %empty */ +#line 7299 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43537 "preproc.c" /* yacc.c:1652 */ +#line 44202 "preproc.c" break; - case 1129: -#line 7306 "preproc.y" /* yacc.c:1652 */ - { + case 1129: /* opt_asc_desc: ASC */ +#line 7306 "preproc.y" + { (yyval.str) = mm_strdup("asc"); } -#line 43545 "preproc.c" /* yacc.c:1652 */ +#line 44210 "preproc.c" break; - case 1130: -#line 7310 "preproc.y" /* yacc.c:1652 */ - { + case 1130: /* opt_asc_desc: DESC */ +#line 7310 "preproc.y" + { (yyval.str) = mm_strdup("desc"); } -#line 43553 "preproc.c" /* yacc.c:1652 */ +#line 44218 "preproc.c" break; - case 1131: -#line 7314 "preproc.y" /* yacc.c:1652 */ - { + case 1131: /* opt_asc_desc: %empty */ +#line 7314 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43560 "preproc.c" /* yacc.c:1652 */ +#line 44225 "preproc.c" break; - case 1132: -#line 7321 "preproc.y" /* yacc.c:1652 */ - { + case 1132: /* opt_nulls_order: NULLS_LA FIRST_P */ +#line 7321 "preproc.y" + { (yyval.str) = mm_strdup("nulls first"); } -#line 43568 "preproc.c" /* yacc.c:1652 */ +#line 44233 "preproc.c" break; - case 1133: -#line 7325 "preproc.y" /* yacc.c:1652 */ - { + case 1133: /* opt_nulls_order: NULLS_LA LAST_P */ +#line 7325 "preproc.y" + { (yyval.str) = mm_strdup("nulls last"); } -#line 43576 "preproc.c" /* yacc.c:1652 */ +#line 44241 "preproc.c" break; - case 1134: -#line 7329 "preproc.y" /* yacc.c:1652 */ - { + case 1134: /* opt_nulls_order: %empty */ +#line 7329 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43583 "preproc.c" /* yacc.c:1652 */ +#line 44248 "preproc.c" break; - case 1135: -#line 7336 "preproc.y" /* yacc.c:1652 */ - { + case 1135: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS func_return createfunc_opt_list */ +#line 7336 "preproc.y" + { (yyval.str) = cat_str(8,mm_strdup("create"),(yyvsp[-6].str),mm_strdup("function"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("returns"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43591 "preproc.c" /* yacc.c:1652 */ +#line 44256 "preproc.c" break; - case 1136: -#line 7340 "preproc.y" /* yacc.c:1652 */ - { + case 1136: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS TABLE '(' table_func_column_list ')' createfunc_opt_list */ +#line 7340 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("create"),(yyvsp[-9].str),mm_strdup("function"),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("returns table ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 43599 "preproc.c" /* yacc.c:1652 */ +#line 44264 "preproc.c" break; - case 1137: -#line 7344 "preproc.y" /* yacc.c:1652 */ - { + case 1137: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults createfunc_opt_list */ +#line 7344 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("create"),(yyvsp[-4].str),mm_strdup("function"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43607 "preproc.c" /* yacc.c:1652 */ +#line 44272 "preproc.c" break; - case 1138: -#line 7348 "preproc.y" /* yacc.c:1652 */ - { + case 1138: /* CreateFunctionStmt: CREATE opt_or_replace PROCEDURE func_name func_args_with_defaults createfunc_opt_list */ +#line 7348 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("create"),(yyvsp[-4].str),mm_strdup("procedure"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43615 "preproc.c" /* yacc.c:1652 */ +#line 44280 "preproc.c" break; - case 1139: -#line 7356 "preproc.y" /* yacc.c:1652 */ - { + case 1139: /* opt_or_replace: OR REPLACE */ +#line 7356 "preproc.y" + { (yyval.str) = mm_strdup("or replace"); } -#line 43623 "preproc.c" /* yacc.c:1652 */ +#line 44288 "preproc.c" break; - case 1140: -#line 7360 "preproc.y" /* yacc.c:1652 */ - { + case 1140: /* opt_or_replace: %empty */ +#line 7360 "preproc.y" + { (yyval.str)=EMPTY; } -#line 43630 "preproc.c" /* yacc.c:1652 */ +#line 44295 "preproc.c" break; - case 1141: -#line 7367 "preproc.y" /* yacc.c:1652 */ - { + case 1141: /* func_args: '(' func_args_list ')' */ +#line 7367 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43638 "preproc.c" /* yacc.c:1652 */ +#line 44303 "preproc.c" break; - case 1142: -#line 7371 "preproc.y" /* yacc.c:1652 */ - { + case 1142: /* func_args: '(' ')' */ +#line 7371 "preproc.y" + { (yyval.str) = mm_strdup("( )"); } -#line 43646 "preproc.c" /* yacc.c:1652 */ +#line 44311 "preproc.c" break; - case 1143: -#line 7379 "preproc.y" /* yacc.c:1652 */ - { + case 1143: /* func_args_list: func_arg */ +#line 7379 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43654 "preproc.c" /* yacc.c:1652 */ +#line 44319 "preproc.c" break; - case 1144: -#line 7383 "preproc.y" /* yacc.c:1652 */ - { + case 1144: /* func_args_list: func_args_list ',' func_arg */ +#line 7383 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43662 "preproc.c" /* yacc.c:1652 */ +#line 44327 "preproc.c" break; - case 1145: -#line 7391 "preproc.y" /* yacc.c:1652 */ - { + case 1145: /* function_with_argtypes_list: function_with_argtypes */ +#line 7391 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43670 "preproc.c" /* yacc.c:1652 */ +#line 44335 "preproc.c" break; - case 1146: -#line 7395 "preproc.y" /* yacc.c:1652 */ - { + case 1146: /* function_with_argtypes_list: function_with_argtypes_list ',' function_with_argtypes */ +#line 7395 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43678 "preproc.c" /* yacc.c:1652 */ +#line 44343 "preproc.c" break; - case 1147: -#line 7403 "preproc.y" /* yacc.c:1652 */ - { + case 1147: /* function_with_argtypes: func_name func_args */ +#line 7403 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43686 "preproc.c" /* yacc.c:1652 */ +#line 44351 "preproc.c" break; - case 1148: -#line 7407 "preproc.y" /* yacc.c:1652 */ - { + case 1148: /* function_with_argtypes: type_func_name_keyword */ +#line 7407 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43694 "preproc.c" /* yacc.c:1652 */ +#line 44359 "preproc.c" break; - case 1149: -#line 7411 "preproc.y" /* yacc.c:1652 */ - { + case 1149: /* function_with_argtypes: ColId */ +#line 7411 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43702 "preproc.c" /* yacc.c:1652 */ +#line 44367 "preproc.c" break; - case 1150: -#line 7415 "preproc.y" /* yacc.c:1652 */ - { + case 1150: /* function_with_argtypes: ColId indirection */ +#line 7415 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43710 "preproc.c" /* yacc.c:1652 */ +#line 44375 "preproc.c" break; - case 1151: -#line 7423 "preproc.y" /* yacc.c:1652 */ - { + case 1151: /* func_args_with_defaults: '(' func_args_with_defaults_list ')' */ +#line 7423 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43718 "preproc.c" /* yacc.c:1652 */ +#line 44383 "preproc.c" break; - case 1152: -#line 7427 "preproc.y" /* yacc.c:1652 */ - { + case 1152: /* func_args_with_defaults: '(' ')' */ +#line 7427 "preproc.y" + { (yyval.str) = mm_strdup("( )"); } -#line 43726 "preproc.c" /* yacc.c:1652 */ +#line 44391 "preproc.c" break; - case 1153: -#line 7435 "preproc.y" /* yacc.c:1652 */ - { + case 1153: /* func_args_with_defaults_list: func_arg_with_default */ +#line 7435 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43734 "preproc.c" /* yacc.c:1652 */ +#line 44399 "preproc.c" break; - case 1154: -#line 7439 "preproc.y" /* yacc.c:1652 */ - { + case 1154: /* func_args_with_defaults_list: func_args_with_defaults_list ',' func_arg_with_default */ +#line 7439 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43742 "preproc.c" /* yacc.c:1652 */ +#line 44407 "preproc.c" break; - case 1155: -#line 7447 "preproc.y" /* yacc.c:1652 */ - { + case 1155: /* func_arg: arg_class param_name func_type */ +#line 7447 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43750 "preproc.c" /* yacc.c:1652 */ +#line 44415 "preproc.c" break; - case 1156: -#line 7451 "preproc.y" /* yacc.c:1652 */ - { + case 1156: /* func_arg: param_name arg_class func_type */ +#line 7451 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43758 "preproc.c" /* yacc.c:1652 */ +#line 44423 "preproc.c" break; - case 1157: -#line 7455 "preproc.y" /* yacc.c:1652 */ - { + case 1157: /* func_arg: param_name func_type */ +#line 7455 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43766 "preproc.c" /* yacc.c:1652 */ +#line 44431 "preproc.c" break; - case 1158: -#line 7459 "preproc.y" /* yacc.c:1652 */ - { + case 1158: /* func_arg: arg_class func_type */ +#line 7459 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43774 "preproc.c" /* yacc.c:1652 */ +#line 44439 "preproc.c" break; - case 1159: -#line 7463 "preproc.y" /* yacc.c:1652 */ - { + case 1159: /* func_arg: func_type */ +#line 7463 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43782 "preproc.c" /* yacc.c:1652 */ +#line 44447 "preproc.c" break; - case 1160: -#line 7471 "preproc.y" /* yacc.c:1652 */ - { + case 1160: /* arg_class: IN_P */ +#line 7471 "preproc.y" + { (yyval.str) = mm_strdup("in"); } -#line 43790 "preproc.c" /* yacc.c:1652 */ +#line 44455 "preproc.c" break; - case 1161: -#line 7475 "preproc.y" /* yacc.c:1652 */ - { + case 1161: /* arg_class: OUT_P */ +#line 7475 "preproc.y" + { (yyval.str) = mm_strdup("out"); } -#line 43798 "preproc.c" /* yacc.c:1652 */ +#line 44463 "preproc.c" break; - case 1162: -#line 7479 "preproc.y" /* yacc.c:1652 */ - { + case 1162: /* arg_class: INOUT */ +#line 7479 "preproc.y" + { (yyval.str) = mm_strdup("inout"); } -#line 43806 "preproc.c" /* yacc.c:1652 */ +#line 44471 "preproc.c" break; - case 1163: -#line 7483 "preproc.y" /* yacc.c:1652 */ - { + case 1163: /* arg_class: IN_P OUT_P */ +#line 7483 "preproc.y" + { (yyval.str) = mm_strdup("in out"); } -#line 43814 "preproc.c" /* yacc.c:1652 */ +#line 44479 "preproc.c" break; - case 1164: -#line 7487 "preproc.y" /* yacc.c:1652 */ - { + case 1164: /* arg_class: VARIADIC */ +#line 7487 "preproc.y" + { (yyval.str) = mm_strdup("variadic"); } -#line 43822 "preproc.c" /* yacc.c:1652 */ +#line 44487 "preproc.c" break; - case 1165: -#line 7495 "preproc.y" /* yacc.c:1652 */ - { + case 1165: /* param_name: type_function_name */ +#line 7495 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43830 "preproc.c" /* yacc.c:1652 */ +#line 44495 "preproc.c" break; - case 1166: -#line 7503 "preproc.y" /* yacc.c:1652 */ - { + case 1166: /* func_return: func_type */ +#line 7503 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43838 "preproc.c" /* yacc.c:1652 */ +#line 44503 "preproc.c" break; - case 1167: -#line 7511 "preproc.y" /* yacc.c:1652 */ - { + case 1167: /* func_type: Typename */ +#line 7511 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43846 "preproc.c" /* yacc.c:1652 */ +#line 44511 "preproc.c" break; - case 1168: -#line 7515 "preproc.y" /* yacc.c:1652 */ - { + case 1168: /* func_type: type_function_name attrs '%' TYPE_P */ +#line 7515 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("% type")); } -#line 43854 "preproc.c" /* yacc.c:1652 */ +#line 44519 "preproc.c" break; - case 1169: -#line 7519 "preproc.y" /* yacc.c:1652 */ - { + case 1169: /* func_type: SETOF type_function_name attrs '%' TYPE_P */ +#line 7519 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("setof"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("% type")); } -#line 43862 "preproc.c" /* yacc.c:1652 */ +#line 44527 "preproc.c" break; - case 1170: -#line 7527 "preproc.y" /* yacc.c:1652 */ - { + case 1170: /* func_arg_with_default: func_arg */ +#line 7527 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43870 "preproc.c" /* yacc.c:1652 */ +#line 44535 "preproc.c" break; - case 1171: -#line 7531 "preproc.y" /* yacc.c:1652 */ - { + case 1171: /* func_arg_with_default: func_arg DEFAULT a_expr */ +#line 7531 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("default"),(yyvsp[0].str)); } -#line 43878 "preproc.c" /* yacc.c:1652 */ +#line 44543 "preproc.c" break; - case 1172: -#line 7535 "preproc.y" /* yacc.c:1652 */ - { + case 1172: /* func_arg_with_default: func_arg '=' a_expr */ +#line 7535 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 43886 "preproc.c" /* yacc.c:1652 */ +#line 44551 "preproc.c" break; - case 1173: -#line 7543 "preproc.y" /* yacc.c:1652 */ - { + case 1173: /* aggr_arg: func_arg */ +#line 7543 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = (yyvsp[0].str); } -#line 43895 "preproc.c" /* yacc.c:1652 */ +#line 44560 "preproc.c" break; - case 1174: -#line 7552 "preproc.y" /* yacc.c:1652 */ - { + case 1174: /* aggr_args: '(' '*' ')' */ +#line 7552 "preproc.y" + { (yyval.str) = mm_strdup("( * )"); } -#line 43903 "preproc.c" /* yacc.c:1652 */ +#line 44568 "preproc.c" break; - case 1175: -#line 7556 "preproc.y" /* yacc.c:1652 */ - { + case 1175: /* aggr_args: '(' aggr_args_list ')' */ +#line 7556 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43911 "preproc.c" /* yacc.c:1652 */ +#line 44576 "preproc.c" break; - case 1176: -#line 7560 "preproc.y" /* yacc.c:1652 */ - { + case 1176: /* aggr_args: '(' ORDER BY aggr_args_list ')' */ +#line 7560 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("( order by"),(yyvsp[-1].str),mm_strdup(")")); } -#line 43919 "preproc.c" /* yacc.c:1652 */ +#line 44584 "preproc.c" break; - case 1177: -#line 7564 "preproc.y" /* yacc.c:1652 */ - { + case 1177: /* aggr_args: '(' aggr_args_list ORDER BY aggr_args_list ')' */ +#line 7564 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-4].str),mm_strdup("order by"),(yyvsp[-1].str),mm_strdup(")")); } -#line 43927 "preproc.c" /* yacc.c:1652 */ +#line 44592 "preproc.c" break; - case 1178: -#line 7572 "preproc.y" /* yacc.c:1652 */ - { + case 1178: /* aggr_args_list: aggr_arg */ +#line 7572 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43935 "preproc.c" /* yacc.c:1652 */ +#line 44600 "preproc.c" break; - case 1179: -#line 7576 "preproc.y" /* yacc.c:1652 */ - { + case 1179: /* aggr_args_list: aggr_args_list ',' aggr_arg */ +#line 7576 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43943 "preproc.c" /* yacc.c:1652 */ +#line 44608 "preproc.c" break; - case 1180: -#line 7584 "preproc.y" /* yacc.c:1652 */ - { + case 1180: /* aggregate_with_argtypes: func_name aggr_args */ +#line 7584 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43951 "preproc.c" /* yacc.c:1652 */ +#line 44616 "preproc.c" break; - case 1181: -#line 7592 "preproc.y" /* yacc.c:1652 */ - { + case 1181: /* aggregate_with_argtypes_list: aggregate_with_argtypes */ +#line 7592 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43959 "preproc.c" /* yacc.c:1652 */ +#line 44624 "preproc.c" break; - case 1182: -#line 7596 "preproc.y" /* yacc.c:1652 */ - { + case 1182: /* aggregate_with_argtypes_list: aggregate_with_argtypes_list ',' aggregate_with_argtypes */ +#line 7596 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43967 "preproc.c" /* yacc.c:1652 */ +#line 44632 "preproc.c" break; - case 1183: -#line 7604 "preproc.y" /* yacc.c:1652 */ - { + case 1183: /* createfunc_opt_list: createfunc_opt_item */ +#line 7604 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 43975 "preproc.c" /* yacc.c:1652 */ +#line 44640 "preproc.c" break; - case 1184: -#line 7608 "preproc.y" /* yacc.c:1652 */ - { + case 1184: /* createfunc_opt_list: createfunc_opt_list createfunc_opt_item */ +#line 7608 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43983 "preproc.c" /* yacc.c:1652 */ +#line 44648 "preproc.c" break; - case 1185: -#line 7616 "preproc.y" /* yacc.c:1652 */ - { + case 1185: /* common_func_opt_item: CALLED ON NULL_P INPUT_P */ +#line 7616 "preproc.y" + { (yyval.str) = mm_strdup("called on null input"); } -#line 43991 "preproc.c" /* yacc.c:1652 */ +#line 44656 "preproc.c" break; - case 1186: -#line 7620 "preproc.y" /* yacc.c:1652 */ - { + case 1186: /* common_func_opt_item: RETURNS NULL_P ON NULL_P INPUT_P */ +#line 7620 "preproc.y" + { (yyval.str) = mm_strdup("returns null on null input"); } -#line 43999 "preproc.c" /* yacc.c:1652 */ +#line 44664 "preproc.c" break; - case 1187: -#line 7624 "preproc.y" /* yacc.c:1652 */ - { + case 1187: /* common_func_opt_item: STRICT_P */ +#line 7624 "preproc.y" + { (yyval.str) = mm_strdup("strict"); } -#line 44007 "preproc.c" /* yacc.c:1652 */ +#line 44672 "preproc.c" break; - case 1188: -#line 7628 "preproc.y" /* yacc.c:1652 */ - { + case 1188: /* common_func_opt_item: IMMUTABLE */ +#line 7628 "preproc.y" + { (yyval.str) = mm_strdup("immutable"); } -#line 44015 "preproc.c" /* yacc.c:1652 */ +#line 44680 "preproc.c" break; - case 1189: -#line 7632 "preproc.y" /* yacc.c:1652 */ - { + case 1189: /* common_func_opt_item: STABLE */ +#line 7632 "preproc.y" + { (yyval.str) = mm_strdup("stable"); } -#line 44023 "preproc.c" /* yacc.c:1652 */ +#line 44688 "preproc.c" break; - case 1190: -#line 7636 "preproc.y" /* yacc.c:1652 */ - { + case 1190: /* common_func_opt_item: VOLATILE */ +#line 7636 "preproc.y" + { (yyval.str) = mm_strdup("volatile"); } -#line 44031 "preproc.c" /* yacc.c:1652 */ +#line 44696 "preproc.c" break; - case 1191: -#line 7640 "preproc.y" /* yacc.c:1652 */ - { + case 1191: /* common_func_opt_item: EXTERNAL SECURITY DEFINER */ +#line 7640 "preproc.y" + { (yyval.str) = mm_strdup("external security definer"); } -#line 44039 "preproc.c" /* yacc.c:1652 */ +#line 44704 "preproc.c" break; - case 1192: -#line 7644 "preproc.y" /* yacc.c:1652 */ - { + case 1192: /* common_func_opt_item: EXTERNAL SECURITY INVOKER */ +#line 7644 "preproc.y" + { (yyval.str) = mm_strdup("external security invoker"); } -#line 44047 "preproc.c" /* yacc.c:1652 */ +#line 44712 "preproc.c" break; - case 1193: -#line 7648 "preproc.y" /* yacc.c:1652 */ - { + case 1193: /* common_func_opt_item: SECURITY DEFINER */ +#line 7648 "preproc.y" + { (yyval.str) = mm_strdup("security definer"); } -#line 44055 "preproc.c" /* yacc.c:1652 */ +#line 44720 "preproc.c" break; - case 1194: -#line 7652 "preproc.y" /* yacc.c:1652 */ - { + case 1194: /* common_func_opt_item: SECURITY INVOKER */ +#line 7652 "preproc.y" + { (yyval.str) = mm_strdup("security invoker"); } -#line 44063 "preproc.c" /* yacc.c:1652 */ +#line 44728 "preproc.c" break; - case 1195: -#line 7656 "preproc.y" /* yacc.c:1652 */ - { + case 1195: /* common_func_opt_item: LEAKPROOF */ +#line 7656 "preproc.y" + { (yyval.str) = mm_strdup("leakproof"); } -#line 44071 "preproc.c" /* yacc.c:1652 */ +#line 44736 "preproc.c" break; - case 1196: -#line 7660 "preproc.y" /* yacc.c:1652 */ - { + case 1196: /* common_func_opt_item: NOT LEAKPROOF */ +#line 7660 "preproc.y" + { (yyval.str) = mm_strdup("not leakproof"); } -#line 44079 "preproc.c" /* yacc.c:1652 */ +#line 44744 "preproc.c" break; - case 1197: -#line 7664 "preproc.y" /* yacc.c:1652 */ - { + case 1197: /* common_func_opt_item: COST NumericOnly */ +#line 7664 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("cost"),(yyvsp[0].str)); } -#line 44087 "preproc.c" /* yacc.c:1652 */ +#line 44752 "preproc.c" break; - case 1198: -#line 7668 "preproc.y" /* yacc.c:1652 */ - { + case 1198: /* common_func_opt_item: ROWS NumericOnly */ +#line 7668 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("rows"),(yyvsp[0].str)); } -#line 44095 "preproc.c" /* yacc.c:1652 */ +#line 44760 "preproc.c" break; - case 1199: -#line 7672 "preproc.y" /* yacc.c:1652 */ - { + case 1199: /* common_func_opt_item: SUPPORT any_name */ +#line 7672 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("support"),(yyvsp[0].str)); } -#line 44103 "preproc.c" /* yacc.c:1652 */ +#line 44768 "preproc.c" break; - case 1200: -#line 7676 "preproc.y" /* yacc.c:1652 */ - { + case 1200: /* common_func_opt_item: FunctionSetResetClause */ +#line 7676 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44111 "preproc.c" /* yacc.c:1652 */ +#line 44776 "preproc.c" break; - case 1201: -#line 7680 "preproc.y" /* yacc.c:1652 */ - { + case 1201: /* common_func_opt_item: PARALLEL ColId */ +#line 7680 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("parallel"),(yyvsp[0].str)); } -#line 44119 "preproc.c" /* yacc.c:1652 */ +#line 44784 "preproc.c" break; - case 1202: -#line 7688 "preproc.y" /* yacc.c:1652 */ - { + case 1202: /* createfunc_opt_item: AS func_as */ +#line 7688 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("as"),(yyvsp[0].str)); } -#line 44127 "preproc.c" /* yacc.c:1652 */ +#line 44792 "preproc.c" break; - case 1203: -#line 7692 "preproc.y" /* yacc.c:1652 */ - { + case 1203: /* createfunc_opt_item: LANGUAGE NonReservedWord_or_Sconst */ +#line 7692 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("language"),(yyvsp[0].str)); } -#line 44135 "preproc.c" /* yacc.c:1652 */ +#line 44800 "preproc.c" break; - case 1204: -#line 7696 "preproc.y" /* yacc.c:1652 */ - { + case 1204: /* createfunc_opt_item: TRANSFORM transform_type_list */ +#line 7696 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("transform"),(yyvsp[0].str)); } -#line 44143 "preproc.c" /* yacc.c:1652 */ +#line 44808 "preproc.c" break; - case 1205: -#line 7700 "preproc.y" /* yacc.c:1652 */ - { + case 1205: /* createfunc_opt_item: WINDOW */ +#line 7700 "preproc.y" + { (yyval.str) = mm_strdup("window"); } -#line 44151 "preproc.c" /* yacc.c:1652 */ +#line 44816 "preproc.c" break; - case 1206: -#line 7704 "preproc.y" /* yacc.c:1652 */ - { + case 1206: /* createfunc_opt_item: common_func_opt_item */ +#line 7704 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44159 "preproc.c" /* yacc.c:1652 */ +#line 44824 "preproc.c" break; - case 1207: -#line 7712 "preproc.y" /* yacc.c:1652 */ - { + case 1207: /* func_as: ecpg_sconst */ +#line 7712 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44167 "preproc.c" /* yacc.c:1652 */ +#line 44832 "preproc.c" break; - case 1208: -#line 7716 "preproc.y" /* yacc.c:1652 */ - { + case 1208: /* func_as: ecpg_sconst ',' ecpg_sconst */ +#line 7716 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 44175 "preproc.c" /* yacc.c:1652 */ +#line 44840 "preproc.c" break; - case 1209: -#line 7724 "preproc.y" /* yacc.c:1652 */ - { + case 1209: /* transform_type_list: FOR TYPE_P Typename */ +#line 7724 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("for type"),(yyvsp[0].str)); } -#line 44183 "preproc.c" /* yacc.c:1652 */ +#line 44848 "preproc.c" break; - case 1210: -#line 7728 "preproc.y" /* yacc.c:1652 */ - { + case 1210: /* transform_type_list: transform_type_list ',' FOR TYPE_P Typename */ +#line 7728 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup(", for type"),(yyvsp[0].str)); } -#line 44191 "preproc.c" /* yacc.c:1652 */ +#line 44856 "preproc.c" break; - case 1211: -#line 7736 "preproc.y" /* yacc.c:1652 */ - { + case 1211: /* opt_definition: WITH definition */ +#line 7736 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 44199 "preproc.c" /* yacc.c:1652 */ +#line 44864 "preproc.c" break; - case 1212: -#line 7740 "preproc.y" /* yacc.c:1652 */ - { + case 1212: /* opt_definition: %empty */ +#line 7740 "preproc.y" + { (yyval.str)=EMPTY; } -#line 44206 "preproc.c" /* yacc.c:1652 */ +#line 44871 "preproc.c" break; - case 1213: -#line 7747 "preproc.y" /* yacc.c:1652 */ - { + case 1213: /* table_func_column: param_name func_type */ +#line 7747 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44214 "preproc.c" /* yacc.c:1652 */ +#line 44879 "preproc.c" break; - case 1214: -#line 7755 "preproc.y" /* yacc.c:1652 */ - { + case 1214: /* table_func_column_list: table_func_column */ +#line 7755 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44222 "preproc.c" /* yacc.c:1652 */ +#line 44887 "preproc.c" break; - case 1215: -#line 7759 "preproc.y" /* yacc.c:1652 */ - { + case 1215: /* table_func_column_list: table_func_column_list ',' table_func_column */ +#line 7759 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 44230 "preproc.c" /* yacc.c:1652 */ +#line 44895 "preproc.c" break; - case 1216: -#line 7767 "preproc.y" /* yacc.c:1652 */ - { + case 1216: /* AlterFunctionStmt: ALTER FUNCTION function_with_argtypes alterfunc_opt_list opt_restrict */ +#line 7767 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter function"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44238 "preproc.c" /* yacc.c:1652 */ +#line 44903 "preproc.c" break; - case 1217: -#line 7771 "preproc.y" /* yacc.c:1652 */ - { + case 1217: /* AlterFunctionStmt: ALTER PROCEDURE function_with_argtypes alterfunc_opt_list opt_restrict */ +#line 7771 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter procedure"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44246 "preproc.c" /* yacc.c:1652 */ +#line 44911 "preproc.c" break; - case 1218: -#line 7775 "preproc.y" /* yacc.c:1652 */ - { + case 1218: /* AlterFunctionStmt: ALTER ROUTINE function_with_argtypes alterfunc_opt_list opt_restrict */ +#line 7775 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter routine"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44254 "preproc.c" /* yacc.c:1652 */ +#line 44919 "preproc.c" break; - case 1219: -#line 7783 "preproc.y" /* yacc.c:1652 */ - { + case 1219: /* alterfunc_opt_list: common_func_opt_item */ +#line 7783 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44262 "preproc.c" /* yacc.c:1652 */ +#line 44927 "preproc.c" break; - case 1220: -#line 7787 "preproc.y" /* yacc.c:1652 */ - { + case 1220: /* alterfunc_opt_list: alterfunc_opt_list common_func_opt_item */ +#line 7787 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44270 "preproc.c" /* yacc.c:1652 */ +#line 44935 "preproc.c" break; - case 1221: -#line 7795 "preproc.y" /* yacc.c:1652 */ - { + case 1221: /* opt_restrict: RESTRICT */ +#line 7795 "preproc.y" + { (yyval.str) = mm_strdup("restrict"); } -#line 44278 "preproc.c" /* yacc.c:1652 */ +#line 44943 "preproc.c" break; - case 1222: -#line 7799 "preproc.y" /* yacc.c:1652 */ - { + case 1222: /* opt_restrict: %empty */ +#line 7799 "preproc.y" + { (yyval.str)=EMPTY; } -#line 44285 "preproc.c" /* yacc.c:1652 */ +#line 44950 "preproc.c" break; - case 1223: -#line 7806 "preproc.y" /* yacc.c:1652 */ - { + case 1223: /* RemoveFuncStmt: DROP FUNCTION function_with_argtypes_list opt_drop_behavior */ +#line 7806 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop function"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44293 "preproc.c" /* yacc.c:1652 */ +#line 44958 "preproc.c" break; - case 1224: -#line 7810 "preproc.y" /* yacc.c:1652 */ - { + case 1224: /* RemoveFuncStmt: DROP FUNCTION IF_P EXISTS function_with_argtypes_list opt_drop_behavior */ +#line 7810 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop function if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44301 "preproc.c" /* yacc.c:1652 */ +#line 44966 "preproc.c" break; - case 1225: -#line 7814 "preproc.y" /* yacc.c:1652 */ - { + case 1225: /* RemoveFuncStmt: DROP PROCEDURE function_with_argtypes_list opt_drop_behavior */ +#line 7814 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop procedure"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44309 "preproc.c" /* yacc.c:1652 */ +#line 44974 "preproc.c" break; - case 1226: -#line 7818 "preproc.y" /* yacc.c:1652 */ - { + case 1226: /* RemoveFuncStmt: DROP PROCEDURE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */ +#line 7818 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop procedure if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44317 "preproc.c" /* yacc.c:1652 */ +#line 44982 "preproc.c" break; - case 1227: -#line 7822 "preproc.y" /* yacc.c:1652 */ - { + case 1227: /* RemoveFuncStmt: DROP ROUTINE function_with_argtypes_list opt_drop_behavior */ +#line 7822 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop routine"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44325 "preproc.c" /* yacc.c:1652 */ +#line 44990 "preproc.c" break; - case 1228: -#line 7826 "preproc.y" /* yacc.c:1652 */ - { + case 1228: /* RemoveFuncStmt: DROP ROUTINE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */ +#line 7826 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop routine if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44333 "preproc.c" /* yacc.c:1652 */ +#line 44998 "preproc.c" break; - case 1229: -#line 7834 "preproc.y" /* yacc.c:1652 */ - { + case 1229: /* RemoveAggrStmt: DROP AGGREGATE aggregate_with_argtypes_list opt_drop_behavior */ +#line 7834 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop aggregate"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44341 "preproc.c" /* yacc.c:1652 */ +#line 45006 "preproc.c" break; - case 1230: -#line 7838 "preproc.y" /* yacc.c:1652 */ - { + case 1230: /* RemoveAggrStmt: DROP AGGREGATE IF_P EXISTS aggregate_with_argtypes_list opt_drop_behavior */ +#line 7838 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop aggregate if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44349 "preproc.c" /* yacc.c:1652 */ +#line 45014 "preproc.c" break; - case 1231: -#line 7846 "preproc.y" /* yacc.c:1652 */ - { + case 1231: /* RemoveOperStmt: DROP OPERATOR operator_with_argtypes_list opt_drop_behavior */ +#line 7846 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop operator"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44357 "preproc.c" /* yacc.c:1652 */ +#line 45022 "preproc.c" break; - case 1232: -#line 7850 "preproc.y" /* yacc.c:1652 */ - { + case 1232: /* RemoveOperStmt: DROP OPERATOR IF_P EXISTS operator_with_argtypes_list opt_drop_behavior */ +#line 7850 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop operator if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44365 "preproc.c" /* yacc.c:1652 */ +#line 45030 "preproc.c" break; - case 1233: -#line 7858 "preproc.y" /* yacc.c:1652 */ - { + case 1233: /* oper_argtypes: '(' Typename ')' */ +#line 7858 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 44373 "preproc.c" /* yacc.c:1652 */ +#line 45038 "preproc.c" break; - case 1234: -#line 7862 "preproc.y" /* yacc.c:1652 */ - { + case 1234: /* oper_argtypes: '(' Typename ',' Typename ')' */ +#line 7862 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 44381 "preproc.c" /* yacc.c:1652 */ +#line 45046 "preproc.c" break; - case 1235: -#line 7866 "preproc.y" /* yacc.c:1652 */ - { + case 1235: /* oper_argtypes: '(' NONE ',' Typename ')' */ +#line 7866 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("( none ,"),(yyvsp[-1].str),mm_strdup(")")); } -#line 44389 "preproc.c" /* yacc.c:1652 */ +#line 45054 "preproc.c" break; - case 1236: -#line 7870 "preproc.y" /* yacc.c:1652 */ - { + case 1236: /* oper_argtypes: '(' Typename ',' NONE ')' */ +#line 7870 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-3].str),mm_strdup(", none )")); } -#line 44397 "preproc.c" /* yacc.c:1652 */ +#line 45062 "preproc.c" break; - case 1237: -#line 7878 "preproc.y" /* yacc.c:1652 */ - { + case 1237: /* any_operator: all_Op */ +#line 7878 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44405 "preproc.c" /* yacc.c:1652 */ +#line 45070 "preproc.c" break; - case 1238: -#line 7882 "preproc.y" /* yacc.c:1652 */ - { + case 1238: /* any_operator: ColId '.' any_operator */ +#line 7882 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("."),(yyvsp[0].str)); } -#line 44413 "preproc.c" /* yacc.c:1652 */ +#line 45078 "preproc.c" break; - case 1239: -#line 7890 "preproc.y" /* yacc.c:1652 */ - { + case 1239: /* operator_with_argtypes_list: operator_with_argtypes */ +#line 7890 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44421 "preproc.c" /* yacc.c:1652 */ +#line 45086 "preproc.c" break; - case 1240: -#line 7894 "preproc.y" /* yacc.c:1652 */ - { + case 1240: /* operator_with_argtypes_list: operator_with_argtypes_list ',' operator_with_argtypes */ +#line 7894 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 44429 "preproc.c" /* yacc.c:1652 */ +#line 45094 "preproc.c" break; - case 1241: -#line 7902 "preproc.y" /* yacc.c:1652 */ - { + case 1241: /* operator_with_argtypes: any_operator oper_argtypes */ +#line 7902 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44437 "preproc.c" /* yacc.c:1652 */ +#line 45102 "preproc.c" break; - case 1242: -#line 7910 "preproc.y" /* yacc.c:1652 */ - { + case 1242: /* DoStmt: DO dostmt_opt_list */ +#line 7910 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("do"),(yyvsp[0].str)); } -#line 44445 "preproc.c" /* yacc.c:1652 */ +#line 45110 "preproc.c" break; - case 1243: -#line 7918 "preproc.y" /* yacc.c:1652 */ - { + case 1243: /* dostmt_opt_list: dostmt_opt_item */ +#line 7918 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44453 "preproc.c" /* yacc.c:1652 */ +#line 45118 "preproc.c" break; - case 1244: -#line 7922 "preproc.y" /* yacc.c:1652 */ - { + case 1244: /* dostmt_opt_list: dostmt_opt_list dostmt_opt_item */ +#line 7922 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44461 "preproc.c" /* yacc.c:1652 */ +#line 45126 "preproc.c" break; - case 1245: -#line 7930 "preproc.y" /* yacc.c:1652 */ - { + case 1245: /* dostmt_opt_item: ecpg_sconst */ +#line 7930 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44469 "preproc.c" /* yacc.c:1652 */ +#line 45134 "preproc.c" break; - case 1246: -#line 7934 "preproc.y" /* yacc.c:1652 */ - { + case 1246: /* dostmt_opt_item: LANGUAGE NonReservedWord_or_Sconst */ +#line 7934 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("language"),(yyvsp[0].str)); } -#line 44477 "preproc.c" /* yacc.c:1652 */ +#line 45142 "preproc.c" break; - case 1247: -#line 7942 "preproc.y" /* yacc.c:1652 */ - { + case 1247: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH FUNCTION function_with_argtypes cast_context */ +#line 7942 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("create cast ("),(yyvsp[-7].str),mm_strdup("as"),(yyvsp[-5].str),mm_strdup(") with function"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44485 "preproc.c" /* yacc.c:1652 */ +#line 45150 "preproc.c" break; - case 1248: -#line 7946 "preproc.y" /* yacc.c:1652 */ - { + case 1248: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITHOUT FUNCTION cast_context */ +#line 7946 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("create cast ("),(yyvsp[-6].str),mm_strdup("as"),(yyvsp[-4].str),mm_strdup(") without function"),(yyvsp[0].str)); } -#line 44493 "preproc.c" /* yacc.c:1652 */ +#line 45158 "preproc.c" break; - case 1249: -#line 7950 "preproc.y" /* yacc.c:1652 */ - { + case 1249: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH INOUT cast_context */ +#line 7950 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("create cast ("),(yyvsp[-6].str),mm_strdup("as"),(yyvsp[-4].str),mm_strdup(") with inout"),(yyvsp[0].str)); } -#line 44501 "preproc.c" /* yacc.c:1652 */ +#line 45166 "preproc.c" break; - case 1250: -#line 7958 "preproc.y" /* yacc.c:1652 */ - { + case 1250: /* cast_context: AS IMPLICIT_P */ +#line 7958 "preproc.y" + { (yyval.str) = mm_strdup("as implicit"); } -#line 44509 "preproc.c" /* yacc.c:1652 */ +#line 45174 "preproc.c" break; - case 1251: -#line 7962 "preproc.y" /* yacc.c:1652 */ - { + case 1251: /* cast_context: AS ASSIGNMENT */ +#line 7962 "preproc.y" + { (yyval.str) = mm_strdup("as assignment"); } -#line 44517 "preproc.c" /* yacc.c:1652 */ +#line 45182 "preproc.c" break; - case 1252: -#line 7966 "preproc.y" /* yacc.c:1652 */ - { + case 1252: /* cast_context: %empty */ +#line 7966 "preproc.y" + { (yyval.str)=EMPTY; } -#line 44524 "preproc.c" /* yacc.c:1652 */ +#line 45189 "preproc.c" break; - case 1253: -#line 7973 "preproc.y" /* yacc.c:1652 */ - { + case 1253: /* DropCastStmt: DROP CAST opt_if_exists '(' Typename AS Typename ')' opt_drop_behavior */ +#line 7973 "preproc.y" + { (yyval.str) = cat_str(8,mm_strdup("drop cast"),(yyvsp[-6].str),mm_strdup("("),(yyvsp[-4].str),mm_strdup("as"),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 44532 "preproc.c" /* yacc.c:1652 */ +#line 45197 "preproc.c" break; - case 1254: -#line 7981 "preproc.y" /* yacc.c:1652 */ - { + case 1254: /* opt_if_exists: IF_P EXISTS */ +#line 7981 "preproc.y" + { (yyval.str) = mm_strdup("if exists"); } -#line 44540 "preproc.c" /* yacc.c:1652 */ +#line 45205 "preproc.c" break; - case 1255: -#line 7985 "preproc.y" /* yacc.c:1652 */ - { + case 1255: /* opt_if_exists: %empty */ +#line 7985 "preproc.y" + { (yyval.str)=EMPTY; } -#line 44547 "preproc.c" /* yacc.c:1652 */ +#line 45212 "preproc.c" break; - case 1256: -#line 7992 "preproc.y" /* yacc.c:1652 */ - { + case 1256: /* CreateTransformStmt: CREATE opt_or_replace TRANSFORM FOR Typename LANGUAGE name '(' transform_element_list ')' */ +#line 7992 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("create"),(yyvsp[-8].str),mm_strdup("transform for"),(yyvsp[-5].str),mm_strdup("language"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 44555 "preproc.c" /* yacc.c:1652 */ +#line 45220 "preproc.c" break; - case 1257: -#line 8000 "preproc.y" /* yacc.c:1652 */ - { + case 1257: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes ',' TO SQL_P WITH FUNCTION function_with_argtypes */ +#line 8000 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("from sql with function"),(yyvsp[-6].str),mm_strdup(", to sql with function"),(yyvsp[0].str)); } -#line 44563 "preproc.c" /* yacc.c:1652 */ +#line 45228 "preproc.c" break; - case 1258: -#line 8004 "preproc.y" /* yacc.c:1652 */ - { + case 1258: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes ',' FROM SQL_P WITH FUNCTION function_with_argtypes */ +#line 8004 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("to sql with function"),(yyvsp[-6].str),mm_strdup(", from sql with function"),(yyvsp[0].str)); } -#line 44571 "preproc.c" /* yacc.c:1652 */ +#line 45236 "preproc.c" break; - case 1259: -#line 8008 "preproc.y" /* yacc.c:1652 */ - { + case 1259: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes */ +#line 8008 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("from sql with function"),(yyvsp[0].str)); } -#line 44579 "preproc.c" /* yacc.c:1652 */ +#line 45244 "preproc.c" break; - case 1260: -#line 8012 "preproc.y" /* yacc.c:1652 */ - { + case 1260: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes */ +#line 8012 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("to sql with function"),(yyvsp[0].str)); } -#line 44587 "preproc.c" /* yacc.c:1652 */ +#line 45252 "preproc.c" break; - case 1261: -#line 8020 "preproc.y" /* yacc.c:1652 */ - { + case 1261: /* DropTransformStmt: DROP TRANSFORM opt_if_exists FOR Typename LANGUAGE name opt_drop_behavior */ +#line 8020 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("drop transform"),(yyvsp[-5].str),mm_strdup("for"),(yyvsp[-3].str),mm_strdup("language"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44595 "preproc.c" /* yacc.c:1652 */ +#line 45260 "preproc.c" break; - case 1262: -#line 8028 "preproc.y" /* yacc.c:1652 */ - { + case 1262: /* ReindexStmt: REINDEX reindex_target_type opt_concurrently qualified_name */ +#line 8028 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("reindex"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44603 "preproc.c" /* yacc.c:1652 */ +#line 45268 "preproc.c" break; - case 1263: -#line 8032 "preproc.y" /* yacc.c:1652 */ - { + case 1263: /* ReindexStmt: REINDEX reindex_target_multitable opt_concurrently name */ +#line 8032 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("reindex"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44611 "preproc.c" /* yacc.c:1652 */ +#line 45276 "preproc.c" break; - case 1264: -#line 8036 "preproc.y" /* yacc.c:1652 */ - { + case 1264: /* ReindexStmt: REINDEX '(' reindex_option_list ')' reindex_target_type opt_concurrently qualified_name */ +#line 8036 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("reindex ("),(yyvsp[-4].str),mm_strdup(")"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44619 "preproc.c" /* yacc.c:1652 */ +#line 45284 "preproc.c" break; - case 1265: -#line 8040 "preproc.y" /* yacc.c:1652 */ - { + case 1265: /* ReindexStmt: REINDEX '(' reindex_option_list ')' reindex_target_multitable opt_concurrently name */ +#line 8040 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("reindex ("),(yyvsp[-4].str),mm_strdup(")"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44627 "preproc.c" /* yacc.c:1652 */ +#line 45292 "preproc.c" break; - case 1266: -#line 8048 "preproc.y" /* yacc.c:1652 */ - { + case 1266: /* reindex_target_type: INDEX */ +#line 8048 "preproc.y" + { (yyval.str) = mm_strdup("index"); } -#line 44635 "preproc.c" /* yacc.c:1652 */ +#line 45300 "preproc.c" break; - case 1267: -#line 8052 "preproc.y" /* yacc.c:1652 */ - { + case 1267: /* reindex_target_type: TABLE */ +#line 8052 "preproc.y" + { (yyval.str) = mm_strdup("table"); } -#line 44643 "preproc.c" /* yacc.c:1652 */ +#line 45308 "preproc.c" break; - case 1268: -#line 8060 "preproc.y" /* yacc.c:1652 */ - { + case 1268: /* reindex_target_multitable: SCHEMA */ +#line 8060 "preproc.y" + { (yyval.str) = mm_strdup("schema"); } -#line 44651 "preproc.c" /* yacc.c:1652 */ +#line 45316 "preproc.c" break; - case 1269: -#line 8064 "preproc.y" /* yacc.c:1652 */ - { + case 1269: /* reindex_target_multitable: SYSTEM_P */ +#line 8064 "preproc.y" + { (yyval.str) = mm_strdup("system"); } -#line 44659 "preproc.c" /* yacc.c:1652 */ +#line 45324 "preproc.c" break; - case 1270: -#line 8068 "preproc.y" /* yacc.c:1652 */ - { + case 1270: /* reindex_target_multitable: DATABASE */ +#line 8068 "preproc.y" + { (yyval.str) = mm_strdup("database"); } -#line 44667 "preproc.c" /* yacc.c:1652 */ +#line 45332 "preproc.c" break; - case 1271: -#line 8076 "preproc.y" /* yacc.c:1652 */ - { + case 1271: /* reindex_option_list: reindex_option_elem */ +#line 8076 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 44675 "preproc.c" /* yacc.c:1652 */ +#line 45340 "preproc.c" break; - case 1272: -#line 8080 "preproc.y" /* yacc.c:1652 */ - { + case 1272: /* reindex_option_list: reindex_option_list ',' reindex_option_elem */ +#line 8080 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 44683 "preproc.c" /* yacc.c:1652 */ +#line 45348 "preproc.c" break; - case 1273: -#line 8088 "preproc.y" /* yacc.c:1652 */ - { + case 1273: /* reindex_option_elem: VERBOSE */ +#line 8088 "preproc.y" + { (yyval.str) = mm_strdup("verbose"); } -#line 44691 "preproc.c" /* yacc.c:1652 */ +#line 45356 "preproc.c" break; - case 1274: -#line 8096 "preproc.y" /* yacc.c:1652 */ - { + case 1274: /* AlterTblSpcStmt: ALTER TABLESPACE name SET reloptions */ +#line 8096 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter tablespace"),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 44699 "preproc.c" /* yacc.c:1652 */ +#line 45364 "preproc.c" break; - case 1275: -#line 8100 "preproc.y" /* yacc.c:1652 */ - { + case 1275: /* AlterTblSpcStmt: ALTER TABLESPACE name RESET reloptions */ +#line 8100 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter tablespace"),(yyvsp[-2].str),mm_strdup("reset"),(yyvsp[0].str)); } -#line 44707 "preproc.c" /* yacc.c:1652 */ +#line 45372 "preproc.c" break; - case 1276: -#line 8108 "preproc.y" /* yacc.c:1652 */ - { + case 1276: /* RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name */ +#line 8108 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter aggregate"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44715 "preproc.c" /* yacc.c:1652 */ +#line 45380 "preproc.c" break; - case 1277: -#line 8112 "preproc.y" /* yacc.c:1652 */ - { + case 1277: /* RenameStmt: ALTER COLLATION any_name RENAME TO name */ +#line 8112 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter collation"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44723 "preproc.c" /* yacc.c:1652 */ +#line 45388 "preproc.c" break; - case 1278: -#line 8116 "preproc.y" /* yacc.c:1652 */ - { + case 1278: /* RenameStmt: ALTER CONVERSION_P any_name RENAME TO name */ +#line 8116 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter conversion"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44731 "preproc.c" /* yacc.c:1652 */ +#line 45396 "preproc.c" break; - case 1279: -#line 8120 "preproc.y" /* yacc.c:1652 */ - { + case 1279: /* RenameStmt: ALTER DATABASE database_name RENAME TO database_name */ +#line 8120 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter database"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44739 "preproc.c" /* yacc.c:1652 */ +#line 45404 "preproc.c" break; - case 1280: -#line 8124 "preproc.y" /* yacc.c:1652 */ - { + case 1280: /* RenameStmt: ALTER DOMAIN_P any_name RENAME TO name */ +#line 8124 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44747 "preproc.c" /* yacc.c:1652 */ +#line 45412 "preproc.c" break; - case 1281: -#line 8128 "preproc.y" /* yacc.c:1652 */ - { + case 1281: /* RenameStmt: ALTER DOMAIN_P any_name RENAME CONSTRAINT name TO name */ +#line 8128 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter domain"),(yyvsp[-5].str),mm_strdup("rename constraint"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 44755 "preproc.c" /* yacc.c:1652 */ +#line 45420 "preproc.c" break; - case 1282: -#line 8132 "preproc.y" /* yacc.c:1652 */ - { + case 1282: /* RenameStmt: ALTER FOREIGN DATA_P WRAPPER name RENAME TO name */ +#line 8132 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter foreign data wrapper"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44763 "preproc.c" /* yacc.c:1652 */ +#line 45428 "preproc.c" break; - case 1283: -#line 8136 "preproc.y" /* yacc.c:1652 */ - { + case 1283: /* RenameStmt: ALTER FUNCTION function_with_argtypes RENAME TO name */ +#line 8136 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter function"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44771 "preproc.c" /* yacc.c:1652 */ +#line 45436 "preproc.c" break; - case 1284: -#line 8140 "preproc.y" /* yacc.c:1652 */ - { + case 1284: /* RenameStmt: ALTER GROUP_P RoleId RENAME TO RoleId */ +#line 8140 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter group"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44779 "preproc.c" /* yacc.c:1652 */ +#line 45444 "preproc.c" break; - case 1285: -#line 8144 "preproc.y" /* yacc.c:1652 */ - { + case 1285: /* RenameStmt: ALTER opt_procedural LANGUAGE name RENAME TO name */ +#line 8144 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter"),(yyvsp[-5].str),mm_strdup("language"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44787 "preproc.c" /* yacc.c:1652 */ +#line 45452 "preproc.c" break; - case 1286: -#line 8148 "preproc.y" /* yacc.c:1652 */ - { + case 1286: /* RenameStmt: ALTER OPERATOR CLASS any_name USING access_method RENAME TO name */ +#line 8148 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter operator class"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44795 "preproc.c" /* yacc.c:1652 */ +#line 45460 "preproc.c" break; - case 1287: -#line 8152 "preproc.y" /* yacc.c:1652 */ - { + case 1287: /* RenameStmt: ALTER OPERATOR FAMILY any_name USING access_method RENAME TO name */ +#line 8152 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44803 "preproc.c" /* yacc.c:1652 */ +#line 45468 "preproc.c" break; - case 1288: -#line 8156 "preproc.y" /* yacc.c:1652 */ - { + case 1288: /* RenameStmt: ALTER POLICY name ON qualified_name RENAME TO name */ +#line 8156 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter policy"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44811 "preproc.c" /* yacc.c:1652 */ +#line 45476 "preproc.c" break; - case 1289: -#line 8160 "preproc.y" /* yacc.c:1652 */ - { + case 1289: /* RenameStmt: ALTER POLICY IF_P EXISTS name ON qualified_name RENAME TO name */ +#line 8160 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter policy if exists"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44819 "preproc.c" /* yacc.c:1652 */ +#line 45484 "preproc.c" break; - case 1290: -#line 8164 "preproc.y" /* yacc.c:1652 */ - { + case 1290: /* RenameStmt: ALTER PROCEDURE function_with_argtypes RENAME TO name */ +#line 8164 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter procedure"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44827 "preproc.c" /* yacc.c:1652 */ +#line 45492 "preproc.c" break; - case 1291: -#line 8168 "preproc.y" /* yacc.c:1652 */ - { + case 1291: /* RenameStmt: ALTER PUBLICATION name RENAME TO name */ +#line 8168 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44835 "preproc.c" /* yacc.c:1652 */ +#line 45500 "preproc.c" break; - case 1292: -#line 8172 "preproc.y" /* yacc.c:1652 */ - { + case 1292: /* RenameStmt: ALTER ROUTINE function_with_argtypes RENAME TO name */ +#line 8172 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter routine"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44843 "preproc.c" /* yacc.c:1652 */ +#line 45508 "preproc.c" break; - case 1293: -#line 8176 "preproc.y" /* yacc.c:1652 */ - { + case 1293: /* RenameStmt: ALTER SCHEMA name RENAME TO name */ +#line 8176 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter schema"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44851 "preproc.c" /* yacc.c:1652 */ +#line 45516 "preproc.c" break; - case 1294: -#line 8180 "preproc.y" /* yacc.c:1652 */ - { + case 1294: /* RenameStmt: ALTER SERVER name RENAME TO name */ +#line 8180 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter server"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44859 "preproc.c" /* yacc.c:1652 */ +#line 45524 "preproc.c" break; - case 1295: -#line 8184 "preproc.y" /* yacc.c:1652 */ - { + case 1295: /* RenameStmt: ALTER SUBSCRIPTION name RENAME TO name */ +#line 8184 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44867 "preproc.c" /* yacc.c:1652 */ +#line 45532 "preproc.c" break; - case 1296: -#line 8188 "preproc.y" /* yacc.c:1652 */ - { + case 1296: /* RenameStmt: ALTER TABLE relation_expr RENAME TO name */ +#line 8188 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter table"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44875 "preproc.c" /* yacc.c:1652 */ +#line 45540 "preproc.c" break; - case 1297: -#line 8192 "preproc.y" /* yacc.c:1652 */ - { + case 1297: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME TO name */ +#line 8192 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter table if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44883 "preproc.c" /* yacc.c:1652 */ +#line 45548 "preproc.c" break; - case 1298: -#line 8196 "preproc.y" /* yacc.c:1652 */ - { + case 1298: /* RenameStmt: ALTER SEQUENCE qualified_name RENAME TO name */ +#line 8196 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter sequence"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44891 "preproc.c" /* yacc.c:1652 */ +#line 45556 "preproc.c" break; - case 1299: -#line 8200 "preproc.y" /* yacc.c:1652 */ - { + case 1299: /* RenameStmt: ALTER SEQUENCE IF_P EXISTS qualified_name RENAME TO name */ +#line 8200 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter sequence if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44899 "preproc.c" /* yacc.c:1652 */ +#line 45564 "preproc.c" break; - case 1300: -#line 8204 "preproc.y" /* yacc.c:1652 */ - { + case 1300: /* RenameStmt: ALTER VIEW qualified_name RENAME TO name */ +#line 8204 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter view"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44907 "preproc.c" /* yacc.c:1652 */ +#line 45572 "preproc.c" break; - case 1301: -#line 8208 "preproc.y" /* yacc.c:1652 */ - { + case 1301: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME TO name */ +#line 8208 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter view if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44915 "preproc.c" /* yacc.c:1652 */ +#line 45580 "preproc.c" break; - case 1302: -#line 8212 "preproc.y" /* yacc.c:1652 */ - { + case 1302: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME TO name */ +#line 8212 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter materialized view"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44923 "preproc.c" /* yacc.c:1652 */ +#line 45588 "preproc.c" break; - case 1303: -#line 8216 "preproc.y" /* yacc.c:1652 */ - { + case 1303: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME TO name */ +#line 8216 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter materialized view if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44931 "preproc.c" /* yacc.c:1652 */ +#line 45596 "preproc.c" break; - case 1304: -#line 8220 "preproc.y" /* yacc.c:1652 */ - { + case 1304: /* RenameStmt: ALTER INDEX qualified_name RENAME TO name */ +#line 8220 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter index"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44939 "preproc.c" /* yacc.c:1652 */ +#line 45604 "preproc.c" break; - case 1305: -#line 8224 "preproc.y" /* yacc.c:1652 */ - { + case 1305: /* RenameStmt: ALTER INDEX IF_P EXISTS qualified_name RENAME TO name */ +#line 8224 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter index if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44947 "preproc.c" /* yacc.c:1652 */ +#line 45612 "preproc.c" break; - case 1306: -#line 8228 "preproc.y" /* yacc.c:1652 */ - { + case 1306: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME TO name */ +#line 8228 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter foreign table"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44955 "preproc.c" /* yacc.c:1652 */ +#line 45620 "preproc.c" break; - case 1307: -#line 8232 "preproc.y" /* yacc.c:1652 */ - { + case 1307: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME TO name */ +#line 8232 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter foreign table if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 44963 "preproc.c" /* yacc.c:1652 */ +#line 45628 "preproc.c" break; - case 1308: -#line 8236 "preproc.y" /* yacc.c:1652 */ - { + case 1308: /* RenameStmt: ALTER TABLE relation_expr RENAME opt_column name TO name */ +#line 8236 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter table"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 44971 "preproc.c" /* yacc.c:1652 */ +#line 45636 "preproc.c" break; - case 1309: -#line 8240 "preproc.y" /* yacc.c:1652 */ - { + case 1309: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */ +#line 8240 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter table if exists"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 44979 "preproc.c" /* yacc.c:1652 */ +#line 45644 "preproc.c" break; - case 1310: -#line 8244 "preproc.y" /* yacc.c:1652 */ - { + case 1310: /* RenameStmt: ALTER VIEW qualified_name RENAME opt_column name TO name */ +#line 8244 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter view"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 44987 "preproc.c" /* yacc.c:1652 */ +#line 45652 "preproc.c" break; - case 1311: -#line 8248 "preproc.y" /* yacc.c:1652 */ - { + case 1311: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */ +#line 8248 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter view if exists"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 44995 "preproc.c" /* yacc.c:1652 */ +#line 45660 "preproc.c" break; - case 1312: -#line 8252 "preproc.y" /* yacc.c:1652 */ - { + case 1312: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME opt_column name TO name */ +#line 8252 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter materialized view"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 45003 "preproc.c" /* yacc.c:1652 */ +#line 45668 "preproc.c" break; - case 1313: -#line 8256 "preproc.y" /* yacc.c:1652 */ - { + case 1313: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */ +#line 8256 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter materialized view if exists"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 45011 "preproc.c" /* yacc.c:1652 */ +#line 45676 "preproc.c" break; - case 1314: -#line 8260 "preproc.y" /* yacc.c:1652 */ - { + case 1314: /* RenameStmt: ALTER TABLE relation_expr RENAME CONSTRAINT name TO name */ +#line 8260 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter table"),(yyvsp[-5].str),mm_strdup("rename constraint"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 45019 "preproc.c" /* yacc.c:1652 */ +#line 45684 "preproc.c" break; - case 1315: -#line 8264 "preproc.y" /* yacc.c:1652 */ - { + case 1315: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME CONSTRAINT name TO name */ +#line 8264 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter table if exists"),(yyvsp[-5].str),mm_strdup("rename constraint"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 45027 "preproc.c" /* yacc.c:1652 */ +#line 45692 "preproc.c" break; - case 1316: -#line 8268 "preproc.y" /* yacc.c:1652 */ - { + case 1316: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME opt_column name TO name */ +#line 8268 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter foreign table"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 45035 "preproc.c" /* yacc.c:1652 */ +#line 45700 "preproc.c" break; - case 1317: -#line 8272 "preproc.y" /* yacc.c:1652 */ - { + case 1317: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */ +#line 8272 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter foreign table if exists"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 45043 "preproc.c" /* yacc.c:1652 */ +#line 45708 "preproc.c" break; - case 1318: -#line 8276 "preproc.y" /* yacc.c:1652 */ - { + case 1318: /* RenameStmt: ALTER RULE name ON qualified_name RENAME TO name */ +#line 8276 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter rule"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45051 "preproc.c" /* yacc.c:1652 */ +#line 45716 "preproc.c" break; - case 1319: -#line 8280 "preproc.y" /* yacc.c:1652 */ - { + case 1319: /* RenameStmt: ALTER TRIGGER name ON qualified_name RENAME TO name */ +#line 8280 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter trigger"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45059 "preproc.c" /* yacc.c:1652 */ +#line 45724 "preproc.c" break; - case 1320: -#line 8284 "preproc.y" /* yacc.c:1652 */ - { + case 1320: /* RenameStmt: ALTER EVENT TRIGGER name RENAME TO name */ +#line 8284 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter event trigger"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45067 "preproc.c" /* yacc.c:1652 */ +#line 45732 "preproc.c" break; - case 1321: -#line 8288 "preproc.y" /* yacc.c:1652 */ - { + case 1321: /* RenameStmt: ALTER ROLE RoleId RENAME TO RoleId */ +#line 8288 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter role"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45075 "preproc.c" /* yacc.c:1652 */ +#line 45740 "preproc.c" break; - case 1322: -#line 8292 "preproc.y" /* yacc.c:1652 */ - { + case 1322: /* RenameStmt: ALTER USER RoleId RENAME TO RoleId */ +#line 8292 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter user"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45083 "preproc.c" /* yacc.c:1652 */ +#line 45748 "preproc.c" break; - case 1323: -#line 8296 "preproc.y" /* yacc.c:1652 */ - { + case 1323: /* RenameStmt: ALTER TABLESPACE name RENAME TO name */ +#line 8296 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter tablespace"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45091 "preproc.c" /* yacc.c:1652 */ +#line 45756 "preproc.c" break; - case 1324: -#line 8300 "preproc.y" /* yacc.c:1652 */ - { + case 1324: /* RenameStmt: ALTER STATISTICS any_name RENAME TO name */ +#line 8300 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter statistics"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45099 "preproc.c" /* yacc.c:1652 */ +#line 45764 "preproc.c" break; - case 1325: -#line 8304 "preproc.y" /* yacc.c:1652 */ - { + case 1325: /* RenameStmt: ALTER TEXT_P SEARCH PARSER any_name RENAME TO name */ +#line 8304 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search parser"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45107 "preproc.c" /* yacc.c:1652 */ +#line 45772 "preproc.c" break; - case 1326: -#line 8308 "preproc.y" /* yacc.c:1652 */ - { + case 1326: /* RenameStmt: ALTER TEXT_P SEARCH DICTIONARY any_name RENAME TO name */ +#line 8308 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search dictionary"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45115 "preproc.c" /* yacc.c:1652 */ +#line 45780 "preproc.c" break; - case 1327: -#line 8312 "preproc.y" /* yacc.c:1652 */ - { + case 1327: /* RenameStmt: ALTER TEXT_P SEARCH TEMPLATE any_name RENAME TO name */ +#line 8312 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search template"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45123 "preproc.c" /* yacc.c:1652 */ +#line 45788 "preproc.c" break; - case 1328: -#line 8316 "preproc.y" /* yacc.c:1652 */ - { + case 1328: /* RenameStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name RENAME TO name */ +#line 8316 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45131 "preproc.c" /* yacc.c:1652 */ +#line 45796 "preproc.c" break; - case 1329: -#line 8320 "preproc.y" /* yacc.c:1652 */ - { + case 1329: /* RenameStmt: ALTER TYPE_P any_name RENAME TO name */ +#line 8320 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter type"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 45139 "preproc.c" /* yacc.c:1652 */ +#line 45804 "preproc.c" break; - case 1330: -#line 8324 "preproc.y" /* yacc.c:1652 */ - { + case 1330: /* RenameStmt: ALTER TYPE_P any_name RENAME ATTRIBUTE name TO name opt_drop_behavior */ +#line 8324 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter type"),(yyvsp[-6].str),mm_strdup("rename attribute"),(yyvsp[-3].str),mm_strdup("to"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45147 "preproc.c" /* yacc.c:1652 */ +#line 45812 "preproc.c" break; - case 1331: -#line 8332 "preproc.y" /* yacc.c:1652 */ - { + case 1331: /* opt_column: COLUMN */ +#line 8332 "preproc.y" + { (yyval.str) = mm_strdup("column"); } -#line 45155 "preproc.c" /* yacc.c:1652 */ +#line 45820 "preproc.c" break; - case 1332: -#line 8336 "preproc.y" /* yacc.c:1652 */ - { + case 1332: /* opt_column: %empty */ +#line 8336 "preproc.y" + { (yyval.str)=EMPTY; } -#line 45162 "preproc.c" /* yacc.c:1652 */ +#line 45827 "preproc.c" break; - case 1333: -#line 8343 "preproc.y" /* yacc.c:1652 */ - { + case 1333: /* opt_set_data: SET DATA_P */ +#line 8343 "preproc.y" + { (yyval.str) = mm_strdup("set data"); } -#line 45170 "preproc.c" /* yacc.c:1652 */ +#line 45835 "preproc.c" break; - case 1334: -#line 8347 "preproc.y" /* yacc.c:1652 */ - { + case 1334: /* opt_set_data: %empty */ +#line 8347 "preproc.y" + { (yyval.str)=EMPTY; } -#line 45177 "preproc.c" /* yacc.c:1652 */ +#line 45842 "preproc.c" break; - case 1335: -#line 8354 "preproc.y" /* yacc.c:1652 */ - { + case 1335: /* AlterObjectDependsStmt: ALTER FUNCTION function_with_argtypes opt_no DEPENDS ON EXTENSION name */ +#line 8354 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter function"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 45185 "preproc.c" /* yacc.c:1652 */ +#line 45850 "preproc.c" break; - case 1336: -#line 8358 "preproc.y" /* yacc.c:1652 */ - { + case 1336: /* AlterObjectDependsStmt: ALTER PROCEDURE function_with_argtypes opt_no DEPENDS ON EXTENSION name */ +#line 8358 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter procedure"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 45193 "preproc.c" /* yacc.c:1652 */ +#line 45858 "preproc.c" break; - case 1337: -#line 8362 "preproc.y" /* yacc.c:1652 */ - { + case 1337: /* AlterObjectDependsStmt: ALTER ROUTINE function_with_argtypes opt_no DEPENDS ON EXTENSION name */ +#line 8362 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter routine"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 45201 "preproc.c" /* yacc.c:1652 */ +#line 45866 "preproc.c" break; - case 1338: -#line 8366 "preproc.y" /* yacc.c:1652 */ - { + case 1338: /* AlterObjectDependsStmt: ALTER TRIGGER name ON qualified_name opt_no DEPENDS ON EXTENSION name */ +#line 8366 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("alter trigger"),(yyvsp[-7].str),mm_strdup("on"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 45209 "preproc.c" /* yacc.c:1652 */ +#line 45874 "preproc.c" break; - case 1339: -#line 8370 "preproc.y" /* yacc.c:1652 */ - { + case 1339: /* AlterObjectDependsStmt: ALTER MATERIALIZED VIEW qualified_name opt_no DEPENDS ON EXTENSION name */ +#line 8370 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter materialized view"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 45217 "preproc.c" /* yacc.c:1652 */ +#line 45882 "preproc.c" break; - case 1340: -#line 8374 "preproc.y" /* yacc.c:1652 */ - { + case 1340: /* AlterObjectDependsStmt: ALTER INDEX qualified_name opt_no DEPENDS ON EXTENSION name */ +#line 8374 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter index"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 45225 "preproc.c" /* yacc.c:1652 */ +#line 45890 "preproc.c" break; - case 1341: -#line 8382 "preproc.y" /* yacc.c:1652 */ - { + case 1341: /* opt_no: NO */ +#line 8382 "preproc.y" + { (yyval.str) = mm_strdup("no"); } -#line 45233 "preproc.c" /* yacc.c:1652 */ +#line 45898 "preproc.c" break; - case 1342: -#line 8386 "preproc.y" /* yacc.c:1652 */ - { + case 1342: /* opt_no: %empty */ +#line 8386 "preproc.y" + { (yyval.str)=EMPTY; } -#line 45240 "preproc.c" /* yacc.c:1652 */ +#line 45905 "preproc.c" break; - case 1343: -#line 8393 "preproc.y" /* yacc.c:1652 */ - { + case 1343: /* AlterObjectSchemaStmt: ALTER AGGREGATE aggregate_with_argtypes SET SCHEMA name */ +#line 8393 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter aggregate"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45248 "preproc.c" /* yacc.c:1652 */ +#line 45913 "preproc.c" break; - case 1344: -#line 8397 "preproc.y" /* yacc.c:1652 */ - { + case 1344: /* AlterObjectSchemaStmt: ALTER COLLATION any_name SET SCHEMA name */ +#line 8397 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter collation"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45256 "preproc.c" /* yacc.c:1652 */ +#line 45921 "preproc.c" break; - case 1345: -#line 8401 "preproc.y" /* yacc.c:1652 */ - { + case 1345: /* AlterObjectSchemaStmt: ALTER CONVERSION_P any_name SET SCHEMA name */ +#line 8401 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter conversion"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45264 "preproc.c" /* yacc.c:1652 */ +#line 45929 "preproc.c" break; - case 1346: -#line 8405 "preproc.y" /* yacc.c:1652 */ - { + case 1346: /* AlterObjectSchemaStmt: ALTER DOMAIN_P any_name SET SCHEMA name */ +#line 8405 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45272 "preproc.c" /* yacc.c:1652 */ +#line 45937 "preproc.c" break; - case 1347: -#line 8409 "preproc.y" /* yacc.c:1652 */ - { + case 1347: /* AlterObjectSchemaStmt: ALTER EXTENSION name SET SCHEMA name */ +#line 8409 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter extension"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45280 "preproc.c" /* yacc.c:1652 */ +#line 45945 "preproc.c" break; - case 1348: -#line 8413 "preproc.y" /* yacc.c:1652 */ - { + case 1348: /* AlterObjectSchemaStmt: ALTER FUNCTION function_with_argtypes SET SCHEMA name */ +#line 8413 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter function"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45288 "preproc.c" /* yacc.c:1652 */ +#line 45953 "preproc.c" break; - case 1349: -#line 8417 "preproc.y" /* yacc.c:1652 */ - { + case 1349: /* AlterObjectSchemaStmt: ALTER OPERATOR operator_with_argtypes SET SCHEMA name */ +#line 8417 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter operator"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45296 "preproc.c" /* yacc.c:1652 */ +#line 45961 "preproc.c" break; - case 1350: -#line 8421 "preproc.y" /* yacc.c:1652 */ - { + case 1350: /* AlterObjectSchemaStmt: ALTER OPERATOR CLASS any_name USING access_method SET SCHEMA name */ +#line 8421 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter operator class"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45304 "preproc.c" /* yacc.c:1652 */ +#line 45969 "preproc.c" break; - case 1351: -#line 8425 "preproc.y" /* yacc.c:1652 */ - { + case 1351: /* AlterObjectSchemaStmt: ALTER OPERATOR FAMILY any_name USING access_method SET SCHEMA name */ +#line 8425 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45312 "preproc.c" /* yacc.c:1652 */ +#line 45977 "preproc.c" break; - case 1352: -#line 8429 "preproc.y" /* yacc.c:1652 */ - { + case 1352: /* AlterObjectSchemaStmt: ALTER PROCEDURE function_with_argtypes SET SCHEMA name */ +#line 8429 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter procedure"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45320 "preproc.c" /* yacc.c:1652 */ +#line 45985 "preproc.c" break; - case 1353: -#line 8433 "preproc.y" /* yacc.c:1652 */ - { + case 1353: /* AlterObjectSchemaStmt: ALTER ROUTINE function_with_argtypes SET SCHEMA name */ +#line 8433 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter routine"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45328 "preproc.c" /* yacc.c:1652 */ +#line 45993 "preproc.c" break; - case 1354: -#line 8437 "preproc.y" /* yacc.c:1652 */ - { + case 1354: /* AlterObjectSchemaStmt: ALTER TABLE relation_expr SET SCHEMA name */ +#line 8437 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter table"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45336 "preproc.c" /* yacc.c:1652 */ +#line 46001 "preproc.c" break; - case 1355: -#line 8441 "preproc.y" /* yacc.c:1652 */ - { + case 1355: /* AlterObjectSchemaStmt: ALTER TABLE IF_P EXISTS relation_expr SET SCHEMA name */ +#line 8441 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter table if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45344 "preproc.c" /* yacc.c:1652 */ +#line 46009 "preproc.c" break; - case 1356: -#line 8445 "preproc.y" /* yacc.c:1652 */ - { + case 1356: /* AlterObjectSchemaStmt: ALTER STATISTICS any_name SET SCHEMA name */ +#line 8445 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter statistics"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45352 "preproc.c" /* yacc.c:1652 */ +#line 46017 "preproc.c" break; - case 1357: -#line 8449 "preproc.y" /* yacc.c:1652 */ - { + case 1357: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH PARSER any_name SET SCHEMA name */ +#line 8449 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search parser"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45360 "preproc.c" /* yacc.c:1652 */ +#line 46025 "preproc.c" break; - case 1358: -#line 8453 "preproc.y" /* yacc.c:1652 */ - { + case 1358: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH DICTIONARY any_name SET SCHEMA name */ +#line 8453 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search dictionary"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45368 "preproc.c" /* yacc.c:1652 */ +#line 46033 "preproc.c" break; - case 1359: -#line 8457 "preproc.y" /* yacc.c:1652 */ - { + case 1359: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH TEMPLATE any_name SET SCHEMA name */ +#line 8457 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search template"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45376 "preproc.c" /* yacc.c:1652 */ +#line 46041 "preproc.c" break; - case 1360: -#line 8461 "preproc.y" /* yacc.c:1652 */ - { + case 1360: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name SET SCHEMA name */ +#line 8461 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45384 "preproc.c" /* yacc.c:1652 */ +#line 46049 "preproc.c" break; - case 1361: -#line 8465 "preproc.y" /* yacc.c:1652 */ - { + case 1361: /* AlterObjectSchemaStmt: ALTER SEQUENCE qualified_name SET SCHEMA name */ +#line 8465 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter sequence"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45392 "preproc.c" /* yacc.c:1652 */ +#line 46057 "preproc.c" break; - case 1362: -#line 8469 "preproc.y" /* yacc.c:1652 */ - { + case 1362: /* AlterObjectSchemaStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SET SCHEMA name */ +#line 8469 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter sequence if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45400 "preproc.c" /* yacc.c:1652 */ +#line 46065 "preproc.c" break; - case 1363: -#line 8473 "preproc.y" /* yacc.c:1652 */ - { + case 1363: /* AlterObjectSchemaStmt: ALTER VIEW qualified_name SET SCHEMA name */ +#line 8473 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter view"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45408 "preproc.c" /* yacc.c:1652 */ +#line 46073 "preproc.c" break; - case 1364: -#line 8477 "preproc.y" /* yacc.c:1652 */ - { + case 1364: /* AlterObjectSchemaStmt: ALTER VIEW IF_P EXISTS qualified_name SET SCHEMA name */ +#line 8477 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter view if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45416 "preproc.c" /* yacc.c:1652 */ +#line 46081 "preproc.c" break; - case 1365: -#line 8481 "preproc.y" /* yacc.c:1652 */ - { + case 1365: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW qualified_name SET SCHEMA name */ +#line 8481 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter materialized view"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45424 "preproc.c" /* yacc.c:1652 */ +#line 46089 "preproc.c" break; - case 1366: -#line 8485 "preproc.y" /* yacc.c:1652 */ - { + case 1366: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name SET SCHEMA name */ +#line 8485 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter materialized view if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45432 "preproc.c" /* yacc.c:1652 */ +#line 46097 "preproc.c" break; - case 1367: -#line 8489 "preproc.y" /* yacc.c:1652 */ - { + case 1367: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE relation_expr SET SCHEMA name */ +#line 8489 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter foreign table"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45440 "preproc.c" /* yacc.c:1652 */ +#line 46105 "preproc.c" break; - case 1368: -#line 8493 "preproc.y" /* yacc.c:1652 */ - { + case 1368: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr SET SCHEMA name */ +#line 8493 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter foreign table if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45448 "preproc.c" /* yacc.c:1652 */ +#line 46113 "preproc.c" break; - case 1369: -#line 8497 "preproc.y" /* yacc.c:1652 */ - { + case 1369: /* AlterObjectSchemaStmt: ALTER TYPE_P any_name SET SCHEMA name */ +#line 8497 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter type"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 45456 "preproc.c" /* yacc.c:1652 */ +#line 46121 "preproc.c" break; - case 1370: -#line 8505 "preproc.y" /* yacc.c:1652 */ - { + case 1370: /* AlterOperatorStmt: ALTER OPERATOR operator_with_argtypes SET '(' operator_def_list ')' */ +#line 8505 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter operator"),(yyvsp[-4].str),mm_strdup("set ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 45464 "preproc.c" /* yacc.c:1652 */ +#line 46129 "preproc.c" break; - case 1371: -#line 8513 "preproc.y" /* yacc.c:1652 */ - { + case 1371: /* operator_def_list: operator_def_elem */ +#line 8513 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45472 "preproc.c" /* yacc.c:1652 */ +#line 46137 "preproc.c" break; - case 1372: -#line 8517 "preproc.y" /* yacc.c:1652 */ - { + case 1372: /* operator_def_list: operator_def_list ',' operator_def_elem */ +#line 8517 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 45480 "preproc.c" /* yacc.c:1652 */ +#line 46145 "preproc.c" break; - case 1373: -#line 8525 "preproc.y" /* yacc.c:1652 */ - { + case 1373: /* operator_def_elem: ColLabel '=' NONE */ +#line 8525 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("= none")); } -#line 45488 "preproc.c" /* yacc.c:1652 */ +#line 46153 "preproc.c" break; - case 1374: -#line 8529 "preproc.y" /* yacc.c:1652 */ - { + case 1374: /* operator_def_elem: ColLabel '=' operator_def_arg */ +#line 8529 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 45496 "preproc.c" /* yacc.c:1652 */ +#line 46161 "preproc.c" break; - case 1375: -#line 8537 "preproc.y" /* yacc.c:1652 */ - { + case 1375: /* operator_def_arg: func_type */ +#line 8537 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45504 "preproc.c" /* yacc.c:1652 */ +#line 46169 "preproc.c" break; - case 1376: -#line 8541 "preproc.y" /* yacc.c:1652 */ - { + case 1376: /* operator_def_arg: reserved_keyword */ +#line 8541 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45512 "preproc.c" /* yacc.c:1652 */ +#line 46177 "preproc.c" break; - case 1377: -#line 8545 "preproc.y" /* yacc.c:1652 */ - { + case 1377: /* operator_def_arg: qual_all_Op */ +#line 8545 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45520 "preproc.c" /* yacc.c:1652 */ +#line 46185 "preproc.c" break; - case 1378: -#line 8549 "preproc.y" /* yacc.c:1652 */ - { + case 1378: /* operator_def_arg: NumericOnly */ +#line 8549 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45528 "preproc.c" /* yacc.c:1652 */ +#line 46193 "preproc.c" break; - case 1379: -#line 8553 "preproc.y" /* yacc.c:1652 */ - { + case 1379: /* operator_def_arg: ecpg_sconst */ +#line 8553 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45536 "preproc.c" /* yacc.c:1652 */ +#line 46201 "preproc.c" break; - case 1380: -#line 8561 "preproc.y" /* yacc.c:1652 */ - { + case 1380: /* AlterTypeStmt: ALTER TYPE_P any_name SET '(' operator_def_list ')' */ +#line 8561 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter type"),(yyvsp[-4].str),mm_strdup("set ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 45544 "preproc.c" /* yacc.c:1652 */ +#line 46209 "preproc.c" break; - case 1381: -#line 8569 "preproc.y" /* yacc.c:1652 */ - { + case 1381: /* AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec */ +#line 8569 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter aggregate"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45552 "preproc.c" /* yacc.c:1652 */ +#line 46217 "preproc.c" break; - case 1382: -#line 8573 "preproc.y" /* yacc.c:1652 */ - { + case 1382: /* AlterOwnerStmt: ALTER COLLATION any_name OWNER TO RoleSpec */ +#line 8573 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter collation"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45560 "preproc.c" /* yacc.c:1652 */ +#line 46225 "preproc.c" break; - case 1383: -#line 8577 "preproc.y" /* yacc.c:1652 */ - { + case 1383: /* AlterOwnerStmt: ALTER CONVERSION_P any_name OWNER TO RoleSpec */ +#line 8577 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter conversion"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45568 "preproc.c" /* yacc.c:1652 */ +#line 46233 "preproc.c" break; - case 1384: -#line 8581 "preproc.y" /* yacc.c:1652 */ - { + case 1384: /* AlterOwnerStmt: ALTER DATABASE database_name OWNER TO RoleSpec */ +#line 8581 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter database"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45576 "preproc.c" /* yacc.c:1652 */ +#line 46241 "preproc.c" break; - case 1385: -#line 8585 "preproc.y" /* yacc.c:1652 */ - { + case 1385: /* AlterOwnerStmt: ALTER DOMAIN_P any_name OWNER TO RoleSpec */ +#line 8585 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45584 "preproc.c" /* yacc.c:1652 */ +#line 46249 "preproc.c" break; - case 1386: -#line 8589 "preproc.y" /* yacc.c:1652 */ - { + case 1386: /* AlterOwnerStmt: ALTER FUNCTION function_with_argtypes OWNER TO RoleSpec */ +#line 8589 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter function"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45592 "preproc.c" /* yacc.c:1652 */ +#line 46257 "preproc.c" break; - case 1387: -#line 8593 "preproc.y" /* yacc.c:1652 */ - { + case 1387: /* AlterOwnerStmt: ALTER opt_procedural LANGUAGE name OWNER TO RoleSpec */ +#line 8593 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter"),(yyvsp[-5].str),mm_strdup("language"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45600 "preproc.c" /* yacc.c:1652 */ +#line 46265 "preproc.c" break; - case 1388: -#line 8597 "preproc.y" /* yacc.c:1652 */ - { + case 1388: /* AlterOwnerStmt: ALTER LARGE_P OBJECT_P NumericOnly OWNER TO RoleSpec */ +#line 8597 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter large object"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45608 "preproc.c" /* yacc.c:1652 */ +#line 46273 "preproc.c" break; - case 1389: -#line 8601 "preproc.y" /* yacc.c:1652 */ - { + case 1389: /* AlterOwnerStmt: ALTER OPERATOR operator_with_argtypes OWNER TO RoleSpec */ +#line 8601 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter operator"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45616 "preproc.c" /* yacc.c:1652 */ +#line 46281 "preproc.c" break; - case 1390: -#line 8605 "preproc.y" /* yacc.c:1652 */ - { + case 1390: /* AlterOwnerStmt: ALTER OPERATOR CLASS any_name USING access_method OWNER TO RoleSpec */ +#line 8605 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter operator class"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45624 "preproc.c" /* yacc.c:1652 */ +#line 46289 "preproc.c" break; - case 1391: -#line 8609 "preproc.y" /* yacc.c:1652 */ - { + case 1391: /* AlterOwnerStmt: ALTER OPERATOR FAMILY any_name USING access_method OWNER TO RoleSpec */ +#line 8609 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45632 "preproc.c" /* yacc.c:1652 */ +#line 46297 "preproc.c" break; - case 1392: -#line 8613 "preproc.y" /* yacc.c:1652 */ - { + case 1392: /* AlterOwnerStmt: ALTER PROCEDURE function_with_argtypes OWNER TO RoleSpec */ +#line 8613 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter procedure"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45640 "preproc.c" /* yacc.c:1652 */ +#line 46305 "preproc.c" break; - case 1393: -#line 8617 "preproc.y" /* yacc.c:1652 */ - { + case 1393: /* AlterOwnerStmt: ALTER ROUTINE function_with_argtypes OWNER TO RoleSpec */ +#line 8617 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter routine"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45648 "preproc.c" /* yacc.c:1652 */ +#line 46313 "preproc.c" break; - case 1394: -#line 8621 "preproc.y" /* yacc.c:1652 */ - { + case 1394: /* AlterOwnerStmt: ALTER SCHEMA name OWNER TO RoleSpec */ +#line 8621 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter schema"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45656 "preproc.c" /* yacc.c:1652 */ +#line 46321 "preproc.c" break; - case 1395: -#line 8625 "preproc.y" /* yacc.c:1652 */ - { + case 1395: /* AlterOwnerStmt: ALTER TYPE_P any_name OWNER TO RoleSpec */ +#line 8625 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter type"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45664 "preproc.c" /* yacc.c:1652 */ +#line 46329 "preproc.c" break; - case 1396: -#line 8629 "preproc.y" /* yacc.c:1652 */ - { + case 1396: /* AlterOwnerStmt: ALTER TABLESPACE name OWNER TO RoleSpec */ +#line 8629 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter tablespace"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45672 "preproc.c" /* yacc.c:1652 */ +#line 46337 "preproc.c" break; - case 1397: -#line 8633 "preproc.y" /* yacc.c:1652 */ - { + case 1397: /* AlterOwnerStmt: ALTER STATISTICS any_name OWNER TO RoleSpec */ +#line 8633 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter statistics"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45680 "preproc.c" /* yacc.c:1652 */ +#line 46345 "preproc.c" break; - case 1398: -#line 8637 "preproc.y" /* yacc.c:1652 */ - { + case 1398: /* AlterOwnerStmt: ALTER TEXT_P SEARCH DICTIONARY any_name OWNER TO RoleSpec */ +#line 8637 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search dictionary"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45688 "preproc.c" /* yacc.c:1652 */ +#line 46353 "preproc.c" break; - case 1399: -#line 8641 "preproc.y" /* yacc.c:1652 */ - { + case 1399: /* AlterOwnerStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name OWNER TO RoleSpec */ +#line 8641 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45696 "preproc.c" /* yacc.c:1652 */ +#line 46361 "preproc.c" break; - case 1400: -#line 8645 "preproc.y" /* yacc.c:1652 */ - { + case 1400: /* AlterOwnerStmt: ALTER FOREIGN DATA_P WRAPPER name OWNER TO RoleSpec */ +#line 8645 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter foreign data wrapper"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45704 "preproc.c" /* yacc.c:1652 */ +#line 46369 "preproc.c" break; - case 1401: -#line 8649 "preproc.y" /* yacc.c:1652 */ - { + case 1401: /* AlterOwnerStmt: ALTER SERVER name OWNER TO RoleSpec */ +#line 8649 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter server"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45712 "preproc.c" /* yacc.c:1652 */ +#line 46377 "preproc.c" break; - case 1402: -#line 8653 "preproc.y" /* yacc.c:1652 */ - { + case 1402: /* AlterOwnerStmt: ALTER EVENT TRIGGER name OWNER TO RoleSpec */ +#line 8653 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter event trigger"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45720 "preproc.c" /* yacc.c:1652 */ +#line 46385 "preproc.c" break; - case 1403: -#line 8657 "preproc.y" /* yacc.c:1652 */ - { + case 1403: /* AlterOwnerStmt: ALTER PUBLICATION name OWNER TO RoleSpec */ +#line 8657 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45728 "preproc.c" /* yacc.c:1652 */ +#line 46393 "preproc.c" break; - case 1404: -#line 8661 "preproc.y" /* yacc.c:1652 */ - { + case 1404: /* AlterOwnerStmt: ALTER SUBSCRIPTION name OWNER TO RoleSpec */ +#line 8661 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 45736 "preproc.c" /* yacc.c:1652 */ +#line 46401 "preproc.c" break; - case 1405: -#line 8669 "preproc.y" /* yacc.c:1652 */ - { + case 1405: /* CreatePublicationStmt: CREATE PUBLICATION name opt_publication_for_tables opt_definition */ +#line 8669 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create publication"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45744 "preproc.c" /* yacc.c:1652 */ +#line 46409 "preproc.c" break; - case 1406: -#line 8677 "preproc.y" /* yacc.c:1652 */ - { + case 1406: /* opt_publication_for_tables: publication_for_tables */ +#line 8677 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45752 "preproc.c" /* yacc.c:1652 */ +#line 46417 "preproc.c" break; - case 1407: -#line 8681 "preproc.y" /* yacc.c:1652 */ - { + case 1407: /* opt_publication_for_tables: %empty */ +#line 8681 "preproc.y" + { (yyval.str)=EMPTY; } -#line 45759 "preproc.c" /* yacc.c:1652 */ +#line 46424 "preproc.c" break; - case 1408: -#line 8688 "preproc.y" /* yacc.c:1652 */ - { + case 1408: /* publication_for_tables: FOR TABLE relation_expr_list */ +#line 8688 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("for table"),(yyvsp[0].str)); } -#line 45767 "preproc.c" /* yacc.c:1652 */ +#line 46432 "preproc.c" break; - case 1409: -#line 8692 "preproc.y" /* yacc.c:1652 */ - { + case 1409: /* publication_for_tables: FOR ALL TABLES */ +#line 8692 "preproc.y" + { (yyval.str) = mm_strdup("for all tables"); } -#line 45775 "preproc.c" /* yacc.c:1652 */ +#line 46440 "preproc.c" break; - case 1410: -#line 8700 "preproc.y" /* yacc.c:1652 */ - { + case 1410: /* AlterPublicationStmt: ALTER PUBLICATION name SET definition */ +#line 8700 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 45783 "preproc.c" /* yacc.c:1652 */ +#line 46448 "preproc.c" break; - case 1411: -#line 8704 "preproc.y" /* yacc.c:1652 */ - { + case 1411: /* AlterPublicationStmt: ALTER PUBLICATION name ADD_P TABLE relation_expr_list */ +#line 8704 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-3].str),mm_strdup("add table"),(yyvsp[0].str)); } -#line 45791 "preproc.c" /* yacc.c:1652 */ +#line 46456 "preproc.c" break; - case 1412: -#line 8708 "preproc.y" /* yacc.c:1652 */ - { + case 1412: /* AlterPublicationStmt: ALTER PUBLICATION name SET TABLE relation_expr_list */ +#line 8708 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-3].str),mm_strdup("set table"),(yyvsp[0].str)); } -#line 45799 "preproc.c" /* yacc.c:1652 */ +#line 46464 "preproc.c" break; - case 1413: -#line 8712 "preproc.y" /* yacc.c:1652 */ - { + case 1413: /* AlterPublicationStmt: ALTER PUBLICATION name DROP TABLE relation_expr_list */ +#line 8712 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-3].str),mm_strdup("drop table"),(yyvsp[0].str)); } -#line 45807 "preproc.c" /* yacc.c:1652 */ +#line 46472 "preproc.c" break; - case 1414: -#line 8720 "preproc.y" /* yacc.c:1652 */ - { + case 1414: /* CreateSubscriptionStmt: CREATE SUBSCRIPTION name CONNECTION ecpg_sconst PUBLICATION publication_name_list opt_definition */ +#line 8720 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("create subscription"),(yyvsp[-5].str),mm_strdup("connection"),(yyvsp[-3].str),mm_strdup("publication"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45815 "preproc.c" /* yacc.c:1652 */ +#line 46480 "preproc.c" break; - case 1415: -#line 8728 "preproc.y" /* yacc.c:1652 */ - { + case 1415: /* publication_name_list: publication_name_item */ +#line 8728 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45823 "preproc.c" /* yacc.c:1652 */ +#line 46488 "preproc.c" break; - case 1416: -#line 8732 "preproc.y" /* yacc.c:1652 */ - { + case 1416: /* publication_name_list: publication_name_list ',' publication_name_item */ +#line 8732 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 45831 "preproc.c" /* yacc.c:1652 */ +#line 46496 "preproc.c" break; - case 1417: -#line 8740 "preproc.y" /* yacc.c:1652 */ - { + case 1417: /* publication_name_item: ColLabel */ +#line 8740 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45839 "preproc.c" /* yacc.c:1652 */ +#line 46504 "preproc.c" break; - case 1418: -#line 8748 "preproc.y" /* yacc.c:1652 */ - { + case 1418: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET definition */ +#line 8748 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 45847 "preproc.c" /* yacc.c:1652 */ +#line 46512 "preproc.c" break; - case 1419: -#line 8752 "preproc.y" /* yacc.c:1652 */ - { + case 1419: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name CONNECTION ecpg_sconst */ +#line 8752 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-2].str),mm_strdup("connection"),(yyvsp[0].str)); } -#line 45855 "preproc.c" /* yacc.c:1652 */ +#line 46520 "preproc.c" break; - case 1420: -#line 8756 "preproc.y" /* yacc.c:1652 */ - { + case 1420: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name REFRESH PUBLICATION opt_definition */ +#line 8756 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-3].str),mm_strdup("refresh publication"),(yyvsp[0].str)); } -#line 45863 "preproc.c" /* yacc.c:1652 */ +#line 46528 "preproc.c" break; - case 1421: -#line 8760 "preproc.y" /* yacc.c:1652 */ - { + case 1421: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET PUBLICATION publication_name_list opt_definition */ +#line 8760 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter subscription"),(yyvsp[-4].str),mm_strdup("set publication"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45871 "preproc.c" /* yacc.c:1652 */ +#line 46536 "preproc.c" break; - case 1422: -#line 8764 "preproc.y" /* yacc.c:1652 */ - { + case 1422: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ENABLE_P */ +#line 8764 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter subscription"),(yyvsp[-1].str),mm_strdup("enable")); } -#line 45879 "preproc.c" /* yacc.c:1652 */ +#line 46544 "preproc.c" break; - case 1423: -#line 8768 "preproc.y" /* yacc.c:1652 */ - { + case 1423: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DISABLE_P */ +#line 8768 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter subscription"),(yyvsp[-1].str),mm_strdup("disable")); } -#line 45887 "preproc.c" /* yacc.c:1652 */ +#line 46552 "preproc.c" break; - case 1424: -#line 8776 "preproc.y" /* yacc.c:1652 */ - { + case 1424: /* DropSubscriptionStmt: DROP SUBSCRIPTION name opt_drop_behavior */ +#line 8776 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop subscription"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45895 "preproc.c" /* yacc.c:1652 */ +#line 46560 "preproc.c" break; - case 1425: -#line 8780 "preproc.y" /* yacc.c:1652 */ - { + case 1425: /* DropSubscriptionStmt: DROP SUBSCRIPTION IF_P EXISTS name opt_drop_behavior */ +#line 8780 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("drop subscription if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45903 "preproc.c" /* yacc.c:1652 */ +#line 46568 "preproc.c" break; - case 1426: -#line 8788 "preproc.y" /* yacc.c:1652 */ - { + case 1426: /* RuleStmt: CREATE opt_or_replace RULE name AS ON event TO qualified_name where_clause DO opt_instead RuleActionList */ +#line 8788 "preproc.y" + { (yyval.str) = cat_str(12,mm_strdup("create"),(yyvsp[-11].str),mm_strdup("rule"),(yyvsp[-9].str),mm_strdup("as on"),(yyvsp[-6].str),mm_strdup("to"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("do"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45911 "preproc.c" /* yacc.c:1652 */ +#line 46576 "preproc.c" break; - case 1427: -#line 8796 "preproc.y" /* yacc.c:1652 */ - { + case 1427: /* RuleActionList: NOTHING */ +#line 8796 "preproc.y" + { (yyval.str) = mm_strdup("nothing"); } -#line 45919 "preproc.c" /* yacc.c:1652 */ +#line 46584 "preproc.c" break; - case 1428: -#line 8800 "preproc.y" /* yacc.c:1652 */ - { + case 1428: /* RuleActionList: RuleActionStmt */ +#line 8800 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45927 "preproc.c" /* yacc.c:1652 */ +#line 46592 "preproc.c" break; - case 1429: -#line 8804 "preproc.y" /* yacc.c:1652 */ - { + case 1429: /* RuleActionList: '(' RuleActionMulti ')' */ +#line 8804 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 45935 "preproc.c" /* yacc.c:1652 */ +#line 46600 "preproc.c" break; - case 1430: -#line 8812 "preproc.y" /* yacc.c:1652 */ - { + case 1430: /* RuleActionMulti: RuleActionMulti ';' RuleActionStmtOrEmpty */ +#line 8812 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(";"),(yyvsp[0].str)); } -#line 45943 "preproc.c" /* yacc.c:1652 */ +#line 46608 "preproc.c" break; - case 1431: -#line 8816 "preproc.y" /* yacc.c:1652 */ - { + case 1431: /* RuleActionMulti: RuleActionStmtOrEmpty */ +#line 8816 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45951 "preproc.c" /* yacc.c:1652 */ +#line 46616 "preproc.c" break; - case 1432: -#line 8824 "preproc.y" /* yacc.c:1652 */ - { + case 1432: /* RuleActionStmt: SelectStmt */ +#line 8824 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45959 "preproc.c" /* yacc.c:1652 */ +#line 46624 "preproc.c" break; - case 1433: -#line 8828 "preproc.y" /* yacc.c:1652 */ - { + case 1433: /* RuleActionStmt: InsertStmt */ +#line 8828 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45967 "preproc.c" /* yacc.c:1652 */ +#line 46632 "preproc.c" break; - case 1434: -#line 8832 "preproc.y" /* yacc.c:1652 */ - { + case 1434: /* RuleActionStmt: UpdateStmt */ +#line 8832 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45975 "preproc.c" /* yacc.c:1652 */ +#line 46640 "preproc.c" break; - case 1435: -#line 8836 "preproc.y" /* yacc.c:1652 */ - { + case 1435: /* RuleActionStmt: DeleteStmt */ +#line 8836 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45983 "preproc.c" /* yacc.c:1652 */ +#line 46648 "preproc.c" break; - case 1436: -#line 8840 "preproc.y" /* yacc.c:1652 */ - { + case 1436: /* RuleActionStmt: NotifyStmt */ +#line 8840 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45991 "preproc.c" /* yacc.c:1652 */ +#line 46656 "preproc.c" break; - case 1437: -#line 8848 "preproc.y" /* yacc.c:1652 */ - { + case 1437: /* RuleActionStmtOrEmpty: RuleActionStmt */ +#line 8848 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 45999 "preproc.c" /* yacc.c:1652 */ +#line 46664 "preproc.c" break; - case 1438: -#line 8852 "preproc.y" /* yacc.c:1652 */ - { + case 1438: /* RuleActionStmtOrEmpty: %empty */ +#line 8852 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46006 "preproc.c" /* yacc.c:1652 */ +#line 46671 "preproc.c" break; - case 1439: -#line 8859 "preproc.y" /* yacc.c:1652 */ - { + case 1439: /* event: SELECT */ +#line 8859 "preproc.y" + { (yyval.str) = mm_strdup("select"); } -#line 46014 "preproc.c" /* yacc.c:1652 */ +#line 46679 "preproc.c" break; - case 1440: -#line 8863 "preproc.y" /* yacc.c:1652 */ - { + case 1440: /* event: UPDATE */ +#line 8863 "preproc.y" + { (yyval.str) = mm_strdup("update"); } -#line 46022 "preproc.c" /* yacc.c:1652 */ +#line 46687 "preproc.c" break; - case 1441: -#line 8867 "preproc.y" /* yacc.c:1652 */ - { + case 1441: /* event: DELETE_P */ +#line 8867 "preproc.y" + { (yyval.str) = mm_strdup("delete"); } -#line 46030 "preproc.c" /* yacc.c:1652 */ +#line 46695 "preproc.c" break; - case 1442: -#line 8871 "preproc.y" /* yacc.c:1652 */ - { + case 1442: /* event: INSERT */ +#line 8871 "preproc.y" + { (yyval.str) = mm_strdup("insert"); } -#line 46038 "preproc.c" /* yacc.c:1652 */ +#line 46703 "preproc.c" break; - case 1443: -#line 8879 "preproc.y" /* yacc.c:1652 */ - { + case 1443: /* opt_instead: INSTEAD */ +#line 8879 "preproc.y" + { (yyval.str) = mm_strdup("instead"); } -#line 46046 "preproc.c" /* yacc.c:1652 */ +#line 46711 "preproc.c" break; - case 1444: -#line 8883 "preproc.y" /* yacc.c:1652 */ - { + case 1444: /* opt_instead: ALSO */ +#line 8883 "preproc.y" + { (yyval.str) = mm_strdup("also"); } -#line 46054 "preproc.c" /* yacc.c:1652 */ +#line 46719 "preproc.c" break; - case 1445: -#line 8887 "preproc.y" /* yacc.c:1652 */ - { + case 1445: /* opt_instead: %empty */ +#line 8887 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46061 "preproc.c" /* yacc.c:1652 */ +#line 46726 "preproc.c" break; - case 1446: -#line 8894 "preproc.y" /* yacc.c:1652 */ - { + case 1446: /* NotifyStmt: NOTIFY ColId notify_payload */ +#line 8894 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("notify"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46069 "preproc.c" /* yacc.c:1652 */ +#line 46734 "preproc.c" break; - case 1447: -#line 8902 "preproc.y" /* yacc.c:1652 */ - { + case 1447: /* notify_payload: ',' ecpg_sconst */ +#line 8902 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup(","),(yyvsp[0].str)); } -#line 46077 "preproc.c" /* yacc.c:1652 */ +#line 46742 "preproc.c" break; - case 1448: -#line 8906 "preproc.y" /* yacc.c:1652 */ - { + case 1448: /* notify_payload: %empty */ +#line 8906 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46084 "preproc.c" /* yacc.c:1652 */ +#line 46749 "preproc.c" break; - case 1449: -#line 8913 "preproc.y" /* yacc.c:1652 */ - { + case 1449: /* ListenStmt: LISTEN ColId */ +#line 8913 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("listen"),(yyvsp[0].str)); } -#line 46092 "preproc.c" /* yacc.c:1652 */ +#line 46757 "preproc.c" break; - case 1450: -#line 8921 "preproc.y" /* yacc.c:1652 */ - { + case 1450: /* UnlistenStmt: UNLISTEN ColId */ +#line 8921 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("unlisten"),(yyvsp[0].str)); } -#line 46100 "preproc.c" /* yacc.c:1652 */ +#line 46765 "preproc.c" break; - case 1451: -#line 8925 "preproc.y" /* yacc.c:1652 */ - { + case 1451: /* UnlistenStmt: UNLISTEN '*' */ +#line 8925 "preproc.y" + { (yyval.str) = mm_strdup("unlisten *"); } -#line 46108 "preproc.c" /* yacc.c:1652 */ +#line 46773 "preproc.c" break; - case 1452: -#line 8933 "preproc.y" /* yacc.c:1652 */ - { + case 1452: /* TransactionStmt: ABORT_P opt_transaction opt_transaction_chain */ +#line 8933 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("abort"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46116 "preproc.c" /* yacc.c:1652 */ +#line 46781 "preproc.c" break; - case 1453: -#line 8937 "preproc.y" /* yacc.c:1652 */ - { + case 1453: /* TransactionStmt: BEGIN_P opt_transaction transaction_mode_list_or_empty */ +#line 8937 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("begin"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46124 "preproc.c" /* yacc.c:1652 */ +#line 46789 "preproc.c" break; - case 1454: -#line 8941 "preproc.y" /* yacc.c:1652 */ - { + case 1454: /* TransactionStmt: START TRANSACTION transaction_mode_list_or_empty */ +#line 8941 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("start transaction"),(yyvsp[0].str)); } -#line 46132 "preproc.c" /* yacc.c:1652 */ +#line 46797 "preproc.c" break; - case 1455: -#line 8945 "preproc.y" /* yacc.c:1652 */ - { + case 1455: /* TransactionStmt: COMMIT opt_transaction opt_transaction_chain */ +#line 8945 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("commit"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46140 "preproc.c" /* yacc.c:1652 */ +#line 46805 "preproc.c" break; - case 1456: -#line 8949 "preproc.y" /* yacc.c:1652 */ - { + case 1456: /* TransactionStmt: END_P opt_transaction opt_transaction_chain */ +#line 8949 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("end"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46148 "preproc.c" /* yacc.c:1652 */ +#line 46813 "preproc.c" break; - case 1457: -#line 8953 "preproc.y" /* yacc.c:1652 */ - { + case 1457: /* TransactionStmt: ROLLBACK opt_transaction opt_transaction_chain */ +#line 8953 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("rollback"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46156 "preproc.c" /* yacc.c:1652 */ +#line 46821 "preproc.c" break; - case 1458: -#line 8957 "preproc.y" /* yacc.c:1652 */ - { + case 1458: /* TransactionStmt: SAVEPOINT ColId */ +#line 8957 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("savepoint"),(yyvsp[0].str)); } -#line 46164 "preproc.c" /* yacc.c:1652 */ +#line 46829 "preproc.c" break; - case 1459: -#line 8961 "preproc.y" /* yacc.c:1652 */ - { + case 1459: /* TransactionStmt: RELEASE SAVEPOINT ColId */ +#line 8961 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("release savepoint"),(yyvsp[0].str)); } -#line 46172 "preproc.c" /* yacc.c:1652 */ +#line 46837 "preproc.c" break; - case 1460: -#line 8965 "preproc.y" /* yacc.c:1652 */ - { + case 1460: /* TransactionStmt: RELEASE ColId */ +#line 8965 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("release"),(yyvsp[0].str)); } -#line 46180 "preproc.c" /* yacc.c:1652 */ +#line 46845 "preproc.c" break; - case 1461: -#line 8969 "preproc.y" /* yacc.c:1652 */ - { + case 1461: /* TransactionStmt: ROLLBACK opt_transaction TO SAVEPOINT ColId */ +#line 8969 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("rollback"),(yyvsp[-3].str),mm_strdup("to savepoint"),(yyvsp[0].str)); } -#line 46188 "preproc.c" /* yacc.c:1652 */ +#line 46853 "preproc.c" break; - case 1462: -#line 8973 "preproc.y" /* yacc.c:1652 */ - { + case 1462: /* TransactionStmt: ROLLBACK opt_transaction TO ColId */ +#line 8973 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("rollback"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 46196 "preproc.c" /* yacc.c:1652 */ +#line 46861 "preproc.c" break; - case 1463: -#line 8977 "preproc.y" /* yacc.c:1652 */ - { + case 1463: /* TransactionStmt: PREPARE TRANSACTION ecpg_sconst */ +#line 8977 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("prepare transaction"),(yyvsp[0].str)); } -#line 46204 "preproc.c" /* yacc.c:1652 */ +#line 46869 "preproc.c" break; - case 1464: -#line 8981 "preproc.y" /* yacc.c:1652 */ - { + case 1464: /* TransactionStmt: COMMIT PREPARED ecpg_sconst */ +#line 8981 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("commit prepared"),(yyvsp[0].str)); } -#line 46212 "preproc.c" /* yacc.c:1652 */ +#line 46877 "preproc.c" break; - case 1465: -#line 8985 "preproc.y" /* yacc.c:1652 */ - { + case 1465: /* TransactionStmt: ROLLBACK PREPARED ecpg_sconst */ +#line 8985 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("rollback prepared"),(yyvsp[0].str)); } -#line 46220 "preproc.c" /* yacc.c:1652 */ +#line 46885 "preproc.c" break; - case 1466: -#line 8993 "preproc.y" /* yacc.c:1652 */ - { + case 1466: /* opt_transaction: WORK */ +#line 8993 "preproc.y" + { (yyval.str) = mm_strdup("work"); } -#line 46228 "preproc.c" /* yacc.c:1652 */ +#line 46893 "preproc.c" break; - case 1467: -#line 8997 "preproc.y" /* yacc.c:1652 */ - { + case 1467: /* opt_transaction: TRANSACTION */ +#line 8997 "preproc.y" + { (yyval.str) = mm_strdup("transaction"); } -#line 46236 "preproc.c" /* yacc.c:1652 */ +#line 46901 "preproc.c" break; - case 1468: -#line 9001 "preproc.y" /* yacc.c:1652 */ - { + case 1468: /* opt_transaction: %empty */ +#line 9001 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46243 "preproc.c" /* yacc.c:1652 */ +#line 46908 "preproc.c" break; - case 1469: -#line 9008 "preproc.y" /* yacc.c:1652 */ - { + case 1469: /* transaction_mode_item: ISOLATION LEVEL iso_level */ +#line 9008 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("isolation level"),(yyvsp[0].str)); } -#line 46251 "preproc.c" /* yacc.c:1652 */ +#line 46916 "preproc.c" break; - case 1470: -#line 9012 "preproc.y" /* yacc.c:1652 */ - { + case 1470: /* transaction_mode_item: READ ONLY */ +#line 9012 "preproc.y" + { (yyval.str) = mm_strdup("read only"); } -#line 46259 "preproc.c" /* yacc.c:1652 */ +#line 46924 "preproc.c" break; - case 1471: -#line 9016 "preproc.y" /* yacc.c:1652 */ - { + case 1471: /* transaction_mode_item: READ WRITE */ +#line 9016 "preproc.y" + { (yyval.str) = mm_strdup("read write"); } -#line 46267 "preproc.c" /* yacc.c:1652 */ +#line 46932 "preproc.c" break; - case 1472: -#line 9020 "preproc.y" /* yacc.c:1652 */ - { + case 1472: /* transaction_mode_item: DEFERRABLE */ +#line 9020 "preproc.y" + { (yyval.str) = mm_strdup("deferrable"); } -#line 46275 "preproc.c" /* yacc.c:1652 */ +#line 46940 "preproc.c" break; - case 1473: -#line 9024 "preproc.y" /* yacc.c:1652 */ - { + case 1473: /* transaction_mode_item: NOT DEFERRABLE */ +#line 9024 "preproc.y" + { (yyval.str) = mm_strdup("not deferrable"); } -#line 46283 "preproc.c" /* yacc.c:1652 */ +#line 46948 "preproc.c" break; - case 1474: -#line 9032 "preproc.y" /* yacc.c:1652 */ - { + case 1474: /* transaction_mode_list: transaction_mode_item */ +#line 9032 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46291 "preproc.c" /* yacc.c:1652 */ +#line 46956 "preproc.c" break; - case 1475: -#line 9036 "preproc.y" /* yacc.c:1652 */ - { + case 1475: /* transaction_mode_list: transaction_mode_list ',' transaction_mode_item */ +#line 9036 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46299 "preproc.c" /* yacc.c:1652 */ +#line 46964 "preproc.c" break; - case 1476: -#line 9040 "preproc.y" /* yacc.c:1652 */ - { + case 1476: /* transaction_mode_list: transaction_mode_list transaction_mode_item */ +#line 9040 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46307 "preproc.c" /* yacc.c:1652 */ +#line 46972 "preproc.c" break; - case 1477: -#line 9048 "preproc.y" /* yacc.c:1652 */ - { + case 1477: /* transaction_mode_list_or_empty: transaction_mode_list */ +#line 9048 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46315 "preproc.c" /* yacc.c:1652 */ +#line 46980 "preproc.c" break; - case 1478: -#line 9052 "preproc.y" /* yacc.c:1652 */ - { + case 1478: /* transaction_mode_list_or_empty: %empty */ +#line 9052 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46322 "preproc.c" /* yacc.c:1652 */ +#line 46987 "preproc.c" break; - case 1479: -#line 9059 "preproc.y" /* yacc.c:1652 */ - { + case 1479: /* opt_transaction_chain: AND CHAIN */ +#line 9059 "preproc.y" + { (yyval.str) = mm_strdup("and chain"); } -#line 46330 "preproc.c" /* yacc.c:1652 */ +#line 46995 "preproc.c" break; - case 1480: -#line 9063 "preproc.y" /* yacc.c:1652 */ - { + case 1480: /* opt_transaction_chain: AND NO CHAIN */ +#line 9063 "preproc.y" + { (yyval.str) = mm_strdup("and no chain"); } -#line 46338 "preproc.c" /* yacc.c:1652 */ +#line 47003 "preproc.c" break; - case 1481: -#line 9067 "preproc.y" /* yacc.c:1652 */ - { + case 1481: /* opt_transaction_chain: %empty */ +#line 9067 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46345 "preproc.c" /* yacc.c:1652 */ +#line 47010 "preproc.c" break; - case 1482: -#line 9074 "preproc.y" /* yacc.c:1652 */ - { + case 1482: /* ViewStmt: CREATE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */ +#line 9074 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("create"),(yyvsp[-7].str),mm_strdup("view"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46353 "preproc.c" /* yacc.c:1652 */ +#line 47018 "preproc.c" break; - case 1483: -#line 9078 "preproc.y" /* yacc.c:1652 */ - { + case 1483: /* ViewStmt: CREATE OR REPLACE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */ +#line 9078 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("create or replace"),(yyvsp[-7].str),mm_strdup("view"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46361 "preproc.c" /* yacc.c:1652 */ +#line 47026 "preproc.c" break; - case 1484: -#line 9082 "preproc.y" /* yacc.c:1652 */ - { + case 1484: /* ViewStmt: CREATE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */ +#line 9082 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(11,mm_strdup("create"),(yyvsp[-10].str),mm_strdup("recursive view"),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46370 "preproc.c" /* yacc.c:1652 */ +#line 47035 "preproc.c" break; - case 1485: -#line 9087 "preproc.y" /* yacc.c:1652 */ - { + case 1485: /* ViewStmt: CREATE OR REPLACE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */ +#line 9087 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(11,mm_strdup("create or replace"),(yyvsp[-10].str),mm_strdup("recursive view"),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46379 "preproc.c" /* yacc.c:1652 */ +#line 47044 "preproc.c" break; - case 1486: -#line 9096 "preproc.y" /* yacc.c:1652 */ - { + case 1486: /* opt_check_option: WITH CHECK OPTION */ +#line 9096 "preproc.y" + { (yyval.str) = mm_strdup("with check option"); } -#line 46387 "preproc.c" /* yacc.c:1652 */ +#line 47052 "preproc.c" break; - case 1487: -#line 9100 "preproc.y" /* yacc.c:1652 */ - { + case 1487: /* opt_check_option: WITH CASCADED CHECK OPTION */ +#line 9100 "preproc.y" + { (yyval.str) = mm_strdup("with cascaded check option"); } -#line 46395 "preproc.c" /* yacc.c:1652 */ +#line 47060 "preproc.c" break; - case 1488: -#line 9104 "preproc.y" /* yacc.c:1652 */ - { + case 1488: /* opt_check_option: WITH LOCAL CHECK OPTION */ +#line 9104 "preproc.y" + { (yyval.str) = mm_strdup("with local check option"); } -#line 46403 "preproc.c" /* yacc.c:1652 */ +#line 47068 "preproc.c" break; - case 1489: -#line 9108 "preproc.y" /* yacc.c:1652 */ - { + case 1489: /* opt_check_option: %empty */ +#line 9108 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46410 "preproc.c" /* yacc.c:1652 */ +#line 47075 "preproc.c" break; - case 1490: -#line 9115 "preproc.y" /* yacc.c:1652 */ - { + case 1490: /* LoadStmt: LOAD file_name */ +#line 9115 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("load"),(yyvsp[0].str)); } -#line 46418 "preproc.c" /* yacc.c:1652 */ +#line 47083 "preproc.c" break; - case 1491: -#line 9123 "preproc.y" /* yacc.c:1652 */ - { + case 1491: /* CreatedbStmt: CREATE DATABASE database_name opt_with createdb_opt_list */ +#line 9123 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("create database"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46426 "preproc.c" /* yacc.c:1652 */ +#line 47091 "preproc.c" break; - case 1492: -#line 9131 "preproc.y" /* yacc.c:1652 */ - { + case 1492: /* createdb_opt_list: createdb_opt_items */ +#line 9131 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46434 "preproc.c" /* yacc.c:1652 */ +#line 47099 "preproc.c" break; - case 1493: -#line 9135 "preproc.y" /* yacc.c:1652 */ - { + case 1493: /* createdb_opt_list: %empty */ +#line 9135 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46441 "preproc.c" /* yacc.c:1652 */ +#line 47106 "preproc.c" break; - case 1494: -#line 9142 "preproc.y" /* yacc.c:1652 */ - { + case 1494: /* createdb_opt_items: createdb_opt_item */ +#line 9142 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46449 "preproc.c" /* yacc.c:1652 */ +#line 47114 "preproc.c" break; - case 1495: -#line 9146 "preproc.y" /* yacc.c:1652 */ - { + case 1495: /* createdb_opt_items: createdb_opt_items createdb_opt_item */ +#line 9146 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46457 "preproc.c" /* yacc.c:1652 */ +#line 47122 "preproc.c" break; - case 1496: -#line 9154 "preproc.y" /* yacc.c:1652 */ - { + case 1496: /* createdb_opt_item: createdb_opt_name opt_equal SignedIconst */ +#line 9154 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46465 "preproc.c" /* yacc.c:1652 */ +#line 47130 "preproc.c" break; - case 1497: -#line 9158 "preproc.y" /* yacc.c:1652 */ - { + case 1497: /* createdb_opt_item: createdb_opt_name opt_equal opt_boolean_or_string */ +#line 9158 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46473 "preproc.c" /* yacc.c:1652 */ +#line 47138 "preproc.c" break; - case 1498: -#line 9162 "preproc.y" /* yacc.c:1652 */ - { + case 1498: /* createdb_opt_item: createdb_opt_name opt_equal DEFAULT */ +#line 9162 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup("default")); } -#line 46481 "preproc.c" /* yacc.c:1652 */ +#line 47146 "preproc.c" break; - case 1499: -#line 9170 "preproc.y" /* yacc.c:1652 */ - { + case 1499: /* createdb_opt_name: ecpg_ident */ +#line 9170 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46489 "preproc.c" /* yacc.c:1652 */ +#line 47154 "preproc.c" break; - case 1500: -#line 9174 "preproc.y" /* yacc.c:1652 */ - { + case 1500: /* createdb_opt_name: CONNECTION LIMIT */ +#line 9174 "preproc.y" + { (yyval.str) = mm_strdup("connection limit"); } -#line 46497 "preproc.c" /* yacc.c:1652 */ +#line 47162 "preproc.c" break; - case 1501: -#line 9178 "preproc.y" /* yacc.c:1652 */ - { + case 1501: /* createdb_opt_name: ENCODING */ +#line 9178 "preproc.y" + { (yyval.str) = mm_strdup("encoding"); } -#line 46505 "preproc.c" /* yacc.c:1652 */ +#line 47170 "preproc.c" break; - case 1502: -#line 9182 "preproc.y" /* yacc.c:1652 */ - { + case 1502: /* createdb_opt_name: LOCATION */ +#line 9182 "preproc.y" + { (yyval.str) = mm_strdup("location"); } -#line 46513 "preproc.c" /* yacc.c:1652 */ +#line 47178 "preproc.c" break; - case 1503: -#line 9186 "preproc.y" /* yacc.c:1652 */ - { + case 1503: /* createdb_opt_name: OWNER */ +#line 9186 "preproc.y" + { (yyval.str) = mm_strdup("owner"); } -#line 46521 "preproc.c" /* yacc.c:1652 */ +#line 47186 "preproc.c" break; - case 1504: -#line 9190 "preproc.y" /* yacc.c:1652 */ - { + case 1504: /* createdb_opt_name: TABLESPACE */ +#line 9190 "preproc.y" + { (yyval.str) = mm_strdup("tablespace"); } -#line 46529 "preproc.c" /* yacc.c:1652 */ +#line 47194 "preproc.c" break; - case 1505: -#line 9194 "preproc.y" /* yacc.c:1652 */ - { + case 1505: /* createdb_opt_name: TEMPLATE */ +#line 9194 "preproc.y" + { (yyval.str) = mm_strdup("template"); } -#line 46537 "preproc.c" /* yacc.c:1652 */ +#line 47202 "preproc.c" break; - case 1506: -#line 9202 "preproc.y" /* yacc.c:1652 */ - { + case 1506: /* opt_equal: '=' */ +#line 9202 "preproc.y" + { (yyval.str) = mm_strdup("="); } -#line 46545 "preproc.c" /* yacc.c:1652 */ +#line 47210 "preproc.c" break; - case 1507: -#line 9206 "preproc.y" /* yacc.c:1652 */ - { + case 1507: /* opt_equal: %empty */ +#line 9206 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46552 "preproc.c" /* yacc.c:1652 */ +#line 47217 "preproc.c" break; - case 1508: -#line 9213 "preproc.y" /* yacc.c:1652 */ - { + case 1508: /* AlterDatabaseStmt: ALTER DATABASE database_name WITH createdb_opt_list */ +#line 9213 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter database"),(yyvsp[-2].str),mm_strdup("with"),(yyvsp[0].str)); } -#line 46560 "preproc.c" /* yacc.c:1652 */ +#line 47225 "preproc.c" break; - case 1509: -#line 9217 "preproc.y" /* yacc.c:1652 */ - { + case 1509: /* AlterDatabaseStmt: ALTER DATABASE database_name createdb_opt_list */ +#line 9217 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter database"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46568 "preproc.c" /* yacc.c:1652 */ +#line 47233 "preproc.c" break; - case 1510: -#line 9221 "preproc.y" /* yacc.c:1652 */ - { + case 1510: /* AlterDatabaseStmt: ALTER DATABASE database_name SET TABLESPACE name */ +#line 9221 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter database"),(yyvsp[-3].str),mm_strdup("set tablespace"),(yyvsp[0].str)); } -#line 46576 "preproc.c" /* yacc.c:1652 */ +#line 47241 "preproc.c" break; - case 1511: -#line 9229 "preproc.y" /* yacc.c:1652 */ - { + case 1511: /* AlterDatabaseSetStmt: ALTER DATABASE database_name SetResetClause */ +#line 9229 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter database"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46584 "preproc.c" /* yacc.c:1652 */ +#line 47249 "preproc.c" break; - case 1512: -#line 9237 "preproc.y" /* yacc.c:1652 */ - { + case 1512: /* DropdbStmt: DROP DATABASE database_name */ +#line 9237 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop database"),(yyvsp[0].str)); } -#line 46592 "preproc.c" /* yacc.c:1652 */ +#line 47257 "preproc.c" break; - case 1513: -#line 9241 "preproc.y" /* yacc.c:1652 */ - { + case 1513: /* DropdbStmt: DROP DATABASE IF_P EXISTS database_name */ +#line 9241 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("drop database if exists"),(yyvsp[0].str)); } -#line 46600 "preproc.c" /* yacc.c:1652 */ +#line 47265 "preproc.c" break; - case 1514: -#line 9245 "preproc.y" /* yacc.c:1652 */ - { + case 1514: /* DropdbStmt: DROP DATABASE database_name opt_with '(' drop_option_list ')' */ +#line 9245 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("drop database"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 46608 "preproc.c" /* yacc.c:1652 */ +#line 47273 "preproc.c" break; - case 1515: -#line 9249 "preproc.y" /* yacc.c:1652 */ - { + case 1515: /* DropdbStmt: DROP DATABASE IF_P EXISTS database_name opt_with '(' drop_option_list ')' */ +#line 9249 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("drop database if exists"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 46616 "preproc.c" /* yacc.c:1652 */ +#line 47281 "preproc.c" break; - case 1516: -#line 9257 "preproc.y" /* yacc.c:1652 */ - { + case 1516: /* drop_option_list: drop_option */ +#line 9257 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46624 "preproc.c" /* yacc.c:1652 */ +#line 47289 "preproc.c" break; - case 1517: -#line 9261 "preproc.y" /* yacc.c:1652 */ - { + case 1517: /* drop_option_list: drop_option_list ',' drop_option */ +#line 9261 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46632 "preproc.c" /* yacc.c:1652 */ +#line 47297 "preproc.c" break; - case 1518: -#line 9269 "preproc.y" /* yacc.c:1652 */ - { + case 1518: /* drop_option: FORCE */ +#line 9269 "preproc.y" + { (yyval.str) = mm_strdup("force"); } -#line 46640 "preproc.c" /* yacc.c:1652 */ +#line 47305 "preproc.c" break; - case 1519: -#line 9277 "preproc.y" /* yacc.c:1652 */ - { + case 1519: /* AlterCollationStmt: ALTER COLLATION any_name REFRESH VERSION_P */ +#line 9277 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter collation"),(yyvsp[-2].str),mm_strdup("refresh version")); } -#line 46648 "preproc.c" /* yacc.c:1652 */ +#line 47313 "preproc.c" break; - case 1520: -#line 9285 "preproc.y" /* yacc.c:1652 */ - { + case 1520: /* AlterSystemStmt: ALTER SYSTEM_P SET generic_set */ +#line 9285 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("alter system set"),(yyvsp[0].str)); } -#line 46656 "preproc.c" /* yacc.c:1652 */ +#line 47321 "preproc.c" break; - case 1521: -#line 9289 "preproc.y" /* yacc.c:1652 */ - { + case 1521: /* AlterSystemStmt: ALTER SYSTEM_P RESET generic_reset */ +#line 9289 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("alter system reset"),(yyvsp[0].str)); } -#line 46664 "preproc.c" /* yacc.c:1652 */ +#line 47329 "preproc.c" break; - case 1522: -#line 9297 "preproc.y" /* yacc.c:1652 */ - { + case 1522: /* CreateDomainStmt: CREATE DOMAIN_P any_name opt_as Typename ColQualList */ +#line 9297 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("create domain"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46672 "preproc.c" /* yacc.c:1652 */ +#line 47337 "preproc.c" break; - case 1523: -#line 9305 "preproc.y" /* yacc.c:1652 */ - { + case 1523: /* AlterDomainStmt: ALTER DOMAIN_P any_name alter_column_default */ +#line 9305 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter domain"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46680 "preproc.c" /* yacc.c:1652 */ +#line 47345 "preproc.c" break; - case 1524: -#line 9309 "preproc.y" /* yacc.c:1652 */ - { + case 1524: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP NOT NULL_P */ +#line 9309 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("drop not null")); } -#line 46688 "preproc.c" /* yacc.c:1652 */ +#line 47353 "preproc.c" break; - case 1525: -#line 9313 "preproc.y" /* yacc.c:1652 */ - { + case 1525: /* AlterDomainStmt: ALTER DOMAIN_P any_name SET NOT NULL_P */ +#line 9313 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("set not null")); } -#line 46696 "preproc.c" /* yacc.c:1652 */ +#line 47361 "preproc.c" break; - case 1526: -#line 9317 "preproc.y" /* yacc.c:1652 */ - { + case 1526: /* AlterDomainStmt: ALTER DOMAIN_P any_name ADD_P TableConstraint */ +#line 9317 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-2].str),mm_strdup("add"),(yyvsp[0].str)); } -#line 46704 "preproc.c" /* yacc.c:1652 */ +#line 47369 "preproc.c" break; - case 1527: -#line 9321 "preproc.y" /* yacc.c:1652 */ - { + case 1527: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior */ +#line 9321 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter domain"),(yyvsp[-4].str),mm_strdup("drop constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46712 "preproc.c" /* yacc.c:1652 */ +#line 47377 "preproc.c" break; - case 1528: -#line 9325 "preproc.y" /* yacc.c:1652 */ - { + case 1528: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */ +#line 9325 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("alter domain"),(yyvsp[-6].str),mm_strdup("drop constraint if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46720 "preproc.c" /* yacc.c:1652 */ +#line 47385 "preproc.c" break; - case 1529: -#line 9329 "preproc.y" /* yacc.c:1652 */ - { + case 1529: /* AlterDomainStmt: ALTER DOMAIN_P any_name VALIDATE CONSTRAINT name */ +#line 9329 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("validate constraint"),(yyvsp[0].str)); } -#line 46728 "preproc.c" /* yacc.c:1652 */ +#line 47393 "preproc.c" break; - case 1530: -#line 9337 "preproc.y" /* yacc.c:1652 */ - { + case 1530: /* opt_as: AS */ +#line 9337 "preproc.y" + { (yyval.str) = mm_strdup("as"); } -#line 46736 "preproc.c" /* yacc.c:1652 */ +#line 47401 "preproc.c" break; - case 1531: -#line 9341 "preproc.y" /* yacc.c:1652 */ - { + case 1531: /* opt_as: %empty */ +#line 9341 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46743 "preproc.c" /* yacc.c:1652 */ +#line 47408 "preproc.c" break; - case 1532: -#line 9348 "preproc.y" /* yacc.c:1652 */ - { + case 1532: /* AlterTSDictionaryStmt: ALTER TEXT_P SEARCH DICTIONARY any_name definition */ +#line 9348 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("alter text search dictionary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46751 "preproc.c" /* yacc.c:1652 */ +#line 47416 "preproc.c" break; - case 1533: -#line 9356 "preproc.y" /* yacc.c:1652 */ - { + case 1533: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ADD_P MAPPING FOR name_list any_with any_name_list */ +#line 9356 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter text search configuration"),(yyvsp[-6].str),mm_strdup("add mapping for"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46759 "preproc.c" /* yacc.c:1652 */ +#line 47424 "preproc.c" break; - case 1534: -#line 9360 "preproc.y" /* yacc.c:1652 */ - { + case 1534: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list any_with any_name_list */ +#line 9360 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter text search configuration"),(yyvsp[-6].str),mm_strdup("alter mapping for"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46767 "preproc.c" /* yacc.c:1652 */ +#line 47432 "preproc.c" break; - case 1535: -#line 9364 "preproc.y" /* yacc.c:1652 */ - { + case 1535: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING REPLACE any_name any_with any_name */ +#line 9364 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("alter text search configuration"),(yyvsp[-6].str),mm_strdup("alter mapping replace"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46775 "preproc.c" /* yacc.c:1652 */ +#line 47440 "preproc.c" break; - case 1536: -#line 9368 "preproc.y" /* yacc.c:1652 */ - { + case 1536: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list REPLACE any_name any_with any_name */ +#line 9368 "preproc.y" + { (yyval.str) = cat_str(8,mm_strdup("alter text search configuration"),(yyvsp[-8].str),mm_strdup("alter mapping for"),(yyvsp[-4].str),mm_strdup("replace"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46783 "preproc.c" /* yacc.c:1652 */ +#line 47448 "preproc.c" break; - case 1537: -#line 9372 "preproc.y" /* yacc.c:1652 */ - { + case 1537: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING FOR name_list */ +#line 9372 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-4].str),mm_strdup("drop mapping for"),(yyvsp[0].str)); } -#line 46791 "preproc.c" /* yacc.c:1652 */ +#line 47456 "preproc.c" break; - case 1538: -#line 9376 "preproc.y" /* yacc.c:1652 */ - { + case 1538: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING IF_P EXISTS FOR name_list */ +#line 9376 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-6].str),mm_strdup("drop mapping if exists for"),(yyvsp[0].str)); } -#line 46799 "preproc.c" /* yacc.c:1652 */ +#line 47464 "preproc.c" break; - case 1539: -#line 9384 "preproc.y" /* yacc.c:1652 */ - { + case 1539: /* any_with: WITH */ +#line 9384 "preproc.y" + { (yyval.str) = mm_strdup("with"); } -#line 46807 "preproc.c" /* yacc.c:1652 */ +#line 47472 "preproc.c" break; - case 1540: -#line 9388 "preproc.y" /* yacc.c:1652 */ - { + case 1540: /* any_with: WITH_LA */ +#line 9388 "preproc.y" + { (yyval.str) = mm_strdup("with"); } -#line 46815 "preproc.c" /* yacc.c:1652 */ +#line 47480 "preproc.c" break; - case 1541: -#line 9396 "preproc.y" /* yacc.c:1652 */ - { + case 1541: /* CreateConversionStmt: CREATE opt_default CONVERSION_P any_name FOR ecpg_sconst TO ecpg_sconst FROM any_name */ +#line 9396 "preproc.y" + { (yyval.str) = cat_str(10,mm_strdup("create"),(yyvsp[-8].str),mm_strdup("conversion"),(yyvsp[-6].str),mm_strdup("for"),(yyvsp[-4].str),mm_strdup("to"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 46823 "preproc.c" /* yacc.c:1652 */ +#line 47488 "preproc.c" break; - case 1542: -#line 9404 "preproc.y" /* yacc.c:1652 */ - { + case 1542: /* ClusterStmt: CLUSTER opt_verbose qualified_name cluster_index_specification */ +#line 9404 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("cluster"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46831 "preproc.c" /* yacc.c:1652 */ +#line 47496 "preproc.c" break; - case 1543: -#line 9408 "preproc.y" /* yacc.c:1652 */ - { + case 1543: /* ClusterStmt: CLUSTER opt_verbose */ +#line 9408 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("cluster"),(yyvsp[0].str)); } -#line 46839 "preproc.c" /* yacc.c:1652 */ +#line 47504 "preproc.c" break; - case 1544: -#line 9412 "preproc.y" /* yacc.c:1652 */ - { + case 1544: /* ClusterStmt: CLUSTER opt_verbose index_name ON qualified_name */ +#line 9412 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("cluster"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("on"),(yyvsp[0].str)); } -#line 46847 "preproc.c" /* yacc.c:1652 */ +#line 47512 "preproc.c" break; - case 1545: -#line 9420 "preproc.y" /* yacc.c:1652 */ - { + case 1545: /* cluster_index_specification: USING index_name */ +#line 9420 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 46855 "preproc.c" /* yacc.c:1652 */ +#line 47520 "preproc.c" break; - case 1546: -#line 9424 "preproc.y" /* yacc.c:1652 */ - { + case 1546: /* cluster_index_specification: %empty */ +#line 9424 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46862 "preproc.c" /* yacc.c:1652 */ +#line 47527 "preproc.c" break; - case 1547: -#line 9431 "preproc.y" /* yacc.c:1652 */ - { + case 1547: /* VacuumStmt: VACUUM opt_full opt_freeze opt_verbose opt_analyze opt_vacuum_relation_list */ +#line 9431 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("vacuum"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46870 "preproc.c" /* yacc.c:1652 */ +#line 47535 "preproc.c" break; - case 1548: -#line 9435 "preproc.y" /* yacc.c:1652 */ - { + case 1548: /* VacuumStmt: VACUUM '(' vac_analyze_option_list ')' opt_vacuum_relation_list */ +#line 9435 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("vacuum ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 46878 "preproc.c" /* yacc.c:1652 */ +#line 47543 "preproc.c" break; - case 1549: -#line 9443 "preproc.y" /* yacc.c:1652 */ - { + case 1549: /* AnalyzeStmt: analyze_keyword opt_verbose opt_vacuum_relation_list */ +#line 9443 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46886 "preproc.c" /* yacc.c:1652 */ +#line 47551 "preproc.c" break; - case 1550: -#line 9447 "preproc.y" /* yacc.c:1652 */ - { + case 1550: /* AnalyzeStmt: analyze_keyword '(' vac_analyze_option_list ')' opt_vacuum_relation_list */ +#line 9447 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 46894 "preproc.c" /* yacc.c:1652 */ +#line 47559 "preproc.c" break; - case 1551: -#line 9455 "preproc.y" /* yacc.c:1652 */ - { + case 1551: /* vac_analyze_option_list: vac_analyze_option_elem */ +#line 9455 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46902 "preproc.c" /* yacc.c:1652 */ +#line 47567 "preproc.c" break; - case 1552: -#line 9459 "preproc.y" /* yacc.c:1652 */ - { + case 1552: /* vac_analyze_option_list: vac_analyze_option_list ',' vac_analyze_option_elem */ +#line 9459 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46910 "preproc.c" /* yacc.c:1652 */ +#line 47575 "preproc.c" break; - case 1553: -#line 9467 "preproc.y" /* yacc.c:1652 */ - { + case 1553: /* analyze_keyword: ANALYZE */ +#line 9467 "preproc.y" + { (yyval.str) = mm_strdup("analyze"); } -#line 46918 "preproc.c" /* yacc.c:1652 */ +#line 47583 "preproc.c" break; - case 1554: -#line 9471 "preproc.y" /* yacc.c:1652 */ - { + case 1554: /* analyze_keyword: ANALYSE */ +#line 9471 "preproc.y" + { (yyval.str) = mm_strdup("analyse"); } -#line 46926 "preproc.c" /* yacc.c:1652 */ +#line 47591 "preproc.c" break; - case 1555: -#line 9479 "preproc.y" /* yacc.c:1652 */ - { + case 1555: /* vac_analyze_option_elem: vac_analyze_option_name vac_analyze_option_arg */ +#line 9479 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46934 "preproc.c" /* yacc.c:1652 */ +#line 47599 "preproc.c" break; - case 1556: -#line 9487 "preproc.y" /* yacc.c:1652 */ - { + case 1556: /* vac_analyze_option_name: NonReservedWord */ +#line 9487 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46942 "preproc.c" /* yacc.c:1652 */ +#line 47607 "preproc.c" break; - case 1557: -#line 9491 "preproc.y" /* yacc.c:1652 */ - { + case 1557: /* vac_analyze_option_name: analyze_keyword */ +#line 9491 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46950 "preproc.c" /* yacc.c:1652 */ +#line 47615 "preproc.c" break; - case 1558: -#line 9499 "preproc.y" /* yacc.c:1652 */ - { + case 1558: /* vac_analyze_option_arg: opt_boolean_or_string */ +#line 9499 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46958 "preproc.c" /* yacc.c:1652 */ +#line 47623 "preproc.c" break; - case 1559: -#line 9503 "preproc.y" /* yacc.c:1652 */ - { + case 1559: /* vac_analyze_option_arg: NumericOnly */ +#line 9503 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46966 "preproc.c" /* yacc.c:1652 */ +#line 47631 "preproc.c" break; - case 1560: -#line 9507 "preproc.y" /* yacc.c:1652 */ - { + case 1560: /* vac_analyze_option_arg: %empty */ +#line 9507 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46973 "preproc.c" /* yacc.c:1652 */ +#line 47638 "preproc.c" break; - case 1561: -#line 9514 "preproc.y" /* yacc.c:1652 */ - { + case 1561: /* opt_analyze: analyze_keyword */ +#line 9514 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 46981 "preproc.c" /* yacc.c:1652 */ +#line 47646 "preproc.c" break; - case 1562: -#line 9518 "preproc.y" /* yacc.c:1652 */ - { + case 1562: /* opt_analyze: %empty */ +#line 9518 "preproc.y" + { (yyval.str)=EMPTY; } -#line 46988 "preproc.c" /* yacc.c:1652 */ +#line 47653 "preproc.c" break; - case 1563: -#line 9525 "preproc.y" /* yacc.c:1652 */ - { + case 1563: /* opt_verbose: VERBOSE */ +#line 9525 "preproc.y" + { (yyval.str) = mm_strdup("verbose"); } -#line 46996 "preproc.c" /* yacc.c:1652 */ +#line 47661 "preproc.c" break; - case 1564: -#line 9529 "preproc.y" /* yacc.c:1652 */ - { + case 1564: /* opt_verbose: %empty */ +#line 9529 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47003 "preproc.c" /* yacc.c:1652 */ +#line 47668 "preproc.c" break; - case 1565: -#line 9536 "preproc.y" /* yacc.c:1652 */ - { + case 1565: /* opt_full: FULL */ +#line 9536 "preproc.y" + { (yyval.str) = mm_strdup("full"); } -#line 47011 "preproc.c" /* yacc.c:1652 */ +#line 47676 "preproc.c" break; - case 1566: -#line 9540 "preproc.y" /* yacc.c:1652 */ - { + case 1566: /* opt_full: %empty */ +#line 9540 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47018 "preproc.c" /* yacc.c:1652 */ +#line 47683 "preproc.c" break; - case 1567: -#line 9547 "preproc.y" /* yacc.c:1652 */ - { + case 1567: /* opt_freeze: FREEZE */ +#line 9547 "preproc.y" + { (yyval.str) = mm_strdup("freeze"); } -#line 47026 "preproc.c" /* yacc.c:1652 */ +#line 47691 "preproc.c" break; - case 1568: -#line 9551 "preproc.y" /* yacc.c:1652 */ - { + case 1568: /* opt_freeze: %empty */ +#line 9551 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47033 "preproc.c" /* yacc.c:1652 */ +#line 47698 "preproc.c" break; - case 1569: -#line 9558 "preproc.y" /* yacc.c:1652 */ - { + case 1569: /* opt_name_list: '(' name_list ')' */ +#line 9558 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 47041 "preproc.c" /* yacc.c:1652 */ +#line 47706 "preproc.c" break; - case 1570: -#line 9562 "preproc.y" /* yacc.c:1652 */ - { + case 1570: /* opt_name_list: %empty */ +#line 9562 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47048 "preproc.c" /* yacc.c:1652 */ +#line 47713 "preproc.c" break; - case 1571: -#line 9569 "preproc.y" /* yacc.c:1652 */ - { + case 1571: /* vacuum_relation: qualified_name opt_name_list */ +#line 9569 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47056 "preproc.c" /* yacc.c:1652 */ +#line 47721 "preproc.c" break; - case 1572: -#line 9577 "preproc.y" /* yacc.c:1652 */ - { + case 1572: /* vacuum_relation_list: vacuum_relation */ +#line 9577 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47064 "preproc.c" /* yacc.c:1652 */ +#line 47729 "preproc.c" break; - case 1573: -#line 9581 "preproc.y" /* yacc.c:1652 */ - { + case 1573: /* vacuum_relation_list: vacuum_relation_list ',' vacuum_relation */ +#line 9581 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 47072 "preproc.c" /* yacc.c:1652 */ +#line 47737 "preproc.c" break; - case 1574: -#line 9589 "preproc.y" /* yacc.c:1652 */ - { + case 1574: /* opt_vacuum_relation_list: vacuum_relation_list */ +#line 9589 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47080 "preproc.c" /* yacc.c:1652 */ +#line 47745 "preproc.c" break; - case 1575: -#line 9593 "preproc.y" /* yacc.c:1652 */ - { + case 1575: /* opt_vacuum_relation_list: %empty */ +#line 9593 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47087 "preproc.c" /* yacc.c:1652 */ +#line 47752 "preproc.c" break; - case 1576: -#line 9600 "preproc.y" /* yacc.c:1652 */ - { + case 1576: /* ExplainStmt: EXPLAIN ExplainableStmt */ +#line 9600 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("explain"),(yyvsp[0].str)); } -#line 47095 "preproc.c" /* yacc.c:1652 */ +#line 47760 "preproc.c" break; - case 1577: -#line 9604 "preproc.y" /* yacc.c:1652 */ - { + case 1577: /* ExplainStmt: EXPLAIN analyze_keyword opt_verbose ExplainableStmt */ +#line 9604 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("explain"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47103 "preproc.c" /* yacc.c:1652 */ +#line 47768 "preproc.c" break; - case 1578: -#line 9608 "preproc.y" /* yacc.c:1652 */ - { + case 1578: /* ExplainStmt: EXPLAIN VERBOSE ExplainableStmt */ +#line 9608 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("explain verbose"),(yyvsp[0].str)); } -#line 47111 "preproc.c" /* yacc.c:1652 */ +#line 47776 "preproc.c" break; - case 1579: -#line 9612 "preproc.y" /* yacc.c:1652 */ - { + case 1579: /* ExplainStmt: EXPLAIN '(' explain_option_list ')' ExplainableStmt */ +#line 9612 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("explain ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 47119 "preproc.c" /* yacc.c:1652 */ +#line 47784 "preproc.c" break; - case 1580: -#line 9620 "preproc.y" /* yacc.c:1652 */ - { + case 1580: /* ExplainableStmt: SelectStmt */ +#line 9620 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47127 "preproc.c" /* yacc.c:1652 */ +#line 47792 "preproc.c" break; - case 1581: -#line 9624 "preproc.y" /* yacc.c:1652 */ - { + case 1581: /* ExplainableStmt: InsertStmt */ +#line 9624 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47135 "preproc.c" /* yacc.c:1652 */ +#line 47800 "preproc.c" break; - case 1582: -#line 9628 "preproc.y" /* yacc.c:1652 */ - { + case 1582: /* ExplainableStmt: UpdateStmt */ +#line 9628 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47143 "preproc.c" /* yacc.c:1652 */ +#line 47808 "preproc.c" break; - case 1583: -#line 9632 "preproc.y" /* yacc.c:1652 */ - { + case 1583: /* ExplainableStmt: DeleteStmt */ +#line 9632 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47151 "preproc.c" /* yacc.c:1652 */ +#line 47816 "preproc.c" break; - case 1584: -#line 9636 "preproc.y" /* yacc.c:1652 */ - { + case 1584: /* ExplainableStmt: DeclareCursorStmt */ +#line 9636 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47159 "preproc.c" /* yacc.c:1652 */ +#line 47824 "preproc.c" break; - case 1585: -#line 9640 "preproc.y" /* yacc.c:1652 */ - { + case 1585: /* ExplainableStmt: CreateAsStmt */ +#line 9640 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47167 "preproc.c" /* yacc.c:1652 */ +#line 47832 "preproc.c" break; - case 1586: -#line 9644 "preproc.y" /* yacc.c:1652 */ - { + case 1586: /* ExplainableStmt: CreateMatViewStmt */ +#line 9644 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47175 "preproc.c" /* yacc.c:1652 */ +#line 47840 "preproc.c" break; - case 1587: -#line 9648 "preproc.y" /* yacc.c:1652 */ - { + case 1587: /* ExplainableStmt: RefreshMatViewStmt */ +#line 9648 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47183 "preproc.c" /* yacc.c:1652 */ +#line 47848 "preproc.c" break; - case 1588: -#line 9652 "preproc.y" /* yacc.c:1652 */ - { + case 1588: /* ExplainableStmt: ExecuteStmt */ +#line 9652 "preproc.y" + { (yyval.str) = (yyvsp[0].exec).name; } -#line 47191 "preproc.c" /* yacc.c:1652 */ +#line 47856 "preproc.c" break; - case 1589: -#line 9660 "preproc.y" /* yacc.c:1652 */ - { + case 1589: /* explain_option_list: explain_option_elem */ +#line 9660 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47199 "preproc.c" /* yacc.c:1652 */ +#line 47864 "preproc.c" break; - case 1590: -#line 9664 "preproc.y" /* yacc.c:1652 */ - { + case 1590: /* explain_option_list: explain_option_list ',' explain_option_elem */ +#line 9664 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 47207 "preproc.c" /* yacc.c:1652 */ +#line 47872 "preproc.c" break; - case 1591: -#line 9672 "preproc.y" /* yacc.c:1652 */ - { + case 1591: /* explain_option_elem: explain_option_name explain_option_arg */ +#line 9672 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47215 "preproc.c" /* yacc.c:1652 */ +#line 47880 "preproc.c" break; - case 1592: -#line 9680 "preproc.y" /* yacc.c:1652 */ - { + case 1592: /* explain_option_name: NonReservedWord */ +#line 9680 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47223 "preproc.c" /* yacc.c:1652 */ +#line 47888 "preproc.c" break; - case 1593: -#line 9684 "preproc.y" /* yacc.c:1652 */ - { + case 1593: /* explain_option_name: analyze_keyword */ +#line 9684 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47231 "preproc.c" /* yacc.c:1652 */ +#line 47896 "preproc.c" break; - case 1594: -#line 9692 "preproc.y" /* yacc.c:1652 */ - { + case 1594: /* explain_option_arg: opt_boolean_or_string */ +#line 9692 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47239 "preproc.c" /* yacc.c:1652 */ +#line 47904 "preproc.c" break; - case 1595: -#line 9696 "preproc.y" /* yacc.c:1652 */ - { + case 1595: /* explain_option_arg: NumericOnly */ +#line 9696 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47247 "preproc.c" /* yacc.c:1652 */ +#line 47912 "preproc.c" break; - case 1596: -#line 9700 "preproc.y" /* yacc.c:1652 */ - { + case 1596: /* explain_option_arg: %empty */ +#line 9700 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47254 "preproc.c" /* yacc.c:1652 */ +#line 47919 "preproc.c" break; - case 1597: -#line 9707 "preproc.y" /* yacc.c:1652 */ - { + case 1597: /* PrepareStmt: PREPARE prepared_name prep_type_clause AS PreparableStmt */ +#line 9707 "preproc.y" + { (yyval.prep).name = (yyvsp[-3].str); (yyval.prep).type = (yyvsp[-2].str); (yyval.prep).stmt = (yyvsp[0].str); } -#line 47264 "preproc.c" /* yacc.c:1652 */ +#line 47929 "preproc.c" break; - case 1598: -#line 9713 "preproc.y" /* yacc.c:1652 */ - { + case 1598: /* PrepareStmt: PREPARE prepared_name FROM execstring */ +#line 9713 "preproc.y" + { (yyval.prep).name = (yyvsp[-2].str); (yyval.prep).type = NULL; (yyval.prep).stmt = (yyvsp[0].str); } -#line 47274 "preproc.c" /* yacc.c:1652 */ +#line 47939 "preproc.c" break; - case 1599: -#line 9723 "preproc.y" /* yacc.c:1652 */ - { + case 1599: /* prep_type_clause: '(' type_list ')' */ +#line 9723 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 47282 "preproc.c" /* yacc.c:1652 */ +#line 47947 "preproc.c" break; - case 1600: -#line 9727 "preproc.y" /* yacc.c:1652 */ - { + case 1600: /* prep_type_clause: %empty */ +#line 9727 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47289 "preproc.c" /* yacc.c:1652 */ +#line 47954 "preproc.c" break; - case 1601: -#line 9734 "preproc.y" /* yacc.c:1652 */ - { + case 1601: /* PreparableStmt: SelectStmt */ +#line 9734 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47297 "preproc.c" /* yacc.c:1652 */ +#line 47962 "preproc.c" break; - case 1602: -#line 9738 "preproc.y" /* yacc.c:1652 */ - { + case 1602: /* PreparableStmt: InsertStmt */ +#line 9738 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47305 "preproc.c" /* yacc.c:1652 */ +#line 47970 "preproc.c" break; - case 1603: -#line 9742 "preproc.y" /* yacc.c:1652 */ - { + case 1603: /* PreparableStmt: UpdateStmt */ +#line 9742 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47313 "preproc.c" /* yacc.c:1652 */ +#line 47978 "preproc.c" break; - case 1604: -#line 9746 "preproc.y" /* yacc.c:1652 */ - { + case 1604: /* PreparableStmt: DeleteStmt */ +#line 9746 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47321 "preproc.c" /* yacc.c:1652 */ +#line 47986 "preproc.c" break; - case 1605: -#line 9754 "preproc.y" /* yacc.c:1652 */ - { + case 1605: /* ExecuteStmt: EXECUTE prepared_name execute_param_clause execute_rest */ +#line 9754 "preproc.y" + { (yyval.exec).name = (yyvsp[-2].str); (yyval.exec).type = (yyvsp[-1].str); } -#line 47330 "preproc.c" /* yacc.c:1652 */ +#line 47995 "preproc.c" break; - case 1606: -#line 9759 "preproc.y" /* yacc.c:1652 */ - { + case 1606: /* ExecuteStmt: CREATE OptTemp TABLE create_as_target AS EXECUTE prepared_name execute_param_clause opt_with_data execute_rest */ +#line 9759 "preproc.y" + { (yyval.exec).name = cat_str(8,mm_strdup("create"),(yyvsp[-8].str),mm_strdup("table"),(yyvsp[-6].str),mm_strdup("as execute"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str)); } -#line 47338 "preproc.c" /* yacc.c:1652 */ +#line 48003 "preproc.c" break; - case 1607: -#line 9763 "preproc.y" /* yacc.c:1652 */ - { + case 1607: /* ExecuteStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS EXECUTE prepared_name execute_param_clause opt_with_data execute_rest */ +#line 9763 "preproc.y" + { (yyval.exec).name = cat_str(8,mm_strdup("create"),(yyvsp[-11].str),mm_strdup("table if not exists"),(yyvsp[-6].str),mm_strdup("as execute"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str)); } -#line 47346 "preproc.c" /* yacc.c:1652 */ +#line 48011 "preproc.c" break; - case 1608: -#line 9771 "preproc.y" /* yacc.c:1652 */ - { + case 1608: /* execute_param_clause: '(' expr_list ')' */ +#line 9771 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 47354 "preproc.c" /* yacc.c:1652 */ +#line 48019 "preproc.c" break; - case 1609: -#line 9775 "preproc.y" /* yacc.c:1652 */ - { + case 1609: /* execute_param_clause: %empty */ +#line 9775 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47361 "preproc.c" /* yacc.c:1652 */ +#line 48026 "preproc.c" break; - case 1610: -#line 9782 "preproc.y" /* yacc.c:1652 */ - { + case 1610: /* InsertStmt: opt_with_clause INSERT INTO insert_target insert_rest opt_on_conflict returning_clause */ +#line 9782 "preproc.y" + { (yyval.str) = cat_str(6,(yyvsp[-6].str),mm_strdup("insert into"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47369 "preproc.c" /* yacc.c:1652 */ +#line 48034 "preproc.c" break; - case 1611: -#line 9790 "preproc.y" /* yacc.c:1652 */ - { + case 1611: /* insert_target: qualified_name */ +#line 9790 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47377 "preproc.c" /* yacc.c:1652 */ +#line 48042 "preproc.c" break; - case 1612: -#line 9794 "preproc.y" /* yacc.c:1652 */ - { + case 1612: /* insert_target: qualified_name AS ColId */ +#line 9794 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 47385 "preproc.c" /* yacc.c:1652 */ +#line 48050 "preproc.c" break; - case 1613: -#line 9802 "preproc.y" /* yacc.c:1652 */ - { + case 1613: /* insert_rest: SelectStmt */ +#line 9802 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47393 "preproc.c" /* yacc.c:1652 */ +#line 48058 "preproc.c" break; - case 1614: -#line 9806 "preproc.y" /* yacc.c:1652 */ - { + case 1614: /* insert_rest: OVERRIDING override_kind VALUE_P SelectStmt */ +#line 9806 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("overriding"),(yyvsp[-2].str),mm_strdup("value"),(yyvsp[0].str)); } -#line 47401 "preproc.c" /* yacc.c:1652 */ +#line 48066 "preproc.c" break; - case 1615: -#line 9810 "preproc.y" /* yacc.c:1652 */ - { + case 1615: /* insert_rest: '(' insert_column_list ')' SelectStmt */ +#line 9810 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 47409 "preproc.c" /* yacc.c:1652 */ +#line 48074 "preproc.c" break; - case 1616: -#line 9814 "preproc.y" /* yacc.c:1652 */ - { + case 1616: /* insert_rest: '(' insert_column_list ')' OVERRIDING override_kind VALUE_P SelectStmt */ +#line 9814 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("("),(yyvsp[-5].str),mm_strdup(") overriding"),(yyvsp[-2].str),mm_strdup("value"),(yyvsp[0].str)); } -#line 47417 "preproc.c" /* yacc.c:1652 */ +#line 48082 "preproc.c" break; - case 1617: -#line 9818 "preproc.y" /* yacc.c:1652 */ - { + case 1617: /* insert_rest: DEFAULT VALUES */ +#line 9818 "preproc.y" + { (yyval.str) = mm_strdup("default values"); } -#line 47425 "preproc.c" /* yacc.c:1652 */ +#line 48090 "preproc.c" break; - case 1618: -#line 9826 "preproc.y" /* yacc.c:1652 */ - { + case 1618: /* override_kind: USER */ +#line 9826 "preproc.y" + { (yyval.str) = mm_strdup("user"); } -#line 47433 "preproc.c" /* yacc.c:1652 */ +#line 48098 "preproc.c" break; - case 1619: -#line 9830 "preproc.y" /* yacc.c:1652 */ - { + case 1619: /* override_kind: SYSTEM_P */ +#line 9830 "preproc.y" + { (yyval.str) = mm_strdup("system"); } -#line 47441 "preproc.c" /* yacc.c:1652 */ +#line 48106 "preproc.c" break; - case 1620: -#line 9838 "preproc.y" /* yacc.c:1652 */ - { + case 1620: /* insert_column_list: insert_column_item */ +#line 9838 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47449 "preproc.c" /* yacc.c:1652 */ +#line 48114 "preproc.c" break; - case 1621: -#line 9842 "preproc.y" /* yacc.c:1652 */ - { + case 1621: /* insert_column_list: insert_column_list ',' insert_column_item */ +#line 9842 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 47457 "preproc.c" /* yacc.c:1652 */ +#line 48122 "preproc.c" break; - case 1622: -#line 9850 "preproc.y" /* yacc.c:1652 */ - { + case 1622: /* insert_column_item: ColId opt_indirection */ +#line 9850 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47465 "preproc.c" /* yacc.c:1652 */ +#line 48130 "preproc.c" break; - case 1623: -#line 9858 "preproc.y" /* yacc.c:1652 */ - { + case 1623: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO UPDATE SET set_clause_list where_clause */ +#line 9858 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("on conflict"),(yyvsp[-5].str),mm_strdup("do update set"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47473 "preproc.c" /* yacc.c:1652 */ +#line 48138 "preproc.c" break; - case 1624: -#line 9862 "preproc.y" /* yacc.c:1652 */ - { + case 1624: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO NOTHING */ +#line 9862 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("on conflict"),(yyvsp[-2].str),mm_strdup("do nothing")); } -#line 47481 "preproc.c" /* yacc.c:1652 */ +#line 48146 "preproc.c" break; - case 1625: -#line 9866 "preproc.y" /* yacc.c:1652 */ - { + case 1625: /* opt_on_conflict: %empty */ +#line 9866 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47488 "preproc.c" /* yacc.c:1652 */ +#line 48153 "preproc.c" break; - case 1626: -#line 9873 "preproc.y" /* yacc.c:1652 */ - { + case 1626: /* opt_conf_expr: '(' index_params ')' where_clause */ +#line 9873 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 47496 "preproc.c" /* yacc.c:1652 */ +#line 48161 "preproc.c" break; - case 1627: -#line 9877 "preproc.y" /* yacc.c:1652 */ - { + case 1627: /* opt_conf_expr: ON CONSTRAINT name */ +#line 9877 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("on constraint"),(yyvsp[0].str)); } -#line 47504 "preproc.c" /* yacc.c:1652 */ +#line 48169 "preproc.c" break; - case 1628: -#line 9881 "preproc.y" /* yacc.c:1652 */ - { + case 1628: /* opt_conf_expr: %empty */ +#line 9881 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47511 "preproc.c" /* yacc.c:1652 */ +#line 48176 "preproc.c" break; - case 1629: -#line 9888 "preproc.y" /* yacc.c:1652 */ - { + case 1629: /* returning_clause: RETURNING target_list opt_ecpg_into */ +#line 9888 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("returning"),(yyvsp[-1].str)); } -#line 47519 "preproc.c" /* yacc.c:1652 */ +#line 48184 "preproc.c" break; - case 1630: -#line 9892 "preproc.y" /* yacc.c:1652 */ - { + case 1630: /* returning_clause: %empty */ +#line 9892 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47526 "preproc.c" /* yacc.c:1652 */ +#line 48191 "preproc.c" break; - case 1631: -#line 9899 "preproc.y" /* yacc.c:1652 */ - { + case 1631: /* DeleteStmt: opt_with_clause DELETE_P FROM relation_expr_opt_alias using_clause where_or_current_clause returning_clause */ +#line 9899 "preproc.y" + { (yyval.str) = cat_str(6,(yyvsp[-6].str),mm_strdup("delete from"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47534 "preproc.c" /* yacc.c:1652 */ +#line 48199 "preproc.c" break; - case 1632: -#line 9907 "preproc.y" /* yacc.c:1652 */ - { + case 1632: /* using_clause: USING from_list */ +#line 9907 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 47542 "preproc.c" /* yacc.c:1652 */ +#line 48207 "preproc.c" break; - case 1633: -#line 9911 "preproc.y" /* yacc.c:1652 */ - { + case 1633: /* using_clause: %empty */ +#line 9911 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47549 "preproc.c" /* yacc.c:1652 */ +#line 48214 "preproc.c" break; - case 1634: -#line 9918 "preproc.y" /* yacc.c:1652 */ - { + case 1634: /* LockStmt: LOCK_P opt_table relation_expr_list opt_lock opt_nowait */ +#line 9918 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("lock"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47557 "preproc.c" /* yacc.c:1652 */ +#line 48222 "preproc.c" break; - case 1635: -#line 9926 "preproc.y" /* yacc.c:1652 */ - { + case 1635: /* opt_lock: IN_P lock_type MODE */ +#line 9926 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("in"),(yyvsp[-1].str),mm_strdup("mode")); } -#line 47565 "preproc.c" /* yacc.c:1652 */ +#line 48230 "preproc.c" break; - case 1636: -#line 9930 "preproc.y" /* yacc.c:1652 */ - { + case 1636: /* opt_lock: %empty */ +#line 9930 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47572 "preproc.c" /* yacc.c:1652 */ +#line 48237 "preproc.c" break; - case 1637: -#line 9937 "preproc.y" /* yacc.c:1652 */ - { + case 1637: /* lock_type: ACCESS SHARE */ +#line 9937 "preproc.y" + { (yyval.str) = mm_strdup("access share"); } -#line 47580 "preproc.c" /* yacc.c:1652 */ +#line 48245 "preproc.c" break; - case 1638: -#line 9941 "preproc.y" /* yacc.c:1652 */ - { + case 1638: /* lock_type: ROW SHARE */ +#line 9941 "preproc.y" + { (yyval.str) = mm_strdup("row share"); } -#line 47588 "preproc.c" /* yacc.c:1652 */ +#line 48253 "preproc.c" break; - case 1639: -#line 9945 "preproc.y" /* yacc.c:1652 */ - { + case 1639: /* lock_type: ROW EXCLUSIVE */ +#line 9945 "preproc.y" + { (yyval.str) = mm_strdup("row exclusive"); } -#line 47596 "preproc.c" /* yacc.c:1652 */ +#line 48261 "preproc.c" break; - case 1640: -#line 9949 "preproc.y" /* yacc.c:1652 */ - { + case 1640: /* lock_type: SHARE UPDATE EXCLUSIVE */ +#line 9949 "preproc.y" + { (yyval.str) = mm_strdup("share update exclusive"); } -#line 47604 "preproc.c" /* yacc.c:1652 */ +#line 48269 "preproc.c" break; - case 1641: -#line 9953 "preproc.y" /* yacc.c:1652 */ - { + case 1641: /* lock_type: SHARE */ +#line 9953 "preproc.y" + { (yyval.str) = mm_strdup("share"); } -#line 47612 "preproc.c" /* yacc.c:1652 */ +#line 48277 "preproc.c" break; - case 1642: -#line 9957 "preproc.y" /* yacc.c:1652 */ - { + case 1642: /* lock_type: SHARE ROW EXCLUSIVE */ +#line 9957 "preproc.y" + { (yyval.str) = mm_strdup("share row exclusive"); } -#line 47620 "preproc.c" /* yacc.c:1652 */ +#line 48285 "preproc.c" break; - case 1643: -#line 9961 "preproc.y" /* yacc.c:1652 */ - { + case 1643: /* lock_type: EXCLUSIVE */ +#line 9961 "preproc.y" + { (yyval.str) = mm_strdup("exclusive"); } -#line 47628 "preproc.c" /* yacc.c:1652 */ +#line 48293 "preproc.c" break; - case 1644: -#line 9965 "preproc.y" /* yacc.c:1652 */ - { + case 1644: /* lock_type: ACCESS EXCLUSIVE */ +#line 9965 "preproc.y" + { (yyval.str) = mm_strdup("access exclusive"); } -#line 47636 "preproc.c" /* yacc.c:1652 */ +#line 48301 "preproc.c" break; - case 1645: -#line 9973 "preproc.y" /* yacc.c:1652 */ - { + case 1645: /* opt_nowait: NOWAIT */ +#line 9973 "preproc.y" + { (yyval.str) = mm_strdup("nowait"); } -#line 47644 "preproc.c" /* yacc.c:1652 */ +#line 48309 "preproc.c" break; - case 1646: -#line 9977 "preproc.y" /* yacc.c:1652 */ - { + case 1646: /* opt_nowait: %empty */ +#line 9977 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47651 "preproc.c" /* yacc.c:1652 */ +#line 48316 "preproc.c" break; - case 1647: -#line 9984 "preproc.y" /* yacc.c:1652 */ - { + case 1647: /* opt_nowait_or_skip: NOWAIT */ +#line 9984 "preproc.y" + { (yyval.str) = mm_strdup("nowait"); } -#line 47659 "preproc.c" /* yacc.c:1652 */ +#line 48324 "preproc.c" break; - case 1648: -#line 9988 "preproc.y" /* yacc.c:1652 */ - { + case 1648: /* opt_nowait_or_skip: SKIP LOCKED */ +#line 9988 "preproc.y" + { (yyval.str) = mm_strdup("skip locked"); } -#line 47667 "preproc.c" /* yacc.c:1652 */ +#line 48332 "preproc.c" break; - case 1649: -#line 9992 "preproc.y" /* yacc.c:1652 */ - { + case 1649: /* opt_nowait_or_skip: %empty */ +#line 9992 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47674 "preproc.c" /* yacc.c:1652 */ +#line 48339 "preproc.c" break; - case 1650: -#line 9999 "preproc.y" /* yacc.c:1652 */ - { + case 1650: /* UpdateStmt: opt_with_clause UPDATE relation_expr_opt_alias SET set_clause_list from_clause where_or_current_clause returning_clause */ +#line 9999 "preproc.y" + { (yyval.str) = cat_str(8,(yyvsp[-7].str),mm_strdup("update"),(yyvsp[-5].str),mm_strdup("set"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47682 "preproc.c" /* yacc.c:1652 */ +#line 48347 "preproc.c" break; - case 1651: -#line 10007 "preproc.y" /* yacc.c:1652 */ - { + case 1651: /* set_clause_list: set_clause */ +#line 10007 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47690 "preproc.c" /* yacc.c:1652 */ +#line 48355 "preproc.c" break; - case 1652: -#line 10011 "preproc.y" /* yacc.c:1652 */ - { + case 1652: /* set_clause_list: set_clause_list ',' set_clause */ +#line 10011 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 47698 "preproc.c" /* yacc.c:1652 */ +#line 48363 "preproc.c" break; - case 1653: -#line 10019 "preproc.y" /* yacc.c:1652 */ - { + case 1653: /* set_clause: set_target '=' a_expr */ +#line 10019 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 47706 "preproc.c" /* yacc.c:1652 */ +#line 48371 "preproc.c" break; - case 1654: -#line 10023 "preproc.y" /* yacc.c:1652 */ - { + case 1654: /* set_clause: '(' set_target_list ')' '=' a_expr */ +#line 10023 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-3].str),mm_strdup(") ="),(yyvsp[0].str)); } -#line 47714 "preproc.c" /* yacc.c:1652 */ +#line 48379 "preproc.c" break; - case 1655: -#line 10031 "preproc.y" /* yacc.c:1652 */ - { + case 1655: /* set_target: ColId opt_indirection */ +#line 10031 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47722 "preproc.c" /* yacc.c:1652 */ +#line 48387 "preproc.c" break; - case 1656: -#line 10039 "preproc.y" /* yacc.c:1652 */ - { + case 1656: /* set_target_list: set_target */ +#line 10039 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47730 "preproc.c" /* yacc.c:1652 */ +#line 48395 "preproc.c" break; - case 1657: -#line 10043 "preproc.y" /* yacc.c:1652 */ - { + case 1657: /* set_target_list: set_target_list ',' set_target */ +#line 10043 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 47738 "preproc.c" /* yacc.c:1652 */ +#line 48403 "preproc.c" break; - case 1658: -#line 10051 "preproc.y" /* yacc.c:1652 */ - { + case 1658: /* DeclareCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR SelectStmt */ +#line 10051 "preproc.y" + { struct cursor *ptr, *this; char *cursor_marker = (yyvsp[-5].str)[0] == ':' ? mm_strdup("$0") : mm_strdup((yyvsp[-5].str)); char *comment, *c1, *c2; @@ -47782,1751 +48447,1751 @@ (yyval.str) = cat2_str(adjust_outofscope_cursor_vars(this), comment); } -#line 47786 "preproc.c" /* yacc.c:1652 */ +#line 48451 "preproc.c" break; - case 1659: -#line 10099 "preproc.y" /* yacc.c:1652 */ - { + case 1659: /* cursor_name: name */ +#line 10099 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47794 "preproc.c" /* yacc.c:1652 */ +#line 48459 "preproc.c" break; - case 1660: -#line 10103 "preproc.y" /* yacc.c:1652 */ - { + case 1660: /* cursor_name: char_civar */ +#line 10103 "preproc.y" + { char *curname = mm_alloc(strlen((yyvsp[0].str)) + 2); sprintf(curname, ":%s", (yyvsp[0].str)); free((yyvsp[0].str)); (yyvsp[0].str) = curname; (yyval.str) = (yyvsp[0].str); } -#line 47806 "preproc.c" /* yacc.c:1652 */ +#line 48471 "preproc.c" break; - case 1661: -#line 10115 "preproc.y" /* yacc.c:1652 */ - { + case 1661: /* cursor_options: %empty */ +#line 10115 "preproc.y" + { (yyval.str)=EMPTY; } -#line 47813 "preproc.c" /* yacc.c:1652 */ +#line 48478 "preproc.c" break; - case 1662: -#line 10118 "preproc.y" /* yacc.c:1652 */ - { + case 1662: /* cursor_options: cursor_options NO SCROLL */ +#line 10118 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("no scroll")); } -#line 47821 "preproc.c" /* yacc.c:1652 */ +#line 48486 "preproc.c" break; - case 1663: -#line 10122 "preproc.y" /* yacc.c:1652 */ - { + case 1663: /* cursor_options: cursor_options SCROLL */ +#line 10122 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("scroll")); } -#line 47829 "preproc.c" /* yacc.c:1652 */ +#line 48494 "preproc.c" break; - case 1664: -#line 10126 "preproc.y" /* yacc.c:1652 */ - { + case 1664: /* cursor_options: cursor_options BINARY */ +#line 10126 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("binary")); } -#line 47837 "preproc.c" /* yacc.c:1652 */ +#line 48502 "preproc.c" break; - case 1665: -#line 10130 "preproc.y" /* yacc.c:1652 */ - { + case 1665: /* cursor_options: cursor_options INSENSITIVE */ +#line 10130 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("insensitive")); } -#line 47845 "preproc.c" /* yacc.c:1652 */ +#line 48510 "preproc.c" break; - case 1666: -#line 10138 "preproc.y" /* yacc.c:1652 */ - { + case 1666: /* opt_hold: %empty */ +#line 10138 "preproc.y" + { if (compat == ECPG_COMPAT_INFORMIX_SE && autocommit) (yyval.str) = mm_strdup("with hold"); else (yyval.str) = EMPTY; } -#line 47856 "preproc.c" /* yacc.c:1652 */ +#line 48521 "preproc.c" break; - case 1667: -#line 10145 "preproc.y" /* yacc.c:1652 */ - { + case 1667: /* opt_hold: WITH HOLD */ +#line 10145 "preproc.y" + { (yyval.str) = mm_strdup("with hold"); } -#line 47864 "preproc.c" /* yacc.c:1652 */ +#line 48529 "preproc.c" break; - case 1668: -#line 10149 "preproc.y" /* yacc.c:1652 */ - { + case 1668: /* opt_hold: WITHOUT HOLD */ +#line 10149 "preproc.y" + { (yyval.str) = mm_strdup("without hold"); } -#line 47872 "preproc.c" /* yacc.c:1652 */ +#line 48537 "preproc.c" break; - case 1669: -#line 10157 "preproc.y" /* yacc.c:1652 */ - { + case 1669: /* SelectStmt: select_no_parens */ +#line 10157 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47880 "preproc.c" /* yacc.c:1652 */ +#line 48545 "preproc.c" break; - case 1670: -#line 10161 "preproc.y" /* yacc.c:1652 */ - { + case 1670: /* SelectStmt: select_with_parens */ +#line 10161 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47888 "preproc.c" /* yacc.c:1652 */ +#line 48553 "preproc.c" break; - case 1671: -#line 10169 "preproc.y" /* yacc.c:1652 */ - { + case 1671: /* select_with_parens: '(' select_no_parens ')' */ +#line 10169 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 47896 "preproc.c" /* yacc.c:1652 */ +#line 48561 "preproc.c" break; - case 1672: -#line 10173 "preproc.y" /* yacc.c:1652 */ - { + case 1672: /* select_with_parens: '(' select_with_parens ')' */ +#line 10173 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 47904 "preproc.c" /* yacc.c:1652 */ +#line 48569 "preproc.c" break; - case 1673: -#line 10181 "preproc.y" /* yacc.c:1652 */ - { + case 1673: /* select_no_parens: simple_select */ +#line 10181 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47912 "preproc.c" /* yacc.c:1652 */ +#line 48577 "preproc.c" break; - case 1674: -#line 10185 "preproc.y" /* yacc.c:1652 */ - { + case 1674: /* select_no_parens: select_clause sort_clause */ +#line 10185 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47920 "preproc.c" /* yacc.c:1652 */ +#line 48585 "preproc.c" break; - case 1675: -#line 10189 "preproc.y" /* yacc.c:1652 */ - { + case 1675: /* select_no_parens: select_clause opt_sort_clause for_locking_clause opt_select_limit */ +#line 10189 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47928 "preproc.c" /* yacc.c:1652 */ +#line 48593 "preproc.c" break; - case 1676: -#line 10193 "preproc.y" /* yacc.c:1652 */ - { + case 1676: /* select_no_parens: select_clause opt_sort_clause select_limit opt_for_locking_clause */ +#line 10193 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47936 "preproc.c" /* yacc.c:1652 */ +#line 48601 "preproc.c" break; - case 1677: -#line 10197 "preproc.y" /* yacc.c:1652 */ - { + case 1677: /* select_no_parens: with_clause select_clause */ +#line 10197 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47944 "preproc.c" /* yacc.c:1652 */ +#line 48609 "preproc.c" break; - case 1678: -#line 10201 "preproc.y" /* yacc.c:1652 */ - { + case 1678: /* select_no_parens: with_clause select_clause sort_clause */ +#line 10201 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47952 "preproc.c" /* yacc.c:1652 */ +#line 48617 "preproc.c" break; - case 1679: -#line 10205 "preproc.y" /* yacc.c:1652 */ - { + case 1679: /* select_no_parens: with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit */ +#line 10205 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47960 "preproc.c" /* yacc.c:1652 */ +#line 48625 "preproc.c" break; - case 1680: -#line 10209 "preproc.y" /* yacc.c:1652 */ - { + case 1680: /* select_no_parens: with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause */ +#line 10209 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47968 "preproc.c" /* yacc.c:1652 */ +#line 48633 "preproc.c" break; - case 1681: -#line 10217 "preproc.y" /* yacc.c:1652 */ - { + case 1681: /* select_clause: simple_select */ +#line 10217 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47976 "preproc.c" /* yacc.c:1652 */ +#line 48641 "preproc.c" break; - case 1682: -#line 10221 "preproc.y" /* yacc.c:1652 */ - { + case 1682: /* select_clause: select_with_parens */ +#line 10221 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 47984 "preproc.c" /* yacc.c:1652 */ +#line 48649 "preproc.c" break; - case 1683: -#line 10229 "preproc.y" /* yacc.c:1652 */ - { + case 1683: /* simple_select: SELECT opt_all_clause opt_target_list into_clause from_clause where_clause group_clause having_clause window_clause */ +#line 10229 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("select"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47992 "preproc.c" /* yacc.c:1652 */ +#line 48657 "preproc.c" break; - case 1684: -#line 10233 "preproc.y" /* yacc.c:1652 */ - { + case 1684: /* simple_select: SELECT distinct_clause target_list into_clause from_clause where_clause group_clause having_clause window_clause */ +#line 10233 "preproc.y" + { (yyval.str) = cat_str(9,mm_strdup("select"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48000 "preproc.c" /* yacc.c:1652 */ +#line 48665 "preproc.c" break; - case 1685: -#line 10237 "preproc.y" /* yacc.c:1652 */ - { + case 1685: /* simple_select: values_clause */ +#line 10237 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48008 "preproc.c" /* yacc.c:1652 */ +#line 48673 "preproc.c" break; - case 1686: -#line 10241 "preproc.y" /* yacc.c:1652 */ - { + case 1686: /* simple_select: TABLE relation_expr */ +#line 10241 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("table"),(yyvsp[0].str)); } -#line 48016 "preproc.c" /* yacc.c:1652 */ +#line 48681 "preproc.c" break; - case 1687: -#line 10245 "preproc.y" /* yacc.c:1652 */ - { + case 1687: /* simple_select: select_clause UNION all_or_distinct select_clause */ +#line 10245 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("union"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48024 "preproc.c" /* yacc.c:1652 */ +#line 48689 "preproc.c" break; - case 1688: -#line 10249 "preproc.y" /* yacc.c:1652 */ - { + case 1688: /* simple_select: select_clause INTERSECT all_or_distinct select_clause */ +#line 10249 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("intersect"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48032 "preproc.c" /* yacc.c:1652 */ +#line 48697 "preproc.c" break; - case 1689: -#line 10253 "preproc.y" /* yacc.c:1652 */ - { + case 1689: /* simple_select: select_clause EXCEPT all_or_distinct select_clause */ +#line 10253 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("except"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48040 "preproc.c" /* yacc.c:1652 */ +#line 48705 "preproc.c" break; - case 1690: -#line 10261 "preproc.y" /* yacc.c:1652 */ - { + case 1690: /* with_clause: WITH cte_list */ +#line 10261 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 48048 "preproc.c" /* yacc.c:1652 */ +#line 48713 "preproc.c" break; - case 1691: -#line 10265 "preproc.y" /* yacc.c:1652 */ - { + case 1691: /* with_clause: WITH_LA cte_list */ +#line 10265 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 48056 "preproc.c" /* yacc.c:1652 */ +#line 48721 "preproc.c" break; - case 1692: -#line 10269 "preproc.y" /* yacc.c:1652 */ - { + case 1692: /* with_clause: WITH RECURSIVE cte_list */ +#line 10269 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("with recursive"),(yyvsp[0].str)); } -#line 48064 "preproc.c" /* yacc.c:1652 */ +#line 48729 "preproc.c" break; - case 1693: -#line 10277 "preproc.y" /* yacc.c:1652 */ - { + case 1693: /* cte_list: common_table_expr */ +#line 10277 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48072 "preproc.c" /* yacc.c:1652 */ +#line 48737 "preproc.c" break; - case 1694: -#line 10281 "preproc.y" /* yacc.c:1652 */ - { + case 1694: /* cte_list: cte_list ',' common_table_expr */ +#line 10281 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 48080 "preproc.c" /* yacc.c:1652 */ +#line 48745 "preproc.c" break; - case 1695: -#line 10289 "preproc.y" /* yacc.c:1652 */ - { + case 1695: /* common_table_expr: name opt_name_list AS opt_materialized '(' PreparableStmt ')' */ +#line 10289 "preproc.y" + { (yyval.str) = cat_str(7,(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("as"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48088 "preproc.c" /* yacc.c:1652 */ +#line 48753 "preproc.c" break; - case 1696: -#line 10297 "preproc.y" /* yacc.c:1652 */ - { + case 1696: /* opt_materialized: MATERIALIZED */ +#line 10297 "preproc.y" + { (yyval.str) = mm_strdup("materialized"); } -#line 48096 "preproc.c" /* yacc.c:1652 */ +#line 48761 "preproc.c" break; - case 1697: -#line 10301 "preproc.y" /* yacc.c:1652 */ - { + case 1697: /* opt_materialized: NOT MATERIALIZED */ +#line 10301 "preproc.y" + { (yyval.str) = mm_strdup("not materialized"); } -#line 48104 "preproc.c" /* yacc.c:1652 */ +#line 48769 "preproc.c" break; - case 1698: -#line 10305 "preproc.y" /* yacc.c:1652 */ - { + case 1698: /* opt_materialized: %empty */ +#line 10305 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48111 "preproc.c" /* yacc.c:1652 */ +#line 48776 "preproc.c" break; - case 1699: -#line 10312 "preproc.y" /* yacc.c:1652 */ - { + case 1699: /* opt_with_clause: with_clause */ +#line 10312 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48119 "preproc.c" /* yacc.c:1652 */ +#line 48784 "preproc.c" break; - case 1700: -#line 10316 "preproc.y" /* yacc.c:1652 */ - { + case 1700: /* opt_with_clause: %empty */ +#line 10316 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48126 "preproc.c" /* yacc.c:1652 */ +#line 48791 "preproc.c" break; - case 1701: -#line 10323 "preproc.y" /* yacc.c:1652 */ - { + case 1701: /* into_clause: INTO OptTempTableName */ +#line 10323 "preproc.y" + { FoundInto = 1; (yyval.str)= cat2_str(mm_strdup("into"), (yyvsp[0].str)); } -#line 48135 "preproc.c" /* yacc.c:1652 */ +#line 48800 "preproc.c" break; - case 1702: -#line 10327 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 48141 "preproc.c" /* yacc.c:1652 */ + case 1702: /* into_clause: ecpg_into */ +#line 10327 "preproc.y" + { (yyval.str) = EMPTY; } +#line 48806 "preproc.c" break; - case 1703: -#line 10329 "preproc.y" /* yacc.c:1652 */ - { + case 1703: /* into_clause: %empty */ +#line 10329 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48148 "preproc.c" /* yacc.c:1652 */ +#line 48813 "preproc.c" break; - case 1704: -#line 10336 "preproc.y" /* yacc.c:1652 */ - { + case 1704: /* OptTempTableName: TEMPORARY opt_table qualified_name */ +#line 10336 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("temporary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48156 "preproc.c" /* yacc.c:1652 */ +#line 48821 "preproc.c" break; - case 1705: -#line 10340 "preproc.y" /* yacc.c:1652 */ - { + case 1705: /* OptTempTableName: TEMP opt_table qualified_name */ +#line 10340 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("temp"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48164 "preproc.c" /* yacc.c:1652 */ +#line 48829 "preproc.c" break; - case 1706: -#line 10344 "preproc.y" /* yacc.c:1652 */ - { + case 1706: /* OptTempTableName: LOCAL TEMPORARY opt_table qualified_name */ +#line 10344 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("local temporary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48172 "preproc.c" /* yacc.c:1652 */ +#line 48837 "preproc.c" break; - case 1707: -#line 10348 "preproc.y" /* yacc.c:1652 */ - { + case 1707: /* OptTempTableName: LOCAL TEMP opt_table qualified_name */ +#line 10348 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("local temp"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48180 "preproc.c" /* yacc.c:1652 */ +#line 48845 "preproc.c" break; - case 1708: -#line 10352 "preproc.y" /* yacc.c:1652 */ - { + case 1708: /* OptTempTableName: GLOBAL TEMPORARY opt_table qualified_name */ +#line 10352 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("global temporary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48188 "preproc.c" /* yacc.c:1652 */ +#line 48853 "preproc.c" break; - case 1709: -#line 10356 "preproc.y" /* yacc.c:1652 */ - { + case 1709: /* OptTempTableName: GLOBAL TEMP opt_table qualified_name */ +#line 10356 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("global temp"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48196 "preproc.c" /* yacc.c:1652 */ +#line 48861 "preproc.c" break; - case 1710: -#line 10360 "preproc.y" /* yacc.c:1652 */ - { + case 1710: /* OptTempTableName: UNLOGGED opt_table qualified_name */ +#line 10360 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("unlogged"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48204 "preproc.c" /* yacc.c:1652 */ +#line 48869 "preproc.c" break; - case 1711: -#line 10364 "preproc.y" /* yacc.c:1652 */ - { + case 1711: /* OptTempTableName: TABLE qualified_name */ +#line 10364 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("table"),(yyvsp[0].str)); } -#line 48212 "preproc.c" /* yacc.c:1652 */ +#line 48877 "preproc.c" break; - case 1712: -#line 10368 "preproc.y" /* yacc.c:1652 */ - { + case 1712: /* OptTempTableName: qualified_name */ +#line 10368 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48220 "preproc.c" /* yacc.c:1652 */ +#line 48885 "preproc.c" break; - case 1713: -#line 10376 "preproc.y" /* yacc.c:1652 */ - { + case 1713: /* opt_table: TABLE */ +#line 10376 "preproc.y" + { (yyval.str) = mm_strdup("table"); } -#line 48228 "preproc.c" /* yacc.c:1652 */ +#line 48893 "preproc.c" break; - case 1714: -#line 10380 "preproc.y" /* yacc.c:1652 */ - { + case 1714: /* opt_table: %empty */ +#line 10380 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48235 "preproc.c" /* yacc.c:1652 */ +#line 48900 "preproc.c" break; - case 1715: -#line 10387 "preproc.y" /* yacc.c:1652 */ - { + case 1715: /* all_or_distinct: ALL */ +#line 10387 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 48243 "preproc.c" /* yacc.c:1652 */ +#line 48908 "preproc.c" break; - case 1716: -#line 10391 "preproc.y" /* yacc.c:1652 */ - { + case 1716: /* all_or_distinct: DISTINCT */ +#line 10391 "preproc.y" + { (yyval.str) = mm_strdup("distinct"); } -#line 48251 "preproc.c" /* yacc.c:1652 */ +#line 48916 "preproc.c" break; - case 1717: -#line 10395 "preproc.y" /* yacc.c:1652 */ - { + case 1717: /* all_or_distinct: %empty */ +#line 10395 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48258 "preproc.c" /* yacc.c:1652 */ +#line 48923 "preproc.c" break; - case 1718: -#line 10402 "preproc.y" /* yacc.c:1652 */ - { + case 1718: /* distinct_clause: DISTINCT */ +#line 10402 "preproc.y" + { (yyval.str) = mm_strdup("distinct"); } -#line 48266 "preproc.c" /* yacc.c:1652 */ +#line 48931 "preproc.c" break; - case 1719: -#line 10406 "preproc.y" /* yacc.c:1652 */ - { + case 1719: /* distinct_clause: DISTINCT ON '(' expr_list ')' */ +#line 10406 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("distinct on ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48274 "preproc.c" /* yacc.c:1652 */ +#line 48939 "preproc.c" break; - case 1720: -#line 10414 "preproc.y" /* yacc.c:1652 */ - { + case 1720: /* opt_all_clause: ALL */ +#line 10414 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 48282 "preproc.c" /* yacc.c:1652 */ +#line 48947 "preproc.c" break; - case 1721: -#line 10418 "preproc.y" /* yacc.c:1652 */ - { + case 1721: /* opt_all_clause: %empty */ +#line 10418 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48289 "preproc.c" /* yacc.c:1652 */ +#line 48954 "preproc.c" break; - case 1722: -#line 10425 "preproc.y" /* yacc.c:1652 */ - { + case 1722: /* opt_sort_clause: sort_clause */ +#line 10425 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48297 "preproc.c" /* yacc.c:1652 */ +#line 48962 "preproc.c" break; - case 1723: -#line 10429 "preproc.y" /* yacc.c:1652 */ - { + case 1723: /* opt_sort_clause: %empty */ +#line 10429 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48304 "preproc.c" /* yacc.c:1652 */ +#line 48969 "preproc.c" break; - case 1724: -#line 10436 "preproc.y" /* yacc.c:1652 */ - { + case 1724: /* sort_clause: ORDER BY sortby_list */ +#line 10436 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("order by"),(yyvsp[0].str)); } -#line 48312 "preproc.c" /* yacc.c:1652 */ +#line 48977 "preproc.c" break; - case 1725: -#line 10444 "preproc.y" /* yacc.c:1652 */ - { + case 1725: /* sortby_list: sortby */ +#line 10444 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48320 "preproc.c" /* yacc.c:1652 */ +#line 48985 "preproc.c" break; - case 1726: -#line 10448 "preproc.y" /* yacc.c:1652 */ - { + case 1726: /* sortby_list: sortby_list ',' sortby */ +#line 10448 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 48328 "preproc.c" /* yacc.c:1652 */ +#line 48993 "preproc.c" break; - case 1727: -#line 10456 "preproc.y" /* yacc.c:1652 */ - { + case 1727: /* sortby: a_expr USING qual_all_Op opt_nulls_order */ +#line 10456 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48336 "preproc.c" /* yacc.c:1652 */ +#line 49001 "preproc.c" break; - case 1728: -#line 10460 "preproc.y" /* yacc.c:1652 */ - { + case 1728: /* sortby: a_expr opt_asc_desc opt_nulls_order */ +#line 10460 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48344 "preproc.c" /* yacc.c:1652 */ +#line 49009 "preproc.c" break; - case 1729: -#line 10468 "preproc.y" /* yacc.c:1652 */ - { + case 1729: /* select_limit: limit_clause offset_clause */ +#line 10468 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48352 "preproc.c" /* yacc.c:1652 */ +#line 49017 "preproc.c" break; - case 1730: -#line 10472 "preproc.y" /* yacc.c:1652 */ - { + case 1730: /* select_limit: offset_clause limit_clause */ +#line 10472 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48360 "preproc.c" /* yacc.c:1652 */ +#line 49025 "preproc.c" break; - case 1731: -#line 10476 "preproc.y" /* yacc.c:1652 */ - { + case 1731: /* select_limit: limit_clause */ +#line 10476 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48368 "preproc.c" /* yacc.c:1652 */ +#line 49033 "preproc.c" break; - case 1732: -#line 10480 "preproc.y" /* yacc.c:1652 */ - { + case 1732: /* select_limit: offset_clause */ +#line 10480 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48376 "preproc.c" /* yacc.c:1652 */ +#line 49041 "preproc.c" break; - case 1733: -#line 10488 "preproc.y" /* yacc.c:1652 */ - { + case 1733: /* opt_select_limit: select_limit */ +#line 10488 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48384 "preproc.c" /* yacc.c:1652 */ +#line 49049 "preproc.c" break; - case 1734: -#line 10492 "preproc.y" /* yacc.c:1652 */ - { + case 1734: /* opt_select_limit: %empty */ +#line 10492 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48391 "preproc.c" /* yacc.c:1652 */ +#line 49056 "preproc.c" break; - case 1735: -#line 10499 "preproc.y" /* yacc.c:1652 */ - { + case 1735: /* limit_clause: LIMIT select_limit_value */ +#line 10499 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("limit"),(yyvsp[0].str)); } -#line 48399 "preproc.c" /* yacc.c:1652 */ +#line 49064 "preproc.c" break; - case 1736: -#line 10503 "preproc.y" /* yacc.c:1652 */ - { + case 1736: /* limit_clause: LIMIT select_limit_value ',' select_offset_value */ +#line 10503 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "no longer supported LIMIT #,# syntax passed to server"); (yyval.str) = cat_str(4, mm_strdup("limit"), (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 48408 "preproc.c" /* yacc.c:1652 */ +#line 49073 "preproc.c" break; - case 1737: -#line 10508 "preproc.y" /* yacc.c:1652 */ - { + case 1737: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows ONLY */ +#line 10508 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("fetch"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup("only")); } -#line 48416 "preproc.c" /* yacc.c:1652 */ +#line 49081 "preproc.c" break; - case 1738: -#line 10512 "preproc.y" /* yacc.c:1652 */ - { + case 1738: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows WITH TIES */ +#line 10512 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("fetch"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("with ties")); } -#line 48424 "preproc.c" /* yacc.c:1652 */ +#line 49089 "preproc.c" break; - case 1739: -#line 10516 "preproc.y" /* yacc.c:1652 */ - { + case 1739: /* limit_clause: FETCH first_or_next row_or_rows ONLY */ +#line 10516 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("fetch"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup("only")); } -#line 48432 "preproc.c" /* yacc.c:1652 */ +#line 49097 "preproc.c" break; - case 1740: -#line 10520 "preproc.y" /* yacc.c:1652 */ - { + case 1740: /* limit_clause: FETCH first_or_next row_or_rows WITH TIES */ +#line 10520 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("fetch"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("with ties")); } -#line 48440 "preproc.c" /* yacc.c:1652 */ +#line 49105 "preproc.c" break; - case 1741: -#line 10528 "preproc.y" /* yacc.c:1652 */ - { + case 1741: /* offset_clause: OFFSET select_offset_value */ +#line 10528 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("offset"),(yyvsp[0].str)); } -#line 48448 "preproc.c" /* yacc.c:1652 */ +#line 49113 "preproc.c" break; - case 1742: -#line 10532 "preproc.y" /* yacc.c:1652 */ - { + case 1742: /* offset_clause: OFFSET select_fetch_first_value row_or_rows */ +#line 10532 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("offset"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48456 "preproc.c" /* yacc.c:1652 */ +#line 49121 "preproc.c" break; - case 1743: -#line 10540 "preproc.y" /* yacc.c:1652 */ - { + case 1743: /* select_limit_value: a_expr */ +#line 10540 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48464 "preproc.c" /* yacc.c:1652 */ +#line 49129 "preproc.c" break; - case 1744: -#line 10544 "preproc.y" /* yacc.c:1652 */ - { + case 1744: /* select_limit_value: ALL */ +#line 10544 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 48472 "preproc.c" /* yacc.c:1652 */ +#line 49137 "preproc.c" break; - case 1745: -#line 10552 "preproc.y" /* yacc.c:1652 */ - { + case 1745: /* select_offset_value: a_expr */ +#line 10552 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48480 "preproc.c" /* yacc.c:1652 */ +#line 49145 "preproc.c" break; - case 1746: -#line 10560 "preproc.y" /* yacc.c:1652 */ - { + case 1746: /* select_fetch_first_value: c_expr */ +#line 10560 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48488 "preproc.c" /* yacc.c:1652 */ +#line 49153 "preproc.c" break; - case 1747: -#line 10564 "preproc.y" /* yacc.c:1652 */ - { + case 1747: /* select_fetch_first_value: '+' I_or_F_const */ +#line 10564 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 48496 "preproc.c" /* yacc.c:1652 */ +#line 49161 "preproc.c" break; - case 1748: -#line 10568 "preproc.y" /* yacc.c:1652 */ - { + case 1748: /* select_fetch_first_value: '-' I_or_F_const */ +#line 10568 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 48504 "preproc.c" /* yacc.c:1652 */ +#line 49169 "preproc.c" break; - case 1749: -#line 10576 "preproc.y" /* yacc.c:1652 */ - { + case 1749: /* I_or_F_const: Iconst */ +#line 10576 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48512 "preproc.c" /* yacc.c:1652 */ +#line 49177 "preproc.c" break; - case 1750: -#line 10580 "preproc.y" /* yacc.c:1652 */ - { + case 1750: /* I_or_F_const: ecpg_fconst */ +#line 10580 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48520 "preproc.c" /* yacc.c:1652 */ +#line 49185 "preproc.c" break; - case 1751: -#line 10588 "preproc.y" /* yacc.c:1652 */ - { + case 1751: /* row_or_rows: ROW */ +#line 10588 "preproc.y" + { (yyval.str) = mm_strdup("row"); } -#line 48528 "preproc.c" /* yacc.c:1652 */ +#line 49193 "preproc.c" break; - case 1752: -#line 10592 "preproc.y" /* yacc.c:1652 */ - { + case 1752: /* row_or_rows: ROWS */ +#line 10592 "preproc.y" + { (yyval.str) = mm_strdup("rows"); } -#line 48536 "preproc.c" /* yacc.c:1652 */ +#line 49201 "preproc.c" break; - case 1753: -#line 10600 "preproc.y" /* yacc.c:1652 */ - { + case 1753: /* first_or_next: FIRST_P */ +#line 10600 "preproc.y" + { (yyval.str) = mm_strdup("first"); } -#line 48544 "preproc.c" /* yacc.c:1652 */ +#line 49209 "preproc.c" break; - case 1754: -#line 10604 "preproc.y" /* yacc.c:1652 */ - { + case 1754: /* first_or_next: NEXT */ +#line 10604 "preproc.y" + { (yyval.str) = mm_strdup("next"); } -#line 48552 "preproc.c" /* yacc.c:1652 */ +#line 49217 "preproc.c" break; - case 1755: -#line 10612 "preproc.y" /* yacc.c:1652 */ - { + case 1755: /* group_clause: GROUP_P BY group_by_list */ +#line 10612 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("group by"),(yyvsp[0].str)); } -#line 48560 "preproc.c" /* yacc.c:1652 */ +#line 49225 "preproc.c" break; - case 1756: -#line 10616 "preproc.y" /* yacc.c:1652 */ - { + case 1756: /* group_clause: %empty */ +#line 10616 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48567 "preproc.c" /* yacc.c:1652 */ +#line 49232 "preproc.c" break; - case 1757: -#line 10623 "preproc.y" /* yacc.c:1652 */ - { + case 1757: /* group_by_list: group_by_item */ +#line 10623 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48575 "preproc.c" /* yacc.c:1652 */ +#line 49240 "preproc.c" break; - case 1758: -#line 10627 "preproc.y" /* yacc.c:1652 */ - { + case 1758: /* group_by_list: group_by_list ',' group_by_item */ +#line 10627 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 48583 "preproc.c" /* yacc.c:1652 */ +#line 49248 "preproc.c" break; - case 1759: -#line 10635 "preproc.y" /* yacc.c:1652 */ - { + case 1759: /* group_by_item: a_expr */ +#line 10635 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48591 "preproc.c" /* yacc.c:1652 */ +#line 49256 "preproc.c" break; - case 1760: -#line 10639 "preproc.y" /* yacc.c:1652 */ - { + case 1760: /* group_by_item: empty_grouping_set */ +#line 10639 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48599 "preproc.c" /* yacc.c:1652 */ +#line 49264 "preproc.c" break; - case 1761: -#line 10643 "preproc.y" /* yacc.c:1652 */ - { + case 1761: /* group_by_item: cube_clause */ +#line 10643 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48607 "preproc.c" /* yacc.c:1652 */ +#line 49272 "preproc.c" break; - case 1762: -#line 10647 "preproc.y" /* yacc.c:1652 */ - { + case 1762: /* group_by_item: rollup_clause */ +#line 10647 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48615 "preproc.c" /* yacc.c:1652 */ +#line 49280 "preproc.c" break; - case 1763: -#line 10651 "preproc.y" /* yacc.c:1652 */ - { + case 1763: /* group_by_item: grouping_sets_clause */ +#line 10651 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48623 "preproc.c" /* yacc.c:1652 */ +#line 49288 "preproc.c" break; - case 1764: -#line 10659 "preproc.y" /* yacc.c:1652 */ - { + case 1764: /* empty_grouping_set: '(' ')' */ +#line 10659 "preproc.y" + { (yyval.str) = mm_strdup("( )"); } -#line 48631 "preproc.c" /* yacc.c:1652 */ +#line 49296 "preproc.c" break; - case 1765: -#line 10667 "preproc.y" /* yacc.c:1652 */ - { + case 1765: /* rollup_clause: ROLLUP '(' expr_list ')' */ +#line 10667 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("rollup ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48639 "preproc.c" /* yacc.c:1652 */ +#line 49304 "preproc.c" break; - case 1766: -#line 10675 "preproc.y" /* yacc.c:1652 */ - { + case 1766: /* cube_clause: CUBE '(' expr_list ')' */ +#line 10675 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("cube ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48647 "preproc.c" /* yacc.c:1652 */ +#line 49312 "preproc.c" break; - case 1767: -#line 10683 "preproc.y" /* yacc.c:1652 */ - { + case 1767: /* grouping_sets_clause: GROUPING SETS '(' group_by_list ')' */ +#line 10683 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("grouping sets ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48655 "preproc.c" /* yacc.c:1652 */ +#line 49320 "preproc.c" break; - case 1768: -#line 10691 "preproc.y" /* yacc.c:1652 */ - { + case 1768: /* having_clause: HAVING a_expr */ +#line 10691 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("having"),(yyvsp[0].str)); } -#line 48663 "preproc.c" /* yacc.c:1652 */ +#line 49328 "preproc.c" break; - case 1769: -#line 10695 "preproc.y" /* yacc.c:1652 */ - { + case 1769: /* having_clause: %empty */ +#line 10695 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48670 "preproc.c" /* yacc.c:1652 */ +#line 49335 "preproc.c" break; - case 1770: -#line 10702 "preproc.y" /* yacc.c:1652 */ - { + case 1770: /* for_locking_clause: for_locking_items */ +#line 10702 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48678 "preproc.c" /* yacc.c:1652 */ +#line 49343 "preproc.c" break; - case 1771: -#line 10706 "preproc.y" /* yacc.c:1652 */ - { + case 1771: /* for_locking_clause: FOR READ ONLY */ +#line 10706 "preproc.y" + { (yyval.str) = mm_strdup("for read only"); } -#line 48686 "preproc.c" /* yacc.c:1652 */ +#line 49351 "preproc.c" break; - case 1772: -#line 10714 "preproc.y" /* yacc.c:1652 */ - { + case 1772: /* opt_for_locking_clause: for_locking_clause */ +#line 10714 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48694 "preproc.c" /* yacc.c:1652 */ +#line 49359 "preproc.c" break; - case 1773: -#line 10718 "preproc.y" /* yacc.c:1652 */ - { + case 1773: /* opt_for_locking_clause: %empty */ +#line 10718 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48701 "preproc.c" /* yacc.c:1652 */ +#line 49366 "preproc.c" break; - case 1774: -#line 10725 "preproc.y" /* yacc.c:1652 */ - { + case 1774: /* for_locking_items: for_locking_item */ +#line 10725 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48709 "preproc.c" /* yacc.c:1652 */ +#line 49374 "preproc.c" break; - case 1775: -#line 10729 "preproc.y" /* yacc.c:1652 */ - { + case 1775: /* for_locking_items: for_locking_items for_locking_item */ +#line 10729 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48717 "preproc.c" /* yacc.c:1652 */ +#line 49382 "preproc.c" break; - case 1776: -#line 10737 "preproc.y" /* yacc.c:1652 */ - { + case 1776: /* for_locking_item: for_locking_strength locked_rels_list opt_nowait_or_skip */ +#line 10737 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48725 "preproc.c" /* yacc.c:1652 */ +#line 49390 "preproc.c" break; - case 1777: -#line 10745 "preproc.y" /* yacc.c:1652 */ - { + case 1777: /* for_locking_strength: FOR UPDATE */ +#line 10745 "preproc.y" + { (yyval.str) = mm_strdup("for update"); } -#line 48733 "preproc.c" /* yacc.c:1652 */ +#line 49398 "preproc.c" break; - case 1778: -#line 10749 "preproc.y" /* yacc.c:1652 */ - { + case 1778: /* for_locking_strength: FOR NO KEY UPDATE */ +#line 10749 "preproc.y" + { (yyval.str) = mm_strdup("for no key update"); } -#line 48741 "preproc.c" /* yacc.c:1652 */ +#line 49406 "preproc.c" break; - case 1779: -#line 10753 "preproc.y" /* yacc.c:1652 */ - { + case 1779: /* for_locking_strength: FOR SHARE */ +#line 10753 "preproc.y" + { (yyval.str) = mm_strdup("for share"); } -#line 48749 "preproc.c" /* yacc.c:1652 */ +#line 49414 "preproc.c" break; - case 1780: -#line 10757 "preproc.y" /* yacc.c:1652 */ - { + case 1780: /* for_locking_strength: FOR KEY SHARE */ +#line 10757 "preproc.y" + { (yyval.str) = mm_strdup("for key share"); } -#line 48757 "preproc.c" /* yacc.c:1652 */ +#line 49422 "preproc.c" break; - case 1781: -#line 10765 "preproc.y" /* yacc.c:1652 */ - { + case 1781: /* locked_rels_list: OF qualified_name_list */ +#line 10765 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("of"),(yyvsp[0].str)); } -#line 48765 "preproc.c" /* yacc.c:1652 */ +#line 49430 "preproc.c" break; - case 1782: -#line 10769 "preproc.y" /* yacc.c:1652 */ - { + case 1782: /* locked_rels_list: %empty */ +#line 10769 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48772 "preproc.c" /* yacc.c:1652 */ +#line 49437 "preproc.c" break; - case 1783: -#line 10776 "preproc.y" /* yacc.c:1652 */ - { + case 1783: /* values_clause: VALUES '(' expr_list ')' */ +#line 10776 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("values ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48780 "preproc.c" /* yacc.c:1652 */ +#line 49445 "preproc.c" break; - case 1784: -#line 10780 "preproc.y" /* yacc.c:1652 */ - { + case 1784: /* values_clause: values_clause ',' '(' expr_list ')' */ +#line 10780 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-4].str),mm_strdup(", ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48788 "preproc.c" /* yacc.c:1652 */ +#line 49453 "preproc.c" break; - case 1785: -#line 10788 "preproc.y" /* yacc.c:1652 */ - { + case 1785: /* from_clause: FROM from_list */ +#line 10788 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("from"),(yyvsp[0].str)); } -#line 48796 "preproc.c" /* yacc.c:1652 */ +#line 49461 "preproc.c" break; - case 1786: -#line 10792 "preproc.y" /* yacc.c:1652 */ - { + case 1786: /* from_clause: %empty */ +#line 10792 "preproc.y" + { (yyval.str)=EMPTY; } -#line 48803 "preproc.c" /* yacc.c:1652 */ +#line 49468 "preproc.c" break; - case 1787: -#line 10799 "preproc.y" /* yacc.c:1652 */ - { + case 1787: /* from_list: table_ref */ +#line 10799 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48811 "preproc.c" /* yacc.c:1652 */ +#line 49476 "preproc.c" break; - case 1788: -#line 10803 "preproc.y" /* yacc.c:1652 */ - { + case 1788: /* from_list: from_list ',' table_ref */ +#line 10803 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 48819 "preproc.c" /* yacc.c:1652 */ +#line 49484 "preproc.c" break; - case 1789: -#line 10811 "preproc.y" /* yacc.c:1652 */ - { + case 1789: /* table_ref: relation_expr opt_alias_clause */ +#line 10811 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48827 "preproc.c" /* yacc.c:1652 */ +#line 49492 "preproc.c" break; - case 1790: -#line 10815 "preproc.y" /* yacc.c:1652 */ - { + case 1790: /* table_ref: relation_expr opt_alias_clause tablesample_clause */ +#line 10815 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48835 "preproc.c" /* yacc.c:1652 */ +#line 49500 "preproc.c" break; - case 1791: -#line 10819 "preproc.y" /* yacc.c:1652 */ - { + case 1791: /* table_ref: func_table func_alias_clause */ +#line 10819 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48843 "preproc.c" /* yacc.c:1652 */ +#line 49508 "preproc.c" break; - case 1792: -#line 10823 "preproc.y" /* yacc.c:1652 */ - { + case 1792: /* table_ref: LATERAL_P func_table func_alias_clause */ +#line 10823 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("lateral"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48851 "preproc.c" /* yacc.c:1652 */ +#line 49516 "preproc.c" break; - case 1793: -#line 10827 "preproc.y" /* yacc.c:1652 */ - { + case 1793: /* table_ref: xmltable opt_alias_clause */ +#line 10827 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48859 "preproc.c" /* yacc.c:1652 */ +#line 49524 "preproc.c" break; - case 1794: -#line 10831 "preproc.y" /* yacc.c:1652 */ - { + case 1794: /* table_ref: LATERAL_P xmltable opt_alias_clause */ +#line 10831 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("lateral"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48867 "preproc.c" /* yacc.c:1652 */ +#line 49532 "preproc.c" break; - case 1795: -#line 10835 "preproc.y" /* yacc.c:1652 */ - { + case 1795: /* table_ref: select_with_parens opt_alias_clause */ +#line 10835 "preproc.y" + { if ((yyvsp[0].str) == NULL) mmerror(PARSE_ERROR, ET_ERROR, "subquery in FROM must have an alias"); (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48878 "preproc.c" /* yacc.c:1652 */ +#line 49543 "preproc.c" break; - case 1796: -#line 10842 "preproc.y" /* yacc.c:1652 */ - { + case 1796: /* table_ref: LATERAL_P select_with_parens opt_alias_clause */ +#line 10842 "preproc.y" + { if ((yyvsp[0].str) == NULL) mmerror(PARSE_ERROR, ET_ERROR, "subquery in FROM must have an alias"); (yyval.str) = cat_str(3,mm_strdup("lateral"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48889 "preproc.c" /* yacc.c:1652 */ +#line 49554 "preproc.c" break; - case 1797: -#line 10849 "preproc.y" /* yacc.c:1652 */ - { + case 1797: /* table_ref: joined_table */ +#line 10849 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48897 "preproc.c" /* yacc.c:1652 */ +#line 49562 "preproc.c" break; - case 1798: -#line 10853 "preproc.y" /* yacc.c:1652 */ - { + case 1798: /* table_ref: '(' joined_table ')' alias_clause */ +#line 10853 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 48905 "preproc.c" /* yacc.c:1652 */ +#line 49570 "preproc.c" break; - case 1799: -#line 10861 "preproc.y" /* yacc.c:1652 */ - { + case 1799: /* joined_table: '(' joined_table ')' */ +#line 10861 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48913 "preproc.c" /* yacc.c:1652 */ +#line 49578 "preproc.c" break; - case 1800: -#line 10865 "preproc.y" /* yacc.c:1652 */ - { + case 1800: /* joined_table: table_ref CROSS JOIN table_ref */ +#line 10865 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("cross join"),(yyvsp[0].str)); } -#line 48921 "preproc.c" /* yacc.c:1652 */ +#line 49586 "preproc.c" break; - case 1801: -#line 10869 "preproc.y" /* yacc.c:1652 */ - { + case 1801: /* joined_table: table_ref join_type JOIN table_ref join_qual */ +#line 10869 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("join"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48929 "preproc.c" /* yacc.c:1652 */ +#line 49594 "preproc.c" break; - case 1802: -#line 10873 "preproc.y" /* yacc.c:1652 */ - { + case 1802: /* joined_table: table_ref JOIN table_ref join_qual */ +#line 10873 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("join"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48937 "preproc.c" /* yacc.c:1652 */ +#line 49602 "preproc.c" break; - case 1803: -#line 10877 "preproc.y" /* yacc.c:1652 */ - { + case 1803: /* joined_table: table_ref NATURAL join_type JOIN table_ref */ +#line 10877 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("natural"),(yyvsp[-2].str),mm_strdup("join"),(yyvsp[0].str)); } -#line 48945 "preproc.c" /* yacc.c:1652 */ +#line 49610 "preproc.c" break; - case 1804: -#line 10881 "preproc.y" /* yacc.c:1652 */ - { + case 1804: /* joined_table: table_ref NATURAL JOIN table_ref */ +#line 10881 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("natural join"),(yyvsp[0].str)); } -#line 48953 "preproc.c" /* yacc.c:1652 */ +#line 49618 "preproc.c" break; - case 1805: -#line 10889 "preproc.y" /* yacc.c:1652 */ - { + case 1805: /* alias_clause: AS ColId '(' name_list ')' */ +#line 10889 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("as"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48961 "preproc.c" /* yacc.c:1652 */ +#line 49626 "preproc.c" break; - case 1806: -#line 10893 "preproc.y" /* yacc.c:1652 */ - { + case 1806: /* alias_clause: AS ColId */ +#line 10893 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("as"),(yyvsp[0].str)); } -#line 48969 "preproc.c" /* yacc.c:1652 */ +#line 49634 "preproc.c" break; - case 1807: -#line 10897 "preproc.y" /* yacc.c:1652 */ - { + case 1807: /* alias_clause: ColId '(' name_list ')' */ +#line 10897 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48977 "preproc.c" /* yacc.c:1652 */ +#line 49642 "preproc.c" break; - case 1808: -#line 10901 "preproc.y" /* yacc.c:1652 */ - { + case 1808: /* alias_clause: ColId */ +#line 10901 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48985 "preproc.c" /* yacc.c:1652 */ +#line 49650 "preproc.c" break; - case 1809: -#line 10909 "preproc.y" /* yacc.c:1652 */ - { + case 1809: /* opt_alias_clause: alias_clause */ +#line 10909 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 48993 "preproc.c" /* yacc.c:1652 */ +#line 49658 "preproc.c" break; - case 1810: -#line 10913 "preproc.y" /* yacc.c:1652 */ - { + case 1810: /* opt_alias_clause: %empty */ +#line 10913 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49000 "preproc.c" /* yacc.c:1652 */ +#line 49665 "preproc.c" break; - case 1811: -#line 10920 "preproc.y" /* yacc.c:1652 */ - { + case 1811: /* func_alias_clause: alias_clause */ +#line 10920 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49008 "preproc.c" /* yacc.c:1652 */ +#line 49673 "preproc.c" break; - case 1812: -#line 10924 "preproc.y" /* yacc.c:1652 */ - { + case 1812: /* func_alias_clause: AS '(' TableFuncElementList ')' */ +#line 10924 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("as ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49016 "preproc.c" /* yacc.c:1652 */ +#line 49681 "preproc.c" break; - case 1813: -#line 10928 "preproc.y" /* yacc.c:1652 */ - { + case 1813: /* func_alias_clause: AS ColId '(' TableFuncElementList ')' */ +#line 10928 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("as"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49024 "preproc.c" /* yacc.c:1652 */ +#line 49689 "preproc.c" break; - case 1814: -#line 10932 "preproc.y" /* yacc.c:1652 */ - { + case 1814: /* func_alias_clause: ColId '(' TableFuncElementList ')' */ +#line 10932 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49032 "preproc.c" /* yacc.c:1652 */ +#line 49697 "preproc.c" break; - case 1815: -#line 10936 "preproc.y" /* yacc.c:1652 */ - { + case 1815: /* func_alias_clause: %empty */ +#line 10936 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49039 "preproc.c" /* yacc.c:1652 */ +#line 49704 "preproc.c" break; - case 1816: -#line 10943 "preproc.y" /* yacc.c:1652 */ - { + case 1816: /* join_type: FULL join_outer */ +#line 10943 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("full"),(yyvsp[0].str)); } -#line 49047 "preproc.c" /* yacc.c:1652 */ +#line 49712 "preproc.c" break; - case 1817: -#line 10947 "preproc.y" /* yacc.c:1652 */ - { + case 1817: /* join_type: LEFT join_outer */ +#line 10947 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("left"),(yyvsp[0].str)); } -#line 49055 "preproc.c" /* yacc.c:1652 */ +#line 49720 "preproc.c" break; - case 1818: -#line 10951 "preproc.y" /* yacc.c:1652 */ - { + case 1818: /* join_type: RIGHT join_outer */ +#line 10951 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("right"),(yyvsp[0].str)); } -#line 49063 "preproc.c" /* yacc.c:1652 */ +#line 49728 "preproc.c" break; - case 1819: -#line 10955 "preproc.y" /* yacc.c:1652 */ - { + case 1819: /* join_type: INNER_P */ +#line 10955 "preproc.y" + { (yyval.str) = mm_strdup("inner"); } -#line 49071 "preproc.c" /* yacc.c:1652 */ +#line 49736 "preproc.c" break; - case 1820: -#line 10963 "preproc.y" /* yacc.c:1652 */ - { + case 1820: /* join_outer: OUTER_P */ +#line 10963 "preproc.y" + { (yyval.str) = mm_strdup("outer"); } -#line 49079 "preproc.c" /* yacc.c:1652 */ +#line 49744 "preproc.c" break; - case 1821: -#line 10967 "preproc.y" /* yacc.c:1652 */ - { + case 1821: /* join_outer: %empty */ +#line 10967 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49086 "preproc.c" /* yacc.c:1652 */ +#line 49751 "preproc.c" break; - case 1822: -#line 10974 "preproc.y" /* yacc.c:1652 */ - { + case 1822: /* join_qual: USING '(' name_list ')' */ +#line 10974 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("using ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49094 "preproc.c" /* yacc.c:1652 */ +#line 49759 "preproc.c" break; - case 1823: -#line 10978 "preproc.y" /* yacc.c:1652 */ - { + case 1823: /* join_qual: ON a_expr */ +#line 10978 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("on"),(yyvsp[0].str)); } -#line 49102 "preproc.c" /* yacc.c:1652 */ +#line 49767 "preproc.c" break; - case 1824: -#line 10986 "preproc.y" /* yacc.c:1652 */ - { + case 1824: /* relation_expr: qualified_name */ +#line 10986 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49110 "preproc.c" /* yacc.c:1652 */ +#line 49775 "preproc.c" break; - case 1825: -#line 10990 "preproc.y" /* yacc.c:1652 */ - { + case 1825: /* relation_expr: qualified_name '*' */ +#line 10990 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("*")); } -#line 49118 "preproc.c" /* yacc.c:1652 */ +#line 49783 "preproc.c" break; - case 1826: -#line 10994 "preproc.y" /* yacc.c:1652 */ - { + case 1826: /* relation_expr: ONLY qualified_name */ +#line 10994 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("only"),(yyvsp[0].str)); } -#line 49126 "preproc.c" /* yacc.c:1652 */ +#line 49791 "preproc.c" break; - case 1827: -#line 10998 "preproc.y" /* yacc.c:1652 */ - { + case 1827: /* relation_expr: ONLY '(' qualified_name ')' */ +#line 10998 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("only ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49134 "preproc.c" /* yacc.c:1652 */ +#line 49799 "preproc.c" break; - case 1828: -#line 11006 "preproc.y" /* yacc.c:1652 */ - { + case 1828: /* relation_expr_list: relation_expr */ +#line 11006 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49142 "preproc.c" /* yacc.c:1652 */ +#line 49807 "preproc.c" break; - case 1829: -#line 11010 "preproc.y" /* yacc.c:1652 */ - { + case 1829: /* relation_expr_list: relation_expr_list ',' relation_expr */ +#line 11010 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 49150 "preproc.c" /* yacc.c:1652 */ +#line 49815 "preproc.c" break; - case 1830: -#line 11018 "preproc.y" /* yacc.c:1652 */ - { + case 1830: /* relation_expr_opt_alias: relation_expr */ +#line 11018 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49158 "preproc.c" /* yacc.c:1652 */ +#line 49823 "preproc.c" break; - case 1831: -#line 11022 "preproc.y" /* yacc.c:1652 */ - { + case 1831: /* relation_expr_opt_alias: relation_expr ColId */ +#line 11022 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49166 "preproc.c" /* yacc.c:1652 */ +#line 49831 "preproc.c" break; - case 1832: -#line 11026 "preproc.y" /* yacc.c:1652 */ - { + case 1832: /* relation_expr_opt_alias: relation_expr AS ColId */ +#line 11026 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 49174 "preproc.c" /* yacc.c:1652 */ +#line 49839 "preproc.c" break; - case 1833: -#line 11034 "preproc.y" /* yacc.c:1652 */ - { + case 1833: /* tablesample_clause: TABLESAMPLE func_name '(' expr_list ')' opt_repeatable_clause */ +#line 11034 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("tablesample"),(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 49182 "preproc.c" /* yacc.c:1652 */ +#line 49847 "preproc.c" break; - case 1834: -#line 11042 "preproc.y" /* yacc.c:1652 */ - { + case 1834: /* opt_repeatable_clause: REPEATABLE '(' a_expr ')' */ +#line 11042 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("repeatable ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49190 "preproc.c" /* yacc.c:1652 */ +#line 49855 "preproc.c" break; - case 1835: -#line 11046 "preproc.y" /* yacc.c:1652 */ - { + case 1835: /* opt_repeatable_clause: %empty */ +#line 11046 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49197 "preproc.c" /* yacc.c:1652 */ +#line 49862 "preproc.c" break; - case 1836: -#line 11053 "preproc.y" /* yacc.c:1652 */ - { + case 1836: /* func_table: func_expr_windowless opt_ordinality */ +#line 11053 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49205 "preproc.c" /* yacc.c:1652 */ +#line 49870 "preproc.c" break; - case 1837: -#line 11057 "preproc.y" /* yacc.c:1652 */ - { + case 1837: /* func_table: ROWS FROM '(' rowsfrom_list ')' opt_ordinality */ +#line 11057 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("rows from ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 49213 "preproc.c" /* yacc.c:1652 */ +#line 49878 "preproc.c" break; - case 1838: -#line 11065 "preproc.y" /* yacc.c:1652 */ - { + case 1838: /* rowsfrom_item: func_expr_windowless opt_col_def_list */ +#line 11065 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49221 "preproc.c" /* yacc.c:1652 */ +#line 49886 "preproc.c" break; - case 1839: -#line 11073 "preproc.y" /* yacc.c:1652 */ - { + case 1839: /* rowsfrom_list: rowsfrom_item */ +#line 11073 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49229 "preproc.c" /* yacc.c:1652 */ +#line 49894 "preproc.c" break; - case 1840: -#line 11077 "preproc.y" /* yacc.c:1652 */ - { + case 1840: /* rowsfrom_list: rowsfrom_list ',' rowsfrom_item */ +#line 11077 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 49237 "preproc.c" /* yacc.c:1652 */ +#line 49902 "preproc.c" break; - case 1841: -#line 11085 "preproc.y" /* yacc.c:1652 */ - { + case 1841: /* opt_col_def_list: AS '(' TableFuncElementList ')' */ +#line 11085 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("as ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49245 "preproc.c" /* yacc.c:1652 */ +#line 49910 "preproc.c" break; - case 1842: -#line 11089 "preproc.y" /* yacc.c:1652 */ - { + case 1842: /* opt_col_def_list: %empty */ +#line 11089 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49252 "preproc.c" /* yacc.c:1652 */ +#line 49917 "preproc.c" break; - case 1843: -#line 11096 "preproc.y" /* yacc.c:1652 */ - { + case 1843: /* opt_ordinality: WITH_LA ORDINALITY */ +#line 11096 "preproc.y" + { (yyval.str) = mm_strdup("with ordinality"); } -#line 49260 "preproc.c" /* yacc.c:1652 */ +#line 49925 "preproc.c" break; - case 1844: -#line 11100 "preproc.y" /* yacc.c:1652 */ - { + case 1844: /* opt_ordinality: %empty */ +#line 11100 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49267 "preproc.c" /* yacc.c:1652 */ +#line 49932 "preproc.c" break; - case 1845: -#line 11107 "preproc.y" /* yacc.c:1652 */ - { + case 1845: /* where_clause: WHERE a_expr */ +#line 11107 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("where"),(yyvsp[0].str)); } -#line 49275 "preproc.c" /* yacc.c:1652 */ +#line 49940 "preproc.c" break; - case 1846: -#line 11111 "preproc.y" /* yacc.c:1652 */ - { + case 1846: /* where_clause: %empty */ +#line 11111 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49282 "preproc.c" /* yacc.c:1652 */ +#line 49947 "preproc.c" break; - case 1847: -#line 11118 "preproc.y" /* yacc.c:1652 */ - { + case 1847: /* where_or_current_clause: WHERE a_expr */ +#line 11118 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("where"),(yyvsp[0].str)); } -#line 49290 "preproc.c" /* yacc.c:1652 */ +#line 49955 "preproc.c" break; - case 1848: -#line 11122 "preproc.y" /* yacc.c:1652 */ - { + case 1848: /* where_or_current_clause: WHERE CURRENT_P OF cursor_name */ +#line 11122 "preproc.y" + { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); (yyval.str) = cat_str(2,mm_strdup("where current of"), cursor_marker); } -#line 49299 "preproc.c" /* yacc.c:1652 */ +#line 49964 "preproc.c" break; - case 1849: -#line 11127 "preproc.y" /* yacc.c:1652 */ - { + case 1849: /* where_or_current_clause: %empty */ +#line 11127 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49306 "preproc.c" /* yacc.c:1652 */ +#line 49971 "preproc.c" break; - case 1850: -#line 11134 "preproc.y" /* yacc.c:1652 */ - { + case 1850: /* OptTableFuncElementList: TableFuncElementList */ +#line 11134 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49314 "preproc.c" /* yacc.c:1652 */ +#line 49979 "preproc.c" break; - case 1851: -#line 11138 "preproc.y" /* yacc.c:1652 */ - { + case 1851: /* OptTableFuncElementList: %empty */ +#line 11138 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49321 "preproc.c" /* yacc.c:1652 */ +#line 49986 "preproc.c" break; - case 1852: -#line 11145 "preproc.y" /* yacc.c:1652 */ - { + case 1852: /* TableFuncElementList: TableFuncElement */ +#line 11145 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49329 "preproc.c" /* yacc.c:1652 */ +#line 49994 "preproc.c" break; - case 1853: -#line 11149 "preproc.y" /* yacc.c:1652 */ - { + case 1853: /* TableFuncElementList: TableFuncElementList ',' TableFuncElement */ +#line 11149 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 49337 "preproc.c" /* yacc.c:1652 */ +#line 50002 "preproc.c" break; - case 1854: -#line 11157 "preproc.y" /* yacc.c:1652 */ - { + case 1854: /* TableFuncElement: ColId Typename opt_collate_clause */ +#line 11157 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49345 "preproc.c" /* yacc.c:1652 */ +#line 50010 "preproc.c" break; - case 1855: -#line 11165 "preproc.y" /* yacc.c:1652 */ - { + case 1855: /* xmltable: XMLTABLE '(' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */ +#line 11165 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("xmltable ("),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("columns"),(yyvsp[-1].str),mm_strdup(")")); } -#line 49353 "preproc.c" /* yacc.c:1652 */ +#line 50018 "preproc.c" break; - case 1856: -#line 11169 "preproc.y" /* yacc.c:1652 */ - { + case 1856: /* xmltable: XMLTABLE '(' XMLNAMESPACES '(' xml_namespace_list ')' ',' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */ +#line 11169 "preproc.y" + { (yyval.str) = cat_str(8,mm_strdup("xmltable ( xmlnamespaces ("),(yyvsp[-7].str),mm_strdup(") ,"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("columns"),(yyvsp[-1].str),mm_strdup(")")); } -#line 49361 "preproc.c" /* yacc.c:1652 */ +#line 50026 "preproc.c" break; - case 1857: -#line 11177 "preproc.y" /* yacc.c:1652 */ - { + case 1857: /* xmltable_column_list: xmltable_column_el */ +#line 11177 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49369 "preproc.c" /* yacc.c:1652 */ +#line 50034 "preproc.c" break; - case 1858: -#line 11181 "preproc.y" /* yacc.c:1652 */ - { + case 1858: /* xmltable_column_list: xmltable_column_list ',' xmltable_column_el */ +#line 11181 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 49377 "preproc.c" /* yacc.c:1652 */ +#line 50042 "preproc.c" break; - case 1859: -#line 11189 "preproc.y" /* yacc.c:1652 */ - { + case 1859: /* xmltable_column_el: ColId Typename */ +#line 11189 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49385 "preproc.c" /* yacc.c:1652 */ +#line 50050 "preproc.c" break; - case 1860: -#line 11193 "preproc.y" /* yacc.c:1652 */ - { + case 1860: /* xmltable_column_el: ColId Typename xmltable_column_option_list */ +#line 11193 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49393 "preproc.c" /* yacc.c:1652 */ +#line 50058 "preproc.c" break; - case 1861: -#line 11197 "preproc.y" /* yacc.c:1652 */ - { + case 1861: /* xmltable_column_el: ColId FOR ORDINALITY */ +#line 11197 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("for ordinality")); } -#line 49401 "preproc.c" /* yacc.c:1652 */ +#line 50066 "preproc.c" break; - case 1862: -#line 11205 "preproc.y" /* yacc.c:1652 */ - { + case 1862: /* xmltable_column_option_list: xmltable_column_option_el */ +#line 11205 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49409 "preproc.c" /* yacc.c:1652 */ +#line 50074 "preproc.c" break; - case 1863: -#line 11209 "preproc.y" /* yacc.c:1652 */ - { + case 1863: /* xmltable_column_option_list: xmltable_column_option_list xmltable_column_option_el */ +#line 11209 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49417 "preproc.c" /* yacc.c:1652 */ +#line 50082 "preproc.c" break; - case 1864: -#line 11217 "preproc.y" /* yacc.c:1652 */ - { + case 1864: /* xmltable_column_option_el: ecpg_ident b_expr */ +#line 11217 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49425 "preproc.c" /* yacc.c:1652 */ +#line 50090 "preproc.c" break; - case 1865: -#line 11221 "preproc.y" /* yacc.c:1652 */ - { + case 1865: /* xmltable_column_option_el: DEFAULT b_expr */ +#line 11221 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("default"),(yyvsp[0].str)); } -#line 49433 "preproc.c" /* yacc.c:1652 */ +#line 50098 "preproc.c" break; - case 1866: -#line 11225 "preproc.y" /* yacc.c:1652 */ - { + case 1866: /* xmltable_column_option_el: NOT NULL_P */ +#line 11225 "preproc.y" + { (yyval.str) = mm_strdup("not null"); } -#line 49441 "preproc.c" /* yacc.c:1652 */ +#line 50106 "preproc.c" break; - case 1867: -#line 11229 "preproc.y" /* yacc.c:1652 */ - { + case 1867: /* xmltable_column_option_el: NULL_P */ +#line 11229 "preproc.y" + { (yyval.str) = mm_strdup("null"); } -#line 49449 "preproc.c" /* yacc.c:1652 */ +#line 50114 "preproc.c" break; - case 1868: -#line 11237 "preproc.y" /* yacc.c:1652 */ - { + case 1868: /* xml_namespace_list: xml_namespace_el */ +#line 11237 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49457 "preproc.c" /* yacc.c:1652 */ +#line 50122 "preproc.c" break; - case 1869: -#line 11241 "preproc.y" /* yacc.c:1652 */ - { + case 1869: /* xml_namespace_list: xml_namespace_list ',' xml_namespace_el */ +#line 11241 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 49465 "preproc.c" /* yacc.c:1652 */ +#line 50130 "preproc.c" break; - case 1870: -#line 11249 "preproc.y" /* yacc.c:1652 */ - { + case 1870: /* xml_namespace_el: b_expr AS ColLabel */ +#line 11249 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 49473 "preproc.c" /* yacc.c:1652 */ +#line 50138 "preproc.c" break; - case 1871: -#line 11253 "preproc.y" /* yacc.c:1652 */ - { + case 1871: /* xml_namespace_el: DEFAULT b_expr */ +#line 11253 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("default"),(yyvsp[0].str)); } -#line 49481 "preproc.c" /* yacc.c:1652 */ +#line 50146 "preproc.c" break; - case 1872: -#line 11261 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].index).str); } -#line 49487 "preproc.c" /* yacc.c:1652 */ + case 1872: /* Typename: SimpleTypename opt_array_bounds */ +#line 11261 "preproc.y" + { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].index).str); } +#line 50152 "preproc.c" break; - case 1873: -#line 11263 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, mm_strdup("setof"), (yyvsp[-1].str), (yyvsp[0].index).str); } -#line 49493 "preproc.c" /* yacc.c:1652 */ + case 1873: /* Typename: SETOF SimpleTypename opt_array_bounds */ +#line 11263 "preproc.y" + { (yyval.str) = cat_str(3, mm_strdup("setof"), (yyvsp[-1].str), (yyvsp[0].index).str); } +#line 50158 "preproc.c" break; - case 1874: -#line 11265 "preproc.y" /* yacc.c:1652 */ - { + case 1874: /* Typename: SimpleTypename ARRAY '[' Iconst ']' */ +#line 11265 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-4].str),mm_strdup("array ["),(yyvsp[-1].str),mm_strdup("]")); } -#line 49501 "preproc.c" /* yacc.c:1652 */ +#line 50166 "preproc.c" break; - case 1875: -#line 11269 "preproc.y" /* yacc.c:1652 */ - { + case 1875: /* Typename: SETOF SimpleTypename ARRAY '[' Iconst ']' */ +#line 11269 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("setof"),(yyvsp[-4].str),mm_strdup("array ["),(yyvsp[-1].str),mm_strdup("]")); } -#line 49509 "preproc.c" /* yacc.c:1652 */ +#line 50174 "preproc.c" break; - case 1876: -#line 11273 "preproc.y" /* yacc.c:1652 */ - { + case 1876: /* Typename: SimpleTypename ARRAY */ +#line 11273 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("array")); } -#line 49517 "preproc.c" /* yacc.c:1652 */ +#line 50182 "preproc.c" break; - case 1877: -#line 11277 "preproc.y" /* yacc.c:1652 */ - { + case 1877: /* Typename: SETOF SimpleTypename ARRAY */ +#line 11277 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("setof"),(yyvsp[-1].str),mm_strdup("array")); } -#line 49525 "preproc.c" /* yacc.c:1652 */ +#line 50190 "preproc.c" break; - case 1878: -#line 11285 "preproc.y" /* yacc.c:1652 */ - { + case 1878: /* opt_array_bounds: opt_array_bounds '[' ']' */ +#line 11285 "preproc.y" + { (yyval.index).index1 = (yyvsp[-2].index).index1; (yyval.index).index2 = (yyvsp[-2].index).index2; if (strcmp((yyval.index).index1, "-1") == 0) @@ -49535,12 +50200,12 @@ (yyval.index).index2 = mm_strdup("0"); (yyval.index).str = cat_str(2, (yyvsp[-2].index).str, mm_strdup("[]")); } -#line 49539 "preproc.c" /* yacc.c:1652 */ +#line 50204 "preproc.c" break; - case 1879: -#line 11295 "preproc.y" /* yacc.c:1652 */ - { + case 1879: /* opt_array_bounds: opt_array_bounds '[' Iresult ']' */ +#line 11295 "preproc.y" + { (yyval.index).index1 = (yyvsp[-3].index).index1; (yyval.index).index2 = (yyvsp[-3].index).index2; if (strcmp((yyvsp[-3].index).index1, "-1") == 0) @@ -49549,7049 +50214,7049 @@ (yyval.index).index2 = mm_strdup((yyvsp[-1].str)); (yyval.index).str = cat_str(4, (yyvsp[-3].index).str, mm_strdup("["), (yyvsp[-1].str), mm_strdup("]")); } -#line 49553 "preproc.c" /* yacc.c:1652 */ +#line 50218 "preproc.c" break; - case 1880: -#line 11305 "preproc.y" /* yacc.c:1652 */ - { + case 1880: /* opt_array_bounds: %empty */ +#line 11305 "preproc.y" + { (yyval.index).index1 = mm_strdup("-1"); (yyval.index).index2 = mm_strdup("-1"); (yyval.index).str= EMPTY; } -#line 49563 "preproc.c" /* yacc.c:1652 */ +#line 50228 "preproc.c" break; - case 1881: -#line 11315 "preproc.y" /* yacc.c:1652 */ - { + case 1881: /* SimpleTypename: GenericType */ +#line 11315 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49571 "preproc.c" /* yacc.c:1652 */ +#line 50236 "preproc.c" break; - case 1882: -#line 11319 "preproc.y" /* yacc.c:1652 */ - { + case 1882: /* SimpleTypename: Numeric */ +#line 11319 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49579 "preproc.c" /* yacc.c:1652 */ +#line 50244 "preproc.c" break; - case 1883: -#line 11323 "preproc.y" /* yacc.c:1652 */ - { + case 1883: /* SimpleTypename: Bit */ +#line 11323 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49587 "preproc.c" /* yacc.c:1652 */ +#line 50252 "preproc.c" break; - case 1884: -#line 11327 "preproc.y" /* yacc.c:1652 */ - { + case 1884: /* SimpleTypename: Character */ +#line 11327 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49595 "preproc.c" /* yacc.c:1652 */ +#line 50260 "preproc.c" break; - case 1885: -#line 11331 "preproc.y" /* yacc.c:1652 */ - { + case 1885: /* SimpleTypename: ConstDatetime */ +#line 11331 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49603 "preproc.c" /* yacc.c:1652 */ +#line 50268 "preproc.c" break; - case 1886: -#line 11335 "preproc.y" /* yacc.c:1652 */ - { + case 1886: /* SimpleTypename: ConstInterval opt_interval */ +#line 11335 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49611 "preproc.c" /* yacc.c:1652 */ +#line 50276 "preproc.c" break; - case 1887: -#line 11339 "preproc.y" /* yacc.c:1652 */ - { + case 1887: /* SimpleTypename: ConstInterval '(' Iconst ')' */ +#line 11339 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49619 "preproc.c" /* yacc.c:1652 */ +#line 50284 "preproc.c" break; - case 1888: -#line 11347 "preproc.y" /* yacc.c:1652 */ - { + case 1888: /* ConstTypename: Numeric */ +#line 11347 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49627 "preproc.c" /* yacc.c:1652 */ +#line 50292 "preproc.c" break; - case 1889: -#line 11351 "preproc.y" /* yacc.c:1652 */ - { + case 1889: /* ConstTypename: ConstBit */ +#line 11351 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49635 "preproc.c" /* yacc.c:1652 */ +#line 50300 "preproc.c" break; - case 1890: -#line 11355 "preproc.y" /* yacc.c:1652 */ - { + case 1890: /* ConstTypename: ConstCharacter */ +#line 11355 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49643 "preproc.c" /* yacc.c:1652 */ +#line 50308 "preproc.c" break; - case 1891: -#line 11359 "preproc.y" /* yacc.c:1652 */ - { + case 1891: /* ConstTypename: ConstDatetime */ +#line 11359 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49651 "preproc.c" /* yacc.c:1652 */ +#line 50316 "preproc.c" break; - case 1892: -#line 11367 "preproc.y" /* yacc.c:1652 */ - { + case 1892: /* GenericType: type_function_name opt_type_modifiers */ +#line 11367 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49659 "preproc.c" /* yacc.c:1652 */ +#line 50324 "preproc.c" break; - case 1893: -#line 11371 "preproc.y" /* yacc.c:1652 */ - { + case 1893: /* GenericType: type_function_name attrs opt_type_modifiers */ +#line 11371 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49667 "preproc.c" /* yacc.c:1652 */ +#line 50332 "preproc.c" break; - case 1894: -#line 11379 "preproc.y" /* yacc.c:1652 */ - { + case 1894: /* opt_type_modifiers: '(' expr_list ')' */ +#line 11379 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49675 "preproc.c" /* yacc.c:1652 */ +#line 50340 "preproc.c" break; - case 1895: -#line 11383 "preproc.y" /* yacc.c:1652 */ - { + case 1895: /* opt_type_modifiers: %empty */ +#line 11383 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49682 "preproc.c" /* yacc.c:1652 */ +#line 50347 "preproc.c" break; - case 1896: -#line 11390 "preproc.y" /* yacc.c:1652 */ - { + case 1896: /* Numeric: INT_P */ +#line 11390 "preproc.y" + { (yyval.str) = mm_strdup("int"); } -#line 49690 "preproc.c" /* yacc.c:1652 */ +#line 50355 "preproc.c" break; - case 1897: -#line 11394 "preproc.y" /* yacc.c:1652 */ - { + case 1897: /* Numeric: INTEGER */ +#line 11394 "preproc.y" + { (yyval.str) = mm_strdup("integer"); } -#line 49698 "preproc.c" /* yacc.c:1652 */ +#line 50363 "preproc.c" break; - case 1898: -#line 11398 "preproc.y" /* yacc.c:1652 */ - { + case 1898: /* Numeric: SMALLINT */ +#line 11398 "preproc.y" + { (yyval.str) = mm_strdup("smallint"); } -#line 49706 "preproc.c" /* yacc.c:1652 */ +#line 50371 "preproc.c" break; - case 1899: -#line 11402 "preproc.y" /* yacc.c:1652 */ - { + case 1899: /* Numeric: BIGINT */ +#line 11402 "preproc.y" + { (yyval.str) = mm_strdup("bigint"); } -#line 49714 "preproc.c" /* yacc.c:1652 */ +#line 50379 "preproc.c" break; - case 1900: -#line 11406 "preproc.y" /* yacc.c:1652 */ - { + case 1900: /* Numeric: REAL */ +#line 11406 "preproc.y" + { (yyval.str) = mm_strdup("real"); } -#line 49722 "preproc.c" /* yacc.c:1652 */ +#line 50387 "preproc.c" break; - case 1901: -#line 11410 "preproc.y" /* yacc.c:1652 */ - { + case 1901: /* Numeric: FLOAT_P opt_float */ +#line 11410 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("float"),(yyvsp[0].str)); } -#line 49730 "preproc.c" /* yacc.c:1652 */ +#line 50395 "preproc.c" break; - case 1902: -#line 11414 "preproc.y" /* yacc.c:1652 */ - { + case 1902: /* Numeric: DOUBLE_P PRECISION */ +#line 11414 "preproc.y" + { (yyval.str) = mm_strdup("double precision"); } -#line 49738 "preproc.c" /* yacc.c:1652 */ +#line 50403 "preproc.c" break; - case 1903: -#line 11418 "preproc.y" /* yacc.c:1652 */ - { + case 1903: /* Numeric: DECIMAL_P opt_type_modifiers */ +#line 11418 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("decimal"),(yyvsp[0].str)); } -#line 49746 "preproc.c" /* yacc.c:1652 */ +#line 50411 "preproc.c" break; - case 1904: -#line 11422 "preproc.y" /* yacc.c:1652 */ - { + case 1904: /* Numeric: DEC opt_type_modifiers */ +#line 11422 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("dec"),(yyvsp[0].str)); } -#line 49754 "preproc.c" /* yacc.c:1652 */ +#line 50419 "preproc.c" break; - case 1905: -#line 11426 "preproc.y" /* yacc.c:1652 */ - { + case 1905: /* Numeric: NUMERIC opt_type_modifiers */ +#line 11426 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("numeric"),(yyvsp[0].str)); } -#line 49762 "preproc.c" /* yacc.c:1652 */ +#line 50427 "preproc.c" break; - case 1906: -#line 11430 "preproc.y" /* yacc.c:1652 */ - { + case 1906: /* Numeric: BOOLEAN_P */ +#line 11430 "preproc.y" + { (yyval.str) = mm_strdup("boolean"); } -#line 49770 "preproc.c" /* yacc.c:1652 */ +#line 50435 "preproc.c" break; - case 1907: -#line 11438 "preproc.y" /* yacc.c:1652 */ - { + case 1907: /* opt_float: '(' Iconst ')' */ +#line 11438 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49778 "preproc.c" /* yacc.c:1652 */ +#line 50443 "preproc.c" break; - case 1908: -#line 11442 "preproc.y" /* yacc.c:1652 */ - { + case 1908: /* opt_float: %empty */ +#line 11442 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49785 "preproc.c" /* yacc.c:1652 */ +#line 50450 "preproc.c" break; - case 1909: -#line 11449 "preproc.y" /* yacc.c:1652 */ - { + case 1909: /* Bit: BitWithLength */ +#line 11449 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49793 "preproc.c" /* yacc.c:1652 */ +#line 50458 "preproc.c" break; - case 1910: -#line 11453 "preproc.y" /* yacc.c:1652 */ - { + case 1910: /* Bit: BitWithoutLength */ +#line 11453 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49801 "preproc.c" /* yacc.c:1652 */ +#line 50466 "preproc.c" break; - case 1911: -#line 11461 "preproc.y" /* yacc.c:1652 */ - { + case 1911: /* ConstBit: BitWithLength */ +#line 11461 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49809 "preproc.c" /* yacc.c:1652 */ +#line 50474 "preproc.c" break; - case 1912: -#line 11465 "preproc.y" /* yacc.c:1652 */ - { + case 1912: /* ConstBit: BitWithoutLength */ +#line 11465 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49817 "preproc.c" /* yacc.c:1652 */ +#line 50482 "preproc.c" break; - case 1913: -#line 11473 "preproc.y" /* yacc.c:1652 */ - { + case 1913: /* BitWithLength: BIT opt_varying '(' expr_list ')' */ +#line 11473 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("bit"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49825 "preproc.c" /* yacc.c:1652 */ +#line 50490 "preproc.c" break; - case 1914: -#line 11481 "preproc.y" /* yacc.c:1652 */ - { + case 1914: /* BitWithoutLength: BIT opt_varying */ +#line 11481 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("bit"),(yyvsp[0].str)); } -#line 49833 "preproc.c" /* yacc.c:1652 */ +#line 50498 "preproc.c" break; - case 1915: -#line 11489 "preproc.y" /* yacc.c:1652 */ - { + case 1915: /* Character: CharacterWithLength */ +#line 11489 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49841 "preproc.c" /* yacc.c:1652 */ +#line 50506 "preproc.c" break; - case 1916: -#line 11493 "preproc.y" /* yacc.c:1652 */ - { + case 1916: /* Character: CharacterWithoutLength */ +#line 11493 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49849 "preproc.c" /* yacc.c:1652 */ +#line 50514 "preproc.c" break; - case 1917: -#line 11501 "preproc.y" /* yacc.c:1652 */ - { + case 1917: /* ConstCharacter: CharacterWithLength */ +#line 11501 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49857 "preproc.c" /* yacc.c:1652 */ +#line 50522 "preproc.c" break; - case 1918: -#line 11505 "preproc.y" /* yacc.c:1652 */ - { + case 1918: /* ConstCharacter: CharacterWithoutLength */ +#line 11505 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49865 "preproc.c" /* yacc.c:1652 */ +#line 50530 "preproc.c" break; - case 1919: -#line 11513 "preproc.y" /* yacc.c:1652 */ - { + case 1919: /* CharacterWithLength: character '(' Iconst ')' */ +#line 11513 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49873 "preproc.c" /* yacc.c:1652 */ +#line 50538 "preproc.c" break; - case 1920: -#line 11521 "preproc.y" /* yacc.c:1652 */ - { + case 1920: /* CharacterWithoutLength: character */ +#line 11521 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 49881 "preproc.c" /* yacc.c:1652 */ +#line 50546 "preproc.c" break; - case 1921: -#line 11529 "preproc.y" /* yacc.c:1652 */ - { + case 1921: /* character: CHARACTER opt_varying */ +#line 11529 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("character"),(yyvsp[0].str)); } -#line 49889 "preproc.c" /* yacc.c:1652 */ +#line 50554 "preproc.c" break; - case 1922: -#line 11533 "preproc.y" /* yacc.c:1652 */ - { + case 1922: /* character: CHAR_P opt_varying */ +#line 11533 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("char"),(yyvsp[0].str)); } -#line 49897 "preproc.c" /* yacc.c:1652 */ +#line 50562 "preproc.c" break; - case 1923: -#line 11537 "preproc.y" /* yacc.c:1652 */ - { + case 1923: /* character: VARCHAR */ +#line 11537 "preproc.y" + { (yyval.str) = mm_strdup("varchar"); } -#line 49905 "preproc.c" /* yacc.c:1652 */ +#line 50570 "preproc.c" break; - case 1924: -#line 11541 "preproc.y" /* yacc.c:1652 */ - { + case 1924: /* character: NATIONAL CHARACTER opt_varying */ +#line 11541 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("national character"),(yyvsp[0].str)); } -#line 49913 "preproc.c" /* yacc.c:1652 */ +#line 50578 "preproc.c" break; - case 1925: -#line 11545 "preproc.y" /* yacc.c:1652 */ - { + case 1925: /* character: NATIONAL CHAR_P opt_varying */ +#line 11545 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("national char"),(yyvsp[0].str)); } -#line 49921 "preproc.c" /* yacc.c:1652 */ +#line 50586 "preproc.c" break; - case 1926: -#line 11549 "preproc.y" /* yacc.c:1652 */ - { + case 1926: /* character: NCHAR opt_varying */ +#line 11549 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("nchar"),(yyvsp[0].str)); } -#line 49929 "preproc.c" /* yacc.c:1652 */ +#line 50594 "preproc.c" break; - case 1927: -#line 11557 "preproc.y" /* yacc.c:1652 */ - { + case 1927: /* opt_varying: VARYING */ +#line 11557 "preproc.y" + { (yyval.str) = mm_strdup("varying"); } -#line 49937 "preproc.c" /* yacc.c:1652 */ +#line 50602 "preproc.c" break; - case 1928: -#line 11561 "preproc.y" /* yacc.c:1652 */ - { + case 1928: /* opt_varying: %empty */ +#line 11561 "preproc.y" + { (yyval.str)=EMPTY; } -#line 49944 "preproc.c" /* yacc.c:1652 */ +#line 50609 "preproc.c" break; - case 1929: -#line 11568 "preproc.y" /* yacc.c:1652 */ - { + case 1929: /* ConstDatetime: TIMESTAMP '(' Iconst ')' opt_timezone */ +#line 11568 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("timestamp ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 49952 "preproc.c" /* yacc.c:1652 */ +#line 50617 "preproc.c" break; - case 1930: -#line 11572 "preproc.y" /* yacc.c:1652 */ - { + case 1930: /* ConstDatetime: TIMESTAMP opt_timezone */ +#line 11572 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("timestamp"),(yyvsp[0].str)); } -#line 49960 "preproc.c" /* yacc.c:1652 */ +#line 50625 "preproc.c" break; - case 1931: -#line 11576 "preproc.y" /* yacc.c:1652 */ - { + case 1931: /* ConstDatetime: TIME '(' Iconst ')' opt_timezone */ +#line 11576 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("time ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 49968 "preproc.c" /* yacc.c:1652 */ +#line 50633 "preproc.c" break; - case 1932: -#line 11580 "preproc.y" /* yacc.c:1652 */ - { + case 1932: /* ConstDatetime: TIME opt_timezone */ +#line 11580 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("time"),(yyvsp[0].str)); } -#line 49976 "preproc.c" /* yacc.c:1652 */ +#line 50641 "preproc.c" break; - case 1933: -#line 11588 "preproc.y" /* yacc.c:1652 */ - { + case 1933: /* ConstInterval: INTERVAL */ +#line 11588 "preproc.y" + { (yyval.str) = mm_strdup("interval"); } -#line 49984 "preproc.c" /* yacc.c:1652 */ +#line 50649 "preproc.c" break; - case 1934: -#line 11596 "preproc.y" /* yacc.c:1652 */ - { + case 1934: /* opt_timezone: WITH_LA TIME ZONE */ +#line 11596 "preproc.y" + { (yyval.str) = mm_strdup("with time zone"); } -#line 49992 "preproc.c" /* yacc.c:1652 */ +#line 50657 "preproc.c" break; - case 1935: -#line 11600 "preproc.y" /* yacc.c:1652 */ - { + case 1935: /* opt_timezone: WITHOUT TIME ZONE */ +#line 11600 "preproc.y" + { (yyval.str) = mm_strdup("without time zone"); } -#line 50000 "preproc.c" /* yacc.c:1652 */ +#line 50665 "preproc.c" break; - case 1936: -#line 11604 "preproc.y" /* yacc.c:1652 */ - { + case 1936: /* opt_timezone: %empty */ +#line 11604 "preproc.y" + { (yyval.str)=EMPTY; } -#line 50007 "preproc.c" /* yacc.c:1652 */ +#line 50672 "preproc.c" break; - case 1937: -#line 11611 "preproc.y" /* yacc.c:1652 */ - { + case 1937: /* opt_interval: YEAR_P */ +#line 11611 "preproc.y" + { (yyval.str) = mm_strdup("year"); } -#line 50015 "preproc.c" /* yacc.c:1652 */ +#line 50680 "preproc.c" break; - case 1938: -#line 11615 "preproc.y" /* yacc.c:1652 */ - { + case 1938: /* opt_interval: MONTH_P */ +#line 11615 "preproc.y" + { (yyval.str) = mm_strdup("month"); } -#line 50023 "preproc.c" /* yacc.c:1652 */ +#line 50688 "preproc.c" break; - case 1939: -#line 11619 "preproc.y" /* yacc.c:1652 */ - { + case 1939: /* opt_interval: DAY_P */ +#line 11619 "preproc.y" + { (yyval.str) = mm_strdup("day"); } -#line 50031 "preproc.c" /* yacc.c:1652 */ +#line 50696 "preproc.c" break; - case 1940: -#line 11623 "preproc.y" /* yacc.c:1652 */ - { + case 1940: /* opt_interval: HOUR_P */ +#line 11623 "preproc.y" + { (yyval.str) = mm_strdup("hour"); } -#line 50039 "preproc.c" /* yacc.c:1652 */ +#line 50704 "preproc.c" break; - case 1941: -#line 11627 "preproc.y" /* yacc.c:1652 */ - { + case 1941: /* opt_interval: MINUTE_P */ +#line 11627 "preproc.y" + { (yyval.str) = mm_strdup("minute"); } -#line 50047 "preproc.c" /* yacc.c:1652 */ +#line 50712 "preproc.c" break; - case 1942: -#line 11631 "preproc.y" /* yacc.c:1652 */ - { + case 1942: /* opt_interval: interval_second */ +#line 11631 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50055 "preproc.c" /* yacc.c:1652 */ +#line 50720 "preproc.c" break; - case 1943: -#line 11635 "preproc.y" /* yacc.c:1652 */ - { + case 1943: /* opt_interval: YEAR_P TO MONTH_P */ +#line 11635 "preproc.y" + { (yyval.str) = mm_strdup("year to month"); } -#line 50063 "preproc.c" /* yacc.c:1652 */ +#line 50728 "preproc.c" break; - case 1944: -#line 11639 "preproc.y" /* yacc.c:1652 */ - { + case 1944: /* opt_interval: DAY_P TO HOUR_P */ +#line 11639 "preproc.y" + { (yyval.str) = mm_strdup("day to hour"); } -#line 50071 "preproc.c" /* yacc.c:1652 */ +#line 50736 "preproc.c" break; - case 1945: -#line 11643 "preproc.y" /* yacc.c:1652 */ - { + case 1945: /* opt_interval: DAY_P TO MINUTE_P */ +#line 11643 "preproc.y" + { (yyval.str) = mm_strdup("day to minute"); } -#line 50079 "preproc.c" /* yacc.c:1652 */ +#line 50744 "preproc.c" break; - case 1946: -#line 11647 "preproc.y" /* yacc.c:1652 */ - { + case 1946: /* opt_interval: DAY_P TO interval_second */ +#line 11647 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("day to"),(yyvsp[0].str)); } -#line 50087 "preproc.c" /* yacc.c:1652 */ +#line 50752 "preproc.c" break; - case 1947: -#line 11651 "preproc.y" /* yacc.c:1652 */ - { + case 1947: /* opt_interval: HOUR_P TO MINUTE_P */ +#line 11651 "preproc.y" + { (yyval.str) = mm_strdup("hour to minute"); } -#line 50095 "preproc.c" /* yacc.c:1652 */ +#line 50760 "preproc.c" break; - case 1948: -#line 11655 "preproc.y" /* yacc.c:1652 */ - { + case 1948: /* opt_interval: HOUR_P TO interval_second */ +#line 11655 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("hour to"),(yyvsp[0].str)); } -#line 50103 "preproc.c" /* yacc.c:1652 */ +#line 50768 "preproc.c" break; - case 1949: -#line 11659 "preproc.y" /* yacc.c:1652 */ - { + case 1949: /* opt_interval: MINUTE_P TO interval_second */ +#line 11659 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("minute to"),(yyvsp[0].str)); } -#line 50111 "preproc.c" /* yacc.c:1652 */ +#line 50776 "preproc.c" break; - case 1950: -#line 11663 "preproc.y" /* yacc.c:1652 */ - { + case 1950: /* opt_interval: %empty */ +#line 11663 "preproc.y" + { (yyval.str)=EMPTY; } -#line 50118 "preproc.c" /* yacc.c:1652 */ +#line 50783 "preproc.c" break; - case 1951: -#line 11670 "preproc.y" /* yacc.c:1652 */ - { + case 1951: /* interval_second: SECOND_P */ +#line 11670 "preproc.y" + { (yyval.str) = mm_strdup("second"); } -#line 50126 "preproc.c" /* yacc.c:1652 */ +#line 50791 "preproc.c" break; - case 1952: -#line 11674 "preproc.y" /* yacc.c:1652 */ - { + case 1952: /* interval_second: SECOND_P '(' Iconst ')' */ +#line 11674 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("second ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50134 "preproc.c" /* yacc.c:1652 */ +#line 50799 "preproc.c" break; - case 1953: -#line 11682 "preproc.y" /* yacc.c:1652 */ - { + case 1953: /* a_expr: c_expr */ +#line 11682 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50142 "preproc.c" /* yacc.c:1652 */ +#line 50807 "preproc.c" break; - case 1954: -#line 11686 "preproc.y" /* yacc.c:1652 */ - { + case 1954: /* a_expr: a_expr TYPECAST Typename */ +#line 11686 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("::"),(yyvsp[0].str)); } -#line 50150 "preproc.c" /* yacc.c:1652 */ +#line 50815 "preproc.c" break; - case 1955: -#line 11690 "preproc.y" /* yacc.c:1652 */ - { + case 1955: /* a_expr: a_expr COLLATE any_name */ +#line 11690 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("collate"),(yyvsp[0].str)); } -#line 50158 "preproc.c" /* yacc.c:1652 */ +#line 50823 "preproc.c" break; - case 1956: -#line 11694 "preproc.y" /* yacc.c:1652 */ - { + case 1956: /* a_expr: a_expr AT TIME ZONE a_expr */ +#line 11694 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup("at time zone"),(yyvsp[0].str)); } -#line 50166 "preproc.c" /* yacc.c:1652 */ +#line 50831 "preproc.c" break; - case 1957: -#line 11698 "preproc.y" /* yacc.c:1652 */ - { + case 1957: /* a_expr: '+' a_expr */ +#line 11698 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 50174 "preproc.c" /* yacc.c:1652 */ +#line 50839 "preproc.c" break; - case 1958: -#line 11702 "preproc.y" /* yacc.c:1652 */ - { + case 1958: /* a_expr: '-' a_expr */ +#line 11702 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 50182 "preproc.c" /* yacc.c:1652 */ +#line 50847 "preproc.c" break; - case 1959: -#line 11706 "preproc.y" /* yacc.c:1652 */ - { + case 1959: /* a_expr: a_expr '+' a_expr */ +#line 11706 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("+"),(yyvsp[0].str)); } -#line 50190 "preproc.c" /* yacc.c:1652 */ +#line 50855 "preproc.c" break; - case 1960: -#line 11710 "preproc.y" /* yacc.c:1652 */ - { + case 1960: /* a_expr: a_expr '-' a_expr */ +#line 11710 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("-"),(yyvsp[0].str)); } -#line 50198 "preproc.c" /* yacc.c:1652 */ +#line 50863 "preproc.c" break; - case 1961: -#line 11714 "preproc.y" /* yacc.c:1652 */ - { + case 1961: /* a_expr: a_expr '*' a_expr */ +#line 11714 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("*"),(yyvsp[0].str)); } -#line 50206 "preproc.c" /* yacc.c:1652 */ +#line 50871 "preproc.c" break; - case 1962: -#line 11718 "preproc.y" /* yacc.c:1652 */ - { + case 1962: /* a_expr: a_expr '/' a_expr */ +#line 11718 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("/"),(yyvsp[0].str)); } -#line 50214 "preproc.c" /* yacc.c:1652 */ +#line 50879 "preproc.c" break; - case 1963: -#line 11722 "preproc.y" /* yacc.c:1652 */ - { + case 1963: /* a_expr: a_expr '%' a_expr */ +#line 11722 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("%"),(yyvsp[0].str)); } -#line 50222 "preproc.c" /* yacc.c:1652 */ +#line 50887 "preproc.c" break; - case 1964: -#line 11726 "preproc.y" /* yacc.c:1652 */ - { + case 1964: /* a_expr: a_expr '^' a_expr */ +#line 11726 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("^"),(yyvsp[0].str)); } -#line 50230 "preproc.c" /* yacc.c:1652 */ +#line 50895 "preproc.c" break; - case 1965: -#line 11730 "preproc.y" /* yacc.c:1652 */ - { + case 1965: /* a_expr: a_expr '<' a_expr */ +#line 11730 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<"),(yyvsp[0].str)); } -#line 50238 "preproc.c" /* yacc.c:1652 */ +#line 50903 "preproc.c" break; - case 1966: -#line 11734 "preproc.y" /* yacc.c:1652 */ - { + case 1966: /* a_expr: a_expr '>' a_expr */ +#line 11734 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(">"),(yyvsp[0].str)); } -#line 50246 "preproc.c" /* yacc.c:1652 */ +#line 50911 "preproc.c" break; - case 1967: -#line 11738 "preproc.y" /* yacc.c:1652 */ - { + case 1967: /* a_expr: a_expr '=' a_expr */ +#line 11738 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 50254 "preproc.c" /* yacc.c:1652 */ +#line 50919 "preproc.c" break; - case 1968: -#line 11742 "preproc.y" /* yacc.c:1652 */ - { + case 1968: /* a_expr: a_expr LESS_EQUALS a_expr */ +#line 11742 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<="),(yyvsp[0].str)); } -#line 50262 "preproc.c" /* yacc.c:1652 */ +#line 50927 "preproc.c" break; - case 1969: -#line 11746 "preproc.y" /* yacc.c:1652 */ - { + case 1969: /* a_expr: a_expr GREATER_EQUALS a_expr */ +#line 11746 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(">="),(yyvsp[0].str)); } -#line 50270 "preproc.c" /* yacc.c:1652 */ +#line 50935 "preproc.c" break; - case 1970: -#line 11750 "preproc.y" /* yacc.c:1652 */ - { + case 1970: /* a_expr: a_expr NOT_EQUALS a_expr */ +#line 11750 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<>"),(yyvsp[0].str)); } -#line 50278 "preproc.c" /* yacc.c:1652 */ +#line 50943 "preproc.c" break; - case 1971: -#line 11754 "preproc.y" /* yacc.c:1652 */ - { + case 1971: /* a_expr: a_expr qual_Op a_expr */ +#line 11754 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50286 "preproc.c" /* yacc.c:1652 */ +#line 50951 "preproc.c" break; - case 1972: -#line 11758 "preproc.y" /* yacc.c:1652 */ - { + case 1972: /* a_expr: qual_Op a_expr */ +#line 11758 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50294 "preproc.c" /* yacc.c:1652 */ +#line 50959 "preproc.c" break; - case 1973: -#line 11762 "preproc.y" /* yacc.c:1652 */ - { + case 1973: /* a_expr: a_expr qual_Op */ +#line 11762 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50302 "preproc.c" /* yacc.c:1652 */ +#line 50967 "preproc.c" break; - case 1974: -#line 11766 "preproc.y" /* yacc.c:1652 */ - { + case 1974: /* a_expr: a_expr AND a_expr */ +#line 11766 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 50310 "preproc.c" /* yacc.c:1652 */ +#line 50975 "preproc.c" break; - case 1975: -#line 11770 "preproc.y" /* yacc.c:1652 */ - { + case 1975: /* a_expr: a_expr OR a_expr */ +#line 11770 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("or"),(yyvsp[0].str)); } -#line 50318 "preproc.c" /* yacc.c:1652 */ +#line 50983 "preproc.c" break; - case 1976: -#line 11774 "preproc.y" /* yacc.c:1652 */ - { + case 1976: /* a_expr: NOT a_expr */ +#line 11774 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("not"),(yyvsp[0].str)); } -#line 50326 "preproc.c" /* yacc.c:1652 */ +#line 50991 "preproc.c" break; - case 1977: -#line 11778 "preproc.y" /* yacc.c:1652 */ - { + case 1977: /* a_expr: NOT_LA a_expr */ +#line 11778 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("not"),(yyvsp[0].str)); } -#line 50334 "preproc.c" /* yacc.c:1652 */ +#line 50999 "preproc.c" break; - case 1978: -#line 11782 "preproc.y" /* yacc.c:1652 */ - { + case 1978: /* a_expr: a_expr LIKE a_expr */ +#line 11782 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("like"),(yyvsp[0].str)); } -#line 50342 "preproc.c" /* yacc.c:1652 */ +#line 51007 "preproc.c" break; - case 1979: -#line 11786 "preproc.y" /* yacc.c:1652 */ - { + case 1979: /* a_expr: a_expr LIKE a_expr ESCAPE a_expr */ +#line 11786 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("like"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 50350 "preproc.c" /* yacc.c:1652 */ +#line 51015 "preproc.c" break; - case 1980: -#line 11790 "preproc.y" /* yacc.c:1652 */ - { + case 1980: /* a_expr: a_expr NOT_LA LIKE a_expr */ +#line 11790 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("not like"),(yyvsp[0].str)); } -#line 50358 "preproc.c" /* yacc.c:1652 */ +#line 51023 "preproc.c" break; - case 1981: -#line 11794 "preproc.y" /* yacc.c:1652 */ - { + case 1981: /* a_expr: a_expr NOT_LA LIKE a_expr ESCAPE a_expr */ +#line 11794 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("not like"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 50366 "preproc.c" /* yacc.c:1652 */ +#line 51031 "preproc.c" break; - case 1982: -#line 11798 "preproc.y" /* yacc.c:1652 */ - { + case 1982: /* a_expr: a_expr ILIKE a_expr */ +#line 11798 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("ilike"),(yyvsp[0].str)); } -#line 50374 "preproc.c" /* yacc.c:1652 */ +#line 51039 "preproc.c" break; - case 1983: -#line 11802 "preproc.y" /* yacc.c:1652 */ - { + case 1983: /* a_expr: a_expr ILIKE a_expr ESCAPE a_expr */ +#line 11802 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("ilike"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 50382 "preproc.c" /* yacc.c:1652 */ +#line 51047 "preproc.c" break; - case 1984: -#line 11806 "preproc.y" /* yacc.c:1652 */ - { + case 1984: /* a_expr: a_expr NOT_LA ILIKE a_expr */ +#line 11806 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("not ilike"),(yyvsp[0].str)); } -#line 50390 "preproc.c" /* yacc.c:1652 */ +#line 51055 "preproc.c" break; - case 1985: -#line 11810 "preproc.y" /* yacc.c:1652 */ - { + case 1985: /* a_expr: a_expr NOT_LA ILIKE a_expr ESCAPE a_expr */ +#line 11810 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("not ilike"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 50398 "preproc.c" /* yacc.c:1652 */ +#line 51063 "preproc.c" break; - case 1986: -#line 11814 "preproc.y" /* yacc.c:1652 */ - { + case 1986: /* a_expr: a_expr SIMILAR TO a_expr */ +#line 11814 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("similar to"),(yyvsp[0].str)); } -#line 50406 "preproc.c" /* yacc.c:1652 */ +#line 51071 "preproc.c" break; - case 1987: -#line 11818 "preproc.y" /* yacc.c:1652 */ - { + case 1987: /* a_expr: a_expr SIMILAR TO a_expr ESCAPE a_expr */ +#line 11818 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("similar to"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 50414 "preproc.c" /* yacc.c:1652 */ +#line 51079 "preproc.c" break; - case 1988: -#line 11822 "preproc.y" /* yacc.c:1652 */ - { + case 1988: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr */ +#line 11822 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup("not similar to"),(yyvsp[0].str)); } -#line 50422 "preproc.c" /* yacc.c:1652 */ +#line 51087 "preproc.c" break; - case 1989: -#line 11826 "preproc.y" /* yacc.c:1652 */ - { + case 1989: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr ESCAPE a_expr */ +#line 11826 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-6].str),mm_strdup("not similar to"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 50430 "preproc.c" /* yacc.c:1652 */ +#line 51095 "preproc.c" break; - case 1990: -#line 11830 "preproc.y" /* yacc.c:1652 */ - { + case 1990: /* a_expr: a_expr IS NULL_P */ +#line 11830 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is null")); } -#line 50438 "preproc.c" /* yacc.c:1652 */ +#line 51103 "preproc.c" break; - case 1991: -#line 11834 "preproc.y" /* yacc.c:1652 */ - { + case 1991: /* a_expr: a_expr ISNULL */ +#line 11834 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("isnull")); } -#line 50446 "preproc.c" /* yacc.c:1652 */ +#line 51111 "preproc.c" break; - case 1992: -#line 11838 "preproc.y" /* yacc.c:1652 */ - { + case 1992: /* a_expr: a_expr IS NOT NULL_P */ +#line 11838 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not null")); } -#line 50454 "preproc.c" /* yacc.c:1652 */ +#line 51119 "preproc.c" break; - case 1993: -#line 11842 "preproc.y" /* yacc.c:1652 */ - { + case 1993: /* a_expr: a_expr NOTNULL */ +#line 11842 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("notnull")); } -#line 50462 "preproc.c" /* yacc.c:1652 */ +#line 51127 "preproc.c" break; - case 1994: -#line 11846 "preproc.y" /* yacc.c:1652 */ - { + case 1994: /* a_expr: row OVERLAPS row */ +#line 11846 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("overlaps"),(yyvsp[0].str)); } -#line 50470 "preproc.c" /* yacc.c:1652 */ +#line 51135 "preproc.c" break; - case 1995: -#line 11850 "preproc.y" /* yacc.c:1652 */ - { + case 1995: /* a_expr: a_expr IS TRUE_P */ +#line 11850 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is true")); } -#line 50478 "preproc.c" /* yacc.c:1652 */ +#line 51143 "preproc.c" break; - case 1996: -#line 11854 "preproc.y" /* yacc.c:1652 */ - { + case 1996: /* a_expr: a_expr IS NOT TRUE_P */ +#line 11854 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not true")); } -#line 50486 "preproc.c" /* yacc.c:1652 */ +#line 51151 "preproc.c" break; - case 1997: -#line 11858 "preproc.y" /* yacc.c:1652 */ - { + case 1997: /* a_expr: a_expr IS FALSE_P */ +#line 11858 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is false")); } -#line 50494 "preproc.c" /* yacc.c:1652 */ +#line 51159 "preproc.c" break; - case 1998: -#line 11862 "preproc.y" /* yacc.c:1652 */ - { + case 1998: /* a_expr: a_expr IS NOT FALSE_P */ +#line 11862 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not false")); } -#line 50502 "preproc.c" /* yacc.c:1652 */ +#line 51167 "preproc.c" break; - case 1999: -#line 11866 "preproc.y" /* yacc.c:1652 */ - { + case 1999: /* a_expr: a_expr IS UNKNOWN */ +#line 11866 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is unknown")); } -#line 50510 "preproc.c" /* yacc.c:1652 */ +#line 51175 "preproc.c" break; - case 2000: -#line 11870 "preproc.y" /* yacc.c:1652 */ - { + case 2000: /* a_expr: a_expr IS NOT UNKNOWN */ +#line 11870 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not unknown")); } -#line 50518 "preproc.c" /* yacc.c:1652 */ +#line 51183 "preproc.c" break; - case 2001: -#line 11874 "preproc.y" /* yacc.c:1652 */ - { + case 2001: /* a_expr: a_expr IS DISTINCT FROM a_expr */ +#line 11874 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup("is distinct from"),(yyvsp[0].str)); } -#line 50526 "preproc.c" /* yacc.c:1652 */ +#line 51191 "preproc.c" break; - case 2002: -#line 11878 "preproc.y" /* yacc.c:1652 */ - { + case 2002: /* a_expr: a_expr IS NOT DISTINCT FROM a_expr */ +#line 11878 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-5].str),mm_strdup("is not distinct from"),(yyvsp[0].str)); } -#line 50534 "preproc.c" /* yacc.c:1652 */ +#line 51199 "preproc.c" break; - case 2003: -#line 11882 "preproc.y" /* yacc.c:1652 */ - { + case 2003: /* a_expr: a_expr IS OF '(' type_list ')' */ +#line 11882 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-5].str),mm_strdup("is of ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50542 "preproc.c" /* yacc.c:1652 */ +#line 51207 "preproc.c" break; - case 2004: -#line 11886 "preproc.y" /* yacc.c:1652 */ - { + case 2004: /* a_expr: a_expr IS NOT OF '(' type_list ')' */ +#line 11886 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-6].str),mm_strdup("is not of ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50550 "preproc.c" /* yacc.c:1652 */ +#line 51215 "preproc.c" break; - case 2005: -#line 11890 "preproc.y" /* yacc.c:1652 */ - { + case 2005: /* a_expr: a_expr BETWEEN opt_asymmetric b_expr AND a_expr */ +#line 11890 "preproc.y" + { (yyval.str) = cat_str(6,(yyvsp[-5].str),mm_strdup("between"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 50558 "preproc.c" /* yacc.c:1652 */ +#line 51223 "preproc.c" break; - case 2006: -#line 11894 "preproc.y" /* yacc.c:1652 */ - { + case 2006: /* a_expr: a_expr NOT_LA BETWEEN opt_asymmetric b_expr AND a_expr */ +#line 11894 "preproc.y" + { (yyval.str) = cat_str(6,(yyvsp[-6].str),mm_strdup("not between"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 50566 "preproc.c" /* yacc.c:1652 */ +#line 51231 "preproc.c" break; - case 2007: -#line 11898 "preproc.y" /* yacc.c:1652 */ - { + case 2007: /* a_expr: a_expr BETWEEN SYMMETRIC b_expr AND a_expr */ +#line 11898 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("between symmetric"),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 50574 "preproc.c" /* yacc.c:1652 */ +#line 51239 "preproc.c" break; - case 2008: -#line 11902 "preproc.y" /* yacc.c:1652 */ - { + case 2008: /* a_expr: a_expr NOT_LA BETWEEN SYMMETRIC b_expr AND a_expr */ +#line 11902 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-6].str),mm_strdup("not between symmetric"),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 50582 "preproc.c" /* yacc.c:1652 */ +#line 51247 "preproc.c" break; - case 2009: -#line 11906 "preproc.y" /* yacc.c:1652 */ - { + case 2009: /* a_expr: a_expr IN_P in_expr */ +#line 11906 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("in"),(yyvsp[0].str)); } -#line 50590 "preproc.c" /* yacc.c:1652 */ +#line 51255 "preproc.c" break; - case 2010: -#line 11910 "preproc.y" /* yacc.c:1652 */ - { + case 2010: /* a_expr: a_expr NOT_LA IN_P in_expr */ +#line 11910 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("not in"),(yyvsp[0].str)); } -#line 50598 "preproc.c" /* yacc.c:1652 */ +#line 51263 "preproc.c" break; - case 2011: -#line 11914 "preproc.y" /* yacc.c:1652 */ - { + case 2011: /* a_expr: a_expr subquery_Op sub_type select_with_parens */ +#line 11914 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50606 "preproc.c" /* yacc.c:1652 */ +#line 51271 "preproc.c" break; - case 2012: -#line 11918 "preproc.y" /* yacc.c:1652 */ - { + case 2012: /* a_expr: a_expr subquery_Op sub_type '(' a_expr ')' */ +#line 11918 "preproc.y" + { (yyval.str) = cat_str(6,(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50614 "preproc.c" /* yacc.c:1652 */ +#line 51279 "preproc.c" break; - case 2013: -#line 11922 "preproc.y" /* yacc.c:1652 */ - { + case 2013: /* a_expr: UNIQUE select_with_parens */ +#line 11922 "preproc.y" + { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(2,mm_strdup("unique"),(yyvsp[0].str)); } -#line 50623 "preproc.c" /* yacc.c:1652 */ +#line 51288 "preproc.c" break; - case 2014: -#line 11927 "preproc.y" /* yacc.c:1652 */ - { + case 2014: /* a_expr: a_expr IS DOCUMENT_P */ +#line 11927 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is document")); } -#line 50631 "preproc.c" /* yacc.c:1652 */ +#line 51296 "preproc.c" break; - case 2015: -#line 11931 "preproc.y" /* yacc.c:1652 */ - { + case 2015: /* a_expr: a_expr IS NOT DOCUMENT_P */ +#line 11931 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not document")); } -#line 50639 "preproc.c" /* yacc.c:1652 */ +#line 51304 "preproc.c" break; - case 2016: -#line 11935 "preproc.y" /* yacc.c:1652 */ - { + case 2016: /* a_expr: a_expr IS NORMALIZED */ +#line 11935 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is normalized")); } -#line 50647 "preproc.c" /* yacc.c:1652 */ +#line 51312 "preproc.c" break; - case 2017: -#line 11939 "preproc.y" /* yacc.c:1652 */ - { + case 2017: /* a_expr: a_expr IS unicode_normal_form NORMALIZED */ +#line 11939 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("is"),(yyvsp[-1].str),mm_strdup("normalized")); } -#line 50655 "preproc.c" /* yacc.c:1652 */ +#line 51320 "preproc.c" break; - case 2018: -#line 11943 "preproc.y" /* yacc.c:1652 */ - { + case 2018: /* a_expr: a_expr IS NOT NORMALIZED */ +#line 11943 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not normalized")); } -#line 50663 "preproc.c" /* yacc.c:1652 */ +#line 51328 "preproc.c" break; - case 2019: -#line 11947 "preproc.y" /* yacc.c:1652 */ - { + case 2019: /* a_expr: a_expr IS NOT unicode_normal_form NORMALIZED */ +#line 11947 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-4].str),mm_strdup("is not"),(yyvsp[-1].str),mm_strdup("normalized")); } -#line 50671 "preproc.c" /* yacc.c:1652 */ +#line 51336 "preproc.c" break; - case 2020: -#line 11951 "preproc.y" /* yacc.c:1652 */ - { + case 2020: /* a_expr: DEFAULT */ +#line 11951 "preproc.y" + { (yyval.str) = mm_strdup("default"); } -#line 50679 "preproc.c" /* yacc.c:1652 */ +#line 51344 "preproc.c" break; - case 2021: -#line 11959 "preproc.y" /* yacc.c:1652 */ - { + case 2021: /* b_expr: c_expr */ +#line 11959 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50687 "preproc.c" /* yacc.c:1652 */ +#line 51352 "preproc.c" break; - case 2022: -#line 11963 "preproc.y" /* yacc.c:1652 */ - { + case 2022: /* b_expr: b_expr TYPECAST Typename */ +#line 11963 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("::"),(yyvsp[0].str)); } -#line 50695 "preproc.c" /* yacc.c:1652 */ +#line 51360 "preproc.c" break; - case 2023: -#line 11967 "preproc.y" /* yacc.c:1652 */ - { + case 2023: /* b_expr: '+' b_expr */ +#line 11967 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 50703 "preproc.c" /* yacc.c:1652 */ +#line 51368 "preproc.c" break; - case 2024: -#line 11971 "preproc.y" /* yacc.c:1652 */ - { + case 2024: /* b_expr: '-' b_expr */ +#line 11971 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 50711 "preproc.c" /* yacc.c:1652 */ +#line 51376 "preproc.c" break; - case 2025: -#line 11975 "preproc.y" /* yacc.c:1652 */ - { + case 2025: /* b_expr: b_expr '+' b_expr */ +#line 11975 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("+"),(yyvsp[0].str)); } -#line 50719 "preproc.c" /* yacc.c:1652 */ +#line 51384 "preproc.c" break; - case 2026: -#line 11979 "preproc.y" /* yacc.c:1652 */ - { + case 2026: /* b_expr: b_expr '-' b_expr */ +#line 11979 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("-"),(yyvsp[0].str)); } -#line 50727 "preproc.c" /* yacc.c:1652 */ +#line 51392 "preproc.c" break; - case 2027: -#line 11983 "preproc.y" /* yacc.c:1652 */ - { + case 2027: /* b_expr: b_expr '*' b_expr */ +#line 11983 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("*"),(yyvsp[0].str)); } -#line 50735 "preproc.c" /* yacc.c:1652 */ +#line 51400 "preproc.c" break; - case 2028: -#line 11987 "preproc.y" /* yacc.c:1652 */ - { + case 2028: /* b_expr: b_expr '/' b_expr */ +#line 11987 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("/"),(yyvsp[0].str)); } -#line 50743 "preproc.c" /* yacc.c:1652 */ +#line 51408 "preproc.c" break; - case 2029: -#line 11991 "preproc.y" /* yacc.c:1652 */ - { + case 2029: /* b_expr: b_expr '%' b_expr */ +#line 11991 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("%"),(yyvsp[0].str)); } -#line 50751 "preproc.c" /* yacc.c:1652 */ +#line 51416 "preproc.c" break; - case 2030: -#line 11995 "preproc.y" /* yacc.c:1652 */ - { + case 2030: /* b_expr: b_expr '^' b_expr */ +#line 11995 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("^"),(yyvsp[0].str)); } -#line 50759 "preproc.c" /* yacc.c:1652 */ +#line 51424 "preproc.c" break; - case 2031: -#line 11999 "preproc.y" /* yacc.c:1652 */ - { + case 2031: /* b_expr: b_expr '<' b_expr */ +#line 11999 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<"),(yyvsp[0].str)); } -#line 50767 "preproc.c" /* yacc.c:1652 */ +#line 51432 "preproc.c" break; - case 2032: -#line 12003 "preproc.y" /* yacc.c:1652 */ - { + case 2032: /* b_expr: b_expr '>' b_expr */ +#line 12003 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(">"),(yyvsp[0].str)); } -#line 50775 "preproc.c" /* yacc.c:1652 */ +#line 51440 "preproc.c" break; - case 2033: -#line 12007 "preproc.y" /* yacc.c:1652 */ - { + case 2033: /* b_expr: b_expr '=' b_expr */ +#line 12007 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 50783 "preproc.c" /* yacc.c:1652 */ +#line 51448 "preproc.c" break; - case 2034: -#line 12011 "preproc.y" /* yacc.c:1652 */ - { + case 2034: /* b_expr: b_expr LESS_EQUALS b_expr */ +#line 12011 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<="),(yyvsp[0].str)); } -#line 50791 "preproc.c" /* yacc.c:1652 */ +#line 51456 "preproc.c" break; - case 2035: -#line 12015 "preproc.y" /* yacc.c:1652 */ - { + case 2035: /* b_expr: b_expr GREATER_EQUALS b_expr */ +#line 12015 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(">="),(yyvsp[0].str)); } -#line 50799 "preproc.c" /* yacc.c:1652 */ +#line 51464 "preproc.c" break; - case 2036: -#line 12019 "preproc.y" /* yacc.c:1652 */ - { + case 2036: /* b_expr: b_expr NOT_EQUALS b_expr */ +#line 12019 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<>"),(yyvsp[0].str)); } -#line 50807 "preproc.c" /* yacc.c:1652 */ +#line 51472 "preproc.c" break; - case 2037: -#line 12023 "preproc.y" /* yacc.c:1652 */ - { + case 2037: /* b_expr: b_expr qual_Op b_expr */ +#line 12023 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50815 "preproc.c" /* yacc.c:1652 */ +#line 51480 "preproc.c" break; - case 2038: -#line 12027 "preproc.y" /* yacc.c:1652 */ - { + case 2038: /* b_expr: qual_Op b_expr */ +#line 12027 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50823 "preproc.c" /* yacc.c:1652 */ +#line 51488 "preproc.c" break; - case 2039: -#line 12031 "preproc.y" /* yacc.c:1652 */ - { + case 2039: /* b_expr: b_expr qual_Op */ +#line 12031 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50831 "preproc.c" /* yacc.c:1652 */ +#line 51496 "preproc.c" break; - case 2040: -#line 12035 "preproc.y" /* yacc.c:1652 */ - { + case 2040: /* b_expr: b_expr IS DISTINCT FROM b_expr */ +#line 12035 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup("is distinct from"),(yyvsp[0].str)); } -#line 50839 "preproc.c" /* yacc.c:1652 */ +#line 51504 "preproc.c" break; - case 2041: -#line 12039 "preproc.y" /* yacc.c:1652 */ - { + case 2041: /* b_expr: b_expr IS NOT DISTINCT FROM b_expr */ +#line 12039 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-5].str),mm_strdup("is not distinct from"),(yyvsp[0].str)); } -#line 50847 "preproc.c" /* yacc.c:1652 */ +#line 51512 "preproc.c" break; - case 2042: -#line 12043 "preproc.y" /* yacc.c:1652 */ - { + case 2042: /* b_expr: b_expr IS OF '(' type_list ')' */ +#line 12043 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-5].str),mm_strdup("is of ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50855 "preproc.c" /* yacc.c:1652 */ +#line 51520 "preproc.c" break; - case 2043: -#line 12047 "preproc.y" /* yacc.c:1652 */ - { + case 2043: /* b_expr: b_expr IS NOT OF '(' type_list ')' */ +#line 12047 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-6].str),mm_strdup("is not of ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50863 "preproc.c" /* yacc.c:1652 */ +#line 51528 "preproc.c" break; - case 2044: -#line 12051 "preproc.y" /* yacc.c:1652 */ - { + case 2044: /* b_expr: b_expr IS DOCUMENT_P */ +#line 12051 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is document")); } -#line 50871 "preproc.c" /* yacc.c:1652 */ +#line 51536 "preproc.c" break; - case 2045: -#line 12055 "preproc.y" /* yacc.c:1652 */ - { + case 2045: /* b_expr: b_expr IS NOT DOCUMENT_P */ +#line 12055 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not document")); } -#line 50879 "preproc.c" /* yacc.c:1652 */ +#line 51544 "preproc.c" break; - case 2046: -#line 12063 "preproc.y" /* yacc.c:1652 */ - { + case 2046: /* c_expr: columnref */ +#line 12063 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50887 "preproc.c" /* yacc.c:1652 */ +#line 51552 "preproc.c" break; - case 2047: -#line 12067 "preproc.y" /* yacc.c:1652 */ - { + case 2047: /* c_expr: AexprConst */ +#line 12067 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50895 "preproc.c" /* yacc.c:1652 */ +#line 51560 "preproc.c" break; - case 2048: -#line 12071 "preproc.y" /* yacc.c:1652 */ - { + case 2048: /* c_expr: ecpg_param opt_indirection */ +#line 12071 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50903 "preproc.c" /* yacc.c:1652 */ +#line 51568 "preproc.c" break; - case 2049: -#line 12075 "preproc.y" /* yacc.c:1652 */ - { + case 2049: /* c_expr: '(' a_expr ')' opt_indirection */ +#line 12075 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 50911 "preproc.c" /* yacc.c:1652 */ +#line 51576 "preproc.c" break; - case 2050: -#line 12079 "preproc.y" /* yacc.c:1652 */ - { + case 2050: /* c_expr: case_expr */ +#line 12079 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50919 "preproc.c" /* yacc.c:1652 */ +#line 51584 "preproc.c" break; - case 2051: -#line 12083 "preproc.y" /* yacc.c:1652 */ - { + case 2051: /* c_expr: func_expr */ +#line 12083 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50927 "preproc.c" /* yacc.c:1652 */ +#line 51592 "preproc.c" break; - case 2052: -#line 12087 "preproc.y" /* yacc.c:1652 */ - { + case 2052: /* c_expr: select_with_parens */ +#line 12087 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50935 "preproc.c" /* yacc.c:1652 */ +#line 51600 "preproc.c" break; - case 2053: -#line 12091 "preproc.y" /* yacc.c:1652 */ - { + case 2053: /* c_expr: select_with_parens indirection */ +#line 12091 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50943 "preproc.c" /* yacc.c:1652 */ +#line 51608 "preproc.c" break; - case 2054: -#line 12095 "preproc.y" /* yacc.c:1652 */ - { + case 2054: /* c_expr: EXISTS select_with_parens */ +#line 12095 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("exists"),(yyvsp[0].str)); } -#line 50951 "preproc.c" /* yacc.c:1652 */ +#line 51616 "preproc.c" break; - case 2055: -#line 12099 "preproc.y" /* yacc.c:1652 */ - { + case 2055: /* c_expr: ARRAY select_with_parens */ +#line 12099 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("array"),(yyvsp[0].str)); } -#line 50959 "preproc.c" /* yacc.c:1652 */ +#line 51624 "preproc.c" break; - case 2056: -#line 12103 "preproc.y" /* yacc.c:1652 */ - { + case 2056: /* c_expr: ARRAY array_expr */ +#line 12103 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("array"),(yyvsp[0].str)); } -#line 50967 "preproc.c" /* yacc.c:1652 */ +#line 51632 "preproc.c" break; - case 2057: -#line 12107 "preproc.y" /* yacc.c:1652 */ - { + case 2057: /* c_expr: explicit_row */ +#line 12107 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50975 "preproc.c" /* yacc.c:1652 */ +#line 51640 "preproc.c" break; - case 2058: -#line 12111 "preproc.y" /* yacc.c:1652 */ - { + case 2058: /* c_expr: implicit_row */ +#line 12111 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 50983 "preproc.c" /* yacc.c:1652 */ +#line 51648 "preproc.c" break; - case 2059: -#line 12115 "preproc.y" /* yacc.c:1652 */ - { + case 2059: /* c_expr: GROUPING '(' expr_list ')' */ +#line 12115 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("grouping ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50991 "preproc.c" /* yacc.c:1652 */ +#line 51656 "preproc.c" break; - case 2060: -#line 12123 "preproc.y" /* yacc.c:1652 */ - { + case 2060: /* func_application: func_name '(' ')' */ +#line 12123 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("( )")); } -#line 50999 "preproc.c" /* yacc.c:1652 */ +#line 51664 "preproc.c" break; - case 2061: -#line 12127 "preproc.y" /* yacc.c:1652 */ - { + case 2061: /* func_application: func_name '(' func_arg_list opt_sort_clause ')' */ +#line 12127 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 51007 "preproc.c" /* yacc.c:1652 */ +#line 51672 "preproc.c" break; - case 2062: -#line 12131 "preproc.y" /* yacc.c:1652 */ - { + case 2062: /* func_application: func_name '(' VARIADIC func_arg_expr opt_sort_clause ')' */ +#line 12131 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("( variadic"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 51015 "preproc.c" /* yacc.c:1652 */ +#line 51680 "preproc.c" break; - case 2063: -#line 12135 "preproc.y" /* yacc.c:1652 */ - { + case 2063: /* func_application: func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause ')' */ +#line 12135 "preproc.y" + { (yyval.str) = cat_str(7,(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(", variadic"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 51023 "preproc.c" /* yacc.c:1652 */ +#line 51688 "preproc.c" break; - case 2064: -#line 12139 "preproc.y" /* yacc.c:1652 */ - { + case 2064: /* func_application: func_name '(' ALL func_arg_list opt_sort_clause ')' */ +#line 12139 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("( all"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 51031 "preproc.c" /* yacc.c:1652 */ +#line 51696 "preproc.c" break; - case 2065: -#line 12143 "preproc.y" /* yacc.c:1652 */ - { + case 2065: /* func_application: func_name '(' DISTINCT func_arg_list opt_sort_clause ')' */ +#line 12143 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("( distinct"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 51039 "preproc.c" /* yacc.c:1652 */ +#line 51704 "preproc.c" break; - case 2066: -#line 12147 "preproc.y" /* yacc.c:1652 */ - { + case 2066: /* func_application: func_name '(' '*' ')' */ +#line 12147 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("( * )")); } -#line 51047 "preproc.c" /* yacc.c:1652 */ +#line 51712 "preproc.c" break; - case 2067: -#line 12155 "preproc.y" /* yacc.c:1652 */ - { + case 2067: /* func_expr: func_application within_group_clause filter_clause over_clause */ +#line 12155 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51055 "preproc.c" /* yacc.c:1652 */ +#line 51720 "preproc.c" break; - case 2068: -#line 12159 "preproc.y" /* yacc.c:1652 */ - { + case 2068: /* func_expr: func_expr_common_subexpr */ +#line 12159 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51063 "preproc.c" /* yacc.c:1652 */ +#line 51728 "preproc.c" break; - case 2069: -#line 12167 "preproc.y" /* yacc.c:1652 */ - { + case 2069: /* func_expr_windowless: func_application */ +#line 12167 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51071 "preproc.c" /* yacc.c:1652 */ +#line 51736 "preproc.c" break; - case 2070: -#line 12171 "preproc.y" /* yacc.c:1652 */ - { + case 2070: /* func_expr_windowless: func_expr_common_subexpr */ +#line 12171 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51079 "preproc.c" /* yacc.c:1652 */ +#line 51744 "preproc.c" break; - case 2071: -#line 12179 "preproc.y" /* yacc.c:1652 */ - { + case 2071: /* func_expr_common_subexpr: COLLATION FOR '(' a_expr ')' */ +#line 12179 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("collation for ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51087 "preproc.c" /* yacc.c:1652 */ +#line 51752 "preproc.c" break; - case 2072: -#line 12183 "preproc.y" /* yacc.c:1652 */ - { + case 2072: /* func_expr_common_subexpr: CURRENT_DATE */ +#line 12183 "preproc.y" + { (yyval.str) = mm_strdup("current_date"); } -#line 51095 "preproc.c" /* yacc.c:1652 */ +#line 51760 "preproc.c" break; - case 2073: -#line 12187 "preproc.y" /* yacc.c:1652 */ - { + case 2073: /* func_expr_common_subexpr: CURRENT_TIME */ +#line 12187 "preproc.y" + { (yyval.str) = mm_strdup("current_time"); } -#line 51103 "preproc.c" /* yacc.c:1652 */ +#line 51768 "preproc.c" break; - case 2074: -#line 12191 "preproc.y" /* yacc.c:1652 */ - { + case 2074: /* func_expr_common_subexpr: CURRENT_TIME '(' Iconst ')' */ +#line 12191 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("current_time ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51111 "preproc.c" /* yacc.c:1652 */ +#line 51776 "preproc.c" break; - case 2075: -#line 12195 "preproc.y" /* yacc.c:1652 */ - { + case 2075: /* func_expr_common_subexpr: CURRENT_TIMESTAMP */ +#line 12195 "preproc.y" + { (yyval.str) = mm_strdup("current_timestamp"); } -#line 51119 "preproc.c" /* yacc.c:1652 */ +#line 51784 "preproc.c" break; - case 2076: -#line 12199 "preproc.y" /* yacc.c:1652 */ - { + case 2076: /* func_expr_common_subexpr: CURRENT_TIMESTAMP '(' Iconst ')' */ +#line 12199 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("current_timestamp ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51127 "preproc.c" /* yacc.c:1652 */ +#line 51792 "preproc.c" break; - case 2077: -#line 12203 "preproc.y" /* yacc.c:1652 */ - { + case 2077: /* func_expr_common_subexpr: LOCALTIME */ +#line 12203 "preproc.y" + { (yyval.str) = mm_strdup("localtime"); } -#line 51135 "preproc.c" /* yacc.c:1652 */ +#line 51800 "preproc.c" break; - case 2078: -#line 12207 "preproc.y" /* yacc.c:1652 */ - { + case 2078: /* func_expr_common_subexpr: LOCALTIME '(' Iconst ')' */ +#line 12207 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("localtime ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51143 "preproc.c" /* yacc.c:1652 */ +#line 51808 "preproc.c" break; - case 2079: -#line 12211 "preproc.y" /* yacc.c:1652 */ - { + case 2079: /* func_expr_common_subexpr: LOCALTIMESTAMP */ +#line 12211 "preproc.y" + { (yyval.str) = mm_strdup("localtimestamp"); } -#line 51151 "preproc.c" /* yacc.c:1652 */ +#line 51816 "preproc.c" break; - case 2080: -#line 12215 "preproc.y" /* yacc.c:1652 */ - { + case 2080: /* func_expr_common_subexpr: LOCALTIMESTAMP '(' Iconst ')' */ +#line 12215 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("localtimestamp ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51159 "preproc.c" /* yacc.c:1652 */ +#line 51824 "preproc.c" break; - case 2081: -#line 12219 "preproc.y" /* yacc.c:1652 */ - { + case 2081: /* func_expr_common_subexpr: CURRENT_ROLE */ +#line 12219 "preproc.y" + { (yyval.str) = mm_strdup("current_role"); } -#line 51167 "preproc.c" /* yacc.c:1652 */ +#line 51832 "preproc.c" break; - case 2082: -#line 12223 "preproc.y" /* yacc.c:1652 */ - { + case 2082: /* func_expr_common_subexpr: CURRENT_USER */ +#line 12223 "preproc.y" + { (yyval.str) = mm_strdup("current_user"); } -#line 51175 "preproc.c" /* yacc.c:1652 */ +#line 51840 "preproc.c" break; - case 2083: -#line 12227 "preproc.y" /* yacc.c:1652 */ - { + case 2083: /* func_expr_common_subexpr: SESSION_USER */ +#line 12227 "preproc.y" + { (yyval.str) = mm_strdup("session_user"); } -#line 51183 "preproc.c" /* yacc.c:1652 */ +#line 51848 "preproc.c" break; - case 2084: -#line 12231 "preproc.y" /* yacc.c:1652 */ - { + case 2084: /* func_expr_common_subexpr: USER */ +#line 12231 "preproc.y" + { (yyval.str) = mm_strdup("user"); } -#line 51191 "preproc.c" /* yacc.c:1652 */ +#line 51856 "preproc.c" break; - case 2085: -#line 12235 "preproc.y" /* yacc.c:1652 */ - { + case 2085: /* func_expr_common_subexpr: CURRENT_CATALOG */ +#line 12235 "preproc.y" + { (yyval.str) = mm_strdup("current_catalog"); } -#line 51199 "preproc.c" /* yacc.c:1652 */ +#line 51864 "preproc.c" break; - case 2086: -#line 12239 "preproc.y" /* yacc.c:1652 */ - { + case 2086: /* func_expr_common_subexpr: CURRENT_SCHEMA */ +#line 12239 "preproc.y" + { (yyval.str) = mm_strdup("current_schema"); } -#line 51207 "preproc.c" /* yacc.c:1652 */ +#line 51872 "preproc.c" break; - case 2087: -#line 12243 "preproc.y" /* yacc.c:1652 */ - { + case 2087: /* func_expr_common_subexpr: CAST '(' a_expr AS Typename ')' */ +#line 12243 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("cast ("),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),mm_strdup(")")); } -#line 51215 "preproc.c" /* yacc.c:1652 */ +#line 51880 "preproc.c" break; - case 2088: -#line 12247 "preproc.y" /* yacc.c:1652 */ - { + case 2088: /* func_expr_common_subexpr: EXTRACT '(' extract_list ')' */ +#line 12247 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("extract ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51223 "preproc.c" /* yacc.c:1652 */ +#line 51888 "preproc.c" break; - case 2089: -#line 12251 "preproc.y" /* yacc.c:1652 */ - { + case 2089: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ')' */ +#line 12251 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("normalize ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51231 "preproc.c" /* yacc.c:1652 */ +#line 51896 "preproc.c" break; - case 2090: -#line 12255 "preproc.y" /* yacc.c:1652 */ - { + case 2090: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ',' unicode_normal_form ')' */ +#line 12255 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("normalize ("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 51239 "preproc.c" /* yacc.c:1652 */ +#line 51904 "preproc.c" break; - case 2091: -#line 12259 "preproc.y" /* yacc.c:1652 */ - { + case 2091: /* func_expr_common_subexpr: OVERLAY '(' overlay_list ')' */ +#line 12259 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("overlay ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51247 "preproc.c" /* yacc.c:1652 */ +#line 51912 "preproc.c" break; - case 2092: -#line 12263 "preproc.y" /* yacc.c:1652 */ - { + case 2092: /* func_expr_common_subexpr: POSITION '(' position_list ')' */ +#line 12263 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("position ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51255 "preproc.c" /* yacc.c:1652 */ +#line 51920 "preproc.c" break; - case 2093: -#line 12267 "preproc.y" /* yacc.c:1652 */ - { + case 2093: /* func_expr_common_subexpr: SUBSTRING '(' substr_list ')' */ +#line 12267 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("substring ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51263 "preproc.c" /* yacc.c:1652 */ +#line 51928 "preproc.c" break; - case 2094: -#line 12271 "preproc.y" /* yacc.c:1652 */ - { + case 2094: /* func_expr_common_subexpr: TREAT '(' a_expr AS Typename ')' */ +#line 12271 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("treat ("),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),mm_strdup(")")); } -#line 51271 "preproc.c" /* yacc.c:1652 */ +#line 51936 "preproc.c" break; - case 2095: -#line 12275 "preproc.y" /* yacc.c:1652 */ - { + case 2095: /* func_expr_common_subexpr: TRIM '(' BOTH trim_list ')' */ +#line 12275 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("trim ( both"),(yyvsp[-1].str),mm_strdup(")")); } -#line 51279 "preproc.c" /* yacc.c:1652 */ +#line 51944 "preproc.c" break; - case 2096: -#line 12279 "preproc.y" /* yacc.c:1652 */ - { + case 2096: /* func_expr_common_subexpr: TRIM '(' LEADING trim_list ')' */ +#line 12279 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("trim ( leading"),(yyvsp[-1].str),mm_strdup(")")); } -#line 51287 "preproc.c" /* yacc.c:1652 */ +#line 51952 "preproc.c" break; - case 2097: -#line 12283 "preproc.y" /* yacc.c:1652 */ - { + case 2097: /* func_expr_common_subexpr: TRIM '(' TRAILING trim_list ')' */ +#line 12283 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("trim ( trailing"),(yyvsp[-1].str),mm_strdup(")")); } -#line 51295 "preproc.c" /* yacc.c:1652 */ +#line 51960 "preproc.c" break; - case 2098: -#line 12287 "preproc.y" /* yacc.c:1652 */ - { + case 2098: /* func_expr_common_subexpr: TRIM '(' trim_list ')' */ +#line 12287 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("trim ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51303 "preproc.c" /* yacc.c:1652 */ +#line 51968 "preproc.c" break; - case 2099: -#line 12291 "preproc.y" /* yacc.c:1652 */ - { + case 2099: /* func_expr_common_subexpr: NULLIF '(' a_expr ',' a_expr ')' */ +#line 12291 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("nullif ("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 51311 "preproc.c" /* yacc.c:1652 */ +#line 51976 "preproc.c" break; - case 2100: -#line 12295 "preproc.y" /* yacc.c:1652 */ - { + case 2100: /* func_expr_common_subexpr: COALESCE '(' expr_list ')' */ +#line 12295 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("coalesce ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51319 "preproc.c" /* yacc.c:1652 */ +#line 51984 "preproc.c" break; - case 2101: -#line 12299 "preproc.y" /* yacc.c:1652 */ - { + case 2101: /* func_expr_common_subexpr: GREATEST '(' expr_list ')' */ +#line 12299 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("greatest ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51327 "preproc.c" /* yacc.c:1652 */ +#line 51992 "preproc.c" break; - case 2102: -#line 12303 "preproc.y" /* yacc.c:1652 */ - { + case 2102: /* func_expr_common_subexpr: LEAST '(' expr_list ')' */ +#line 12303 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("least ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51335 "preproc.c" /* yacc.c:1652 */ +#line 52000 "preproc.c" break; - case 2103: -#line 12307 "preproc.y" /* yacc.c:1652 */ - { + case 2103: /* func_expr_common_subexpr: XMLCONCAT '(' expr_list ')' */ +#line 12307 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("xmlconcat ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51343 "preproc.c" /* yacc.c:1652 */ +#line 52008 "preproc.c" break; - case 2104: -#line 12311 "preproc.y" /* yacc.c:1652 */ - { + case 2104: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ')' */ +#line 12311 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("xmlelement ( name"),(yyvsp[-1].str),mm_strdup(")")); } -#line 51351 "preproc.c" /* yacc.c:1652 */ +#line 52016 "preproc.c" break; - case 2105: -#line 12315 "preproc.y" /* yacc.c:1652 */ - { + case 2105: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ')' */ +#line 12315 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("xmlelement ( name"),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 51359 "preproc.c" /* yacc.c:1652 */ +#line 52024 "preproc.c" break; - case 2106: -#line 12319 "preproc.y" /* yacc.c:1652 */ - { + case 2106: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' expr_list ')' */ +#line 12319 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("xmlelement ( name"),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 51367 "preproc.c" /* yacc.c:1652 */ +#line 52032 "preproc.c" break; - case 2107: -#line 12323 "preproc.y" /* yacc.c:1652 */ - { + case 2107: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ',' expr_list ')' */ +#line 12323 "preproc.y" + { (yyval.str) = cat_str(7,mm_strdup("xmlelement ( name"),(yyvsp[-5].str),mm_strdup(","),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 51375 "preproc.c" /* yacc.c:1652 */ +#line 52040 "preproc.c" break; - case 2108: -#line 12327 "preproc.y" /* yacc.c:1652 */ - { + case 2108: /* func_expr_common_subexpr: XMLEXISTS '(' c_expr xmlexists_argument ')' */ +#line 12327 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("xmlexists ("),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 51383 "preproc.c" /* yacc.c:1652 */ +#line 52048 "preproc.c" break; - case 2109: -#line 12331 "preproc.y" /* yacc.c:1652 */ - { + case 2109: /* func_expr_common_subexpr: XMLFOREST '(' xml_attribute_list ')' */ +#line 12331 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("xmlforest ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51391 "preproc.c" /* yacc.c:1652 */ +#line 52056 "preproc.c" break; - case 2110: -#line 12335 "preproc.y" /* yacc.c:1652 */ - { + case 2110: /* func_expr_common_subexpr: XMLPARSE '(' document_or_content a_expr xml_whitespace_option ')' */ +#line 12335 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("xmlparse ("),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 51399 "preproc.c" /* yacc.c:1652 */ +#line 52064 "preproc.c" break; - case 2111: -#line 12339 "preproc.y" /* yacc.c:1652 */ - { + case 2111: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ')' */ +#line 12339 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("xmlpi ( name"),(yyvsp[-1].str),mm_strdup(")")); } -#line 51407 "preproc.c" /* yacc.c:1652 */ +#line 52072 "preproc.c" break; - case 2112: -#line 12343 "preproc.y" /* yacc.c:1652 */ - { + case 2112: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ',' a_expr ')' */ +#line 12343 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("xmlpi ( name"),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 51415 "preproc.c" /* yacc.c:1652 */ +#line 52080 "preproc.c" break; - case 2113: -#line 12347 "preproc.y" /* yacc.c:1652 */ - { + case 2113: /* func_expr_common_subexpr: XMLROOT '(' a_expr ',' xml_root_version opt_xml_root_standalone ')' */ +#line 12347 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("xmlroot ("),(yyvsp[-4].str),mm_strdup(","),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 51423 "preproc.c" /* yacc.c:1652 */ +#line 52088 "preproc.c" break; - case 2114: -#line 12351 "preproc.y" /* yacc.c:1652 */ - { + case 2114: /* func_expr_common_subexpr: XMLSERIALIZE '(' document_or_content a_expr AS SimpleTypename ')' */ +#line 12351 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("xmlserialize ("),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),mm_strdup(")")); } -#line 51431 "preproc.c" /* yacc.c:1652 */ +#line 52096 "preproc.c" break; - case 2115: -#line 12359 "preproc.y" /* yacc.c:1652 */ - { + case 2115: /* xml_root_version: VERSION_P a_expr */ +#line 12359 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("version"),(yyvsp[0].str)); } -#line 51439 "preproc.c" /* yacc.c:1652 */ +#line 52104 "preproc.c" break; - case 2116: -#line 12363 "preproc.y" /* yacc.c:1652 */ - { + case 2116: /* xml_root_version: VERSION_P NO VALUE_P */ +#line 12363 "preproc.y" + { (yyval.str) = mm_strdup("version no value"); } -#line 51447 "preproc.c" /* yacc.c:1652 */ +#line 52112 "preproc.c" break; - case 2117: -#line 12371 "preproc.y" /* yacc.c:1652 */ - { + case 2117: /* opt_xml_root_standalone: ',' STANDALONE_P YES_P */ +#line 12371 "preproc.y" + { (yyval.str) = mm_strdup(", standalone yes"); } -#line 51455 "preproc.c" /* yacc.c:1652 */ +#line 52120 "preproc.c" break; - case 2118: -#line 12375 "preproc.y" /* yacc.c:1652 */ - { + case 2118: /* opt_xml_root_standalone: ',' STANDALONE_P NO */ +#line 12375 "preproc.y" + { (yyval.str) = mm_strdup(", standalone no"); } -#line 51463 "preproc.c" /* yacc.c:1652 */ +#line 52128 "preproc.c" break; - case 2119: -#line 12379 "preproc.y" /* yacc.c:1652 */ - { + case 2119: /* opt_xml_root_standalone: ',' STANDALONE_P NO VALUE_P */ +#line 12379 "preproc.y" + { (yyval.str) = mm_strdup(", standalone no value"); } -#line 51471 "preproc.c" /* yacc.c:1652 */ +#line 52136 "preproc.c" break; - case 2120: -#line 12383 "preproc.y" /* yacc.c:1652 */ - { + case 2120: /* opt_xml_root_standalone: %empty */ +#line 12383 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51478 "preproc.c" /* yacc.c:1652 */ +#line 52143 "preproc.c" break; - case 2121: -#line 12390 "preproc.y" /* yacc.c:1652 */ - { + case 2121: /* xml_attributes: XMLATTRIBUTES '(' xml_attribute_list ')' */ +#line 12390 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("xmlattributes ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51486 "preproc.c" /* yacc.c:1652 */ +#line 52151 "preproc.c" break; - case 2122: -#line 12398 "preproc.y" /* yacc.c:1652 */ - { + case 2122: /* xml_attribute_list: xml_attribute_el */ +#line 12398 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51494 "preproc.c" /* yacc.c:1652 */ +#line 52159 "preproc.c" break; - case 2123: -#line 12402 "preproc.y" /* yacc.c:1652 */ - { + case 2123: /* xml_attribute_list: xml_attribute_list ',' xml_attribute_el */ +#line 12402 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 51502 "preproc.c" /* yacc.c:1652 */ +#line 52167 "preproc.c" break; - case 2124: -#line 12410 "preproc.y" /* yacc.c:1652 */ - { + case 2124: /* xml_attribute_el: a_expr AS ColLabel */ +#line 12410 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 51510 "preproc.c" /* yacc.c:1652 */ +#line 52175 "preproc.c" break; - case 2125: -#line 12414 "preproc.y" /* yacc.c:1652 */ - { + case 2125: /* xml_attribute_el: a_expr */ +#line 12414 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51518 "preproc.c" /* yacc.c:1652 */ +#line 52183 "preproc.c" break; - case 2126: -#line 12422 "preproc.y" /* yacc.c:1652 */ - { + case 2126: /* document_or_content: DOCUMENT_P */ +#line 12422 "preproc.y" + { (yyval.str) = mm_strdup("document"); } -#line 51526 "preproc.c" /* yacc.c:1652 */ +#line 52191 "preproc.c" break; - case 2127: -#line 12426 "preproc.y" /* yacc.c:1652 */ - { + case 2127: /* document_or_content: CONTENT_P */ +#line 12426 "preproc.y" + { (yyval.str) = mm_strdup("content"); } -#line 51534 "preproc.c" /* yacc.c:1652 */ +#line 52199 "preproc.c" break; - case 2128: -#line 12434 "preproc.y" /* yacc.c:1652 */ - { + case 2128: /* xml_whitespace_option: PRESERVE WHITESPACE_P */ +#line 12434 "preproc.y" + { (yyval.str) = mm_strdup("preserve whitespace"); } -#line 51542 "preproc.c" /* yacc.c:1652 */ +#line 52207 "preproc.c" break; - case 2129: -#line 12438 "preproc.y" /* yacc.c:1652 */ - { + case 2129: /* xml_whitespace_option: STRIP_P WHITESPACE_P */ +#line 12438 "preproc.y" + { (yyval.str) = mm_strdup("strip whitespace"); } -#line 51550 "preproc.c" /* yacc.c:1652 */ +#line 52215 "preproc.c" break; - case 2130: -#line 12442 "preproc.y" /* yacc.c:1652 */ - { + case 2130: /* xml_whitespace_option: %empty */ +#line 12442 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51557 "preproc.c" /* yacc.c:1652 */ +#line 52222 "preproc.c" break; - case 2131: -#line 12449 "preproc.y" /* yacc.c:1652 */ - { + case 2131: /* xmlexists_argument: PASSING c_expr */ +#line 12449 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("passing"),(yyvsp[0].str)); } -#line 51565 "preproc.c" /* yacc.c:1652 */ +#line 52230 "preproc.c" break; - case 2132: -#line 12453 "preproc.y" /* yacc.c:1652 */ - { + case 2132: /* xmlexists_argument: PASSING c_expr xml_passing_mech */ +#line 12453 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("passing"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51573 "preproc.c" /* yacc.c:1652 */ +#line 52238 "preproc.c" break; - case 2133: -#line 12457 "preproc.y" /* yacc.c:1652 */ - { + case 2133: /* xmlexists_argument: PASSING xml_passing_mech c_expr */ +#line 12457 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("passing"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51581 "preproc.c" /* yacc.c:1652 */ +#line 52246 "preproc.c" break; - case 2134: -#line 12461 "preproc.y" /* yacc.c:1652 */ - { + case 2134: /* xmlexists_argument: PASSING xml_passing_mech c_expr xml_passing_mech */ +#line 12461 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("passing"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51589 "preproc.c" /* yacc.c:1652 */ +#line 52254 "preproc.c" break; - case 2135: -#line 12469 "preproc.y" /* yacc.c:1652 */ - { + case 2135: /* xml_passing_mech: BY REF */ +#line 12469 "preproc.y" + { (yyval.str) = mm_strdup("by ref"); } -#line 51597 "preproc.c" /* yacc.c:1652 */ +#line 52262 "preproc.c" break; - case 2136: -#line 12473 "preproc.y" /* yacc.c:1652 */ - { + case 2136: /* xml_passing_mech: BY VALUE_P */ +#line 12473 "preproc.y" + { (yyval.str) = mm_strdup("by value"); } -#line 51605 "preproc.c" /* yacc.c:1652 */ +#line 52270 "preproc.c" break; - case 2137: -#line 12481 "preproc.y" /* yacc.c:1652 */ - { + case 2137: /* within_group_clause: WITHIN GROUP_P '(' sort_clause ')' */ +#line 12481 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("within group ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51613 "preproc.c" /* yacc.c:1652 */ +#line 52278 "preproc.c" break; - case 2138: -#line 12485 "preproc.y" /* yacc.c:1652 */ - { + case 2138: /* within_group_clause: %empty */ +#line 12485 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51620 "preproc.c" /* yacc.c:1652 */ +#line 52285 "preproc.c" break; - case 2139: -#line 12492 "preproc.y" /* yacc.c:1652 */ - { + case 2139: /* filter_clause: FILTER '(' WHERE a_expr ')' */ +#line 12492 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("filter ( where"),(yyvsp[-1].str),mm_strdup(")")); } -#line 51628 "preproc.c" /* yacc.c:1652 */ +#line 52293 "preproc.c" break; - case 2140: -#line 12496 "preproc.y" /* yacc.c:1652 */ - { + case 2140: /* filter_clause: %empty */ +#line 12496 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51635 "preproc.c" /* yacc.c:1652 */ +#line 52300 "preproc.c" break; - case 2141: -#line 12503 "preproc.y" /* yacc.c:1652 */ - { + case 2141: /* window_clause: WINDOW window_definition_list */ +#line 12503 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("window"),(yyvsp[0].str)); } -#line 51643 "preproc.c" /* yacc.c:1652 */ +#line 52308 "preproc.c" break; - case 2142: -#line 12507 "preproc.y" /* yacc.c:1652 */ - { + case 2142: /* window_clause: %empty */ +#line 12507 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51650 "preproc.c" /* yacc.c:1652 */ +#line 52315 "preproc.c" break; - case 2143: -#line 12514 "preproc.y" /* yacc.c:1652 */ - { + case 2143: /* window_definition_list: window_definition */ +#line 12514 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51658 "preproc.c" /* yacc.c:1652 */ +#line 52323 "preproc.c" break; - case 2144: -#line 12518 "preproc.y" /* yacc.c:1652 */ - { + case 2144: /* window_definition_list: window_definition_list ',' window_definition */ +#line 12518 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 51666 "preproc.c" /* yacc.c:1652 */ +#line 52331 "preproc.c" break; - case 2145: -#line 12526 "preproc.y" /* yacc.c:1652 */ - { + case 2145: /* window_definition: ColId AS window_specification */ +#line 12526 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 51674 "preproc.c" /* yacc.c:1652 */ +#line 52339 "preproc.c" break; - case 2146: -#line 12534 "preproc.y" /* yacc.c:1652 */ - { + case 2146: /* over_clause: OVER window_specification */ +#line 12534 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("over"),(yyvsp[0].str)); } -#line 51682 "preproc.c" /* yacc.c:1652 */ +#line 52347 "preproc.c" break; - case 2147: -#line 12538 "preproc.y" /* yacc.c:1652 */ - { + case 2147: /* over_clause: OVER ColId */ +#line 12538 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("over"),(yyvsp[0].str)); } -#line 51690 "preproc.c" /* yacc.c:1652 */ +#line 52355 "preproc.c" break; - case 2148: -#line 12542 "preproc.y" /* yacc.c:1652 */ - { + case 2148: /* over_clause: %empty */ +#line 12542 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51697 "preproc.c" /* yacc.c:1652 */ +#line 52362 "preproc.c" break; - case 2149: -#line 12549 "preproc.y" /* yacc.c:1652 */ - { + case 2149: /* window_specification: '(' opt_existing_window_name opt_partition_clause opt_sort_clause opt_frame_clause ')' */ +#line 12549 "preproc.y" + { (yyval.str) = cat_str(6,mm_strdup("("),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 51705 "preproc.c" /* yacc.c:1652 */ +#line 52370 "preproc.c" break; - case 2150: -#line 12557 "preproc.y" /* yacc.c:1652 */ - { + case 2150: /* opt_existing_window_name: ColId */ +#line 12557 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51713 "preproc.c" /* yacc.c:1652 */ +#line 52378 "preproc.c" break; - case 2151: -#line 12561 "preproc.y" /* yacc.c:1652 */ - { + case 2151: /* opt_existing_window_name: %empty */ +#line 12561 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51720 "preproc.c" /* yacc.c:1652 */ +#line 52385 "preproc.c" break; - case 2152: -#line 12568 "preproc.y" /* yacc.c:1652 */ - { + case 2152: /* opt_partition_clause: PARTITION BY expr_list */ +#line 12568 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("partition by"),(yyvsp[0].str)); } -#line 51728 "preproc.c" /* yacc.c:1652 */ +#line 52393 "preproc.c" break; - case 2153: -#line 12572 "preproc.y" /* yacc.c:1652 */ - { + case 2153: /* opt_partition_clause: %empty */ +#line 12572 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51735 "preproc.c" /* yacc.c:1652 */ +#line 52400 "preproc.c" break; - case 2154: -#line 12579 "preproc.y" /* yacc.c:1652 */ - { + case 2154: /* opt_frame_clause: RANGE frame_extent opt_window_exclusion_clause */ +#line 12579 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("range"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51743 "preproc.c" /* yacc.c:1652 */ +#line 52408 "preproc.c" break; - case 2155: -#line 12583 "preproc.y" /* yacc.c:1652 */ - { + case 2155: /* opt_frame_clause: ROWS frame_extent opt_window_exclusion_clause */ +#line 12583 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("rows"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51751 "preproc.c" /* yacc.c:1652 */ +#line 52416 "preproc.c" break; - case 2156: -#line 12587 "preproc.y" /* yacc.c:1652 */ - { + case 2156: /* opt_frame_clause: GROUPS frame_extent opt_window_exclusion_clause */ +#line 12587 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("groups"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51759 "preproc.c" /* yacc.c:1652 */ +#line 52424 "preproc.c" break; - case 2157: -#line 12591 "preproc.y" /* yacc.c:1652 */ - { + case 2157: /* opt_frame_clause: %empty */ +#line 12591 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51766 "preproc.c" /* yacc.c:1652 */ +#line 52431 "preproc.c" break; - case 2158: -#line 12598 "preproc.y" /* yacc.c:1652 */ - { + case 2158: /* frame_extent: frame_bound */ +#line 12598 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51774 "preproc.c" /* yacc.c:1652 */ +#line 52439 "preproc.c" break; - case 2159: -#line 12602 "preproc.y" /* yacc.c:1652 */ - { + case 2159: /* frame_extent: BETWEEN frame_bound AND frame_bound */ +#line 12602 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("between"),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 51782 "preproc.c" /* yacc.c:1652 */ +#line 52447 "preproc.c" break; - case 2160: -#line 12610 "preproc.y" /* yacc.c:1652 */ - { + case 2160: /* frame_bound: UNBOUNDED PRECEDING */ +#line 12610 "preproc.y" + { (yyval.str) = mm_strdup("unbounded preceding"); } -#line 51790 "preproc.c" /* yacc.c:1652 */ +#line 52455 "preproc.c" break; - case 2161: -#line 12614 "preproc.y" /* yacc.c:1652 */ - { + case 2161: /* frame_bound: UNBOUNDED FOLLOWING */ +#line 12614 "preproc.y" + { (yyval.str) = mm_strdup("unbounded following"); } -#line 51798 "preproc.c" /* yacc.c:1652 */ +#line 52463 "preproc.c" break; - case 2162: -#line 12618 "preproc.y" /* yacc.c:1652 */ - { + case 2162: /* frame_bound: CURRENT_P ROW */ +#line 12618 "preproc.y" + { (yyval.str) = mm_strdup("current row"); } -#line 51806 "preproc.c" /* yacc.c:1652 */ +#line 52471 "preproc.c" break; - case 2163: -#line 12622 "preproc.y" /* yacc.c:1652 */ - { + case 2163: /* frame_bound: a_expr PRECEDING */ +#line 12622 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("preceding")); } -#line 51814 "preproc.c" /* yacc.c:1652 */ +#line 52479 "preproc.c" break; - case 2164: -#line 12626 "preproc.y" /* yacc.c:1652 */ - { + case 2164: /* frame_bound: a_expr FOLLOWING */ +#line 12626 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("following")); } -#line 51822 "preproc.c" /* yacc.c:1652 */ +#line 52487 "preproc.c" break; - case 2165: -#line 12634 "preproc.y" /* yacc.c:1652 */ - { + case 2165: /* opt_window_exclusion_clause: EXCLUDE CURRENT_P ROW */ +#line 12634 "preproc.y" + { (yyval.str) = mm_strdup("exclude current row"); } -#line 51830 "preproc.c" /* yacc.c:1652 */ +#line 52495 "preproc.c" break; - case 2166: -#line 12638 "preproc.y" /* yacc.c:1652 */ - { + case 2166: /* opt_window_exclusion_clause: EXCLUDE GROUP_P */ +#line 12638 "preproc.y" + { (yyval.str) = mm_strdup("exclude group"); } -#line 51838 "preproc.c" /* yacc.c:1652 */ +#line 52503 "preproc.c" break; - case 2167: -#line 12642 "preproc.y" /* yacc.c:1652 */ - { + case 2167: /* opt_window_exclusion_clause: EXCLUDE TIES */ +#line 12642 "preproc.y" + { (yyval.str) = mm_strdup("exclude ties"); } -#line 51846 "preproc.c" /* yacc.c:1652 */ +#line 52511 "preproc.c" break; - case 2168: -#line 12646 "preproc.y" /* yacc.c:1652 */ - { + case 2168: /* opt_window_exclusion_clause: EXCLUDE NO OTHERS */ +#line 12646 "preproc.y" + { (yyval.str) = mm_strdup("exclude no others"); } -#line 51854 "preproc.c" /* yacc.c:1652 */ +#line 52519 "preproc.c" break; - case 2169: -#line 12650 "preproc.y" /* yacc.c:1652 */ - { + case 2169: /* opt_window_exclusion_clause: %empty */ +#line 12650 "preproc.y" + { (yyval.str)=EMPTY; } -#line 51861 "preproc.c" /* yacc.c:1652 */ +#line 52526 "preproc.c" break; - case 2170: -#line 12657 "preproc.y" /* yacc.c:1652 */ - { + case 2170: /* row: ROW '(' expr_list ')' */ +#line 12657 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("row ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51869 "preproc.c" /* yacc.c:1652 */ +#line 52534 "preproc.c" break; - case 2171: -#line 12661 "preproc.y" /* yacc.c:1652 */ - { + case 2171: /* row: ROW '(' ')' */ +#line 12661 "preproc.y" + { (yyval.str) = mm_strdup("row ( )"); } -#line 51877 "preproc.c" /* yacc.c:1652 */ +#line 52542 "preproc.c" break; - case 2172: -#line 12665 "preproc.y" /* yacc.c:1652 */ - { + case 2172: /* row: '(' expr_list ',' a_expr ')' */ +#line 12665 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 51885 "preproc.c" /* yacc.c:1652 */ +#line 52550 "preproc.c" break; - case 2173: -#line 12673 "preproc.y" /* yacc.c:1652 */ - { + case 2173: /* explicit_row: ROW '(' expr_list ')' */ +#line 12673 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("row ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51893 "preproc.c" /* yacc.c:1652 */ +#line 52558 "preproc.c" break; - case 2174: -#line 12677 "preproc.y" /* yacc.c:1652 */ - { + case 2174: /* explicit_row: ROW '(' ')' */ +#line 12677 "preproc.y" + { (yyval.str) = mm_strdup("row ( )"); } -#line 51901 "preproc.c" /* yacc.c:1652 */ +#line 52566 "preproc.c" break; - case 2175: -#line 12685 "preproc.y" /* yacc.c:1652 */ - { + case 2175: /* implicit_row: '(' expr_list ',' a_expr ')' */ +#line 12685 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 51909 "preproc.c" /* yacc.c:1652 */ +#line 52574 "preproc.c" break; - case 2176: -#line 12693 "preproc.y" /* yacc.c:1652 */ - { + case 2176: /* sub_type: ANY */ +#line 12693 "preproc.y" + { (yyval.str) = mm_strdup("any"); } -#line 51917 "preproc.c" /* yacc.c:1652 */ +#line 52582 "preproc.c" break; - case 2177: -#line 12697 "preproc.y" /* yacc.c:1652 */ - { + case 2177: /* sub_type: SOME */ +#line 12697 "preproc.y" + { (yyval.str) = mm_strdup("some"); } -#line 51925 "preproc.c" /* yacc.c:1652 */ +#line 52590 "preproc.c" break; - case 2178: -#line 12701 "preproc.y" /* yacc.c:1652 */ - { + case 2178: /* sub_type: ALL */ +#line 12701 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 51933 "preproc.c" /* yacc.c:1652 */ +#line 52598 "preproc.c" break; - case 2179: -#line 12709 "preproc.y" /* yacc.c:1652 */ - { + case 2179: /* all_Op: Op */ +#line 12709 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51941 "preproc.c" /* yacc.c:1652 */ +#line 52606 "preproc.c" break; - case 2180: -#line 12713 "preproc.y" /* yacc.c:1652 */ - { + case 2180: /* all_Op: MathOp */ +#line 12713 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 51949 "preproc.c" /* yacc.c:1652 */ +#line 52614 "preproc.c" break; - case 2181: -#line 12721 "preproc.y" /* yacc.c:1652 */ - { + case 2181: /* MathOp: '+' */ +#line 12721 "preproc.y" + { (yyval.str) = mm_strdup("+"); } -#line 51957 "preproc.c" /* yacc.c:1652 */ +#line 52622 "preproc.c" break; - case 2182: -#line 12725 "preproc.y" /* yacc.c:1652 */ - { + case 2182: /* MathOp: '-' */ +#line 12725 "preproc.y" + { (yyval.str) = mm_strdup("-"); } -#line 51965 "preproc.c" /* yacc.c:1652 */ +#line 52630 "preproc.c" break; - case 2183: -#line 12729 "preproc.y" /* yacc.c:1652 */ - { + case 2183: /* MathOp: '*' */ +#line 12729 "preproc.y" + { (yyval.str) = mm_strdup("*"); } -#line 51973 "preproc.c" /* yacc.c:1652 */ +#line 52638 "preproc.c" break; - case 2184: -#line 12733 "preproc.y" /* yacc.c:1652 */ - { + case 2184: /* MathOp: '/' */ +#line 12733 "preproc.y" + { (yyval.str) = mm_strdup("/"); } -#line 51981 "preproc.c" /* yacc.c:1652 */ +#line 52646 "preproc.c" break; - case 2185: -#line 12737 "preproc.y" /* yacc.c:1652 */ - { + case 2185: /* MathOp: '%' */ +#line 12737 "preproc.y" + { (yyval.str) = mm_strdup("%"); } -#line 51989 "preproc.c" /* yacc.c:1652 */ +#line 52654 "preproc.c" break; - case 2186: -#line 12741 "preproc.y" /* yacc.c:1652 */ - { + case 2186: /* MathOp: '^' */ +#line 12741 "preproc.y" + { (yyval.str) = mm_strdup("^"); } -#line 51997 "preproc.c" /* yacc.c:1652 */ +#line 52662 "preproc.c" break; - case 2187: -#line 12745 "preproc.y" /* yacc.c:1652 */ - { + case 2187: /* MathOp: '<' */ +#line 12745 "preproc.y" + { (yyval.str) = mm_strdup("<"); } -#line 52005 "preproc.c" /* yacc.c:1652 */ +#line 52670 "preproc.c" break; - case 2188: -#line 12749 "preproc.y" /* yacc.c:1652 */ - { + case 2188: /* MathOp: '>' */ +#line 12749 "preproc.y" + { (yyval.str) = mm_strdup(">"); } -#line 52013 "preproc.c" /* yacc.c:1652 */ +#line 52678 "preproc.c" break; - case 2189: -#line 12753 "preproc.y" /* yacc.c:1652 */ - { + case 2189: /* MathOp: '=' */ +#line 12753 "preproc.y" + { (yyval.str) = mm_strdup("="); } -#line 52021 "preproc.c" /* yacc.c:1652 */ +#line 52686 "preproc.c" break; - case 2190: -#line 12757 "preproc.y" /* yacc.c:1652 */ - { + case 2190: /* MathOp: LESS_EQUALS */ +#line 12757 "preproc.y" + { (yyval.str) = mm_strdup("<="); } -#line 52029 "preproc.c" /* yacc.c:1652 */ +#line 52694 "preproc.c" break; - case 2191: -#line 12761 "preproc.y" /* yacc.c:1652 */ - { + case 2191: /* MathOp: GREATER_EQUALS */ +#line 12761 "preproc.y" + { (yyval.str) = mm_strdup(">="); } -#line 52037 "preproc.c" /* yacc.c:1652 */ +#line 52702 "preproc.c" break; - case 2192: -#line 12765 "preproc.y" /* yacc.c:1652 */ - { + case 2192: /* MathOp: NOT_EQUALS */ +#line 12765 "preproc.y" + { (yyval.str) = mm_strdup("<>"); } -#line 52045 "preproc.c" /* yacc.c:1652 */ +#line 52710 "preproc.c" break; - case 2193: -#line 12773 "preproc.y" /* yacc.c:1652 */ - { + case 2193: /* qual_Op: Op */ +#line 12773 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52053 "preproc.c" /* yacc.c:1652 */ +#line 52718 "preproc.c" break; - case 2194: -#line 12777 "preproc.y" /* yacc.c:1652 */ - { + case 2194: /* qual_Op: OPERATOR '(' any_operator ')' */ +#line 12777 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("operator ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52061 "preproc.c" /* yacc.c:1652 */ +#line 52726 "preproc.c" break; - case 2195: -#line 12785 "preproc.y" /* yacc.c:1652 */ - { + case 2195: /* qual_all_Op: all_Op */ +#line 12785 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52069 "preproc.c" /* yacc.c:1652 */ +#line 52734 "preproc.c" break; - case 2196: -#line 12789 "preproc.y" /* yacc.c:1652 */ - { + case 2196: /* qual_all_Op: OPERATOR '(' any_operator ')' */ +#line 12789 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("operator ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52077 "preproc.c" /* yacc.c:1652 */ +#line 52742 "preproc.c" break; - case 2197: -#line 12797 "preproc.y" /* yacc.c:1652 */ - { + case 2197: /* subquery_Op: all_Op */ +#line 12797 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52085 "preproc.c" /* yacc.c:1652 */ +#line 52750 "preproc.c" break; - case 2198: -#line 12801 "preproc.y" /* yacc.c:1652 */ - { + case 2198: /* subquery_Op: OPERATOR '(' any_operator ')' */ +#line 12801 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("operator ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52093 "preproc.c" /* yacc.c:1652 */ +#line 52758 "preproc.c" break; - case 2199: -#line 12805 "preproc.y" /* yacc.c:1652 */ - { + case 2199: /* subquery_Op: LIKE */ +#line 12805 "preproc.y" + { (yyval.str) = mm_strdup("like"); } -#line 52101 "preproc.c" /* yacc.c:1652 */ +#line 52766 "preproc.c" break; - case 2200: -#line 12809 "preproc.y" /* yacc.c:1652 */ - { + case 2200: /* subquery_Op: NOT_LA LIKE */ +#line 12809 "preproc.y" + { (yyval.str) = mm_strdup("not like"); } -#line 52109 "preproc.c" /* yacc.c:1652 */ +#line 52774 "preproc.c" break; - case 2201: -#line 12813 "preproc.y" /* yacc.c:1652 */ - { + case 2201: /* subquery_Op: ILIKE */ +#line 12813 "preproc.y" + { (yyval.str) = mm_strdup("ilike"); } -#line 52117 "preproc.c" /* yacc.c:1652 */ +#line 52782 "preproc.c" break; - case 2202: -#line 12817 "preproc.y" /* yacc.c:1652 */ - { + case 2202: /* subquery_Op: NOT_LA ILIKE */ +#line 12817 "preproc.y" + { (yyval.str) = mm_strdup("not ilike"); } -#line 52125 "preproc.c" /* yacc.c:1652 */ +#line 52790 "preproc.c" break; - case 2203: -#line 12825 "preproc.y" /* yacc.c:1652 */ - { + case 2203: /* expr_list: a_expr */ +#line 12825 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52133 "preproc.c" /* yacc.c:1652 */ +#line 52798 "preproc.c" break; - case 2204: -#line 12829 "preproc.y" /* yacc.c:1652 */ - { + case 2204: /* expr_list: expr_list ',' a_expr */ +#line 12829 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52141 "preproc.c" /* yacc.c:1652 */ +#line 52806 "preproc.c" break; - case 2205: -#line 12837 "preproc.y" /* yacc.c:1652 */ - { + case 2205: /* func_arg_list: func_arg_expr */ +#line 12837 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52149 "preproc.c" /* yacc.c:1652 */ +#line 52814 "preproc.c" break; - case 2206: -#line 12841 "preproc.y" /* yacc.c:1652 */ - { + case 2206: /* func_arg_list: func_arg_list ',' func_arg_expr */ +#line 12841 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52157 "preproc.c" /* yacc.c:1652 */ +#line 52822 "preproc.c" break; - case 2207: -#line 12849 "preproc.y" /* yacc.c:1652 */ - { + case 2207: /* func_arg_expr: a_expr */ +#line 12849 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52165 "preproc.c" /* yacc.c:1652 */ +#line 52830 "preproc.c" break; - case 2208: -#line 12853 "preproc.y" /* yacc.c:1652 */ - { + case 2208: /* func_arg_expr: param_name COLON_EQUALS a_expr */ +#line 12853 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(":="),(yyvsp[0].str)); } -#line 52173 "preproc.c" /* yacc.c:1652 */ +#line 52838 "preproc.c" break; - case 2209: -#line 12857 "preproc.y" /* yacc.c:1652 */ - { + case 2209: /* func_arg_expr: param_name EQUALS_GREATER a_expr */ +#line 12857 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("=>"),(yyvsp[0].str)); } -#line 52181 "preproc.c" /* yacc.c:1652 */ +#line 52846 "preproc.c" break; - case 2210: -#line 12865 "preproc.y" /* yacc.c:1652 */ - { + case 2210: /* type_list: Typename */ +#line 12865 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52189 "preproc.c" /* yacc.c:1652 */ +#line 52854 "preproc.c" break; - case 2211: -#line 12869 "preproc.y" /* yacc.c:1652 */ - { + case 2211: /* type_list: type_list ',' Typename */ +#line 12869 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52197 "preproc.c" /* yacc.c:1652 */ +#line 52862 "preproc.c" break; - case 2212: -#line 12877 "preproc.y" /* yacc.c:1652 */ - { + case 2212: /* array_expr: '[' expr_list ']' */ +#line 12877 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("["),(yyvsp[-1].str),mm_strdup("]")); } -#line 52205 "preproc.c" /* yacc.c:1652 */ +#line 52870 "preproc.c" break; - case 2213: -#line 12881 "preproc.y" /* yacc.c:1652 */ - { + case 2213: /* array_expr: '[' array_expr_list ']' */ +#line 12881 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("["),(yyvsp[-1].str),mm_strdup("]")); } -#line 52213 "preproc.c" /* yacc.c:1652 */ +#line 52878 "preproc.c" break; - case 2214: -#line 12885 "preproc.y" /* yacc.c:1652 */ - { + case 2214: /* array_expr: '[' ']' */ +#line 12885 "preproc.y" + { (yyval.str) = mm_strdup("[ ]"); } -#line 52221 "preproc.c" /* yacc.c:1652 */ +#line 52886 "preproc.c" break; - case 2215: -#line 12893 "preproc.y" /* yacc.c:1652 */ - { + case 2215: /* array_expr_list: array_expr */ +#line 12893 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52229 "preproc.c" /* yacc.c:1652 */ +#line 52894 "preproc.c" break; - case 2216: -#line 12897 "preproc.y" /* yacc.c:1652 */ - { + case 2216: /* array_expr_list: array_expr_list ',' array_expr */ +#line 12897 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52237 "preproc.c" /* yacc.c:1652 */ +#line 52902 "preproc.c" break; - case 2217: -#line 12905 "preproc.y" /* yacc.c:1652 */ - { + case 2217: /* extract_list: extract_arg FROM a_expr */ +#line 12905 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 52245 "preproc.c" /* yacc.c:1652 */ +#line 52910 "preproc.c" break; - case 2218: -#line 12909 "preproc.y" /* yacc.c:1652 */ - { + case 2218: /* extract_list: %empty */ +#line 12909 "preproc.y" + { (yyval.str)=EMPTY; } -#line 52252 "preproc.c" /* yacc.c:1652 */ +#line 52917 "preproc.c" break; - case 2219: -#line 12916 "preproc.y" /* yacc.c:1652 */ - { + case 2219: /* extract_arg: ecpg_ident */ +#line 12916 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52260 "preproc.c" /* yacc.c:1652 */ +#line 52925 "preproc.c" break; - case 2220: -#line 12920 "preproc.y" /* yacc.c:1652 */ - { + case 2220: /* extract_arg: YEAR_P */ +#line 12920 "preproc.y" + { (yyval.str) = mm_strdup("year"); } -#line 52268 "preproc.c" /* yacc.c:1652 */ +#line 52933 "preproc.c" break; - case 2221: -#line 12924 "preproc.y" /* yacc.c:1652 */ - { + case 2221: /* extract_arg: MONTH_P */ +#line 12924 "preproc.y" + { (yyval.str) = mm_strdup("month"); } -#line 52276 "preproc.c" /* yacc.c:1652 */ +#line 52941 "preproc.c" break; - case 2222: -#line 12928 "preproc.y" /* yacc.c:1652 */ - { + case 2222: /* extract_arg: DAY_P */ +#line 12928 "preproc.y" + { (yyval.str) = mm_strdup("day"); } -#line 52284 "preproc.c" /* yacc.c:1652 */ +#line 52949 "preproc.c" break; - case 2223: -#line 12932 "preproc.y" /* yacc.c:1652 */ - { + case 2223: /* extract_arg: HOUR_P */ +#line 12932 "preproc.y" + { (yyval.str) = mm_strdup("hour"); } -#line 52292 "preproc.c" /* yacc.c:1652 */ +#line 52957 "preproc.c" break; - case 2224: -#line 12936 "preproc.y" /* yacc.c:1652 */ - { + case 2224: /* extract_arg: MINUTE_P */ +#line 12936 "preproc.y" + { (yyval.str) = mm_strdup("minute"); } -#line 52300 "preproc.c" /* yacc.c:1652 */ +#line 52965 "preproc.c" break; - case 2225: -#line 12940 "preproc.y" /* yacc.c:1652 */ - { + case 2225: /* extract_arg: SECOND_P */ +#line 12940 "preproc.y" + { (yyval.str) = mm_strdup("second"); } -#line 52308 "preproc.c" /* yacc.c:1652 */ +#line 52973 "preproc.c" break; - case 2226: -#line 12944 "preproc.y" /* yacc.c:1652 */ - { + case 2226: /* extract_arg: ecpg_sconst */ +#line 12944 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52316 "preproc.c" /* yacc.c:1652 */ +#line 52981 "preproc.c" break; - case 2227: -#line 12952 "preproc.y" /* yacc.c:1652 */ - { + case 2227: /* unicode_normal_form: NFC */ +#line 12952 "preproc.y" + { (yyval.str) = mm_strdup("nfc"); } -#line 52324 "preproc.c" /* yacc.c:1652 */ +#line 52989 "preproc.c" break; - case 2228: -#line 12956 "preproc.y" /* yacc.c:1652 */ - { + case 2228: /* unicode_normal_form: NFD */ +#line 12956 "preproc.y" + { (yyval.str) = mm_strdup("nfd"); } -#line 52332 "preproc.c" /* yacc.c:1652 */ +#line 52997 "preproc.c" break; - case 2229: -#line 12960 "preproc.y" /* yacc.c:1652 */ - { + case 2229: /* unicode_normal_form: NFKC */ +#line 12960 "preproc.y" + { (yyval.str) = mm_strdup("nfkc"); } -#line 52340 "preproc.c" /* yacc.c:1652 */ +#line 53005 "preproc.c" break; - case 2230: -#line 12964 "preproc.y" /* yacc.c:1652 */ - { + case 2230: /* unicode_normal_form: NFKD */ +#line 12964 "preproc.y" + { (yyval.str) = mm_strdup("nfkd"); } -#line 52348 "preproc.c" /* yacc.c:1652 */ +#line 53013 "preproc.c" break; - case 2231: -#line 12972 "preproc.y" /* yacc.c:1652 */ - { + case 2231: /* overlay_list: a_expr overlay_placing substr_from substr_for */ +#line 12972 "preproc.y" + { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52356 "preproc.c" /* yacc.c:1652 */ +#line 53021 "preproc.c" break; - case 2232: -#line 12976 "preproc.y" /* yacc.c:1652 */ - { + case 2232: /* overlay_list: a_expr overlay_placing substr_from */ +#line 12976 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52364 "preproc.c" /* yacc.c:1652 */ +#line 53029 "preproc.c" break; - case 2233: -#line 12984 "preproc.y" /* yacc.c:1652 */ - { + case 2233: /* overlay_placing: PLACING a_expr */ +#line 12984 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("placing"),(yyvsp[0].str)); } -#line 52372 "preproc.c" /* yacc.c:1652 */ +#line 53037 "preproc.c" break; - case 2234: -#line 12992 "preproc.y" /* yacc.c:1652 */ - { + case 2234: /* position_list: b_expr IN_P b_expr */ +#line 12992 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("in"),(yyvsp[0].str)); } -#line 52380 "preproc.c" /* yacc.c:1652 */ +#line 53045 "preproc.c" break; - case 2235: -#line 12996 "preproc.y" /* yacc.c:1652 */ - { + case 2235: /* position_list: %empty */ +#line 12996 "preproc.y" + { (yyval.str)=EMPTY; } -#line 52387 "preproc.c" /* yacc.c:1652 */ +#line 53052 "preproc.c" break; - case 2236: -#line 13003 "preproc.y" /* yacc.c:1652 */ - { + case 2236: /* substr_list: a_expr substr_from substr_for */ +#line 13003 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52395 "preproc.c" /* yacc.c:1652 */ +#line 53060 "preproc.c" break; - case 2237: -#line 13007 "preproc.y" /* yacc.c:1652 */ - { + case 2237: /* substr_list: a_expr substr_for substr_from */ +#line 13007 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52403 "preproc.c" /* yacc.c:1652 */ +#line 53068 "preproc.c" break; - case 2238: -#line 13011 "preproc.y" /* yacc.c:1652 */ - { + case 2238: /* substr_list: a_expr substr_from */ +#line 13011 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52411 "preproc.c" /* yacc.c:1652 */ +#line 53076 "preproc.c" break; - case 2239: -#line 13015 "preproc.y" /* yacc.c:1652 */ - { + case 2239: /* substr_list: a_expr substr_for */ +#line 13015 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52419 "preproc.c" /* yacc.c:1652 */ +#line 53084 "preproc.c" break; - case 2240: -#line 13019 "preproc.y" /* yacc.c:1652 */ - { + case 2240: /* substr_list: expr_list */ +#line 13019 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52427 "preproc.c" /* yacc.c:1652 */ +#line 53092 "preproc.c" break; - case 2241: -#line 13023 "preproc.y" /* yacc.c:1652 */ - { + case 2241: /* substr_list: %empty */ +#line 13023 "preproc.y" + { (yyval.str)=EMPTY; } -#line 52434 "preproc.c" /* yacc.c:1652 */ +#line 53099 "preproc.c" break; - case 2242: -#line 13030 "preproc.y" /* yacc.c:1652 */ - { + case 2242: /* substr_from: FROM a_expr */ +#line 13030 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("from"),(yyvsp[0].str)); } -#line 52442 "preproc.c" /* yacc.c:1652 */ +#line 53107 "preproc.c" break; - case 2243: -#line 13038 "preproc.y" /* yacc.c:1652 */ - { + case 2243: /* substr_for: FOR a_expr */ +#line 13038 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("for"),(yyvsp[0].str)); } -#line 52450 "preproc.c" /* yacc.c:1652 */ +#line 53115 "preproc.c" break; - case 2244: -#line 13046 "preproc.y" /* yacc.c:1652 */ - { + case 2244: /* trim_list: a_expr FROM expr_list */ +#line 13046 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 52458 "preproc.c" /* yacc.c:1652 */ +#line 53123 "preproc.c" break; - case 2245: -#line 13050 "preproc.y" /* yacc.c:1652 */ - { + case 2245: /* trim_list: FROM expr_list */ +#line 13050 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("from"),(yyvsp[0].str)); } -#line 52466 "preproc.c" /* yacc.c:1652 */ +#line 53131 "preproc.c" break; - case 2246: -#line 13054 "preproc.y" /* yacc.c:1652 */ - { + case 2246: /* trim_list: expr_list */ +#line 13054 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52474 "preproc.c" /* yacc.c:1652 */ +#line 53139 "preproc.c" break; - case 2247: -#line 13062 "preproc.y" /* yacc.c:1652 */ - { + case 2247: /* in_expr: select_with_parens */ +#line 13062 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52482 "preproc.c" /* yacc.c:1652 */ +#line 53147 "preproc.c" break; - case 2248: -#line 13066 "preproc.y" /* yacc.c:1652 */ - { + case 2248: /* in_expr: '(' expr_list ')' */ +#line 13066 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52490 "preproc.c" /* yacc.c:1652 */ +#line 53155 "preproc.c" break; - case 2249: -#line 13074 "preproc.y" /* yacc.c:1652 */ - { + case 2249: /* case_expr: CASE case_arg when_clause_list case_default END_P */ +#line 13074 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("case"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup("end")); } -#line 52498 "preproc.c" /* yacc.c:1652 */ +#line 53163 "preproc.c" break; - case 2250: -#line 13082 "preproc.y" /* yacc.c:1652 */ - { + case 2250: /* when_clause_list: when_clause */ +#line 13082 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52506 "preproc.c" /* yacc.c:1652 */ +#line 53171 "preproc.c" break; - case 2251: -#line 13086 "preproc.y" /* yacc.c:1652 */ - { + case 2251: /* when_clause_list: when_clause_list when_clause */ +#line 13086 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52514 "preproc.c" /* yacc.c:1652 */ +#line 53179 "preproc.c" break; - case 2252: -#line 13094 "preproc.y" /* yacc.c:1652 */ - { + case 2252: /* when_clause: WHEN a_expr THEN a_expr */ +#line 13094 "preproc.y" + { (yyval.str) = cat_str(4,mm_strdup("when"),(yyvsp[-2].str),mm_strdup("then"),(yyvsp[0].str)); } -#line 52522 "preproc.c" /* yacc.c:1652 */ +#line 53187 "preproc.c" break; - case 2253: -#line 13102 "preproc.y" /* yacc.c:1652 */ - { + case 2253: /* case_default: ELSE a_expr */ +#line 13102 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("else"),(yyvsp[0].str)); } -#line 52530 "preproc.c" /* yacc.c:1652 */ +#line 53195 "preproc.c" break; - case 2254: -#line 13106 "preproc.y" /* yacc.c:1652 */ - { + case 2254: /* case_default: %empty */ +#line 13106 "preproc.y" + { (yyval.str)=EMPTY; } -#line 52537 "preproc.c" /* yacc.c:1652 */ +#line 53202 "preproc.c" break; - case 2255: -#line 13113 "preproc.y" /* yacc.c:1652 */ - { + case 2255: /* case_arg: a_expr */ +#line 13113 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52545 "preproc.c" /* yacc.c:1652 */ +#line 53210 "preproc.c" break; - case 2256: -#line 13117 "preproc.y" /* yacc.c:1652 */ - { + case 2256: /* case_arg: %empty */ +#line 13117 "preproc.y" + { (yyval.str)=EMPTY; } -#line 52552 "preproc.c" /* yacc.c:1652 */ +#line 53217 "preproc.c" break; - case 2257: -#line 13124 "preproc.y" /* yacc.c:1652 */ - { + case 2257: /* columnref: ColId */ +#line 13124 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52560 "preproc.c" /* yacc.c:1652 */ +#line 53225 "preproc.c" break; - case 2258: -#line 13128 "preproc.y" /* yacc.c:1652 */ - { + case 2258: /* columnref: ColId indirection */ +#line 13128 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52568 "preproc.c" /* yacc.c:1652 */ +#line 53233 "preproc.c" break; - case 2259: -#line 13136 "preproc.y" /* yacc.c:1652 */ - { + case 2259: /* indirection_el: '.' attr_name */ +#line 13136 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("."),(yyvsp[0].str)); } -#line 52576 "preproc.c" /* yacc.c:1652 */ +#line 53241 "preproc.c" break; - case 2260: -#line 13140 "preproc.y" /* yacc.c:1652 */ - { + case 2260: /* indirection_el: '.' '*' */ +#line 13140 "preproc.y" + { (yyval.str) = mm_strdup(". *"); } -#line 52584 "preproc.c" /* yacc.c:1652 */ +#line 53249 "preproc.c" break; - case 2261: -#line 13144 "preproc.y" /* yacc.c:1652 */ - { + case 2261: /* indirection_el: '[' a_expr ']' */ +#line 13144 "preproc.y" + { (yyval.str) = cat_str(3,mm_strdup("["),(yyvsp[-1].str),mm_strdup("]")); } -#line 52592 "preproc.c" /* yacc.c:1652 */ +#line 53257 "preproc.c" break; - case 2262: -#line 13148 "preproc.y" /* yacc.c:1652 */ - { + case 2262: /* indirection_el: '[' opt_slice_bound ':' opt_slice_bound ']' */ +#line 13148 "preproc.y" + { (yyval.str) = cat_str(5,mm_strdup("["),(yyvsp[-3].str),mm_strdup(":"),(yyvsp[-1].str),mm_strdup("]")); } -#line 52600 "preproc.c" /* yacc.c:1652 */ +#line 53265 "preproc.c" break; - case 2263: -#line 13156 "preproc.y" /* yacc.c:1652 */ - { + case 2263: /* opt_slice_bound: a_expr */ +#line 13156 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52608 "preproc.c" /* yacc.c:1652 */ +#line 53273 "preproc.c" break; - case 2264: -#line 13160 "preproc.y" /* yacc.c:1652 */ - { + case 2264: /* opt_slice_bound: %empty */ +#line 13160 "preproc.y" + { (yyval.str)=EMPTY; } -#line 52615 "preproc.c" /* yacc.c:1652 */ +#line 53280 "preproc.c" break; - case 2265: -#line 13167 "preproc.y" /* yacc.c:1652 */ - { + case 2265: /* indirection: indirection_el */ +#line 13167 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52623 "preproc.c" /* yacc.c:1652 */ +#line 53288 "preproc.c" break; - case 2266: -#line 13171 "preproc.y" /* yacc.c:1652 */ - { + case 2266: /* indirection: indirection indirection_el */ +#line 13171 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52631 "preproc.c" /* yacc.c:1652 */ +#line 53296 "preproc.c" break; - case 2267: -#line 13179 "preproc.y" /* yacc.c:1652 */ - { + case 2267: /* opt_indirection: %empty */ +#line 13179 "preproc.y" + { (yyval.str)=EMPTY; } -#line 52638 "preproc.c" /* yacc.c:1652 */ +#line 53303 "preproc.c" break; - case 2268: -#line 13182 "preproc.y" /* yacc.c:1652 */ - { + case 2268: /* opt_indirection: opt_indirection indirection_el */ +#line 13182 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52646 "preproc.c" /* yacc.c:1652 */ +#line 53311 "preproc.c" break; - case 2269: -#line 13190 "preproc.y" /* yacc.c:1652 */ - { + case 2269: /* opt_asymmetric: ASYMMETRIC */ +#line 13190 "preproc.y" + { (yyval.str) = mm_strdup("asymmetric"); } -#line 52654 "preproc.c" /* yacc.c:1652 */ +#line 53319 "preproc.c" break; - case 2270: -#line 13194 "preproc.y" /* yacc.c:1652 */ - { + case 2270: /* opt_asymmetric: %empty */ +#line 13194 "preproc.y" + { (yyval.str)=EMPTY; } -#line 52661 "preproc.c" /* yacc.c:1652 */ +#line 53326 "preproc.c" break; - case 2271: -#line 13201 "preproc.y" /* yacc.c:1652 */ - { + case 2271: /* opt_target_list: target_list */ +#line 13201 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52669 "preproc.c" /* yacc.c:1652 */ +#line 53334 "preproc.c" break; - case 2272: -#line 13205 "preproc.y" /* yacc.c:1652 */ - { + case 2272: /* opt_target_list: %empty */ +#line 13205 "preproc.y" + { (yyval.str)=EMPTY; } -#line 52676 "preproc.c" /* yacc.c:1652 */ +#line 53341 "preproc.c" break; - case 2273: -#line 13212 "preproc.y" /* yacc.c:1652 */ - { + case 2273: /* target_list: target_el */ +#line 13212 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52684 "preproc.c" /* yacc.c:1652 */ +#line 53349 "preproc.c" break; - case 2274: -#line 13216 "preproc.y" /* yacc.c:1652 */ - { + case 2274: /* target_list: target_list ',' target_el */ +#line 13216 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52692 "preproc.c" /* yacc.c:1652 */ +#line 53357 "preproc.c" break; - case 2275: -#line 13224 "preproc.y" /* yacc.c:1652 */ - { + case 2275: /* target_el: a_expr AS ColLabel */ +#line 13224 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 52700 "preproc.c" /* yacc.c:1652 */ +#line 53365 "preproc.c" break; - case 2276: -#line 13228 "preproc.y" /* yacc.c:1652 */ - { + case 2276: /* target_el: a_expr ecpg_ident */ +#line 13228 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52708 "preproc.c" /* yacc.c:1652 */ +#line 53373 "preproc.c" break; - case 2277: -#line 13232 "preproc.y" /* yacc.c:1652 */ - { + case 2277: /* target_el: a_expr */ +#line 13232 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52716 "preproc.c" /* yacc.c:1652 */ +#line 53381 "preproc.c" break; - case 2278: -#line 13236 "preproc.y" /* yacc.c:1652 */ - { + case 2278: /* target_el: '*' */ +#line 13236 "preproc.y" + { (yyval.str) = mm_strdup("*"); } -#line 52724 "preproc.c" /* yacc.c:1652 */ +#line 53389 "preproc.c" break; - case 2279: -#line 13244 "preproc.y" /* yacc.c:1652 */ - { + case 2279: /* qualified_name_list: qualified_name */ +#line 13244 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52732 "preproc.c" /* yacc.c:1652 */ +#line 53397 "preproc.c" break; - case 2280: -#line 13248 "preproc.y" /* yacc.c:1652 */ - { + case 2280: /* qualified_name_list: qualified_name_list ',' qualified_name */ +#line 13248 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52740 "preproc.c" /* yacc.c:1652 */ +#line 53405 "preproc.c" break; - case 2281: -#line 13256 "preproc.y" /* yacc.c:1652 */ - { + case 2281: /* qualified_name: ColId */ +#line 13256 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52748 "preproc.c" /* yacc.c:1652 */ +#line 53413 "preproc.c" break; - case 2282: -#line 13260 "preproc.y" /* yacc.c:1652 */ - { + case 2282: /* qualified_name: ColId indirection */ +#line 13260 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52756 "preproc.c" /* yacc.c:1652 */ +#line 53421 "preproc.c" break; - case 2283: -#line 13268 "preproc.y" /* yacc.c:1652 */ - { + case 2283: /* name_list: name */ +#line 13268 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52764 "preproc.c" /* yacc.c:1652 */ +#line 53429 "preproc.c" break; - case 2284: -#line 13272 "preproc.y" /* yacc.c:1652 */ - { + case 2284: /* name_list: name_list ',' name */ +#line 13272 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52772 "preproc.c" /* yacc.c:1652 */ +#line 53437 "preproc.c" break; - case 2285: -#line 13280 "preproc.y" /* yacc.c:1652 */ - { + case 2285: /* name: ColId */ +#line 13280 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52780 "preproc.c" /* yacc.c:1652 */ +#line 53445 "preproc.c" break; - case 2286: -#line 13288 "preproc.y" /* yacc.c:1652 */ - { + case 2286: /* database_name: ColId */ +#line 13288 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52788 "preproc.c" /* yacc.c:1652 */ +#line 53453 "preproc.c" break; - case 2287: -#line 13296 "preproc.y" /* yacc.c:1652 */ - { + case 2287: /* access_method: ColId */ +#line 13296 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52796 "preproc.c" /* yacc.c:1652 */ +#line 53461 "preproc.c" break; - case 2288: -#line 13304 "preproc.y" /* yacc.c:1652 */ - { + case 2288: /* attr_name: ColLabel */ +#line 13304 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52804 "preproc.c" /* yacc.c:1652 */ +#line 53469 "preproc.c" break; - case 2289: -#line 13312 "preproc.y" /* yacc.c:1652 */ - { + case 2289: /* index_name: ColId */ +#line 13312 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52812 "preproc.c" /* yacc.c:1652 */ +#line 53477 "preproc.c" break; - case 2290: -#line 13320 "preproc.y" /* yacc.c:1652 */ - { + case 2290: /* file_name: ecpg_sconst */ +#line 13320 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52820 "preproc.c" /* yacc.c:1652 */ +#line 53485 "preproc.c" break; - case 2291: -#line 13328 "preproc.y" /* yacc.c:1652 */ - { + case 2291: /* func_name: type_function_name */ +#line 13328 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52828 "preproc.c" /* yacc.c:1652 */ +#line 53493 "preproc.c" break; - case 2292: -#line 13332 "preproc.y" /* yacc.c:1652 */ - { + case 2292: /* func_name: ColId indirection */ +#line 13332 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52836 "preproc.c" /* yacc.c:1652 */ +#line 53501 "preproc.c" break; - case 2293: -#line 13340 "preproc.y" /* yacc.c:1652 */ - { + case 2293: /* AexprConst: Iconst */ +#line 13340 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52844 "preproc.c" /* yacc.c:1652 */ +#line 53509 "preproc.c" break; - case 2294: -#line 13344 "preproc.y" /* yacc.c:1652 */ - { + case 2294: /* AexprConst: ecpg_fconst */ +#line 13344 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52852 "preproc.c" /* yacc.c:1652 */ +#line 53517 "preproc.c" break; - case 2295: -#line 13348 "preproc.y" /* yacc.c:1652 */ - { + case 2295: /* AexprConst: ecpg_sconst */ +#line 13348 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52860 "preproc.c" /* yacc.c:1652 */ +#line 53525 "preproc.c" break; - case 2296: -#line 13352 "preproc.y" /* yacc.c:1652 */ - { + case 2296: /* AexprConst: ecpg_bconst */ +#line 13352 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52868 "preproc.c" /* yacc.c:1652 */ +#line 53533 "preproc.c" break; - case 2297: -#line 13356 "preproc.y" /* yacc.c:1652 */ - { + case 2297: /* AexprConst: ecpg_xconst */ +#line 13356 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52876 "preproc.c" /* yacc.c:1652 */ +#line 53541 "preproc.c" break; - case 2298: -#line 13360 "preproc.y" /* yacc.c:1652 */ - { + case 2298: /* AexprConst: func_name ecpg_sconst */ +#line 13360 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52884 "preproc.c" /* yacc.c:1652 */ +#line 53549 "preproc.c" break; - case 2299: -#line 13364 "preproc.y" /* yacc.c:1652 */ - { + case 2299: /* AexprConst: func_name '(' func_arg_list opt_sort_clause ')' ecpg_sconst */ +#line 13364 "preproc.y" + { (yyval.str) = cat_str(6,(yyvsp[-5].str),mm_strdup("("),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 52892 "preproc.c" /* yacc.c:1652 */ +#line 53557 "preproc.c" break; - case 2300: -#line 13368 "preproc.y" /* yacc.c:1652 */ - { + case 2300: /* AexprConst: ConstTypename ecpg_sconst */ +#line 13368 "preproc.y" + { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52900 "preproc.c" /* yacc.c:1652 */ +#line 53565 "preproc.c" break; - case 2301: -#line 13372 "preproc.y" /* yacc.c:1652 */ - { + case 2301: /* AexprConst: ConstInterval ecpg_sconst opt_interval */ +#line 13372 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52908 "preproc.c" /* yacc.c:1652 */ +#line 53573 "preproc.c" break; - case 2302: -#line 13376 "preproc.y" /* yacc.c:1652 */ - { + case 2302: /* AexprConst: ConstInterval '(' Iconst ')' ecpg_sconst */ +#line 13376 "preproc.y" + { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 52916 "preproc.c" /* yacc.c:1652 */ +#line 53581 "preproc.c" break; - case 2303: -#line 13380 "preproc.y" /* yacc.c:1652 */ - { + case 2303: /* AexprConst: TRUE_P */ +#line 13380 "preproc.y" + { (yyval.str) = mm_strdup("true"); } -#line 52924 "preproc.c" /* yacc.c:1652 */ +#line 53589 "preproc.c" break; - case 2304: -#line 13384 "preproc.y" /* yacc.c:1652 */ - { + case 2304: /* AexprConst: FALSE_P */ +#line 13384 "preproc.y" + { (yyval.str) = mm_strdup("false"); } -#line 52932 "preproc.c" /* yacc.c:1652 */ +#line 53597 "preproc.c" break; - case 2305: -#line 13388 "preproc.y" /* yacc.c:1652 */ - { + case 2305: /* AexprConst: NULL_P */ +#line 13388 "preproc.y" + { (yyval.str) = mm_strdup("null"); } -#line 52940 "preproc.c" /* yacc.c:1652 */ +#line 53605 "preproc.c" break; - case 2306: -#line 13391 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 52946 "preproc.c" /* yacc.c:1652 */ + case 2306: /* AexprConst: civar */ +#line 13391 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 53611 "preproc.c" break; - case 2307: -#line 13392 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 52952 "preproc.c" /* yacc.c:1652 */ + case 2307: /* AexprConst: civarind */ +#line 13392 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 53617 "preproc.c" break; - case 2308: -#line 13398 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make_name(); } -#line 52958 "preproc.c" /* yacc.c:1652 */ + case 2308: /* Iconst: ICONST */ +#line 13398 "preproc.y" + { (yyval.str) = make_name(); } +#line 53623 "preproc.c" break; - case 2309: -#line 13404 "preproc.y" /* yacc.c:1652 */ - { + case 2309: /* SignedIconst: Iconst */ +#line 13404 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52966 "preproc.c" /* yacc.c:1652 */ +#line 53631 "preproc.c" break; - case 2310: -#line 13407 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 52972 "preproc.c" /* yacc.c:1652 */ + case 2310: /* SignedIconst: civar */ +#line 13407 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 53637 "preproc.c" break; - case 2311: -#line 13409 "preproc.y" /* yacc.c:1652 */ - { + case 2311: /* SignedIconst: '+' Iconst */ +#line 13409 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 52980 "preproc.c" /* yacc.c:1652 */ +#line 53645 "preproc.c" break; - case 2312: -#line 13413 "preproc.y" /* yacc.c:1652 */ - { + case 2312: /* SignedIconst: '-' Iconst */ +#line 13413 "preproc.y" + { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 52988 "preproc.c" /* yacc.c:1652 */ +#line 53653 "preproc.c" break; - case 2313: -#line 13421 "preproc.y" /* yacc.c:1652 */ - { + case 2313: /* RoleId: RoleSpec */ +#line 13421 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 52996 "preproc.c" /* yacc.c:1652 */ +#line 53661 "preproc.c" break; - case 2314: -#line 13429 "preproc.y" /* yacc.c:1652 */ - { + case 2314: /* RoleSpec: NonReservedWord */ +#line 13429 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 53004 "preproc.c" /* yacc.c:1652 */ +#line 53669 "preproc.c" break; - case 2315: -#line 13433 "preproc.y" /* yacc.c:1652 */ - { + case 2315: /* RoleSpec: CURRENT_USER */ +#line 13433 "preproc.y" + { (yyval.str) = mm_strdup("current_user"); } -#line 53012 "preproc.c" /* yacc.c:1652 */ +#line 53677 "preproc.c" break; - case 2316: -#line 13437 "preproc.y" /* yacc.c:1652 */ - { + case 2316: /* RoleSpec: SESSION_USER */ +#line 13437 "preproc.y" + { (yyval.str) = mm_strdup("session_user"); } -#line 53020 "preproc.c" /* yacc.c:1652 */ +#line 53685 "preproc.c" break; - case 2317: -#line 13445 "preproc.y" /* yacc.c:1652 */ - { + case 2317: /* role_list: RoleSpec */ +#line 13445 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 53028 "preproc.c" /* yacc.c:1652 */ +#line 53693 "preproc.c" break; - case 2318: -#line 13449 "preproc.y" /* yacc.c:1652 */ - { + case 2318: /* role_list: role_list ',' RoleSpec */ +#line 13449 "preproc.y" + { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 53036 "preproc.c" /* yacc.c:1652 */ +#line 53701 "preproc.c" break; - case 2319: -#line 13457 "preproc.y" /* yacc.c:1652 */ - { + case 2319: /* NonReservedWord: ecpg_ident */ +#line 13457 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 53044 "preproc.c" /* yacc.c:1652 */ +#line 53709 "preproc.c" break; - case 2320: -#line 13461 "preproc.y" /* yacc.c:1652 */ - { + case 2320: /* NonReservedWord: unreserved_keyword */ +#line 13461 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 53052 "preproc.c" /* yacc.c:1652 */ +#line 53717 "preproc.c" break; - case 2321: -#line 13465 "preproc.y" /* yacc.c:1652 */ - { + case 2321: /* NonReservedWord: col_name_keyword */ +#line 13465 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 53060 "preproc.c" /* yacc.c:1652 */ +#line 53725 "preproc.c" break; - case 2322: -#line 13469 "preproc.y" /* yacc.c:1652 */ - { + case 2322: /* NonReservedWord: type_func_name_keyword */ +#line 13469 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 53068 "preproc.c" /* yacc.c:1652 */ +#line 53733 "preproc.c" break; - case 2323: -#line 13477 "preproc.y" /* yacc.c:1652 */ - { + case 2323: /* unreserved_keyword: ABORT_P */ +#line 13477 "preproc.y" + { (yyval.str) = mm_strdup("abort"); } -#line 53076 "preproc.c" /* yacc.c:1652 */ +#line 53741 "preproc.c" break; - case 2324: -#line 13481 "preproc.y" /* yacc.c:1652 */ - { + case 2324: /* unreserved_keyword: ABSOLUTE_P */ +#line 13481 "preproc.y" + { (yyval.str) = mm_strdup("absolute"); } -#line 53084 "preproc.c" /* yacc.c:1652 */ +#line 53749 "preproc.c" break; - case 2325: -#line 13485 "preproc.y" /* yacc.c:1652 */ - { + case 2325: /* unreserved_keyword: ACCESS */ +#line 13485 "preproc.y" + { (yyval.str) = mm_strdup("access"); } -#line 53092 "preproc.c" /* yacc.c:1652 */ +#line 53757 "preproc.c" break; - case 2326: -#line 13489 "preproc.y" /* yacc.c:1652 */ - { + case 2326: /* unreserved_keyword: ACTION */ +#line 13489 "preproc.y" + { (yyval.str) = mm_strdup("action"); } -#line 53100 "preproc.c" /* yacc.c:1652 */ +#line 53765 "preproc.c" break; - case 2327: -#line 13493 "preproc.y" /* yacc.c:1652 */ - { + case 2327: /* unreserved_keyword: ADD_P */ +#line 13493 "preproc.y" + { (yyval.str) = mm_strdup("add"); } -#line 53108 "preproc.c" /* yacc.c:1652 */ +#line 53773 "preproc.c" break; - case 2328: -#line 13497 "preproc.y" /* yacc.c:1652 */ - { + case 2328: /* unreserved_keyword: ADMIN */ +#line 13497 "preproc.y" + { (yyval.str) = mm_strdup("admin"); } -#line 53116 "preproc.c" /* yacc.c:1652 */ +#line 53781 "preproc.c" break; - case 2329: -#line 13501 "preproc.y" /* yacc.c:1652 */ - { + case 2329: /* unreserved_keyword: AFTER */ +#line 13501 "preproc.y" + { (yyval.str) = mm_strdup("after"); } -#line 53124 "preproc.c" /* yacc.c:1652 */ +#line 53789 "preproc.c" break; - case 2330: -#line 13505 "preproc.y" /* yacc.c:1652 */ - { + case 2330: /* unreserved_keyword: AGGREGATE */ +#line 13505 "preproc.y" + { (yyval.str) = mm_strdup("aggregate"); } -#line 53132 "preproc.c" /* yacc.c:1652 */ +#line 53797 "preproc.c" break; - case 2331: -#line 13509 "preproc.y" /* yacc.c:1652 */ - { + case 2331: /* unreserved_keyword: ALSO */ +#line 13509 "preproc.y" + { (yyval.str) = mm_strdup("also"); } -#line 53140 "preproc.c" /* yacc.c:1652 */ +#line 53805 "preproc.c" break; - case 2332: -#line 13513 "preproc.y" /* yacc.c:1652 */ - { + case 2332: /* unreserved_keyword: ALTER */ +#line 13513 "preproc.y" + { (yyval.str) = mm_strdup("alter"); } -#line 53148 "preproc.c" /* yacc.c:1652 */ +#line 53813 "preproc.c" break; - case 2333: -#line 13517 "preproc.y" /* yacc.c:1652 */ - { + case 2333: /* unreserved_keyword: ALWAYS */ +#line 13517 "preproc.y" + { (yyval.str) = mm_strdup("always"); } -#line 53156 "preproc.c" /* yacc.c:1652 */ +#line 53821 "preproc.c" break; - case 2334: -#line 13521 "preproc.y" /* yacc.c:1652 */ - { + case 2334: /* unreserved_keyword: ASSERTION */ +#line 13521 "preproc.y" + { (yyval.str) = mm_strdup("assertion"); } -#line 53164 "preproc.c" /* yacc.c:1652 */ +#line 53829 "preproc.c" break; - case 2335: -#line 13525 "preproc.y" /* yacc.c:1652 */ - { + case 2335: /* unreserved_keyword: ASSIGNMENT */ +#line 13525 "preproc.y" + { (yyval.str) = mm_strdup("assignment"); } -#line 53172 "preproc.c" /* yacc.c:1652 */ +#line 53837 "preproc.c" break; - case 2336: -#line 13529 "preproc.y" /* yacc.c:1652 */ - { + case 2336: /* unreserved_keyword: AT */ +#line 13529 "preproc.y" + { (yyval.str) = mm_strdup("at"); } -#line 53180 "preproc.c" /* yacc.c:1652 */ +#line 53845 "preproc.c" break; - case 2337: -#line 13533 "preproc.y" /* yacc.c:1652 */ - { + case 2337: /* unreserved_keyword: ATTACH */ +#line 13533 "preproc.y" + { (yyval.str) = mm_strdup("attach"); } -#line 53188 "preproc.c" /* yacc.c:1652 */ +#line 53853 "preproc.c" break; - case 2338: -#line 13537 "preproc.y" /* yacc.c:1652 */ - { + case 2338: /* unreserved_keyword: ATTRIBUTE */ +#line 13537 "preproc.y" + { (yyval.str) = mm_strdup("attribute"); } -#line 53196 "preproc.c" /* yacc.c:1652 */ +#line 53861 "preproc.c" break; - case 2339: -#line 13541 "preproc.y" /* yacc.c:1652 */ - { + case 2339: /* unreserved_keyword: BACKWARD */ +#line 13541 "preproc.y" + { (yyval.str) = mm_strdup("backward"); } -#line 53204 "preproc.c" /* yacc.c:1652 */ +#line 53869 "preproc.c" break; - case 2340: -#line 13545 "preproc.y" /* yacc.c:1652 */ - { + case 2340: /* unreserved_keyword: BEFORE */ +#line 13545 "preproc.y" + { (yyval.str) = mm_strdup("before"); } -#line 53212 "preproc.c" /* yacc.c:1652 */ +#line 53877 "preproc.c" break; - case 2341: -#line 13549 "preproc.y" /* yacc.c:1652 */ - { + case 2341: /* unreserved_keyword: BEGIN_P */ +#line 13549 "preproc.y" + { (yyval.str) = mm_strdup("begin"); } -#line 53220 "preproc.c" /* yacc.c:1652 */ +#line 53885 "preproc.c" break; - case 2342: -#line 13553 "preproc.y" /* yacc.c:1652 */ - { + case 2342: /* unreserved_keyword: BY */ +#line 13553 "preproc.y" + { (yyval.str) = mm_strdup("by"); } -#line 53228 "preproc.c" /* yacc.c:1652 */ +#line 53893 "preproc.c" break; - case 2343: -#line 13557 "preproc.y" /* yacc.c:1652 */ - { + case 2343: /* unreserved_keyword: CACHE */ +#line 13557 "preproc.y" + { (yyval.str) = mm_strdup("cache"); } -#line 53236 "preproc.c" /* yacc.c:1652 */ +#line 53901 "preproc.c" break; - case 2344: -#line 13561 "preproc.y" /* yacc.c:1652 */ - { + case 2344: /* unreserved_keyword: CALL */ +#line 13561 "preproc.y" + { (yyval.str) = mm_strdup("call"); } -#line 53244 "preproc.c" /* yacc.c:1652 */ +#line 53909 "preproc.c" break; - case 2345: -#line 13565 "preproc.y" /* yacc.c:1652 */ - { + case 2345: /* unreserved_keyword: CALLED */ +#line 13565 "preproc.y" + { (yyval.str) = mm_strdup("called"); } -#line 53252 "preproc.c" /* yacc.c:1652 */ +#line 53917 "preproc.c" break; - case 2346: -#line 13569 "preproc.y" /* yacc.c:1652 */ - { + case 2346: /* unreserved_keyword: CASCADE */ +#line 13569 "preproc.y" + { (yyval.str) = mm_strdup("cascade"); } -#line 53260 "preproc.c" /* yacc.c:1652 */ +#line 53925 "preproc.c" break; - case 2347: -#line 13573 "preproc.y" /* yacc.c:1652 */ - { + case 2347: /* unreserved_keyword: CASCADED */ +#line 13573 "preproc.y" + { (yyval.str) = mm_strdup("cascaded"); } -#line 53268 "preproc.c" /* yacc.c:1652 */ +#line 53933 "preproc.c" break; - case 2348: -#line 13577 "preproc.y" /* yacc.c:1652 */ - { + case 2348: /* unreserved_keyword: CATALOG_P */ +#line 13577 "preproc.y" + { (yyval.str) = mm_strdup("catalog"); } -#line 53276 "preproc.c" /* yacc.c:1652 */ +#line 53941 "preproc.c" break; - case 2349: -#line 13581 "preproc.y" /* yacc.c:1652 */ - { + case 2349: /* unreserved_keyword: CHAIN */ +#line 13581 "preproc.y" + { (yyval.str) = mm_strdup("chain"); } -#line 53284 "preproc.c" /* yacc.c:1652 */ +#line 53949 "preproc.c" break; - case 2350: -#line 13585 "preproc.y" /* yacc.c:1652 */ - { + case 2350: /* unreserved_keyword: CHARACTERISTICS */ +#line 13585 "preproc.y" + { (yyval.str) = mm_strdup("characteristics"); } -#line 53292 "preproc.c" /* yacc.c:1652 */ +#line 53957 "preproc.c" break; - case 2351: -#line 13589 "preproc.y" /* yacc.c:1652 */ - { + case 2351: /* unreserved_keyword: CHECKPOINT */ +#line 13589 "preproc.y" + { (yyval.str) = mm_strdup("checkpoint"); } -#line 53300 "preproc.c" /* yacc.c:1652 */ +#line 53965 "preproc.c" break; - case 2352: -#line 13593 "preproc.y" /* yacc.c:1652 */ - { + case 2352: /* unreserved_keyword: CLASS */ +#line 13593 "preproc.y" + { (yyval.str) = mm_strdup("class"); } -#line 53308 "preproc.c" /* yacc.c:1652 */ +#line 53973 "preproc.c" break; - case 2353: -#line 13597 "preproc.y" /* yacc.c:1652 */ - { + case 2353: /* unreserved_keyword: CLOSE */ +#line 13597 "preproc.y" + { (yyval.str) = mm_strdup("close"); } -#line 53316 "preproc.c" /* yacc.c:1652 */ +#line 53981 "preproc.c" break; - case 2354: -#line 13601 "preproc.y" /* yacc.c:1652 */ - { + case 2354: /* unreserved_keyword: CLUSTER */ +#line 13601 "preproc.y" + { (yyval.str) = mm_strdup("cluster"); } -#line 53324 "preproc.c" /* yacc.c:1652 */ +#line 53989 "preproc.c" break; - case 2355: -#line 13605 "preproc.y" /* yacc.c:1652 */ - { + case 2355: /* unreserved_keyword: COLUMNS */ +#line 13605 "preproc.y" + { (yyval.str) = mm_strdup("columns"); } -#line 53332 "preproc.c" /* yacc.c:1652 */ +#line 53997 "preproc.c" break; - case 2356: -#line 13609 "preproc.y" /* yacc.c:1652 */ - { + case 2356: /* unreserved_keyword: COMMENT */ +#line 13609 "preproc.y" + { (yyval.str) = mm_strdup("comment"); } -#line 53340 "preproc.c" /* yacc.c:1652 */ +#line 54005 "preproc.c" break; - case 2357: -#line 13613 "preproc.y" /* yacc.c:1652 */ - { + case 2357: /* unreserved_keyword: COMMENTS */ +#line 13613 "preproc.y" + { (yyval.str) = mm_strdup("comments"); } -#line 53348 "preproc.c" /* yacc.c:1652 */ +#line 54013 "preproc.c" break; - case 2358: -#line 13617 "preproc.y" /* yacc.c:1652 */ - { + case 2358: /* unreserved_keyword: COMMIT */ +#line 13617 "preproc.y" + { (yyval.str) = mm_strdup("commit"); } -#line 53356 "preproc.c" /* yacc.c:1652 */ +#line 54021 "preproc.c" break; - case 2359: -#line 13621 "preproc.y" /* yacc.c:1652 */ - { + case 2359: /* unreserved_keyword: COMMITTED */ +#line 13621 "preproc.y" + { (yyval.str) = mm_strdup("committed"); } -#line 53364 "preproc.c" /* yacc.c:1652 */ +#line 54029 "preproc.c" break; - case 2360: -#line 13625 "preproc.y" /* yacc.c:1652 */ - { + case 2360: /* unreserved_keyword: CONFIGURATION */ +#line 13625 "preproc.y" + { (yyval.str) = mm_strdup("configuration"); } -#line 53372 "preproc.c" /* yacc.c:1652 */ +#line 54037 "preproc.c" break; - case 2361: -#line 13629 "preproc.y" /* yacc.c:1652 */ - { + case 2361: /* unreserved_keyword: CONFLICT */ +#line 13629 "preproc.y" + { (yyval.str) = mm_strdup("conflict"); } -#line 53380 "preproc.c" /* yacc.c:1652 */ +#line 54045 "preproc.c" break; - case 2362: -#line 13633 "preproc.y" /* yacc.c:1652 */ - { + case 2362: /* unreserved_keyword: CONSTRAINTS */ +#line 13633 "preproc.y" + { (yyval.str) = mm_strdup("constraints"); } -#line 53388 "preproc.c" /* yacc.c:1652 */ +#line 54053 "preproc.c" break; - case 2363: -#line 13637 "preproc.y" /* yacc.c:1652 */ - { + case 2363: /* unreserved_keyword: CONTENT_P */ +#line 13637 "preproc.y" + { (yyval.str) = mm_strdup("content"); } -#line 53396 "preproc.c" /* yacc.c:1652 */ +#line 54061 "preproc.c" break; - case 2364: -#line 13641 "preproc.y" /* yacc.c:1652 */ - { + case 2364: /* unreserved_keyword: CONTINUE_P */ +#line 13641 "preproc.y" + { (yyval.str) = mm_strdup("continue"); } -#line 53404 "preproc.c" /* yacc.c:1652 */ +#line 54069 "preproc.c" break; - case 2365: -#line 13645 "preproc.y" /* yacc.c:1652 */ - { + case 2365: /* unreserved_keyword: CONVERSION_P */ +#line 13645 "preproc.y" + { (yyval.str) = mm_strdup("conversion"); } -#line 53412 "preproc.c" /* yacc.c:1652 */ +#line 54077 "preproc.c" break; - case 2366: -#line 13649 "preproc.y" /* yacc.c:1652 */ - { + case 2366: /* unreserved_keyword: COPY */ +#line 13649 "preproc.y" + { (yyval.str) = mm_strdup("copy"); } -#line 53420 "preproc.c" /* yacc.c:1652 */ +#line 54085 "preproc.c" break; - case 2367: -#line 13653 "preproc.y" /* yacc.c:1652 */ - { + case 2367: /* unreserved_keyword: COST */ +#line 13653 "preproc.y" + { (yyval.str) = mm_strdup("cost"); } -#line 53428 "preproc.c" /* yacc.c:1652 */ +#line 54093 "preproc.c" break; - case 2368: -#line 13657 "preproc.y" /* yacc.c:1652 */ - { + case 2368: /* unreserved_keyword: CSV */ +#line 13657 "preproc.y" + { (yyval.str) = mm_strdup("csv"); } -#line 53436 "preproc.c" /* yacc.c:1652 */ +#line 54101 "preproc.c" break; - case 2369: -#line 13661 "preproc.y" /* yacc.c:1652 */ - { + case 2369: /* unreserved_keyword: CUBE */ +#line 13661 "preproc.y" + { (yyval.str) = mm_strdup("cube"); } -#line 53444 "preproc.c" /* yacc.c:1652 */ +#line 54109 "preproc.c" break; - case 2370: -#line 13665 "preproc.y" /* yacc.c:1652 */ - { + case 2370: /* unreserved_keyword: CURSOR */ +#line 13665 "preproc.y" + { (yyval.str) = mm_strdup("cursor"); } -#line 53452 "preproc.c" /* yacc.c:1652 */ +#line 54117 "preproc.c" break; - case 2371: -#line 13669 "preproc.y" /* yacc.c:1652 */ - { + case 2371: /* unreserved_keyword: CYCLE */ +#line 13669 "preproc.y" + { (yyval.str) = mm_strdup("cycle"); } -#line 53460 "preproc.c" /* yacc.c:1652 */ +#line 54125 "preproc.c" break; - case 2372: -#line 13673 "preproc.y" /* yacc.c:1652 */ - { + case 2372: /* unreserved_keyword: DATA_P */ +#line 13673 "preproc.y" + { (yyval.str) = mm_strdup("data"); } -#line 53468 "preproc.c" /* yacc.c:1652 */ +#line 54133 "preproc.c" break; - case 2373: -#line 13677 "preproc.y" /* yacc.c:1652 */ - { + case 2373: /* unreserved_keyword: DATABASE */ +#line 13677 "preproc.y" + { (yyval.str) = mm_strdup("database"); } -#line 53476 "preproc.c" /* yacc.c:1652 */ +#line 54141 "preproc.c" break; - case 2374: -#line 13681 "preproc.y" /* yacc.c:1652 */ - { + case 2374: /* unreserved_keyword: DEALLOCATE */ +#line 13681 "preproc.y" + { (yyval.str) = mm_strdup("deallocate"); } -#line 53484 "preproc.c" /* yacc.c:1652 */ +#line 54149 "preproc.c" break; - case 2375: -#line 13685 "preproc.y" /* yacc.c:1652 */ - { + case 2375: /* unreserved_keyword: DECLARE */ +#line 13685 "preproc.y" + { (yyval.str) = mm_strdup("declare"); } -#line 53492 "preproc.c" /* yacc.c:1652 */ +#line 54157 "preproc.c" break; - case 2376: -#line 13689 "preproc.y" /* yacc.c:1652 */ - { + case 2376: /* unreserved_keyword: DEFAULTS */ +#line 13689 "preproc.y" + { (yyval.str) = mm_strdup("defaults"); } -#line 53500 "preproc.c" /* yacc.c:1652 */ +#line 54165 "preproc.c" break; - case 2377: -#line 13693 "preproc.y" /* yacc.c:1652 */ - { + case 2377: /* unreserved_keyword: DEFERRED */ +#line 13693 "preproc.y" + { (yyval.str) = mm_strdup("deferred"); } -#line 53508 "preproc.c" /* yacc.c:1652 */ +#line 54173 "preproc.c" break; - case 2378: -#line 13697 "preproc.y" /* yacc.c:1652 */ - { + case 2378: /* unreserved_keyword: DEFINER */ +#line 13697 "preproc.y" + { (yyval.str) = mm_strdup("definer"); } -#line 53516 "preproc.c" /* yacc.c:1652 */ +#line 54181 "preproc.c" break; - case 2379: -#line 13701 "preproc.y" /* yacc.c:1652 */ - { + case 2379: /* unreserved_keyword: DELETE_P */ +#line 13701 "preproc.y" + { (yyval.str) = mm_strdup("delete"); } -#line 53524 "preproc.c" /* yacc.c:1652 */ +#line 54189 "preproc.c" break; - case 2380: -#line 13705 "preproc.y" /* yacc.c:1652 */ - { + case 2380: /* unreserved_keyword: DELIMITER */ +#line 13705 "preproc.y" + { (yyval.str) = mm_strdup("delimiter"); } -#line 53532 "preproc.c" /* yacc.c:1652 */ +#line 54197 "preproc.c" break; - case 2381: -#line 13709 "preproc.y" /* yacc.c:1652 */ - { + case 2381: /* unreserved_keyword: DELIMITERS */ +#line 13709 "preproc.y" + { (yyval.str) = mm_strdup("delimiters"); } -#line 53540 "preproc.c" /* yacc.c:1652 */ +#line 54205 "preproc.c" break; - case 2382: -#line 13713 "preproc.y" /* yacc.c:1652 */ - { + case 2382: /* unreserved_keyword: DEPENDS */ +#line 13713 "preproc.y" + { (yyval.str) = mm_strdup("depends"); } -#line 53548 "preproc.c" /* yacc.c:1652 */ +#line 54213 "preproc.c" break; - case 2383: -#line 13717 "preproc.y" /* yacc.c:1652 */ - { + case 2383: /* unreserved_keyword: DETACH */ +#line 13717 "preproc.y" + { (yyval.str) = mm_strdup("detach"); } -#line 53556 "preproc.c" /* yacc.c:1652 */ +#line 54221 "preproc.c" break; - case 2384: -#line 13721 "preproc.y" /* yacc.c:1652 */ - { + case 2384: /* unreserved_keyword: DICTIONARY */ +#line 13721 "preproc.y" + { (yyval.str) = mm_strdup("dictionary"); } -#line 53564 "preproc.c" /* yacc.c:1652 */ +#line 54229 "preproc.c" break; - case 2385: -#line 13725 "preproc.y" /* yacc.c:1652 */ - { + case 2385: /* unreserved_keyword: DISABLE_P */ +#line 13725 "preproc.y" + { (yyval.str) = mm_strdup("disable"); } -#line 53572 "preproc.c" /* yacc.c:1652 */ +#line 54237 "preproc.c" break; - case 2386: -#line 13729 "preproc.y" /* yacc.c:1652 */ - { + case 2386: /* unreserved_keyword: DISCARD */ +#line 13729 "preproc.y" + { (yyval.str) = mm_strdup("discard"); } -#line 53580 "preproc.c" /* yacc.c:1652 */ +#line 54245 "preproc.c" break; - case 2387: -#line 13733 "preproc.y" /* yacc.c:1652 */ - { + case 2387: /* unreserved_keyword: DOCUMENT_P */ +#line 13733 "preproc.y" + { (yyval.str) = mm_strdup("document"); } -#line 53588 "preproc.c" /* yacc.c:1652 */ +#line 54253 "preproc.c" break; - case 2388: -#line 13737 "preproc.y" /* yacc.c:1652 */ - { + case 2388: /* unreserved_keyword: DOMAIN_P */ +#line 13737 "preproc.y" + { (yyval.str) = mm_strdup("domain"); } -#line 53596 "preproc.c" /* yacc.c:1652 */ +#line 54261 "preproc.c" break; - case 2389: -#line 13741 "preproc.y" /* yacc.c:1652 */ - { + case 2389: /* unreserved_keyword: DOUBLE_P */ +#line 13741 "preproc.y" + { (yyval.str) = mm_strdup("double"); } -#line 53604 "preproc.c" /* yacc.c:1652 */ +#line 54269 "preproc.c" break; - case 2390: -#line 13745 "preproc.y" /* yacc.c:1652 */ - { + case 2390: /* unreserved_keyword: DROP */ +#line 13745 "preproc.y" + { (yyval.str) = mm_strdup("drop"); } -#line 53612 "preproc.c" /* yacc.c:1652 */ +#line 54277 "preproc.c" break; - case 2391: -#line 13749 "preproc.y" /* yacc.c:1652 */ - { + case 2391: /* unreserved_keyword: EACH */ +#line 13749 "preproc.y" + { (yyval.str) = mm_strdup("each"); } -#line 53620 "preproc.c" /* yacc.c:1652 */ +#line 54285 "preproc.c" break; - case 2392: -#line 13753 "preproc.y" /* yacc.c:1652 */ - { + case 2392: /* unreserved_keyword: ENABLE_P */ +#line 13753 "preproc.y" + { (yyval.str) = mm_strdup("enable"); } -#line 53628 "preproc.c" /* yacc.c:1652 */ +#line 54293 "preproc.c" break; - case 2393: -#line 13757 "preproc.y" /* yacc.c:1652 */ - { + case 2393: /* unreserved_keyword: ENCODING */ +#line 13757 "preproc.y" + { (yyval.str) = mm_strdup("encoding"); } -#line 53636 "preproc.c" /* yacc.c:1652 */ +#line 54301 "preproc.c" break; - case 2394: -#line 13761 "preproc.y" /* yacc.c:1652 */ - { + case 2394: /* unreserved_keyword: ENCRYPTED */ +#line 13761 "preproc.y" + { (yyval.str) = mm_strdup("encrypted"); } -#line 53644 "preproc.c" /* yacc.c:1652 */ +#line 54309 "preproc.c" break; - case 2395: -#line 13765 "preproc.y" /* yacc.c:1652 */ - { + case 2395: /* unreserved_keyword: ENUM_P */ +#line 13765 "preproc.y" + { (yyval.str) = mm_strdup("enum"); } -#line 53652 "preproc.c" /* yacc.c:1652 */ +#line 54317 "preproc.c" break; - case 2396: -#line 13769 "preproc.y" /* yacc.c:1652 */ - { + case 2396: /* unreserved_keyword: ESCAPE */ +#line 13769 "preproc.y" + { (yyval.str) = mm_strdup("escape"); } -#line 53660 "preproc.c" /* yacc.c:1652 */ +#line 54325 "preproc.c" break; - case 2397: -#line 13773 "preproc.y" /* yacc.c:1652 */ - { + case 2397: /* unreserved_keyword: EVENT */ +#line 13773 "preproc.y" + { (yyval.str) = mm_strdup("event"); } -#line 53668 "preproc.c" /* yacc.c:1652 */ +#line 54333 "preproc.c" break; - case 2398: -#line 13777 "preproc.y" /* yacc.c:1652 */ - { + case 2398: /* unreserved_keyword: EXCLUDE */ +#line 13777 "preproc.y" + { (yyval.str) = mm_strdup("exclude"); } -#line 53676 "preproc.c" /* yacc.c:1652 */ +#line 54341 "preproc.c" break; - case 2399: -#line 13781 "preproc.y" /* yacc.c:1652 */ - { + case 2399: /* unreserved_keyword: EXCLUDING */ +#line 13781 "preproc.y" + { (yyval.str) = mm_strdup("excluding"); } -#line 53684 "preproc.c" /* yacc.c:1652 */ +#line 54349 "preproc.c" break; - case 2400: -#line 13785 "preproc.y" /* yacc.c:1652 */ - { + case 2400: /* unreserved_keyword: EXCLUSIVE */ +#line 13785 "preproc.y" + { (yyval.str) = mm_strdup("exclusive"); } -#line 53692 "preproc.c" /* yacc.c:1652 */ +#line 54357 "preproc.c" break; - case 2401: -#line 13789 "preproc.y" /* yacc.c:1652 */ - { + case 2401: /* unreserved_keyword: EXECUTE */ +#line 13789 "preproc.y" + { (yyval.str) = mm_strdup("execute"); } -#line 53700 "preproc.c" /* yacc.c:1652 */ +#line 54365 "preproc.c" break; - case 2402: -#line 13793 "preproc.y" /* yacc.c:1652 */ - { + case 2402: /* unreserved_keyword: EXPLAIN */ +#line 13793 "preproc.y" + { (yyval.str) = mm_strdup("explain"); } -#line 53708 "preproc.c" /* yacc.c:1652 */ +#line 54373 "preproc.c" break; - case 2403: -#line 13797 "preproc.y" /* yacc.c:1652 */ - { + case 2403: /* unreserved_keyword: EXPRESSION */ +#line 13797 "preproc.y" + { (yyval.str) = mm_strdup("expression"); } -#line 53716 "preproc.c" /* yacc.c:1652 */ +#line 54381 "preproc.c" break; - case 2404: -#line 13801 "preproc.y" /* yacc.c:1652 */ - { + case 2404: /* unreserved_keyword: EXTENSION */ +#line 13801 "preproc.y" + { (yyval.str) = mm_strdup("extension"); } -#line 53724 "preproc.c" /* yacc.c:1652 */ +#line 54389 "preproc.c" break; - case 2405: -#line 13805 "preproc.y" /* yacc.c:1652 */ - { + case 2405: /* unreserved_keyword: EXTERNAL */ +#line 13805 "preproc.y" + { (yyval.str) = mm_strdup("external"); } -#line 53732 "preproc.c" /* yacc.c:1652 */ +#line 54397 "preproc.c" break; - case 2406: -#line 13809 "preproc.y" /* yacc.c:1652 */ - { + case 2406: /* unreserved_keyword: FAMILY */ +#line 13809 "preproc.y" + { (yyval.str) = mm_strdup("family"); } -#line 53740 "preproc.c" /* yacc.c:1652 */ +#line 54405 "preproc.c" break; - case 2407: -#line 13813 "preproc.y" /* yacc.c:1652 */ - { + case 2407: /* unreserved_keyword: FILTER */ +#line 13813 "preproc.y" + { (yyval.str) = mm_strdup("filter"); } -#line 53748 "preproc.c" /* yacc.c:1652 */ +#line 54413 "preproc.c" break; - case 2408: -#line 13817 "preproc.y" /* yacc.c:1652 */ - { + case 2408: /* unreserved_keyword: FIRST_P */ +#line 13817 "preproc.y" + { (yyval.str) = mm_strdup("first"); } -#line 53756 "preproc.c" /* yacc.c:1652 */ +#line 54421 "preproc.c" break; - case 2409: -#line 13821 "preproc.y" /* yacc.c:1652 */ - { + case 2409: /* unreserved_keyword: FOLLOWING */ +#line 13821 "preproc.y" + { (yyval.str) = mm_strdup("following"); } -#line 53764 "preproc.c" /* yacc.c:1652 */ +#line 54429 "preproc.c" break; - case 2410: -#line 13825 "preproc.y" /* yacc.c:1652 */ - { + case 2410: /* unreserved_keyword: FORCE */ +#line 13825 "preproc.y" + { (yyval.str) = mm_strdup("force"); } -#line 53772 "preproc.c" /* yacc.c:1652 */ +#line 54437 "preproc.c" break; - case 2411: -#line 13829 "preproc.y" /* yacc.c:1652 */ - { + case 2411: /* unreserved_keyword: FORWARD */ +#line 13829 "preproc.y" + { (yyval.str) = mm_strdup("forward"); } -#line 53780 "preproc.c" /* yacc.c:1652 */ +#line 54445 "preproc.c" break; - case 2412: -#line 13833 "preproc.y" /* yacc.c:1652 */ - { + case 2412: /* unreserved_keyword: FUNCTION */ +#line 13833 "preproc.y" + { (yyval.str) = mm_strdup("function"); } -#line 53788 "preproc.c" /* yacc.c:1652 */ +#line 54453 "preproc.c" break; - case 2413: -#line 13837 "preproc.y" /* yacc.c:1652 */ - { + case 2413: /* unreserved_keyword: FUNCTIONS */ +#line 13837 "preproc.y" + { (yyval.str) = mm_strdup("functions"); } -#line 53796 "preproc.c" /* yacc.c:1652 */ +#line 54461 "preproc.c" break; - case 2414: -#line 13841 "preproc.y" /* yacc.c:1652 */ - { + case 2414: /* unreserved_keyword: GENERATED */ +#line 13841 "preproc.y" + { (yyval.str) = mm_strdup("generated"); } -#line 53804 "preproc.c" /* yacc.c:1652 */ +#line 54469 "preproc.c" break; - case 2415: -#line 13845 "preproc.y" /* yacc.c:1652 */ - { + case 2415: /* unreserved_keyword: GLOBAL */ +#line 13845 "preproc.y" + { (yyval.str) = mm_strdup("global"); } -#line 53812 "preproc.c" /* yacc.c:1652 */ +#line 54477 "preproc.c" break; - case 2416: -#line 13849 "preproc.y" /* yacc.c:1652 */ - { + case 2416: /* unreserved_keyword: GRANTED */ +#line 13849 "preproc.y" + { (yyval.str) = mm_strdup("granted"); } -#line 53820 "preproc.c" /* yacc.c:1652 */ +#line 54485 "preproc.c" break; - case 2417: -#line 13853 "preproc.y" /* yacc.c:1652 */ - { + case 2417: /* unreserved_keyword: GROUPS */ +#line 13853 "preproc.y" + { (yyval.str) = mm_strdup("groups"); } -#line 53828 "preproc.c" /* yacc.c:1652 */ +#line 54493 "preproc.c" break; - case 2418: -#line 13857 "preproc.y" /* yacc.c:1652 */ - { + case 2418: /* unreserved_keyword: HANDLER */ +#line 13857 "preproc.y" + { (yyval.str) = mm_strdup("handler"); } -#line 53836 "preproc.c" /* yacc.c:1652 */ +#line 54501 "preproc.c" break; - case 2419: -#line 13861 "preproc.y" /* yacc.c:1652 */ - { + case 2419: /* unreserved_keyword: HEADER_P */ +#line 13861 "preproc.y" + { (yyval.str) = mm_strdup("header"); } -#line 53844 "preproc.c" /* yacc.c:1652 */ +#line 54509 "preproc.c" break; - case 2420: -#line 13865 "preproc.y" /* yacc.c:1652 */ - { + case 2420: /* unreserved_keyword: HOLD */ +#line 13865 "preproc.y" + { (yyval.str) = mm_strdup("hold"); } -#line 53852 "preproc.c" /* yacc.c:1652 */ +#line 54517 "preproc.c" break; - case 2421: -#line 13869 "preproc.y" /* yacc.c:1652 */ - { + case 2421: /* unreserved_keyword: IDENTITY_P */ +#line 13869 "preproc.y" + { (yyval.str) = mm_strdup("identity"); } -#line 53860 "preproc.c" /* yacc.c:1652 */ +#line 54525 "preproc.c" break; - case 2422: -#line 13873 "preproc.y" /* yacc.c:1652 */ - { + case 2422: /* unreserved_keyword: IF_P */ +#line 13873 "preproc.y" + { (yyval.str) = mm_strdup("if"); } -#line 53868 "preproc.c" /* yacc.c:1652 */ +#line 54533 "preproc.c" break; - case 2423: -#line 13877 "preproc.y" /* yacc.c:1652 */ - { + case 2423: /* unreserved_keyword: IMMEDIATE */ +#line 13877 "preproc.y" + { (yyval.str) = mm_strdup("immediate"); } -#line 53876 "preproc.c" /* yacc.c:1652 */ +#line 54541 "preproc.c" break; - case 2424: -#line 13881 "preproc.y" /* yacc.c:1652 */ - { + case 2424: /* unreserved_keyword: IMMUTABLE */ +#line 13881 "preproc.y" + { (yyval.str) = mm_strdup("immutable"); } -#line 53884 "preproc.c" /* yacc.c:1652 */ +#line 54549 "preproc.c" break; - case 2425: -#line 13885 "preproc.y" /* yacc.c:1652 */ - { + case 2425: /* unreserved_keyword: IMPLICIT_P */ +#line 13885 "preproc.y" + { (yyval.str) = mm_strdup("implicit"); } -#line 53892 "preproc.c" /* yacc.c:1652 */ +#line 54557 "preproc.c" break; - case 2426: -#line 13889 "preproc.y" /* yacc.c:1652 */ - { + case 2426: /* unreserved_keyword: IMPORT_P */ +#line 13889 "preproc.y" + { (yyval.str) = mm_strdup("import"); } -#line 53900 "preproc.c" /* yacc.c:1652 */ +#line 54565 "preproc.c" break; - case 2427: -#line 13893 "preproc.y" /* yacc.c:1652 */ - { + case 2427: /* unreserved_keyword: INCLUDE */ +#line 13893 "preproc.y" + { (yyval.str) = mm_strdup("include"); } -#line 53908 "preproc.c" /* yacc.c:1652 */ +#line 54573 "preproc.c" break; - case 2428: -#line 13897 "preproc.y" /* yacc.c:1652 */ - { + case 2428: /* unreserved_keyword: INCLUDING */ +#line 13897 "preproc.y" + { (yyval.str) = mm_strdup("including"); } -#line 53916 "preproc.c" /* yacc.c:1652 */ +#line 54581 "preproc.c" break; - case 2429: -#line 13901 "preproc.y" /* yacc.c:1652 */ - { + case 2429: /* unreserved_keyword: INCREMENT */ +#line 13901 "preproc.y" + { (yyval.str) = mm_strdup("increment"); } -#line 53924 "preproc.c" /* yacc.c:1652 */ +#line 54589 "preproc.c" break; - case 2430: -#line 13905 "preproc.y" /* yacc.c:1652 */ - { + case 2430: /* unreserved_keyword: INDEX */ +#line 13905 "preproc.y" + { (yyval.str) = mm_strdup("index"); } -#line 53932 "preproc.c" /* yacc.c:1652 */ +#line 54597 "preproc.c" break; - case 2431: -#line 13909 "preproc.y" /* yacc.c:1652 */ - { + case 2431: /* unreserved_keyword: INDEXES */ +#line 13909 "preproc.y" + { (yyval.str) = mm_strdup("indexes"); } -#line 53940 "preproc.c" /* yacc.c:1652 */ +#line 54605 "preproc.c" break; - case 2432: -#line 13913 "preproc.y" /* yacc.c:1652 */ - { + case 2432: /* unreserved_keyword: INHERIT */ +#line 13913 "preproc.y" + { (yyval.str) = mm_strdup("inherit"); } -#line 53948 "preproc.c" /* yacc.c:1652 */ +#line 54613 "preproc.c" break; - case 2433: -#line 13917 "preproc.y" /* yacc.c:1652 */ - { + case 2433: /* unreserved_keyword: INHERITS */ +#line 13917 "preproc.y" + { (yyval.str) = mm_strdup("inherits"); } -#line 53956 "preproc.c" /* yacc.c:1652 */ +#line 54621 "preproc.c" break; - case 2434: -#line 13921 "preproc.y" /* yacc.c:1652 */ - { + case 2434: /* unreserved_keyword: INLINE_P */ +#line 13921 "preproc.y" + { (yyval.str) = mm_strdup("inline"); } -#line 53964 "preproc.c" /* yacc.c:1652 */ +#line 54629 "preproc.c" break; - case 2435: -#line 13925 "preproc.y" /* yacc.c:1652 */ - { + case 2435: /* unreserved_keyword: INSENSITIVE */ +#line 13925 "preproc.y" + { (yyval.str) = mm_strdup("insensitive"); } -#line 53972 "preproc.c" /* yacc.c:1652 */ +#line 54637 "preproc.c" break; - case 2436: -#line 13929 "preproc.y" /* yacc.c:1652 */ - { + case 2436: /* unreserved_keyword: INSERT */ +#line 13929 "preproc.y" + { (yyval.str) = mm_strdup("insert"); } -#line 53980 "preproc.c" /* yacc.c:1652 */ +#line 54645 "preproc.c" break; - case 2437: -#line 13933 "preproc.y" /* yacc.c:1652 */ - { + case 2437: /* unreserved_keyword: INSTEAD */ +#line 13933 "preproc.y" + { (yyval.str) = mm_strdup("instead"); } -#line 53988 "preproc.c" /* yacc.c:1652 */ +#line 54653 "preproc.c" break; - case 2438: -#line 13937 "preproc.y" /* yacc.c:1652 */ - { + case 2438: /* unreserved_keyword: INVOKER */ +#line 13937 "preproc.y" + { (yyval.str) = mm_strdup("invoker"); } -#line 53996 "preproc.c" /* yacc.c:1652 */ +#line 54661 "preproc.c" break; - case 2439: -#line 13941 "preproc.y" /* yacc.c:1652 */ - { + case 2439: /* unreserved_keyword: ISOLATION */ +#line 13941 "preproc.y" + { (yyval.str) = mm_strdup("isolation"); } -#line 54004 "preproc.c" /* yacc.c:1652 */ +#line 54669 "preproc.c" break; - case 2440: -#line 13945 "preproc.y" /* yacc.c:1652 */ - { + case 2440: /* unreserved_keyword: KEY */ +#line 13945 "preproc.y" + { (yyval.str) = mm_strdup("key"); } -#line 54012 "preproc.c" /* yacc.c:1652 */ +#line 54677 "preproc.c" break; - case 2441: -#line 13949 "preproc.y" /* yacc.c:1652 */ - { + case 2441: /* unreserved_keyword: LABEL */ +#line 13949 "preproc.y" + { (yyval.str) = mm_strdup("label"); } -#line 54020 "preproc.c" /* yacc.c:1652 */ +#line 54685 "preproc.c" break; - case 2442: -#line 13953 "preproc.y" /* yacc.c:1652 */ - { + case 2442: /* unreserved_keyword: LANGUAGE */ +#line 13953 "preproc.y" + { (yyval.str) = mm_strdup("language"); } -#line 54028 "preproc.c" /* yacc.c:1652 */ +#line 54693 "preproc.c" break; - case 2443: -#line 13957 "preproc.y" /* yacc.c:1652 */ - { + case 2443: /* unreserved_keyword: LARGE_P */ +#line 13957 "preproc.y" + { (yyval.str) = mm_strdup("large"); } -#line 54036 "preproc.c" /* yacc.c:1652 */ +#line 54701 "preproc.c" break; - case 2444: -#line 13961 "preproc.y" /* yacc.c:1652 */ - { + case 2444: /* unreserved_keyword: LAST_P */ +#line 13961 "preproc.y" + { (yyval.str) = mm_strdup("last"); } -#line 54044 "preproc.c" /* yacc.c:1652 */ +#line 54709 "preproc.c" break; - case 2445: -#line 13965 "preproc.y" /* yacc.c:1652 */ - { + case 2445: /* unreserved_keyword: LEAKPROOF */ +#line 13965 "preproc.y" + { (yyval.str) = mm_strdup("leakproof"); } -#line 54052 "preproc.c" /* yacc.c:1652 */ +#line 54717 "preproc.c" break; - case 2446: -#line 13969 "preproc.y" /* yacc.c:1652 */ - { + case 2446: /* unreserved_keyword: LEVEL */ +#line 13969 "preproc.y" + { (yyval.str) = mm_strdup("level"); } -#line 54060 "preproc.c" /* yacc.c:1652 */ +#line 54725 "preproc.c" break; - case 2447: -#line 13973 "preproc.y" /* yacc.c:1652 */ - { + case 2447: /* unreserved_keyword: LISTEN */ +#line 13973 "preproc.y" + { (yyval.str) = mm_strdup("listen"); } -#line 54068 "preproc.c" /* yacc.c:1652 */ +#line 54733 "preproc.c" break; - case 2448: -#line 13977 "preproc.y" /* yacc.c:1652 */ - { + case 2448: /* unreserved_keyword: LOAD */ +#line 13977 "preproc.y" + { (yyval.str) = mm_strdup("load"); } -#line 54076 "preproc.c" /* yacc.c:1652 */ +#line 54741 "preproc.c" break; - case 2449: -#line 13981 "preproc.y" /* yacc.c:1652 */ - { + case 2449: /* unreserved_keyword: LOCAL */ +#line 13981 "preproc.y" + { (yyval.str) = mm_strdup("local"); } -#line 54084 "preproc.c" /* yacc.c:1652 */ +#line 54749 "preproc.c" break; - case 2450: -#line 13985 "preproc.y" /* yacc.c:1652 */ - { + case 2450: /* unreserved_keyword: LOCATION */ +#line 13985 "preproc.y" + { (yyval.str) = mm_strdup("location"); } -#line 54092 "preproc.c" /* yacc.c:1652 */ +#line 54757 "preproc.c" break; - case 2451: -#line 13989 "preproc.y" /* yacc.c:1652 */ - { + case 2451: /* unreserved_keyword: LOCK_P */ +#line 13989 "preproc.y" + { (yyval.str) = mm_strdup("lock"); } -#line 54100 "preproc.c" /* yacc.c:1652 */ +#line 54765 "preproc.c" break; - case 2452: -#line 13993 "preproc.y" /* yacc.c:1652 */ - { + case 2452: /* unreserved_keyword: LOCKED */ +#line 13993 "preproc.y" + { (yyval.str) = mm_strdup("locked"); } -#line 54108 "preproc.c" /* yacc.c:1652 */ +#line 54773 "preproc.c" break; - case 2453: -#line 13997 "preproc.y" /* yacc.c:1652 */ - { + case 2453: /* unreserved_keyword: LOGGED */ +#line 13997 "preproc.y" + { (yyval.str) = mm_strdup("logged"); } -#line 54116 "preproc.c" /* yacc.c:1652 */ +#line 54781 "preproc.c" break; - case 2454: -#line 14001 "preproc.y" /* yacc.c:1652 */ - { + case 2454: /* unreserved_keyword: MAPPING */ +#line 14001 "preproc.y" + { (yyval.str) = mm_strdup("mapping"); } -#line 54124 "preproc.c" /* yacc.c:1652 */ +#line 54789 "preproc.c" break; - case 2455: -#line 14005 "preproc.y" /* yacc.c:1652 */ - { + case 2455: /* unreserved_keyword: MATCH */ +#line 14005 "preproc.y" + { (yyval.str) = mm_strdup("match"); } -#line 54132 "preproc.c" /* yacc.c:1652 */ +#line 54797 "preproc.c" break; - case 2456: -#line 14009 "preproc.y" /* yacc.c:1652 */ - { + case 2456: /* unreserved_keyword: MATERIALIZED */ +#line 14009 "preproc.y" + { (yyval.str) = mm_strdup("materialized"); } -#line 54140 "preproc.c" /* yacc.c:1652 */ +#line 54805 "preproc.c" break; - case 2457: -#line 14013 "preproc.y" /* yacc.c:1652 */ - { + case 2457: /* unreserved_keyword: MAXVALUE */ +#line 14013 "preproc.y" + { (yyval.str) = mm_strdup("maxvalue"); } -#line 54148 "preproc.c" /* yacc.c:1652 */ +#line 54813 "preproc.c" break; - case 2458: -#line 14017 "preproc.y" /* yacc.c:1652 */ - { + case 2458: /* unreserved_keyword: METHOD */ +#line 14017 "preproc.y" + { (yyval.str) = mm_strdup("method"); } -#line 54156 "preproc.c" /* yacc.c:1652 */ +#line 54821 "preproc.c" break; - case 2459: -#line 14021 "preproc.y" /* yacc.c:1652 */ - { + case 2459: /* unreserved_keyword: MINVALUE */ +#line 14021 "preproc.y" + { (yyval.str) = mm_strdup("minvalue"); } -#line 54164 "preproc.c" /* yacc.c:1652 */ +#line 54829 "preproc.c" break; - case 2460: -#line 14025 "preproc.y" /* yacc.c:1652 */ - { + case 2460: /* unreserved_keyword: MODE */ +#line 14025 "preproc.y" + { (yyval.str) = mm_strdup("mode"); } -#line 54172 "preproc.c" /* yacc.c:1652 */ +#line 54837 "preproc.c" break; - case 2461: -#line 14029 "preproc.y" /* yacc.c:1652 */ - { + case 2461: /* unreserved_keyword: MOVE */ +#line 14029 "preproc.y" + { (yyval.str) = mm_strdup("move"); } -#line 54180 "preproc.c" /* yacc.c:1652 */ +#line 54845 "preproc.c" break; - case 2462: -#line 14033 "preproc.y" /* yacc.c:1652 */ - { + case 2462: /* unreserved_keyword: NAME_P */ +#line 14033 "preproc.y" + { (yyval.str) = mm_strdup("name"); } -#line 54188 "preproc.c" /* yacc.c:1652 */ +#line 54853 "preproc.c" break; - case 2463: -#line 14037 "preproc.y" /* yacc.c:1652 */ - { + case 2463: /* unreserved_keyword: NAMES */ +#line 14037 "preproc.y" + { (yyval.str) = mm_strdup("names"); } -#line 54196 "preproc.c" /* yacc.c:1652 */ +#line 54861 "preproc.c" break; - case 2464: -#line 14041 "preproc.y" /* yacc.c:1652 */ - { + case 2464: /* unreserved_keyword: NEW */ +#line 14041 "preproc.y" + { (yyval.str) = mm_strdup("new"); } -#line 54204 "preproc.c" /* yacc.c:1652 */ +#line 54869 "preproc.c" break; - case 2465: -#line 14045 "preproc.y" /* yacc.c:1652 */ - { + case 2465: /* unreserved_keyword: NEXT */ +#line 14045 "preproc.y" + { (yyval.str) = mm_strdup("next"); } -#line 54212 "preproc.c" /* yacc.c:1652 */ +#line 54877 "preproc.c" break; - case 2466: -#line 14049 "preproc.y" /* yacc.c:1652 */ - { + case 2466: /* unreserved_keyword: NFC */ +#line 14049 "preproc.y" + { (yyval.str) = mm_strdup("nfc"); } -#line 54220 "preproc.c" /* yacc.c:1652 */ +#line 54885 "preproc.c" break; - case 2467: -#line 14053 "preproc.y" /* yacc.c:1652 */ - { + case 2467: /* unreserved_keyword: NFD */ +#line 14053 "preproc.y" + { (yyval.str) = mm_strdup("nfd"); } -#line 54228 "preproc.c" /* yacc.c:1652 */ +#line 54893 "preproc.c" break; - case 2468: -#line 14057 "preproc.y" /* yacc.c:1652 */ - { + case 2468: /* unreserved_keyword: NFKC */ +#line 14057 "preproc.y" + { (yyval.str) = mm_strdup("nfkc"); } -#line 54236 "preproc.c" /* yacc.c:1652 */ +#line 54901 "preproc.c" break; - case 2469: -#line 14061 "preproc.y" /* yacc.c:1652 */ - { + case 2469: /* unreserved_keyword: NFKD */ +#line 14061 "preproc.y" + { (yyval.str) = mm_strdup("nfkd"); } -#line 54244 "preproc.c" /* yacc.c:1652 */ +#line 54909 "preproc.c" break; - case 2470: -#line 14065 "preproc.y" /* yacc.c:1652 */ - { + case 2470: /* unreserved_keyword: NO */ +#line 14065 "preproc.y" + { (yyval.str) = mm_strdup("no"); } -#line 54252 "preproc.c" /* yacc.c:1652 */ +#line 54917 "preproc.c" break; - case 2471: -#line 14069 "preproc.y" /* yacc.c:1652 */ - { + case 2471: /* unreserved_keyword: NORMALIZED */ +#line 14069 "preproc.y" + { (yyval.str) = mm_strdup("normalized"); } -#line 54260 "preproc.c" /* yacc.c:1652 */ +#line 54925 "preproc.c" break; - case 2472: -#line 14073 "preproc.y" /* yacc.c:1652 */ - { + case 2472: /* unreserved_keyword: NOTHING */ +#line 14073 "preproc.y" + { (yyval.str) = mm_strdup("nothing"); } -#line 54268 "preproc.c" /* yacc.c:1652 */ +#line 54933 "preproc.c" break; - case 2473: -#line 14077 "preproc.y" /* yacc.c:1652 */ - { + case 2473: /* unreserved_keyword: NOTIFY */ +#line 14077 "preproc.y" + { (yyval.str) = mm_strdup("notify"); } -#line 54276 "preproc.c" /* yacc.c:1652 */ +#line 54941 "preproc.c" break; - case 2474: -#line 14081 "preproc.y" /* yacc.c:1652 */ - { + case 2474: /* unreserved_keyword: NOWAIT */ +#line 14081 "preproc.y" + { (yyval.str) = mm_strdup("nowait"); } -#line 54284 "preproc.c" /* yacc.c:1652 */ +#line 54949 "preproc.c" break; - case 2475: -#line 14085 "preproc.y" /* yacc.c:1652 */ - { + case 2475: /* unreserved_keyword: NULLS_P */ +#line 14085 "preproc.y" + { (yyval.str) = mm_strdup("nulls"); } -#line 54292 "preproc.c" /* yacc.c:1652 */ +#line 54957 "preproc.c" break; - case 2476: -#line 14089 "preproc.y" /* yacc.c:1652 */ - { + case 2476: /* unreserved_keyword: OBJECT_P */ +#line 14089 "preproc.y" + { (yyval.str) = mm_strdup("object"); } -#line 54300 "preproc.c" /* yacc.c:1652 */ +#line 54965 "preproc.c" break; - case 2477: -#line 14093 "preproc.y" /* yacc.c:1652 */ - { + case 2477: /* unreserved_keyword: OF */ +#line 14093 "preproc.y" + { (yyval.str) = mm_strdup("of"); } -#line 54308 "preproc.c" /* yacc.c:1652 */ +#line 54973 "preproc.c" break; - case 2478: -#line 14097 "preproc.y" /* yacc.c:1652 */ - { + case 2478: /* unreserved_keyword: OFF */ +#line 14097 "preproc.y" + { (yyval.str) = mm_strdup("off"); } -#line 54316 "preproc.c" /* yacc.c:1652 */ +#line 54981 "preproc.c" break; - case 2479: -#line 14101 "preproc.y" /* yacc.c:1652 */ - { + case 2479: /* unreserved_keyword: OIDS */ +#line 14101 "preproc.y" + { (yyval.str) = mm_strdup("oids"); } -#line 54324 "preproc.c" /* yacc.c:1652 */ +#line 54989 "preproc.c" break; - case 2480: -#line 14105 "preproc.y" /* yacc.c:1652 */ - { + case 2480: /* unreserved_keyword: OLD */ +#line 14105 "preproc.y" + { (yyval.str) = mm_strdup("old"); } -#line 54332 "preproc.c" /* yacc.c:1652 */ +#line 54997 "preproc.c" break; - case 2481: -#line 14109 "preproc.y" /* yacc.c:1652 */ - { + case 2481: /* unreserved_keyword: OPERATOR */ +#line 14109 "preproc.y" + { (yyval.str) = mm_strdup("operator"); } -#line 54340 "preproc.c" /* yacc.c:1652 */ +#line 55005 "preproc.c" break; - case 2482: -#line 14113 "preproc.y" /* yacc.c:1652 */ - { + case 2482: /* unreserved_keyword: OPTION */ +#line 14113 "preproc.y" + { (yyval.str) = mm_strdup("option"); } -#line 54348 "preproc.c" /* yacc.c:1652 */ +#line 55013 "preproc.c" break; - case 2483: -#line 14117 "preproc.y" /* yacc.c:1652 */ - { + case 2483: /* unreserved_keyword: OPTIONS */ +#line 14117 "preproc.y" + { (yyval.str) = mm_strdup("options"); } -#line 54356 "preproc.c" /* yacc.c:1652 */ +#line 55021 "preproc.c" break; - case 2484: -#line 14121 "preproc.y" /* yacc.c:1652 */ - { + case 2484: /* unreserved_keyword: ORDINALITY */ +#line 14121 "preproc.y" + { (yyval.str) = mm_strdup("ordinality"); } -#line 54364 "preproc.c" /* yacc.c:1652 */ +#line 55029 "preproc.c" break; - case 2485: -#line 14125 "preproc.y" /* yacc.c:1652 */ - { + case 2485: /* unreserved_keyword: OTHERS */ +#line 14125 "preproc.y" + { (yyval.str) = mm_strdup("others"); } -#line 54372 "preproc.c" /* yacc.c:1652 */ +#line 55037 "preproc.c" break; - case 2486: -#line 14129 "preproc.y" /* yacc.c:1652 */ - { + case 2486: /* unreserved_keyword: OVER */ +#line 14129 "preproc.y" + { (yyval.str) = mm_strdup("over"); } -#line 54380 "preproc.c" /* yacc.c:1652 */ +#line 55045 "preproc.c" break; - case 2487: -#line 14133 "preproc.y" /* yacc.c:1652 */ - { + case 2487: /* unreserved_keyword: OVERRIDING */ +#line 14133 "preproc.y" + { (yyval.str) = mm_strdup("overriding"); } -#line 54388 "preproc.c" /* yacc.c:1652 */ +#line 55053 "preproc.c" break; - case 2488: -#line 14137 "preproc.y" /* yacc.c:1652 */ - { + case 2488: /* unreserved_keyword: OWNED */ +#line 14137 "preproc.y" + { (yyval.str) = mm_strdup("owned"); } -#line 54396 "preproc.c" /* yacc.c:1652 */ +#line 55061 "preproc.c" break; - case 2489: -#line 14141 "preproc.y" /* yacc.c:1652 */ - { + case 2489: /* unreserved_keyword: OWNER */ +#line 14141 "preproc.y" + { (yyval.str) = mm_strdup("owner"); } -#line 54404 "preproc.c" /* yacc.c:1652 */ +#line 55069 "preproc.c" break; - case 2490: -#line 14145 "preproc.y" /* yacc.c:1652 */ - { + case 2490: /* unreserved_keyword: PARALLEL */ +#line 14145 "preproc.y" + { (yyval.str) = mm_strdup("parallel"); } -#line 54412 "preproc.c" /* yacc.c:1652 */ +#line 55077 "preproc.c" break; - case 2491: -#line 14149 "preproc.y" /* yacc.c:1652 */ - { + case 2491: /* unreserved_keyword: PARSER */ +#line 14149 "preproc.y" + { (yyval.str) = mm_strdup("parser"); } -#line 54420 "preproc.c" /* yacc.c:1652 */ +#line 55085 "preproc.c" break; - case 2492: -#line 14153 "preproc.y" /* yacc.c:1652 */ - { + case 2492: /* unreserved_keyword: PARTIAL */ +#line 14153 "preproc.y" + { (yyval.str) = mm_strdup("partial"); } -#line 54428 "preproc.c" /* yacc.c:1652 */ +#line 55093 "preproc.c" break; - case 2493: -#line 14157 "preproc.y" /* yacc.c:1652 */ - { + case 2493: /* unreserved_keyword: PARTITION */ +#line 14157 "preproc.y" + { (yyval.str) = mm_strdup("partition"); } -#line 54436 "preproc.c" /* yacc.c:1652 */ +#line 55101 "preproc.c" break; - case 2494: -#line 14161 "preproc.y" /* yacc.c:1652 */ - { + case 2494: /* unreserved_keyword: PASSING */ +#line 14161 "preproc.y" + { (yyval.str) = mm_strdup("passing"); } -#line 54444 "preproc.c" /* yacc.c:1652 */ +#line 55109 "preproc.c" break; - case 2495: -#line 14165 "preproc.y" /* yacc.c:1652 */ - { + case 2495: /* unreserved_keyword: PASSWORD */ +#line 14165 "preproc.y" + { (yyval.str) = mm_strdup("password"); } -#line 54452 "preproc.c" /* yacc.c:1652 */ +#line 55117 "preproc.c" break; - case 2496: -#line 14169 "preproc.y" /* yacc.c:1652 */ - { + case 2496: /* unreserved_keyword: PLANS */ +#line 14169 "preproc.y" + { (yyval.str) = mm_strdup("plans"); } -#line 54460 "preproc.c" /* yacc.c:1652 */ +#line 55125 "preproc.c" break; - case 2497: -#line 14173 "preproc.y" /* yacc.c:1652 */ - { + case 2497: /* unreserved_keyword: POLICY */ +#line 14173 "preproc.y" + { (yyval.str) = mm_strdup("policy"); } -#line 54468 "preproc.c" /* yacc.c:1652 */ +#line 55133 "preproc.c" break; - case 2498: -#line 14177 "preproc.y" /* yacc.c:1652 */ - { + case 2498: /* unreserved_keyword: PRECEDING */ +#line 14177 "preproc.y" + { (yyval.str) = mm_strdup("preceding"); } -#line 54476 "preproc.c" /* yacc.c:1652 */ +#line 55141 "preproc.c" break; - case 2499: -#line 14181 "preproc.y" /* yacc.c:1652 */ - { + case 2499: /* unreserved_keyword: PREPARE */ +#line 14181 "preproc.y" + { (yyval.str) = mm_strdup("prepare"); } -#line 54484 "preproc.c" /* yacc.c:1652 */ +#line 55149 "preproc.c" break; - case 2500: -#line 14185 "preproc.y" /* yacc.c:1652 */ - { + case 2500: /* unreserved_keyword: PREPARED */ +#line 14185 "preproc.y" + { (yyval.str) = mm_strdup("prepared"); } -#line 54492 "preproc.c" /* yacc.c:1652 */ +#line 55157 "preproc.c" break; - case 2501: -#line 14189 "preproc.y" /* yacc.c:1652 */ - { + case 2501: /* unreserved_keyword: PRESERVE */ +#line 14189 "preproc.y" + { (yyval.str) = mm_strdup("preserve"); } -#line 54500 "preproc.c" /* yacc.c:1652 */ +#line 55165 "preproc.c" break; - case 2502: -#line 14193 "preproc.y" /* yacc.c:1652 */ - { + case 2502: /* unreserved_keyword: PRIOR */ +#line 14193 "preproc.y" + { (yyval.str) = mm_strdup("prior"); } -#line 54508 "preproc.c" /* yacc.c:1652 */ +#line 55173 "preproc.c" break; - case 2503: -#line 14197 "preproc.y" /* yacc.c:1652 */ - { + case 2503: /* unreserved_keyword: PRIVILEGES */ +#line 14197 "preproc.y" + { (yyval.str) = mm_strdup("privileges"); } -#line 54516 "preproc.c" /* yacc.c:1652 */ +#line 55181 "preproc.c" break; - case 2504: -#line 14201 "preproc.y" /* yacc.c:1652 */ - { + case 2504: /* unreserved_keyword: PROCEDURAL */ +#line 14201 "preproc.y" + { (yyval.str) = mm_strdup("procedural"); } -#line 54524 "preproc.c" /* yacc.c:1652 */ +#line 55189 "preproc.c" break; - case 2505: -#line 14205 "preproc.y" /* yacc.c:1652 */ - { + case 2505: /* unreserved_keyword: PROCEDURE */ +#line 14205 "preproc.y" + { (yyval.str) = mm_strdup("procedure"); } -#line 54532 "preproc.c" /* yacc.c:1652 */ +#line 55197 "preproc.c" break; - case 2506: -#line 14209 "preproc.y" /* yacc.c:1652 */ - { + case 2506: /* unreserved_keyword: PROCEDURES */ +#line 14209 "preproc.y" + { (yyval.str) = mm_strdup("procedures"); } -#line 54540 "preproc.c" /* yacc.c:1652 */ +#line 55205 "preproc.c" break; - case 2507: -#line 14213 "preproc.y" /* yacc.c:1652 */ - { + case 2507: /* unreserved_keyword: PROGRAM */ +#line 14213 "preproc.y" + { (yyval.str) = mm_strdup("program"); } -#line 54548 "preproc.c" /* yacc.c:1652 */ +#line 55213 "preproc.c" break; - case 2508: -#line 14217 "preproc.y" /* yacc.c:1652 */ - { + case 2508: /* unreserved_keyword: PUBLICATION */ +#line 14217 "preproc.y" + { (yyval.str) = mm_strdup("publication"); } -#line 54556 "preproc.c" /* yacc.c:1652 */ +#line 55221 "preproc.c" break; - case 2509: -#line 14221 "preproc.y" /* yacc.c:1652 */ - { + case 2509: /* unreserved_keyword: QUOTE */ +#line 14221 "preproc.y" + { (yyval.str) = mm_strdup("quote"); } -#line 54564 "preproc.c" /* yacc.c:1652 */ +#line 55229 "preproc.c" break; - case 2510: -#line 14225 "preproc.y" /* yacc.c:1652 */ - { + case 2510: /* unreserved_keyword: RANGE */ +#line 14225 "preproc.y" + { (yyval.str) = mm_strdup("range"); } -#line 54572 "preproc.c" /* yacc.c:1652 */ +#line 55237 "preproc.c" break; - case 2511: -#line 14229 "preproc.y" /* yacc.c:1652 */ - { + case 2511: /* unreserved_keyword: READ */ +#line 14229 "preproc.y" + { (yyval.str) = mm_strdup("read"); } -#line 54580 "preproc.c" /* yacc.c:1652 */ +#line 55245 "preproc.c" break; - case 2512: -#line 14233 "preproc.y" /* yacc.c:1652 */ - { + case 2512: /* unreserved_keyword: REASSIGN */ +#line 14233 "preproc.y" + { (yyval.str) = mm_strdup("reassign"); } -#line 54588 "preproc.c" /* yacc.c:1652 */ +#line 55253 "preproc.c" break; - case 2513: -#line 14237 "preproc.y" /* yacc.c:1652 */ - { + case 2513: /* unreserved_keyword: RECHECK */ +#line 14237 "preproc.y" + { (yyval.str) = mm_strdup("recheck"); } -#line 54596 "preproc.c" /* yacc.c:1652 */ +#line 55261 "preproc.c" break; - case 2514: -#line 14241 "preproc.y" /* yacc.c:1652 */ - { + case 2514: /* unreserved_keyword: RECURSIVE */ +#line 14241 "preproc.y" + { (yyval.str) = mm_strdup("recursive"); } -#line 54604 "preproc.c" /* yacc.c:1652 */ +#line 55269 "preproc.c" break; - case 2515: -#line 14245 "preproc.y" /* yacc.c:1652 */ - { + case 2515: /* unreserved_keyword: REF */ +#line 14245 "preproc.y" + { (yyval.str) = mm_strdup("ref"); } -#line 54612 "preproc.c" /* yacc.c:1652 */ +#line 55277 "preproc.c" break; - case 2516: -#line 14249 "preproc.y" /* yacc.c:1652 */ - { + case 2516: /* unreserved_keyword: REFERENCING */ +#line 14249 "preproc.y" + { (yyval.str) = mm_strdup("referencing"); } -#line 54620 "preproc.c" /* yacc.c:1652 */ +#line 55285 "preproc.c" break; - case 2517: -#line 14253 "preproc.y" /* yacc.c:1652 */ - { + case 2517: /* unreserved_keyword: REFRESH */ +#line 14253 "preproc.y" + { (yyval.str) = mm_strdup("refresh"); } -#line 54628 "preproc.c" /* yacc.c:1652 */ +#line 55293 "preproc.c" break; - case 2518: -#line 14257 "preproc.y" /* yacc.c:1652 */ - { + case 2518: /* unreserved_keyword: REINDEX */ +#line 14257 "preproc.y" + { (yyval.str) = mm_strdup("reindex"); } -#line 54636 "preproc.c" /* yacc.c:1652 */ +#line 55301 "preproc.c" break; - case 2519: -#line 14261 "preproc.y" /* yacc.c:1652 */ - { + case 2519: /* unreserved_keyword: RELATIVE_P */ +#line 14261 "preproc.y" + { (yyval.str) = mm_strdup("relative"); } -#line 54644 "preproc.c" /* yacc.c:1652 */ +#line 55309 "preproc.c" break; - case 2520: -#line 14265 "preproc.y" /* yacc.c:1652 */ - { + case 2520: /* unreserved_keyword: RELEASE */ +#line 14265 "preproc.y" + { (yyval.str) = mm_strdup("release"); } -#line 54652 "preproc.c" /* yacc.c:1652 */ +#line 55317 "preproc.c" break; - case 2521: -#line 14269 "preproc.y" /* yacc.c:1652 */ - { + case 2521: /* unreserved_keyword: RENAME */ +#line 14269 "preproc.y" + { (yyval.str) = mm_strdup("rename"); } -#line 54660 "preproc.c" /* yacc.c:1652 */ +#line 55325 "preproc.c" break; - case 2522: -#line 14273 "preproc.y" /* yacc.c:1652 */ - { + case 2522: /* unreserved_keyword: REPEATABLE */ +#line 14273 "preproc.y" + { (yyval.str) = mm_strdup("repeatable"); } -#line 54668 "preproc.c" /* yacc.c:1652 */ +#line 55333 "preproc.c" break; - case 2523: -#line 14277 "preproc.y" /* yacc.c:1652 */ - { + case 2523: /* unreserved_keyword: REPLACE */ +#line 14277 "preproc.y" + { (yyval.str) = mm_strdup("replace"); } -#line 54676 "preproc.c" /* yacc.c:1652 */ +#line 55341 "preproc.c" break; - case 2524: -#line 14281 "preproc.y" /* yacc.c:1652 */ - { + case 2524: /* unreserved_keyword: REPLICA */ +#line 14281 "preproc.y" + { (yyval.str) = mm_strdup("replica"); } -#line 54684 "preproc.c" /* yacc.c:1652 */ +#line 55349 "preproc.c" break; - case 2525: -#line 14285 "preproc.y" /* yacc.c:1652 */ - { + case 2525: /* unreserved_keyword: RESET */ +#line 14285 "preproc.y" + { (yyval.str) = mm_strdup("reset"); } -#line 54692 "preproc.c" /* yacc.c:1652 */ +#line 55357 "preproc.c" break; - case 2526: -#line 14289 "preproc.y" /* yacc.c:1652 */ - { + case 2526: /* unreserved_keyword: RESTART */ +#line 14289 "preproc.y" + { (yyval.str) = mm_strdup("restart"); } -#line 54700 "preproc.c" /* yacc.c:1652 */ +#line 55365 "preproc.c" break; - case 2527: -#line 14293 "preproc.y" /* yacc.c:1652 */ - { + case 2527: /* unreserved_keyword: RESTRICT */ +#line 14293 "preproc.y" + { (yyval.str) = mm_strdup("restrict"); } -#line 54708 "preproc.c" /* yacc.c:1652 */ +#line 55373 "preproc.c" break; - case 2528: -#line 14297 "preproc.y" /* yacc.c:1652 */ - { + case 2528: /* unreserved_keyword: RETURNS */ +#line 14297 "preproc.y" + { (yyval.str) = mm_strdup("returns"); } -#line 54716 "preproc.c" /* yacc.c:1652 */ +#line 55381 "preproc.c" break; - case 2529: -#line 14301 "preproc.y" /* yacc.c:1652 */ - { + case 2529: /* unreserved_keyword: REVOKE */ +#line 14301 "preproc.y" + { (yyval.str) = mm_strdup("revoke"); } -#line 54724 "preproc.c" /* yacc.c:1652 */ +#line 55389 "preproc.c" break; - case 2530: -#line 14305 "preproc.y" /* yacc.c:1652 */ - { + case 2530: /* unreserved_keyword: ROLE */ +#line 14305 "preproc.y" + { (yyval.str) = mm_strdup("role"); } -#line 54732 "preproc.c" /* yacc.c:1652 */ +#line 55397 "preproc.c" break; - case 2531: -#line 14309 "preproc.y" /* yacc.c:1652 */ - { + case 2531: /* unreserved_keyword: ROLLBACK */ +#line 14309 "preproc.y" + { (yyval.str) = mm_strdup("rollback"); } -#line 54740 "preproc.c" /* yacc.c:1652 */ +#line 55405 "preproc.c" break; - case 2532: -#line 14313 "preproc.y" /* yacc.c:1652 */ - { + case 2532: /* unreserved_keyword: ROLLUP */ +#line 14313 "preproc.y" + { (yyval.str) = mm_strdup("rollup"); } -#line 54748 "preproc.c" /* yacc.c:1652 */ +#line 55413 "preproc.c" break; - case 2533: -#line 14317 "preproc.y" /* yacc.c:1652 */ - { + case 2533: /* unreserved_keyword: ROUTINE */ +#line 14317 "preproc.y" + { (yyval.str) = mm_strdup("routine"); } -#line 54756 "preproc.c" /* yacc.c:1652 */ +#line 55421 "preproc.c" break; - case 2534: -#line 14321 "preproc.y" /* yacc.c:1652 */ - { + case 2534: /* unreserved_keyword: ROUTINES */ +#line 14321 "preproc.y" + { (yyval.str) = mm_strdup("routines"); } -#line 54764 "preproc.c" /* yacc.c:1652 */ +#line 55429 "preproc.c" break; - case 2535: -#line 14325 "preproc.y" /* yacc.c:1652 */ - { + case 2535: /* unreserved_keyword: ROWS */ +#line 14325 "preproc.y" + { (yyval.str) = mm_strdup("rows"); } -#line 54772 "preproc.c" /* yacc.c:1652 */ +#line 55437 "preproc.c" break; - case 2536: -#line 14329 "preproc.y" /* yacc.c:1652 */ - { + case 2536: /* unreserved_keyword: RULE */ +#line 14329 "preproc.y" + { (yyval.str) = mm_strdup("rule"); } -#line 54780 "preproc.c" /* yacc.c:1652 */ +#line 55445 "preproc.c" break; - case 2537: -#line 14333 "preproc.y" /* yacc.c:1652 */ - { + case 2537: /* unreserved_keyword: SAVEPOINT */ +#line 14333 "preproc.y" + { (yyval.str) = mm_strdup("savepoint"); } -#line 54788 "preproc.c" /* yacc.c:1652 */ +#line 55453 "preproc.c" break; - case 2538: -#line 14337 "preproc.y" /* yacc.c:1652 */ - { + case 2538: /* unreserved_keyword: SCHEMA */ +#line 14337 "preproc.y" + { (yyval.str) = mm_strdup("schema"); } -#line 54796 "preproc.c" /* yacc.c:1652 */ +#line 55461 "preproc.c" break; - case 2539: -#line 14341 "preproc.y" /* yacc.c:1652 */ - { + case 2539: /* unreserved_keyword: SCHEMAS */ +#line 14341 "preproc.y" + { (yyval.str) = mm_strdup("schemas"); } -#line 54804 "preproc.c" /* yacc.c:1652 */ +#line 55469 "preproc.c" break; - case 2540: -#line 14345 "preproc.y" /* yacc.c:1652 */ - { + case 2540: /* unreserved_keyword: SCROLL */ +#line 14345 "preproc.y" + { (yyval.str) = mm_strdup("scroll"); } -#line 54812 "preproc.c" /* yacc.c:1652 */ +#line 55477 "preproc.c" break; - case 2541: -#line 14349 "preproc.y" /* yacc.c:1652 */ - { + case 2541: /* unreserved_keyword: SEARCH */ +#line 14349 "preproc.y" + { (yyval.str) = mm_strdup("search"); } -#line 54820 "preproc.c" /* yacc.c:1652 */ +#line 55485 "preproc.c" break; - case 2542: -#line 14353 "preproc.y" /* yacc.c:1652 */ - { + case 2542: /* unreserved_keyword: SECURITY */ +#line 14353 "preproc.y" + { (yyval.str) = mm_strdup("security"); } -#line 54828 "preproc.c" /* yacc.c:1652 */ +#line 55493 "preproc.c" break; - case 2543: -#line 14357 "preproc.y" /* yacc.c:1652 */ - { + case 2543: /* unreserved_keyword: SEQUENCE */ +#line 14357 "preproc.y" + { (yyval.str) = mm_strdup("sequence"); } -#line 54836 "preproc.c" /* yacc.c:1652 */ +#line 55501 "preproc.c" break; - case 2544: -#line 14361 "preproc.y" /* yacc.c:1652 */ - { + case 2544: /* unreserved_keyword: SEQUENCES */ +#line 14361 "preproc.y" + { (yyval.str) = mm_strdup("sequences"); } -#line 54844 "preproc.c" /* yacc.c:1652 */ +#line 55509 "preproc.c" break; - case 2545: -#line 14365 "preproc.y" /* yacc.c:1652 */ - { + case 2545: /* unreserved_keyword: SERIALIZABLE */ +#line 14365 "preproc.y" + { (yyval.str) = mm_strdup("serializable"); } -#line 54852 "preproc.c" /* yacc.c:1652 */ +#line 55517 "preproc.c" break; - case 2546: -#line 14369 "preproc.y" /* yacc.c:1652 */ - { + case 2546: /* unreserved_keyword: SERVER */ +#line 14369 "preproc.y" + { (yyval.str) = mm_strdup("server"); } -#line 54860 "preproc.c" /* yacc.c:1652 */ +#line 55525 "preproc.c" break; - case 2547: -#line 14373 "preproc.y" /* yacc.c:1652 */ - { + case 2547: /* unreserved_keyword: SESSION */ +#line 14373 "preproc.y" + { (yyval.str) = mm_strdup("session"); } -#line 54868 "preproc.c" /* yacc.c:1652 */ +#line 55533 "preproc.c" break; - case 2548: -#line 14377 "preproc.y" /* yacc.c:1652 */ - { + case 2548: /* unreserved_keyword: SET */ +#line 14377 "preproc.y" + { (yyval.str) = mm_strdup("set"); } -#line 54876 "preproc.c" /* yacc.c:1652 */ +#line 55541 "preproc.c" break; - case 2549: -#line 14381 "preproc.y" /* yacc.c:1652 */ - { + case 2549: /* unreserved_keyword: SETS */ +#line 14381 "preproc.y" + { (yyval.str) = mm_strdup("sets"); } -#line 54884 "preproc.c" /* yacc.c:1652 */ +#line 55549 "preproc.c" break; - case 2550: -#line 14385 "preproc.y" /* yacc.c:1652 */ - { + case 2550: /* unreserved_keyword: SHARE */ +#line 14385 "preproc.y" + { (yyval.str) = mm_strdup("share"); } -#line 54892 "preproc.c" /* yacc.c:1652 */ +#line 55557 "preproc.c" break; - case 2551: -#line 14389 "preproc.y" /* yacc.c:1652 */ - { + case 2551: /* unreserved_keyword: SHOW */ +#line 14389 "preproc.y" + { (yyval.str) = mm_strdup("show"); } -#line 54900 "preproc.c" /* yacc.c:1652 */ +#line 55565 "preproc.c" break; - case 2552: -#line 14393 "preproc.y" /* yacc.c:1652 */ - { + case 2552: /* unreserved_keyword: SIMPLE */ +#line 14393 "preproc.y" + { (yyval.str) = mm_strdup("simple"); } -#line 54908 "preproc.c" /* yacc.c:1652 */ +#line 55573 "preproc.c" break; - case 2553: -#line 14397 "preproc.y" /* yacc.c:1652 */ - { + case 2553: /* unreserved_keyword: SKIP */ +#line 14397 "preproc.y" + { (yyval.str) = mm_strdup("skip"); } -#line 54916 "preproc.c" /* yacc.c:1652 */ +#line 55581 "preproc.c" break; - case 2554: -#line 14401 "preproc.y" /* yacc.c:1652 */ - { + case 2554: /* unreserved_keyword: SNAPSHOT */ +#line 14401 "preproc.y" + { (yyval.str) = mm_strdup("snapshot"); } -#line 54924 "preproc.c" /* yacc.c:1652 */ +#line 55589 "preproc.c" break; - case 2555: -#line 14405 "preproc.y" /* yacc.c:1652 */ - { + case 2555: /* unreserved_keyword: SQL_P */ +#line 14405 "preproc.y" + { (yyval.str) = mm_strdup("sql"); } -#line 54932 "preproc.c" /* yacc.c:1652 */ +#line 55597 "preproc.c" break; - case 2556: -#line 14409 "preproc.y" /* yacc.c:1652 */ - { + case 2556: /* unreserved_keyword: STABLE */ +#line 14409 "preproc.y" + { (yyval.str) = mm_strdup("stable"); } -#line 54940 "preproc.c" /* yacc.c:1652 */ +#line 55605 "preproc.c" break; - case 2557: -#line 14413 "preproc.y" /* yacc.c:1652 */ - { + case 2557: /* unreserved_keyword: STANDALONE_P */ +#line 14413 "preproc.y" + { (yyval.str) = mm_strdup("standalone"); } -#line 54948 "preproc.c" /* yacc.c:1652 */ +#line 55613 "preproc.c" break; - case 2558: -#line 14417 "preproc.y" /* yacc.c:1652 */ - { + case 2558: /* unreserved_keyword: START */ +#line 14417 "preproc.y" + { (yyval.str) = mm_strdup("start"); } -#line 54956 "preproc.c" /* yacc.c:1652 */ +#line 55621 "preproc.c" break; - case 2559: -#line 14421 "preproc.y" /* yacc.c:1652 */ - { + case 2559: /* unreserved_keyword: STATEMENT */ +#line 14421 "preproc.y" + { (yyval.str) = mm_strdup("statement"); } -#line 54964 "preproc.c" /* yacc.c:1652 */ +#line 55629 "preproc.c" break; - case 2560: -#line 14425 "preproc.y" /* yacc.c:1652 */ - { + case 2560: /* unreserved_keyword: STATISTICS */ +#line 14425 "preproc.y" + { (yyval.str) = mm_strdup("statistics"); } -#line 54972 "preproc.c" /* yacc.c:1652 */ +#line 55637 "preproc.c" break; - case 2561: -#line 14429 "preproc.y" /* yacc.c:1652 */ - { + case 2561: /* unreserved_keyword: STDIN */ +#line 14429 "preproc.y" + { (yyval.str) = mm_strdup("stdin"); } -#line 54980 "preproc.c" /* yacc.c:1652 */ +#line 55645 "preproc.c" break; - case 2562: -#line 14433 "preproc.y" /* yacc.c:1652 */ - { + case 2562: /* unreserved_keyword: STDOUT */ +#line 14433 "preproc.y" + { (yyval.str) = mm_strdup("stdout"); } -#line 54988 "preproc.c" /* yacc.c:1652 */ +#line 55653 "preproc.c" break; - case 2563: -#line 14437 "preproc.y" /* yacc.c:1652 */ - { + case 2563: /* unreserved_keyword: STORAGE */ +#line 14437 "preproc.y" + { (yyval.str) = mm_strdup("storage"); } -#line 54996 "preproc.c" /* yacc.c:1652 */ +#line 55661 "preproc.c" break; - case 2564: -#line 14441 "preproc.y" /* yacc.c:1652 */ - { + case 2564: /* unreserved_keyword: STORED */ +#line 14441 "preproc.y" + { (yyval.str) = mm_strdup("stored"); } -#line 55004 "preproc.c" /* yacc.c:1652 */ +#line 55669 "preproc.c" break; - case 2565: -#line 14445 "preproc.y" /* yacc.c:1652 */ - { + case 2565: /* unreserved_keyword: STRICT_P */ +#line 14445 "preproc.y" + { (yyval.str) = mm_strdup("strict"); } -#line 55012 "preproc.c" /* yacc.c:1652 */ +#line 55677 "preproc.c" break; - case 2566: -#line 14449 "preproc.y" /* yacc.c:1652 */ - { + case 2566: /* unreserved_keyword: STRIP_P */ +#line 14449 "preproc.y" + { (yyval.str) = mm_strdup("strip"); } -#line 55020 "preproc.c" /* yacc.c:1652 */ +#line 55685 "preproc.c" break; - case 2567: -#line 14453 "preproc.y" /* yacc.c:1652 */ - { + case 2567: /* unreserved_keyword: SUBSCRIPTION */ +#line 14453 "preproc.y" + { (yyval.str) = mm_strdup("subscription"); } -#line 55028 "preproc.c" /* yacc.c:1652 */ +#line 55693 "preproc.c" break; - case 2568: -#line 14457 "preproc.y" /* yacc.c:1652 */ - { + case 2568: /* unreserved_keyword: SUPPORT */ +#line 14457 "preproc.y" + { (yyval.str) = mm_strdup("support"); } -#line 55036 "preproc.c" /* yacc.c:1652 */ +#line 55701 "preproc.c" break; - case 2569: -#line 14461 "preproc.y" /* yacc.c:1652 */ - { + case 2569: /* unreserved_keyword: SYSID */ +#line 14461 "preproc.y" + { (yyval.str) = mm_strdup("sysid"); } -#line 55044 "preproc.c" /* yacc.c:1652 */ +#line 55709 "preproc.c" break; - case 2570: -#line 14465 "preproc.y" /* yacc.c:1652 */ - { + case 2570: /* unreserved_keyword: SYSTEM_P */ +#line 14465 "preproc.y" + { (yyval.str) = mm_strdup("system"); } -#line 55052 "preproc.c" /* yacc.c:1652 */ +#line 55717 "preproc.c" break; - case 2571: -#line 14469 "preproc.y" /* yacc.c:1652 */ - { + case 2571: /* unreserved_keyword: TABLES */ +#line 14469 "preproc.y" + { (yyval.str) = mm_strdup("tables"); } -#line 55060 "preproc.c" /* yacc.c:1652 */ +#line 55725 "preproc.c" break; - case 2572: -#line 14473 "preproc.y" /* yacc.c:1652 */ - { + case 2572: /* unreserved_keyword: TABLESPACE */ +#line 14473 "preproc.y" + { (yyval.str) = mm_strdup("tablespace"); } -#line 55068 "preproc.c" /* yacc.c:1652 */ +#line 55733 "preproc.c" break; - case 2573: -#line 14477 "preproc.y" /* yacc.c:1652 */ - { + case 2573: /* unreserved_keyword: TEMP */ +#line 14477 "preproc.y" + { (yyval.str) = mm_strdup("temp"); } -#line 55076 "preproc.c" /* yacc.c:1652 */ +#line 55741 "preproc.c" break; - case 2574: -#line 14481 "preproc.y" /* yacc.c:1652 */ - { + case 2574: /* unreserved_keyword: TEMPLATE */ +#line 14481 "preproc.y" + { (yyval.str) = mm_strdup("template"); } -#line 55084 "preproc.c" /* yacc.c:1652 */ +#line 55749 "preproc.c" break; - case 2575: -#line 14485 "preproc.y" /* yacc.c:1652 */ - { + case 2575: /* unreserved_keyword: TEMPORARY */ +#line 14485 "preproc.y" + { (yyval.str) = mm_strdup("temporary"); } -#line 55092 "preproc.c" /* yacc.c:1652 */ +#line 55757 "preproc.c" break; - case 2576: -#line 14489 "preproc.y" /* yacc.c:1652 */ - { + case 2576: /* unreserved_keyword: TEXT_P */ +#line 14489 "preproc.y" + { (yyval.str) = mm_strdup("text"); } -#line 55100 "preproc.c" /* yacc.c:1652 */ +#line 55765 "preproc.c" break; - case 2577: -#line 14493 "preproc.y" /* yacc.c:1652 */ - { + case 2577: /* unreserved_keyword: TIES */ +#line 14493 "preproc.y" + { (yyval.str) = mm_strdup("ties"); } -#line 55108 "preproc.c" /* yacc.c:1652 */ +#line 55773 "preproc.c" break; - case 2578: -#line 14497 "preproc.y" /* yacc.c:1652 */ - { + case 2578: /* unreserved_keyword: TRANSACTION */ +#line 14497 "preproc.y" + { (yyval.str) = mm_strdup("transaction"); } -#line 55116 "preproc.c" /* yacc.c:1652 */ +#line 55781 "preproc.c" break; - case 2579: -#line 14501 "preproc.y" /* yacc.c:1652 */ - { + case 2579: /* unreserved_keyword: TRANSFORM */ +#line 14501 "preproc.y" + { (yyval.str) = mm_strdup("transform"); } -#line 55124 "preproc.c" /* yacc.c:1652 */ +#line 55789 "preproc.c" break; - case 2580: -#line 14505 "preproc.y" /* yacc.c:1652 */ - { + case 2580: /* unreserved_keyword: TRIGGER */ +#line 14505 "preproc.y" + { (yyval.str) = mm_strdup("trigger"); } -#line 55132 "preproc.c" /* yacc.c:1652 */ +#line 55797 "preproc.c" break; - case 2581: -#line 14509 "preproc.y" /* yacc.c:1652 */ - { + case 2581: /* unreserved_keyword: TRUNCATE */ +#line 14509 "preproc.y" + { (yyval.str) = mm_strdup("truncate"); } -#line 55140 "preproc.c" /* yacc.c:1652 */ +#line 55805 "preproc.c" break; - case 2582: -#line 14513 "preproc.y" /* yacc.c:1652 */ - { + case 2582: /* unreserved_keyword: TRUSTED */ +#line 14513 "preproc.y" + { (yyval.str) = mm_strdup("trusted"); } -#line 55148 "preproc.c" /* yacc.c:1652 */ +#line 55813 "preproc.c" break; - case 2583: -#line 14517 "preproc.y" /* yacc.c:1652 */ - { + case 2583: /* unreserved_keyword: TYPE_P */ +#line 14517 "preproc.y" + { (yyval.str) = mm_strdup("type"); } -#line 55156 "preproc.c" /* yacc.c:1652 */ +#line 55821 "preproc.c" break; - case 2584: -#line 14521 "preproc.y" /* yacc.c:1652 */ - { + case 2584: /* unreserved_keyword: TYPES_P */ +#line 14521 "preproc.y" + { (yyval.str) = mm_strdup("types"); } -#line 55164 "preproc.c" /* yacc.c:1652 */ +#line 55829 "preproc.c" break; - case 2585: -#line 14525 "preproc.y" /* yacc.c:1652 */ - { + case 2585: /* unreserved_keyword: UESCAPE */ +#line 14525 "preproc.y" + { (yyval.str) = mm_strdup("uescape"); } -#line 55172 "preproc.c" /* yacc.c:1652 */ +#line 55837 "preproc.c" break; - case 2586: -#line 14529 "preproc.y" /* yacc.c:1652 */ - { + case 2586: /* unreserved_keyword: UNBOUNDED */ +#line 14529 "preproc.y" + { (yyval.str) = mm_strdup("unbounded"); } -#line 55180 "preproc.c" /* yacc.c:1652 */ +#line 55845 "preproc.c" break; - case 2587: -#line 14533 "preproc.y" /* yacc.c:1652 */ - { + case 2587: /* unreserved_keyword: UNCOMMITTED */ +#line 14533 "preproc.y" + { (yyval.str) = mm_strdup("uncommitted"); } -#line 55188 "preproc.c" /* yacc.c:1652 */ +#line 55853 "preproc.c" break; - case 2588: -#line 14537 "preproc.y" /* yacc.c:1652 */ - { + case 2588: /* unreserved_keyword: UNENCRYPTED */ +#line 14537 "preproc.y" + { (yyval.str) = mm_strdup("unencrypted"); } -#line 55196 "preproc.c" /* yacc.c:1652 */ +#line 55861 "preproc.c" break; - case 2589: -#line 14541 "preproc.y" /* yacc.c:1652 */ - { + case 2589: /* unreserved_keyword: UNKNOWN */ +#line 14541 "preproc.y" + { (yyval.str) = mm_strdup("unknown"); } -#line 55204 "preproc.c" /* yacc.c:1652 */ +#line 55869 "preproc.c" break; - case 2590: -#line 14545 "preproc.y" /* yacc.c:1652 */ - { + case 2590: /* unreserved_keyword: UNLISTEN */ +#line 14545 "preproc.y" + { (yyval.str) = mm_strdup("unlisten"); } -#line 55212 "preproc.c" /* yacc.c:1652 */ +#line 55877 "preproc.c" break; - case 2591: -#line 14549 "preproc.y" /* yacc.c:1652 */ - { + case 2591: /* unreserved_keyword: UNLOGGED */ +#line 14549 "preproc.y" + { (yyval.str) = mm_strdup("unlogged"); } -#line 55220 "preproc.c" /* yacc.c:1652 */ +#line 55885 "preproc.c" break; - case 2592: -#line 14553 "preproc.y" /* yacc.c:1652 */ - { + case 2592: /* unreserved_keyword: UNTIL */ +#line 14553 "preproc.y" + { (yyval.str) = mm_strdup("until"); } -#line 55228 "preproc.c" /* yacc.c:1652 */ +#line 55893 "preproc.c" break; - case 2593: -#line 14557 "preproc.y" /* yacc.c:1652 */ - { + case 2593: /* unreserved_keyword: UPDATE */ +#line 14557 "preproc.y" + { (yyval.str) = mm_strdup("update"); } -#line 55236 "preproc.c" /* yacc.c:1652 */ +#line 55901 "preproc.c" break; - case 2594: -#line 14561 "preproc.y" /* yacc.c:1652 */ - { + case 2594: /* unreserved_keyword: VACUUM */ +#line 14561 "preproc.y" + { (yyval.str) = mm_strdup("vacuum"); } -#line 55244 "preproc.c" /* yacc.c:1652 */ +#line 55909 "preproc.c" break; - case 2595: -#line 14565 "preproc.y" /* yacc.c:1652 */ - { + case 2595: /* unreserved_keyword: VALID */ +#line 14565 "preproc.y" + { (yyval.str) = mm_strdup("valid"); } -#line 55252 "preproc.c" /* yacc.c:1652 */ +#line 55917 "preproc.c" break; - case 2596: -#line 14569 "preproc.y" /* yacc.c:1652 */ - { + case 2596: /* unreserved_keyword: VALIDATE */ +#line 14569 "preproc.y" + { (yyval.str) = mm_strdup("validate"); } -#line 55260 "preproc.c" /* yacc.c:1652 */ +#line 55925 "preproc.c" break; - case 2597: -#line 14573 "preproc.y" /* yacc.c:1652 */ - { + case 2597: /* unreserved_keyword: VALIDATOR */ +#line 14573 "preproc.y" + { (yyval.str) = mm_strdup("validator"); } -#line 55268 "preproc.c" /* yacc.c:1652 */ +#line 55933 "preproc.c" break; - case 2598: -#line 14577 "preproc.y" /* yacc.c:1652 */ - { + case 2598: /* unreserved_keyword: VALUE_P */ +#line 14577 "preproc.y" + { (yyval.str) = mm_strdup("value"); } -#line 55276 "preproc.c" /* yacc.c:1652 */ +#line 55941 "preproc.c" break; - case 2599: -#line 14581 "preproc.y" /* yacc.c:1652 */ - { + case 2599: /* unreserved_keyword: VARYING */ +#line 14581 "preproc.y" + { (yyval.str) = mm_strdup("varying"); } -#line 55284 "preproc.c" /* yacc.c:1652 */ +#line 55949 "preproc.c" break; - case 2600: -#line 14585 "preproc.y" /* yacc.c:1652 */ - { + case 2600: /* unreserved_keyword: VERSION_P */ +#line 14585 "preproc.y" + { (yyval.str) = mm_strdup("version"); } -#line 55292 "preproc.c" /* yacc.c:1652 */ +#line 55957 "preproc.c" break; - case 2601: -#line 14589 "preproc.y" /* yacc.c:1652 */ - { + case 2601: /* unreserved_keyword: VIEW */ +#line 14589 "preproc.y" + { (yyval.str) = mm_strdup("view"); } -#line 55300 "preproc.c" /* yacc.c:1652 */ +#line 55965 "preproc.c" break; - case 2602: -#line 14593 "preproc.y" /* yacc.c:1652 */ - { + case 2602: /* unreserved_keyword: VIEWS */ +#line 14593 "preproc.y" + { (yyval.str) = mm_strdup("views"); } -#line 55308 "preproc.c" /* yacc.c:1652 */ +#line 55973 "preproc.c" break; - case 2603: -#line 14597 "preproc.y" /* yacc.c:1652 */ - { + case 2603: /* unreserved_keyword: VOLATILE */ +#line 14597 "preproc.y" + { (yyval.str) = mm_strdup("volatile"); } -#line 55316 "preproc.c" /* yacc.c:1652 */ +#line 55981 "preproc.c" break; - case 2604: -#line 14601 "preproc.y" /* yacc.c:1652 */ - { + case 2604: /* unreserved_keyword: WHITESPACE_P */ +#line 14601 "preproc.y" + { (yyval.str) = mm_strdup("whitespace"); } -#line 55324 "preproc.c" /* yacc.c:1652 */ +#line 55989 "preproc.c" break; - case 2605: -#line 14605 "preproc.y" /* yacc.c:1652 */ - { + case 2605: /* unreserved_keyword: WITHIN */ +#line 14605 "preproc.y" + { (yyval.str) = mm_strdup("within"); } -#line 55332 "preproc.c" /* yacc.c:1652 */ +#line 55997 "preproc.c" break; - case 2606: -#line 14609 "preproc.y" /* yacc.c:1652 */ - { + case 2606: /* unreserved_keyword: WITHOUT */ +#line 14609 "preproc.y" + { (yyval.str) = mm_strdup("without"); } -#line 55340 "preproc.c" /* yacc.c:1652 */ +#line 56005 "preproc.c" break; - case 2607: -#line 14613 "preproc.y" /* yacc.c:1652 */ - { + case 2607: /* unreserved_keyword: WORK */ +#line 14613 "preproc.y" + { (yyval.str) = mm_strdup("work"); } -#line 55348 "preproc.c" /* yacc.c:1652 */ +#line 56013 "preproc.c" break; - case 2608: -#line 14617 "preproc.y" /* yacc.c:1652 */ - { + case 2608: /* unreserved_keyword: WRAPPER */ +#line 14617 "preproc.y" + { (yyval.str) = mm_strdup("wrapper"); } -#line 55356 "preproc.c" /* yacc.c:1652 */ +#line 56021 "preproc.c" break; - case 2609: -#line 14621 "preproc.y" /* yacc.c:1652 */ - { + case 2609: /* unreserved_keyword: WRITE */ +#line 14621 "preproc.y" + { (yyval.str) = mm_strdup("write"); } -#line 55364 "preproc.c" /* yacc.c:1652 */ +#line 56029 "preproc.c" break; - case 2610: -#line 14625 "preproc.y" /* yacc.c:1652 */ - { + case 2610: /* unreserved_keyword: XML_P */ +#line 14625 "preproc.y" + { (yyval.str) = mm_strdup("xml"); } -#line 55372 "preproc.c" /* yacc.c:1652 */ +#line 56037 "preproc.c" break; - case 2611: -#line 14629 "preproc.y" /* yacc.c:1652 */ - { + case 2611: /* unreserved_keyword: YES_P */ +#line 14629 "preproc.y" + { (yyval.str) = mm_strdup("yes"); } -#line 55380 "preproc.c" /* yacc.c:1652 */ +#line 56045 "preproc.c" break; - case 2612: -#line 14633 "preproc.y" /* yacc.c:1652 */ - { + case 2612: /* unreserved_keyword: ZONE */ +#line 14633 "preproc.y" + { (yyval.str) = mm_strdup("zone"); } -#line 55388 "preproc.c" /* yacc.c:1652 */ +#line 56053 "preproc.c" break; - case 2613: -#line 14641 "preproc.y" /* yacc.c:1652 */ - { + case 2613: /* col_name_keyword: BETWEEN */ +#line 14641 "preproc.y" + { (yyval.str) = mm_strdup("between"); } -#line 55396 "preproc.c" /* yacc.c:1652 */ +#line 56061 "preproc.c" break; - case 2614: -#line 14645 "preproc.y" /* yacc.c:1652 */ - { + case 2614: /* col_name_keyword: BIGINT */ +#line 14645 "preproc.y" + { (yyval.str) = mm_strdup("bigint"); } -#line 55404 "preproc.c" /* yacc.c:1652 */ +#line 56069 "preproc.c" break; - case 2615: -#line 14649 "preproc.y" /* yacc.c:1652 */ - { + case 2615: /* col_name_keyword: BIT */ +#line 14649 "preproc.y" + { (yyval.str) = mm_strdup("bit"); } -#line 55412 "preproc.c" /* yacc.c:1652 */ +#line 56077 "preproc.c" break; - case 2616: -#line 14653 "preproc.y" /* yacc.c:1652 */ - { + case 2616: /* col_name_keyword: BOOLEAN_P */ +#line 14653 "preproc.y" + { (yyval.str) = mm_strdup("boolean"); } -#line 55420 "preproc.c" /* yacc.c:1652 */ +#line 56085 "preproc.c" break; - case 2617: -#line 14657 "preproc.y" /* yacc.c:1652 */ - { + case 2617: /* col_name_keyword: CHARACTER */ +#line 14657 "preproc.y" + { (yyval.str) = mm_strdup("character"); } -#line 55428 "preproc.c" /* yacc.c:1652 */ +#line 56093 "preproc.c" break; - case 2618: -#line 14661 "preproc.y" /* yacc.c:1652 */ - { + case 2618: /* col_name_keyword: COALESCE */ +#line 14661 "preproc.y" + { (yyval.str) = mm_strdup("coalesce"); } -#line 55436 "preproc.c" /* yacc.c:1652 */ +#line 56101 "preproc.c" break; - case 2619: -#line 14665 "preproc.y" /* yacc.c:1652 */ - { + case 2619: /* col_name_keyword: DEC */ +#line 14665 "preproc.y" + { (yyval.str) = mm_strdup("dec"); } -#line 55444 "preproc.c" /* yacc.c:1652 */ +#line 56109 "preproc.c" break; - case 2620: -#line 14669 "preproc.y" /* yacc.c:1652 */ - { + case 2620: /* col_name_keyword: DECIMAL_P */ +#line 14669 "preproc.y" + { (yyval.str) = mm_strdup("decimal"); } -#line 55452 "preproc.c" /* yacc.c:1652 */ +#line 56117 "preproc.c" break; - case 2621: -#line 14673 "preproc.y" /* yacc.c:1652 */ - { + case 2621: /* col_name_keyword: EXISTS */ +#line 14673 "preproc.y" + { (yyval.str) = mm_strdup("exists"); } -#line 55460 "preproc.c" /* yacc.c:1652 */ +#line 56125 "preproc.c" break; - case 2622: -#line 14677 "preproc.y" /* yacc.c:1652 */ - { + case 2622: /* col_name_keyword: EXTRACT */ +#line 14677 "preproc.y" + { (yyval.str) = mm_strdup("extract"); } -#line 55468 "preproc.c" /* yacc.c:1652 */ +#line 56133 "preproc.c" break; - case 2623: -#line 14681 "preproc.y" /* yacc.c:1652 */ - { + case 2623: /* col_name_keyword: FLOAT_P */ +#line 14681 "preproc.y" + { (yyval.str) = mm_strdup("float"); } -#line 55476 "preproc.c" /* yacc.c:1652 */ +#line 56141 "preproc.c" break; - case 2624: -#line 14685 "preproc.y" /* yacc.c:1652 */ - { + case 2624: /* col_name_keyword: GREATEST */ +#line 14685 "preproc.y" + { (yyval.str) = mm_strdup("greatest"); } -#line 55484 "preproc.c" /* yacc.c:1652 */ +#line 56149 "preproc.c" break; - case 2625: -#line 14689 "preproc.y" /* yacc.c:1652 */ - { + case 2625: /* col_name_keyword: GROUPING */ +#line 14689 "preproc.y" + { (yyval.str) = mm_strdup("grouping"); } -#line 55492 "preproc.c" /* yacc.c:1652 */ +#line 56157 "preproc.c" break; - case 2626: -#line 14693 "preproc.y" /* yacc.c:1652 */ - { + case 2626: /* col_name_keyword: INOUT */ +#line 14693 "preproc.y" + { (yyval.str) = mm_strdup("inout"); } -#line 55500 "preproc.c" /* yacc.c:1652 */ +#line 56165 "preproc.c" break; - case 2627: -#line 14697 "preproc.y" /* yacc.c:1652 */ - { + case 2627: /* col_name_keyword: INTEGER */ +#line 14697 "preproc.y" + { (yyval.str) = mm_strdup("integer"); } -#line 55508 "preproc.c" /* yacc.c:1652 */ +#line 56173 "preproc.c" break; - case 2628: -#line 14701 "preproc.y" /* yacc.c:1652 */ - { + case 2628: /* col_name_keyword: INTERVAL */ +#line 14701 "preproc.y" + { (yyval.str) = mm_strdup("interval"); } -#line 55516 "preproc.c" /* yacc.c:1652 */ +#line 56181 "preproc.c" break; - case 2629: -#line 14705 "preproc.y" /* yacc.c:1652 */ - { + case 2629: /* col_name_keyword: LEAST */ +#line 14705 "preproc.y" + { (yyval.str) = mm_strdup("least"); } -#line 55524 "preproc.c" /* yacc.c:1652 */ +#line 56189 "preproc.c" break; - case 2630: -#line 14709 "preproc.y" /* yacc.c:1652 */ - { + case 2630: /* col_name_keyword: NATIONAL */ +#line 14709 "preproc.y" + { (yyval.str) = mm_strdup("national"); } -#line 55532 "preproc.c" /* yacc.c:1652 */ +#line 56197 "preproc.c" break; - case 2631: -#line 14713 "preproc.y" /* yacc.c:1652 */ - { + case 2631: /* col_name_keyword: NCHAR */ +#line 14713 "preproc.y" + { (yyval.str) = mm_strdup("nchar"); } -#line 55540 "preproc.c" /* yacc.c:1652 */ +#line 56205 "preproc.c" break; - case 2632: -#line 14717 "preproc.y" /* yacc.c:1652 */ - { + case 2632: /* col_name_keyword: NONE */ +#line 14717 "preproc.y" + { (yyval.str) = mm_strdup("none"); } -#line 55548 "preproc.c" /* yacc.c:1652 */ +#line 56213 "preproc.c" break; - case 2633: -#line 14721 "preproc.y" /* yacc.c:1652 */ - { + case 2633: /* col_name_keyword: NORMALIZE */ +#line 14721 "preproc.y" + { (yyval.str) = mm_strdup("normalize"); } -#line 55556 "preproc.c" /* yacc.c:1652 */ +#line 56221 "preproc.c" break; - case 2634: -#line 14725 "preproc.y" /* yacc.c:1652 */ - { + case 2634: /* col_name_keyword: NULLIF */ +#line 14725 "preproc.y" + { (yyval.str) = mm_strdup("nullif"); } -#line 55564 "preproc.c" /* yacc.c:1652 */ +#line 56229 "preproc.c" break; - case 2635: -#line 14729 "preproc.y" /* yacc.c:1652 */ - { + case 2635: /* col_name_keyword: NUMERIC */ +#line 14729 "preproc.y" + { (yyval.str) = mm_strdup("numeric"); } -#line 55572 "preproc.c" /* yacc.c:1652 */ +#line 56237 "preproc.c" break; - case 2636: -#line 14733 "preproc.y" /* yacc.c:1652 */ - { + case 2636: /* col_name_keyword: OUT_P */ +#line 14733 "preproc.y" + { (yyval.str) = mm_strdup("out"); } -#line 55580 "preproc.c" /* yacc.c:1652 */ +#line 56245 "preproc.c" break; - case 2637: -#line 14737 "preproc.y" /* yacc.c:1652 */ - { + case 2637: /* col_name_keyword: OVERLAY */ +#line 14737 "preproc.y" + { (yyval.str) = mm_strdup("overlay"); } -#line 55588 "preproc.c" /* yacc.c:1652 */ +#line 56253 "preproc.c" break; - case 2638: -#line 14741 "preproc.y" /* yacc.c:1652 */ - { + case 2638: /* col_name_keyword: POSITION */ +#line 14741 "preproc.y" + { (yyval.str) = mm_strdup("position"); } -#line 55596 "preproc.c" /* yacc.c:1652 */ +#line 56261 "preproc.c" break; - case 2639: -#line 14745 "preproc.y" /* yacc.c:1652 */ - { + case 2639: /* col_name_keyword: PRECISION */ +#line 14745 "preproc.y" + { (yyval.str) = mm_strdup("precision"); } -#line 55604 "preproc.c" /* yacc.c:1652 */ +#line 56269 "preproc.c" break; - case 2640: -#line 14749 "preproc.y" /* yacc.c:1652 */ - { + case 2640: /* col_name_keyword: REAL */ +#line 14749 "preproc.y" + { (yyval.str) = mm_strdup("real"); } -#line 55612 "preproc.c" /* yacc.c:1652 */ +#line 56277 "preproc.c" break; - case 2641: -#line 14753 "preproc.y" /* yacc.c:1652 */ - { + case 2641: /* col_name_keyword: ROW */ +#line 14753 "preproc.y" + { (yyval.str) = mm_strdup("row"); } -#line 55620 "preproc.c" /* yacc.c:1652 */ +#line 56285 "preproc.c" break; - case 2642: -#line 14757 "preproc.y" /* yacc.c:1652 */ - { + case 2642: /* col_name_keyword: SETOF */ +#line 14757 "preproc.y" + { (yyval.str) = mm_strdup("setof"); } -#line 55628 "preproc.c" /* yacc.c:1652 */ +#line 56293 "preproc.c" break; - case 2643: -#line 14761 "preproc.y" /* yacc.c:1652 */ - { + case 2643: /* col_name_keyword: SMALLINT */ +#line 14761 "preproc.y" + { (yyval.str) = mm_strdup("smallint"); } -#line 55636 "preproc.c" /* yacc.c:1652 */ +#line 56301 "preproc.c" break; - case 2644: -#line 14765 "preproc.y" /* yacc.c:1652 */ - { + case 2644: /* col_name_keyword: SUBSTRING */ +#line 14765 "preproc.y" + { (yyval.str) = mm_strdup("substring"); } -#line 55644 "preproc.c" /* yacc.c:1652 */ +#line 56309 "preproc.c" break; - case 2645: -#line 14769 "preproc.y" /* yacc.c:1652 */ - { + case 2645: /* col_name_keyword: TIME */ +#line 14769 "preproc.y" + { (yyval.str) = mm_strdup("time"); } -#line 55652 "preproc.c" /* yacc.c:1652 */ +#line 56317 "preproc.c" break; - case 2646: -#line 14773 "preproc.y" /* yacc.c:1652 */ - { + case 2646: /* col_name_keyword: TIMESTAMP */ +#line 14773 "preproc.y" + { (yyval.str) = mm_strdup("timestamp"); } -#line 55660 "preproc.c" /* yacc.c:1652 */ +#line 56325 "preproc.c" break; - case 2647: -#line 14777 "preproc.y" /* yacc.c:1652 */ - { + case 2647: /* col_name_keyword: TREAT */ +#line 14777 "preproc.y" + { (yyval.str) = mm_strdup("treat"); } -#line 55668 "preproc.c" /* yacc.c:1652 */ +#line 56333 "preproc.c" break; - case 2648: -#line 14781 "preproc.y" /* yacc.c:1652 */ - { + case 2648: /* col_name_keyword: TRIM */ +#line 14781 "preproc.y" + { (yyval.str) = mm_strdup("trim"); } -#line 55676 "preproc.c" /* yacc.c:1652 */ +#line 56341 "preproc.c" break; - case 2649: -#line 14785 "preproc.y" /* yacc.c:1652 */ - { + case 2649: /* col_name_keyword: VARCHAR */ +#line 14785 "preproc.y" + { (yyval.str) = mm_strdup("varchar"); } -#line 55684 "preproc.c" /* yacc.c:1652 */ +#line 56349 "preproc.c" break; - case 2650: -#line 14789 "preproc.y" /* yacc.c:1652 */ - { + case 2650: /* col_name_keyword: XMLATTRIBUTES */ +#line 14789 "preproc.y" + { (yyval.str) = mm_strdup("xmlattributes"); } -#line 55692 "preproc.c" /* yacc.c:1652 */ +#line 56357 "preproc.c" break; - case 2651: -#line 14793 "preproc.y" /* yacc.c:1652 */ - { + case 2651: /* col_name_keyword: XMLCONCAT */ +#line 14793 "preproc.y" + { (yyval.str) = mm_strdup("xmlconcat"); } -#line 55700 "preproc.c" /* yacc.c:1652 */ +#line 56365 "preproc.c" break; - case 2652: -#line 14797 "preproc.y" /* yacc.c:1652 */ - { + case 2652: /* col_name_keyword: XMLELEMENT */ +#line 14797 "preproc.y" + { (yyval.str) = mm_strdup("xmlelement"); } -#line 55708 "preproc.c" /* yacc.c:1652 */ +#line 56373 "preproc.c" break; - case 2653: -#line 14801 "preproc.y" /* yacc.c:1652 */ - { + case 2653: /* col_name_keyword: XMLEXISTS */ +#line 14801 "preproc.y" + { (yyval.str) = mm_strdup("xmlexists"); } -#line 55716 "preproc.c" /* yacc.c:1652 */ +#line 56381 "preproc.c" break; - case 2654: -#line 14805 "preproc.y" /* yacc.c:1652 */ - { + case 2654: /* col_name_keyword: XMLFOREST */ +#line 14805 "preproc.y" + { (yyval.str) = mm_strdup("xmlforest"); } -#line 55724 "preproc.c" /* yacc.c:1652 */ +#line 56389 "preproc.c" break; - case 2655: -#line 14809 "preproc.y" /* yacc.c:1652 */ - { + case 2655: /* col_name_keyword: XMLNAMESPACES */ +#line 14809 "preproc.y" + { (yyval.str) = mm_strdup("xmlnamespaces"); } -#line 55732 "preproc.c" /* yacc.c:1652 */ +#line 56397 "preproc.c" break; - case 2656: -#line 14813 "preproc.y" /* yacc.c:1652 */ - { + case 2656: /* col_name_keyword: XMLPARSE */ +#line 14813 "preproc.y" + { (yyval.str) = mm_strdup("xmlparse"); } -#line 55740 "preproc.c" /* yacc.c:1652 */ +#line 56405 "preproc.c" break; - case 2657: -#line 14817 "preproc.y" /* yacc.c:1652 */ - { + case 2657: /* col_name_keyword: XMLPI */ +#line 14817 "preproc.y" + { (yyval.str) = mm_strdup("xmlpi"); } -#line 55748 "preproc.c" /* yacc.c:1652 */ +#line 56413 "preproc.c" break; - case 2658: -#line 14821 "preproc.y" /* yacc.c:1652 */ - { + case 2658: /* col_name_keyword: XMLROOT */ +#line 14821 "preproc.y" + { (yyval.str) = mm_strdup("xmlroot"); } -#line 55756 "preproc.c" /* yacc.c:1652 */ +#line 56421 "preproc.c" break; - case 2659: -#line 14825 "preproc.y" /* yacc.c:1652 */ - { + case 2659: /* col_name_keyword: XMLSERIALIZE */ +#line 14825 "preproc.y" + { (yyval.str) = mm_strdup("xmlserialize"); } -#line 55764 "preproc.c" /* yacc.c:1652 */ +#line 56429 "preproc.c" break; - case 2660: -#line 14829 "preproc.y" /* yacc.c:1652 */ - { + case 2660: /* col_name_keyword: XMLTABLE */ +#line 14829 "preproc.y" + { (yyval.str) = mm_strdup("xmltable"); } -#line 55772 "preproc.c" /* yacc.c:1652 */ +#line 56437 "preproc.c" break; - case 2661: -#line 14837 "preproc.y" /* yacc.c:1652 */ - { + case 2661: /* type_func_name_keyword: AUTHORIZATION */ +#line 14837 "preproc.y" + { (yyval.str) = mm_strdup("authorization"); } -#line 55780 "preproc.c" /* yacc.c:1652 */ +#line 56445 "preproc.c" break; - case 2662: -#line 14841 "preproc.y" /* yacc.c:1652 */ - { + case 2662: /* type_func_name_keyword: BINARY */ +#line 14841 "preproc.y" + { (yyval.str) = mm_strdup("binary"); } -#line 55788 "preproc.c" /* yacc.c:1652 */ +#line 56453 "preproc.c" break; - case 2663: -#line 14845 "preproc.y" /* yacc.c:1652 */ - { + case 2663: /* type_func_name_keyword: COLLATION */ +#line 14845 "preproc.y" + { (yyval.str) = mm_strdup("collation"); } -#line 55796 "preproc.c" /* yacc.c:1652 */ +#line 56461 "preproc.c" break; - case 2664: -#line 14849 "preproc.y" /* yacc.c:1652 */ - { + case 2664: /* type_func_name_keyword: CONCURRENTLY */ +#line 14849 "preproc.y" + { (yyval.str) = mm_strdup("concurrently"); } -#line 55804 "preproc.c" /* yacc.c:1652 */ +#line 56469 "preproc.c" break; - case 2665: -#line 14853 "preproc.y" /* yacc.c:1652 */ - { + case 2665: /* type_func_name_keyword: CROSS */ +#line 14853 "preproc.y" + { (yyval.str) = mm_strdup("cross"); } -#line 55812 "preproc.c" /* yacc.c:1652 */ +#line 56477 "preproc.c" break; - case 2666: -#line 14857 "preproc.y" /* yacc.c:1652 */ - { + case 2666: /* type_func_name_keyword: CURRENT_SCHEMA */ +#line 14857 "preproc.y" + { (yyval.str) = mm_strdup("current_schema"); } -#line 55820 "preproc.c" /* yacc.c:1652 */ +#line 56485 "preproc.c" break; - case 2667: -#line 14861 "preproc.y" /* yacc.c:1652 */ - { + case 2667: /* type_func_name_keyword: FREEZE */ +#line 14861 "preproc.y" + { (yyval.str) = mm_strdup("freeze"); } -#line 55828 "preproc.c" /* yacc.c:1652 */ +#line 56493 "preproc.c" break; - case 2668: -#line 14865 "preproc.y" /* yacc.c:1652 */ - { + case 2668: /* type_func_name_keyword: FULL */ +#line 14865 "preproc.y" + { (yyval.str) = mm_strdup("full"); } -#line 55836 "preproc.c" /* yacc.c:1652 */ +#line 56501 "preproc.c" break; - case 2669: -#line 14869 "preproc.y" /* yacc.c:1652 */ - { + case 2669: /* type_func_name_keyword: ILIKE */ +#line 14869 "preproc.y" + { (yyval.str) = mm_strdup("ilike"); } -#line 55844 "preproc.c" /* yacc.c:1652 */ +#line 56509 "preproc.c" break; - case 2670: -#line 14873 "preproc.y" /* yacc.c:1652 */ - { + case 2670: /* type_func_name_keyword: INNER_P */ +#line 14873 "preproc.y" + { (yyval.str) = mm_strdup("inner"); } -#line 55852 "preproc.c" /* yacc.c:1652 */ +#line 56517 "preproc.c" break; - case 2671: -#line 14877 "preproc.y" /* yacc.c:1652 */ - { + case 2671: /* type_func_name_keyword: IS */ +#line 14877 "preproc.y" + { (yyval.str) = mm_strdup("is"); } -#line 55860 "preproc.c" /* yacc.c:1652 */ +#line 56525 "preproc.c" break; - case 2672: -#line 14881 "preproc.y" /* yacc.c:1652 */ - { + case 2672: /* type_func_name_keyword: ISNULL */ +#line 14881 "preproc.y" + { (yyval.str) = mm_strdup("isnull"); } -#line 55868 "preproc.c" /* yacc.c:1652 */ +#line 56533 "preproc.c" break; - case 2673: -#line 14885 "preproc.y" /* yacc.c:1652 */ - { + case 2673: /* type_func_name_keyword: JOIN */ +#line 14885 "preproc.y" + { (yyval.str) = mm_strdup("join"); } -#line 55876 "preproc.c" /* yacc.c:1652 */ +#line 56541 "preproc.c" break; - case 2674: -#line 14889 "preproc.y" /* yacc.c:1652 */ - { + case 2674: /* type_func_name_keyword: LEFT */ +#line 14889 "preproc.y" + { (yyval.str) = mm_strdup("left"); } -#line 55884 "preproc.c" /* yacc.c:1652 */ +#line 56549 "preproc.c" break; - case 2675: -#line 14893 "preproc.y" /* yacc.c:1652 */ - { + case 2675: /* type_func_name_keyword: LIKE */ +#line 14893 "preproc.y" + { (yyval.str) = mm_strdup("like"); } -#line 55892 "preproc.c" /* yacc.c:1652 */ +#line 56557 "preproc.c" break; - case 2676: -#line 14897 "preproc.y" /* yacc.c:1652 */ - { + case 2676: /* type_func_name_keyword: NATURAL */ +#line 14897 "preproc.y" + { (yyval.str) = mm_strdup("natural"); } -#line 55900 "preproc.c" /* yacc.c:1652 */ +#line 56565 "preproc.c" break; - case 2677: -#line 14901 "preproc.y" /* yacc.c:1652 */ - { + case 2677: /* type_func_name_keyword: NOTNULL */ +#line 14901 "preproc.y" + { (yyval.str) = mm_strdup("notnull"); } -#line 55908 "preproc.c" /* yacc.c:1652 */ +#line 56573 "preproc.c" break; - case 2678: -#line 14905 "preproc.y" /* yacc.c:1652 */ - { + case 2678: /* type_func_name_keyword: OUTER_P */ +#line 14905 "preproc.y" + { (yyval.str) = mm_strdup("outer"); } -#line 55916 "preproc.c" /* yacc.c:1652 */ +#line 56581 "preproc.c" break; - case 2679: -#line 14909 "preproc.y" /* yacc.c:1652 */ - { + case 2679: /* type_func_name_keyword: OVERLAPS */ +#line 14909 "preproc.y" + { (yyval.str) = mm_strdup("overlaps"); } -#line 55924 "preproc.c" /* yacc.c:1652 */ +#line 56589 "preproc.c" break; - case 2680: -#line 14913 "preproc.y" /* yacc.c:1652 */ - { + case 2680: /* type_func_name_keyword: RIGHT */ +#line 14913 "preproc.y" + { (yyval.str) = mm_strdup("right"); } -#line 55932 "preproc.c" /* yacc.c:1652 */ +#line 56597 "preproc.c" break; - case 2681: -#line 14917 "preproc.y" /* yacc.c:1652 */ - { + case 2681: /* type_func_name_keyword: SIMILAR */ +#line 14917 "preproc.y" + { (yyval.str) = mm_strdup("similar"); } -#line 55940 "preproc.c" /* yacc.c:1652 */ +#line 56605 "preproc.c" break; - case 2682: -#line 14921 "preproc.y" /* yacc.c:1652 */ - { + case 2682: /* type_func_name_keyword: TABLESAMPLE */ +#line 14921 "preproc.y" + { (yyval.str) = mm_strdup("tablesample"); } -#line 55948 "preproc.c" /* yacc.c:1652 */ +#line 56613 "preproc.c" break; - case 2683: -#line 14925 "preproc.y" /* yacc.c:1652 */ - { + case 2683: /* type_func_name_keyword: VERBOSE */ +#line 14925 "preproc.y" + { (yyval.str) = mm_strdup("verbose"); } -#line 55956 "preproc.c" /* yacc.c:1652 */ +#line 56621 "preproc.c" break; - case 2684: -#line 14933 "preproc.y" /* yacc.c:1652 */ - { + case 2684: /* reserved_keyword: ALL */ +#line 14933 "preproc.y" + { (yyval.str) = mm_strdup("all"); } -#line 55964 "preproc.c" /* yacc.c:1652 */ +#line 56629 "preproc.c" break; - case 2685: -#line 14937 "preproc.y" /* yacc.c:1652 */ - { + case 2685: /* reserved_keyword: ANALYSE */ +#line 14937 "preproc.y" + { (yyval.str) = mm_strdup("analyse"); } -#line 55972 "preproc.c" /* yacc.c:1652 */ +#line 56637 "preproc.c" break; - case 2686: -#line 14941 "preproc.y" /* yacc.c:1652 */ - { + case 2686: /* reserved_keyword: ANALYZE */ +#line 14941 "preproc.y" + { (yyval.str) = mm_strdup("analyze"); } -#line 55980 "preproc.c" /* yacc.c:1652 */ +#line 56645 "preproc.c" break; - case 2687: -#line 14945 "preproc.y" /* yacc.c:1652 */ - { + case 2687: /* reserved_keyword: AND */ +#line 14945 "preproc.y" + { (yyval.str) = mm_strdup("and"); } -#line 55988 "preproc.c" /* yacc.c:1652 */ +#line 56653 "preproc.c" break; - case 2688: -#line 14949 "preproc.y" /* yacc.c:1652 */ - { + case 2688: /* reserved_keyword: ANY */ +#line 14949 "preproc.y" + { (yyval.str) = mm_strdup("any"); } -#line 55996 "preproc.c" /* yacc.c:1652 */ +#line 56661 "preproc.c" break; - case 2689: -#line 14953 "preproc.y" /* yacc.c:1652 */ - { + case 2689: /* reserved_keyword: ARRAY */ +#line 14953 "preproc.y" + { (yyval.str) = mm_strdup("array"); } -#line 56004 "preproc.c" /* yacc.c:1652 */ +#line 56669 "preproc.c" break; - case 2690: -#line 14957 "preproc.y" /* yacc.c:1652 */ - { + case 2690: /* reserved_keyword: AS */ +#line 14957 "preproc.y" + { (yyval.str) = mm_strdup("as"); } -#line 56012 "preproc.c" /* yacc.c:1652 */ +#line 56677 "preproc.c" break; - case 2691: -#line 14961 "preproc.y" /* yacc.c:1652 */ - { + case 2691: /* reserved_keyword: ASC */ +#line 14961 "preproc.y" + { (yyval.str) = mm_strdup("asc"); } -#line 56020 "preproc.c" /* yacc.c:1652 */ +#line 56685 "preproc.c" break; - case 2692: -#line 14965 "preproc.y" /* yacc.c:1652 */ - { + case 2692: /* reserved_keyword: ASYMMETRIC */ +#line 14965 "preproc.y" + { (yyval.str) = mm_strdup("asymmetric"); } -#line 56028 "preproc.c" /* yacc.c:1652 */ +#line 56693 "preproc.c" break; - case 2693: -#line 14969 "preproc.y" /* yacc.c:1652 */ - { + case 2693: /* reserved_keyword: BOTH */ +#line 14969 "preproc.y" + { (yyval.str) = mm_strdup("both"); } -#line 56036 "preproc.c" /* yacc.c:1652 */ +#line 56701 "preproc.c" break; - case 2694: -#line 14973 "preproc.y" /* yacc.c:1652 */ - { + case 2694: /* reserved_keyword: CASE */ +#line 14973 "preproc.y" + { (yyval.str) = mm_strdup("case"); } -#line 56044 "preproc.c" /* yacc.c:1652 */ +#line 56709 "preproc.c" break; - case 2695: -#line 14977 "preproc.y" /* yacc.c:1652 */ - { + case 2695: /* reserved_keyword: CAST */ +#line 14977 "preproc.y" + { (yyval.str) = mm_strdup("cast"); } -#line 56052 "preproc.c" /* yacc.c:1652 */ +#line 56717 "preproc.c" break; - case 2696: -#line 14981 "preproc.y" /* yacc.c:1652 */ - { + case 2696: /* reserved_keyword: CHECK */ +#line 14981 "preproc.y" + { (yyval.str) = mm_strdup("check"); } -#line 56060 "preproc.c" /* yacc.c:1652 */ +#line 56725 "preproc.c" break; - case 2697: -#line 14985 "preproc.y" /* yacc.c:1652 */ - { + case 2697: /* reserved_keyword: COLLATE */ +#line 14985 "preproc.y" + { (yyval.str) = mm_strdup("collate"); } -#line 56068 "preproc.c" /* yacc.c:1652 */ +#line 56733 "preproc.c" break; - case 2698: -#line 14989 "preproc.y" /* yacc.c:1652 */ - { + case 2698: /* reserved_keyword: COLUMN */ +#line 14989 "preproc.y" + { (yyval.str) = mm_strdup("column"); } -#line 56076 "preproc.c" /* yacc.c:1652 */ +#line 56741 "preproc.c" break; - case 2699: -#line 14993 "preproc.y" /* yacc.c:1652 */ - { + case 2699: /* reserved_keyword: CONSTRAINT */ +#line 14993 "preproc.y" + { (yyval.str) = mm_strdup("constraint"); } -#line 56084 "preproc.c" /* yacc.c:1652 */ +#line 56749 "preproc.c" break; - case 2700: -#line 14997 "preproc.y" /* yacc.c:1652 */ - { + case 2700: /* reserved_keyword: CREATE */ +#line 14997 "preproc.y" + { (yyval.str) = mm_strdup("create"); } -#line 56092 "preproc.c" /* yacc.c:1652 */ +#line 56757 "preproc.c" break; - case 2701: -#line 15001 "preproc.y" /* yacc.c:1652 */ - { + case 2701: /* reserved_keyword: CURRENT_CATALOG */ +#line 15001 "preproc.y" + { (yyval.str) = mm_strdup("current_catalog"); } -#line 56100 "preproc.c" /* yacc.c:1652 */ +#line 56765 "preproc.c" break; - case 2702: -#line 15005 "preproc.y" /* yacc.c:1652 */ - { + case 2702: /* reserved_keyword: CURRENT_DATE */ +#line 15005 "preproc.y" + { (yyval.str) = mm_strdup("current_date"); } -#line 56108 "preproc.c" /* yacc.c:1652 */ +#line 56773 "preproc.c" break; - case 2703: -#line 15009 "preproc.y" /* yacc.c:1652 */ - { + case 2703: /* reserved_keyword: CURRENT_ROLE */ +#line 15009 "preproc.y" + { (yyval.str) = mm_strdup("current_role"); } -#line 56116 "preproc.c" /* yacc.c:1652 */ +#line 56781 "preproc.c" break; - case 2704: -#line 15013 "preproc.y" /* yacc.c:1652 */ - { + case 2704: /* reserved_keyword: CURRENT_TIME */ +#line 15013 "preproc.y" + { (yyval.str) = mm_strdup("current_time"); } -#line 56124 "preproc.c" /* yacc.c:1652 */ +#line 56789 "preproc.c" break; - case 2705: -#line 15017 "preproc.y" /* yacc.c:1652 */ - { + case 2705: /* reserved_keyword: CURRENT_TIMESTAMP */ +#line 15017 "preproc.y" + { (yyval.str) = mm_strdup("current_timestamp"); } -#line 56132 "preproc.c" /* yacc.c:1652 */ +#line 56797 "preproc.c" break; - case 2706: -#line 15021 "preproc.y" /* yacc.c:1652 */ - { + case 2706: /* reserved_keyword: CURRENT_USER */ +#line 15021 "preproc.y" + { (yyval.str) = mm_strdup("current_user"); } -#line 56140 "preproc.c" /* yacc.c:1652 */ +#line 56805 "preproc.c" break; - case 2707: -#line 15025 "preproc.y" /* yacc.c:1652 */ - { + case 2707: /* reserved_keyword: DEFAULT */ +#line 15025 "preproc.y" + { (yyval.str) = mm_strdup("default"); } -#line 56148 "preproc.c" /* yacc.c:1652 */ +#line 56813 "preproc.c" break; - case 2708: -#line 15029 "preproc.y" /* yacc.c:1652 */ - { + case 2708: /* reserved_keyword: DEFERRABLE */ +#line 15029 "preproc.y" + { (yyval.str) = mm_strdup("deferrable"); } -#line 56156 "preproc.c" /* yacc.c:1652 */ +#line 56821 "preproc.c" break; - case 2709: -#line 15033 "preproc.y" /* yacc.c:1652 */ - { + case 2709: /* reserved_keyword: DESC */ +#line 15033 "preproc.y" + { (yyval.str) = mm_strdup("desc"); } -#line 56164 "preproc.c" /* yacc.c:1652 */ +#line 56829 "preproc.c" break; - case 2710: -#line 15037 "preproc.y" /* yacc.c:1652 */ - { + case 2710: /* reserved_keyword: DISTINCT */ +#line 15037 "preproc.y" + { (yyval.str) = mm_strdup("distinct"); } -#line 56172 "preproc.c" /* yacc.c:1652 */ +#line 56837 "preproc.c" break; - case 2711: -#line 15041 "preproc.y" /* yacc.c:1652 */ - { + case 2711: /* reserved_keyword: DO */ +#line 15041 "preproc.y" + { (yyval.str) = mm_strdup("do"); } -#line 56180 "preproc.c" /* yacc.c:1652 */ +#line 56845 "preproc.c" break; - case 2712: -#line 15045 "preproc.y" /* yacc.c:1652 */ - { + case 2712: /* reserved_keyword: ELSE */ +#line 15045 "preproc.y" + { (yyval.str) = mm_strdup("else"); } -#line 56188 "preproc.c" /* yacc.c:1652 */ +#line 56853 "preproc.c" break; - case 2713: -#line 15049 "preproc.y" /* yacc.c:1652 */ - { + case 2713: /* reserved_keyword: END_P */ +#line 15049 "preproc.y" + { (yyval.str) = mm_strdup("end"); } -#line 56196 "preproc.c" /* yacc.c:1652 */ +#line 56861 "preproc.c" break; - case 2714: -#line 15053 "preproc.y" /* yacc.c:1652 */ - { + case 2714: /* reserved_keyword: EXCEPT */ +#line 15053 "preproc.y" + { (yyval.str) = mm_strdup("except"); } -#line 56204 "preproc.c" /* yacc.c:1652 */ +#line 56869 "preproc.c" break; - case 2715: -#line 15057 "preproc.y" /* yacc.c:1652 */ - { + case 2715: /* reserved_keyword: FALSE_P */ +#line 15057 "preproc.y" + { (yyval.str) = mm_strdup("false"); } -#line 56212 "preproc.c" /* yacc.c:1652 */ +#line 56877 "preproc.c" break; - case 2716: -#line 15061 "preproc.y" /* yacc.c:1652 */ - { + case 2716: /* reserved_keyword: FETCH */ +#line 15061 "preproc.y" + { (yyval.str) = mm_strdup("fetch"); } -#line 56220 "preproc.c" /* yacc.c:1652 */ +#line 56885 "preproc.c" break; - case 2717: -#line 15065 "preproc.y" /* yacc.c:1652 */ - { + case 2717: /* reserved_keyword: FOR */ +#line 15065 "preproc.y" + { (yyval.str) = mm_strdup("for"); } -#line 56228 "preproc.c" /* yacc.c:1652 */ +#line 56893 "preproc.c" break; - case 2718: -#line 15069 "preproc.y" /* yacc.c:1652 */ - { + case 2718: /* reserved_keyword: FOREIGN */ +#line 15069 "preproc.y" + { (yyval.str) = mm_strdup("foreign"); } -#line 56236 "preproc.c" /* yacc.c:1652 */ +#line 56901 "preproc.c" break; - case 2719: -#line 15073 "preproc.y" /* yacc.c:1652 */ - { + case 2719: /* reserved_keyword: FROM */ +#line 15073 "preproc.y" + { (yyval.str) = mm_strdup("from"); } -#line 56244 "preproc.c" /* yacc.c:1652 */ +#line 56909 "preproc.c" break; - case 2720: -#line 15077 "preproc.y" /* yacc.c:1652 */ - { + case 2720: /* reserved_keyword: GRANT */ +#line 15077 "preproc.y" + { (yyval.str) = mm_strdup("grant"); } -#line 56252 "preproc.c" /* yacc.c:1652 */ +#line 56917 "preproc.c" break; - case 2721: -#line 15081 "preproc.y" /* yacc.c:1652 */ - { + case 2721: /* reserved_keyword: GROUP_P */ +#line 15081 "preproc.y" + { (yyval.str) = mm_strdup("group"); } -#line 56260 "preproc.c" /* yacc.c:1652 */ +#line 56925 "preproc.c" break; - case 2722: -#line 15085 "preproc.y" /* yacc.c:1652 */ - { + case 2722: /* reserved_keyword: HAVING */ +#line 15085 "preproc.y" + { (yyval.str) = mm_strdup("having"); } -#line 56268 "preproc.c" /* yacc.c:1652 */ +#line 56933 "preproc.c" break; - case 2723: -#line 15089 "preproc.y" /* yacc.c:1652 */ - { + case 2723: /* reserved_keyword: IN_P */ +#line 15089 "preproc.y" + { (yyval.str) = mm_strdup("in"); } -#line 56276 "preproc.c" /* yacc.c:1652 */ +#line 56941 "preproc.c" break; - case 2724: -#line 15093 "preproc.y" /* yacc.c:1652 */ - { + case 2724: /* reserved_keyword: INITIALLY */ +#line 15093 "preproc.y" + { (yyval.str) = mm_strdup("initially"); } -#line 56284 "preproc.c" /* yacc.c:1652 */ +#line 56949 "preproc.c" break; - case 2725: -#line 15097 "preproc.y" /* yacc.c:1652 */ - { + case 2725: /* reserved_keyword: INTERSECT */ +#line 15097 "preproc.y" + { (yyval.str) = mm_strdup("intersect"); } -#line 56292 "preproc.c" /* yacc.c:1652 */ +#line 56957 "preproc.c" break; - case 2726: -#line 15101 "preproc.y" /* yacc.c:1652 */ - { + case 2726: /* reserved_keyword: INTO */ +#line 15101 "preproc.y" + { (yyval.str) = mm_strdup("into"); } -#line 56300 "preproc.c" /* yacc.c:1652 */ +#line 56965 "preproc.c" break; - case 2727: -#line 15105 "preproc.y" /* yacc.c:1652 */ - { + case 2727: /* reserved_keyword: LATERAL_P */ +#line 15105 "preproc.y" + { (yyval.str) = mm_strdup("lateral"); } -#line 56308 "preproc.c" /* yacc.c:1652 */ +#line 56973 "preproc.c" break; - case 2728: -#line 15109 "preproc.y" /* yacc.c:1652 */ - { + case 2728: /* reserved_keyword: LEADING */ +#line 15109 "preproc.y" + { (yyval.str) = mm_strdup("leading"); } -#line 56316 "preproc.c" /* yacc.c:1652 */ +#line 56981 "preproc.c" break; - case 2729: -#line 15113 "preproc.y" /* yacc.c:1652 */ - { + case 2729: /* reserved_keyword: LIMIT */ +#line 15113 "preproc.y" + { (yyval.str) = mm_strdup("limit"); } -#line 56324 "preproc.c" /* yacc.c:1652 */ +#line 56989 "preproc.c" break; - case 2730: -#line 15117 "preproc.y" /* yacc.c:1652 */ - { + case 2730: /* reserved_keyword: LOCALTIME */ +#line 15117 "preproc.y" + { (yyval.str) = mm_strdup("localtime"); } -#line 56332 "preproc.c" /* yacc.c:1652 */ +#line 56997 "preproc.c" break; - case 2731: -#line 15121 "preproc.y" /* yacc.c:1652 */ - { + case 2731: /* reserved_keyword: LOCALTIMESTAMP */ +#line 15121 "preproc.y" + { (yyval.str) = mm_strdup("localtimestamp"); } -#line 56340 "preproc.c" /* yacc.c:1652 */ +#line 57005 "preproc.c" break; - case 2732: -#line 15125 "preproc.y" /* yacc.c:1652 */ - { + case 2732: /* reserved_keyword: NOT */ +#line 15125 "preproc.y" + { (yyval.str) = mm_strdup("not"); } -#line 56348 "preproc.c" /* yacc.c:1652 */ +#line 57013 "preproc.c" break; - case 2733: -#line 15129 "preproc.y" /* yacc.c:1652 */ - { + case 2733: /* reserved_keyword: NULL_P */ +#line 15129 "preproc.y" + { (yyval.str) = mm_strdup("null"); } -#line 56356 "preproc.c" /* yacc.c:1652 */ +#line 57021 "preproc.c" break; - case 2734: -#line 15133 "preproc.y" /* yacc.c:1652 */ - { + case 2734: /* reserved_keyword: OFFSET */ +#line 15133 "preproc.y" + { (yyval.str) = mm_strdup("offset"); } -#line 56364 "preproc.c" /* yacc.c:1652 */ +#line 57029 "preproc.c" break; - case 2735: -#line 15137 "preproc.y" /* yacc.c:1652 */ - { + case 2735: /* reserved_keyword: ON */ +#line 15137 "preproc.y" + { (yyval.str) = mm_strdup("on"); } -#line 56372 "preproc.c" /* yacc.c:1652 */ +#line 57037 "preproc.c" break; - case 2736: -#line 15141 "preproc.y" /* yacc.c:1652 */ - { + case 2736: /* reserved_keyword: ONLY */ +#line 15141 "preproc.y" + { (yyval.str) = mm_strdup("only"); } -#line 56380 "preproc.c" /* yacc.c:1652 */ +#line 57045 "preproc.c" break; - case 2737: -#line 15145 "preproc.y" /* yacc.c:1652 */ - { + case 2737: /* reserved_keyword: OR */ +#line 15145 "preproc.y" + { (yyval.str) = mm_strdup("or"); } -#line 56388 "preproc.c" /* yacc.c:1652 */ +#line 57053 "preproc.c" break; - case 2738: -#line 15149 "preproc.y" /* yacc.c:1652 */ - { + case 2738: /* reserved_keyword: ORDER */ +#line 15149 "preproc.y" + { (yyval.str) = mm_strdup("order"); } -#line 56396 "preproc.c" /* yacc.c:1652 */ +#line 57061 "preproc.c" break; - case 2739: -#line 15153 "preproc.y" /* yacc.c:1652 */ - { + case 2739: /* reserved_keyword: PLACING */ +#line 15153 "preproc.y" + { (yyval.str) = mm_strdup("placing"); } -#line 56404 "preproc.c" /* yacc.c:1652 */ +#line 57069 "preproc.c" break; - case 2740: -#line 15157 "preproc.y" /* yacc.c:1652 */ - { + case 2740: /* reserved_keyword: PRIMARY */ +#line 15157 "preproc.y" + { (yyval.str) = mm_strdup("primary"); } -#line 56412 "preproc.c" /* yacc.c:1652 */ +#line 57077 "preproc.c" break; - case 2741: -#line 15161 "preproc.y" /* yacc.c:1652 */ - { + case 2741: /* reserved_keyword: REFERENCES */ +#line 15161 "preproc.y" + { (yyval.str) = mm_strdup("references"); } -#line 56420 "preproc.c" /* yacc.c:1652 */ +#line 57085 "preproc.c" break; - case 2742: -#line 15165 "preproc.y" /* yacc.c:1652 */ - { + case 2742: /* reserved_keyword: RETURNING */ +#line 15165 "preproc.y" + { (yyval.str) = mm_strdup("returning"); } -#line 56428 "preproc.c" /* yacc.c:1652 */ +#line 57093 "preproc.c" break; - case 2743: -#line 15169 "preproc.y" /* yacc.c:1652 */ - { + case 2743: /* reserved_keyword: SELECT */ +#line 15169 "preproc.y" + { (yyval.str) = mm_strdup("select"); } -#line 56436 "preproc.c" /* yacc.c:1652 */ +#line 57101 "preproc.c" break; - case 2744: -#line 15173 "preproc.y" /* yacc.c:1652 */ - { + case 2744: /* reserved_keyword: SESSION_USER */ +#line 15173 "preproc.y" + { (yyval.str) = mm_strdup("session_user"); } -#line 56444 "preproc.c" /* yacc.c:1652 */ +#line 57109 "preproc.c" break; - case 2745: -#line 15177 "preproc.y" /* yacc.c:1652 */ - { + case 2745: /* reserved_keyword: SOME */ +#line 15177 "preproc.y" + { (yyval.str) = mm_strdup("some"); } -#line 56452 "preproc.c" /* yacc.c:1652 */ +#line 57117 "preproc.c" break; - case 2746: -#line 15181 "preproc.y" /* yacc.c:1652 */ - { + case 2746: /* reserved_keyword: SYMMETRIC */ +#line 15181 "preproc.y" + { (yyval.str) = mm_strdup("symmetric"); } -#line 56460 "preproc.c" /* yacc.c:1652 */ +#line 57125 "preproc.c" break; - case 2747: -#line 15185 "preproc.y" /* yacc.c:1652 */ - { + case 2747: /* reserved_keyword: TABLE */ +#line 15185 "preproc.y" + { (yyval.str) = mm_strdup("table"); } -#line 56468 "preproc.c" /* yacc.c:1652 */ +#line 57133 "preproc.c" break; - case 2748: -#line 15189 "preproc.y" /* yacc.c:1652 */ - { + case 2748: /* reserved_keyword: THEN */ +#line 15189 "preproc.y" + { (yyval.str) = mm_strdup("then"); } -#line 56476 "preproc.c" /* yacc.c:1652 */ +#line 57141 "preproc.c" break; - case 2749: -#line 15193 "preproc.y" /* yacc.c:1652 */ - { + case 2749: /* reserved_keyword: TRAILING */ +#line 15193 "preproc.y" + { (yyval.str) = mm_strdup("trailing"); } -#line 56484 "preproc.c" /* yacc.c:1652 */ +#line 57149 "preproc.c" break; - case 2750: -#line 15197 "preproc.y" /* yacc.c:1652 */ - { + case 2750: /* reserved_keyword: TRUE_P */ +#line 15197 "preproc.y" + { (yyval.str) = mm_strdup("true"); } -#line 56492 "preproc.c" /* yacc.c:1652 */ +#line 57157 "preproc.c" break; - case 2751: -#line 15201 "preproc.y" /* yacc.c:1652 */ - { + case 2751: /* reserved_keyword: UNIQUE */ +#line 15201 "preproc.y" + { (yyval.str) = mm_strdup("unique"); } -#line 56500 "preproc.c" /* yacc.c:1652 */ +#line 57165 "preproc.c" break; - case 2752: -#line 15205 "preproc.y" /* yacc.c:1652 */ - { + case 2752: /* reserved_keyword: USER */ +#line 15205 "preproc.y" + { (yyval.str) = mm_strdup("user"); } -#line 56508 "preproc.c" /* yacc.c:1652 */ +#line 57173 "preproc.c" break; - case 2753: -#line 15209 "preproc.y" /* yacc.c:1652 */ - { + case 2753: /* reserved_keyword: USING */ +#line 15209 "preproc.y" + { (yyval.str) = mm_strdup("using"); } -#line 56516 "preproc.c" /* yacc.c:1652 */ +#line 57181 "preproc.c" break; - case 2754: -#line 15213 "preproc.y" /* yacc.c:1652 */ - { + case 2754: /* reserved_keyword: VARIADIC */ +#line 15213 "preproc.y" + { (yyval.str) = mm_strdup("variadic"); } -#line 56524 "preproc.c" /* yacc.c:1652 */ +#line 57189 "preproc.c" break; - case 2755: -#line 15217 "preproc.y" /* yacc.c:1652 */ - { + case 2755: /* reserved_keyword: WHEN */ +#line 15217 "preproc.y" + { (yyval.str) = mm_strdup("when"); } -#line 56532 "preproc.c" /* yacc.c:1652 */ +#line 57197 "preproc.c" break; - case 2756: -#line 15221 "preproc.y" /* yacc.c:1652 */ - { + case 2756: /* reserved_keyword: WHERE */ +#line 15221 "preproc.y" + { (yyval.str) = mm_strdup("where"); } -#line 56540 "preproc.c" /* yacc.c:1652 */ +#line 57205 "preproc.c" break; - case 2757: -#line 15225 "preproc.y" /* yacc.c:1652 */ - { + case 2757: /* reserved_keyword: WINDOW */ +#line 15225 "preproc.y" + { (yyval.str) = mm_strdup("window"); } -#line 56548 "preproc.c" /* yacc.c:1652 */ +#line 57213 "preproc.c" break; - case 2758: -#line 15229 "preproc.y" /* yacc.c:1652 */ - { + case 2758: /* reserved_keyword: WITH */ +#line 15229 "preproc.y" + { (yyval.str) = mm_strdup("with"); } -#line 56556 "preproc.c" /* yacc.c:1652 */ +#line 57221 "preproc.c" break; - case 2761: -#line 15242 "preproc.y" /* yacc.c:1652 */ - { connection = NULL; } -#line 56562 "preproc.c" /* yacc.c:1652 */ + case 2761: /* statement: ecpgstart at stmt ';' */ +#line 15242 "preproc.y" + { connection = NULL; } +#line 57227 "preproc.c" break; - case 2763: -#line 15245 "preproc.y" /* yacc.c:1652 */ - { + case 2763: /* statement: ecpgstart ECPGVarDeclaration */ +#line 15245 "preproc.y" + { fprintf(base_yyout, "%s", (yyvsp[0].str)); free((yyvsp[0].str)); output_line_number(); } -#line 56572 "preproc.c" /* yacc.c:1652 */ +#line 57237 "preproc.c" break; - case 2765: -#line 15251 "preproc.y" /* yacc.c:1652 */ - { fprintf(base_yyout, "%s", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 56578 "preproc.c" /* yacc.c:1652 */ + case 2765: /* statement: c_thing */ +#line 15251 "preproc.y" + { fprintf(base_yyout, "%s", (yyvsp[0].str)); free((yyvsp[0].str)); } +#line 57243 "preproc.c" break; - case 2766: -#line 15252 "preproc.y" /* yacc.c:1652 */ - { fprintf(base_yyout, "%s", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 56584 "preproc.c" /* yacc.c:1652 */ + case 2766: /* statement: CPP_LINE */ +#line 15252 "preproc.y" + { fprintf(base_yyout, "%s", (yyvsp[0].str)); free((yyvsp[0].str)); } +#line 57249 "preproc.c" break; - case 2767: -#line 15253 "preproc.y" /* yacc.c:1652 */ - { braces_open++; fputs("{", base_yyout); } -#line 56590 "preproc.c" /* yacc.c:1652 */ + case 2767: /* statement: '{' */ +#line 15253 "preproc.y" + { braces_open++; fputs("{", base_yyout); } +#line 57255 "preproc.c" break; - case 2768: -#line 15255 "preproc.y" /* yacc.c:1652 */ - { + case 2768: /* statement: '}' */ +#line 15255 "preproc.y" + { remove_typedefs(braces_open); remove_variables(braces_open--); if (braces_open == 0) @@ -56601,46 +57266,46 @@ } fputs("}", base_yyout); } -#line 56605 "preproc.c" /* yacc.c:1652 */ +#line 57270 "preproc.c" break; - case 2769: -#line 15267 "preproc.y" /* yacc.c:1652 */ - {FoundInto = 0;} -#line 56611 "preproc.c" /* yacc.c:1652 */ + case 2769: /* $@1: %empty */ +#line 15267 "preproc.y" + {FoundInto = 0;} +#line 57276 "preproc.c" break; - case 2770: -#line 15268 "preproc.y" /* yacc.c:1652 */ - { + case 2770: /* CreateAsStmt: CREATE OptTemp TABLE create_as_target AS $@1 SelectStmt opt_with_data */ +#line 15268 "preproc.y" + { if (FoundInto == 1) mmerror(PARSE_ERROR, ET_ERROR, "CREATE TABLE AS cannot specify INTO"); (yyval.str) = cat_str(7, mm_strdup("create"), (yyvsp[-6].str), mm_strdup("table"), (yyvsp[-4].str), mm_strdup("as"), (yyvsp[-1].str), (yyvsp[0].str)); } -#line 56622 "preproc.c" /* yacc.c:1652 */ +#line 57287 "preproc.c" break; - case 2771: -#line 15274 "preproc.y" /* yacc.c:1652 */ - {FoundInto = 0;} -#line 56628 "preproc.c" /* yacc.c:1652 */ + case 2771: /* $@2: %empty */ +#line 15274 "preproc.y" + {FoundInto = 0;} +#line 57293 "preproc.c" break; - case 2772: -#line 15275 "preproc.y" /* yacc.c:1652 */ - { + case 2772: /* CreateAsStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS $@2 SelectStmt opt_with_data */ +#line 15275 "preproc.y" + { if (FoundInto == 1) mmerror(PARSE_ERROR, ET_ERROR, "CREATE TABLE AS cannot specify INTO"); (yyval.str) = cat_str(7, mm_strdup("create"), (yyvsp[-9].str), mm_strdup("table if not exists"), (yyvsp[-4].str), mm_strdup("as"), (yyvsp[-1].str), (yyvsp[0].str)); } -#line 56639 "preproc.c" /* yacc.c:1652 */ +#line 57304 "preproc.c" break; - case 2773: -#line 15284 "preproc.y" /* yacc.c:1652 */ - { + case 2773: /* at: AT connection_object */ +#line 15284 "preproc.y" + { connection = (yyvsp[0].str); /* * Do we have a variable as connection target? Remove the variable @@ -56649,36 +57314,36 @@ if (argsinsert != NULL) argsinsert = NULL; } -#line 56653 "preproc.c" /* yacc.c:1652 */ +#line 57318 "preproc.c" break; - case 2774: -#line 15299 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(5, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str), mm_strdup(","), (yyvsp[-1].str)); } -#line 56659 "preproc.c" /* yacc.c:1652 */ + case 2774: /* ECPGConnect: SQL_CONNECT TO connection_target opt_connection_name opt_user */ +#line 15299 "preproc.y" + { (yyval.str) = cat_str(5, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str), mm_strdup(","), (yyvsp[-1].str)); } +#line 57324 "preproc.c" break; - case 2775: -#line 15301 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("NULL, NULL, NULL, \"DEFAULT\""); } -#line 56665 "preproc.c" /* yacc.c:1652 */ + case 2775: /* ECPGConnect: SQL_CONNECT TO DEFAULT */ +#line 15301 "preproc.y" + { (yyval.str) = mm_strdup("NULL, NULL, NULL, \"DEFAULT\""); } +#line 57330 "preproc.c" break; - case 2776: -#line 15304 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, mm_strdup("NULL,"), (yyvsp[0].str), mm_strdup(", NULL")); } -#line 56671 "preproc.c" /* yacc.c:1652 */ + case 2776: /* ECPGConnect: SQL_CONNECT ora_user */ +#line 15304 "preproc.y" + { (yyval.str) = cat_str(3, mm_strdup("NULL,"), (yyvsp[0].str), mm_strdup(", NULL")); } +#line 57336 "preproc.c" break; - case 2777: -#line 15306 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat2_str((yyvsp[0].str), mm_strdup(", NULL, NULL, NULL")); } -#line 56677 "preproc.c" /* yacc.c:1652 */ + case 2777: /* ECPGConnect: DATABASE connection_target */ +#line 15306 "preproc.y" + { (yyval.str) = cat2_str((yyvsp[0].str), mm_strdup(", NULL, NULL, NULL")); } +#line 57342 "preproc.c" break; - case 2778: -#line 15310 "preproc.y" /* yacc.c:1652 */ - { + case 2778: /* connection_target: opt_database_name opt_server opt_port */ +#line 15310 "preproc.y" + { /* old style: dbname[@server][:port] */ if (strlen((yyvsp[-1].str)) > 0 && *((yyvsp[-1].str)) != '@') mmerror(PARSE_ERROR, ET_ERROR, "expected \"@\", found \"%s\"", (yyvsp[-1].str)); @@ -56689,12 +57354,12 @@ else (yyval.str) = make3_str(mm_strdup("\""), make3_str((yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)), mm_strdup("\"")); } -#line 56693 "preproc.c" /* yacc.c:1652 */ +#line 57358 "preproc.c" break; - case 2779: -#line 15322 "preproc.y" /* yacc.c:1652 */ - { + case 2779: /* connection_target: db_prefix ':' server opt_port '/' opt_database_name opt_options */ +#line 15322 "preproc.y" + { /* new style: :postgresql://server[:port][/dbname] */ if (strncmp((yyvsp[-6].str), "unix:postgresql", strlen("unix:postgresql")) != 0 && strncmp((yyvsp[-6].str), "tcp:postgresql", strlen("tcp:postgresql")) != 0) mmerror(PARSE_ERROR, ET_ERROR, "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"); @@ -56709,20 +57374,20 @@ (yyval.str) = make3_str(make3_str(mm_strdup("\""), (yyvsp[-6].str), mm_strdup(":")), (yyvsp[-4].str), make3_str(make3_str((yyvsp[-3].str), mm_strdup("/"), (yyvsp[-1].str)), (yyvsp[0].str), mm_strdup("\""))); } -#line 56713 "preproc.c" /* yacc.c:1652 */ +#line 57378 "preproc.c" break; - case 2780: -#line 15338 "preproc.y" /* yacc.c:1652 */ - { + case 2780: /* connection_target: char_variable */ +#line 15338 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 56721 "preproc.c" /* yacc.c:1652 */ +#line 57386 "preproc.c" break; - case 2781: -#line 15342 "preproc.y" /* yacc.c:1652 */ - { + case 2781: /* connection_target: ecpg_sconst */ +#line 15342 "preproc.y" + { /* We can only process double quoted strings not single quotes ones, * so we change the quotes. * Note, that the rule for ecpg_sconst adds these single quotes. */ @@ -56730,24 +57395,24 @@ (yyvsp[0].str)[strlen((yyvsp[0].str))-1] = '\"'; (yyval.str) = (yyvsp[0].str); } -#line 56734 "preproc.c" /* yacc.c:1652 */ +#line 57399 "preproc.c" break; - case 2782: -#line 15352 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 56740 "preproc.c" /* yacc.c:1652 */ + case 2782: /* opt_database_name: database_name */ +#line 15352 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57405 "preproc.c" break; - case 2783: -#line 15353 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 56746 "preproc.c" /* yacc.c:1652 */ + case 2783: /* opt_database_name: %empty */ +#line 15353 "preproc.y" + { (yyval.str) = EMPTY; } +#line 57411 "preproc.c" break; - case 2784: -#line 15357 "preproc.y" /* yacc.c:1652 */ - { + case 2784: /* db_prefix: ecpg_ident cvariable */ +#line 15357 "preproc.y" + { if (strcmp((yyvsp[0].str), "postgresql") != 0 && strcmp((yyvsp[0].str), "postgres") != 0) mmerror(PARSE_ERROR, ET_ERROR, "expected \"postgresql\", found \"%s\"", (yyvsp[0].str)); @@ -56756,135 +57421,135 @@ (yyval.str) = make3_str((yyvsp[-1].str), mm_strdup(":"), (yyvsp[0].str)); } -#line 56760 "preproc.c" /* yacc.c:1652 */ +#line 57425 "preproc.c" break; - case 2785: -#line 15369 "preproc.y" /* yacc.c:1652 */ - { + case 2785: /* server: Op server_name */ +#line 15369 "preproc.y" + { if (strcmp((yyvsp[-1].str), "@") != 0 && strcmp((yyvsp[-1].str), "//") != 0) mmerror(PARSE_ERROR, ET_ERROR, "expected \"@\" or \"://\", found \"%s\"", (yyvsp[-1].str)); (yyval.str) = make2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 56771 "preproc.c" /* yacc.c:1652 */ +#line 57436 "preproc.c" break; - case 2786: -#line 15377 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 56777 "preproc.c" /* yacc.c:1652 */ + case 2786: /* opt_server: server */ +#line 15377 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57442 "preproc.c" break; - case 2787: -#line 15378 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 56783 "preproc.c" /* yacc.c:1652 */ + case 2787: /* opt_server: %empty */ +#line 15378 "preproc.y" + { (yyval.str) = EMPTY; } +#line 57448 "preproc.c" break; - case 2788: -#line 15381 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 56789 "preproc.c" /* yacc.c:1652 */ + case 2788: /* server_name: ColId */ +#line 15381 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57454 "preproc.c" break; - case 2789: -#line 15382 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make3_str((yyvsp[-2].str), mm_strdup("."), (yyvsp[0].str)); } -#line 56795 "preproc.c" /* yacc.c:1652 */ + case 2789: /* server_name: ColId '.' server_name */ +#line 15382 "preproc.y" + { (yyval.str) = make3_str((yyvsp[-2].str), mm_strdup("."), (yyvsp[0].str)); } +#line 57460 "preproc.c" break; - case 2790: -#line 15383 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make_name(); } -#line 56801 "preproc.c" /* yacc.c:1652 */ + case 2790: /* server_name: IP */ +#line 15383 "preproc.y" + { (yyval.str) = make_name(); } +#line 57466 "preproc.c" break; - case 2791: -#line 15386 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make2_str(mm_strdup(":"), (yyvsp[0].str)); } -#line 56807 "preproc.c" /* yacc.c:1652 */ + case 2791: /* opt_port: ':' Iconst */ +#line 15386 "preproc.y" + { (yyval.str) = make2_str(mm_strdup(":"), (yyvsp[0].str)); } +#line 57472 "preproc.c" break; - case 2792: -#line 15387 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 56813 "preproc.c" /* yacc.c:1652 */ + case 2792: /* opt_port: %empty */ +#line 15387 "preproc.y" + { (yyval.str) = EMPTY; } +#line 57478 "preproc.c" break; - case 2793: -#line 15390 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 56819 "preproc.c" /* yacc.c:1652 */ + case 2793: /* opt_connection_name: AS connection_object */ +#line 15390 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57484 "preproc.c" break; - case 2794: -#line 15391 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("NULL"); } -#line 56825 "preproc.c" /* yacc.c:1652 */ + case 2794: /* opt_connection_name: %empty */ +#line 15391 "preproc.y" + { (yyval.str) = mm_strdup("NULL"); } +#line 57490 "preproc.c" break; - case 2795: -#line 15394 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 56831 "preproc.c" /* yacc.c:1652 */ + case 2795: /* opt_user: USER ora_user */ +#line 15394 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57496 "preproc.c" break; - case 2796: -#line 15395 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("NULL, NULL"); } -#line 56837 "preproc.c" /* yacc.c:1652 */ + case 2796: /* opt_user: %empty */ +#line 15395 "preproc.y" + { (yyval.str) = mm_strdup("NULL, NULL"); } +#line 57502 "preproc.c" break; - case 2797: -#line 15399 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat2_str((yyvsp[0].str), mm_strdup(", NULL")); } -#line 56843 "preproc.c" /* yacc.c:1652 */ + case 2797: /* ora_user: user_name */ +#line 15399 "preproc.y" + { (yyval.str) = cat2_str((yyvsp[0].str), mm_strdup(", NULL")); } +#line 57508 "preproc.c" break; - case 2798: -#line 15401 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 56849 "preproc.c" /* yacc.c:1652 */ + case 2798: /* ora_user: user_name '/' user_name */ +#line 15401 "preproc.y" + { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } +#line 57514 "preproc.c" break; - case 2799: -#line 15403 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, (yyvsp[-3].str), mm_strdup(","), (yyvsp[0].str)); } -#line 56855 "preproc.c" /* yacc.c:1652 */ + case 2799: /* ora_user: user_name SQL_IDENTIFIED BY user_name */ +#line 15403 "preproc.y" + { (yyval.str) = cat_str(3, (yyvsp[-3].str), mm_strdup(","), (yyvsp[0].str)); } +#line 57520 "preproc.c" break; - case 2800: -#line 15405 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 56861 "preproc.c" /* yacc.c:1652 */ + case 2800: /* ora_user: user_name USING user_name */ +#line 15405 "preproc.y" + { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } +#line 57526 "preproc.c" break; - case 2801: -#line 15409 "preproc.y" /* yacc.c:1652 */ - { + case 2801: /* user_name: RoleId */ +#line 15409 "preproc.y" + { if ((yyvsp[0].str)[0] == '\"') (yyval.str) = (yyvsp[0].str); else (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 56872 "preproc.c" /* yacc.c:1652 */ +#line 57537 "preproc.c" break; - case 2802: -#line 15416 "preproc.y" /* yacc.c:1652 */ - { + case 2802: /* user_name: ecpg_sconst */ +#line 15416 "preproc.y" + { if ((yyvsp[0].str)[0] == '\"') (yyval.str) = (yyvsp[0].str); else (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 56883 "preproc.c" /* yacc.c:1652 */ +#line 57548 "preproc.c" break; - case 2803: -#line 15423 "preproc.y" /* yacc.c:1652 */ - { + case 2803: /* user_name: civar */ +#line 15423 "preproc.y" + { enum ECPGttype type = argsinsert->variable->type->type; /* if array see what's inside */ @@ -56897,12 +57562,12 @@ else (yyval.str) = mm_strdup(argsinsert->variable->name); } -#line 56901 "preproc.c" /* yacc.c:1652 */ +#line 57566 "preproc.c" break; - case 2804: -#line 15439 "preproc.y" /* yacc.c:1652 */ - { + case 2804: /* char_variable: cvariable */ +#line 15439 "preproc.y" + { /* check if we have a string variable */ struct variable *p = find_variable((yyvsp[0].str)); enum ECPGttype type = p->type->type; @@ -56933,12 +57598,12 @@ } } } -#line 56937 "preproc.c" /* yacc.c:1652 */ +#line 57602 "preproc.c" break; - case 2805: -#line 15473 "preproc.y" /* yacc.c:1652 */ - { + case 2805: /* opt_options: Op connect_options */ +#line 15473 "preproc.y" + { if (strlen((yyvsp[-1].str)) == 0) mmerror(PARSE_ERROR, ET_ERROR, "incomplete statement"); @@ -56947,26 +57612,26 @@ (yyval.str) = make2_str(mm_strdup("?"), (yyvsp[0].str)); } -#line 56951 "preproc.c" /* yacc.c:1652 */ +#line 57616 "preproc.c" break; - case 2806: -#line 15482 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 56957 "preproc.c" /* yacc.c:1652 */ + case 2806: /* opt_options: %empty */ +#line 15482 "preproc.y" + { (yyval.str) = EMPTY; } +#line 57622 "preproc.c" break; - case 2807: -#line 15486 "preproc.y" /* yacc.c:1652 */ - { + case 2807: /* connect_options: ColId opt_opt_value */ +#line 15486 "preproc.y" + { (yyval.str) = make2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 56965 "preproc.c" /* yacc.c:1652 */ +#line 57630 "preproc.c" break; - case 2808: -#line 15490 "preproc.y" /* yacc.c:1652 */ - { + case 2808: /* connect_options: ColId opt_opt_value Op connect_options */ +#line 15490 "preproc.y" + { if (strlen((yyvsp[-1].str)) == 0) mmerror(PARSE_ERROR, ET_ERROR, "incomplete statement"); @@ -56975,36 +57640,36 @@ (yyval.str) = cat_str(3, make2_str((yyvsp[-3].str), (yyvsp[-2].str)), (yyvsp[-1].str), (yyvsp[0].str)); } -#line 56979 "preproc.c" /* yacc.c:1652 */ +#line 57644 "preproc.c" break; - case 2809: -#line 15502 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 56985 "preproc.c" /* yacc.c:1652 */ + case 2809: /* opt_opt_value: %empty */ +#line 15502 "preproc.y" + { (yyval.str) = EMPTY; } +#line 57650 "preproc.c" break; - case 2810: -#line 15504 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make2_str(mm_strdup("="), (yyvsp[0].str)); } -#line 56991 "preproc.c" /* yacc.c:1652 */ + case 2810: /* opt_opt_value: '=' Iconst */ +#line 15504 "preproc.y" + { (yyval.str) = make2_str(mm_strdup("="), (yyvsp[0].str)); } +#line 57656 "preproc.c" break; - case 2811: -#line 15506 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make2_str(mm_strdup("="), (yyvsp[0].str)); } -#line 56997 "preproc.c" /* yacc.c:1652 */ + case 2811: /* opt_opt_value: '=' ecpg_ident */ +#line 15506 "preproc.y" + { (yyval.str) = make2_str(mm_strdup("="), (yyvsp[0].str)); } +#line 57662 "preproc.c" break; - case 2812: -#line 15508 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make2_str(mm_strdup("="), (yyvsp[0].str)); } -#line 57003 "preproc.c" /* yacc.c:1652 */ + case 2812: /* opt_opt_value: '=' civar */ +#line 15508 "preproc.y" + { (yyval.str) = make2_str(mm_strdup("="), (yyvsp[0].str)); } +#line 57668 "preproc.c" break; - case 2813: -#line 15512 "preproc.y" /* yacc.c:1652 */ - { + case 2813: /* prepared_name: name */ +#line 15512 "preproc.y" + { if ((yyvsp[0].str)[0] == '\"' && (yyvsp[0].str)[strlen((yyvsp[0].str))-1] == '\"') /* already quoted? */ (yyval.str) = (yyvsp[0].str); else /* not quoted => convert to lowercase */ @@ -57017,18 +57682,18 @@ (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } } -#line 57021 "preproc.c" /* yacc.c:1652 */ +#line 57686 "preproc.c" break; - case 2814: -#line 15525 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57027 "preproc.c" /* yacc.c:1652 */ + case 2814: /* prepared_name: char_variable */ +#line 15525 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57692 "preproc.c" break; - case 2815: -#line 15533 "preproc.y" /* yacc.c:1652 */ - { + case 2815: /* ECPGCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR prepared_name */ +#line 15533 "preproc.y" + { struct cursor *ptr, *this; char *cursor_marker = (yyvsp[-5].str)[0] == ':' ? mm_strdup("$0") : mm_strdup((yyvsp[-5].str)); int (* strcmp_fn)(const char *, const char *) = (((yyvsp[-5].str)[0] == ':' || (yyvsp[-5].str)[0] == '"') ? strcmp : pg_strcasecmp); @@ -57082,180 +57747,180 @@ (yyval.str) = cat_str(2, adjust_outofscope_cursor_vars(this), comment); } -#line 57086 "preproc.c" /* yacc.c:1652 */ +#line 57751 "preproc.c" break; - case 2816: -#line 15590 "preproc.y" /* yacc.c:1652 */ - { + case 2816: /* ECPGExecuteImmediateStmt: EXECUTE IMMEDIATE execstring */ +#line 15590 "preproc.y" + { /* execute immediate means prepare the statement and * immediately execute it */ (yyval.str) = (yyvsp[0].str); } -#line 57096 "preproc.c" /* yacc.c:1652 */ +#line 57761 "preproc.c" break; - case 2818: -#line 15600 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57102 "preproc.c" /* yacc.c:1652 */ + case 2818: /* single_vt_declaration: type_declaration */ +#line 15600 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57767 "preproc.c" break; - case 2819: -#line 15601 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57108 "preproc.c" /* yacc.c:1652 */ + case 2819: /* single_vt_declaration: var_declaration */ +#line 15601 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57773 "preproc.c" break; - case 2820: -#line 15604 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57114 "preproc.c" /* yacc.c:1652 */ + case 2820: /* precision: NumericOnly */ +#line 15604 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57779 "preproc.c" break; - case 2821: -#line 15606 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57120 "preproc.c" /* yacc.c:1652 */ + case 2821: /* opt_scale: ',' NumericOnly */ +#line 15606 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57785 "preproc.c" break; - case 2822: -#line 15607 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 57126 "preproc.c" /* yacc.c:1652 */ + case 2822: /* opt_scale: %empty */ +#line 15607 "preproc.y" + { (yyval.str) = EMPTY; } +#line 57791 "preproc.c" break; - case 2823: -#line 15610 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57132 "preproc.c" /* yacc.c:1652 */ + case 2823: /* ecpg_interval: opt_interval */ +#line 15610 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57797 "preproc.c" break; - case 2824: -#line 15611 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("year to minute"); } -#line 57138 "preproc.c" /* yacc.c:1652 */ + case 2824: /* ecpg_interval: YEAR_P TO MINUTE_P */ +#line 15611 "preproc.y" + { (yyval.str) = mm_strdup("year to minute"); } +#line 57803 "preproc.c" break; - case 2825: -#line 15612 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("year to second"); } -#line 57144 "preproc.c" /* yacc.c:1652 */ + case 2825: /* ecpg_interval: YEAR_P TO SECOND_P */ +#line 15612 "preproc.y" + { (yyval.str) = mm_strdup("year to second"); } +#line 57809 "preproc.c" break; - case 2826: -#line 15613 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("day to day"); } -#line 57150 "preproc.c" /* yacc.c:1652 */ + case 2826: /* ecpg_interval: DAY_P TO DAY_P */ +#line 15613 "preproc.y" + { (yyval.str) = mm_strdup("day to day"); } +#line 57815 "preproc.c" break; - case 2827: -#line 15614 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("month to month"); } -#line 57156 "preproc.c" /* yacc.c:1652 */ + case 2827: /* ecpg_interval: MONTH_P TO MONTH_P */ +#line 15614 "preproc.y" + { (yyval.str) = mm_strdup("month to month"); } +#line 57821 "preproc.c" break; - case 2828: -#line 15621 "preproc.y" /* yacc.c:1652 */ - { fputs("/* exec sql begin declare section */", base_yyout); } -#line 57162 "preproc.c" /* yacc.c:1652 */ + case 2828: /* $@3: %empty */ +#line 15621 "preproc.y" + { fputs("/* exec sql begin declare section */", base_yyout); } +#line 57827 "preproc.c" break; - case 2829: -#line 15623 "preproc.y" /* yacc.c:1652 */ - { + case 2829: /* ECPGDeclaration: sql_startdeclare $@3 var_type_declarations sql_enddeclare */ +#line 15623 "preproc.y" + { fprintf(base_yyout, "%s/* exec sql end declare section */", (yyvsp[-1].str)); free((yyvsp[-1].str)); output_line_number(); } -#line 57172 "preproc.c" /* yacc.c:1652 */ +#line 57837 "preproc.c" break; - case 2830: -#line 15630 "preproc.y" /* yacc.c:1652 */ - {} -#line 57178 "preproc.c" /* yacc.c:1652 */ + case 2830: /* sql_startdeclare: ecpgstart BEGIN_P DECLARE SQL_SECTION ';' */ +#line 15630 "preproc.y" + {} +#line 57843 "preproc.c" break; - case 2831: -#line 15632 "preproc.y" /* yacc.c:1652 */ - {} -#line 57184 "preproc.c" /* yacc.c:1652 */ + case 2831: /* sql_enddeclare: ecpgstart END_P DECLARE SQL_SECTION ';' */ +#line 15632 "preproc.y" + {} +#line 57849 "preproc.c" break; - case 2832: -#line 15634 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 57190 "preproc.c" /* yacc.c:1652 */ + case 2832: /* var_type_declarations: %empty */ +#line 15634 "preproc.y" + { (yyval.str) = EMPTY; } +#line 57855 "preproc.c" break; - case 2833: -#line 15635 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57196 "preproc.c" /* yacc.c:1652 */ + case 2833: /* var_type_declarations: vt_declarations */ +#line 15635 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57861 "preproc.c" break; - case 2834: -#line 15638 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57202 "preproc.c" /* yacc.c:1652 */ + case 2834: /* vt_declarations: single_vt_declaration */ +#line 15638 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57867 "preproc.c" break; - case 2835: -#line 15639 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57208 "preproc.c" /* yacc.c:1652 */ + case 2835: /* vt_declarations: CPP_LINE */ +#line 15639 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57873 "preproc.c" break; - case 2836: -#line 15640 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 57214 "preproc.c" /* yacc.c:1652 */ + case 2836: /* vt_declarations: vt_declarations single_vt_declaration */ +#line 15640 "preproc.y" + { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } +#line 57879 "preproc.c" break; - case 2837: -#line 15641 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 57220 "preproc.c" /* yacc.c:1652 */ + case 2837: /* vt_declarations: vt_declarations CPP_LINE */ +#line 15641 "preproc.y" + { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } +#line 57885 "preproc.c" break; - case 2838: -#line 15644 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57226 "preproc.c" /* yacc.c:1652 */ + case 2838: /* variable_declarations: var_declaration */ +#line 15644 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 57891 "preproc.c" break; - case 2839: -#line 15645 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 57232 "preproc.c" /* yacc.c:1652 */ + case 2839: /* variable_declarations: variable_declarations var_declaration */ +#line 15645 "preproc.y" + { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } +#line 57897 "preproc.c" break; - case 2840: -#line 15649 "preproc.y" /* yacc.c:1652 */ - { + case 2840: /* $@4: %empty */ +#line 15649 "preproc.y" + { /* reset this variable so we see if there was */ /* an initializer specified */ initializer = 0; } -#line 57242 "preproc.c" /* yacc.c:1652 */ +#line 57907 "preproc.c" break; - case 2841: -#line 15655 "preproc.y" /* yacc.c:1652 */ - { + case 2841: /* type_declaration: S_TYPEDEF $@4 var_type opt_pointer ECPGColLabelCommon opt_array_bounds ';' */ +#line 15655 "preproc.y" + { add_typedef((yyvsp[-2].str), (yyvsp[-1].index).index1, (yyvsp[-1].index).index2, (yyvsp[-4].type).type_enum, (yyvsp[-4].type).type_dimension, (yyvsp[-4].type).type_index, initializer, *(yyvsp[-3].str) ? 1 : 0); fprintf(base_yyout, "typedef %s %s %s %s;\n", (yyvsp[-4].type).type_str, *(yyvsp[-3].str) ? "*" : "", (yyvsp[-2].str), (yyvsp[-1].index).str); output_line_number(); (yyval.str) = mm_strdup(""); } -#line 57254 "preproc.c" /* yacc.c:1652 */ +#line 57919 "preproc.c" break; - case 2842: -#line 15665 "preproc.y" /* yacc.c:1652 */ - { + case 2842: /* $@5: %empty */ +#line 15665 "preproc.y" + { actual_type[struct_level].type_enum = (yyvsp[0].type).type_enum; actual_type[struct_level].type_str = (yyvsp[0].type).type_str; actual_type[struct_level].type_dimension = (yyvsp[0].type).type_dimension; @@ -57264,20 +57929,20 @@ actual_startline[struct_level] = hashline_number(); } -#line 57268 "preproc.c" /* yacc.c:1652 */ +#line 57933 "preproc.c" break; - case 2843: -#line 15675 "preproc.y" /* yacc.c:1652 */ - { + case 2843: /* var_declaration: storage_declaration var_type $@5 variable_list ';' */ +#line 15675 "preproc.y" + { (yyval.str) = cat_str(5, actual_startline[struct_level], (yyvsp[-4].str), (yyvsp[-3].type).type_str, (yyvsp[-1].str), mm_strdup(";\n")); } -#line 57276 "preproc.c" /* yacc.c:1652 */ +#line 57941 "preproc.c" break; - case 2844: -#line 15679 "preproc.y" /* yacc.c:1652 */ - { + case 2844: /* $@6: %empty */ +#line 15679 "preproc.y" + { actual_type[struct_level].type_enum = (yyvsp[0].type).type_enum; actual_type[struct_level].type_str = (yyvsp[0].type).type_str; actual_type[struct_level].type_dimension = (yyvsp[0].type).type_dimension; @@ -57286,106 +57951,106 @@ actual_startline[struct_level] = hashline_number(); } -#line 57290 "preproc.c" /* yacc.c:1652 */ +#line 57955 "preproc.c" break; - case 2845: -#line 15689 "preproc.y" /* yacc.c:1652 */ - { + case 2845: /* var_declaration: var_type $@6 variable_list ';' */ +#line 15689 "preproc.y" + { (yyval.str) = cat_str(4, actual_startline[struct_level], (yyvsp[-3].type).type_str, (yyvsp[-1].str), mm_strdup(";\n")); } -#line 57298 "preproc.c" /* yacc.c:1652 */ +#line 57963 "preproc.c" break; - case 2846: -#line 15693 "preproc.y" /* yacc.c:1652 */ - { + case 2846: /* var_declaration: struct_union_type_with_symbol ';' */ +#line 15693 "preproc.y" + { (yyval.str) = cat2_str((yyvsp[-1].str), mm_strdup(";")); } -#line 57306 "preproc.c" /* yacc.c:1652 */ +#line 57971 "preproc.c" break; - case 2847: -#line 15698 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) =cat2_str(mm_strdup(":"), (yyvsp[0].str)); } -#line 57312 "preproc.c" /* yacc.c:1652 */ + case 2847: /* opt_bit_field: ':' Iconst */ +#line 15698 "preproc.y" + { (yyval.str) =cat2_str(mm_strdup(":"), (yyvsp[0].str)); } +#line 57977 "preproc.c" break; - case 2848: -#line 15699 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 57318 "preproc.c" /* yacc.c:1652 */ + case 2848: /* opt_bit_field: %empty */ +#line 15699 "preproc.y" + { (yyval.str) = EMPTY; } +#line 57983 "preproc.c" break; - case 2849: -#line 15703 "preproc.y" /* yacc.c:1652 */ - {(yyval.str) = cat2_str ((yyvsp[-1].str), (yyvsp[0].str)); } -#line 57324 "preproc.c" /* yacc.c:1652 */ + case 2849: /* storage_declaration: storage_clause storage_modifier */ +#line 15703 "preproc.y" + {(yyval.str) = cat2_str ((yyvsp[-1].str), (yyvsp[0].str)); } +#line 57989 "preproc.c" break; - case 2850: -#line 15704 "preproc.y" /* yacc.c:1652 */ - {(yyval.str) = (yyvsp[0].str); } -#line 57330 "preproc.c" /* yacc.c:1652 */ + case 2850: /* storage_declaration: storage_clause */ +#line 15704 "preproc.y" + {(yyval.str) = (yyvsp[0].str); } +#line 57995 "preproc.c" break; - case 2851: -#line 15705 "preproc.y" /* yacc.c:1652 */ - {(yyval.str) = (yyvsp[0].str); } -#line 57336 "preproc.c" /* yacc.c:1652 */ + case 2851: /* storage_declaration: storage_modifier */ +#line 15705 "preproc.y" + {(yyval.str) = (yyvsp[0].str); } +#line 58001 "preproc.c" break; - case 2852: -#line 15708 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("extern"); } -#line 57342 "preproc.c" /* yacc.c:1652 */ + case 2852: /* storage_clause: S_EXTERN */ +#line 15708 "preproc.y" + { (yyval.str) = mm_strdup("extern"); } +#line 58007 "preproc.c" break; - case 2853: -#line 15709 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("static"); } -#line 57348 "preproc.c" /* yacc.c:1652 */ + case 2853: /* storage_clause: S_STATIC */ +#line 15709 "preproc.y" + { (yyval.str) = mm_strdup("static"); } +#line 58013 "preproc.c" break; - case 2854: -#line 15710 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("register"); } -#line 57354 "preproc.c" /* yacc.c:1652 */ + case 2854: /* storage_clause: S_REGISTER */ +#line 15710 "preproc.y" + { (yyval.str) = mm_strdup("register"); } +#line 58019 "preproc.c" break; - case 2855: -#line 15711 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("auto"); } -#line 57360 "preproc.c" /* yacc.c:1652 */ + case 2855: /* storage_clause: S_AUTO */ +#line 15711 "preproc.y" + { (yyval.str) = mm_strdup("auto"); } +#line 58025 "preproc.c" break; - case 2856: -#line 15714 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("const"); } -#line 57366 "preproc.c" /* yacc.c:1652 */ + case 2856: /* storage_modifier: S_CONST */ +#line 15714 "preproc.y" + { (yyval.str) = mm_strdup("const"); } +#line 58031 "preproc.c" break; - case 2857: -#line 15715 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("volatile"); } -#line 57372 "preproc.c" /* yacc.c:1652 */ + case 2857: /* storage_modifier: S_VOLATILE */ +#line 15715 "preproc.y" + { (yyval.str) = mm_strdup("volatile"); } +#line 58037 "preproc.c" break; - case 2858: -#line 15719 "preproc.y" /* yacc.c:1652 */ - { + case 2858: /* var_type: simple_type */ +#line 15719 "preproc.y" + { (yyval.type).type_enum = (yyvsp[0].type_enum); (yyval.type).type_str = mm_strdup(ecpg_type_name((yyvsp[0].type_enum))); (yyval.type).type_dimension = mm_strdup("-1"); (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 57384 "preproc.c" /* yacc.c:1652 */ +#line 58049 "preproc.c" break; - case 2859: -#line 15727 "preproc.y" /* yacc.c:1652 */ - { + case 2859: /* var_type: struct_union_type */ +#line 15727 "preproc.y" + { (yyval.type).type_str = (yyvsp[0].str); (yyval.type).type_dimension = mm_strdup("-1"); (yyval.type).type_index = mm_strdup("-1"); @@ -57401,24 +58066,24 @@ (yyval.type).type_sizeof = NULL; } } -#line 57405 "preproc.c" /* yacc.c:1652 */ +#line 58070 "preproc.c" break; - case 2860: -#line 15744 "preproc.y" /* yacc.c:1652 */ - { + case 2860: /* var_type: enum_type */ +#line 15744 "preproc.y" + { (yyval.type).type_str = (yyvsp[0].str); (yyval.type).type_enum = ECPGt_int; (yyval.type).type_dimension = mm_strdup("-1"); (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 57417 "preproc.c" /* yacc.c:1652 */ +#line 58082 "preproc.c" break; - case 2861: -#line 15752 "preproc.y" /* yacc.c:1652 */ - { + case 2861: /* var_type: ECPGColLabelCommon '(' precision opt_scale ')' */ +#line 15752 "preproc.y" + { if (strcmp((yyvsp[-4].str), "numeric") == 0) { (yyval.type).type_enum = ECPGt_numeric; @@ -57440,12 +58105,12 @@ (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 57444 "preproc.c" /* yacc.c:1652 */ +#line 58109 "preproc.c" break; - case 2862: -#line 15775 "preproc.y" /* yacc.c:1652 */ - { + case 2862: /* var_type: ECPGColLabelCommon ecpg_interval */ +#line 15775 "preproc.y" + { if (strlen((yyvsp[0].str)) != 0 && strcmp ((yyvsp[-1].str), "datetime") != 0 && strcmp ((yyvsp[-1].str), "interval") != 0) mmerror (PARSE_ERROR, ET_ERROR, "interval specification not allowed here"); @@ -57558,12 +58223,12 @@ struct_member_list[struct_level] = ECPGstruct_member_dup(this->struct_member_list); } } -#line 57562 "preproc.c" /* yacc.c:1652 */ +#line 58227 "preproc.c" break; - case 2863: -#line 15889 "preproc.y" /* yacc.c:1652 */ - { + case 2863: /* var_type: s_struct_union_symbol */ +#line 15889 "preproc.y" + { /* this is for named structs/unions */ char *name; struct typedefs *this; @@ -57594,47 +58259,47 @@ struct_member_list[struct_level] = NULL; } } -#line 57598 "preproc.c" /* yacc.c:1652 */ +#line 58263 "preproc.c" break; - case 2864: -#line 15923 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, mm_strdup("enum"), (yyvsp[-1].str), (yyvsp[0].str)); } -#line 57604 "preproc.c" /* yacc.c:1652 */ + case 2864: /* enum_type: ENUM_P symbol enum_definition */ +#line 15923 "preproc.y" + { (yyval.str) = cat_str(3, mm_strdup("enum"), (yyvsp[-1].str), (yyvsp[0].str)); } +#line 58269 "preproc.c" break; - case 2865: -#line 15925 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat2_str(mm_strdup("enum"), (yyvsp[0].str)); } -#line 57610 "preproc.c" /* yacc.c:1652 */ + case 2865: /* enum_type: ENUM_P enum_definition */ +#line 15925 "preproc.y" + { (yyval.str) = cat2_str(mm_strdup("enum"), (yyvsp[0].str)); } +#line 58275 "preproc.c" break; - case 2866: -#line 15927 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat2_str(mm_strdup("enum"), (yyvsp[0].str)); } -#line 57616 "preproc.c" /* yacc.c:1652 */ + case 2866: /* enum_type: ENUM_P symbol */ +#line 15927 "preproc.y" + { (yyval.str) = cat2_str(mm_strdup("enum"), (yyvsp[0].str)); } +#line 58281 "preproc.c" break; - case 2867: -#line 15931 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } -#line 57622 "preproc.c" /* yacc.c:1652 */ + case 2867: /* enum_definition: '{' c_list '}' */ +#line 15931 "preproc.y" + { (yyval.str) = cat_str(3, mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } +#line 58287 "preproc.c" break; - case 2868: -#line 15934 "preproc.y" /* yacc.c:1652 */ - { + case 2868: /* $@7: %empty */ +#line 15934 "preproc.y" + { struct_member_list[struct_level++] = NULL; if (struct_level >= STRUCT_DEPTH) mmerror(PARSE_ERROR, ET_ERROR, "too many levels in nested structure/union definition"); forward_name = mm_strdup((yyvsp[0].struct_union).symbol); } -#line 57633 "preproc.c" /* yacc.c:1652 */ +#line 58298 "preproc.c" break; - case 2869: -#line 15941 "preproc.y" /* yacc.c:1652 */ - { + case 2869: /* struct_union_type_with_symbol: s_struct_union_symbol $@7 '{' variable_declarations '}' */ +#line 15941 "preproc.y" + { struct typedefs *ptr, *this; struct this_type su_type; @@ -57675,218 +58340,218 @@ types = this; (yyval.str) = cat_str(4, su_type.type_str, mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } -#line 57679 "preproc.c" /* yacc.c:1652 */ +#line 58344 "preproc.c" break; - case 2870: -#line 15984 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57685 "preproc.c" /* yacc.c:1652 */ + case 2870: /* struct_union_type: struct_union_type_with_symbol */ +#line 15984 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58350 "preproc.c" break; - case 2871: -#line 15986 "preproc.y" /* yacc.c:1652 */ - { + case 2871: /* $@8: %empty */ +#line 15986 "preproc.y" + { struct_member_list[struct_level++] = NULL; if (struct_level >= STRUCT_DEPTH) mmerror(PARSE_ERROR, ET_ERROR, "too many levels in nested structure/union definition"); } -#line 57695 "preproc.c" /* yacc.c:1652 */ +#line 58360 "preproc.c" break; - case 2872: -#line 15992 "preproc.y" /* yacc.c:1652 */ - { + case 2872: /* struct_union_type: s_struct_union $@8 '{' variable_declarations '}' */ +#line 15992 "preproc.y" + { ECPGfree_struct_member(struct_member_list[struct_level]); struct_member_list[struct_level] = NULL; struct_level--; (yyval.str) = cat_str(4, (yyvsp[-4].str), mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } -#line 57706 "preproc.c" /* yacc.c:1652 */ +#line 58371 "preproc.c" break; - case 2873: -#line 16001 "preproc.y" /* yacc.c:1652 */ - { + case 2873: /* s_struct_union_symbol: SQL_STRUCT symbol */ +#line 16001 "preproc.y" + { (yyval.struct_union).su = mm_strdup("struct"); (yyval.struct_union).symbol = (yyvsp[0].str); ECPGstruct_sizeof = cat_str(3, mm_strdup("sizeof("), cat2_str(mm_strdup((yyval.struct_union).su), mm_strdup((yyval.struct_union).symbol)), mm_strdup(")")); } -#line 57716 "preproc.c" /* yacc.c:1652 */ +#line 58381 "preproc.c" break; - case 2874: -#line 16007 "preproc.y" /* yacc.c:1652 */ - { + case 2874: /* s_struct_union_symbol: UNION symbol */ +#line 16007 "preproc.y" + { (yyval.struct_union).su = mm_strdup("union"); (yyval.struct_union).symbol = (yyvsp[0].str); } -#line 57725 "preproc.c" /* yacc.c:1652 */ +#line 58390 "preproc.c" break; - case 2875: -#line 16014 "preproc.y" /* yacc.c:1652 */ - { + case 2875: /* s_struct_union: SQL_STRUCT */ +#line 16014 "preproc.y" + { ECPGstruct_sizeof = mm_strdup(""); /* This must not be NULL to distinguish from simple types. */ (yyval.str) = mm_strdup("struct"); } -#line 57734 "preproc.c" /* yacc.c:1652 */ +#line 58399 "preproc.c" break; - case 2876: -#line 16019 "preproc.y" /* yacc.c:1652 */ - { + case 2876: /* s_struct_union: UNION */ +#line 16019 "preproc.y" + { (yyval.str) = mm_strdup("union"); } -#line 57742 "preproc.c" /* yacc.c:1652 */ +#line 58407 "preproc.c" break; - case 2877: -#line 16024 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum)=(yyvsp[0].type_enum); } -#line 57748 "preproc.c" /* yacc.c:1652 */ + case 2877: /* simple_type: unsigned_type */ +#line 16024 "preproc.y" + { (yyval.type_enum)=(yyvsp[0].type_enum); } +#line 58413 "preproc.c" break; - case 2878: -#line 16025 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum)=(yyvsp[0].type_enum); } -#line 57754 "preproc.c" /* yacc.c:1652 */ + case 2878: /* simple_type: opt_signed signed_type */ +#line 16025 "preproc.y" + { (yyval.type_enum)=(yyvsp[0].type_enum); } +#line 58419 "preproc.c" break; - case 2879: -#line 16028 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_unsigned_short; } -#line 57760 "preproc.c" /* yacc.c:1652 */ + case 2879: /* unsigned_type: SQL_UNSIGNED SQL_SHORT */ +#line 16028 "preproc.y" + { (yyval.type_enum) = ECPGt_unsigned_short; } +#line 58425 "preproc.c" break; - case 2880: -#line 16029 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_unsigned_short; } -#line 57766 "preproc.c" /* yacc.c:1652 */ + case 2880: /* unsigned_type: SQL_UNSIGNED SQL_SHORT INT_P */ +#line 16029 "preproc.y" + { (yyval.type_enum) = ECPGt_unsigned_short; } +#line 58431 "preproc.c" break; - case 2881: -#line 16030 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_unsigned_int; } -#line 57772 "preproc.c" /* yacc.c:1652 */ + case 2881: /* unsigned_type: SQL_UNSIGNED */ +#line 16030 "preproc.y" + { (yyval.type_enum) = ECPGt_unsigned_int; } +#line 58437 "preproc.c" break; - case 2882: -#line 16031 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_unsigned_int; } -#line 57778 "preproc.c" /* yacc.c:1652 */ + case 2882: /* unsigned_type: SQL_UNSIGNED INT_P */ +#line 16031 "preproc.y" + { (yyval.type_enum) = ECPGt_unsigned_int; } +#line 58443 "preproc.c" break; - case 2883: -#line 16032 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_unsigned_long; } -#line 57784 "preproc.c" /* yacc.c:1652 */ + case 2883: /* unsigned_type: SQL_UNSIGNED SQL_LONG */ +#line 16032 "preproc.y" + { (yyval.type_enum) = ECPGt_unsigned_long; } +#line 58449 "preproc.c" break; - case 2884: -#line 16033 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_unsigned_long; } -#line 57790 "preproc.c" /* yacc.c:1652 */ + case 2884: /* unsigned_type: SQL_UNSIGNED SQL_LONG INT_P */ +#line 16033 "preproc.y" + { (yyval.type_enum) = ECPGt_unsigned_long; } +#line 58455 "preproc.c" break; - case 2885: -#line 16034 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_unsigned_long_long; } -#line 57796 "preproc.c" /* yacc.c:1652 */ + case 2885: /* unsigned_type: SQL_UNSIGNED SQL_LONG SQL_LONG */ +#line 16034 "preproc.y" + { (yyval.type_enum) = ECPGt_unsigned_long_long; } +#line 58461 "preproc.c" break; - case 2886: -#line 16035 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_unsigned_long_long; } -#line 57802 "preproc.c" /* yacc.c:1652 */ + case 2886: /* unsigned_type: SQL_UNSIGNED SQL_LONG SQL_LONG INT_P */ +#line 16035 "preproc.y" + { (yyval.type_enum) = ECPGt_unsigned_long_long; } +#line 58467 "preproc.c" break; - case 2887: -#line 16036 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_unsigned_char; } -#line 57808 "preproc.c" /* yacc.c:1652 */ + case 2887: /* unsigned_type: SQL_UNSIGNED CHAR_P */ +#line 16036 "preproc.y" + { (yyval.type_enum) = ECPGt_unsigned_char; } +#line 58473 "preproc.c" break; - case 2888: -#line 16039 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_short; } -#line 57814 "preproc.c" /* yacc.c:1652 */ + case 2888: /* signed_type: SQL_SHORT */ +#line 16039 "preproc.y" + { (yyval.type_enum) = ECPGt_short; } +#line 58479 "preproc.c" break; - case 2889: -#line 16040 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_short; } -#line 57820 "preproc.c" /* yacc.c:1652 */ + case 2889: /* signed_type: SQL_SHORT INT_P */ +#line 16040 "preproc.y" + { (yyval.type_enum) = ECPGt_short; } +#line 58485 "preproc.c" break; - case 2890: -#line 16041 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_int; } -#line 57826 "preproc.c" /* yacc.c:1652 */ + case 2890: /* signed_type: INT_P */ +#line 16041 "preproc.y" + { (yyval.type_enum) = ECPGt_int; } +#line 58491 "preproc.c" break; - case 2891: -#line 16042 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_long; } -#line 57832 "preproc.c" /* yacc.c:1652 */ + case 2891: /* signed_type: SQL_LONG */ +#line 16042 "preproc.y" + { (yyval.type_enum) = ECPGt_long; } +#line 58497 "preproc.c" break; - case 2892: -#line 16043 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_long; } -#line 57838 "preproc.c" /* yacc.c:1652 */ + case 2892: /* signed_type: SQL_LONG INT_P */ +#line 16043 "preproc.y" + { (yyval.type_enum) = ECPGt_long; } +#line 58503 "preproc.c" break; - case 2893: -#line 16044 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_long_long; } -#line 57844 "preproc.c" /* yacc.c:1652 */ + case 2893: /* signed_type: SQL_LONG SQL_LONG */ +#line 16044 "preproc.y" + { (yyval.type_enum) = ECPGt_long_long; } +#line 58509 "preproc.c" break; - case 2894: -#line 16045 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_long_long; } -#line 57850 "preproc.c" /* yacc.c:1652 */ + case 2894: /* signed_type: SQL_LONG SQL_LONG INT_P */ +#line 16045 "preproc.y" + { (yyval.type_enum) = ECPGt_long_long; } +#line 58515 "preproc.c" break; - case 2895: -#line 16046 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_bool; } -#line 57856 "preproc.c" /* yacc.c:1652 */ + case 2895: /* signed_type: SQL_BOOL */ +#line 16046 "preproc.y" + { (yyval.type_enum) = ECPGt_bool; } +#line 58521 "preproc.c" break; - case 2896: -#line 16047 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_char; } -#line 57862 "preproc.c" /* yacc.c:1652 */ + case 2896: /* signed_type: CHAR_P */ +#line 16047 "preproc.y" + { (yyval.type_enum) = ECPGt_char; } +#line 58527 "preproc.c" break; - case 2897: -#line 16048 "preproc.y" /* yacc.c:1652 */ - { (yyval.type_enum) = ECPGt_double; } -#line 57868 "preproc.c" /* yacc.c:1652 */ + case 2897: /* signed_type: DOUBLE_P */ +#line 16048 "preproc.y" + { (yyval.type_enum) = ECPGt_double; } +#line 58533 "preproc.c" break; - case 2900: -#line 16056 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 57874 "preproc.c" /* yacc.c:1652 */ + case 2900: /* variable_list: variable */ +#line 16056 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58539 "preproc.c" break; - case 2901: -#line 16058 "preproc.y" /* yacc.c:1652 */ - { + case 2901: /* variable_list: variable_list ',' variable */ +#line 16058 "preproc.y" + { if (actual_type[struct_level].type_enum == ECPGt_varchar || actual_type[struct_level].type_enum == ECPGt_bytea) (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(";"), (yyvsp[0].str)); else (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 57885 "preproc.c" /* yacc.c:1652 */ +#line 58550 "preproc.c" break; - case 2902: -#line 16067 "preproc.y" /* yacc.c:1652 */ - { + case 2902: /* variable: opt_pointer ECPGColLabel opt_array_bounds opt_bit_field opt_initializer */ +#line 16067 "preproc.y" + { struct ECPGtype * type; char *dimension = (yyvsp[-2].index).index1; /* dimension of array */ char *length = (yyvsp[-2].index).index2; /* length of string */ @@ -57982,293 +58647,293 @@ free((yyvsp[-3].str)); } -#line 57986 "preproc.c" /* yacc.c:1652 */ +#line 58651 "preproc.c" break; - case 2903: -#line 16166 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 57992 "preproc.c" /* yacc.c:1652 */ + case 2903: /* opt_initializer: %empty */ +#line 16166 "preproc.y" + { (yyval.str) = EMPTY; } +#line 58657 "preproc.c" break; - case 2904: -#line 16168 "preproc.y" /* yacc.c:1652 */ - { + case 2904: /* opt_initializer: '=' c_term */ +#line 16168 "preproc.y" + { initializer = 1; (yyval.str) = cat2_str(mm_strdup("="), (yyvsp[0].str)); } -#line 58001 "preproc.c" /* yacc.c:1652 */ +#line 58666 "preproc.c" break; - case 2905: -#line 16174 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 58007 "preproc.c" /* yacc.c:1652 */ + case 2905: /* opt_pointer: %empty */ +#line 16174 "preproc.y" + { (yyval.str) = EMPTY; } +#line 58672 "preproc.c" break; - case 2906: -#line 16175 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("*"); } -#line 58013 "preproc.c" /* yacc.c:1652 */ + case 2906: /* opt_pointer: '*' */ +#line 16175 "preproc.y" + { (yyval.str) = mm_strdup("*"); } +#line 58678 "preproc.c" break; - case 2907: -#line 16176 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("**"); } -#line 58019 "preproc.c" /* yacc.c:1652 */ + case 2907: /* opt_pointer: '*' '*' */ +#line 16176 "preproc.y" + { (yyval.str) = mm_strdup("**"); } +#line 58684 "preproc.c" break; - case 2908: -#line 16183 "preproc.y" /* yacc.c:1652 */ - { + case 2908: /* ECPGDeclare: DECLARE STATEMENT ecpg_ident */ +#line 16183 "preproc.y" + { /* this is only supported for compatibility */ (yyval.str) = cat_str(3, mm_strdup("/* declare statement"), (yyvsp[0].str), mm_strdup("*/")); } -#line 58028 "preproc.c" /* yacc.c:1652 */ +#line 58693 "preproc.c" break; - case 2909: -#line 16191 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58034 "preproc.c" /* yacc.c:1652 */ + case 2909: /* ECPGDisconnect: SQL_DISCONNECT dis_name */ +#line 16191 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58699 "preproc.c" break; - case 2910: -#line 16194 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58040 "preproc.c" /* yacc.c:1652 */ + case 2910: /* dis_name: connection_object */ +#line 16194 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58705 "preproc.c" break; - case 2911: -#line 16195 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("\"CURRENT\""); } -#line 58046 "preproc.c" /* yacc.c:1652 */ + case 2911: /* dis_name: CURRENT_P */ +#line 16195 "preproc.y" + { (yyval.str) = mm_strdup("\"CURRENT\""); } +#line 58711 "preproc.c" break; - case 2912: -#line 16196 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("\"ALL\""); } -#line 58052 "preproc.c" /* yacc.c:1652 */ + case 2912: /* dis_name: ALL */ +#line 16196 "preproc.y" + { (yyval.str) = mm_strdup("\"ALL\""); } +#line 58717 "preproc.c" break; - case 2913: -#line 16197 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("\"CURRENT\""); } -#line 58058 "preproc.c" /* yacc.c:1652 */ + case 2913: /* dis_name: %empty */ +#line 16197 "preproc.y" + { (yyval.str) = mm_strdup("\"CURRENT\""); } +#line 58723 "preproc.c" break; - case 2914: -#line 16200 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 58064 "preproc.c" /* yacc.c:1652 */ + case 2914: /* connection_object: database_name */ +#line 16200 "preproc.y" + { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } +#line 58729 "preproc.c" break; - case 2915: -#line 16201 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("\"DEFAULT\""); } -#line 58070 "preproc.c" /* yacc.c:1652 */ + case 2915: /* connection_object: DEFAULT */ +#line 16201 "preproc.y" + { (yyval.str) = mm_strdup("\"DEFAULT\""); } +#line 58735 "preproc.c" break; - case 2916: -#line 16202 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58076 "preproc.c" /* yacc.c:1652 */ + case 2916: /* connection_object: char_variable */ +#line 16202 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58741 "preproc.c" break; - case 2917: -#line 16206 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58082 "preproc.c" /* yacc.c:1652 */ + case 2917: /* execstring: char_variable */ +#line 16206 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58747 "preproc.c" break; - case 2918: -#line 16208 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 58088 "preproc.c" /* yacc.c:1652 */ + case 2918: /* execstring: CSTRING */ +#line 16208 "preproc.y" + { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } +#line 58753 "preproc.c" break; - case 2919: -#line 16215 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58094 "preproc.c" /* yacc.c:1652 */ + case 2919: /* ECPGFree: SQL_FREE cursor_name */ +#line 16215 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58759 "preproc.c" break; - case 2920: -#line 16216 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("all"); } -#line 58100 "preproc.c" /* yacc.c:1652 */ + case 2920: /* ECPGFree: SQL_FREE ALL */ +#line 16216 "preproc.y" + { (yyval.str) = mm_strdup("all"); } +#line 58765 "preproc.c" break; - case 2921: -#line 16223 "preproc.y" /* yacc.c:1652 */ - { + case 2921: /* ECPGOpen: SQL_OPEN cursor_name opt_ecpg_using */ +#line 16223 "preproc.y" + { if ((yyvsp[-1].str)[0] == ':') remove_variable_from_list(&argsinsert, find_variable((yyvsp[-1].str) + 1)); (yyval.str) = (yyvsp[-1].str); } -#line 58110 "preproc.c" /* yacc.c:1652 */ +#line 58775 "preproc.c" break; - case 2922: -#line 16230 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 58116 "preproc.c" /* yacc.c:1652 */ + case 2922: /* opt_ecpg_using: %empty */ +#line 16230 "preproc.y" + { (yyval.str) = EMPTY; } +#line 58781 "preproc.c" break; - case 2923: -#line 16231 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58122 "preproc.c" /* yacc.c:1652 */ + case 2923: /* opt_ecpg_using: ecpg_using */ +#line 16231 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58787 "preproc.c" break; - case 2924: -#line 16234 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 58128 "preproc.c" /* yacc.c:1652 */ + case 2924: /* ecpg_using: USING using_list */ +#line 16234 "preproc.y" + { (yyval.str) = EMPTY; } +#line 58793 "preproc.c" break; - case 2925: -#line 16235 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58134 "preproc.c" /* yacc.c:1652 */ + case 2925: /* ecpg_using: using_descriptor */ +#line 16235 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58799 "preproc.c" break; - case 2926: -#line 16239 "preproc.y" /* yacc.c:1652 */ - { + case 2926: /* using_descriptor: USING SQL_P SQL_DESCRIPTOR quoted_ident_stringvar */ +#line 16239 "preproc.y" + { add_variable_to_head(&argsinsert, descriptor_variable((yyvsp[0].str),0), &no_indicator); (yyval.str) = EMPTY; } -#line 58143 "preproc.c" /* yacc.c:1652 */ +#line 58808 "preproc.c" break; - case 2927: -#line 16244 "preproc.y" /* yacc.c:1652 */ - { + case 2927: /* using_descriptor: USING SQL_DESCRIPTOR name */ +#line 16244 "preproc.y" + { add_variable_to_head(&argsinsert, sqlda_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = EMPTY; } -#line 58152 "preproc.c" /* yacc.c:1652 */ +#line 58817 "preproc.c" break; - case 2928: -#line 16251 "preproc.y" /* yacc.c:1652 */ - { + case 2928: /* into_descriptor: INTO SQL_P SQL_DESCRIPTOR quoted_ident_stringvar */ +#line 16251 "preproc.y" + { add_variable_to_head(&argsresult, descriptor_variable((yyvsp[0].str),1), &no_indicator); (yyval.str) = EMPTY; } -#line 58161 "preproc.c" /* yacc.c:1652 */ +#line 58826 "preproc.c" break; - case 2929: -#line 16256 "preproc.y" /* yacc.c:1652 */ - { + case 2929: /* into_descriptor: INTO SQL_DESCRIPTOR name */ +#line 16256 "preproc.y" + { add_variable_to_head(&argsresult, sqlda_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = EMPTY; } -#line 58170 "preproc.c" /* yacc.c:1652 */ +#line 58835 "preproc.c" break; - case 2930: -#line 16263 "preproc.y" /* yacc.c:1652 */ - { + case 2930: /* into_sqlda: INTO name */ +#line 16263 "preproc.y" + { add_variable_to_head(&argsresult, sqlda_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = EMPTY; } -#line 58179 "preproc.c" /* yacc.c:1652 */ +#line 58844 "preproc.c" break; - case 2933: -#line 16272 "preproc.y" /* yacc.c:1652 */ - { + case 2933: /* UsingValue: UsingConst */ +#line 16272 "preproc.y" + { char *length = mm_alloc(32); sprintf(length, "%zu", strlen((yyvsp[0].str))); add_variable_to_head(&argsinsert, new_variable((yyvsp[0].str), ECPGmake_simple_type(ECPGt_const, length, 0), 0), &no_indicator); } -#line 58190 "preproc.c" /* yacc.c:1652 */ +#line 58855 "preproc.c" break; - case 2934: -#line 16278 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 58196 "preproc.c" /* yacc.c:1652 */ + case 2934: /* UsingValue: civar */ +#line 16278 "preproc.y" + { (yyval.str) = EMPTY; } +#line 58861 "preproc.c" break; - case 2935: -#line 16279 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 58202 "preproc.c" /* yacc.c:1652 */ + case 2935: /* UsingValue: civarind */ +#line 16279 "preproc.y" + { (yyval.str) = EMPTY; } +#line 58867 "preproc.c" break; - case 2936: -#line 16282 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58208 "preproc.c" /* yacc.c:1652 */ + case 2936: /* UsingConst: Iconst */ +#line 16282 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58873 "preproc.c" break; - case 2937: -#line 16283 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(2, mm_strdup("+"), (yyvsp[0].str)); } -#line 58214 "preproc.c" /* yacc.c:1652 */ + case 2937: /* UsingConst: '+' Iconst */ +#line 16283 "preproc.y" + { (yyval.str) = cat_str(2, mm_strdup("+"), (yyvsp[0].str)); } +#line 58879 "preproc.c" break; - case 2938: -#line 16284 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(2, mm_strdup("-"), (yyvsp[0].str)); } -#line 58220 "preproc.c" /* yacc.c:1652 */ + case 2938: /* UsingConst: '-' Iconst */ +#line 16284 "preproc.y" + { (yyval.str) = cat_str(2, mm_strdup("-"), (yyvsp[0].str)); } +#line 58885 "preproc.c" break; - case 2939: -#line 16285 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58226 "preproc.c" /* yacc.c:1652 */ + case 2939: /* UsingConst: ecpg_fconst */ +#line 16285 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58891 "preproc.c" break; - case 2940: -#line 16286 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(2, mm_strdup("+"), (yyvsp[0].str)); } -#line 58232 "preproc.c" /* yacc.c:1652 */ + case 2940: /* UsingConst: '+' ecpg_fconst */ +#line 16286 "preproc.y" + { (yyval.str) = cat_str(2, mm_strdup("+"), (yyvsp[0].str)); } +#line 58897 "preproc.c" break; - case 2941: -#line 16287 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(2, mm_strdup("-"), (yyvsp[0].str)); } -#line 58238 "preproc.c" /* yacc.c:1652 */ + case 2941: /* UsingConst: '-' ecpg_fconst */ +#line 16287 "preproc.y" + { (yyval.str) = cat_str(2, mm_strdup("-"), (yyvsp[0].str)); } +#line 58903 "preproc.c" break; - case 2942: -#line 16288 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58244 "preproc.c" /* yacc.c:1652 */ + case 2942: /* UsingConst: ecpg_sconst */ +#line 16288 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58909 "preproc.c" break; - case 2943: -#line 16289 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58250 "preproc.c" /* yacc.c:1652 */ + case 2943: /* UsingConst: ecpg_bconst */ +#line 16289 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58915 "preproc.c" break; - case 2944: -#line 16290 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58256 "preproc.c" /* yacc.c:1652 */ + case 2944: /* UsingConst: ecpg_xconst */ +#line 16290 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 58921 "preproc.c" break; - case 2945: -#line 16297 "preproc.y" /* yacc.c:1652 */ - { + case 2945: /* ECPGDescribe: SQL_DESCRIBE INPUT_P prepared_name using_descriptor */ +#line 16297 "preproc.y" + { const char *con = connection ? connection : "NULL"; mmerror(PARSE_ERROR, ET_WARNING, "using unsupported DESCRIBE statement"); (yyval.str) = (char *) mm_alloc(sizeof("1, , ") + strlen(con) + strlen((yyvsp[-1].str))); sprintf((yyval.str), "1, %s, %s", con, (yyvsp[-1].str)); } -#line 58267 "preproc.c" /* yacc.c:1652 */ +#line 58932 "preproc.c" break; - case 2946: -#line 16304 "preproc.y" /* yacc.c:1652 */ - { + case 2946: /* ECPGDescribe: SQL_DESCRIBE opt_output prepared_name using_descriptor */ +#line 16304 "preproc.y" + { const char *con = connection ? connection : "NULL"; struct variable *var; @@ -58279,171 +58944,171 @@ (yyval.str) = (char *) mm_alloc(sizeof("0, , ") + strlen(con) + strlen((yyvsp[-1].str))); sprintf((yyval.str), "0, %s, %s", con, (yyvsp[-1].str)); } -#line 58283 "preproc.c" /* yacc.c:1652 */ +#line 58948 "preproc.c" break; - case 2947: -#line 16316 "preproc.y" /* yacc.c:1652 */ - { + case 2947: /* ECPGDescribe: SQL_DESCRIBE opt_output prepared_name into_descriptor */ +#line 16316 "preproc.y" + { const char *con = connection ? connection : "NULL"; (yyval.str) = (char *) mm_alloc(sizeof("0, , ") + strlen(con) + strlen((yyvsp[-1].str))); sprintf((yyval.str), "0, %s, %s", con, (yyvsp[-1].str)); } -#line 58293 "preproc.c" /* yacc.c:1652 */ +#line 58958 "preproc.c" break; - case 2948: -#line 16322 "preproc.y" /* yacc.c:1652 */ - { + case 2948: /* ECPGDescribe: SQL_DESCRIBE INPUT_P prepared_name into_sqlda */ +#line 16322 "preproc.y" + { const char *con = connection ? connection : "NULL"; mmerror(PARSE_ERROR, ET_WARNING, "using unsupported DESCRIBE statement"); (yyval.str) = (char *) mm_alloc(sizeof("1, , ") + strlen(con) + strlen((yyvsp[-1].str))); sprintf((yyval.str), "1, %s, %s", con, (yyvsp[-1].str)); } -#line 58304 "preproc.c" /* yacc.c:1652 */ +#line 58969 "preproc.c" break; - case 2949: -#line 16329 "preproc.y" /* yacc.c:1652 */ - { + case 2949: /* ECPGDescribe: SQL_DESCRIBE opt_output prepared_name into_sqlda */ +#line 16329 "preproc.y" + { const char *con = connection ? connection : "NULL"; (yyval.str) = (char *) mm_alloc(sizeof("0, , ") + strlen(con) + strlen((yyvsp[-1].str))); sprintf((yyval.str), "0, %s, %s", con, (yyvsp[-1].str)); } -#line 58314 "preproc.c" /* yacc.c:1652 */ +#line 58979 "preproc.c" break; - case 2950: -#line 16336 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("output"); } -#line 58320 "preproc.c" /* yacc.c:1652 */ + case 2950: /* opt_output: SQL_OUTPUT */ +#line 16336 "preproc.y" + { (yyval.str) = mm_strdup("output"); } +#line 58985 "preproc.c" break; - case 2951: -#line 16337 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 58326 "preproc.c" /* yacc.c:1652 */ + case 2951: /* opt_output: %empty */ +#line 16337 "preproc.y" + { (yyval.str) = EMPTY; } +#line 58991 "preproc.c" break; - case 2952: -#line 16350 "preproc.y" /* yacc.c:1652 */ - { + case 2952: /* ECPGAllocateDescr: SQL_ALLOCATE SQL_DESCRIPTOR quoted_ident_stringvar */ +#line 16350 "preproc.y" + { add_descriptor((yyvsp[0].str),connection); (yyval.str) = (yyvsp[0].str); } -#line 58335 "preproc.c" /* yacc.c:1652 */ +#line 59000 "preproc.c" break; - case 2953: -#line 16361 "preproc.y" /* yacc.c:1652 */ - { + case 2953: /* ECPGDeallocateDescr: DEALLOCATE SQL_DESCRIPTOR quoted_ident_stringvar */ +#line 16361 "preproc.y" + { drop_descriptor((yyvsp[0].str),connection); (yyval.str) = (yyvsp[0].str); } -#line 58344 "preproc.c" /* yacc.c:1652 */ +#line 59009 "preproc.c" break; - case 2954: -#line 16372 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[-1].str); } -#line 58350 "preproc.c" /* yacc.c:1652 */ + case 2954: /* ECPGGetDescriptorHeader: SQL_GET SQL_DESCRIPTOR quoted_ident_stringvar ECPGGetDescHeaderItems */ +#line 16372 "preproc.y" + { (yyval.str) = (yyvsp[-1].str); } +#line 59015 "preproc.c" break; - case 2957: -#line 16380 "preproc.y" /* yacc.c:1652 */ - { push_assignment((yyvsp[-2].str), (yyvsp[0].dtype_enum)); } -#line 58356 "preproc.c" /* yacc.c:1652 */ + case 2957: /* ECPGGetDescHeaderItem: cvariable '=' desc_header_item */ +#line 16380 "preproc.y" + { push_assignment((yyvsp[-2].str), (yyvsp[0].dtype_enum)); } +#line 59021 "preproc.c" break; - case 2958: -#line 16385 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[-1].str); } -#line 58362 "preproc.c" /* yacc.c:1652 */ + case 2958: /* ECPGSetDescriptorHeader: SET SQL_DESCRIPTOR quoted_ident_stringvar ECPGSetDescHeaderItems */ +#line 16385 "preproc.y" + { (yyval.str) = (yyvsp[-1].str); } +#line 59027 "preproc.c" break; - case 2961: -#line 16393 "preproc.y" /* yacc.c:1652 */ - { + case 2961: /* ECPGSetDescHeaderItem: desc_header_item '=' IntConstVar */ +#line 16393 "preproc.y" + { push_assignment((yyvsp[0].str), (yyvsp[-2].dtype_enum)); } -#line 58370 "preproc.c" /* yacc.c:1652 */ +#line 59035 "preproc.c" break; - case 2962: -#line 16399 "preproc.y" /* yacc.c:1652 */ - { + case 2962: /* IntConstVar: Iconst */ +#line 16399 "preproc.y" + { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); sprintf(length, "%zu", strlen((yyvsp[0].str))); new_variable((yyvsp[0].str), ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = (yyvsp[0].str); } -#line 58382 "preproc.c" /* yacc.c:1652 */ +#line 59047 "preproc.c" break; - case 2963: -#line 16407 "preproc.y" /* yacc.c:1652 */ - { + case 2963: /* IntConstVar: cvariable */ +#line 16407 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 58390 "preproc.c" /* yacc.c:1652 */ +#line 59055 "preproc.c" break; - case 2964: -#line 16412 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_count; } -#line 58396 "preproc.c" /* yacc.c:1652 */ + case 2964: /* desc_header_item: SQL_COUNT */ +#line 16412 "preproc.y" + { (yyval.dtype_enum) = ECPGd_count; } +#line 59061 "preproc.c" break; - case 2965: -#line 16420 "preproc.y" /* yacc.c:1652 */ - { (yyval.descriptor).str = (yyvsp[-1].str); (yyval.descriptor).name = (yyvsp[-3].str); } -#line 58402 "preproc.c" /* yacc.c:1652 */ + case 2965: /* ECPGGetDescriptor: SQL_GET SQL_DESCRIPTOR quoted_ident_stringvar VALUE_P IntConstVar ECPGGetDescItems */ +#line 16420 "preproc.y" + { (yyval.descriptor).str = (yyvsp[-1].str); (yyval.descriptor).name = (yyvsp[-3].str); } +#line 59067 "preproc.c" break; - case 2968: -#line 16427 "preproc.y" /* yacc.c:1652 */ - { push_assignment((yyvsp[-2].str), (yyvsp[0].dtype_enum)); } -#line 58408 "preproc.c" /* yacc.c:1652 */ + case 2968: /* ECPGGetDescItem: cvariable '=' descriptor_item */ +#line 16427 "preproc.y" + { push_assignment((yyvsp[-2].str), (yyvsp[0].dtype_enum)); } +#line 59073 "preproc.c" break; - case 2969: -#line 16431 "preproc.y" /* yacc.c:1652 */ - { (yyval.descriptor).str = (yyvsp[-1].str); (yyval.descriptor).name = (yyvsp[-3].str); } -#line 58414 "preproc.c" /* yacc.c:1652 */ + case 2969: /* ECPGSetDescriptor: SET SQL_DESCRIPTOR quoted_ident_stringvar VALUE_P IntConstVar ECPGSetDescItems */ +#line 16431 "preproc.y" + { (yyval.descriptor).str = (yyvsp[-1].str); (yyval.descriptor).name = (yyvsp[-3].str); } +#line 59079 "preproc.c" break; - case 2972: -#line 16439 "preproc.y" /* yacc.c:1652 */ - { + case 2972: /* ECPGSetDescItem: descriptor_item '=' AllConstVar */ +#line 16439 "preproc.y" + { push_assignment((yyvsp[0].str), (yyvsp[-2].dtype_enum)); } -#line 58422 "preproc.c" /* yacc.c:1652 */ +#line 59087 "preproc.c" break; - case 2973: -#line 16445 "preproc.y" /* yacc.c:1652 */ - { + case 2973: /* AllConstVar: ecpg_fconst */ +#line 16445 "preproc.y" + { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); sprintf(length, "%zu", strlen((yyvsp[0].str))); new_variable((yyvsp[0].str), ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = (yyvsp[0].str); } -#line 58434 "preproc.c" /* yacc.c:1652 */ +#line 59099 "preproc.c" break; - case 2974: -#line 16454 "preproc.y" /* yacc.c:1652 */ - { + case 2974: /* AllConstVar: IntConstVar */ +#line 16454 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } -#line 58442 "preproc.c" /* yacc.c:1652 */ +#line 59107 "preproc.c" break; - case 2975: -#line 16459 "preproc.y" /* yacc.c:1652 */ - { + case 2975: /* AllConstVar: '-' ecpg_fconst */ +#line 16459 "preproc.y" + { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); char *var = cat2_str(mm_strdup("-"), (yyvsp[0].str)); @@ -58451,12 +59116,12 @@ new_variable(var, ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = var; } -#line 58455 "preproc.c" /* yacc.c:1652 */ +#line 59120 "preproc.c" break; - case 2976: -#line 16469 "preproc.y" /* yacc.c:1652 */ - { + case 2976: /* AllConstVar: '-' Iconst */ +#line 16469 "preproc.y" + { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); char *var = cat2_str(mm_strdup("-"), (yyvsp[0].str)); @@ -58464,12 +59129,12 @@ new_variable(var, ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = var; } -#line 58468 "preproc.c" /* yacc.c:1652 */ +#line 59133 "preproc.c" break; - case 2977: -#line 16479 "preproc.y" /* yacc.c:1652 */ - { + case 2977: /* AllConstVar: ecpg_sconst */ +#line 16479 "preproc.y" + { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); char *var = (yyvsp[0].str) + 1; @@ -58478,154 +59143,154 @@ new_variable(var, ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = var; } -#line 58482 "preproc.c" /* yacc.c:1652 */ +#line 59147 "preproc.c" break; - case 2978: -#line 16490 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_cardinality; } -#line 58488 "preproc.c" /* yacc.c:1652 */ + case 2978: /* descriptor_item: SQL_CARDINALITY */ +#line 16490 "preproc.y" + { (yyval.dtype_enum) = ECPGd_cardinality; } +#line 59153 "preproc.c" break; - case 2979: -#line 16491 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_data; } -#line 58494 "preproc.c" /* yacc.c:1652 */ + case 2979: /* descriptor_item: DATA_P */ +#line 16491 "preproc.y" + { (yyval.dtype_enum) = ECPGd_data; } +#line 59159 "preproc.c" break; - case 2980: -#line 16492 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_di_code; } -#line 58500 "preproc.c" /* yacc.c:1652 */ + case 2980: /* descriptor_item: SQL_DATETIME_INTERVAL_CODE */ +#line 16492 "preproc.y" + { (yyval.dtype_enum) = ECPGd_di_code; } +#line 59165 "preproc.c" break; - case 2981: -#line 16493 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_di_precision; } -#line 58506 "preproc.c" /* yacc.c:1652 */ + case 2981: /* descriptor_item: SQL_DATETIME_INTERVAL_PRECISION */ +#line 16493 "preproc.y" + { (yyval.dtype_enum) = ECPGd_di_precision; } +#line 59171 "preproc.c" break; - case 2982: -#line 16494 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_indicator; } -#line 58512 "preproc.c" /* yacc.c:1652 */ + case 2982: /* descriptor_item: SQL_INDICATOR */ +#line 16494 "preproc.y" + { (yyval.dtype_enum) = ECPGd_indicator; } +#line 59177 "preproc.c" break; - case 2983: -#line 16495 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_key_member; } -#line 58518 "preproc.c" /* yacc.c:1652 */ + case 2983: /* descriptor_item: SQL_KEY_MEMBER */ +#line 16495 "preproc.y" + { (yyval.dtype_enum) = ECPGd_key_member; } +#line 59183 "preproc.c" break; - case 2984: -#line 16496 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_length; } -#line 58524 "preproc.c" /* yacc.c:1652 */ + case 2984: /* descriptor_item: SQL_LENGTH */ +#line 16496 "preproc.y" + { (yyval.dtype_enum) = ECPGd_length; } +#line 59189 "preproc.c" break; - case 2985: -#line 16497 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_name; } -#line 58530 "preproc.c" /* yacc.c:1652 */ + case 2985: /* descriptor_item: NAME_P */ +#line 16497 "preproc.y" + { (yyval.dtype_enum) = ECPGd_name; } +#line 59195 "preproc.c" break; - case 2986: -#line 16498 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_nullable; } -#line 58536 "preproc.c" /* yacc.c:1652 */ + case 2986: /* descriptor_item: SQL_NULLABLE */ +#line 16498 "preproc.y" + { (yyval.dtype_enum) = ECPGd_nullable; } +#line 59201 "preproc.c" break; - case 2987: -#line 16499 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_octet; } -#line 58542 "preproc.c" /* yacc.c:1652 */ + case 2987: /* descriptor_item: SQL_OCTET_LENGTH */ +#line 16499 "preproc.y" + { (yyval.dtype_enum) = ECPGd_octet; } +#line 59207 "preproc.c" break; - case 2988: -#line 16500 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_precision; } -#line 58548 "preproc.c" /* yacc.c:1652 */ + case 2988: /* descriptor_item: PRECISION */ +#line 16500 "preproc.y" + { (yyval.dtype_enum) = ECPGd_precision; } +#line 59213 "preproc.c" break; - case 2989: -#line 16501 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_length; } -#line 58554 "preproc.c" /* yacc.c:1652 */ + case 2989: /* descriptor_item: SQL_RETURNED_LENGTH */ +#line 16501 "preproc.y" + { (yyval.dtype_enum) = ECPGd_length; } +#line 59219 "preproc.c" break; - case 2990: -#line 16502 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_ret_octet; } -#line 58560 "preproc.c" /* yacc.c:1652 */ + case 2990: /* descriptor_item: SQL_RETURNED_OCTET_LENGTH */ +#line 16502 "preproc.y" + { (yyval.dtype_enum) = ECPGd_ret_octet; } +#line 59225 "preproc.c" break; - case 2991: -#line 16503 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_scale; } -#line 58566 "preproc.c" /* yacc.c:1652 */ + case 2991: /* descriptor_item: SQL_SCALE */ +#line 16503 "preproc.y" + { (yyval.dtype_enum) = ECPGd_scale; } +#line 59231 "preproc.c" break; - case 2992: -#line 16504 "preproc.y" /* yacc.c:1652 */ - { (yyval.dtype_enum) = ECPGd_type; } -#line 58572 "preproc.c" /* yacc.c:1652 */ + case 2992: /* descriptor_item: TYPE_P */ +#line 16504 "preproc.y" + { (yyval.dtype_enum) = ECPGd_type; } +#line 59237 "preproc.c" break; - case 2993: -#line 16511 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58578 "preproc.c" /* yacc.c:1652 */ + case 2993: /* ECPGSetAutocommit: SET SQL_AUTOCOMMIT '=' on_off */ +#line 16511 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59243 "preproc.c" break; - case 2994: -#line 16512 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58584 "preproc.c" /* yacc.c:1652 */ + case 2994: /* ECPGSetAutocommit: SET SQL_AUTOCOMMIT TO on_off */ +#line 16512 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59249 "preproc.c" break; - case 2995: -#line 16515 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("on"); } -#line 58590 "preproc.c" /* yacc.c:1652 */ + case 2995: /* on_off: ON */ +#line 16515 "preproc.y" + { (yyval.str) = mm_strdup("on"); } +#line 59255 "preproc.c" break; - case 2996: -#line 16516 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("off"); } -#line 58596 "preproc.c" /* yacc.c:1652 */ + case 2996: /* on_off: OFF */ +#line 16516 "preproc.y" + { (yyval.str) = mm_strdup("off"); } +#line 59261 "preproc.c" break; - case 2997: -#line 16523 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58602 "preproc.c" /* yacc.c:1652 */ + case 2997: /* ECPGSetConnection: SET CONNECTION TO connection_object */ +#line 16523 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59267 "preproc.c" break; - case 2998: -#line 16524 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58608 "preproc.c" /* yacc.c:1652 */ + case 2998: /* ECPGSetConnection: SET CONNECTION '=' connection_object */ +#line 16524 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59273 "preproc.c" break; - case 2999: -#line 16525 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58614 "preproc.c" /* yacc.c:1652 */ + case 2999: /* ECPGSetConnection: SET CONNECTION connection_object */ +#line 16525 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59279 "preproc.c" break; - case 3000: -#line 16532 "preproc.y" /* yacc.c:1652 */ - { + case 3000: /* $@9: %empty */ +#line 16532 "preproc.y" + { /* reset this variable so we see if there was */ /* an initializer specified */ initializer = 0; } -#line 58624 "preproc.c" /* yacc.c:1652 */ +#line 59289 "preproc.c" break; - case 3001: -#line 16538 "preproc.y" /* yacc.c:1652 */ - { + case 3001: /* ECPGTypedef: TYPE_P $@9 ECPGColLabelCommon IS var_type opt_array_bounds opt_reference */ +#line 16538 "preproc.y" + { add_typedef((yyvsp[-4].str), (yyvsp[-1].index).index1, (yyvsp[-1].index).index2, (yyvsp[-2].type).type_enum, (yyvsp[-2].type).type_dimension, (yyvsp[-2].type).type_index, initializer, *(yyvsp[0].str) ? 1 : 0); if (auto_create_c == false) @@ -58633,34 +59298,34 @@ else (yyval.str) = cat_str(6, mm_strdup("typedef "), mm_strdup((yyvsp[-2].type).type_str), *(yyvsp[0].str)?mm_strdup("*"):mm_strdup(""), mm_strdup((yyvsp[-4].str)), mm_strdup((yyvsp[-1].index).str), mm_strdup(";")); } -#line 58637 "preproc.c" /* yacc.c:1652 */ +#line 59302 "preproc.c" break; - case 3002: -#line 16548 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("reference"); } -#line 58643 "preproc.c" /* yacc.c:1652 */ + case 3002: /* opt_reference: SQL_REFERENCE */ +#line 16548 "preproc.y" + { (yyval.str) = mm_strdup("reference"); } +#line 59308 "preproc.c" break; - case 3003: -#line 16549 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 58649 "preproc.c" /* yacc.c:1652 */ + case 3003: /* opt_reference: %empty */ +#line 16549 "preproc.y" + { (yyval.str) = EMPTY; } +#line 59314 "preproc.c" break; - case 3004: -#line 16556 "preproc.y" /* yacc.c:1652 */ - { + case 3004: /* $@10: %empty */ +#line 16556 "preproc.y" + { /* reset this variable so we see if there was */ /* an initializer specified */ initializer = 0; } -#line 58659 "preproc.c" /* yacc.c:1652 */ +#line 59324 "preproc.c" break; - case 3005: -#line 16562 "preproc.y" /* yacc.c:1652 */ - { + case 3005: /* ECPGVar: SQL_VAR $@10 ColLabel IS var_type opt_array_bounds opt_reference */ +#line 16562 "preproc.y" + { struct variable *p = find_variable((yyvsp[-4].str)); char *dimension = (yyvsp[-1].index).index1; char *length = (yyvsp[-1].index).index2; @@ -58718,757 +59383,757 @@ (yyval.str) = cat_str(7, mm_strdup("/* exec sql var"), mm_strdup((yyvsp[-4].str)), mm_strdup("is"), mm_strdup((yyvsp[-2].type).type_str), mm_strdup((yyvsp[-1].index).str), (yyvsp[0].str), mm_strdup("*/")); } -#line 58722 "preproc.c" /* yacc.c:1652 */ +#line 59387 "preproc.c" break; - case 3006: -#line 16627 "preproc.y" /* yacc.c:1652 */ - { + case 3006: /* ECPGWhenever: SQL_WHENEVER SQL_SQLERROR action */ +#line 16627 "preproc.y" + { when_error.code = (yyvsp[0].action).code; when_error.command = (yyvsp[0].action).command; (yyval.str) = cat_str(3, mm_strdup("/* exec sql whenever sqlerror "), (yyvsp[0].action).str, mm_strdup("; */")); } -#line 58732 "preproc.c" /* yacc.c:1652 */ +#line 59397 "preproc.c" break; - case 3007: -#line 16633 "preproc.y" /* yacc.c:1652 */ - { + case 3007: /* ECPGWhenever: SQL_WHENEVER NOT SQL_FOUND action */ +#line 16633 "preproc.y" + { when_nf.code = (yyvsp[0].action).code; when_nf.command = (yyvsp[0].action).command; (yyval.str) = cat_str(3, mm_strdup("/* exec sql whenever not found "), (yyvsp[0].action).str, mm_strdup("; */")); } -#line 58742 "preproc.c" /* yacc.c:1652 */ +#line 59407 "preproc.c" break; - case 3008: -#line 16639 "preproc.y" /* yacc.c:1652 */ - { + case 3008: /* ECPGWhenever: SQL_WHENEVER SQL_SQLWARNING action */ +#line 16639 "preproc.y" + { when_warn.code = (yyvsp[0].action).code; when_warn.command = (yyvsp[0].action).command; (yyval.str) = cat_str(3, mm_strdup("/* exec sql whenever sql_warning "), (yyvsp[0].action).str, mm_strdup("; */")); } -#line 58752 "preproc.c" /* yacc.c:1652 */ +#line 59417 "preproc.c" break; - case 3009: -#line 16647 "preproc.y" /* yacc.c:1652 */ - { + case 3009: /* action: CONTINUE_P */ +#line 16647 "preproc.y" + { (yyval.action).code = W_NOTHING; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("continue"); } -#line 58762 "preproc.c" /* yacc.c:1652 */ +#line 59427 "preproc.c" break; - case 3010: -#line 16653 "preproc.y" /* yacc.c:1652 */ - { + case 3010: /* action: SQL_SQLPRINT */ +#line 16653 "preproc.y" + { (yyval.action).code = W_SQLPRINT; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("sqlprint"); } -#line 58772 "preproc.c" /* yacc.c:1652 */ +#line 59437 "preproc.c" break; - case 3011: -#line 16659 "preproc.y" /* yacc.c:1652 */ - { + case 3011: /* action: SQL_STOP */ +#line 16659 "preproc.y" + { (yyval.action).code = W_STOP; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("stop"); } -#line 58782 "preproc.c" /* yacc.c:1652 */ +#line 59447 "preproc.c" break; - case 3012: -#line 16665 "preproc.y" /* yacc.c:1652 */ - { + case 3012: /* action: SQL_GOTO name */ +#line 16665 "preproc.y" + { (yyval.action).code = W_GOTO; (yyval.action).command = mm_strdup((yyvsp[0].str)); (yyval.action).str = cat2_str(mm_strdup("goto "), (yyvsp[0].str)); } -#line 58792 "preproc.c" /* yacc.c:1652 */ +#line 59457 "preproc.c" break; - case 3013: -#line 16671 "preproc.y" /* yacc.c:1652 */ - { + case 3013: /* action: SQL_GO TO name */ +#line 16671 "preproc.y" + { (yyval.action).code = W_GOTO; (yyval.action).command = mm_strdup((yyvsp[0].str)); (yyval.action).str = cat2_str(mm_strdup("goto "), (yyvsp[0].str)); } -#line 58802 "preproc.c" /* yacc.c:1652 */ +#line 59467 "preproc.c" break; - case 3014: -#line 16677 "preproc.y" /* yacc.c:1652 */ - { + case 3014: /* action: DO name '(' c_args ')' */ +#line 16677 "preproc.y" + { (yyval.action).code = W_DO; (yyval.action).command = cat_str(4, (yyvsp[-3].str), mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); (yyval.action).str = cat2_str(mm_strdup("do"), mm_strdup((yyval.action).command)); } -#line 58812 "preproc.c" /* yacc.c:1652 */ +#line 59477 "preproc.c" break; - case 3015: -#line 16683 "preproc.y" /* yacc.c:1652 */ - { + case 3015: /* action: DO SQL_BREAK */ +#line 16683 "preproc.y" + { (yyval.action).code = W_BREAK; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("break"); } -#line 58822 "preproc.c" /* yacc.c:1652 */ +#line 59487 "preproc.c" break; - case 3016: -#line 16689 "preproc.y" /* yacc.c:1652 */ - { + case 3016: /* action: DO CONTINUE_P */ +#line 16689 "preproc.y" + { (yyval.action).code = W_CONTINUE; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("continue"); } -#line 58832 "preproc.c" /* yacc.c:1652 */ +#line 59497 "preproc.c" break; - case 3017: -#line 16695 "preproc.y" /* yacc.c:1652 */ - { + case 3017: /* action: CALL name '(' c_args ')' */ +#line 16695 "preproc.y" + { (yyval.action).code = W_DO; (yyval.action).command = cat_str(4, (yyvsp[-3].str), mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); (yyval.action).str = cat2_str(mm_strdup("call"), mm_strdup((yyval.action).command)); } -#line 58842 "preproc.c" /* yacc.c:1652 */ +#line 59507 "preproc.c" break; - case 3018: -#line 16701 "preproc.y" /* yacc.c:1652 */ - { + case 3018: /* action: CALL name */ +#line 16701 "preproc.y" + { (yyval.action).code = W_DO; (yyval.action).command = cat2_str((yyvsp[0].str), mm_strdup("()")); (yyval.action).str = cat2_str(mm_strdup("call"), mm_strdup((yyval.action).command)); } -#line 58852 "preproc.c" /* yacc.c:1652 */ +#line 59517 "preproc.c" break; - case 3019: -#line 16711 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58858 "preproc.c" /* yacc.c:1652 */ + case 3019: /* ECPGKeywords: ECPGKeywords_vanames */ +#line 16711 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59523 "preproc.c" break; - case 3020: -#line 16712 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 58864 "preproc.c" /* yacc.c:1652 */ + case 3020: /* ECPGKeywords: ECPGKeywords_rest */ +#line 16712 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59529 "preproc.c" break; - case 3021: -#line 16715 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("break"); } -#line 58870 "preproc.c" /* yacc.c:1652 */ + case 3021: /* ECPGKeywords_vanames: SQL_BREAK */ +#line 16715 "preproc.y" + { (yyval.str) = mm_strdup("break"); } +#line 59535 "preproc.c" break; - case 3022: -#line 16716 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("cardinality"); } -#line 58876 "preproc.c" /* yacc.c:1652 */ + case 3022: /* ECPGKeywords_vanames: SQL_CARDINALITY */ +#line 16716 "preproc.y" + { (yyval.str) = mm_strdup("cardinality"); } +#line 59541 "preproc.c" break; - case 3023: -#line 16717 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("count"); } -#line 58882 "preproc.c" /* yacc.c:1652 */ + case 3023: /* ECPGKeywords_vanames: SQL_COUNT */ +#line 16717 "preproc.y" + { (yyval.str) = mm_strdup("count"); } +#line 59547 "preproc.c" break; - case 3024: -#line 16718 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("datetime_interval_code"); } -#line 58888 "preproc.c" /* yacc.c:1652 */ + case 3024: /* ECPGKeywords_vanames: SQL_DATETIME_INTERVAL_CODE */ +#line 16718 "preproc.y" + { (yyval.str) = mm_strdup("datetime_interval_code"); } +#line 59553 "preproc.c" break; - case 3025: -#line 16719 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("datetime_interval_precision"); } -#line 58894 "preproc.c" /* yacc.c:1652 */ + case 3025: /* ECPGKeywords_vanames: SQL_DATETIME_INTERVAL_PRECISION */ +#line 16719 "preproc.y" + { (yyval.str) = mm_strdup("datetime_interval_precision"); } +#line 59559 "preproc.c" break; - case 3026: -#line 16720 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("found"); } -#line 58900 "preproc.c" /* yacc.c:1652 */ + case 3026: /* ECPGKeywords_vanames: SQL_FOUND */ +#line 16720 "preproc.y" + { (yyval.str) = mm_strdup("found"); } +#line 59565 "preproc.c" break; - case 3027: -#line 16721 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("go"); } -#line 58906 "preproc.c" /* yacc.c:1652 */ + case 3027: /* ECPGKeywords_vanames: SQL_GO */ +#line 16721 "preproc.y" + { (yyval.str) = mm_strdup("go"); } +#line 59571 "preproc.c" break; - case 3028: -#line 16722 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("goto"); } -#line 58912 "preproc.c" /* yacc.c:1652 */ + case 3028: /* ECPGKeywords_vanames: SQL_GOTO */ +#line 16722 "preproc.y" + { (yyval.str) = mm_strdup("goto"); } +#line 59577 "preproc.c" break; - case 3029: -#line 16723 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("identified"); } -#line 58918 "preproc.c" /* yacc.c:1652 */ + case 3029: /* ECPGKeywords_vanames: SQL_IDENTIFIED */ +#line 16723 "preproc.y" + { (yyval.str) = mm_strdup("identified"); } +#line 59583 "preproc.c" break; - case 3030: -#line 16724 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("indicator"); } -#line 58924 "preproc.c" /* yacc.c:1652 */ + case 3030: /* ECPGKeywords_vanames: SQL_INDICATOR */ +#line 16724 "preproc.y" + { (yyval.str) = mm_strdup("indicator"); } +#line 59589 "preproc.c" break; - case 3031: -#line 16725 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("key_member"); } -#line 58930 "preproc.c" /* yacc.c:1652 */ + case 3031: /* ECPGKeywords_vanames: SQL_KEY_MEMBER */ +#line 16725 "preproc.y" + { (yyval.str) = mm_strdup("key_member"); } +#line 59595 "preproc.c" break; - case 3032: -#line 16726 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("length"); } -#line 58936 "preproc.c" /* yacc.c:1652 */ + case 3032: /* ECPGKeywords_vanames: SQL_LENGTH */ +#line 16726 "preproc.y" + { (yyval.str) = mm_strdup("length"); } +#line 59601 "preproc.c" break; - case 3033: -#line 16727 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("nullable"); } -#line 58942 "preproc.c" /* yacc.c:1652 */ + case 3033: /* ECPGKeywords_vanames: SQL_NULLABLE */ +#line 16727 "preproc.y" + { (yyval.str) = mm_strdup("nullable"); } +#line 59607 "preproc.c" break; - case 3034: -#line 16728 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("octet_length"); } -#line 58948 "preproc.c" /* yacc.c:1652 */ + case 3034: /* ECPGKeywords_vanames: SQL_OCTET_LENGTH */ +#line 16728 "preproc.y" + { (yyval.str) = mm_strdup("octet_length"); } +#line 59613 "preproc.c" break; - case 3035: -#line 16729 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("returned_length"); } -#line 58954 "preproc.c" /* yacc.c:1652 */ + case 3035: /* ECPGKeywords_vanames: SQL_RETURNED_LENGTH */ +#line 16729 "preproc.y" + { (yyval.str) = mm_strdup("returned_length"); } +#line 59619 "preproc.c" break; - case 3036: -#line 16730 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("returned_octet_length"); } -#line 58960 "preproc.c" /* yacc.c:1652 */ + case 3036: /* ECPGKeywords_vanames: SQL_RETURNED_OCTET_LENGTH */ +#line 16730 "preproc.y" + { (yyval.str) = mm_strdup("returned_octet_length"); } +#line 59625 "preproc.c" break; - case 3037: -#line 16731 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("scale"); } -#line 58966 "preproc.c" /* yacc.c:1652 */ + case 3037: /* ECPGKeywords_vanames: SQL_SCALE */ +#line 16731 "preproc.y" + { (yyval.str) = mm_strdup("scale"); } +#line 59631 "preproc.c" break; - case 3038: -#line 16732 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("section"); } -#line 58972 "preproc.c" /* yacc.c:1652 */ + case 3038: /* ECPGKeywords_vanames: SQL_SECTION */ +#line 16732 "preproc.y" + { (yyval.str) = mm_strdup("section"); } +#line 59637 "preproc.c" break; - case 3039: -#line 16733 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("sqlerror"); } -#line 58978 "preproc.c" /* yacc.c:1652 */ + case 3039: /* ECPGKeywords_vanames: SQL_SQLERROR */ +#line 16733 "preproc.y" + { (yyval.str) = mm_strdup("sqlerror"); } +#line 59643 "preproc.c" break; - case 3040: -#line 16734 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("sqlprint"); } -#line 58984 "preproc.c" /* yacc.c:1652 */ + case 3040: /* ECPGKeywords_vanames: SQL_SQLPRINT */ +#line 16734 "preproc.y" + { (yyval.str) = mm_strdup("sqlprint"); } +#line 59649 "preproc.c" break; - case 3041: -#line 16735 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("sqlwarning"); } -#line 58990 "preproc.c" /* yacc.c:1652 */ + case 3041: /* ECPGKeywords_vanames: SQL_SQLWARNING */ +#line 16735 "preproc.y" + { (yyval.str) = mm_strdup("sqlwarning"); } +#line 59655 "preproc.c" break; - case 3042: -#line 16736 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("stop"); } -#line 58996 "preproc.c" /* yacc.c:1652 */ + case 3042: /* ECPGKeywords_vanames: SQL_STOP */ +#line 16736 "preproc.y" + { (yyval.str) = mm_strdup("stop"); } +#line 59661 "preproc.c" break; - case 3043: -#line 16739 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("connect"); } -#line 59002 "preproc.c" /* yacc.c:1652 */ + case 3043: /* ECPGKeywords_rest: SQL_CONNECT */ +#line 16739 "preproc.y" + { (yyval.str) = mm_strdup("connect"); } +#line 59667 "preproc.c" break; - case 3044: -#line 16740 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("describe"); } -#line 59008 "preproc.c" /* yacc.c:1652 */ + case 3044: /* ECPGKeywords_rest: SQL_DESCRIBE */ +#line 16740 "preproc.y" + { (yyval.str) = mm_strdup("describe"); } +#line 59673 "preproc.c" break; - case 3045: -#line 16741 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("disconnect"); } -#line 59014 "preproc.c" /* yacc.c:1652 */ + case 3045: /* ECPGKeywords_rest: SQL_DISCONNECT */ +#line 16741 "preproc.y" + { (yyval.str) = mm_strdup("disconnect"); } +#line 59679 "preproc.c" break; - case 3046: -#line 16742 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("open"); } -#line 59020 "preproc.c" /* yacc.c:1652 */ + case 3046: /* ECPGKeywords_rest: SQL_OPEN */ +#line 16742 "preproc.y" + { (yyval.str) = mm_strdup("open"); } +#line 59685 "preproc.c" break; - case 3047: -#line 16743 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("var"); } -#line 59026 "preproc.c" /* yacc.c:1652 */ + case 3047: /* ECPGKeywords_rest: SQL_VAR */ +#line 16743 "preproc.y" + { (yyval.str) = mm_strdup("var"); } +#line 59691 "preproc.c" break; - case 3048: -#line 16744 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("whenever"); } -#line 59032 "preproc.c" /* yacc.c:1652 */ + case 3048: /* ECPGKeywords_rest: SQL_WHENEVER */ +#line 16744 "preproc.y" + { (yyval.str) = mm_strdup("whenever"); } +#line 59697 "preproc.c" break; - case 3049: -#line 16748 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("bool"); } -#line 59038 "preproc.c" /* yacc.c:1652 */ + case 3049: /* ECPGTypeName: SQL_BOOL */ +#line 16748 "preproc.y" + { (yyval.str) = mm_strdup("bool"); } +#line 59703 "preproc.c" break; - case 3050: -#line 16749 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("long"); } -#line 59044 "preproc.c" /* yacc.c:1652 */ + case 3050: /* ECPGTypeName: SQL_LONG */ +#line 16749 "preproc.y" + { (yyval.str) = mm_strdup("long"); } +#line 59709 "preproc.c" break; - case 3051: -#line 16750 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("output"); } -#line 59050 "preproc.c" /* yacc.c:1652 */ + case 3051: /* ECPGTypeName: SQL_OUTPUT */ +#line 16750 "preproc.y" + { (yyval.str) = mm_strdup("output"); } +#line 59715 "preproc.c" break; - case 3052: -#line 16751 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("short"); } -#line 59056 "preproc.c" /* yacc.c:1652 */ + case 3052: /* ECPGTypeName: SQL_SHORT */ +#line 16751 "preproc.y" + { (yyval.str) = mm_strdup("short"); } +#line 59721 "preproc.c" break; - case 3053: -#line 16752 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("struct"); } -#line 59062 "preproc.c" /* yacc.c:1652 */ + case 3053: /* ECPGTypeName: SQL_STRUCT */ +#line 16752 "preproc.y" + { (yyval.str) = mm_strdup("struct"); } +#line 59727 "preproc.c" break; - case 3054: -#line 16753 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("signed"); } -#line 59068 "preproc.c" /* yacc.c:1652 */ + case 3054: /* ECPGTypeName: SQL_SIGNED */ +#line 16753 "preproc.y" + { (yyval.str) = mm_strdup("signed"); } +#line 59733 "preproc.c" break; - case 3055: -#line 16754 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("unsigned"); } -#line 59074 "preproc.c" /* yacc.c:1652 */ + case 3055: /* ECPGTypeName: SQL_UNSIGNED */ +#line 16754 "preproc.y" + { (yyval.str) = mm_strdup("unsigned"); } +#line 59739 "preproc.c" break; - case 3056: -#line 16757 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59080 "preproc.c" /* yacc.c:1652 */ + case 3056: /* symbol: ColLabel */ +#line 16757 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59745 "preproc.c" break; - case 3057: -#line 16760 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59086 "preproc.c" /* yacc.c:1652 */ + case 3057: /* ECPGColId: ecpg_ident */ +#line 16760 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59751 "preproc.c" break; - case 3058: -#line 16761 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59092 "preproc.c" /* yacc.c:1652 */ + case 3058: /* ECPGColId: unreserved_keyword */ +#line 16761 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59757 "preproc.c" break; - case 3059: -#line 16762 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59098 "preproc.c" /* yacc.c:1652 */ + case 3059: /* ECPGColId: col_name_keyword */ +#line 16762 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59763 "preproc.c" break; - case 3060: -#line 16763 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59104 "preproc.c" /* yacc.c:1652 */ + case 3060: /* ECPGColId: ECPGunreserved_interval */ +#line 16763 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59769 "preproc.c" break; - case 3061: -#line 16764 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59110 "preproc.c" /* yacc.c:1652 */ + case 3061: /* ECPGColId: ECPGKeywords */ +#line 16764 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59775 "preproc.c" break; - case 3062: -#line 16765 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59116 "preproc.c" /* yacc.c:1652 */ + case 3062: /* ECPGColId: ECPGCKeywords */ +#line 16765 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59781 "preproc.c" break; - case 3063: -#line 16766 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("char"); } -#line 59122 "preproc.c" /* yacc.c:1652 */ + case 3063: /* ECPGColId: CHAR_P */ +#line 16766 "preproc.y" + { (yyval.str) = mm_strdup("char"); } +#line 59787 "preproc.c" break; - case 3064: -#line 16767 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("values"); } -#line 59128 "preproc.c" /* yacc.c:1652 */ + case 3064: /* ECPGColId: VALUES */ +#line 16767 "preproc.y" + { (yyval.str) = mm_strdup("values"); } +#line 59793 "preproc.c" break; - case 3065: -#line 16780 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59134 "preproc.c" /* yacc.c:1652 */ + case 3065: /* ColId: ecpg_ident */ +#line 16780 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59799 "preproc.c" break; - case 3066: -#line 16781 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59140 "preproc.c" /* yacc.c:1652 */ + case 3066: /* ColId: all_unreserved_keyword */ +#line 16781 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59805 "preproc.c" break; - case 3067: -#line 16782 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59146 "preproc.c" /* yacc.c:1652 */ + case 3067: /* ColId: col_name_keyword */ +#line 16782 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59811 "preproc.c" break; - case 3068: -#line 16783 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59152 "preproc.c" /* yacc.c:1652 */ + case 3068: /* ColId: ECPGKeywords */ +#line 16783 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59817 "preproc.c" break; - case 3069: -#line 16784 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59158 "preproc.c" /* yacc.c:1652 */ + case 3069: /* ColId: ECPGCKeywords */ +#line 16784 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59823 "preproc.c" break; - case 3070: -#line 16785 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("char"); } -#line 59164 "preproc.c" /* yacc.c:1652 */ + case 3070: /* ColId: CHAR_P */ +#line 16785 "preproc.y" + { (yyval.str) = mm_strdup("char"); } +#line 59829 "preproc.c" break; - case 3071: -#line 16786 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("values"); } -#line 59170 "preproc.c" /* yacc.c:1652 */ + case 3071: /* ColId: VALUES */ +#line 16786 "preproc.y" + { (yyval.str) = mm_strdup("values"); } +#line 59835 "preproc.c" break; - case 3072: -#line 16791 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59176 "preproc.c" /* yacc.c:1652 */ + case 3072: /* type_function_name: ecpg_ident */ +#line 16791 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59841 "preproc.c" break; - case 3073: -#line 16792 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59182 "preproc.c" /* yacc.c:1652 */ + case 3073: /* type_function_name: all_unreserved_keyword */ +#line 16792 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59847 "preproc.c" break; - case 3074: -#line 16793 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59188 "preproc.c" /* yacc.c:1652 */ + case 3074: /* type_function_name: type_func_name_keyword */ +#line 16793 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59853 "preproc.c" break; - case 3075: -#line 16794 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59194 "preproc.c" /* yacc.c:1652 */ + case 3075: /* type_function_name: ECPGKeywords */ +#line 16794 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59859 "preproc.c" break; - case 3076: -#line 16795 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59200 "preproc.c" /* yacc.c:1652 */ + case 3076: /* type_function_name: ECPGCKeywords */ +#line 16795 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59865 "preproc.c" break; - case 3077: -#line 16796 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59206 "preproc.c" /* yacc.c:1652 */ + case 3077: /* type_function_name: ECPGTypeName */ +#line 16796 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59871 "preproc.c" break; - case 3078: -#line 16802 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59212 "preproc.c" /* yacc.c:1652 */ + case 3078: /* ColLabel: ECPGColLabel */ +#line 16802 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59877 "preproc.c" break; - case 3079: -#line 16803 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59218 "preproc.c" /* yacc.c:1652 */ + case 3079: /* ColLabel: ECPGTypeName */ +#line 16803 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59883 "preproc.c" break; - case 3080: -#line 16804 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("char"); } -#line 59224 "preproc.c" /* yacc.c:1652 */ + case 3080: /* ColLabel: CHAR_P */ +#line 16804 "preproc.y" + { (yyval.str) = mm_strdup("char"); } +#line 59889 "preproc.c" break; - case 3081: -#line 16805 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("current"); } -#line 59230 "preproc.c" /* yacc.c:1652 */ + case 3081: /* ColLabel: CURRENT_P */ +#line 16805 "preproc.y" + { (yyval.str) = mm_strdup("current"); } +#line 59895 "preproc.c" break; - case 3082: -#line 16806 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("input"); } -#line 59236 "preproc.c" /* yacc.c:1652 */ + case 3082: /* ColLabel: INPUT_P */ +#line 16806 "preproc.y" + { (yyval.str) = mm_strdup("input"); } +#line 59901 "preproc.c" break; - case 3083: -#line 16807 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("int"); } -#line 59242 "preproc.c" /* yacc.c:1652 */ + case 3083: /* ColLabel: INT_P */ +#line 16807 "preproc.y" + { (yyval.str) = mm_strdup("int"); } +#line 59907 "preproc.c" break; - case 3084: -#line 16808 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("to"); } -#line 59248 "preproc.c" /* yacc.c:1652 */ + case 3084: /* ColLabel: TO */ +#line 16808 "preproc.y" + { (yyval.str) = mm_strdup("to"); } +#line 59913 "preproc.c" break; - case 3085: -#line 16809 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("union"); } -#line 59254 "preproc.c" /* yacc.c:1652 */ + case 3085: /* ColLabel: UNION */ +#line 16809 "preproc.y" + { (yyval.str) = mm_strdup("union"); } +#line 59919 "preproc.c" break; - case 3086: -#line 16810 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("values"); } -#line 59260 "preproc.c" /* yacc.c:1652 */ + case 3086: /* ColLabel: VALUES */ +#line 16810 "preproc.y" + { (yyval.str) = mm_strdup("values"); } +#line 59925 "preproc.c" break; - case 3087: -#line 16811 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59266 "preproc.c" /* yacc.c:1652 */ + case 3087: /* ColLabel: ECPGCKeywords */ +#line 16811 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59931 "preproc.c" break; - case 3088: -#line 16812 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59272 "preproc.c" /* yacc.c:1652 */ + case 3088: /* ColLabel: ECPGunreserved_interval */ +#line 16812 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59937 "preproc.c" break; - case 3089: -#line 16815 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59278 "preproc.c" /* yacc.c:1652 */ + case 3089: /* ECPGColLabel: ECPGColLabelCommon */ +#line 16815 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59943 "preproc.c" break; - case 3090: -#line 16816 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59284 "preproc.c" /* yacc.c:1652 */ + case 3090: /* ECPGColLabel: unreserved_keyword */ +#line 16816 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59949 "preproc.c" break; - case 3091: -#line 16817 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59290 "preproc.c" /* yacc.c:1652 */ + case 3091: /* ECPGColLabel: reserved_keyword */ +#line 16817 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59955 "preproc.c" break; - case 3092: -#line 16818 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59296 "preproc.c" /* yacc.c:1652 */ + case 3092: /* ECPGColLabel: ECPGKeywords_rest */ +#line 16818 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59961 "preproc.c" break; - case 3093: -#line 16819 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("connection"); } -#line 59302 "preproc.c" /* yacc.c:1652 */ + case 3093: /* ECPGColLabel: CONNECTION */ +#line 16819 "preproc.y" + { (yyval.str) = mm_strdup("connection"); } +#line 59967 "preproc.c" break; - case 3094: -#line 16822 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59308 "preproc.c" /* yacc.c:1652 */ + case 3094: /* ECPGColLabelCommon: ecpg_ident */ +#line 16822 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59973 "preproc.c" break; - case 3095: -#line 16823 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59314 "preproc.c" /* yacc.c:1652 */ + case 3095: /* ECPGColLabelCommon: col_name_keyword */ +#line 16823 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59979 "preproc.c" break; - case 3096: -#line 16824 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59320 "preproc.c" /* yacc.c:1652 */ + case 3096: /* ECPGColLabelCommon: type_func_name_keyword */ +#line 16824 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59985 "preproc.c" break; - case 3097: -#line 16825 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59326 "preproc.c" /* yacc.c:1652 */ + case 3097: /* ECPGColLabelCommon: ECPGKeywords_vanames */ +#line 16825 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 59991 "preproc.c" break; - case 3098: -#line 16828 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("auto"); } -#line 59332 "preproc.c" /* yacc.c:1652 */ + case 3098: /* ECPGCKeywords: S_AUTO */ +#line 16828 "preproc.y" + { (yyval.str) = mm_strdup("auto"); } +#line 59997 "preproc.c" break; - case 3099: -#line 16829 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("const"); } -#line 59338 "preproc.c" /* yacc.c:1652 */ + case 3099: /* ECPGCKeywords: S_CONST */ +#line 16829 "preproc.y" + { (yyval.str) = mm_strdup("const"); } +#line 60003 "preproc.c" break; - case 3100: -#line 16830 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("extern"); } -#line 59344 "preproc.c" /* yacc.c:1652 */ + case 3100: /* ECPGCKeywords: S_EXTERN */ +#line 16830 "preproc.y" + { (yyval.str) = mm_strdup("extern"); } +#line 60009 "preproc.c" break; - case 3101: -#line 16831 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("register"); } -#line 59350 "preproc.c" /* yacc.c:1652 */ + case 3101: /* ECPGCKeywords: S_REGISTER */ +#line 16831 "preproc.y" + { (yyval.str) = mm_strdup("register"); } +#line 60015 "preproc.c" break; - case 3102: -#line 16832 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("static"); } -#line 59356 "preproc.c" /* yacc.c:1652 */ + case 3102: /* ECPGCKeywords: S_STATIC */ +#line 16832 "preproc.y" + { (yyval.str) = mm_strdup("static"); } +#line 60021 "preproc.c" break; - case 3103: -#line 16833 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("typedef"); } -#line 59362 "preproc.c" /* yacc.c:1652 */ + case 3103: /* ECPGCKeywords: S_TYPEDEF */ +#line 16833 "preproc.y" + { (yyval.str) = mm_strdup("typedef"); } +#line 60027 "preproc.c" break; - case 3104: -#line 16834 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("volatile"); } -#line 59368 "preproc.c" /* yacc.c:1652 */ + case 3104: /* ECPGCKeywords: S_VOLATILE */ +#line 16834 "preproc.y" + { (yyval.str) = mm_strdup("volatile"); } +#line 60033 "preproc.c" break; - case 3105: -#line 16851 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59374 "preproc.c" /* yacc.c:1652 */ + case 3105: /* all_unreserved_keyword: unreserved_keyword */ +#line 16851 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60039 "preproc.c" break; - case 3106: -#line 16852 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59380 "preproc.c" /* yacc.c:1652 */ + case 3106: /* all_unreserved_keyword: ECPGunreserved_interval */ +#line 16852 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60045 "preproc.c" break; - case 3107: -#line 16853 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("connection"); } -#line 59386 "preproc.c" /* yacc.c:1652 */ + case 3107: /* all_unreserved_keyword: CONNECTION */ +#line 16853 "preproc.y" + { (yyval.str) = mm_strdup("connection"); } +#line 60051 "preproc.c" break; - case 3108: -#line 16856 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("day"); } -#line 59392 "preproc.c" /* yacc.c:1652 */ + case 3108: /* ECPGunreserved_interval: DAY_P */ +#line 16856 "preproc.y" + { (yyval.str) = mm_strdup("day"); } +#line 60057 "preproc.c" break; - case 3109: -#line 16857 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("hour"); } -#line 59398 "preproc.c" /* yacc.c:1652 */ + case 3109: /* ECPGunreserved_interval: HOUR_P */ +#line 16857 "preproc.y" + { (yyval.str) = mm_strdup("hour"); } +#line 60063 "preproc.c" break; - case 3110: -#line 16858 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("minute"); } -#line 59404 "preproc.c" /* yacc.c:1652 */ + case 3110: /* ECPGunreserved_interval: MINUTE_P */ +#line 16858 "preproc.y" + { (yyval.str) = mm_strdup("minute"); } +#line 60069 "preproc.c" break; - case 3111: -#line 16859 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("month"); } -#line 59410 "preproc.c" /* yacc.c:1652 */ + case 3111: /* ECPGunreserved_interval: MONTH_P */ +#line 16859 "preproc.y" + { (yyval.str) = mm_strdup("month"); } +#line 60075 "preproc.c" break; - case 3112: -#line 16860 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("second"); } -#line 59416 "preproc.c" /* yacc.c:1652 */ + case 3112: /* ECPGunreserved_interval: SECOND_P */ +#line 16860 "preproc.y" + { (yyval.str) = mm_strdup("second"); } +#line 60081 "preproc.c" break; - case 3113: -#line 16861 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("year"); } -#line 59422 "preproc.c" /* yacc.c:1652 */ + case 3113: /* ECPGunreserved_interval: YEAR_P */ +#line 16861 "preproc.y" + { (yyval.str) = mm_strdup("year"); } +#line 60087 "preproc.c" break; - case 3116: -#line 16868 "preproc.y" /* yacc.c:1652 */ - { + case 3116: /* ecpgstart: SQL_START */ +#line 16868 "preproc.y" + { reset_variables(); pacounter = 1; } -#line 59431 "preproc.c" /* yacc.c:1652 */ +#line 60096 "preproc.c" break; - case 3117: -#line 16874 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 59437 "preproc.c" /* yacc.c:1652 */ + case 3117: /* c_args: %empty */ +#line 16874 "preproc.y" + { (yyval.str) = EMPTY; } +#line 60102 "preproc.c" break; - case 3118: -#line 16875 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59443 "preproc.c" /* yacc.c:1652 */ + case 3118: /* c_args: c_list */ +#line 16875 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60108 "preproc.c" break; - case 3119: -#line 16879 "preproc.y" /* yacc.c:1652 */ - { add_variable_to_head(&argsresult, find_variable((yyvsp[-1].str)), find_variable((yyvsp[0].str))); } -#line 59449 "preproc.c" /* yacc.c:1652 */ + case 3119: /* coutputvariable: cvariable indicator */ +#line 16879 "preproc.y" + { add_variable_to_head(&argsresult, find_variable((yyvsp[-1].str)), find_variable((yyvsp[0].str))); } +#line 60114 "preproc.c" break; - case 3120: -#line 16881 "preproc.y" /* yacc.c:1652 */ - { add_variable_to_head(&argsresult, find_variable((yyvsp[0].str)), &no_indicator); } -#line 59455 "preproc.c" /* yacc.c:1652 */ + case 3120: /* coutputvariable: cvariable */ +#line 16881 "preproc.y" + { add_variable_to_head(&argsresult, find_variable((yyvsp[0].str)), &no_indicator); } +#line 60120 "preproc.c" break; - case 3121: -#line 16886 "preproc.y" /* yacc.c:1652 */ - { + case 3121: /* civarind: cvariable indicator */ +#line 16886 "preproc.y" + { if (find_variable((yyvsp[0].str))->type->type == ECPGt_array) mmerror(PARSE_ERROR, ET_ERROR, "arrays of indicators are not allowed on input"); add_variable_to_head(&argsinsert, find_variable((yyvsp[-1].str)), find_variable((yyvsp[0].str))); (yyval.str) = create_questionmarks((yyvsp[-1].str), false); } -#line 59467 "preproc.c" /* yacc.c:1652 */ +#line 60132 "preproc.c" break; - case 3122: -#line 16896 "preproc.y" /* yacc.c:1652 */ - { + case 3122: /* char_civar: char_variable */ +#line 16896 "preproc.y" + { char *ptr = strstr((yyvsp[0].str), ".arr"); if (ptr) /* varchar, we need the struct name here, not the struct element */ @@ -59476,39 +60141,39 @@ add_variable_to_head(&argsinsert, find_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = (yyvsp[0].str); } -#line 59480 "preproc.c" /* yacc.c:1652 */ +#line 60145 "preproc.c" break; - case 3123: -#line 16907 "preproc.y" /* yacc.c:1652 */ - { + case 3123: /* civar: cvariable */ +#line 16907 "preproc.y" + { add_variable_to_head(&argsinsert, find_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = create_questionmarks((yyvsp[0].str), false); } -#line 59489 "preproc.c" /* yacc.c:1652 */ +#line 60154 "preproc.c" break; - case 3124: -#line 16913 "preproc.y" /* yacc.c:1652 */ - { check_indicator((find_variable((yyvsp[0].str)))->type); (yyval.str) = (yyvsp[0].str); } -#line 59495 "preproc.c" /* yacc.c:1652 */ + case 3124: /* indicator: cvariable */ +#line 16913 "preproc.y" + { check_indicator((find_variable((yyvsp[0].str)))->type); (yyval.str) = (yyvsp[0].str); } +#line 60160 "preproc.c" break; - case 3125: -#line 16914 "preproc.y" /* yacc.c:1652 */ - { check_indicator((find_variable((yyvsp[0].str)))->type); (yyval.str) = (yyvsp[0].str); } -#line 59501 "preproc.c" /* yacc.c:1652 */ + case 3125: /* indicator: SQL_INDICATOR cvariable */ +#line 16914 "preproc.y" + { check_indicator((find_variable((yyvsp[0].str)))->type); (yyval.str) = (yyvsp[0].str); } +#line 60166 "preproc.c" break; - case 3126: -#line 16915 "preproc.y" /* yacc.c:1652 */ - { check_indicator((find_variable((yyvsp[0].str)))->type); (yyval.str) = (yyvsp[0].str); } -#line 59507 "preproc.c" /* yacc.c:1652 */ + case 3126: /* indicator: SQL_INDICATOR name */ +#line 16915 "preproc.y" + { check_indicator((find_variable((yyvsp[0].str)))->type); (yyval.str) = (yyvsp[0].str); } +#line 60172 "preproc.c" break; - case 3127: -#line 16919 "preproc.y" /* yacc.c:1652 */ - { + case 3127: /* cvariable: CVARIABLE */ +#line 16919 "preproc.y" + { /* As long as multidimensional arrays are not implemented we have to check for those here */ char *ptr = (yyvsp[0].str); int brace_open=0, brace = false; @@ -59538,628 +60203,628 @@ } (yyval.str) = (yyvsp[0].str); } -#line 59542 "preproc.c" /* yacc.c:1652 */ +#line 60207 "preproc.c" break; - case 3128: -#line 16951 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make_name(); } -#line 59548 "preproc.c" /* yacc.c:1652 */ + case 3128: /* ecpg_param: PARAM */ +#line 16951 "preproc.y" + { (yyval.str) = make_name(); } +#line 60213 "preproc.c" break; - case 3129: -#line 16953 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59554 "preproc.c" /* yacc.c:1652 */ + case 3129: /* ecpg_bconst: BCONST */ +#line 16953 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60219 "preproc.c" break; - case 3130: -#line 16955 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make_name(); } -#line 59560 "preproc.c" /* yacc.c:1652 */ + case 3130: /* ecpg_fconst: FCONST */ +#line 16955 "preproc.y" + { (yyval.str) = make_name(); } +#line 60225 "preproc.c" break; - case 3131: -#line 16957 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59566 "preproc.c" /* yacc.c:1652 */ + case 3131: /* ecpg_sconst: SCONST */ +#line 16957 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60231 "preproc.c" break; - case 3132: -#line 16959 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59572 "preproc.c" /* yacc.c:1652 */ + case 3132: /* ecpg_xconst: XCONST */ +#line 16959 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60237 "preproc.c" break; - case 3133: -#line 16961 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59578 "preproc.c" /* yacc.c:1652 */ + case 3133: /* ecpg_ident: IDENT */ +#line 16961 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60243 "preproc.c" break; - case 3134: -#line 16962 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 59584 "preproc.c" /* yacc.c:1652 */ + case 3134: /* ecpg_ident: CSTRING */ +#line 16962 "preproc.y" + { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } +#line 60249 "preproc.c" break; - case 3135: -#line 16966 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 59590 "preproc.c" /* yacc.c:1652 */ + case 3135: /* quoted_ident_stringvar: name */ +#line 16966 "preproc.y" + { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } +#line 60255 "preproc.c" break; - case 3136: -#line 16968 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make3_str(mm_strdup("("), (yyvsp[0].str), mm_strdup(")")); } -#line 59596 "preproc.c" /* yacc.c:1652 */ + case 3136: /* quoted_ident_stringvar: char_variable */ +#line 16968 "preproc.y" + { (yyval.str) = make3_str(mm_strdup("("), (yyvsp[0].str), mm_strdup(")")); } +#line 60261 "preproc.c" break; - case 3137: -#line 16975 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59602 "preproc.c" /* yacc.c:1652 */ + case 3137: /* c_stuff_item: c_anything */ +#line 16975 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60267 "preproc.c" break; - case 3138: -#line 16976 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("()"); } -#line 59608 "preproc.c" /* yacc.c:1652 */ + case 3138: /* c_stuff_item: '(' ')' */ +#line 16976 "preproc.y" + { (yyval.str) = mm_strdup("()"); } +#line 60273 "preproc.c" break; - case 3139: -#line 16978 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); } -#line 59614 "preproc.c" /* yacc.c:1652 */ + case 3139: /* c_stuff_item: '(' c_stuff ')' */ +#line 16978 "preproc.y" + { (yyval.str) = cat_str(3, mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); } +#line 60279 "preproc.c" break; - case 3140: -#line 16981 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59620 "preproc.c" /* yacc.c:1652 */ + case 3140: /* c_stuff: c_stuff_item */ +#line 16981 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60285 "preproc.c" break; - case 3141: -#line 16983 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 59626 "preproc.c" /* yacc.c:1652 */ + case 3141: /* c_stuff: c_stuff c_stuff_item */ +#line 16983 "preproc.y" + { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } +#line 60291 "preproc.c" break; - case 3142: -#line 16986 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59632 "preproc.c" /* yacc.c:1652 */ + case 3142: /* c_list: c_term */ +#line 16986 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60297 "preproc.c" break; - case 3143: -#line 16987 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 59638 "preproc.c" /* yacc.c:1652 */ + case 3143: /* c_list: c_list ',' c_term */ +#line 16987 "preproc.y" + { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } +#line 60303 "preproc.c" break; - case 3144: -#line 16990 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59644 "preproc.c" /* yacc.c:1652 */ + case 3144: /* c_term: c_stuff */ +#line 16990 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60309 "preproc.c" break; - case 3145: -#line 16991 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } -#line 59650 "preproc.c" /* yacc.c:1652 */ + case 3145: /* c_term: '{' c_list '}' */ +#line 16991 "preproc.y" + { (yyval.str) = cat_str(3, mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } +#line 60315 "preproc.c" break; - case 3146: -#line 16994 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59656 "preproc.c" /* yacc.c:1652 */ + case 3146: /* c_thing: c_anything */ +#line 16994 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60321 "preproc.c" break; - case 3147: -#line 16995 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("("); } -#line 59662 "preproc.c" /* yacc.c:1652 */ + case 3147: /* c_thing: '(' */ +#line 16995 "preproc.y" + { (yyval.str) = mm_strdup("("); } +#line 60327 "preproc.c" break; - case 3148: -#line 16996 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup(")"); } -#line 59668 "preproc.c" /* yacc.c:1652 */ + case 3148: /* c_thing: ')' */ +#line 16996 "preproc.y" + { (yyval.str) = mm_strdup(")"); } +#line 60333 "preproc.c" break; - case 3149: -#line 16997 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup(","); } -#line 59674 "preproc.c" /* yacc.c:1652 */ + case 3149: /* c_thing: ',' */ +#line 16997 "preproc.y" + { (yyval.str) = mm_strdup(","); } +#line 60339 "preproc.c" break; - case 3150: -#line 16998 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup(";"); } -#line 59680 "preproc.c" /* yacc.c:1652 */ + case 3150: /* c_thing: ';' */ +#line 16998 "preproc.y" + { (yyval.str) = mm_strdup(";"); } +#line 60345 "preproc.c" break; - case 3151: -#line 17001 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59686 "preproc.c" /* yacc.c:1652 */ + case 3151: /* c_anything: ecpg_ident */ +#line 17001 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60351 "preproc.c" break; - case 3152: -#line 17002 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59692 "preproc.c" /* yacc.c:1652 */ + case 3152: /* c_anything: Iconst */ +#line 17002 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60357 "preproc.c" break; - case 3153: -#line 17003 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59698 "preproc.c" /* yacc.c:1652 */ + case 3153: /* c_anything: ecpg_fconst */ +#line 17003 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60363 "preproc.c" break; - case 3154: -#line 17004 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 59704 "preproc.c" /* yacc.c:1652 */ + case 3154: /* c_anything: ecpg_sconst */ +#line 17004 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60369 "preproc.c" break; - case 3155: -#line 17005 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("*"); } -#line 59710 "preproc.c" /* yacc.c:1652 */ + case 3155: /* c_anything: '*' */ +#line 17005 "preproc.y" + { (yyval.str) = mm_strdup("*"); } +#line 60375 "preproc.c" break; - case 3156: -#line 17006 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("+"); } -#line 59716 "preproc.c" /* yacc.c:1652 */ + case 3156: /* c_anything: '+' */ +#line 17006 "preproc.y" + { (yyval.str) = mm_strdup("+"); } +#line 60381 "preproc.c" break; - case 3157: -#line 17007 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("-"); } -#line 59722 "preproc.c" /* yacc.c:1652 */ + case 3157: /* c_anything: '-' */ +#line 17007 "preproc.y" + { (yyval.str) = mm_strdup("-"); } +#line 60387 "preproc.c" break; - case 3158: -#line 17008 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("/"); } -#line 59728 "preproc.c" /* yacc.c:1652 */ + case 3158: /* c_anything: '/' */ +#line 17008 "preproc.y" + { (yyval.str) = mm_strdup("/"); } +#line 60393 "preproc.c" break; - case 3159: -#line 17009 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("%"); } -#line 59734 "preproc.c" /* yacc.c:1652 */ + case 3159: /* c_anything: '%' */ +#line 17009 "preproc.y" + { (yyval.str) = mm_strdup("%"); } +#line 60399 "preproc.c" break; - case 3160: -#line 17010 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("NULL"); } -#line 59740 "preproc.c" /* yacc.c:1652 */ + case 3160: /* c_anything: NULL_P */ +#line 17010 "preproc.y" + { (yyval.str) = mm_strdup("NULL"); } +#line 60405 "preproc.c" break; - case 3161: -#line 17011 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("+="); } -#line 59746 "preproc.c" /* yacc.c:1652 */ + case 3161: /* c_anything: S_ADD */ +#line 17011 "preproc.y" + { (yyval.str) = mm_strdup("+="); } +#line 60411 "preproc.c" break; - case 3162: -#line 17012 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("&&"); } -#line 59752 "preproc.c" /* yacc.c:1652 */ + case 3162: /* c_anything: S_AND */ +#line 17012 "preproc.y" + { (yyval.str) = mm_strdup("&&"); } +#line 60417 "preproc.c" break; - case 3163: -#line 17013 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = make_name(); } -#line 59758 "preproc.c" /* yacc.c:1652 */ + case 3163: /* c_anything: S_ANYTHING */ +#line 17013 "preproc.y" + { (yyval.str) = make_name(); } +#line 60423 "preproc.c" break; - case 3164: -#line 17014 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("auto"); } -#line 59764 "preproc.c" /* yacc.c:1652 */ + case 3164: /* c_anything: S_AUTO */ +#line 17014 "preproc.y" + { (yyval.str) = mm_strdup("auto"); } +#line 60429 "preproc.c" break; - case 3165: -#line 17015 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("const"); } -#line 59770 "preproc.c" /* yacc.c:1652 */ + case 3165: /* c_anything: S_CONST */ +#line 17015 "preproc.y" + { (yyval.str) = mm_strdup("const"); } +#line 60435 "preproc.c" break; - case 3166: -#line 17016 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("--"); } -#line 59776 "preproc.c" /* yacc.c:1652 */ + case 3166: /* c_anything: S_DEC */ +#line 17016 "preproc.y" + { (yyval.str) = mm_strdup("--"); } +#line 60441 "preproc.c" break; - case 3167: -#line 17017 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("/="); } -#line 59782 "preproc.c" /* yacc.c:1652 */ + case 3167: /* c_anything: S_DIV */ +#line 17017 "preproc.y" + { (yyval.str) = mm_strdup("/="); } +#line 60447 "preproc.c" break; - case 3168: -#line 17018 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup(".*"); } -#line 59788 "preproc.c" /* yacc.c:1652 */ + case 3168: /* c_anything: S_DOTPOINT */ +#line 17018 "preproc.y" + { (yyval.str) = mm_strdup(".*"); } +#line 60453 "preproc.c" break; - case 3169: -#line 17019 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("=="); } -#line 59794 "preproc.c" /* yacc.c:1652 */ + case 3169: /* c_anything: S_EQUAL */ +#line 17019 "preproc.y" + { (yyval.str) = mm_strdup("=="); } +#line 60459 "preproc.c" break; - case 3170: -#line 17020 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("extern"); } -#line 59800 "preproc.c" /* yacc.c:1652 */ + case 3170: /* c_anything: S_EXTERN */ +#line 17020 "preproc.y" + { (yyval.str) = mm_strdup("extern"); } +#line 60465 "preproc.c" break; - case 3171: -#line 17021 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("++"); } -#line 59806 "preproc.c" /* yacc.c:1652 */ + case 3171: /* c_anything: S_INC */ +#line 17021 "preproc.y" + { (yyval.str) = mm_strdup("++"); } +#line 60471 "preproc.c" break; - case 3172: -#line 17022 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("<<"); } -#line 59812 "preproc.c" /* yacc.c:1652 */ + case 3172: /* c_anything: S_LSHIFT */ +#line 17022 "preproc.y" + { (yyval.str) = mm_strdup("<<"); } +#line 60477 "preproc.c" break; - case 3173: -#line 17023 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("->"); } -#line 59818 "preproc.c" /* yacc.c:1652 */ + case 3173: /* c_anything: S_MEMBER */ +#line 17023 "preproc.y" + { (yyval.str) = mm_strdup("->"); } +#line 60483 "preproc.c" break; - case 3174: -#line 17024 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("->*"); } -#line 59824 "preproc.c" /* yacc.c:1652 */ + case 3174: /* c_anything: S_MEMPOINT */ +#line 17024 "preproc.y" + { (yyval.str) = mm_strdup("->*"); } +#line 60489 "preproc.c" break; - case 3175: -#line 17025 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("%="); } -#line 59830 "preproc.c" /* yacc.c:1652 */ + case 3175: /* c_anything: S_MOD */ +#line 17025 "preproc.y" + { (yyval.str) = mm_strdup("%="); } +#line 60495 "preproc.c" break; - case 3176: -#line 17026 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("*="); } -#line 59836 "preproc.c" /* yacc.c:1652 */ + case 3176: /* c_anything: S_MUL */ +#line 17026 "preproc.y" + { (yyval.str) = mm_strdup("*="); } +#line 60501 "preproc.c" break; - case 3177: -#line 17027 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("!="); } -#line 59842 "preproc.c" /* yacc.c:1652 */ + case 3177: /* c_anything: S_NEQUAL */ +#line 17027 "preproc.y" + { (yyval.str) = mm_strdup("!="); } +#line 60507 "preproc.c" break; - case 3178: -#line 17028 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("||"); } -#line 59848 "preproc.c" /* yacc.c:1652 */ + case 3178: /* c_anything: S_OR */ +#line 17028 "preproc.y" + { (yyval.str) = mm_strdup("||"); } +#line 60513 "preproc.c" break; - case 3179: -#line 17029 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("register"); } -#line 59854 "preproc.c" /* yacc.c:1652 */ + case 3179: /* c_anything: S_REGISTER */ +#line 17029 "preproc.y" + { (yyval.str) = mm_strdup("register"); } +#line 60519 "preproc.c" break; - case 3180: -#line 17030 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup(">>"); } -#line 59860 "preproc.c" /* yacc.c:1652 */ + case 3180: /* c_anything: S_RSHIFT */ +#line 17030 "preproc.y" + { (yyval.str) = mm_strdup(">>"); } +#line 60525 "preproc.c" break; - case 3181: -#line 17031 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("static"); } -#line 59866 "preproc.c" /* yacc.c:1652 */ + case 3181: /* c_anything: S_STATIC */ +#line 17031 "preproc.y" + { (yyval.str) = mm_strdup("static"); } +#line 60531 "preproc.c" break; - case 3182: -#line 17032 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("-="); } -#line 59872 "preproc.c" /* yacc.c:1652 */ + case 3182: /* c_anything: S_SUB */ +#line 17032 "preproc.y" + { (yyval.str) = mm_strdup("-="); } +#line 60537 "preproc.c" break; - case 3183: -#line 17033 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("typedef"); } -#line 59878 "preproc.c" /* yacc.c:1652 */ + case 3183: /* c_anything: S_TYPEDEF */ +#line 17033 "preproc.y" + { (yyval.str) = mm_strdup("typedef"); } +#line 60543 "preproc.c" break; - case 3184: -#line 17034 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("volatile"); } -#line 59884 "preproc.c" /* yacc.c:1652 */ + case 3184: /* c_anything: S_VOLATILE */ +#line 17034 "preproc.y" + { (yyval.str) = mm_strdup("volatile"); } +#line 60549 "preproc.c" break; - case 3185: -#line 17035 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("bool"); } -#line 59890 "preproc.c" /* yacc.c:1652 */ + case 3185: /* c_anything: SQL_BOOL */ +#line 17035 "preproc.y" + { (yyval.str) = mm_strdup("bool"); } +#line 60555 "preproc.c" break; - case 3186: -#line 17036 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("enum"); } -#line 59896 "preproc.c" /* yacc.c:1652 */ + case 3186: /* c_anything: ENUM_P */ +#line 17036 "preproc.y" + { (yyval.str) = mm_strdup("enum"); } +#line 60561 "preproc.c" break; - case 3187: -#line 17037 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("hour"); } -#line 59902 "preproc.c" /* yacc.c:1652 */ + case 3187: /* c_anything: HOUR_P */ +#line 17037 "preproc.y" + { (yyval.str) = mm_strdup("hour"); } +#line 60567 "preproc.c" break; - case 3188: -#line 17038 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("int"); } -#line 59908 "preproc.c" /* yacc.c:1652 */ + case 3188: /* c_anything: INT_P */ +#line 17038 "preproc.y" + { (yyval.str) = mm_strdup("int"); } +#line 60573 "preproc.c" break; - case 3189: -#line 17039 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("long"); } -#line 59914 "preproc.c" /* yacc.c:1652 */ + case 3189: /* c_anything: SQL_LONG */ +#line 17039 "preproc.y" + { (yyval.str) = mm_strdup("long"); } +#line 60579 "preproc.c" break; - case 3190: -#line 17040 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("minute"); } -#line 59920 "preproc.c" /* yacc.c:1652 */ + case 3190: /* c_anything: MINUTE_P */ +#line 17040 "preproc.y" + { (yyval.str) = mm_strdup("minute"); } +#line 60585 "preproc.c" break; - case 3191: -#line 17041 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("month"); } -#line 59926 "preproc.c" /* yacc.c:1652 */ + case 3191: /* c_anything: MONTH_P */ +#line 17041 "preproc.y" + { (yyval.str) = mm_strdup("month"); } +#line 60591 "preproc.c" break; - case 3192: -#line 17042 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("second"); } -#line 59932 "preproc.c" /* yacc.c:1652 */ + case 3192: /* c_anything: SECOND_P */ +#line 17042 "preproc.y" + { (yyval.str) = mm_strdup("second"); } +#line 60597 "preproc.c" break; - case 3193: -#line 17043 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("short"); } -#line 59938 "preproc.c" /* yacc.c:1652 */ + case 3193: /* c_anything: SQL_SHORT */ +#line 17043 "preproc.y" + { (yyval.str) = mm_strdup("short"); } +#line 60603 "preproc.c" break; - case 3194: -#line 17044 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("signed"); } -#line 59944 "preproc.c" /* yacc.c:1652 */ + case 3194: /* c_anything: SQL_SIGNED */ +#line 17044 "preproc.y" + { (yyval.str) = mm_strdup("signed"); } +#line 60609 "preproc.c" break; - case 3195: -#line 17045 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("struct"); } -#line 59950 "preproc.c" /* yacc.c:1652 */ + case 3195: /* c_anything: SQL_STRUCT */ +#line 17045 "preproc.y" + { (yyval.str) = mm_strdup("struct"); } +#line 60615 "preproc.c" break; - case 3196: -#line 17046 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("unsigned"); } -#line 59956 "preproc.c" /* yacc.c:1652 */ + case 3196: /* c_anything: SQL_UNSIGNED */ +#line 17046 "preproc.y" + { (yyval.str) = mm_strdup("unsigned"); } +#line 60621 "preproc.c" break; - case 3197: -#line 17047 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("year"); } -#line 59962 "preproc.c" /* yacc.c:1652 */ + case 3197: /* c_anything: YEAR_P */ +#line 17047 "preproc.y" + { (yyval.str) = mm_strdup("year"); } +#line 60627 "preproc.c" break; - case 3198: -#line 17048 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("char"); } -#line 59968 "preproc.c" /* yacc.c:1652 */ + case 3198: /* c_anything: CHAR_P */ +#line 17048 "preproc.y" + { (yyval.str) = mm_strdup("char"); } +#line 60633 "preproc.c" break; - case 3199: -#line 17049 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("float"); } -#line 59974 "preproc.c" /* yacc.c:1652 */ + case 3199: /* c_anything: FLOAT_P */ +#line 17049 "preproc.y" + { (yyval.str) = mm_strdup("float"); } +#line 60639 "preproc.c" break; - case 3200: -#line 17050 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("to"); } -#line 59980 "preproc.c" /* yacc.c:1652 */ + case 3200: /* c_anything: TO */ +#line 17050 "preproc.y" + { (yyval.str) = mm_strdup("to"); } +#line 60645 "preproc.c" break; - case 3201: -#line 17051 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("union"); } -#line 59986 "preproc.c" /* yacc.c:1652 */ + case 3201: /* c_anything: UNION */ +#line 17051 "preproc.y" + { (yyval.str) = mm_strdup("union"); } +#line 60651 "preproc.c" break; - case 3202: -#line 17052 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("varchar"); } -#line 59992 "preproc.c" /* yacc.c:1652 */ + case 3202: /* c_anything: VARCHAR */ +#line 17052 "preproc.y" + { (yyval.str) = mm_strdup("varchar"); } +#line 60657 "preproc.c" break; - case 3203: -#line 17053 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("["); } -#line 59998 "preproc.c" /* yacc.c:1652 */ + case 3203: /* c_anything: '[' */ +#line 17053 "preproc.y" + { (yyval.str) = mm_strdup("["); } +#line 60663 "preproc.c" break; - case 3204: -#line 17054 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("]"); } -#line 60004 "preproc.c" /* yacc.c:1652 */ + case 3204: /* c_anything: ']' */ +#line 17054 "preproc.y" + { (yyval.str) = mm_strdup("]"); } +#line 60669 "preproc.c" break; - case 3205: -#line 17055 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("="); } -#line 60010 "preproc.c" /* yacc.c:1652 */ + case 3205: /* c_anything: '=' */ +#line 17055 "preproc.y" + { (yyval.str) = mm_strdup("="); } +#line 60675 "preproc.c" break; - case 3206: -#line 17056 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup(":"); } -#line 60016 "preproc.c" /* yacc.c:1652 */ + case 3206: /* c_anything: ':' */ +#line 17056 "preproc.y" + { (yyval.str) = mm_strdup(":"); } +#line 60681 "preproc.c" break; - case 3207: -#line 17059 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 60022 "preproc.c" /* yacc.c:1652 */ + case 3207: /* DeallocateStmt: DEALLOCATE prepared_name */ +#line 17059 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60687 "preproc.c" break; - case 3208: -#line 17060 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 60028 "preproc.c" /* yacc.c:1652 */ + case 3208: /* DeallocateStmt: DEALLOCATE PREPARE prepared_name */ +#line 17060 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60693 "preproc.c" break; - case 3209: -#line 17061 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("all"); } -#line 60034 "preproc.c" /* yacc.c:1652 */ + case 3209: /* DeallocateStmt: DEALLOCATE ALL */ +#line 17061 "preproc.y" + { (yyval.str) = mm_strdup("all"); } +#line 60699 "preproc.c" break; - case 3210: -#line 17062 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = mm_strdup("all"); } -#line 60040 "preproc.c" /* yacc.c:1652 */ + case 3210: /* DeallocateStmt: DEALLOCATE PREPARE ALL */ +#line 17062 "preproc.y" + { (yyval.str) = mm_strdup("all"); } +#line 60705 "preproc.c" break; - case 3211: -#line 17065 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 60046 "preproc.c" /* yacc.c:1652 */ + case 3211: /* Iresult: Iconst */ +#line 17065 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60711 "preproc.c" break; - case 3212: -#line 17066 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); } -#line 60052 "preproc.c" /* yacc.c:1652 */ + case 3212: /* Iresult: '(' Iresult ')' */ +#line 17066 "preproc.y" + { (yyval.str) = cat_str(3, mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); } +#line 60717 "preproc.c" break; - case 3213: -#line 17067 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("+"), (yyvsp[0].str)); } -#line 60058 "preproc.c" /* yacc.c:1652 */ + case 3213: /* Iresult: Iresult '+' Iresult */ +#line 17067 "preproc.y" + { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("+"), (yyvsp[0].str)); } +#line 60723 "preproc.c" break; - case 3214: -#line 17068 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("-"), (yyvsp[0].str)); } -#line 60064 "preproc.c" /* yacc.c:1652 */ + case 3214: /* Iresult: Iresult '-' Iresult */ +#line 17068 "preproc.y" + { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("-"), (yyvsp[0].str)); } +#line 60729 "preproc.c" break; - case 3215: -#line 17069 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("*"), (yyvsp[0].str)); } -#line 60070 "preproc.c" /* yacc.c:1652 */ + case 3215: /* Iresult: Iresult '*' Iresult */ +#line 17069 "preproc.y" + { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("*"), (yyvsp[0].str)); } +#line 60735 "preproc.c" break; - case 3216: -#line 17070 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("/"), (yyvsp[0].str)); } -#line 60076 "preproc.c" /* yacc.c:1652 */ + case 3216: /* Iresult: Iresult '/' Iresult */ +#line 17070 "preproc.y" + { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("/"), (yyvsp[0].str)); } +#line 60741 "preproc.c" break; - case 3217: -#line 17071 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("%"), (yyvsp[0].str)); } -#line 60082 "preproc.c" /* yacc.c:1652 */ + case 3217: /* Iresult: Iresult '%' Iresult */ +#line 17071 "preproc.y" + { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("%"), (yyvsp[0].str)); } +#line 60747 "preproc.c" break; - case 3218: -#line 17072 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 60088 "preproc.c" /* yacc.c:1652 */ + case 3218: /* Iresult: ecpg_sconst */ +#line 17072 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60753 "preproc.c" break; - case 3219: -#line 17073 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 60094 "preproc.c" /* yacc.c:1652 */ + case 3219: /* Iresult: ColId */ +#line 17073 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60759 "preproc.c" break; - case 3220: -#line 17074 "preproc.y" /* yacc.c:1652 */ - { if (pg_strcasecmp((yyvsp[-3].str), "sizeof") != 0) + case 3220: /* Iresult: ColId '(' var_type ')' */ +#line 17074 "preproc.y" + { if (pg_strcasecmp((yyvsp[-3].str), "sizeof") != 0) mmerror(PARSE_ERROR, ET_ERROR, "operator not allowed in variable definition"); else (yyval.str) = cat_str(4, (yyvsp[-3].str), mm_strdup("("), (yyvsp[-1].type).type_str, mm_strdup(")")); } -#line 60104 "preproc.c" /* yacc.c:1652 */ +#line 60769 "preproc.c" break; - case 3221: -#line 17081 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 60110 "preproc.c" /* yacc.c:1652 */ + case 3221: /* execute_rest: %empty */ +#line 17081 "preproc.y" + { (yyval.str) = EMPTY; } +#line 60775 "preproc.c" break; - case 3222: -#line 17082 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 60116 "preproc.c" /* yacc.c:1652 */ + case 3222: /* execute_rest: ecpg_using opt_ecpg_into */ +#line 17082 "preproc.y" + { (yyval.str) = EMPTY; } +#line 60781 "preproc.c" break; - case 3223: -#line 17083 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 60122 "preproc.c" /* yacc.c:1652 */ + case 3223: /* execute_rest: ecpg_into ecpg_using */ +#line 17083 "preproc.y" + { (yyval.str) = EMPTY; } +#line 60787 "preproc.c" break; - case 3224: -#line 17084 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 60128 "preproc.c" /* yacc.c:1652 */ + case 3224: /* execute_rest: ecpg_into */ +#line 17084 "preproc.y" + { (yyval.str) = EMPTY; } +#line 60793 "preproc.c" break; - case 3225: -#line 17087 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 60134 "preproc.c" /* yacc.c:1652 */ + case 3225: /* ecpg_into: INTO into_list */ +#line 17087 "preproc.y" + { (yyval.str) = EMPTY; } +#line 60799 "preproc.c" break; - case 3226: -#line 17088 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 60140 "preproc.c" /* yacc.c:1652 */ + case 3226: /* ecpg_into: into_descriptor */ +#line 17088 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60805 "preproc.c" break; - case 3227: -#line 17091 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 60146 "preproc.c" /* yacc.c:1652 */ + case 3227: /* opt_ecpg_into: %empty */ +#line 17091 "preproc.y" + { (yyval.str) = EMPTY; } +#line 60811 "preproc.c" break; - case 3228: -#line 17092 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 60152 "preproc.c" /* yacc.c:1652 */ + case 3228: /* opt_ecpg_into: ecpg_into */ +#line 17092 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60817 "preproc.c" break; - case 3229: -#line 17095 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 60158 "preproc.c" /* yacc.c:1652 */ + case 3229: /* ecpg_fetch_into: ecpg_into */ +#line 17095 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60823 "preproc.c" break; - case 3230: -#line 17097 "preproc.y" /* yacc.c:1652 */ - { + case 3230: /* ecpg_fetch_into: using_descriptor */ +#line 17097 "preproc.y" + { struct variable *var; var = argsinsert->variable; @@ -60167,23 +60832,24 @@ add_variable_to_head(&argsresult, var, &no_indicator); (yyval.str) = (yyvsp[0].str); } -#line 60171 "preproc.c" /* yacc.c:1652 */ +#line 60836 "preproc.c" break; - case 3231: -#line 17107 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = EMPTY; } -#line 60177 "preproc.c" /* yacc.c:1652 */ + case 3231: /* opt_ecpg_fetch_into: %empty */ +#line 17107 "preproc.y" + { (yyval.str) = EMPTY; } +#line 60842 "preproc.c" break; - case 3232: -#line 17108 "preproc.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 60183 "preproc.c" /* yacc.c:1652 */ + case 3232: /* opt_ecpg_fetch_into: ecpg_fetch_into */ +#line 17108 "preproc.y" + { (yyval.str) = (yyvsp[0].str); } +#line 60848 "preproc.c" break; -#line 60187 "preproc.c" /* yacc.c:1652 */ +#line 60852 "preproc.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -60197,11 +60863,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; @@ -60226,50 +60891,15 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } yyerror_range[1] = yylloc; - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -60318,13 +60948,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -60338,7 +60969,7 @@ yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - yystos[yystate], yyvsp, yylsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -60349,13 +60980,11 @@ YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; - /* Using YYLLOC is tempting, but would change the location of - the lookahead. YYLOC is available though. */ - YYLLOC_DEFAULT (yyloc, yyerror_range, 2); - *++yylsp = yyloc; + ++yylsp; + YYLLOC_DEFAULT (*yylsp, yyerror_range, 2); /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -60377,20 +61006,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -60407,20 +61036,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, yylsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 17111 "preproc.y" /* yacc.c:1918 */ + +#line 17111 "preproc.y" void base_yyerror(const char *error) diff -Nru postgresql-13-13.4/src/interfaces/ecpg/preproc/preproc.h postgresql-13-13.7/src/interfaces/ecpg/preproc/preproc.h --- postgresql-13-13.4/src/interfaces/ecpg/preproc/preproc.h 2021-08-09 21:03:34.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/ecpg/preproc/preproc.h 2022-05-09 21:29:48.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -31,8 +31,9 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ #ifndef YY_BASE_YY_PREPROC_H_INCLUDED # define YY_BASE_YY_PREPROC_H_INCLUDED @@ -44,562 +45,566 @@ extern int base_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - SQL_ALLOCATE = 258, - SQL_AUTOCOMMIT = 259, - SQL_BOOL = 260, - SQL_BREAK = 261, - SQL_CARDINALITY = 262, - SQL_CONNECT = 263, - SQL_COUNT = 264, - SQL_DATETIME_INTERVAL_CODE = 265, - SQL_DATETIME_INTERVAL_PRECISION = 266, - SQL_DESCRIBE = 267, - SQL_DESCRIPTOR = 268, - SQL_DISCONNECT = 269, - SQL_FOUND = 270, - SQL_FREE = 271, - SQL_GET = 272, - SQL_GO = 273, - SQL_GOTO = 274, - SQL_IDENTIFIED = 275, - SQL_INDICATOR = 276, - SQL_KEY_MEMBER = 277, - SQL_LENGTH = 278, - SQL_LONG = 279, - SQL_NULLABLE = 280, - SQL_OCTET_LENGTH = 281, - SQL_OPEN = 282, - SQL_OUTPUT = 283, - SQL_REFERENCE = 284, - SQL_RETURNED_LENGTH = 285, - SQL_RETURNED_OCTET_LENGTH = 286, - SQL_SCALE = 287, - SQL_SECTION = 288, - SQL_SHORT = 289, - SQL_SIGNED = 290, - SQL_SQLERROR = 291, - SQL_SQLPRINT = 292, - SQL_SQLWARNING = 293, - SQL_START = 294, - SQL_STOP = 295, - SQL_STRUCT = 296, - SQL_UNSIGNED = 297, - SQL_VAR = 298, - SQL_WHENEVER = 299, - S_ADD = 300, - S_AND = 301, - S_ANYTHING = 302, - S_AUTO = 303, - S_CONST = 304, - S_DEC = 305, - S_DIV = 306, - S_DOTPOINT = 307, - S_EQUAL = 308, - S_EXTERN = 309, - S_INC = 310, - S_LSHIFT = 311, - S_MEMPOINT = 312, - S_MEMBER = 313, - S_MOD = 314, - S_MUL = 315, - S_NEQUAL = 316, - S_OR = 317, - S_REGISTER = 318, - S_RSHIFT = 319, - S_STATIC = 320, - S_SUB = 321, - S_VOLATILE = 322, - S_TYPEDEF = 323, - CSTRING = 324, - CVARIABLE = 325, - CPP_LINE = 326, - IP = 327, - IDENT = 328, - UIDENT = 329, - FCONST = 330, - SCONST = 331, - USCONST = 332, - BCONST = 333, - XCONST = 334, - Op = 335, - ICONST = 336, - PARAM = 337, - TYPECAST = 338, - DOT_DOT = 339, - COLON_EQUALS = 340, - EQUALS_GREATER = 341, - LESS_EQUALS = 342, - GREATER_EQUALS = 343, - NOT_EQUALS = 344, - ABORT_P = 345, - ABSOLUTE_P = 346, - ACCESS = 347, - ACTION = 348, - ADD_P = 349, - ADMIN = 350, - AFTER = 351, - AGGREGATE = 352, - ALL = 353, - ALSO = 354, - ALTER = 355, - ALWAYS = 356, - ANALYSE = 357, - ANALYZE = 358, - AND = 359, - ANY = 360, - ARRAY = 361, - AS = 362, - ASC = 363, - ASSERTION = 364, - ASSIGNMENT = 365, - ASYMMETRIC = 366, - AT = 367, - ATTACH = 368, - ATTRIBUTE = 369, - AUTHORIZATION = 370, - BACKWARD = 371, - BEFORE = 372, - BEGIN_P = 373, - BETWEEN = 374, - BIGINT = 375, - BINARY = 376, - BIT = 377, - BOOLEAN_P = 378, - BOTH = 379, - BY = 380, - CACHE = 381, - CALL = 382, - CALLED = 383, - CASCADE = 384, - CASCADED = 385, - CASE = 386, - CAST = 387, - CATALOG_P = 388, - CHAIN = 389, - CHAR_P = 390, - CHARACTER = 391, - CHARACTERISTICS = 392, - CHECK = 393, - CHECKPOINT = 394, - CLASS = 395, - CLOSE = 396, - CLUSTER = 397, - COALESCE = 398, - COLLATE = 399, - COLLATION = 400, - COLUMN = 401, - COLUMNS = 402, - COMMENT = 403, - COMMENTS = 404, - COMMIT = 405, - COMMITTED = 406, - CONCURRENTLY = 407, - CONFIGURATION = 408, - CONFLICT = 409, - CONNECTION = 410, - CONSTRAINT = 411, - CONSTRAINTS = 412, - CONTENT_P = 413, - CONTINUE_P = 414, - CONVERSION_P = 415, - COPY = 416, - COST = 417, - CREATE = 418, - CROSS = 419, - CSV = 420, - CUBE = 421, - CURRENT_P = 422, - CURRENT_CATALOG = 423, - CURRENT_DATE = 424, - CURRENT_ROLE = 425, - CURRENT_SCHEMA = 426, - CURRENT_TIME = 427, - CURRENT_TIMESTAMP = 428, - CURRENT_USER = 429, - CURSOR = 430, - CYCLE = 431, - DATA_P = 432, - DATABASE = 433, - DAY_P = 434, - DEALLOCATE = 435, - DEC = 436, - DECIMAL_P = 437, - DECLARE = 438, - DEFAULT = 439, - DEFAULTS = 440, - DEFERRABLE = 441, - DEFERRED = 442, - DEFINER = 443, - DELETE_P = 444, - DELIMITER = 445, - DELIMITERS = 446, - DEPENDS = 447, - DESC = 448, - DETACH = 449, - DICTIONARY = 450, - DISABLE_P = 451, - DISCARD = 452, - DISTINCT = 453, - DO = 454, - DOCUMENT_P = 455, - DOMAIN_P = 456, - DOUBLE_P = 457, - DROP = 458, - EACH = 459, - ELSE = 460, - ENABLE_P = 461, - ENCODING = 462, - ENCRYPTED = 463, - END_P = 464, - ENUM_P = 465, - ESCAPE = 466, - EVENT = 467, - EXCEPT = 468, - EXCLUDE = 469, - EXCLUDING = 470, - EXCLUSIVE = 471, - EXECUTE = 472, - EXISTS = 473, - EXPLAIN = 474, - EXPRESSION = 475, - EXTENSION = 476, - EXTERNAL = 477, - EXTRACT = 478, - FALSE_P = 479, - FAMILY = 480, - FETCH = 481, - FILTER = 482, - FIRST_P = 483, - FLOAT_P = 484, - FOLLOWING = 485, - FOR = 486, - FORCE = 487, - FOREIGN = 488, - FORWARD = 489, - FREEZE = 490, - FROM = 491, - FULL = 492, - FUNCTION = 493, - FUNCTIONS = 494, - GENERATED = 495, - GLOBAL = 496, - GRANT = 497, - GRANTED = 498, - GREATEST = 499, - GROUP_P = 500, - GROUPING = 501, - GROUPS = 502, - HANDLER = 503, - HAVING = 504, - HEADER_P = 505, - HOLD = 506, - HOUR_P = 507, - IDENTITY_P = 508, - IF_P = 509, - ILIKE = 510, - IMMEDIATE = 511, - IMMUTABLE = 512, - IMPLICIT_P = 513, - IMPORT_P = 514, - IN_P = 515, - INCLUDE = 516, - INCLUDING = 517, - INCREMENT = 518, - INDEX = 519, - INDEXES = 520, - INHERIT = 521, - INHERITS = 522, - INITIALLY = 523, - INLINE_P = 524, - INNER_P = 525, - INOUT = 526, - INPUT_P = 527, - INSENSITIVE = 528, - INSERT = 529, - INSTEAD = 530, - INT_P = 531, - INTEGER = 532, - INTERSECT = 533, - INTERVAL = 534, - INTO = 535, - INVOKER = 536, - IS = 537, - ISNULL = 538, - ISOLATION = 539, - JOIN = 540, - KEY = 541, - LABEL = 542, - LANGUAGE = 543, - LARGE_P = 544, - LAST_P = 545, - LATERAL_P = 546, - LEADING = 547, - LEAKPROOF = 548, - LEAST = 549, - LEFT = 550, - LEVEL = 551, - LIKE = 552, - LIMIT = 553, - LISTEN = 554, - LOAD = 555, - LOCAL = 556, - LOCALTIME = 557, - LOCALTIMESTAMP = 558, - LOCATION = 559, - LOCK_P = 560, - LOCKED = 561, - LOGGED = 562, - MAPPING = 563, - MATCH = 564, - MATERIALIZED = 565, - MAXVALUE = 566, - METHOD = 567, - MINUTE_P = 568, - MINVALUE = 569, - MODE = 570, - MONTH_P = 571, - MOVE = 572, - NAME_P = 573, - NAMES = 574, - NATIONAL = 575, - NATURAL = 576, - NCHAR = 577, - NEW = 578, - NEXT = 579, - NFC = 580, - NFD = 581, - NFKC = 582, - NFKD = 583, - NO = 584, - NONE = 585, - NORMALIZE = 586, - NORMALIZED = 587, - NOT = 588, - NOTHING = 589, - NOTIFY = 590, - NOTNULL = 591, - NOWAIT = 592, - NULL_P = 593, - NULLIF = 594, - NULLS_P = 595, - NUMERIC = 596, - OBJECT_P = 597, - OF = 598, - OFF = 599, - OFFSET = 600, - OIDS = 601, - OLD = 602, - ON = 603, - ONLY = 604, - OPERATOR = 605, - OPTION = 606, - OPTIONS = 607, - OR = 608, - ORDER = 609, - ORDINALITY = 610, - OTHERS = 611, - OUT_P = 612, - OUTER_P = 613, - OVER = 614, - OVERLAPS = 615, - OVERLAY = 616, - OVERRIDING = 617, - OWNED = 618, - OWNER = 619, - PARALLEL = 620, - PARSER = 621, - PARTIAL = 622, - PARTITION = 623, - PASSING = 624, - PASSWORD = 625, - PLACING = 626, - PLANS = 627, - POLICY = 628, - POSITION = 629, - PRECEDING = 630, - PRECISION = 631, - PRESERVE = 632, - PREPARE = 633, - PREPARED = 634, - PRIMARY = 635, - PRIOR = 636, - PRIVILEGES = 637, - PROCEDURAL = 638, - PROCEDURE = 639, - PROCEDURES = 640, - PROGRAM = 641, - PUBLICATION = 642, - QUOTE = 643, - RANGE = 644, - READ = 645, - REAL = 646, - REASSIGN = 647, - RECHECK = 648, - RECURSIVE = 649, - REF = 650, - REFERENCES = 651, - REFERENCING = 652, - REFRESH = 653, - REINDEX = 654, - RELATIVE_P = 655, - RELEASE = 656, - RENAME = 657, - REPEATABLE = 658, - REPLACE = 659, - REPLICA = 660, - RESET = 661, - RESTART = 662, - RESTRICT = 663, - RETURNING = 664, - RETURNS = 665, - REVOKE = 666, - RIGHT = 667, - ROLE = 668, - ROLLBACK = 669, - ROLLUP = 670, - ROUTINE = 671, - ROUTINES = 672, - ROW = 673, - ROWS = 674, - RULE = 675, - SAVEPOINT = 676, - SCHEMA = 677, - SCHEMAS = 678, - SCROLL = 679, - SEARCH = 680, - SECOND_P = 681, - SECURITY = 682, - SELECT = 683, - SEQUENCE = 684, - SEQUENCES = 685, - SERIALIZABLE = 686, - SERVER = 687, - SESSION = 688, - SESSION_USER = 689, - SET = 690, - SETS = 691, - SETOF = 692, - SHARE = 693, - SHOW = 694, - SIMILAR = 695, - SIMPLE = 696, - SKIP = 697, - SMALLINT = 698, - SNAPSHOT = 699, - SOME = 700, - SQL_P = 701, - STABLE = 702, - STANDALONE_P = 703, - START = 704, - STATEMENT = 705, - STATISTICS = 706, - STDIN = 707, - STDOUT = 708, - STORAGE = 709, - STORED = 710, - STRICT_P = 711, - STRIP_P = 712, - SUBSCRIPTION = 713, - SUBSTRING = 714, - SUPPORT = 715, - SYMMETRIC = 716, - SYSID = 717, - SYSTEM_P = 718, - TABLE = 719, - TABLES = 720, - TABLESAMPLE = 721, - TABLESPACE = 722, - TEMP = 723, - TEMPLATE = 724, - TEMPORARY = 725, - TEXT_P = 726, - THEN = 727, - TIES = 728, - TIME = 729, - TIMESTAMP = 730, - TO = 731, - TRAILING = 732, - TRANSACTION = 733, - TRANSFORM = 734, - TREAT = 735, - TRIGGER = 736, - TRIM = 737, - TRUE_P = 738, - TRUNCATE = 739, - TRUSTED = 740, - TYPE_P = 741, - TYPES_P = 742, - UESCAPE = 743, - UNBOUNDED = 744, - UNCOMMITTED = 745, - UNENCRYPTED = 746, - UNION = 747, - UNIQUE = 748, - UNKNOWN = 749, - UNLISTEN = 750, - UNLOGGED = 751, - UNTIL = 752, - UPDATE = 753, - USER = 754, - USING = 755, - VACUUM = 756, - VALID = 757, - VALIDATE = 758, - VALIDATOR = 759, - VALUE_P = 760, - VALUES = 761, - VARCHAR = 762, - VARIADIC = 763, - VARYING = 764, - VERBOSE = 765, - VERSION_P = 766, - VIEW = 767, - VIEWS = 768, - VOLATILE = 769, - WHEN = 770, - WHERE = 771, - WHITESPACE_P = 772, - WINDOW = 773, - WITH = 774, - WITHIN = 775, - WITHOUT = 776, - WORK = 777, - WRAPPER = 778, - WRITE = 779, - XML_P = 780, - XMLATTRIBUTES = 781, - XMLCONCAT = 782, - XMLELEMENT = 783, - XMLEXISTS = 784, - XMLFOREST = 785, - XMLNAMESPACES = 786, - XMLPARSE = 787, - XMLPI = 788, - XMLROOT = 789, - XMLSERIALIZE = 790, - XMLTABLE = 791, - YEAR_P = 792, - YES_P = 793, - ZONE = 794, - NOT_LA = 795, - NULLS_LA = 796, - WITH_LA = 797, - POSTFIXOP = 798, - UMINUS = 799 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + SQL_ALLOCATE = 258, /* SQL_ALLOCATE */ + SQL_AUTOCOMMIT = 259, /* SQL_AUTOCOMMIT */ + SQL_BOOL = 260, /* SQL_BOOL */ + SQL_BREAK = 261, /* SQL_BREAK */ + SQL_CARDINALITY = 262, /* SQL_CARDINALITY */ + SQL_CONNECT = 263, /* SQL_CONNECT */ + SQL_COUNT = 264, /* SQL_COUNT */ + SQL_DATETIME_INTERVAL_CODE = 265, /* SQL_DATETIME_INTERVAL_CODE */ + SQL_DATETIME_INTERVAL_PRECISION = 266, /* SQL_DATETIME_INTERVAL_PRECISION */ + SQL_DESCRIBE = 267, /* SQL_DESCRIBE */ + SQL_DESCRIPTOR = 268, /* SQL_DESCRIPTOR */ + SQL_DISCONNECT = 269, /* SQL_DISCONNECT */ + SQL_FOUND = 270, /* SQL_FOUND */ + SQL_FREE = 271, /* SQL_FREE */ + SQL_GET = 272, /* SQL_GET */ + SQL_GO = 273, /* SQL_GO */ + SQL_GOTO = 274, /* SQL_GOTO */ + SQL_IDENTIFIED = 275, /* SQL_IDENTIFIED */ + SQL_INDICATOR = 276, /* SQL_INDICATOR */ + SQL_KEY_MEMBER = 277, /* SQL_KEY_MEMBER */ + SQL_LENGTH = 278, /* SQL_LENGTH */ + SQL_LONG = 279, /* SQL_LONG */ + SQL_NULLABLE = 280, /* SQL_NULLABLE */ + SQL_OCTET_LENGTH = 281, /* SQL_OCTET_LENGTH */ + SQL_OPEN = 282, /* SQL_OPEN */ + SQL_OUTPUT = 283, /* SQL_OUTPUT */ + SQL_REFERENCE = 284, /* SQL_REFERENCE */ + SQL_RETURNED_LENGTH = 285, /* SQL_RETURNED_LENGTH */ + SQL_RETURNED_OCTET_LENGTH = 286, /* SQL_RETURNED_OCTET_LENGTH */ + SQL_SCALE = 287, /* SQL_SCALE */ + SQL_SECTION = 288, /* SQL_SECTION */ + SQL_SHORT = 289, /* SQL_SHORT */ + SQL_SIGNED = 290, /* SQL_SIGNED */ + SQL_SQLERROR = 291, /* SQL_SQLERROR */ + SQL_SQLPRINT = 292, /* SQL_SQLPRINT */ + SQL_SQLWARNING = 293, /* SQL_SQLWARNING */ + SQL_START = 294, /* SQL_START */ + SQL_STOP = 295, /* SQL_STOP */ + SQL_STRUCT = 296, /* SQL_STRUCT */ + SQL_UNSIGNED = 297, /* SQL_UNSIGNED */ + SQL_VAR = 298, /* SQL_VAR */ + SQL_WHENEVER = 299, /* SQL_WHENEVER */ + S_ADD = 300, /* S_ADD */ + S_AND = 301, /* S_AND */ + S_ANYTHING = 302, /* S_ANYTHING */ + S_AUTO = 303, /* S_AUTO */ + S_CONST = 304, /* S_CONST */ + S_DEC = 305, /* S_DEC */ + S_DIV = 306, /* S_DIV */ + S_DOTPOINT = 307, /* S_DOTPOINT */ + S_EQUAL = 308, /* S_EQUAL */ + S_EXTERN = 309, /* S_EXTERN */ + S_INC = 310, /* S_INC */ + S_LSHIFT = 311, /* S_LSHIFT */ + S_MEMPOINT = 312, /* S_MEMPOINT */ + S_MEMBER = 313, /* S_MEMBER */ + S_MOD = 314, /* S_MOD */ + S_MUL = 315, /* S_MUL */ + S_NEQUAL = 316, /* S_NEQUAL */ + S_OR = 317, /* S_OR */ + S_REGISTER = 318, /* S_REGISTER */ + S_RSHIFT = 319, /* S_RSHIFT */ + S_STATIC = 320, /* S_STATIC */ + S_SUB = 321, /* S_SUB */ + S_VOLATILE = 322, /* S_VOLATILE */ + S_TYPEDEF = 323, /* S_TYPEDEF */ + CSTRING = 324, /* CSTRING */ + CVARIABLE = 325, /* CVARIABLE */ + CPP_LINE = 326, /* CPP_LINE */ + IP = 327, /* IP */ + IDENT = 328, /* IDENT */ + UIDENT = 329, /* UIDENT */ + FCONST = 330, /* FCONST */ + SCONST = 331, /* SCONST */ + USCONST = 332, /* USCONST */ + BCONST = 333, /* BCONST */ + XCONST = 334, /* XCONST */ + Op = 335, /* Op */ + ICONST = 336, /* ICONST */ + PARAM = 337, /* PARAM */ + TYPECAST = 338, /* TYPECAST */ + DOT_DOT = 339, /* DOT_DOT */ + COLON_EQUALS = 340, /* COLON_EQUALS */ + EQUALS_GREATER = 341, /* EQUALS_GREATER */ + LESS_EQUALS = 342, /* LESS_EQUALS */ + GREATER_EQUALS = 343, /* GREATER_EQUALS */ + NOT_EQUALS = 344, /* NOT_EQUALS */ + ABORT_P = 345, /* ABORT_P */ + ABSOLUTE_P = 346, /* ABSOLUTE_P */ + ACCESS = 347, /* ACCESS */ + ACTION = 348, /* ACTION */ + ADD_P = 349, /* ADD_P */ + ADMIN = 350, /* ADMIN */ + AFTER = 351, /* AFTER */ + AGGREGATE = 352, /* AGGREGATE */ + ALL = 353, /* ALL */ + ALSO = 354, /* ALSO */ + ALTER = 355, /* ALTER */ + ALWAYS = 356, /* ALWAYS */ + ANALYSE = 357, /* ANALYSE */ + ANALYZE = 358, /* ANALYZE */ + AND = 359, /* AND */ + ANY = 360, /* ANY */ + ARRAY = 361, /* ARRAY */ + AS = 362, /* AS */ + ASC = 363, /* ASC */ + ASSERTION = 364, /* ASSERTION */ + ASSIGNMENT = 365, /* ASSIGNMENT */ + ASYMMETRIC = 366, /* ASYMMETRIC */ + AT = 367, /* AT */ + ATTACH = 368, /* ATTACH */ + ATTRIBUTE = 369, /* ATTRIBUTE */ + AUTHORIZATION = 370, /* AUTHORIZATION */ + BACKWARD = 371, /* BACKWARD */ + BEFORE = 372, /* BEFORE */ + BEGIN_P = 373, /* BEGIN_P */ + BETWEEN = 374, /* BETWEEN */ + BIGINT = 375, /* BIGINT */ + BINARY = 376, /* BINARY */ + BIT = 377, /* BIT */ + BOOLEAN_P = 378, /* BOOLEAN_P */ + BOTH = 379, /* BOTH */ + BY = 380, /* BY */ + CACHE = 381, /* CACHE */ + CALL = 382, /* CALL */ + CALLED = 383, /* CALLED */ + CASCADE = 384, /* CASCADE */ + CASCADED = 385, /* CASCADED */ + CASE = 386, /* CASE */ + CAST = 387, /* CAST */ + CATALOG_P = 388, /* CATALOG_P */ + CHAIN = 389, /* CHAIN */ + CHAR_P = 390, /* CHAR_P */ + CHARACTER = 391, /* CHARACTER */ + CHARACTERISTICS = 392, /* CHARACTERISTICS */ + CHECK = 393, /* CHECK */ + CHECKPOINT = 394, /* CHECKPOINT */ + CLASS = 395, /* CLASS */ + CLOSE = 396, /* CLOSE */ + CLUSTER = 397, /* CLUSTER */ + COALESCE = 398, /* COALESCE */ + COLLATE = 399, /* COLLATE */ + COLLATION = 400, /* COLLATION */ + COLUMN = 401, /* COLUMN */ + COLUMNS = 402, /* COLUMNS */ + COMMENT = 403, /* COMMENT */ + COMMENTS = 404, /* COMMENTS */ + COMMIT = 405, /* COMMIT */ + COMMITTED = 406, /* COMMITTED */ + CONCURRENTLY = 407, /* CONCURRENTLY */ + CONFIGURATION = 408, /* CONFIGURATION */ + CONFLICT = 409, /* CONFLICT */ + CONNECTION = 410, /* CONNECTION */ + CONSTRAINT = 411, /* CONSTRAINT */ + CONSTRAINTS = 412, /* CONSTRAINTS */ + CONTENT_P = 413, /* CONTENT_P */ + CONTINUE_P = 414, /* CONTINUE_P */ + CONVERSION_P = 415, /* CONVERSION_P */ + COPY = 416, /* COPY */ + COST = 417, /* COST */ + CREATE = 418, /* CREATE */ + CROSS = 419, /* CROSS */ + CSV = 420, /* CSV */ + CUBE = 421, /* CUBE */ + CURRENT_P = 422, /* CURRENT_P */ + CURRENT_CATALOG = 423, /* CURRENT_CATALOG */ + CURRENT_DATE = 424, /* CURRENT_DATE */ + CURRENT_ROLE = 425, /* CURRENT_ROLE */ + CURRENT_SCHEMA = 426, /* CURRENT_SCHEMA */ + CURRENT_TIME = 427, /* CURRENT_TIME */ + CURRENT_TIMESTAMP = 428, /* CURRENT_TIMESTAMP */ + CURRENT_USER = 429, /* CURRENT_USER */ + CURSOR = 430, /* CURSOR */ + CYCLE = 431, /* CYCLE */ + DATA_P = 432, /* DATA_P */ + DATABASE = 433, /* DATABASE */ + DAY_P = 434, /* DAY_P */ + DEALLOCATE = 435, /* DEALLOCATE */ + DEC = 436, /* DEC */ + DECIMAL_P = 437, /* DECIMAL_P */ + DECLARE = 438, /* DECLARE */ + DEFAULT = 439, /* DEFAULT */ + DEFAULTS = 440, /* DEFAULTS */ + DEFERRABLE = 441, /* DEFERRABLE */ + DEFERRED = 442, /* DEFERRED */ + DEFINER = 443, /* DEFINER */ + DELETE_P = 444, /* DELETE_P */ + DELIMITER = 445, /* DELIMITER */ + DELIMITERS = 446, /* DELIMITERS */ + DEPENDS = 447, /* DEPENDS */ + DESC = 448, /* DESC */ + DETACH = 449, /* DETACH */ + DICTIONARY = 450, /* DICTIONARY */ + DISABLE_P = 451, /* DISABLE_P */ + DISCARD = 452, /* DISCARD */ + DISTINCT = 453, /* DISTINCT */ + DO = 454, /* DO */ + DOCUMENT_P = 455, /* DOCUMENT_P */ + DOMAIN_P = 456, /* DOMAIN_P */ + DOUBLE_P = 457, /* DOUBLE_P */ + DROP = 458, /* DROP */ + EACH = 459, /* EACH */ + ELSE = 460, /* ELSE */ + ENABLE_P = 461, /* ENABLE_P */ + ENCODING = 462, /* ENCODING */ + ENCRYPTED = 463, /* ENCRYPTED */ + END_P = 464, /* END_P */ + ENUM_P = 465, /* ENUM_P */ + ESCAPE = 466, /* ESCAPE */ + EVENT = 467, /* EVENT */ + EXCEPT = 468, /* EXCEPT */ + EXCLUDE = 469, /* EXCLUDE */ + EXCLUDING = 470, /* EXCLUDING */ + EXCLUSIVE = 471, /* EXCLUSIVE */ + EXECUTE = 472, /* EXECUTE */ + EXISTS = 473, /* EXISTS */ + EXPLAIN = 474, /* EXPLAIN */ + EXPRESSION = 475, /* EXPRESSION */ + EXTENSION = 476, /* EXTENSION */ + EXTERNAL = 477, /* EXTERNAL */ + EXTRACT = 478, /* EXTRACT */ + FALSE_P = 479, /* FALSE_P */ + FAMILY = 480, /* FAMILY */ + FETCH = 481, /* FETCH */ + FILTER = 482, /* FILTER */ + FIRST_P = 483, /* FIRST_P */ + FLOAT_P = 484, /* FLOAT_P */ + FOLLOWING = 485, /* FOLLOWING */ + FOR = 486, /* FOR */ + FORCE = 487, /* FORCE */ + FOREIGN = 488, /* FOREIGN */ + FORWARD = 489, /* FORWARD */ + FREEZE = 490, /* FREEZE */ + FROM = 491, /* FROM */ + FULL = 492, /* FULL */ + FUNCTION = 493, /* FUNCTION */ + FUNCTIONS = 494, /* FUNCTIONS */ + GENERATED = 495, /* GENERATED */ + GLOBAL = 496, /* GLOBAL */ + GRANT = 497, /* GRANT */ + GRANTED = 498, /* GRANTED */ + GREATEST = 499, /* GREATEST */ + GROUP_P = 500, /* GROUP_P */ + GROUPING = 501, /* GROUPING */ + GROUPS = 502, /* GROUPS */ + HANDLER = 503, /* HANDLER */ + HAVING = 504, /* HAVING */ + HEADER_P = 505, /* HEADER_P */ + HOLD = 506, /* HOLD */ + HOUR_P = 507, /* HOUR_P */ + IDENTITY_P = 508, /* IDENTITY_P */ + IF_P = 509, /* IF_P */ + ILIKE = 510, /* ILIKE */ + IMMEDIATE = 511, /* IMMEDIATE */ + IMMUTABLE = 512, /* IMMUTABLE */ + IMPLICIT_P = 513, /* IMPLICIT_P */ + IMPORT_P = 514, /* IMPORT_P */ + IN_P = 515, /* IN_P */ + INCLUDE = 516, /* INCLUDE */ + INCLUDING = 517, /* INCLUDING */ + INCREMENT = 518, /* INCREMENT */ + INDEX = 519, /* INDEX */ + INDEXES = 520, /* INDEXES */ + INHERIT = 521, /* INHERIT */ + INHERITS = 522, /* INHERITS */ + INITIALLY = 523, /* INITIALLY */ + INLINE_P = 524, /* INLINE_P */ + INNER_P = 525, /* INNER_P */ + INOUT = 526, /* INOUT */ + INPUT_P = 527, /* INPUT_P */ + INSENSITIVE = 528, /* INSENSITIVE */ + INSERT = 529, /* INSERT */ + INSTEAD = 530, /* INSTEAD */ + INT_P = 531, /* INT_P */ + INTEGER = 532, /* INTEGER */ + INTERSECT = 533, /* INTERSECT */ + INTERVAL = 534, /* INTERVAL */ + INTO = 535, /* INTO */ + INVOKER = 536, /* INVOKER */ + IS = 537, /* IS */ + ISNULL = 538, /* ISNULL */ + ISOLATION = 539, /* ISOLATION */ + JOIN = 540, /* JOIN */ + KEY = 541, /* KEY */ + LABEL = 542, /* LABEL */ + LANGUAGE = 543, /* LANGUAGE */ + LARGE_P = 544, /* LARGE_P */ + LAST_P = 545, /* LAST_P */ + LATERAL_P = 546, /* LATERAL_P */ + LEADING = 547, /* LEADING */ + LEAKPROOF = 548, /* LEAKPROOF */ + LEAST = 549, /* LEAST */ + LEFT = 550, /* LEFT */ + LEVEL = 551, /* LEVEL */ + LIKE = 552, /* LIKE */ + LIMIT = 553, /* LIMIT */ + LISTEN = 554, /* LISTEN */ + LOAD = 555, /* LOAD */ + LOCAL = 556, /* LOCAL */ + LOCALTIME = 557, /* LOCALTIME */ + LOCALTIMESTAMP = 558, /* LOCALTIMESTAMP */ + LOCATION = 559, /* LOCATION */ + LOCK_P = 560, /* LOCK_P */ + LOCKED = 561, /* LOCKED */ + LOGGED = 562, /* LOGGED */ + MAPPING = 563, /* MAPPING */ + MATCH = 564, /* MATCH */ + MATERIALIZED = 565, /* MATERIALIZED */ + MAXVALUE = 566, /* MAXVALUE */ + METHOD = 567, /* METHOD */ + MINUTE_P = 568, /* MINUTE_P */ + MINVALUE = 569, /* MINVALUE */ + MODE = 570, /* MODE */ + MONTH_P = 571, /* MONTH_P */ + MOVE = 572, /* MOVE */ + NAME_P = 573, /* NAME_P */ + NAMES = 574, /* NAMES */ + NATIONAL = 575, /* NATIONAL */ + NATURAL = 576, /* NATURAL */ + NCHAR = 577, /* NCHAR */ + NEW = 578, /* NEW */ + NEXT = 579, /* NEXT */ + NFC = 580, /* NFC */ + NFD = 581, /* NFD */ + NFKC = 582, /* NFKC */ + NFKD = 583, /* NFKD */ + NO = 584, /* NO */ + NONE = 585, /* NONE */ + NORMALIZE = 586, /* NORMALIZE */ + NORMALIZED = 587, /* NORMALIZED */ + NOT = 588, /* NOT */ + NOTHING = 589, /* NOTHING */ + NOTIFY = 590, /* NOTIFY */ + NOTNULL = 591, /* NOTNULL */ + NOWAIT = 592, /* NOWAIT */ + NULL_P = 593, /* NULL_P */ + NULLIF = 594, /* NULLIF */ + NULLS_P = 595, /* NULLS_P */ + NUMERIC = 596, /* NUMERIC */ + OBJECT_P = 597, /* OBJECT_P */ + OF = 598, /* OF */ + OFF = 599, /* OFF */ + OFFSET = 600, /* OFFSET */ + OIDS = 601, /* OIDS */ + OLD = 602, /* OLD */ + ON = 603, /* ON */ + ONLY = 604, /* ONLY */ + OPERATOR = 605, /* OPERATOR */ + OPTION = 606, /* OPTION */ + OPTIONS = 607, /* OPTIONS */ + OR = 608, /* OR */ + ORDER = 609, /* ORDER */ + ORDINALITY = 610, /* ORDINALITY */ + OTHERS = 611, /* OTHERS */ + OUT_P = 612, /* OUT_P */ + OUTER_P = 613, /* OUTER_P */ + OVER = 614, /* OVER */ + OVERLAPS = 615, /* OVERLAPS */ + OVERLAY = 616, /* OVERLAY */ + OVERRIDING = 617, /* OVERRIDING */ + OWNED = 618, /* OWNED */ + OWNER = 619, /* OWNER */ + PARALLEL = 620, /* PARALLEL */ + PARSER = 621, /* PARSER */ + PARTIAL = 622, /* PARTIAL */ + PARTITION = 623, /* PARTITION */ + PASSING = 624, /* PASSING */ + PASSWORD = 625, /* PASSWORD */ + PLACING = 626, /* PLACING */ + PLANS = 627, /* PLANS */ + POLICY = 628, /* POLICY */ + POSITION = 629, /* POSITION */ + PRECEDING = 630, /* PRECEDING */ + PRECISION = 631, /* PRECISION */ + PRESERVE = 632, /* PRESERVE */ + PREPARE = 633, /* PREPARE */ + PREPARED = 634, /* PREPARED */ + PRIMARY = 635, /* PRIMARY */ + PRIOR = 636, /* PRIOR */ + PRIVILEGES = 637, /* PRIVILEGES */ + PROCEDURAL = 638, /* PROCEDURAL */ + PROCEDURE = 639, /* PROCEDURE */ + PROCEDURES = 640, /* PROCEDURES */ + PROGRAM = 641, /* PROGRAM */ + PUBLICATION = 642, /* PUBLICATION */ + QUOTE = 643, /* QUOTE */ + RANGE = 644, /* RANGE */ + READ = 645, /* READ */ + REAL = 646, /* REAL */ + REASSIGN = 647, /* REASSIGN */ + RECHECK = 648, /* RECHECK */ + RECURSIVE = 649, /* RECURSIVE */ + REF = 650, /* REF */ + REFERENCES = 651, /* REFERENCES */ + REFERENCING = 652, /* REFERENCING */ + REFRESH = 653, /* REFRESH */ + REINDEX = 654, /* REINDEX */ + RELATIVE_P = 655, /* RELATIVE_P */ + RELEASE = 656, /* RELEASE */ + RENAME = 657, /* RENAME */ + REPEATABLE = 658, /* REPEATABLE */ + REPLACE = 659, /* REPLACE */ + REPLICA = 660, /* REPLICA */ + RESET = 661, /* RESET */ + RESTART = 662, /* RESTART */ + RESTRICT = 663, /* RESTRICT */ + RETURNING = 664, /* RETURNING */ + RETURNS = 665, /* RETURNS */ + REVOKE = 666, /* REVOKE */ + RIGHT = 667, /* RIGHT */ + ROLE = 668, /* ROLE */ + ROLLBACK = 669, /* ROLLBACK */ + ROLLUP = 670, /* ROLLUP */ + ROUTINE = 671, /* ROUTINE */ + ROUTINES = 672, /* ROUTINES */ + ROW = 673, /* ROW */ + ROWS = 674, /* ROWS */ + RULE = 675, /* RULE */ + SAVEPOINT = 676, /* SAVEPOINT */ + SCHEMA = 677, /* SCHEMA */ + SCHEMAS = 678, /* SCHEMAS */ + SCROLL = 679, /* SCROLL */ + SEARCH = 680, /* SEARCH */ + SECOND_P = 681, /* SECOND_P */ + SECURITY = 682, /* SECURITY */ + SELECT = 683, /* SELECT */ + SEQUENCE = 684, /* SEQUENCE */ + SEQUENCES = 685, /* SEQUENCES */ + SERIALIZABLE = 686, /* SERIALIZABLE */ + SERVER = 687, /* SERVER */ + SESSION = 688, /* SESSION */ + SESSION_USER = 689, /* SESSION_USER */ + SET = 690, /* SET */ + SETS = 691, /* SETS */ + SETOF = 692, /* SETOF */ + SHARE = 693, /* SHARE */ + SHOW = 694, /* SHOW */ + SIMILAR = 695, /* SIMILAR */ + SIMPLE = 696, /* SIMPLE */ + SKIP = 697, /* SKIP */ + SMALLINT = 698, /* SMALLINT */ + SNAPSHOT = 699, /* SNAPSHOT */ + SOME = 700, /* SOME */ + SQL_P = 701, /* SQL_P */ + STABLE = 702, /* STABLE */ + STANDALONE_P = 703, /* STANDALONE_P */ + START = 704, /* START */ + STATEMENT = 705, /* STATEMENT */ + STATISTICS = 706, /* STATISTICS */ + STDIN = 707, /* STDIN */ + STDOUT = 708, /* STDOUT */ + STORAGE = 709, /* STORAGE */ + STORED = 710, /* STORED */ + STRICT_P = 711, /* STRICT_P */ + STRIP_P = 712, /* STRIP_P */ + SUBSCRIPTION = 713, /* SUBSCRIPTION */ + SUBSTRING = 714, /* SUBSTRING */ + SUPPORT = 715, /* SUPPORT */ + SYMMETRIC = 716, /* SYMMETRIC */ + SYSID = 717, /* SYSID */ + SYSTEM_P = 718, /* SYSTEM_P */ + TABLE = 719, /* TABLE */ + TABLES = 720, /* TABLES */ + TABLESAMPLE = 721, /* TABLESAMPLE */ + TABLESPACE = 722, /* TABLESPACE */ + TEMP = 723, /* TEMP */ + TEMPLATE = 724, /* TEMPLATE */ + TEMPORARY = 725, /* TEMPORARY */ + TEXT_P = 726, /* TEXT_P */ + THEN = 727, /* THEN */ + TIES = 728, /* TIES */ + TIME = 729, /* TIME */ + TIMESTAMP = 730, /* TIMESTAMP */ + TO = 731, /* TO */ + TRAILING = 732, /* TRAILING */ + TRANSACTION = 733, /* TRANSACTION */ + TRANSFORM = 734, /* TRANSFORM */ + TREAT = 735, /* TREAT */ + TRIGGER = 736, /* TRIGGER */ + TRIM = 737, /* TRIM */ + TRUE_P = 738, /* TRUE_P */ + TRUNCATE = 739, /* TRUNCATE */ + TRUSTED = 740, /* TRUSTED */ + TYPE_P = 741, /* TYPE_P */ + TYPES_P = 742, /* TYPES_P */ + UESCAPE = 743, /* UESCAPE */ + UNBOUNDED = 744, /* UNBOUNDED */ + UNCOMMITTED = 745, /* UNCOMMITTED */ + UNENCRYPTED = 746, /* UNENCRYPTED */ + UNION = 747, /* UNION */ + UNIQUE = 748, /* UNIQUE */ + UNKNOWN = 749, /* UNKNOWN */ + UNLISTEN = 750, /* UNLISTEN */ + UNLOGGED = 751, /* UNLOGGED */ + UNTIL = 752, /* UNTIL */ + UPDATE = 753, /* UPDATE */ + USER = 754, /* USER */ + USING = 755, /* USING */ + VACUUM = 756, /* VACUUM */ + VALID = 757, /* VALID */ + VALIDATE = 758, /* VALIDATE */ + VALIDATOR = 759, /* VALIDATOR */ + VALUE_P = 760, /* VALUE_P */ + VALUES = 761, /* VALUES */ + VARCHAR = 762, /* VARCHAR */ + VARIADIC = 763, /* VARIADIC */ + VARYING = 764, /* VARYING */ + VERBOSE = 765, /* VERBOSE */ + VERSION_P = 766, /* VERSION_P */ + VIEW = 767, /* VIEW */ + VIEWS = 768, /* VIEWS */ + VOLATILE = 769, /* VOLATILE */ + WHEN = 770, /* WHEN */ + WHERE = 771, /* WHERE */ + WHITESPACE_P = 772, /* WHITESPACE_P */ + WINDOW = 773, /* WINDOW */ + WITH = 774, /* WITH */ + WITHIN = 775, /* WITHIN */ + WITHOUT = 776, /* WITHOUT */ + WORK = 777, /* WORK */ + WRAPPER = 778, /* WRAPPER */ + WRITE = 779, /* WRITE */ + XML_P = 780, /* XML_P */ + XMLATTRIBUTES = 781, /* XMLATTRIBUTES */ + XMLCONCAT = 782, /* XMLCONCAT */ + XMLELEMENT = 783, /* XMLELEMENT */ + XMLEXISTS = 784, /* XMLEXISTS */ + XMLFOREST = 785, /* XMLFOREST */ + XMLNAMESPACES = 786, /* XMLNAMESPACES */ + XMLPARSE = 787, /* XMLPARSE */ + XMLPI = 788, /* XMLPI */ + XMLROOT = 789, /* XMLROOT */ + XMLSERIALIZE = 790, /* XMLSERIALIZE */ + XMLTABLE = 791, /* XMLTABLE */ + YEAR_P = 792, /* YEAR_P */ + YES_P = 793, /* YES_P */ + ZONE = 794, /* ZONE */ + NOT_LA = 795, /* NOT_LA */ + NULLS_LA = 796, /* NULLS_LA */ + WITH_LA = 797, /* WITH_LA */ + POSTFIXOP = 798, /* POSTFIXOP */ + UMINUS = 799 /* UMINUS */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 586 "preproc.y" /* yacc.c:1921 */ +#line 586 "preproc.y" double dval; char *str; @@ -615,9 +620,9 @@ struct prep prep; struct exec exec; -#line 619 "preproc.h" /* yacc.c:1921 */ -}; +#line 624 "preproc.h" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 diff -Nru postgresql-13-13.4/src/interfaces/libpq/fe-connect.c postgresql-13-13.7/src/interfaces/libpq/fe-connect.c --- postgresql-13-13.4/src/interfaces/libpq/fe-connect.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/libpq/fe-connect.c 2022-05-09 21:16:30.000000000 +0000 @@ -1100,6 +1100,11 @@ { if (ch->host) free(ch->host); + + /* + * This bit selects the default host location. If you change + * this, see also pg_regress. + */ #ifdef HAVE_UNIX_SOCKETS if (DEFAULT_PGSOCKET_DIR[0]) { @@ -3076,6 +3081,19 @@ pollres = pqsecure_open_client(conn); if (pollres == PGRES_POLLING_OK) { + /* + * At this point we should have no data already buffered. + * If we do, it was received before we performed the SSL + * handshake, so it wasn't encrypted and indeed may have + * been injected by a man-in-the-middle. + */ + if (conn->inCursor != conn->inEnd) + { + appendPQExpBufferStr(&conn->errorMessage, + libpq_gettext("received unencrypted data after SSL response\n")); + goto error_return; + } + /* SSL handshake done, ready to send startup packet */ conn->status = CONNECTION_MADE; return PGRES_POLLING_WRITING; @@ -3175,6 +3193,19 @@ pollres = pqsecure_open_gss(conn); if (pollres == PGRES_POLLING_OK) { + /* + * At this point we should have no data already buffered. + * If we do, it was received before we performed the GSS + * handshake, so it wasn't encrypted and indeed may have + * been injected by a man-in-the-middle. + */ + if (conn->inCursor != conn->inEnd) + { + appendPQExpBufferStr(&conn->errorMessage, + libpq_gettext("received unencrypted data after GSSAPI encryption response\n")); + goto error_return; + } + /* All set for startup packet */ conn->status = CONNECTION_MADE; return PGRES_POLLING_WRITING; @@ -4347,7 +4378,6 @@ { int save_errno = SOCK_ERRNO; pgsocket tmpsock = PGINVALID_SOCKET; - char sebuf[PG_STRERROR_R_BUFLEN]; int maxlen; struct { @@ -4426,8 +4456,25 @@ maxlen = errbufsize - strlen(errbuf) - 2; if (maxlen >= 0) { - strncat(errbuf, SOCK_STRERROR(SOCK_ERRNO, sebuf, sizeof(sebuf)), - maxlen); + /* + * We can't invoke strerror here, since it's not signal-safe. Settle + * for printing the decimal value of errno. Even that has to be done + * the hard way. + */ + int val = SOCK_ERRNO; + char buf[32]; + char *bufp; + + bufp = buf + sizeof(buf) - 1; + *bufp = '\0'; + do + { + *(--bufp) = (val % 10) + '0'; + val /= 10; + } while (val > 0); + bufp -= 6; + memcpy(bufp, "error ", 6); + strncat(errbuf, bufp, maxlen); strcat(errbuf, "\n"); } if (tmpsock != PGINVALID_SOCKET) diff -Nru postgresql-13-13.4/src/interfaces/libpq/fe-exec.c postgresql-13-13.7/src/interfaces/libpq/fe-exec.c --- postgresql-13-13.4/src/interfaces/libpq/fe-exec.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/libpq/fe-exec.c 2022-05-09 21:16:30.000000000 +0000 @@ -1760,10 +1760,14 @@ parseInput(conn); /* - * PQgetResult will return immediately in all states except BUSY, or if we - * had a write failure. + * PQgetResult will return immediately in all states except BUSY. Also, + * if we've detected read EOF and dropped the connection, we can expect + * that PQgetResult will fail immediately. Note that we do *not* check + * conn->write_failed here --- once that's become set, we know we have + * trouble, but we need to keep trying to read until we have a complete + * server message or detect read EOF. */ - return conn->asyncStatus == PGASYNC_BUSY || conn->write_failed; + return conn->asyncStatus == PGASYNC_BUSY && conn->status != CONNECTION_BAD; } diff -Nru postgresql-13-13.4/src/interfaces/libpq/fe-misc.c postgresql-13-13.7/src/interfaces/libpq/fe-misc.c --- postgresql-13-13.4/src/interfaces/libpq/fe-misc.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/libpq/fe-misc.c 2022-05-09 21:16:30.000000000 +0000 @@ -1271,7 +1271,14 @@ static void libpq_binddomain(void) { - static bool already_bound = false; + /* + * If multiple threads come through here at about the same time, it's okay + * for more than one of them to call bindtextdomain(). But it's not okay + * for any of them to return to caller before bindtextdomain() is + * complete, so don't set the flag till that's done. Use "volatile" just + * to be sure the compiler doesn't try to get cute. + */ + static volatile bool already_bound = false; if (!already_bound) { @@ -1283,12 +1290,12 @@ #endif const char *ldir; - already_bound = true; /* No relocatable lookup here because the binary could be anywhere */ ldir = getenv("PGLOCALEDIR"); if (!ldir) ldir = LOCALEDIR; bindtextdomain(PG_TEXTDOMAIN("libpq"), ldir); + already_bound = true; #ifdef WIN32 SetLastError(save_errno); #else diff -Nru postgresql-13-13.4/src/interfaces/libpq/fe-secure-openssl.c postgresql-13-13.7/src/interfaces/libpq/fe-secure-openssl.c --- postgresql-13-13.4/src/interfaces/libpq/fe-secure-openssl.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/libpq/fe-secure-openssl.c 2022-05-09 21:16:30.000000000 +0000 @@ -1187,11 +1187,45 @@ fnbuf); return -1; } -#ifndef WIN32 - if (!S_ISREG(buf.st_mode) || buf.st_mode & (S_IRWXG | S_IRWXO)) + + /* Key file must be a regular file */ + if (!S_ISREG(buf.st_mode)) + { + printfPQExpBuffer(&conn->errorMessage, + libpq_gettext("private key file \"%s\" is not a regular file\n"), + fnbuf); + return -1; + } + + /* + * Refuse to load key files owned by users other than us or root, and + * require no public access to the key file. If the file is owned by + * us, require mode 0600 or less. If owned by root, require 0640 or + * less to allow read access through either our gid or a supplementary + * gid that allows us to read system-wide certificates. + * + * Note that similar checks are performed in + * src/backend/libpq/be-secure-common.c so any changes here may need + * to be made there as well. + * + * Ideally we would do similar permissions checks on Windows, but it + * is not clear how that would work since Unix-style permissions may + * not be available. + */ +#if !defined(WIN32) && !defined(__CYGWIN__) + if (buf.st_uid != geteuid() && buf.st_uid != 0) + { + printfPQExpBuffer(&conn->errorMessage, + libpq_gettext("private key file \"%s\" must be owned by the current user or root\n"), + fnbuf); + return -1; + } + + if ((buf.st_uid == geteuid() && buf.st_mode & (S_IRWXG | S_IRWXO)) || + (buf.st_uid == 0 && buf.st_mode & (S_IWGRP | S_IXGRP | S_IRWXO))) { printfPQExpBuffer(&conn->errorMessage, - libpq_gettext("private key file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n"), + libpq_gettext("private key file \"%s\" has group or world access; file must have permissions u=rw (0600) or less if owned by the current user, or permissions u=rw,g=r (0640) or less if owned by root\n"), fnbuf); return -1; } @@ -1607,7 +1641,7 @@ res = pqsecure_raw_write((PGconn *) BIO_get_data(h), buf, size); BIO_clear_retry_flags(h); - if (res <= 0) + if (res < 0) { /* If we were interrupted, tell caller to retry */ switch (SOCK_ERRNO) @@ -1642,6 +1676,7 @@ my_bio_index = BIO_get_new_index(); if (my_bio_index == -1) return NULL; + my_bio_index |= (BIO_TYPE_DESCRIPTOR | BIO_TYPE_SOURCE_SINK); my_bio_methods = BIO_meth_new(my_bio_index, "libpq socket"); if (!my_bio_methods) return NULL; diff -Nru postgresql-13-13.4/src/interfaces/libpq/po/de.po postgresql-13-13.7/src/interfaces/libpq/po/de.po --- postgresql-13-13.4/src/interfaces/libpq/po/de.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/libpq/po/de.po 2022-05-09 21:16:30.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-04-04 22:09+0000\n" +"POT-Creation-Date: 2022-04-05 07:23+0000\n" "PO-Revision-Date: 2021-04-05 10:43+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" @@ -50,14 +50,14 @@ #: fe-auth-scram.c:600 fe-auth-scram.c:626 fe-auth-scram.c:641 #: fe-auth-scram.c:691 fe-auth-scram.c:725 fe-auth.c:289 fe-auth.c:359 #: fe-auth.c:394 fe-auth.c:611 fe-auth.c:770 fe-auth.c:1129 fe-auth.c:1277 -#: fe-connect.c:892 fe-connect.c:1419 fe-connect.c:1595 fe-connect.c:2200 -#: fe-connect.c:2223 fe-connect.c:2957 fe-connect.c:4605 fe-connect.c:4861 -#: fe-connect.c:4980 fe-connect.c:5233 fe-connect.c:5313 fe-connect.c:5412 -#: fe-connect.c:5668 fe-connect.c:5697 fe-connect.c:5769 fe-connect.c:5793 -#: fe-connect.c:5811 fe-connect.c:5912 fe-connect.c:5921 fe-connect.c:6277 -#: fe-connect.c:6427 fe-exec.c:2747 fe-exec.c:3494 fe-exec.c:3659 -#: fe-gssapi-common.c:111 fe-lobj.c:895 fe-protocol2.c:1207 fe-protocol3.c:961 -#: fe-protocol3.c:1665 fe-secure-common.c:110 fe-secure-gssapi.c:504 +#: fe-connect.c:892 fe-connect.c:1424 fe-connect.c:1600 fe-connect.c:2205 +#: fe-connect.c:2228 fe-connect.c:2962 fe-connect.c:4652 fe-connect.c:4908 +#: fe-connect.c:5027 fe-connect.c:5280 fe-connect.c:5360 fe-connect.c:5459 +#: fe-connect.c:5715 fe-connect.c:5744 fe-connect.c:5816 fe-connect.c:5840 +#: fe-connect.c:5858 fe-connect.c:5959 fe-connect.c:5968 fe-connect.c:6324 +#: fe-connect.c:6474 fe-exec.c:2751 fe-exec.c:3498 fe-exec.c:3663 +#: fe-gssapi-common.c:112 fe-lobj.c:895 fe-protocol2.c:1207 fe-protocol3.c:963 +#: fe-protocol3.c:1667 fe-secure-common.c:110 fe-secure-gssapi.c:504 #: fe-secure-openssl.c:440 fe-secure-openssl.c:1091 msgid "out of memory\n" msgstr "Speicher aufgebraucht\n" @@ -108,7 +108,7 @@ msgid "GSSAPI continuation error" msgstr "GSSAPI-Fortsetzungsfehler" -#: fe-auth.c:158 fe-auth.c:388 fe-gssapi-common.c:98 fe-secure-common.c:98 +#: fe-auth.c:158 fe-auth.c:388 fe-gssapi-common.c:99 fe-secure-common.c:98 msgid "host name must be specified\n" msgstr "Hostname muss angegeben werden\n" @@ -208,12 +208,12 @@ msgid "user name lookup failure: error code %lu\n" msgstr "Fehler beim Nachschlagen des Benutzernamens: Fehlercode %lu\n" -#: fe-auth.c:1114 fe-connect.c:2834 +#: fe-auth.c:1114 fe-connect.c:2839 #, c-format msgid "could not look up local user ID %d: %s\n" msgstr "konnte lokale Benutzer-ID %d nicht nachschlagen: %s\n" -#: fe-auth.c:1119 fe-connect.c:2839 +#: fe-auth.c:1119 fe-connect.c:2844 #, c-format msgid "local user with ID %d does not exist\n" msgstr "lokaler Benutzer mit ID %d existiert nicht\n" @@ -236,61 +236,61 @@ msgid "could not match %d host names to %d hostaddr values\n" msgstr "fehlerhafte Angabe: %d Hostnamen und %d hostaddr-Angaben\n" -#: fe-connect.c:1156 +#: fe-connect.c:1161 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "fehlerhafte Angabe: %d Portnummern und %d Hosts\n" -#: fe-connect.c:1249 +#: fe-connect.c:1254 #, c-format msgid "invalid channel_binding value: \"%s\"\n" msgstr "ungültiger channel_binding-Wert: »%s«\n" -#: fe-connect.c:1275 +#: fe-connect.c:1280 #, c-format msgid "invalid sslmode value: \"%s\"\n" msgstr "ungültiger sslmode-Wert: »%s«\n" -#: fe-connect.c:1296 +#: fe-connect.c:1301 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "sslmode-Wert »%s« ist ungültig, wenn SSL-Unterstützung nicht einkompiliert worden ist\n" -#: fe-connect.c:1317 +#: fe-connect.c:1322 #, c-format msgid "invalid ssl_min_protocol_version value: \"%s\"\n" msgstr "ungültiger ssl_min_protocol_version-Wert: »%s«\n" -#: fe-connect.c:1325 +#: fe-connect.c:1330 #, c-format msgid "invalid ssl_max_protocol_version value: \"%s\"\n" msgstr "ungültiger ssl_max_protocol_version-Wert: »%s«\n" -#: fe-connect.c:1342 +#: fe-connect.c:1347 msgid "invalid SSL protocol version range\n" msgstr "ungültiges SSL-Protokollsintervall\n" -#: fe-connect.c:1357 +#: fe-connect.c:1362 #, c-format msgid "invalid gssencmode value: \"%s\"\n" msgstr "ungültiger gssencmode-Wert: »%s«\n" -#: fe-connect.c:1366 +#: fe-connect.c:1371 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "gssencmode-Wert »%s« ist ungültig, wenn GSSAPI-Unterstützung nicht einkompiliert worden ist\n" -#: fe-connect.c:1401 +#: fe-connect.c:1406 #, c-format msgid "invalid target_session_attrs value: \"%s\"\n" msgstr "ungültiger target_session_attrs-Wert: »%s«\n" -#: fe-connect.c:1619 +#: fe-connect.c:1624 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "konnte Socket nicht auf TCP »No Delay«-Modus umstellen: %s\n" -#: fe-connect.c:1680 +#: fe-connect.c:1685 #, c-format msgid "" "could not connect to server: %s\n" @@ -301,7 +301,7 @@ "\tLäuft der Server lokal und akzeptiert er Verbindungen\n" "\tauf dem Unix-Domain-Socket »%s«?\n" -#: fe-connect.c:1717 +#: fe-connect.c:1722 #, c-format msgid "" "could not connect to server: %s\n" @@ -312,7 +312,7 @@ "\tLäuft der Server auf dem Host »%s« (%s) und akzeptiert er\n" "\tTCP/IP-Verbindungen auf Port %s?\n" -#: fe-connect.c:1725 +#: fe-connect.c:1730 #, c-format msgid "" "could not connect to server: %s\n" @@ -323,326 +323,334 @@ "\tLäuft der Server auf dem Host »%s« und akzeptiert er\n" "\tTCP/IP-Verbindungen auf Port %s?\n" -#: fe-connect.c:1795 +#: fe-connect.c:1800 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "ungültiger Zahlenwert »%s« für Verbindungsoption »%s«\n" -#: fe-connect.c:1825 fe-connect.c:1859 fe-connect.c:1894 fe-connect.c:1981 -#: fe-connect.c:2623 +#: fe-connect.c:1830 fe-connect.c:1864 fe-connect.c:1899 fe-connect.c:1986 +#: fe-connect.c:2628 #, c-format msgid "setsockopt(%s) failed: %s\n" msgstr "setsockopt(%s) fehlgeschlagen: %s\n" -#: fe-connect.c:1947 +#: fe-connect.c:1952 #, c-format msgid "WSAIoctl(SIO_KEEPALIVE_VALS) failed: %ui\n" msgstr "WSAIoctl(SIO_KEEPALIVE_VALS) fehlgeschlagen: %ui\n" -#: fe-connect.c:2313 +#: fe-connect.c:2318 msgid "invalid connection state, probably indicative of memory corruption\n" msgstr "ungültiger Verbindungszustand, möglicherweise ein Speicherproblem\n" -#: fe-connect.c:2379 +#: fe-connect.c:2384 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "ungültige Portnummer: »%s«\n" -#: fe-connect.c:2395 +#: fe-connect.c:2400 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "konnte Hostnamen »%s« nicht in Adresse übersetzen: %s\n" -#: fe-connect.c:2408 +#: fe-connect.c:2413 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "konnte Netzwerkadresse »%s« nicht interpretieren: %s\n" -#: fe-connect.c:2421 +#: fe-connect.c:2426 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "Unix-Domain-Socket-Pfad »%s« ist zu lang (maximal %d Bytes)\n" -#: fe-connect.c:2436 +#: fe-connect.c:2441 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "konnte Unix-Domain-Socket-Pfad »%s« nicht in Adresse übersetzen: %s\n" -#: fe-connect.c:2560 +#: fe-connect.c:2565 #, c-format msgid "could not create socket: %s\n" msgstr "konnte Socket nicht erzeugen: %s\n" -#: fe-connect.c:2582 +#: fe-connect.c:2587 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "konnte Socket nicht auf nicht-blockierenden Modus umstellen: %s\n" -#: fe-connect.c:2592 +#: fe-connect.c:2597 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "konnte Socket nicht auf »Close on exec«-Modus umstellen: %s\n" -#: fe-connect.c:2610 +#: fe-connect.c:2615 msgid "keepalives parameter must be an integer\n" msgstr "Parameter »keepalives« muss eine ganze Zahl sein\n" -#: fe-connect.c:2750 +#: fe-connect.c:2755 #, c-format msgid "could not get socket error status: %s\n" msgstr "konnte Socket-Fehlerstatus nicht ermitteln: %s\n" -#: fe-connect.c:2778 +#: fe-connect.c:2783 #, c-format msgid "could not get client address from socket: %s\n" msgstr "konnte Client-Adresse vom Socket nicht ermitteln: %s\n" -#: fe-connect.c:2820 +#: fe-connect.c:2825 msgid "requirepeer parameter is not supported on this platform\n" msgstr "Parameter »requirepeer« wird auf dieser Plattform nicht unterstützt\n" -#: fe-connect.c:2823 +#: fe-connect.c:2828 #, c-format msgid "could not get peer credentials: %s\n" msgstr "konnte Credentials von Gegenstelle nicht ermitteln: %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2852 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "requirepeer gibt »%s« an, aber tatsächlicher Benutzername der Gegenstelle ist »%s«\n" -#: fe-connect.c:2887 +#: fe-connect.c:2892 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "konnte Paket zur GSSAPI-Verhandlung nicht senden: %s\n" -#: fe-connect.c:2899 +#: fe-connect.c:2904 msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)\n" msgstr "GSSAPI-Verschlüsselung war gefordert aber war nicht möglich (möglicherweise kein Credential-Cache, keine Serverunterstützung oder lokales Socket wird verwendet)\n" -#: fe-connect.c:2931 +#: fe-connect.c:2936 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "konnte Paket zur SSL-Verhandlung nicht senden: %s\n" -#: fe-connect.c:2970 +#: fe-connect.c:2975 #, c-format msgid "could not send startup packet: %s\n" msgstr "konnte Startpaket nicht senden: %s\n" -#: fe-connect.c:3040 +#: fe-connect.c:3045 msgid "server does not support SSL, but SSL was required\n" msgstr "Server unterstützt kein SSL, aber SSL wurde verlangt\n" -#: fe-connect.c:3067 +#: fe-connect.c:3072 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "ungültige Antwort auf SSL-Verhandlungspaket empfangen: %c\n" -#: fe-connect.c:3156 +#: fe-connect.c:3093 +msgid "received unencrypted data after SSL response\n" +msgstr "unverschlüsselte Daten nach SSL-Antwort empfangen\n" + +#: fe-connect.c:3174 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "Server unterstützt keine GSSAPI-Verschlüsselung, sie wurde aber verlangt\n" -#: fe-connect.c:3168 +#: fe-connect.c:3186 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "ungültige Antwort auf GSSAPI-Verhandlungspaket empfangen: %c\n" -#: fe-connect.c:3234 fe-connect.c:3265 +#: fe-connect.c:3205 +msgid "received unencrypted data after GSSAPI encryption response\n" +msgstr "unverschlüsselte Daten nach GSSAPI-Verschlüsselungsantwort empfangen\n" + +#: fe-connect.c:3265 fe-connect.c:3296 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "Authentifizierungsanfrage wurde vom Server erwartet, aber %c wurde empfangen\n" -#: fe-connect.c:3506 +#: fe-connect.c:3537 msgid "unexpected message from server during startup\n" msgstr "unerwartete Nachricht vom Server beim Start\n" -#: fe-connect.c:3711 +#: fe-connect.c:3742 #, c-format msgid "could not make a writable connection to server \"%s:%s\"\n" msgstr "konnte keine schreibbare Verbindung zum Server »%s:%s« aufbauen\n" -#: fe-connect.c:3757 +#: fe-connect.c:3788 #, c-format msgid "test \"SHOW transaction_read_only\" failed on server \"%s:%s\"\n" msgstr "Test »SHOW transaction_read_only« fehlgeschlagen auf Server »%s:%s«\n" -#: fe-connect.c:3772 +#: fe-connect.c:3803 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" msgstr "ungültiger Verbindungszustand %d, möglicherweise ein Speicherproblem\n" -#: fe-connect.c:4211 fe-connect.c:4271 +#: fe-connect.c:4242 fe-connect.c:4302 #, c-format msgid "PGEventProc \"%s\" failed during PGEVT_CONNRESET event\n" msgstr "PGEventProc »%s« während PGEVT_CONNRESET-Ereignis fehlgeschlagen\n" -#: fe-connect.c:4618 +#: fe-connect.c:4665 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "ungültige LDAP-URL »%s«: Schema muss ldap:// sein\n" -#: fe-connect.c:4633 +#: fe-connect.c:4680 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "ungültige LDAP-URL »%s«: Distinguished Name fehlt\n" -#: fe-connect.c:4645 fe-connect.c:4700 +#: fe-connect.c:4692 fe-connect.c:4747 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "ungültige LDAP-URL »%s«: muss genau ein Attribut haben\n" -#: fe-connect.c:4656 fe-connect.c:4715 +#: fe-connect.c:4703 fe-connect.c:4762 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" msgstr "ungültige LDAP-URL »%s«: Suchbereich fehlt (base/one/sub)\n" -#: fe-connect.c:4667 +#: fe-connect.c:4714 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "ungültige LDAP-URL »%s«: kein Filter\n" -#: fe-connect.c:4688 +#: fe-connect.c:4735 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "ungültige LDAP-URL »%s«: ungültige Portnummer\n" -#: fe-connect.c:4724 +#: fe-connect.c:4771 msgid "could not create LDAP structure\n" msgstr "konnte LDAP-Struktur nicht erzeugen\n" -#: fe-connect.c:4800 +#: fe-connect.c:4847 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "Suche auf LDAP-Server fehlgeschlagen: %s\n" -#: fe-connect.c:4811 +#: fe-connect.c:4858 msgid "more than one entry found on LDAP lookup\n" msgstr "LDAP-Suche ergab mehr als einen Eintrag\n" -#: fe-connect.c:4812 fe-connect.c:4824 +#: fe-connect.c:4859 fe-connect.c:4871 msgid "no entry found on LDAP lookup\n" msgstr "kein Eintrag gefunden bei LDAP-Suche\n" -#: fe-connect.c:4835 fe-connect.c:4848 +#: fe-connect.c:4882 fe-connect.c:4895 msgid "attribute has no values on LDAP lookup\n" msgstr "Attribut hat keine Werte bei LDAP-Suche\n" -#: fe-connect.c:4900 fe-connect.c:4919 fe-connect.c:5451 +#: fe-connect.c:4947 fe-connect.c:4966 fe-connect.c:5498 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" msgstr "fehlendes »=« nach »%s« in der Zeichenkette der Verbindungsdaten\n" -#: fe-connect.c:4992 fe-connect.c:5636 fe-connect.c:6410 +#: fe-connect.c:5039 fe-connect.c:5683 fe-connect.c:6457 #, c-format msgid "invalid connection option \"%s\"\n" msgstr "ungültige Verbindungsoption »%s«\n" -#: fe-connect.c:5008 fe-connect.c:5500 +#: fe-connect.c:5055 fe-connect.c:5547 msgid "unterminated quoted string in connection info string\n" msgstr "fehlendes schließendes Anführungszeichen (\") in der Zeichenkette der Verbindungsdaten\n" -#: fe-connect.c:5091 +#: fe-connect.c:5138 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "Definition von Service »%s« nicht gefunden\n" -#: fe-connect.c:5114 +#: fe-connect.c:5161 #, c-format msgid "service file \"%s\" not found\n" msgstr "Servicedatei »%s« nicht gefunden\n" -#: fe-connect.c:5129 +#: fe-connect.c:5176 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "Zeile %d zu lang in Servicedatei »%s«\n" -#: fe-connect.c:5201 fe-connect.c:5245 +#: fe-connect.c:5248 fe-connect.c:5292 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "Syntaxfehler in Servicedatei »%s«, Zeile %d\n" -#: fe-connect.c:5212 +#: fe-connect.c:5259 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d\n" msgstr "geschachtelte »service«-Definitionen werden nicht unterstützt in Servicedatei »%s«, Zeile %d\n" -#: fe-connect.c:5932 +#: fe-connect.c:5979 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "ungültige URI an interne Parserroutine weitergeleitet: »%s«\n" -#: fe-connect.c:6009 +#: fe-connect.c:6056 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"\n" msgstr "Ende der Eingabezeichenkette gefunden beim Suchen nach passendem »]« in IPv6-Hostadresse in URI: »%s«\n" -#: fe-connect.c:6016 +#: fe-connect.c:6063 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "IPv6-Hostadresse darf nicht leer sein in URI: »%s«\n" -#: fe-connect.c:6031 +#: fe-connect.c:6078 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n" msgstr "unerwartetes Zeichen »%c« an Position %d in URI (»:« oder »/« erwartet): »%s«\n" -#: fe-connect.c:6160 +#: fe-connect.c:6207 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "zusätzliches Schlüssel/Wert-Trennzeichen »=« in URI-Query-Parameter: »%s«\n" -#: fe-connect.c:6180 +#: fe-connect.c:6227 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "fehlendes Schlüssel/Wert-Trennzeichen »=« in URI-Query-Parameter: »%s«\n" -#: fe-connect.c:6231 +#: fe-connect.c:6278 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "ungültiger URI-Query-Parameter: »%s«\n" -#: fe-connect.c:6305 +#: fe-connect.c:6352 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "ungültiges Prozent-kodiertes Token: »%s«\n" -#: fe-connect.c:6315 +#: fe-connect.c:6362 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "verbotener Wert %%00 in Prozent-kodiertem Wert: »%s«\n" -#: fe-connect.c:6678 +#: fe-connect.c:6725 msgid "connection pointer is NULL\n" msgstr "Verbindung ist ein NULL-Zeiger\n" -#: fe-connect.c:6974 +#: fe-connect.c:7021 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "WARNUNG: Passwortdatei »%s« ist keine normale Datei\n" -#: fe-connect.c:6983 +#: fe-connect.c:7030 #, c-format msgid "WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" msgstr "WARNUNG: Passwortdatei »%s« erlaubt Lesezugriff für Gruppe oder Andere; Rechte sollten u=rw (0600) oder weniger sein\n" -#: fe-connect.c:7091 +#: fe-connect.c:7138 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "Passwort wurde aus Datei »%s« gelesen\n" -#: fe-exec.c:444 fe-exec.c:2821 +#: fe-exec.c:444 fe-exec.c:2825 #, c-format msgid "row number %d is out of range 0..%d" msgstr "Zeilennummer %d ist außerhalb des zulässigen Bereichs 0..%d" #: fe-exec.c:505 fe-protocol2.c:497 fe-protocol2.c:532 fe-protocol2.c:1050 -#: fe-protocol3.c:206 fe-protocol3.c:233 fe-protocol3.c:250 fe-protocol3.c:328 -#: fe-protocol3.c:692 fe-protocol3.c:920 +#: fe-protocol3.c:208 fe-protocol3.c:235 fe-protocol3.c:252 fe-protocol3.c:330 +#: fe-protocol3.c:694 fe-protocol3.c:922 msgid "out of memory" msgstr "Speicher aufgebraucht" -#: fe-exec.c:506 fe-protocol2.c:1396 fe-protocol3.c:1873 +#: fe-exec.c:506 fe-protocol2.c:1396 fe-protocol3.c:1875 #, c-format msgid "%s" msgstr "%s" @@ -675,7 +683,7 @@ msgid "statement name is a null pointer\n" msgstr "Anweisungsname ist ein NULL-Zeiger\n" -#: fe-exec.c:1361 fe-exec.c:1524 fe-exec.c:2233 fe-exec.c:2435 +#: fe-exec.c:1361 fe-exec.c:1524 fe-exec.c:2237 fe-exec.c:2439 msgid "function requires at least protocol version 3.0\n" msgstr "Funktion erfordert mindestens Protokollversion 3.0\n" @@ -691,69 +699,69 @@ msgid "length must be given for binary parameter\n" msgstr "für binäre Parameter muss eine Länge angegeben werden\n" -#: fe-exec.c:1863 +#: fe-exec.c:1867 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "unerwarteter asyncStatus: %d\n" -#: fe-exec.c:1883 +#: fe-exec.c:1887 #, c-format msgid "PGEventProc \"%s\" failed during PGEVT_RESULTCREATE event\n" msgstr "PGEventProc »%s« während PGEVT_RESULTCREATE-Ereignis fehlgeschlagen\n" -#: fe-exec.c:2043 +#: fe-exec.c:2047 msgid "COPY terminated by new PQexec" msgstr "COPY von neuem PQexec beendet" -#: fe-exec.c:2051 +#: fe-exec.c:2055 msgid "COPY IN state must be terminated first\n" msgstr "COPY-IN-Zustand muss erst beendet werden\n" -#: fe-exec.c:2071 +#: fe-exec.c:2075 msgid "COPY OUT state must be terminated first\n" msgstr "COPY-OUT-Zustand muss erst beendet werden\n" -#: fe-exec.c:2079 +#: fe-exec.c:2083 msgid "PQexec not allowed during COPY BOTH\n" msgstr "PQexec ist während COPY BOTH nicht erlaubt\n" -#: fe-exec.c:2325 fe-exec.c:2392 fe-exec.c:2482 fe-protocol2.c:1353 -#: fe-protocol3.c:1804 +#: fe-exec.c:2329 fe-exec.c:2396 fe-exec.c:2486 fe-protocol2.c:1353 +#: fe-protocol3.c:1806 msgid "no COPY in progress\n" msgstr "keine COPY in Ausführung\n" -#: fe-exec.c:2672 +#: fe-exec.c:2676 msgid "connection in wrong state\n" msgstr "Verbindung im falschen Zustand\n" -#: fe-exec.c:2703 +#: fe-exec.c:2707 msgid "invalid ExecStatusType code" msgstr "ungültiger ExecStatusType-Kode" -#: fe-exec.c:2730 +#: fe-exec.c:2734 msgid "PGresult is not an error result\n" msgstr "PGresult ist kein Fehlerresultat\n" -#: fe-exec.c:2805 fe-exec.c:2828 +#: fe-exec.c:2809 fe-exec.c:2832 #, c-format msgid "column number %d is out of range 0..%d" msgstr "Spaltennummer %d ist außerhalb des zulässigen Bereichs 0..%d" -#: fe-exec.c:2843 +#: fe-exec.c:2847 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "Parameternummer %d ist außerhalb des zulässigen Bereichs 0..%d" -#: fe-exec.c:3153 +#: fe-exec.c:3157 #, c-format msgid "could not interpret result from server: %s" msgstr "konnte Ergebnis vom Server nicht interpretieren: %s" -#: fe-exec.c:3392 fe-exec.c:3476 +#: fe-exec.c:3396 fe-exec.c:3480 msgid "incomplete multibyte character\n" msgstr "unvollständiges Mehrbyte-Zeichen\n" -#: fe-gssapi-common.c:124 +#: fe-gssapi-common.c:125 msgid "GSSAPI name import error" msgstr "GSSAPI-Namensimportfehler" @@ -888,7 +896,7 @@ msgid "invalid state %c, probably indicative of memory corruption\n" msgstr "ungültiger Zustand %c, möglicherweise ein Speicherproblem\n" -#: fe-protocol2.c:473 fe-protocol3.c:183 +#: fe-protocol2.c:473 fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "Nachricht vom Typ 0x%02x kam vom Server im Ruhezustand" @@ -908,12 +916,12 @@ msgid "server sent binary data (\"B\" message) without prior row description (\"T\" message)" msgstr "Server sendete binäre Daten (»B«-Nachricht) ohne vorherige Zeilenbeschreibung (»T«-Nachricht)" -#: fe-protocol2.c:626 fe-protocol3.c:403 +#: fe-protocol2.c:626 fe-protocol3.c:405 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "unerwartete Antwort vom Server; erstes empfangenes Zeichen war »%c«\n" -#: fe-protocol2.c:755 fe-protocol2.c:930 fe-protocol3.c:603 fe-protocol3.c:809 +#: fe-protocol2.c:755 fe-protocol2.c:930 fe-protocol3.c:605 fe-protocol3.c:811 msgid "out of memory for query result" msgstr "Speicher für Anfrageergebnis aufgebraucht" @@ -922,116 +930,116 @@ msgid "lost synchronization with server, resetting connection" msgstr "Synchronisation mit Server verloren, Verbindung wird zurückgesetzt" -#: fe-protocol2.c:1530 fe-protocol2.c:1562 fe-protocol3.c:2061 +#: fe-protocol2.c:1530 fe-protocol2.c:1562 fe-protocol3.c:2063 #, c-format msgid "protocol error: id=0x%x\n" msgstr "Protokollfehler: id=0x%x\n" -#: fe-protocol3.c:360 +#: fe-protocol3.c:362 msgid "server sent data (\"D\" message) without prior row description (\"T\" message)\n" msgstr "Server sendete Daten (»D«-Nachricht) ohne vorherige Zeilenbeschreibung (»T«-Nachricht)\n" -#: fe-protocol3.c:424 +#: fe-protocol3.c:426 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "Nachrichteninhalt stimmt nicht mit Länge in Nachrichtentyp »%c« überein\n" -#: fe-protocol3.c:444 +#: fe-protocol3.c:446 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "Synchronisation mit Server verloren: Nachrichtentyp »%c« empfangen, Länge %d\n" -#: fe-protocol3.c:494 fe-protocol3.c:534 +#: fe-protocol3.c:496 fe-protocol3.c:536 msgid "insufficient data in \"T\" message" msgstr "nicht genug Daten in »T«-Nachricht" -#: fe-protocol3.c:672 +#: fe-protocol3.c:674 msgid "insufficient data in \"t\" message" msgstr "nicht genug Daten in »t«-Nachricht" -#: fe-protocol3.c:731 fe-protocol3.c:763 fe-protocol3.c:781 +#: fe-protocol3.c:733 fe-protocol3.c:765 fe-protocol3.c:783 msgid "insufficient data in \"D\" message" msgstr "nicht genug Daten in »D«-Nachricht" -#: fe-protocol3.c:737 +#: fe-protocol3.c:739 msgid "unexpected field count in \"D\" message" msgstr "unerwartete Feldzahl in »D«-Nachricht" -#: fe-protocol3.c:974 +#: fe-protocol3.c:976 msgid "no error message available\n" msgstr "keine Fehlermeldung verfügbar\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1022 fe-protocol3.c:1041 +#: fe-protocol3.c:1024 fe-protocol3.c:1043 #, c-format msgid " at character %s" msgstr " bei Zeichen %s" -#: fe-protocol3.c:1054 +#: fe-protocol3.c:1056 #, c-format msgid "DETAIL: %s\n" msgstr "DETAIL: %s\n" -#: fe-protocol3.c:1057 +#: fe-protocol3.c:1059 #, c-format msgid "HINT: %s\n" msgstr "TIP: %s\n" -#: fe-protocol3.c:1060 +#: fe-protocol3.c:1062 #, c-format msgid "QUERY: %s\n" msgstr "ANFRAGE: %s\n" -#: fe-protocol3.c:1067 +#: fe-protocol3.c:1069 #, c-format msgid "CONTEXT: %s\n" msgstr "KONTEXT: %s\n" -#: fe-protocol3.c:1076 +#: fe-protocol3.c:1078 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "SCHEMANAME: %s\n" -#: fe-protocol3.c:1080 +#: fe-protocol3.c:1082 #, c-format msgid "TABLE NAME: %s\n" msgstr "TABELLENNAME: %s\n" -#: fe-protocol3.c:1084 +#: fe-protocol3.c:1086 #, c-format msgid "COLUMN NAME: %s\n" msgstr "SPALTENNAME: %s\n" -#: fe-protocol3.c:1088 +#: fe-protocol3.c:1090 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "DATENTYPNAME: %s\n" -#: fe-protocol3.c:1092 +#: fe-protocol3.c:1094 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "CONSTRAINT-NAME: %s\n" -#: fe-protocol3.c:1104 +#: fe-protocol3.c:1106 msgid "LOCATION: " msgstr "ORT: " -#: fe-protocol3.c:1106 +#: fe-protocol3.c:1108 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1108 +#: fe-protocol3.c:1110 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1303 +#: fe-protocol3.c:1305 #, c-format msgid "LINE %d: " msgstr "ZEILE %d: " -#: fe-protocol3.c:1698 +#: fe-protocol3.c:1700 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline: Text COPY OUT nicht ausgeführt\n" @@ -1090,16 +1098,16 @@ msgid "GSSAPI context establishment error" msgstr "GSSAPI-Fehler beim Einrichten des Kontexts" -#: fe-secure-openssl.c:214 fe-secure-openssl.c:321 fe-secure-openssl.c:1291 +#: fe-secure-openssl.c:214 fe-secure-openssl.c:321 fe-secure-openssl.c:1325 #, c-format msgid "SSL SYSCALL error: %s\n" msgstr "SSL-SYSCALL-Fehler: %s\n" -#: fe-secure-openssl.c:221 fe-secure-openssl.c:328 fe-secure-openssl.c:1295 +#: fe-secure-openssl.c:221 fe-secure-openssl.c:328 fe-secure-openssl.c:1329 msgid "SSL SYSCALL error: EOF detected\n" msgstr "SSL-SYSCALL-Fehler: Dateiende entdeckt\n" -#: fe-secure-openssl.c:232 fe-secure-openssl.c:339 fe-secure-openssl.c:1304 +#: fe-secure-openssl.c:232 fe-secure-openssl.c:339 fe-secure-openssl.c:1338 #, c-format msgid "SSL error: %s\n" msgstr "SSL-Fehler: %s\n" @@ -1108,7 +1116,7 @@ msgid "SSL connection has been closed unexpectedly\n" msgstr "SSL-Verbindung wurde unerwartet geschlossen\n" -#: fe-secure-openssl.c:253 fe-secure-openssl.c:360 fe-secure-openssl.c:1354 +#: fe-secure-openssl.c:253 fe-secure-openssl.c:360 fe-secure-openssl.c:1388 #, c-format msgid "unrecognized SSL error code: %d\n" msgstr "unbekannter SSL-Fehlercode: %d\n" @@ -1217,42 +1225,52 @@ msgid "certificate present, but not private key file \"%s\"\n" msgstr "Zertifikat vorhanden, aber keine private Schlüsseldatei »%s«\n" -#: fe-secure-openssl.c:1194 +#: fe-secure-openssl.c:1195 #, c-format -msgid "private key file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" -msgstr "WARNUNG: private Schlüsseldatei »%s« erlaubt Lesezugriff für Gruppe oder Andere; Rechte sollten u=rw (0600) oder weniger sein\n" +msgid "private key file \"%s\" is not a regular file\n" +msgstr "private Schlüsseldatei »%s« ist keine normale Datei\n" #: fe-secure-openssl.c:1219 #, c-format +msgid "private key file \"%s\" must be owned by the current user or root\n" +msgstr "private Schlüsseldatei »%s« muss als Eigentümer den aktuellen Benutzer oder »root« haben\n" + +#: fe-secure-openssl.c:1228 +#, c-format +msgid "private key file \"%s\" has group or world access; file must have permissions u=rw (0600) or less if owned by the current user, or permissions u=rw,g=r (0640) or less if owned by root\n" +msgstr "private Schlüsseldatei »%s« erlaubt Lesezugriff für Gruppe oder Andere; Dateirechte müssen u=rw (0600) oder weniger sein, wenn der Eigentümer der aktuelle Benutzer ist, oder u=rw,g=r (0640) oder weniger, wenn der Eigentümer »root« ist\n" + +#: fe-secure-openssl.c:1253 +#, c-format msgid "could not load private key file \"%s\": %s\n" msgstr "konnte private Schlüsseldatei »%s« nicht laden: %s\n" -#: fe-secure-openssl.c:1237 +#: fe-secure-openssl.c:1271 #, c-format msgid "certificate does not match private key file \"%s\": %s\n" msgstr "Zertifikat passt nicht zur privaten Schlüsseldatei »%s«: %s\n" -#: fe-secure-openssl.c:1337 +#: fe-secure-openssl.c:1371 #, c-format msgid "This may indicate that the server does not support any SSL protocol version between %s and %s.\n" msgstr "Das zeigt möglicherweise an, dass der Server keine SSL-Protokollversion zwischen %s und %s unterstützt.\n" -#: fe-secure-openssl.c:1373 +#: fe-secure-openssl.c:1407 #, c-format msgid "certificate could not be obtained: %s\n" msgstr "Zertifikat konnte nicht ermittelt werden: %s\n" -#: fe-secure-openssl.c:1462 +#: fe-secure-openssl.c:1496 #, c-format msgid "no SSL error reported" msgstr "kein SSL-Fehler berichtet" -#: fe-secure-openssl.c:1471 +#: fe-secure-openssl.c:1505 #, c-format msgid "SSL error code %lu" msgstr "SSL-Fehlercode %lu" -#: fe-secure-openssl.c:1718 +#: fe-secure-openssl.c:1753 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "WARNUNG: sslpassword abgeschnitten\n" diff -Nru postgresql-13-13.4/src/interfaces/libpq/po/fr.po postgresql-13-13.7/src/interfaces/libpq/po/fr.po --- postgresql-13-13.4/src/interfaces/libpq/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/libpq/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: PostgreSQL 12\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-04-09 11:09+0000\n" -"PO-Revision-Date: 2021-04-11 09:47+0200\n" +"POT-Creation-Date: 2022-04-02 06:24+0000\n" +"PO-Revision-Date: 2022-04-05 08:32+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: PostgreSQLfr \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.0.1\n" #: fe-auth-scram.c:212 msgid "malformed SCRAM message (empty message)\n" @@ -53,14 +53,14 @@ #: fe-auth-scram.c:600 fe-auth-scram.c:626 fe-auth-scram.c:641 #: fe-auth-scram.c:691 fe-auth-scram.c:725 fe-auth.c:289 fe-auth.c:359 #: fe-auth.c:394 fe-auth.c:611 fe-auth.c:770 fe-auth.c:1129 fe-auth.c:1277 -#: fe-connect.c:892 fe-connect.c:1419 fe-connect.c:1595 fe-connect.c:2200 -#: fe-connect.c:2223 fe-connect.c:2957 fe-connect.c:4605 fe-connect.c:4861 -#: fe-connect.c:4980 fe-connect.c:5233 fe-connect.c:5313 fe-connect.c:5412 -#: fe-connect.c:5668 fe-connect.c:5697 fe-connect.c:5769 fe-connect.c:5793 -#: fe-connect.c:5811 fe-connect.c:5912 fe-connect.c:5921 fe-connect.c:6277 -#: fe-connect.c:6427 fe-exec.c:2747 fe-exec.c:3494 fe-exec.c:3659 -#: fe-gssapi-common.c:111 fe-lobj.c:895 fe-protocol2.c:1207 fe-protocol3.c:961 -#: fe-protocol3.c:1665 fe-secure-common.c:110 fe-secure-gssapi.c:504 +#: fe-connect.c:892 fe-connect.c:1424 fe-connect.c:1600 fe-connect.c:2205 +#: fe-connect.c:2228 fe-connect.c:2962 fe-connect.c:4652 fe-connect.c:4908 +#: fe-connect.c:5027 fe-connect.c:5280 fe-connect.c:5360 fe-connect.c:5459 +#: fe-connect.c:5715 fe-connect.c:5744 fe-connect.c:5816 fe-connect.c:5840 +#: fe-connect.c:5858 fe-connect.c:5959 fe-connect.c:5968 fe-connect.c:6324 +#: fe-connect.c:6474 fe-exec.c:2751 fe-exec.c:3498 fe-exec.c:3663 +#: fe-gssapi-common.c:112 fe-lobj.c:895 fe-protocol2.c:1207 fe-protocol3.c:963 +#: fe-protocol3.c:1667 fe-secure-common.c:110 fe-secure-gssapi.c:504 #: fe-secure-openssl.c:440 fe-secure-openssl.c:1091 msgid "out of memory\n" msgstr "mémoire épuisée\n" @@ -111,7 +111,7 @@ msgid "GSSAPI continuation error" msgstr "erreur de suite GSSAPI" -#: fe-auth.c:158 fe-auth.c:388 fe-gssapi-common.c:98 fe-secure-common.c:98 +#: fe-auth.c:158 fe-auth.c:388 fe-gssapi-common.c:99 fe-secure-common.c:98 msgid "host name must be specified\n" msgstr "le nom d'hôte doit être précisé\n" @@ -134,7 +134,7 @@ #: fe-auth.c:374 msgid "could not acquire SSPI credentials" -msgstr "n'a pas pu récupérer les pièces d'identité SSPI" +msgstr "n'a pas pu obtenir les pièces d'identité SSPI" #: fe-auth.c:429 msgid "channel binding required, but SSL not in use\n" @@ -211,14 +211,14 @@ #: fe-auth.c:1104 #, c-format msgid "user name lookup failure: error code %lu\n" -msgstr "échec de la recherche du nom d'utilisateur : code erreur %lu\n" +msgstr "échec de la recherche du nom d'utilisateur : code d'erreur %lu\n" -#: fe-auth.c:1114 fe-connect.c:2834 +#: fe-auth.c:1114 fe-connect.c:2839 #, c-format msgid "could not look up local user ID %d: %s\n" msgstr "n'a pas pu rechercher l'identifiant de l'utilisateur local %d : %s\n" -#: fe-auth.c:1119 fe-connect.c:2839 +#: fe-auth.c:1119 fe-connect.c:2844 #, c-format msgid "local user with ID %d does not exist\n" msgstr "l'utilisateur local dont l'identifiant est %d n'existe pas\n" @@ -241,61 +241,61 @@ msgid "could not match %d host names to %d hostaddr values\n" msgstr "n'a pas pu faire correspondre les %d noms d'hôte aux %d valeurs hostaddr\n" -#: fe-connect.c:1156 +#: fe-connect.c:1161 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "n'a pas pu faire correspondre les %d numéros de port aux %d hôtes\n" -#: fe-connect.c:1249 +#: fe-connect.c:1254 #, c-format msgid "invalid channel_binding value: \"%s\"\n" msgstr "valeur de channel_binding invalide : « %s »\n" -#: fe-connect.c:1275 +#: fe-connect.c:1280 #, c-format msgid "invalid sslmode value: \"%s\"\n" msgstr "valeur sslmode invalide : « %s »\n" -#: fe-connect.c:1296 +#: fe-connect.c:1301 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "valeur sslmode « %s » invalide si le support SSL n'est pas compilé initialement\n" -#: fe-connect.c:1317 +#: fe-connect.c:1322 #, c-format msgid "invalid ssl_min_protocol_version value: \"%s\"\n" msgstr "valeur ssl_min_protocol_version invalide : « %s »\n" -#: fe-connect.c:1325 +#: fe-connect.c:1330 #, c-format msgid "invalid ssl_max_protocol_version value: \"%s\"\n" msgstr "valeur ssl_max_protocol_version invalide : « %s »\n" -#: fe-connect.c:1342 +#: fe-connect.c:1347 msgid "invalid SSL protocol version range\n" msgstr "intervalle de version invalide pour le protocole SSL\n" -#: fe-connect.c:1357 +#: fe-connect.c:1362 #, c-format msgid "invalid gssencmode value: \"%s\"\n" msgstr "valeur gssencmode invalide : « %s »\n" -#: fe-connect.c:1366 +#: fe-connect.c:1371 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "valeur gssencmode « %s » invalide si le support GSSAPI n'est pas compilé\n" -#: fe-connect.c:1401 +#: fe-connect.c:1406 #, c-format msgid "invalid target_session_attrs value: \"%s\"\n" msgstr "valeur target_session_attrs invalide : « %s »\n" -#: fe-connect.c:1619 +#: fe-connect.c:1624 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "n'a pas pu activer le mode TCP sans délai pour la socket : %s\n" -#: fe-connect.c:1680 +#: fe-connect.c:1685 #, c-format msgid "" "could not connect to server: %s\n" @@ -306,7 +306,7 @@ "\tLe serveur est-il actif localement et accepte-t-il les connexions sur la\n" " \tsocket Unix « %s » ?\n" -#: fe-connect.c:1717 +#: fe-connect.c:1722 #, c-format msgid "" "could not connect to server: %s\n" @@ -317,7 +317,7 @@ "\tLe serveur est-il actif sur l'hôte « %s » (%s)\n" "\tet accepte-t-il les connexionsTCP/IP sur le port %s ?\n" -#: fe-connect.c:1725 +#: fe-connect.c:1730 #, c-format msgid "" "could not connect to server: %s\n" @@ -328,315 +328,323 @@ "\tLe serveur est-il actif sur l'hôte « %s » et accepte-t-il les connexions\n" "\tTCP/IP sur le port %s ?\n" -#: fe-connect.c:1795 +#: fe-connect.c:1800 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "valeur entière « %s » invalide pour l'option de connexion « %s »\n" -#: fe-connect.c:1825 fe-connect.c:1859 fe-connect.c:1894 fe-connect.c:1981 -#: fe-connect.c:2623 +#: fe-connect.c:1830 fe-connect.c:1864 fe-connect.c:1899 fe-connect.c:1986 +#: fe-connect.c:2628 #, c-format msgid "setsockopt(%s) failed: %s\n" msgstr "setsockopt(%s) a échoué : %s\n" -#: fe-connect.c:1947 +#: fe-connect.c:1952 #, c-format msgid "WSAIoctl(SIO_KEEPALIVE_VALS) failed: %ui\n" msgstr "WSAIoctl(SIO_KEEPALIVE_VALS) a échoué : %ui\n" -#: fe-connect.c:2313 +#: fe-connect.c:2318 msgid "invalid connection state, probably indicative of memory corruption\n" msgstr "état de connexion invalide, indique probablement une corruption de mémoire\n" -#: fe-connect.c:2379 +#: fe-connect.c:2384 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "numéro de port invalide : « %s »\n" -#: fe-connect.c:2395 +#: fe-connect.c:2400 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "n'a pas pu traduire le nom d'hôte « %s » en adresse : %s\n" -#: fe-connect.c:2408 +#: fe-connect.c:2413 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "n'a pas pu analyser l'adresse réseau « %s » : %s\n" -#: fe-connect.c:2421 +#: fe-connect.c:2426 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "Le chemin du socket de domaine Unix, « %s », est trop (maximum %d octets)\n" -#: fe-connect.c:2436 +#: fe-connect.c:2441 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "" "n'a pas pu traduire le chemin de la socket du domaine Unix « %s » en adresse :\n" "%s\n" -#: fe-connect.c:2560 +#: fe-connect.c:2565 #, c-format msgid "could not create socket: %s\n" msgstr "n'a pas pu créer la socket : %s\n" -#: fe-connect.c:2582 +#: fe-connect.c:2587 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "n'a pas pu activer le mode non-bloquant pour la socket : %s\n" -#: fe-connect.c:2592 +#: fe-connect.c:2597 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "n'a pas pu paramétrer la socket en mode close-on-exec : %s\n" -#: fe-connect.c:2610 +#: fe-connect.c:2615 msgid "keepalives parameter must be an integer\n" msgstr "le paramètre keepalives doit être un entier\n" -#: fe-connect.c:2750 +#: fe-connect.c:2755 #, c-format msgid "could not get socket error status: %s\n" msgstr "n'a pas pu déterminer le statut d'erreur de la socket : %s\n" -#: fe-connect.c:2778 +#: fe-connect.c:2783 #, c-format msgid "could not get client address from socket: %s\n" msgstr "n'a pas pu obtenir l'adresse du client depuis la socket : %s\n" -#: fe-connect.c:2820 +#: fe-connect.c:2825 msgid "requirepeer parameter is not supported on this platform\n" msgstr "le paramètre requirepeer n'est pas supporté sur cette plateforme\n" -#: fe-connect.c:2823 +#: fe-connect.c:2828 #, c-format msgid "could not get peer credentials: %s\n" msgstr "n'a pas pu obtenir l'authentification de l'autre : %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2852 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "requirepeer indique « %s » mais le nom de l'utilisateur réel est « %s »\n" -#: fe-connect.c:2887 +#: fe-connect.c:2892 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "n'a pas pu transmettre le paquet de négociation GSSAPI : %s\n" -#: fe-connect.c:2899 +#: fe-connect.c:2904 msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)\n" msgstr "le chiffrage avec GSSAPI était requis, mais impossible (potentiellement pas de cache, de support serveur ou de socket local)\n" -#: fe-connect.c:2931 +#: fe-connect.c:2936 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "n'a pas pu transmettre le paquet de négociation SSL : %s\n" -#: fe-connect.c:2970 +#: fe-connect.c:2975 #, c-format msgid "could not send startup packet: %s\n" msgstr "n'a pas pu transmettre le paquet de démarrage : %s\n" -#: fe-connect.c:3040 +#: fe-connect.c:3045 msgid "server does not support SSL, but SSL was required\n" msgstr "le serveur ne supporte pas SSL alors que SSL était réclamé\n" -#: fe-connect.c:3067 +#: fe-connect.c:3072 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "a reçu une réponse invalide à la négociation SSL : %c\n" -#: fe-connect.c:3156 +#: fe-connect.c:3093 +msgid "received unencrypted data after SSL response\n" +msgstr "a reçu des données non chiffrées après la réponse SSL\n" + +#: fe-connect.c:3174 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "le serveur ne supporte pas le chiffrage GSSAPI alors qu'il était réclamé\n" -#: fe-connect.c:3168 +#: fe-connect.c:3186 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "a reçu une réponse invalide à la négociation GSSAPI : %c\n" -#: fe-connect.c:3234 fe-connect.c:3265 +#: fe-connect.c:3205 +msgid "received unencrypted data after GSSAPI encryption response\n" +msgstr "a reçu des données non chiffrées après la réponse de chiffrement GSSAPI\n" + +#: fe-connect.c:3265 fe-connect.c:3296 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "" "attendait une requête d'authentification en provenance du serveur, mais a\n" " reçu %c\n" -#: fe-connect.c:3506 +#: fe-connect.c:3537 msgid "unexpected message from server during startup\n" msgstr "message inattendu du serveur lors du démarrage\n" -#: fe-connect.c:3711 +#: fe-connect.c:3742 #, c-format msgid "could not make a writable connection to server \"%s:%s\"\n" msgstr "n'a pas pu réaliser une connexion en écriture au serveur « %s » : %s\n" -#: fe-connect.c:3757 +#: fe-connect.c:3788 #, c-format msgid "test \"SHOW transaction_read_only\" failed on server \"%s:%s\"\n" msgstr "le test \"SHOW transaction_read_only\" a échoué sur le serveur \"%s:%s\"\n" -#: fe-connect.c:3772 +#: fe-connect.c:3803 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" msgstr "" "état de connexion invalide (%d), indiquant probablement une corruption de\n" " mémoire\n" -#: fe-connect.c:4211 fe-connect.c:4271 +#: fe-connect.c:4242 fe-connect.c:4302 #, c-format msgid "PGEventProc \"%s\" failed during PGEVT_CONNRESET event\n" msgstr "échec de PGEventProc « %s » lors de l'événement PGEVT_CONNRESET\n" -#: fe-connect.c:4618 +#: fe-connect.c:4665 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "URL LDAP « %s » invalide : le schéma doit être ldap://\n" -#: fe-connect.c:4633 +#: fe-connect.c:4680 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "URL LDAP « %s » invalide : le « distinguished name » manque\n" -#: fe-connect.c:4645 fe-connect.c:4700 +#: fe-connect.c:4692 fe-connect.c:4747 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "URL LDAP « %s » invalide : doit avoir exactement un attribut\n" -#: fe-connect.c:4656 fe-connect.c:4715 +#: fe-connect.c:4703 fe-connect.c:4762 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" msgstr "URL LDAP « %s » invalide : doit avoir une échelle de recherche (base/un/sous)\n" -#: fe-connect.c:4667 +#: fe-connect.c:4714 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "URL LDAP « %s » invalide : aucun filtre\n" -#: fe-connect.c:4688 +#: fe-connect.c:4735 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "URL LDAP « %s » invalide : numéro de port invalide\n" -#: fe-connect.c:4724 +#: fe-connect.c:4771 msgid "could not create LDAP structure\n" msgstr "n'a pas pu créer la structure LDAP\n" -#: fe-connect.c:4800 +#: fe-connect.c:4847 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "échec de la recherche sur le serveur LDAP : %s\n" -#: fe-connect.c:4811 +#: fe-connect.c:4858 msgid "more than one entry found on LDAP lookup\n" msgstr "plusieurs entrées trouvées pendant la recherche LDAP\n" -#: fe-connect.c:4812 fe-connect.c:4824 +#: fe-connect.c:4859 fe-connect.c:4871 msgid "no entry found on LDAP lookup\n" msgstr "aucune entrée trouvée pendant la recherche LDAP\n" -#: fe-connect.c:4835 fe-connect.c:4848 +#: fe-connect.c:4882 fe-connect.c:4895 msgid "attribute has no values on LDAP lookup\n" msgstr "l'attribut n'a pas de valeur après la recherche LDAP\n" -#: fe-connect.c:4900 fe-connect.c:4919 fe-connect.c:5451 +#: fe-connect.c:4947 fe-connect.c:4966 fe-connect.c:5498 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" msgstr "« = » manquant après « %s » dans la chaîne des paramètres de connexion\n" -#: fe-connect.c:4992 fe-connect.c:5636 fe-connect.c:6410 +#: fe-connect.c:5039 fe-connect.c:5683 fe-connect.c:6457 #, c-format msgid "invalid connection option \"%s\"\n" msgstr "option de connexion « %s » invalide\n" -#: fe-connect.c:5008 fe-connect.c:5500 +#: fe-connect.c:5055 fe-connect.c:5547 msgid "unterminated quoted string in connection info string\n" msgstr "guillemets non refermés dans la chaîne des paramètres de connexion\n" -#: fe-connect.c:5091 +#: fe-connect.c:5138 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "définition du service « %s » introuvable\n" -#: fe-connect.c:5114 +#: fe-connect.c:5161 #, c-format msgid "service file \"%s\" not found\n" msgstr "fichier de service « %s » introuvable\n" -#: fe-connect.c:5129 +#: fe-connect.c:5176 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "ligne %d trop longue dans le fichier service « %s »\n" -#: fe-connect.c:5201 fe-connect.c:5245 +#: fe-connect.c:5248 fe-connect.c:5292 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "erreur de syntaxe dans le fichier service « %s », ligne %d\n" -#: fe-connect.c:5212 +#: fe-connect.c:5259 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d\n" msgstr "spécifications imbriquées de service non supportées dans le fichier service « %s », ligne %d\n" -#: fe-connect.c:5932 +#: fe-connect.c:5979 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "URI invalide propagée à la routine d'analyse interne : « %s »\n" -#: fe-connect.c:6009 +#: fe-connect.c:6056 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"\n" msgstr "" "fin de chaîne atteinte lors de la recherche du « ] » correspondant dans\n" "l'adresse IPv6 de l'hôte indiquée dans l'URI : « %s »\n" -#: fe-connect.c:6016 +#: fe-connect.c:6063 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "l'adresse IPv6 de l'hôte ne peut pas être vide dans l'URI : « %s »\n" -#: fe-connect.c:6031 +#: fe-connect.c:6078 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n" msgstr "" "caractère « %c » inattendu à la position %d de l'URI (caractère « : » ou\n" "« / » attendu) : « %s »\n" -#: fe-connect.c:6160 +#: fe-connect.c:6207 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "séparateur « = » de clé/valeur en trop dans le paramètre de requête URI : « %s »\n" -#: fe-connect.c:6180 +#: fe-connect.c:6227 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "séparateur « = » de clé/valeur manquant dans le paramètre de requête URI : « %s »\n" -#: fe-connect.c:6231 +#: fe-connect.c:6278 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "paramètre de la requête URI invalide : « %s »\n" -#: fe-connect.c:6305 +#: fe-connect.c:6352 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "jeton encodé en pourcentage invalide : « %s »\n" -#: fe-connect.c:6315 +#: fe-connect.c:6362 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "valeur %%00 interdite dans la valeur codée en pourcentage : « %s »\n" -#: fe-connect.c:6678 +#: fe-connect.c:6725 msgid "connection pointer is NULL\n" msgstr "le pointeur de connexion est NULL\n" -#: fe-connect.c:6974 +#: fe-connect.c:7021 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "ATTENTION : le fichier de mots de passe « %s » n'est pas un fichier texte\n" -#: fe-connect.c:6983 +#: fe-connect.c:7030 #, c-format msgid "WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" msgstr "" @@ -644,23 +652,23 @@ "lecture pour le groupe ou universel ; les droits devraient être u=rw (0600)\n" "ou inférieur\n" -#: fe-connect.c:7091 +#: fe-connect.c:7138 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "mot de passe récupéré dans le fichier « %s »\n" -#: fe-exec.c:444 fe-exec.c:2821 +#: fe-exec.c:444 fe-exec.c:2825 #, c-format msgid "row number %d is out of range 0..%d" msgstr "le numéro de ligne %d est en dehors des limites 0..%d" #: fe-exec.c:505 fe-protocol2.c:497 fe-protocol2.c:532 fe-protocol2.c:1050 -#: fe-protocol3.c:206 fe-protocol3.c:233 fe-protocol3.c:250 fe-protocol3.c:328 -#: fe-protocol3.c:692 fe-protocol3.c:920 +#: fe-protocol3.c:208 fe-protocol3.c:235 fe-protocol3.c:252 fe-protocol3.c:330 +#: fe-protocol3.c:694 fe-protocol3.c:922 msgid "out of memory" msgstr "mémoire épuisée" -#: fe-exec.c:506 fe-protocol2.c:1396 fe-protocol3.c:1873 +#: fe-exec.c:506 fe-protocol2.c:1396 fe-protocol3.c:1875 #, c-format msgid "%s" msgstr "%s" @@ -693,7 +701,7 @@ msgid "statement name is a null pointer\n" msgstr "le nom de l'instruction est un pointeur nul\n" -#: fe-exec.c:1361 fe-exec.c:1524 fe-exec.c:2233 fe-exec.c:2435 +#: fe-exec.c:1361 fe-exec.c:1524 fe-exec.c:2237 fe-exec.c:2439 msgid "function requires at least protocol version 3.0\n" msgstr "la fonction nécessite au minimum le protocole 3.0\n" @@ -709,69 +717,69 @@ msgid "length must be given for binary parameter\n" msgstr "la longueur doit être indiquée pour les paramètres binaires\n" -#: fe-exec.c:1863 +#: fe-exec.c:1867 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "asyncStatus inattendu : %d\n" -#: fe-exec.c:1883 +#: fe-exec.c:1887 #, c-format msgid "PGEventProc \"%s\" failed during PGEVT_RESULTCREATE event\n" msgstr "échec de PGEventProc « %s » lors de l'événement PGEVT_RESULTCREATE\n" -#: fe-exec.c:2043 +#: fe-exec.c:2047 msgid "COPY terminated by new PQexec" msgstr "COPY terminé par un nouveau PQexec" -#: fe-exec.c:2051 +#: fe-exec.c:2055 msgid "COPY IN state must be terminated first\n" msgstr "l'état COPY IN doit d'abord être terminé\n" -#: fe-exec.c:2071 +#: fe-exec.c:2075 msgid "COPY OUT state must be terminated first\n" msgstr "l'état COPY OUT doit d'abord être terminé\n" -#: fe-exec.c:2079 +#: fe-exec.c:2083 msgid "PQexec not allowed during COPY BOTH\n" msgstr "PQexec non autorisé pendant COPY BOTH\n" -#: fe-exec.c:2325 fe-exec.c:2392 fe-exec.c:2482 fe-protocol2.c:1353 -#: fe-protocol3.c:1804 +#: fe-exec.c:2329 fe-exec.c:2396 fe-exec.c:2486 fe-protocol2.c:1353 +#: fe-protocol3.c:1806 msgid "no COPY in progress\n" msgstr "aucun COPY en cours\n" -#: fe-exec.c:2672 +#: fe-exec.c:2676 msgid "connection in wrong state\n" msgstr "connexion dans un état erroné\n" -#: fe-exec.c:2703 +#: fe-exec.c:2707 msgid "invalid ExecStatusType code" msgstr "code ExecStatusType invalide" -#: fe-exec.c:2730 +#: fe-exec.c:2734 msgid "PGresult is not an error result\n" msgstr "PGresult n'est pas un résultat d'erreur\n" -#: fe-exec.c:2805 fe-exec.c:2828 +#: fe-exec.c:2809 fe-exec.c:2832 #, c-format msgid "column number %d is out of range 0..%d" msgstr "le numéro de colonne %d est en dehors des limites 0..%d" -#: fe-exec.c:2843 +#: fe-exec.c:2847 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "le numéro de paramètre %d est en dehors des limites 0..%d" -#: fe-exec.c:3153 +#: fe-exec.c:3157 #, c-format msgid "could not interpret result from server: %s" msgstr "n'a pas pu interpréter la réponse du serveur : %s" -#: fe-exec.c:3392 fe-exec.c:3476 +#: fe-exec.c:3396 fe-exec.c:3480 msgid "incomplete multibyte character\n" msgstr "caractère multi-octet incomplet\n" -#: fe-gssapi-common.c:124 +#: fe-gssapi-common.c:125 msgid "GSSAPI name import error" msgstr "erreur d'import du nom GSSAPI" @@ -908,7 +916,7 @@ msgid "invalid state %c, probably indicative of memory corruption\n" msgstr "état %c invalide, indiquant probablement une corruption de la mémoire\n" -#: fe-protocol2.c:473 fe-protocol3.c:183 +#: fe-protocol2.c:473 fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "le message de type 0x%02x est arrivé alors que le serveur était en attente" @@ -934,12 +942,12 @@ "le serveur a envoyé des données binaires (message « B ») sans description\n" "préalable de la ligne (message « T »)" -#: fe-protocol2.c:626 fe-protocol3.c:403 +#: fe-protocol2.c:626 fe-protocol3.c:405 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "réponse inattendue du serveur, le premier caractère reçu étant « %c »\n" -#: fe-protocol2.c:755 fe-protocol2.c:930 fe-protocol3.c:603 fe-protocol3.c:809 +#: fe-protocol2.c:755 fe-protocol2.c:930 fe-protocol3.c:605 fe-protocol3.c:811 msgid "out of memory for query result" msgstr "mémoire épuisée pour le résultat de la requête" @@ -948,122 +956,122 @@ msgid "lost synchronization with server, resetting connection" msgstr "synchronisation perdue avec le serveur, réinitialisation de la connexion" -#: fe-protocol2.c:1530 fe-protocol2.c:1562 fe-protocol3.c:2061 +#: fe-protocol2.c:1530 fe-protocol2.c:1562 fe-protocol3.c:2063 #, c-format msgid "protocol error: id=0x%x\n" msgstr "erreur de protocole : id=0x%x\n" -#: fe-protocol3.c:360 +#: fe-protocol3.c:362 msgid "server sent data (\"D\" message) without prior row description (\"T\" message)\n" msgstr "" "le serveur a envoyé des données (message « D ») sans description préalable\n" "de la ligne (message « T »)\n" -#: fe-protocol3.c:424 +#: fe-protocol3.c:426 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "" "le contenu du message ne correspond pas avec la longueur du type de message\n" "« %c »\n" -#: fe-protocol3.c:444 +#: fe-protocol3.c:446 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "" "synchronisation perdue avec le serveur : a reçu le type de message « %c »,\n" "longueur %d\n" -#: fe-protocol3.c:494 fe-protocol3.c:534 +#: fe-protocol3.c:496 fe-protocol3.c:536 msgid "insufficient data in \"T\" message" msgstr "données insuffisantes dans le message « T »" -#: fe-protocol3.c:672 +#: fe-protocol3.c:674 msgid "insufficient data in \"t\" message" msgstr "données insuffisantes dans le message « t »" -#: fe-protocol3.c:731 fe-protocol3.c:763 fe-protocol3.c:781 +#: fe-protocol3.c:733 fe-protocol3.c:765 fe-protocol3.c:783 msgid "insufficient data in \"D\" message" msgstr "données insuffisantes dans le message « D »" -#: fe-protocol3.c:737 +#: fe-protocol3.c:739 msgid "unexpected field count in \"D\" message" msgstr "nombre de champs inattendu dans le message « D »" -#: fe-protocol3.c:974 +#: fe-protocol3.c:976 msgid "no error message available\n" msgstr "aucun message d'erreur disponible\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1022 fe-protocol3.c:1041 +#: fe-protocol3.c:1024 fe-protocol3.c:1043 #, c-format msgid " at character %s" msgstr " au caractère %s" -#: fe-protocol3.c:1054 +#: fe-protocol3.c:1056 #, c-format msgid "DETAIL: %s\n" msgstr "DÉTAIL : %s\n" -#: fe-protocol3.c:1057 +#: fe-protocol3.c:1059 #, c-format msgid "HINT: %s\n" msgstr "ASTUCE : %s\n" -#: fe-protocol3.c:1060 +#: fe-protocol3.c:1062 #, c-format msgid "QUERY: %s\n" msgstr "REQUÊTE : %s\n" -#: fe-protocol3.c:1067 +#: fe-protocol3.c:1069 #, c-format msgid "CONTEXT: %s\n" msgstr "CONTEXTE : %s\n" -#: fe-protocol3.c:1076 +#: fe-protocol3.c:1078 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "NOM DE SCHÉMA : %s\n" -#: fe-protocol3.c:1080 +#: fe-protocol3.c:1082 #, c-format msgid "TABLE NAME: %s\n" msgstr "NOM DE TABLE : %s\n" -#: fe-protocol3.c:1084 +#: fe-protocol3.c:1086 #, c-format msgid "COLUMN NAME: %s\n" msgstr "NOM DE COLONNE : %s\n" -#: fe-protocol3.c:1088 +#: fe-protocol3.c:1090 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "NOM DU TYPE DE DONNÉES : %s\n" -#: fe-protocol3.c:1092 +#: fe-protocol3.c:1094 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "NOM DE CONTRAINTE : %s\n" -#: fe-protocol3.c:1104 +#: fe-protocol3.c:1106 msgid "LOCATION: " msgstr "EMPLACEMENT : " -#: fe-protocol3.c:1106 +#: fe-protocol3.c:1108 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1108 +#: fe-protocol3.c:1110 #, c-format msgid "%s:%s" msgstr "%s : %s" -#: fe-protocol3.c:1303 +#: fe-protocol3.c:1305 #, c-format msgid "LINE %d: " msgstr "LIGNE %d : " -#: fe-protocol3.c:1698 +#: fe-protocol3.c:1700 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline : ne va pas réaliser un COPY OUT au format texte\n" @@ -1086,11 +1094,11 @@ #: fe-secure-gssapi.c:201 msgid "GSSAPI wrap error" -msgstr "erreur wrap GSSAPI" +msgstr "erreur d'emballage GSSAPI" #: fe-secure-gssapi.c:209 msgid "outgoing GSSAPI message would not use confidentiality\n" -msgstr "le message sortant GSSAPI n'utilisera pas la confidentialité\n" +msgstr "le message sortant GSSAPI n'utiliserait pas la confidentialité\n" #: fe-secure-gssapi.c:217 #, c-format @@ -1104,11 +1112,11 @@ #: fe-secure-gssapi.c:393 msgid "GSSAPI unwrap error" -msgstr "erreur unwrap GSSAPI" +msgstr "erreur de dépaquetage GSSAPI" #: fe-secure-gssapi.c:403 msgid "incoming GSSAPI message did not use confidentiality\n" -msgstr "le message entrant GSSAPI n'utilisait pas la confidentialité\n" +msgstr "le message entrant GSSAPI n'a pas utilisé pas la confidentialité\n" #: fe-secure-gssapi.c:642 msgid "could not initiate GSSAPI security context" @@ -1122,16 +1130,16 @@ msgid "GSSAPI context establishment error" msgstr "erreur d'établissement du contexte GSSAPI" -#: fe-secure-openssl.c:214 fe-secure-openssl.c:321 fe-secure-openssl.c:1291 +#: fe-secure-openssl.c:214 fe-secure-openssl.c:321 fe-secure-openssl.c:1325 #, c-format msgid "SSL SYSCALL error: %s\n" msgstr "erreur SYSCALL SSL : %s\n" -#: fe-secure-openssl.c:221 fe-secure-openssl.c:328 fe-secure-openssl.c:1295 +#: fe-secure-openssl.c:221 fe-secure-openssl.c:328 fe-secure-openssl.c:1329 msgid "SSL SYSCALL error: EOF detected\n" msgstr "erreur SYSCALL SSL : EOF détecté\n" -#: fe-secure-openssl.c:232 fe-secure-openssl.c:339 fe-secure-openssl.c:1304 +#: fe-secure-openssl.c:232 fe-secure-openssl.c:339 fe-secure-openssl.c:1338 #, c-format msgid "SSL error: %s\n" msgstr "erreur SSL : %s\n" @@ -1140,7 +1148,7 @@ msgid "SSL connection has been closed unexpectedly\n" msgstr "la connexion SSL a été fermée de façon inattendu\n" -#: fe-secure-openssl.c:253 fe-secure-openssl.c:360 fe-secure-openssl.c:1354 +#: fe-secure-openssl.c:253 fe-secure-openssl.c:360 fe-secure-openssl.c:1388 #, c-format msgid "unrecognized SSL error code: %d\n" msgstr "code d'erreur SSL inconnu : %d\n" @@ -1251,45 +1259,52 @@ msgid "certificate present, but not private key file \"%s\"\n" msgstr "le certificat est présent, mais la clé privée « %s » est absente\n" -#: fe-secure-openssl.c:1194 +#: fe-secure-openssl.c:1195 #, c-format -msgid "private key file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" -msgstr "" -"le fichier de la clé privée « %s » a des droits d'accès en lecture\n" -"pour le groupe ou universel ; les droits devraient être u=rw (0600)\n" -"ou inférieur\n" +msgid "private key file \"%s\" is not a regular file\n" +msgstr "le fichier de clé privée « %s » n'est pas un fichier standard\n" #: fe-secure-openssl.c:1219 #, c-format +msgid "private key file \"%s\" must be owned by the current user or root\n" +msgstr "le fichier de clé privée « %s » doit avoir comme propriétaire l'utilisateur courant ou root\n" + +#: fe-secure-openssl.c:1228 +#, c-format +msgid "private key file \"%s\" has group or world access; file must have permissions u=rw (0600) or less if owned by the current user, or permissions u=rw,g=r (0640) or less if owned by root\n" +msgstr "le fichier de clé privée « %s » a des droits d'accès pour le groupe ou le monde ; le fichier doit avoir les droits u=rw (0600) ou moins si le propriétaire est l'utilisateur courant, ou les droits u=rw,g=r (0640) ou moins si le propriétaire est root\n" + +#: fe-secure-openssl.c:1253 +#, c-format msgid "could not load private key file \"%s\": %s\n" msgstr "n'a pas pu charger le fichier de clé privée « %s » : %s\n" -#: fe-secure-openssl.c:1237 +#: fe-secure-openssl.c:1271 #, c-format msgid "certificate does not match private key file \"%s\": %s\n" msgstr "le certificat ne correspond pas à la clé privée « %s » : %s\n" -#: fe-secure-openssl.c:1337 +#: fe-secure-openssl.c:1371 #, c-format msgid "This may indicate that the server does not support any SSL protocol version between %s and %s.\n" msgstr "Ceci pourrait indiquer que le serveur ne supporte aucune des versions du protocole SSL entre %s et %s.\n" -#: fe-secure-openssl.c:1373 +#: fe-secure-openssl.c:1407 #, c-format msgid "certificate could not be obtained: %s\n" msgstr "le certificat n'a pas pu être obtenu : %s\n" -#: fe-secure-openssl.c:1462 +#: fe-secure-openssl.c:1496 #, c-format msgid "no SSL error reported" msgstr "aucune erreur SSL reportée" -#: fe-secure-openssl.c:1471 +#: fe-secure-openssl.c:1505 #, c-format msgid "SSL error code %lu" -msgstr "erreur SSL %lu" +msgstr "code d'erreur SSL %lu" -#: fe-secure-openssl.c:1718 +#: fe-secure-openssl.c:1753 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "ATTENTION : sslpassword tronqué\n" @@ -1309,17 +1324,22 @@ msgid "unrecognized socket error: 0x%08X/%d" msgstr "erreur de socket non reconnue : 0x%08X/%d" +#~ msgid "Kerberos 5 authentication rejected: %*s\n" +#~ msgstr "authentification Kerberos 5 rejetée : %*s\n" + +#~ msgid "SSL library does not support CRL certificates (file \"%s\")\n" +#~ msgstr "la bibliothèque SSL ne supporte pas les certificats CRL (fichier « %s »)\n" + #~ msgid "WARNING: line %d too long in password file \"%s\"\n" #~ msgstr "ATTENTION : ligne %d trop longue dans le fichier de mots de passe « %s »\n" -#~ msgid "could not set minimum version of SSL protocol: %s\n" -#~ msgstr "n'a pas pu mettre en place la version minimale du protocole SSL : %s\n" - -#~ msgid "could not set maximum version of SSL protocol: %s\n" -#~ msgstr "n'a pas pu mettre en place la version maximale du protocole SSL : %s\n" +#~ msgid "could not acquire mutex: %s\n" +#~ msgstr "n'a pas pu acquérir le mutex : %s\n" -#~ msgid "SSL library does not support CRL certificates (file \"%s\")\n" -#~ msgstr "la bibliothèque SSL ne supporte pas les certificats CRL (fichier « %s »)\n" +#~ msgid "could not get home directory to locate client certificate files\n" +#~ msgstr "" +#~ "n'a pas pu récupérer le répertoire personnel pour trouver les certificats\n" +#~ "du client\n" #~ msgid "could not get home directory to locate password file\n" #~ msgstr "" @@ -1331,69 +1351,71 @@ #~ "n'a pas pu obtenir le répertoire personnel pour trouver le certificat de\n" #~ "définition du service" -#~ msgid "setsockopt(TCP_KEEPIDLE) failed: %s\n" -#~ msgstr "setsockopt(TCP_KEEPIDLE) a échoué : %s\n" +#~ msgid "could not open private key file \"%s\": %s\n" +#~ msgstr "n'a pas pu ouvrir le fichier de clé privée « %s » : %s\n" -#~ msgid "setsockopt(TCP_KEEPALIVE) failed: %s\n" -#~ msgstr "setsockopt(TCP_KEEPALIVE) a échoué : %s\n" +#~ msgid "could not read private key file \"%s\": %s\n" +#~ msgstr "n'a pas pu lire la clé privée « %s » : %s\n" -#~ msgid "setsockopt(TCP_KEEPINTVL) failed: %s\n" -#~ msgstr "setsockopt(TCP_KEEPINTVL) a échoué : %s\n" +#~ msgid "could not restore nonblocking mode on socket: %s\n" +#~ msgstr "n'a pas pu rétablir le mode non-bloquant pour la socket : %s\n" -#~ msgid "setsockopt(SO_KEEPALIVE) failed: %s\n" -#~ msgstr "setsockopt(SO_KEEPALIVE) a échoué : %s\n" +#~ msgid "could not set maximum version of SSL protocol: %s\n" +#~ msgstr "n'a pas pu mettre en place la version maximale du protocole SSL : %s\n" -#~ msgid "could not acquire mutex: %s\n" -#~ msgstr "n'a pas pu acquérir le mutex : %s\n" +#~ msgid "could not set minimum version of SSL protocol: %s\n" +#~ msgstr "n'a pas pu mettre en place la version minimale du protocole SSL : %s\n" -#~ msgid "unrecognized return value from row processor" -#~ msgstr "valeur de retour du traitement de la ligne non reconnue" +#~ msgid "could not set socket to blocking mode: %s\n" +#~ msgstr "n'a pas pu activer le mode bloquant pour la socket : %s\n" + +#~ msgid "extraneous data in \"D\" message" +#~ msgstr "données supplémentaires dans le message « D »" + +#~ msgid "extraneous data in \"T\" message" +#~ msgstr "données supplémentaires dans le message « T »" + +#~ msgid "extraneous data in \"t\" message" +#~ msgstr "données supplémentaires dans le message « t »" + +#~ msgid "failed to generate nonce\n" +#~ msgstr "échec pour la génération de nonce\n" #~ msgid "invalid appname state %d, probably indicative of memory corruption\n" #~ msgstr "état appname %d invalide, indiquant probablement une corruption de la mémoire\n" -#~ msgid "could not read private key file \"%s\": %s\n" -#~ msgstr "n'a pas pu lire la clé privée « %s » : %s\n" +#~ msgid "no GSSAPI support; cannot require GSSAPI\n" +#~ msgstr "pas de support de GSSAPI : ne peut pas nécessiter GSSAPI\n" #~ msgid "private key file \"%s\" changed during execution\n" #~ msgstr "la clé privée « %s » a été modifiée durant l'exécution\n" -#~ msgid "could not open private key file \"%s\": %s\n" -#~ msgstr "n'a pas pu ouvrir le fichier de clé privée « %s » : %s\n" - -#~ msgid "verified SSL connections are only supported when connecting to a host name\n" +#, c-format +#~ msgid "private key file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" #~ msgstr "" -#~ "les connexions SSL vérifiées ne sont supportées que lors de la connexion\n" -#~ "à un alias hôte\n" +#~ "le fichier de la clé privée « %s » a des droits d'accès en lecture\n" +#~ "pour le groupe ou universel ; les droits devraient être u=rw (0600)\n" +#~ "ou inférieur\n" -#~ msgid "could not get home directory to locate client certificate files\n" -#~ msgstr "" -#~ "n'a pas pu récupérer le répertoire personnel pour trouver les certificats\n" -#~ "du client\n" +#~ msgid "setsockopt(SO_KEEPALIVE) failed: %s\n" +#~ msgstr "setsockopt(SO_KEEPALIVE) a échoué : %s\n" -#~ msgid "could not restore nonblocking mode on socket: %s\n" -#~ msgstr "n'a pas pu rétablir le mode non-bloquant pour la socket : %s\n" +#~ msgid "setsockopt(TCP_KEEPALIVE) failed: %s\n" +#~ msgstr "setsockopt(TCP_KEEPALIVE) a échoué : %s\n" -#~ msgid "Kerberos 5 authentication rejected: %*s\n" -#~ msgstr "authentification Kerberos 5 rejetée : %*s\n" +#~ msgid "setsockopt(TCP_KEEPIDLE) failed: %s\n" +#~ msgstr "setsockopt(TCP_KEEPIDLE) a échoué : %s\n" -#~ msgid "could not set socket to blocking mode: %s\n" -#~ msgstr "n'a pas pu activer le mode bloquant pour la socket : %s\n" +#~ msgid "setsockopt(TCP_KEEPINTVL) failed: %s\n" +#~ msgstr "setsockopt(TCP_KEEPINTVL) a échoué : %s\n" #~ msgid "socket not open\n" #~ msgstr "socket non ouvert\n" -#~ msgid "failed to generate nonce\n" -#~ msgstr "échec pour la génération de nonce\n" - -#~ msgid "no GSSAPI support; cannot require GSSAPI\n" -#~ msgstr "pas de support de GSSAPI : ne peut pas nécessiter GSSAPI\n" - -#~ msgid "extraneous data in \"D\" message" -#~ msgstr "données supplémentaires dans le message « D »" - -#~ msgid "extraneous data in \"t\" message" -#~ msgstr "données supplémentaires dans le message « t »" +#~ msgid "unrecognized return value from row processor" +#~ msgstr "valeur de retour du traitement de la ligne non reconnue" -#~ msgid "extraneous data in \"T\" message" -#~ msgstr "données supplémentaires dans le message « T »" +#~ msgid "verified SSL connections are only supported when connecting to a host name\n" +#~ msgstr "" +#~ "les connexions SSL vérifiées ne sont supportées que lors de la connexion\n" +#~ "à un alias hôte\n" diff -Nru postgresql-13-13.4/src/interfaces/libpq/po/ru.po postgresql-13-13.7/src/interfaces/libpq/po/ru.po --- postgresql-13-13.4/src/interfaces/libpq/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/libpq/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -4,13 +4,14 @@ # Serguei A. Mokhov , 2001-2004. # Oleg Bartunov , 2005. # Andrey Sudnik , 2010. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022. +# Maxim Yablokov , 2021. msgid "" msgstr "" "Project-Id-Version: libpq (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-01-26 17:52+0300\n" -"PO-Revision-Date: 2020-09-07 15:43+0300\n" +"POT-Creation-Date: 2022-04-26 13:44+0300\n" +"PO-Revision-Date: 2022-05-07 06:33+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -56,14 +57,14 @@ #: fe-auth-scram.c:600 fe-auth-scram.c:626 fe-auth-scram.c:641 #: fe-auth-scram.c:691 fe-auth-scram.c:725 fe-auth.c:289 fe-auth.c:359 #: fe-auth.c:394 fe-auth.c:611 fe-auth.c:770 fe-auth.c:1129 fe-auth.c:1277 -#: fe-connect.c:892 fe-connect.c:1419 fe-connect.c:1595 fe-connect.c:2200 -#: fe-connect.c:2223 fe-connect.c:2957 fe-connect.c:4605 fe-connect.c:4861 -#: fe-connect.c:4980 fe-connect.c:5233 fe-connect.c:5313 fe-connect.c:5412 -#: fe-connect.c:5668 fe-connect.c:5697 fe-connect.c:5769 fe-connect.c:5793 -#: fe-connect.c:5811 fe-connect.c:5912 fe-connect.c:5921 fe-connect.c:6277 -#: fe-connect.c:6427 fe-exec.c:2747 fe-exec.c:3494 fe-exec.c:3659 -#: fe-gssapi-common.c:111 fe-lobj.c:895 fe-protocol2.c:1207 fe-protocol3.c:995 -#: fe-protocol3.c:1699 fe-secure-common.c:110 fe-secure-gssapi.c:504 +#: fe-connect.c:892 fe-connect.c:1424 fe-connect.c:1600 fe-connect.c:2205 +#: fe-connect.c:2228 fe-connect.c:2962 fe-connect.c:4652 fe-connect.c:4908 +#: fe-connect.c:5027 fe-connect.c:5280 fe-connect.c:5360 fe-connect.c:5459 +#: fe-connect.c:5715 fe-connect.c:5744 fe-connect.c:5816 fe-connect.c:5840 +#: fe-connect.c:5858 fe-connect.c:5959 fe-connect.c:5968 fe-connect.c:6324 +#: fe-connect.c:6474 fe-exec.c:2751 fe-exec.c:3498 fe-exec.c:3663 +#: fe-gssapi-common.c:112 fe-lobj.c:895 fe-protocol2.c:1207 fe-protocol3.c:963 +#: fe-protocol3.c:1667 fe-secure-common.c:110 fe-secure-gssapi.c:504 #: fe-secure-openssl.c:440 fe-secure-openssl.c:1091 msgid "out of memory\n" msgstr "нехватка памяти\n" @@ -116,7 +117,7 @@ msgid "GSSAPI continuation error" msgstr "ошибка продолжения в GSSAPI" -#: fe-auth.c:158 fe-auth.c:388 fe-gssapi-common.c:98 fe-secure-common.c:98 +#: fe-auth.c:158 fe-auth.c:388 fe-gssapi-common.c:99 fe-secure-common.c:98 msgid "host name must be specified\n" msgstr "требуется указать имя сервера\n" @@ -235,12 +236,12 @@ msgid "user name lookup failure: error code %lu\n" msgstr "распознать имя пользователя не удалось (код ошибки: %lu)\n" -#: fe-auth.c:1114 fe-connect.c:2834 +#: fe-auth.c:1114 fe-connect.c:2839 #, c-format msgid "could not look up local user ID %d: %s\n" msgstr "найти локального пользователя по идентификатору (%d) не удалось: %s\n" -#: fe-auth.c:1119 fe-connect.c:2839 +#: fe-auth.c:1119 fe-connect.c:2844 #, c-format msgid "local user with ID %d does not exist\n" msgstr "локальный пользователь с ID %d не существует\n" @@ -263,63 +264,63 @@ msgid "could not match %d host names to %d hostaddr values\n" msgstr "не удалось сопоставить имена узлов (%d) со значениями hostaddr (%d)\n" -#: fe-connect.c:1156 +#: fe-connect.c:1161 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "не удалось сопоставить номера портов (%d) с узлами (%d)\n" -#: fe-connect.c:1249 +#: fe-connect.c:1254 #, c-format msgid "invalid channel_binding value: \"%s\"\n" msgstr "неверное значение channel_binding: \"%s\"\n" -#: fe-connect.c:1275 +#: fe-connect.c:1280 #, c-format msgid "invalid sslmode value: \"%s\"\n" msgstr "неверное значение sslmode: \"%s\"\n" -#: fe-connect.c:1296 +#: fe-connect.c:1301 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "значение sslmode \"%s\" недопустимо для сборки без поддержки SSL\n" -#: fe-connect.c:1317 +#: fe-connect.c:1322 #, c-format msgid "invalid ssl_min_protocol_version value: \"%s\"\n" msgstr "неверное значение ssl_min_protocol_version: \"%s\"\n" -#: fe-connect.c:1325 +#: fe-connect.c:1330 #, c-format msgid "invalid ssl_max_protocol_version value: \"%s\"\n" msgstr "неверное значение ssl_max_protocol_version: \"%s\"\n" -#: fe-connect.c:1342 +#: fe-connect.c:1347 msgid "invalid SSL protocol version range\n" msgstr "неверный диапазон версий протокола SSL\n" -#: fe-connect.c:1357 +#: fe-connect.c:1362 #, c-format msgid "invalid gssencmode value: \"%s\"\n" msgstr "неверное значение gssencmode: \"%s\"\n" -#: fe-connect.c:1366 +#: fe-connect.c:1371 #, c-format msgid "" "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "" "значение gssencmode \"%s\" недопустимо для сборки без поддержки GSSAPI\n" -#: fe-connect.c:1401 +#: fe-connect.c:1406 #, c-format msgid "invalid target_session_attrs value: \"%s\"\n" msgstr "неверное значение target_session_attrs: \"%s\"\n" -#: fe-connect.c:1619 +#: fe-connect.c:1624 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "не удалось перевести сокет в режим TCP-передачи без задержки: %s\n" -#: fe-connect.c:1680 +#: fe-connect.c:1685 #, c-format msgid "" "could not connect to server: %s\n" @@ -330,7 +331,7 @@ "\tОн действительно работает локально и принимает\n" "\tсоединения через Unix-сокет \"%s\"?\n" -#: fe-connect.c:1717 +#: fe-connect.c:1722 #, c-format msgid "" "could not connect to server: %s\n" @@ -341,7 +342,7 @@ "\tОн действительно работает по адресу \"%s\" (%s)\n" "\t и принимает TCP-соединения (порт %s)?\n" -#: fe-connect.c:1725 +#: fe-connect.c:1730 #, c-format msgid "" "could not connect to server: %s\n" @@ -352,105 +353,105 @@ "\tОн действительно работает по адресу \"%s\"\n" "\t и принимает TCP-соединения (порт %s)?\n" -#: fe-connect.c:1795 +#: fe-connect.c:1800 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "" "неверное целочисленное значение \"%s\" для параметра соединения \"%s\"\n" -#: fe-connect.c:1825 fe-connect.c:1859 fe-connect.c:1894 fe-connect.c:1981 -#: fe-connect.c:2623 +#: fe-connect.c:1830 fe-connect.c:1864 fe-connect.c:1899 fe-connect.c:1986 +#: fe-connect.c:2628 #, c-format msgid "setsockopt(%s) failed: %s\n" msgstr "ошибка в setsockopt(%s): %s\n" -#: fe-connect.c:1947 +#: fe-connect.c:1952 #, c-format msgid "WSAIoctl(SIO_KEEPALIVE_VALS) failed: %ui\n" msgstr "ошибка в WSAIoctl(SIO_KEEPALIVE_VALS): %ui\n" -#: fe-connect.c:2313 +#: fe-connect.c:2318 msgid "invalid connection state, probably indicative of memory corruption\n" msgstr "неверное состояние соединения - возможно разрушение памяти\n" -#: fe-connect.c:2379 +#: fe-connect.c:2384 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "неверный номер порта: \"%s\"\n" -#: fe-connect.c:2395 +#: fe-connect.c:2400 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "преобразовать имя \"%s\" в адрес не удалось: %s\n" -#: fe-connect.c:2408 +#: fe-connect.c:2413 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "не удалось разобрать сетевой адрес \"%s\": %s\n" -#: fe-connect.c:2421 +#: fe-connect.c:2426 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "длина пути Unix-сокета \"%s\" превышает предел (%d байт)\n" -#: fe-connect.c:2436 +#: fe-connect.c:2441 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "преобразовать путь Unix-сокета \"%s\" в адрес не удалось: %s\n" -#: fe-connect.c:2560 +#: fe-connect.c:2565 #, c-format msgid "could not create socket: %s\n" msgstr "не удалось создать сокет: %s\n" -#: fe-connect.c:2582 +#: fe-connect.c:2587 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "не удалось перевести сокет в неблокирующий режим: %s\n" -#: fe-connect.c:2592 +#: fe-connect.c:2597 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "" "не удалось перевести сокет в режим закрытия при выполнении (close-on-exec): " "%s\n" -#: fe-connect.c:2610 +#: fe-connect.c:2615 msgid "keepalives parameter must be an integer\n" msgstr "параметр keepalives должен быть целым числом\n" -#: fe-connect.c:2750 +#: fe-connect.c:2755 #, c-format msgid "could not get socket error status: %s\n" msgstr "не удалось получить статус ошибки сокета: %s\n" -#: fe-connect.c:2778 +#: fe-connect.c:2783 #, c-format msgid "could not get client address from socket: %s\n" msgstr "не удалось получить адрес клиента из сокета: %s\n" -#: fe-connect.c:2820 +#: fe-connect.c:2825 msgid "requirepeer parameter is not supported on this platform\n" msgstr "параметр requirepeer не поддерживается в этой ОС\n" -#: fe-connect.c:2823 +#: fe-connect.c:2828 #, c-format msgid "could not get peer credentials: %s\n" msgstr "не удалось получить учётные данные сервера: %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2852 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "" "requirepeer допускает подключение только к \"%s\", но сервер работает под " "именем \"%s\"\n" -#: fe-connect.c:2887 +#: fe-connect.c:2892 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "не удалось отправить пакет согласования GSSAPI: %s\n" -#: fe-connect.c:2899 +#: fe-connect.c:2904 msgid "" "GSSAPI encryption required but was impossible (possibly no credential cache, " "no server support, or using a local socket)\n" @@ -459,152 +460,161 @@ "отсутствует кеш учётных данных, нет поддержки на сервере или используется " "локальный сокет)\n" -#: fe-connect.c:2931 +#: fe-connect.c:2936 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "не удалось отправить пакет согласования SSL: %s\n" -#: fe-connect.c:2970 +#: fe-connect.c:2975 #, c-format msgid "could not send startup packet: %s\n" msgstr "не удалось отправить стартовый пакет: %s\n" -#: fe-connect.c:3040 +#: fe-connect.c:3045 msgid "server does not support SSL, but SSL was required\n" msgstr "затребовано подключение через SSL, но сервер не поддерживает SSL\n" -#: fe-connect.c:3067 +#: fe-connect.c:3072 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "получен неверный ответ при согласовании SSL: %c\n" -#: fe-connect.c:3156 +#: fe-connect.c:3093 +msgid "received unencrypted data after SSL response\n" +msgstr "после ответа SSL получены незашифрованные данные\n" + +#: fe-connect.c:3174 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "затребовано шифрование GSSAPI, но сервер его не поддерживает\n" -#: fe-connect.c:3168 +#: fe-connect.c:3186 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "получен неверный ответ при согласовании GSSAPI: %c\n" -#: fe-connect.c:3234 fe-connect.c:3265 +#: fe-connect.c:3205 +msgid "received unencrypted data after GSSAPI encryption response\n" +msgstr "" +"после ответа на запрос шифрования GSSAPI получены незашифрованные данные\n" + +#: fe-connect.c:3265 fe-connect.c:3296 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "ожидался запрос аутентификации от сервера, но получено: %c\n" -#: fe-connect.c:3506 +#: fe-connect.c:3537 msgid "unexpected message from server during startup\n" msgstr "неожиданное сообщение от сервера в начале работы\n" -#: fe-connect.c:3711 +#: fe-connect.c:3742 #, c-format msgid "could not make a writable connection to server \"%s:%s\"\n" msgstr "" "не удалось установить подключение для чтения/записи к серверу \"%s:%s\"\n" -#: fe-connect.c:3757 +#: fe-connect.c:3788 #, c-format msgid "test \"SHOW transaction_read_only\" failed on server \"%s:%s\"\n" msgstr "" "проверка \"SHOW transaction_read_only\" не пройдена на сервере \"%s:%s\"\n" -#: fe-connect.c:3772 +#: fe-connect.c:3803 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" msgstr "неверное состояние соединения %d - возможно разрушение памяти\n" -#: fe-connect.c:4211 fe-connect.c:4271 +#: fe-connect.c:4242 fe-connect.c:4302 #, c-format msgid "PGEventProc \"%s\" failed during PGEVT_CONNRESET event\n" msgstr "ошибка в PGEventProc \"%s\" при обработке события PGEVT_CONNRESET\n" -#: fe-connect.c:4618 +#: fe-connect.c:4665 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "некорректный адрес LDAP \"%s\": схема должна быть ldap://\n" -#: fe-connect.c:4633 +#: fe-connect.c:4680 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "некорректный адрес LDAP \"%s\": отсутствует уникальное имя\n" -#: fe-connect.c:4645 fe-connect.c:4700 +#: fe-connect.c:4692 fe-connect.c:4747 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "некорректный адрес LDAP \"%s\": должен быть только один атрибут\n" -#: fe-connect.c:4656 fe-connect.c:4715 +#: fe-connect.c:4703 fe-connect.c:4762 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" msgstr "" "некорректный адрес LDAP \"%s\": не указана область поиска (base/one/sub)\n" -#: fe-connect.c:4667 +#: fe-connect.c:4714 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "некорректный адрес LDAP \"%s\": нет фильтра\n" -#: fe-connect.c:4688 +#: fe-connect.c:4735 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "некорректный адрес LDAP \"%s\": неверный номер порта\n" -#: fe-connect.c:4724 +#: fe-connect.c:4771 msgid "could not create LDAP structure\n" msgstr "не удалось создать структуру LDAP\n" -#: fe-connect.c:4800 +#: fe-connect.c:4847 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "ошибка поиска на сервере LDAP: %s\n" -#: fe-connect.c:4811 +#: fe-connect.c:4858 msgid "more than one entry found on LDAP lookup\n" msgstr "при поиске LDAP найдено более одного вхождения\n" -#: fe-connect.c:4812 fe-connect.c:4824 +#: fe-connect.c:4859 fe-connect.c:4871 msgid "no entry found on LDAP lookup\n" msgstr "при поиске LDAP ничего не найдено\n" -#: fe-connect.c:4835 fe-connect.c:4848 +#: fe-connect.c:4882 fe-connect.c:4895 msgid "attribute has no values on LDAP lookup\n" msgstr "атрибут не содержит значений при поиске LDAP\n" -#: fe-connect.c:4900 fe-connect.c:4919 fe-connect.c:5451 +#: fe-connect.c:4947 fe-connect.c:4966 fe-connect.c:5498 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" msgstr "в строке соединения нет \"=\" после \"%s\"\n" -#: fe-connect.c:4992 fe-connect.c:5636 fe-connect.c:6410 +#: fe-connect.c:5039 fe-connect.c:5683 fe-connect.c:6457 #, c-format msgid "invalid connection option \"%s\"\n" msgstr "неверный параметр соединения \"%s\"\n" -#: fe-connect.c:5008 fe-connect.c:5500 +#: fe-connect.c:5055 fe-connect.c:5547 msgid "unterminated quoted string in connection info string\n" msgstr "в строке соединения не хватает закрывающей кавычки\n" -#: fe-connect.c:5091 +#: fe-connect.c:5138 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "определение службы \"%s\" не найдено\n" -#: fe-connect.c:5114 +#: fe-connect.c:5161 #, c-format msgid "service file \"%s\" not found\n" msgstr "файл определений служб \"%s\" не найден\n" -#: fe-connect.c:5129 +#: fe-connect.c:5176 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "слишком длинная строка (%d) в файле определений служб \"%s\"\n" -#: fe-connect.c:5201 fe-connect.c:5245 +#: fe-connect.c:5248 fe-connect.c:5292 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "синтаксическая ошибка в файле определения служб \"%s\" (строка %d)\n" -#: fe-connect.c:5212 +#: fe-connect.c:5259 #, c-format msgid "" "nested service specifications not supported in service file \"%s\", line %d\n" @@ -612,24 +622,24 @@ "рекурсивные определения служб не поддерживаются (файл определения служб \"%s" "\", строка %d)\n" -#: fe-connect.c:5932 +#: fe-connect.c:5979 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "во внутреннюю процедуру разбора строки передан ошибочный URI: \"%s\"\n" -#: fe-connect.c:6009 +#: fe-connect.c:6056 #, c-format msgid "" "end of string reached when looking for matching \"]\" in IPv6 host address " "in URI: \"%s\"\n" msgstr "URI не содержит символ \"]\" после адреса IPv6: \"%s\"\n" -#: fe-connect.c:6016 +#: fe-connect.c:6063 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "IPv6, содержащийся в URI, не может быть пустым: \"%s\"\n" -#: fe-connect.c:6031 +#: fe-connect.c:6078 #, c-format msgid "" "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): " @@ -638,41 +648,41 @@ "неожиданный символ \"%c\" в позиции %d в URI (ожидалось \":\" или \"/\"): " "\"%s\"\n" -#: fe-connect.c:6160 +#: fe-connect.c:6207 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "лишний разделитель ключа/значения \"=\" в параметрах URI: \"%s\"\n" -#: fe-connect.c:6180 +#: fe-connect.c:6227 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "в параметрах URI не хватает разделителя ключа/значения \"=\": \"%s\"\n" -#: fe-connect.c:6231 +#: fe-connect.c:6278 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "неверный параметр в URI: \"%s\"\n" -#: fe-connect.c:6305 +#: fe-connect.c:6352 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "неверный символ, закодированный с %%: \"%s\"\n" -#: fe-connect.c:6315 +#: fe-connect.c:6362 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "недопустимое значение %%00 для символа, закодированного с %%: \"%s\"\n" -#: fe-connect.c:6678 +#: fe-connect.c:6725 msgid "connection pointer is NULL\n" msgstr "нулевой указатель соединения\n" -#: fe-connect.c:6974 +#: fe-connect.c:7021 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "ПРЕДУПРЕЖДЕНИЕ: файл паролей \"%s\" - не обычный файл\n" -#: fe-connect.c:6983 +#: fe-connect.c:7030 #, c-format msgid "" "WARNING: password file \"%s\" has group or world access; permissions should " @@ -681,23 +691,23 @@ "ПРЕДУПРЕЖДЕНИЕ: к файлу паролей \"%s\" имеют доступ все или группа; права " "должны быть u=rw (0600) или более ограниченные\n" -#: fe-connect.c:7091 +#: fe-connect.c:7138 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "пароль получен из файла \"%s\"\n" -#: fe-exec.c:444 fe-exec.c:2821 +#: fe-exec.c:444 fe-exec.c:2825 #, c-format msgid "row number %d is out of range 0..%d" msgstr "номер записи %d вне диапазона 0..%d" #: fe-exec.c:505 fe-protocol2.c:497 fe-protocol2.c:532 fe-protocol2.c:1050 -#: fe-protocol3.c:206 fe-protocol3.c:233 fe-protocol3.c:250 fe-protocol3.c:330 -#: fe-protocol3.c:723 fe-protocol3.c:954 +#: fe-protocol3.c:208 fe-protocol3.c:235 fe-protocol3.c:252 fe-protocol3.c:330 +#: fe-protocol3.c:694 fe-protocol3.c:922 msgid "out of memory" msgstr "нехватка памяти" -#: fe-exec.c:506 fe-protocol2.c:1396 fe-protocol3.c:1907 +#: fe-exec.c:506 fe-protocol2.c:1396 fe-protocol3.c:1875 #, c-format msgid "%s" msgstr "%s" @@ -730,7 +740,7 @@ msgid "statement name is a null pointer\n" msgstr "указатель на имя оператора нулевой\n" -#: fe-exec.c:1361 fe-exec.c:1524 fe-exec.c:2233 fe-exec.c:2435 +#: fe-exec.c:1361 fe-exec.c:1524 fe-exec.c:2237 fe-exec.c:2439 msgid "function requires at least protocol version 3.0\n" msgstr "функция требует протокол минимум версии 3.0\n" @@ -746,69 +756,69 @@ msgid "length must be given for binary parameter\n" msgstr "для двоичного параметра должна быть указана длина\n" -#: fe-exec.c:1863 +#: fe-exec.c:1867 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "неожиданный asyncStatus: %d\n" -#: fe-exec.c:1883 +#: fe-exec.c:1887 #, c-format msgid "PGEventProc \"%s\" failed during PGEVT_RESULTCREATE event\n" msgstr "ошибка в PGEventProc \"%s\" при обработке события PGEVT_RESULTCREATE\n" -#: fe-exec.c:2043 +#: fe-exec.c:2047 msgid "COPY terminated by new PQexec" msgstr "операция COPY прервана вызовом PQexec" -#: fe-exec.c:2051 +#: fe-exec.c:2055 msgid "COPY IN state must be terminated first\n" msgstr "сначала должно завершиться состояние COPY IN\n" -#: fe-exec.c:2071 +#: fe-exec.c:2075 msgid "COPY OUT state must be terminated first\n" msgstr "сначала должно завершиться состояние COPY OUT\n" -#: fe-exec.c:2079 +#: fe-exec.c:2083 msgid "PQexec not allowed during COPY BOTH\n" msgstr "вызов PQexec не допускается в процессе COPY BOTH\n" -#: fe-exec.c:2325 fe-exec.c:2392 fe-exec.c:2482 fe-protocol2.c:1353 -#: fe-protocol3.c:1838 +#: fe-exec.c:2329 fe-exec.c:2396 fe-exec.c:2486 fe-protocol2.c:1353 +#: fe-protocol3.c:1806 msgid "no COPY in progress\n" msgstr "операция COPY не выполняется\n" -#: fe-exec.c:2672 +#: fe-exec.c:2676 msgid "connection in wrong state\n" msgstr "соединение в неправильном состоянии\n" -#: fe-exec.c:2703 +#: fe-exec.c:2707 msgid "invalid ExecStatusType code" msgstr "неверный код ExecStatusType" -#: fe-exec.c:2730 +#: fe-exec.c:2734 msgid "PGresult is not an error result\n" msgstr "В PGresult не передан результат ошибки\n" -#: fe-exec.c:2805 fe-exec.c:2828 +#: fe-exec.c:2809 fe-exec.c:2832 #, c-format msgid "column number %d is out of range 0..%d" msgstr "номер столбца %d вне диапазона 0..%d" -#: fe-exec.c:2843 +#: fe-exec.c:2847 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "номер параметра %d вне диапазона 0..%d" -#: fe-exec.c:3153 +#: fe-exec.c:3157 #, c-format msgid "could not interpret result from server: %s" msgstr "не удалось интерпретировать ответ сервера: %s" -#: fe-exec.c:3392 fe-exec.c:3476 +#: fe-exec.c:3396 fe-exec.c:3480 msgid "incomplete multibyte character\n" msgstr "неполный многобайтный символ\n" -#: fe-gssapi-common.c:124 +#: fe-gssapi-common.c:125 msgid "GSSAPI name import error" msgstr "ошибка импорта имени в GSSAPI" @@ -943,7 +953,7 @@ msgid "invalid state %c, probably indicative of memory corruption\n" msgstr "неверное состояние %c - возможно разрушение памяти\n" -#: fe-protocol2.c:473 fe-protocol3.c:183 +#: fe-protocol2.c:473 fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "от сервера во время простоя получено сообщение типа 0x%02x" @@ -971,12 +981,12 @@ "сервер отправил двоичные данные (сообщение \"B\") без предварительного " "описания строки (сообщение \"T\")" -#: fe-protocol2.c:626 fe-protocol3.c:408 +#: fe-protocol2.c:626 fe-protocol3.c:405 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "неожиданный ответ сервера; первый полученный символ: \"%c\"\n" -#: fe-protocol2.c:755 fe-protocol2.c:930 fe-protocol3.c:622 fe-protocol3.c:849 +#: fe-protocol2.c:755 fe-protocol2.c:930 fe-protocol3.c:605 fe-protocol3.c:811 msgid "out of memory for query result" msgstr "недостаточно памяти для результата запроса" @@ -985,12 +995,12 @@ msgid "lost synchronization with server, resetting connection" msgstr "потеряна синхронизация с сервером; попытка восстановить соединение" -#: fe-protocol2.c:1530 fe-protocol2.c:1562 fe-protocol3.c:2095 +#: fe-protocol2.c:1530 fe-protocol2.c:1562 fe-protocol3.c:2063 #, c-format msgid "protocol error: id=0x%x\n" msgstr "ошибка протокола: id=0x%x\n" -#: fe-protocol3.c:365 +#: fe-protocol3.c:362 msgid "" "server sent data (\"D\" message) without prior row description (\"T\" " "message)\n" @@ -998,116 +1008,108 @@ "сервер отправил данные (сообщение \"D\") без предварительного описания " "строки (сообщение \"T\")\n" -#: fe-protocol3.c:429 +#: fe-protocol3.c:426 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "содержимое не соответствует длине в сообщении типа \"%c\"\n" -#: fe-protocol3.c:449 +#: fe-protocol3.c:446 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "" "потеряна синхронизация с сервером: получено сообщение типа \"%c\", длина %d\n" -#: fe-protocol3.c:500 fe-protocol3.c:540 +#: fe-protocol3.c:496 fe-protocol3.c:536 msgid "insufficient data in \"T\" message" msgstr "недостаточно данных в сообщении \"T\"" -#: fe-protocol3.c:573 -msgid "extraneous data in \"T\" message" -msgstr "лишние данные в сообщении \"T\"" - -#: fe-protocol3.c:686 -msgid "extraneous data in \"t\" message" -msgstr "лишние данные в сообщении \"t\"" +#: fe-protocol3.c:674 +msgid "insufficient data in \"t\" message" +msgstr "недостаточно данных в сообщении \"t\"" -#: fe-protocol3.c:757 fe-protocol3.c:789 fe-protocol3.c:807 +#: fe-protocol3.c:733 fe-protocol3.c:765 fe-protocol3.c:783 msgid "insufficient data in \"D\" message" msgstr "недостаточно данных в сообщении \"D\"" -#: fe-protocol3.c:763 +#: fe-protocol3.c:739 msgid "unexpected field count in \"D\" message" msgstr "неверное число полей в сообщении \"D\"" -#: fe-protocol3.c:816 -msgid "extraneous data in \"D\" message" -msgstr "лишние данные в сообщении \"D\"" - -#: fe-protocol3.c:1008 +#: fe-protocol3.c:976 msgid "no error message available\n" msgstr "нет сообщения об ошибке\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1056 fe-protocol3.c:1075 +#: fe-protocol3.c:1024 fe-protocol3.c:1043 #, c-format msgid " at character %s" msgstr " символ %s" -#: fe-protocol3.c:1088 +#: fe-protocol3.c:1056 #, c-format msgid "DETAIL: %s\n" msgstr "ПОДРОБНОСТИ: %s\n" -#: fe-protocol3.c:1091 +#: fe-protocol3.c:1059 #, c-format msgid "HINT: %s\n" msgstr "ПОДСКАЗКА: %s\n" -#: fe-protocol3.c:1094 +#: fe-protocol3.c:1062 #, c-format msgid "QUERY: %s\n" msgstr "ЗАПРОС: %s\n" -#: fe-protocol3.c:1101 +#: fe-protocol3.c:1069 #, c-format msgid "CONTEXT: %s\n" msgstr "КОНТЕКСТ: %s\n" -#: fe-protocol3.c:1110 +#: fe-protocol3.c:1078 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "СХЕМА: %s\n" -#: fe-protocol3.c:1114 +#: fe-protocol3.c:1082 #, c-format msgid "TABLE NAME: %s\n" msgstr "ТАБЛИЦА: %s\n" -#: fe-protocol3.c:1118 +#: fe-protocol3.c:1086 #, c-format msgid "COLUMN NAME: %s\n" msgstr "СТОЛБЕЦ: %s\n" -#: fe-protocol3.c:1122 +#: fe-protocol3.c:1090 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "ТИП ДАННЫХ: %s\n" -#: fe-protocol3.c:1126 +#: fe-protocol3.c:1094 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "ОГРАНИЧЕНИЕ: %s\n" -#: fe-protocol3.c:1138 +#: fe-protocol3.c:1106 msgid "LOCATION: " msgstr "ПОЛОЖЕНИЕ: " -#: fe-protocol3.c:1140 +#: fe-protocol3.c:1108 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1142 +#: fe-protocol3.c:1110 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1337 +#: fe-protocol3.c:1305 #, c-format msgid "LINE %d: " msgstr "СТРОКА %d: " -#: fe-protocol3.c:1732 +#: fe-protocol3.c:1700 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline можно вызывать только во время COPY OUT с текстом\n" @@ -1167,16 +1169,16 @@ msgid "GSSAPI context establishment error" msgstr "ошибка установления контекста в GSSAPI" -#: fe-secure-openssl.c:214 fe-secure-openssl.c:321 fe-secure-openssl.c:1291 +#: fe-secure-openssl.c:214 fe-secure-openssl.c:321 fe-secure-openssl.c:1325 #, c-format msgid "SSL SYSCALL error: %s\n" msgstr "ошибка SSL SYSCALL: %s\n" -#: fe-secure-openssl.c:221 fe-secure-openssl.c:328 fe-secure-openssl.c:1295 +#: fe-secure-openssl.c:221 fe-secure-openssl.c:328 fe-secure-openssl.c:1329 msgid "SSL SYSCALL error: EOF detected\n" msgstr "ошибка SSL SYSCALL: конец файла (EOF)\n" -#: fe-secure-openssl.c:232 fe-secure-openssl.c:339 fe-secure-openssl.c:1304 +#: fe-secure-openssl.c:232 fe-secure-openssl.c:339 fe-secure-openssl.c:1338 #, c-format msgid "SSL error: %s\n" msgstr "ошибка SSL: %s\n" @@ -1185,7 +1187,7 @@ msgid "SSL connection has been closed unexpectedly\n" msgstr "SSL-соединение было неожиданно закрыто\n" -#: fe-secure-openssl.c:253 fe-secure-openssl.c:360 fe-secure-openssl.c:1354 +#: fe-secure-openssl.c:253 fe-secure-openssl.c:360 fe-secure-openssl.c:1388 #, c-format msgid "unrecognized SSL error code: %d\n" msgstr "нераспознанный код ошибки SSL: %d\n" @@ -1298,26 +1300,41 @@ msgid "certificate present, but not private key file \"%s\"\n" msgstr "сертификат присутствует, но файла закрытого ключа \"%s\" нет\n" -#: fe-secure-openssl.c:1194 +#: fe-secure-openssl.c:1195 +#, c-format +msgid "private key file \"%s\" is not a regular file\n" +msgstr "файл закрытого ключа \"%s\" - не обычный файл\n" + +#: fe-secure-openssl.c:1219 +#, c-format +msgid "private key file \"%s\" must be owned by the current user or root\n" +msgstr "" +"файл закрытого ключа \"%s\" должен принадлежать root или текущему " +"пользователю\n" + +#: fe-secure-openssl.c:1228 #, c-format msgid "" -"private key file \"%s\" has group or world access; permissions should be " -"u=rw (0600) or less\n" +"private key file \"%s\" has group or world access; file must have " +"permissions u=rw (0600) or less if owned by the current user, or permissions " +"u=rw,g=r (0640) or less if owned by root\n" msgstr "" -"к файлу закрытого ключа \"%s\" имеют доступ все или группа; права должны " -"быть u=rw (0600) или более ограниченные\n" +"к файлу закрытого ключа \"%s\" имеют доступ все или группа; для него должны " +"быть заданы разрешения u=rw (0600) или более строгие, если он принадлежит " +"текущему пользователю, либо u=rw,g=r (0640) или более строгие, если он " +"принадлежит root\n" -#: fe-secure-openssl.c:1219 +#: fe-secure-openssl.c:1253 #, c-format msgid "could not load private key file \"%s\": %s\n" msgstr "не удалось загрузить файл закрытого ключа \"%s\": %s\n" -#: fe-secure-openssl.c:1237 +#: fe-secure-openssl.c:1271 #, c-format msgid "certificate does not match private key file \"%s\": %s\n" msgstr "сертификат не соответствует файлу закрытого ключа \"%s\": %s\n" -#: fe-secure-openssl.c:1337 +#: fe-secure-openssl.c:1371 #, c-format msgid "" "This may indicate that the server does not support any SSL protocol version " @@ -1326,22 +1343,22 @@ "Это может указывать на то, что сервер не поддерживает ни одну версию " "протокола SSL между %s и %s.\n" -#: fe-secure-openssl.c:1373 +#: fe-secure-openssl.c:1407 #, c-format msgid "certificate could not be obtained: %s\n" msgstr "не удалось получить сертификат: %s\n" -#: fe-secure-openssl.c:1462 +#: fe-secure-openssl.c:1496 #, c-format msgid "no SSL error reported" msgstr "нет сообщения об ошибке SSL" -#: fe-secure-openssl.c:1471 +#: fe-secure-openssl.c:1505 #, c-format msgid "SSL error code %lu" msgstr "код ошибки SSL: %lu" -#: fe-secure-openssl.c:1718 +#: fe-secure-openssl.c:1753 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "ПРЕДУПРЕЖДЕНИЕ: значение sslpassword усечено\n" @@ -1361,6 +1378,15 @@ msgid "unrecognized socket error: 0x%08X/%d" msgstr "нераспознанная ошибка сокета: 0x%08X/%d" +#~ msgid "extraneous data in \"T\" message" +#~ msgstr "лишние данные в сообщении \"T\"" + +#~ msgid "extraneous data in \"t\" message" +#~ msgstr "лишние данные в сообщении \"t\"" + +#~ msgid "extraneous data in \"D\" message" +#~ msgstr "лишние данные в сообщении \"D\"" + #~ msgid "SSL library does not support CRL certificates (file \"%s\")\n" #~ msgstr "Библиотека SSL не поддерживает проверку CRL (файл \"%s\")\n" diff -Nru postgresql-13-13.4/src/interfaces/libpq/po/sv.po postgresql-13-13.7/src/interfaces/libpq/po/sv.po --- postgresql-13-13.4/src/interfaces/libpq/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/interfaces/libpq/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,6 +1,6 @@ # Swedish message translation file for libpq # Peter Eisentraut , 2001, 2010. -# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022. # # Use these quotes: "%s" # @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-08-27 21:39+0000\n" -"PO-Revision-Date: 2020-08-30 07:05+0200\n" +"POT-Creation-Date: 2022-04-06 21:24+0000\n" +"PO-Revision-Date: 2022-04-11 14:13+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -52,14 +52,14 @@ #: fe-auth-scram.c:600 fe-auth-scram.c:626 fe-auth-scram.c:641 #: fe-auth-scram.c:691 fe-auth-scram.c:725 fe-auth.c:289 fe-auth.c:359 #: fe-auth.c:394 fe-auth.c:611 fe-auth.c:770 fe-auth.c:1129 fe-auth.c:1277 -#: fe-connect.c:892 fe-connect.c:1419 fe-connect.c:1595 fe-connect.c:2200 -#: fe-connect.c:2223 fe-connect.c:2952 fe-connect.c:4598 fe-connect.c:4854 -#: fe-connect.c:4973 fe-connect.c:5226 fe-connect.c:5306 fe-connect.c:5405 -#: fe-connect.c:5661 fe-connect.c:5690 fe-connect.c:5762 fe-connect.c:5786 -#: fe-connect.c:5804 fe-connect.c:5905 fe-connect.c:5914 fe-connect.c:6270 -#: fe-connect.c:6420 fe-exec.c:2747 fe-exec.c:3494 fe-exec.c:3659 -#: fe-gssapi-common.c:111 fe-lobj.c:895 fe-protocol2.c:1207 fe-protocol3.c:995 -#: fe-protocol3.c:1699 fe-secure-common.c:110 fe-secure-gssapi.c:504 +#: fe-connect.c:892 fe-connect.c:1424 fe-connect.c:1600 fe-connect.c:2205 +#: fe-connect.c:2228 fe-connect.c:2962 fe-connect.c:4652 fe-connect.c:4908 +#: fe-connect.c:5027 fe-connect.c:5280 fe-connect.c:5360 fe-connect.c:5459 +#: fe-connect.c:5715 fe-connect.c:5744 fe-connect.c:5816 fe-connect.c:5840 +#: fe-connect.c:5858 fe-connect.c:5959 fe-connect.c:5968 fe-connect.c:6324 +#: fe-connect.c:6474 fe-exec.c:2751 fe-exec.c:3498 fe-exec.c:3663 +#: fe-gssapi-common.c:112 fe-lobj.c:895 fe-protocol2.c:1207 fe-protocol3.c:963 +#: fe-protocol3.c:1667 fe-secure-common.c:110 fe-secure-gssapi.c:504 #: fe-secure-openssl.c:440 fe-secure-openssl.c:1091 msgid "out of memory\n" msgstr "slut på minne\n" @@ -110,7 +110,7 @@ msgid "GSSAPI continuation error" msgstr "GSSAPI fortsättningsfel" -#: fe-auth.c:158 fe-auth.c:388 fe-gssapi-common.c:98 fe-secure-common.c:98 +#: fe-auth.c:158 fe-auth.c:388 fe-gssapi-common.c:99 fe-secure-common.c:98 msgid "host name must be specified\n" msgstr "värdnamn måste anges\n" @@ -210,12 +210,12 @@ msgid "user name lookup failure: error code %lu\n" msgstr "misslyckad sökning efter användarnamn: felkod %lu\n" -#: fe-auth.c:1114 fe-connect.c:2834 +#: fe-auth.c:1114 fe-connect.c:2839 #, c-format msgid "could not look up local user ID %d: %s\n" msgstr "kunde inte slå upp lokalt användar-id %d: %s\n" -#: fe-auth.c:1119 fe-connect.c:2839 +#: fe-auth.c:1119 fe-connect.c:2844 #, c-format msgid "local user with ID %d does not exist\n" msgstr "lokal användare med ID %d existerar inte\n" @@ -238,61 +238,61 @@ msgid "could not match %d host names to %d hostaddr values\n" msgstr "kunde inte matcha %d värdnamn till %d värdadresser\n" -#: fe-connect.c:1156 +#: fe-connect.c:1161 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "kunde inte matcha %d portnummer med %d värdar\n" -#: fe-connect.c:1249 +#: fe-connect.c:1254 #, c-format msgid "invalid channel_binding value: \"%s\"\n" msgstr "ogiltigt channel_binding-värde: \"%s\"\n" -#: fe-connect.c:1275 +#: fe-connect.c:1280 #, c-format msgid "invalid sslmode value: \"%s\"\n" msgstr "ogiltigt värde för ssl-läge: \"%s\"\n" -#: fe-connect.c:1296 +#: fe-connect.c:1301 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "värde för ssl-läge, \"%s\", är ogiltigt när SSL-stöd inte kompilerats in\n" -#: fe-connect.c:1317 +#: fe-connect.c:1322 #, c-format msgid "invalid ssl_min_protocol_version value: \"%s\"\n" msgstr "ogiltigt ssl_min_protocol_version-värde: \"%s\"\n" -#: fe-connect.c:1325 +#: fe-connect.c:1330 #, c-format msgid "invalid ssl_max_protocol_version value: \"%s\"\n" msgstr "ogiltigt ssl_max_protocol_version-värde: \"%s\"\n" -#: fe-connect.c:1342 +#: fe-connect.c:1347 msgid "invalid SSL protocol version range\n" msgstr "ogiltigt intervall för SSL-protokollversion\n" -#: fe-connect.c:1357 +#: fe-connect.c:1362 #, c-format msgid "invalid gssencmode value: \"%s\"\n" msgstr "ogiltigt värde för gssencmode: \"%s\"\n" -#: fe-connect.c:1366 +#: fe-connect.c:1371 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "värde för gssenc-läge, \"%s\", är ogiltigt när GSSAPI-stöd inte kompilerats in\n" -#: fe-connect.c:1401 +#: fe-connect.c:1406 #, c-format msgid "invalid target_session_attrs value: \"%s\"\n" msgstr "ogiltigt target_session_attrs-värde: \"%s\"\n" -#: fe-connect.c:1619 +#: fe-connect.c:1624 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "kunde inte sätta uttag (socket) till läget TCP-ingen-fördröjning: %s\n" -#: fe-connect.c:1680 +#: fe-connect.c:1685 #, c-format msgid "" "could not connect to server: %s\n" @@ -303,7 +303,7 @@ "\tKör servern på lokalt och accepterar den\n" "\tanslutningar på Unix-uttaget \"%s\"?\n" -#: fe-connect.c:1717 +#: fe-connect.c:1722 #, c-format msgid "" "could not connect to server: %s\n" @@ -314,7 +314,7 @@ "\tKör servern på värden \"%s\" (%s) och accepterar\n" "\tden TCP/IP-uppkopplingar på port %s?\n" -#: fe-connect.c:1725 +#: fe-connect.c:1730 #, c-format msgid "" "could not connect to server: %s\n" @@ -325,331 +325,334 @@ "\tKör servern på värden \"%s\" och accepterar\n" "\tden TCP/IP-uppkopplingar på porten %s?\n" -#: fe-connect.c:1795 +#: fe-connect.c:1800 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "ogiltigt heltalsvärde \"%s\" för anslutningsflagga \"%s\"\n" -#: fe-connect.c:1825 fe-connect.c:1859 fe-connect.c:1894 fe-connect.c:1981 -#: fe-connect.c:2623 +#: fe-connect.c:1830 fe-connect.c:1864 fe-connect.c:1899 fe-connect.c:1986 +#: fe-connect.c:2628 #, c-format msgid "setsockopt(%s) failed: %s\n" msgstr "setsockopt(%s) misslyckades: %s\n" -#: fe-connect.c:1947 +#: fe-connect.c:1952 #, c-format msgid "WSAIoctl(SIO_KEEPALIVE_VALS) failed: %ui\n" msgstr "WSAIoctl(SIO_KEEPALIVE_VALS) misslyckades: %ui\n" -#: fe-connect.c:2313 +#: fe-connect.c:2318 msgid "invalid connection state, probably indicative of memory corruption\n" -msgstr "ogiltigt förbindelsetillstånd, antagligen korrupt minne\n" +msgstr "ogiltigt tillstånd i anslutning, antagligen korrupt minne\n" -#: fe-connect.c:2379 +#: fe-connect.c:2384 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "ogiltigt portnummer \"%s\"\n" -#: fe-connect.c:2395 +#: fe-connect.c:2400 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "kunde inte översätta värdnamn \"%s\" till adress: %s\n" -#: fe-connect.c:2408 +#: fe-connect.c:2413 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "kunde inte parsa nätverksadress \"%s\": %s\n" -#: fe-connect.c:2421 +#: fe-connect.c:2426 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "Sökväg till unixdomänuttag \"%s\" är för lång (maximalt %d byte)\n" -#: fe-connect.c:2436 +#: fe-connect.c:2441 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "kunde inte översätta sökväg till unix-uttag (socket) \"%s\" till adress: %s\n" -#: fe-connect.c:2560 +#: fe-connect.c:2565 #, c-format msgid "could not create socket: %s\n" msgstr "kan inte skapa uttag: %s\n" -#: fe-connect.c:2582 +#: fe-connect.c:2587 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "kunde inte sätta uttag (socket) till ickeblockerande läge: %s\n" -#: fe-connect.c:2592 +#: fe-connect.c:2597 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "kunde inte ställa in uttag (socket) i \"close-on-exec\"-läge: %s\n" -#: fe-connect.c:2610 +#: fe-connect.c:2615 msgid "keepalives parameter must be an integer\n" msgstr "keepalives-parameter måste vara ett heltal\n" -#: fe-connect.c:2750 +#: fe-connect.c:2755 #, c-format msgid "could not get socket error status: %s\n" msgstr "kunde inte hämta felstatus för uttag (socket): %s\n" -#: fe-connect.c:2778 +#: fe-connect.c:2783 #, c-format msgid "could not get client address from socket: %s\n" msgstr "kunde inte få tag på klientadressen från uttag (socket): %s\n" -#: fe-connect.c:2820 +#: fe-connect.c:2825 msgid "requirepeer parameter is not supported on this platform\n" msgstr "requirepeer-parameter stöds inte på denna plattform\n" -#: fe-connect.c:2823 +#: fe-connect.c:2828 #, c-format msgid "could not get peer credentials: %s\n" msgstr "kunde inte hämta andra sidans referenser: %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2852 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "requirepeer anger \"%s\", men andra sidans användarnamn är \"%s\"\n" -#: fe-connect.c:2887 +#: fe-connect.c:2892 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "kunde inte skicka GSSAPI-paket för uppkopplingsförhandling: %s\n" -#: fe-connect.c:2899 +#: fe-connect.c:2904 msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)\n" msgstr "GSSAPI-kryptering krävdes men var omöjligt (kanske ingen credential-cache, inget serverstöd eller använder ett lokalt uttag)\n" -#: fe-connect.c:2926 +#: fe-connect.c:2936 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "kunde inte skicka SSL-paket för uppkopplingsförhandling: %s\n" -#: fe-connect.c:2965 +#: fe-connect.c:2975 #, c-format msgid "could not send startup packet: %s\n" msgstr "kan inte skicka startpaketet: %s\n" -#: fe-connect.c:3035 +#: fe-connect.c:3045 msgid "server does not support SSL, but SSL was required\n" msgstr "SSL stöds inte av servern, men SSL krävdes\n" -#: fe-connect.c:3061 +#: fe-connect.c:3072 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "tog emot ogiltigt svar till SSL-uppkopplingsförhandling: %c\n" -#: fe-connect.c:3151 +#: fe-connect.c:3093 +msgid "received unencrypted data after SSL response\n" +msgstr "tog emot okrypterad data efter SSL-svar\n" + +#: fe-connect.c:3174 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "GSSAPI stöds inte av servern, men det krävdes\n" -#: fe-connect.c:3162 +#: fe-connect.c:3186 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "tog emot ogiltigt svar till GSSAPI-uppkopplingsförhandling: %c\n" -#: fe-connect.c:3229 fe-connect.c:3260 +#: fe-connect.c:3205 +msgid "received unencrypted data after GSSAPI encryption response\n" +msgstr "tog emot okrypterad data efter GSSAPI-krypteringssvar\n" + +#: fe-connect.c:3265 fe-connect.c:3296 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "förväntade autentiseringsförfrågan från servern, men fick %c\n" -#: fe-connect.c:3502 +#: fe-connect.c:3537 msgid "unexpected message from server during startup\n" msgstr "oväntat meddelande från servern under starten\n" -#: fe-connect.c:3707 +#: fe-connect.c:3742 #, c-format msgid "could not make a writable connection to server \"%s:%s\"\n" msgstr "kunde inte upprätta en skrivbar anslutning till server \"%s:%s\"\n" -#: fe-connect.c:3753 +#: fe-connect.c:3788 #, c-format msgid "test \"SHOW transaction_read_only\" failed on server \"%s:%s\"\n" msgstr "test \"SHOW transaction_read_only\" misslyckades på server \"%s:%s\"\n" -#: fe-connect.c:3768 +#: fe-connect.c:3803 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" -msgstr "ogiltigt förbindelsetillstånd %d, antagligen korrupt minne\n" +msgstr "ogiltigt tillstånd %d i anslutning, antagligen korrupt minne\n" -#: fe-connect.c:4204 fe-connect.c:4264 +#: fe-connect.c:4242 fe-connect.c:4302 #, c-format msgid "PGEventProc \"%s\" failed during PGEVT_CONNRESET event\n" msgstr "PGEventProc \"%s\" misslyckades under PGEVT_CONNRESET-händelse\n" -#: fe-connect.c:4611 +#: fe-connect.c:4665 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "ogiltig LDAP URL \"%s\": schemat måste vara ldap://\n" -#: fe-connect.c:4626 +#: fe-connect.c:4680 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "ogiltig LDAP URL \"%s\": saknar urskiljbart namn\n" -#: fe-connect.c:4638 fe-connect.c:4693 +#: fe-connect.c:4692 fe-connect.c:4747 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "ogiltig LDAP URL \"%s\": måste finnas exakt ett attribut\n" -#: fe-connect.c:4649 fe-connect.c:4708 +#: fe-connect.c:4703 fe-connect.c:4762 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" msgstr "ogiltig LDAP URL \"%s\": måste ha sök-scope (base/one/sub)\n" -#: fe-connect.c:4660 +#: fe-connect.c:4714 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "ogiltigt LDAP URL \"%s\": inget filter\n" -#: fe-connect.c:4681 +#: fe-connect.c:4735 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "ogiltig LDAP URL \"%s\": ogiltigt portnummer\n" -#: fe-connect.c:4717 +#: fe-connect.c:4771 msgid "could not create LDAP structure\n" msgstr "kunde inte skapa LDAP-struktur\n" -#: fe-connect.c:4793 +#: fe-connect.c:4847 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "uppslagning av LDAP-server misslyckades: %s\n" -#: fe-connect.c:4804 +#: fe-connect.c:4858 msgid "more than one entry found on LDAP lookup\n" msgstr "mer än en post hittad i LDAP-uppslagning\n" -#: fe-connect.c:4805 fe-connect.c:4817 +#: fe-connect.c:4859 fe-connect.c:4871 msgid "no entry found on LDAP lookup\n" msgstr "ingen post hittad i LDAP-uppslagning\n" -#: fe-connect.c:4828 fe-connect.c:4841 +#: fe-connect.c:4882 fe-connect.c:4895 msgid "attribute has no values on LDAP lookup\n" msgstr "attributet har inga värden i LDAP-uppslagning\n" -#: fe-connect.c:4893 fe-connect.c:4912 fe-connect.c:5444 +#: fe-connect.c:4947 fe-connect.c:4966 fe-connect.c:5498 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" -msgstr "\"=\" efter \"%s\" saknas i förbindelseinfosträng\n" +msgstr "\"=\" efter \"%s\" saknas i anslutningssträng\n" -#: fe-connect.c:4985 fe-connect.c:5629 fe-connect.c:6403 +#: fe-connect.c:5039 fe-connect.c:5683 fe-connect.c:6457 #, c-format msgid "invalid connection option \"%s\"\n" -msgstr "ogiltig förbindelseparameter \"%s\"\n" +msgstr "ogiltig anslutningsparameter \"%s\"\n" -#: fe-connect.c:5001 fe-connect.c:5493 +#: fe-connect.c:5055 fe-connect.c:5547 msgid "unterminated quoted string in connection info string\n" msgstr "icke terminerad sträng i uppkopplingsinformationen\n" -#: fe-connect.c:5084 +#: fe-connect.c:5138 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "definition av service \"%s\" hittades inte\n" -#: fe-connect.c:5107 +#: fe-connect.c:5161 #, c-format msgid "service file \"%s\" not found\n" msgstr "servicefil \"%s\" hittades inte\n" -#: fe-connect.c:5122 +#: fe-connect.c:5176 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "rad %d för lång i servicefil \"%s\"\n" -#: fe-connect.c:5194 fe-connect.c:5238 +#: fe-connect.c:5248 fe-connect.c:5292 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "syntaxfel i servicefel \"%s\", rad %d\n" -#: fe-connect.c:5205 +#: fe-connect.c:5259 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d\n" msgstr "nästlade servicespecifikationer stöds inte i servicefil \"%s\", rad %d\n" -#: fe-connect.c:5925 +#: fe-connect.c:5979 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "ogiltig URI propagerad till intern parsningsrutin: \"%s\"\n" -#: fe-connect.c:6002 +#: fe-connect.c:6056 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"\n" msgstr "nådde slutet på strängen när vi letade efter matchande \"]\" i IPv6-värdadress i URI: \"%s\"\n" -#: fe-connect.c:6009 +#: fe-connect.c:6063 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "IPv6-värdadress får ej vara tom i URI: \"%s\"\n" -#: fe-connect.c:6024 +#: fe-connect.c:6078 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n" msgstr "oväntat tecken \"%c\" vid position %d i URI (förväntade \":\" eller \"/\"): \"%s\"\n" -#: fe-connect.c:6153 +#: fe-connect.c:6207 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "extra nyckel/värde-separator \"=\" i URI-frågeparameter: \"%s\"\n" -#: fe-connect.c:6173 +#: fe-connect.c:6227 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "saknar nyckel/värde-separator \"=\" i URI-frågeparameter: \"%s\"\n" -#: fe-connect.c:6224 +#: fe-connect.c:6278 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "ogiltig URI-frågeparameter: \"%s\"\n" -#: fe-connect.c:6298 +#: fe-connect.c:6352 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "ogiltigt procent-kodad symbol: \"%s\"\n" -#: fe-connect.c:6308 +#: fe-connect.c:6362 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "förbjudet värde %%00 i procentkodat värde: \"%s\"\n" -#: fe-connect.c:6671 +#: fe-connect.c:6725 msgid "connection pointer is NULL\n" msgstr "anslutningspekare är NULL\n" -#: fe-connect.c:6970 +#: fe-connect.c:7021 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "FEL: lösenordsfil \"%s\" är inte en vanlig fil\n" -#: fe-connect.c:6979 +#: fe-connect.c:7030 #, c-format msgid "WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" msgstr "VARNING: lösenordsfilen \"%s\" har läsrättigheter för gruppen eller världen; rättigheten skall vara u=rw (0600) eller mindre\n" -#: fe-connect.c:7020 -#, c-format -msgid "WARNING: line %d too long in password file \"%s\"\n" -msgstr "VARNING: rad %d för lång i lösenordsfil \"%s\"\n" - -#: fe-connect.c:7099 +#: fe-connect.c:7138 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "lösenord hämtat från fil \"%s\"\n" -#: fe-exec.c:444 fe-exec.c:2821 +#: fe-exec.c:444 fe-exec.c:2825 #, c-format msgid "row number %d is out of range 0..%d" msgstr "radnummer %d är utanför giltigt intervall 0..%d" #: fe-exec.c:505 fe-protocol2.c:497 fe-protocol2.c:532 fe-protocol2.c:1050 -#: fe-protocol3.c:206 fe-protocol3.c:233 fe-protocol3.c:250 fe-protocol3.c:330 -#: fe-protocol3.c:723 fe-protocol3.c:954 +#: fe-protocol3.c:208 fe-protocol3.c:235 fe-protocol3.c:252 fe-protocol3.c:330 +#: fe-protocol3.c:694 fe-protocol3.c:922 msgid "out of memory" msgstr "slut på minne" -#: fe-exec.c:506 fe-protocol2.c:1396 fe-protocol3.c:1907 +#: fe-exec.c:506 fe-protocol2.c:1396 fe-protocol3.c:1875 #, c-format msgid "%s" msgstr "%s" @@ -682,7 +685,7 @@ msgid "statement name is a null pointer\n" msgstr "satsens namn är en null-pekare\n" -#: fe-exec.c:1361 fe-exec.c:1524 fe-exec.c:2233 fe-exec.c:2435 +#: fe-exec.c:1361 fe-exec.c:1524 fe-exec.c:2237 fe-exec.c:2439 msgid "function requires at least protocol version 3.0\n" msgstr "funktionen kräver minst protokollversion 3.0\n" @@ -698,69 +701,69 @@ msgid "length must be given for binary parameter\n" msgstr "längden måste anges för en binär parameter\n" -#: fe-exec.c:1863 +#: fe-exec.c:1867 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "oväntad asyncStatus: %d\n" -#: fe-exec.c:1883 +#: fe-exec.c:1887 #, c-format msgid "PGEventProc \"%s\" failed during PGEVT_RESULTCREATE event\n" msgstr "PGEventProc \"%s\" misslyckades under PGEVT_RESULTCREATE-händelse\n" -#: fe-exec.c:2043 +#: fe-exec.c:2047 msgid "COPY terminated by new PQexec" msgstr "COPY terminerad av ny PQexec" -#: fe-exec.c:2051 +#: fe-exec.c:2055 msgid "COPY IN state must be terminated first\n" msgstr "COPY IN-läge måste avslutas först\n" -#: fe-exec.c:2071 +#: fe-exec.c:2075 msgid "COPY OUT state must be terminated first\n" msgstr "COPY OUT-läge måste avslutas först\n" -#: fe-exec.c:2079 +#: fe-exec.c:2083 msgid "PQexec not allowed during COPY BOTH\n" msgstr "PQexec tillåts inte under COPY BOTH\n" -#: fe-exec.c:2325 fe-exec.c:2392 fe-exec.c:2482 fe-protocol2.c:1353 -#: fe-protocol3.c:1838 +#: fe-exec.c:2329 fe-exec.c:2396 fe-exec.c:2486 fe-protocol2.c:1353 +#: fe-protocol3.c:1806 msgid "no COPY in progress\n" msgstr "ingen COPY pågår\n" -#: fe-exec.c:2672 +#: fe-exec.c:2676 msgid "connection in wrong state\n" -msgstr "förbindelse i felaktigt tillstånd\n" +msgstr "anslutning i felaktigt tillstånd\n" -#: fe-exec.c:2703 +#: fe-exec.c:2707 msgid "invalid ExecStatusType code" msgstr "ogiltig ExecStatusType-kod" -#: fe-exec.c:2730 +#: fe-exec.c:2734 msgid "PGresult is not an error result\n" msgstr "PGresult är inte ett felresultat\n" -#: fe-exec.c:2805 fe-exec.c:2828 +#: fe-exec.c:2809 fe-exec.c:2832 #, c-format msgid "column number %d is out of range 0..%d" msgstr "kolumnnummer %d är utanför giltigt intervall 0..%d" -#: fe-exec.c:2843 +#: fe-exec.c:2847 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "parameter nummer %d är utanför giltigt intervall 0..%d" -#: fe-exec.c:3153 +#: fe-exec.c:3157 #, c-format msgid "could not interpret result from server: %s" msgstr "kunde inte tolka svaret från servern: %s" -#: fe-exec.c:3392 fe-exec.c:3476 +#: fe-exec.c:3396 fe-exec.c:3480 msgid "incomplete multibyte character\n" msgstr "ofullständigt multibyte-tecken\n" -#: fe-gssapi-common.c:124 +#: fe-gssapi-common.c:125 msgid "GSSAPI name import error" msgstr "GSSAPI-fel vid import av namn" @@ -859,7 +862,7 @@ #: fe-misc.c:636 fe-misc.c:869 msgid "connection not open\n" -msgstr "förbindelse inte öppen\n" +msgstr "anslutningen är inte öppen\n" #: fe-misc.c:805 fe-secure-openssl.c:209 fe-secure-openssl.c:316 #: fe-secure.c:267 fe-secure.c:383 @@ -895,7 +898,7 @@ msgid "invalid state %c, probably indicative of memory corruption\n" msgstr "ogiltigt tillstånd %c, indikerar troligen ett minnesfel\n" -#: fe-protocol2.c:473 fe-protocol3.c:183 +#: fe-protocol2.c:473 fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "meddelandetyp 0x%02x kom från server under viloperiod" @@ -915,12 +918,12 @@ msgid "server sent binary data (\"B\" message) without prior row description (\"T\" message)" msgstr "servern skickade binärdata (meddelande \"B\") utan föregående radbeskrivning (meddelande \"T\")" -#: fe-protocol2.c:626 fe-protocol3.c:408 +#: fe-protocol2.c:626 fe-protocol3.c:405 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "oväntat svar för servern; första mottagna tecknet var \"%c\"\n" -#: fe-protocol2.c:755 fe-protocol2.c:930 fe-protocol3.c:622 fe-protocol3.c:849 +#: fe-protocol2.c:755 fe-protocol2.c:930 fe-protocol3.c:605 fe-protocol3.c:811 msgid "out of memory for query result" msgstr "slut på minnet för frågeresultat" @@ -929,124 +932,116 @@ msgid "lost synchronization with server, resetting connection" msgstr "tappade synkronisering med servern, startar o, uppkopplingen" -#: fe-protocol2.c:1530 fe-protocol2.c:1562 fe-protocol3.c:2095 +#: fe-protocol2.c:1530 fe-protocol2.c:1562 fe-protocol3.c:2063 #, c-format msgid "protocol error: id=0x%x\n" msgstr "protokollfel: id=0x%x\n" -#: fe-protocol3.c:365 +#: fe-protocol3.c:362 msgid "server sent data (\"D\" message) without prior row description (\"T\" message)\n" msgstr "servern skickade data (meddelande \"D\") utan att först skicka en radbeskrivning (meddelande \"T\")\n" -#: fe-protocol3.c:429 +#: fe-protocol3.c:426 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "meddelandeinnehåll stämmer inte med längden för meddelandetyp \"%c\"\n" -#: fe-protocol3.c:449 +#: fe-protocol3.c:446 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "tappade synkronisering med servern: fick meddelandetyp \"%c\", längd %d\n" -#: fe-protocol3.c:500 fe-protocol3.c:540 +#: fe-protocol3.c:496 fe-protocol3.c:536 msgid "insufficient data in \"T\" message" msgstr "otillräckligt med data i \"T\"-meddelande" -#: fe-protocol3.c:573 -msgid "extraneous data in \"T\" message" -msgstr "extra data i \"T\"-meddelande" - -#: fe-protocol3.c:686 -msgid "extraneous data in \"t\" message" -msgstr "extra data i \"t\"-meddelande" +#: fe-protocol3.c:674 +msgid "insufficient data in \"t\" message" +msgstr "otillräckligt med data i \"t\"-meddelande" -#: fe-protocol3.c:757 fe-protocol3.c:789 fe-protocol3.c:807 +#: fe-protocol3.c:733 fe-protocol3.c:765 fe-protocol3.c:783 msgid "insufficient data in \"D\" message" msgstr "otillräckligt med data i \"D\"-meddelande" -#: fe-protocol3.c:763 +#: fe-protocol3.c:739 msgid "unexpected field count in \"D\" message" msgstr "oväntat fältantal i \"D\"-meddelande" -#: fe-protocol3.c:816 -msgid "extraneous data in \"D\" message" -msgstr "extra data i \"D\"-meddelande" - -#: fe-protocol3.c:1008 +#: fe-protocol3.c:976 msgid "no error message available\n" msgstr "inget felmeddelande finns tillgängligt\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1056 fe-protocol3.c:1075 +#: fe-protocol3.c:1024 fe-protocol3.c:1043 #, c-format msgid " at character %s" msgstr " vid tecken %s" -#: fe-protocol3.c:1088 +#: fe-protocol3.c:1056 #, c-format msgid "DETAIL: %s\n" msgstr "DETALJ: %s\n" -#: fe-protocol3.c:1091 +#: fe-protocol3.c:1059 #, c-format msgid "HINT: %s\n" msgstr "TIPS: %s\n" -#: fe-protocol3.c:1094 +#: fe-protocol3.c:1062 #, c-format msgid "QUERY: %s\n" msgstr "FRÅGA: %s\n" -#: fe-protocol3.c:1101 +#: fe-protocol3.c:1069 #, c-format msgid "CONTEXT: %s\n" msgstr "KONTEXT: %s\n" -#: fe-protocol3.c:1110 +#: fe-protocol3.c:1078 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "SCHEMANAMN: %s\n" -#: fe-protocol3.c:1114 +#: fe-protocol3.c:1082 #, c-format msgid "TABLE NAME: %s\n" msgstr "TABELLNAMN: %s\n" -#: fe-protocol3.c:1118 +#: fe-protocol3.c:1086 #, c-format msgid "COLUMN NAME: %s\n" msgstr "KOLUMNNAMN: %s\n" -#: fe-protocol3.c:1122 +#: fe-protocol3.c:1090 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "DATATYPNAMN: %s\n" -#: fe-protocol3.c:1126 +#: fe-protocol3.c:1094 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "VILLKORSNAMN: %s\n" -#: fe-protocol3.c:1138 +#: fe-protocol3.c:1106 msgid "LOCATION: " msgstr "PLATS: " -#: fe-protocol3.c:1140 +#: fe-protocol3.c:1108 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1142 +#: fe-protocol3.c:1110 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1337 +#: fe-protocol3.c:1305 #, c-format msgid "LINE %d: " msgstr "RAD %d: " -#: fe-protocol3.c:1732 +#: fe-protocol3.c:1700 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline: utför inte text-COPY OUT\n" @@ -1097,24 +1092,24 @@ msgid "could not initiate GSSAPI security context" msgstr "kunde inte initiera GSSAPI-säkerhetskontext" -#: fe-secure-gssapi.c:673 +#: fe-secure-gssapi.c:670 msgid "GSSAPI size check error" msgstr "GSSAPI-fel vid kontroll av storlek" -#: fe-secure-gssapi.c:684 +#: fe-secure-gssapi.c:681 msgid "GSSAPI context establishment error" msgstr "GSSAPI-fel vid skapande av kontext" -#: fe-secure-openssl.c:214 fe-secure-openssl.c:321 fe-secure-openssl.c:1291 +#: fe-secure-openssl.c:214 fe-secure-openssl.c:321 fe-secure-openssl.c:1325 #, c-format msgid "SSL SYSCALL error: %s\n" msgstr "SSL SYSCALL fel: %s\n" -#: fe-secure-openssl.c:221 fe-secure-openssl.c:328 fe-secure-openssl.c:1295 +#: fe-secure-openssl.c:221 fe-secure-openssl.c:328 fe-secure-openssl.c:1329 msgid "SSL SYSCALL error: EOF detected\n" msgstr "SSL SYSCALL-fel: EOF upptäckt\n" -#: fe-secure-openssl.c:232 fe-secure-openssl.c:339 fe-secure-openssl.c:1304 +#: fe-secure-openssl.c:232 fe-secure-openssl.c:339 fe-secure-openssl.c:1338 #, c-format msgid "SSL error: %s\n" msgstr "SSL-fel: %s\n" @@ -1123,7 +1118,7 @@ msgid "SSL connection has been closed unexpectedly\n" msgstr "SSL-anslutning har oväntat stängts\n" -#: fe-secure-openssl.c:253 fe-secure-openssl.c:360 fe-secure-openssl.c:1354 +#: fe-secure-openssl.c:253 fe-secure-openssl.c:360 fe-secure-openssl.c:1388 #, c-format msgid "unrecognized SSL error code: %d\n" msgstr "okänd SSL-felkod: %d\n" @@ -1205,7 +1200,7 @@ #: fe-secure-openssl.c:1053 #, c-format msgid "could not establish SSL connection: %s\n" -msgstr "kan inte skapa SSL-förbindelse: %s\n" +msgstr "kan inte skapa SSL-anslutning: %s\n" #: fe-secure-openssl.c:1107 #, c-format @@ -1232,42 +1227,52 @@ msgid "certificate present, but not private key file \"%s\"\n" msgstr "certifikat tillgängligt, men inte den privata nyckelfilen \"%s\"\n" -#: fe-secure-openssl.c:1194 +#: fe-secure-openssl.c:1195 #, c-format -msgid "private key file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" -msgstr "privata nyckelfilen \"%s\" har läsrättigheter för gruppen eller världen; rättigheten skall vara u=rw (0600) eller mindre\n" +msgid "private key file \"%s\" is not a regular file\n" +msgstr "privat nyckelfilen \"%s\" är inte en vanlig fil\n" #: fe-secure-openssl.c:1219 #, c-format +msgid "private key file \"%s\" must be owned by the current user or root\n" +msgstr "privat nyckelfilen \"%s\" måste ägas av databasanvändaren eller root\n" + +#: fe-secure-openssl.c:1228 +#, c-format +msgid "private key file \"%s\" has group or world access; file must have permissions u=rw (0600) or less if owned by the current user, or permissions u=rw,g=r (0640) or less if owned by root\n" +msgstr "privata nyckelfilen \"%s\" har grupp- eller världsrättigheter; filen måste ha rättigheterna u=rw (0600) eller mindre om den ägs av databasanvändaren eller rättigheterna u=rw,g=r (0640) eller mindre om den ägs av root.\n" + +#: fe-secure-openssl.c:1253 +#, c-format msgid "could not load private key file \"%s\": %s\n" msgstr "kunde inte ladda privata nyckelfilen \"%s\": %s\n" -#: fe-secure-openssl.c:1237 +#: fe-secure-openssl.c:1271 #, c-format msgid "certificate does not match private key file \"%s\": %s\n" msgstr "certifikatet matchar inte den privata nyckelfilen \"%s\": %s\n" -#: fe-secure-openssl.c:1337 +#: fe-secure-openssl.c:1371 #, c-format msgid "This may indicate that the server does not support any SSL protocol version between %s and %s.\n" msgstr "Detta kan tyda på att servern inte stöder någon SSL-protokolversion mellan %s och %s.\n" -#: fe-secure-openssl.c:1373 +#: fe-secure-openssl.c:1407 #, c-format msgid "certificate could not be obtained: %s\n" msgstr "certifikatet kunde inte hämtas: %s\n" -#: fe-secure-openssl.c:1462 +#: fe-secure-openssl.c:1496 #, c-format msgid "no SSL error reported" msgstr "inget SSL-fel rapporterat" -#: fe-secure-openssl.c:1471 +#: fe-secure-openssl.c:1505 #, c-format msgid "SSL error code %lu" msgstr "SSL-felkod %lu" -#: fe-secure-openssl.c:1718 +#: fe-secure-openssl.c:1753 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "VARNING: sslpassword trunkerat\n" @@ -1286,9 +1291,3 @@ #, c-format msgid "unrecognized socket error: 0x%08X/%d" msgstr "okänt uttagsfel: 0x%08X/%d" - -#~ msgid "could not set minimum version of SSL protocol: %s\n" -#~ msgstr "kunde inte sätta minimal version för SSL-protokoll: %s\n" - -#~ msgid "could not set maximum version of SSL protocol: %s\n" -#~ msgstr "kunde inte sätta maximal version för SSL-protokollet: %s\n" diff -Nru postgresql-13-13.4/src/Makefile.shlib postgresql-13-13.7/src/Makefile.shlib --- postgresql-13-13.4/src/Makefile.shlib 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/Makefile.shlib 2022-05-09 21:16:30.000000000 +0000 @@ -329,7 +329,11 @@ rm -f $(stlib) $(LINK.static) $(stlib) $^ $(RANLIB) $(stlib) +ifeq (,$(SHLIB_EXPORTS)) $(MKLDEXPORT) $(stlib) $(shlib) >$(exports_file) +else + ( echo '#! $(shlib)'; $(AWK) '/^[^#]/ {printf "%s\n",$$1}' $(SHLIB_EXPORTS) ) >$(exports_file) +endif $(COMPILER) -o $(shlib) $(stlib) -Wl,-bE:$(exports_file) $(LDFLAGS) $(LDFLAGS_SL) $(SHLIB_LINK) rm -f $(stlib) $(AR) $(AROPT) $(stlib) $(shlib) @@ -400,7 +404,7 @@ # those that point inside the build or source tree. Use sort to # remove duplicates. Also record the -l flags necessary for static # linking, but not those already covered by Requires.private. - echo 'Libs.private: $(sort $(filter-out -L.% -L$(top_srcdir)/%,$(filter -L%,$(LDFLAGS) $(SHLIB_LINK)))) $(filter-out $(PKG_CONFIG_REQUIRES_PRIVATE:lib%=-l%),$(filter -l%,$(SHLIB_LINK)))' >>$@ + echo 'Libs.private: $(sort $(filter-out -L.% -L$(top_srcdir)/%,$(filter -L%,$(LDFLAGS) $(SHLIB_LINK)))) $(filter-out $(PKG_CONFIG_REQUIRES_PRIVATE:lib%=-l%),$(filter -l%,$(SHLIB_LINK_INTERNAL:%_shlib=%) $(SHLIB_LINK)))' >>$@ ## diff -Nru postgresql-13-13.4/src/pl/plperl/GNUmakefile postgresql-13-13.7/src/pl/plperl/GNUmakefile --- postgresql-13-13.4/src/pl/plperl/GNUmakefile 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plperl/GNUmakefile 2022-05-09 21:16:30.000000000 +0000 @@ -48,7 +48,7 @@ dlltool --dllname $(perlwithver).dll --def $(perlwithver).def --output-lib lib$(perlwithver).a $(perlwithver).def: $(PERLDLL) - pexports $^ > $@ + gendef - $^ > $@ endif # win32 diff -Nru postgresql-13-13.4/src/pl/plperl/plperl.c postgresql-13-13.7/src/pl/plperl/plperl.c --- postgresql-13-13.4/src/pl/plperl/plperl.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plperl/plperl.c 2022-05-09 21:16:30.000000000 +0000 @@ -264,6 +264,7 @@ static SV *plperl_hash_from_tuple(HeapTuple tuple, TupleDesc tupdesc, bool include_generated); static SV *plperl_hash_from_datum(Datum attr); +static void check_spi_usage_allowed(void); static SV *plperl_ref_from_pg_array(Datum arg, Oid typid); static SV *split_array(plperl_array_info *info, int first, int last, int nest); static SV *make_array_ref(plperl_array_info *info, int first, int last); @@ -298,9 +299,11 @@ static OP *pp_require_safe(pTHX); static void activate_interpreter(plperl_interp_desc *interp_desc); -#ifdef WIN32 +#if defined(WIN32) && PERL_VERSION_LT(5, 28, 0) static char *setlocale_perl(int category, char *locale); -#endif +#else +#define setlocale_perl(a,b) Perl_setlocale(a,b) +#endif /* defined(WIN32) && PERL_VERSION_LT(5, 28, 0) */ /* * Decrement the refcount of the given SV within the active Perl interpreter @@ -1430,13 +1433,15 @@ char * plperl_sv_to_literal(SV *sv, char *fqtypename) { - Datum str = CStringGetDatum(fqtypename); - Oid typid = DirectFunctionCall1(regtypein, str); + Oid typid; Oid typoutput; Datum datum; bool typisvarlena, isnull; + check_spi_usage_allowed(); + + typid = DirectFunctionCall1(regtypein, CStringGetDatum(fqtypename)); if (!OidIsValid(typid)) ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), @@ -2112,8 +2117,8 @@ * errors properly. Perhaps it's because there's another level of eval * inside mksafefunc? */ - count = perl_call_pv("PostgreSQL::InServer::mkfunc", - G_SCALAR | G_EVAL | G_KEEPERR); + count = call_pv("PostgreSQL::InServer::mkfunc", + G_SCALAR | G_EVAL | G_KEEPERR); SPAGAIN; if (count == 1) @@ -2218,7 +2223,7 @@ PUTBACK; /* Do NOT use G_KEEPERR here */ - count = perl_call_sv(desc->reference, G_SCALAR | G_EVAL); + count = call_sv(desc->reference, G_SCALAR | G_EVAL); SPAGAIN; @@ -2286,7 +2291,7 @@ PUTBACK; /* Do NOT use G_KEEPERR here */ - count = perl_call_sv(desc->reference, G_SCALAR | G_EVAL); + count = call_sv(desc->reference, G_SCALAR | G_EVAL); SPAGAIN; @@ -2349,7 +2354,7 @@ PUTBACK; /* Do NOT use G_KEEPERR here */ - count = perl_call_sv(desc->reference, G_SCALAR | G_EVAL); + count = call_sv(desc->reference, G_SCALAR | G_EVAL); SPAGAIN; @@ -3097,6 +3102,21 @@ /* simple croak as we don't want to involve PostgreSQL code */ croak("SPI functions can not be used in END blocks"); } + + /* + * Disallow SPI usage if we're not executing a fully-compiled plperl + * function. It might seem impossible to get here in that case, but there + * are cases where Perl will try to execute code during compilation. If + * we proceed we are likely to crash trying to dereference the prodesc + * pointer. Working around that might be possible, but it seems unwise + * because it'd allow code execution to happen while validating a + * function, which is undesirable. + */ + if (current_call_data == NULL || current_call_data->prodesc == NULL) + { + /* simple croak as we don't want to involve PostgreSQL code */ + croak("SPI functions can not be used during function compilation"); + } } @@ -3217,6 +3237,8 @@ { MemoryContext oldcontext = CurrentMemoryContext; + check_spi_usage_allowed(); + PG_TRY(); { plperl_return_next_internal(sv); @@ -3961,6 +3983,8 @@ { MemoryContext oldcontext = CurrentMemoryContext; + check_spi_usage_allowed(); + PG_TRY(); { SPI_commit(); @@ -3986,6 +4010,8 @@ { MemoryContext oldcontext = CurrentMemoryContext; + check_spi_usage_allowed(); + PG_TRY(); { SPI_rollback(); @@ -4023,6 +4049,11 @@ MemoryContext oldcontext = CurrentMemoryContext; char *volatile cmsg = NULL; + /* + * We intentionally omit check_spi_usage_allowed() here, as this seems + * safe to allow even in the contexts that that function rejects. + */ + PG_TRY(); { cmsg = sv2cstr(msg); @@ -4135,8 +4166,10 @@ /* * Perl's own setlocale(), copied from POSIX.xs * (needed because of the calls to new_*()) + * + * Starting in 5.28, perl exposes Perl_setlocale to do so. */ -#ifdef WIN32 +#if defined(WIN32) && PERL_VERSION_LT(5, 28, 0) static char * setlocale_perl(int category, char *locale) { @@ -4204,5 +4237,4 @@ return RETVAL; } - -#endif /* WIN32 */ +#endif /* defined(WIN32) && PERL_VERSION_LT(5, 28, 0) */ diff -Nru postgresql-13-13.4/src/pl/plperl/plperl.h postgresql-13-13.7/src/pl/plperl/plperl.h --- postgresql-13-13.4/src/pl/plperl/plperl.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plperl/plperl.h 2022-05-09 21:16:30.000000000 +0000 @@ -163,9 +163,6 @@ #endif /* perl version and platform portability */ -#define NEED_eval_pv -#define NEED_newRV_noinc -#define NEED_sv_2pv_flags #include "ppport.h" /* diff -Nru postgresql-13-13.4/src/pl/plperl/po/fr.po postgresql-13-13.7/src/pl/plperl/po/fr.po --- postgresql-13-13.4/src/pl/plperl/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plperl/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -104,8 +104,7 @@ #: plperl.c:1198 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" -msgstr "" -"le nombre de dimensions du tableau (%d) dépasse la maximum autorisé (%d)" +msgstr "le nombre de dimensions du tableau (%d) dépasse le maximum autorisé (%d)" #: plperl.c:1210 plperl.c:1227 #, c-format @@ -189,9 +188,7 @@ #: plperl.c:2447 #, c-format msgid "set-valued function called in context that cannot accept a set" -msgstr "" -"fonction renvoyant un ensemble appelée dans un contexte qui ne peut pas\n" -"accepter un ensemble" +msgstr "la fonction renvoyant un ensemble a été appelée dans un contexte qui n'accepte pas un ensemble" #: plperl.c:2492 #, c-format diff -Nru postgresql-13-13.4/src/pl/plperl/po/ru.po postgresql-13-13.7/src/pl/plperl/po/ru.po --- postgresql-13-13.4/src/pl/plperl/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plperl/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: plperl (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-09-03 11:22+0300\n" +"POT-Creation-Date: 2022-03-11 08:13+0300\n" "PO-Revision-Date: 2019-08-29 15:42+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -17,95 +17,95 @@ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: plperl.c:405 +#: plperl.c:408 msgid "" "If true, trusted and untrusted Perl code will be compiled in strict mode." msgstr "" "Если этот параметр равен true, доверенный и недоверенный код Perl будет " "компилироваться в строгом режиме." -#: plperl.c:419 +#: plperl.c:422 msgid "" "Perl initialization code to execute when a Perl interpreter is initialized." msgstr "" "Код инициализации Perl, который выполняется при инициализации интерпретатора " "Perl." -#: plperl.c:441 +#: plperl.c:444 msgid "Perl initialization code to execute once when plperl is first used." msgstr "" "Код инициализации Perl, который выполняется один раз, при первом " "использовании plperl." -#: plperl.c:449 +#: plperl.c:452 msgid "Perl initialization code to execute once when plperlu is first used." msgstr "" "Код инициализации Perl, который выполняется один раз, при первом " "использовании plperlu." -#: plperl.c:646 +#: plperl.c:649 #, c-format msgid "cannot allocate multiple Perl interpreters on this platform" msgstr "на этой платформе нельзя запустить множество интерпретаторов Perl" -#: plperl.c:669 plperl.c:853 plperl.c:859 plperl.c:976 plperl.c:988 -#: plperl.c:1031 plperl.c:1054 plperl.c:2136 plperl.c:2244 plperl.c:2312 -#: plperl.c:2375 +#: plperl.c:672 plperl.c:856 plperl.c:862 plperl.c:979 plperl.c:991 +#: plperl.c:1034 plperl.c:1057 plperl.c:2141 plperl.c:2249 plperl.c:2317 +#: plperl.c:2380 #, c-format msgid "%s" msgstr "%s" -#: plperl.c:670 +#: plperl.c:673 #, c-format msgid "while executing PostgreSQL::InServer::SPI::bootstrap" msgstr "при выполнении PostgreSQL::InServer::SPI::bootstrap" -#: plperl.c:854 +#: plperl.c:857 #, c-format msgid "while parsing Perl initialization" msgstr "при разборе параметров инициализации Perl" -#: plperl.c:860 +#: plperl.c:863 #, c-format msgid "while running Perl initialization" msgstr "при выполнении инициализации Perl" -#: plperl.c:977 +#: plperl.c:980 #, c-format msgid "while executing PLC_TRUSTED" msgstr "при выполнении PLC_TRUSTED" -#: plperl.c:989 +#: plperl.c:992 #, c-format msgid "while executing utf8fix" msgstr "при выполнении utf8fix" -#: plperl.c:1032 +#: plperl.c:1035 #, c-format msgid "while executing plperl.on_plperl_init" msgstr "при выполнении plperl.on_plperl_init" -#: plperl.c:1055 +#: plperl.c:1058 #, c-format msgid "while executing plperl.on_plperlu_init" msgstr "при выполнении plperl.on_plperlu_init" -#: plperl.c:1101 plperl.c:1789 +#: plperl.c:1104 plperl.c:1794 #, c-format msgid "Perl hash contains nonexistent column \"%s\"" msgstr "Perl-хеш содержит несуществующий столбец \"%s\"" -#: plperl.c:1106 plperl.c:1794 +#: plperl.c:1109 plperl.c:1799 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "присвоить значение системному атрибуту \"%s\" нельзя" -#: plperl.c:1194 +#: plperl.c:1197 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "число размерностей массива (%d) превышает предел (%d)" -#: plperl.c:1206 plperl.c:1223 +#: plperl.c:1209 plperl.c:1226 #, c-format msgid "" "multidimensional arrays must have array expressions with matching dimensions" @@ -113,80 +113,80 @@ "для многомерных массивов должны задаваться выражения с соответствующими " "размерностями" -#: plperl.c:1259 +#: plperl.c:1262 #, c-format msgid "cannot convert Perl array to non-array type %s" msgstr "Perl-массив нельзя преобразовать в тип не массива %s" -#: plperl.c:1362 +#: plperl.c:1365 #, c-format msgid "cannot convert Perl hash to non-composite type %s" msgstr "Perl-хеш нельзя преобразовать в не составной тип %s" -#: plperl.c:1384 plperl.c:3284 +#: plperl.c:1387 plperl.c:3306 #, c-format msgid "" "function returning record called in context that cannot accept type record" msgstr "" "функция, возвращающая запись, вызвана в контексте, не допускающем этот тип" -#: plperl.c:1443 +#: plperl.c:1448 #, c-format msgid "lookup failed for type %s" msgstr "найти тип %s не удалось" -#: plperl.c:1764 +#: plperl.c:1769 #, c-format msgid "$_TD->{new} does not exist" msgstr "$_TD->{new} не существует" -#: plperl.c:1768 +#: plperl.c:1773 #, c-format msgid "$_TD->{new} is not a hash reference" msgstr "$_TD->{new} - не ссылка на хеш" -#: plperl.c:1799 +#: plperl.c:1804 #, c-format msgid "cannot set generated column \"%s\"" msgstr "присвоить значение генерируемому столбцу \"%s\" нельзя" -#: plperl.c:2011 plperl.c:2849 +#: plperl.c:2016 plperl.c:2854 #, c-format msgid "PL/Perl functions cannot return type %s" msgstr "функции PL/Perl не могут возвращать тип %s" -#: plperl.c:2024 plperl.c:2890 +#: plperl.c:2029 plperl.c:2895 #, c-format msgid "PL/Perl functions cannot accept type %s" msgstr "функции PL/Perl не могут принимать тип %s" -#: plperl.c:2141 +#: plperl.c:2146 #, c-format msgid "didn't get a CODE reference from compiling function \"%s\"" msgstr "не удалось получить ссылку на код после компиляции функции \"%s\"" -#: plperl.c:2232 +#: plperl.c:2237 #, c-format msgid "didn't get a return item from function" msgstr "не удалось получить возвращаемый элемент от функции" -#: plperl.c:2276 plperl.c:2343 +#: plperl.c:2281 plperl.c:2348 #, c-format msgid "couldn't fetch $_TD" msgstr "не удалось получить $_TD" -#: plperl.c:2300 plperl.c:2363 +#: plperl.c:2305 plperl.c:2368 #, c-format msgid "didn't get a return item from trigger function" msgstr "не удалось получить возвращаемый элемент от триггерной функции" -#: plperl.c:2422 +#: plperl.c:2427 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" "функция, возвращающая множество, вызвана в контексте, где ему нет места" -#: plperl.c:2467 +#: plperl.c:2472 #, c-format msgid "" "set-returning PL/Perl function must return reference to array or use " @@ -195,12 +195,12 @@ "функция PL/Perl, возвращающая множество, должна возвращать ссылку на массив " "или вызывать return_next" -#: plperl.c:2588 +#: plperl.c:2593 #, c-format msgid "ignoring modified row in DELETE trigger" msgstr "в триггере DELETE изменённая строка игнорируется" -#: plperl.c:2596 +#: plperl.c:2601 #, c-format msgid "" "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" @@ -208,24 +208,24 @@ "результатом триггерной функции PL/Perl должен быть undef, \"SKIP\" или " "\"MODIFY\"" -#: plperl.c:2844 +#: plperl.c:2849 #, c-format msgid "trigger functions can only be called as triggers" msgstr "триггерные функции могут вызываться только в триггерах" -#: plperl.c:3191 +#: plperl.c:3211 #, c-format msgid "query result has too many rows to fit in a Perl array" msgstr "" "результат запроса содержит слишком много строк для передачи в массиве Perl" -#: plperl.c:3261 +#: plperl.c:3283 #, c-format msgid "cannot use return_next in a non-SETOF function" msgstr "" "return_next можно использовать только в функциях, возвращающих множества" -#: plperl.c:3335 +#: plperl.c:3357 #, c-format msgid "" "SETOF-composite-returning PL/Perl function must call return_next with " @@ -234,17 +234,17 @@ "функция PL/Perl, возвращающая составное множество, должна вызывать " "return_next со ссылкой на хеш" -#: plperl.c:4110 +#: plperl.c:4141 #, c-format msgid "PL/Perl function \"%s\"" msgstr "функция PL/Perl \"%s\"" -#: plperl.c:4122 +#: plperl.c:4153 #, c-format msgid "compilation of PL/Perl function \"%s\"" msgstr "компиляция функции PL/Perl \"%s\"" -#: plperl.c:4131 +#: plperl.c:4162 #, c-format msgid "PL/Perl anonymous code block" msgstr "анонимный блок кода PL/Perl" diff -Nru postgresql-13-13.4/src/pl/plperl/po/sv.po postgresql-13-13.7/src/pl/plperl/po/sv.po --- postgresql-13-13.4/src/pl/plperl/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plperl/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -2,14 +2,14 @@ # Copyright (C) 2014 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. # Mats Erik Andersson , 2014. -# Dennis Björklund 2017, 2018, 2019, 2020. +# Dennis Björklund 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:08+0000\n" -"PO-Revision-Date: 2020-04-11 08:42+0200\n" +"POT-Creation-Date: 2022-02-18 04:22+0000\n" +"PO-Revision-Date: 2021-11-07 10:37+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -18,205 +18,205 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: plperl.c:405 +#: plperl.c:407 msgid "If true, trusted and untrusted Perl code will be compiled in strict mode." msgstr "Om sant, tillförlitlig och otillförlitlig Perl-kod kommer kompileras i strikt läge." -#: plperl.c:419 +#: plperl.c:421 msgid "Perl initialization code to execute when a Perl interpreter is initialized." msgstr "Perl-kod för initialisering, utföres när perl-tolken förbereds." -#: plperl.c:441 +#: plperl.c:443 msgid "Perl initialization code to execute once when plperl is first used." msgstr "Perl-kod för engångs-initialisering då plperl används första gången." -#: plperl.c:449 +#: plperl.c:451 msgid "Perl initialization code to execute once when plperlu is first used." msgstr "Perl-kod för engångs-initialisering då plperlu används första gången." -#: plperl.c:646 +#: plperl.c:648 #, c-format msgid "cannot allocate multiple Perl interpreters on this platform" msgstr "kan inte utnyttja flera Perl-interpretorer på denna plattform" -#: plperl.c:669 plperl.c:853 plperl.c:859 plperl.c:976 plperl.c:988 -#: plperl.c:1031 plperl.c:1054 plperl.c:2136 plperl.c:2244 plperl.c:2312 -#: plperl.c:2375 +#: plperl.c:671 plperl.c:855 plperl.c:861 plperl.c:978 plperl.c:990 +#: plperl.c:1033 plperl.c:1056 plperl.c:2138 plperl.c:2246 plperl.c:2314 +#: plperl.c:2377 #, c-format msgid "%s" msgstr "%s" -#: plperl.c:670 +#: plperl.c:672 #, c-format msgid "while executing PostgreSQL::InServer::SPI::bootstrap" msgstr "vid utförande av PostgreSQL::InServer::SPI::bootstrap" -#: plperl.c:854 +#: plperl.c:856 #, c-format msgid "while parsing Perl initialization" msgstr "vid tolkning av perls initieringssteg" -#: plperl.c:860 +#: plperl.c:862 #, c-format msgid "while running Perl initialization" msgstr "vid utförande av perls initieringssteg" -#: plperl.c:977 +#: plperl.c:979 #, c-format msgid "while executing PLC_TRUSTED" msgstr "vid utförande av PLC_TRUSTED" -#: plperl.c:989 +#: plperl.c:991 #, c-format msgid "while executing utf8fix" msgstr "vid utförande av utf8fix" -#: plperl.c:1032 +#: plperl.c:1034 #, c-format msgid "while executing plperl.on_plperl_init" msgstr "vid utförande av plperl.on_plperl_init" -#: plperl.c:1055 +#: plperl.c:1057 #, c-format msgid "while executing plperl.on_plperlu_init" msgstr "vid utförande av plperl.on_plperlu_init" -#: plperl.c:1101 plperl.c:1789 +#: plperl.c:1103 plperl.c:1791 #, c-format msgid "Perl hash contains nonexistent column \"%s\"" msgstr "Perlhash innehåller en okänd kolumn \"%s\"." -#: plperl.c:1106 plperl.c:1794 +#: plperl.c:1108 plperl.c:1796 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "kan inte sätta systemattribut \"%s\"" -#: plperl.c:1194 +#: plperl.c:1196 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "antalet array-dimensioner (%d) överskrider det maximalt tillåtna (%d)" -#: plperl.c:1206 plperl.c:1223 +#: plperl.c:1208 plperl.c:1225 #, c-format msgid "multidimensional arrays must have array expressions with matching dimensions" msgstr "flerdimensionella vektorer måste ha array-uttryck av passande dimensioner" -#: plperl.c:1259 +#: plperl.c:1261 #, c-format msgid "cannot convert Perl array to non-array type %s" msgstr "kan inte omvandla perlvektor till icke-array av typ \"%s\"." -#: plperl.c:1362 +#: plperl.c:1364 #, c-format msgid "cannot convert Perl hash to non-composite type %s" msgstr "kan inte omvandla en perlhash till icke-composite-typ \"%s\"." -#: plperl.c:1384 plperl.c:3284 +#: plperl.c:1386 plperl.c:3286 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "en funktion med post som värde anropades i sammanhang där poster inte kan godtagas." -#: plperl.c:1443 +#: plperl.c:1445 #, c-format msgid "lookup failed for type %s" msgstr "uppslag misslyckades för typen \"%s\"" -#: plperl.c:1764 +#: plperl.c:1766 #, c-format msgid "$_TD->{new} does not exist" msgstr "$_TD->{new} finns inte." -#: plperl.c:1768 +#: plperl.c:1770 #, c-format msgid "$_TD->{new} is not a hash reference" msgstr "$_TD->{new} är inte en hash-referens." -#: plperl.c:1799 +#: plperl.c:1801 #, c-format msgid "cannot set generated column \"%s\"" msgstr "kan inte sätta genererad kolumn \"%s\"" -#: plperl.c:2011 plperl.c:2849 +#: plperl.c:2013 plperl.c:2851 #, c-format msgid "PL/Perl functions cannot return type %s" msgstr "Funktioner i PL/Perl kan inte svara med typ \"%s\"." -#: plperl.c:2024 plperl.c:2890 +#: plperl.c:2026 plperl.c:2892 #, c-format msgid "PL/Perl functions cannot accept type %s" msgstr "Funktioner i PL/Perl kan inte hantera typ \"%s\"." -#: plperl.c:2141 +#: plperl.c:2143 #, c-format msgid "didn't get a CODE reference from compiling function \"%s\"" msgstr "fick inte en CODE-referens vid kompilering av funktionen \"%s\"." -#: plperl.c:2232 +#: plperl.c:2234 #, c-format msgid "didn't get a return item from function" msgstr "fick inget returnvärde från funktion" -#: plperl.c:2276 plperl.c:2343 +#: plperl.c:2278 plperl.c:2345 #, c-format msgid "couldn't fetch $_TD" msgstr "kunde inte hämta $_TD" -#: plperl.c:2300 plperl.c:2363 +#: plperl.c:2302 plperl.c:2365 #, c-format msgid "didn't get a return item from trigger function" msgstr "fick inget returvärde från utlösarfunktion" -#: plperl.c:2422 +#: plperl.c:2424 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "en funktion som returnerar en mängd anropades i kontext som inte godtar en mängd" -#: plperl.c:2467 +#: plperl.c:2469 #, c-format msgid "set-returning PL/Perl function must return reference to array or use return_next" msgstr "En mängd-returnerande funktion i PL/Perl måste göra det som referens eller med return_next." -#: plperl.c:2588 +#: plperl.c:2590 #, c-format msgid "ignoring modified row in DELETE trigger" msgstr "Lämnar ändrad rad orörd i en DELETE-triggning" -#: plperl.c:2596 +#: plperl.c:2598 #, c-format msgid "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" msgstr "resultat av en triggningsfunktion i PL/Perl måste vara undef, \"SKIP\" eller \"MODIFY\"." -#: plperl.c:2844 +#: plperl.c:2846 #, c-format msgid "trigger functions can only be called as triggers" msgstr "Triggningsfunktioner kan bara anropas vid triggning." -#: plperl.c:3191 +#: plperl.c:3193 #, c-format msgid "query result has too many rows to fit in a Perl array" msgstr "frågeresultatet har för många rader för att få plats i en Perl-array" -#: plperl.c:3261 +#: plperl.c:3263 #, c-format msgid "cannot use return_next in a non-SETOF function" msgstr "får inte nyttja return_next i funktion som ej är SETOF" -#: plperl.c:3335 +#: plperl.c:3337 #, c-format msgid "SETOF-composite-returning PL/Perl function must call return_next with reference to hash" msgstr "En funktion i PL/Perl med värderetur som SETOF måste anropa return_next med en hashreferens" -#: plperl.c:4110 +#: plperl.c:4112 #, c-format msgid "PL/Perl function \"%s\"" msgstr "PL/Perl-funktion \"%s\"." -#: plperl.c:4122 +#: plperl.c:4124 #, c-format msgid "compilation of PL/Perl function \"%s\"" msgstr "kompilering av PL/Perl-funktion \"%s\"" -#: plperl.c:4131 +#: plperl.c:4133 #, c-format msgid "PL/Perl anonymous code block" msgstr "Anonymt kodblock i PL/Perl." diff -Nru postgresql-13-13.4/src/pl/plperl/ppport.h postgresql-13-13.7/src/pl/plperl/ppport.h --- postgresql-13-13.4/src/pl/plperl/ppport.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plperl/ppport.h 2022-05-09 21:16:30.000000000 +0000 @@ -1,12 +1,12 @@ #if 0 -<<'SKIP'; +my $void = <<'SKIP'; #endif /* ---------------------------------------------------------------------- - ppport.h -- Perl/Pollution/Portability Version 3.19 + ppport.h -- Perl/Pollution/Portability Version 3.63 - Automatically created by Devel::PPPort running under perl 5.011002. + Automatically created by Devel::PPPort running under perl 5.034000. Do NOT edit this file directly! -- Edit PPPort_pm.PL and the includes in parts/inc/ instead. @@ -21,7 +21,7 @@ =head1 NAME -ppport.h - Perl/Pollution/Portability version 3.19 +ppport.h - Perl/Pollution/Portability version 3.63 =head1 SYNOPSIS @@ -46,17 +46,18 @@ --nochanges don't suggest changes --nofilter don't filter input files - --strip strip all script and doc functionality from - ppport.h + --strip strip all script and doc functionality + from ppport.h --list-provided list provided API - --list-unsupported list unsupported API + --list-unsupported list API that isn't supported all the way + back --api-info=name show Perl API portability information =head1 COMPATIBILITY This version of F is designed to support operation with Perl -installations back to 5.003, and has been tested up to 5.10.0. +installations back to 5.003_07, and has been tested up to 5.35.1. =head1 OPTIONS @@ -97,7 +98,7 @@ Tell F to check for compatibility with the given Perl version. The default is to check for compatibility with Perl -version 5.003. You can use this option to reduce the output +version 5.003_07. You can use this option to reduce the output of F if you intend to be backward compatible only down to a certain Perl version. @@ -151,16 +152,23 @@ =head2 --list-unsupported -Lists the API elements that are known not to be supported by -F and below which version of Perl they probably -won't be available or work. +Lists the API elements that are known not to be FULLY supported by F, +and below which version of Perl they probably won't be available or work. +By FULLY, we mean that support isn't provided all the way back to the first +version of Perl that F supports at all. =head2 --api-info=I -Show portability information for API elements matching I. +Show portability information for elements matching I. If I is surrounded by slashes, it is interpreted as a regular expression. +Normally, only API elements are shown, but if there are no matching API +elements but there are some other matching elements, those are shown. This +allows you to conveniently find when functions internal to the core +implementation were added; only people working on the core are likely to find +this last part useful. + =head1 DESCRIPTION In order for a Perl extension (XS) module to be as portable as possible @@ -188,6 +196,50 @@ =item * +Although the purpose of F is to keep you from having to concern +yourself with what version you are running under, there may arise instances +where you have to do so. These macros, the same ones as in base Perl, are +available to you in all versions, and are what you should use: + +=over 4 + +=item C(major, minor, patch)> + +Returns whether or not the perl currently being compiled has the specified +relationship I to the perl given by the parameters. I is one of +C, C, C, C, C, C. + +For example, + + #if PERL_VERSION_GT(5,24,2) + code that will only be compiled on perls after v5.24.2 + #else + fallback code + #endif + +Note that this is usable in making compile-time decisions + +You may use the special value '*' for the final number to mean ALL possible +values for it. Thus, + + #if PERL_VERSION_EQ(5,31,'*') + +means all perls in the 5.31 series. And + + #if PERL_VERSION_NE(5,24,'*') + +means all perls EXCEPT 5.24 ones. And + + #if PERL_VERSION_LE(5,9,'*') + +is effectively + + #if PERL_VERSION_LT(5,10,0) + +=back + +=item * + If you use one of a few functions or variables that were not present in earlier versions of Perl, and that can't be provided using a macro, you have to explicitly request support for these functions by adding one or @@ -217,8 +269,11 @@ Function / Variable Static Request Global Request ----------------------------------------------------------------------------------------- - PL_parser NEED_PL_parser NEED_PL_parser_GLOBAL - PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL + caller_cx() NEED_caller_cx NEED_caller_cx_GLOBAL + ck_warner() NEED_ck_warner NEED_ck_warner_GLOBAL + ck_warner_d() NEED_ck_warner_d NEED_ck_warner_d_GLOBAL + croak_xs_usage() NEED_croak_xs_usage NEED_croak_xs_usage_GLOBAL + die_sv() NEED_die_sv NEED_die_sv_GLOBAL eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL grok_hex() NEED_grok_hex NEED_grok_hex_GLOBAL @@ -226,27 +281,30 @@ grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL load_module() NEED_load_module NEED_load_module_GLOBAL + mess() NEED_mess NEED_mess_GLOBAL + mess_nocontext() NEED_mess_nocontext NEED_mess_nocontext_GLOBAL + mess_sv() NEED_mess_sv NEED_mess_sv_GLOBAL + mg_findext() NEED_mg_findext NEED_mg_findext_GLOBAL my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL my_sprintf() NEED_my_sprintf NEED_my_sprintf_GLOBAL my_strlcat() NEED_my_strlcat NEED_my_strlcat_GLOBAL my_strlcpy() NEED_my_strlcpy NEED_my_strlcpy_GLOBAL + my_strnlen() NEED_my_strnlen NEED_my_strnlen_GLOBAL newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL - newRV_noinc() NEED_newRV_noinc NEED_newRV_noinc_GLOBAL - newSV_type() NEED_newSV_type NEED_newSV_type_GLOBAL - newSVpvn_flags() NEED_newSVpvn_flags NEED_newSVpvn_flags_GLOBAL newSVpvn_share() NEED_newSVpvn_share NEED_newSVpvn_share_GLOBAL + PL_parser NEED_PL_parser NEED_PL_parser_GLOBAL + PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL pv_display() NEED_pv_display NEED_pv_display_GLOBAL pv_escape() NEED_pv_escape NEED_pv_escape_GLOBAL pv_pretty() NEED_pv_pretty NEED_pv_pretty_GLOBAL - sv_2pv_flags() NEED_sv_2pv_flags NEED_sv_2pv_flags_GLOBAL - sv_2pvbyte() NEED_sv_2pvbyte NEED_sv_2pvbyte_GLOBAL sv_catpvf_mg() NEED_sv_catpvf_mg NEED_sv_catpvf_mg_GLOBAL sv_catpvf_mg_nocontext() NEED_sv_catpvf_mg_nocontext NEED_sv_catpvf_mg_nocontext_GLOBAL - sv_pvn_force_flags() NEED_sv_pvn_force_flags NEED_sv_pvn_force_flags_GLOBAL sv_setpvf_mg() NEED_sv_setpvf_mg NEED_sv_setpvf_mg_GLOBAL sv_setpvf_mg_nocontext() NEED_sv_setpvf_mg_nocontext NEED_sv_setpvf_mg_nocontext_GLOBAL + sv_unmagicext() NEED_sv_unmagicext NEED_sv_unmagicext_GLOBAL + utf8_to_uvchr_buf() NEED_utf8_to_uvchr_buf NEED_utf8_to_uvchr_buf_GLOBAL vload_module() NEED_vload_module NEED_vload_module_GLOBAL - vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL + vmess() NEED_vmess NEED_vmess_GLOBAL warner() NEED_warner NEED_warner_GLOBAL To avoid namespace conflicts, you can change the namespace of the @@ -318,6 +376,10 @@ =head1 BUGS +Some of the suggested edits and/or generated patches may not compile as-is +without tweaking manually. This is generally due to the need for an extra +parameter to be added to the call to prevent buffer overflow. + If this version of F is causing failure during the compilation of this module, please check if newer versions of either this module or C are available on CPAN @@ -325,7 +387,7 @@ If F was generated using the latest version of C and is causing failure of this module, please -file a bug report using the CPAN Request Tracker at L. +file a bug report at L Please include the following information: @@ -358,7 +420,7 @@ =head1 COPYRIGHT -Version 3.x, Copyright (c) 2004-2009, Marcus Holland-Moritz. +Version 3.x, Copyright (c) 2004-2013, Marcus Holland-Moritz. Version 2.x, Copyright (C) 2001, Paul Marquess. @@ -373,12 +435,160 @@ =cut +# These are tools that must be included in ppport.h. It doesn't work if given +# a .pl suffix. +# +# WARNING: Use only constructs that are legal as far back as D:P handles, as +# this is run in the perl version being tested. + +# What revisions are legal, to be output as-is and converted into a pattern +# that matches them precisely +my $r_pat = "[57]"; + +sub format_version +{ + # Given an input version that is acceptable to parse_version(), return a + # string of the standard representation of it. + + my($r,$v,$s) = parse_version(shift); + + if ($r < 5 || ($r == 5 && $v < 6)) { + my $ver = sprintf "%d.%03d", $r, $v; + $s > 0 and $ver .= sprintf "_%02d", $s; + + return $ver; + } + + return sprintf "%d.%d.%d", $r, $v, $s; +} + +sub parse_version +{ + # Returns a triplet, (revision, major, minor) from the input, treated as a + # string, which can be in any of several typical formats. + + my $ver = shift; + $ver = "" unless defined $ver; + + my($r,$v,$s); + + if ( ($r, $v, $s) = $ver =~ /^([0-9]+)([0-9]{3})([0-9]{3})$/ # 5029010, from the file + # names in our + # parts/base/ and + # parts/todo directories + or ($r, $v, $s) = $ver =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)$/ # 5.25.7 + or ($r, $v, $s) = $ver =~ /^([0-9]+)\.([0-9]{3})([0-9]{3})$/ # 5.025008, from the + # output of $] + or ($r, $v, $s) = $ver =~ /^([0-9]+)\.([0-9]{1,3})()$/ # 5.24, 5.004 + or ($r, $v, $s) = $ver =~ /^([0-9]+)\.(00[1-5])_?([0-9]{2})$/ # 5.003_07 + ) { + + $s = 0 unless $s; + + die "Only Perl $r_pat are supported '$ver'\n" unless $r =~ / ^ $r_pat $ /x; + die "Invalid version number: $ver\n" if $v >= 1000 || $s >= 1000; + return (0 +$r, 0 + $v, 0 + $s); + } + + # For some safety, don't assume something is a version number if it has a + # literal dot as one of the three characters. This will have to be fixed + # when we reach x.46 (since 46 is ord('.')) + if ($ver !~ /\./ && (($r, $v, $s) = $ver =~ /^(.)(.)(.)$/)) # vstring 5.25.7 + { + $r = ord $r; + $v = ord $v; + $s = ord $s; + + die "Only Perl $r_pat are supported '$ver'\n" unless $r =~ / ^ $r_pat $ /x; + return ($r, $v, $s); + } + + my $mesg = ""; + $mesg = ". (In 5.00x_yz, x must be 1-5.)" if $ver =~ /_/; + die "Invalid version number format: '$ver'$mesg\n"; +} + +sub int_parse_version +{ + # Returns integer 7 digit human-readable version, suitable for use in file + # names in parts/todo parts/base. + + return 0 + join "", map { sprintf("%03d", $_) } parse_version(shift); +} + +sub ivers # Shorter name for int_parse_version +{ + return int_parse_version(shift); +} + +sub format_version_line +{ + # Returns a floating point representation of the input version + + my $version = int_parse_version(shift); + $version =~ s/ ^ ( $r_pat ) \B /$1./x; + return $version; +} + +BEGIN { + if ("$]" < "5.006" ) { + # On early perls, the implicit pass by reference doesn't work, so we have + # to use the globals to initialize. + eval q[sub dictionary_order($$) { _dictionary_order($a, $b) } ]; + } elsif ("$]" < "5.022" ) { + eval q[sub dictionary_order($$) { _dictionary_order(@_) } ]; + } else { + eval q[sub dictionary_order :prototype($$) { _dictionary_order(@_) } ]; + } +} + +sub _dictionary_order { # Sort caselessly, ignoring punct + my ($valid_a, $valid_b) = @_; + + my ($lc_a, $lc_b); + my ($squeezed_a, $squeezed_b); + + $valid_a = '' unless defined $valid_a; + $valid_b = '' unless defined $valid_b; + + $lc_a = lc $valid_a; + $lc_b = lc $valid_b; + + $squeezed_a = $lc_a; + $squeezed_a =~ s/^_+//g; # No leading underscores + $squeezed_a =~ s/\B_+\B//g; # No connecting underscores + $squeezed_a =~ s/[\W]//g; # No punct + + $squeezed_b = $lc_b; + $squeezed_b =~ s/^_+//g; + $squeezed_b =~ s/\B_+\B//g; + $squeezed_b =~ s/[\W]//g; + + return( $squeezed_a cmp $squeezed_b + or $lc_a cmp $lc_b + or $valid_a cmp $valid_b); +} + +sub sort_api_lines # Sort lines of the form flags|return|name|args... + # by 'name' +{ + $a =~ / ^ [^|]* \| [^|]* \| ( [^|]* ) /x; # 3rd field '|' is sep + my $a_name = $1; + $b =~ / ^ [^|]* \| [^|]* \| ( [^|]* ) /x; + my $b_name = $1; + return dictionary_order($a_name, $b_name); +} + +1; + use strict; +BEGIN { require warnings if "$]" > '5.006' } + # Disable broken TRIE-optimization -BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005 } +BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if "$]" >= "5.009004" && "$]" <= "5.009005"} -my $VERSION = 3.19; +my $VERSION = 3.63; my %opt = ( quiet => 0, @@ -423,2022 +633,9662 @@ usage() if $opt{help}; strip() if $opt{strip}; -if (exists $opt{'compat-version'}) { - my($r,$v,$s) = eval { parse_version($opt{'compat-version'}) }; - if ($@) { - die "Invalid version number format: '$opt{'compat-version'}'\n"; - } - die "Only Perl 5 is supported\n" if $r != 5; - die "Invalid version number: $opt{'compat-version'}\n" if $v >= 1000 || $s >= 1000; - $opt{'compat-version'} = sprintf "%d.%03d%03d", $r, $v, $s; -} -else { - $opt{'compat-version'} = 5; -} +$opt{'compat-version'} = 5.003_07 unless exists $opt{'compat-version'}; +$opt{'compat-version'} = int_parse_version($opt{'compat-version'}); +my $int_min_perl = int_parse_version(5.003_07); + +# Each element of this hash looks something like: +# 'Poison' => { +# 'base' => '5.008000', +# 'provided' => 1, +# 'todo' => '5.003007' +# }, my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/ ? ( $1 => { ($2 ? ( base => $2 ) : ()), ($3 ? ( todo => $3 ) : ()), (index($4, 'v') >= 0 ? ( varargs => 1 ) : ()), (index($4, 'p') >= 0 ? ( provided => 1 ) : ()), - (index($4, 'n') >= 0 ? ( nothxarg => 1 ) : ()), + (index($4, 'n') >= 0 ? ( noTHXarg => 1 ) : ()), + (index($4, 'c') >= 0 ? ( core_only => 1 ) : ()), + (index($4, 'd') >= 0 ? ( deprecated => 1 ) : ()), + (index($4, 'i') >= 0 ? ( inaccessible => 1 ) : ()), + (index($4, 'x') >= 0 ? ( experimental => 1 ) : ()), + (index($4, 'u') >= 0 ? ( undocumented => 1 ) : ()), + (index($4, 'o') >= 0 ? ( ppport_fnc => 1 ) : ()), + (index($4, 'V') >= 0 ? ( unverified => 1 ) : ()), } ) : die "invalid spec: $_" } qw( -AvFILLp|5.004050||p -AvFILL||| -CLASS|||n -CPERLscope|5.005000||p -CX_CURPAD_SAVE||| -CX_CURPAD_SV||| -CopFILEAV|5.006000||p -CopFILEGV_set|5.006000||p -CopFILEGV|5.006000||p -CopFILESV|5.006000||p -CopFILE_set|5.006000||p -CopFILE|5.006000||p -CopSTASHPV_set|5.006000||p -CopSTASHPV|5.006000||p -CopSTASH_eq|5.006000||p -CopSTASH_set|5.006000||p -CopSTASH|5.006000||p -CopyD|5.009002||p -Copy||| -CvPADLIST||| -CvSTASH||| -CvWEAKOUTSIDE||| -DEFSV_set|5.011000||p -DEFSV|5.004050||p -END_EXTERN_C|5.005000||p -ENTER||| -ERRSV|5.004050||p -EXTEND||| -EXTERN_C|5.005000||p -F0convert|||n -FREETMPS||| -GIMME_V||5.004000|n -GIMME|||n -GROK_NUMERIC_RADIX|5.007002||p -G_ARRAY||| -G_DISCARD||| -G_EVAL||| -G_METHOD|5.006001||p -G_NOARGS||| -G_SCALAR||| -G_VOID||5.004000| -GetVars||| -GvSVn|5.009003||p -GvSV||| -Gv_AMupdate||| -HEf_SVKEY||5.004000| -HeHASH||5.004000| -HeKEY||5.004000| -HeKLEN||5.004000| -HePV||5.004000| -HeSVKEY_force||5.004000| -HeSVKEY_set||5.004000| -HeSVKEY||5.004000| -HeUTF8||5.011000| -HeVAL||5.004000| -HvNAMELEN_get|5.009003||p -HvNAME_get|5.009003||p -HvNAME||| -INT2PTR|5.006000||p -IN_LOCALE_COMPILETIME|5.007002||p -IN_LOCALE_RUNTIME|5.007002||p -IN_LOCALE|5.007002||p -IN_PERL_COMPILETIME|5.008001||p -IS_NUMBER_GREATER_THAN_UV_MAX|5.007002||p -IS_NUMBER_INFINITY|5.007002||p -IS_NUMBER_IN_UV|5.007002||p -IS_NUMBER_NAN|5.007003||p -IS_NUMBER_NEG|5.007002||p -IS_NUMBER_NOT_INT|5.007002||p -IVSIZE|5.006000||p -IVTYPE|5.006000||p -IVdf|5.006000||p -LEAVE||| -LVRET||| -MARK||| -MULTICALL||5.011000| -MY_CXT_CLONE|5.009002||p -MY_CXT_INIT|5.007003||p -MY_CXT|5.007003||p -MoveD|5.009002||p -Move||| -NOOP|5.005000||p -NUM2PTR|5.006000||p -NVTYPE|5.006000||p -NVef|5.006001||p -NVff|5.006001||p -NVgf|5.006001||p -Newxc|5.009003||p -Newxz|5.009003||p -Newx|5.009003||p -Nullav||| -Nullch||| -Nullcv||| -Nullhv||| -Nullsv||| -ORIGMARK||| -PAD_BASE_SV||| -PAD_CLONE_VARS||| -PAD_COMPNAME_FLAGS||| -PAD_COMPNAME_GEN_set||| -PAD_COMPNAME_GEN||| -PAD_COMPNAME_OURSTASH||| -PAD_COMPNAME_PV||| -PAD_COMPNAME_TYPE||| -PAD_DUP||| -PAD_RESTORE_LOCAL||| -PAD_SAVE_LOCAL||| -PAD_SAVE_SETNULLPAD||| -PAD_SETSV||| -PAD_SET_CUR_NOSAVE||| -PAD_SET_CUR||| -PAD_SVl||| -PAD_SV||| -PERLIO_FUNCS_CAST|5.009003||p -PERLIO_FUNCS_DECL|5.009003||p -PERL_ABS|5.008001||p -PERL_BCDVERSION|5.011000||p -PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p -PERL_HASH|5.004000||p -PERL_INT_MAX|5.004000||p -PERL_INT_MIN|5.004000||p -PERL_LONG_MAX|5.004000||p -PERL_LONG_MIN|5.004000||p -PERL_MAGIC_arylen|5.007002||p -PERL_MAGIC_backref|5.007002||p -PERL_MAGIC_bm|5.007002||p -PERL_MAGIC_collxfrm|5.007002||p -PERL_MAGIC_dbfile|5.007002||p -PERL_MAGIC_dbline|5.007002||p -PERL_MAGIC_defelem|5.007002||p -PERL_MAGIC_envelem|5.007002||p -PERL_MAGIC_env|5.007002||p -PERL_MAGIC_ext|5.007002||p -PERL_MAGIC_fm|5.007002||p -PERL_MAGIC_glob|5.011000||p -PERL_MAGIC_isaelem|5.007002||p -PERL_MAGIC_isa|5.007002||p -PERL_MAGIC_mutex|5.011000||p -PERL_MAGIC_nkeys|5.007002||p -PERL_MAGIC_overload_elem|5.007002||p -PERL_MAGIC_overload_table|5.007002||p -PERL_MAGIC_overload|5.007002||p -PERL_MAGIC_pos|5.007002||p -PERL_MAGIC_qr|5.007002||p -PERL_MAGIC_regdata|5.007002||p -PERL_MAGIC_regdatum|5.007002||p -PERL_MAGIC_regex_global|5.007002||p -PERL_MAGIC_shared_scalar|5.007003||p -PERL_MAGIC_shared|5.007003||p -PERL_MAGIC_sigelem|5.007002||p -PERL_MAGIC_sig|5.007002||p -PERL_MAGIC_substr|5.007002||p -PERL_MAGIC_sv|5.007002||p -PERL_MAGIC_taint|5.007002||p -PERL_MAGIC_tiedelem|5.007002||p -PERL_MAGIC_tiedscalar|5.007002||p -PERL_MAGIC_tied|5.007002||p -PERL_MAGIC_utf8|5.008001||p -PERL_MAGIC_uvar_elem|5.007003||p -PERL_MAGIC_uvar|5.007002||p -PERL_MAGIC_vec|5.007002||p -PERL_MAGIC_vstring|5.008001||p -PERL_PV_ESCAPE_ALL|5.009004||p -PERL_PV_ESCAPE_FIRSTCHAR|5.009004||p -PERL_PV_ESCAPE_NOBACKSLASH|5.009004||p -PERL_PV_ESCAPE_NOCLEAR|5.009004||p -PERL_PV_ESCAPE_QUOTE|5.009004||p -PERL_PV_ESCAPE_RE|5.009005||p -PERL_PV_ESCAPE_UNI_DETECT|5.009004||p -PERL_PV_ESCAPE_UNI|5.009004||p -PERL_PV_PRETTY_DUMP|5.009004||p -PERL_PV_PRETTY_ELLIPSES|5.010000||p -PERL_PV_PRETTY_LTGT|5.009004||p -PERL_PV_PRETTY_NOCLEAR|5.010000||p -PERL_PV_PRETTY_QUOTE|5.009004||p -PERL_PV_PRETTY_REGPROP|5.009004||p -PERL_QUAD_MAX|5.004000||p -PERL_QUAD_MIN|5.004000||p -PERL_REVISION|5.006000||p -PERL_SCAN_ALLOW_UNDERSCORES|5.007003||p -PERL_SCAN_DISALLOW_PREFIX|5.007003||p -PERL_SCAN_GREATER_THAN_UV_MAX|5.007003||p -PERL_SCAN_SILENT_ILLDIGIT|5.008001||p -PERL_SHORT_MAX|5.004000||p -PERL_SHORT_MIN|5.004000||p -PERL_SIGNALS_UNSAFE_FLAG|5.008001||p -PERL_SUBVERSION|5.006000||p -PERL_SYS_INIT3||5.006000| -PERL_SYS_INIT||| -PERL_SYS_TERM||5.011000| -PERL_UCHAR_MAX|5.004000||p -PERL_UCHAR_MIN|5.004000||p -PERL_UINT_MAX|5.004000||p -PERL_UINT_MIN|5.004000||p -PERL_ULONG_MAX|5.004000||p -PERL_ULONG_MIN|5.004000||p -PERL_UNUSED_ARG|5.009003||p -PERL_UNUSED_CONTEXT|5.009004||p -PERL_UNUSED_DECL|5.007002||p -PERL_UNUSED_VAR|5.007002||p -PERL_UQUAD_MAX|5.004000||p -PERL_UQUAD_MIN|5.004000||p -PERL_USE_GCC_BRACE_GROUPS|5.009004||p -PERL_USHORT_MAX|5.004000||p -PERL_USHORT_MIN|5.004000||p -PERL_VERSION|5.006000||p -PL_DBsignal|5.005000||p -PL_DBsingle|||pn -PL_DBsub|||pn -PL_DBtrace|||pn -PL_Sv|5.005000||p -PL_bufend|5.011000||p -PL_bufptr|5.011000||p -PL_compiling|5.004050||p -PL_copline|5.011000||p -PL_curcop|5.004050||p -PL_curstash|5.004050||p -PL_debstash|5.004050||p -PL_defgv|5.004050||p -PL_diehook|5.004050||p -PL_dirty|5.004050||p -PL_dowarn|||pn -PL_errgv|5.004050||p -PL_error_count|5.011000||p -PL_expect|5.011000||p -PL_hexdigit|5.005000||p -PL_hints|5.005000||p -PL_in_my_stash|5.011000||p -PL_in_my|5.011000||p -PL_last_in_gv|||n -PL_laststatval|5.005000||p -PL_lex_state|5.011000||p -PL_lex_stuff|5.011000||p -PL_linestr|5.011000||p -PL_modglobal||5.005000|n -PL_na|5.004050||pn -PL_no_modify|5.006000||p -PL_ofsgv|||n -PL_parser|5.009005||p -PL_perl_destruct_level|5.004050||p -PL_perldb|5.004050||p -PL_ppaddr|5.006000||p -PL_rsfp_filters|5.004050||p -PL_rsfp|5.004050||p -PL_rs|||n -PL_signals|5.008001||p -PL_stack_base|5.004050||p -PL_stack_sp|5.004050||p -PL_statcache|5.005000||p -PL_stdingv|5.004050||p -PL_sv_arenaroot|5.004050||p -PL_sv_no|5.004050||pn -PL_sv_undef|5.004050||pn -PL_sv_yes|5.004050||pn -PL_tainted|5.004050||p -PL_tainting|5.004050||p -PL_tokenbuf|5.011000||p -POP_MULTICALL||5.011000| -POPi|||n -POPl|||n -POPn|||n -POPpbytex||5.007001|n -POPpx||5.005030|n -POPp|||n -POPs|||n -PTR2IV|5.006000||p -PTR2NV|5.006000||p -PTR2UV|5.006000||p -PTR2nat|5.009003||p -PTR2ul|5.007001||p -PTRV|5.006000||p -PUSHMARK||| -PUSH_MULTICALL||5.011000| -PUSHi||| -PUSHmortal|5.009002||p -PUSHn||| -PUSHp||| -PUSHs||| -PUSHu|5.004000||p -PUTBACK||| -PerlIO_clearerr||5.007003| -PerlIO_close||5.007003| -PerlIO_context_layers||5.009004| -PerlIO_eof||5.007003| -PerlIO_error||5.007003| -PerlIO_fileno||5.007003| -PerlIO_fill||5.007003| -PerlIO_flush||5.007003| -PerlIO_get_base||5.007003| -PerlIO_get_bufsiz||5.007003| -PerlIO_get_cnt||5.007003| -PerlIO_get_ptr||5.007003| -PerlIO_read||5.007003| -PerlIO_seek||5.007003| -PerlIO_set_cnt||5.007003| -PerlIO_set_ptrcnt||5.007003| -PerlIO_setlinebuf||5.007003| -PerlIO_stderr||5.007003| -PerlIO_stdin||5.007003| -PerlIO_stdout||5.007003| -PerlIO_tell||5.007003| -PerlIO_unread||5.007003| -PerlIO_write||5.007003| -Perl_signbit||5.009005|n -PoisonFree|5.009004||p -PoisonNew|5.009004||p -PoisonWith|5.009004||p -Poison|5.008000||p -RETVAL|||n -Renewc||| -Renew||| -SAVECLEARSV||| -SAVECOMPPAD||| -SAVEPADSV||| -SAVETMPS||| -SAVE_DEFSV|5.004050||p -SPAGAIN||| -SP||| -START_EXTERN_C|5.005000||p -START_MY_CXT|5.007003||p -STMT_END|||p -STMT_START|||p -STR_WITH_LEN|5.009003||p -ST||| -SV_CONST_RETURN|5.009003||p -SV_COW_DROP_PV|5.008001||p -SV_COW_SHARED_HASH_KEYS|5.009005||p -SV_GMAGIC|5.007002||p -SV_HAS_TRAILING_NUL|5.009004||p -SV_IMMEDIATE_UNREF|5.007001||p -SV_MUTABLE_RETURN|5.009003||p -SV_NOSTEAL|5.009002||p -SV_SMAGIC|5.009003||p -SV_UTF8_NO_ENCODING|5.008001||p -SVfARG|5.009005||p -SVf_UTF8|5.006000||p -SVf|5.006000||p -SVt_IV||| -SVt_NV||| -SVt_PVAV||| -SVt_PVCV||| -SVt_PVHV||| -SVt_PVMG||| -SVt_PV||| -Safefree||| -Slab_Alloc||| -Slab_Free||| -Slab_to_rw||| -StructCopy||| -SvCUR_set||| -SvCUR||| -SvEND||| -SvGAMAGIC||5.006001| -SvGETMAGIC|5.004050||p -SvGROW||| -SvIOK_UV||5.006000| -SvIOK_notUV||5.006000| -SvIOK_off||| -SvIOK_only_UV||5.006000| -SvIOK_only||| -SvIOK_on||| -SvIOKp||| -SvIOK||| -SvIVX||| -SvIV_nomg|5.009001||p -SvIV_set||| -SvIVx||| -SvIV||| -SvIsCOW_shared_hash||5.008003| -SvIsCOW||5.008003| -SvLEN_set||| -SvLEN||| -SvLOCK||5.007003| -SvMAGIC_set|5.009003||p -SvNIOK_off||| -SvNIOKp||| -SvNIOK||| -SvNOK_off||| -SvNOK_only||| -SvNOK_on||| -SvNOKp||| -SvNOK||| -SvNVX||| -SvNV_set||| -SvNVx||| -SvNV||| -SvOK||| -SvOOK_offset||5.011000| -SvOOK||| -SvPOK_off||| -SvPOK_only_UTF8||5.006000| -SvPOK_only||| -SvPOK_on||| -SvPOKp||| -SvPOK||| -SvPVX_const|5.009003||p -SvPVX_mutable|5.009003||p -SvPVX||| -SvPV_const|5.009003||p -SvPV_flags_const_nolen|5.009003||p -SvPV_flags_const|5.009003||p -SvPV_flags_mutable|5.009003||p -SvPV_flags|5.007002||p -SvPV_force_flags_mutable|5.009003||p -SvPV_force_flags_nolen|5.009003||p -SvPV_force_flags|5.007002||p -SvPV_force_mutable|5.009003||p -SvPV_force_nolen|5.009003||p -SvPV_force_nomg_nolen|5.009003||p -SvPV_force_nomg|5.007002||p -SvPV_force|||p -SvPV_mutable|5.009003||p -SvPV_nolen_const|5.009003||p -SvPV_nolen|5.006000||p -SvPV_nomg_const_nolen|5.009003||p -SvPV_nomg_const|5.009003||p -SvPV_nomg|5.007002||p -SvPV_renew|5.009003||p -SvPV_set||| -SvPVbyte_force||5.009002| -SvPVbyte_nolen||5.006000| -SvPVbytex_force||5.006000| -SvPVbytex||5.006000| -SvPVbyte|5.006000||p -SvPVutf8_force||5.006000| -SvPVutf8_nolen||5.006000| -SvPVutf8x_force||5.006000| -SvPVutf8x||5.006000| -SvPVutf8||5.006000| -SvPVx||| -SvPV||| -SvREFCNT_dec||| -SvREFCNT_inc_NN|5.009004||p -SvREFCNT_inc_simple_NN|5.009004||p -SvREFCNT_inc_simple_void_NN|5.009004||p -SvREFCNT_inc_simple_void|5.009004||p -SvREFCNT_inc_simple|5.009004||p -SvREFCNT_inc_void_NN|5.009004||p -SvREFCNT_inc_void|5.009004||p -SvREFCNT_inc|||p -SvREFCNT||| -SvROK_off||| -SvROK_on||| -SvROK||| -SvRV_set|5.009003||p -SvRV||| -SvRXOK||5.009005| -SvRX||5.009005| -SvSETMAGIC||| -SvSHARED_HASH|5.009003||p -SvSHARE||5.007003| -SvSTASH_set|5.009003||p -SvSTASH||| -SvSetMagicSV_nosteal||5.004000| -SvSetMagicSV||5.004000| -SvSetSV_nosteal||5.004000| -SvSetSV||| -SvTAINTED_off||5.004000| -SvTAINTED_on||5.004000| -SvTAINTED||5.004000| -SvTAINT||| -SvTRUE||| -SvTYPE||| -SvUNLOCK||5.007003| -SvUOK|5.007001|5.006000|p -SvUPGRADE||| -SvUTF8_off||5.006000| -SvUTF8_on||5.006000| -SvUTF8||5.006000| -SvUVXx|5.004000||p -SvUVX|5.004000||p -SvUV_nomg|5.009001||p -SvUV_set|5.009003||p -SvUVx|5.004000||p -SvUV|5.004000||p -SvVOK||5.008001| -SvVSTRING_mg|5.009004||p -THIS|||n -UNDERBAR|5.009002||p -UTF8_MAXBYTES|5.009002||p -UVSIZE|5.006000||p -UVTYPE|5.006000||p -UVXf|5.007001||p -UVof|5.006000||p -UVuf|5.006000||p -UVxf|5.006000||p -WARN_ALL|5.006000||p -WARN_AMBIGUOUS|5.006000||p -WARN_ASSERTIONS|5.011000||p -WARN_BAREWORD|5.006000||p -WARN_CLOSED|5.006000||p -WARN_CLOSURE|5.006000||p -WARN_DEBUGGING|5.006000||p -WARN_DEPRECATED|5.006000||p -WARN_DIGIT|5.006000||p -WARN_EXEC|5.006000||p -WARN_EXITING|5.006000||p -WARN_GLOB|5.006000||p -WARN_INPLACE|5.006000||p -WARN_INTERNAL|5.006000||p -WARN_IO|5.006000||p -WARN_LAYER|5.008000||p -WARN_MALLOC|5.006000||p -WARN_MISC|5.006000||p -WARN_NEWLINE|5.006000||p -WARN_NUMERIC|5.006000||p -WARN_ONCE|5.006000||p -WARN_OVERFLOW|5.006000||p -WARN_PACK|5.006000||p -WARN_PARENTHESIS|5.006000||p -WARN_PIPE|5.006000||p -WARN_PORTABLE|5.006000||p -WARN_PRECEDENCE|5.006000||p -WARN_PRINTF|5.006000||p -WARN_PROTOTYPE|5.006000||p -WARN_QW|5.006000||p -WARN_RECURSION|5.006000||p -WARN_REDEFINE|5.006000||p -WARN_REGEXP|5.006000||p -WARN_RESERVED|5.006000||p -WARN_SEMICOLON|5.006000||p -WARN_SEVERE|5.006000||p -WARN_SIGNAL|5.006000||p -WARN_SUBSTR|5.006000||p -WARN_SYNTAX|5.006000||p -WARN_TAINT|5.006000||p -WARN_THREADS|5.008000||p -WARN_UNINITIALIZED|5.006000||p -WARN_UNOPENED|5.006000||p -WARN_UNPACK|5.006000||p -WARN_UNTIE|5.006000||p -WARN_UTF8|5.006000||p -WARN_VOID|5.006000||p -XCPT_CATCH|5.009002||p -XCPT_RETHROW|5.009002||p -XCPT_TRY_END|5.009002||p -XCPT_TRY_START|5.009002||p -XPUSHi||| -XPUSHmortal|5.009002||p -XPUSHn||| -XPUSHp||| -XPUSHs||| -XPUSHu|5.004000||p -XSPROTO|5.010000||p -XSRETURN_EMPTY||| -XSRETURN_IV||| -XSRETURN_NO||| -XSRETURN_NV||| -XSRETURN_PV||| -XSRETURN_UNDEF||| -XSRETURN_UV|5.008001||p -XSRETURN_YES||| -XSRETURN|||p -XST_mIV||| -XST_mNO||| -XST_mNV||| -XST_mPV||| -XST_mUNDEF||| -XST_mUV|5.008001||p -XST_mYES||| -XS_VERSION_BOOTCHECK||| -XS_VERSION||| -XSprePUSH|5.006000||p -XS||| -ZeroD|5.009002||p -Zero||| -_aMY_CXT|5.007003||p -_pMY_CXT|5.007003||p -aMY_CXT_|5.007003||p -aMY_CXT|5.007003||p -aTHXR_|5.011000||p -aTHXR|5.011000||p -aTHX_|5.006000||p -aTHX|5.006000||p -add_data|||n -addmad||| -allocmy||| -amagic_call||| -amagic_cmp_locale||| -amagic_cmp||| -amagic_i_ncmp||| -amagic_ncmp||| -any_dup||| -ao||| -append_elem||| -append_list||| -append_madprops||| -apply_attrs_my||| -apply_attrs_string||5.006001| -apply_attrs||| -apply||| -atfork_lock||5.007003|n -atfork_unlock||5.007003|n -av_arylen_p||5.009003| -av_clear||| -av_create_and_push||5.009005| -av_create_and_unshift_one||5.009005| -av_delete||5.006000| -av_exists||5.006000| -av_extend||| -av_fetch||| -av_fill||| -av_iter_p||5.011000| -av_len||| -av_make||| -av_pop||| -av_push||| -av_reify||| -av_shift||| -av_store||| -av_undef||| -av_unshift||| -ax|||n -bad_type||| -bind_match||| -block_end||| -block_gimme||5.004000| -block_start||| -boolSV|5.004000||p -boot_core_PerlIO||| -boot_core_UNIVERSAL||| -boot_core_mro||| -bytes_from_utf8||5.007001| -bytes_to_uni|||n -bytes_to_utf8||5.006001| -call_argv|5.006000||p -call_atexit||5.006000| -call_list||5.004000| -call_method|5.006000||p -call_pv|5.006000||p -call_sv|5.006000||p -calloc||5.007002|n -cando||| -cast_i32||5.006000| -cast_iv||5.006000| -cast_ulong||5.006000| -cast_uv||5.006000| -check_type_and_open||| -check_uni||| -checkcomma||| -checkposixcc||| -ckWARN|5.006000||p -ck_anoncode||| -ck_bitop||| -ck_concat||| -ck_defined||| -ck_delete||| -ck_die||| -ck_each||| -ck_eof||| -ck_eval||| -ck_exec||| -ck_exists||| -ck_exit||| -ck_ftst||| -ck_fun||| -ck_glob||| -ck_grep||| -ck_index||| -ck_join||| -ck_lfun||| -ck_listiob||| -ck_match||| -ck_method||| -ck_null||| -ck_open||| -ck_readline||| -ck_repeat||| -ck_require||| -ck_return||| -ck_rfun||| -ck_rvconst||| -ck_sassign||| -ck_select||| -ck_shift||| -ck_sort||| -ck_spair||| -ck_split||| -ck_subr||| -ck_substr||| -ck_svconst||| -ck_trunc||| -ck_unpack||| -ckwarn_d||5.009003| -ckwarn||5.009003| -cl_and|||n -cl_anything|||n -cl_init_zero|||n -cl_init|||n -cl_is_anything|||n -cl_or|||n -clear_placeholders||| -closest_cop||| -convert||| -cop_free||| -cr_textfilter||| -create_eval_scope||| -croak_nocontext|||vn -croak_xs_usage||5.011000| -croak|||v -csighandler||5.009003|n -curmad||| -custom_op_desc||5.007003| -custom_op_name||5.007003| -cv_ckproto_len||| -cv_clone||| -cv_const_sv||5.004000| -cv_dump||| -cv_undef||| -cx_dump||5.005000| -cx_dup||| -cxinc||| -dAXMARK|5.009003||p -dAX|5.007002||p -dITEMS|5.007002||p -dMARK||| -dMULTICALL||5.009003| -dMY_CXT_SV|5.007003||p -dMY_CXT|5.007003||p -dNOOP|5.006000||p -dORIGMARK||| -dSP||| -dTHR|5.004050||p -dTHXR|5.011000||p -dTHXa|5.006000||p -dTHXoa|5.006000||p -dTHX|5.006000||p -dUNDERBAR|5.009002||p -dVAR|5.009003||p -dXCPT|5.009002||p -dXSARGS||| -dXSI32||| -dXSTARG|5.006000||p -deb_curcv||| -deb_nocontext|||vn -deb_stack_all||| -deb_stack_n||| -debop||5.005000| -debprofdump||5.005000| -debprof||| -debstackptrs||5.007003| -debstack||5.007003| -debug_start_match||| -deb||5.007003|v -del_sv||| -delete_eval_scope||| -delimcpy||5.004000| -deprecate_old||| -deprecate||| -despatch_signals||5.007001| -destroy_matcher||| -die_nocontext|||vn -die_where||| -die|||v -dirp_dup||| -div128||| -djSP||| -do_aexec5||| -do_aexec||| -do_aspawn||| -do_binmode||5.004050| -do_chomp||| -do_chop||| -do_close||| -do_dump_pad||| -do_eof||| -do_exec3||| -do_execfree||| -do_exec||| -do_gv_dump||5.006000| -do_gvgv_dump||5.006000| -do_hv_dump||5.006000| -do_ipcctl||| -do_ipcget||| -do_join||| -do_kv||| -do_magic_dump||5.006000| -do_msgrcv||| -do_msgsnd||| -do_oddball||| -do_op_dump||5.006000| -do_op_xmldump||| -do_open9||5.006000| -do_openn||5.007001| -do_open||5.004000| -do_pmop_dump||5.006000| -do_pmop_xmldump||| -do_print||| -do_readline||| -do_seek||| -do_semop||| -do_shmio||| -do_smartmatch||| -do_spawn_nowait||| -do_spawn||| -do_sprintf||| -do_sv_dump||5.006000| -do_sysseek||| -do_tell||| -do_trans_complex_utf8||| -do_trans_complex||| -do_trans_count_utf8||| -do_trans_count||| -do_trans_simple_utf8||| -do_trans_simple||| -do_trans||| -do_vecget||| -do_vecset||| -do_vop||| -docatch||| -doeval||| -dofile||| -dofindlabel||| -doform||| -doing_taint||5.008001|n -dooneliner||| -doopen_pm||| -doparseform||| -dopoptoeval||| -dopoptogiven||| -dopoptolabel||| -dopoptoloop||| -dopoptosub_at||| -dopoptowhen||| -doref||5.009003| -dounwind||| -dowantarray||| -dump_all||5.006000| -dump_eval||5.006000| -dump_exec_pos||| -dump_fds||| -dump_form||5.006000| -dump_indent||5.006000|v -dump_mstats||| -dump_packsubs||5.006000| -dump_sub||5.006000| -dump_sv_child||| -dump_trie_interim_list||| -dump_trie_interim_table||| -dump_trie||| -dump_vindent||5.006000| -dumpuntil||| -dup_attrlist||| -emulate_cop_io||| -eval_pv|5.006000||p -eval_sv|5.006000||p -exec_failed||| -expect_number||| -fbm_compile||5.005000| -fbm_instr||5.005000| -feature_is_enabled||| -fetch_cop_label||5.011000| -filter_add||| -filter_del||| -filter_gets||| -filter_read||| -find_and_forget_pmops||| -find_array_subscript||| -find_beginning||| -find_byclass||| -find_hash_subscript||| -find_in_my_stash||| -find_runcv||5.008001| -find_rundefsvoffset||5.009002| -find_script||| -find_uninit_var||| -first_symbol|||n -fold_constants||| -forbid_setid||| -force_ident||| -force_list||| -force_next||| -force_version||| -force_word||| -forget_pmop||| -form_nocontext|||vn -form||5.004000|v -fp_dup||| -fprintf_nocontext|||vn -free_global_struct||| -free_tied_hv_pool||| -free_tmps||| -gen_constant_list||| -get_arena||| -get_aux_mg||| -get_av|5.006000||p -get_context||5.006000|n -get_cvn_flags||5.009005| -get_cv|5.006000||p -get_db_sub||| -get_debug_opts||| -get_hash_seed||| -get_hv|5.006000||p -get_isa_hash||| -get_mstats||| -get_no_modify||| -get_num||| -get_op_descs||5.005000| -get_op_names||5.005000| -get_opargs||| -get_ppaddr||5.006000| -get_re_arg||| -get_sv|5.006000||p -get_vtbl||5.005030| -getcwd_sv||5.007002| -getenv_len||| -glob_2number||| -glob_assign_glob||| -glob_assign_ref||| -gp_dup||| -gp_free||| -gp_ref||| -grok_bin|5.007003||p -grok_hex|5.007003||p -grok_number|5.007002||p -grok_numeric_radix|5.007002||p -grok_oct|5.007003||p -group_end||| -gv_AVadd||| -gv_HVadd||| -gv_IOadd||| -gv_SVadd||| -gv_autoload4||5.004000| -gv_check||| -gv_const_sv||5.009003| -gv_dump||5.006000| -gv_efullname3||5.004000| -gv_efullname4||5.006001| -gv_efullname||| -gv_ename||| -gv_fetchfile_flags||5.009005| -gv_fetchfile||| -gv_fetchmeth_autoload||5.007003| -gv_fetchmethod_autoload||5.004000| -gv_fetchmethod_flags||5.011000| -gv_fetchmethod||| -gv_fetchmeth||| -gv_fetchpvn_flags|5.009002||p -gv_fetchpvs|5.009004||p -gv_fetchpv||| -gv_fetchsv||5.009002| -gv_fullname3||5.004000| -gv_fullname4||5.006001| -gv_fullname||| -gv_get_super_pkg||| -gv_handler||5.007001| -gv_init_sv||| -gv_init||| -gv_name_set||5.009004| -gv_stashpvn|5.004000||p -gv_stashpvs|5.009003||p -gv_stashpv||| -gv_stashsv||| -he_dup||| -hek_dup||| -hfreeentries||| -hsplit||| -hv_assert||5.011000| -hv_auxinit|||n -hv_backreferences_p||| -hv_clear_placeholders||5.009001| -hv_clear||| -hv_common_key_len||5.010000| -hv_common||5.010000| -hv_copy_hints_hv||| -hv_delayfree_ent||5.004000| -hv_delete_common||| -hv_delete_ent||5.004000| -hv_delete||| -hv_eiter_p||5.009003| -hv_eiter_set||5.009003| -hv_exists_ent||5.004000| -hv_exists||| -hv_fetch_ent||5.004000| -hv_fetchs|5.009003||p -hv_fetch||| -hv_free_ent||5.004000| -hv_iterinit||| -hv_iterkeysv||5.004000| -hv_iterkey||| -hv_iternext_flags||5.008000| -hv_iternextsv||| -hv_iternext||| -hv_iterval||| -hv_kill_backrefs||| -hv_ksplit||5.004000| -hv_magic_check|||n -hv_magic||| -hv_name_set||5.009003| -hv_notallowed||| -hv_placeholders_get||5.009003| -hv_placeholders_p||5.009003| -hv_placeholders_set||5.009003| -hv_riter_p||5.009003| -hv_riter_set||5.009003| -hv_scalar||5.009001| -hv_store_ent||5.004000| -hv_store_flags||5.008000| -hv_stores|5.009004||p -hv_store||| -hv_undef||| -ibcmp_locale||5.004000| -ibcmp_utf8||5.007003| -ibcmp||| -incline||| -incpush_if_exists||| -incpush_use_sep||| -incpush||| -ingroup||| -init_argv_symbols||| -init_debugger||| -init_global_struct||| -init_i18nl10n||5.006000| -init_i18nl14n||5.006000| -init_ids||| -init_interp||| -init_main_stash||| -init_perllib||| -init_postdump_symbols||| -init_predump_symbols||| -init_stacks||5.005000| -init_tm||5.007002| -instr||| -intro_my||| -intuit_method||| -intuit_more||| -invert||| -io_close||| -isALNUMC|5.006000||p -isALNUM||| -isALPHA||| -isASCII|5.006000||p -isBLANK|5.006001||p -isCNTRL|5.006000||p -isDIGIT||| -isGRAPH|5.006000||p -isGV_with_GP|5.009004||p -isLOWER||| -isPRINT|5.004000||p -isPSXSPC|5.006001||p -isPUNCT|5.006000||p -isSPACE||| -isUPPER||| -isXDIGIT|5.006000||p -is_an_int||| -is_gv_magical_sv||| -is_handle_constructor|||n -is_list_assignment||| -is_lvalue_sub||5.007001| -is_uni_alnum_lc||5.006000| -is_uni_alnumc_lc||5.006000| -is_uni_alnumc||5.006000| -is_uni_alnum||5.006000| -is_uni_alpha_lc||5.006000| -is_uni_alpha||5.006000| -is_uni_ascii_lc||5.006000| -is_uni_ascii||5.006000| -is_uni_cntrl_lc||5.006000| -is_uni_cntrl||5.006000| -is_uni_digit_lc||5.006000| -is_uni_digit||5.006000| -is_uni_graph_lc||5.006000| -is_uni_graph||5.006000| -is_uni_idfirst_lc||5.006000| -is_uni_idfirst||5.006000| -is_uni_lower_lc||5.006000| -is_uni_lower||5.006000| -is_uni_print_lc||5.006000| -is_uni_print||5.006000| -is_uni_punct_lc||5.006000| -is_uni_punct||5.006000| -is_uni_space_lc||5.006000| -is_uni_space||5.006000| -is_uni_upper_lc||5.006000| -is_uni_upper||5.006000| -is_uni_xdigit_lc||5.006000| -is_uni_xdigit||5.006000| -is_utf8_alnumc||5.006000| -is_utf8_alnum||5.006000| -is_utf8_alpha||5.006000| -is_utf8_ascii||5.006000| -is_utf8_char_slow|||n -is_utf8_char||5.006000| -is_utf8_cntrl||5.006000| -is_utf8_common||| -is_utf8_digit||5.006000| -is_utf8_graph||5.006000| -is_utf8_idcont||5.008000| -is_utf8_idfirst||5.006000| -is_utf8_lower||5.006000| -is_utf8_mark||5.006000| -is_utf8_print||5.006000| -is_utf8_punct||5.006000| -is_utf8_space||5.006000| -is_utf8_string_loclen||5.009003| -is_utf8_string_loc||5.008001| -is_utf8_string||5.006001| -is_utf8_upper||5.006000| -is_utf8_xdigit||5.006000| -isa_lookup||| -items|||n -ix|||n -jmaybe||| -join_exact||| -keyword||| -leave_scope||| -lex_end||| -lex_start||| -linklist||| -listkids||| -list||| -load_module_nocontext|||vn -load_module|5.006000||pv -localize||| -looks_like_bool||| -looks_like_number||| -lop||| -mPUSHi|5.009002||p -mPUSHn|5.009002||p -mPUSHp|5.009002||p -mPUSHs|5.011000||p -mPUSHu|5.009002||p -mXPUSHi|5.009002||p -mXPUSHn|5.009002||p -mXPUSHp|5.009002||p -mXPUSHs|5.011000||p -mXPUSHu|5.009002||p -mad_free||| -madlex||| -madparse||| -magic_clear_all_env||| -magic_clearenv||| -magic_clearhint||| -magic_clearisa||| -magic_clearpack||| -magic_clearsig||| -magic_dump||5.006000| -magic_existspack||| -magic_freearylen_p||| -magic_freeovrld||| -magic_getarylen||| -magic_getdefelem||| -magic_getnkeys||| -magic_getpack||| -magic_getpos||| -magic_getsig||| -magic_getsubstr||| -magic_gettaint||| -magic_getuvar||| -magic_getvec||| -magic_get||| -magic_killbackrefs||| -magic_len||| -magic_methcall||| -magic_methpack||| -magic_nextpack||| -magic_regdata_cnt||| -magic_regdatum_get||| -magic_regdatum_set||| -magic_scalarpack||| -magic_set_all_env||| -magic_setamagic||| -magic_setarylen||| -magic_setcollxfrm||| -magic_setdbline||| -magic_setdefelem||| -magic_setenv||| -magic_sethint||| -magic_setisa||| -magic_setmglob||| -magic_setnkeys||| -magic_setpack||| -magic_setpos||| -magic_setregexp||| -magic_setsig||| -magic_setsubstr||| -magic_settaint||| -magic_setutf8||| -magic_setuvar||| -magic_setvec||| -magic_set||| -magic_sizepack||| -magic_wipepack||| -make_matcher||| -make_trie_failtable||| -make_trie||| -malloc_good_size|||n -malloced_size|||n -malloc||5.007002|n -markstack_grow||| -matcher_matches_sv||| -measure_struct||| -memEQ|5.004000||p -memNE|5.004000||p -mem_collxfrm||| -mem_log_common|||n -mess_alloc||| -mess_nocontext|||vn -mess||5.006000|v -method_common||| -mfree||5.007002|n -mg_clear||| -mg_copy||| -mg_dup||| -mg_find||| -mg_free||| -mg_get||| -mg_length||5.005000| -mg_localize||| -mg_magical||| -mg_set||| -mg_size||5.005000| -mini_mktime||5.007002| -missingterm||| -mode_from_discipline||| -modkids||| -mod||| -more_bodies||| -more_sv||| -moreswitches||| -mro_get_from_name||5.011000| -mro_get_linear_isa_dfs||| -mro_get_linear_isa||5.009005| -mro_get_private_data||5.011000| -mro_isa_changed_in||| -mro_meta_dup||| -mro_meta_init||| -mro_method_changed_in||5.009005| -mro_register||5.011000| -mro_set_mro||5.011000| -mro_set_private_data||5.011000| -mul128||| -mulexp10|||n -my_atof2||5.007002| -my_atof||5.006000| -my_attrs||| -my_bcopy|||n -my_betoh16|||n -my_betoh32|||n -my_betoh64|||n -my_betohi|||n -my_betohl|||n -my_betohs|||n -my_bzero|||n -my_chsize||| -my_clearenv||| -my_cxt_index||| -my_cxt_init||| -my_dirfd||5.009005| -my_exit_jump||| -my_exit||| -my_failure_exit||5.004000| -my_fflush_all||5.006000| -my_fork||5.007003|n -my_htobe16|||n -my_htobe32|||n -my_htobe64|||n -my_htobei|||n -my_htobel|||n -my_htobes|||n -my_htole16|||n -my_htole32|||n -my_htole64|||n -my_htolei|||n -my_htolel|||n -my_htoles|||n -my_htonl||| -my_kid||| -my_letoh16|||n -my_letoh32|||n -my_letoh64|||n -my_letohi|||n -my_letohl|||n -my_letohs|||n -my_lstat||| -my_memcmp||5.004000|n -my_memset|||n -my_ntohl||| -my_pclose||5.004000| -my_popen_list||5.007001| -my_popen||5.004000| -my_setenv||| -my_snprintf|5.009004||pvn -my_socketpair||5.007003|n -my_sprintf|5.009003||pvn -my_stat||| -my_strftime||5.007002| -my_strlcat|5.009004||pn -my_strlcpy|5.009004||pn -my_swabn|||n -my_swap||| -my_unexec||| -my_vsnprintf||5.009004|n -need_utf8|||n -newANONATTRSUB||5.006000| -newANONHASH||| -newANONLIST||| -newANONSUB||| -newASSIGNOP||| -newATTRSUB||5.006000| -newAVREF||| -newAV||| -newBINOP||| -newCONDOP||| -newCONSTSUB|5.004050||p -newCVREF||| -newDEFSVOP||| -newFORM||| -newFOROP||| -newGIVENOP||5.009003| -newGIVWHENOP||| -newGP||| -newGVOP||| -newGVREF||| -newGVgen||| -newHVREF||| -newHVhv||5.005000| -newHV||| -newIO||| -newLISTOP||| -newLOGOP||| -newLOOPEX||| -newLOOPOP||| -newMADPROP||| -newMADsv||| -newMYSUB||| -newNULLLIST||| -newOP||| -newPADOP||| -newPMOP||| -newPROG||| -newPVOP||| -newRANGE||| -newRV_inc|5.004000||p -newRV_noinc|5.004000||p -newRV||| -newSLICEOP||| -newSTATEOP||| -newSUB||| -newSVOP||| -newSVREF||| -newSV_type|5.009005||p -newSVhek||5.009003| -newSViv||| -newSVnv||| -newSVpvf_nocontext|||vn -newSVpvf||5.004000|v -newSVpvn_flags|5.011000||p -newSVpvn_share|5.007001||p -newSVpvn_utf8|5.011000||p -newSVpvn|5.004050||p -newSVpvs_flags|5.011000||p -newSVpvs_share||5.009003| -newSVpvs|5.009003||p -newSVpv||| -newSVrv||| -newSVsv||| -newSVuv|5.006000||p -newSV||| -newTOKEN||| -newUNOP||| -newWHENOP||5.009003| -newWHILEOP||5.009003| -newXS_flags||5.009004| -newXSproto||5.006000| -newXS||5.006000| -new_collate||5.006000| -new_constant||| -new_ctype||5.006000| -new_he||| -new_logop||| -new_numeric||5.006000| -new_stackinfo||5.005000| -new_version||5.009000| -new_warnings_bitfield||| -next_symbol||| -nextargv||| -nextchar||| -ninstr||| -no_bareword_allowed||| -no_fh_allowed||| -no_op||| -not_a_number||| -nothreadhook||5.008000| -nuke_stacks||| -num_overflow|||n -offer_nice_chunk||| -oopsAV||| -oopsHV||| -op_clear||| -op_const_sv||| -op_dump||5.006000| -op_free||| -op_getmad_weak||| -op_getmad||| -op_null||5.007002| -op_refcnt_dec||| -op_refcnt_inc||| -op_refcnt_lock||5.009002| -op_refcnt_unlock||5.009002| -op_xmldump||| -open_script||| -pMY_CXT_|5.007003||p -pMY_CXT|5.007003||p -pTHX_|5.006000||p -pTHX|5.006000||p -packWARN|5.007003||p -pack_cat||5.007003| -pack_rec||| -package||| -packlist||5.008001| -pad_add_anon||| -pad_add_name||| -pad_alloc||| -pad_block_start||| -pad_check_dup||| -pad_compname_type||| -pad_findlex||| -pad_findmy||| -pad_fixup_inner_anons||| -pad_free||| -pad_leavemy||| -pad_new||| -pad_peg|||n -pad_push||| -pad_reset||| -pad_setsv||| -pad_sv||5.011000| -pad_swipe||| -pad_tidy||| -pad_undef||| -parse_body||| -parse_unicode_opts||| -parser_dup||| -parser_free||| -path_is_absolute|||n -peep||| -pending_Slabs_to_ro||| -perl_alloc_using|||n -perl_alloc|||n -perl_clone_using|||n -perl_clone|||n -perl_construct|||n -perl_destruct||5.007003|n -perl_free|||n -perl_parse||5.006000|n -perl_run|||n -pidgone||| -pm_description||| -pmflag||| -pmop_dump||5.006000| -pmop_xmldump||| -pmruntime||| -pmtrans||| -pop_scope||| -pregcomp||5.009005| -pregexec||| -pregfree2||5.011000| -pregfree||| -prepend_elem||| -prepend_madprops||| -printbuf||| -printf_nocontext|||vn -process_special_blocks||| -ptr_table_clear||5.009005| -ptr_table_fetch||5.009005| -ptr_table_find|||n -ptr_table_free||5.009005| -ptr_table_new||5.009005| -ptr_table_split||5.009005| -ptr_table_store||5.009005| -push_scope||| -put_byte||| -pv_display|5.006000||p -pv_escape|5.009004||p -pv_pretty|5.009004||p -pv_uni_display||5.007003| -qerror||| -qsortsvu||| -re_compile||5.009005| -re_croak2||| -re_dup_guts||| -re_intuit_start||5.009005| -re_intuit_string||5.006000| -readpipe_override||| -realloc||5.007002|n -reentrant_free||| -reentrant_init||| -reentrant_retry|||vn -reentrant_size||| -ref_array_or_hash||| -refcounted_he_chain_2hv||| -refcounted_he_fetch||| -refcounted_he_free||| -refcounted_he_new_common||| -refcounted_he_new||| -refcounted_he_value||| -refkids||| -refto||| -ref||5.011000| -reg_check_named_buff_matched||| -reg_named_buff_all||5.009005| -reg_named_buff_exists||5.009005| -reg_named_buff_fetch||5.009005| -reg_named_buff_firstkey||5.009005| -reg_named_buff_iter||| -reg_named_buff_nextkey||5.009005| -reg_named_buff_scalar||5.009005| -reg_named_buff||| -reg_namedseq||| -reg_node||| -reg_numbered_buff_fetch||| -reg_numbered_buff_length||| -reg_numbered_buff_store||| -reg_qr_package||| -reg_recode||| -reg_scan_name||| -reg_skipcomment||| -reg_temp_copy||| -reganode||| -regatom||| -regbranch||| -regclass_swash||5.009004| -regclass||| -regcppop||| -regcppush||| -regcurly|||n -regdump_extflags||| -regdump||5.005000| -regdupe_internal||| -regexec_flags||5.005000| -regfree_internal||5.009005| -reghop3|||n -reghop4|||n -reghopmaybe3|||n -reginclass||| -reginitcolors||5.006000| -reginsert||| -regmatch||| -regnext||5.005000| -regpiece||| -regpposixcc||| -regprop||| -regrepeat||| -regtail_study||| -regtail||| -regtry||| -reguni||| -regwhite|||n -reg||| -repeatcpy||| -report_evil_fh||| -report_uninit||| -require_pv||5.006000| -require_tie_mod||| -restore_magic||| -rninstr||| -rsignal_restore||| -rsignal_save||| -rsignal_state||5.004000| -rsignal||5.004000| -run_body||| -run_user_filter||| -runops_debug||5.005000| -runops_standard||5.005000| -rvpv_dup||| -rxres_free||| -rxres_restore||| -rxres_save||| -safesyscalloc||5.006000|n -safesysfree||5.006000|n -safesysmalloc||5.006000|n -safesysrealloc||5.006000|n -same_dirent||| -save_I16||5.004000| -save_I32||| -save_I8||5.006000| -save_adelete||5.011000| -save_aelem||5.004050| -save_alloc||5.006000| -save_aptr||| -save_ary||| -save_bool||5.008001| -save_clearsv||| -save_delete||| -save_destructor_x||5.006000| -save_destructor||5.006000| -save_freeop||| -save_freepv||| -save_freesv||| -save_generic_pvref||5.006001| -save_generic_svref||5.005030| -save_gp||5.004000| -save_hash||| -save_hek_flags|||n -save_helem_flags||5.011000| -save_helem||5.004050| -save_hints||| -save_hptr||| -save_int||| -save_item||| -save_iv||5.005000| -save_lines||| -save_list||| -save_long||| -save_magic||| -save_mortalizesv||5.007001| -save_nogv||| -save_op||| -save_padsv_and_mortalize||5.011000| -save_pptr||| -save_pushi32ptr||| -save_pushptri32ptr||| -save_pushptrptr||| -save_pushptr||5.011000| -save_re_context||5.006000| -save_scalar_at||| -save_scalar||| -save_set_svflags||5.009000| -save_shared_pvref||5.007003| -save_sptr||| -save_svref||| -save_vptr||5.006000| -savepvn||| -savepvs||5.009003| -savepv||| -savesharedpvn||5.009005| -savesharedpv||5.007003| -savestack_grow_cnt||5.008001| -savestack_grow||| -savesvpv||5.009002| -sawparens||| -scalar_mod_type|||n -scalarboolean||| -scalarkids||| -scalarseq||| -scalarvoid||| -scalar||| -scan_bin||5.006000| -scan_commit||| -scan_const||| -scan_formline||| -scan_heredoc||| -scan_hex||| -scan_ident||| -scan_inputsymbol||| -scan_num||5.007001| -scan_oct||| -scan_pat||| -scan_str||| -scan_subst||| -scan_trans||| -scan_version||5.009001| -scan_vstring||5.009005| -scan_word||| -scope||| -screaminstr||5.005000| -search_const||| -seed||5.008001| -sequence_num||| -sequence_tail||| -sequence||| -set_context||5.006000|n -set_numeric_local||5.006000| -set_numeric_radix||5.006000| -set_numeric_standard||5.006000| -setdefout||| -share_hek_flags||| -share_hek||5.004000| -si_dup||| -sighandler|||n -simplify_sort||| -skipspace0||| -skipspace1||| -skipspace2||| -skipspace||| -softref2xv||| -sortcv_stacked||| -sortcv_xsub||| -sortcv||| -sortsv_flags||5.009003| -sortsv||5.007003| -space_join_names_mortal||| -ss_dup||| -stack_grow||| -start_force||| -start_glob||| -start_subparse||5.004000| -stashpv_hvname_match||5.011000| -stdize_locale||| -store_cop_label||| -strEQ||| -strGE||| -strGT||| -strLE||| -strLT||| -strNE||| -str_to_version||5.006000| -strip_return||| -strnEQ||| -strnNE||| -study_chunk||| -sub_crush_depth||| -sublex_done||| -sublex_push||| -sublex_start||| -sv_2bool||| -sv_2cv||| -sv_2io||| -sv_2iuv_common||| -sv_2iuv_non_preserve||| -sv_2iv_flags||5.009001| -sv_2iv||| -sv_2mortal||| -sv_2num||| -sv_2nv||| -sv_2pv_flags|5.007002||p -sv_2pv_nolen|5.006000||p -sv_2pvbyte_nolen|5.006000||p -sv_2pvbyte|5.006000||p -sv_2pvutf8_nolen||5.006000| -sv_2pvutf8||5.006000| -sv_2pv||| -sv_2uv_flags||5.009001| -sv_2uv|5.004000||p -sv_add_arena||| -sv_add_backref||| -sv_backoff||| -sv_bless||| -sv_cat_decode||5.008001| -sv_catpv_mg|5.004050||p -sv_catpvf_mg_nocontext|||pvn +ABDAY_1|5.027010||Viu +ABDAY_2|5.027010||Viu +ABDAY_3|5.027010||Viu +ABDAY_4|5.027010||Viu +ABDAY_5|5.027010||Viu +ABDAY_6|5.027010||Viu +ABDAY_7|5.027010||Viu +ABMON_10|5.027010||Viu +ABMON_11|5.027010||Viu +ABMON_12|5.027010||Viu +ABMON_1|5.027010||Viu +ABMON_2|5.027010||Viu +ABMON_3|5.027010||Viu +ABMON_4|5.027010||Viu +ABMON_5|5.027010||Viu +ABMON_6|5.027010||Viu +ABMON_7|5.027010||Viu +ABMON_8|5.027010||Viu +ABMON_9|5.027010||Viu +ABORT|5.003007||Viu +abort|5.005000||Viu +abort_execution|5.025010||Viu +accept|5.005000||Viu +ACCEPT|5.009005||Viu +ACCEPT_t8_p8|5.033003||Viu +ACCEPT_t8_pb|5.033003||Viu +ACCEPT_tb_p8|5.033003||Viu +ACCEPT_tb_pb|5.033003||Viu +access|5.005000||Viu +add_above_Latin1_folds|5.021001||Viu +add_cp_to_invlist|5.013011||Viu +add_data|5.005000||Vniu +add_multi_match|5.021004||Viu +_add_range_to_invlist|5.016000||cViu +add_utf16_textfilter|5.011001||Viu +adjust_size_and_find_bucket|5.019003||Vniu +advance_one_LB|5.023007||Viu +advance_one_SB|5.021009||Viu +advance_one_WB|5.021009||Viu +AHOCORASICK|5.009005||Viu +AHOCORASICKC|5.009005||Viu +AHOCORASICKC_t8_p8|5.033003||Viu +AHOCORASICKC_t8_pb|5.033003||Viu +AHOCORASICKC_tb_p8|5.033003||Viu +AHOCORASICKC_tb_pb|5.033003||Viu +AHOCORASICK_t8_p8|5.033003||Viu +AHOCORASICK_t8_pb|5.033003||Viu +AHOCORASICK_tb_p8|5.033003||Viu +AHOCORASICK_tb_pb|5.033003||Viu +alloccopstash|5.017001|5.017001|x +alloc_LOGOP|5.025004||xViu +allocmy|5.008001||Viu +ALLOC_THREAD_KEY|5.005003||Viu +ALT_DIGITS|5.027010||Viu +amagic_call|5.003007|5.003007|u +amagic_cmp|5.009003||Viu +amagic_cmp_desc|5.031011||Viu +amagic_cmp_locale|5.009003||Viu +amagic_cmp_locale_desc|5.031011||Viu +amagic_deref_call|5.013007|5.013007|u +amagic_i_ncmp|5.009003||Viu +amagic_i_ncmp_desc|5.031011||Viu +amagic_is_enabled|5.015008||Viu +amagic_ncmp|5.009003||Viu +amagic_ncmp_desc|5.031011||Viu +AMG_CALLun|5.003007||Viu +AMG_CALLunary|5.013009||Viu +AMGfallNEVER|5.003007||Viu +AMGfallNO|5.003007||Viu +AMGfallYES|5.003007||Viu +AMGf_assign|5.003007||Viu +AMGf_noleft|5.003007||Viu +AMGf_noright|5.003007||Viu +AMGf_numarg|5.021009||Viu +AMGf_numeric|5.013002||Viu +AMGf_unary|5.003007||Viu +AMGf_want_list|5.017002||Viu +AM_STR|5.027010||Viu +AMT_AMAGIC|5.004000||Viu +AMT_AMAGIC_off|5.004000||Viu +AMT_AMAGIC_on|5.004000||Viu +AMTf_AMAGIC|5.004000||Viu +_aMY_CXT|5.009000|5.009000|p +aMY_CXT|5.009000|5.009000|p +aMY_CXT_|5.009000|5.009000|p +anchored_end_shift|5.009005||Viu +anchored_offset|5.005000||Viu +anchored_substr|5.005000||Viu +anchored_utf8|5.008000||Viu +ANGSTROM_SIGN|5.017003||Viu +anonymise_cv_maybe|5.013003||Viu +any_dup|5.006000||Vu +ANYOF|5.003007||Viu +ANYOF_ALNUM|5.006000||Viu +ANYOF_ALNUML|5.004000||Viu +ANYOF_ALPHA|5.006000||Viu +ANYOF_ALPHANUMERIC|5.017008||Viu +ANYOF_ASCII|5.006000||Viu +ANYOF_BIT|5.004005||Viu +ANYOF_BITMAP|5.006000||Viu +ANYOF_BITMAP_BYTE|5.006000||Viu +ANYOF_BITMAP_CLEAR|5.006000||Viu +ANYOF_BITMAP_CLEARALL|5.007003||Viu +ANYOF_BITMAP_SET|5.006000||Viu +ANYOF_BITMAP_SETALL|5.007003||Viu +ANYOF_BITMAP_SIZE|5.006000||Viu +ANYOF_BITMAP_TEST|5.006000||Viu +ANYOF_BITMAP_ZERO|5.006000||Viu +ANYOF_BLANK|5.006001||Viu +ANYOF_CASED|5.017008||Viu +ANYOF_CLASS_OR|5.017007||Viu +ANYOF_CLASS_SETALL|5.013011||Viu +ANYOF_CLASS_TEST_ANY_SET|5.013008||Viu +ANYOF_CNTRL|5.006000||Viu +ANYOF_COMMON_FLAGS|5.019008||Viu +ANYOFD|5.023003||Viu +ANYOF_DIGIT|5.006000||Viu +ANYOFD_t8_p8|5.033003||Viu +ANYOFD_t8_pb|5.033003||Viu +ANYOFD_tb_p8|5.033003||Viu +ANYOFD_tb_pb|5.033003||Viu +ANYOF_FLAGS|5.006000||Viu +ANYOF_FLAGS_ALL|5.006000||Viu +ANYOF_GRAPH|5.006000||Viu +ANYOFH|5.029007||Viu +ANYOFHb|5.031001||Viu +ANYOFHb_t8_p8|5.033003||Viu +ANYOFHb_t8_pb|5.033003||Viu +ANYOFHb_tb_p8|5.033003||Viu +ANYOFHb_tb_pb|5.033003||Viu +ANYOF_HORIZWS|5.009005||Viu +ANYOFHr|5.031002||Viu +ANYOFHr_t8_p8|5.033003||Viu +ANYOFHr_t8_pb|5.033003||Viu +ANYOFHr_tb_p8|5.033003||Viu +ANYOFHr_tb_pb|5.033003||Viu +ANYOFHs|5.031007||Viu +ANYOFHs_t8_p8|5.033003||Viu +ANYOFHs_t8_pb|5.033003||Viu +ANYOFHs_tb_p8|5.033003||Viu +ANYOFHs_tb_pb|5.033003||Viu +ANYOFH_t8_p8|5.033003||Viu +ANYOFH_t8_pb|5.033003||Viu +ANYOFH_tb_p8|5.033003||Viu +ANYOFH_tb_pb|5.033003||Viu +ANYOF_INVERT|5.004000||Viu +ANYOFL|5.021008||Viu +ANYOFL_FOLD|5.023007||Viu +ANYOF_LOCALE_FLAGS|5.019005||Viu +ANYOF_LOWER|5.006000||Viu +ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD|5.023007||Viu +ANYOFL_SOME_FOLDS_ONLY_IN_UTF8_LOCALE|5.023007||Viu +ANYOFL_t8_p8|5.033003||Viu +ANYOFL_t8_pb|5.033003||Viu +ANYOFL_tb_p8|5.033003||Viu +ANYOFL_tb_pb|5.033003||Viu +ANYOFL_UTF8_LOCALE_REQD|5.023007||Viu +ANYOFM|5.027009||Viu +ANYOF_MATCHES_ALL_ABOVE_BITMAP|5.021004||Viu +ANYOF_MATCHES_POSIXL|5.021004||Viu +ANYOF_MAX|5.006000||Viu +ANYOFM_t8_p8|5.033003||Viu +ANYOFM_t8_pb|5.033003||Viu +ANYOFM_tb_p8|5.033003||Viu +ANYOFM_tb_pb|5.033003||Viu +ANYOF_NALNUM|5.006000||Viu +ANYOF_NALNUML|5.004000||Viu +ANYOF_NALPHA|5.006000||Viu +ANYOF_NALPHANUMERIC|5.017008||Viu +ANYOF_NASCII|5.006000||Viu +ANYOF_NBLANK|5.006001||Viu +ANYOF_NCASED|5.017008||Viu +ANYOF_NCNTRL|5.006000||Viu +ANYOF_NDIGIT|5.006000||Viu +ANYOF_NGRAPH|5.006000||Viu +ANYOF_NHORIZWS|5.009005||Viu +ANYOF_NLOWER|5.006000||Viu +ANYOF_NPRINT|5.006000||Viu +ANYOF_NPUNCT|5.006000||Viu +ANYOF_NSPACE|5.006000||Viu +ANYOF_NSPACEL|5.004000||Viu +ANYOF_NUPPER|5.006000||Viu +ANYOF_NVERTWS|5.009005||Viu +ANYOF_NWORDCHAR|5.017005||Viu +ANYOF_NXDIGIT|5.006000||Viu +ANYOF_ONLY_HAS_BITMAP|5.021004||Viu +ANYOFPOSIXL|5.029004||Viu +ANYOF_POSIXL_AND|5.019005||Viu +ANYOF_POSIXL_CLEAR|5.019005||Viu +ANYOF_POSIXL_MAX|5.019005||Viu +ANYOF_POSIXL_OR|5.019005||Viu +ANYOF_POSIXL_SET|5.019005||Viu +ANYOF_POSIXL_SETALL|5.019005||Viu +ANYOF_POSIXL_SET_TO_BITMAP|5.029004||Viu +ANYOF_POSIXL_SSC_TEST_ALL_SET|5.019009||Viu +ANYOF_POSIXL_SSC_TEST_ANY_SET|5.019009||Viu +ANYOFPOSIXL_t8_p8|5.033003||Viu +ANYOFPOSIXL_t8_pb|5.033003||Viu +ANYOFPOSIXL_tb_p8|5.033003||Viu +ANYOFPOSIXL_tb_pb|5.033003||Viu +ANYOF_POSIXL_TEST|5.019005||Viu +ANYOF_POSIXL_TEST_ALL_SET|5.019005||Viu +ANYOF_POSIXL_TEST_ANY_SET|5.019005||Viu +ANYOF_POSIXL_ZERO|5.019005||Viu +ANYOF_PRINT|5.006000||Viu +ANYOF_PUNCT|5.006000||Viu +ANYOFR|5.031007||Viu +ANYOFRb|5.031007||Viu +ANYOFRbase|5.031007||Viu +ANYOFR_BASE_BITS|5.031007||Viu +ANYOFRb_t8_p8|5.033003||Viu +ANYOFRb_t8_pb|5.033003||Viu +ANYOFRb_tb_p8|5.033003||Viu +ANYOFRb_tb_pb|5.033003||Viu +ANYOFRdelta|5.031007||Viu +ANYOFR_t8_p8|5.033003||Viu +ANYOFR_t8_pb|5.033003||Viu +ANYOFR_tb_p8|5.033003||Viu +ANYOFR_tb_pb|5.033003||Viu +ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER|5.023003||Viu +ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP|5.023006||Viu +ANYOF_SPACE|5.006000||Viu +ANYOF_SPACEL|5.004000||Viu +ANYOF_t8_p8|5.033003||Viu +ANYOF_t8_pb|5.033003||Viu +ANYOF_tb_p8|5.033003||Viu +ANYOF_tb_pb|5.033003||Viu +ANYOF_UNIPROP|5.017006||Viu +ANYOF_UPPER|5.006000||Viu +ANYOF_VERTWS|5.009005||Viu +ANYOF_WORDCHAR|5.017005||Viu +ANYOF_XDIGIT|5.006000||Viu +ao|5.005000||Viu +_append_range_to_invlist|5.013010||Viu +append_utf8_from_native_byte|5.019004||cVniu +apply|5.003007||Viu +apply_attrs|5.006000||Viu +apply_attrs_my|5.007003||Viu +apply_attrs_string|5.006001|5.006001|xu +ARCHLIB|5.003007|5.003007|Vn +ARCHLIB_EXP|5.003007|5.003007|Vn +ARCHNAME|5.004000|5.004000|Vn +ARG1|5.003007||Viu +ARG1_LOC|5.005000||Viu +ARG1_SET|5.005000||Viu +ARG2|5.003007||Viu +ARG2L|5.009005||Viu +ARG2L_LOC|5.009005||Viu +ARG2_LOC|5.005000||Viu +ARG2L_SET|5.009005||Viu +ARG2_SET|5.005000||Viu +ARG|5.005000||Viu +ARG_LOC|5.005000||Viu +ARGp|5.031010||Viu +ARGp_LOC|5.031010||Viu +ARGp_SET|5.031010||Viu +ARG__SET|5.005000||Viu +ARG_SET|5.005000||Viu +ARGTARG|5.003007||Viu +ARG_VALUE|5.005000||Viu +argvout_final|5.029006||Viu +ASCIIish|5.005003||Viu +ASCII_MORE_RESTRICT_PAT_MODS|5.013010||Viu +ASCII_RESTRICT_PAT_MOD|5.013009||Viu +ASCII_RESTRICT_PAT_MODS|5.013009||Viu +ASCII_TO_NATIVE|5.007001||Viu +ASCII_TO_NEED|5.019004||dcVnu +asctime|5.009000||Viu +ASCTIME_R_PROTO|5.008000|5.008000|Vn +assert|5.003007||Viu +__ASSERT_|5.019007|5.008008|p +ASSERT_CURPAD_ACTIVE|5.008001||Viu +ASSERT_CURPAD_LEGAL|5.008001||Viu +assert_not_glob|5.009004||Viu +assert_not_ROK|5.008001||Viu +assert_uft8_cache_coherent|5.013003||Viu +assignment_type|5.021005||Viu +ASSUME|5.019006|5.003007|p +atfork_lock|5.007002|5.007002|nu +atfork_unlock|5.007002|5.007002|nu +aTHX|5.006000|5.003007|p +aTHX_|5.006000|5.003007|p +aTHXa|5.017006||Viu +aTHXo|5.006000||Viu +aTHXR||5.003007|ponu +aTHXR_||5.003007|ponu +aTHXx|5.006000||Viu +Atof|5.006000||Viu +Atol|5.006000||Viu +atoll|5.008000||Viu +Atoul|5.006000||Viu +AvALLOC|5.003007||Viu +AvARRAY|5.003007|5.003007| +AvARYLEN|5.003007||Viu +av_arylen_p|||cu +av_clear|5.003007|5.003007| +av_count|5.033001|5.003007|p +av_create_and_push|5.009005|5.009005|x +av_create_and_unshift_one|5.009005|5.009005|x +av_delete|5.006000|5.006000| +av_exists|5.006000|5.006000| +av_extend|5.003007|5.003007| +av_extend_guts|5.017004||Viu +av_fetch|5.003007|5.003007| +av_fill|5.003007|5.003007| +AvFILL|5.003007|5.003007| +AvFILLp|5.004005||pcV +av_iter_p|||cu +av_len|5.003007|5.003007| +av_make|5.003007|5.003007| +AvMAX|5.003007||Viu +av_new_alloc|5.035001|5.035001| +av_nonelem|5.027009||Viu +av_pop|5.003007|5.003007| +av_push|5.003007|5.003007| +AvREAL|5.003007||Viu +AvREALISH|5.003007||Viu +AvREAL_off|5.003007||Viu +AvREAL_on|5.003007||Viu +AvREAL_only|5.009003||Viu +AvREIFY|5.003007||Viu +av_reify|5.004004||cViu +AvREIFY_off|5.003007||Viu +AvREIFY_on|5.003007||Viu +AvREIFY_only|5.009003||Viu +av_shift|5.003007|5.003007| +av_store|5.003007|5.003007| +av_tindex|5.017009|5.003007|p +av_tindex_skip_len_mg|5.025010||Viu +av_top_index|5.017009|5.003007|p +av_top_index_skip_len_mg|5.025010||Viu +av_undef|5.003007|5.003007| +av_unshift|5.003007|5.003007| +ax|5.003007|5.003007| +backup_one_GCB|5.025003||Viu +backup_one_LB|5.023007||Viu +backup_one_SB|5.021009||Viu +backup_one_WB|5.021009||Viu +bad_type_gv|5.019002||Viu +bad_type_pv|5.016000||Viu +BADVERSION|5.011004||Viu +BASEOP|5.003007||Viu +BhkDISABLE|5.013003||xV +BhkENABLE|5.013003||xV +BhkENTRY|5.013003||xVi +BhkENTRY_set|5.013003||xV +BHKf_bhk_eval|5.013006||Viu +BHKf_bhk_post_end|5.013006||Viu +BHKf_bhk_pre_end|5.013006||Viu +BHKf_bhk_start|5.013006||Viu +BhkFLAGS|5.013003||xVi +BIN|5.003007|5.003007|Vn +bind|5.005000||Viu +bind_match|5.003007||Viu +BIN_EXP|5.004000|5.004000|Vn +BIT_BUCKET|5.003007||Viu +BIT_DIGITS|5.004000||Viu +BITMAP_BYTE|5.009005||Viu +BITMAP_TEST|5.009005||Viu +blk_eval|5.003007||Viu +blk_format|5.011000||Viu +blk_gimme|5.003007||Viu +blk_givwhen|5.027008||Viu +blk_loop|5.003007||Viu +blk_oldcop|5.003007||Viu +blk_oldmarksp|5.003007||Viu +blk_oldpm|5.003007||Viu +blk_oldsaveix|5.023008||Viu +blk_oldscopesp|5.003007||Viu +blk_oldsp|5.003007||Viu +blk_old_tmpsfloor|5.023008||Viu +blk_sub|5.003007||Viu +blk_u16|5.011000||Viu +block_end|5.004000|5.004000| +block_gimme|5.004000|5.004000|u +blockhook_register|5.013003|5.013003|x +block_start|5.004000|5.004000| +BmFLAGS|5.009005||Viu +BmPREVIOUS|5.003007||Viu +BmRARE|5.003007||Viu +BmUSEFUL|5.003007||Viu +BOL|5.003007||Viu +BOL_t8_p8|5.033003||Viu +BOL_t8_pb|5.033003||Viu +BOL_tb_p8|5.033003||Viu +BOL_tb_pb|5.033003||Viu +BOM_UTF8|5.025005|5.003007|p +BOM_UTF8_FIRST_BYTE|5.019004||Viu +BOM_UTF8_TAIL|5.019004||Viu +bool|5.003007||Viu +boolSV|5.004000|5.003007|p +boot_core_mro|5.009005||Viu +boot_core_PerlIO|5.007002||Viu +boot_core_UNIVERSAL|5.003007||Viu +BOUND|5.003007||Viu +BOUNDA|5.013009||Viu +BOUNDA_t8_p8|5.033003||Viu +BOUNDA_t8_pb|5.033003||Viu +BOUNDA_tb_p8|5.033003||Viu +BOUNDA_tb_pb|5.033003||Viu +BOUNDL|5.004000||Viu +BOUNDL_t8_p8|5.033003||Viu +BOUNDL_t8_pb|5.033003||Viu +BOUNDL_tb_p8|5.033003||Viu +BOUNDL_tb_pb|5.033003||Viu +BOUND_t8_p8|5.033003||Viu +BOUND_t8_pb|5.033003||Viu +BOUND_tb_p8|5.033003||Viu +BOUND_tb_pb|5.033003||Viu +BOUNDU|5.013009||Viu +BOUNDU_t8_p8|5.033003||Viu +BOUNDU_t8_pb|5.033003||Viu +BOUNDU_tb_p8|5.033003||Viu +BOUNDU_tb_pb|5.033003||Viu +BRANCH|5.003007||Viu +BRANCHJ|5.005000||Viu +BRANCHJ_t8_p8|5.033003||Viu +BRANCHJ_t8_pb|5.033003||Viu +BRANCHJ_tb_p8|5.033003||Viu +BRANCHJ_tb_pb|5.033003||Viu +BRANCH_next|5.009005||Viu +BRANCH_next_fail|5.009005||Viu +BRANCH_next_fail_t8_p8|5.033003||Viu +BRANCH_next_fail_t8_pb|5.033003||Viu +BRANCH_next_fail_tb_p8|5.033003||Viu +BRANCH_next_fail_tb_pb|5.033003||Viu +BRANCH_next_t8_p8|5.033003||Viu +BRANCH_next_t8_pb|5.033003||Viu +BRANCH_next_tb_p8|5.033003||Viu +BRANCH_next_tb_pb|5.033003||Viu +BRANCH_t8_p8|5.033003||Viu +BRANCH_t8_pb|5.033003||Viu +BRANCH_tb_p8|5.033003||Viu +BRANCH_tb_pb|5.033003||Viu +BSD_GETPGRP|5.003007||Viu +BSDish|5.008001||Viu +BSD_SETPGRP|5.003007||Viu +BUFSIZ|5.003007||Viu +_byte_dump_string|5.025006||cViu +BYTEORDER|5.003007|5.003007|Vn +bytes_cmp_utf8|5.013007|5.013007| +bytes_from_utf8|5.007001|5.007001|x +bytes_from_utf8_loc|5.027001||xcVn +bytes_to_utf8|5.006001|5.006001|x +call_argv|5.006000|5.003007|p +call_atexit|5.006000|5.006000|u +CALL_BLOCK_HOOKS|5.013003||xVi +CALL_CHECKER_REQUIRE_GV|5.021004|5.021004| +caller_cx|5.013005|5.006000|p +CALL_FPTR|5.006000||Viu +call_list|5.004000|5.004000|u +call_method|5.006000|5.003007|p +calloc|5.007002|5.007002|n +call_pv|5.006000|5.003007|p +CALLREGCOMP|5.005000||Viu +CALLREGCOMP_ENG|5.009005||Viu +CALLREGDUPE|5.009005||Viu +CALLREGDUPE_PVT|5.009005||Viu +CALLREGEXEC|5.005000||Viu +CALLREGFREE|5.006000||Viu +CALLREGFREE_PVT|5.009005||Viu +CALLREG_INTUIT_START|5.006000||Viu +CALLREG_INTUIT_STRING|5.006000||Viu +CALLREG_NAMED_BUFF_ALL|5.009005||Viu +CALLREG_NAMED_BUFF_CLEAR|5.009005||Viu +CALLREG_NAMED_BUFF_COUNT|5.009005||Viu +CALLREG_NAMED_BUFF_DELETE|5.009005||Viu +CALLREG_NAMED_BUFF_EXISTS|5.009005||Viu +CALLREG_NAMED_BUFF_FETCH|5.009005||Viu +CALLREG_NAMED_BUFF_FIRSTKEY|5.009005||Viu +CALLREG_NAMED_BUFF_NEXTKEY|5.009005||Viu +CALLREG_NAMED_BUFF_SCALAR|5.009005||Viu +CALLREG_NAMED_BUFF_STORE|5.009005||Viu +CALLREG_NUMBUF_FETCH|5.009005||Viu +CALLREG_NUMBUF_LENGTH|5.009005||Viu +CALLREG_NUMBUF_STORE|5.009005||Viu +CALLREG_PACKAGE|5.009005||Viu +CALLRUNOPS|5.005000||Viu +call_sv|5.006000|5.003007|p +CAN64BITHASH|5.027001||Viu +CAN_COW_FLAGS|5.009000||Viu +CAN_COW_MASK|5.009000||Viu +cando|5.003007||Viu +CAN_PROTOTYPE|5.003007||Viu +C_ARRAY_END|5.013002|5.003007|p +C_ARRAY_LENGTH|5.008001|5.003007|p +case_100_SBOX32|5.027001||Viu +case_101_SBOX32|5.027001||Viu +case_102_SBOX32|5.027001||Viu +case_103_SBOX32|5.027001||Viu +case_104_SBOX32|5.027001||Viu +case_105_SBOX32|5.027001||Viu +case_106_SBOX32|5.027001||Viu +case_107_SBOX32|5.027001||Viu +case_108_SBOX32|5.027001||Viu +case_109_SBOX32|5.027001||Viu +case_10_SBOX32|5.027001||Viu +case_110_SBOX32|5.027001||Viu +case_111_SBOX32|5.027001||Viu +case_112_SBOX32|5.027001||Viu +case_113_SBOX32|5.027001||Viu +case_114_SBOX32|5.027001||Viu +case_115_SBOX32|5.027001||Viu +case_116_SBOX32|5.027001||Viu +case_117_SBOX32|5.027001||Viu +case_118_SBOX32|5.027001||Viu +case_119_SBOX32|5.027001||Viu +case_11_SBOX32|5.027001||Viu +case_120_SBOX32|5.027001||Viu +case_121_SBOX32|5.027001||Viu +case_122_SBOX32|5.027001||Viu +case_123_SBOX32|5.027001||Viu +case_124_SBOX32|5.027001||Viu +case_125_SBOX32|5.027001||Viu +case_126_SBOX32|5.027001||Viu +case_127_SBOX32|5.027001||Viu +case_128_SBOX32|5.027001||Viu +case_129_SBOX32|5.027001||Viu +case_12_SBOX32|5.027001||Viu +case_130_SBOX32|5.027001||Viu +case_131_SBOX32|5.027001||Viu +case_132_SBOX32|5.027001||Viu +case_133_SBOX32|5.027001||Viu +case_134_SBOX32|5.027001||Viu +case_135_SBOX32|5.027001||Viu +case_136_SBOX32|5.027001||Viu +case_137_SBOX32|5.027001||Viu +case_138_SBOX32|5.027001||Viu +case_139_SBOX32|5.027001||Viu +case_13_SBOX32|5.027001||Viu +case_140_SBOX32|5.027001||Viu +case_141_SBOX32|5.027001||Viu +case_142_SBOX32|5.027001||Viu +case_143_SBOX32|5.027001||Viu +case_144_SBOX32|5.027001||Viu +case_145_SBOX32|5.027001||Viu +case_146_SBOX32|5.027001||Viu +case_147_SBOX32|5.027001||Viu +case_148_SBOX32|5.027001||Viu +case_149_SBOX32|5.027001||Viu +case_14_SBOX32|5.027001||Viu +case_150_SBOX32|5.027001||Viu +case_151_SBOX32|5.027001||Viu +case_152_SBOX32|5.027001||Viu +case_153_SBOX32|5.027001||Viu +case_154_SBOX32|5.027001||Viu +case_155_SBOX32|5.027001||Viu +case_156_SBOX32|5.027001||Viu +case_157_SBOX32|5.027001||Viu +case_158_SBOX32|5.027001||Viu +case_159_SBOX32|5.027001||Viu +case_15_SBOX32|5.027001||Viu +case_160_SBOX32|5.027001||Viu +case_161_SBOX32|5.027001||Viu +case_162_SBOX32|5.027001||Viu +case_163_SBOX32|5.027001||Viu +case_164_SBOX32|5.027001||Viu +case_165_SBOX32|5.027001||Viu +case_166_SBOX32|5.027001||Viu +case_167_SBOX32|5.027001||Viu +case_168_SBOX32|5.027001||Viu +case_169_SBOX32|5.027001||Viu +case_16_SBOX32|5.027001||Viu +case_170_SBOX32|5.027001||Viu +case_171_SBOX32|5.027001||Viu +case_172_SBOX32|5.027001||Viu +case_173_SBOX32|5.027001||Viu +case_174_SBOX32|5.027001||Viu +case_175_SBOX32|5.027001||Viu +case_176_SBOX32|5.027001||Viu +case_177_SBOX32|5.027001||Viu +case_178_SBOX32|5.027001||Viu +case_179_SBOX32|5.027001||Viu +case_17_SBOX32|5.027001||Viu +case_180_SBOX32|5.027001||Viu +case_181_SBOX32|5.027001||Viu +case_182_SBOX32|5.027001||Viu +case_183_SBOX32|5.027001||Viu +case_184_SBOX32|5.027001||Viu +case_185_SBOX32|5.027001||Viu +case_186_SBOX32|5.027001||Viu +case_187_SBOX32|5.027001||Viu +case_188_SBOX32|5.027001||Viu +case_189_SBOX32|5.027001||Viu +case_18_SBOX32|5.027001||Viu +case_190_SBOX32|5.027001||Viu +case_191_SBOX32|5.027001||Viu +case_192_SBOX32|5.027001||Viu +case_193_SBOX32|5.027001||Viu +case_194_SBOX32|5.027001||Viu +case_195_SBOX32|5.027001||Viu +case_196_SBOX32|5.027001||Viu +case_197_SBOX32|5.027001||Viu +case_198_SBOX32|5.027001||Viu +case_199_SBOX32|5.027001||Viu +case_19_SBOX32|5.027001||Viu +case_1_SBOX32|5.027001||Viu +case_200_SBOX32|5.027001||Viu +case_201_SBOX32|5.027001||Viu +case_202_SBOX32|5.027001||Viu +case_203_SBOX32|5.027001||Viu +case_204_SBOX32|5.027001||Viu +case_205_SBOX32|5.027001||Viu +case_206_SBOX32|5.027001||Viu +case_207_SBOX32|5.027001||Viu +case_208_SBOX32|5.027001||Viu +case_209_SBOX32|5.027001||Viu +case_20_SBOX32|5.027001||Viu +case_210_SBOX32|5.027001||Viu +case_211_SBOX32|5.027001||Viu +case_212_SBOX32|5.027001||Viu +case_213_SBOX32|5.027001||Viu +case_214_SBOX32|5.027001||Viu +case_215_SBOX32|5.027001||Viu +case_216_SBOX32|5.027001||Viu +case_217_SBOX32|5.027001||Viu +case_218_SBOX32|5.027001||Viu +case_219_SBOX32|5.027001||Viu +case_21_SBOX32|5.027001||Viu +case_220_SBOX32|5.027001||Viu +case_221_SBOX32|5.027001||Viu +case_222_SBOX32|5.027001||Viu +case_223_SBOX32|5.027001||Viu +case_224_SBOX32|5.027001||Viu +case_225_SBOX32|5.027001||Viu +case_226_SBOX32|5.027001||Viu +case_227_SBOX32|5.027001||Viu +case_228_SBOX32|5.027001||Viu +case_229_SBOX32|5.027001||Viu +case_22_SBOX32|5.027001||Viu +case_230_SBOX32|5.027001||Viu +case_231_SBOX32|5.027001||Viu +case_232_SBOX32|5.027001||Viu +case_233_SBOX32|5.027001||Viu +case_234_SBOX32|5.027001||Viu +case_235_SBOX32|5.027001||Viu +case_236_SBOX32|5.027001||Viu +case_237_SBOX32|5.027001||Viu +case_238_SBOX32|5.027001||Viu +case_239_SBOX32|5.027001||Viu +case_23_SBOX32|5.027001||Viu +case_240_SBOX32|5.027001||Viu +case_241_SBOX32|5.027001||Viu +case_242_SBOX32|5.027001||Viu +case_243_SBOX32|5.027001||Viu +case_244_SBOX32|5.027001||Viu +case_245_SBOX32|5.027001||Viu +case_246_SBOX32|5.027001||Viu +case_247_SBOX32|5.027001||Viu +case_248_SBOX32|5.027001||Viu +case_249_SBOX32|5.027001||Viu +case_24_SBOX32|5.027001||Viu +case_250_SBOX32|5.027001||Viu +case_251_SBOX32|5.027001||Viu +case_252_SBOX32|5.027001||Viu +case_253_SBOX32|5.027001||Viu +case_254_SBOX32|5.027001||Viu +case_255_SBOX32|5.027001||Viu +case_256_SBOX32|5.027001||Viu +case_25_SBOX32|5.027001||Viu +case_26_SBOX32|5.027001||Viu +case_27_SBOX32|5.027001||Viu +case_28_SBOX32|5.027001||Viu +case_29_SBOX32|5.027001||Viu +case_2_SBOX32|5.027001||Viu +case_30_SBOX32|5.027001||Viu +case_31_SBOX32|5.027001||Viu +case_32_SBOX32|5.027001||Viu +case_33_SBOX32|5.027001||Viu +case_34_SBOX32|5.027001||Viu +case_35_SBOX32|5.027001||Viu +case_36_SBOX32|5.027001||Viu +case_37_SBOX32|5.027001||Viu +case_38_SBOX32|5.027001||Viu +case_39_SBOX32|5.027001||Viu +case_3_SBOX32|5.027001||Viu +case_40_SBOX32|5.027001||Viu +case_41_SBOX32|5.027001||Viu +case_42_SBOX32|5.027001||Viu +case_43_SBOX32|5.027001||Viu +case_44_SBOX32|5.027001||Viu +case_45_SBOX32|5.027001||Viu +case_46_SBOX32|5.027001||Viu +case_47_SBOX32|5.027001||Viu +case_48_SBOX32|5.027001||Viu +case_49_SBOX32|5.027001||Viu +case_4_SBOX32|5.027001||Viu +case_50_SBOX32|5.027001||Viu +case_51_SBOX32|5.027001||Viu +case_52_SBOX32|5.027001||Viu +case_53_SBOX32|5.027001||Viu +case_54_SBOX32|5.027001||Viu +case_55_SBOX32|5.027001||Viu +case_56_SBOX32|5.027001||Viu +case_57_SBOX32|5.027001||Viu +case_58_SBOX32|5.027001||Viu +case_59_SBOX32|5.027001||Viu +case_5_SBOX32|5.027001||Viu +case_60_SBOX32|5.027001||Viu +case_61_SBOX32|5.027001||Viu +case_62_SBOX32|5.027001||Viu +case_63_SBOX32|5.027001||Viu +case_64_SBOX32|5.027001||Viu +case_65_SBOX32|5.027001||Viu +case_66_SBOX32|5.027001||Viu +case_67_SBOX32|5.027001||Viu +case_68_SBOX32|5.027001||Viu +case_69_SBOX32|5.027001||Viu +case_6_SBOX32|5.027001||Viu +case_70_SBOX32|5.027001||Viu +case_71_SBOX32|5.027001||Viu +case_72_SBOX32|5.027001||Viu +case_73_SBOX32|5.027001||Viu +case_74_SBOX32|5.027001||Viu +case_75_SBOX32|5.027001||Viu +case_76_SBOX32|5.027001||Viu +case_77_SBOX32|5.027001||Viu +case_78_SBOX32|5.027001||Viu +case_79_SBOX32|5.027001||Viu +case_7_SBOX32|5.027001||Viu +case_80_SBOX32|5.027001||Viu +case_81_SBOX32|5.027001||Viu +case_82_SBOX32|5.027001||Viu +case_83_SBOX32|5.027001||Viu +case_84_SBOX32|5.027001||Viu +case_85_SBOX32|5.027001||Viu +case_86_SBOX32|5.027001||Viu +case_87_SBOX32|5.027001||Viu +case_88_SBOX32|5.027001||Viu +case_89_SBOX32|5.027001||Viu +case_8_SBOX32|5.027001||Viu +case_90_SBOX32|5.027001||Viu +case_91_SBOX32|5.027001||Viu +case_92_SBOX32|5.027001||Viu +case_93_SBOX32|5.027001||Viu +case_94_SBOX32|5.027001||Viu +case_95_SBOX32|5.027001||Viu +case_96_SBOX32|5.027001||Viu +case_97_SBOX32|5.027001||Viu +case_98_SBOX32|5.027001||Viu +case_99_SBOX32|5.027001||Viu +case_9_SBOX32|5.027001||Viu +CASE_STD_PMMOD_FLAGS_PARSE_SET|5.009005||Viu +CASTFLAGS|5.003007|5.003007|Vn +cast_i32|5.006000||cVnu +cast_iv|5.006000||cVnu +CASTNEGFLOAT|5.003007|5.003007|Vn +cast_ulong|5.003007||cVnu +cast_uv|5.006000||cVnu +CAT2|5.003007|5.003007|Vn +CATCH_GET|5.004000||Viu +CATCH_SET|5.004000||Viu +category_name|5.027008||Vniu +cBINOP|5.003007||Viu +cBINOPo|5.004005||Viu +cBINOPx|5.006000||Viu +cBOOL|5.013000|5.003007|p +cCOP|5.003007||Viu +cCOPo|5.004005||Viu +cCOPx|5.006000||Viu +C_FAC_POSIX|5.009003||Viu +cGVOP_gv|5.006000||Viu +cGVOPo_gv|5.006000||Viu +cGVOPx_gv|5.006000||Viu +change_engine_size|5.029004||Viu +CHANGE_MULTICALL_FLAGS|5.018000||Viu +CHARBITS|5.011002|5.011002|Vn +CHARSET_PAT_MODS|5.013010||Viu +chdir|5.005000||Viu +checkcomma|5.003007||Viu +check_end_shift|5.009005||Viu +check_locale_boundary_crossing|5.015006||Viu +CHECK_MALLOC_TAINT|5.008001||Viu +CHECK_MALLOC_TOO_LATE_FOR|5.008001||Viu +check_offset_max|5.005000||Viu +check_offset_min|5.005000||Viu +check_substr|5.005000||Viu +check_type_and_open|5.009003||Viu +check_uni|5.003007||Viu +check_utf8|5.008000||Viu +check_utf8_print|5.013009||Viu +child_offset_bits|5.009003||Viu +chmod|5.005000||Viu +chsize|5.005000||Viu +ckDEAD|5.006000||Viu +ck_entersub_args_core|||iu +ck_entersub_args_list|5.013006|5.013006| +ck_entersub_args_proto|5.013006|5.013006| +ck_entersub_args_proto_or_list|5.013006|5.013006| +ckWARN2|5.006000|5.003007|p +ckWARN2_d|5.006000|5.003007|p +ckWARN3|5.007003|5.003007|p +ckWARN3_d|5.007003|5.003007|p +ckWARN4|5.007003|5.003007|p +ckWARN4_d|5.007003|5.003007|p +ckWARN|5.006000|5.003007|p +ckwarn_common|5.011001||Viu +ckwarn|||cu +ckWARN_d|5.006000|5.003007|p +ckwarn_d|||cu +ck_warner|5.011001|5.004000|pv +ck_warner_d|5.011001|5.004000|pv +CLANG_DIAG_IGNORE|5.023006||Viu +CLANG_DIAG_IGNORE_DECL|5.027007||Viu +CLANG_DIAG_IGNORE_STMT|5.027007||Viu +CLANG_DIAG_PRAGMA|5.023006||Viu +CLANG_DIAG_RESTORE|5.023006||Viu +CLANG_DIAG_RESTORE_DECL|5.027007||Viu +CLANG_DIAG_RESTORE_STMT|5.027007||Viu +CLASS||5.003007| +CLEAR_ARGARRAY|5.006000||Viu +clear_defarray|5.023008|5.023008|u +clearerr|5.003007||Viu +CLEAR_ERRSV|5.025007|5.025007| +CLEARFEATUREBITS|5.031006||Viu +clear_placeholders|5.009004||xViu +clear_special_blocks|5.021003||Viu +cLISTOP|5.003007||Viu +cLISTOPo|5.004005||Viu +cLISTOPx|5.006000||Viu +cLOGOP|5.003007||Viu +cLOGOPo|5.004005||Viu +cLOGOPx|5.006000||Viu +CLONEf_CLONE_HOST|5.007002||Viu +CLONEf_COPY_STACKS|5.007001||Viu +CLONEf_JOIN_IN|5.008001||Viu +CLONEf_KEEP_PTR_TABLE|5.007001||Viu +clone_params_del|5.013002|5.013002|nu +clone_params_new|5.013002|5.013002|nu +cLOOP|5.003007||Viu +cLOOPo|5.004005||Viu +cLOOPx|5.006000||Viu +CLOSE|5.003007||Viu +close|5.005000||Viu +closedir|5.005000||Viu +closest_cop|5.007002||Viu +CLOSE_t8_p8|5.033003||Viu +CLOSE_t8_pb|5.033003||Viu +CLOSE_tb_p8|5.033003||Viu +CLOSE_tb_pb|5.033003||Viu +CLUMP_2IV|5.006000||Viu +CLUMP_2UV|5.006000||Viu +CLUMP|5.006000||Viu +CLUMP_t8_p8|5.033003||Viu +CLUMP_t8_pb|5.033003||Viu +CLUMP_tb_p8|5.033003||Viu +CLUMP_tb_pb|5.033003||Viu +cMETHOPx|5.021005||Viu +cMETHOPx_meth|5.021005||Viu +cMETHOPx_rclass|5.021007||Viu +cmpchain_extend|5.031011||Viu +cmpchain_finish|5.031011||Viu +cmpchain_start|5.031011||Viu +cmp_desc|5.031011||Viu +cmp_locale_desc|5.031011||Viu +cntrl_to_mnemonic|5.021004||cVniu +CODESET|5.027010||Viu +COMBINING_DOT_ABOVE_UTF8|5.029008||Viu +COMBINING_GRAVE_ACCENT_UTF8|5.017004||Viu +COMMIT|5.009005||Viu +COMMIT_next|5.009005||Viu +COMMIT_next_fail|5.009005||Viu +COMMIT_next_fail_t8_p8|5.033003||Viu +COMMIT_next_fail_t8_pb|5.033003||Viu +COMMIT_next_fail_tb_p8|5.033003||Viu +COMMIT_next_fail_tb_pb|5.033003||Viu +COMMIT_next_t8_p8|5.033003||Viu +COMMIT_next_t8_pb|5.033003||Viu +COMMIT_next_tb_p8|5.033003||Viu +COMMIT_next_tb_pb|5.033003||Viu +COMMIT_t8_p8|5.033003||Viu +COMMIT_t8_pb|5.033003||Viu +COMMIT_tb_p8|5.033003||Viu +COMMIT_tb_pb|5.033003||Viu +compile_wildcard|5.031010||Viu +compute_EXACTish|5.017003||Vniu +COND_BROADCAST|5.005000||Viu +COND_DESTROY|5.005000||Viu +COND_INIT|5.005000||Viu +COND_SIGNAL|5.005000||Viu +COND_WAIT|5.005000||Viu +connect|5.005000||Viu +construct_ahocorasick_from_trie|5.021001||Viu +CONTINUE_PAT_MOD|5.009005||Viu +cop_fetch_label|5.015001|5.015001|x +CopFILE|5.006000|5.003007|p +CopFILEAV|5.006000|5.003007|p +CopFILEAVx|5.009003||Viu +CopFILE_free|5.007003||Viu +CopFILEGV|5.006000|5.003007|p +CopFILEGV_set|5.006000|5.003007|p +CopFILE_set|5.006000|5.003007|p +CopFILE_setn|5.009005||Viu +CopFILESV|5.006000|5.003007|p +cop_free|5.006000||Viu +cophh_2hv|5.013007|5.013007|x +cophh_copy|5.013007|5.013007|x +cophh_delete_pv|5.013007|5.013007|x +cophh_delete_pvn|5.013007|5.013007|x +cophh_delete_pvs|5.013007|5.013007|x +cophh_delete_sv|5.013007|5.013007|x +COPHH_EXISTS|5.033008||Viu +cophh_exists_pv|5.033008|5.033008|x +cophh_exists_pvn|5.033008|5.033008|x +cophh_exists_pvs|5.033008|5.033008|x +cophh_exists_sv|5.033008|5.033008|x +cophh_fetch_pv|5.013007|5.013007|x +cophh_fetch_pvn|5.013007|5.013007|x +cophh_fetch_pvs|5.013007|5.013007|x +cophh_fetch_sv|5.013007|5.013007|x +cophh_free|5.013007|5.013007|x +COPHH_KEY_UTF8|5.013007|5.013007| +cophh_new_empty|5.013007|5.013007|x +cophh_store_pv|5.013007|5.013007|x +cophh_store_pvn|5.013007|5.013007|x +cophh_store_pvs|5.013007|5.013007|x +cophh_store_sv|5.013007|5.013007|x +CopHINTHASH_get|5.013007||Viu +CopHINTHASH_set|5.013007||Viu +cop_hints_2hv|5.013007|5.013007| +cop_hints_exists_pv|5.033008|5.033008| +cop_hints_exists_pvn|5.033008|5.033008| +cop_hints_exists_pvs|5.033008|5.033008| +cop_hints_exists_sv|5.033008|5.033008| +cop_hints_fetch_pv|5.013007|5.013007| +cop_hints_fetch_pvn|5.013007|5.013007| +cop_hints_fetch_pvs|5.013007|5.013007| +cop_hints_fetch_sv|5.013007|5.013007| +CopHINTS_get|5.009004||Viu +CopHINTS_set|5.009004||Viu +CopLABEL|5.009005|5.009005| +CopLABEL_alloc|5.009005||Viu +CopLABEL_len|5.016000|5.016000| +CopLABEL_len_flags|5.016000|5.016000| +CopLINE|5.006000|5.006000| +CopLINE_dec|5.006000||Viu +CopLINE_inc|5.006000||Viu +CopLINE_set|5.006000||Viu +COP_SEQMAX_INC|5.021006||Viu +COP_SEQ_RANGE_HIGH|5.009005||Viu +COP_SEQ_RANGE_LOW|5.009005||Viu +CopSTASH|5.006000|5.003007|p +CopSTASH_eq|5.006000|5.003007|p +CopSTASH_ne|5.006000||Viu +CopSTASHPV|5.006000|5.003007|p +CopSTASHPV_set|5.017001|5.017001|p +CopSTASH_set|5.006000|5.003007|p +cop_store_label|5.015001|5.015001|x +Copy|5.003007|5.003007| +CopyD|5.009002|5.003007|p +core_prototype|5.015002||Vi +coresub_op|5.015003||Viu +CowREFCNT|5.017007||Viu +cPADOP|5.006000||Viu +cPADOPo|5.006000||Viu +cPADOPx|5.006000||Viu +CPERLarg|5.005000||Viu +CPERLscope|5.005000|5.003007|pdV +cPMOP|5.003007||Viu +cPMOPo|5.004005||Viu +cPMOPx|5.006000||Viu +CPPLAST|5.006000|5.006000|Vn +CPPMINUS|5.003007|5.003007|Vn +CPPRUN|5.006000|5.006000|Vn +CPPSTDIN|5.003007|5.003007|Vn +cPVOP|5.003007||Viu +cPVOPo|5.004005||Viu +cPVOPx|5.006000||Viu +create_eval_scope|5.009004||xViu +CR_NATIVE|5.019004||Viu +CRNCYSTR|5.027010||Viu +croak|5.006000|5.003007|v +croak_caller|5.025004||vVniu +croak_memory_wrap|5.019003||pcVnu +croak_nocontext|5.006000||pvVn +croak_no_mem|5.017006||Vniu +croak_no_modify|5.013003|5.003007|pn +croak_popstack|5.017008||cVniu +croak_sv|5.013001|5.003007|p +croak_xs_usage|5.010001|5.003007|pn +cr_textfilter|5.006000||Viu +crypt|5.009000||Viu +CRYPT_R_PROTO|5.008000|5.008000|Vn +CSH|5.003007|5.003007|Vn +csighandler1|5.031007||cVnu +csighandler3|5.031007||cVnu +csighandler|5.008001||cVnu +cSVOP|5.003007||Viu +cSVOPo|5.004005||Viu +cSVOPo_sv|5.006000||Viu +cSVOP_sv|5.006000||Viu +cSVOPx|5.006000||Viu +cSVOPx_sv|5.006000||Viu +cSVOPx_svp|5.006000||Viu +ctermid|5.009000||Viu +CTERMID_R_PROTO|5.008000|5.008000|Vn +ctime|5.009000||Viu +CTIME_R_PROTO|5.008000|5.008000|Vn +Ctl|5.003007||Viu +CTYPE256|5.003007||Viu +cUNOP|5.003007||Viu +cUNOP_AUX|5.021007||Viu +cUNOP_AUXo|5.021007||Viu +cUNOP_AUXx|5.021007||Viu +cUNOPo|5.004005||Viu +cUNOPx|5.006000||Viu +CURLY|5.003007||Viu +CURLY_B_max|5.009005||Viu +CURLY_B_max_fail|5.009005||Viu +CURLY_B_max_fail_t8_p8|5.033003||Viu +CURLY_B_max_fail_t8_pb|5.033003||Viu +CURLY_B_max_fail_tb_p8|5.033003||Viu +CURLY_B_max_fail_tb_pb|5.033003||Viu +CURLY_B_max_t8_p8|5.033003||Viu +CURLY_B_max_t8_pb|5.033003||Viu +CURLY_B_max_tb_p8|5.033003||Viu +CURLY_B_max_tb_pb|5.033003||Viu +CURLY_B_min|5.009005||Viu +CURLY_B_min_fail|5.009005||Viu +CURLY_B_min_fail_t8_p8|5.033003||Viu +CURLY_B_min_fail_t8_pb|5.033003||Viu +CURLY_B_min_fail_tb_p8|5.033003||Viu +CURLY_B_min_fail_tb_pb|5.033003||Viu +CURLY_B_min_t8_p8|5.033003||Viu +CURLY_B_min_t8_pb|5.033003||Viu +CURLY_B_min_tb_p8|5.033003||Viu +CURLY_B_min_tb_pb|5.033003||Viu +CURLYM|5.005000||Viu +CURLYM_A|5.009005||Viu +CURLYM_A_fail|5.009005||Viu +CURLYM_A_fail_t8_p8|5.033003||Viu +CURLYM_A_fail_t8_pb|5.033003||Viu +CURLYM_A_fail_tb_p8|5.033003||Viu +CURLYM_A_fail_tb_pb|5.033003||Viu +CURLYM_A_t8_p8|5.033003||Viu +CURLYM_A_t8_pb|5.033003||Viu +CURLYM_A_tb_p8|5.033003||Viu +CURLYM_A_tb_pb|5.033003||Viu +CURLYM_B|5.009005||Viu +CURLYM_B_fail|5.009005||Viu +CURLYM_B_fail_t8_p8|5.033003||Viu +CURLYM_B_fail_t8_pb|5.033003||Viu +CURLYM_B_fail_tb_p8|5.033003||Viu +CURLYM_B_fail_tb_pb|5.033003||Viu +CURLYM_B_t8_p8|5.033003||Viu +CURLYM_B_t8_pb|5.033003||Viu +CURLYM_B_tb_p8|5.033003||Viu +CURLYM_B_tb_pb|5.033003||Viu +CURLYM_t8_p8|5.033003||Viu +CURLYM_t8_pb|5.033003||Viu +CURLYM_tb_p8|5.033003||Viu +CURLYM_tb_pb|5.033003||Viu +CURLYN|5.005000||Viu +CURLYN_t8_p8|5.033003||Viu +CURLYN_t8_pb|5.033003||Viu +CURLYN_tb_p8|5.033003||Viu +CURLYN_tb_pb|5.033003||Viu +CURLY_t8_p8|5.033003||Viu +CURLY_t8_pb|5.033003||Viu +CURLY_tb_p8|5.033003||Viu +CURLY_tb_pb|5.033003||Viu +CURLYX|5.003007||Viu +CURLYX_end|5.009005||Viu +CURLYX_end_fail|5.009005||Viu +CURLYX_end_fail_t8_p8|5.033003||Viu +CURLYX_end_fail_t8_pb|5.033003||Viu +CURLYX_end_fail_tb_p8|5.033003||Viu +CURLYX_end_fail_tb_pb|5.033003||Viu +CURLYX_end_t8_p8|5.033003||Viu +CURLYX_end_t8_pb|5.033003||Viu +CURLYX_end_tb_p8|5.033003||Viu +CURLYX_end_tb_pb|5.033003||Viu +CURLYX_t8_p8|5.033003||Viu +CURLYX_t8_pb|5.033003||Viu +CURLYX_tb_p8|5.033003||Viu +CURLYX_tb_pb|5.033003||Viu +CURRENT_FEATURE_BUNDLE|5.015007||Viu +CURRENT_HINTS|5.015007||Viu +current_re_engine|5.017001||cViu +curse|5.013009||Viu +custom_op_desc|5.007003|5.007003|d +custom_op_get_field|5.019006||cViu +custom_op_name|5.007003|5.007003|d +custom_op_register|5.013007|5.013007| +CUTGROUP|5.009005||Viu +CUTGROUP_next|5.009005||Viu +CUTGROUP_next_fail|5.009005||Viu +CUTGROUP_next_fail_t8_p8|5.033003||Viu +CUTGROUP_next_fail_t8_pb|5.033003||Viu +CUTGROUP_next_fail_tb_p8|5.033003||Viu +CUTGROUP_next_fail_tb_pb|5.033003||Viu +CUTGROUP_next_t8_p8|5.033003||Viu +CUTGROUP_next_t8_pb|5.033003||Viu +CUTGROUP_next_tb_p8|5.033003||Viu +CUTGROUP_next_tb_pb|5.033003||Viu +CUTGROUP_t8_p8|5.033003||Viu +CUTGROUP_t8_pb|5.033003||Viu +CUTGROUP_tb_p8|5.033003||Viu +CUTGROUP_tb_pb|5.033003||Viu +CvANON|5.003007||Viu +CvANONCONST|5.021008||Viu +CvANONCONST_off|5.021008||Viu +CvANONCONST_on|5.021008||Viu +CvANON_off|5.003007||Viu +CvANON_on|5.003007||Viu +CvAUTOLOAD|5.015004||Viu +CvAUTOLOAD_off|5.015004||Viu +CvAUTOLOAD_on|5.015004||Viu +cv_ckproto|5.009004||Viu +cv_ckproto_len_flags|5.015004||xcViu +cv_clone|5.003007|5.003007| +CvCLONE|5.003007||Viu +CvCLONED|5.003007||Viu +CvCLONED_off|5.003007||Viu +CvCLONED_on|5.003007||Viu +cv_clone_into|5.017004||Viu +CvCLONE_off|5.003007||Viu +CvCLONE_on|5.003007||Viu +CvCONST|5.007001||Viu +CvCONST_off|5.007001||Viu +CvCONST_on|5.007001||Viu +cv_const_sv|5.003007|5.003007|n +cv_const_sv_or_av|5.019003||Vniu +CvCVGV_RC|5.013003||Viu +CvCVGV_RC_off|5.013003||Viu +CvCVGV_RC_on|5.013003||Viu +CvDEPTH|5.003007|5.003007|nu +CvDEPTHunsafe|5.021006||Viu +cv_dump|5.006000||Vi +CvDYNFILE|5.015002||Viu +CvDYNFILE_off|5.015002||Viu +CvDYNFILE_on|5.015002||Viu +CvEVAL|5.005003||Viu +CvEVAL_off|5.005003||Viu +CvEVAL_on|5.005003||Viu +CVf_ANON|5.003007||Viu +CVf_ANONCONST|5.021008||Viu +CVf_AUTOLOAD|5.015004||Viu +CVf_BUILTIN_ATTRS|5.008000||Viu +CVf_CLONE|5.003007||Viu +CVf_CLONED|5.003007||Viu +CVf_CONST|5.007001||Viu +CVf_CVGV_RC|5.013003||Viu +CVf_DYNFILE|5.015002||Viu +CVf_HASEVAL|5.017002||Viu +CvFILE|5.006000||Viu +CvFILEGV|5.003007||Viu +CvFILE_set_from_cop|5.007002||Viu +CVf_ISXSUB|5.009004||Viu +CvFLAGS|5.003007||Viu +CVf_LEXICAL|5.021004||Viu +CVf_LVALUE|5.006000||Viu +CVf_METHOD|5.005000||Viu +CVf_NAMED|5.017004||Viu +CVf_NODEBUG|5.004000||Viu +cv_forget_slab|5.017002||Vi +CVf_SLABBED|5.017002||Viu +CVf_UNIQUE|5.004000||Viu +CVf_WEAKOUTSIDE|5.008001||Viu +cv_get_call_checker|5.013006|5.013006| +cv_get_call_checker_flags|5.027003|5.027003| +CvGV|5.003007|5.003007| +cvgv_from_hek|||ciu +cvgv_set|5.013003||cViu +CvGV_set|5.013003||Viu +CvHASEVAL|5.017002||Viu +CvHASEVAL_off|5.017002||Viu +CvHASEVAL_on|5.017002||Viu +CvHASGV|5.021004||Viu +CvHSCXT|5.021006||Viu +CvISXSUB|5.009004||Viu +CvISXSUB_off|5.009004||Viu +CvISXSUB_on|5.009004||Viu +CvLEXICAL|5.021004||Viu +CvLEXICAL_off|5.021004||Viu +CvLEXICAL_on|5.021004||Viu +CvLVALUE|5.006000||Viu +CvLVALUE_off|5.006000||Viu +CvLVALUE_on|5.006000||Viu +CvMETHOD|5.005000||Viu +CvMETHOD_off|5.005000||Viu +CvMETHOD_on|5.005000||Viu +cv_name|5.021005|5.021005| +CvNAMED|5.017004||Viu +CvNAMED_off|5.017004||Viu +CvNAMED_on|5.017004||Viu +CvNAME_HEK_set|5.017004||Viu +CV_NAME_NOTQUAL|5.021005|5.021005| +CvNODEBUG|5.004000||Viu +CvNODEBUG_off|5.004000||Viu +CvNODEBUG_on|5.004000||Viu +CvOUTSIDE|5.003007||Viu +CvOUTSIDE_SEQ|5.008001||Viu +CvPADLIST|5.008001|5.008001|x +CvPADLIST_set|5.021006||Viu +CvPROTO|5.015004||Viu +CvPROTOLEN|5.015004||Viu +CvROOT|5.003007||Viu +cv_set_call_checker|5.013006|5.013006| +cv_set_call_checker_flags|5.021004|5.021004| +CvSLABBED|5.017002||Viu +CvSLABBED_off|5.017002||Viu +CvSLABBED_on|5.017002||Viu +CvSPECIAL|5.005003||Viu +CvSPECIAL_off|5.005003||Viu +CvSPECIAL_on|5.005003||Viu +CvSTART|5.003007||Viu +CvSTASH|5.003007|5.003007| +cvstash_set|5.013007||cViu +CvSTASH_set|5.013007||Viu +cv_undef|5.003007|5.003007| +cv_undef_flags|5.021004||Viu +CV_UNDEF_KEEP_NAME|5.021004||Viu +CvUNIQUE|5.004000||Viu +CvUNIQUE_off|5.004000||Viu +CvUNIQUE_on|5.004000||Viu +CvWEAKOUTSIDE|5.008001||Vi +CvWEAKOUTSIDE_off|5.008001||Viu +CvWEAKOUTSIDE_on|5.008001||Viu +CvXSUB|5.003007||Viu +CvXSUBANY|5.003007||Viu +CX_CUR|5.023008||Viu +CX_CURPAD_SAVE|5.008001||Vi +CX_CURPAD_SV|5.008001||Vi +CX_DEBUG|5.023008||Viu +cx_dump|5.003007||cVu +cx_dup|5.006000||cVu +CxEVALBLOCK|5.033007||Viu +CxEVAL_TXT_REFCNTED|5.025007||Viu +CxFOREACH|5.009003||Viu +CxHASARGS|5.010001||Viu +cxinc|5.003007||cVu +CXINC|5.003007||Viu +CxITERVAR|5.006000||Viu +CxLABEL|5.010001||Viu +CxLABEL_len|5.016000||Viu +CxLABEL_len_flags|5.016000||Viu +CX_LEAVE_SCOPE|5.023008||Viu +CxLVAL|5.010001||Viu +CxMULTICALL|5.009003||Viu +CxOLD_IN_EVAL|5.010001||Viu +CxOLD_OP_TYPE|5.010001||Viu +CxONCE|5.010001||Viu +CxPADLOOP|5.006000||Viu +CXp_EVALBLOCK|5.033007||Viu +CXp_FOR_DEF|5.027008||Viu +CXp_FOR_GV|5.023008||Viu +CXp_FOR_LVREF|5.021005||Viu +CXp_FOR_PAD|5.023008||Viu +CXp_HASARGS|5.011000||Viu +CXp_MULTICALL|5.009003||Viu +CXp_ONCE|5.011000||Viu +CX_POP|5.023008||Viu +cx_popblock|5.023008||xcVu +cx_popeval|5.023008||xcVu +cx_popformat|5.023008||xcVu +cx_popgiven|5.027008||xcVu +cx_poploop|5.023008||xcVu +CX_POP_SAVEARRAY|5.023008||Viu +cx_popsub|5.023008||xcVu +cx_popsub_args|5.023008||xcVu +cx_popsub_common|5.023008||xcVu +CX_POPSUBST|5.023008||Viu +cx_popwhen|5.027008||xcVu +CXp_REAL|5.005003||Viu +CXp_SUB_RE|5.018000||Viu +CXp_SUB_RE_FAKE|5.018000||Viu +CXp_TRY|5.033007||Viu +CXp_TRYBLOCK|5.006000||Viu +cx_pushblock|5.023008||xcVu +cx_pusheval|5.023008||xcVu +cx_pushformat|5.023008||xcVu +cx_pushgiven|5.027008||xcVu +cx_pushloop_for|5.023008||xcVu +cx_pushloop_plain|5.023008||xcVu +cx_pushsub|5.023008||xcVu +CX_PUSHSUB_GET_LVALUE_MASK|5.023008||Viu +CX_PUSHSUBST|5.023008||Viu +cx_pushtry|5.033007||xcVu +cx_pushwhen|5.027008||xcVu +CxREALEVAL|5.005003||Viu +cxstack|5.005000||Viu +cxstack_ix|5.005000||Viu +cxstack_max|5.005000||Viu +CXt_BLOCK|5.003007||Viu +CXt_EVAL|5.003007||Viu +CXt_FORMAT|5.006000||Viu +CXt_GIVEN|5.027008||Viu +CXt_LOOP_ARY|5.023008||Viu +CXt_LOOP_LAZYIV|5.011000||Viu +CXt_LOOP_LAZYSV|5.011000||Viu +CXt_LOOP_LIST|5.023008||Viu +CXt_LOOP_PLAIN|5.011000||Viu +CXt_NULL|5.003007||Viu +cx_topblock|5.023008||xcVu +CxTRY|5.033007||Viu +CxTRYBLOCK|5.006000||Viu +CXt_SUB|5.003007||Viu +CXt_SUBST|5.003007||Viu +CXt_WHEN|5.027008||Viu +CxTYPE|5.005003||Viu +cx_type|5.009005||Viu +CxTYPE_is_LOOP|5.011000||Viu +CXTYPEMASK|5.005003||Viu +dATARGET|5.003007||Viu +dAX|5.007002|5.003007|p +dAXMARK|5.009003|5.003007|p +DAY_1|5.027010||Viu +DAY_2|5.027010||Viu +DAY_3|5.027010||Viu +DAY_4|5.027010||Viu +DAY_5|5.027010||Viu +DAY_6|5.027010||Viu +DAY_7|5.027010||Viu +DB_Hash_t|5.003007|5.003007|Vn +DBM_ckFilter|5.008001||Viu +DBM_setFilter|5.008001||Viu +DB_Prefix_t|5.003007|5.003007|Vn +DBVARMG_COUNT|5.021005||Viu +DBVARMG_SIGNAL|5.021005||Viu +DBVARMG_SINGLE|5.021005||Viu +DBVARMG_TRACE|5.021005||Viu +DB_VERSION_MAJOR_CFG|5.007002|5.007002|Vn +DB_VERSION_MINOR_CFG|5.007002|5.007002|Vn +DB_VERSION_PATCH_CFG|5.007002|5.007002|Vn +deb|5.007003|5.007003|vu +deb_curcv|5.007002||Viu +deb_nocontext|5.007003|5.007003|vnu +debop|5.005000|5.005000|u +debprof|5.005000||Viu +debprofdump|5.005000|5.005000|u +debstack|5.007003|5.007003|u +deb_stack_all|5.008001||Viu +deb_stack_n|5.008001||Viu +debstackptrs|5.007003|5.007003|u +DEBUG|5.003007||Viu +DEBUG_A|5.009001||Viu +DEBUG_A_FLAG|5.009001||Viu +DEBUG_A_TEST|5.009001||Viu +DEBUG_B|5.011000||Viu +DEBUG_B_FLAG|5.011000||Viu +DEBUG_BOTH_FLAGS_TEST|5.033007||Viu +DEBUG_B_TEST|5.011000||Viu +DEBUG_BUFFERS_r|5.009005||Viu +DEBUG_c|5.003007||Viu +DEBUG_C|5.009000||Viu +DEBUG_c_FLAG|5.007001||Viu +DEBUG_C_FLAG|5.009000||Viu +DEBUG_COMPILE_r|5.009002||Viu +DEBUG_c_TEST|5.007001||Viu +DEBUG_C_TEST|5.009000||Viu +DEBUG_D|5.003007||Viu +DEBUG_DB_RECURSE_FLAG|5.007001||Viu +DEBUG_D_FLAG|5.007001||Viu +DEBUG_D_TEST|5.007001||Viu +DEBUG_DUMP_PRE_OPTIMIZE_r|5.031004||Viu +DEBUG_DUMP_r|5.009004||Viu +DEBUG_EXECUTE_r|5.009002||Viu +DEBUG_EXTRA_r|5.009004||Viu +DEBUG_f|5.003007||Viu +DEBUG_f_FLAG|5.007001||Viu +DEBUG_FLAGS_r|5.009005||Viu +DEBUG_f_TEST|5.007001||Viu +DEBUG_GPOS_r|5.011000||Viu +DEBUG_i|5.025002||Viu +DEBUG_i_FLAG|5.025002||Viu +DEBUG_INTUIT_r|5.009004||Viu +DEBUG_i_TEST|5.025002||Viu +DEBUG_J_FLAG|5.007003||Viu +DEBUG_J_TEST|5.007003||Viu +DEBUG_l|5.003007||Viu +DEBUG_L|5.019009||Viu +DEBUG_l_FLAG|5.007001||Viu +DEBUG_L_FLAG|5.019009||Viu +DEBUG_l_TEST|5.007001||Viu +DEBUG_L_TEST|5.019009||Viu +DEBUG_Lv|5.023003||Viu +DEBUG_Lv_TEST|5.023003||Viu +DEBUG_m|5.003007||Viu +DEBUG_M|5.027008||Viu +DEBUG_MASK|5.007001||Viu +DEBUG_MATCH_r|5.009004||Viu +DEBUG_m_FLAG|5.007001||Viu +DEBUG_M_FLAG|5.027008||Viu +DEBUG_m_TEST|5.007001||Viu +DEBUG_M_TEST|5.027008||Viu +DEBUG_o|5.003007||Viu +DEBUG_OFFSETS_r|5.009002||Viu +DEBUG_o_FLAG|5.007001||Viu +DEBUG_OPTIMISE_MORE_r|5.009005||Viu +DEBUG_OPTIMISE_r|5.009002||Viu +DEBUG_o_TEST|5.007001||Viu +DEBUG_P|5.003007||Viu +DEBUG_p|5.003007||Viu +DEBUG_PARSE_r|5.009004||Viu +DEBUG_P_FLAG|5.007001||Viu +DEBUG_p_FLAG|5.007001||Viu +DEBUG_POST_STMTS|5.033008||Viu +DEBUG_PRE_STMTS|5.033008||Viu +DEBUG_P_TEST|5.007001||Viu +DEBUG_p_TEST|5.007001||Viu +DEBUG_Pv|5.013008||Viu +DEBUG_Pv_TEST|5.013008||Viu +DEBUG_q|5.009001||Viu +DEBUG_q_FLAG|5.009001||Viu +DEBUG_q_TEST|5.009001||Viu +DEBUG_r|5.003007||Viu +DEBUG_R|5.007001||Viu +DEBUG_R_FLAG|5.007001||Viu +DEBUG_r_FLAG|5.007001||Viu +DEBUG_R_TEST|5.007001||Viu +DEBUG_r_TEST|5.007001||Viu +DEBUG_s|5.003007||Viu +DEBUG_S|5.017002||Viu +DEBUG_SBOX32_HASH|5.027001||Viu +DEBUG_SCOPE|5.008001||Viu +DEBUG_s_FLAG|5.007001||Viu +DEBUG_S_FLAG|5.017002||Viu +DEBUG_STACK_r|5.009005||Viu +debug_start_match|5.009004||Viu +DEBUG_STATE_r|5.009004||Viu +DEBUG_s_TEST|5.007001||Viu +DEBUG_S_TEST|5.017002||Viu +DEBUG_t|5.003007||Viu +DEBUG_T|5.007001||Viu +DEBUG_TEST_r|5.021005||Viu +DEBUG_T_FLAG|5.007001||Viu +DEBUG_t_FLAG|5.007001||Viu +DEBUG_TOP_FLAG|5.007001||Viu +DEBUG_TRIE_COMPILE_MORE_r|5.009002||Viu +DEBUG_TRIE_COMPILE_r|5.009002||Viu +DEBUG_TRIE_EXECUTE_MORE_r|5.009002||Viu +DEBUG_TRIE_EXECUTE_r|5.009002||Viu +DEBUG_TRIE_r|5.009002||Viu +DEBUG_T_TEST|5.007001||Viu +DEBUG_t_TEST|5.007001||Viu +DEBUG_u|5.003007||Viu +DEBUG_U|5.009005||Viu +DEBUG_u_FLAG|5.007001||Viu +DEBUG_U_FLAG|5.009005||Viu +DEBUG_u_TEST|5.007001||Viu +DEBUG_U_TEST|5.009005||Viu +DEBUG_Uv|5.009005||Viu +DEBUG_Uv_TEST|5.009005||Viu +DEBUG_v|5.008001||Viu +DEBUG_v_FLAG|5.008001||Viu +DEBUG_v_TEST|5.008001||Viu +DEBUG_X|5.003007||Viu +DEBUG_x|5.003007||Viu +DEBUG_X_FLAG|5.007001||Viu +DEBUG_x_FLAG|5.007001||Viu +DEBUG_X_TEST|5.007001||Viu +DEBUG_x_TEST|5.007001||Viu +DEBUG_Xv|5.008001||Viu +DEBUG_Xv_TEST|5.008001||Viu +DEBUG_y|5.031007||Viu +DEBUG_y_FLAG|5.031007||Viu +DEBUG_y_TEST|5.031007||Viu +DEBUG_yv|5.031007||Viu +DEBUG_yv_TEST|5.031007||Viu +DEBUG_ZAPHOD32_HASH|5.027001||Viu +DECLARATION_FOR_LC_NUMERIC_MANIPULATION|5.021010|5.021010|p +DECLARE_AND_GET_RE_DEBUG_FLAGS|5.031011||Viu +DECLARE_AND_GET_RE_DEBUG_FLAGS_NON_REGEX|5.031011||Viu +DEFAULT_INC_EXCLUDES_DOT|5.025011|5.025011|Vn +DEFAULT_PAT_MOD|5.013006||Viu +defelem_target|5.019002||Viu +DEFINE_INC_MACROS|5.027006||Viu +DEFINEP|5.009005||Viu +DEFINEP_t8_p8|5.033003||Viu +DEFINEP_t8_pb|5.033003||Viu +DEFINEP_tb_p8|5.033003||Viu +DEFINEP_tb_pb|5.033003||Viu +DEFSV|5.004005|5.003007|p +DEFSV_set|5.010001|5.003007|p +delete_eval_scope|5.009004||xViu +delimcpy|5.004000|5.004000|n +delimcpy_no_escape|5.025005||cVni +DEL_NATIVE|5.017010||Viu +del_sv|5.005000||Viu +DEPENDS_PAT_MOD|5.013009||Viu +DEPENDS_PAT_MODS|5.013009||Viu +deprecate|5.011001||Viu +deprecate_disappears_in|5.025009||Viu +deprecate_fatal_in|5.025009||Viu +despatch_signals|5.007001||cVu +destroy_matcher|5.027008||Viu +DETACH|5.005000||Viu +dEXT|5.003007||Viu +dEXTCONST|5.004000||Viu +D_FMT|5.027010||Viu +DIE|5.003007||Viu +die|5.006000|5.003007|v +die_nocontext|5.006000||vVn +die_sv|5.013001|5.003007|p +die_unwind|5.013001||Viu +Direntry_t|5.003007|5.003007|Vn +dirp_dup|5.013007|5.013007|u +dITEMS|5.007002|5.003007|p +div128|5.005000||Viu +dJMPENV|5.004000||Viu +djSP|5.004005||Vi +dMARK|5.003007|5.003007| +DM_ARRAY_ISA|5.013002||Viu +DM_DELAY|5.003007||Viu +DM_EGID|5.003007||Viu +DM_EUID|5.003007||Viu +DM_GID|5.003007||Viu +DM_RGID|5.003007||Viu +DM_RUID|5.003007||Viu +DM_UID|5.003007||Viu +dMULTICALL|5.009003|5.009003| +dMY_CXT|5.009000|5.009000|p +dMY_CXT_INTERP|5.009003||Viu +dMY_CXT_SV|5.007003|5.003007|pV +dNOOP|5.006000|5.003007|p +do_aexec|5.009003||Viu +do_aexec5|5.006000||Viu +do_aspawn|5.008000||Vu +do_binmode|5.004005|5.004005|du +docatch|5.005000||Vi +do_chomp|5.003007||Viu +do_close|5.003007|5.003007|u +do_delete_local|5.011000||Viu +do_dump_pad|5.008001||Vi +do_eof|5.003007||Viu +does_utf8_overflow|5.025006||Vniu +doeval_compile|5.023008||Viu +do_exec3|5.006000||Viu +do_exec|5.009003||Viu +dofile|5.005003||Viu +dofindlabel|5.003007||Viu +doform|5.005000||Viu +do_gv_dump|5.006000||cVu +do_gvgv_dump|5.006000||cVu +do_hv_dump|5.006000||cVu +doing_taint|5.008001||cVnu +DOINIT|5.003007||Viu +do_ipcctl|5.003007||Viu +do_ipcget|5.003007||Viu +do_join|5.003007|5.003007|u +do_magic_dump|5.006000||cVu +do_msgrcv|5.003007||Viu +do_msgsnd|5.003007||Viu +do_ncmp|5.015001||Viu +do_oddball|5.006000||Viu +dooneliner|5.006000||Viu +do_op_dump|5.006000||cVu +do_open|5.003007|5.003007|u +do_open6|5.019010||xViu +do_open9|5.006000|5.006000|du +do_openn|5.007001|5.007001|u +doopen_pm|5.008001||Viu +do_open_raw|5.019010||xViu +doparseform|5.005000||Viu +do_pmop_dump|5.006000||cVu +dopoptoeval|5.003007||Viu +dopoptogivenfor|5.027008||Viu +dopoptolabel|5.005000||Viu +dopoptoloop|5.005000||Viu +dopoptosub_at|5.005000||Viu +dopoptowhen|5.027008||Viu +do_print|5.003007||Viu +do_readline|5.003007||Viu +doref|5.009003|5.009003|u +dORIGMARK|5.003007|5.003007| +do_seek|5.003007||Viu +do_semop|5.003007||Viu +do_shmio|5.003007||Viu +DOSISH|5.003007||Viu +do_smartmatch|5.027008||Viu +do_spawn|5.008000||Vu +do_spawn_nowait|5.008000||Vu +do_sprintf|5.003007|5.003007|u +do_sv_dump|5.006000||cVu +do_sysseek|5.004000||Viu +do_tell|5.003007||Viu +do_trans|5.003007||Viu +do_trans_complex|5.006001||Viu +do_trans_count|5.006001||Viu +do_trans_count_invmap|5.031006||Viu +do_trans_invmap|5.031006||Viu +do_trans_simple|5.006001||Viu +DOUBLE_BIG_ENDIAN|5.021009||Viu +DOUBLE_HAS_INF|5.025003|5.025003|Vn +DOUBLE_HAS_NAN|5.025003|5.025003|Vn +DOUBLE_HAS_NEGATIVE_ZERO|5.025007|5.025007|Vn +DOUBLE_HAS_SUBNORMALS|5.025007|5.025007|Vn +DOUBLEINFBYTES|5.023000|5.023000|Vn +DOUBLE_IS_CRAY_SINGLE_64_BIT|5.025006|5.025006|Vn +DOUBLE_IS_IBM_DOUBLE_64_BIT|5.025006|5.025006|Vn +DOUBLE_IS_IBM_SINGLE_32_BIT|5.025006|5.025006|Vn +DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN|5.021006|5.021006|Vn +DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN|5.021006|5.021006|Vn +DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN|5.021006|5.021006|Vn +DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN|5.021006|5.021006|Vn +DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN|5.021006|5.021006|Vn +DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN|5.021006|5.021006|Vn +DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE|5.021006|5.021006|Vn +DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE|5.021006|5.021006|Vn +DOUBLE_IS_IEEE_FORMAT|5.025003||Viu +DOUBLE_IS_UNKNOWN_FORMAT|5.021006|5.021006|Vn +DOUBLE_IS_VAX_D_FLOAT|5.025003|5.025003|Vn +DOUBLE_IS_VAX_F_FLOAT|5.025003|5.025003|Vn +DOUBLE_IS_VAX_FLOAT|5.025003||Viu +DOUBLE_IS_VAX_G_FLOAT|5.025003|5.025003|Vn +DOUBLEKIND|5.021006|5.021006|Vn +DOUBLE_LITTLE_ENDIAN|5.021009||Viu +DOUBLEMANTBITS|5.023000|5.023000|Vn +DOUBLE_MIX_ENDIAN|5.021009||Viu +DOUBLENANBYTES|5.023000|5.023000|Vn +DOUBLESIZE|5.005000|5.005000|Vn +DOUBLE_STYLE_IEEE|5.025007|5.025007|Vn +DOUBLE_VAX_ENDIAN|5.025003||Viu +do_uniprop_match|5.031011||cVniu +dounwind|5.003007|5.003007|u +DO_UTF8|5.006000|5.006000| +do_vecget|5.006000||Viu +do_vecset|5.003007||Viu +do_vop|5.003007||Viu +dowantarray|5.003007|5.003007|u +dPOPiv|5.003007||Viu +dPOPnv|5.003007||Viu +dPOPnv_nomg|5.013002||Viu +dPOPPOPiirl|5.003007||Viu +dPOPPOPnnrl|5.003007||Viu +dPOPPOPssrl|5.003007||Viu +dPOPss|5.003007||Viu +dPOPTOPiirl|5.003007||Viu +dPOPTOPiirl_nomg|5.013002||Viu +dPOPTOPiirl_ul_nomg|5.013002||Viu +dPOPTOPnnrl|5.003007||Viu +dPOPTOPnnrl_nomg|5.013002||Viu +dPOPTOPssrl|5.003007||Viu +dPOPuv|5.004000||Viu +dPOPXiirl|5.004000||Viu +dPOPXiirl_ul_nomg|5.013002||Viu +dPOPXnnrl|5.004000||Viu +dPOPXssrl|5.004000||Viu +DPTR2FPTR|5.009003||Viu +Drand01|5.006000|5.006000| +drand48_init_r|||cniu +drand48_r|||cniu +DRAND48_R_PROTO|5.008000|5.008000|Vn +dSAVEDERRNO|5.010001||Vi +dSAVE_ERRNO|5.010001||Vi +dSP|5.003007|5.003007| +dSS_ADD|5.017007||Viu +dTARG|5.003007||Viu +dTARGET|5.003007|5.003007| +dTARGETSTACKED|5.003007||Viu +D_T_FMT|5.027010||Viu +dTHR|5.004005|5.003007|p +dTHX|5.003007|5.003007|p +dTHXa|5.006000|5.003007|p +dTHX_DEBUGGING|5.027009||Viu +dTHXo|5.006000||Viu +dTHXoa|5.006001|5.003007|p +dTHXR||5.003007|ponu +dTHXs|5.007002||Viu +dTHXx|5.006000||Viu +dTOPiv|5.003007||Viu +dTOPnv|5.003007||Viu +dTOPss|5.003007||Viu +dTOPuv|5.004000||Viu +dtrace_probe_call|||ciu +dtrace_probe_load|||ciu +dtrace_probe_op|||ciu +dtrace_probe_phase|||ciu +dump_all|5.006000|5.006000| +dump_all_perl|5.011000||Viu +dump_c_backtrace|5.021001||V +dump_eval|5.006000|5.006000|u +dump_exec_pos|5.009004||Viu +dump_form|5.006000|5.006000|u +dump_indent|5.006000||vcVu +dump_mstats|5.003007||Vu +dump_packsubs|5.006000|5.006000| +dump_packsubs_perl|5.011000||Viu +dump_regex_sets_structures|5.025006||Viu +dump_sub|5.006000|5.006000|u +dump_sub_perl|5.011000||Viu +dump_sv_child|5.009003||Viu +dump_trie|5.009004||Viu +dump_trie_interim_list|5.009004||Viu +dump_trie_interim_table|5.009004||Viu +dumpuntil|5.005000||Viu +dump_vindent|5.006000||cVu +dUNDERBAR|5.009002|5.003007|p +dup2|5.005000||Viu +dup|5.005000||Viu +dup_attrlist|5.006000||Viu +DUP_WARNINGS|5.009004||Viu +dup_warnings|||ciu +dVAR|5.009003|5.003007|p +dXCPT|5.009002|5.003007|p +dXSARGS|5.003007|5.003007| +dXSBOOTARGSAPIVERCHK|5.021006||Viu +dXSBOOTARGSNOVERCHK|5.021006||Viu +dXSBOOTARGSXSAPIVERCHK|5.021006||Viu +dXSFUNCTION|5.005000||Viu +dXSI32|5.003007|5.003007|V +dXSTARG|5.006000|5.003007|poVnu +dXSUB_SYS|5.003007||Viu +edit_distance|5.023008||Vniu +EIGHT_BIT_UTF8_TO_NATIVE|5.023003||Viu +ELEMENT_RANGE_MATCHES_INVLIST|5.023002||Viu +EMBEDMYMALLOC|5.006000||Viu +emulate_cop_io|||xciu +emulate_setlocale|5.027009||Vniu +END|5.003007||Viu +END_EXTERN_C|5.005000|5.003007|pV +endgrent|5.009000||Viu +ENDGRENT_R_HAS_FPTR|5.008000||Viu +ENDGRENT_R_PROTO|5.008000|5.008000|Vn +endhostent|5.005000||Viu +ENDHOSTENT_R_PROTO|5.008000|5.008000|Vn +ENDLIKE|5.009005||Viu +ENDLIKE_t8_p8|5.033003||Viu +ENDLIKE_t8_pb|5.033003||Viu +ENDLIKE_tb_p8|5.033003||Viu +ENDLIKE_tb_pb|5.033003||Viu +endnetent|5.005000||Viu +ENDNETENT_R_PROTO|5.008000|5.008000|Vn +endprotoent|5.005000||Viu +ENDPROTOENT_R_PROTO|5.008000|5.008000|Vn +endpwent|5.009000||Viu +ENDPWENT_R_HAS_FPTR|5.008000||Viu +ENDPWENT_R_PROTO|5.008000|5.008000|Vn +endservent|5.005000||Viu +ENDSERVENT_R_PROTO|5.008000|5.008000|Vn +END_t8_p8|5.033003||Viu +END_t8_pb|5.033003||Viu +END_tb_p8|5.033003||Viu +END_tb_pb|5.033003||Viu +ENTER|5.003007|5.003007| +ENTER_with_name|5.011002|5.011002| +ENV_INIT|5.031011||Viu +environ|5.003007||Viu +ENV_LOCALE_LOCK|5.031011||Viu +ENV_LOCALE_READ_LOCK|5.031011||Viu +ENV_LOCALE_READ_UNLOCK|5.031011||Viu +ENV_LOCALE_UNLOCK|5.031011||Viu +ENV_LOCK|5.031011||Viu +ENV_READ_LOCK|5.033005||Viu +ENV_READ_UNLOCK|5.033005||Viu +ENV_TERM|5.031011||Viu +ENV_UNLOCK|5.031011||Viu +EOF|5.003007||Viu +EOF_NONBLOCK|5.003007|5.003007|Vn +EOL|5.003007||Viu +EOL_t8_p8|5.033003||Viu +EOL_t8_pb|5.033003||Viu +EOL_tb_p8|5.033003||Viu +EOL_tb_pb|5.033003||Viu +EOS|5.005000||Viu +EOS_t8_p8|5.033003||Viu +EOS_t8_pb|5.033003||Viu +EOS_tb_p8|5.033003||Viu +EOS_tb_pb|5.033003||Viu +ERA|5.027010||Viu +ERA_D_FMT|5.027010||Viu +ERA_D_T_FMT|5.027010||Viu +ERA_T_FMT|5.027010||Viu +ERRSV|5.004005|5.003007|p +ESC_NATIVE|5.021004||Viu +EVAL|5.005000||Viu +EVAL_B|5.025010||Viu +EVAL_B_fail|5.025010||Viu +EVAL_B_fail_t8_p8|5.033003||Viu +EVAL_B_fail_t8_pb|5.033003||Viu +EVAL_B_fail_tb_p8|5.033003||Viu +EVAL_B_fail_tb_pb|5.033003||Viu +EVAL_B_t8_p8|5.033003||Viu +EVAL_B_t8_pb|5.033003||Viu +EVAL_B_tb_p8|5.033003||Viu +EVAL_B_tb_pb|5.033003||Viu +EVAL_INEVAL|5.006000||Viu +EVAL_INREQUIRE|5.007001||Viu +EVAL_KEEPERR|5.006000||Viu +EVAL_NULL|5.006000||Viu +EVAL_postponed_AB|5.025010||Viu +EVAL_postponed_AB_fail|5.025010||Viu +EVAL_postponed_AB_fail_t8_p8|5.033003||Viu +EVAL_postponed_AB_fail_t8_pb|5.033003||Viu +EVAL_postponed_AB_fail_tb_p8|5.033003||Viu +EVAL_postponed_AB_fail_tb_pb|5.033003||Viu +EVAL_postponed_AB_t8_p8|5.033003||Viu +EVAL_postponed_AB_t8_pb|5.033003||Viu +EVAL_postponed_AB_tb_p8|5.033003||Viu +EVAL_postponed_AB_tb_pb|5.033003||Viu +eval_pv|5.006000|5.003007|p +EVAL_RE_REPARSING|5.017011||Viu +eval_sv|5.006000|5.003007|p +EVAL_t8_p8|5.033003||Viu +EVAL_t8_pb|5.033003||Viu +EVAL_tb_p8|5.033003||Viu +EVAL_tb_pb|5.033003||Viu +EVAL_WARNONLY|5.006000||Viu +EXACT|5.004000||Viu +EXACTF|5.004000||Viu +EXACTFAA|5.027009||Viu +EXACTFAA_NO_TRIE|5.027009||Viu +EXACTFAA_NO_TRIE_t8_p8|5.033003||Viu +EXACTFAA_NO_TRIE_t8_pb|5.033003||Viu +EXACTFAA_NO_TRIE_tb_p8|5.033003||Viu +EXACTFAA_NO_TRIE_tb_pb|5.033003||Viu +EXACTFAA_t8_p8|5.033003||Viu +EXACTFAA_t8_pb|5.033003||Viu +EXACTFAA_tb_p8|5.033003||Viu +EXACTFAA_tb_pb|5.033003||Viu +EXACTFL|5.004000||Viu +EXACTFL_t8_p8|5.033003||Viu +EXACTFL_t8_pb|5.033003||Viu +EXACTFL_tb_p8|5.033003||Viu +EXACTFL_tb_pb|5.033003||Viu +EXACTFLU8|5.021008||Viu +EXACTFLU8_t8_p8|5.033003||Viu +EXACTFLU8_t8_pb|5.033003||Viu +EXACTFLU8_tb_p8|5.033003||Viu +EXACTFLU8_tb_pb|5.033003||Viu +EXACTF_t8_p8|5.033003||Viu +EXACTF_t8_pb|5.033003||Viu +EXACTF_tb_p8|5.033003||Viu +EXACTF_tb_pb|5.033003||Viu +EXACTFU|5.013008||Viu +EXACTFUP|5.029007||Viu +EXACTFUP_t8_p8|5.033003||Viu +EXACTFUP_t8_pb|5.033003||Viu +EXACTFUP_tb_p8|5.033003||Viu +EXACTFUP_tb_pb|5.033003||Viu +EXACTFU_REQ8|5.031006||Viu +EXACTFU_REQ8_t8_p8|5.033003||Viu +EXACTFU_REQ8_t8_pb|5.033003||Viu +EXACTFU_REQ8_tb_p8|5.033003||Viu +EXACTFU_REQ8_tb_pb|5.033003||Viu +EXACTFU_S_EDGE|5.029007||Viu +EXACTFU_S_EDGE_t8_p8|5.033003||Viu +EXACTFU_S_EDGE_t8_pb|5.033003||Viu +EXACTFU_S_EDGE_tb_p8|5.033003||Viu +EXACTFU_S_EDGE_tb_pb|5.033003||Viu +EXACTFU_t8_p8|5.033003||Viu +EXACTFU_t8_pb|5.033003||Viu +EXACTFU_tb_p8|5.033003||Viu +EXACTFU_tb_pb|5.033003||Viu +EXACTL|5.021008||Viu +EXACTL_t8_p8|5.033003||Viu +EXACTL_t8_pb|5.033003||Viu +EXACTL_tb_p8|5.033003||Viu +EXACTL_tb_pb|5.033003||Viu +EXACT_REQ8|5.031006||Viu +EXACT_REQ8_t8_p8|5.033003||Viu +EXACT_REQ8_t8_pb|5.033003||Viu +EXACT_REQ8_tb_p8|5.033003||Viu +EXACT_REQ8_tb_pb|5.033003||Viu +EXACT_t8_p8|5.033003||Viu +EXACT_t8_pb|5.033003||Viu +EXACT_tb_p8|5.033003||Viu +EXACT_tb_pb|5.033003||Viu +EXEC_ARGV_CAST|5.007001||Viu +exec_failed|5.009004||Viu +execl|5.005000||Viu +EXEC_PAT_MOD|5.009005||Viu +EXEC_PAT_MODS|5.009005||Viu +execute_wildcard|5.031010||Viu +execv|5.005000||Viu +execvp|5.005000||Viu +exit|5.005000||Viu +EXPECT|5.009004||Viu +expect_number|5.007001||Viu +EXT|5.003007||Viu +EXTCONST|5.004000||Viu +EXTEND|5.003007|5.003007| +EXTEND_HWM_SET|5.027002||Viu +EXTEND_MORTAL|5.004000||Viu +EXTEND_SKIP|5.027002||Viu +EXTERN_C|5.005000|5.003007|pV +EXT_MGVTBL|5.009004||Viu +EXT_PAT_MODS|5.009005||Viu +EXTRA_SIZE|5.005000||Viu +EXTRA_STEP_2ARGS|5.005000||Viu +F0convert|5.009003||Vniu +FAKE_BIT_BUCKET|5.009005||Viu +FAKE_DEFAULT_SIGNAL_HANDLERS|5.009003||Viu +FAKE_PERSISTENT_SIGNAL_HANDLERS|5.009003||Viu +FALSE|5.003007||Viu +FATAL_ABOVE_FF_MSG|5.027010||Viu +F_atan2_amg|5.004000||Viu +FBMcf_TAIL|5.006000||Viu +FBMcf_TAIL_DOLLAR|5.006000||Viu +FBMcf_TAIL_DOLLARM|5.006000||Viu +FBMcf_TAIL_Z|5.006000||Viu +FBMcf_TAIL_z|5.006000||Viu +fbm_compile|5.005000|5.005000| +fbm_instr|5.005000|5.005000| +FBMrf_MULTILINE|5.006000||Viu +fclose|5.003007||Viu +fcntl|5.006000||Viu +FCNTL_CAN_LOCK|5.007001|5.007001|Vn +F_cos_amg|5.004000||Viu +FD_CLR|5.008000||Viu +FD_ISSET|5.008000||Viu +fdopen|5.003007||Viu +FD_SET|5.008000||Viu +fd_set|5.008000||Viu +FD_ZERO|5.008000||Viu +FEATURE_BAREWORD_FILEHANDLES_BIT|5.033006||Viu +FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED|5.033006||Viu +FEATURE_BITWISE_BIT|5.031006||Viu +FEATURE_BITWISE_IS_ENABLED|5.021009||Viu +FEATURE_BUNDLE_510|5.015007||Viu +FEATURE_BUNDLE_511|5.015007||Viu +FEATURE_BUNDLE_515|5.015007||Viu +FEATURE_BUNDLE_523|5.023001||Viu +FEATURE_BUNDLE_527|5.027008||Viu +FEATURE_BUNDLE_CUSTOM|5.015007||Viu +FEATURE_BUNDLE_DEFAULT|5.015007||Viu +FEATURE_EVALBYTES_BIT|5.031006||Viu +FEATURE_EVALBYTES_IS_ENABLED|5.015007||Viu +FEATURE_FC_BIT|5.031006||Viu +FEATURE_FC_IS_ENABLED|5.015008||Viu +FEATURE_INDIRECT_BIT|5.031010||Viu +FEATURE_INDIRECT_IS_ENABLED|5.031010||Viu +FEATURE_ISA_BIT|5.031007||Viu +FEATURE_ISA_IS_ENABLED|5.031007||Viu +FEATURE_IS_ENABLED_MASK|5.031006||Viu +FEATURE_MULTIDIMENSIONAL_BIT|5.033001||Viu +FEATURE_MULTIDIMENSIONAL_IS_ENABLED|5.033001||Viu +FEATURE_MYREF_BIT|5.031006||Viu +FEATURE_MYREF_IS_ENABLED|5.025003||Viu +FEATURE_POSTDEREF_QQ_BIT|5.031006||Viu +FEATURE_POSTDEREF_QQ_IS_ENABLED|5.019005||Viu +FEATURE_REFALIASING_BIT|5.031006||Viu +FEATURE_REFALIASING_IS_ENABLED|5.021005||Viu +FEATURE_SAY_BIT|5.031006||Viu +FEATURE_SAY_IS_ENABLED|5.015007||Viu +FEATURE_SIGNATURES_BIT|5.031006||Viu +FEATURE_SIGNATURES_IS_ENABLED|5.019009||Viu +FEATURE_STATE_BIT|5.031006||Viu +FEATURE_STATE_IS_ENABLED|5.015007||Viu +FEATURE___SUB___BIT|5.031006||Viu +FEATURE___SUB___IS_ENABLED|5.015007||Viu +FEATURE_SWITCH_BIT|5.031006||Viu +FEATURE_SWITCH_IS_ENABLED|5.015007||Viu +FEATURE_TRY_BIT|5.033007||Viu +FEATURE_TRY_IS_ENABLED|5.033007||Viu +FEATURE_UNICODE_BIT|5.031006||Viu +FEATURE_UNICODE_IS_ENABLED|5.015007||Viu +FEATURE_UNIEVAL_BIT|5.031006||Viu +FEATURE_UNIEVAL_IS_ENABLED|5.015007||Viu +feof|5.003007||Viu +ferror|5.003007||Viu +FETCHFEATUREBITSHH|5.031006||Viu +F_exp_amg|5.004000||Viu +FF_0DECIMAL|5.007001||Viu +FF_BLANK|5.003007||Viu +FF_CHECKCHOP|5.003007||Viu +FF_CHECKNL|5.003007||Viu +FF_CHOP|5.003007||Viu +FF_DECIMAL|5.003007||Viu +FF_END|5.003007||Viu +FF_FETCH|5.003007||Viu +FF_HALFSPACE|5.003007||Viu +FF_ITEM|5.003007||Viu +FF_LINEGLOB|5.003007||Viu +FF_LINEMARK|5.003007||Viu +FF_LINESNGL|5.009001||Viu +FF_LITERAL|5.003007||Viu +Fflush|5.003007||Viu +fflush|5.003007||Viu +FFLUSH_NULL|5.006000|5.006000|Vn +FF_MORE|5.003007||Viu +FF_NEWLINE|5.003007||Viu +FF_SKIP|5.003007||Viu +FF_SPACE|5.003007||Viu +fgetc|5.003007||Viu +fgetpos|5.003007||Viu +fgets|5.003007||Viu +FILE|5.003007||Viu +FILE_base|5.007000|5.007000| +FILE_bufsiz|5.007000|5.007000| +FILE_cnt|5.007000|5.007000| +fileno|5.003007||Viu +FILE_ptr|5.007000|5.007000| +FILL_ADVANCE_NODE_2L_ARG|5.021005||Viu +FILL_ADVANCE_NODE|5.005000||Viu +FILL_ADVANCE_NODE_ARG|5.005000||Viu +FILL_ADVANCE_NODE_ARGp|5.031010||Viu +FILL_NODE|5.029004||Viu +filter_add|5.003007|5.003007| +FILTER_DATA|5.003007||Viu +filter_del|5.003007|5.003007|u +filter_gets|5.005000||Viu +FILTER_ISREADER|5.003007||Viu +filter_read|5.003007|5.003007| +FILTER_READ|5.003007||Viu +finalize_op|5.015002||Viu +finalize_optree|5.015002||Vi +find_and_forget_pmops|5.009005||Viu +find_array_subscript|5.009004||Viu +find_beginning|5.005000||Viu +find_byclass|5.006000||Viu +find_default_stash|5.019004||Viu +find_first_differing_byte_pos|5.031007||Vniu +find_hash_subscript|5.009004||Viu +find_in_my_stash|5.006001||Viu +find_lexical_cv|5.019001||Viu +find_next_masked|5.027009||Vniu +find_runcv|5.008001|5.008001| +FIND_RUNCV_level_eq|5.017002||Viu +FIND_RUNCV_padid_eq|5.017004||Viu +find_runcv_where|5.017002||Viu +find_rundefsv|5.013002|5.013002| +find_rundefsvoffset|5.009002|5.009002|d +find_script|5.004005||Viu +find_span_end|5.027009||Vniu +find_span_end_mask|5.027009||Vniu +find_uninit_var|5.009002||xVi +FIRST_NON_ASCII_DECIMAL_DIGIT|5.027007||Viu +first_symbol|5.009003||Vniu +FITS_IN_8_BITS|5.013005||Viu +fixup_errno_string|5.019007||Viu +FLAGS|5.013006||Viu +FLEXFILENAMES|5.003007|5.003007|Vn +float_end_shift|5.009005||Viu +float_max_offset|5.005000||Viu +float_min_offset|5.005000||Viu +float_substr|5.005000||Viu +float_utf8|5.008000||Viu +flock|5.005000||Viu +flockfile|5.003007||Viu +F_log_amg|5.004000||Viu +FmLINES|5.003007||Viu +fold_constants|5.003007||Viu +foldEQ|5.013002|5.013002|n +foldEQ_latin1|5.013008||cVnu +foldEQ_latin1_s2_folded|5.029007||Vniu +foldEQ_locale|5.013002|5.013002|n +FOLDEQ_LOCALE|5.019009||cV +FOLDEQ_S1_ALREADY_FOLDED|5.015004||cV +FOLDEQ_S1_FOLDS_SANE|5.021008||cV +FOLDEQ_S2_ALREADY_FOLDED|5.015004||cV +FOLDEQ_S2_FOLDS_SANE|5.021008||cV +foldEQ_utf8|5.013002|5.007003|p +foldEQ_utf8_flags|5.013010||cVu +FOLDEQ_UTF8_NOMIX_ASCII|5.013010||cV +FOLD_FLAGS_FULL|5.015006||Viu +FOLD_FLAGS_LOCALE|5.015006||Viu +FOLD_FLAGS_NOMIX_ASCII|5.017000||Viu +fopen|5.003007||Viu +forbid_setid|5.005000||Viu +force_ident|5.003007||Viu +force_ident_maybe_lex|5.017004||Viu +force_list|5.003007||Viu +force_next|5.003007||Viu +_force_out_malformed_utf8_message|5.025009||cVu +force_strict_version|5.011004||Viu +force_version|5.005000||Viu +force_word|5.003007||Viu +forget_pmop|5.017007||Viu +form|5.006000|5.004000|v +form_alien_digit_msg|5.031009||cViu +form_cp_too_large_msg|5.031009||cViu +form_nocontext|5.006000||vVn +fp_dup|5.007003|5.007003|u +Fpos_t|5.003007|5.003007|Vn +F_pow_amg|5.004000||Viu +FP_PINF|5.021004||Viu +FP_QNAN|5.021004||Viu +fprintf|5.003007||Viu +fprintf_nocontext|5.006000||vdVnu +FPTR2DPTR|5.009003||Viu +fputc|5.003007||Viu +fputs|5.003007||Viu +fread|5.003007||Viu +free|5.003007||Viu +free_and_set_cop_warnings|5.031011||Viu +free_c_backtrace|5.021001||Vi +FreeOp|5.008001||Viu +Free_t|5.003007|5.003007|Vn +FREE_THREAD_KEY|5.006001||Viu +free_tied_hv_pool|5.008001||Viu +FREETMPS|5.003007|5.003007| +free_tmps|5.003007||cVu +freopen|5.003007||Viu +frewind|5.005000||Viu +FROM_INTERNAL_SIZE|5.023002||Viu +fscanf|5.003007||Viu +fseek|5.003007||Viu +FSEEKSIZE|5.006000||Viu +fsetpos|5.003007||Viu +F_sin_amg|5.004000||Viu +F_sqrt_amg|5.004000||Viu +Fstat|5.003007||Viu +fstat|5.005000||Viu +ftell|5.003007||Viu +ftruncate|5.006000||Viu +ftrylockfile|5.003007||Viu +FUNCTION|5.009003||Viu +funlockfile|5.003007||Viu +fwrite1|5.003007||Viu +fwrite|5.003007||Viu +G_ARRAY|5.003007||Viu +GCB_BREAKABLE|5.025003||Viu +GCB_EX_then_EM|5.025003||Viu +GCB_Maybe_Emoji_NonBreak|5.029002||Viu +GCB_NOBREAK|5.025003||Viu +GCB_RI_then_RI|5.025003||Viu +GCC_DIAG_IGNORE|5.019007||Viu +GCC_DIAG_IGNORE_DECL|5.027007||Viu +GCC_DIAG_IGNORE_STMT|5.027007||Viu +GCC_DIAG_PRAGMA|5.021001||Viu +GCC_DIAG_RESTORE|5.019007||Viu +GCC_DIAG_RESTORE_DECL|5.027007||Viu +GCC_DIAG_RESTORE_STMT|5.027007||Viu +Gconvert|5.003007|5.003007| +GDBMNDBM_H_USES_PROTOTYPES|5.032001|5.032001|Vn +G_DISCARD|5.003007|5.003007| +gen_constant_list|5.003007||Viu +get_and_check_backslash_N_name|5.017006||cViu +get_and_check_backslash_N_name_wrapper|5.029009||Viu +get_ANYOF_cp_list_for_ssc|5.019005||Viu +get_ANYOFM_contents|5.027009||Viu +GETATARGET|5.003007||Viu +get_aux_mg|5.011000||Viu +get_av|5.006000|5.003007|p +getc|5.003007||Viu +get_c_backtrace|5.021001||Vi +get_c_backtrace_dump|5.021001||V +get_context|5.006000|5.006000|nu +getc_unlocked|5.003007||Viu +get_cv|5.006000|5.003007|p +get_cvn_flags|5.009005|5.003007|p +get_cvs|5.011000|5.003007|p +getcwd_sv|5.007002|5.007002| +get_db_sub|||iu +get_debug_opts|5.008001||Viu +get_deprecated_property_msg|5.031011||cVniu +getegid|5.005000||Viu +getenv|5.005000||Viu +getenv_len|5.006000||Viu +GETENV_LOCK|5.033005||Viu +GETENV_PRESERVES_OTHER_THREAD|5.033005|5.033005|Vn +GETENV_UNLOCK|5.033005||Viu +geteuid|5.005000||Viu +getgid|5.005000||Viu +getgrent|5.009000||Viu +GETGRENT_R_HAS_BUFFER|5.008000||Viu +GETGRENT_R_HAS_FPTR|5.008000||Viu +GETGRENT_R_HAS_PTR|5.008000||Viu +GETGRENT_R_PROTO|5.008000|5.008000|Vn +getgrgid|5.009000||Viu +GETGRGID_R_HAS_BUFFER|5.008000||Viu +GETGRGID_R_HAS_PTR|5.008000||Viu +GETGRGID_R_PROTO|5.008000|5.008000|Vn +getgrnam|5.009000||Viu +GETGRNAM_R_HAS_BUFFER|5.008000||Viu +GETGRNAM_R_HAS_PTR|5.008000||Viu +GETGRNAM_R_PROTO|5.008000|5.008000|Vn +get_hash_seed|5.008001||Viu +gethostbyaddr|5.005000||Viu +GETHOSTBYADDR_R_HAS_BUFFER|5.008000||Viu +GETHOSTBYADDR_R_HAS_ERRNO|5.008000||Viu +GETHOSTBYADDR_R_HAS_PTR|5.008000||Viu +GETHOSTBYADDR_R_PROTO|5.008000|5.008000|Vn +gethostbyname|5.005000||Viu +GETHOSTBYNAME_R_HAS_BUFFER|5.008000||Viu +GETHOSTBYNAME_R_HAS_ERRNO|5.008000||Viu +GETHOSTBYNAME_R_HAS_PTR|5.008000||Viu +GETHOSTBYNAME_R_PROTO|5.008000|5.008000|Vn +gethostent|5.005000||Viu +GETHOSTENT_R_HAS_BUFFER|5.008000||Viu +GETHOSTENT_R_HAS_ERRNO|5.008000||Viu +GETHOSTENT_R_HAS_PTR|5.008000||Viu +GETHOSTENT_R_PROTO|5.008000|5.008000|Vn +gethostname|5.005000||Viu +get_hv|5.006000|5.003007|p +get_invlist_iter_addr|5.015001||Vniu +get_invlist_offset_addr|5.019002||Vniu +get_invlist_previous_index_addr|5.017004||Vniu +getlogin|5.005000||Viu +GETLOGIN_R_PROTO|5.008000|5.008000|Vn +get_mstats|5.006000||Vu +getnetbyaddr|5.005000||Viu +GETNETBYADDR_R_HAS_BUFFER|5.008000||Viu +GETNETBYADDR_R_HAS_ERRNO|5.008000||Viu +GETNETBYADDR_R_HAS_PTR|5.008000||Viu +GETNETBYADDR_R_PROTO|5.008000|5.008000|Vn +getnetbyname|5.005000||Viu +GETNETBYNAME_R_HAS_BUFFER|5.008000||Viu +GETNETBYNAME_R_HAS_ERRNO|5.008000||Viu +GETNETBYNAME_R_HAS_PTR|5.008000||Viu +GETNETBYNAME_R_PROTO|5.008000|5.008000|Vn +getnetent|5.005000||Viu +GETNETENT_R_HAS_BUFFER|5.008000||Viu +GETNETENT_R_HAS_ERRNO|5.008000||Viu +GETNETENT_R_HAS_PTR|5.008000||Viu +GETNETENT_R_PROTO|5.008000|5.008000|Vn +get_no_modify|5.005000||Viu +get_num|5.008001||Viu +get_opargs|5.005000||Viu +get_op_descs|5.005000|5.005000|u +get_op_names|5.005000|5.005000|u +getpeername|5.005000||Viu +getpid|5.006000||Viu +get_ppaddr|5.006000|5.006000|u +get_prop_definition|5.031011||cViu +get_prop_values|5.031011||cVniu +getprotobyname|5.005000||Viu +GETPROTOBYNAME_R_HAS_BUFFER|5.008000||Viu +GETPROTOBYNAME_R_HAS_PTR|5.008000||Viu +GETPROTOBYNAME_R_PROTO|5.008000|5.008000|Vn +getprotobynumber|5.005000||Viu +GETPROTOBYNUMBER_R_HAS_BUFFER|5.008000||Viu +GETPROTOBYNUMBER_R_HAS_PTR|5.008000||Viu +GETPROTOBYNUMBER_R_PROTO|5.008000|5.008000|Vn +getprotoent|5.005000||Viu +GETPROTOENT_R_HAS_BUFFER|5.008000||Viu +GETPROTOENT_R_HAS_PTR|5.008000||Viu +GETPROTOENT_R_PROTO|5.008000|5.008000|Vn +getpwent|5.009000||Viu +GETPWENT_R_HAS_BUFFER|5.008000||Viu +GETPWENT_R_HAS_FPTR|5.008000||Viu +GETPWENT_R_HAS_PTR|5.008000||Viu +GETPWENT_R_PROTO|5.008000|5.008000|Vn +getpwnam|5.009000||Viu +GETPWNAM_R_HAS_BUFFER|5.008000||Viu +GETPWNAM_R_HAS_PTR|5.008000||Viu +GETPWNAM_R_PROTO|5.008000|5.008000|Vn +getpwuid|5.009000||Viu +GETPWUID_R_HAS_PTR|5.008000||Viu +GETPWUID_R_PROTO|5.008000|5.008000|Vn +get_quantifier_value|5.033006||Viu +get_re_arg|||xciu +get_re_gclass_nonbitmap_data|5.031011||Viu +get_regclass_nonbitmap_data|5.031011||Viu +get_regex_charset_name|5.031004||Vniu +getservbyname|5.005000||Viu +GETSERVBYNAME_R_HAS_BUFFER|5.008000||Viu +GETSERVBYNAME_R_HAS_PTR|5.008000||Viu +GETSERVBYNAME_R_PROTO|5.008000|5.008000|Vn +getservbyport|5.005000||Viu +GETSERVBYPORT_R_HAS_BUFFER|5.008000||Viu +GETSERVBYPORT_R_HAS_PTR|5.008000||Viu +GETSERVBYPORT_R_PROTO|5.008000|5.008000|Vn +getservent|5.005000||Viu +GETSERVENT_R_HAS_BUFFER|5.008000||Viu +GETSERVENT_R_HAS_PTR|5.008000||Viu +GETSERVENT_R_PROTO|5.008000|5.008000|Vn +getsockname|5.005000||Viu +getsockopt|5.005000||Viu +getspnam|5.009000||Viu +GETSPNAM_R_HAS_BUFFER|5.031011||Viu +GETSPNAM_R_HAS_PTR|5.008000||Viu +GETSPNAM_R_PROTO|5.008000|5.008000|Vn +get_sv|5.006000|5.003007|p +GETTARGET|5.003007||Viu +GETTARGETSTACKED|5.003007||Viu +gettimeofday|5.008000||Viu +getuid|5.005000||Viu +get_vtbl|5.005003|5.005003|u +getw|5.003007||Viu +G_EVAL|5.003007|5.003007| +G_FAKINGEVAL|5.009004||Viu +Gid_t|5.003007|5.003007|Vn +Gid_t_f|5.006000|5.006000|Vn +Gid_t_sign|5.006000|5.006000|Vn +Gid_t_size|5.006000|5.006000|Vn +GIMME|5.003007|5.003007|d +GIMME_V|5.004000|5.004000| +gimme_V|5.031005||xcVu +G_KEEPERR|5.003007|5.003007| +G_LIST|5.035001|5.003007| +glob_2number|5.009004||Viu +GLOBAL_PAT_MOD|5.009005||Viu +glob_assign_glob|5.009004||Viu +G_METHOD|5.006001|5.003007|p +G_METHOD_NAMED|5.019002|5.019002| +gmtime|5.031011||Viu +GMTIME_MAX|5.010001|5.010001|Vn +GMTIME_MIN|5.010001|5.010001|Vn +GMTIME_R_PROTO|5.008000|5.008000|Vn +G_NOARGS|5.003007|5.003007| +G_NODEBUG|5.004005||Viu +GOSUB|5.009005||Viu +GOSUB_t8_p8|5.033003||Viu +GOSUB_t8_pb|5.033003||Viu +GOSUB_tb_p8|5.033003||Viu +GOSUB_tb_pb|5.033003||Viu +gp_dup|5.007003|5.007003|u +gp_free|5.003007|5.003007|u +GPOS|5.004000||Viu +GPOS_t8_p8|5.033003||Viu +GPOS_t8_pb|5.033003||Viu +GPOS_tb_p8|5.033003||Viu +GPOS_tb_pb|5.033003||Viu +gp_ref|5.003007|5.003007|u +GREEK_CAPITAL_LETTER_MU|5.013011||Viu +GREEK_SMALL_LETTER_MU|5.013008||Viu +G_RE_REPARSING|5.017011||Viu +G_RETHROW|5.031002|5.003007|p +grok_atoUV|5.021010||cVni +grok_bin|5.007003|5.003007|p +grok_bin_oct_hex|5.031008||cVu +grok_bslash_c|5.013001||cViu +grok_bslash_N|5.017003||Viu +grok_bslash_o|5.013003||cViu +grok_bslash_x|5.017002||cViu +grok_hex|5.007003|5.003007|p +grok_infnan|5.021004|5.021004| +grok_number|5.007002|5.003007|p +grok_number_flags|5.021002|5.021002| +GROK_NUMERIC_RADIX|5.007002|5.003007|p +grok_numeric_radix|5.007002|5.003007|p +grok_oct|5.007003|5.003007|p +group_end|5.007003||Viu +GROUPP|5.005000||Viu +GROUPPN|5.031001||Viu +GROUPPN_t8_p8|5.033003||Viu +GROUPPN_t8_pb|5.033003||Viu +GROUPPN_tb_p8|5.033003||Viu +GROUPPN_tb_pb|5.033003||Viu +GROUPP_t8_p8|5.033003||Viu +GROUPP_t8_pb|5.033003||Viu +GROUPP_tb_p8|5.033003||Viu +GROUPP_tb_pb|5.033003||Viu +Groups_t|5.003007|5.003007|Vn +GRPASSWD|5.005000|5.005000|Vn +G_SCALAR|5.003007|5.003007| +G_UNDEF_FILL|5.013001||Viu +GV_ADD|5.003007|5.003007| +gv_add_by_type|5.011000|5.011000|u +GV_ADDMG|5.015003|5.015003| +GV_ADDMULTI|5.003007|5.003007| +GV_ADDWARN|5.003007|5.003007| +Gv_AMG|5.003007||Viu +Gv_AMupdate|5.011000|5.011000|u +GvASSUMECV|5.003007||Viu +GvASSUMECV_off|5.003007||Viu +GvASSUMECV_on|5.003007||Viu +gv_autoload4|5.004000|5.004000| +GV_AUTOLOAD|5.011000||Viu +GV_AUTOLOAD_ISMETHOD|5.015004||Viu +gv_autoload_pv|5.015004|5.015004|u +gv_autoload_pvn|5.015004|5.015004|u +gv_autoload_sv|5.015004|5.015004|u +GvAV|5.003007|5.003007| +gv_AVadd|5.003007|5.003007|u +GvAVn|5.003007||Viu +GV_CACHE_ONLY|5.021004||Vi +gv_check|5.003007||cVu +gv_const_sv|5.009003|5.009003| +GV_CROAK|5.011000||Viu +GvCV|5.003007|5.003007| +GvCVGEN|5.003007||Viu +GvCV_set|5.013010||Viu +GvCVu|5.004000||Viu +gv_dump|5.006000|5.006000|u +gv_efullname3|5.003007|5.003007|u +gv_efullname4|5.006001|5.006001|u +gv_efullname|5.003007|5.003007|du +GvEGV|5.003007||Viu +GvEGVx|5.013000||Viu +GvENAME|5.003007||Viu +GvENAME_HEK|5.015004||Viu +GvENAMELEN|5.015004||Viu +GvENAMEUTF8|5.015004||Viu +GvESTASH|5.003007||Viu +GVf_ASSUMECV|5.003007||Viu +gv_fetchfile|5.003007|5.003007| +gv_fetchfile_flags|5.009005|5.009005| +gv_fetchmeth|5.003007|5.003007| +gv_fetchmeth_autoload|5.007003|5.007003| +gv_fetchmeth_internal|5.021007||Viu +gv_fetchmethod|5.003007|5.003007| +gv_fetchmethod_autoload|5.004000|5.004000| +gv_fetchmethod_flags|5.015004||Viu +gv_fetchmethod_pv_flags|5.015004|5.015004|xu +gv_fetchmethod_pvn_flags|5.015004|5.015004|xu +gv_fetchmethod_sv_flags|5.015004|5.015004|xu +gv_fetchmeth_pv|5.015004|5.015004| +gv_fetchmeth_pv_autoload|5.015004|5.015004| +gv_fetchmeth_pvn|5.015004|5.015004| +gv_fetchmeth_pvn_autoload|5.015004|5.015004| +gv_fetchmeth_sv|5.015004|5.015004| +gv_fetchmeth_sv_autoload|5.015004|5.015004| +gv_fetchpv|5.003007|5.003007| +gv_fetchpvn|5.013006|5.013006| +gv_fetchpvn_flags|5.009002|5.003007|p +gv_fetchpvs|5.009004|5.003007|p +gv_fetchsv|5.009002|5.003007|p +gv_fetchsv_nomg|5.015003|5.015003| +GvFILE|5.006000||Viu +GvFILEGV|5.003007||Viu +GvFILE_HEK|5.009004||Viu +GvFILEx|5.019006||Viu +GVf_IMPORTED|5.003007||Viu +GVf_IMPORTED_AV|5.003007||Viu +GVf_IMPORTED_CV|5.003007||Viu +GVf_IMPORTED_HV|5.003007||Viu +GVf_IMPORTED_SV|5.003007||Viu +GVf_INTRO|5.003007||Viu +GvFLAGS|5.003007||Viu +GVf_MULTI|5.003007||Viu +GvFORM|5.003007||Viu +gv_fullname3|5.003007|5.003007|u +gv_fullname4|5.006001|5.006001|u +gv_fullname|5.003007|5.003007|du +GvGP|5.003007||Viu +GvGPFLAGS|5.021004||Viu +GvGP_set|5.013010||Viu +gv_handler|5.007001|5.007001|u +GvHV|5.003007|5.003007| +gv_HVadd|5.003007|5.003007|u +GvHVn|5.003007||Viu +GvIMPORTED|5.003007||Viu +GvIMPORTED_AV|5.003007||Viu +GvIMPORTED_AV_off|5.003007||Viu +GvIMPORTED_AV_on|5.003007||Viu +GvIMPORTED_CV|5.003007||Viu +GvIMPORTED_CV_off|5.003007||Viu +GvIMPORTED_CV_on|5.003007||Viu +GvIMPORTED_HV|5.003007||Viu +GvIMPORTED_HV_off|5.003007||Viu +GvIMPORTED_HV_on|5.003007||Viu +GvIMPORTED_off|5.003007||Viu +GvIMPORTED_on|5.003007||Viu +GvIMPORTED_SV|5.003007||Viu +GvIMPORTED_SV_off|5.003007||Viu +GvIMPORTED_SV_on|5.003007||Viu +gv_init|5.003007|5.003007| +gv_init_pv|5.015004|5.015004| +gv_init_pvn|5.015004|5.003007|p +gv_init_sv|5.015004|5.015004| +gv_init_svtype|5.015004||Viu +GvIN_PAD|5.006000||Viu +GvIN_PAD_off|5.006000||Viu +GvIN_PAD_on|5.006000||Viu +GvINTRO|5.003007||Viu +GvINTRO_off|5.003007||Viu +GvINTRO_on|5.003007||Viu +GvIO|5.003007||Viu +gv_IOadd|5.003007|5.003007|u +GvIOn|5.003007||Viu +GvIOp|5.003007||Viu +gv_is_in_main|5.019004||Viu +GvLINE|5.003007||Viu +gv_magicalize|5.019004||Viu +gv_magicalize_isa|5.013005||Viu +gv_method_changed|5.017007||Viu +GvMULTI|5.003007||Viu +GvMULTI_off|5.003007||Viu +GvMULTI_on|5.003007||Viu +GvNAME|5.003007||Viu +GvNAME_get|5.009004||Viu +GvNAME_HEK|5.009004||Viu +GvNAMELEN|5.003007||Viu +GvNAMELEN_get|5.009004||Viu +gv_name_set|5.009004|5.009004|u +GvNAMEUTF8|5.015004||Viu +GV_NOADD_MASK|5.009005||Viu +GV_NOADD_NOINIT|5.009003|5.009003| +GV_NOEXPAND|5.009003|5.009003| +GV_NOINIT|5.004005|5.004005| +GV_NO_SVGMAGIC|5.015003|5.015003| +GV_NOTQUAL|5.009004|5.009004| +GV_NOUNIVERSAL|5.033009||Viu +G_VOID|5.004000|5.004000| +gv_override|5.019006||Viu +GvREFCNT|5.003007||Viu +gv_setref|5.021005||Viu +GvSTASH|5.003007||Viu +gv_stashpv|5.003007|5.003007| +gv_stashpvn|5.003007|5.003007|p +gv_stashpvn_internal|5.021004||Viu +gv_stashpvs|5.009003|5.003007|p +gv_stashsv|5.003007|5.003007| +gv_stashsvpvn_cached|5.021004||Vi +GV_SUPER|5.017004|5.017004| +GvSV|5.003007|5.003007| +gv_SVadd|5.011000||Vu +GvSVn|5.009003|5.003007|p +gv_try_downgrade|5.011002||xcVi +GvXPVGV|5.003007||Viu +G_WANT|5.010001||Viu +G_WARN_ALL_MASK|5.006000||Viu +G_WARN_ALL_OFF|5.006000||Viu +G_WARN_ALL_ON|5.006000||Viu +G_WARN_OFF|5.006000||Viu +G_WARN_ON|5.006000||Viu +G_WARN_ONCE|5.006000||Viu +G_WRITING_TO_STDERR|5.013009||Viu +handle_named_backref|5.023008||Viu +handle_names_wildcard|5.031011||Viu +handle_possible_posix|5.023008||Viu +handle_regex_sets|5.017009||Viu +handle_user_defined_property|5.029008||Viu +HAS_ACCEPT4|5.027008|5.027008|Vn +HAS_ACCESS|5.006000|5.006000|Vn +HAS_ACOSH|5.021004|5.021004|Vn +HAS_ALARM|5.003007|5.003007|Vn +HAS_ASCTIME_R|5.010000|5.010000|Vn +HAS_ASINH|5.021006|5.021006|Vn +HAS_ATANH|5.021006|5.021006|Vn +HAS_ATOLL|5.006000|5.006000|Vn +HASATTRIBUTE_ALWAYS_INLINE|5.031007|5.031007|Vn +HASATTRIBUTE_DEPRECATED|5.010001|5.010001|Vn +HASATTRIBUTE_FORMAT|5.009003|5.009003|Vn +HASATTRIBUTE_MALLOC|5.009003|5.009003|Vn +HASATTRIBUTE_NONNULL|5.009003|5.009003|Vn +HASATTRIBUTE_NORETURN|5.009003|5.009003|Vn +HASATTRIBUTE_PURE|5.009003|5.009003|Vn +HASATTRIBUTE_UNUSED|5.009003|5.009003|Vn +HASATTRIBUTE_WARN_UNUSED_RESULT|5.009003|5.009003|Vn +HAS_BACKTRACE|5.021001|5.021001|Vn +HAS_BOOL|5.003007||Viu +HAS_BUILTIN_CHOOSE_EXPR|5.009004|5.009004|Vn +HAS_BUILTIN_EXPECT|5.010001|5.010001|Vn +__has_builtin|||piu +HAS_BUILTIN_UNREACHABLE|5.033003||Viu +HAS_C99|5.021004||Viu +HAS_C99_VARIADIC_MACROS|5.009004|5.009004|Vn +HAS_CBRT|5.021006|5.021006|Vn +HAS_CF_AUX_TABLES|5.027011||Viu +HAS_CHOWN|5.003007|5.003007|Vn +HAS_CHROOT|5.003007|5.003007|Vn +HAS_CHSIZE|5.004005|5.004005|Vn +HAS_CLEARENV|5.009003|5.009003|Vn +HAS_COPYSIGN|5.021006|5.021006|Vn +HAS_COPYSIGNL|5.008001|5.008001|Vn +HAS_CRYPT|5.003007|5.003007|Vn +HAS_CRYPT_R|5.010000|5.010000|Vn +HAS_CSH|5.005000|5.005000|Vn +HAS_CTERMID|5.009005|5.009005|Vn +HAS_CTIME_R|5.010000|5.010000|Vn +HAS_CUSERID|5.003007|5.003007|Vn +HAS_DBMINIT_PROTO|5.032001|5.032001|Vn +HAS_DIFFTIME|5.003007|5.003007|Vn +HAS_DIRFD|5.007003|5.007003|Vn +HAS_DLADDR|5.021001|5.021001|Vn +HAS_DLERROR|5.003007|5.003007|Vn +HAS_DRAND48_PROTO|5.006000|5.006000|Vn +HAS_DRAND48_R|5.010000|5.010000|Vn +HAS_DUP2|5.003007|5.003007|Vn +HAS_DUP3|5.027008|5.027008|Vn +HAS_DUPLOCALE|5.027011|5.027011|Vn +HAS_EACCESS|5.006000|5.006000|Vn +HAS_ENDGRENT|5.005000|5.005000|Vn +HAS_ENDHOSTENT|5.005000|5.005000|Vn +HAS_ENDNETENT|5.005000|5.005000|Vn +HAS_ENDPROTOENT|5.005000|5.005000|Vn +HAS_ENDPWENT|5.005000|5.005000|Vn +HAS_ENDSERVENT|5.005000|5.005000|Vn +HAS_ERF|5.021006|5.021006|Vn +HAS_ERFC|5.021006|5.021006|Vn +HAS_EXP2|5.021006|5.021006|Vn +HAS_EXPM1|5.021006|5.021006|Vn +HAS_FAST_STDIO|5.008001|5.008001|Vn +HAS_FCHDIR|5.007002|5.007002|Vn +HAS_FCHMOD|5.003007|5.003007|Vn +HAS_FCHMODAT|5.027004|5.027004|Vn +HAS_FCHOWN|5.003007|5.003007|Vn +HAS_FCNTL|5.003007|5.003007|Vn +HAS_FDIM|5.021006|5.021006|Vn +HAS_FD_SET|5.006000|5.006000|Vn +HAS_FEGETROUND|5.021004|5.021004|Vn +HAS_FFS|5.035001|5.035001|Vn +HAS_FFSL|5.035001|5.035001|Vn +HAS_FGETPOS|5.003007|5.003007|Vn +HAS_FINITE|5.007003|5.007003|Vn +HAS_FINITEL|5.007003|5.007003|Vn +HAS_FLOCK|5.003007|5.003007|Vn +HAS_FLOCK_PROTO|5.007002|5.007002|Vn +HAS_FMA|5.021006|5.021006|Vn +HAS_FMAX|5.021006|5.021006|Vn +HAS_FMIN|5.021006|5.021006|Vn +HAS_FORK|5.003007|5.003007|Vn +HAS_FPATHCONF|5.003007|5.003007|Vn +HAS_FPCLASSIFY|5.021004|5.021004|Vn +HAS_FREELOCALE|5.023009|5.023009|Vn +HAS_FREXPL|5.006001|5.006001|Vn +HAS_FSEEKO|5.006000|5.006000|Vn +HAS_FSETPOS|5.003007|5.003007|Vn +HAS_FSTATFS|5.023005|5.023005|Vn +HAS_FSTATVFS|5.023005|5.023005|Vn +HAS_FSYNC|5.007001|5.007001|Vn +HAS_FTELLO|5.006000|5.006000|Vn +HAS_FUTIMES|5.009003|5.009003|Vn +HAS_GAI_STRERROR|5.025004|5.025004|Vn +HAS_GETADDRINFO|5.010001|5.010001|Vn +HAS_GETCWD|5.006000|5.006000|Vn +HAS_GETGRENT|5.005000|5.005000|Vn +HAS_GETGRENT_R|5.010000|5.010000|Vn +HAS_GETGRGID_R|5.010000|5.010000|Vn +HAS_GETGRNAM_R|5.010000|5.010000|Vn +HAS_GETGROUPS|5.003007|5.003007|Vn +HAS_GETHOSTBYADDR|5.005000|5.005000|Vn +HAS_GETHOSTBYADDR_R|5.010000|5.010000|Vn +HAS_GETHOSTBYNAME|5.005000|5.005000|Vn +HAS_GETHOSTBYNAME_R|5.010000|5.010000|Vn +HAS_GETHOSTENT|5.003007|5.003007|Vn +HAS_GETHOSTENT_R|5.010000|5.010000|Vn +HAS_GETHOSTNAME|5.006000|5.006000|Vn +HAS_GETHOST_PROTOS|5.005000|5.005000|Vn +HAS_GETITIMER|5.007001|5.007001|Vn +HAS_GETLOGIN|5.003007|5.003007|Vn +HAS_GETLOGIN_R|5.010000|5.010000|Vn +HAS_GETMNTENT|5.023005|5.023005|Vn +HAS_GETNAMEINFO|5.010001|5.010001|Vn +HAS_GETNETBYADDR|5.005000|5.005000|Vn +HAS_GETNETBYADDR_R|5.010000|5.010000|Vn +HAS_GETNETBYNAME|5.005000|5.005000|Vn +HAS_GETNETBYNAME_R|5.010000|5.010000|Vn +HAS_GETNETENT|5.005000|5.005000|Vn +HAS_GETNETENT_R|5.010000|5.010000|Vn +HAS_GETNET_PROTOS|5.005000|5.005000|Vn +HAS_GETPAGESIZE|5.007001|5.007001|Vn +HAS_GETPGID|5.003007|5.003007|Vn +HAS_GETPGRP|5.003007|5.003007|Vn +HAS_GETPPID|5.003007|5.003007|Vn +HAS_GETPRIORITY|5.003007|5.003007|Vn +HAS_GETPROTOBYNAME|5.005000|5.005000|Vn +HAS_GETPROTOBYNAME_R|5.010000|5.010000|Vn +HAS_GETPROTOBYNUMBER|5.005000|5.005000|Vn +HAS_GETPROTOBYNUMBER_R|5.010000|5.010000|Vn +HAS_GETPROTOENT|5.005000|5.005000|Vn +HAS_GETPROTOENT_R|5.010000|5.010000|Vn +HAS_GETPROTO_PROTOS|5.005000|5.005000|Vn +HAS_GETPWENT|5.005000|5.005000|Vn +HAS_GETPWENT_R|5.010000|5.010000|Vn +HAS_GETPWNAM_R|5.010000|5.010000|Vn +HAS_GETPWUID_R|5.010000|5.010000|Vn +HAS_GETSERVBYNAME|5.005000|5.005000|Vn +HAS_GETSERVBYNAME_R|5.010000|5.010000|Vn +HAS_GETSERVBYPORT|5.005000|5.005000|Vn +HAS_GETSERVBYPORT_R|5.010000|5.010000|Vn +HAS_GETSERVENT|5.005000|5.005000|Vn +HAS_GETSERVENT_R|5.010000|5.010000|Vn +HAS_GETSERV_PROTOS|5.005000|5.005000|Vn +HAS_GETSPNAM|5.006000|5.006000|Vn +HAS_GETSPNAM_R|5.010000|5.010000|Vn +HAS_GETTIMEOFDAY|5.004000|5.004000|Vn +HAS_GMTIME_R|5.010000|5.010000|Vn +HAS_GNULIBC|5.004005|5.004005|Vn +HAS_GROUP|5.003007||Viu +HAS_HASMNTOPT|5.023005|5.023005|Vn +HAS_HTONL|5.003007|5.003007|Vn +HAS_HTONS|5.003007|5.003007|Vn +HAS_HYPOT|5.021006|5.021006|Vn +HAS_ILOGB|5.021006|5.021006|Vn +HAS_ILOGBL|5.008001|5.008001|Vn +HAS_INET_ATON|5.004000|5.004000|Vn +HAS_INETNTOP|5.010001|5.010001|Vn +HAS_INETPTON|5.010001|5.010001|Vn +HAS_INT64_T|5.006000|5.006000|Vn +HAS_IOCTL|5.003007||Viu +HAS_IP_MREQ|5.017002|5.017002|Vn +HAS_IP_MREQ_SOURCE|5.017004|5.017004|Vn +HAS_IPV6_MREQ|5.015008|5.015008|Vn +HAS_ISASCII|5.003007|5.003007|Vn +HAS_ISBLANK|5.015007|5.015007|Vn +HAS_ISFINITE|5.021004|5.021004|Vn +HAS_ISINF|5.007003|5.007003|Vn +HAS_ISINFL|5.021004|5.021004|Vn +HAS_ISLESS|5.031007|5.031007|Vn +HAS_ISNAN|5.006001|5.006001|Vn +HAS_ISNANL|5.006001|5.006001|Vn +HAS_ISNORMAL|5.021006|5.021006|Vn +HAS_IVCF_AUX_TABLES|5.027011||Viu +HAS_J0|5.021004|5.021004|Vn +HAS_J0L|5.021004|5.021004|Vn +HAS_KILL|5.003007||Viu +HAS_KILLPG|5.003007|5.003007|Vn +HAS_LC_AUX_TABLES|5.027011||Viu +HAS_LCHOWN|5.005000|5.005000|Vn +HAS_LC_MONETARY_2008|5.021005|5.021005|Vn +HAS_LDBL_DIG|5.006000|5.006000|Vn +HAS_LDEXPL|5.021003|5.021003|Vn +HAS_LGAMMA|5.021006|5.021006|Vn +HAS_LGAMMA_R|5.021006|5.021006|Vn +HAS_LINK|5.003007|5.003007|Vn +HAS_LINKAT|5.027004|5.027004|Vn +HAS_LLRINT|5.021006|5.021006|Vn +HAS_LLRINTL|5.021009|5.021009|Vn +HAS_LLROUND|5.021006|5.021006|Vn +HAS_LLROUNDL|5.021009|5.021009|Vn +HAS_LOCALECONV|5.003007|5.003007|Vn +HAS_LOCALTIME_R|5.010000|5.010000|Vn +HAS_LOCKF|5.003007|5.003007|Vn +HAS_LOG1P|5.021006|5.021006|Vn +HAS_LOG2|5.021006|5.021006|Vn +HAS_LOGB|5.021006|5.021006|Vn +HAS_LONG_DOUBLE|5.005000|5.005000|Vn +HAS_LONG_LONG|5.005000|5.005000|Vn +HAS_LRINT|5.021006|5.021006|Vn +HAS_LRINTL|5.021009|5.021009|Vn +HAS_LROUND|5.021006|5.021006|Vn +HAS_LROUNDL|5.021009|5.021009|Vn +HAS_LSEEK_PROTO|5.006000|5.006000|Vn +HAS_LSTAT|5.003007|5.003007|Vn +HAS_MADVISE|5.006000|5.006000|Vn +HAS_MBLEN|5.003007|5.003007|Vn +HAS_MBRLEN|5.027006|5.027006|Vn +HAS_MBRTOWC|5.027006|5.027006|Vn +HAS_MBSTOWCS|5.003007|5.003007|Vn +HAS_MBTOWC|5.003007|5.003007|Vn +HAS_MEMMEM|5.024000|5.024000|Vn +HAS_MEMRCHR|5.027005|5.027005|Vn +HAS_MKDIR|5.003007|5.003007|Vn +HAS_MKDTEMP|5.006000|5.006000|Vn +HAS_MKFIFO|5.003007|5.003007|Vn +HAS_MKOSTEMP|5.027008|5.027008|Vn +HAS_MKSTEMP|5.006000|5.006000|Vn +HAS_MKSTEMPS|5.006000|5.006000|Vn +HAS_MKTIME|5.003007|5.003007|Vn +HAS_MMAP|5.006000|5.006000|Vn +HAS_MODFL|5.006001|5.006001|Vn +HAS_MODFL_PROTO|5.009003|5.009003|Vn +HAS_MPROTECT|5.006000|5.006000|Vn +HAS_MSG|5.003007|5.003007|Vn +HAS_MSYNC|5.006000|5.006000|Vn +HAS_MUNMAP|5.006000|5.006000|Vn +HAS_NAN|5.021006|5.021006|Vn +HAS_NANOSLEEP|5.027006|5.027006|Vn +HAS_NEARBYINT|5.021006|5.021006|Vn +HAS_NEWLOCALE|5.023009|5.023009|Vn +HAS_NEXTAFTER|5.021006|5.021006|Vn +HAS_NEXTTOWARD|5.021006|5.021006|Vn +HAS_NICE|5.003007|5.003007|Vn +HAS_NL_LANGINFO|5.007002|5.007002|Vn +HAS_NL_LANGINFO_L|5.035001|5.035001|Vn +HAS_NON_INT_BITFIELDS|5.035001|5.035001|Vn +HAS_NONLATIN1_FOLD_CLOSURE|5.033005||Viu +HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE|5.033005||Viu +HAS_NTOHL|5.003007|5.003007|Vn +HAS_NTOHS|5.003007|5.003007|Vn +HAS_OFF64_T|5.010000|5.010000|Vn +HAS_OPEN3|5.003007|5.003007|Vn +HAS_OPENAT|5.027004|5.027004|Vn +HAS_PASSWD|5.003007||Viu +HAS_PATHCONF|5.003007|5.003007|Vn +HAS_PAUSE|5.003007|5.003007|Vn +HAS_PIPE2|5.027008|5.027008|Vn +HAS_PIPE|5.003007|5.003007|Vn +HAS_POLL|5.003007|5.003007|Vn +HAS_POSIX_2008_LOCALE|5.027003||Viu +HAS_PRCTL|5.013000|5.013000|Vn +HAS_PRCTL_SET_NAME|5.013000|5.013000|Vn +HAS_PROCSELFEXE|5.007003|5.007003|Vn +HAS_PTHREAD_ATFORK|5.010000|5.010000|Vn +HAS_PTHREAD_ATTR_SETSCOPE|5.008001|5.008001|Vn +HAS_PTHREAD_UNCHECKED_GETSPECIFIC_NP|5.007002||Viu +HAS_PTHREAD_YIELD|5.009005|5.009005|Vn +HAS_PTRDIFF_T|5.021001|5.021001|Vn +HAS_QUAD|5.003007|5.003007|Vn +HAS_RANDOM_R|5.010000|5.010000|Vn +HAS_READDIR|5.003007|5.003007|Vn +HAS_READDIR64_R|5.010000|5.010000|Vn +HAS_READDIR_R|5.010000|5.010000|Vn +HAS_READLINK|5.003007|5.003007|Vn +HAS_READV|5.007001|5.007001|Vn +HAS_RECVMSG|5.007001|5.007001|Vn +HAS_REGCOMP|5.021007|5.021007|Vn +HAS_REMAINDER|5.021006|5.021006|Vn +HAS_REMQUO|5.021006|5.021006|Vn +HAS_RENAME|5.003007|5.003007|Vn +HAS_RENAMEAT|5.027004|5.027004|Vn +HAS_REWINDDIR|5.003007|5.003007|Vn +HAS_RINT|5.021006|5.021006|Vn +HAS_RMDIR|5.003007|5.003007|Vn +HAS_ROUND|5.021006|5.021006|Vn +HAS_SBRK_PROTO|5.007001|5.007001|Vn +HAS_SCALBN|5.021006|5.021006|Vn +HAS_SCALBNL|5.008001|5.008001|Vn +HAS_SCHED_YIELD|5.005000|5.005000|Vn +HAS_SCX_AUX_TABLES|5.027008||Viu +HAS_SEEKDIR|5.003007|5.003007|Vn +HAS_SELECT|5.003007|5.003007|Vn +HAS_SEM|5.003007|5.003007|Vn +HAS_SENDMSG|5.007001|5.007001|Vn +HAS_SETEGID|5.003007|5.003007|Vn +HAS_SETEUID|5.003007|5.003007|Vn +HAS_SETGRENT|5.005000|5.005000|Vn +HAS_SETGROUPS|5.004000|5.004000|Vn +HAS_SETHOSTENT|5.005000|5.005000|Vn +HAS_SETITIMER|5.007001|5.007001|Vn +HAS_SETLINEBUF|5.003007|5.003007|Vn +HAS_SETLOCALE|5.003007|5.003007|Vn +HAS_SETNETENT|5.005000|5.005000|Vn +HAS_SETPGID|5.003007|5.003007|Vn +HAS_SETPGRP|5.003007|5.003007|Vn +HAS_SETPRIORITY|5.003007|5.003007|Vn +HAS_SETPROTOENT|5.005000|5.005000|Vn +HAS_SETPWENT|5.005000|5.005000|Vn +HAS_SETREGID|5.003007|5.003007|Vn +HAS_SETRESGID|5.003007|5.003007|Vn +HAS_SETRESGID_PROTO|5.010000|5.010000|Vn +HAS_SETRESUID|5.003007|5.003007|Vn +HAS_SETRESUID_PROTO|5.010000|5.010000|Vn +HAS_SETREUID|5.003007|5.003007|Vn +HAS_SETSERVENT|5.005000|5.005000|Vn +HAS_SETSID|5.003007|5.003007|Vn +HAS_SETVBUF|5.005000|5.005000|Vn +HAS_SHM|5.003007|5.003007|Vn +HAS_SHMAT_PROTOTYPE|5.003007|5.003007|Vn +HAS_SIGACTION|5.003007|5.003007|Vn +HAS_SIGINFO_SI_ADDR|5.023008|5.023008|Vn +HAS_SIGINFO_SI_BAND|5.023008|5.023008|Vn +HAS_SIGINFO_SI_ERRNO|5.023008|5.023008|Vn +HAS_SIGINFO_SI_PID|5.023008|5.023008|Vn +HAS_SIGINFO_SI_STATUS|5.023008|5.023008|Vn +HAS_SIGINFO_SI_UID|5.023008|5.023008|Vn +HAS_SIGINFO_SI_VALUE|5.023008|5.023008|Vn +HAS_SIGNBIT|5.009005|5.009005|Vn +HAS_SIGPROCMASK|5.007001|5.007001|Vn +HAS_SIGSETJMP|5.003007|5.003007|Vn +HAS_SIN6_SCOPE_ID|5.013009|5.013009|Vn +HAS_SKIP_LOCALE_INIT|5.019002||Viu +HAS_SNPRINTF|5.009003|5.009003|Vn +HAS_SOCKADDR_IN6|5.015008|5.015008|Vn +HAS_SOCKADDR_STORAGE|5.032001|5.032001|Vn +HAS_SOCKATMARK|5.007001|5.007001|Vn +HAS_SOCKATMARK_PROTO|5.007002|5.007002|Vn +HAS_SOCKET|5.003007|5.003007|Vn +HAS_SOCKETPAIR|5.003007|5.003007|Vn +HAS_SQRTL|5.006000|5.006000|Vn +HAS_SRAND48_R|5.010000|5.010000|Vn +HAS_SRANDOM_R|5.010000|5.010000|Vn +HAS_STAT|5.021007|5.021007|Vn +HAS_STATIC_INLINE|5.013004|5.013004|Vn +HAS_STRCOLL|5.003007|5.003007|Vn +HAS_STRERROR_L|5.025002|5.025002|Vn +HAS_STRERROR_R|5.010000|5.010000|Vn +HAS_STRFTIME|5.007002|5.007002|Vn +HAS_STRNLEN|5.027006|5.027006|Vn +HAS_STRTOD|5.004000|5.004000|Vn +HAS_STRTOD_L|5.027011|5.027011|Vn +HAS_STRTOL|5.004000|5.004000|Vn +HAS_STRTOLD|5.006000|5.006000|Vn +HAS_STRTOLD_L|5.027006|5.027006|Vn +HAS_STRTOLL|5.006000|5.006000|Vn +HAS_STRTOQ|5.007001|5.007001|Vn +HAS_STRTOUL|5.004000|5.004000|Vn +HAS_STRTOULL|5.006000|5.006000|Vn +HAS_STRTOUQ|5.006000|5.006000|Vn +HAS_STRUCT_CMSGHDR|5.007001|5.007001|Vn +HAS_STRUCT_MSGHDR|5.007001|5.007001|Vn +HAS_STRUCT_STATFS|5.023005|5.023005|Vn +HAS_STRUCT_STATFS_F_FLAGS|5.023005|5.023005|Vn +HAS_STRXFRM|5.003007|5.003007|Vn +HAS_STRXFRM_L|5.035001|5.035001|Vn +HAS_SYMLINK|5.003007|5.003007|Vn +HAS_SYSCALL|5.003007|5.003007|Vn +HAS_SYSCALL_PROTO|5.007002|5.007002|Vn +HAS_SYSCONF|5.003007|5.003007|Vn +HAS_SYS_ERRLIST|5.003007|5.003007|Vn +HAS_SYSTEM|5.003007|5.003007|Vn +HAS_TC_AUX_TABLES|5.027011||Viu +HAS_TCGETPGRP|5.003007|5.003007|Vn +HAS_TCSETPGRP|5.003007|5.003007|Vn +HAS_TELLDIR|5.003007|5.003007|Vn +HAS_TELLDIR_PROTO|5.006000|5.006000|Vn +HAS_TGAMMA|5.021006|5.021006|Vn +HAS_THREAD_SAFE_NL_LANGINFO_L|5.027006|5.027006|Vn +HAS_TIME|5.008000|5.008000|Vn +HAS_TIMEGM|5.010001|5.010001|Vn +HAS_TIMES|5.003007|5.003007|Vn +HAS_TMPNAM_R|5.010000|5.010000|Vn +HAS_TM_TM_GMTOFF|5.008001|5.008001|Vn +HAS_TM_TM_ZONE|5.008000|5.008000|Vn +HAS_TOWLOWER|5.029009|5.029009|Vn +HAS_TOWUPPER|5.029009|5.029009|Vn +HAS_TRUNC|5.021006|5.021006|Vn +HAS_TRUNCATE|5.003007|5.003007|Vn +HAS_TRUNCL|5.021004|5.021004|Vn +HAS_TTYNAME_R|5.010000|5.010000|Vn +HAS_TZNAME|5.003007|5.003007|Vn +HAS_UALARM|5.007001|5.007001|Vn +HAS_UC_AUX_TABLES|5.027011||Viu +HAS_UMASK|5.003007|5.003007|Vn +HAS_UNAME|5.003007|5.003007|Vn +HAS_UNLINKAT|5.027004|5.027004|Vn +HAS_UNSETENV|5.009003|5.009003|Vn +HAS_USELOCALE|5.023009|5.023009|Vn +HAS_USLEEP|5.007001|5.007001|Vn +HAS_USLEEP_PROTO|5.007002|5.007002|Vn +HAS_USTAT|5.023005|5.023005|Vn +HAS_UTIME|5.003007||Viu +HAS_VSNPRINTF|5.009003|5.009003|Vn +HAS_WAIT4|5.003007|5.003007|Vn +HAS_WAIT|5.003007||Viu +HAS_WAITPID|5.003007|5.003007|Vn +HAS_WCRTOMB|5.031007|5.031007|Vn +HAS_WCSCMP|5.021001|5.021001|Vn +HAS_WCSTOMBS|5.003007|5.003007|Vn +HAS_WCSXFRM|5.021001|5.021001|Vn +HAS_WCTOMB|5.003007|5.003007|Vn +HAS_WRITEV|5.007001|5.007001|Vn +he_dup|5.007003|5.007003|u +HEf_SVKEY|5.003007|5.003007|p +HeHASH|5.003007|5.003007| +HEK_BASESIZE|5.004000||Viu +hek_dup|5.009000|5.009000|u +HeKEY|5.003007|5.003007| +HeKEY_hek|5.004000||Viu +HeKEY_sv|5.004000||Viu +HEKf256|5.015004||Viu +HEKf|5.015004||Viu +HEKfARG|5.015004||Viu +HEK_FLAGS|5.008000||Viu +HeKFLAGS|5.008000||Viu +HEK_HASH|5.004000||Viu +HEK_KEY|5.004000||Viu +HeKLEN|5.003007|5.003007| +HEK_LEN|5.004000||Viu +HeKLEN_UTF8|5.007001||Viu +HEK_UTF8|5.007001||Viu +HeKUTF8|5.007001||Viu +HEK_UTF8_off|5.008000||Viu +HEK_UTF8_on|5.008000||Viu +HEK_WASUTF8|5.008000||Viu +HeKWASUTF8|5.008000||Viu +HEK_WASUTF8_off|5.008000||Viu +HEK_WASUTF8_on|5.008000||Viu +HeNEXT|5.003007||Viu +HePV|5.004000|5.004000| +HeSVKEY|5.003007|5.003007| +HeSVKEY_force|5.003007|5.003007| +HeSVKEY_set|5.004000|5.004000| +HE_SVSLOT|5.009003||Viu +HeUTF8|5.010001|5.008000|p +HeVAL|5.003007|5.003007| +hfree_next_entry|||iu +HIGHEST_ANYOF_HRx_BYTE|5.031002||Viu +HIGHEST_CASE_CHANGING_CP|5.033005||Viu +HINT_ALL_STRICT|5.033002||Viu +HINT_BLOCK_SCOPE|5.003007||Viu +HINT_BYTES|5.007002||Viu +HINT_EXPLICIT_STRICT_REFS|5.016000||Viu +HINT_EXPLICIT_STRICT_SUBS|5.016000||Viu +HINT_EXPLICIT_STRICT_VARS|5.016000||Viu +HINT_FEATURE_MASK|5.015007||Viu +HINT_FEATURE_SHIFT|5.015007||Viu +HINT_FILETEST_ACCESS|5.006000||Viu +HINT_INTEGER|5.003007||Viu +HINT_LEXICAL_IO_IN|5.009005||Viu +HINT_LEXICAL_IO_OUT|5.009005||Viu +HINT_LOCALE|5.004000||Viu +HINT_LOCALE_PARTIAL|5.021001||Viu +HINT_LOCALIZE_HH|5.005000||Viu +HINT_NEW_BINARY|5.005000||Viu +HINT_NEW_FLOAT|5.005000||Viu +HINT_NEW_INTEGER|5.005000||Viu +HINT_NEW_RE|5.005000||Viu +HINT_NEW_STRING|5.005000||Viu +HINT_NO_AMAGIC|5.010001||Viu +HINT_RE_EVAL|5.005000||Viu +HINT_RE_FLAGS|5.013007||Viu +HINT_RE_TAINT|5.004005||Viu +HINTS_DEFAULT|5.033002||Viu +HINT_SORT_STABLE|5.007003||Viu +HINT_SORT_UNSTABLE|5.027004||Viu +HINTS_REFCNT_INIT|5.009004||Viu +HINTS_REFCNT_LOCK|5.009004||Viu +HINTS_REFCNT_TERM|5.009004||Viu +HINTS_REFCNT_UNLOCK|5.009004||Viu +HINT_STRICT_REFS|5.003007||Viu +HINT_STRICT_SUBS|5.003007||Viu +HINT_STRICT_VARS|5.003007||Viu +HINT_UNI_8_BIT|5.011002||Viu +HINT_UTF8|5.006000||Viu +H_PERL|5.003007||Viu +HS_APIVERLEN_MAX|5.021006||Viu +HS_CXT|5.021006||Viu +HSf_IMP_CXT|5.021006||Viu +HSf_NOCHK|5.021006||Viu +HSf_POPMARK|5.021006||Viu +HSf_SETXSUBFN|5.021006||Viu +HS_GETAPIVERLEN|5.021006||Viu +HS_GETINTERPSIZE|5.021006||Viu +HS_GETXSVERLEN|5.021006||Viu +HS_KEY|5.021006||Viu +HS_KEYp|5.021006||Viu +HSm_APIVERLEN|5.021006||Viu +HSm_INTRPSIZE|5.021006||Viu +HSm_KEY_MATCH|5.021006||Viu +HSm_XSVERLEN|5.021006||Viu +hsplit|5.005000||Viu +HS_XSVERLEN_MAX|5.021006||Viu +htoni|5.003007||Viu +htonl|5.003007||Viu +htons|5.003007||Viu +htovl|5.003007||Viu +htovs|5.003007||Viu +HvAMAGIC|5.017000||Viu +HvAMAGIC_off|5.017000||Viu +HvAMAGIC_on|5.017000||Viu +HvARRAY|5.003007||Viu +hv_assert|5.008009|5.008009| +HvAUX|5.009003||Viu +HvAUXf_NO_DEREF|5.019010||Viu +HvAUXf_SCAN_STASH|5.019010||Viu +hv_auxinit|5.009003||Viu +hv_auxinit_internal|5.019010||Vniu +hv_backreferences_p|||xiu +hv_bucket_ratio|5.025003|5.025003|x +hv_clear|5.003007|5.003007| +hv_clear_placeholders|5.009001|5.009001| +hv_common|5.010000||cVu +hv_common_key_len|5.010000||cVu +hv_copy_hints_hv|5.009004|5.009004| +hv_delayfree_ent|5.004000|5.004000|u +hv_delete|5.003007|5.003007| +HV_DELETE|5.009005||Viu +hv_delete_common|5.009001||xViu +hv_delete_ent|5.003007|5.003007| +hv_deletehek|5.019006||Viu +hv_deletes|5.025006||Viu +HV_DISABLE_UVAR_XKEY|5.010000||Viu +HvEITER|5.003007||Viu +HvEITER_get|5.009003||Viu +hv_eiter_p|5.009003|5.009003|u +hv_eiter_set|5.009003|5.009003|u +HvEITER_set|5.009003||Viu +HvENAME|5.013007|5.013007| +hv_ename_add|5.013007||Vi +hv_ename_delete|5.013007||Vi +HvENAME_get|5.013007||Viu +HvENAME_HEK|5.013007||Viu +HvENAME_HEK_NN|5.013007||Viu +HvENAMELEN|5.015004|5.015004| +HvENAMELEN_get|5.013007||Viu +HvENAMEUTF8|5.015004|5.015004| +hv_exists|5.003007|5.003007| +hv_exists_ent|5.003007|5.003007| +hv_existss|5.025006||Viu +hv_fetch|5.003007|5.003007| +HV_FETCH_EMPTY_HE|5.013007||Viu +hv_fetch_ent|5.003007|5.003007| +hv_fetchhek|5.019006||Viu +HV_FETCH_ISEXISTS|5.009005||Viu +HV_FETCH_ISSTORE|5.009005||Viu +HV_FETCH_JUST_SV|5.009005||Viu +HV_FETCH_LVALUE|5.009005||Viu +hv_fetchs|5.009003|5.003007|p +HvFILL|5.003007|5.003007| +hv_fill|5.013002|5.013002| +hv_free_ent|5.004000|5.004000|u +hv_free_ent_ret|5.015000||Viu +hv_free_entries|5.027002||Viu +HvHASKFLAGS|5.008000||Viu +HvHASKFLAGS_off|5.008000||Viu +HvHASKFLAGS_on|5.008000||Viu +HVhek_ENABLEHVKFLAGS|5.008002||Viu +HVhek_FREEKEY|5.008000||Viu +HVhek_KEYCANONICAL|5.010001||Viu +HVhek_MASK|5.008000||Viu +HVhek_PLACEHOLD|5.008000||Viu +HVhek_UNSHARED|5.009004||Viu +HVhek_UTF8|5.008000||Viu +HVhek_WASUTF8|5.008000||Viu +hv_iterinit|5.003007|5.003007| +hv_iterkey|5.003007|5.003007| +hv_iterkeysv|5.003007|5.003007| +hv_iternext|5.003007|5.003007| +hv_iternext_flags|5.008000|5.008000|x +hv_iternextsv|5.003007|5.003007| +HV_ITERNEXT_WANTPLACEHOLDERS|5.008000|5.008000| +hv_iterval|5.003007|5.003007| +HvKEYS|5.003007||Viu +hv_kill_backrefs|||xiu +hv_ksplit|5.003007|5.003007|u +HvLASTRAND_get|5.017011||Viu +HvLAZYDEL|5.003007||Viu +HvLAZYDEL_off|5.003007||Viu +HvLAZYDEL_on|5.003007||Viu +hv_magic|5.003007|5.003007| +hv_magic_check|5.006000||Vniu +HvMAX|5.003007||Viu +HvMROMETA|5.010001|5.010001| +HvNAME|5.003007|5.003007| +HvNAME_get|5.009003||pcV +HvNAME_HEK|5.009003||Viu +HvNAME_HEK_NN|5.013007||Viu +HvNAMELEN|5.015004|5.015004| +HvNAMELEN_get|5.009003|5.003007|p +hv_name_set|5.009003|5.009003|u +HV_NAME_SETALL|5.013008||Viu +hv_name_sets|5.025006||Viu +HvNAMEUTF8|5.015004|5.015004| +hv_notallowed|5.008000||Viu +HvPLACEHOLDERS|5.007003||Viu +hv_placeholders_get|5.009003|5.009003|u +HvPLACEHOLDERS_get|5.009003||Viu +hv_placeholders_p|||ciu +hv_placeholders_set|5.009003|5.009003|u +HvPLACEHOLDERS_set|5.009003||Viu +hv_pushkv|5.027003||Viu +HvRAND_get|5.017011||Viu +hv_rand_set|5.018000|5.018000|u +HVrhek_delete|5.009004||Viu +HVrhek_IV|5.009004||Viu +HVrhek_PV|5.009004||Viu +HVrhek_PV_UTF8|5.009005||Viu +HVrhek_typemask|5.009004||Viu +HVrhek_undef|5.009004||Viu +HVrhek_UV|5.009004||Viu +HvRITER|5.003007||Viu +HvRITER_get|5.009003||Viu +hv_riter_p|5.009003|5.009003|u +hv_riter_set|5.009003|5.009003|u +HvRITER_set|5.009003||Viu +hv_scalar|5.009001|5.009001| +HvSHAREKEYS|5.003007||Viu +HvSHAREKEYS_off|5.003007||Viu +HvSHAREKEYS_on|5.003007||Viu +hv_store|5.003007|5.003007| +hv_store_ent|5.003007|5.003007| +hv_store_flags|5.008000|5.008000|xu +hv_storehek|5.019006||Viu +hv_stores|5.009004|5.003007|p +HvTOTALKEYS|5.007003||Viu +hv_undef|5.003007|5.003007| +hv_undef_flags|||ciu +HvUSEDKEYS|5.007003||Viu +HYPHEN_UTF8|5.017004||Viu +I16_MAX|5.003007||Viu +I16_MIN|5.003007||Viu +I16SIZE|5.006000|5.006000|Vn +I16TYPE|5.006000|5.006000|Vn +I_32|5.006000|5.003007| +I32_MAX|5.003007||Viu +I32_MAX_P1|5.007002||Viu +I32_MIN|5.003007||Viu +I32SIZE|5.006000|5.006000|Vn +I32TYPE|5.006000|5.006000|Vn +I64SIZE|5.006000|5.006000|Vn +I64TYPE|5.006000|5.006000|Vn +I8SIZE|5.006000|5.006000|Vn +I8_TO_NATIVE|5.015006||Viu +I8_TO_NATIVE_UTF8|5.019004||Viu +I8TYPE|5.006000|5.006000|Vn +I_ARPA_INET|5.005000|5.005000|Vn +ibcmp|5.003007|5.003007| +ibcmp_locale|5.004000|5.004000| +ibcmp_utf8|5.007003|5.007003| +I_CRYPT|5.008000|5.008000|Vn +I_DBM|5.032001|5.032001|Vn +I_DIRENT|5.003007|5.003007|Vn +I_DLFCN|5.003007|5.003007|Vn +I_EXECINFO|5.021001|5.021001|Vn +I_FENV|5.021004|5.021004|Vn +IFMATCH|5.003007||Viu +IFMATCH_A|5.009005||Viu +IFMATCH_A_fail|5.009005||Viu +IFMATCH_A_fail_t8_p8|5.033003||Viu +IFMATCH_A_fail_t8_pb|5.033003||Viu +IFMATCH_A_fail_tb_p8|5.033003||Viu +IFMATCH_A_fail_tb_pb|5.033003||Viu +IFMATCH_A_t8_p8|5.033003||Viu +IFMATCH_A_t8_pb|5.033003||Viu +IFMATCH_A_tb_p8|5.033003||Viu +IFMATCH_A_tb_pb|5.033003||Viu +IFMATCH_t8_p8|5.033003||Viu +IFMATCH_t8_pb|5.033003||Viu +IFMATCH_tb_p8|5.033003||Viu +IFMATCH_tb_pb|5.033003||Viu +IFTHEN|5.005000||Viu +IFTHEN_t8_p8|5.033003||Viu +IFTHEN_t8_pb|5.033003||Viu +IFTHEN_tb_p8|5.033003||Viu +IFTHEN_tb_pb|5.033003||Viu +I_GDBM|5.021007|5.021007|Vn +I_GDBMNDBM|5.021007|5.021007|Vn +IGNORE_PAT_MOD|5.009005||Viu +I_GRP|5.003007|5.003007|Vn +I_INTTYPES|5.006000|5.006000|Vn +I_LANGINFO|5.007002|5.007002|Vn +I_LIMITS|5.003007||Viu +ILLEGAL_UTF8_BYTE|5.019004||Viu +I_LOCALE|5.003007|5.003007|Vn +I_MNTENT|5.023005|5.023005|Vn +IN_BYTES|5.007002||Viu +incline|5.005000||Viu +INCLUDE_PROTOTYPES|5.007001||Viu +INCMARK|5.023005||Viu +incpush|5.005000||Viu +INCPUSH_APPLLIB_EXP|5.027006||Viu +INCPUSH_APPLLIB_OLD_EXP|5.027006||Viu +INCPUSH_ARCHLIB_EXP|5.027006||Viu +incpush_if_exists|5.009003||Viu +INCPUSH_PERL5LIB|5.027006||Viu +INCPUSH_PERL_OTHERLIBDIRS|5.027006||Viu +INCPUSH_PERL_OTHERLIBDIRS_ARCHONLY|5.027006||Viu +INCPUSH_PERL_VENDORARCH_EXP|5.027006||Viu +INCPUSH_PERL_VENDORLIB_EXP|5.027006||Viu +INCPUSH_PERL_VENDORLIB_STEM|5.027006||Viu +INCPUSH_PRIVLIB_EXP|5.027006||Viu +INCPUSH_SITEARCH_EXP|5.027006||Viu +INCPUSH_SITELIB_EXP|5.027006||Viu +INCPUSH_SITELIB_STEM|5.027006||Viu +incpush_use_sep|5.011000||Viu +I_NDBM|5.032001|5.032001|Vn +inet_addr|5.005000||Viu +I_NETDB|5.005000|5.005000|Vn +I_NETINET_IN|5.003007|5.003007|Vn +I_NETINET_TCP|5.006000|5.006000|Vn +inet_ntoa|5.005000||Viu +INFNAN_NV_U8_DECL|5.023000||Viu +INFNAN_U8_NV_DECL|5.023000||Viu +ingroup|5.003007||Viu +INIT|5.003007||Viu +init_argv_symbols|5.007003||Viu +init_constants|5.017003||Viu +init_dbargs|||iu +init_debugger|5.005000||Viu +init_i18nl10n|5.006000||cVu +init_i18nl14n|5.006000||dcVu +initialize_invlist_guts|5.029002||Viu +init_ids|5.005000||Viu +init_interp|5.005000||Viu +init_main_stash|5.005000||Viu +init_named_cv|5.027010||cViu +init_os_extras|5.005000||Viu +init_perllib|5.005000||Viu +init_postdump_symbols|5.005000||Viu +init_predump_symbols|5.005000||Viu +init_stacks|5.005000|5.005000|u +INIT_THREADS|5.005000||Viu +init_tm|5.007002|5.007002|u +INIT_TRACK_MEMPOOL|5.009004||Viu +init_uniprops|5.027011||Viu +IN_LC|5.021001||Viu +IN_LC_ALL_COMPILETIME|5.021001||Viu +IN_LC_ALL_RUNTIME|5.021001||Viu +IN_LC_COMPILETIME|5.021001||Viu +IN_LC_PARTIAL_COMPILETIME|5.021001||Viu +IN_LC_PARTIAL_RUNTIME|5.021001||Viu +IN_LC_RUNTIME|5.021001||Viu +IN_LOCALE|5.007002|5.004000|p +IN_LOCALE_COMPILETIME|5.007002|5.004000|p +IN_LOCALE_RUNTIME|5.007002|5.004000|p +IN_PERL_COMPILETIME|5.008001|5.003007|p +IN_PERL_RUNTIME|5.008001|5.008001| +inplace_aassign|5.015003||Viu +inRANGE|5.029010||Viu +inRANGE_helper|5.033005||Viu +IN_SOME_LOCALE_FORM|5.015008||Viu +IN_SOME_LOCALE_FORM_COMPILETIME|5.015008||Viu +IN_SOME_LOCALE_FORM_RUNTIME|5.015008||Viu +instr|5.003007|5.003007|n +INSUBP|5.009005||Viu +INSUBP_t8_p8|5.033003||Viu +INSUBP_t8_pb|5.033003||Viu +INSUBP_tb_p8|5.033003||Viu +INSUBP_tb_pb|5.033003||Viu +INT16_C|5.003007|5.003007| +INT2PTR|5.006000|5.003007|p +INT32_C|5.003007|5.003007| +INT32_MIN|5.007002||Viu +INT64_C|5.023002|5.023002| +INT64_MIN|5.007002||Viu +INT_64_T|5.011000||Viu +INTMAX_C|5.003007|5.003007| +INT_PAT_MODS|5.009005||Viu +intro_my|5.004000|5.004000| +INTSIZE|5.003007|5.003007|Vn +intuit_method|5.005000||Viu +intuit_more|5.003007||Viu +IN_UNI_8_BIT|5.011002||Viu +IN_UTF8_CTYPE_LOCALE|5.019009||Viu +_inverse_folds|5.027011||cViu +invert|5.003007||Viu +invlist_array|5.013010||Vniu +_invlist_array_init|5.015001||Vniu +invlist_clear|5.023009||Viu +invlist_clone|5.015001||cViu +_invlist_contains_cp|5.017003||Vniu +invlist_contents|5.023008||Viu +_invlist_dump|5.019003||cViu +_invlistEQ|5.023006||cViu +invlist_extend|5.013010||Viu +invlist_highest|5.017002||Vniu +_invlist_intersection|5.015001||Viu +_invlist_intersection_maybe_complement_2nd|5.015008||cViu +_invlist_invert|5.015001||cViu +invlist_is_iterating|5.017008||Vniu +invlist_iterfinish|5.017008||Vniu +invlist_iterinit|5.015001||Vniu +invlist_iternext|5.015001||Vniu +_invlist_len|5.017004||Vniu +invlist_lowest|5.031007||xVniu +invlist_max|5.013010||Vniu +invlist_previous_index|5.017004||Vniu +invlist_replace_list_destroys_src|5.023009||Viu +_invlist_search|5.017003||cVniu +invlist_set_len|5.013010||Viu +invlist_set_previous_index|5.017004||Vniu +_invlist_subtract|5.015001||Viu +invlist_trim|5.013010||Vniu +_invlist_union|5.015001||cVu +_invlist_union_maybe_complement_2nd|5.015008||cViu +invmap_dump|5.031006||Viu +invoke_exception_hook|5.013001||Viu +IoANY|5.006001||Viu +IoBOTTOM_GV|5.003007||Viu +IoBOTTOM_NAME|5.003007||Viu +io_close|5.003007||Viu +IOCPARM_LEN|5.003007||Viu +ioctl|5.005000||Viu +IoDIRP|5.003007||Viu +IOf_ARGV|5.003007||Viu +IOf_DIDTOP|5.003007||Viu +IOf_FAKE_DIRP|5.006000||Viu +IOf_FLUSH|5.003007||Viu +IoFLAGS|5.003007||Viu +IoFMT_GV|5.003007||Viu +IoFMT_NAME|5.003007||Viu +IOf_NOLINE|5.005003||Viu +IOf_START|5.003007||Viu +IOf_UNTAINT|5.003007||Viu +IoIFP|5.003007||Viu +IoLINES|5.003007||Viu +IoLINES_LEFT|5.003007||Viu +IoOFP|5.003007||Viu +IoPAGE|5.003007||Viu +IoPAGE_LEN|5.003007||Viu +IoTOP_GV|5.003007||Viu +IoTOP_NAME|5.003007||Viu +IoTYPE|5.003007||Viu +IoTYPE_APPEND|5.006001||Viu +IoTYPE_CLOSED|5.006001||Viu +IoTYPE_IMPLICIT|5.008001||Viu +IoTYPE_NUMERIC|5.008001||Viu +IoTYPE_PIPE|5.006001||Viu +IoTYPE_RDONLY|5.006001||Viu +IoTYPE_RDWR|5.006001||Viu +IoTYPE_SOCKET|5.006001||Viu +IoTYPE_STD|5.006001||Viu +IoTYPE_WRONLY|5.006001||Viu +I_POLL|5.006000|5.006000|Vn +I_PTHREAD|5.005003|5.005003|Vn +I_PWD|5.003007|5.003007|Vn +isALNUM|5.003007|5.003007|p +isALNUM_A|5.031003|5.003007|p +isALNUMC|5.006000|5.003007|p +isALNUMC_A|5.013006|5.003007|p +isALNUMC_L1|5.013006|5.003007|p +isALNUMC_LC|5.006000|5.006000| +isALNUMC_LC_utf8_safe|5.031007||Viu +isALNUMC_LC_uvchr|5.017007|5.017007| +isALNUMC_uni|5.017007||Viu +isALNUMC_utf8|5.017007||Viu +isALNUMC_utf8_safe|5.031007||Viu +isALNUM_lazy_if_safe|5.031007||Viu +isALNUM_LC|5.004000|5.004000| +isALNUM_LC_utf8|5.006000||Viu +isALNUM_LC_utf8_safe|5.031007||Viu +isALNUM_LC_uvchr|5.007001|5.007001| +isALNUMU|5.011005||Viu +isALNUM_uni|5.006000||Viu +isALNUM_utf8|5.006000||Viu +isALNUM_utf8_safe|5.031007||Viu +isa_lookup|5.005000||Viu +isALPHA|5.003007|5.003007|p +isALPHA_A|5.013006|5.003007|p +isALPHA_FOLD_EQ|5.021004||Viu +isALPHA_FOLD_NE|5.021004||Viu +isALPHA_L1|5.013006|5.003007|p +isALPHA_LC|5.004000|5.004000| +isALPHA_LC_utf8|5.006000||Viu +isALPHA_LC_utf8_safe|5.025009|5.006000|p +isALPHA_LC_uvchr|5.007001|5.007001| +isALPHANUMERIC|5.017008|5.003007|p +isALPHANUMERIC_A|5.017008|5.003007|p +isALPHANUMERIC_L1|5.017008|5.003007|p +isALPHANUMERIC_LC|5.017008|5.004000|p +isALPHANUMERIC_LC_utf8|5.017008||Viu +isALPHANUMERIC_LC_utf8_safe|5.025009|5.006000|p +isALPHANUMERIC_LC_uvchr|5.017008|5.017008| +isALPHANUMERIC_uni|5.017008||Viu +isALPHANUMERIC_utf8|5.031005|5.031005| +isALPHANUMERIC_utf8_safe|5.025009|5.006000|p +isALPHANUMERIC_uvchr|5.023009|5.006000|p +isALPHAU|5.011005||Viu +isALPHA_uni|5.006000||Viu +isALPHA_utf8|5.031005|5.031005| +isALPHA_utf8_safe|5.025009|5.006000|p +isALPHA_uvchr|5.023009|5.006000|p +is_an_int|5.005000||Viu +is_ANYOF_SYNTHETIC|5.019009||Viu +IS_ANYOF_TRIE|5.009005||Viu +isASCII|5.006000|5.003007|p +isASCII_A|5.013006|5.003007|p +isASCII_L1|5.015004|5.003007|p +isASCII_LC|5.015008|5.003007|p +isASCII_LC_utf8|5.017007||Viu +isASCII_LC_utf8_safe|5.025009|5.025009| +isASCII_LC_uvchr|5.017007|5.017007| +is_ascii_string|5.011000|5.011000|n +isASCII_uni|5.006000||Viu +isASCII_utf8|5.031005|5.031005| +isASCII_utf8_safe|5.025009|5.003007|p +isASCII_uvchr|5.023009|5.003007|p +isatty|5.005000||Viu +ISA_VERSION_OBJ|5.019008||Viu +isBLANK|5.006001|5.003007|p +isBLANK_A|5.013006|5.003007|p +isBLANK_L1|5.013006|5.003007|p +isBLANK_LC|5.006001|5.003007|p +isBLANK_LC_uni|5.006001||Viu +isBLANK_LC_utf8|5.006001||Viu +isBLANK_LC_utf8_safe|5.025009|5.006000|p +isBLANK_LC_uvchr|5.017007|5.017007| +isBLANK_uni|5.006001||Viu +isBLANK_utf8|5.031005|5.031005| +isBLANK_utf8_safe|5.025009|5.006000|p +isBLANK_uvchr|5.023009|5.006000|p +isC9_STRICT_UTF8_CHAR|5.025005|5.025005|n +is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks|5.025005||Viu +is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part0|5.025008||Viu +is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part1|5.025008||Viu +is_c9strict_utf8_string|5.025006|5.025006|n +is_c9strict_utf8_string_loc|5.025006|5.025006|n +is_c9strict_utf8_string_loclen|5.025006|5.025006|n +isCHARNAME_CONT|5.011005||Viu +isCNTRL|5.006000|5.003007|p +isCNTRL_A|5.013006|5.003007|p +isCNTRL_L1|5.013006|5.003007|p +isCNTRL_LC|5.006000|5.006000| +isCNTRL_LC_utf8|5.006000||Viu +isCNTRL_LC_utf8_safe|5.025009|5.006000|p +isCNTRL_LC_uvchr|5.007001|5.007001| +isCNTRL_uni|5.006000||Viu +isCNTRL_utf8|5.031005|5.031005| +isCNTRL_utf8_safe|5.025009|5.006000|p +isCNTRL_uvchr|5.023009|5.006000|p +_is_cur_LC_category_utf8|5.021001||cVu +isDEBUG_WILDCARD|5.031011||Viu +isDIGIT|5.003007|5.003007|p +isDIGIT_A|5.013006|5.003007|p +isDIGIT_L1|5.013006|5.003007|p +isDIGIT_LC|5.004000|5.004000| +isDIGIT_LC_utf8|5.006000||Viu +isDIGIT_LC_utf8_safe|5.025009|5.006000|p +isDIGIT_LC_uvchr|5.007001|5.007001| +isDIGIT_uni|5.006000||Viu +isDIGIT_utf8|5.031005|5.031005| +isDIGIT_utf8_safe|5.025009|5.006000|p +isDIGIT_uvchr|5.023009|5.006000|p +isEXACTFish|5.033003||Viu +isEXACT_REQ8|5.033003||Viu +isFF_OVERLONG|5.025007||Vniu +is_FOLDS_TO_MULTI_utf8|5.019009||Viu +isFOO_lc|5.017007||Viu +isFOO_utf8_lc|5.017008||Viu +isGCB|5.021009||Viu +isGRAPH|5.006000|5.003007|p +isGRAPH_A|5.013006|5.003007|p +is_grapheme|5.031007||Viu +isGRAPH_L1|5.013006|5.003007|p +isGRAPH_LC|5.006000|5.006000| +isGRAPH_LC_utf8|5.006000||Viu +isGRAPH_LC_utf8_safe|5.025009|5.006000|p +isGRAPH_LC_uvchr|5.007001|5.007001| +isGRAPH_uni|5.006000||Viu +isGRAPH_utf8|5.031005|5.031005| +isGRAPH_utf8_safe|5.025009|5.006000|p +isGRAPH_uvchr|5.023009|5.006000|p +isGV|5.003007||Viu +isGV_or_RVCV|5.027005||Viu +isGV_with_GP|5.009004|5.003007|p +isGV_with_GP_off|5.009005||Viu +isGV_with_GP_on|5.009005||Viu +I_SHADOW|5.006000|5.006000|Vn +is_handle_constructor|5.006000||Vniu +is_HANGUL_ED_utf8_safe|5.029001||Viu +is_HORIZWS_cp_high|5.017006||Viu +is_HORIZWS_high|5.017006||Viu +isIDCONT|5.017008|5.003007|p +isIDCONT_A|5.017008|5.003007|p +isIDCONT_L1|5.017008|5.003007|p +isIDCONT_LC|5.017008|5.004000|p +isIDCONT_LC_utf8|5.017008||Viu +isIDCONT_LC_utf8_safe|5.025009|5.006000|p +isIDCONT_LC_uvchr|5.017008|5.017008| +isIDCONT_uni|5.017008||Viu +isIDCONT_utf8|5.031005|5.031005| +isIDCONT_utf8_safe|5.025009|5.006000|p +isIDCONT_uvchr|5.023009|5.006000|p +isIDFIRST|5.003007|5.003007|p +isIDFIRST_A|5.013006|5.003007|p +isIDFIRST_L1|5.013006|5.003007|p +isIDFIRST_lazy_if_safe|5.025009||Viu +isIDFIRST_LC|5.004000|5.004000|p +isIDFIRST_LC_utf8|5.006000||Viu +isIDFIRST_LC_utf8_safe|5.025009|5.006000|p +isIDFIRST_LC_uvchr|5.007001|5.007001| +isIDFIRST_uni|5.006000||Viu +isIDFIRST_utf8|5.031005|5.031005| +isIDFIRST_utf8_safe|5.025009|5.006000|p +isIDFIRST_uvchr|5.023009|5.006000|p +isinfnan|5.021004|5.021004|n +isinfnansv|5.021005||Vi +_is_in_locale_category|5.021001||cViu +IS_IN_SOME_FOLD_L1|5.033005||Viu +is_invariant_string|5.021007|5.011000|pn +is_invlist|5.029002||Vniu +is_LAX_VERSION|5.011004||Viu +isLB|5.023007||Viu +isLEXWARN_off|5.006000||Viu +isLEXWARN_on|5.006000||Viu +is_LNBREAK_latin1_safe|5.009005||Viu +is_LNBREAK_safe|5.009005||Viu +is_LNBREAK_utf8_safe|5.009005||Viu +isLOWER|5.003007|5.003007|p +isLOWER_A|5.013006|5.003007|p +isLOWER_L1|5.013006|5.003007|p +isLOWER_LC|5.004000|5.004000| +isLOWER_LC_utf8|5.006000||Viu +isLOWER_LC_utf8_safe|5.025009|5.006000|p +isLOWER_LC_uvchr|5.007001|5.007001| +isLOWER_uni|5.006000||Viu +isLOWER_utf8|5.031005|5.031005| +isLOWER_utf8_safe|5.025009|5.006000|p +isLOWER_uvchr|5.023009|5.006000|p +is_lvalue_sub|5.007001|5.007001|u +isMNEMONIC_CNTRL|5.031009||Viu +is_MULTI_CHAR_FOLD_latin1_safe|5.019010||Viu +is_MULTI_CHAR_FOLD_utf8_safe|5.019010||Viu +is_MULTI_CHAR_FOLD_utf8_safe_part0|5.019010||Viu +is_MULTI_CHAR_FOLD_utf8_safe_part1|5.019010||Viu +is_MULTI_CHAR_FOLD_utf8_safe_part2|5.025008||Viu +is_MULTI_CHAR_FOLD_utf8_safe_part3|5.025008||Viu +is_NONCHAR_utf8_safe|5.025005||Viu +IS_NON_FINAL_FOLD|5.033005||Viu +isnormal|5.021004||Viu +IS_NUMBER_GREATER_THAN_UV_MAX|5.007002|5.003007|p +IS_NUMBER_INFINITY|5.007002|5.003007|p +IS_NUMBER_IN_UV|5.007002|5.003007|p +IS_NUMBER_NAN|5.007003|5.003007|p +IS_NUMBER_NEG|5.007002|5.003007|p +IS_NUMBER_NOT_INT|5.007002|5.003007|p +IS_NUMBER_TRAILING|5.021002||Viu +IS_NUMERIC_RADIX|5.006000||Viu +isOCTAL|5.013005|5.003007|p +isOCTAL_A|5.013006|5.003007|p +isOCTAL_L1|5.013006|5.003007|p +IS_PADCONST|5.006000||Viu +IS_PADGV|5.006000||Viu +is_PATWS_safe|5.017008||Viu +isPOWER_OF_2|5.029006||Viu +isPRINT|5.004000|5.003007|p +isPRINT_A|5.013006|5.003007|p +isPRINT_L1|5.013006|5.003007|p +isPRINT_LC|5.004000|5.004000| +isPRINT_LC_utf8|5.006000||Viu +isPRINT_LC_utf8_safe|5.025009|5.006000|p +isPRINT_LC_uvchr|5.007001|5.007001| +isPRINT_uni|5.006000||Viu +isPRINT_utf8|5.031005|5.031005| +isPRINT_utf8_safe|5.025009|5.006000|p +isPRINT_uvchr|5.023009|5.006000|p +is_PROBLEMATIC_LOCALE_FOLD_cp|5.019009||Viu +is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp|5.019009||Viu +is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8|5.019009||Viu +is_PROBLEMATIC_LOCALE_FOLD_utf8|5.019009||Viu +isPSXSPC|5.006001|5.003007|p +isPSXSPC_A|5.013006|5.003007|p +isPSXSPC_L1|5.013006|5.003007|p +isPSXSPC_LC|5.006001|5.006001| +isPSXSPC_LC_utf8|5.006001||Viu +isPSXSPC_LC_utf8_safe|5.025009|5.006000|p +isPSXSPC_LC_uvchr|5.017007|5.017007| +isPSXSPC_uni|5.006001||Viu +isPSXSPC_utf8|5.031005|5.031005| +isPSXSPC_utf8_safe|5.025009|5.006000|p +isPSXSPC_uvchr|5.023009|5.006000|p +isPUNCT|5.006000|5.003007|p +isPUNCT_A|5.013006|5.003007|p +isPUNCT_L1|5.013006|5.003007|p +isPUNCT_LC|5.006000|5.006000| +isPUNCT_LC_utf8|5.006000||Viu +isPUNCT_LC_utf8_safe|5.025009|5.006000|p +isPUNCT_LC_uvchr|5.007001|5.007001| +isPUNCT_uni|5.006000||Viu +isPUNCT_utf8|5.031005|5.031005| +isPUNCT_utf8_safe|5.025009|5.006000|p +isPUNCT_uvchr|5.023009|5.006000|p +is_QUOTEMETA_high|5.017004||Viu +is_QUOTEMETA_high_part0|5.021001||Viu +is_QUOTEMETA_high_part1|5.021001||Viu +isREGEXP|5.017006||Viu +IS_SAFE_PATHNAME|5.019004||Viu +IS_SAFE_SYSCALL|5.019004|5.019004| +is_safe_syscall|5.019004|5.019004| +isSB|5.021009||Viu +isSCRIPT_RUN|5.027008||cVi +isSPACE|5.003007|5.003007|p +isSPACE_A|5.013006|5.003007|p +isSPACE_L1|5.013006|5.003007|p +isSPACE_LC|5.004000|5.004000| +isSPACE_LC_utf8|5.006000||Viu +isSPACE_LC_utf8_safe|5.025009|5.006000|p +isSPACE_LC_uvchr|5.007001|5.007001| +isSPACE_uni|5.006000||Viu +isSPACE_utf8|5.031005|5.031005| +isSPACE_utf8_safe|5.025009|5.006000|p +isSPACE_uvchr|5.023009|5.006000|p +is_ssc_worth_it|5.021005||Vniu +isSTRICT_UTF8_CHAR|5.025005|5.025005|n +is_STRICT_UTF8_CHAR_utf8_no_length_checks|5.025005||Viu +is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0|5.025005||Viu +is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1|5.025005||Viu +is_STRICT_UTF8_CHAR_utf8_no_length_checks_part2|5.025008||Viu +is_STRICT_UTF8_CHAR_utf8_no_length_checks_part3|5.025008||Viu +is_strict_utf8_string|5.025006|5.025006|n +is_strict_utf8_string_loc|5.025006|5.025006|n +is_strict_utf8_string_loclen|5.025006|5.025006|n +is_STRICT_VERSION|5.011004||Viu +is_SURROGATE_utf8_safe|5.025005||Viu +I_STDARG|5.003007||Viu +I_STDBOOL|5.015003|5.015003|Vn +I_STDINT|5.021004|5.021004|Vn +is_THREE_CHAR_FOLD_HEAD_latin1_safe|5.031007||Viu +is_THREE_CHAR_FOLD_HEAD_utf8_safe|5.031007||Viu +is_THREE_CHAR_FOLD_latin1_safe|5.031007||Viu +is_THREE_CHAR_FOLD_utf8_safe|5.031007||Viu +IS_TRIE_AC|5.009005||Viu +_is_uni_FOO|5.017008||cVu +_is_uni_perl_idcont|5.017008||cVu +_is_uni_perl_idstart|5.017007||cVu +isUPPER|5.003007|5.003007|p +isUPPER_A|5.013006|5.003007|p +isUPPER_L1|5.013006|5.003007|p +isUPPER_LC|5.004000|5.004000| +isUPPER_LC_utf8|5.006000||Viu +isUPPER_LC_utf8_safe|5.025009|5.006000|p +isUPPER_LC_uvchr|5.007001|5.007001| +isUPPER_uni|5.006000||Viu +isUPPER_utf8|5.031005|5.031005| +isUPPER_utf8_safe|5.025009|5.006000|p +isUPPER_uvchr|5.023009|5.006000|p +is_utf8_char|5.006000|5.006000|dn +IS_UTF8_CHAR|5.009003||Viu +isUTF8_CHAR|5.021001|5.006001|pn +is_utf8_char_buf|5.015008|5.015008|n +isUTF8_CHAR_flags|5.025005|5.025005| +is_utf8_char_helper|5.031004||cVnu +is_UTF8_CHAR_utf8_no_length_checks|5.021001||Viu +is_utf8_common|5.009003||Viu +is_utf8_cp_above_31_bits|5.025005||Vniu +is_utf8_fixed_width_buf_flags|5.025006|5.025006|n +is_utf8_fixed_width_buf_loc_flags|5.025006|5.025006|n +is_utf8_fixed_width_buf_loclen_flags|5.025006|5.025006|n +_is_utf8_FOO|5.031006||cVu +is_utf8_invariant_string|5.025005|5.011000|pn +is_utf8_invariant_string_loc|5.027001|5.027001|n +is_utf8_non_invariant_string|5.027007||cVni +is_utf8_overlong_given_start_byte_ok|5.025006||Vniu +_is_utf8_perl_idcont|5.031006||cVu +_is_utf8_perl_idstart|5.031006||cVu +isUTF8_POSSIBLY_PROBLEMATIC|5.023003||Viu +is_utf8_string|5.006001|5.006001|n +is_utf8_string_flags|5.025006|5.025006|n +is_utf8_string_loc|5.008001|5.008001|n +is_utf8_string_loc_flags|5.025006|5.025006|n +is_utf8_string_loclen|5.009003|5.009003|n +is_utf8_string_loclen_flags|5.025006|5.025006|n +is_utf8_valid_partial_char|5.025005|5.025005|n +is_utf8_valid_partial_char_flags|5.025005|5.025005|n +is_VERTWS_cp_high|5.017006||Viu +is_VERTWS_high|5.017006||Viu +isVERTWS_uni|5.017006||Viu +isVERTWS_utf8|5.017006||Viu +isVERTWS_utf8_safe|5.025009||Viu +isVERTWS_uvchr|5.023009||Viu +isWARNf_on|5.006001||Viu +isWARN_on|5.006000||Viu +isWARN_ONCE|5.006000||Viu +isWB|5.021009||Viu +isWORDCHAR|5.013006|5.003007|p +isWORDCHAR_A|5.013006|5.003007|p +isWORDCHAR_L1|5.013006|5.003007|p +isWORDCHAR_lazy_if_safe|5.025009||Viu +isWORDCHAR_LC|5.017007|5.004000|p +isWORDCHAR_LC_utf8|5.017007||Viu +isWORDCHAR_LC_utf8_safe|5.025009|5.006000|p +isWORDCHAR_LC_uvchr|5.017007|5.017007| +isWORDCHAR_uni|5.017006||Viu +isWORDCHAR_utf8|5.031005|5.031005| +isWORDCHAR_utf8_safe|5.025009|5.006000|p +isWORDCHAR_uvchr|5.023009|5.006000|p +isXDIGIT|5.006000|5.003007|p +isXDIGIT_A|5.013006|5.003007|p +is_XDIGIT_cp_high|5.017006||Viu +is_XDIGIT_high|5.017006||Viu +isXDIGIT_L1|5.013006|5.003007|p +isXDIGIT_LC|5.017007|5.003007|p +isXDIGIT_LC_utf8|5.017007||Viu +isXDIGIT_LC_utf8_safe|5.025009|5.006000|p +isXDIGIT_LC_uvchr|5.017007|5.017007| +isXDIGIT_uni|5.006000||Viu +isXDIGIT_utf8|5.031005|5.031005| +isXDIGIT_utf8_safe|5.025009|5.006000|p +isXDIGIT_uvchr|5.023009|5.006000|p +is_XPERLSPACE_cp_high|5.017006||Viu +is_XPERLSPACE_high|5.017006||Viu +I_SYS_DIR|5.003007|5.003007|Vn +I_SYS_FILE|5.003007|5.003007|Vn +I_SYS_IOCTL|5.003007|5.003007|Vn +I_SYSLOG|5.006000|5.006000|Vn +I_SYS_MOUNT|5.023005|5.023005|Vn +I_SYS_PARAM|5.003007|5.003007|Vn +I_SYS_POLL|5.010001|5.010001|Vn +I_SYS_RESOURCE|5.003007|5.003007|Vn +I_SYS_SELECT|5.003007|5.003007|Vn +I_SYS_STAT|5.003007|5.003007|Vn +I_SYS_STATFS|5.023005|5.023005|Vn +I_SYS_STATVFS|5.023005|5.023005|Vn +I_SYS_TIME|5.003007|5.003007|Vn +I_SYS_TIMES|5.003007|5.003007|Vn +I_SYS_TYPES|5.003007|5.003007|Vn +I_SYSUIO|5.006000|5.006000|Vn +I_SYS_UN|5.003007|5.003007|Vn +I_SYSUTSNAME|5.006000|5.006000|Vn +I_SYS_VFS|5.023005|5.023005|Vn +I_SYS_WAIT|5.003007|5.003007|Vn +items||5.003007| +I_TERMIOS|5.003007|5.003007|Vn +I_TIME|5.003007|5.003007|Vn +I_UNISTD|5.003007|5.003007|Vn +I_USTAT|5.023005|5.023005|Vn +I_UTIME|5.003007|5.003007|Vn +I_V|5.006000|5.003007| +IVdf|5.006000|5.003007|poVn +IV_DIG|5.006000||Viu +IV_IS_QUAD|5.006000||Viu +IV_MAX|5.003007|5.003007| +IV_MAX_P1|5.007002||Viu +IV_MIN|5.003007|5.003007| +IVSIZE|5.006000|5.003007|poVn +IVTYPE|5.006000|5.003007|poVn +I_WCHAR|5.027006|5.027006|Vn +I_WCTYPE|5.029009|5.029009|Vn +ix||5.003007| +I_XLOCALE|5.025004|5.025004|Vn +JE_OLD_STACK_HWM_restore|5.027002||Viu +JE_OLD_STACK_HWM_save|5.027002||Viu +JE_OLD_STACK_HWM_zero|5.027002||Viu +jmaybe|5.003007||Viu +JMPENV_BOOTSTRAP|5.006000||Viu +JMPENV_JUMP|5.004000|5.004000| +JMPENV_POP|5.004000||Viu +JMPENV_PUSH|5.004000||Viu +JOIN|5.005000||Viu +join_exact|5.009004||Viu +kBINOP|5.003007||Viu +kCOP|5.003007||Viu +KEEPCOPY_PAT_MOD|5.009005||Viu +KEEPCOPY_PAT_MODS|5.009005||Viu +KEEPS|5.009005||Viu +KEEPS_next|5.009005||Viu +KEEPS_next_fail|5.009005||Viu +KEEPS_next_fail_t8_p8|5.033003||Viu +KEEPS_next_fail_t8_pb|5.033003||Viu +KEEPS_next_fail_tb_p8|5.033003||Viu +KEEPS_next_fail_tb_pb|5.033003||Viu +KEEPS_next_t8_p8|5.033003||Viu +KEEPS_next_t8_pb|5.033003||Viu +KEEPS_next_tb_p8|5.033003||Viu +KEEPS_next_tb_pb|5.033003||Viu +KEEPS_t8_p8|5.033003||Viu +KEEPS_t8_pb|5.033003||Viu +KEEPS_tb_p8|5.033003||Viu +KEEPS_tb_pb|5.033003||Viu +KELVIN_SIGN|5.017003||Viu +KERNEL|5.003007||Viu +KEY_abs|5.003007||Viu +KEY_accept|5.003007||Viu +KEY_alarm|5.003007||Viu +KEY_and|5.003007||Viu +KEY_atan2|5.003007||Viu +KEY_AUTOLOAD|5.003007||Viu +KEY_BEGIN|5.003007||Viu +KEY_bind|5.003007||Viu +KEY_binmode|5.003007||Viu +KEY_bless|5.003007||Viu +KEY_break|5.027008||Viu +KEY_caller|5.003007||Viu +KEY_catch|5.033007||Viu +KEY_chdir|5.003007||Viu +KEY_CHECK|5.006000||Viu +KEY_chmod|5.003007||Viu +KEY_chomp|5.003007||Viu +KEY_chop|5.003007||Viu +KEY_chown|5.003007||Viu +KEY_chr|5.003007||Viu +KEY_chroot|5.003007||Viu +KEY_close|5.003007||Viu +KEY_closedir|5.003007||Viu +KEY_cmp|5.003007||Viu +KEY_connect|5.003007||Viu +KEY_continue|5.003007||Viu +KEY_cos|5.003007||Viu +KEY_crypt|5.003007||Viu +KEY___DATA|5.003007||Viu +KEY_dbmclose|5.003007||Viu +KEY_dbmopen|5.003007||Viu +KEY_default|5.027008||Viu +KEY_defined|5.003007||Viu +KEY_delete|5.003007||Viu +KEY_DESTROY|5.003007||Viu +KEY_die|5.003007||Viu +KEY_do|5.003007||Viu +KEY_dump|5.003007||Viu +KEY_each|5.003007||Viu +KEY_else|5.003007||Viu +KEY_elsif|5.003007||Viu +KEY___END|5.003007||Viu +KEY_END|5.003007||Viu +KEY_endgrent|5.003007||Viu +KEY_endhostent|5.003007||Viu +KEY_endnetent|5.003007||Viu +KEY_endprotoent|5.003007||Viu +KEY_endpwent|5.003007||Viu +KEY_endservent|5.003007||Viu +KEY_eof|5.003007||Viu +KEY_eq|5.003007||Viu +KEY_eval|5.003007||Viu +KEY_evalbytes|5.015005||Viu +KEY_exec|5.003007||Viu +KEY_exists|5.003007||Viu +KEY_exit|5.003007||Viu +KEY_exp|5.003007||Viu +KEY_fc|5.015008||Viu +KEY_fcntl|5.003007||Viu +KEY___FILE|5.003007||Viu +KEY_fileno|5.003007||Viu +KEY_flock|5.003007||Viu +KEY_for|5.003007||Viu +KEY_foreach|5.003007||Viu +KEY_fork|5.003007||Viu +KEY_format|5.003007||Viu +KEY_formline|5.003007||Viu +KEY_ge|5.003007||Viu +KEY_getc|5.003007||Viu +KEY_getgrent|5.003007||Viu +KEY_getgrgid|5.003007||Viu +KEY_getgrnam|5.003007||Viu +KEY_gethostbyaddr|5.003007||Viu +KEY_gethostbyname|5.003007||Viu +KEY_gethostent|5.003007||Viu +KEY_getlogin|5.003007||Viu +KEY_getnetbyaddr|5.003007||Viu +KEY_getnetbyname|5.003007||Viu +KEY_getnetent|5.003007||Viu +KEY_getpeername|5.003007||Viu +KEY_getpgrp|5.003007||Viu +KEY_getppid|5.003007||Viu +KEY_getpriority|5.003007||Viu +KEY_getprotobyname|5.003007||Viu +KEY_getprotobynumber|5.003007||Viu +KEY_getprotoent|5.003007||Viu +KEY_getpwent|5.003007||Viu +KEY_getpwnam|5.003007||Viu +KEY_getpwuid|5.003007||Viu +KEY_getservbyname|5.003007||Viu +KEY_getservbyport|5.003007||Viu +KEY_getservent|5.003007||Viu +KEY_getsockname|5.003007||Viu +KEY_getsockopt|5.003007||Viu +KEY_getspnam|5.031011||Viu +KEY_given|5.009003||Viu +KEY_glob|5.003007||Viu +KEY_gmtime|5.003007||Viu +KEY_goto|5.003007||Viu +KEY_grep|5.003007||Viu +KEY_gt|5.003007||Viu +KEY_hex|5.003007||Viu +KEY_if|5.003007||Viu +KEY_index|5.003007||Viu +KEY_INIT|5.005000||Viu +KEY_int|5.003007||Viu +KEY_ioctl|5.003007||Viu +KEY_isa|5.031007||Viu +KEY_join|5.003007||Viu +KEY_keys|5.003007||Viu +KEY_kill|5.003007||Viu +KEY_last|5.003007||Viu +KEY_lc|5.003007||Viu +KEY_lcfirst|5.003007||Viu +KEY_le|5.003007||Viu +KEY_length|5.003007||Viu +KEY___LINE|5.003007||Viu +KEY_link|5.003007||Viu +KEY_listen|5.003007||Viu +KEY_local|5.003007||Viu +KEY_localtime|5.003007||Viu +KEY_lock|5.005000||Viu +KEY_log|5.003007||Viu +KEY_lstat|5.003007||Viu +KEY_lt|5.003007||Viu +KEY_m|5.003007||Viu +KEY_map|5.003007||Viu +KEY_mkdir|5.003007||Viu +KEY_msgctl|5.003007||Viu +KEY_msgget|5.003007||Viu +KEY_msgrcv|5.003007||Viu +KEY_msgsnd|5.003007||Viu +KEY_my|5.003007||Viu +KEY_ne|5.003007||Viu +KEY_next|5.003007||Viu +KEY_no|5.003007||Viu +KEY_not|5.003007||Viu +KEY_NULL|5.003007||Viu +KEY_oct|5.003007||Viu +KEY_open|5.003007||Viu +KEY_opendir|5.003007||Viu +KEY_or|5.003007||Viu +KEY_ord|5.003007||Viu +KEY_our|5.006000||Viu +KEY_pack|5.003007||Viu +KEY_package|5.003007||Viu +KEY___PACKAGE|5.004000||Viu +KEY_pipe|5.003007||Viu +KEY_pop|5.003007||Viu +KEY_pos|5.003007||Viu +KEY_print|5.003007||Viu +KEY_printf|5.003007||Viu +KEY_prototype|5.003007||Viu +KEY_push|5.003007||Viu +KEY_q|5.003007||Viu +KEY_qq|5.003007||Viu +KEY_qr|5.005000||Viu +KEY_quotemeta|5.003007||Viu +KEY_qw|5.003007||Viu +KEY_qx|5.003007||Viu +KEY_rand|5.003007||Viu +KEY_read|5.003007||Viu +KEY_readdir|5.003007||Viu +KEY_readline|5.003007||Viu +KEY_readlink|5.003007||Viu +KEY_readpipe|5.003007||Viu +KEY_recv|5.003007||Viu +KEY_redo|5.003007||Viu +KEY_ref|5.003007||Viu +KEY_rename|5.003007||Viu +KEY_require|5.003007||Viu +KEY_reset|5.003007||Viu +KEY_return|5.003007||Viu +KEY_reverse|5.003007||Viu +KEY_rewinddir|5.003007||Viu +KEY_rindex|5.003007||Viu +KEY_rmdir|5.003007||Viu +KEY_s|5.003007||Viu +KEY_say|5.009003||Viu +KEY_scalar|5.003007||Viu +KEY_seek|5.003007||Viu +KEY_seekdir|5.003007||Viu +KEY_select|5.003007||Viu +KEY_semctl|5.003007||Viu +KEY_semget|5.003007||Viu +KEY_semop|5.003007||Viu +KEY_send|5.003007||Viu +KEY_setgrent|5.003007||Viu +KEY_sethostent|5.003007||Viu +KEY_setnetent|5.003007||Viu +KEY_setpgrp|5.003007||Viu +KEY_setpriority|5.003007||Viu +KEY_setprotoent|5.003007||Viu +KEY_setpwent|5.003007||Viu +KEY_setservent|5.003007||Viu +KEY_setsockopt|5.003007||Viu +KEY_shift|5.003007||Viu +KEY_shmctl|5.003007||Viu +KEY_shmget|5.003007||Viu +KEY_shmread|5.003007||Viu +KEY_shmwrite|5.003007||Viu +KEY_shutdown|5.003007||Viu +KEY_sigvar|5.025004||Viu +KEY_sin|5.003007||Viu +KEY_sleep|5.003007||Viu +KEY_socket|5.003007||Viu +KEY_socketpair|5.003007||Viu +KEY_sort|5.003007||Viu +KEY_splice|5.003007||Viu +KEY_split|5.003007||Viu +KEY_sprintf|5.003007||Viu +KEY_sqrt|5.003007||Viu +KEY_srand|5.003007||Viu +KEY_stat|5.003007||Viu +KEY_state|5.009004||Viu +KEY_study|5.003007||Viu +KEY_sub|5.003007||Viu +KEY___SUB|5.015006||Viu +KEY_substr|5.003007||Viu +KEY_symlink|5.003007||Viu +KEY_syscall|5.003007||Viu +KEY_sysopen|5.003007||Viu +KEY_sysread|5.003007||Viu +KEY_sysseek|5.004000||Viu +KEY_system|5.003007||Viu +KEY_syswrite|5.003007||Viu +KEY_tell|5.003007||Viu +KEY_telldir|5.003007||Viu +KEY_tie|5.003007||Viu +KEY_tied|5.003007||Viu +KEY_time|5.003007||Viu +KEY_times|5.003007||Viu +KEY_tr|5.003007||Viu +KEY_truncate|5.003007||Viu +KEY_try|5.033007||Viu +KEY_uc|5.003007||Viu +KEY_ucfirst|5.003007||Viu +KEY_umask|5.003007||Viu +KEY_undef|5.003007||Viu +KEY_UNITCHECK|5.009005||Viu +KEY_unless|5.003007||Viu +KEY_unlink|5.003007||Viu +KEY_unpack|5.003007||Viu +KEY_unshift|5.003007||Viu +KEY_untie|5.003007||Viu +KEY_until|5.003007||Viu +KEY_use|5.003007||Viu +KEY_utime|5.003007||Viu +KEY_values|5.003007||Viu +KEY_vec|5.003007||Viu +KEY_wait|5.003007||Viu +KEY_waitpid|5.003007||Viu +KEY_wantarray|5.003007||Viu +KEY_warn|5.003007||Viu +KEY_when|5.027008||Viu +KEY_while|5.003007||Viu +keyword|5.003007||Viu +KEYWORD_PLUGIN_DECLINE|5.011002||Viu +KEYWORD_PLUGIN_EXPR|5.011002||Viu +KEYWORD_PLUGIN_MUTEX_INIT|5.027006||Viu +KEYWORD_PLUGIN_MUTEX_LOCK|5.027006||Viu +KEYWORD_PLUGIN_MUTEX_TERM|5.027006||Viu +KEYWORD_PLUGIN_MUTEX_UNLOCK|5.027006||Viu +keyword_plugin_standard|||iu +KEYWORD_PLUGIN_STMT|5.011002||Viu +KEY_write|5.003007||Viu +KEY_x|5.003007||Viu +KEY_xor|5.003007||Viu +KEY_y|5.003007||Viu +kGVOP_gv|5.006000||Viu +kill|5.005000||Viu +killpg|5.005000||Viu +kLISTOP|5.003007||Viu +kLOGOP|5.003007||Viu +kLOOP|5.003007||Viu +kPADOP|5.006000||Viu +kPMOP|5.003007||Viu +kPVOP|5.003007||Viu +kSVOP|5.003007||Viu +kSVOP_sv|5.006000||Viu +kUNOP|5.003007||Viu +kUNOP_AUX|5.021007||Viu +LATIN1_TO_NATIVE|5.019004|5.003007|p +LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE|5.013011||Viu +LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE|5.017004||Viu +LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE|5.023002||Viu +LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE_UTF8|5.023002||Viu +LATIN_CAPITAL_LETTER_SHARP_S|5.014000||Viu +LATIN_CAPITAL_LETTER_SHARP_S_UTF8|5.019001||Viu +LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS|5.013011||Viu +LATIN_SMALL_LETTER_A_WITH_RING_ABOVE|5.013011||Viu +LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE|5.017004||Viu +LATIN_SMALL_LETTER_DOTLESS_I|5.023002||Viu +LATIN_SMALL_LETTER_DOTLESS_I_UTF8|5.023002||Viu +LATIN_SMALL_LETTER_LONG_S|5.017003||Viu +LATIN_SMALL_LETTER_LONG_S_UTF8|5.019001||Viu +LATIN_SMALL_LETTER_SHARP_S|5.011002||Viu +LATIN_SMALL_LETTER_SHARP_S_NATIVE|5.017004||Viu +LATIN_SMALL_LETTER_SHARP_S_UTF8|5.033003||Viu +LATIN_SMALL_LETTER_Y_WITH_DIAERESIS|5.011002||Viu +LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE|5.017004||Viu +LATIN_SMALL_LIGATURE_LONG_S_T|5.019004||Viu +LATIN_SMALL_LIGATURE_LONG_S_T_UTF8|5.019004||Viu +LATIN_SMALL_LIGATURE_ST|5.019004||Viu +LATIN_SMALL_LIGATURE_ST_UTF8|5.019004||Viu +LB_BREAKABLE|5.023007||Viu +LB_CM_ZWJ_foo|5.025003||Viu +LB_HY_or_BA_then_foo|5.023007||Viu +LB_NOBREAK|5.023007||Viu +LB_NOBREAK_EVEN_WITH_SP_BETWEEN|5.023007||Viu +LB_PR_or_PO_then_OP_or_HY|5.023007||Viu +LB_RI_then_RI|5.025003||Viu +LB_SP_foo|5.023007||Viu +LB_SY_or_IS_then_various|5.023007||Viu +LB_various_then_PO_or_PR|5.023007||Viu +LC_NUMERIC_LOCK|5.027009||pVu +LC_NUMERIC_UNLOCK|5.027009||pVu +LDBL_DIG|5.006000||Viu +LEAVE|5.003007|5.003007| +leave_adjust_stacks|5.023008|5.023008|xu +leave_scope|5.003007|5.003007|u +LEAVE_SCOPE|5.003007||Viu +LEAVE_with_name|5.011002|5.011002| +LEXACT|5.031005||Viu +LEXACT_REQ8|5.031006||Viu +LEXACT_REQ8_t8_p8|5.033003||Viu +LEXACT_REQ8_t8_pb|5.033003||Viu +LEXACT_REQ8_tb_p8|5.033003||Viu +LEXACT_REQ8_tb_pb|5.033003||Viu +LEXACT_t8_p8|5.033003||Viu +LEXACT_t8_pb|5.033003||Viu +LEXACT_tb_p8|5.033003||Viu +LEXACT_tb_pb|5.033003||Viu +lex_bufutf8|5.011002|5.011002|x +lex_discard_to|5.011002|5.011002|x +LEX_DONT_CLOSE_RSFP|5.015009||Viu +LEX_EVALBYTES|5.015005||Viu +lex_grow_linestr|5.011002|5.011002|x +LEX_IGNORE_UTF8_HINTS|5.015005||Viu +LEX_KEEP_PREVIOUS|5.011002|5.011002| +lex_next_chunk|5.011002|5.011002|x +LEX_NOTPARSING|5.004004||Viu +lex_peek_unichar|5.011002|5.011002|x +lex_read_space|5.011002|5.011002|x +lex_read_to|5.011002|5.011002|x +lex_read_unichar|5.011002|5.011002|x +lex_start|5.009005|5.009005|x +LEX_START_COPIED|5.015005||Viu +LEX_START_FLAGS|5.015005||Viu +LEX_START_SAME_FILTER|5.014000||Viu +lex_stuff_pv|5.013006|5.013006|x +lex_stuff_pvn|5.011002|5.011002|x +lex_stuff_pvs|5.013005|5.013005|x +lex_stuff_sv|5.011002|5.011002|x +LEX_STUFF_UTF8|5.011002|5.011002| +lex_unstuff|5.011002|5.011002|x +LF_NATIVE|5.019004||Viu +LIB_INVARG|5.008001||Viu +LIBM_LIB_VERSION|5.009003|5.009003|Vn +LIKELY|5.009004|5.003007|p +link|5.006000||Viu +LINKLIST|5.013006|5.013006| +list|5.003007||Viu +listen|5.005000||Viu +listkids|5.003007||Viu +LNBREAK|5.009005||Viu +LNBREAK_t8_p8|5.033003||Viu +LNBREAK_t8_pb|5.033003||Viu +LNBREAK_tb_p8|5.033003||Viu +LNBREAK_tb_pb|5.033003||Viu +load_charnames|5.031010||cViu +load_module|5.006000|5.003007|pv +load_module_nocontext|5.006000||vVn +LOCALECONV_LOCK|5.033005||Viu +LOCALECONV_UNLOCK|5.033005||Viu +LOCALE_INIT|5.024000||Viu +LOCALE_INIT_LC_NUMERIC|5.033005||Viu +LOCALE_LOCK|5.024000||Viu +LOCALE_PAT_MOD|5.013006||Viu +LOCALE_PAT_MODS|5.013006||Viu +LOCALE_READ_LOCK|5.033005||Viu +LOCALE_READ_UNLOCK|5.033005||Viu +LOCALE_TERM|5.024000||Viu +LOCALE_TERM_LC_NUMERIC|5.033005||Viu +LOCALE_TERM_POSIX_2008|5.033005||Viu +LOCALE_UNLOCK|5.024000||Viu +localize|5.003007||Viu +LOCAL_PATCH_COUNT|5.003007||Viu +localtime|5.031011||Viu +LOCALTIME_MAX|5.010001|5.010001|Vn +LOCALTIME_MIN|5.010001|5.010001|Vn +LOCALTIME_R_NEEDS_TZSET|5.010000|5.010000|Vn +LOCALTIME_R_PROTO|5.008000|5.008000|Vn +LOCK_DOLLARZERO_MUTEX|5.008001||Viu +lockf|5.006000||Viu +LOCK_LC_NUMERIC_STANDARD|5.021010||poVnu +LOCK_NUMERIC_STANDARD|||piu +LOC_SED|5.003007|5.003007|Vn +LOGICAL|5.005000||Viu +LOGICAL_t8_p8|5.033003||Viu +LOGICAL_t8_pb|5.033003||Viu +LOGICAL_tb_p8|5.033003||Viu +LOGICAL_tb_pb|5.033003||Viu +LONGDBLINFBYTES|5.023000|5.023000|Vn +LONGDBLMANTBITS|5.023000|5.023000|Vn +LONGDBLNANBYTES|5.023000|5.023000|Vn +LONGDOUBLE_BIG_ENDIAN|5.021009||Viu +LONGDOUBLE_DOUBLEDOUBLE|5.021009||Viu +LONG_DOUBLE_EQUALS_DOUBLE|5.007001||Viu +LONG_DOUBLE_IS_DOUBLE|5.021003|5.021003|Vn +LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE|5.023006|5.023006|Vn +LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE|5.023006|5.023006|Vn +LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN|5.021003|5.021003|Vn +LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE|5.023006|5.023006|Vn +LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE|5.023006|5.023006|Vn +LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN|5.021003|5.021003|Vn +LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN|5.021003|5.021003|Vn +LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN|5.021003|5.021003|Vn +LONG_DOUBLE_IS_UNKNOWN_FORMAT|5.021003|5.021003|Vn +LONG_DOUBLE_IS_VAX_H_FLOAT|5.025004|5.025004|Vn +LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN|5.021003|5.021003|Vn +LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN|5.021003|5.021003|Vn +LONG_DOUBLEKIND|5.021003|5.021003|Vn +LONGDOUBLE_LITTLE_ENDIAN|5.021009||Viu +LONGDOUBLE_MIX_ENDIAN|5.023006||Viu +LONG_DOUBLESIZE|5.005000|5.005000|Vn +LONG_DOUBLE_STYLE_IEEE|5.025007|5.025007|Vn +LONG_DOUBLE_STYLE_IEEE_EXTENDED|5.025007|5.025007|Vn +LONGDOUBLE_VAX_ENDIAN|5.025004||Viu +LONGDOUBLE_X86_80_BIT|5.021009||Viu +LONGJMP|5.005000||Viu +longjmp|5.005000||Viu +LONGJMP_t8_p8|5.033003||Viu +LONGJMP_t8_pb|5.033003||Viu +LONGJMP_tb_p8|5.033003||Viu +LONGJMP_tb_pb|5.033003||Viu +LONGLONGSIZE|5.005000|5.005000|Vn +LONGSIZE|5.004000|5.003007|oVn +looks_like_bool|5.027008||Viu +looks_like_number|5.003007|5.003007| +LOOP_PAT_MODS|5.009005||Viu +lop|5.005000||Viu +lossless_NV_to_IV|5.031001||Vniu +LOWEST_ANYOF_HRx_BYTE|5.031002||Viu +L_R_TZSET|5.009005|5.009005|Vn +lseek|5.005000||Viu +LSEEKSIZE|5.006000|5.006000|Vn +lstat|5.005000||Viu +LvFLAGS|5.015006||Viu +LVf_NEG_LEN|5.027001||Viu +LVf_NEG_OFF|5.027001||Viu +LVf_OUT_OF_RANGE|5.027001||Viu +LVRET|5.007001||Vi +LvSTARGOFF|5.019004||Viu +LvTARG|5.003007||Viu +LvTARGLEN|5.003007||Viu +LvTARGOFF|5.003007||Viu +LvTYPE|5.003007||Viu +magic_clear_all_env|5.004001||Viu +magic_cleararylen_p|5.017002||Viu +magic_clearenv|5.003007||Viu +magic_clearhint|5.009004||Vi +magic_clearhints|5.011000||Vi +magic_clearisa|5.010001||Viu +magic_clearpack|5.003007||Viu +magic_clearsig|5.003007||Viu +magic_copycallchecker|5.017000||Viu +magic_dump|5.006000|5.006000|u +magic_existspack|5.003007||Viu +magic_freearylen_p|5.009003||Viu +magic_freecollxfrm|5.033004||Viu +magic_freemglob|5.033004||Viu +magic_freeovrld|5.007001||Viu +magic_freeutf8|5.033004||Viu +magic_get|5.003007||Viu +magic_getarylen|5.003007||Viu +magic_getdebugvar|5.021005||Viu +magic_getdefelem|5.004000||Viu +magic_getnkeys|5.004005||Viu +magic_getpack|5.003007||Viu +magic_getpos|5.003007||Viu +magic_getsig|5.003007||Viu +magic_getsubstr|5.004005||Viu +magic_gettaint|5.003007||Viu +magic_getuvar|5.003007||Viu +magic_getvec|5.004005||Viu +magic_killbackrefs|5.006000||Viu +magic_methcall1|5.013001||Viu +magic_methcall|||vi +magic_methpack|5.005000||Viu +magic_nextpack|5.003007||Viu +magic_regdata_cnt|5.006000||Viu +magic_regdatum_get|5.006000||Viu +magic_regdatum_set|5.006001||Viu +magic_scalarpack|5.009001||Viu +magic_set|5.003007||Viu +magic_set_all_env|5.004004||Viu +magic_setarylen|5.003007||Viu +magic_setcollxfrm|5.004000||Viu +magic_setdbline|5.003007||Viu +magic_setdebugvar|5.021005||Viu +magic_setdefelem|5.004000||Viu +magic_setenv|5.003007||Viu +magic_sethint|5.009004||Vi +magic_sethint_feature|5.031007||Viu +magic_setisa|5.003007||Viu +magic_setlvref|5.021005||Viu +magic_setmglob|5.003007||Viu +magic_setnkeys|5.003007||Viu +magic_setnonelem|5.027009||Viu +magic_setpack|5.003007||Viu +magic_setpos|5.003007||Viu +magic_setregexp|5.008001||Viu +magic_setsig|5.003007||Viu +magic_setsigall|5.035001||Viu +magic_setsubstr|5.003007||Viu +magic_settaint|5.003007||Viu +magic_setutf8|5.008001||Viu +magic_setuvar|5.003007||Viu +magic_setvec|5.003007||Viu +magic_sizepack|5.005000||Viu +magic_wipepack|5.003007||Viu +make_exactf_invlist|5.031006||Viu +make_matcher|5.027008||Viu +make_trie|5.009002||Viu +malloc|5.007002|5.007002|n +MALLOC_CHECK_TAINT2|5.008001||Viu +MALLOC_CHECK_TAINT|5.008001||Viu +malloced_size|5.005000||Vniu +malloc_good_size|5.010001||Vniu +MALLOC_INIT|5.005000||Viu +MALLOC_OVERHEAD|5.006000||Viu +Malloc_t|5.003007|5.003007|Vn +MALLOC_TERM|5.005000||Viu +MALLOC_TOO_LATE_FOR|5.008001||Viu +MARK|5.003007|5.003007| +MARKPOINT|5.009005||Viu +MARKPOINT_next|5.009005||Viu +MARKPOINT_next_fail|5.009005||Viu +MARKPOINT_next_fail_t8_p8|5.033003||Viu +MARKPOINT_next_fail_t8_pb|5.033003||Viu +MARKPOINT_next_fail_tb_p8|5.033003||Viu +MARKPOINT_next_fail_tb_pb|5.033003||Viu +MARKPOINT_next_t8_p8|5.033003||Viu +MARKPOINT_next_t8_pb|5.033003||Viu +MARKPOINT_next_tb_p8|5.033003||Viu +MARKPOINT_next_tb_pb|5.033003||Viu +MARKPOINT_t8_p8|5.033003||Viu +MARKPOINT_t8_pb|5.033003||Viu +MARKPOINT_tb_p8|5.033003||Viu +MARKPOINT_tb_pb|5.033003||Viu +markstack_grow|5.021001|5.021001|u +matcher_matches_sv|5.027008||Viu +MAX|5.025006||Viu +MAX_ANYOF_HRx_BYTE|5.031002||Viu +MAXARG|5.003007||Viu +MAX_CHARSET_NAME_LENGTH|5.013009||Viu +MAX_FEATURE_LEN|5.013010||Viu +MAX_FOLD_FROMS|5.029006||Viu +MAX_LEGAL_CP|5.029002||Viu +MAX_MATCHES|5.033005||Viu +MAXO|5.003007||Viu +MAXPATHLEN|5.006000||Viu +MAX_PORTABLE_UTF8_TWO_BYTE|5.011002||Viu +MAX_PRINT_A|5.033005||Viu +MAX_RECURSE_EVAL_NOCHANGE_DEPTH|5.009005||Viu +MAXSYSFD|5.003007||Viu +MAX_UNICODE_UTF8|5.027006||Viu +MAX_UNI_KEYWORD_INDEX|5.027011||Viu +MAX_UTF8_TWO_BYTE|5.019004||Viu +MAYBE_DEREF_GV|5.015003||Viu +MAYBE_DEREF_GV_flags|5.015003||Viu +MAYBE_DEREF_GV_nomg|5.015003||Viu +maybe_multimagic_gv|5.019004||Viu +mayberelocate|5.015006||Viu +MBLEN_LOCK|5.033005||Viu +MBLEN_UNLOCK|5.033005||Viu +MBOL|5.003007||Viu +MBOL_t8_p8|5.033003||Viu +MBOL_t8_pb|5.033003||Viu +MBOL_tb_p8|5.033003||Viu +MBOL_tb_pb|5.033003||Viu +MBTOWC_LOCK|5.033005||Viu +MBTOWC_UNLOCK|5.033005||Viu +MDEREF_ACTION_MASK|5.021007||Viu +MDEREF_AV_gvav_aelem|5.021007||Viu +MDEREF_AV_gvsv_vivify_rv2av_aelem|5.021007||Viu +MDEREF_AV_padav_aelem|5.021007||Viu +MDEREF_AV_padsv_vivify_rv2av_aelem|5.021007||Viu +MDEREF_AV_pop_rv2av_aelem|5.021007||Viu +MDEREF_AV_vivify_rv2av_aelem|5.021007||Viu +MDEREF_FLAG_last|5.021007||Viu +MDEREF_HV_gvhv_helem|5.021007||Viu +MDEREF_HV_gvsv_vivify_rv2hv_helem|5.021007||Viu +MDEREF_HV_padhv_helem|5.021007||Viu +MDEREF_HV_padsv_vivify_rv2hv_helem|5.021007||Viu +MDEREF_HV_pop_rv2hv_helem|5.021007||Viu +MDEREF_HV_vivify_rv2hv_helem|5.021007||Viu +MDEREF_INDEX_const|5.021007||Viu +MDEREF_INDEX_gvsv|5.021007||Viu +MDEREF_INDEX_MASK|5.021007||Viu +MDEREF_INDEX_none|5.021007||Viu +MDEREF_INDEX_padsv|5.021007||Viu +MDEREF_MASK|5.021007||Viu +MDEREF_reload|5.021007||Viu +MDEREF_SHIFT|5.021007||Viu +measure_struct|5.007003||Viu +MEM_ALIGNBYTES|5.003007|5.003007|Vn +memBEGINPs|5.027006||Viu +memBEGINs|5.027006||Viu +MEMBER_TO_FPTR|5.006000||Viu +memCHRs|5.031008|5.003007|p +mem_collxfrm|5.003007||dViu +_mem_collxfrm|5.025002||Viu +memENDPs|5.027006||Viu +memENDs|5.027006||Viu +memEQ|5.004000|5.003007|p +memEQs|5.009005|5.003007|p +memGE|5.025005||Viu +memGT|5.025005||Viu +memLE|5.025005||Viu +MEM_LOG_ALLOC|5.009003||Viu +mem_log_alloc|5.024000||Vniu +mem_log_common|5.010001||Vniu +MEM_LOG_FREE|5.009003||Viu +mem_log_free|5.024000||Vniu +MEM_LOG_REALLOC|5.009003||Viu +mem_log_realloc|5.024000||Vniu +memLT|5.025005||Viu +memNE|5.004000|5.003007|p +memNEs|5.009005|5.003007|p +MEM_SIZE|5.003007||Viu +MEM_SIZE_MAX|5.009005||Viu +MEM_WRAP_CHECK_1|5.009002||Viu +MEM_WRAP_CHECK|5.009002||Viu +MEM_WRAP_CHECK_s|5.027010||Viu +memzero|5.003007|5.003007| +MEOL|5.003007||Viu +MEOL_t8_p8|5.033003||Viu +MEOL_t8_pb|5.033003||Viu +MEOL_tb_p8|5.033003||Viu +MEOL_tb_pb|5.033003||Viu +mess|5.006000|5.004000|pv +mess_alloc|5.005000||Viu +mess_nocontext|5.006000||pvVn +mess_sv|5.013001|5.004000|p +MEXTEND|5.003007||Viu +mfree|5.007002|5.007002|nu +MgBYTEPOS|5.019004||Viu +MgBYTEPOS_set|5.019004||Viu +mg_clear|5.003007|5.003007| +mg_copy|5.003007|5.003007| +mg_dup|5.007003|5.007003|u +MGf_BYTES|5.019004||Viu +MGf_COPY|5.007003||Viu +MGf_DUP|5.007003||Viu +MGf_GSKIP|5.003007||Viu +mg_find|5.003007|5.003007|n +mg_findext|5.013008|5.003007|pn +mg_find_mglob|5.019002||cViu +MGf_LOCAL|5.009003||Viu +MGf_MINMATCH|5.003007||Viu +MGf_PERSIST|5.021005||Viu +mg_free|5.003007|5.003007| +mg_freeext|5.027004|5.027004| +mg_free_type|5.013006|5.013006| +MGf_REFCOUNTED|5.003007||Viu +MGf_REQUIRE_GV|5.021004||Viu +MGf_TAINTEDDIR|5.003007||Viu +mg_get|5.003007|5.003007| +mg_length|5.005000|5.005000|d +mg_localize|5.009003||Vi +mg_magical|5.003007|5.003007|n +MgPV|5.003007||Viu +MgPV_const|5.009003||Viu +MgPV_nolen_const|5.009003||Viu +mg_set|5.003007|5.003007| +mg_size|5.005000|5.005000|u +MgSV|5.033009||Viu +MgTAINTEDDIR|5.003007||Viu +MgTAINTEDDIR_off|5.004000||Viu +MgTAINTEDDIR_on|5.003007||Viu +MICRO_SIGN|5.011002||Viu +MICRO_SIGN_NATIVE|5.017004||Viu +MICRO_SIGN_UTF8|5.033003||Viu +MIN|5.025006||Viu +mini_mktime|5.007002|5.007002|n +MINMOD|5.003007||Viu +MINMOD_t8_p8|5.033003||Viu +MINMOD_t8_pb|5.033003||Viu +MINMOD_tb_p8|5.033003||Viu +MINMOD_tb_pb|5.033003||Viu +minus_v|5.015006||Viu +missingterm|5.005000||Viu +MJD_OFFSET_DEBUG|5.009004||Viu +Mkdir|5.004000||Viu +mkdir|5.005000||Viu +mktemp|5.005000||Viu +Mmap_t|5.006000|5.006000|Vn +mode_from_discipline|5.006000||Viu +Mode_t|5.003007|5.003007|Vn +modkids|5.003007||Viu +MON_10|5.027010||Viu +MON_11|5.027010||Viu +MON_12|5.027010||Viu +MON_1|5.027010||Viu +MON_2|5.027010||Viu +MON_3|5.027010||Viu +MON_4|5.027010||Viu +MON_5|5.027010||Viu +MON_6|5.027010||Viu +MON_7|5.027010||Viu +MON_8|5.027010||Viu +MON_9|5.027010||Viu +more_bodies|||iu +more_sv|5.009004||Viu +moreswitches|5.003007||cVu +mortal_getenv|5.031011||cVnu +Move|5.003007|5.003007| +MoveD|5.009002|5.003007|p +move_proto_attr|5.019005||Viu +M_PAT_MODS|5.009005||Viu +MPH_BUCKETS|5.027011||Viu +MPH_RSHIFT|5.027011||Viu +MPH_VALt|5.027011||Viu +mPUSHi|5.009002|5.003007|p +mPUSHn|5.009002|5.003007|p +mPUSHp|5.009002|5.003007|p +mPUSHs|5.010001|5.003007|p +mPUSHu|5.009002|5.003007|p +mro_clean_isarev|5.013007||Viu +mro_gather_and_rename|5.013007||Viu +mro_get_from_name|5.010001|5.010001|u +mro_get_linear_isa|5.009005|5.009005| +mro_get_linear_isa_c3|||i +mro_get_linear_isa_dfs|5.009005||Vi +MRO_GET_PRIVATE_DATA|5.010001|5.010001| +mro_get_private_data|||cu +mro_isa_changed_in|5.009005||Vi +mro_meta_dup|5.009005||Viu +mro_meta_init|||ciu +mro_method_changed_in|5.009005|5.009005| +mro_package_moved|5.013006||Vi +mro_register|5.010001|5.010001| +mro_set_mro|5.010001|5.010001|u +mro_set_private_data|5.010001|5.010001| +MSPAGAIN|5.003007||Viu +MSVC_DIAG_IGNORE|5.029010||Viu +MSVC_DIAG_IGNORE_DECL|5.029010||Viu +MSVC_DIAG_IGNORE_STMT|5.029010||Viu +MSVC_DIAG_RESTORE|5.029010||Viu +MSVC_DIAG_RESTORE_DECL|5.029010||Viu +MSVC_DIAG_RESTORE_STMT|5.029010||Viu +mul128|5.005000||Viu +MULTICALL|5.009003|5.009003| +multiconcat_stringify|5.027006||cViu +multideref_stringify|5.021009||cViu +MULTILINE_PAT_MOD|5.009005||Viu +MULTIPLICITY|5.006000|5.006000|Vn +MUTABLE_AV|5.010001|5.003007|p +MUTABLE_CV|5.010001|5.003007|p +MUTABLE_GV|5.010001|5.003007|p +MUTABLE_HV|5.010001|5.003007|p +MUTABLE_IO|5.010001|5.003007|p +MUTABLE_PTR|5.010001|5.003007|p +MUTABLE_SV|5.010001|5.003007|p +MUTEX_DESTROY|5.005000||Viu +MUTEX_INIT|5.005000||Viu +MUTEX_INIT_NEEDS_MUTEX_ZEROED|5.005003||Viu +MUTEX_LOCK|5.005000||Viu +MUTEX_UNLOCK|5.005000||Viu +mXPUSHi|5.009002|5.003007|p +mXPUSHn|5.009002|5.003007|p +mXPUSHp|5.009002|5.003007|p +mXPUSHs|5.010001|5.003007|p +mXPUSHu|5.009002|5.003007|p +my|5.011000||Viu +my_atof2|5.029000||cVu +my_atof3|5.029000||cVu +my_atof|5.006000|5.006000| +my_attrs|5.006000||Viu +my_binmode|5.006000||Viu +my_bytes_to_utf8|5.021009||Vniu +my_chsize|5.003007||Vu +my_clearenv|5.009003||Viu +MY_CXT|5.009000|5.009000|p +MY_CXT_CLONE|5.009002|5.009000|p +MY_CXT_INDEX|5.009005||Viu +MY_CXT_INIT|5.009000|5.009000|p +my_cxt_init|5.009000|5.009000|u +MY_CXT_INIT_ARG|5.013005||Viu +MY_CXT_INIT_INTERP|5.009003||Viu +my_dirfd|5.009005|5.009005|nu +my_exit|5.003007|5.003007| +my_exit_jump|5.005000||Viu +my_failure_exit|5.004000|5.004000|u +my_fflush_all|5.006000|5.006000|u +my_fork|5.007003|5.007003|nu +my_kid|5.006000||Viu +my_lstat|5.013003||Viu +my_lstat_flags|5.013003||cViu +my_memrchr|5.027006||Vniu +my_mkostemp_cloexec|||niu +my_mkostemp|||niu +my_mkstemp_cloexec|||niu +my_mkstemp|||niu +my_nl_langinfo|5.027006||Vniu +my_pclose|5.003007|5.003007|u +my_popen|5.003007|5.003007|u +my_popen_list|5.007001|5.007001|u +my_setenv|5.003007|5.003007| +my_snprintf|5.009004|5.003007|pvn +my_socketpair|5.007003|5.007003|nu +my_sprintf|5.009003|5.003007|pdn +my_stat|5.013003||Viu +my_stat_flags|5.013003||cViu +my_strerror|5.021001||Viu +my_strftime|5.007002|5.007002| +my_strlcat|5.009004|5.003007|pn +my_strlcpy|5.009004|5.003007|pn +my_strnlen|5.027006|5.003007|pn +my_strtod|5.029010|5.029010|n +my_unexec|5.003007||Viu +my_vsnprintf|5.009004|5.009004|n +N0|5.029001||Viu +N10|5.029001||Viu +N11|5.029001||Viu +N1|5.029001||Viu +N2|5.029001||Viu +N3|5.029001||Viu +N4|5.029001||Viu +N5|5.029001||Viu +N6|5.029001||Viu +N7|5.029001||Viu +N8|5.029001||Viu +N9|5.029001||Viu +NAN_COMPARE_BROKEN|5.021005||Viu +NANYOFM|5.029005||Viu +NANYOFM_t8_p8|5.033003||Viu +NANYOFM_t8_pb|5.033003||Viu +NANYOFM_tb_p8|5.033003||Viu +NANYOFM_tb_pb|5.033003||Viu +NATIVE8_TO_UNI|5.011000||Viu +NATIVE_BYTE_IS_INVARIANT|5.019004||Viu +NATIVE_SKIP|5.019004||Viu +NATIVE_TO_ASCII|5.007001||Viu +NATIVE_TO_I8|5.015006||Viu +NATIVE_TO_LATIN1|5.019004|5.003007|p +NATIVE_TO_NEED|5.019004||dcVnu +NATIVE_TO_UNI|5.007001|5.003007|p +NATIVE_TO_UTF|5.007001||Viu +NATIVE_UTF8_TO_I8|5.019004||Viu +nBIT_MASK|5.033001||Viu +nBIT_UMAX|5.033001||Viu +NBOUND|5.003007||Viu +NBOUNDA|5.013009||Viu +NBOUNDA_t8_p8|5.033003||Viu +NBOUNDA_t8_pb|5.033003||Viu +NBOUNDA_tb_p8|5.033003||Viu +NBOUNDA_tb_pb|5.033003||Viu +NBOUNDL|5.004000||Viu +NBOUNDL_t8_p8|5.033003||Viu +NBOUNDL_t8_pb|5.033003||Viu +NBOUNDL_tb_p8|5.033003||Viu +NBOUNDL_tb_pb|5.033003||Viu +NBOUND_t8_p8|5.033003||Viu +NBOUND_t8_pb|5.033003||Viu +NBOUND_tb_p8|5.033003||Viu +NBOUND_tb_pb|5.033003||Viu +NBOUNDU|5.013009||Viu +NBOUNDU_t8_p8|5.033003||Viu +NBOUNDU_t8_pb|5.033003||Viu +NBOUNDU_tb_p8|5.033003||Viu +NBOUNDU_tb_pb|5.033003||Viu +NBSP_NATIVE|5.021001||Viu +NBSP_UTF8|5.021001||Viu +NDBM_H_USES_PROTOTYPES|5.032001|5.032001|Vn +NDEBUG|5.021007||Viu +NEED_PTHREAD_INIT|5.005000||Viu +need_utf8|5.009003||Vniu +NEED_VA_COPY|5.007001|5.007001|Vn +NEGATIVE_INDICES_VAR|5.008001||Viu +Netdb_hlen_t|5.005000|5.005000|Vn +Netdb_host_t|5.005000|5.005000|Vn +Netdb_name_t|5.005000|5.005000|Vn +Netdb_net_t|5.005000|5.005000|Vn +NETDB_R_OBSOLETE|5.008000||Viu +New|5.003007||Viu +newANONATTRSUB|5.006000|5.006000|u +newANONHASH|5.003007|5.003007|u +newANONLIST|5.003007|5.003007|u +newANONSUB|5.003007|5.003007|u +newASSIGNOP|5.003007|5.003007| +newATTRSUB|5.006000|5.006000| +newATTRSUB_x|5.019008||cVi +newAV|5.003007|5.003007| +newAV_alloc_x|5.035001|5.035001| +newAV_alloc_xz|5.035001|5.035001| +newAVREF|5.003007|5.003007|u +newBINOP|5.003007|5.003007| +Newc|5.003007||Viu +new_collate|5.006000||Viu +newCONDOP|5.003007|5.003007| +new_constant|||iu +newCONSTSUB|5.004005|5.003007|p +newCONSTSUB_flags|5.015006|5.015006| +new_ctype|5.006000||Viu +newCVREF|5.003007|5.003007|u +newDEFSVOP|5.021006|5.021006| +newFORM|5.003007|5.003007|u +newFOROP|5.013007|5.013007| +newGIVENOP|5.009003|5.009003| +newGIVWHENOP|5.027008||Viu +newGP|||xiu +newGVgen|5.003007|5.003007|u +newGVgen_flags|5.015004|5.015004|u +newGVOP|5.003007|5.003007| +newGVREF|5.003007|5.003007|u +new_he|5.005000||Viu +newHV|5.003007|5.003007| +newHVhv|5.005000|5.005000|u +newHVREF|5.003007|5.003007|u +_new_invlist|5.013010||cViu +_new_invlist_C_array|5.015008||cViu +newIO|5.003007|5.003007|u +newLISTOP|5.003007|5.003007| +newLOGOP|5.003007|5.003007| +new_logop|5.005000||Viu +newLOOPEX|5.003007|5.003007| +newLOOPOP|5.003007|5.003007| +newMETHOP|5.021005|5.021005| +newMETHOP_internal|5.021005||Viu +newMETHOP_named|5.021005|5.021005| +new_msg_hv|5.027009||Viu +newMYSUB|5.017004|5.017004|u +newNULLLIST|5.003007|5.003007| +new_numeric|5.006000||Viu +newOP|5.003007|5.003007| +NewOp|5.008001||Viu +newPADNAMELIST|5.021007|5.021007|xn +newPADNAMEouter|5.021007|5.021007|xn +newPADNAMEpvn|5.021007|5.021007|xn +newPADOP|5.006000||V +newPMOP|5.003007|5.003007| +newPROG|5.003007|5.003007|u +newPVOP|5.003007|5.003007| +newRANGE|5.003007|5.003007| +newRV|5.003007|5.003007| +newRV_inc|5.004000|5.003007|p +newRV_noinc|5.004000|5.003007|p +newSLICEOP|5.003007|5.003007| +new_stackinfo|5.005000|5.005000|u +newSTATEOP|5.003007|5.003007| +newSTUB|5.017001||Viu +newSUB|5.003007|5.003007| +newSV|5.003007|5.003007| +NEWSV|5.003007||Viu +newSVavdefelem|5.019004||Viu +newSVhek|5.009003|5.009003| +newSViv|5.003007|5.003007| +newSVnv|5.006000|5.003007| +newSVOP|5.003007|5.003007| +newSVpadname|5.017004|5.017004|x +newSVpv|5.003007|5.003007| +newSVpvf|5.006000|5.004000|v +newSVpvf_nocontext|5.006000||vVn +newSVpvn|5.004005|5.003007|p +newSVpvn_flags|5.010001|5.003007|p +newSVpvn_share|5.007001|5.003007|p +newSVpvn_utf8|5.010001|5.003007|p +newSVpvs|5.009003|5.003007|p +newSVpvs_flags|5.010001|5.003007|p +newSVpv_share|5.013006|5.013006| +newSVpvs_share|5.009003|5.003007|p +newSVREF|5.003007|5.003007|u +newSVrv|5.003007|5.003007| +newSVsv|5.003007|5.003007| +newSVsv_flags|5.029009|5.003007|p +newSVsv_nomg|5.029009|5.003007|p +newSV_type|5.009005|5.003007|p +newSVuv|5.006000|5.003007|p +newTRYCATCHOP|5.033007|5.033007|x +newUNOP|5.003007|5.003007| +newUNOP_AUX|5.021007|5.021007| +new_version|5.009000|5.009000| +NEW_VERSION|5.019008||Viu +new_warnings_bitfield|||xciu +newWHENOP|5.027008|5.027008| +newWHILEOP|5.013007|5.013007| +Newx|5.009003|5.003007|p +Newxc|5.009003|5.003007|p +newXS|5.006000|5.006000| +newXS_deffile|5.021006||cViu +newXS_flags|5.009004|5.009004|xu +newXS_len_flags|5.015006||Vi +newXSproto|5.006000|5.006000| +Newxz|5.009003|5.003007|p +Newz|5.003007||Viu +nextargv|5.003007||Viu +nextchar|5.005000||Viu +NEXT_LINE_CHAR|5.007003||Viu +NEXT_OFF|5.005000||Viu +NEXTOPER|5.003007||Viu +next_symbol|5.007003||Viu +ninstr|5.003007|5.003007|n +NL_LANGINFO_LOCK|5.033005||Viu +NL_LANGINFO_UNLOCK|5.033005||Viu +no_bareword_allowed|5.005004||Viu +no_bareword_filehandle|5.033006||Viu +NOCAPTURE_PAT_MOD|5.021008||Viu +NOCAPTURE_PAT_MODS|5.021008||Viu +NODE_ALIGN|5.005000||Viu +NODE_ALIGN_FILL|5.005000||Viu +NODE_STEP_REGNODE|5.005000||Viu +NODE_SZ_STR|5.006000||Viu +NO_ENV_ARRAY_IN_MAIN|5.009004||Viu +NOEXPR|5.027010||Viu +NofAMmeth|5.003007||Viu +no_fh_allowed|5.003007||Viu +NOLINE|5.003007||Viu +NO_LOCALE|5.007000||Viu +NO_LOCALECONV_MON_THOUSANDS_SEP|5.005000||Viu +NONDESTRUCT_PAT_MOD|5.013002||Viu +NONDESTRUCT_PAT_MODS|5.013002||Viu +NON_OTHER_COUNT|5.033005||Viu +no_op|5.003007||Viu +NOOP|5.005000|5.003007|p +noperl_die|5.021006||vVniu +NORETURN_FUNCTION_END|5.009003||Viu +NORMAL|5.003007||Viu +NOSTR|5.027010||Viu +NO_TAINT_SUPPORT|5.017006||Viu +not_a_number|5.005000||Viu +NOTE3|5.027001||Viu +NOTHING|5.003007||Viu +NOTHING_t8_p8|5.033003||Viu +NOTHING_t8_pb|5.033003||Viu +NOTHING_tb_p8|5.033003||Viu +NOTHING_tb_pb|5.033003||Viu +nothreadhook|5.008000|5.008000| +notify_parser_that_changed_to_utf8|5.025010||Viu +not_incrementable|5.021002||Viu +NOT_IN_PAD|5.005000||Viu +NOT_REACHED|5.019006|5.003007|poVnu +NPOSIXA|5.017003||Viu +NPOSIXA_t8_p8|5.033003||Viu +NPOSIXA_t8_pb|5.033003||Viu +NPOSIXA_tb_p8|5.033003||Viu +NPOSIXA_tb_pb|5.033003||Viu +NPOSIXD|5.017003||Viu +NPOSIXD_t8_p8|5.033003||Viu +NPOSIXD_t8_pb|5.033003||Viu +NPOSIXD_tb_p8|5.033003||Viu +NPOSIXD_tb_pb|5.033003||Viu +NPOSIXL|5.017003||Viu +NPOSIXL_t8_p8|5.033003||Viu +NPOSIXL_t8_pb|5.033003||Viu +NPOSIXL_tb_p8|5.033003||Viu +NPOSIXL_tb_pb|5.033003||Viu +NPOSIXU|5.017003||Viu +NPOSIXU_t8_p8|5.033003||Viu +NPOSIXU_t8_pb|5.033003||Viu +NPOSIXU_tb_p8|5.033003||Viu +NPOSIXU_tb_pb|5.033003||Viu +NSIG|5.009003||Viu +ntohi|5.003007||Viu +ntohl|5.003007||Viu +ntohs|5.003007||Viu +nuke_stacks|5.005000||Viu +Null|5.003007||Viu +Nullav|5.003007|5.003007|d +Nullch|5.003007|5.003007| +Nullcv|5.003007|5.003007|d +Nullfp|5.003007||Viu +Nullgv|5.003007||Viu +Nullhe|5.003007||Viu +Nullhek|5.004000||Viu +Nullhv|5.003007|5.003007|d +Nullop|5.003007||Viu +Nullsv|5.003007|5.003007| +NUM2PTR|5.006000||pVu +NUM_ANYOF_CODE_POINTS|5.021004||Viu +NUM_CLASSES|5.029001||Viu +num_overflow|5.009001||Vniu +NV_BIG_ENDIAN|5.021009||Viu +NV_DIG|5.006000||Viu +NVef|5.006001|5.003007|poVn +NV_EPSILON|5.007003||Viu +NVff|5.006001|5.003007|poVn +NVgf|5.006001|5.003007|poVn +NV_IMPLICIT_BIT|5.021009||Viu +NV_INF|5.007003||Viu +NV_LITTLE_ENDIAN|5.021009||Viu +NVMANTBITS|5.023000|5.023000|Vn +NV_MANT_DIG|5.006001||Viu +NV_MAX_10_EXP|5.007003||Viu +NV_MAX|5.006001||Viu +NV_MAX_EXP|5.021003||Viu +NV_MIN_10_EXP|5.007003||Viu +NV_MIN|5.006001||Viu +NV_MIN_EXP|5.021003||Viu +NV_MIX_ENDIAN|5.021009||Viu +NV_NAN|5.007003||Viu +NV_NAN_BITS|5.023000||Viu +NV_NAN_IS_QUIET|5.023000||Viu +NV_NAN_IS_SIGNALING|5.023000||Viu +NV_NAN_PAYLOAD_MASK|5.023000||Viu +NV_NAN_PAYLOAD_MASK_IEEE_754_128_BE|5.023000||Viu +NV_NAN_PAYLOAD_MASK_IEEE_754_128_LE|5.023000||Viu +NV_NAN_PAYLOAD_MASK_IEEE_754_64_BE|5.023000||Viu +NV_NAN_PAYLOAD_MASK_IEEE_754_64_LE|5.023000||Viu +NV_NAN_PAYLOAD_MASK_SKIP_EIGHT|5.023006||Viu +NV_NAN_PAYLOAD_PERM_0_TO_7|5.023000||Viu +NV_NAN_PAYLOAD_PERM|5.023000||Viu +NV_NAN_PAYLOAD_PERM_7_TO_0|5.023000||Viu +NV_NAN_PAYLOAD_PERM_IEEE_754_128_BE|5.023000||Viu +NV_NAN_PAYLOAD_PERM_IEEE_754_128_LE|5.023000||Viu +NV_NAN_PAYLOAD_PERM_IEEE_754_64_BE|5.023000||Viu +NV_NAN_PAYLOAD_PERM_IEEE_754_64_LE|5.023000||Viu +NV_NAN_PAYLOAD_PERM_SKIP_EIGHT|5.023006||Viu +NV_NAN_QS_BIT|5.023000||Viu +NV_NAN_QS_BIT_OFFSET|5.023000||Viu +NV_NAN_QS_BIT_SHIFT|5.023000||Viu +NV_NAN_QS_BYTE|5.023000||Viu +NV_NAN_QS_BYTE_OFFSET|5.023000||Viu +NV_NAN_QS_QUIET|5.023000||Viu +NV_NAN_QS_SIGNALING|5.023000||Viu +NV_NAN_QS_TEST|5.023000||Viu +NV_NAN_QS_XOR|5.023000||Viu +NV_NAN_SET_QUIET|5.023000||Viu +NV_NAN_SET_SIGNALING|5.023000||Viu +NV_OVERFLOWS_INTEGERS_AT|5.010001|5.010001|Vn +NV_PRESERVES_UV_BITS|5.006001|5.006001|Vn +NVSIZE|5.006001|5.006001|Vn +NVTYPE|5.006000|5.003007|poVn +NV_VAX_ENDIAN|5.025003||Viu +NV_WITHIN_IV|5.006000||Viu +NV_WITHIN_UV|5.006000||Viu +NV_X86_80_BIT|5.025004||Viu +NV_ZERO_IS_ALLBITS_ZERO|5.035001|5.035001|Vn +OA_AVREF|5.003007||Viu +OA_BASEOP|5.005000||Viu +OA_BASEOP_OR_UNOP|5.005000||Viu +OA_BINOP|5.005000||Viu +OA_CLASS_MASK|5.005000||Viu +OA_COP|5.005000||Viu +OA_CVREF|5.003007||Viu +OA_DANGEROUS|5.003007||Viu +OA_DEFGV|5.003007||Viu +OA_FILEREF|5.003007||Viu +OA_FILESTATOP|5.005000||Viu +OA_FOLDCONST|5.003007||Viu +OA_HVREF|5.003007||Viu +OA_LIST|5.003007||Viu +OA_LISTOP|5.005000||Viu +OA_LOGOP|5.005000||Viu +OA_LOOP|5.005000||Viu +OA_LOOPEXOP|5.005000||Viu +OA_MARK|5.003007||Viu +OA_METHOP|5.021005||Viu +OA_OPTIONAL|5.003007||Viu +OA_OTHERINT|5.003007||Viu +OA_PADOP|5.006000||Viu +OA_PMOP|5.005000||Viu +OA_PVOP_OR_SVOP|5.006000||Viu +OA_RETSCALAR|5.003007||Viu +OA_SCALAR|5.003007||Viu +OA_SCALARREF|5.003007||Viu +OASHIFT|5.003007||Viu +OA_SVOP|5.005000||Viu +OA_TARGET|5.003007||Viu +OA_TARGLEX|5.006000||Viu +OA_UNOP|5.005000||Viu +OA_UNOP_AUX|5.021007||Viu +O_BINARY|5.006000||Viu +O_CREAT|5.006000||Viu +OCSHIFT|5.006000||Viu +OCTAL_VALUE|5.019008||Viu +Off_t|5.003007|5.003007|Vn +Off_t_size|5.006000|5.006000|Vn +OFFUNI_IS_INVARIANT|5.023003||Viu +OFFUNISKIP|5.019004||Viu +ONCE_PAT_MOD|5.009005||Viu +ONCE_PAT_MODS|5.009005||Viu +oopsAV|5.003007||Viu +oopsHV|5.003007||Viu +OP|5.003007||Viu +op_append_elem|5.013006|5.013006| +op_append_list|5.013006|5.013006| +opASSIGN|5.003007||Viu +OP_BINARY|5.004000||Viu +OP_CHECK_MUTEX_INIT|5.015008||Viu +OP_CHECK_MUTEX_LOCK|5.015008||Viu +OP_CHECK_MUTEX_TERM|5.015008||Viu +OP_CHECK_MUTEX_UNLOCK|5.015008||Viu +OP_CLASS|5.013007|5.013007| +op_class|5.025010|5.025010| +op_clear|5.006000||cViu +OPCODE|5.003007||Viu +op_contextualize|5.013006|5.013006| +op_convert_list|5.021006|5.021006| +OP_DESC|5.007003|5.007003| +op_dump|5.006000|5.006000| +OPEN|5.003007||Viu +open|5.005000||Viu +opendir|5.005000||Viu +openn_cleanup|5.019010||Viu +openn_setup|5.019010||Viu +open_script|5.005000||Viu +OPEN_t8_p8|5.033003||Viu +OPEN_t8_pb|5.033003||Viu +OPEN_tb_p8|5.033003||Viu +OPEN_tb_pb|5.033003||Viu +OPERAND|5.003007||Viu +OPERANDl|5.031005||Viu +OPERANDs|5.031005||Viu +OPFAIL|5.009005||Viu +OPFAIL_t8_p8|5.033003||Viu +OPFAIL_t8_pb|5.033003||Viu +OPFAIL_tb_p8|5.033003||Viu +OPFAIL_tb_pb|5.033003||Viu +OPf_FOLDED|5.021007||Viu +OPf_KIDS|5.003007|5.003007| +OPf_KNOW|5.003007||Viu +OPf_LIST|5.003007||Viu +OPf_MOD|5.003007||Viu +OPf_PARENS|5.003007||Viu +op_free|5.003007|5.003007| +OP_FREED|5.017002||Viu +OPf_REF|5.003007||Viu +OPf_SPECIAL|5.003007||Viu +OPf_STACKED|5.003007||Viu +OPf_WANT|5.004000||Viu +OPf_WANT_LIST|5.004000||Viu +OPf_WANT_SCALAR|5.004000||Viu +OPf_WANT_VOID|5.004000||Viu +OP_GIMME|5.004000||Viu +OP_GIMME_REVERSE|5.010001||Viu +OpHAS_SIBLING|5.021007|5.003007|p +op_integerize|5.015003||Viu +OP_IS_DIRHOP|5.015003||Viu +OP_IS_FILETEST|5.006001||Viu +OP_IS_FILETEST_ACCESS|5.008001||Viu +OP_IS_INFIX_BIT|5.021009||Viu +OP_IS_NUMCOMPARE|5.015003||Viu +OP_IS_SOCKET|5.006001||Viu +OP_IS_STAT|5.031001||Viu +OpLASTSIB_set|5.021011|5.003007|p +op_linklist|5.013006|5.013006| +op_lvalue|5.013007|5.013007|x +op_lvalue_flags|||ciu +OP_LVALUE_NO_CROAK|5.015001||Viu +OpMAYBESIB_set|5.021011|5.003007|p +opmethod_stash|5.021007||Viu +OpMORESIB_set|5.021011|5.003007|p +OP_NAME|5.007003|5.007003| +op_null|5.007002|5.007002| +OPpALLOW_FAKE|5.015006||Viu +op_parent|5.025001|5.025001|n +OPpARG1_MASK|5.021004||Viu +OPpARG2_MASK|5.021004||Viu +OPpARG3_MASK|5.021004||Viu +OPpARG4_MASK|5.021004||Viu +OPpARGELEM_AV|5.025004||Viu +OPpARGELEM_HV|5.025004||Viu +OPpARGELEM_MASK|5.025004||Viu +OPpARGELEM_SV|5.025004||Viu +OPpASSIGN_BACKWARDS|5.003007||Viu +OPpASSIGN_COMMON_AGG|5.023002||Viu +OPpASSIGN_COMMON_RC1|5.023002||Viu +OPpASSIGN_COMMON_SCALAR|5.023002||Viu +OPpASSIGN_CV_TO_GV|5.009003||Viu +OPpASSIGN_TRUEBOOL|5.027003||Viu +OPpAVHVSWITCH_MASK|5.025006||Viu +OPpCONCAT_NESTED|5.027007||Viu +OPpCONST_BARE|5.003007||Viu +OPpCONST_ENTERED|5.003007||Viu +OPpCONST_NOVER|5.009003||Viu +OPpCONST_SHORTCIRCUIT|5.009001||Viu +OPpCONST_STRICT|5.005004||Viu +OPpCOREARGS_DEREF1|5.015003||Viu +OPpCOREARGS_DEREF2|5.015003||Viu +OPpCOREARGS_PUSHMARK|5.015003||Viu +OPpCOREARGS_SCALARMOD|5.015003||Viu +OPpDEREF|5.004000||Viu +OPpDEREF_AV|5.003007||Viu +OPpDEREF_HV|5.003007||Viu +OPpDEREF_SV|5.004000||Viu +OPpDONT_INIT_GV|5.009003||Viu +OPpEARLY_CV|5.006000|5.006000| +OPpENTERSUB_AMPER|5.003007|5.003007| +OPpENTERSUB_DB|5.003007||Viu +OPpENTERSUB_HASTARG|5.006000||Viu +OPpENTERSUB_INARGS|5.006000||Viu +OPpENTERSUB_LVAL_MASK|5.015001||Viu +OPpENTERSUB_NOPAREN|5.005004||Viu +OPpEVAL_BYTES|5.015005||Viu +OPpEVAL_COPHH|5.015005||Viu +OPpEVAL_HAS_HH|5.009003||Viu +OPpEVAL_RE_REPARSING|5.017011||Viu +OPpEVAL_UNICODE|5.015005||Viu +OPpEXISTS_SUB|5.006000||Viu +OPpFLIP_LINENUM|5.003007||Viu +OPpFT_ACCESS|5.008001||Viu +OPpFT_AFTER_t|5.015008||Viu +OPpFT_STACKED|5.009001||Viu +OPpFT_STACKING|5.015001||Viu +OPpHINT_STRICT_REFS|5.021004||Viu +OPpHUSH_VMSISH|5.007003||Viu +OPpINDEX_BOOLNEG|5.027003||Viu +OPpITER_DEF|5.027008||Viu +OPpITER_REVERSED|5.009002||Viu +OPpKVSLICE|5.027001||Viu +OPpLIST_GUESSED|5.003007||Viu +OPpLVAL_DEFER|5.004000||Viu +OPpLVAL_INTRO|5.003007||Viu +OPpLVALUE|5.019006||Viu +OPpLVREF_AV|5.021005||Viu +OPpLVREF_CV|5.021005||Viu +OPpLVREF_ELEM|5.021005||Viu +OPpLVREF_HV|5.021005||Viu +OPpLVREF_ITER|5.021005||Viu +OPpLVREF_SV|5.021005||Viu +OPpLVREF_TYPE|5.021005||Viu +OPpMAYBE_LVSUB|5.007001||Viu +OPpMAYBE_TRUEBOOL|5.017004||Viu +OPpMAY_RETURN_CONSTANT|5.009003||Viu +OPpMULTICONCAT_APPEND|5.027006||Viu +OPpMULTICONCAT_FAKE|5.027006||Viu +OPpMULTICONCAT_STRINGIFY|5.027006||Viu +OPpMULTIDEREF_DELETE|5.021007||Viu +OPpMULTIDEREF_EXISTS|5.021007||Viu +OPpOFFBYONE|5.015002||Viu +OPpOPEN_IN_CRLF|5.006000||Viu +OPpOPEN_IN_RAW|5.006000||Viu +OPpOPEN_OUT_CRLF|5.006000||Viu +OPpOPEN_OUT_RAW|5.006000||Viu +OPpOUR_INTRO|5.006000||Viu +OPpPADHV_ISKEYS|5.027003||Viu +OPpPADRANGE_COUNTMASK|5.017006||Viu +OPpPADRANGE_COUNTSHIFT|5.017006||Viu +OPpPAD_STATE|5.009004||Viu +OPpPV_IS_UTF8|5.016000||Viu +OPpREFCOUNTED|5.006000||Viu +OPpREPEAT_DOLIST|5.003007||Viu +op_prepend_elem|5.013006|5.013006| +OPpREVERSE_INPLACE|5.011002||Viu +OPpRV2HV_ISKEYS|5.027003||Viu +OPpSLICE|5.004000||Viu +OPpSLICEWARNING|5.019004||Viu +OPpSORT_DESCEND|5.009002||Viu +OPpSORT_INPLACE|5.009001||Viu +OPpSORT_INTEGER|5.006000||Viu +OPpSORT_NUMERIC|5.006000||Viu +OPpSORT_REVERSE|5.006000||Viu +OPpSORT_STABLE|5.009003||Viu +OPpSORT_UNSTABLE|5.027004||Viu +OPpSPLIT_ASSIGN|5.025006||Viu +OPpSPLIT_IMPLIM|5.019002||Viu +OPpSPLIT_LEX|5.025006||Viu +OPpSUBSTR_REPL_FIRST|5.015006||Viu +OPpTARGET_MY|5.006000||Viu +OPpTRANS_ALL|5.009001||Viu +OPpTRANS_CAN_FORCE_UTF8|5.031006||Viu +OPpTRANS_COMPLEMENT|5.003007||Viu +OPpTRANS_DELETE|5.003007||Viu +OPpTRANS_FROM_UTF|5.006000||Viu +OPpTRANS_GROWS|5.006000||Viu +OPpTRANS_IDENTICAL|5.006000||Viu +OPpTRANS_SQUASH|5.003007||Viu +OPpTRANS_TO_UTF|5.006000||Viu +OPpTRANS_USE_SVOP|5.031006||Viu +OPpTRUEBOOL|5.017004||Viu +OpREFCNT_dec|5.006000||Viu +op_refcnt_dec|||xiu +OpREFCNT_inc|5.006000||Viu +op_refcnt_inc|||xiu +OP_REFCNT_INIT|5.006000||Viu +OP_REFCNT_LOCK|5.006000||Viu +op_refcnt_lock|5.009002|5.009002|u +OpREFCNT_set|5.006000||Viu +OP_REFCNT_TERM|5.006000||Viu +OP_REFCNT_UNLOCK|5.006000||Viu +op_refcnt_unlock|5.009002|5.009002|u +op_relocate_sv|5.021005||Viu +op_scope|5.013007|5.013007|x +OP_SIBLING|5.021002||Viu +OpSIBLING|5.021007|5.003007|p +op_sibling_splice|5.021002|5.021002|n +OpSLAB|5.017002||Viu +opslab_force_free|5.017002||Viu +opslab_free|5.017002||Viu +opslab_free_nopad|5.017002||Viu +OpslabREFCNT_dec|5.017002||Viu +OpslabREFCNT_dec_padok|5.017002||Viu +OpSLOT|5.017002||Viu +OPSLOT_HEADER|5.017002||Viu +OpSLOToff|5.033001||Viu +op_std_init|5.015003||Viu +OPTIMIZED|5.005000||Viu +OPTIMIZED_t8_p8|5.033003||Viu +OPTIMIZED_t8_pb|5.033003||Viu +OPTIMIZED_tb_p8|5.033003||Viu +OPTIMIZED_tb_pb|5.033003||Viu +optimize_op|5.027006||Viu +optimize_optree|5.027006||Vi +optimize_regclass|5.035001||Viu +OP_TYPE_IS|5.019007|5.019007| +OP_TYPE_IS_NN|5.019010||Viu +OP_TYPE_ISNT|5.019010||Viu +OP_TYPE_ISNT_AND_WASNT|5.019010||Viu +OP_TYPE_ISNT_AND_WASNT_NN|5.019010||Viu +OP_TYPE_ISNT_NN|5.019010||Viu +OP_TYPE_IS_OR_WAS|5.019010|5.019010| +OP_TYPE_IS_OR_WAS_NN|5.019010||Viu +op_unscope|5.017003||xViu +O_RDONLY|5.006000||Viu +O_RDWR|5.006000||Viu +ORIGMARK|5.003007|5.003007| +OSNAME|5.003007|5.003007|Vn +OSVERS|5.007002|5.007002|Vn +O_TEXT|5.006000||Viu +OutCopFILE|5.007003||Viu +output_non_portable|5.031008||Viu +output_posix_warnings|5.029005||Viu +O_VMS_DELETEONCLOSE|5.031002||Viu +O_WRONLY|5.006000||Viu +package|5.003007||Viu +package_version|5.011001||Viu +pack_cat|5.007003|5.007003|d +packlist|5.008001|5.008001| +pack_rec|5.008001||Viu +packWARN2|5.007003|5.003007|p +packWARN3|5.007003|5.003007|p +packWARN4|5.007003|5.003007|p +packWARN|5.007003|5.003007|p +pad_add_anon|5.008001|5.008001| +pad_add_name_pv|5.015001|5.015001| +pad_add_name_pvn|5.015001|5.015001| +pad_add_name_pvs|5.015001|5.015001| +pad_add_name_sv|5.015001|5.015001| +padadd_NO_DUP_CHECK|5.011002||Viu +padadd_OUR|5.011002||Viu +padadd_STALEOK|5.017003||Viu +padadd_STATE|5.011002||Viu +pad_add_weakref|5.021007||Viu +pad_alloc|5.003007|5.003007|x +pad_alloc_name|5.015001||Vi +PadARRAY|5.017004|5.017004|x +PAD_BASE_SV|5.008001||Vi +pad_block_start|5.008001||Vi +pad_check_dup|5.008001||Vi +PAD_CLONE_VARS|5.008001||Vi +PAD_COMPNAME|5.017004||Viu +PAD_COMPNAME_FLAGS|5.008001||Vi +PAD_COMPNAME_FLAGS_isOUR|5.009004||Viu +PAD_COMPNAME_GEN|5.008001||Vi +PAD_COMPNAME_GEN_set|5.009003||Vi +PAD_COMPNAME_OURSTASH|5.008001||Vi +PAD_COMPNAME_PV|5.008001||Vi +PAD_COMPNAME_SV|5.009005||Viu +PAD_COMPNAME_TYPE|5.008001||Vi +pad_compname_type|5.009003|5.009003|d +PAD_FAKELEX_ANON|5.009005||Viu +PAD_FAKELEX_MULTI|5.009005||Viu +pad_findlex|5.005000||Vi +pad_findmy_pv|5.015001|5.015001| +pad_findmy_pvn|5.015001|5.015001| +pad_findmy_pvs|5.015001|5.015001| +pad_findmy_sv|5.015001|5.015001| +pad_fixup_inner_anons|5.008001||Vi +pad_free|5.003007||Vi +pad_leavemy|5.003007||Vi +PadlistARRAY|5.017004|5.017004|x +padlist_dup|5.013002||Vi +PadlistMAX|5.017004|5.017004|x +PadlistNAMES|5.017004|5.017004|x +PadlistNAMESARRAY|5.017004|5.017004|x +PadlistNAMESMAX|5.017004|5.017004|x +PadlistREFCNT|5.017004|5.017004|x +padlist_store|5.017004||Viu +PadMAX|5.017004|5.017004|x +padname_dup|5.021007||Vi +PadnameFLAGS|5.021007||Viu +padname_free|||ciu +PADNAME_FROM_PV|5.021007||Viu +PadnameIN_SCOPE|5.031004||Vniu +PadnameIsOUR|5.017004||Vi +PadnameIsSTATE|5.017004||Vi +PadnameIsSTATE_on|5.021007||Viu +PadnameLEN|5.017004|5.017004|x +PadnamelistARRAY|5.017004|5.017004|x +padnamelist_dup|5.021007||Vi +padnamelist_fetch|5.021007|5.021007|xn +padnamelist_free|||ciu +PadnamelistMAX|5.017004|5.017004|x +PadnamelistMAXNAMED|5.019003||Viu +PadnamelistREFCNT|5.021007|5.021007|x +PadnamelistREFCNT_dec|5.021007|5.021007|x +padnamelist_store|5.021007|5.021007|x +PadnameLVALUE|5.021006||Viu +PadnameLVALUE_on|5.021006||Viu +PadnameOURSTASH|5.017004||Vi +PadnameOURSTASH_set|5.021007||Viu +PadnameOUTER|5.017004||Vi +PadnamePROTOCV|5.021007||Viu +PadnamePV|5.017004|5.017004|x +PadnameREFCNT|5.021007|5.021007|x +PadnameREFCNT_dec|5.021007|5.021007|x +PadnameSV|5.017004|5.017004|x +PADNAMEt_LVALUE|5.021007||Viu +PADNAMEt_OUR|5.021007||Viu +PADNAMEt_OUTER|5.021007|5.021007| +PADNAMEt_STATE|5.021007||Viu +PADNAMEt_TYPED|5.021007||Viu +PadnameTYPE|5.017004||Vi +PadnameTYPE_set|5.021007||Viu +PadnameUTF8|5.017004|5.017004|x +pad_new|5.008001|5.008001| +padnew_CLONE|5.008001||Viu +padnew_SAVE|5.008001||Viu +padnew_SAVESUB|5.008001||Viu +pad_peg|5.009004||Viu +pad_push|5.008001||cVi +pad_reset|5.003007||Vi +PAD_RESTORE_LOCAL|5.008001||Vi +PAD_SAVE_LOCAL|5.008001||Vi +PAD_SAVE_SETNULLPAD|5.008001||Vi +PAD_SET_CUR|5.008001||Vi +PAD_SET_CUR_NOSAVE|5.008002||Vi +pad_setsv|5.008001||cV +PAD_SETSV|5.008001||Vi +pad_sv|5.003007||cV +PAD_SV|5.003007||Vi +PAD_SVl|5.008001||Vi +pad_swipe|5.003007||Vi +pad_tidy|5.008001|5.008001|x +panic_write2|5.008001||Viu +PARENT_FAKELEX_FLAGS|5.009005||Viu +PARENT_PAD_INDEX|5.009005||Viu +parse_arithexpr|5.013008|5.013008|x +parse_barestmt|5.013007|5.013007|x +parse_block|5.013007|5.013007|x +parse_body|5.006000||Viu +parse_fullexpr|5.013008|5.013008|x +parse_fullstmt|5.013005|5.013005|x +parse_gv_stash_name|5.019004||Viu +parse_ident|5.017010||Viu +parse_label|5.013007|5.013007|x +parse_listexpr|5.013008|5.013008|x +parse_lparen_question_flags|5.017009||Viu +PARSE_OPTIONAL|5.013007|5.013007| +parser_dup|5.009000|5.009000|u +parser_free|5.009005||Viu +parser_free_nexttoke_ops|5.017006||Viu +parse_stmtseq|5.013006|5.013006|x +parse_subsignature|5.031003|5.031003|x +parse_termexpr|5.013008|5.013008|x +parse_unicode_opts|5.008001||Viu +parse_uniprop_string|5.027011||Viu +PATCHLEVEL|5.003007||Viu +path_is_searchable|5.019001||Vniu +Pause|5.003007||Viu +pause|5.005000||Viu +pclose|5.003007||Viu +peep|5.003007||Viu +pending_ident|5.017004||Viu +PERL_ABS|5.008001|5.003007|p +Perl_acos|5.021004|5.021004|n +perl_alloc|5.003007|5.003007|n +PERL_ALLOC_CHECK|5.006000||Viu +perl_alloc_using|5.006000||Vnu +PERL_ANY_COW|5.017007||Viu +PERL_API_REVISION|5.006000||Viu +PERL_API_SUBVERSION|5.006000||Viu +PERL_API_VERSION|5.006000||Viu +PERL_API_VERSION_STRING|5.013004||Viu +PERL_ARENA_ROOTS_SIZE|5.009004||Viu +PERL_ARENA_SIZE|5.009003||Viu +PERL_ARGS_ASSERT_CROAK_XS_USAGE|||ponu +Perl_asin|5.021004|5.021004|n +Perl_assert|5.011000||Viu +perl_assert_ptr|5.027004||Viu +PERL_ASYNC_CHECK|5.006000|5.006000| +Perl_atan2|5.006000|5.006000|n +Perl_atan|5.021004|5.021004|n +Perl_atof2|5.006001||Viu +Perl_atof|5.006000||Viu +PERL_BCDVERSION||5.003007|onu +PERL_BISON_VERSION|5.023008||Viu +PERL_BITFIELD16|5.010001||Viu +PERL_BITFIELD32|5.010001||Viu +PERL_BITFIELD8|5.010001||Viu +PERL_CALLCONV|5.005002||Viu +PERL_CALLCONV_NO_RET|5.017002||Viu +Perl_calloc|5.006000||Viu +Perl_ceil|5.009001|5.009001|n +PERL_CKDEF|5.006000||Viu +perl_clone|5.006000||Vn +perl_clone_using|5.006000||Vnu +perl_construct|5.003007|5.003007|n +PERL_COP_SEQMAX|5.013010||Viu +PERL_COPY_ON_WRITE|5.023001||Viu +Perl_cos|5.006000|5.006000|n +Perl_cosh|5.021004|5.021004|n +PERL_COUNT_MULTIPLIER|5.027007||Viu +Perl_custom_op_xop|5.019006||V +PERLDB_ALL|5.004002||Viu +PERLDBf_GOTO|5.004005||Viu +PERLDBf_INTER|5.004002||Viu +PERLDBf_LINE|5.004002||Viu +PERLDBf_NAMEANON|5.006000||Viu +PERLDBf_NAMEEVAL|5.006000||Viu +PERLDBf_NONAME|5.004005||Viu +PERLDBf_NOOPT|5.004002||Viu +PERLDBf_SAVESRC|5.010001||Viu +PERLDBf_SAVESRC_INVALID|5.010001||Viu +PERLDBf_SAVESRC_NOSUBS|5.010001||Viu +PERLDBf_SINGLE|5.004002||Viu +PERLDBf_SUB|5.004002||Viu +PERLDBf_SUBLINE|5.004002||Viu +PERLDB_GOTO|5.004005||Viu +PERLDB_INTER|5.004002||Viu +PERLDB_LINE|5.004002||Viu +PERLDB_LINE_OR_SAVESRC|5.023002||Viu +PERLDB_NAMEANON|5.006000||Viu +PERLDB_NAMEEVAL|5.006000||Viu +PERLDB_NOOPT|5.004002||Viu +PERLDB_SAVESRC|5.010001||Viu +PERLDB_SAVESRC_INVALID|5.010001||Viu +PERLDB_SAVESRC_NOSUBS|5.010001||Viu +PERLDB_SINGLE|5.004002||Viu +PERLDB_SUB|5.004002||Viu +PERLDB_SUBLINE|5.004002||Viu +PERLDB_SUB_NN|5.004005||Viu +PERL_DEB2|5.021007||Viu +PERL_DEB|5.008001||Viu +PERL_DEBUG|5.008001||Viu +Perl_debug_log|5.003007||Viu +PERL_DEBUG_PAD|5.007003||Viu +PERL_DEBUG_PAD_ZERO|5.007003||Viu +PERL_DECIMAL_VERSION|5.019008||Viu +PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION|5.009003||Viu +perl_destruct|5.007003|5.007003|n +PerlDir_chdir|5.005000||Viu +PerlDir_close|5.005000||Viu +PerlDir_mapA|5.006000||Viu +PerlDir_mapW|5.006000||Viu +PerlDir_mkdir|5.005000||Viu +PerlDir_open|5.005000||Viu +PerlDir_read|5.005000||Viu +PerlDir_rewind|5.005000||Viu +PerlDir_rmdir|5.005000||Viu +PerlDir_seek|5.005000||Viu +PerlDir_tell|5.005000||Viu +PERL_DONT_CREATE_GVSV|5.009003||Viu +Perl_drand48|5.019004||Viu +Perl_drand48_init|5.019004||Viu +PERL_DRAND48_QUAD|5.019004||Viu +PERL_DTRACE_PROBE_ENTRY|5.023009||Viu +PERL_DTRACE_PROBE_FILE_LOADED|5.023009||Viu +PERL_DTRACE_PROBE_FILE_LOADING|5.023009||Viu +PERL_DTRACE_PROBE_OP|5.023009||Viu +PERL_DTRACE_PROBE_PHASE|5.023009||Viu +PERL_DTRACE_PROBE_RETURN|5.023009||Viu +PERL_EBCDIC_TABLES_H|5.027001||Viu +PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS|5.009004||Viu +PERL_ENABLE_EXTENDED_TRIE_OPTIMISATION|5.009004||Viu +PERL_ENABLE_POSITIVE_ASSERTION_STUDY|5.009005||Viu +PERL_ENABLE_TRIE_OPTIMISATION|5.009004||Viu +PerlEnv_clearenv|5.006000||Viu +PerlEnv_ENVgetenv|5.006000||Viu +PerlEnv_ENVgetenv_len|5.006000||Viu +PerlEnv_free_childdir|5.006000||Viu +PerlEnv_free_childenv|5.006000||Viu +PerlEnv_get_childdir|5.006000||Viu +PerlEnv_get_childenv|5.006000||Viu +PerlEnv_get_child_IO|5.006000||Viu +PerlEnv_getenv|5.005000||Viu +PerlEnv_getenv_len|5.006000||Viu +PerlEnv_lib_path|5.005000||Viu +PerlEnv_os_id|5.006000||Viu +PerlEnv_putenv|5.005000||Viu +PerlEnv_sitelib_path|5.005000||Viu +PerlEnv_uname|5.005004||Viu +PerlEnv_vendorlib_path|5.006000||Viu +Perl_error_log|5.006000||Viu +Perl_eval_pv||5.003007|onu +Perl_eval_sv||5.003007|onu +PERL_EXIT_ABORT|5.019003|5.019003| +PERL_EXIT_DESTRUCT_END|5.007003|5.007003| +PERL_EXIT_EXPECTED|5.006000|5.006000| +PERL_EXIT_WARN|5.019003|5.019003| +Perl_exp|5.006000|5.006000|n +PERL_FEATURE_H|5.029006||Viu +PERL_FILE_IS_ABSOLUTE|5.006000||Viu +PERL_FILTER_EXISTS|5.009005||Viu +Perl_floor|5.006000|5.006000|n +PERL_FLUSHALL_FOR_CHILD|5.006000||Viu +Perl_fmod|5.006000|5.006000|n +Perl_fp_class|5.007003||Viu +Perl_fp_class_denorm|5.007003||Viu +Perl_fp_class_inf|5.007003||Viu +Perl_fp_class_nan|5.007003||Viu +Perl_fp_class_ndenorm|5.007003||Viu +Perl_fp_class_ninf|5.007003||Viu +Perl_fp_class_nnorm|5.007003||Viu +Perl_fp_class_norm|5.007003||Viu +Perl_fp_class_nzero|5.007003||Viu +Perl_fp_class_pdenorm|5.007003||Viu +Perl_fp_class_pinf|5.007003||Viu +Perl_fp_class_pnorm|5.007003||Viu +Perl_fp_class_pzero|5.007003||Viu +Perl_fp_class_qnan|5.007003||Viu +Perl_fp_class_snan|5.007003||Viu +Perl_fp_class_zero|5.007003||Viu +PERL_FPU_INIT|5.007002||Viu +PERL_FPU_POST_EXEC|5.008001||Viu +PERL_FPU_PRE_EXEC|5.008001||Viu +perl_free|5.003007|5.003007|n +Perl_free_c_backtrace|5.021001||Viu +Perl_frexp|5.006000|5.006000|n +PERL_FS_VER_FMT|5.006000||Viu +PERL_FS_VERSION|5.010001||Viu +PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||Viu +PERL_GET_CONTEXT|5.006000||Viu +PERL_GET_INTERP|5.006000||Viu +PERL_GET_THX|5.006000||Viu +PERL_GIT_UNPUSHED_COMMITS|5.010001||Viu +PERL_GPROF_MONCONTROL|5.007002||Viu +PERL_HANDY_H|5.027001||Viu +PERL_HASH|5.003007|5.003007|p +PERL_HASH_DEFAULT_HvMAX|5.017011||Viu +PERL_HASH_FUNC|5.017006||Viu +PERL_HASH_FUNC_SIPHASH13|5.033007||Viu +PERL_HASH_FUNC_ZAPHOD32|5.027001||Viu +PERL_HASH_INTERNAL|5.008002||Viu +PERL_HASH_ITER_BUCKET|5.018000||Viu +PERL_HASH_RANDOMIZE_KEYS|5.018000||Viu +PERL_HASH_SEED|5.008001||Viu +PERL_HASH_SEED_BYTES|5.017006||Viu +PERL_HASH_SEED_STATE|5.027001||Viu +PERL_HASH_SEED_WORDS|5.033007||Viu +PERL_HASH_STATE_BYTES|5.027001||Viu +PERL_HASH_STATE_WORDS|5.033007||Viu +PERL_HASH_USE_SBOX32_ALSO|5.027001||Viu +PERL_HASH_WITH_SEED|5.021001||Viu +PERL_HASH_WITH_STATE|5.027001||Viu +PERL_HV_ALLOC_AUX_SIZE|5.019010||Viu +PERL_HV_ARRAY_ALLOC_BYTES|5.006000||Viu +PERL___I|5.009005||Viu +PERL_IMPLICIT_CONTEXT|5.006000||Viu +PERL_INC_VERSION_LIST|5.035001|5.035001|Vn +Perl_internal_drand48|5.027004||Viu +PERL_INTERPRETER_SIZE_UPTO_MEMBER|5.010000||Viu +PERL_INT_MAX|5.003007|5.003007|p +PERL_INT_MIN|5.003007|5.003007|p +PERL_INVLIST_INLINE_H|5.029006||Viu +PerlIO|5.003007||Viu +PerlIO_apply_layers|5.007001|5.007001| +PerlIOArg|5.007001||Viu +PerlIOBase|5.007001||Viu +PerlIO_binmode|5.007001|5.007001| +PERLIOBUF_DEFAULT_BUFSIZ|5.013007||Viu +PerlIO_canset_cnt|5.003007|5.003007|n +PerlIO_clearerr|5.007003|5.007003| +PerlIO_close|5.007003|5.007003| +PerlIO_context_layers|5.009004|5.009004|u +PerlIO_debug|5.007001|5.007001| +PERLIO_DUP_CLONE|5.007003||Viu +PERLIO_DUP_FD|5.007003||Viu +PerlIO_eof|5.007003|5.007003| +PerlIO_error|5.007003|5.007003| +PerlIO_exportFILE|5.003007|5.003007|n +PERLIO_F_APPEND|5.007001|5.007001| +PerlIO_fast_gets|5.003007|5.003007|n +PERLIO_F_CANREAD|5.007001|5.007001| +PERLIO_F_CANWRITE|5.007001|5.007001| +PERLIO_F_CLEARED|5.013008||Viu +PERLIO_F_CRLF|5.007001|5.007001| +PerlIO_fdopen|5.003007|5.003007|n +PERLIO_F_EOF|5.007001|5.007001| +PERLIO_F_ERROR|5.007001|5.007001| +PERLIO_F_FASTGETS|5.007001|5.007001| +PerlIO_fileno|5.007003|5.007003| +PerlIO_fill|5.007003|5.007003|u +PerlIO_findFILE|5.003007|5.003007|n +PERLIO_F_LINEBUF|5.007001|5.007001| +PerlIO_flush|5.007003|5.007003| +PERLIO_F_NOTREG|5.008001||Viu +PERLIO_F_OPEN|5.007001|5.007001| +PERLIO_F_RDBUF|5.007001|5.007001| +PERLIO_F_TEMP|5.007001|5.007001| +PERLIO_F_TRUNCATE|5.007001|5.007001| +PERLIO_F_TTY|5.007001||Viu +PERLIO_F_UNBUF|5.007001|5.007001| +PERLIO_FUNCS_CAST|5.009003||pVu +PERLIO_FUNCS_DECL|5.009003|5.009003|pVu +PERLIO_F_UTF8|5.007001|5.007001| +PERLIO_F_WRBUF|5.007001|5.007001| +PerlIO_get_base|5.007003|5.007003| +PerlIO_get_bufsiz|5.007003|5.007003| +PerlIO_getc|5.003007|5.003007|n +PerlIO_get_cnt|5.007003|5.007003| +PerlIO_getpos|5.003007|5.003007|n +PerlIO_get_ptr|5.007003|5.007003| +PERLIO_H|5.027001||Viu +PerlIO_has_base|5.003007|5.003007|n +PerlIO_has_cntptr|5.003007|5.003007|n +PerlIO_importFILE|5.003007|5.003007|n +PERLIO_INIT|5.009005||Viu +PERLIO_K_BUFFERED|5.007001|5.007001| +PERLIO_K_CANCRLF|5.007001|5.007001| +PERLIO_K_DESTRUCT|5.007001||Viu +PERLIO_K_DUMMY|5.007001||Viu +PERLIO_K_FASTGETS|5.007001|5.007001| +PERLIO_K_MULTIARG|5.007003|5.007003| +PERLIO_K_RAW|5.007001|5.007001| +PERLIO_K_UTF8|5.007001||Viu +PERLIO_LAYERS|5.007001||Viu +PERLIOL_H|5.027001||Viu +PerlIONext|5.007001||Viu +PERLIO_NOT_STDIO|5.003007||Viu +PerlIO_open|5.003007|5.003007|n +PerlIO_printf|5.006000|5.003007| +PerlIO_putc|5.003007|5.003007|n +PerlIO_puts|5.003007|5.003007|n +PerlIO_read|5.007003|5.007003| +PerlIO_releaseFILE|5.003007|5.003007|n +PerlIO_reopen|5.003007|5.003007|n +PerlIO_restore_errno|5.021006||cViu +PerlIO_rewind|5.003007|5.003007|n +PerlIO_save_errno|5.021006||cViu +PerlIO_seek|5.007003|5.007003| +PerlIOSelf|5.007001||Viu +PerlIO_set_cnt|5.007003|5.007003| +PerlIO_setlinebuf|5.007003|5.007003| +PerlIO_setpos|5.003007|5.003007|n +PerlIO_set_ptrcnt|5.007003|5.007003| +PerlIO_stderr|5.007003|5.007003| +PerlIO_stdin|5.007003|5.007003| +PerlIO_stdout|5.007003|5.007003| +PerlIO_stdoutf|5.006000|5.003007| +PERLIO_STDTEXT|5.007001||Viu +PerlIO_tell|5.007003|5.007003| +PERLIO_TERM|5.009005||Viu +PerlIO_ungetc|5.003007|5.003007|n +PerlIO_unread|5.007003|5.007003|u +PERLIO_USING_CRLF|5.007003||Viu +PerlIOValid|5.007003||Viu +PerlIO_vprintf|5.003007|5.003007|n +PerlIO_write|5.007003|5.007003| +Perl_isfinite|5.007003|5.007003|n +Perl_isfinitel|5.021004||Viu +PERL_IS_GCC|5.032001||Viu +Perl_isinf|5.007003|5.007003|n +Perl_isnan|5.006001|5.006001|n +PERL_IS_SUBWORD_ADDR|5.027007||Viu +PERL_JNP_TO_DECIMAL|5.033001||Viu +Perl_langinfo|5.027004|5.027004|n +PERL_LANGINFO_H|5.027004||Viu +PERL_LAST_5_18_0_INTERP_MEMBER|5.017009||Viu +Perl_ldexp|5.021003|5.021003|n +PerlLIO_access|5.005000||Viu +PerlLIO_chmod|5.005000||Viu +PerlLIO_chown|5.005000||Viu +PerlLIO_chsize|5.005000||Viu +PerlLIO_close|5.005000||Viu +PerlLIO_dup2|5.005000||Viu +PerlLIO_dup2_cloexec|5.027008||Viu +PerlLIO_dup|5.005000||Viu +PerlLIO_dup_cloexec|5.027008||Viu +PerlLIO_flock|5.005000||Viu +PerlLIO_fstat|5.005000||Viu +PerlLIO_ioctl|5.005000||Viu +PerlLIO_isatty|5.005000||Viu +PerlLIO_link|5.006000||Viu +PerlLIO_lseek|5.005000||Viu +PerlLIO_lstat|5.005000||Viu +PerlLIO_mktemp|5.005000||Viu +PerlLIO_open3|5.005000||Viu +PerlLIO_open3_cloexec|5.027008||Viu +PerlLIO_open|5.005000||Viu +PerlLIO_open_cloexec|5.027008||Viu +PerlLIO_read|5.005000||Viu +PerlLIO_readlink|5.033005||Viu +PerlLIO_rename|5.005000||Viu +PerlLIO_setmode|5.005000||Viu +PerlLIO_stat|5.005000||Viu +PerlLIO_symlink|5.033005||Viu +PerlLIO_tmpnam|5.005000||Viu +PerlLIO_umask|5.005000||Viu +PerlLIO_unlink|5.005000||Viu +PerlLIO_utime|5.005000||Viu +PerlLIO_write|5.005000||Viu +PERL_LOADMOD_DENY|5.006000|5.003007| +PERL_LOADMOD_IMPORT_OPS|5.006000|5.003007| +PERL_LOADMOD_NOIMPORT|5.006000|5.003007| +Perl_log10|5.021004|5.021004|n +Perl_log|5.006000|5.006000|n +PERL_LONG_MAX|5.003007|5.003007|p +PERL_LONG_MIN|5.003007|5.003007|p +PERL_MAGIC_arylen|5.007002|5.003007|p +PERL_MAGIC_arylen_p|5.009003|5.009003| +PERL_MAGIC_backref|5.007002|5.003007|p +PERL_MAGIC_bm|5.007002|5.003007|p +PERL_MAGIC_checkcall|5.013006|5.013006| +PERL_MAGIC_collxfrm|5.007002|5.003007|p +PERL_MAGIC_dbfile|5.007002|5.003007|p +PERL_MAGIC_dbline|5.007002|5.003007|p +PERL_MAGIC_debugvar|5.021005|5.021005| +PERL_MAGIC_defelem|5.007002|5.003007|p +PERL_MAGIC_env|5.007002|5.003007|p +PERL_MAGIC_envelem|5.007002|5.003007|p +PERL_MAGIC_ext|5.007002|5.003007|p +PERL_MAGIC_fm|5.007002|5.003007|p +PERL_MAGIC_glob||5.003007|ponu +PERL_MAGIC_hints|5.009004|5.009004| +PERL_MAGIC_hintselem|5.009004|5.009004| +PERL_MAGIC_isa|5.007002|5.003007|p +PERL_MAGIC_isaelem|5.007002|5.003007|p +PERL_MAGIC_lvref|5.021005|5.021005| +PERL_MAGIC_mutex||5.003007|ponu +PERL_MAGIC_nkeys|5.007002|5.003007|p +PERL_MAGIC_nonelem|5.027009|5.027009| +PERL_MAGIC_overload||5.003007|ponu +PERL_MAGIC_overload_elem||5.003007|ponu +PERL_MAGIC_overload_table|5.007002|5.003007|p +PERL_MAGIC_pos|5.007002|5.003007|p +PERL_MAGIC_qr|5.007002|5.003007|p +PERL_MAGIC_READONLY_ACCEPTABLE|5.015000||Viu +PERL_MAGIC_regdata|5.007002|5.003007|p +PERL_MAGIC_regdatum|5.007002|5.003007|p +PERL_MAGIC_regex_global|5.007002|5.003007|p +PERL_MAGIC_rhash|5.009003|5.009003| +PERL_MAGIC_shared|5.007003|5.003007|p +PERL_MAGIC_shared_scalar|5.007003|5.003007|p +PERL_MAGIC_sig|5.007002|5.003007|p +PERL_MAGIC_sigelem|5.007002|5.003007|p +PERL_MAGIC_substr|5.007002|5.003007|p +PERL_MAGIC_sv|5.007002|5.003007|p +PERL_MAGIC_symtab|5.009003|5.009003| +PERL_MAGIC_taint|5.007002|5.003007|p +PERL_MAGIC_tied|5.007002|5.003007|p +PERL_MAGIC_tiedelem|5.007002|5.003007|p +PERL_MAGIC_tiedscalar|5.007002|5.003007|p +PERL_MAGIC_TYPE_IS_VALUE_MAGIC|5.015000||Viu +PERL_MAGIC_TYPE_READONLY_ACCEPTABLE|5.015000||Viu +PERL_MAGIC_utf8|5.008001|5.003007|p +PERL_MAGIC_UTF8_CACHESIZE|5.008001||Viu +PERL_MAGIC_uvar|5.007002|5.003007|p +PERL_MAGIC_uvar_elem|5.007003|5.003007|p +PERL_MAGIC_VALUE_MAGIC|5.015000||Viu +PERL_MAGIC_vec|5.007002|5.003007|p +PERL_MAGIC_vstring|5.008001|5.003007|p +PERL_MAGIC_VTABLE_MASK|5.015000||Viu +Perl_malloc|5.006000||Viu +PERL_MALLOC_CTL_H|5.027001||Viu +Perl_malloc_good_size|5.010001||Viu +PERL_MALLOC_WRAP|5.009002|5.009002|Vn +PerlMem_calloc|5.006000||Viu +PerlMem_free|5.005000||Viu +PerlMem_free_lock|5.006000||Viu +PerlMem_get_lock|5.006000||Viu +PerlMem_is_locked|5.006000||Viu +PerlMem_malloc|5.005000||Viu +PERL_MEMORY_DEBUG_HEADER_SIZE|5.019009||Viu +PerlMemParse_calloc|5.006000||Viu +PerlMemParse_free|5.006000||Viu +PerlMemParse_free_lock|5.006000||Viu +PerlMemParse_get_lock|5.006000||Viu +PerlMemParse_is_locked|5.006000||Viu +PerlMemParse_malloc|5.006000||Viu +PerlMemParse_realloc|5.006000||Viu +PerlMem_realloc|5.005000||Viu +PerlMemShared_calloc|5.006000||Viu +PerlMemShared_free|5.006000||Viu +PerlMemShared_free_lock|5.006000||Viu +PerlMemShared_get_lock|5.006000||Viu +PerlMemShared_is_locked|5.006000||Viu +PerlMemShared_malloc|5.006000||Viu +PerlMemShared_realloc|5.006000||Viu +Perl_mfree|5.006000||Viu +PERL_MG_UFUNC|5.007001||Viu +Perl_modf|5.006000|5.006000|n +PERL_MULTICONCAT_HEADER_SIZE|5.027006||Viu +PERL_MULTICONCAT_IX_LENGTHS|5.027006||Viu +PERL_MULTICONCAT_IX_NARGS|5.027006||Viu +PERL_MULTICONCAT_IX_PLAIN_LEN|5.027006||Viu +PERL_MULTICONCAT_IX_PLAIN_PV|5.027006||Viu +PERL_MULTICONCAT_IX_UTF8_LEN|5.027006||Viu +PERL_MULTICONCAT_IX_UTF8_PV|5.027006||Viu +PERL_MULTICONCAT_MAXARG|5.027006||Viu +Perl_my_mkostemp|5.027008||Viu +Perl_my_mkstemp|5.027004||Viu +PERL_MY_SNPRINTF_GUARDED|5.009004||Viu +PERL_MY_SNPRINTF_POST_GUARD|5.021002||Viu +PERL_MY_VSNPRINTF_GUARDED|5.009004||Viu +PERL_MY_VSNPRINTF_POST_GUARD|5.021002||Viu +PERL_NO_DEV_RANDOM|5.009004||Viu +PERL_OBJECT_THIS|5.005000||Viu +PERL_OP_PARENT|5.025001||Viu +PERL_PADNAME_MINIMAL|5.021007||Viu +PERL_PADSEQ_INTRO|5.013010||Viu +perl_parse|5.006000|5.006000|n +PERL_PATCHLEVEL_H_IMPLICIT|5.006000||Viu +PERL_PATCHNUM|5.010001||Viu +PERL_POISON_EXPR|5.019006||Viu +Perl_pow|5.006000|5.006000|n +Perl_pp_accept|5.013009||Viu +Perl_pp_aelemfast_lex|5.015000||Viu +Perl_pp_andassign|5.013009||Viu +Perl_pp_avalues|5.013009||Viu +Perl_pp_bind|5.013009||Viu +Perl_pp_bit_xor|5.013009||Viu +Perl_pp_chmod|5.013009||Viu +Perl_pp_chomp|5.013009||Viu +Perl_pp_connect|5.013009||Viu +Perl_pp_cos|5.013009||Viu +Perl_pp_custom|5.013009||Viu +Perl_pp_dbmclose|5.013009||Viu +PERL_PPDEF|5.006000||Viu +Perl_pp_dofile|5.013009||Viu +Perl_pp_dor|5.013009||Viu +Perl_pp_dorassign|5.013009||Viu +Perl_pp_dump|5.013009||Viu +Perl_pp_egrent|5.013009||Viu +Perl_pp_enetent|5.013009||Viu +Perl_pp_eprotoent|5.013009||Viu +Perl_pp_epwent|5.013009||Viu +Perl_pp_eservent|5.013009||Viu +Perl_pp_exp|5.013009||Viu +Perl_pp_fcntl|5.013009||Viu +Perl_pp_ftatime|5.013009||Viu +Perl_pp_ftbinary|5.013009||Viu +Perl_pp_ftblk|5.013009||Viu +Perl_pp_ftchr|5.013009||Viu +Perl_pp_ftctime|5.013009||Viu +Perl_pp_ftdir|5.013009||Viu +Perl_pp_fteexec|5.013009||Viu +Perl_pp_fteowned|5.013009||Viu +Perl_pp_fteread|5.013009||Viu +Perl_pp_ftewrite|5.013009||Viu +Perl_pp_ftfile|5.013009||Viu +Perl_pp_ftmtime|5.013009||Viu +Perl_pp_ftpipe|5.013009||Viu +Perl_pp_ftrexec|5.013009||Viu +Perl_pp_ftrwrite|5.013009||Viu +Perl_pp_ftsgid|5.013009||Viu +Perl_pp_ftsize|5.013009||Viu +Perl_pp_ftsock|5.013009||Viu +Perl_pp_ftsuid|5.013009||Viu +Perl_pp_ftsvtx|5.013009||Viu +Perl_pp_ftzero|5.013009||Viu +Perl_pp_getpeername|5.013009||Viu +Perl_pp_getsockname|5.013009||Viu +Perl_pp_ggrgid|5.013009||Viu +Perl_pp_ggrnam|5.013009||Viu +Perl_pp_ghbyaddr|5.013009||Viu +Perl_pp_ghbyname|5.013009||Viu +Perl_pp_gnbyaddr|5.013009||Viu +Perl_pp_gnbyname|5.013009||Viu +Perl_pp_gpbyname|5.013009||Viu +Perl_pp_gpbynumber|5.013009||Viu +Perl_pp_gpwnam|5.013009||Viu +Perl_pp_gpwuid|5.013009||Viu +Perl_pp_gsbyname|5.013009||Viu +Perl_pp_gsbyport|5.013009||Viu +Perl_pp_gsockopt|5.013009||Viu +Perl_pp_hex|5.013009||Viu +Perl_pp_i_postdec|5.006000||Viu +Perl_pp_i_postinc|5.006000||Viu +Perl_pp_i_predec|5.006000||Viu +Perl_pp_i_preinc|5.006000||Viu +Perl_pp_keys|5.013009||Viu +Perl_pp_kill|5.013009||Viu +Perl_pp_lcfirst|5.013009||Viu +Perl_pp_lineseq|5.013009||Viu +Perl_pp_listen|5.013009||Viu +Perl_pp_localtime|5.013009||Viu +Perl_pp_log|5.013009||Viu +Perl_pp_lstat|5.013009||Viu +Perl_pp_mapstart|5.013009||Viu +Perl_pp_msgctl|5.013009||Viu +Perl_pp_msgget|5.013009||Viu +Perl_pp_msgrcv|5.013009||Viu +Perl_pp_msgsnd|5.013009||Viu +Perl_pp_nbit_xor|5.021009||Viu +Perl_pp_orassign|5.013009||Viu +Perl_pp_padany|5.013009||Viu +Perl_pp_pop|5.013009||Viu +Perl_pp_read|5.013009||Viu +Perl_pp_recv|5.013009||Viu +Perl_pp_regcmaybe|5.013009||Viu +Perl_pp_rindex|5.013009||Viu +Perl_pp_rv2hv|5.013009||Viu +Perl_pp_say|5.013009||Viu +Perl_pp_sbit_xor|5.021009||Viu +Perl_pp_scalar|5.013009||Viu +Perl_pp_schomp|5.013009||Viu +Perl_pp_scope|5.013009||Viu +Perl_pp_seek|5.013009||Viu +Perl_pp_semop|5.013009||Viu +Perl_pp_send|5.013009||Viu +Perl_pp_sge|5.013009||Viu +Perl_pp_sgrent|5.013009||Viu +Perl_pp_sgt|5.013009||Viu +Perl_pp_shmctl|5.013009||Viu +Perl_pp_shmget|5.013009||Viu +Perl_pp_shmread|5.013009||Viu +Perl_pp_shutdown|5.013009||Viu +Perl_pp_slt|5.013009||Viu +Perl_pp_snetent|5.013009||Viu +Perl_pp_socket|5.013009||Viu +Perl_pp_sprotoent|5.013009||Viu +Perl_pp_spwent|5.013009||Viu +Perl_pp_sqrt|5.013009||Viu +Perl_pp_sservent|5.013009||Viu +Perl_pp_ssockopt|5.013009||Viu +Perl_pp_symlink|5.013009||Viu +Perl_pp_transr|5.013009||Viu +Perl_pp_unlink|5.013009||Viu +Perl_pp_utime|5.013009||Viu +Perl_pp_values|5.013009||Viu +PERL_PRESERVE_IVUV|5.007001||Viu +PERL_PRIeldbl|5.006001|5.006001|Vn +PERL_PRIfldbl|5.006000|5.006000|Vn +PERL_PRIgldbl|5.006000|5.006000|Vn +PerlProc_abort|5.005000||Viu +PerlProc_crypt|5.005000||Viu +PerlProc_DynaLoad|5.006000||Viu +PerlProc_execl|5.005000||Viu +PerlProc_execv|5.005000||Viu +PerlProc_execvp|5.005000||Viu +PerlProc__exit|5.005000||Viu +PerlProc_exit|5.005000||Viu +PerlProc_fork|5.006000||Viu +PerlProc_getegid|5.005000||Viu +PerlProc_geteuid|5.005000||Viu +PerlProc_getgid|5.005000||Viu +PerlProc_getlogin|5.005000||Viu +PerlProc_GetOSError|5.006000||Viu +PerlProc_getpid|5.006000||Viu +PerlProc_gettimeofday|5.008000||Viu +PerlProc_getuid|5.005000||Viu +PerlProc_kill|5.005000||Viu +PerlProc_killpg|5.005000||Viu +PerlProc_lasthost|5.007001||Viu +PerlProc_longjmp|5.005000||Viu +PerlProc_pause|5.005000||Viu +PerlProc_pclose|5.005000||Viu +PerlProc_pipe|5.005000||Viu +PerlProc_pipe_cloexec|5.027008||Viu +PerlProc_popen|5.005000||Viu +PerlProc_popen_list|5.007001||Viu +PerlProc_setgid|5.005000||Viu +PerlProc_setjmp|5.005000||Viu +PerlProc_setuid|5.005000||Viu +PerlProc_signal|5.005000||Viu +PerlProc_sleep|5.005000||Viu +PerlProc_spawnvp|5.008000||Viu +PerlProc_times|5.005000||Viu +PerlProc_wait|5.005000||Viu +PerlProc_waitpid|5.005000||Viu +perl_pthread_mutex_lock|5.023006||Viu +perl_pthread_mutex_unlock|5.023006||Viu +PERL_PV_ESCAPE_ALL|5.009004|5.003007|p +PERL_PV_ESCAPE_DWIM|5.019008||Viu +PERL_PV_ESCAPE_FIRSTCHAR|5.009004|5.003007|p +PERL_PV_ESCAPE_NOBACKSLASH|5.009004|5.003007|p +PERL_PV_ESCAPE_NOCLEAR|5.009004|5.003007|p +PERL_PV_ESCAPE_NONASCII|5.013009|5.013009| +PERL_PV_ESCAPE_QUOTE|5.009004|5.003007|p +PERL_PV_ESCAPE_RE|5.009005|5.003007|p +PERL_PV_ESCAPE_UNI|5.009004|5.003007|p +PERL_PV_ESCAPE_UNI_DETECT|5.009004|5.003007|p +PERL_PV_PRETTY_DUMP|5.009004||pcV +PERL_PV_PRETTY_ELLIPSES|5.010000|5.003007|p +PERL_PV_PRETTY_EXACTSIZE|5.021005||Viu +PERL_PV_PRETTY_LTGT|5.009004|5.003007|p +PERL_PV_PRETTY_NOCLEAR|5.010000||pcV +PERL_PV_PRETTY_QUOTE|5.009004|5.003007|p +PERL_PV_PRETTY_REGPROP|5.009004||pcV +PERL_QUAD_MAX|5.003007|5.003007|p +PERL_QUAD_MIN|5.003007|5.003007|p +PERL_READ_LOCK|5.033005||Viu +PERL_READ_UNLOCK|5.033005||Viu +Perl_realloc|5.006000||Viu +PERL_REENTR_API|5.009005||Viu +PERL_REENTR_H|5.027001||Viu +PERL_REENTR_USING_ASCTIME_R|5.031011||Viu +PERL_REENTR_USING_CRYPT_R|5.031011||Viu +PERL_REENTR_USING_CTERMID_R|5.031011||Viu +PERL_REENTR_USING_CTIME_R|5.031011||Viu +PERL_REENTR_USING_ENDGRENT_R|5.031011||Viu +PERL_REENTR_USING_ENDHOSTENT_R|5.031011||Viu +PERL_REENTR_USING_ENDNETENT_R|5.031011||Viu +PERL_REENTR_USING_ENDPROTOENT_R|5.031011||Viu +PERL_REENTR_USING_ENDPWENT_R|5.031011||Viu +PERL_REENTR_USING_ENDSERVENT_R|5.031011||Viu +PERL_REENTR_USING_GETGRENT_R|5.031011||Viu +PERL_REENTR_USING_GETGRGID_R|5.031011||Viu +PERL_REENTR_USING_GETGRNAM_R|5.031011||Viu +PERL_REENTR_USING_GETHOSTBYADDR_R|5.031011||Viu +PERL_REENTR_USING_GETHOSTBYNAME_R|5.031011||Viu +PERL_REENTR_USING_GETHOSTENT_R|5.031011||Viu +PERL_REENTR_USING_GETLOGIN_R|5.031011||Viu +PERL_REENTR_USING_GETNETBYADDR_R|5.031011||Viu +PERL_REENTR_USING_GETNETBYNAME_R|5.031011||Viu +PERL_REENTR_USING_GETNETENT_R|5.031011||Viu +PERL_REENTR_USING_GETPROTOBYNAME_R|5.031011||Viu +PERL_REENTR_USING_GETPROTOBYNUMBER_R|5.031011||Viu +PERL_REENTR_USING_GETPROTOENT_R|5.031011||Viu +PERL_REENTR_USING_GETPWENT_R|5.031011||Viu +PERL_REENTR_USING_GETPWNAM_R|5.031011||Viu +PERL_REENTR_USING_GETPWUID_R|5.031011||Viu +PERL_REENTR_USING_GETSERVBYNAME_R|5.031011||Viu +PERL_REENTR_USING_GETSERVBYPORT_R|5.031011||Viu +PERL_REENTR_USING_GETSERVENT_R|5.031011||Viu +PERL_REENTR_USING_GETSPNAM_R|5.031011||Viu +PERL_REENTR_USING_GMTIME_R|5.031011||Viu +PERL_REENTR_USING_LOCALTIME_R|5.031011||Viu +PERL_REENTR_USING_READDIR64_R|5.031011||Viu +PERL_REENTR_USING_READDIR_R|5.031011||Viu +PERL_REENTR_USING_SETGRENT_R|5.031011||Viu +PERL_REENTR_USING_SETHOSTENT_R|5.031011||Viu +PERL_REENTR_USING_SETLOCALE_R|5.031011||Viu +PERL_REENTR_USING_SETNETENT_R|5.031011||Viu +PERL_REENTR_USING_SETPROTOENT_R|5.031011||Viu +PERL_REENTR_USING_SETPWENT_R|5.031011||Viu +PERL_REENTR_USING_SETSERVENT_R|5.031011||Viu +PERL_REENTR_USING_STRERROR_R|5.031011||Viu +PERL_REENTR_USING_TMPNAM_R|5.031011||Viu +PERL_REENTR_USING_TTYNAME_R|5.031011||Viu +PERL_REGCHARCLASS_H|5.027001||Viu +PERL_REGCOMP_H|5.029006||Viu +PERL_REGMATCH_SLAB_SLOTS|5.009004||Viu +PERL_RELOCATABLE_INC|5.017002|5.017002|Vn +PERL_REVISION|5.006000|5.006000|d +perl_run|5.003007|5.003007|n +PERL_RW_MUTEX_DESTROY|5.033005||Viu +PERL_RW_MUTEX_INIT|5.033005||Viu +Perl_safesysmalloc_size|5.010001||Viu +PERL_SAWAMPERSAND|5.017010||Viu +PERL_SCAN_ALLOW_MEDIAL_UNDERSCORES|5.031009||Viu +PERL_SCAN_ALLOW_UNDERSCORES|5.007003|5.003007|p +PERL_SCAN_DISALLOW_PREFIX|5.007003|5.003007|p +PERL_SCAN_GREATER_THAN_UV_MAX|5.007003|5.003007|p +PERL_SCAN_NOTIFY_ILLDIGIT|5.031008||Viu +PERL_SCAN_SILENT_ILLDIGIT|5.008001|5.003007|p +PERL_SCAN_SILENT_NON_PORTABLE|5.015001||Viu +PERL_SCAN_SILENT_OVERFLOW|5.031009||Viu +PERL_SCAN_TRAILING|5.021002|5.021002| +PERL_SCNfldbl|5.006001|5.006001|Vn +PERL_SCRIPT_MODE|5.004005||Viu +PERL_SEEN_HV_FUNC_H|5.017010||Viu +PERL_SEEN_HV_MACRO_H|5.027001||Viu +PERL_SET_CONTEXT|5.006000||Viu +PERL_SET_INTERP|5.006000||Viu +Perl_setlocale|5.027002|5.027002|n +PERL_SET_PHASE|5.015001||Viu +PERL_SET_THX|5.006000||Viu +Perl_sharepvn|5.006000||Viu +PERL_SHORT_MAX|5.003007|5.003007|p +PERL_SHORT_MIN|5.003007|5.003007|p +PERLSI_DESTROY|5.005000||Viu +PERLSI_DIEHOOK|5.005000||Viu +PERL_SIGNALS_UNSAFE_FLAG|5.008001|5.003007|p +Perl_signbit|5.009005|5.009005|xn +PERLSI_MAGIC|5.005000||Viu +PERLSI_MAIN|5.005000||Viu +PERLSI_MULTICALL|5.023000||Viu +Perl_sin|5.006000|5.006000|n +Perl_sinh|5.021004|5.021004|n +PerlSIO_canset_cnt|5.007001||Viu +PerlSIO_clearerr|5.007001||Viu +PerlSIO_fast_gets|5.007001||Viu +PerlSIO_fclose|5.007001||Viu +PerlSIO_fdopen|5.007001||Viu +PerlSIO_fdupopen|5.007001||Viu +PerlSIO_feof|5.007001||Viu +PerlSIO_ferror|5.007001||Viu +PerlSIO_fflush|5.007001||Viu +PerlSIO_fgetc|5.007001||Viu +PerlSIO_fgetpos|5.007001||Viu +PerlSIO_fgets|5.007001||Viu +PerlSIO_fileno|5.007001||Viu +PerlSIO_fopen|5.007001||Viu +PerlSIO_fputc|5.007001||Viu +PerlSIO_fputs|5.007001||Viu +PerlSIO_fread|5.007001||Viu +PerlSIO_freopen|5.007001||Viu +PerlSIO_fseek|5.007001||Viu +PerlSIO_fsetpos|5.007001||Viu +PerlSIO_ftell|5.007001||Viu +PerlSIO_fwrite|5.007001||Viu +PerlSIO_get_base|5.007001||Viu +PerlSIO_get_bufsiz|5.007001||Viu +PerlSIO_get_cnt|5.007001||Viu +PerlSIO_get_ptr|5.007001||Viu +PerlSIO_has_base|5.007001||Viu +PerlSIO_has_cntptr|5.007001||Viu +PerlSIO_init|5.007001||Viu +PerlSIO_printf|5.007001||Viu +PerlSIO_rewind|5.007001||Viu +PerlSIO_setbuf|5.007001||Viu +PerlSIO_set_cnt|5.007001||Viu +PerlSIO_setlinebuf|5.007001||Viu +PerlSIO_set_ptr|5.007001||Viu +PerlSIO_setvbuf|5.007001||Viu +PerlSIO_stderr|5.007001||Viu +PerlSIO_stdin|5.007001||Viu +PerlSIO_stdout|5.007001||Viu +PerlSIO_stdoutf|5.007001||Viu +PerlSIO_tmpfile|5.007001||Viu +PerlSIO_ungetc|5.007001||Viu +PERLSI_OVERLOAD|5.005000||Viu +PerlSIO_vprintf|5.007001||Viu +PERL_SIPHASH_FNC|5.025008||Viu +PERLSI_REGCOMP|5.031011||Viu +PERLSI_REQUIRE|5.005000||Viu +PERLSI_SIGNAL|5.005000||Viu +PERLSI_SORT|5.005000||Viu +PERLSI_UNDEF|5.005000||Viu +PERLSI_UNKNOWN|5.005000||Viu +PERLSI_WARNHOOK|5.005000||Viu +PERL_SMALL_MACRO_BUFFER|5.023008||Viu +PERL_SNPRINTF_CHECK|5.021002||Viu +PerlSock_accept|5.005000||Viu +PerlSock_accept_cloexec|5.027008||Viu +PerlSock_bind|5.005000||Viu +PerlSock_closesocket|5.006000||Viu +PerlSock_connect|5.005000||Viu +PerlSock_endhostent|5.005000||Viu +PerlSock_endnetent|5.005000||Viu +PerlSock_endprotoent|5.005000||Viu +PerlSock_endservent|5.005000||Viu +PerlSock_gethostbyaddr|5.005000||Viu +PerlSock_gethostbyname|5.005000||Viu +PerlSock_gethostent|5.005000||Viu +PerlSock_gethostname|5.005000||Viu +PerlSock_getnetbyaddr|5.005000||Viu +PerlSock_getnetbyname|5.005000||Viu +PerlSock_getnetent|5.005000||Viu +PerlSock_getpeername|5.005000||Viu +PerlSock_getprotobyname|5.005000||Viu +PerlSock_getprotobynumber|5.005000||Viu +PerlSock_getprotoent|5.005000||Viu +PerlSock_getservbyname|5.005000||Viu +PerlSock_getservbyport|5.005000||Viu +PerlSock_getservent|5.005000||Viu +PerlSock_getsockname|5.005000||Viu +PerlSock_getsockopt|5.005000||Viu +PerlSock_htonl|5.005000||Viu +PerlSock_htons|5.005000||Viu +PerlSock_inet_addr|5.005000||Viu +PerlSock_inet_ntoa|5.005000||Viu +PerlSock_listen|5.005000||Viu +PerlSock_ntohl|5.005000||Viu +PerlSock_ntohs|5.005000||Viu +PerlSock_recv|5.005000||Viu +PerlSock_recvfrom|5.005000||Viu +PerlSock_select|5.005000||Viu +PerlSock_send|5.005000||Viu +PerlSock_sendto|5.005000||Viu +PerlSock_sethostent|5.005000||Viu +PerlSock_setnetent|5.005000||Viu +PerlSock_setprotoent|5.005000||Viu +PerlSock_setservent|5.005000||Viu +PerlSock_setsockopt|5.005000||Viu +PerlSock_shutdown|5.005000||Viu +PERL_SOCKS_NEED_PROTOTYPES|5.007001||Viu +PerlSock_socket|5.005000||Viu +PerlSock_socket_cloexec|5.027008||Viu +PerlSock_socketpair|5.005000||Viu +PerlSock_socketpair_cloexec|5.027008||Viu +Perl_sqrt|5.006000|5.006000|n +PERL_STACK_OVERFLOW_CHECK|5.006000||Viu +PERL_STATIC_FORCE_INLINE|5.031011||Viu +PERL_STATIC_FORCE_INLINE_NO_RET|5.031011||Viu +PERL_STATIC_INLINE|5.013004|5.013004|Vn +PERL_STATIC_INLINE_NO_RET|5.017005||Viu +PERL_STATIC_NO_RET|5.017005||Viu +PERL_STRLEN_EXPAND_SHIFT|5.013004||Viu +PERL_STRLEN_ROUNDUP|5.009003||Viu +PERL_STRLEN_ROUNDUP_QUANTUM|5.009003||Viu +Perl_strtod|5.021004||Viu +PERL_SUB_DEPTH_WARN|5.010001||Viu +PERL_SUBVERSION|5.006000|5.003007|d +PERL_SYS_FPU_INIT|5.021005||Viu +PERL_SYS_INIT3|5.006000|5.006000| +PERL_SYS_INIT3_BODY|5.010000||Viu +PERL_SYS_INIT|5.003007|5.003007| +PERL_SYS_INIT_BODY|5.010000||Viu +PERL_SYS_TERM|5.003007|5.003007| +PERL_SYS_TERM_BODY|5.010000||Viu +Perl_tan|5.021004|5.021004|n +Perl_tanh|5.021004|5.021004|n +PERL_TARGETARCH|5.007002|5.007002|Vn +PERL_TIME64_CONFIG_H|5.027001||Viu +PERL_TIME64_H|5.027001||Viu +PERL_TRACK_MEMPOOL|5.009003||Viu +PERL_TSA|5.023006||Viu +PERL_TSA_ACQUIRE|5.023006||Viu +PERL_TSA_ACTIVE|5.023006||Viu +PERL_TSA_CAPABILITY|5.023006||Viu +PERL_TSA_EXCLUDES|5.023006||Viu +PERL_TSA_GUARDED_BY|5.023006||Viu +PERL_TSA_NO_TSA|5.023006||Viu +PERL_TSA_PT_GUARDED_BY|5.023006||Viu +PERL_TSA_RELEASE|5.023006||Viu +PERL_TSA_REQUIRES|5.023006||Viu +PERL_UCHAR_MAX|5.003007|5.003007|p +PERL_UCHAR_MIN|5.003007|5.003007|p +PERL_UINT_MAX|5.003007|5.003007|p +PERL_UINT_MIN|5.003007|5.003007|p +PERL_ULONG_MAX|5.003007|5.003007|p +PERL_ULONG_MIN|5.003007|5.003007|p +PERL_UNICODE_ALL_FLAGS|5.008001||Viu +PERL_UNICODE_ARGV|5.008001||Viu +PERL_UNICODE_ARGV_FLAG|5.008001||Viu +PERL_UNICODE_CONSTANTS_H|5.027001||Viu +PERL_UNICODE_DEFAULT_FLAGS|5.008001||Viu +PERL_UNICODE_IN|5.008001||Viu +PERL_UNICODE_IN_FLAG|5.008001||Viu +PERL_UNICODE_INOUT|5.008001||Viu +PERL_UNICODE_INOUT_FLAG|5.008001||Viu +PERL_UNICODE_LOCALE|5.008001||Viu +PERL_UNICODE_LOCALE_FLAG|5.008001||Viu +PERL_UNICODE_MAX|5.007003||Viu +PERL_UNICODE_OUT|5.008001||Viu +PERL_UNICODE_OUT_FLAG|5.008001||Viu +PERL_UNICODE_STD|5.008001||Viu +PERL_UNICODE_STDERR|5.008001||Viu +PERL_UNICODE_STDERR_FLAG|5.008001||Viu +PERL_UNICODE_STD_FLAG|5.008001||Viu +PERL_UNICODE_STDIN|5.008001||Viu +PERL_UNICODE_STDIN_FLAG|5.008001||Viu +PERL_UNICODE_STDOUT|5.008001||Viu +PERL_UNICODE_STDOUT_FLAG|5.008001||Viu +PERL_UNICODE_UTF8CACHEASSERT|5.009004||Viu +PERL_UNICODE_UTF8CACHEASSERT_FLAG|5.009004||Viu +PERL_UNICODE_WIDESYSCALLS|5.008001||Viu +PERL_UNICODE_WIDESYSCALLS_FLAG|5.008001||Viu +PERL_UNLOCK_HOOK|5.009004||Viu +PERL_UNUSED_ARG|5.009003|5.003007|p +PERL_UNUSED_CONTEXT|5.009004|5.003007|p +PERL_UNUSED_DECL|5.007002|5.003007|p +PERL_UNUSED_RESULT|5.021001|5.003007|p +PERL_UNUSED_VAR|5.007002|5.003007|p +PERL_UQUAD_MAX|5.003007|5.003007|p +PERL_UQUAD_MIN|5.003007|5.003007|p +PERL_USE_DEVEL|5.010001|5.010001|Vn +PERL_USE_GCC_BRACE_GROUPS|5.009004|5.003007|pV +PERL_USES_PL_PIDSTATUS|5.009003||Viu +PERL_USHORT_MAX|5.003007|5.003007|p +PERL_USHORT_MIN|5.003007|5.003007|p +PERL_UTF8_H|5.027001||Viu +PERL_UTIL_H|5.025012||Viu +Perl_va_copy|5.007001||Viu +PERLVAR|5.005000||Viu +PERLVARA|5.006000||Viu +PERLVARI|5.005000||Viu +PERL_VARIANTS_WORD_MASK|5.027007||Viu +PERLVARIC|5.005000||Viu +PERL_VERSION|5.006000|5.003007|d +PERL_VERSION_EQ|5.033001||p +PERL_VERSION_GE|5.033001|5.003007|p +PERL_VERSION_GT|5.033001|5.003007|p +PERL_VERSION_LE|5.033001|5.003007|p +PERL_VERSION_LT|5.033001|5.003007|p +PERL_VERSION_MAJOR|5.033001||Viu +PERL_VERSION_MINOR|5.033001||Viu +PERL_VERSION_NE|5.033001||p +PERL_VERSION_PATCH|5.033001||Viu +PERL_VERSION_STRING|5.010001||Viu +PERL_WAIT_FOR_CHILDREN|5.006000||Viu +Perl_Warn_Bit|5.033003||Viu +Perl_warner_nocontext||5.004000|ponu +PERL_WARNHOOK_FATAL|5.009004||Viu +Perl_Warn_Off|5.033003||Viu +PERL_WORD_BOUNDARY_MASK|5.027007||Viu +PERL_WORDSIZE|5.027007||Viu +PERL_WRITE_LOCK|5.033005||Viu +PERL_WRITE_MSG_TO_CONSOLE|5.007003||Viu +PERL_WRITE_UNLOCK|5.033005||Viu +PERL_XSUB_H|5.027001||Viu +perly_sighandler|5.031007||cVnu +PHOSTNAME|5.006000|5.006000|Vn +pidgone|5.003007||Viu +Pid_t|5.005000|5.005000|Vn +pipe|5.005000||Viu +PIPE_OPEN_MODE|5.008002||Viu +PIPESOCK_MODE|5.008001||Viu +PL_AboveLatin1|5.015008||Viu +PL_amagic_generation|5.005000||Viu +PL_an|5.005000||Viu +PL_argvgv|5.005000||Viu +PL_argvoutgv|5.005000||Viu +PL_argvout_stack|5.006000||Viu +PL_Assigned_invlist|5.025009||Viu +PL_basetime|5.005000||Viu +PL_beginav|5.005000||Viu +PL_beginav_save|5.006001||Viu +PL_blockhooks|5.013003||Viu +PL_body_arenas|5.009004||Viu +PL_body_roots|5.009003||Viu +PL_bodytarget|5.005000||Viu +PL_breakable_sub_gen|5.010001||Viu +PL_bufend||5.003007|ponu +PL_bufptr||5.003007|ponu +PL_CCC_non0_non230|5.029008||Viu +PL_check|5.009003|5.006000| +PL_checkav|5.006000||Viu +PL_checkav_save|5.008001||Viu +PL_chopset|5.005000||Viu +PL_clocktick|5.008001||Viu +PL_collation_ix|5.005000||Viu +PL_collation_name|5.005000||Viu +PL_collation_standard|5.005000||Viu +PL_collxfrm_base|5.005000||Viu +PL_collxfrm_mult|5.005000||Viu +PL_colors|5.005000||Viu +PL_colorset|5.005000||Viu +PL_compcv|5.005000||Viu +PL_compiling|5.005000|5.003007|poVnu +PL_comppad|5.008001|5.008001|x +PL_comppad_name|5.017004|5.017004|x +PL_comppad_name_fill|5.005000||Viu +PL_comppad_name_floor|5.005000||Viu +PL_constpadix|5.021004||Viu +PL_copline||5.003007|ponu +PL_cop_seqmax|5.005000||Viu +PL_cshlen|5.005000||Viu +PL_curcop|5.004005|5.003007|p +PL_curcopdb|5.005000||Viu +PL_curlocales|5.027009||Viu +PL_curpad|5.005000|5.005000|x +PL_curpm|5.005000||Viu +PL_curpm_under|5.025007||Viu +PL_curstack|5.005000||Viu +PL_curstackinfo|5.005000||Viu +PL_curstash|5.004005|5.003007|p +PL_curstname|5.005000||Viu +PL_custom_op_descs|5.007003||Viu +PL_custom_op_names|5.007003||Viu +PL_custom_ops|5.013007||Viu +PL_cv_has_eval|5.009000||Viu +PL_dbargs|5.005000||Viu +PL_DBcontrol|5.021005||Viu +PL_DBcv|5.005000||Viu +PL_DBgv|5.005000||Viu +PL_DBline|5.005000||Viu +PL_DBsignal|5.005000|5.003007|poVnu +PL_DBsignal_iv|5.021005||Viu +PL_DBsingle|5.005000||pV +PL_DBsingle_iv|5.021005||Viu +PL_DBsub|5.005000||pV +PL_DBtrace|5.005000||pV +PL_DBtrace_iv|5.021005||Viu +PL_debstash|5.005000|5.003007|poVnu +PL_debug|5.005000||Viu +PL_debug_pad|5.007003||Viu +PL_defgv|5.004005|5.003007|p +PL_def_layerlist|5.007003||Viu +PL_defoutgv|5.005000||Viu +PL_defstash|5.005000||Viu +PL_delaymagic|5.005000||Viu +PL_delaymagic_egid|5.015008||Viu +PL_delaymagic_euid|5.015008||Viu +PL_delaymagic_gid|5.015008||Viu +PL_delaymagic_uid|5.015008||Viu +PL_destroyhook|5.010000||Viu +PL_diehook|5.005000|5.003007|poVnu +PL_Dir|5.006000||Viu +PL_dirty|5.005000|5.003007|poVnu +PL_doswitches|5.005000||Viu +PL_dowarn|5.005000||pV +PL_dumper_fd|5.009003||Viu +PL_dumpindent|5.006000||Viu +PL_dump_re_max_len|5.023008||Viu +PL_efloatbuf|5.006000||Viu +PL_efloatsize|5.006000||Viu +PL_E_FORMAT_PRECISION|5.029000||Viu +PL_encoding|5.007003||Viu +PL_endav|5.005000||Viu +PL_Env|5.006000||Viu +PL_envgv|5.005000||Viu +PL_errgv|5.004005|5.003007|p +PL_error_count||5.003007|ponu +PL_errors|5.006000||Viu +PL_e_script|5.005000||Viu +PL_eval_root|5.005000||Viu +PL_evalseq|5.005000||Viu +PL_eval_start|5.005000||Viu +PL_exit_flags|5.006000|5.006000| +PL_exitlist|5.005000||Viu +PL_exitlistlen|5.005000||Viu +PL_expect||5.003007|ponu +PL_fdpid|5.005000||Viu +PL_filemode|5.005000||Viu +PL_firstgv|5.005000||Viu +PL_forkprocess|5.005000||Viu +PL_formtarget|5.005000||Viu +PL_GCB_invlist|5.021009||Viu +PL_generation|5.005000||Viu +PL_gensym|5.005000||Viu +PL_globalstash|5.005000||Viu +PL_globhook|5.015005||Viu +PL_hash_rand_bits|5.017010||Viu +PL_HASH_RAND_BITS_ENABLED|5.018000||Viu +PL_hash_rand_bits_enabled|5.018000||Viu +PL_hash_seed|5.033007||Viu +PL_hash_state|5.033007||Viu +PL_HasMultiCharFold|5.017005||Viu +PL_hexdigit||5.003007|pn +PL_hintgv|5.005000||Viu +PL_hints|5.005000|5.003007|poVnu +PL_hv_fetch_ent_mh|5.005000||Viu +PL_incgv|5.005000||Viu +PL_in_clean_all|5.005000||Viu +PL_in_clean_objs|5.005000||Viu +PL_in_eval|5.005000||Viu +PL_initav|5.005000||Viu +PL_in_load_module|5.008001||Viu +PL_in_my||5.003007|ponu +PL_in_my_stash||5.005000|ponu +PL_inplace|5.005000||Viu +PL_in_some_fold|5.029007||Viu +PL_internal_random_state|5.027004||Viu +PL_in_utf8_COLLATE_locale|5.025002||Viu +PL_in_utf8_CTYPE_locale|5.019009||Viu +PL_in_utf8_turkic_locale|5.029008||Viu +PL_isarev|5.009005||Viu +PL_keyword_plugin|5.011002|5.011002|x +PL_known_layers|5.007003||Viu +PL_langinfo_buf|5.027004||Viu +PL_langinfo_bufsize|5.027004||Viu +PL_lastfd|5.005000||Viu +PL_lastgotoprobe|5.005000||Viu +PL_last_in_gv|5.005000||Vi +PL_laststatval|5.005000|5.003007|poVnu +PL_laststype|5.005000||Viu +PL_Latin1|5.015008||Viu +PL_LB_invlist|5.023007||Viu +PL_lc_numeric_mutex_depth|5.027009||Viu +PL_lex_state||5.003007|ponu +PL_lex_stuff||5.003007|ponu +PL_linestr||5.003007|ponu +PL_LIO|5.006000||Viu +PL_locale_utf8ness|5.027009||Viu +PL_localizing|5.005000||Viu +PL_localpatches|5.005000||Viu +PL_lockhook|5.007003||Viu +PL_main_cv|5.005000||Viu +PL_main_root|5.005000||Viu +PL_mainstack|5.005000||Viu +PL_main_start|5.005000||Viu +PL_markstack|5.005000||Viu +PL_markstack_max|5.005000||Viu +PL_markstack_ptr|5.005000||Viu +PL_max_intro_pending|5.005000||Viu +PL_maxo|5.005000||Viu +PL_maxsysfd|5.005000|5.005000| +PL_mbrlen_ps|5.031010||Viu +PL_mbrtowc_ps|5.031010||Viu +PL_Mem|5.006000||Viu +PL_mem_log|5.033005||Viu +PL_memory_debug_header|5.009004||Viu +PL_MemParse|5.006000||Viu +PL_MemShared|5.006000||Viu +PL_mess_sv|5.005000|5.004000|poVnu +PL_min_intro_pending|5.005000||Viu +PL_minus_a|5.005000||Viu +PL_minus_c|5.005000||Viu +PL_minus_E|5.009003||Viu +PL_minus_F|5.005000||Viu +PL_minus_l|5.005000||Viu +PL_minus_n|5.005000||Viu +PL_minus_p|5.005000||Viu +PL_modcount|5.005000||Viu +PL_modglobal|5.005000|5.005000| +PL_multideref_pc|5.021007||Viu +PL_my_cxt_list|5.009003||Viu +PL_my_cxt_size|5.009003||Viu +PL_na|5.004005|5.003007|p +PL_nomemok|5.005000||Viu +PL_no_modify||5.003007|ponu +PL_numeric_name|5.005000||Viu +PL_numeric_radix_sv|5.007002||Viu +PL_numeric_standard|5.005000||Viu +PL_numeric_underlying|5.027006||Viu +PL_numeric_underlying_is_standard|5.027009||Viu +PL_ofsgv|5.011000||Vi +PL_oldname|5.005000||Viu +PL_op|5.005000||Viu +PL_op_exec_cnt|5.019002||Viu +PL_opfreehook|5.011000|5.011000| +PL_op_mask|5.005000||Viu +PL_origalen|5.005000||Viu +PL_origargc|5.005000||Viu +PL_origargv|5.005000||Viu +PL_origenviron|5.005000||Viu +PL_origfilename|5.005000||Viu +PL_ors_sv|5.007001||Viu +PL_osname|5.005000||Viu +PL_padix|5.005000||Viu +PL_padix_floor|5.005000||Viu +PL_padlist_generation|5.021007||Viu +PL_padname_const|5.021007||Viu +PL_padname_undef|5.021007||Viu +PL_pad_reset_pending|5.005000||Viu +PL_parser|5.009005|5.003007|p +PL_patchlevel|5.005000||Viu +PL_peepp|5.007003|5.007003| +PL_perldb|5.005000|5.003007|poVnu +PL_perl_destruct_level|5.004005|5.003007|p +PL_perlio|5.007003||Viu +PL_phase|5.013007|5.013007| +PL_pidstatus|5.005000||Viu +PL_Posix_ptrs|5.029000||Viu +PL_ppaddr||5.003007|ponu +PL_preambleav|5.005000||Viu +PL_Private_Use|5.029009||Viu +PL_Proc|5.006000||Viu +PL_profiledata|5.005000||Viu +PL_psig_name|5.006000||Viu +PL_psig_pend|5.007001||Viu +PL_psig_ptr|5.006000||Viu +PL_ptr_table|5.006000||Viu +PL_random_state|5.019004||Viu +PL_RANDOM_STATE_TYPE|5.019004||Viu +PL_reentrant_buffer|5.007002||Viu +PL_reentrant_retint|5.008001||Viu +PL_reg_curpm|5.006000||Viu +PL_regex_pad|5.007002||Viu +PL_regex_padav|5.007002||Viu +PL_registered_mros|5.010001||Viu +PL_regmatch_slab|5.009004||Viu +PL_regmatch_state|5.009004||Viu +PL_replgv|5.005000||Viu +PL_restartjmpenv|5.013001||Viu +PL_restartop|5.005000|5.005000| +PL_rpeepp|5.013005|5.013005| +PL_rs|5.005000||Vi +PL_rsfp||5.003007|ponu +PL_rsfp_filters||5.003007|ponu +PL_runops|5.006000|5.006000| +PL_savebegin|5.007003||Viu +PL_savestack|5.005000||Viu +PL_savestack_ix|5.005000||Viu +PL_savestack_max|5.005000||Viu +PL_sawampersand|5.005000||Viu +PL_SB_invlist|5.021009||Viu +PL_scopestack|5.005000||Viu +PL_scopestack_ix|5.005000||Viu +PL_scopestack_max|5.005000||Viu +PL_scopestack_name|5.011002||Viu +PL_SCX_invlist|5.027008||Viu +PL_secondgv|5.005000||Viu +PL_setlocale_buf|5.027009||Viu +PL_setlocale_bufsize|5.027009||Viu +PL_sharehook|5.007003||Viu +PL_sighandler1p|5.031007||Viu +PL_sighandler3p|5.031007||Viu +PL_sighandlerp|5.005000||Viu +PL_signalhook|5.013002||Viu +PL_signals|5.008001|5.003007|poVnu +PL_sig_pending|5.007001||Viu +PL_Sock|5.006000||Viu +PL_sortcop|5.005000||Viu +PL_sortstash|5.005000||Viu +PL_splitstr|5.005000||Viu +PL_srand_called|5.006000||Viu +PL_stack_base|5.005000|5.003007|poVnu +PL_stack_max|5.005000||Viu +PL_stack_sp|5.005000|5.003007|poVnu +PL_start_env|5.005000||Viu +PL_stashcache|5.008001||Viu +PL_stashpad|5.017001||Viu +PL_stashpadix|5.017001||Viu +PL_stashpadmax|5.017001||Viu +PL_statcache|5.005000|5.003007|poVnu +PL_statgv|5.005000||Viu +PL_statname|5.005000||Viu +PL_statusvalue|5.005000||Viu +PL_statusvalue_posix|5.009003||Viu +PL_statusvalue_vms|5.005000||Viu +PL_stderrgv|5.006000||Viu +PL_stdingv|5.005000|5.003007|poVnu +PL_StdIO|5.006000||Viu +PL_strtab|5.005000||Viu +PL_strxfrm_is_behaved|5.025002||Viu +PL_strxfrm_max_cp|5.025002||Viu +PL_strxfrm_NUL_replacement|5.025008||Viu +PL_sub_generation|5.005000||Viu +PL_subline|5.005000||Viu +PL_subname|5.005000||Viu +PL_Sv|5.005000||pcV +PL_sv_arenaroot|5.005000|5.003007|poVnu +PL_sv_consts|5.019002||Viu +PL_sv_count|5.005000||Viu +PL_sv_immortals|5.027003||Viu +PL_sv_no|5.004005|5.003007|p +PL_sv_root|5.005000||Viu +PL_sv_serial|5.010001||Viu +PL_sv_undef|5.004005|5.003007|p +PL_sv_yes|5.004005|5.003007|p +PL_sv_zero|5.027003|5.027003| +PL_sys_intern|5.005000||Viu +PL_tainted|5.005000|5.003007|poVnu +PL_tainting|5.005000|5.003007|poVnu +PL_taint_warn|5.007003||Viu +PL_threadhook|5.008000||Viu +PL_tmps_floor|5.005000||Viu +PL_tmps_ix|5.005000||Viu +PL_tmps_max|5.005000||Viu +PL_tmps_stack|5.005000||Viu +PL_tokenbuf||5.003007|ponu +PL_top_env|5.005000||Viu +PL_toptarget|5.005000||Viu +PL_TR_SPECIAL_HANDLING_UTF8|5.031006||Viu +PL_underlying_numeric_obj|5.027009||Viu +PL_unicode|5.008001||Viu +PL_unitcheckav|5.009005||Viu +PL_unitcheckav_save|5.009005||Viu +PL_unlockhook|5.007003||Viu +PL_unsafe|5.005000||Viu +PL_UpperLatin1|5.019005||Viu +PLUS|5.003007||Viu +PLUS_t8_p8|5.033003||Viu +PLUS_t8_pb|5.033003||Viu +PLUS_tb_p8|5.033003||Viu +PLUS_tb_pb|5.033003||Viu +PL_utf8cache|5.009004||Viu +PL_utf8_charname_begin|5.017006||Viu +PL_utf8_charname_continue|5.017006||Viu +PL_utf8_foldclosures|5.013007||Viu +PL_utf8_idcont|5.008000||Viu +PL_utf8_idstart|5.008000||Viu +PL_utf8locale|5.008001||Viu +PL_utf8_mark|5.006000||Viu +PL_utf8_perl_idcont|5.017008||Viu +PL_utf8_perl_idstart|5.015004||Viu +PL_utf8_tofold|5.007003||Viu +PL_utf8_tolower|5.006000||Viu +PL_utf8_tosimplefold|5.027011||Viu +PL_utf8_totitle|5.006000||Viu +PL_utf8_toupper|5.006000||Viu +PL_utf8_xidcont|5.013010||Viu +PL_utf8_xidstart|5.013010||Viu +PL_vtbl_arylen|5.015000||Viu +PL_vtbl_arylen_p|5.015000||Viu +PL_vtbl_backref|5.015000||Viu +PL_vtbl_bm|5.015000||Viu +PL_vtbl_checkcall|5.017000||Viu +PL_vtbl_collxfrm|5.015000||Viu +PL_vtbl_dbline|5.015000||Viu +PL_vtbl_debugvar|5.021005||Viu +PL_vtbl_defelem|5.015000||Viu +PL_vtbl_env|5.015000||Viu +PL_vtbl_envelem|5.015000||Viu +PL_vtbl_fm|5.015000||Viu +PL_vtbl_hints|5.015000||Viu +PL_vtbl_hintselem|5.015000||Viu +PL_vtbl_isa|5.015000||Viu +PL_vtbl_isaelem|5.015000||Viu +PL_vtbl_lvref|5.021005||Viu +PL_vtbl_mglob|5.015000||Viu +PL_vtbl_nkeys|5.015000||Viu +PL_vtbl_nonelem|5.027009||Viu +PL_vtbl_ovrld|5.015000||Viu +PL_vtbl_pack|5.015000||Viu +PL_vtbl_packelem|5.015000||Viu +PL_vtbl_pos|5.015000||Viu +PL_vtbl_regdata|5.015000||Viu +PL_vtbl_regdatum|5.015000||Viu +PL_vtbl_regexp|5.015000||Viu +PL_vtbl_sig|5.035001||Viu +PL_vtbl_sigelem|5.015000||Viu +PL_vtbl_substr|5.015000||Viu +PL_vtbl_sv|5.015000||Viu +PL_vtbl_taint|5.015000||Viu +PL_vtbl_utf8|5.015000||Viu +PL_vtbl_uvar|5.015000||Viu +PL_vtbl_vec|5.015000||Viu +PL_warnhook|5.005000||Viu +PL_warn_locale|5.021008||Viu +PL_watchaddr|5.006000||Viu +PL_watchok|5.006000||Viu +PL_WB_invlist|5.021009||Viu +PL_wcrtomb_ps|5.031010||Viu +PL_XPosix_ptrs|5.017008||Viu +PL_Xpv|5.005000|5.003007|poVnu +PL_xsubfilename|5.021006||Viu +pm_description|5.009004||Viu +PMf_BASE_SHIFT|5.013004||Viu +PMf_CHARSET|5.017011||Viu +PMf_CODELIST_PRIVATE|5.017001||Viu +PMf_CONST|5.003007||Viu +PMf_CONTINUE|5.004000||Viu +PMf_EVAL|5.003007||Viu +PMf_EXTENDED|5.003007||Viu +PMf_EXTENDED_MORE|5.021005||Viu +PMf_FOLD|5.003007||Viu +PMf_GLOBAL|5.003007||Viu +PMf_HAS_CV|5.017001||Viu +PMf_HAS_ERROR|5.025010||Viu +PMf_IS_QR|5.017001||Viu +PMf_KEEP|5.003007||Viu +PMf_KEEPCOPY|5.009005||Viu +PMf_MULTILINE|5.003007||Viu +PMf_NOCAPTURE|5.021008||Viu +PMf_NONDESTRUCT|5.013002||Viu +PMf_ONCE|5.003007||Viu +PMf_RETAINT|5.004005||Viu +PMf_SINGLELINE|5.003007||Viu +PMf_SPLIT|5.017011||Viu +PMf_STRICT|5.021008||Viu +PMf_USED|5.009005||Viu +PMf_USE_RE_EVAL|5.017001||Viu +PMf_WILDCARD|5.031010||Viu +PM_GETRE|5.007002||Viu +pmop_dump|5.006000|5.006000|u +PmopSTASH|5.007001||Viu +PmopSTASHPV|5.007001||Viu +PmopSTASHPV_set|5.007001||Viu +PmopSTASH_set|5.007001||Viu +pmruntime|5.003007||Viu +PM_SETRE|5.007002||Viu +PM_STR|5.027010||Viu +pmtrans|5.003007||Viu +pMY_CXT|5.009000|5.009000|p +_pMY_CXT||5.009000|p +pMY_CXT_||5.009000|p +PNf|5.021007||Viu +PNfARG|5.021007||Viu +Poison|5.008000|5.003007|p +PoisonFree|5.009004|5.003007|p +PoisonNew|5.009004|5.003007|p +PoisonPADLIST|5.021006||Viu +PoisonWith|5.009004|5.003007|p +popen|5.003007||Viu +POPi|5.003007|5.003007| +POPl|5.003007|5.003007| +POPMARK|5.003007||cViu +POP_MULTICALL|5.009003|5.009003| +POPn|5.006000|5.003007| +POPp|5.003007|5.003007| +POPpbytex|5.007001|5.007001| +POPpconstx|5.009003||Viu +POPpx|5.005003|5.005003| +POPs|5.003007|5.003007| +pop_scope|5.003007|5.003007|u +POPSTACK|5.005000||Viu +POPSTACK_TO|5.005000||Viu +POPu|5.004000|5.004000| +POPul|5.006000|5.006000| +populate_ANYOF_from_invlist|5.019005||Viu +populate_isa|||viu +POSIXA|5.017003||Viu +POSIXA_t8_p8|5.033003||Viu +POSIXA_t8_pb|5.033003||Viu +POSIXA_tb_p8|5.033003||Viu +POSIXA_tb_pb|5.033003||Viu +POSIX_CC_COUNT|5.017008||Viu +POSIXD|5.017003||Viu +POSIXD_t8_p8|5.033003||Viu +POSIXD_t8_pb|5.033003||Viu +POSIXD_tb_p8|5.033003||Viu +POSIXD_tb_pb|5.033003||Viu +POSIXL|5.017003||Viu +POSIXL_CLEAR|5.029004||Viu +POSIXL_SET|5.029004||Viu +POSIXL_t8_p8|5.033003||Viu +POSIXL_t8_pb|5.033003||Viu +POSIXL_tb_p8|5.033003||Viu +POSIXL_tb_pb|5.033003||Viu +POSIXL_TEST|5.029004||Viu +POSIXL_ZERO|5.029004||Viu +POSIXU|5.017003||Viu +POSIXU_t8_p8|5.033003||Viu +POSIXU_t8_pb|5.033003||Viu +POSIXU_tb_p8|5.033003||Viu +POSIXU_tb_pb|5.033003||Viu +PP|5.003007||Viu +pregcomp|5.009005|5.009005| +pregexec|5.003007|5.003007| +PREGf_ANCH|5.019009||Viu +PREGf_ANCH_GPOS|5.019009||Viu +PREGf_ANCH_MBOL|5.019009||Viu +PREGf_ANCH_SBOL|5.019009||Viu +PREGf_CUTGROUP_SEEN|5.009005||Viu +PREGf_GPOS_FLOAT|5.019009||Viu +PREGf_GPOS_SEEN|5.019009||Viu +PREGf_IMPLICIT|5.009005||Viu +PREGf_NAUGHTY|5.009005||Viu +PREGf_NOSCAN|5.019009||Viu +PREGf_RECURSE_SEEN|5.023009||Viu +pregfree2|5.011000||cVu +pregfree|5.003007|5.003007|u +PREGf_SKIP|5.009005||Viu +PREGf_USE_RE_EVAL|5.017001||Viu +PREGf_VERBARG_SEEN|5.009005||Viu +prepare_SV_for_RV|5.010001||Viu +prescan_version|5.011004|5.011004| +PRESCAN_VERSION|5.019008||Viu +PREVOPER|5.003007||Viu +PREV_RANGE_MATCHES_INVLIST|5.023002||Viu +printbuf|5.009004||Viu +print_bytes_for_locale|5.027002||Viu +print_collxfrm_input_and_return|5.025004||Viu +printf|5.003007||Viu +PRINTF_FORMAT_NULL_OK|5.009005|5.009005|Vn +printf_nocontext|5.007001|5.007001|vdnu +PRIVLIB|5.003007|5.003007|Vn +PRIVLIB_EXP|5.003007|5.003007|Vn +PRIVSHIFT|5.003007||Viu +process_special_blocks|5.009005||Viu +PROCSELFEXE_PATH|5.007003|5.007003|Vn +PRUNE|5.009005||Viu +PRUNE_t8_p8|5.033003||Viu +PRUNE_t8_pb|5.033003||Viu +PRUNE_tb_p8|5.033003||Viu +PRUNE_tb_pb|5.033003||Viu +PSEUDO|5.009004||Viu +PSEUDO_t8_p8|5.033003||Viu +PSEUDO_t8_pb|5.033003||Viu +PSEUDO_tb_p8|5.033003||Viu +PSEUDO_tb_pb|5.033003||Viu +pthread_addr_t|5.005000||Viu +PTHREAD_ATFORK|5.007002||Viu +pthread_attr_init|5.006000||Viu +PTHREAD_ATTR_SETDETACHSTATE|5.006000||Viu +pthread_condattr_default|5.005000||Viu +PTHREAD_CREATE|5.006000||Viu +pthread_create|5.008001||Viu +PTHREAD_CREATE_JOINABLE|5.005000||Viu +PTHREAD_GETSPECIFIC|5.007002||Viu +PTHREAD_GETSPECIFIC_INT|5.006000||Viu +pthread_key_create|5.005000||Viu +pthread_keycreate|5.008001||Viu +pthread_mutexattr_default|5.005000||Viu +pthread_mutexattr_init|5.005000||Viu +pthread_mutexattr_settype|5.005000||Viu +pTHX_12|5.019010||Viu +pTHX_1|5.006000||Viu +pTHX_2|5.006000||Viu +pTHX_3|5.006000||Viu +pTHX_4|5.006000||Viu +pTHX|5.006000|5.003007|p +pTHX_5|5.009003||Viu +pTHX_6|5.009003||Viu +pTHX_7|5.009003||Viu +pTHX_8|5.009003||Viu +pTHX_9|5.009003||Viu +pTHX_||5.003007|p +pTHX__FORMAT|5.009002||Viu +pTHX_FORMAT|5.009002||Viu +pTHXo|5.006000||Viu +pTHX__VALUE|5.009002||Viu +pTHX_VALUE|5.009002||Viu +pTHXx|5.006000||Viu +PTR2IV|5.006000|5.003007|p +PTR2nat|5.009003|5.003007|p +PTR2NV|5.006000|5.003007|p +PTR2ul|5.007001|5.003007|p +PTR2UV|5.006000|5.003007|p +Ptrdiff_t|5.029003||Viu +ptr_hash|5.017010||Vniu +PTRSIZE|5.005000|5.005000|Vn +ptr_table_clear|5.009005|5.009005|du +ptr_table_fetch|5.009005|5.009005|u +ptr_table_find|5.009004||Vniu +ptr_table_free|5.009005|5.009005|u +ptr_table_new|5.009005|5.009005|u +ptr_table_split|5.009005|5.009005|u +ptr_table_store|5.009005|5.009005|u +PTRV|5.006000|5.003007|poVnu +PUSHi|5.003007|5.003007| +PUSHMARK|5.003007|5.003007| +PUSHmortal|5.009002|5.003007|p +PUSH_MULTICALL|5.011000|5.011000| +PUSH_MULTICALL_FLAGS|5.018000||Viu +PUSHn|5.006000|5.003007| +PUSHp|5.003007|5.003007| +PUSHs|5.003007|5.003007| +push_scope|5.003007|5.003007|u +PUSHSTACK|5.005000||Viu +PUSHSTACKi|5.005000||Viu +PUSHSTACK_INIT_HWM|5.027002||Viu +PUSHTARG|5.003007||Viu +PUSHu|5.004000|5.003007|p +PUTBACK|5.003007|5.003007| +putc|5.003007||Viu +put_charclass_bitmap_innards|5.021004||Viu +put_charclass_bitmap_innards_common|5.023008||Viu +put_charclass_bitmap_innards_invlist|5.023008||Viu +put_code_point|5.021004||Viu +putc_unlocked|5.003007||Viu +putenv|5.005000||Viu +put_range|5.019009||Viu +putw|5.003007||Viu +pv_display|5.006000|5.003007|p +pv_escape|5.009004|5.003007|p +pv_pretty|5.009004|5.003007|p +pv_uni_display|5.007003|5.007003| +pWARN_ALL|5.006000||Viu +pWARN_NONE|5.006000||Viu +pWARN_STD|5.006000||Viu +PWGECOS|5.004005|5.004005|Vn +PWPASSWD|5.005000|5.005000|Vn +qerror|5.006000||cViu +QR_PAT_MODS|5.009005||Viu +QUAD_IS_INT|5.006000|5.006000|Vn +QUAD_IS___INT64|5.015003|5.015003|Vn +QUAD_IS_INT64_T|5.006000|5.006000|Vn +QUAD_IS_LONG|5.006000|5.006000|Vn +QUAD_IS_LONG_LONG|5.006000|5.006000|Vn +QUADKIND|5.006000|5.006000|Vn +quadmath_format_needed|5.021004||Vni +quadmath_format_valid|5.031007||Vni +Quad_t|5.003007|5.003007|Vn +QUESTION_MARK_CTRL|5.021001||Viu +RADIXCHAR|5.027010||Viu +RANDBITS|5.003007|5.003007|Vn +RANDOM_R_PROTO|5.008000|5.008000|Vn +Rand_seed_t|5.006000|5.006000|Vn +RANGE_INDICATOR|5.031006||Viu +rck_elide_nothing|5.032001||Viu +RD_NODATA|5.003007|5.003007|Vn +read|5.005000||Viu +readdir|5.005000||Viu +readdir64|5.009000||Viu +READDIR64_R_PROTO|5.008000|5.008000|Vn +READDIR_R_PROTO|5.008000|5.008000|Vn +READ_XDIGIT|5.017006|5.017006| +realloc|5.007002|5.007002|n +ReANY|5.017006||cVnu +re_compile|5.009005|5.009005|u +RE_COMPILE_RECURSION_INIT|5.029009||Viu +RE_COMPILE_RECURSION_LIMIT|5.029009||Viu +re_croak|||iu +recv|5.006000||Viu +recvfrom|5.005000||Viu +RE_DEBUG_COMPILE_DUMP|5.009004||Viu +RE_DEBUG_COMPILE_FLAGS|5.009005||Viu +RE_DEBUG_COMPILE_MASK|5.009004||Viu +RE_DEBUG_COMPILE_OPTIMISE|5.009004||Viu +RE_DEBUG_COMPILE_PARSE|5.009004||Viu +RE_DEBUG_COMPILE_TEST|5.021005||Viu +RE_DEBUG_COMPILE_TRIE|5.009004||Viu +RE_DEBUG_EXECUTE_INTUIT|5.009004||Viu +RE_DEBUG_EXECUTE_MASK|5.009004||Viu +RE_DEBUG_EXECUTE_MATCH|5.009004||Viu +RE_DEBUG_EXECUTE_TRIE|5.009004||Viu +RE_DEBUG_EXTRA_BUFFERS|5.009005||Viu +RE_DEBUG_EXTRA_DUMP_PRE_OPTIMIZE|5.031004||Viu +RE_DEBUG_EXTRA_GPOS|5.011000||Viu +RE_DEBUG_EXTRA_MASK|5.009004||Viu +RE_DEBUG_EXTRA_OFFDEBUG|5.009005||Viu +RE_DEBUG_EXTRA_OFFSETS|5.009004||Viu +RE_DEBUG_EXTRA_OPTIMISE|5.009005||Viu +RE_DEBUG_EXTRA_STACK|5.009005||Viu +RE_DEBUG_EXTRA_STATE|5.009004||Viu +RE_DEBUG_EXTRA_TRIE|5.009004||Viu +RE_DEBUG_EXTRA_WILDCARD|5.031011||Viu +RE_DEBUG_FLAG|5.009004||Viu +RE_DEBUG_FLAGS|5.009002||Viu +re_dup_guts|5.011000|5.011000| +reentrant_free|5.008000||cVu +reentrant_init|5.008000||cVu +REENTRANT_PROTO_B_B|5.008000||Viu +REENTRANT_PROTO_B_BI|5.008000||Viu +REENTRANT_PROTO_B_BW|5.008000||Viu +REENTRANT_PROTO_B_CCD|5.008000||Viu +REENTRANT_PROTO_B_CCS|5.008000||Viu +REENTRANT_PROTO_B_IBI|5.008000||Viu +REENTRANT_PROTO_B_IBW|5.008000||Viu +REENTRANT_PROTO_B_SB|5.008000||Viu +REENTRANT_PROTO_B_SBI|5.008000||Viu +REENTRANT_PROTO_I_BI|5.008000||Viu +REENTRANT_PROTO_I_BW|5.008000||Viu +REENTRANT_PROTO_I_CCSBWR|5.008000||Viu +REENTRANT_PROTO_I_CCSD|5.008000||Viu +REENTRANT_PROTO_I_CII|5.008000||Viu +REENTRANT_PROTO_I_CIISD|5.008000||Viu +REENTRANT_PROTO_I_CSBI|5.008000||Viu +REENTRANT_PROTO_I_CSBIR|5.008000||Viu +REENTRANT_PROTO_I_CSBWR|5.008000||Viu +REENTRANT_PROTO_I_CSBWRE|5.008000||Viu +REENTRANT_PROTO_I_CSD|5.008000||Viu +REENTRANT_PROTO_I_CWISBWRE|5.008000||Viu +REENTRANT_PROTO_I_CWISD|5.008000||Viu +REENTRANT_PROTO_I_D|5.008000||Viu +REENTRANT_PROTO_I_H|5.008000||Viu +REENTRANT_PROTO_I_IBI|5.008000||Viu +REENTRANT_PROTO_I_IBW|5.008000||Viu +REENTRANT_PROTO_I_ICBI|5.008000||Viu +REENTRANT_PROTO_I_ICSBWR|5.008000||Viu +REENTRANT_PROTO_I_ICSD|5.008000||Viu +REENTRANT_PROTO_I_ID|5.008000||Viu +REENTRANT_PROTO_I_IISD|5.008000||Viu +REENTRANT_PROTO_I_ISBWR|5.008000||Viu +REENTRANT_PROTO_I_ISD|5.008000||Viu +REENTRANT_PROTO_I_LISBI|5.008000||Viu +REENTRANT_PROTO_I_LISD|5.008000||Viu +REENTRANT_PROTO_I_SB|5.008000||Viu +REENTRANT_PROTO_I_SBI|5.008000||Viu +REENTRANT_PROTO_I_SBIE|5.008000||Viu +REENTRANT_PROTO_I_SBIH|5.008000||Viu +REENTRANT_PROTO_I_SBIR|5.008000||Viu +REENTRANT_PROTO_I_SBWR|5.008000||Viu +REENTRANT_PROTO_I_SBWRE|5.008000||Viu +REENTRANT_PROTO_I_SD|5.008000||Viu +REENTRANT_PROTO_I_TISD|5.008000||Viu +REENTRANT_PROTO_I_TS|5.008000||Viu +REENTRANT_PROTO_I_TSBI|5.008000||Viu +REENTRANT_PROTO_I_TSBIR|5.008000||Viu +REENTRANT_PROTO_I_TSBWR|5.008000||Viu +REENTRANT_PROTO_I_TsISBWRE|5.008001||Viu +REENTRANT_PROTO_I_TSR|5.008000||Viu +REENTRANT_PROTO_I_UISBWRE|5.008000||Viu +REENTRANT_PROTO_I_uISBWRE|5.008001||Viu +REENTRANT_PROTO_S_CBI|5.008000||Viu +REENTRANT_PROTO_S_CCSBI|5.008000||Viu +REENTRANT_PROTO_S_CIISBIE|5.008000||Viu +REENTRANT_PROTO_S_CSBI|5.008000||Viu +REENTRANT_PROTO_S_CSBIE|5.008000||Viu +REENTRANT_PROTO_S_CWISBIE|5.008000||Viu +REENTRANT_PROTO_S_CWISBWIE|5.008000||Viu +REENTRANT_PROTO_S_ICSBI|5.008000||Viu +REENTRANT_PROTO_S_ISBI|5.008000||Viu +REENTRANT_PROTO_S_LISBI|5.008000||Viu +REENTRANT_PROTO_S_SBI|5.008000||Viu +REENTRANT_PROTO_S_SBIE|5.008000||Viu +REENTRANT_PROTO_S_SBW|5.008000||Viu +REENTRANT_PROTO_S_TISBI|5.008000||Viu +REENTRANT_PROTO_S_TS|5.031011||Viu +REENTRANT_PROTO_S_TSBI|5.008000||Viu +REENTRANT_PROTO_S_TSBIE|5.008000||Viu +REENTRANT_PROTO_S_TWISBIE|5.008000||Viu +REENTRANT_PROTO_V_D|5.008000||Viu +REENTRANT_PROTO_V_H|5.008000||Viu +REENTRANT_PROTO_V_ID|5.008000||Viu +reentrant_retry|5.008000||vcVnu +reentrant_size|5.008000||cVu +REENTR_MEMZERO|5.009003||Viu +re_exec_indentf|5.023009||vViu +REF|5.003007||Viu +ref|5.009003||Viu +ref_array_or_hash|5.027008||Viu +refcounted_he_chain_2hv|5.013007||cVi +REFCOUNTED_HE_EXISTS|5.015007||Viu +refcounted_he_fetch_pv|5.013007||cVi +refcounted_he_fetch_pvn|5.013007||cVi +refcounted_he_fetch_pvs|5.013007||Vi +refcounted_he_fetch_sv|5.013007||cVi +refcounted_he_free|5.013007||cVi +refcounted_he_inc|5.013007||cVi +REFCOUNTED_HE_KEY_UTF8|5.013007||Viu +refcounted_he_new_pv|5.013007||cVi +refcounted_he_new_pvn|5.013007||cVi +refcounted_he_new_pvs|5.013007||Vi +refcounted_he_new_sv|5.013007||cVi +refcounted_he_value|5.009004||Viu +REFF|5.004001||Viu +REFFA|5.013010||Viu +REFFAN|5.031001||Viu +REFFAN_t8_p8|5.033003||Viu +REFFAN_t8_pb|5.033003||Viu +REFFAN_tb_p8|5.033003||Viu +REFFAN_tb_pb|5.033003||Viu +REFFA_t8_p8|5.033003||Viu +REFFA_t8_pb|5.033003||Viu +REFFA_tb_p8|5.033003||Viu +REFFA_tb_pb|5.033003||Viu +REFFL|5.004001||Viu +REFFLN|5.031001||Viu +REFFLN_t8_p8|5.033003||Viu +REFFLN_t8_pb|5.033003||Viu +REFFLN_tb_p8|5.033003||Viu +REFFLN_tb_pb|5.033003||Viu +REFFL_t8_p8|5.033003||Viu +REFFL_t8_pb|5.033003||Viu +REFFL_tb_p8|5.033003||Viu +REFFL_tb_pb|5.033003||Viu +REFFN|5.031001||Viu +REFFN_t8_p8|5.033003||Viu +REFFN_t8_pb|5.033003||Viu +REFFN_tb_p8|5.033003||Viu +REFFN_tb_pb|5.033003||Viu +REFF_t8_p8|5.033003||Viu +REFF_t8_pb|5.033003||Viu +REFF_tb_p8|5.033003||Viu +REFF_tb_pb|5.033003||Viu +REFFU|5.013008||Viu +REFFUN|5.031001||Viu +REFFUN_t8_p8|5.033003||Viu +REFFUN_t8_pb|5.033003||Viu +REFFUN_tb_p8|5.033003||Viu +REFFUN_tb_pb|5.033003||Viu +REFFU_t8_p8|5.033003||Viu +REFFU_t8_pb|5.033003||Viu +REFFU_tb_p8|5.033003||Viu +REFFU_tb_pb|5.033003||Viu +REF_HE_KEY|5.009005||Viu +refkids|5.003007||Viu +REFN|5.031001||Viu +REFN_t8_p8|5.033003||Viu +REFN_t8_pb|5.033003||Viu +REFN_tb_p8|5.033003||Viu +REFN_tb_pb|5.033003||Viu +REF_t8_p8|5.033003||Viu +REF_t8_pb|5.033003||Viu +REF_tb_p8|5.033003||Viu +REF_tb_pb|5.033003||Viu +refto|5.005000||Viu +reg2Lanode|5.021005||Viu +reg|5.005000||Viu +reganode|5.005000||Viu +REG_ANY|5.006000||Viu +REG_ANY_t8_p8|5.033003||Viu +REG_ANY_t8_pb|5.033003||Viu +REG_ANY_tb_p8|5.033003||Viu +REG_ANY_tb_pb|5.033003||Viu +regatom|5.005000||Viu +regbranch|5.005000||Viu +reg_check_named_buff_matched|5.009005||Vniu +regclass|5.005000||Viu +regcppop|5.005000||Viu +regcppush|5.005000||Viu +regcp_restore|5.025006||Viu +regcurly|5.013010||cVniu +REG_CUTGROUP_SEEN|5.019009||Viu +regdump|5.005000|5.005000|u +regdump_extflags|5.009005||Viu +regdump_intflags|5.019002||Viu +regdupe_internal|5.009005||cVu +regexec_flags|5.005000||cVu +REGEX_SET|5.031010||Viu +regex_set_precedence|5.021010||Vniu +REGEX_SET_t8_p8|5.033003||Viu +REGEX_SET_t8_pb|5.033003||Viu +REGEX_SET_tb_p8|5.033003||Viu +REGEX_SET_tb_pb|5.033003||Viu +REG_EXTFLAGS_NAME_SIZE|5.020000||Viu +regfree_internal|5.009005||cVu +REG_GPOS_SEEN|5.019009||Viu +reghop3|5.007001||Vniu +reghop4|5.009005||Vniu +reghopmaybe3|5.007001||Vniu +reginclass|5.005000||Viu +REG_INFTY|5.004005||Viu +reginitcolors|5.006000||cVu +reginsert|5.005000||Viu +REG_INTFLAGS_NAME_SIZE|5.020000||Viu +register|5.003007||Viu +REG_LOOKBEHIND_SEEN|5.019009||Viu +REG_MAGIC|5.006000||Viu +regmatch|5.005000||Viu +REGMATCH_STATE_MAX|5.009005||Viu +reg_named_buff|5.009005||cViu +reg_named_buff_all|5.009005||cVu +reg_named_buff_exists|5.009005||cVu +reg_named_buff_fetch|5.009005||cVu +reg_named_buff_firstkey|5.009005||cVu +reg_named_buff_iter|5.009005||cViu +reg_named_buff_nextkey|5.009005||cVu +reg_named_buff_scalar|5.009005||cVu +regnext|5.003007||cVu +reg_node|5.005000||Viu +regnode_guts|5.021005||Viu +REGNODE_MAX|5.009004||Viu +REGNODE_SIMPLE|5.013002||Viu +REGNODE_VARIES|5.013002||Viu +reg_numbered_buff_fetch|5.009005||cViu +reg_numbered_buff_length|5.009005||cViu +reg_numbered_buff_store|5.009005||cViu +regpiece|5.005000||Viu +regpnode|5.031010||Viu +regprop|5.003007||Viu +reg_qr_package|5.009005||cViu +REG_RECURSE_SEEN|5.019009||Viu +regrepeat|5.005000||Viu +REG_RUN_ON_COMMENT_SEEN|5.019009||Viu +reg_scan_name|5.009005||Viu +reg_skipcomment|5.009005||Vniu +regtail|5.005000||Viu +regtail_study|5.009004||Viu +reg_temp_copy|5.009005||cViu +REG_TOP_LEVEL_BRANCHES_SEEN|5.019009||Viu +regtry|5.005000||Viu +REG_UNBOUNDED_QUANTIFIER_SEEN|5.019009||Viu +REG_UNFOLDED_MULTI_SEEN|5.019009||Viu +REG_VERBARG_SEEN|5.019009||Viu +REG_ZERO_LEN_SEEN|5.019009||Viu +re_indentf|5.023009||vViu +re_intuit_start|5.006000||cVu +re_intuit_string|5.006000||cVu +rename|5.005000||Viu +Renew|5.003007|5.003007| +Renewc|5.003007|5.003007| +RENUM|5.005000||Viu +RENUM_t8_p8|5.033003||Viu +RENUM_t8_pb|5.033003||Viu +RENUM_tb_p8|5.033003||Viu +RENUM_tb_pb|5.033003||Viu +re_op_compile|5.017001||Viu +repeatcpy|5.003007|5.003007|nu +REPLACEMENT_CHARACTER_UTF8|5.025005|5.003007|p +report_evil_fh|5.006001||Viu +report_redefined_cv|5.015006||Viu +report_uninit|5.006000||cVi +report_wrongway_fh|5.013009||Viu +re_printf|5.023009||vViu +RE_PV_COLOR_DECL|5.009004||Viu +RE_PV_QUOTED_DECL|5.009004||Viu +require_pv|5.006000|5.006000| +require_tie_mod|5.009005||Viu +ReREFCNT_dec|5.005000||Viu +ReREFCNT_inc|5.005000||Viu +RESTORE_ERRNO|5.010001||Vi +RESTORE_LC_NUMERIC|5.021010|5.021010|p +restore_magic|5.009003||Viu +restore_switched_locale|5.027009||Viu +RE_SV_DUMPLEN|5.009004||Viu +RE_SV_ESCAPE|5.009004||Viu +RE_SV_TAIL|5.009004||Viu +RETPUSHNO|5.003007||Viu +RETPUSHUNDEF|5.003007||Viu +RETPUSHYES|5.003007||Viu +RE_TRACK_PATTERN_OFFSETS|5.009005||Viu +RE_TRIE_MAXBUF_INIT|5.009002||Viu +RE_TRIE_MAXBUF_NAME|5.009002||Viu +RETSETNO|5.003007||Viu +RETSETTARG|5.021009||Viu +RETSETUNDEF|5.003007||Viu +RETSETYES|5.003007||Viu +RETURN|5.003007||Viu +RETURNOP|5.003007||Viu +RETURNX|5.003007||Viu +RETVAL|5.003007|5.003007|V +rewind|5.003007||Viu +rewinddir|5.005000||Viu +REXEC_CHECKED|5.005000||Viu +REXEC_COPY_SKIP_POST|5.017004||Viu +REXEC_COPY_SKIP_PRE|5.017004||Viu +REXEC_COPY_STR|5.005000||Viu +REXEC_FAIL_ON_UNDERFLOW|5.019003||Viu +REXEC_IGNOREPOS|5.006000||Viu +REXEC_NOT_FIRST|5.006000||Viu +REXEC_SCREAM|5.006000||Viu +rmdir|5.005000||Viu +RMS_DIR|5.008001||Viu +RMS_FAC|5.008001||Viu +RMS_FEX|5.008001||Viu +RMS_FNF|5.008001||Viu +RMS_IFI|5.008001||Viu +RMS_ISI|5.008001||Viu +RMS_PRV|5.008001||Viu +rninstr|5.003007|5.003007|n +ROTL32|5.017010||Viu +ROTL64|5.017010||Viu +ROTL_UV|5.017010||Viu +ROTR32|5.027001||Viu +ROTR64|5.027001||Viu +ROTR_UV|5.027001||Viu +rpeep|5.013005||Viu +rsignal|5.004000|5.004000| +rsignal_restore|5.004000||Viu +rsignal_save|5.004000||Viu +rsignal_state|5.004000|5.004000|u +RsPARA|5.003007||Viu +RsRECORD|5.005000||Viu +RsSIMPLE|5.003007||Viu +RsSNARF|5.003007||Viu +run_body|5.006000||Viu +runops_debug|5.005000||cVu +RUNOPS_DEFAULT|5.005000||Viu +runops_standard|5.005000||cVu +run_user_filter|5.009003||Viu +rv2cv_op_cv|5.013006|5.013006| +RV2CVOPCV_FLAG_MASK|5.021004||Viu +RV2CVOPCV_MARK_EARLY|5.013006|5.013006| +RV2CVOPCV_MAYBE_NAME_GV|5.021004||Viu +RV2CVOPCV_RETURN_NAME_GV|5.013006|5.013006| +RV2CVOPCV_RETURN_STUB|5.021004||Viu +rvpv_dup|5.007003|5.007003|u +RX_ANCHORED_SUBSTR|5.010001||Viu +RX_ANCHORED_UTF8|5.010001||Viu +RXapif_ALL|5.009005||Viu +RXapif_CLEAR|5.009005||Viu +RXapif_DELETE|5.009005||Viu +RXapif_EXISTS|5.009005||Viu +RXapif_FETCH|5.009005||Viu +RXapif_FIRSTKEY|5.009005||Viu +RXapif_NEXTKEY|5.009005||Viu +RXapif_ONE|5.009005||Viu +RXapif_REGNAME|5.009005||Viu +RXapif_REGNAMES|5.009005||Viu +RXapif_REGNAMES_COUNT|5.009005||Viu +RXapif_SCALAR|5.009005||Viu +RXapif_STORE|5.009005||Viu +RX_BUFF_IDX_CARET_FULLMATCH|5.017004||Viu +RX_BUFF_IDX_CARET_POSTMATCH|5.017004||Viu +RX_BUFF_IDX_CARET_PREMATCH|5.017004||Viu +RX_BUFF_IDX_FULLMATCH|5.009005||Viu +RX_BUFF_IDX_POSTMATCH|5.009005||Viu +RX_BUFF_IDX_PREMATCH|5.009005||Viu +RX_CHECK_SUBSTR|5.010001||Viu +RX_COMPFLAGS|5.017011||Viu +RX_ENGINE|5.010001||Viu +RX_EXTFLAGS|5.010001||Viu +RXf_BASE_SHIFT|5.013004||Viu +RXf_CHECK_ALL|5.009005||Viu +RXf_COPY_DONE|5.009005||Viu +RXf_EVAL_SEEN|5.009005||Viu +RXf_INTUIT_TAIL|5.009005||Viu +RXf_IS_ANCHORED|5.019009||Viu +RX_FLOAT_SUBSTR|5.010001||Viu +RX_FLOAT_UTF8|5.010001||Viu +RXf_MATCH_UTF8|5.009005||Viu +RXf_NO_INPLACE_SUBST|5.017011||Viu +RXf_NULL|5.010000||Viu +RXf_PMf_CHARSET|5.013009||Viu +RXf_PMf_COMPILETIME|5.009005||Viu +RXf_PMf_EXTENDED|5.009005||Viu +RXf_PMf_EXTENDED_MORE|5.021005||Viu +RXf_PMf_FLAGCOPYMASK|5.017011||Viu +RXf_PMf_FOLD|5.009005||Viu +RXf_PMf_KEEPCOPY|5.009005||Viu +RXf_PMf_MULTILINE|5.009005||Viu +RXf_PMf_NOCAPTURE|5.021008||Viu +RXf_PMf_SINGLELINE|5.009005||Viu +RXf_PMf_SPLIT|5.017011||Viu +RXf_PMf_STD_PMMOD|5.009005||Viu +RXf_PMf_STD_PMMOD_SHIFT|5.010001||Viu +RXf_PMf_STRICT|5.021008||Viu +RXf_SKIPWHITE|5.009005||Viu +RXf_SPLIT|5.009005||Viu +RXf_START_ONLY|5.009005||Viu +RXf_TAINTED|5.009005||Viu +RXf_TAINTED_SEEN|5.009005||Viu +RXf_UNBOUNDED_QUANTIFIER_SEEN|5.019009||Viu +RXf_USE_INTUIT|5.009005||Viu +RXf_USE_INTUIT_ML|5.009005||Viu +RXf_USE_INTUIT_NOML|5.009005||Viu +RXf_WHITE|5.009005||Viu +RX_GOFS|5.010001||Viu +RXi_GET|5.009005||Viu +RXi_GET_DECL|5.009005||Viu +RX_INTFLAGS|5.019009||Viu +RXi_SET|5.009005||Viu +RX_ISTAINTED|5.017006||Viu +RX_LASTCLOSEPAREN|5.010001||Viu +RX_LASTPAREN|5.010001||Viu +RX_MATCH_COPIED|5.006000||Viu +RX_MATCH_COPIED_off|5.006000||Viu +RX_MATCH_COPIED_on|5.006000||Viu +RX_MATCH_COPIED_set|5.006000||Viu +RX_MATCH_COPY_FREE|5.009000||Viu +RX_MATCH_TAINTED|5.005000||Viu +RX_MATCH_TAINTED_off|5.005000||Viu +RX_MATCH_TAINTED_on|5.005000||Viu +RX_MATCH_TAINTED_set|5.005000||Viu +RX_MATCH_UTF8|5.008001||Viu +RX_MATCH_UTF8_off|5.008001||Viu +RX_MATCH_UTF8_on|5.008001||Viu +RX_MATCH_UTF8_set|5.008001||Viu +RX_MINLEN|5.010001||Viu +RX_MINLENRET|5.010001||Viu +RX_NPARENS|5.010001||Viu +RX_OFFS|5.010001||Viu +RXp_COMPFLAGS|5.017011||Viu +RXp_ENGINE|5.027003||Viu +RXp_EXTFLAGS|5.010001||Viu +RXp_GOFS|5.027003||Viu +RXp_HAS_CUTGROUP|5.027003||Viu +RXp_INTFLAGS|5.019009||Viu +RXp_ISTAINTED|5.027003||Viu +RXp_MATCH_COPIED|5.010001||Viu +RXp_MATCH_COPIED_off|5.010001||Viu +RXp_MATCH_COPIED_on|5.010001||Viu +RXp_MATCH_COPY_FREE|5.027003||Viu +RXp_MATCH_TAINTED|5.010001||Viu +RXp_MATCH_TAINTED_off|5.027003||Viu +RXp_MATCH_TAINTED_on|5.017008||Viu +RXp_MATCH_UTF8|5.010001||Viu +RXp_MATCH_UTF8_off|5.027003||Viu +RXp_MATCH_UTF8_on|5.027003||Viu +RXp_MATCH_UTF8_set|5.027003||Viu +RXp_MINLEN|5.027003||Viu +RXp_MINLENRET|5.027003||Viu +RXp_NPARENS|5.027003||Viu +RXp_OFFS|5.027003||Viu +RXp_PAREN_NAMES|5.010001||Viu +RX_PRECOMP|5.010001||Viu +RX_PRECOMP_const|5.010001||Viu +RX_PRELEN|5.010001||Viu +RXp_SAVED_COPY|5.027003||Viu +RXp_SUBBEG|5.027003||Viu +RXp_SUBOFFSET|5.027003||Viu +RXp_ZERO_LEN|5.027003||Viu +RX_REFCNT|5.010001||Viu +rxres_free|5.004000||Viu +rxres_restore|5.004000||Viu +rxres_save|5.004000||Viu +RX_SAVED_COPY|5.011000||Viu +RX_SUBBEG|5.010001||Viu +RX_SUBCOFFSET|5.017004||Viu +RX_SUBLEN|5.010001||Viu +RX_SUBOFFSET|5.017004||Viu +RX_TAINT_on|5.017006||Viu +RX_UTF8|5.010001||Viu +RX_WRAPLEN|5.010001||Viu +RX_WRAPPED|5.010001||Viu +RX_WRAPPED_const|5.011000||Viu +RX_ZERO_LEN|5.019003||Viu +safecalloc|5.003007||Viu +Safefree|5.003007|5.003007| +safefree|5.003007||Viu +safemalloc|5.003007||Viu +saferealloc|5.003007||Viu +safesyscalloc|5.006000|5.006000|n +safesysfree|5.006000|5.006000|n +safesysmalloc|5.006000|5.006000|n +safesysrealloc|5.006000|5.006000|n +SAFE_TRIE_NODENUM|5.009002||Viu +same_dirent|5.003007||Viu +SANE_ERRSV|5.031003|5.031003| +SANY|5.003007||Viu +SANY_t8_p8|5.033003||Viu +SANY_t8_pb|5.033003||Viu +SANY_tb_p8|5.033003||Viu +SANY_tb_pb|5.033003||Viu +save_adelete|5.011000|5.011000|u +SAVEADELETE|5.011000||Viu +save_aelem|5.004005|5.004005|u +save_aelem_flags|5.011000|5.011000|u +save_alloc|5.006000|5.006000|u +save_aptr|5.003007|5.003007| +save_ary|5.003007|5.003007| +SAVEBOOL|5.008001|5.008001| +save_bool|5.008001||cVu +save_clearsv|5.003007||cVu +SAVECLEARSV|5.003007||Vi +SAVECOMPILEWARNINGS|5.009004||Viu +SAVECOMPPAD|5.006000||Vi +SAVECOPFILE|5.006000||Viu +SAVECOPFILE_FREE|5.006001||Viu +SAVECOPLINE|5.006000||Viu +SAVECOPSTASH_FREE|5.006001||Viu +SAVE_DEFSV|5.004005|5.003007|p +SAVEDELETE|5.003007|5.003007| +save_delete|5.003007||cVu +save_destructor|5.003007||cVu +SAVEDESTRUCTOR|5.006000|5.006000| +SAVEDESTRUCTOR_X|5.006000|5.006000| +save_destructor_x|5.006000||cVu +SAVE_ERRNO|5.010001||Vi +SAVEFEATUREBITS|5.031006||Viu +SAVEf_KEEPOLDELEM|5.011000||Viu +SAVEFREECOPHH|5.013007||Viu +SAVEFREEOP|5.010001|5.010001| +save_freeop|5.010001||cVu +SAVEFREEPADNAME|5.021007||Viu +SAVEFREEPV|5.003007|5.003007| +save_freepv|5.010001||cVu +SAVEFREESV|5.003007|5.003007| +save_freesv|5.010001||cVu +SAVEf_SETMAGIC|5.011000||Viu +SAVEGENERICPV|5.006001||Viu +save_generic_pvref|5.006001|5.006001|u +SAVEGENERICSV|5.005003||Viu +save_generic_svref|5.005003|5.005003|u +save_gp|5.004000|5.004000| +save_hash|5.003007|5.003007| +save_hdelete|5.011000|5.011000|u +SAVEHDELETE|5.011000||Viu +save_hek_flags|5.008000||Vniu +save_helem|5.004005|5.004005|u +save_helem_flags|5.011000|5.011000|u +SAVEHINTS|5.005000||Viu +save_hints|5.010001|5.010001|u +save_hptr|5.003007|5.003007| +SAVEI16|5.004000|5.004000| +save_I16|5.004000||cVu +SAVEI32|5.003007|5.003007| +save_I32|5.003007||cVu +SAVEI8|5.006000|5.006000| +save_I8|5.006000||cVu +SAVEINT|5.003007|5.003007| +save_int|5.003007||cVu +save_item|5.003007|5.003007| +SAVEIV|5.003007|5.003007| +save_iv|5.004000||cVu +save_lines|5.005000||Viu +save_list|5.003007|5.003007|d +SAVELONG|5.003007|5.003007| +save_long|5.003007||dcVu +save_magic_flags|5.019002||Viu +SAVE_MASK|5.013001||Viu +SAVEMORTALIZESV|5.007001|5.007001| +save_mortalizesv|5.010001||cVu +save_nogv|5.003007|5.003007|du +SAVEOP|5.005000||Viu +save_op|5.010001|5.010001|u +save_padsv_and_mortalize|5.010001|5.010001|u +SAVEPADSVANDMORTALIZE|5.010001||Viu +SAVEPADSV|||i +SAVEPARSER|5.009005||Viu +SAVEPPTR|5.003007|5.003007| +save_pptr|5.003007||cVu +save_pushi32ptr|5.010001|5.010001|u +save_pushptr|5.010001|5.010001|u +save_pushptri32ptr|5.010001||Viu +save_pushptrptr|5.010001|5.010001|u +savepv|5.003007|5.003007| +savepvn|5.003007|5.003007| +savepvs|5.009003|5.009003| +save_re_context|5.006000||cVu +save_scalar|5.003007|5.003007| +save_scalar_at|5.005000||Viu +save_set_svflags|5.009000|5.009000|u +SAVESETSVFLAGS|5.009000||Viu +savesharedpv|5.007003|5.007003| +SAVESHAREDPV|5.007003||Viu +savesharedpvn|5.009005|5.009005| +save_shared_pvref|5.007003|5.007003|u +savesharedpvs|5.013006|5.013006| +savesharedsvpv|5.013006|5.013006| +SAVESPTR|5.003007|5.003007| +save_sptr|5.003007||cVu +savestack_grow|5.003007|5.003007|u +savestack_grow_cnt|5.008001|5.008001|u +SAVESTACK_POS|5.004000|5.004000| +save_strlen|5.019004||cViu +savesvpv|5.009002|5.009002| +save_svref|5.003007|5.003007| +SAVESWITCHSTACK|5.009002||Viu +SAVEt_ADELETE|5.011000||Viu +SAVEt_AELEM|5.004005||Viu +SAVEt_ALLOC|5.006000||Viu +SAVEt_APTR|5.003007||Viu +SAVEt_AV|5.003007||Viu +SAVEt_BOOL|5.008001||Viu +SAVEt_CLEARPADRANGE|5.017006||Viu +SAVEt_CLEARSV|5.003007||Viu +SAVEt_COMPILE_WARNINGS|5.009004||Viu +SAVEt_COMPPAD|5.006000||Viu +SAVEt_DELETE|5.003007||Viu +SAVEt_DESTRUCTOR|5.003007||Viu +SAVEt_DESTRUCTOR_X|5.006000||Viu +SAVEt_FREECOPHH|5.013007||Viu +SAVEt_FREEOP|5.003007||Viu +SAVEt_FREEPADNAME|5.021007||Viu +SAVEt_FREEPV|5.003007||Viu +SAVEt_FREESV|5.003007||Viu +SAVEt_GENERIC_PVREF|5.006001||Viu +SAVEt_GENERIC_SVREF|5.005003||Viu +SAVEt_GP|5.003007||Viu +SAVEt_GVSLOT|5.017007||Viu +SAVEt_GVSV|5.013005||Viu +SAVEt_HELEM|5.004005||Viu +SAVEt_HINTS|5.005000||Viu +SAVEt_HINTS_HH|5.033001||Viu +SAVEt_HPTR|5.003007||Viu +SAVEt_HV|5.003007||Viu +SAVEt_I16|5.004000||Viu +SAVEt_I32|5.003007||Viu +SAVEt_I32_SMALL|5.013001||Viu +SAVEt_I8|5.006000||Viu +SAVE_TIGHT_SHIFT|5.013001||Viu +SAVEt_INT|5.003007||Viu +SAVEt_INT_SMALL|5.013001||Viu +SAVEt_ITEM|5.003007||Viu +SAVEt_IV|5.003007||Viu +SAVEt_LONG|5.003007||Viu +SAVEt_MORTALIZESV|5.007001||Viu +SAVETMPS|5.003007|5.003007| +savetmps|5.023008|5.023008|xu +SAVEt_NSTAB|5.003007||Viu +save_to_buffer|5.027004||Vniu +SAVEt_OP|5.005000||Viu +SAVEt_PADSV_AND_MORTALIZE|5.010001||Viu +SAVEt_PARSER|5.009005||Viu +SAVEt_PPTR|5.003007||Viu +SAVEt_READONLY_OFF|5.019002||Viu +SAVEt_REGCONTEXT|5.003007||Viu +SAVEt_SAVESWITCHSTACK|5.009002||Viu +SAVEt_SET_SVFLAGS|5.009000||Viu +SAVEt_SHARED_PVREF|5.007003||Viu +SAVEt_SPTR|5.003007||Viu +SAVEt_STACK_POS|5.004000||Viu +SAVEt_STRLEN|5.019004||Viu +SAVEt_STRLEN_SMALL|5.033005||Viu +SAVEt_SV|5.003007||Viu +SAVEt_SVREF|5.003007||Viu +SAVEt_TMPSFLOOR|5.023008||Viu +SAVEt_VPTR|5.006000||Viu +save_vptr|5.006000|5.006000|u +SAVEVPTR|5.006000||Viu +SAWAMPERSAND_LEFT|5.017004||Viu +SAWAMPERSAND_MIDDLE|5.017004||Viu +SAWAMPERSAND_RIGHT|5.017004||Viu +sawparens|5.003007||Viu +sb_dstr|5.003007||Viu +sb_iters|5.003007||Viu +sb_m|5.003007||Viu +sb_maxiters|5.003007||Viu +SBOL|5.003007||Viu +SBOL_t8_p8|5.033003||Viu +SBOL_t8_pb|5.033003||Viu +SBOL_tb_p8|5.033003||Viu +SBOL_tb_pb|5.033003||Viu +sb_orig|5.003007||Viu +SBOX32_CHURN_ROUNDS|5.027001||Viu +SBOX32_MAX_LEN|5.027001||Viu +SBOX32_MIX3|5.027001||Viu +SBOX32_MIX4|5.027001||Viu +SBOX32_SCRAMBLE32|5.027001||Viu +SBOX32_SKIP_MASK|5.027001||Viu +SBOX32_STATE_BITS|5.027001||Viu +SBOX32_STATE_BYTES|5.027001||Viu +SBOX32_STATE_WORDS|5.027001||Viu +SBOX32_STATIC_INLINE|5.027001||Viu +SBOX32_WARN2|5.027001||Viu +SBOX32_WARN3|5.027001||Viu +SBOX32_WARN4|5.027001||Viu +SBOX32_WARN5|5.027001||Viu +SBOX32_WARN6|5.027001||Viu +sb_rflags|5.006000||Viu +sb_rx|5.003007||Viu +sb_rxres|5.004000||Viu +sb_rxtainted|5.004000||Viu +sb_s|5.003007||Viu +sb_strend|5.003007||Viu +sb_targ|5.003007||Viu +scalar|5.003007||Viu +scalarboolean|5.005000||Viu +scalarkids|5.003007||Viu +scalar_mod_type|5.006000||Vniu +scalarvoid|5.003007||Viu +scan_bin|5.006000|5.006000| +scan_commit|5.005000||Viu +scan_const|5.003007||Viu +SCAN_DEF|5.003007||Viu +scan_formline|5.003007||Viu +scan_heredoc|5.003007||Viu +scan_hex|5.006000|5.003007| +scan_ident|5.003007||Viu +scan_inputsymbol|5.003007||Viu +scan_num|5.003007||cVu +scan_oct|5.006000|5.003007| +scan_pat|5.003007||Viu +SCAN_REPL|5.003007||Viu +scan_str|5.003007||xcViu +scan_subst|5.003007||Viu +SCAN_TR|5.003007||Viu +scan_trans|5.003007||Viu +scan_version|5.009001|5.009001| +SCAN_VERSION|5.019008||Viu +scan_vstring|5.009005|5.009005|u +scan_word|5.003007||xcViu +SCHED_YIELD|5.006000|5.006000|Vn +SCOPE_SAVES_SIGNAL_MASK|5.007001||Viu +search_const|5.010001||Viu +seed|5.008001|5.008001|u +seedDrand01|5.006000|5.006000| +SEEK_CUR|5.003007||Viu +seekdir|5.005000||Viu +SEEK_END|5.003007||Viu +SEEK_SET|5.003007||Viu +select|5.005000||Viu +Select_fd_set_t|5.003007|5.003007|Vn +SELECT_MIN_BITS|5.005003|5.005003|Vn +Semctl|5.004005||Viu +semun|5.006000||Viu +send|5.005000||Viu +sendto|5.005000||Viu +SEOL|5.003007||Viu +SEOL_t8_p8|5.033003||Viu +SEOL_t8_pb|5.033003||Viu +SEOL_tb_p8|5.033003||Viu +SEOL_tb_pb|5.033003||Viu +sequence_num|5.009003||Viu +set_ANYOF_arg|5.019005||Viu +set_ANYOF_SYNTHETIC|5.019009||Viu +setbuf|5.003007||Viu +set_caret_X|5.019006||Viu +set_context|5.006000|5.006000|nu +setdefout|5.003007|5.003007| +SETERRNO|5.003007||Vi +setfd_cloexec|5.027008||Vniu +setfd_cloexec_for_nonsysfd|5.027008||Viu +setfd_cloexec_or_inhexec_by_sysfdness|5.027008||Viu +setfd_inhexec|5.027008||Vniu +setfd_inhexec_for_sysfd|5.027008||Viu +setgid|5.005000||Viu +setgrent|5.009000||Viu +SETGRENT_R_HAS_FPTR|5.008000||Viu +SETGRENT_R_PROTO|5.008000|5.008000|Vn +sethostent|5.005000||Viu +SETHOSTENT_R_PROTO|5.008000|5.008000|Vn +SETi|5.003007||Viu +setjmp|5.005000||Viu +setlinebuf|5.005000||Viu +setlocale|5.009000||Viu +setlocale_debug_string|5.027002||Vniu +SETLOCALE_LOCK|5.033005||Viu +SETLOCALE_R_PROTO|5.008000|5.008000|Vn +SETLOCALE_UNLOCK|5.033005||Viu +SET_MARK_OFFSET|5.006000||Viu +setmode|5.005000||Viu +SETn|5.003007||Viu +setnetent|5.005000||Viu +SETNETENT_R_PROTO|5.008000|5.008000|Vn +set_numeric_radix|5.006000||Viu +SET_NUMERIC_STANDARD|5.004000||Viu +set_numeric_standard|5.006000||cViu +SET_NUMERIC_UNDERLYING|5.021010||Viu +set_numeric_underlying|5.027006||cViu +SETp|5.003007||Viu +set_padlist|5.021006||cVniu +setprotoent|5.005000||Viu +SETPROTOENT_R_PROTO|5.008000|5.008000|Vn +setpwent|5.009000||Viu +SETPWENT_R_HAS_FPTR|5.008000||Viu +SETPWENT_R_PROTO|5.008000|5.008000|Vn +set_regex_pv|5.029004||Viu +setregid|5.003007||Viu +setreuid|5.003007||Viu +SETs|5.003007||Viu +setservent|5.005000||Viu +SETSERVENT_R_PROTO|5.008000|5.008000|Vn +setsockopt|5.005000||Viu +setSTR_LEN|5.031005||Viu +SET_SVANY_FOR_BODYLESS_IV|5.023008||Viu +SET_SVANY_FOR_BODYLESS_NV|5.023008||Viu +SETTARG|5.003007||Viu +SET_THR|5.005000||Viu +SET_THREAD_SELF|5.005003||Viu +SETu|5.004000||Viu +setuid|5.005000||Viu +_setup_canned_invlist|5.019008||cViu +setvbuf|5.003007||Viu +share_hek|5.004000|5.004000|u +share_hek_flags|5.008000||Viu +share_hek_hek|5.009003||Viu +sharepvn|5.005000||Viu +SHARP_S_SKIP|5.007003||Viu +Shmat_t|5.003007|5.003007|Vn +SHORTSIZE|5.004000|5.004000|Vn +should_warn_nl|5.021001||Vniu +should_we_output_Debug_r|5.031011||Viu +SH_PATH|5.003007|5.003007|Vn +shutdown|5.005000||Viu +si_dup|5.007003|5.007003|u +S_IEXEC|5.006000||Viu +S_IFIFO|5.011000||Viu +S_IFMT|5.003007||Viu +SIGABRT|5.003007||Viu +sighandler1|5.031007||Vniu +sighandler3|5.031007||Vniu +sighandler|5.003007||Vniu +SIGILL|5.003007||Viu +Sigjmp_buf|5.003007|5.003007|Vn +Siglongjmp|5.003007|5.003007| +signal|5.005000||Viu +Signal_t|5.003007|5.003007|Vn +SIG_NAME|5.003007|5.003007|Vn +SIG_NUM|5.003007|5.003007|Vn +Sigsetjmp|5.003007|5.003007| +SIG_SIZE|5.007001|5.007001|Vn +simplify_sort|5.006000||Viu +SINGLE_PAT_MOD|5.009005||Viu +SIPHASH_SEED_STATE|5.027001||Viu +SIPROUND|5.017006||Viu +S_IREAD|5.006000||Viu +S_IRGRP|5.003007||Viu +S_IROTH|5.003007||Viu +S_IRUSR|5.003007||Viu +S_IRWXG|5.006000||Viu +S_IRWXO|5.006000||Viu +S_IRWXU|5.006000||Viu +S_ISBLK|5.003007||Viu +S_ISCHR|5.003007||Viu +S_ISDIR|5.003007||Viu +S_ISFIFO|5.003007||Viu +S_ISGID|5.003007||Viu +S_ISLNK|5.003007||Viu +S_ISREG|5.003007||Viu +S_ISSOCK|5.003007||Viu +S_ISUID|5.003007||Viu +SITEARCH|5.003007|5.003007|Vn +SITEARCH_EXP|5.003007|5.003007|Vn +SITELIB|5.003007|5.003007|Vn +SITELIB_EXP|5.003007|5.003007|Vn +SITELIB_STEM|5.006000|5.006000|Vn +S_IWGRP|5.003007||Viu +S_IWOTH|5.003007||Viu +S_IWRITE|5.006000||Viu +S_IWUSR|5.003007||Viu +S_IXGRP|5.003007||Viu +S_IXOTH|5.003007||Viu +S_IXUSR|5.003007||Viu +SIZE_ALIGN|5.005000||Viu +Size_t|5.003007|5.003007|Vn +Size_t_MAX|5.021003||Viu +Size_t_size|5.006000|5.006000|Vn +SKIP|5.009005||Viu +SKIP_next|5.009005||Viu +SKIP_next_fail|5.009005||Viu +SKIP_next_fail_t8_p8|5.033003||Viu +SKIP_next_fail_t8_pb|5.033003||Viu +SKIP_next_fail_tb_p8|5.033003||Viu +SKIP_next_fail_tb_pb|5.033003||Viu +SKIP_next_t8_p8|5.033003||Viu +SKIP_next_t8_pb|5.033003||Viu +SKIP_next_tb_p8|5.033003||Viu +SKIP_next_tb_pb|5.033003||Viu +skipspace_flags|5.019002||xcViu +SKIP_t8_p8|5.033003||Viu +SKIP_t8_pb|5.033003||Viu +SKIP_tb_p8|5.033003||Viu +SKIP_tb_pb|5.033003||Viu +skip_to_be_ignored_text|5.023004||Viu +Slab_Alloc|5.006000||cViu +Slab_Free|5.007003||cViu +Slab_to_ro|5.017002||Viu +Slab_to_rw|5.009005||Viu +sleep|5.005000||Viu +SLOPPYDIVIDE|5.003007||Viu +socket|5.005000||Viu +SOCKET_OPEN_MODE|5.008002||Viu +socketpair|5.005000||Viu +Sock_size_t|5.006000|5.006000|Vn +softref2xv|||iu +sortcv|5.009003||Viu +sortcv_stacked|5.009003||Viu +sortcv_xsub|5.009003||Viu +sortsv|5.007003|5.007003| +sortsv_flags|5.009003|5.009003| +sortsv_flags_impl|5.031011||Viu +SP|5.003007|5.003007| +space_join_names_mortal|5.009004||Viu +SPAGAIN|5.003007|5.003007| +S_PAT_MODS|5.009005||Viu +specialWARN|5.006000||Viu +SRAND48_R_PROTO|5.008000|5.008000|Vn +SRANDOM_R_PROTO|5.008000|5.008000|Vn +SRCLOSE|5.027008||Viu +SRCLOSE_t8_p8|5.033003||Viu +SRCLOSE_t8_pb|5.033003||Viu +SRCLOSE_tb_p8|5.033003||Viu +SRCLOSE_tb_pb|5.033003||Viu +SROPEN|5.027008||Viu +SROPEN_t8_p8|5.033003||Viu +SROPEN_t8_pb|5.033003||Viu +SROPEN_tb_p8|5.033003||Viu +SROPEN_tb_pb|5.033003||Viu +SS_ACCVIO|5.008001||Viu +SS_ADD_BOOL|5.017007||Viu +SS_ADD_DPTR|5.017007||Viu +SS_ADD_DXPTR|5.017007||Viu +SS_ADD_END|5.017007||Viu +SS_ADD_INT|5.017007||Viu +SS_ADD_IV|5.017007||Viu +SS_ADD_LONG|5.017007||Viu +SS_ADD_PTR|5.017007||Viu +SS_ADD_UV|5.017007||Viu +SS_BUFFEROVF|5.021009||Viu +ssc_add_range|5.019005||Viu +ssc_and|5.019005||Viu +ssc_anything|5.019005||Viu +ssc_clear_locale|5.019005||Vniu +ssc_cp_and|5.019005||Viu +ssc_finalize|5.019005||Viu +SSCHECK|5.003007||Viu +ssc_init|5.019005||Viu +ssc_intersection|5.019005||Viu +ssc_is_anything|5.019005||Vniu +ssc_is_cp_posixl_init|5.019005||Vniu +SSC_MATCHES_EMPTY_STRING|5.021004||Viu +ssc_or|5.019005||Viu +ssc_union|5.019005||Viu +SS_DEVOFFLINE|5.008001||Viu +ss_dup|5.007003|5.007003|u +SSGROW|5.008001||Viu +SS_IVCHAN|5.008001||Viu +SSize_t|5.003007|5.003007|Vn +SSize_t_MAX|5.019004||Viu +SS_MAXPUSH|5.017007||Viu +SSNEW|5.006000||Viu +SSNEWa|5.006000||Viu +SSNEWat|5.007001||Viu +SSNEWt|5.007001||Viu +SS_NOPRIV|5.021001||Viu +SS_NORMAL|5.008001||Viu +SSPOPBOOL|5.008001||Viu +SSPOPDPTR|5.003007||Viu +SSPOPDXPTR|5.006000||Viu +SSPOPINT|5.003007||Viu +SSPOPIV|5.003007||Viu +SSPOPLONG|5.003007||Viu +SSPOPPTR|5.003007||Viu +SSPOPUV|5.013001||Viu +SSPTR|5.006000||Viu +SSPTRt|5.007001||Viu +SSPUSHBOOL|5.008001||Viu +SSPUSHDPTR|5.003007||Viu +SSPUSHDXPTR|5.006000||Viu +SSPUSHINT|5.003007||Viu +SSPUSHIV|5.003007||Viu +SSPUSHLONG|5.003007||Viu +SSPUSHPTR|5.003007||Viu +SSPUSHUV|5.013001||Viu +ST|5.003007|5.003007| +stack_grow|5.003007||cVu +STANDARD_C|5.003007||Viu +STAR|5.003007||Viu +STAR_t8_p8|5.033003||Viu +STAR_t8_pb|5.033003||Viu +STAR_tb_p8|5.033003||Viu +STAR_tb_pb|5.033003||Viu +START_EXTERN_C|5.005000|5.003007|pV +start_glob|||xi +START_MY_CXT|5.010000|5.010000|p +STARTPERL|5.003007|5.003007|Vn +start_subparse|5.004000|5.003007|pu +StashHANDLER|5.007001||Viu +Stat|5.003007||Viu +stat|5.005000||Viu +STATIC|5.005000||Viu +STATIC_ASSERT_1|5.021007||Viu +STATIC_ASSERT_2|5.021007||Viu +STATIC_ASSERT_DECL|5.027001||Viu +STATIC_ASSERT_STMT|5.021007||Viu +Stat_t|5.004005||Viu +STATUS_ALL_FAILURE|5.004000||Viu +STATUS_ALL_SUCCESS|5.004000||Viu +STATUS_CURRENT|5.004000||Viu +STATUS_EXIT|5.009003||Viu +STATUS_EXIT_SET|5.009003||Viu +STATUS_NATIVE|5.004000||Viu +STATUS_NATIVE_CHILD_SET|5.009003||Viu +STATUS_UNIX|5.009003||Viu +STATUS_UNIX_EXIT_SET|5.009003||Viu +STATUS_UNIX_SET|5.009003||Viu +STDCHAR|5.003007|5.003007|Vn +stderr|5.003007||Viu +stdin|5.003007||Viu +STDIO_PTR_LVAL_SETS_CNT|5.007001|5.007001|Vn +STDIO_PTR_LVALUE|5.006000|5.006000|Vn +STDIO_STREAM_ARRAY|5.006000|5.006000|Vn +stdize_locale|5.007001||Viu +stdout|5.003007||Viu +stdoutf|5.005000||Viu +STD_PAT_MODS|5.009005||Viu +STD_PMMOD_FLAGS_CLEAR|5.013006||Viu +ST_INO_SIGN|5.015002|5.015002|Vn +ST_INO_SIZE|5.015002|5.015002|Vn +STMT_END|5.003007|5.003007|pV +STMT_START|5.003007|5.003007|pV +STOREFEATUREBITSHH|5.031006||Viu +STORE_LC_NUMERIC_FORCE_TO_UNDERLYING|5.021010|5.021010| +STORE_LC_NUMERIC_SET_STANDARD|5.027009||pVu +STORE_LC_NUMERIC_SET_TO_NEEDED|5.021010|5.021010| +STORE_LC_NUMERIC_SET_TO_NEEDED_IN|5.031003|5.031003| +STORE_NUMERIC_SET_STANDARD|||piu +strBEGINs|5.027006||Viu +strEQ|5.003007|5.003007| +Strerror|5.003007||Viu +strerror|5.009000||Viu +STRERROR_R_PROTO|5.008000|5.008000|Vn +strGE|5.003007|5.003007| +strGT|5.003007|5.003007| +STRING|5.006000||Viu +STRINGIFY|5.003007|5.003007|Vn +STRINGl|5.031005||Viu +STRINGs|5.031005||Viu +strip_return|5.009003||Viu +strLE|5.003007|5.003007| +STR_LEN|5.006000||Viu +STRLEN|5.027001||Viu +STR_LENl|5.031005||Viu +STR_LENs|5.031005||Viu +strLT|5.003007|5.003007| +strNE|5.003007|5.003007| +strnEQ|5.003007|5.003007| +strnNE|5.003007|5.003007| +STR_SZ|5.006000||Viu +Strtod|5.029010|5.029010|n +Strtol|5.006000|5.006000|n +strtoll|5.006000||Viu +Strtoul|5.006000|5.006000|n +strtoull|5.006000||Viu +str_to_version|5.006000||cVu +StructCopy|5.003007|5.003007|V +STRUCT_OFFSET|5.004000||Viu +STRUCT_SV|5.007001||Viu +STR_WITH_LEN|5.009003|5.003007|pV +study_chunk|5.005000||Viu +sub_crush_depth|5.004000||Viu +sublex_done|5.005000||Viu +sublex_push|5.005000||Viu +sublex_start|5.005000||Viu +SUBST_TAINT_BOOLRET|5.013010||Viu +SUBST_TAINT_PAT|5.013010||Viu +SUBST_TAINT_REPL|5.013010||Viu +SUBST_TAINT_RETAINT|5.013010||Viu +SUBST_TAINT_STR|5.013010||Viu +SUBVERSION|5.003007||Viu +SUCCEED|5.003007||Viu +SUCCEED_t8_p8|5.033003||Viu +SUCCEED_t8_pb|5.033003||Viu +SUCCEED_tb_p8|5.033003||Viu +SUCCEED_tb_pb|5.033003||Viu +SUSPEND|5.005000||Viu +SUSPEND_t8_p8|5.033003||Viu +SUSPEND_t8_pb|5.033003||Viu +SUSPEND_tb_p8|5.033003||Viu +SUSPEND_tb_pb|5.033003||Viu +sv_2bool|5.013006||cV +sv_2bool_flags|5.013006||cV +sv_2bool_nomg|5.017002||Viu +sv_2cv|5.003007|5.003007| +sv_2io|5.003007|5.003007| +sv_2iuv_common|5.009004||Viu +sv_2iuv_non_preserve|5.007001||Viu +sv_2iv|5.009001||cVu +sv_2iv_flags|5.009001|5.009001| +sv_2mortal|5.003007|5.003007| +sv_2num|5.010000||xVi +sv_2nv|5.013001||Viu +sv_2nv_flags|5.013001|5.013001| +sv_2pv|5.005000||cVu +sv_2pvbyte|5.006000|5.003007|p +sv_2pvbyte_flags|5.031004|5.031004|u +sv_2pvbyte_nolen|5.009003||pcV +sv_2pv_flags|5.007002||pcV +sv_2pv_nolen|5.009003||pcV +sv_2pv_nomg|5.007002||Viu +sv_2pvutf8|5.006000|5.006000| +sv_2pvutf8_flags|5.031004|5.031004|u +sv_2pvutf8_nolen|5.009003||cV +sv_2uv|5.009001||pcVu +sv_2uv_flags|5.009001|5.009001| +sv_add_arena|5.003007||Vi +sv_add_backref|||iu +SvAMAGIC|5.003007||Viu +SvAMAGIC_off|5.031004|5.031004|nu +SvAMAGIC_on|5.031004|5.031004|nu +SvANY|5.003007||Viu +sv_backoff|5.003007|5.003007|n +sv_bless|5.003007|5.003007| +sv_buf_to_ro|5.019008||Viu +sv_buf_to_rw|5.019008||Viu +SvCANCOW|5.017007||Viu +SvCANEXISTDELETE|5.011000||Viu +SV_CATBYTES|5.021005|5.021005| +sv_cat_decode|5.008001|5.008001| +sv_cathek|5.021004||Viu +sv_catpv|5.003007|5.003007| +sv_catpvf|5.006000|5.004000|v +sv_catpv_flags|5.013006|5.013006| sv_catpvf_mg|5.006000|5.004000|pv -sv_catpvf_nocontext|||vn -sv_catpvf||5.004000|v -sv_catpvn_flags||5.007002| -sv_catpvn_mg|5.004050||p -sv_catpvn_nomg|5.007002||p -sv_catpvn||| -sv_catpvs|5.009003||p -sv_catpv||| -sv_catsv_flags||5.007002| -sv_catsv_mg|5.004050||p -sv_catsv_nomg|5.007002||p -sv_catsv||| -sv_catxmlpvn||| -sv_catxmlsv||| -sv_chop||| -sv_clean_all||| -sv_clean_objs||| -sv_clear||| -sv_cmp_locale||5.004000| -sv_cmp||| -sv_collxfrm||| -sv_compile_2op||5.008001| -sv_copypv||5.007003| -sv_dec||| -sv_del_backref||| -sv_derived_from||5.004000| -sv_destroyable||5.010000| -sv_does||5.009004| -sv_dump||| -sv_dup_inc_multiple||| -sv_dup||| -sv_eq||| -sv_exp_grow||| -sv_force_normal_flags||5.007001| -sv_force_normal||5.006000| -sv_free2||| -sv_free_arenas||| -sv_free||| -sv_gets||5.004000| -sv_grow||| -sv_i_ncmp||| -sv_inc||| -sv_insert_flags||5.011000| -sv_insert||| -sv_isa||| -sv_isobject||| -sv_iv||5.005000| -sv_kill_backrefs||| -sv_len_utf8||5.006000| -sv_len||| -sv_magic_portable|5.011000|5.004000|p -sv_magicext||5.007003| -sv_magic||| -sv_mortalcopy||| -sv_ncmp||| -sv_newmortal||| -sv_newref||| -sv_nolocking||5.007003| -sv_nosharing||5.007003| -sv_nounlocking||| -sv_nv||5.005000| -sv_peek||5.005000| -sv_pos_b2u_midway||| -sv_pos_b2u||5.006000| -sv_pos_u2b_cached||| -sv_pos_u2b_forwards|||n -sv_pos_u2b_midway|||n -sv_pos_u2b||5.006000| -sv_pvbyten_force||5.006000| -sv_pvbyten||5.006000| -sv_pvbyte||5.006000| -sv_pvn_force_flags|5.007002||p -sv_pvn_force||| -sv_pvn_nomg|5.007003|5.005000|p -sv_pvn||5.005000| -sv_pvutf8n_force||5.006000| -sv_pvutf8n||5.006000| -sv_pvutf8||5.006000| -sv_pv||5.006000| -sv_recode_to_utf8||5.007003| -sv_reftype||| -sv_release_COW||| -sv_replace||| -sv_report_used||| -sv_reset||| -sv_rvweaken||5.006000| -sv_setiv_mg|5.004050||p -sv_setiv||| -sv_setnv_mg|5.006000||p -sv_setnv||| -sv_setpv_mg|5.004050||p -sv_setpvf_mg_nocontext|||pvn +sv_catpvf_mg_nocontext|5.006000||pvVn +sv_catpvf_nocontext|5.006000||vVn +sv_catpv_mg|5.004005|5.003007|p +sv_catpvn|5.003007|5.003007| +sv_catpvn_flags|5.007002|5.007002| +sv_catpvn_mg|5.004005|5.003007|p +sv_catpvn_nomg|5.007002|5.003007|p +sv_catpvn_nomg_maybeutf8|5.017005||Viu +sv_catpvn_nomg_utf8_upgrade|5.017002||Viu +sv_catpv_nomg|5.013006|5.013006| +sv_catpvs|5.009003|5.003007|p +sv_catpvs_flags|5.013006|5.013006| +sv_catpvs_mg|5.013006|5.013006| +sv_catpvs_nomg|5.013006|5.013006| +sv_catsv|5.003007|5.003007| +sv_catsv_flags|5.007002|5.007002| +sv_catsv_mg|5.004005|5.003007|p +sv_catsv_nomg|5.007002|5.003007|p +SV_CATUTF8|5.021005|5.021005| +sv_catxmlpvs|5.013006||Viu +SV_CHECK_THINKFIRST|5.008001||Viu +SV_CHECK_THINKFIRST_COW_DROP|5.009000||Viu +sv_chop|5.003007|5.003007| +sv_clean_all|5.003007||Vi +sv_clean_objs|5.003007||Vi +sv_clear|5.003007|5.003007| +sv_cmp|5.003007|5.003007| +sv_cmp_flags|5.013006|5.013006| +sv_cmp_locale|5.004000|5.004000| +sv_cmp_locale_flags|5.013006|5.013006| +sv_collxfrm|5.013006||V +sv_collxfrm_flags|5.013006|5.013006| +SvCOMPILED|5.003007||Viu +SvCOMPILED_off|5.003007||Viu +SvCOMPILED_on|5.003007||Viu +SV_CONST|5.019002||Viu +SV_CONST_BINMODE|5.019002||Viu +SV_CONST_CLEAR|5.019002||Viu +SV_CONST_CLOSE|5.019002||Viu +SV_CONST_DELETE|5.019002||Viu +SV_CONST_DESTROY|5.019002||Viu +SV_CONST_EOF|5.019002||Viu +SV_CONST_EXISTS|5.019002||Viu +SV_CONST_EXTEND|5.019002||Viu +SV_CONST_FETCH|5.019002||Viu +SV_CONST_FETCHSIZE|5.019002||Viu +SV_CONST_FILENO|5.019002||Viu +SV_CONST_FIRSTKEY|5.019002||Viu +SV_CONST_GETC|5.019002||Viu +SV_CONST_NEXTKEY|5.019002||Viu +SV_CONST_OPEN|5.019002||Viu +SV_CONST_POP|5.019002||Viu +SV_CONST_PRINT|5.019002||Viu +SV_CONST_PRINTF|5.019002||Viu +SV_CONST_PUSH|5.019002||Viu +SV_CONST_READ|5.019002||Viu +SV_CONST_READLINE|5.019002||Viu +SV_CONST_RETURN|5.009003|5.003007|poVnu +SV_CONST_SCALAR|5.019002||Viu +SV_CONSTS_COUNT|5.019002||Viu +SV_CONST_SEEK|5.019002||Viu +SV_CONST_SHIFT|5.019002||Viu +SV_CONST_SPLICE|5.019002||Viu +SV_CONST_STORE|5.019002||Viu +SV_CONST_STORESIZE|5.019002||Viu +SV_CONST_TELL|5.019002||Viu +SV_CONST_TIEARRAY|5.019002||Viu +SV_CONST_TIEHANDLE|5.019002||Viu +SV_CONST_TIEHASH|5.019002||Viu +SV_CONST_TIESCALAR|5.019002||Viu +SV_CONST_UNSHIFT|5.019002||Viu +SV_CONST_UNTIE|5.019002||Viu +SV_CONST_WRITE|5.019002||Viu +sv_copypv|5.007003|5.007003| +sv_copypv_flags|5.017002|5.017002| +sv_copypv_nomg|5.017002|5.017002| +SV_COW_DROP_PV|5.008001|5.003007|p +SV_COW_OTHER_PVS|5.009005||Viu +SV_COW_REFCNT_MAX|5.017007||Viu +SV_COW_SHARED_HASH_KEYS|5.009005|5.003007|poVnu +SvCUR|5.003007|5.003007| +SvCUR_set|5.003007|5.003007| +sv_dec|5.003007|5.003007| +sv_dec_nomg|5.013002|5.013002| +sv_del_backref|5.006000||cViu +sv_derived_from|5.004000|5.004000| +sv_derived_from_pv|5.015004|5.015004| +sv_derived_from_pvn|5.015004|5.015004| +sv_derived_from_sv|5.015004|5.015004| +sv_derived_from_svpvn|5.031006||Viu +sv_destroyable|5.010000|5.010000| +SvDESTROYABLE|5.010000||Viu +sv_display|5.021002||Viu +SV_DO_COW_SVSETSV|5.009005||Viu +sv_does|5.009004|5.009004| +sv_does_pv|5.015004|5.015004| +sv_does_pvn|5.015004|5.015004| +sv_does_sv|5.015004|5.015004| +sv_dump|5.003007|5.003007| +sv_dup|5.007003|5.007003|u +sv_dup_common|5.013002||Viu +sv_dup_inc|5.013002|5.013002|u +sv_dup_inc_multiple|5.011000||Viu +SvEND|5.003007|5.003007| +SvEND_set|5.003007||Viu +SvENDx|5.003007||Viu +sv_eq|5.003007|5.003007| +sv_eq_flags|5.013006|5.013006| +sv_exp_grow|5.009003||Viu +SVf256|5.008001||Viu +SVf32|5.009002||Viu +SVf|5.006000|5.003007|p +SvFAKE|5.003007||Viu +SvFAKE_off|5.003007||Viu +SvFAKE_on|5.003007||Viu +SVf_AMAGIC|5.003007||Viu +SVfARG|5.009005|5.003007|p +SVf_BREAK|5.003007||Viu +SVf_FAKE|5.003007||Viu +SVf_IOK|5.003007||Viu +SVf_IsCOW|5.017006||Viu +SVf_IVisUV|5.006000||Viu +SvFLAGS|5.003007||Viu +SVf_NOK|5.003007||Viu +SVf_OK|5.003007||Viu +SVf_OOK|5.003007||Viu +sv_force_normal|5.006000|5.006000| +sv_force_normal_flags|5.007001|5.007001| +SV_FORCE_UTF8_UPGRADE|5.011000|5.011000| +SVf_POK|5.003007||Viu +SVf_PROTECT|5.021005||Viu +SVf_READONLY|5.003007||Viu +sv_free2|||xciu +sv_free|5.003007|5.003007| +sv_free_arenas|5.003007||Vi +SVf_ROK|5.003007||Viu +SVf_THINKFIRST|5.003007||Viu +SVf_UTF8|5.006000|5.003007|p +SvGAMAGIC|5.006001|5.006001| +sv_get_backrefs|5.021008|5.021008|xn +SvGETMAGIC|5.004005|5.003007|p +sv_gets|5.003007|5.003007| +SvGID|5.019001||Viu +SV_GMAGIC|5.007002|5.003007|p +SvGMAGICAL|5.003007||Viu +SvGMAGICAL_off|5.003007||Viu +SvGMAGICAL_on|5.003007||Viu +SvGROW|5.003007|5.003007| +sv_grow|5.003007||cV +Sv_Grow|5.003007||Viu +SvGROW_mutable|5.009003||Viu +SV_HAS_TRAILING_NUL|5.009004|5.003007|p +SV_IMMEDIATE_UNREF|5.007001|5.003007|p +SvIMMORTAL|5.004000||Viu +SvIMMORTAL_INTERP|5.027003||Viu +SvIMMORTAL_TRUE|5.027003||Viu +sv_inc|5.003007|5.003007| +sv_i_ncmp|5.009003||Viu +sv_i_ncmp_desc|5.031011||Viu +sv_inc_nomg|5.013002|5.013002| +sv_insert|5.003007|5.003007| +sv_insert_flags|5.010001|5.010001| +SvIOK|5.003007|5.003007| +SvIOK_nog|5.017002||Viu +SvIOK_nogthink|5.017002||Viu +SvIOK_notUV|5.006000|5.006000| +SvIOK_off|5.003007|5.003007| +SvIOK_on|5.003007|5.003007| +SvIOK_only|5.003007|5.003007| +SvIOK_only_UV|5.006000|5.006000| +SvIOKp|5.003007|5.003007| +SvIOKp_on|5.003007||Viu +SvIOK_UV|5.006000|5.006000| +sv_isa|5.003007|5.003007| +sv_isa_sv|5.031007|5.031007|x +SvIsCOW|5.008003|5.008003| +SvIsCOW_shared_hash|5.008003|5.008003| +SvIS_FREED|5.009003||Viu +sv_isobject|5.003007|5.003007| +SvIV|5.003007|5.003007| +sv_iv|5.005000||dcV +SvIV_nomg|5.009001|5.003007|p +SvIV_please|5.007001||Viu +SvIV_please_nomg|5.013002||Viu +SvIV_set|5.003007|5.003007| +SvIVX|5.003007|5.003007| +SvIVx|5.003007|5.003007| +SvIVXx|5.003007||Viu +sv_kill_backrefs|||xiu +sv_len|5.003007|5.003007| +SvLEN|5.003007|5.003007| +SvLEN_set|5.003007|5.003007| +sv_len_utf8|5.006000|5.006000|p +sv_len_utf8_nomg|5.017004||pViu +SvLENx|5.003007||Viu +SvLOCK|5.007003|5.007003| +sv_magic|5.003007|5.003007| +SvMAGIC|5.003007||Viu +SvMAGICAL|5.003007||Viu +SvMAGICAL_off|5.003007||Viu +SvMAGICAL_on|5.003007||Viu +sv_magicext|5.007003|5.007003| +sv_magicext_mglob|5.019002||cViu +sv_magic_portable||5.004000|pou +SvMAGIC_set|5.009003|5.003007|p +sv_mortalcopy|5.003007|5.003007| +sv_mortalcopy_flags|5.017005|5.003007|p +SV_MUTABLE_RETURN|5.009003|5.003007|poVnu +sv_ncmp|5.009003||Viu +sv_ncmp_desc|5.031011||Viu +sv_newmortal|5.003007|5.003007| +sv_newref|5.003007||cV +SvNIOK|5.003007|5.003007| +SvNIOK_nog|5.017002||Viu +SvNIOK_nogthink|5.017002||Viu +SvNIOK_off|5.003007|5.003007| +SvNIOKp|5.003007|5.003007| +SvNOK|5.003007|5.003007| +SvNOK_nog|5.017002||Viu +SvNOK_nogthink|5.017002||Viu +SvNOK_off|5.003007|5.003007| +SvNOK_on|5.003007|5.003007| +SvNOK_only|5.003007|5.003007| +SvNOKp|5.003007|5.003007| +SvNOKp_on|5.003007||Viu +sv_nolocking|5.007003|5.007003|d +sv_nosharing|5.007003|5.007003| +SV_NOSTEAL|5.009002|5.003007|p +sv_nounlocking|5.007003|5.007003|d +sv_nv|5.005000||dcV +SvNV|5.006000|5.003007| +SvNV_nomg|5.013002|5.003007|p +SvNV_set|5.006000|5.003007| +SvNVX|5.006000|5.003007| +SvNVx|5.006000|5.003007| +SvNVXx|5.003007||Viu +SvOBJECT|5.003007||Viu +SvOBJECT_off|5.003007||Viu +SvOBJECT_on|5.003007||Viu +SvOK|5.003007|5.003007| +SvOK_off|5.003007||Viu +SvOK_off_exc_UV|5.006000||Viu +SvOKp|5.003007||Viu +sv_only_taint_gmagic|5.021010||Vniu +SvOOK|5.003007|5.003007| +SvOOK_off|5.003007|5.003007| +SvOOK_offset|5.011000|5.011000| +SvOOK_on|5.003007||Viu +sv_or_pv_len_utf8|5.017005||Viu +sv_or_pv_pos_u2b|5.019004||Viu +SvOURSTASH|5.009005||Viu +SvOURSTASH_set|5.009005||Viu +SvPADMY|5.003007||Viu +SvPADMY_on|5.003007||Viu +SVpad_OUR|5.006000||Viu +SvPAD_OUR|5.009004||Viu +SvPAD_OUR_on|5.009004||Viu +SvPADSTALE|5.009000||Viu +SvPADSTALE_off|5.009000||Viu +SvPADSTALE_on|5.009000||Viu +SVpad_STATE|5.009004||Viu +SvPAD_STATE|5.009004||Viu +SvPAD_STATE_on|5.009004||Viu +SvPADTMP|5.003007||Viu +SvPADTMP_off|5.003007||Viu +SvPADTMP_on|5.003007||Viu +SVpad_TYPED|5.007002||Viu +SvPAD_TYPED|5.009004||Viu +SvPAD_TYPED_on|5.009004||Viu +SVpav_REAL|5.009003||Viu +SVpav_REIFY|5.009003||Viu +SvPCS_IMPORTED|5.009005||Viu +SvPCS_IMPORTED_off|5.009005||Viu +SvPCS_IMPORTED_on|5.009005||Viu +SvPEEK|5.003007||Viu +sv_peek|5.005000|5.005000|u +SVpgv_GP|5.009005||Viu +SVphv_CLONEABLE|5.009003||Viu +SVphv_HASKFLAGS|5.008000||Viu +SVphv_LAZYDEL|5.003007||Viu +SVphv_SHAREKEYS|5.003007||Viu +SVp_IOK|5.003007||Viu +SVp_NOK|5.003007||Viu +SvPOK|5.003007|5.003007| +SvPOK_byte_nog|5.017002||Viu +SvPOK_byte_nogthink|5.017002||Viu +SvPOK_byte_pure_nogthink|5.017003||Viu +SvPOK_nog|5.017002||Viu +SvPOK_nogthink|5.017002||Viu +SvPOK_off|5.003007|5.003007| +SvPOK_on|5.003007|5.003007| +SvPOK_only|5.003007|5.003007| +SvPOK_only_UTF8|5.006000|5.006000| +SvPOKp|5.003007|5.003007| +SvPOKp_on|5.003007||Viu +SvPOK_pure_nogthink|5.017003||Viu +SvPOK_utf8_nog|5.017002||Viu +SvPOK_utf8_nogthink|5.017002||Viu +SvPOK_utf8_pure_nogthink|5.017003||Viu +sv_pos_b2u|5.006000|5.006000| +sv_pos_b2u_flags|5.019003|5.019003| +sv_pos_b2u_midway|5.009004||Viu +sv_pos_u2b|5.006000|5.006000| +sv_pos_u2b_cached|5.009004||Viu +sv_pos_u2b_flags|5.011005|5.011005| +sv_pos_u2b_forwards|5.009004||Vniu +sv_pos_u2b_midway|5.009004||Vniu +SVp_POK|5.003007||Viu +SVprv_PCS_IMPORTED|5.009005||Viu +SVprv_WEAKREF|5.006000||Viu +SVp_SCREAM|5.003007||Viu +SvPV|5.003007|5.003007| +sv_pv|5.008000||cV +SvPVbyte|5.006000|5.003007|p +sv_pvbyte|5.008000||cV +SvPVbyte_force|5.009002|5.009002| +sv_pvbyten|5.006000||dcV +sv_pvbyten_force|5.006000||cV +SvPVbyte_nolen|5.006000|5.006000| +SvPVbyte_nomg|5.031004|5.031004| +SvPVbyte_or_null|5.031004|5.031004| +SvPVbyte_or_null_nomg|5.031004|5.031004| +SvPVbytex|5.006000|5.006000| +SvPVbytex_force|5.006000|5.006000| +SvPVbytex_nolen|5.009003|5.009003| +SvPVCLEAR|5.025006|5.025006|p +SvPV_const|5.009003|5.003007|p +SvPV_flags|5.007002|5.003007|p +SvPV_flags_const|5.009003|5.003007|p +SvPV_flags_const_nolen|5.009003||pVu +SvPV_flags_mutable|5.009003|5.003007|p +SvPV_force|5.003007|5.003007|p +SvPV_force_flags|5.007002|5.003007|p +SvPV_force_flags_mutable|5.009003|5.003007|p +SvPV_force_flags_nolen|5.009003|5.003007|p +SvPV_force_mutable|5.009003|5.003007|p +SvPV_force_nolen|5.009003|5.003007|p +SvPV_force_nomg|5.007002|5.003007|p +SvPV_force_nomg_nolen|5.009003|5.003007|p +SvPV_free|5.009003|5.009003| +SvPV_mutable|5.009003|5.003007|p +sv_pvn|5.004000||dcV +sv_pvn_force|5.005000||cV +sv_pvn_force_flags|5.007002|5.003007|p +sv_pvn_force_nomg|5.007002||Viu +sv_pvn_nomg|5.007003|5.005000|pdu +SvPV_nolen|5.006000|5.003007|p +SvPV_nolen_const|5.009003|5.003007|p +SvPV_nomg|5.007002|5.003007|p +SvPV_nomg_const|5.009003|5.003007|p +SvPV_nomg_const_nolen|5.009003|5.003007|p +SvPV_nomg_nolen|5.013007|5.003007|p +SvPV_renew|5.009003|5.003007|p +SvPV_set|5.003007|5.003007| +SvPV_shrink_to_cur|5.009003||Viu +SvPVutf8|5.006000|5.006000| +sv_pvutf8|5.008000||cV +SvPVutf8_force|5.006000|5.006000| +sv_pvutf8n|5.006000||dcV +sv_pvutf8n_force|5.006000||cV +SvPVutf8_nolen|5.006000|5.006000| +SvPVutf8_nomg|5.031004|5.031004| +SvPVutf8_or_null|5.031004|5.031004| +SvPVutf8_or_null_nomg|5.031004|5.031004| +SvPVutf8x|5.006000|5.006000| +SvPVutf8x_force|5.006000|5.006000| +SvPVX|5.003007|5.003007| +SvPVx|5.003007|5.003007| +SvPVX_const|5.009003|5.003007|p +SvPVx_const|5.009003|5.009003| +SvPVx_force|5.005000|5.005000| +SvPVX_mutable|5.009003|5.003007|p +SvPVx_nolen|5.009003|5.009003| +SvPVx_nolen_const|5.009003|5.003007|p +SvPVXtrue|5.017002||Viu +SvPVXx|5.003007|5.003007| +SvREADONLY|5.003007|5.003007| +SvREADONLY_off|5.003007|5.003007| +SvREADONLY_on|5.003007|5.003007| +sv_recode_to_utf8|5.007003|5.007003| +sv_ref|5.015004|5.015004| +SvREFCNT|5.003007|5.003007| +SvREFCNT_dec|5.003007|5.003007| +SvREFCNT_dec_NN|5.017007|5.017007| +SvREFCNT_IMMORTAL|5.017008||Viu +SvREFCNT_inc|5.003007|5.003007|pn +SvREFCNT_inc_NN|5.009004|5.003007|pn +SvREFCNT_inc_simple|5.009004|5.003007|pn +SvREFCNT_inc_simple_NN|5.009004|5.003007|pn +SvREFCNT_inc_simple_void|5.009004|5.003007|pn +SvREFCNT_inc_simple_void_NN|5.009004|5.003007|pn +SvREFCNT_inc_void|5.009004|5.003007|pn +SvREFCNT_inc_void_NN|5.009004|5.003007|pn +sv_reftype|5.003007|5.003007| +sv_replace|5.003007|5.003007| +sv_report_used|5.003007|5.003007| +sv_reset|5.003007|5.003007| +sv_resetpvn|5.017005||Viu +SvRMAGICAL|5.003007||Viu +SvRMAGICAL_off|5.003007||Viu +SvRMAGICAL_on|5.003007||Viu +SvROK|5.003007|5.003007| +SvROK_off|5.003007|5.003007| +SvROK_on|5.003007|5.003007| +SvRV|5.003007|5.003007| +SvRV_const|5.010001||Viu +SvRV_set|5.009003|5.003007|p +sv_rvunweaken|5.027004|5.027004| +sv_rvweaken|5.006000|5.006000| +SvRVx|5.003007||Viu +SvRX|5.009005|5.003007|p +SvRXOK|5.009005|5.003007|p +SV_SAVED_COPY|5.009005||Viu +SvSCREAM|5.003007||Viu +SvSCREAM_off|5.003007||Viu +SvSCREAM_on|5.003007||Viu +sv_setgid|5.019001||Viu +sv_sethek|5.015004||cViu +sv_setiv|5.003007|5.003007| +sv_setiv_mg|5.004005|5.003007|p +SvSETMAGIC|5.003007|5.003007| +SvSetMagicSV|5.004000|5.004000| +SvSetMagicSV_nosteal|5.004000|5.004000| +sv_setnv|5.006000|5.003007| +sv_setnv_mg|5.006000|5.003007|p +sv_setpv|5.003007|5.003007| +sv_setpv_bufsize|5.025006|5.025006| +sv_setpvf|5.006000|5.004000|v sv_setpvf_mg|5.006000|5.004000|pv -sv_setpvf_nocontext|||vn -sv_setpvf||5.004000|v -sv_setpviv_mg||5.008001| -sv_setpviv||5.008001| -sv_setpvn_mg|5.004050||p -sv_setpvn||| -sv_setpvs|5.009004||p -sv_setpv||| -sv_setref_iv||| -sv_setref_nv||| -sv_setref_pvn||| -sv_setref_pv||| -sv_setref_uv||5.007001| -sv_setsv_cow||| -sv_setsv_flags||5.007002| -sv_setsv_mg|5.004050||p -sv_setsv_nomg|5.007002||p -sv_setsv||| -sv_setuv_mg|5.004050||p -sv_setuv|5.004000||p -sv_tainted||5.004000| -sv_taint||5.004000| -sv_true||5.005000| -sv_unglob||| -sv_uni_display||5.007003| -sv_unmagic||| -sv_unref_flags||5.007001| -sv_unref||| -sv_untaint||5.004000| -sv_upgrade||| -sv_usepvn_flags||5.009004| -sv_usepvn_mg|5.004050||p -sv_usepvn||| -sv_utf8_decode||5.006000| -sv_utf8_downgrade||5.006000| -sv_utf8_encode||5.006000| -sv_utf8_upgrade_flags_grow||5.011000| -sv_utf8_upgrade_flags||5.007002| -sv_utf8_upgrade_nomg||5.007002| -sv_utf8_upgrade||5.007001| -sv_uv|5.005000||p -sv_vcatpvf_mg|5.006000|5.004000|p -sv_vcatpvfn||5.004000| +sv_setpvf_mg_nocontext|5.006000||pvVn +sv_setpvf_nocontext|5.006000||vVn +sv_setpviv|5.008001|5.008001|d +sv_setpviv_mg|5.008001|5.008001|d +sv_setpv_mg|5.004005|5.003007|p +sv_setpvn|5.003007|5.003007| +sv_setpvn_mg|5.004005|5.003007|p +sv_setpvs|5.009004|5.003007|p +sv_setpvs_mg|5.013006|5.013006| +sv_setref_iv|5.003007|5.003007| +sv_setref_nv|5.006000|5.003007| +sv_setref_pv|5.003007|5.003007| +sv_setref_pvn|5.003007|5.003007| +sv_setref_pvs|5.013006|5.013006| +sv_setref_uv|5.007001|5.007001| +sv_setsv|5.003007|5.003007| +SvSetSV|5.003007|5.003007| +sv_setsv_cow|5.009000||xcViu +sv_setsv_flags|5.007002|5.003007|p +sv_setsv_mg|5.004005|5.003007|p +sv_setsv_nomg|5.007002|5.003007|p +SvSetSV_nosteal|5.004000|5.004000| +sv_setuid|5.019001||Viu +sv_set_undef|5.025008|5.025008| +sv_setuv|5.004000|5.003007|p +sv_setuv_mg|5.004005|5.003007|p +SVs_GMG|5.003007||Viu +SvSHARE|5.007003|5.007003| +SvSHARED_HASH|5.009003|5.003007|p +SvSHARED_HEK_FROM_PV|5.009003||Viu +SV_SKIP_OVERLOAD|5.013001||Viu +SV_SMAGIC|5.009003|5.003007|p +SvSMAGICAL|5.003007||Viu +SvSMAGICAL_off|5.003007||Viu +SvSMAGICAL_on|5.003007||Viu +SVs_OBJECT|5.003007||Viu +SVs_PADMY|5.003007||Viu +SVs_PADSTALE|5.009000|5.009000| +SVs_PADTMP|5.003007||Viu +SVs_RMG|5.003007||Viu +SVs_SMG|5.003007||Viu +SvSTASH|5.003007|5.003007| +SvSTASH_set|5.009003|5.003007|p +SVs_TEMP|5.003007|5.003007| +sv_string_from_errnum|5.027003|5.027003| +SvTAIL|5.003007||Viu +SvTAINT|5.003007|5.003007| +sv_taint|5.009003||cV +SvTAINTED|5.004000|5.004000| +sv_tainted|5.004000||cV +SvTAINTED_off|5.004000|5.004000| +SvTAINTED_on|5.004000|5.004000| +SvTEMP|5.003007||Viu +SvTEMP_off|5.003007||Viu +SvTEMP_on|5.003007||Viu +SVt_FIRST|5.021005||Viu +SvTHINKFIRST|5.003007||Vi +SvTIED_mg|5.005003||Viu +SvTIED_obj|5.005003|5.005003| +SVt_INVLIST|||c +SVt_IV|5.003007|5.003007| +SVt_MASK|5.015001||Viu +SVt_NULL|5.003007|5.003007| +SVt_NV|5.003007|5.003007| +SVt_PV|5.003007|5.003007| +SVt_PVAV|5.003007|5.003007| +SVt_PVBM|5.009005||Viu +SVt_PVCV|5.003007|5.003007| +SVt_PVFM|5.003007|5.003007| +SVt_PVGV|5.003007|5.003007| +SVt_PVHV|5.003007|5.003007| +SVt_PVIO|5.003007|5.003007| +SVt_PVIV|5.003007|5.003007| +SVt_PVLV|5.003007|5.003007| +SVt_PVMG|5.003007|5.003007| +SVt_PVNV|5.003007|5.003007| +SVt_REGEXP|5.011000|5.011000| +SvTRUE|5.003007|5.003007| +sv_true|5.005000||cV +SvTRUE_common|5.033005||cVu +SvTRUE_NN|5.017007|5.017007| +SvTRUE_nomg|5.013006|5.003007|p +SvTRUE_nomg_NN|5.017007|5.017007| +SvTRUEx|5.003007|5.003007| +SvTRUEx_nomg|5.017002||Viu +SVt_RV|5.011000||Viu +SvTYPE|5.003007|5.003007| +SVTYPEMASK|5.003007||Viu +SvUID|5.019001||Viu +SV_UNDEF_RETURNS_NULL|5.011000||Viu +sv_unglob|5.005000||Viu +sv_uni_display|5.007003|5.007003| +SvUNLOCK|5.007003|5.007003| +sv_unmagic|5.003007|5.003007| +sv_unmagicext|5.013008|5.003007|p +sv_unref|5.003007|5.003007| +sv_unref_flags|5.007001|5.007001| +sv_untaint|5.004000||cV +SvUOK|5.007001|5.006000|p +SvUOK_nog|5.017002||Viu +SvUOK_nogthink|5.017002||Viu +sv_upgrade|5.003007|5.003007| +SvUPGRADE|5.003007|5.003007| +sv_usepvn|5.003007|5.003007| +sv_usepvn_flags|5.009004|5.009004| +sv_usepvn_mg|5.004005|5.003007|p +SvUTF8|5.006000|5.003007|p +sv_utf8_decode|5.006000|5.006000| +sv_utf8_downgrade|5.006000|5.006000| +sv_utf8_downgrade_flags|5.031004|5.031004| +sv_utf8_downgrade_nomg|5.031004|5.031004| +sv_utf8_encode|5.006000|5.006000| +SV_UTF8_NO_ENCODING|5.008001|5.003007|pd +SvUTF8_off|5.006000|5.006000| +SvUTF8_on|5.006000|5.006000| +sv_utf8_upgrade|5.007001|5.007001| +sv_utf8_upgrade_flags|5.007002|5.007002| +sv_utf8_upgrade_flags_grow|5.011000|5.011000| +sv_utf8_upgrade_nomg|5.007002|5.007002| +SvUV|5.004000|5.003007|p +sv_uv|5.005000||pdcV +SvUV_nomg|5.009001|5.003007|p +SvUV_set|5.009003|5.003007|p +SvUVX|5.004000|5.003007|p +SvUVx|5.004000|5.003007|p +SvUVXx|5.004000|5.003007|pd +SvVALID|5.003007||Viu sv_vcatpvf|5.006000|5.004000|p -sv_vsetpvf_mg|5.006000|5.004000|p -sv_vsetpvfn||5.004000| +sv_vcatpvf_mg|5.006000|5.004000|p +sv_vcatpvfn|5.004000|5.004000| +sv_vcatpvfn_flags|5.017002|5.017002| +SvVOK|5.008001|5.008001| sv_vsetpvf|5.006000|5.004000|p -sv_xmlpeek||| -svtype||| -swallow_bom||| -swap_match_buff||| -swash_fetch||5.007002| -swash_get||| -swash_init||5.006000| -sys_init3||5.010000|n -sys_init||5.010000|n -sys_intern_clear||| -sys_intern_dup||| -sys_intern_init||| -sys_term||5.010000|n -taint_env||| -taint_proper||| -tmps_grow||5.006000| -toLOWER||| -toUPPER||| -to_byte_substr||| -to_uni_fold||5.007003| -to_uni_lower_lc||5.006000| -to_uni_lower||5.007003| -to_uni_title_lc||5.006000| -to_uni_title||5.007003| -to_uni_upper_lc||5.006000| -to_uni_upper||5.007003| -to_utf8_case||5.007003| -to_utf8_fold||5.007003| -to_utf8_lower||5.007003| -to_utf8_substr||| -to_utf8_title||5.007003| -to_utf8_upper||5.007003| -token_free||| -token_getmad||| -tokenize_use||| -tokeq||| -tokereport||| -too_few_arguments||| -too_many_arguments||| -uiv_2buf|||n -unlnk||| -unpack_rec||| -unpack_str||5.007003| -unpackstring||5.008001| -unshare_hek_or_pvn||| -unshare_hek||| -unsharepvn||5.004000| -unwind_handler_stack||| -update_debugger_info||| -upg_version||5.009005| -usage||| -utf16_to_utf8_reversed||5.006001| -utf16_to_utf8||5.006001| -utf8_distance||5.006000| -utf8_hop||5.006000| -utf8_length||5.007001| -utf8_mg_pos_cache_update||| -utf8_to_bytes||5.006001| -utf8_to_uvchr||5.007001| -utf8_to_uvuni||5.007001| -utf8n_to_uvchr||| -utf8n_to_uvuni||5.007001| -utilize||| -uvchr_to_utf8_flags||5.007003| -uvchr_to_utf8||| -uvuni_to_utf8_flags||5.007003| -uvuni_to_utf8||5.007001| -validate_suid||| -varname||| -vcmp||5.009000| -vcroak||5.006000| -vdeb||5.007003| -vdie_common||| -vdie_croak_common||| -vdie||| -vform||5.006000| -visit||| -vivify_defelem||| -vivify_ref||| -vload_module|5.006000||p -vmess||5.006000| +sv_vsetpvf_mg|5.006000|5.004000|p +sv_vsetpvfn|5.004000|5.004000| +SvVSTRING_mg|5.009004|5.003007|p +SvWEAKREF|5.006000||Viu +SvWEAKREF_off|5.006000||Viu +SvWEAKREF_on|5.006000||Viu +swallow_bom|5.006001||Viu +switch_category_locale_to_template|5.027009||Viu +SWITCHSTACK|5.003007||Viu +switch_to_global_locale|5.027009|5.003007|pn +sync_locale|5.027009|5.003007|pn +sys_init3|||cnu +sys_init|||cnu +sys_intern_clear|5.006001||Vu +sys_intern_dup|5.006000||Vu +sys_intern_init|5.006001||Vu +SYSTEM_GMTIME_MAX|5.011000||Viu +SYSTEM_GMTIME_MIN|5.011000||Viu +SYSTEM_LOCALTIME_MAX|5.011000||Viu +SYSTEM_LOCALTIME_MIN|5.011000||Viu +sys_term|||cnu +TAIL|5.005000||Viu +TAIL_t8_p8|5.033003||Viu +TAIL_t8_pb|5.033003||Viu +TAIL_tb_p8|5.033003||Viu +TAIL_tb_pb|5.033003||Viu +TAINT|5.004000||Viu +taint_env|5.003007|5.003007|u +TAINT_ENV|5.003007||Viu +TAINT_get|5.017006||Viu +TAINT_IF|5.003007||Viu +TAINTING_get|5.017006||Viu +TAINTING_set|5.017006||Viu +TAINT_NOT|5.003007||Viu +taint_proper|5.003007|5.003007|u +TAINT_PROPER|5.003007||Viu +TAINT_set|5.017006||Viu +TAINT_WARN_get|5.017006||Viu +TAINT_WARN_set|5.017006||Viu +TARG|5.003007|5.003007| +TARGi|5.023005||Viu +TARGn|5.023005||Viu +TARGu|5.023005||Viu +telldir|5.005000||Viu +T_FMT|5.027010||Viu +T_FMT_AMPM|5.027010||Viu +THIS|5.003007|5.003007|V +THOUSEP|5.027010||Viu +THR|5.005000||Viu +THREAD_CREATE_NEEDS_STACK|5.007002||Viu +thread_locale_init|5.027009|5.027009|xnu +thread_locale_term|5.027009|5.027009|xnu +THREAD_RET_TYPE|5.005000||Viu +tied_method|5.013009||vViu +TIED_METHOD_ARGUMENTS_ON_STACK|5.013009||Viu +TIED_METHOD_MORTALIZE_NOT_NEEDED|5.013009||Viu +TIED_METHOD_SAY|5.013009||Viu +times|5.005000||Viu +Time_t|5.003007|5.003007|Vn +Timeval|5.004000|5.004000|Vn +TM|5.011000||Viu +tmpfile|5.003007||Viu +tmpnam|5.005000||Viu +TMPNAM_R_PROTO|5.008000|5.008000|Vn +tmps_grow_p|5.021005||cViu +to_byte_substr|5.008000||Viu +toCTRL|5.004000||Viu +toFOLD|5.019001|5.019001| +toFOLD_A|5.019001||Viu +_to_fold_latin1|5.015005||cVniu +toFOLD_LC|5.019001||Viu +toFOLD_uni|5.007003||Viu +toFOLD_utf8|5.031005|5.031005| +toFOLD_utf8_safe|5.025009|5.006000|p +toFOLD_uvchr|5.023009|5.006000|p +TO_INTERNAL_SIZE|5.023002||Viu +tokenize_use|5.009003||Viu +tokeq|5.005000||Viu +tokereport|5.007001||Viu +toLOWER|5.003007|5.003007| +toLOWER_A|5.019001|5.019001| +toLOWER_L1|5.019001|5.019001| +toLOWER_LATIN1|5.013006|5.011002| +to_lower_latin1|5.015005||Vniu +toLOWER_LC|5.004000|5.004000| +toLOWER_uni|5.006000||Viu +toLOWER_utf8|5.031005|5.031005| +toLOWER_utf8_safe|5.025009|5.006000|p +toLOWER_uvchr|5.023009|5.006000|p +too_few_arguments_pv|5.016000||Viu +TOO_LATE_FOR|5.008001||Viu +too_many_arguments_pv|5.016000||Viu +TOPi|5.003007||Viu +TOPl|5.003007||Viu +TOPm1s|5.007001||Viu +TOPMARK|5.003007||cViu +TOPn|5.003007||Viu +TOPp1s|5.007001||Viu +TOPp|5.003007||Viu +TOPpx|5.005003||Viu +TOPs|5.003007||Viu +TOPu|5.004000||Viu +TOPul|5.006000||Viu +toTITLE|5.019001|5.019001| +toTITLE_A|5.019001||Viu +toTITLE_uni|5.006000||Viu +toTITLE_utf8|5.031005|5.031005| +toTITLE_utf8_safe|5.025009|5.006000|p +toTITLE_uvchr|5.023009|5.006000|p +to_uni_fold|5.014000||cVu +_to_uni_fold_flags|5.014000||cVu +to_uni_lower|5.006000||cVu +to_uni_title|5.006000||cVu +to_uni_upper|5.006000||cVu +toUPPER|5.003007|5.003007| +toUPPER_A|5.019001||Viu +toUPPER_LATIN1_MOD|5.011002||Viu +toUPPER_LC|5.004000||Viu +_to_upper_title_latin1|5.015005||Viu +toUPPER_uni|5.006000||Viu +toUPPER_utf8|5.031005|5.031005| +toUPPER_utf8_safe|5.025009|5.006000|p +toUPPER_uvchr|5.023009|5.006000|p +_to_utf8_case|5.023006||Viu +_to_utf8_fold_flags|5.014000||cVu +_to_utf8_lower_flags|5.015006||cVu +to_utf8_substr|5.008000||Viu +_to_utf8_title_flags|5.015006||cVu +_to_utf8_upper_flags|5.015006||cVu +translate_substr_offsets|5.015006||Vniu +traverse_op_tree|5.029008||Vi +TR_DELETE|5.031006||Viu +TRIE|5.009002||Viu +TRIE_BITMAP|5.009004||Viu +TRIE_BITMAP_BYTE|5.009004||Viu +TRIE_BITMAP_CLEAR|5.009004||Viu +TRIE_BITMAP_SET|5.009004||Viu +TRIE_BITMAP_TEST|5.009004||Viu +TRIEC|5.009004||Viu +TRIE_CHARCOUNT|5.009004||Viu +TRIEC_t8_p8|5.033003||Viu +TRIEC_t8_pb|5.033003||Viu +TRIEC_tb_p8|5.033003||Viu +TRIEC_tb_pb|5.033003||Viu +TRIE_next|5.009005||Viu +TRIE_next_fail|5.009005||Viu +TRIE_next_fail_t8_p8|5.033003||Viu +TRIE_next_fail_t8_pb|5.033003||Viu +TRIE_next_fail_tb_p8|5.033003||Viu +TRIE_next_fail_tb_pb|5.033003||Viu +TRIE_next_t8_p8|5.033003||Viu +TRIE_next_t8_pb|5.033003||Viu +TRIE_next_tb_p8|5.033003||Viu +TRIE_next_tb_pb|5.033003||Viu +TRIE_NODEIDX|5.009002||Viu +TRIE_NODENUM|5.009002||Viu +TRIE_t8_p8|5.033003||Viu +TRIE_t8_pb|5.033003||Viu +TRIE_tb_p8|5.033003||Viu +TRIE_tb_pb|5.033003||Viu +TRIE_WORDS_OFFSET|5.009005||Viu +TR_OOB|5.031006||Viu +TR_R_EMPTY|5.031006||Viu +TR_SPECIAL_HANDLING|5.031006||Viu +TRUE|5.003007||Viu +truncate|5.006000||Viu +TR_UNLISTED|5.031006||Viu +TR_UNMAPPED|5.031006||Viu +try_amagic_bin|||ciu +tryAMAGICbin_MG|5.013002||Viu +try_amagic_un|||ciu +tryAMAGICunDEREF|5.006000||Viu +tryAMAGICun_MG|5.013002||Viu +tryAMAGICunTARGETlist|5.017002||Viu +TS_W32_BROKEN_LOCALECONV|5.027010||Viu +tTHX|5.009003||Viu +ttyname|5.009000||Viu +TTYNAME_R_PROTO|5.008000|5.008000|Vn +turkic_fc|5.029008||Viu +turkic_lc|5.029008||Viu +turkic_uc|5.029008||Viu +TWO_BYTE_UTF8_TO_NATIVE|5.019004||Viu +TWO_BYTE_UTF8_TO_UNI|5.013008||Viu +TYPE_CHARS|5.004000||Viu +TYPE_DIGITS|5.004000||Viu +U16|5.027001||Viu +U16_MAX|5.003007||Viu +U16_MIN|5.003007||Viu +U16SIZE|5.006000|5.006000|Vn +U16TYPE|5.006000|5.006000|Vn +U_32|5.007002|5.007002| +U32|5.027001||Viu +U32_ALIGNMENT_REQUIRED|5.007001|5.007001|Vn +U32_MAX|5.003007||Viu +U32_MAX_P1|5.007002||Viu +U32_MAX_P1_HALF|5.007002||Viu +U32_MIN|5.003007||Viu +U32SIZE|5.006000|5.006000|Vn +U32TYPE|5.006000|5.006000|Vn +U64|5.023002||Viu +U64SIZE|5.006000|5.006000|Vn +U64TYPE|5.006000|5.006000|Vn +U8|5.027001||Viu +U8_MAX|5.003007||Viu +U8_MIN|5.003007||Viu +U8SIZE|5.006000|5.006000|Vn +U8TO16_LE|5.017010||Viu +U8TO32_LE|5.017010||Viu +U8TO64_LE|5.017006||Viu +U8TYPE|5.006000|5.006000|Vn +UCHARAT|5.003007||Viu +U_I|5.003007||Viu +Uid_t|5.003007|5.003007|Vn +Uid_t_f|5.006000|5.006000|Vn +Uid_t_sign|5.006000|5.006000|Vn +Uid_t_size|5.006000|5.006000|Vn +UINT16_C|5.003007|5.003007| +UINT32_C|5.003007|5.003007| +UINT32_MIN|5.006000||Viu +UINT64_C|5.023002|5.023002| +UINT64_MIN|5.006000||Viu +UINTMAX_C|5.003007|5.003007| +uiv_2buf|5.009003||Vniu +U_L|5.003007||Viu +umask|5.005000||Viu +uname|5.005004||Viu +UNDERBAR|5.009002|5.003007|p +unexpected_non_continuation_text|5.025006||Viu +ungetc|5.003007||Viu +UNI_age_values_index|5.029009||Viu +UNI_AHEX|5.029002||Viu +UNI_ahex_values_index|5.029009||Viu +UNI_ALNUM|5.029002||Viu +UNI_ALPHA|5.029002||Viu +UNI_ALPHABETIC|5.029002||Viu +UNI_alpha_values_index|5.029009||Viu +UNI_ASCIIHEXDIGIT|5.029002||Viu +UNI_BASICLATIN|5.029002||Viu +UNI_bc_values_index|5.029009||Viu +UNI_bidic_values_index|5.029009||Viu +UNI_bidim_values_index|5.029009||Viu +UNI_BLANK|5.029002||Viu +UNI_blk_values_index|5.029009||Viu +UNI_bpt_values_index|5.029009||Viu +UNI_cased_values_index|5.029009||Viu +UNI_CC|5.029002||Viu +UNI_ccc_values_index|5.029009||Viu +UNI_ce_values_index|5.029009||Viu +UNI_ci_values_index|5.029009||Viu +UNI_CNTRL|5.029002||Viu +UNICODE_ALLOW_ABOVE_IV_MAX|5.031006||Viu +UNICODE_ALLOW_ANY|5.007003||Viu +UNICODE_ALLOW_SUPER|5.007003||Viu +UNICODE_ALLOW_SURROGATE|5.007003||Viu +UNICODE_BYTE_ORDER_MARK|5.008000||Viu +UNICODE_DISALLOW_ABOVE_31_BIT|5.023006|5.023006| +UNICODE_DISALLOW_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005| +UNICODE_DISALLOW_ILLEGAL_INTERCHANGE|5.013009|5.013009| +UNICODE_DISALLOW_NONCHAR|5.013009|5.013009| +UNICODE_DISALLOW_PERL_EXTENDED|5.027002|5.027002| +UNICODE_DISALLOW_SUPER|5.013009|5.013009| +UNICODE_DISALLOW_SURROGATE|5.013009|5.013009| +UNICODE_DOT_DOT_VERSION|5.023002||Viu +UNICODE_DOT_VERSION|5.023002||Viu +UNICODE_GOT_NONCHAR|5.027009||Viu +UNICODE_GOT_PERL_EXTENDED|5.027009||Viu +UNICODE_GOT_SUPER|5.027009||Viu +UNICODE_GOT_SURROGATE|5.027009||Viu +UNICODE_GREEK_CAPITAL_LETTER_SIGMA|5.007003||Viu +UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA|5.007003||Viu +UNICODE_GREEK_SMALL_LETTER_SIGMA|5.007003||Viu +UNICODE_IS_32_CONTIGUOUS_NONCHARS|5.023006||Viu +UNICODE_IS_BYTE_ORDER_MARK|5.007001||Viu +UNICODE_IS_END_PLANE_NONCHAR_GIVEN_NOT_SUPER|5.023006||Viu +UNICODE_IS_NONCHAR|5.013009||Viu +UNICODE_IS_PERL_EXTENDED|5.027002||Viu +UNICODE_IS_REPLACEMENT|5.007001||Viu +UNICODE_IS_SUPER|5.013009||Viu +UNICODE_IS_SURROGATE|5.007001||Viu +UNICODE_MAJOR_VERSION|5.023002||Viu +UNICODE_PAT_MOD|5.013006||Viu +UNICODE_PAT_MODS|5.013006||Viu +UNICODE_REPLACEMENT|5.007001|5.003007|p +UNICODE_SURROGATE_FIRST|5.007001||Viu +UNICODE_SURROGATE_LAST|5.007001||Viu +UNICODE_WARN_ABOVE_31_BIT|5.023006|5.023006| +UNICODE_WARN_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005| +UNICODE_WARN_ILLEGAL_INTERCHANGE|5.013009|5.013009| +UNICODE_WARN_NONCHAR|5.013009|5.013009| +UNICODE_WARN_PERL_EXTENDED|5.027002|5.027002| +UNICODE_WARN_SUPER|5.013009|5.013009| +UNICODE_WARN_SURROGATE|5.013009|5.013009| +UNI_compex_values_index|5.029009||Viu +UNI_CONTROL|5.029002||Viu +UNI_cwcf_values_index|5.029009||Viu +UNI_cwcm_values_index|5.029009||Viu +UNI_cwkcf_values_index|5.029009||Viu +UNI_cwl_values_index|5.029009||Viu +UNI_cwt_values_index|5.029009||Viu +UNI_cwu_values_index|5.029009||Viu +UNI_dash_values_index|5.029009||Viu +UNI_DECIMALNUMBER|5.029002||Viu +UNI_dep_values_index|5.029009||Viu +UNI_dia_values_index|5.029009||Viu +UNI_DIGIT|5.029002||Viu +UNI_DISPLAY_BACKSLASH|5.007003|5.007003| +UNI_DISPLAY_BACKSPACE|5.031009|5.031009| +UNI_DISPLAY_ISPRINT|5.007003|5.007003| +UNI_DISPLAY_QQ|5.007003|5.007003| +UNI_DISPLAY_REGEX|5.007003|5.007003| +UNI_di_values_index|5.029009||Viu +UNI_dt_values_index|5.029009||Viu +UNI_ea_values_index|5.029009||Viu +UNI_ebase_values_index|5.031010||Viu +UNI_ecomp_values_index|5.031010||Viu +UNI_emod_values_index|5.031010||Viu +UNI_emoji_values_index|5.031010||Viu +UNI_epres_values_index|5.031010||Viu +UNI_extpict_values_index|5.031010||Viu +UNI_ext_values_index|5.029009||Viu +UNI_gcb_values_index|5.029009||Viu +UNI_gc_values_index|5.029009||Viu +UNI_GRAPH|5.029002||Viu +UNI_grbase_values_index|5.029009||Viu +UNI_grext_values_index|5.029009||Viu +UNI_HEX|5.029002||Viu +UNI_HEXDIGIT|5.029002||Viu +UNI_hex_values_index|5.029009||Viu +UNI_HORIZSPACE|5.029002||Viu +UNI_hst_values_index|5.029009||Viu +UNI_HYPHEN|5.029002||Viu +UNI_hyphen_values_index|5.029009||Viu +UNI_idc_values_index|5.029009||Viu +UNI_identifierstatus_values_index|5.031010||Viu +UNI_identifiertype_values_index|5.031010||Viu +UNI_ideo_values_index|5.029009||Viu +UNI_idsb_values_index|5.029009||Viu +UNI_idst_values_index|5.029009||Viu +UNI_ids_values_index|5.029009||Viu +UNI_inpc_values_index|5.029009||Viu +UNI_insc_values_index|5.029009||Viu +UNI_in_values_index|5.029009||Viu +UNI_IS_INVARIANT|5.007001||Viu +UNI_jg_values_index|5.029009||Viu +UNI_joinc_values_index|5.029009||Viu +UNI_jt_values_index|5.029009||Viu +UNI_L|5.029002||Viu +UNI_L_AMP|5.029002||Viu +UNI_LB__SG|5.029002||Viu +UNI_lb_values_index|5.029009||Viu +UNI_LC|5.029002||Viu +UNI_LL|5.029002||Viu +UNI_loe_values_index|5.029009||Viu +UNI_LOWER|5.029002||Viu +UNI_LOWERCASE|5.029002||Viu +UNI_lower_values_index|5.029009||Viu +UNI_LT|5.029002||Viu +UNI_LU|5.029002||Viu +UNI_math_values_index|5.029009||Viu +UNI_nchar_values_index|5.029009||Viu +UNI_ND|5.029002||Viu +UNI_nfcqc_values_index|5.029009||Viu +UNI_nfdqc_values_index|5.029009||Viu +UNI_nfkcqc_values_index|5.029009||Viu +UNI_nfkdqc_values_index|5.029009||Viu +UNI_nt_values_index|5.029009||Viu +UNI_nv_values_index|5.029009||Viu +UNI_patsyn_values_index|5.029009||Viu +UNI_patws_values_index|5.029009||Viu +UNI_pcm_values_index|5.029009||Viu +UNI_PERLSPACE|5.029002||Viu +UNI_PERLWORD|5.029002||Viu +UNI_PRINT|5.029002||Viu +UNI_qmark_values_index|5.029009||Viu +UNI_radical_values_index|5.029009||Viu +UNI_ri_values_index|5.029009||Viu +UNI_sb_values_index|5.029009||Viu +UNI_sc_values_index|5.029009||Viu +UNI_scx_values_index|5.029009||Viu +UNI_sd_values_index|5.029009||Viu +UNISKIP|5.007001||Viu +UNI_SPACE|5.029002||Viu +UNI_SPACEPERL|5.029002||Viu +UNI_sterm_values_index|5.029009||Viu +UNI_term_values_index|5.029009||Viu +UNI_TITLECASE|5.029002||Viu +UNI_TITLECASELETTER|5.029002||Viu +UNI_TO_NATIVE|5.007001|5.003007|p +UNI_uideo_values_index|5.029009||Viu +UNI_UPPER|5.029002||Viu +UNI_UPPERCASE|5.029002||Viu +UNI_upper_values_index|5.029009||Viu +UNI_vo_values_index|5.029009||Viu +UNI_vs_values_index|5.029009||Viu +UNI_wb_values_index|5.029009||Viu +UNI_WHITESPACE|5.029002||Viu +UNI_WORD|5.029002||Viu +UNI_WSPACE|5.029002||Viu +UNI_wspace_values_index|5.029009||Viu +UNI_XDIGIT|5.029002||Viu +UNI_xidc_values_index|5.029009||Viu +UNI_xids_values_index|5.029009||Viu +UNI_XPERLSPACE|5.029002||Viu +UNKNOWN_ERRNO_MSG|5.019007||Viu +UNLESSM|5.003007||Viu +UNLESSM_t8_p8|5.033003||Viu +UNLESSM_t8_pb|5.033003||Viu +UNLESSM_tb_p8|5.033003||Viu +UNLESSM_tb_pb|5.033003||Viu +UNLIKELY|5.009004|5.003007|p +UNLINK|5.003007||Viu +unlink|5.005000||Viu +unlnk|5.003007||cVu +UNLOCK_DOLLARZERO_MUTEX|5.008001||Viu +UNLOCK_LC_NUMERIC_STANDARD|5.021010||poVnu +UNLOCK_NUMERIC_STANDARD|||piu +UNOP_AUX_item_sv|5.021007||Viu +unpack_rec|5.008001||Viu +unpack_str|5.007003|5.007003|d +unpackstring|5.008001|5.008001| +unpackWARN1|5.007003||Viu +unpackWARN2|5.007003||Viu +unpackWARN3|5.007003||Viu +unpackWARN4|5.007003||Viu +unreferenced_to_tmp_stack|5.013002||Viu +unshare_hek|5.004000||Viu +unshare_hek_or_pvn|5.008000||Viu +unsharepvn|5.003007|5.003007|u +unwind_handler_stack|5.009003||Viu +update_debugger_info|5.009005||Viu +upg_version|5.009005|5.009005| +UPG_VERSION|5.019008||Viu +Uquad_t|5.006000|5.006000|Vn +U_S|5.003007||Viu +usage|5.005000||Viu +USE_64_BIT_ALL|5.006000|5.006000|Vn +USE_64_BIT_INT|5.006000|5.006000|Vn +USE_64_BIT_RAWIO|5.006000||Viu +USE_64_BIT_STDIO|5.006000||Viu +USE_BSDPGRP|5.003007||Viu +USE_C_BACKTRACE|5.035001|5.035001|Vn +USE_DYNAMIC_LOADING|5.003007|5.003007|Vn +USE_ENVIRON_ARRAY|5.007001||Viu +USE_GRENT_BUFFER|5.008000||Viu +USE_GRENT_FPTR|5.008000||Viu +USE_GRENT_PTR|5.008000||Viu +USE_HASH_SEED|5.008001||Viu +USE_HOSTENT_BUFFER|5.008000||Viu +USE_HOSTENT_ERRNO|5.008000||Viu +USE_HOSTENT_PTR|5.008000||Viu +USE_ITHREADS|5.010000|5.010000|Vn +USE_LARGE_FILES|5.006000|5.006000|Vn +USE_LEFT|5.004000||Viu +USE_LOCALE|5.004000||Viu +USE_LOCALE_ADDRESS|5.027009||Viu +USE_LOCALE_COLLATE|5.004000||Viu +USE_LOCALE_CTYPE|5.004000||Viu +USE_LOCALE_IDENTIFICATION|5.027009||Viu +USE_LOCALE_MEASUREMENT|5.027009||Viu +USE_LOCALE_MESSAGES|5.019002||Viu +USE_LOCALE_MONETARY|5.019002||Viu +USE_LOCALE_NUMERIC|5.004000||Viu +USE_LOCALE_PAPER|5.027009||Viu +USE_LOCALE_SYNTAX|5.033001||Viu +USE_LOCALE_TELEPHONE|5.027009||Viu +USE_LOCALE_TIME|5.021002||Viu +USE_LOCALE_TOD|5.033001||Viu +USEMYBINMODE|5.006000||Viu +USE_NETENT_BUFFER|5.008000||Viu +USE_NETENT_ERRNO|5.008000||Viu +USE_NETENT_PTR|5.008000||Viu +USE_PERL_ATOF|5.008000||Viu +USE_PERLIO|5.007001|5.007001|Vn +USE_PERL_PERTURB_KEYS|5.018000||Viu +USE_POSIX_2008_LOCALE|5.027003||Viu +USE_PROTOENT_BUFFER|5.008000||Viu +USE_PROTOENT_PTR|5.008000||Viu +USE_PWENT_BUFFER|5.008000||Viu +USE_PWENT_FPTR|5.008000||Viu +USE_PWENT_PTR|5.008000||Viu +USE_REENTRANT_API|5.007003||Viu +USER_PROP_MUTEX_INIT|5.029008||Viu +USER_PROP_MUTEX_LOCK|5.029008||Viu +USER_PROP_MUTEX_TERM|5.029008||Viu +USER_PROP_MUTEX_UNLOCK|5.029008||Viu +USE_SEMCTL_SEMID_DS|5.004005|5.004005|Vn +USE_SEMCTL_SEMUN|5.004005|5.004005|Vn +USE_SERVENT_BUFFER|5.008000||Viu +USE_SERVENT_PTR|5.008000||Viu +USE_SPENT_BUFFER|5.031011||Viu +USE_SPENT_PTR|5.008000||Viu +USE_STAT_BLOCKS|5.005003|5.005003|Vn +USE_STAT_RDEV|5.003007||Viu +USE_STDIO|5.003007||Viu +USE_STDIO_BASE|5.006000|5.006000|Vn +USE_STDIO_PTR|5.006000|5.006000|Vn +USE_SYSTEM_GMTIME|5.011000||Viu +USE_SYSTEM_LOCALTIME|5.011000||Viu +USE_THREADS|5.006000|5.006000|Vn +USE_THREAD_SAFE_LOCALE|5.025004||Viu +USE_TM64|5.011000||Viu +USE_UTF8_IN_NAMES|5.007003||Viu +utf16_textfilter|5.011001||Viu +utf16_to_utf8|5.006000||cViu +utf16_to_utf8_reversed|5.006000||cViu +UTF8_ACCUMULATE|5.007001||Viu +UTF8_ALLOW_ANY|5.007001||Viu +UTF8_ALLOW_ANYUV|5.007001||Viu +UTF8_ALLOW_CONTINUATION|5.007001||Viu +UTF8_ALLOW_DEFAULT|5.009004||Viu +UTF8_ALLOW_EMPTY|5.007001||Viu +UTF8_ALLOW_FE_FF|5.027009||Viu +UTF8_ALLOW_FFFF|5.007001||Viu +UTF8_ALLOW_LONG|5.007001||Viu +UTF8_ALLOW_LONG_AND_ITS_VALUE|5.025009||Viu +UTF8_ALLOW_NON_CONTINUATION|5.007001||Viu +UTF8_ALLOW_OVERFLOW|5.025009||Viu +UTF8_ALLOW_SHORT|5.007001||Viu +UTF8_ALLOW_SURROGATE|5.007001||Viu +UTF8_CHECK_ONLY|5.007001|5.007001| +UTF8_CHK_SKIP|5.031006|5.006000|p +UTF8_DISALLOW_ABOVE_31_BIT|5.023006||Viu +UTF8_DISALLOW_FE_FF|5.013009||Viu +UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005| +UTF8_DISALLOW_ILLEGAL_INTERCHANGE|5.013009|5.013009| +UTF8_DISALLOW_NONCHAR|5.013009|5.013009| +UTF8_DISALLOW_PERL_EXTENDED|5.027002|5.027002| +UTF8_DISALLOW_SUPER|5.013009|5.013009| +UTF8_DISALLOW_SURROGATE|5.013009|5.013009| +utf8_distance|5.006000|5.006000| +UTF8_EIGHT_BIT_HI|5.007001||Viu +UTF8_EIGHT_BIT_LO|5.007001||Viu +UTF8f|5.019001|5.003007|p +UTF8fARG|5.019002|5.003007|p +UTF8_GOT_ABOVE_31_BIT|5.025006||Viu +UTF8_GOT_CONTINUATION|5.025006|5.025006| +UTF8_GOT_EMPTY|5.025006|5.025006| +UTF8_GOT_LONG|5.025006|5.025006| +UTF8_GOT_NONCHAR|5.025006|5.025006| +UTF8_GOT_NON_CONTINUATION|5.025006|5.025006| +UTF8_GOT_OVERFLOW|5.025006|5.025006| +UTF8_GOT_PERL_EXTENDED|5.027002|5.027002| +UTF8_GOT_SHORT|5.025006|5.025006| +UTF8_GOT_SUPER|5.025006|5.025006| +UTF8_GOT_SURROGATE|5.025006|5.025006| +utf8_hop|5.006000|5.006000|n +utf8_hop_back|5.025007|5.025007|n +utf8_hop_forward|5.025007|5.025007|n +utf8_hop_safe|5.025007|5.025007|n +UTF8_IS_ABOVE_LATIN1|5.017004||Viu +UTF8_IS_ABOVE_LATIN1_START|5.023003||Viu +UTF8_IS_CONTINUATION|5.007001||Viu +UTF8_IS_CONTINUED|5.007001||Viu +UTF8_IS_DOWNGRADEABLE_START|5.007001||Viu +UTF8_IS_INVARIANT|5.007001|5.003007|p +UTF8_IS_NEXT_CHAR_DOWNGRADEABLE|5.017006||Viu +UTF8_IS_NONCHAR|5.023002|5.023002| +UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC|5.013009||Viu +UTF8_IS_REPLACEMENT|5.017000||Viu +UTF8_IS_START|5.007001||Viu +UTF8_IS_START_base|5.031007||Viu +UTF8_IS_SUPER|5.023002|5.023002| +UTF8_IS_SURROGATE|5.023002|5.023002| +utf8_length|5.007001|5.007001| +UTF8_MAXBYTES|5.009002|5.006000|p +UTF8_MAXBYTES_CASE|5.009002|5.003007|p +UTF8_MAX_FOLD_CHAR_EXPAND|5.013009||Viu +UTF8_MAXLEN|5.006000||Viu +utf8_mg_len_cache_update|5.013003||Viu +utf8_mg_pos_cache_update|5.009004||Viu +utf8n_to_uvchr|5.007001|5.007001|n +utf8n_to_uvchr_error|5.025006|5.025006|n +utf8n_to_uvchr_msgs|5.027009|5.027009|n +_utf8n_to_uvchr_msgs_helper|5.029001||cVnu +utf8n_to_uvuni|5.007001||dcV +UTF8_SAFE_SKIP|5.029009|5.006000|p +UTF8SKIP|5.006000|5.006000| +UTF8_SKIP|5.023002|5.006000|p +utf8_to_bytes|5.006001|5.006001|x +utf8_to_uvchr|5.007001|5.006001|pd +utf8_to_uvchr_buf|5.015009|5.006001|p +utf8_to_uvchr_buf_helper|5.031004||cVu +utf8_to_uvuni|5.007001||dcV +utf8_to_uvuni_buf|5.015009||dcV +UTF8_TWO_BYTE_HI|5.011002||Viu +UTF8_TWO_BYTE_HI_nocast|5.011002||Viu +UTF8_TWO_BYTE_LO|5.011002||Viu +UTF8_TWO_BYTE_LO_nocast|5.011002||Viu +UTF8_WARN_ABOVE_31_BIT|5.023006||Viu +UTF8_WARN_FE_FF|5.013009||Viu +UTF8_WARN_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005| +UTF8_WARN_ILLEGAL_INTERCHANGE|5.013009|5.013009| +UTF8_WARN_NONCHAR|5.013009|5.013009| +UTF8_WARN_PERL_EXTENDED|5.027002|5.027002| +UTF8_WARN_SUPER|5.013009|5.013009| +UTF8_WARN_SURROGATE|5.013009|5.013009| +UTF_ACCUMULATION_SHIFT|5.007001||Viu +UTF_CONTINUATION_MARK|5.007001||Viu +UTF_CONTINUATION_MASK|5.007001||Viu +UTF_IS_CONTINUATION_MASK|5.023006||Viu +UTF_MIN_ABOVE_LATIN1_BYTE|5.031006||Viu +UTF_MIN_START_BYTE|5.031006||Viu +UTF_START_MARK|5.007001||Viu +UTF_START_MASK|5.007001||Viu +UTF_TO_NATIVE|5.007001||Viu +utilize|5.003007||Viu +utime|5.005000||Viu +U_V|5.006000|5.003007| +UVCHR_IS_INVARIANT|5.019004|5.003007|p +UVCHR_SKIP|5.022000|5.003007|p +uvchr_to_utf8|5.007001|5.007001| +uvchr_to_utf8_flags|5.007003|5.007003| +uvchr_to_utf8_flags_msgs|5.027009|5.027009| +UV_DIG|5.006000||Viu +UVf|5.010000|5.010000|d +UV_IS_QUAD|5.006000||Viu +UV_MAX|5.003007|5.003007| +UV_MAX_P1|5.007002||Viu +UV_MAX_P1_HALF|5.007002||Viu +UV_MIN|5.003007|5.003007| +UVof|5.006000|5.003007|poVn +uvoffuni_to_utf8_flags|5.027009||cV +uvoffuni_to_utf8_flags_msgs|5.027009||cVu +UVSIZE|5.006000|5.003007|poVn +UVTYPE|5.006000|5.003007|poVn +UVuf|5.006000|5.003007|poVn +uvuni_to_utf8|5.019004||cVu +uvuni_to_utf8_flags|5.007003||dcV +UVxf|5.006000|5.003007|poVn +UVXf|5.007001|5.007001|poVn +VAL_EAGAIN|5.003007|5.003007|Vn +validate_proto|5.019002||xcVi +validate_suid|||iu +valid_utf8_to_uvchr|5.015009||cVn +valid_utf8_to_uvuni|5.015009||dcVu +VAL_O_NONBLOCK|5.003007|5.003007|Vn +variant_byte_number|5.031004||cVnu +variant_under_utf8_count|5.027007||Vni +varname|5.009003||Viu +vcmp|5.009000|5.009000| +VCMP|5.019008||Viu +vcroak|5.006000|5.006000| +vdeb|5.007003|5.007003|u +VERB|5.009005||Viu +VERB_t8_p8|5.033003||Viu +VERB_t8_pb|5.033003||Viu +VERB_tb_p8|5.033003||Viu +VERB_tb_pb|5.033003||Viu +vform|5.006000|5.006000| +vfprintf|5.003007||Viu +visit|5.005000||Viu +vivify_defelem|5.004000||cViu +vivify_ref|5.004000||Viu +vload_module|5.006000|5.003007|p +vmess|5.006000|5.004000|p vnewSVpvf|5.006000|5.004000|p -vnormal||5.009002| -vnumify||5.009000| -vstringify||5.009000| -vverify||5.009003| -vwarner||5.006000| -vwarn||5.006000| -wait4pid||| -warn_nocontext|||vn -warner_nocontext|||vn +vnormal|5.009002|5.009002| +VNORMAL|5.019008||Viu +vnumify|5.009000|5.009000| +VNUMIFY|5.019008||Viu +voidnonfinal|||iu +VOL|5.003007||Viu +vstringify|5.009000|5.009000| +VSTRINGIFY|5.019008||Viu +VTBL_amagic|5.005003||Viu +VTBL_amagicelem|5.005003||Viu +VTBL_arylen|5.005003||Viu +VTBL_bm|5.005003||Viu +VTBL_collxfrm|5.005003||Viu +VTBL_dbline|5.005003||Viu +VTBL_defelem|5.005003||Viu +VTBL_env|5.005003||Viu +VTBL_envelem|5.005003||Viu +VTBL_fm|5.005003||Viu +VTBL_glob|5.005003||Viu +VTBL_isa|5.005003||Viu +VTBL_isaelem|5.005003||Viu +VTBL_mglob|5.005003||Viu +VTBL_nkeys|5.005003||Viu +VTBL_pack|5.005003||Viu +VTBL_packelem|5.005003||Viu +VTBL_pos|5.005003||Viu +VTBL_regdata|5.006000||Viu +VTBL_regdatum|5.006000||Viu +VTBL_regexp|5.005003||Viu +VTBL_sigelem|5.005003||Viu +VTBL_substr|5.005003||Viu +VTBL_sv|5.005003||Viu +VTBL_taint|5.005003||Viu +VTBL_uvar|5.005003||Viu +VTBL_vec|5.005003||Viu +vTHX|5.006000||Viu +VT_NATIVE|5.021004||Viu +vtohl|5.003007||Viu +vtohs|5.003007||Viu +VUTIL_REPLACE_CORE|5.019008||Viu +vverify|5.009003|5.009003| +VVERIFY|5.019008||Viu +vwarn|5.006000|5.006000| +vwarner|5.006000|5.004000|p +wait4pid|5.003007||Viu +wait|5.005000||Viu +want_vtbl_bm|5.015000||Viu +want_vtbl_fm|5.015000||Viu +warn|5.006000|5.003007|v +WARN_ALL|5.006000|5.003007|p +WARN_ALLstring|5.006000||Viu +WARN_AMBIGUOUS|5.006000|5.003007|p +WARN_ASSERTIONS||5.003007|ponu +WARN_BAREWORD|5.006000|5.003007|p +WARN_CLOSED|5.006000|5.003007|p +WARN_CLOSURE|5.006000|5.003007|p +WARN_DEBUGGING|5.006000|5.003007|p +WARN_DEPRECATED|5.006000|5.003007|p +WARN_DIGIT|5.006000|5.003007|p warner|5.006000|5.004000|pv -warn|||v -watch||| -whichsig||| -write_no_mem||| -write_to_stderr||| -xmldump_all||| -xmldump_attr||| -xmldump_eval||| -xmldump_form||| -xmldump_indent|||v -xmldump_packsubs||| -xmldump_sub||| -xmldump_vindent||| -yyerror||| -yylex||| -yyparse||| -yywarn||| +warner_nocontext|5.006000||vVn +WARN_EXEC|5.006000|5.003007|p +WARN_EXITING|5.006000|5.003007|p +WARN_EXPERIMENTAL|5.017004|5.017004| +WARN_EXPERIMENTAL__ALPHA_ASSERTIONS|5.027009|5.027009| +WARN_EXPERIMENTAL__BITWISE|5.021009|5.021009| +WARN_EXPERIMENTAL__CONST_ATTR|5.021008|5.021008| +WARN_EXPERIMENTAL__DECLARED_REFS|5.025003|5.025003| +WARN_EXPERIMENTAL__ISA|5.031007|5.031007| +WARN_EXPERIMENTAL__LEXICAL_SUBS|5.017005|5.017005| +WARN_EXPERIMENTAL__POSTDEREF|5.019005|5.019005| +WARN_EXPERIMENTAL__PRIVATE_USE|5.029009|5.029009| +WARN_EXPERIMENTAL__REFALIASING|5.021005|5.021005| +WARN_EXPERIMENTAL__REGEX_SETS|5.017008|5.017008| +WARN_EXPERIMENTAL__RE_STRICT|5.021008|5.021008| +WARN_EXPERIMENTAL__SCRIPT_RUN|5.027008|5.027008| +WARN_EXPERIMENTAL__SIGNATURES|5.019009|5.019009| +WARN_EXPERIMENTAL__SMARTMATCH|5.017011|5.017011| +WARN_EXPERIMENTAL__TRY|5.033007|5.033007| +WARN_EXPERIMENTAL__UNIPROP_WILDCARDS|5.029009|5.029009| +WARN_EXPERIMENTAL__VLB|5.029009|5.029009| +WARN_EXPERIMENTAL__WIN32_PERLIO|5.021001|5.021001| +WARN_GLOB|5.006000|5.003007|p +WARN_ILLEGALPROTO|5.011004|5.011004| +WARN_IMPRECISION|5.011000|5.011000| +WARN_INPLACE|5.006000|5.003007|p +WARN_INTERNAL|5.006000|5.003007|p +WARN_IO|5.006000|5.003007|p +WARN_LAYER|5.008000|5.003007|p +WARN_LOCALE|5.021006|5.021006| +WARN_MALLOC|5.006000|5.003007|p +WARN_MISC|5.006000|5.003007|p +WARN_MISSING|5.021002|5.021002| +WARN_NEWLINE|5.006000|5.003007|p +warn_nocontext|5.006000||pvVn +WARN_NONCHAR|5.013010|5.013010| +WARN_NONEstring|5.006000||Viu +WARN_NON_UNICODE|5.013010|5.013010| +WARN_NUMERIC|5.006000|5.003007|p +WARN_ONCE|5.006000|5.003007|p +warn_on_first_deprecated_use|5.025009||Viu +WARN_OVERFLOW|5.006000|5.003007|p +WARN_PACK|5.006000|5.003007|p +WARN_PARENTHESIS|5.006000|5.003007|p +WARN_PIPE|5.006000|5.003007|p +WARN_PORTABLE|5.006000|5.003007|p +WARN_PRECEDENCE|5.006000|5.003007|p +WARN_PRINTF|5.006000|5.003007|p +_warn_problematic_locale|5.021008||cVniu +WARN_PROTOTYPE|5.006000|5.003007|p +WARN_QW|5.006000|5.003007|p +WARN_RECURSION|5.006000|5.003007|p +WARN_REDEFINE|5.006000|5.003007|p +WARN_REDUNDANT|5.021002|5.021002| +WARN_REGEXP|5.006000|5.003007|p +WARN_RESERVED|5.006000|5.003007|p +WARN_SEMICOLON|5.006000|5.003007|p +WARN_SEVERE|5.006000|5.003007|p +WARN_SHADOW|5.027007|5.027007| +WARNshift|5.011001||Viu +WARN_SIGNAL|5.006000|5.003007|p +WARNsize|5.006000||Viu +WARN_SUBSTR|5.006000|5.003007|p +WARN_SURROGATE|5.013010|5.013010| +warn_sv|5.013001|5.003007|p +WARN_SYNTAX|5.006000|5.003007|p +WARN_SYSCALLS|5.019004|5.019004| +WARN_TAINT|5.006000|5.003007|p +WARN_THREADS|5.008000|5.003007|p +WARN_UNINITIALIZED|5.006000|5.003007|p +WARN_UNOPENED|5.006000|5.003007|p +WARN_UNPACK|5.006000|5.003007|p +WARN_UNTIE|5.006000|5.003007|p +WARN_UTF8|5.006000|5.003007|p +WARN_VOID|5.006000|5.003007|p +was_lvalue_sub|||ciu +watch|5.003007||Viu +WB_BREAKABLE|5.023008||Viu +WB_DQ_then_HL|5.023008||Viu +WB_Ex_or_FO_or_ZWJ_then_foo|5.025003||Viu +WB_HL_then_DQ|5.023008||Viu +WB_hs_then_hs|5.023008||Viu +WB_LE_or_HL_then_MB_or_ML_or_SQ|5.023008||Viu +WB_MB_or_ML_or_SQ_then_LE_or_HL|5.023008||Viu +WB_MB_or_MN_or_SQ_then_NU|5.023008||Viu +WB_NOBREAK|5.023008||Viu +WB_NU_then_MB_or_MN_or_SQ|5.023008||Viu +WB_RI_then_RI|5.025003||Viu +WCTOMB_LOCK|5.033005||Viu +WCTOMB_UNLOCK|5.033005||Viu +WEXITSTATUS|5.008001||Viu +what_MULTI_CHAR_FOLD_latin1_safe|5.033005||Viu +what_MULTI_CHAR_FOLD_utf8_safe|5.033005||Viu +what_MULTI_CHAR_FOLD_utf8_safe_part0|5.033005||Viu +what_MULTI_CHAR_FOLD_utf8_safe_part1|5.033005||Viu +what_MULTI_CHAR_FOLD_utf8_safe_part2|5.033005||Viu +what_MULTI_CHAR_FOLD_utf8_safe_part3|5.033005||Viu +what_MULTI_CHAR_FOLD_utf8_safe_part4|5.033005||Viu +what_MULTI_CHAR_FOLD_utf8_safe_part5|5.033005||Viu +what_MULTI_CHAR_FOLD_utf8_safe_part6|5.033005||Viu +what_MULTI_CHAR_FOLD_utf8_safe_part7|5.033005||Viu +whichsig|5.003007|5.003007| +whichsig_pv|5.015004|5.015004| +whichsig_pvn|5.015004|5.015004| +whichsig_sv|5.015004|5.015004| +WHILEM|5.003007||Viu +WHILEM_A_max|5.009005||Viu +WHILEM_A_max_fail|5.009005||Viu +WHILEM_A_max_fail_t8_p8|5.033003||Viu +WHILEM_A_max_fail_t8_pb|5.033003||Viu +WHILEM_A_max_fail_tb_p8|5.033003||Viu +WHILEM_A_max_fail_tb_pb|5.033003||Viu +WHILEM_A_max_t8_p8|5.033003||Viu +WHILEM_A_max_t8_pb|5.033003||Viu +WHILEM_A_max_tb_p8|5.033003||Viu +WHILEM_A_max_tb_pb|5.033003||Viu +WHILEM_A_min|5.009005||Viu +WHILEM_A_min_fail|5.009005||Viu +WHILEM_A_min_fail_t8_p8|5.033003||Viu +WHILEM_A_min_fail_t8_pb|5.033003||Viu +WHILEM_A_min_fail_tb_p8|5.033003||Viu +WHILEM_A_min_fail_tb_pb|5.033003||Viu +WHILEM_A_min_t8_p8|5.033003||Viu +WHILEM_A_min_t8_pb|5.033003||Viu +WHILEM_A_min_tb_p8|5.033003||Viu +WHILEM_A_min_tb_pb|5.033003||Viu +WHILEM_A_pre|5.009005||Viu +WHILEM_A_pre_fail|5.009005||Viu +WHILEM_A_pre_fail_t8_p8|5.033003||Viu +WHILEM_A_pre_fail_t8_pb|5.033003||Viu +WHILEM_A_pre_fail_tb_p8|5.033003||Viu +WHILEM_A_pre_fail_tb_pb|5.033003||Viu +WHILEM_A_pre_t8_p8|5.033003||Viu +WHILEM_A_pre_t8_pb|5.033003||Viu +WHILEM_A_pre_tb_p8|5.033003||Viu +WHILEM_A_pre_tb_pb|5.033003||Viu +WHILEM_B_max|5.009005||Viu +WHILEM_B_max_fail|5.009005||Viu +WHILEM_B_max_fail_t8_p8|5.033003||Viu +WHILEM_B_max_fail_t8_pb|5.033003||Viu +WHILEM_B_max_fail_tb_p8|5.033003||Viu +WHILEM_B_max_fail_tb_pb|5.033003||Viu +WHILEM_B_max_t8_p8|5.033003||Viu +WHILEM_B_max_t8_pb|5.033003||Viu +WHILEM_B_max_tb_p8|5.033003||Viu +WHILEM_B_max_tb_pb|5.033003||Viu +WHILEM_B_min|5.009005||Viu +WHILEM_B_min_fail|5.009005||Viu +WHILEM_B_min_fail_t8_p8|5.033003||Viu +WHILEM_B_min_fail_t8_pb|5.033003||Viu +WHILEM_B_min_fail_tb_p8|5.033003||Viu +WHILEM_B_min_fail_tb_pb|5.033003||Viu +WHILEM_B_min_t8_p8|5.033003||Viu +WHILEM_B_min_t8_pb|5.033003||Viu +WHILEM_B_min_tb_p8|5.033003||Viu +WHILEM_B_min_tb_pb|5.033003||Viu +WHILEM_t8_p8|5.033003||Viu +WHILEM_t8_pb|5.033003||Viu +WHILEM_tb_p8|5.033003||Viu +WHILEM_tb_pb|5.033003||Viu +WIDEST_UTYPE|5.015004|5.003007|poVnu +WIFEXITED|5.008001||Viu +WIFSIGNALED|5.008001||Viu +WIFSTOPPED|5.008001||Viu +win32_croak_not_implemented|5.017006||Vniu +WIN32SCK_IS_STDSCK|5.007001||Viu +win32_setlocale|5.027006||Viu +withinCOUNT|5.031004||Viu +withinCOUNT_KNOWN_VALID|5.033005||Viu +WITH_LC_NUMERIC_SET_TO_NEEDED|5.031003|5.031003| +WITH_LC_NUMERIC_SET_TO_NEEDED_IN|5.031003|5.031003| +with_queued_errors|5.013001||Viu +with_tp_UTF8ness|5.033003||Viu +WNOHANG|5.008001||Viu +wrap_keyword_plugin|5.027006|5.027006|x +wrap_op_checker|5.015008|5.015008| +write|5.005000||Viu +write_to_stderr|5.008001||Viu +WSTOPSIG|5.008001||Viu +WTERMSIG|5.008001||Viu +WUNTRACED|5.008001||Viu +XCPT_CATCH|5.009002|5.003007|p +XCPT_RETHROW|5.009002|5.003007|p +XCPT_TRY_END|5.009002|5.003007|p +XCPT_TRY_START|5.009002|5.003007|p +XDIGIT_VALUE|5.019008||Viu +XHvTOTALKEYS|5.007003||Viu +xio_any|5.006001||Viu +xio_dirp|5.006001||Viu +xiv_iv|5.009003||Viu +xlv_targoff|5.019004||Viu +XopDISABLE|5.013007|5.013007|V +XOPd_xop_class|5.013007||Viu +XOPd_xop_desc|5.013007||Viu +XOPd_xop_name|5.013007||Viu +XOPd_xop_peep|5.013007||Viu +XopENABLE|5.013007|5.013007|V +XopENTRY|5.013007|5.013007|V +XopENTRYCUSTOM|5.019006|5.013007|V +XopENTRY_set|5.013007|5.013007|V +XopFLAGS|5.013007|5.013007| +XOPf_xop_class|5.013007||Viu +XOPf_xop_desc|5.013007||Viu +XOPf_xop_name|5.013007||Viu +XOPf_xop_peep|5.013007||Viu +XORSHIFT128_set|5.027001||Viu +XORSHIFT96_set|5.027001||Viu +XPUSHi|5.003007|5.003007| +XPUSHmortal|5.009002|5.003007|p +XPUSHn|5.006000|5.003007| +XPUSHp|5.003007|5.003007| +XPUSHs|5.003007|5.003007| +XPUSHTARG|5.003007||Viu +XPUSHu|5.004000|5.003007|p +XPUSHundef|5.006000||Viu +xpv_len|5.017006||Viu +XS|5.003007|5.003007|Vu +XSANY|5.003007||Viu +XS_APIVERSION_BOOTCHECK|5.013004|5.013004| +XS_APIVERSION_POPMARK_BOOTCHECK|5.021006||Viu +XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK|5.021006||Viu +xs_boot_epilog|5.021006||cViu +XS_BOTHVERSION_BOOTCHECK|5.021006||Viu +XS_BOTHVERSION_POPMARK_BOOTCHECK|5.021006||Viu +XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK|5.021006||Viu +XS_DYNAMIC_FILENAME|5.009004||Viu +XS_EXTERNAL|5.015002|5.015002|Vu +xs_handshake|||vcniu +XSINTERFACE_CVT|5.005000||Viu +XSINTERFACE_CVT_ANON|5.010000||Viu +XSINTERFACE_FUNC|5.005000||Viu +XSINTERFACE_FUNC_SET|5.005000||Viu +XS_INTERNAL|5.015002|5.015002|Vu +XSprePUSH|5.006000|5.003007|poVnu +XSPROTO|5.010000|5.003007|pVu +XSRETURN|5.003007|5.003007|p +XSRETURN_EMPTY|5.003007|5.003007| +XSRETURN_IV|5.003007|5.003007| +XSRETURN_NO|5.003007|5.003007| +XSRETURN_NV|5.006000|5.003007| +XSRETURN_PV|5.003007|5.003007| +XSRETURN_PVN|5.006000||Viu +XSRETURN_UNDEF|5.003007|5.003007| +XSRETURN_UV|5.008001|5.003007|p +XSRETURN_YES|5.003007|5.003007| +XS_SETXSUBFN_POPMARK|5.021006||Viu +XST_mIV|5.003007|5.003007| +XST_mNO|5.003007|5.003007| +XST_mNV|5.006000|5.003007| +XST_mPV|5.003007|5.003007| +XST_mPVN|5.006000||Viu +XST_mUNDEF|5.003007|5.003007| +XST_mUV|5.008001|5.003007|p +XST_mYES|5.003007|5.003007| +XS_VERSION|5.003007|5.003007| +XS_VERSION_BOOTCHECK|5.003007|5.003007| +xs_version_bootcheck|||iu +XTENDED_PAT_MOD|5.009005||Viu +xuv_uv|5.009003||Viu +YESEXPR|5.027010||Viu +YESSTR|5.027010||Viu +YIELD|5.005000||Viu +YYDEBUG|5.025006||Viu +YYEMPTY|5.009005||Viu +yyerror|5.003007||Viu +yyerror_pv|5.016000||Viu +yyerror_pvn|5.016000||Viu +yylex|5.003007||cViu +yyparse|5.003007||Viu +yyquit|5.025010||Viu +YYSTYPE_IS_DECLARED|5.009001||Viu +YYSTYPE_IS_TRIVIAL|5.009001||Viu +YYTOKENTYPE|5.009001||Viu +yyunlex|5.013005||Viu +yywarn|5.003007||Viu +ZAPHOD32_FINALIZE|5.027001||Viu +ZAPHOD32_MIX|5.027001||Viu +ZAPHOD32_SCRAMBLE32|5.027001||Viu +ZAPHOD32_STATIC_INLINE|5.027001||Viu +ZAPHOD32_WARN2|5.027001||Viu +ZAPHOD32_WARN3|5.027001||Viu +ZAPHOD32_WARN4|5.027001||Viu +ZAPHOD32_WARN5|5.027001||Viu +ZAPHOD32_WARN6|5.027001||Viu +Zero|5.003007|5.003007| +ZeroD|5.009002|5.003007|p ); if (exists $opt{'list-unsupported'}) { my $f; - for $f (sort { lc $a cmp lc $b } keys %API) { + for $f (sort dictionary_order keys %API) { + next if $API{$f}{core_only}; + next if $API{$f}{beyond_depr}; + next if $API{$f}{inaccessible}; + next if $API{$f}{experimental}; next unless $API{$f}{todo}; - print "$f ", '.'x(40-length($f)), " ", format_version($API{$f}{todo}), "\n"; + next if int_parse_version($API{$f}{todo}) <= $int_min_perl; + my $repeat = 40 - length($f); + $repeat = 0 if $repeat < 0; + print "$f ", '.'x $repeat, " ", format_version($API{$f}{todo}), "\n"; } exit 0; } -# Scan for possible replacement candidates +# Scan for hints, possible replacement candidates, etc. my(%replace, %need, %hints, %warnings, %depends); my $replace = 0; @@ -2446,6 +10296,7 @@ sub find_api { + BEGIN { 'warnings'->unimport('uninitialized') if "$]" > '5.006' } my $code = shift; $code =~ s{ / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*) @@ -2456,24 +10307,65 @@ while () { if ($hint) { + + # Here, we are in the middle of accumulating a hint or warning. + my $end_of_hint = 0; + + # A line containing a comment end marker closes the hint. Remove that + # marker for processing below. + if (s/\s*$rcce(.*?)\s*$//) { + die "Nothing can follow the end of comment in '$_'\n" if length $1 > 0; + $end_of_hint = 1; + } + + # Set $h to the hash of which type. my $h = $hint->[0] eq 'Hint' ? \%hints : \%warnings; - if (m{^\s*\*\s(.*?)\s*$}) { - for (@{$hint->[1]}) { - $h->{$_} ||= ''; # suppress warning with older perls - $h->{$_} .= "$1\n"; - } + + # Ignore any leading and trailing white space, and an optional star comment + # continuation marker, then place the meat of the line into $1 + m/^\s*(?:\*\s*)?(.*?)\s*$/; + + # Add the meat of this line to the hash value of each API element it + # applies to + for (@{$hint->[1]}) { + $h->{$_} ||= ''; # avoid the warning older perls generate + $h->{$_} .= "$1\n"; } - else { undef $hint } + + # If the line had a comment close, we are through with this hint + undef $hint if $end_of_hint; + + next; + } + + # Set up $hint if this is the beginning of a Hint: or Warning: + # These are from a multi-line C comment in the file, with the first line + # looking like (a space has been inserted because this file can't have C + # comment markers in it): + # / * Warning: PL_expect, PL_copline, PL_rsfp + # + # $hint becomes + # [ + # 'Warning', + # [ + # 'PL_expect', + # 'PL_copline', + # 'PL_rsfp', + # ], + # ] + if (m{^\s*$rccs\s+(Hint|Warning):\s+(\w+(?:,?\s+\w+)*)\s*$}) { + $hint = [$1, [split /,?\s+/, $2]]; + next; } - $hint = [$1, [split /,?\s+/, $2]] - if m{^\s*$rccs\s+(Hint|Warning):\s+(\w+(?:,?\s+\w+)*)\s*$}; + if ($define) { # If in the middle of a definition... - if ($define) { + # append a continuation line ending with backslash. if ($define->[1] =~ /\\$/) { $define->[1] .= $_; } - else { + else { # Otherwise this line ends the definition, make foo depend on bar + # (and what bar depends on) if its not one of ppp's own constructs if (exists $API{$define->[0]} && $define->[1] !~ /^DPPP_\(/) { my @n = find_api($define->[1]); push @{$depends{$define->[0]}}, @n if @n @@ -2482,6 +10374,8 @@ } } + # For '#define foo bar' or '#define foo(a,b,c) bar', $define becomes a + # reference to [ foo, bar ] $define = [$1, $2] if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(.*)}; if ($function) { @@ -2499,11 +10393,25 @@ $function = [$1, ''] if m{^DPPP_\(my_(\w+)\)}; + # Set $replace to the number given for lines that look like + # / * Replace: \d+ * / + # Thus setting it to 1 starts a region where replacements are automatically + # done, and setting it to 0 ends that region. $replace = $1 if m{^\s*$rccs\s+Replace:\s+(\d+)\s+$rcce\s*$}; + + # Add bar => foo to %replace for lines like '#define foo bar in a region + # where $replace is non-zero $replace{$2} = $1 if $replace and m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+)}; + + # Add bar => foo to %replace for lines like '#define foo bar / * Replace * / $replace{$2} = $1 if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce}; - $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$}; + # Add foo => bar to %replace for lines like / * Replace foo with bar * / + $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+.*?)\s+$rcce\s*$}; + + # For lines like / * foo, bar depends on baz, bat * / + # create a list of the elements on the rhs, and make that list apply to each + # element in the lhs, which becomes a key in \%depends. if (m{^\s*$rccs\s+(\w+(\s*,\s*\w+)*)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) { my @deps = map { s/\s+//g; $_ } split /,/, $3; my $d; @@ -2516,43 +10424,168 @@ } for (values %depends) { - my %s; - $_ = [sort grep !$s{$_}++, @$_]; + my %seen; + $_ = [sort dictionary_order grep !$seen{$_}++, @$_]; } if (exists $opt{'api-info'}) { my $f; my $count = 0; my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$"; - for $f (sort { lc $a cmp lc $b } keys %API) { + + # Sort the names, and split into two classes; one for things that are part of + # the API; a second for things that aren't. + my @ok_to_use; + my @shouldnt_use; + for $f (sort dictionary_order keys %API) { next unless $f =~ /$match/; - print "\n=== $f ===\n\n"; + my $base = int_parse_version($API{$f}{base}) if $API{$f}{base}; + if ($base && ! $API{$f}{inaccessible} && ! $API{$f}{core_only}) { + push @ok_to_use, $f; + } + else { + push @shouldnt_use, $f; + } + } + + # We normally suppress non-API items. But if the search matched no API + # items, output the non-ones. This allows someone to get the info for an + # item if they ask for it specifically enough, but doesn't normally clutter + # the output with irrelevant results. + @ok_to_use = @shouldnt_use unless @ok_to_use; + + for $f (@ok_to_use) { + print "\n=== $f ===\n"; my $info = 0; - if ($API{$f}{base} || $API{$f}{todo}) { - my $base = format_version($API{$f}{base} || $API{$f}{todo}); - print "Supported at least starting from perl-$base.\n"; - $info++; + my $base; + $base = int_parse_version($API{$f}{base}) if $API{$f}{base}; + my $todo; + $todo = int_parse_version($API{$f}{todo}) if $API{$f}{todo}; + + # Output information + if ($base) { + my $with_or= ""; + if ( $base <= $int_min_perl + || ( (! $API{$f}{provided} && ! $todo) + || ($todo && $todo >= $base))) + { + $with_or= " with or"; + } + + my $Supported = ($API{$f}{undocumented}) ? 'Available' : 'Supported'; + print "\n$Supported at least since perl-", + format_version($base), ",$with_or without $ppport."; + if ($API{$f}{unverified}) { + print "\nThis information is based on inspection of the source code", + " and has not been\n", + "verified by successful compilation."; + } + print "\n"; + $info++; + } + if ($API{$f}{provided} || $todo) { + print "\nThis is only supported by $ppport, and NOT by perl versions going forward.\n" unless $base; + if ($todo) { + if (! $base || $todo < $base) { + my $additionally = ""; + $additionally .= " additionally" if $base; + print "$ppport$additionally provides support at least back to perl-", + format_version($todo), + ".\n"; + } + } + elsif (! $base || $base > $int_min_perl) { + if (exists $depends{$f}) { + my $max = 0; + for (@{$depends{$f}}) { + $max = int_parse_version($API{$_}{todo}) if $API{$_}{todo} && $API{$_}{todo} > $max; + # XXX What to assume unspecified values are? This effectively makes them MIN_PERL + } + $todo = $max if $max; + } + print "\n$ppport provides support for this, but ironically, does not", + " currently know,\n", + "for this report, the minimum version it supports for this"; + if ($API{$f}{undocumented}) { + print " and many things\n", + "it provides that are implemented as macros and aren't", + " documented. You can\n", + "help by submitting a documentation patch"; + } + print ".\n"; + if ($todo) { + if ($todo <= $int_min_perl) { + print "It may very well be supported all the way back to ", + format_version(5.003_07), ".\n"; + } + else { + print "But given the things $f depends on, it's a good", + " guess that it isn't\n", + "supported prior to ", format_version($todo), ".\n"; + } + } + } } if ($API{$f}{provided}) { - my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "5.003"; - print "Support by $ppport provided back to perl-$todo.\n"; - print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f}; - print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f}; + print "Support needs to be explicitly requested by #define NEED_$f\n", + "(or #define NEED_${f}_GLOBAL).\n" if exists $need{$f}; + $info++; + } + + if ($base || ! $API{$f}{ppport_fnc}) { + my $email = "Send email to perl5-porters\@perl.org if you need to have this functionality.\n"; + if ($API{$f}{inaccessible}) { + print "\nThis is not part of the public API, and may not even be accessible to XS code.\n"; + $info++; + } + elsif ($API{$f}{core_only}) { + print "\nThis is not part of the public API, and should not be used by XS code.\n"; + $info++; + } + elsif ($API{$f}{deprecated}) { + print "\nThis is deprecated and should not be used. Convert existing uses.\n"; + $info++; + } + elsif ($API{$f}{experimental}) { + print "\nThe API for this is unstable and should not be used by XS code.\n", $email; + $info++; + } + elsif ($API{$f}{undocumented}) { + print "\nSince this is undocumented, the API should be considered unstable.\n"; + if ($API{$f}{provided}) { + print "Consider bringing this up on the list: perl5-porters\@perl.org.\n"; + } + else { + print "It may be that this is not intended for XS use, or it may just be\n", + "that no one has gotten around to documenting it.\n", $email; + } + $info++; + } + unless ($info) { + print "No portability information available. Check your spelling; or", + " this could be\na bug in Devel::PPPort. To report an issue:\n", + "https://github.com/Dual-Life/Devel-PPPort/issues/new\n"; + } + } + + print "\nDepends on: ", join(', ', @{$depends{$f}}), ".\n" + if exists $depends{$f}; + if (exists $hints{$f} || exists $warnings{$f}) { print "\n$hints{$f}" if exists $hints{$f}; print "\nWARNING:\n$warnings{$f}" if exists $warnings{$f}; $info++; } - print "No portability information available.\n" unless $info; $count++; } - $count or print "Found no API matching '$opt{'api-info'}'."; + + $count or print "\nFound no API matching '$opt{'api-info'}'."; print "\n"; exit 0; } if (exists $opt{'list-provided'}) { my $f; - for $f (sort { lc $a cmp lc $b } keys %API) { + for $f (sort dictionary_order keys %API) { next unless $API{$f}{provided}; my @flags; push @flags, 'explicit' if exists $need{$f}; @@ -2658,7 +10691,9 @@ $file{uses_Perl}{$func}++ if $c =~ /\bPerl_$func\b/; if (exists $API{$func}{provided}) { $file{uses_provided}{$func}++; - if (!exists $API{$func}{base} || $API{$func}{base} > $opt{'compat-version'}) { + if ( ! exists $API{$func}{base} + || int_parse_version($API{$func}{base}) > $opt{'compat-version'}) + { $file{uses}{$func}++; my @deps = rec_depend($func); if (@deps) { @@ -2672,7 +10707,9 @@ } } } - if (exists $API{$func}{todo} && $API{$func}{todo} > $opt{'compat-version'}) { + if ( exists $API{$func}{todo} + && int_parse_version($API{$func}{todo}) > $opt{'compat-version'}) + { if ($c =~ /\b$func\b/) { $file{uses_todo}{$func}++; } @@ -2723,9 +10760,9 @@ my $c = $file{code}; my $warnings = 0; - for $func (sort keys %{$file{uses_Perl}}) { + for $func (sort dictionary_order keys %{$file{uses_Perl}}) { if ($API{$func}{varargs}) { - unless ($API{$func}{nothxarg}) { + unless ($API{$func}{noTHXarg}) { my $changes = ($c =~ s{\b(Perl_$func\s*\(\s*)(?!aTHX_?)(\)|[^\s)]*\))} { $1 . ($2 eq ')' ? 'aTHX' : 'aTHX_ ') . $2 }ge); if ($changes) { @@ -2741,12 +10778,12 @@ } } - for $func (sort keys %{$file{uses_replace}}) { + for $func (sort dictionary_order keys %{$file{uses_replace}}) { warning("Uses $func instead of $replace{$func}"); $file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g); } - for $func (sort keys %{$file{uses_provided}}) { + for $func (sort dictionary_order keys %{$file{uses_provided}}) { if ($file{uses}{$func}) { if (exists $file{uses_deps}{$func}) { diag("Uses $func, which depends on ", join(', ', @{$file{uses_deps}{$func}})); @@ -2755,18 +10792,19 @@ diag("Uses $func"); } } - $warnings += hint($func); + $warnings += (hint($func) || 0); } unless ($opt{quiet}) { - for $func (sort keys %{$file{uses_todo}}) { + for $func (sort dictionary_order keys %{$file{uses_todo}}) { + next if int_parse_version($API{$func}{todo}) <= $int_min_perl; print "*** WARNING: Uses $func, which may not be portable below perl ", format_version($API{$func}{todo}), ", even with '$ppport'\n"; $warnings++; } } - for $func (sort keys %{$file{needed_static}}) { + for $func (sort dictionary_order keys %{$file{needed_static}}) { my $message = ''; if (not exists $file{uses}{$func}) { $message = "No need to define NEED_$func if $func is never used"; @@ -2780,7 +10818,7 @@ } } - for $func (sort keys %{$file{needed_global}}) { + for $func (sort dictionary_order keys %{$file{needed_global}}) { my $message = ''; if (not exists $global{uses}{$func}) { $message = "No need to define NEED_${func}_GLOBAL if $func is never used"; @@ -2804,7 +10842,7 @@ if ($file{needs_inc_ppport}) { my $pp = ''; - for $func (sort keys %{$file{needs}}) { + for $func (sort dictionary_order keys %{$file{needs}}) { my $type = $file{needs}{$func}; next if $type eq 'extern'; my $suffix = $type eq 'global' ? '_GLOBAL' : ''; @@ -3000,59 +11038,6 @@ grep !$s{$_}++, map { ($_, rec_depend($_, $seen)) } @{$depends{$func}}; } -sub parse_version -{ - my $ver = shift; - - if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) { - return ($1, $2, $3); - } - elsif ($ver !~ /^\d+\.[\d_]+$/) { - die "cannot parse version '$ver'\n"; - } - - $ver =~ s/_//g; - $ver =~ s/$/000000/; - - my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/; - - $v = int $v; - $s = int $s; - - if ($r < 5 || ($r == 5 && $v < 6)) { - if ($s % 10) { - die "cannot parse version '$ver'\n"; - } - } - - return ($r, $v, $s); -} - -sub format_version -{ - my $ver = shift; - - $ver =~ s/$/000000/; - my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/; - - $v = int $v; - $s = int $s; - - if ($r < 5 || ($r == 5 && $v < 6)) { - if ($s % 10) { - die "invalid version '$ver'\n"; - } - $s /= 10; - - $ver = sprintf "%d.%03d", $r, $v; - $s > 0 and $ver .= sprintf "_%02d", $s; - - return $ver; - } - - return sprintf "%d.%d.%d", $r, $v, $s; -} - sub info { $opt{quiet} and return; @@ -3094,7 +11079,7 @@ $hint =~ s/^/ /mg; print " --- hint for $func ---\n", $hint; } - $rv; + $rv || 0; } sub usage @@ -3174,33 +11159,146 @@ #define DPPP_CAT2(x,y) CAT2(x,y) #define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name) -#ifndef PERL_REVISION -# if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION)) +#define D_PPP_RELEASE_DATE 1625616000 /* 2021-07-07 */ + +#if ! defined(PERL_REVISION) && ! defined(PERL_VERSION_MAJOR) +# if ! defined(__PATCHLEVEL_H_INCLUDED__) \ + && ! ( defined(PATCHLEVEL) && defined(SUBVERSION)) # define PERL_PATCHLEVEL_H_IMPLICIT # include # endif -# if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL))) +# if ! defined(PERL_VERSION) \ + && ! defined(PERL_VERSION_MAJOR) \ + && ( ! defined(SUBVERSION) || ! defined(PATCHLEVEL) ) # include # endif -# ifndef PERL_REVISION -# define PERL_REVISION (5) - /* Replace: 1 */ -# define PERL_VERSION PATCHLEVEL -# define PERL_SUBVERSION SUBVERSION - /* Replace PERL_PATCHLEVEL with PERL_VERSION */ - /* Replace: 0 */ -# endif #endif -#define _dpppDEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10)) -#define PERL_BCDVERSION ((_dpppDEC2BCD(PERL_REVISION)<<24)|(_dpppDEC2BCD(PERL_VERSION)<<12)|_dpppDEC2BCD(PERL_SUBVERSION)) +#ifdef PERL_VERSION_MAJOR +# define D_PPP_MAJOR PERL_VERSION_MAJOR +#elif defined(PERL_REVISION) +# define D_PPP_MAJOR PERL_REVISION +#else +# define D_PPP_MAJOR 5 +#endif + +#ifdef PERL_VERSION_MINOR +# define D_PPP_MINOR PERL_VERSION_MINOR +#elif defined(PERL_VERSION) +# define D_PPP_MINOR PERL_VERSION +#elif defined(PATCHLEVEL) +# define D_PPP_MINOR PATCHLEVEL +# define PERL_VERSION PATCHLEVEL /* back-compat */ +#else +# error Could not find a source for PERL_VERSION_MINOR +#endif + +#ifdef PERL_VERSION_PATCH +# define D_PPP_PATCH PERL_VERSION_PATCH +#elif defined(PERL_SUBVERSION) +# define D_PPP_PATCH PERL_SUBVERSION +#elif defined(SUBVERSION) +# define D_PPP_PATCH SUBVERSION +# define PERL_SUBVERSION SUBVERSION /* back-compat */ +#else +# error Could not find a source for PERL_VERSION_PATCH +#endif -/* It is very unlikely that anyone will try to use this with Perl 6 - (or greater), but who knows. +#if D_PPP_MAJOR < 5 || D_PPP_MAJOR == 6 +# error Devel::PPPort works only on Perl 5, Perl 7, ... +#elif D_PPP_MAJOR != 5 + /* Perl 7 and above: the old forms are deprecated, set up so that they + * assume Perl 5, and will make this look like 5.201.201. + * + * 201 is used so will be well above anything that would come from a 5 + * series if we unexpectedly have to continue it, but still gives plenty of + * room, up to 255, of numbers that will fit into a byte in case there is + * something else unforeseen */ +# undef PERL_REVISION +# undef PERL_VERSION +# undef PERL_SUBVERSION +# define D_PPP_REVISION 5 +# define D_PPP_VERSION 201 +# define D_PPP_SUBVERSION 201 +# if (defined(__clang__) /* _Pragma here doesn't work with gcc */ \ + && ( (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ + || defined(_STDC_C99) \ + || defined(__c99))) +# define D_PPP_STRINGIFY(x) #x +# define D_PPP_deprecate(xyz) _Pragma(D_PPP_STRINGIFY(GCC warning(D_PPP_STRINGIFY(xyz) " is deprecated"))) +# define PERL_REVISION (D_PPP_REVISION D_PPP_deprecate(PERL_REVISION)) +# define PERL_VERSION (D_PPP_REVISION D_PPP_deprecate(PERL_VERSION)) +# define PERL_SUBVERSION (D_PPP_SUBVERSION D_PPP_deprecate(PERL_SUBVERSION)) +# else +# define PERL_REVISION D_PPP_REVISION +# define PERL_VERSION D_PPP_REVISION +# define PERL_SUBVERSION D_PPP_SUBVERSION +# endif +#endif + +/* Warning: PERL_PATCHLEVEL PATCHLEVEL SUBVERSION PERL_REVISION PERL_VERSION + * PERL_SUBVERSION PERL_BCDVERSION + * + * You should be using PERL_VERSION_xy(maj,min,ptch) instead of this, where xy + * is one of EQ, NE, LE, GT, LT, GE */ -#if PERL_REVISION != 5 -# error ppport.h only works with Perl version 5 -#endif /* PERL_REVISION != 5 */ + +/* Replace PERL_PATCHLEVEL with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */ +/* Replace PATCHLEVEL with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */ +/* Replace SUBVERSION with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */ +/* Replace PERL_REVISION with PERL_VERSION_xy(a,b,c) (where xy is EQ,LT,GT...) */ +/* Replace PERL_VERSION with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */ +/* Replace PERL_SUBVERSION with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */ +/* Replace PERL_BCDVERSION with PERL_VERSION_xy(5,a,b) (where xy is EQ,LT,GT...) */ + +#define D_PPP_DEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10)) +#define D_PPP_JNP_TO_BCD(j,n,p) ((D_PPP_DEC2BCD(j)<<24)|(D_PPP_DEC2BCD(n)<<12)|D_PPP_DEC2BCD(p)) +#define PERL_BCDVERSION D_PPP_JNP_TO_BCD(D_PPP_MAJOR, \ + D_PPP_MINOR, \ + D_PPP_PATCH) + +/* These differ from the versions outside D:P in using PERL_BCDVERSION instead + * of PERL_DECIMAL_VERSION. The formats printing in this module assume BCD, so + * always use it */ +#undef PERL_VERSION_EQ +#undef PERL_VERSION_NE +#undef PERL_VERSION_LT +#undef PERL_VERSION_GE +#undef PERL_VERSION_LE +#undef PERL_VERSION_GT + +/* N.B. These don't work if the patch number is 42 or 92, as those are what '*' + * is in ASCII and EBCDIC respectively */ +#ifndef PERL_VERSION_EQ +# define PERL_VERSION_EQ(j,n,p) \ + (((p) == '*') ? ( (j) == D_PPP_VERSION_MAJOR \ + && (n) == D_PPP_VERSION_MINOR) \ + : (PERL_BCDVERSION == D_PPP_JNP_TO_BCD(j,n,p))) +#endif + +#ifndef PERL_VERSION_NE +# define PERL_VERSION_NE(j,n,p) (! PERL_VERSION_EQ(j,n,p)) +#endif +#ifndef PERL_VERSION_LT +# define PERL_VERSION_LT(j,n,p) /* p=='*' means _LT(j,n,0) */ \ + (PERL_BCDVERSION < D_PPP_JNP_TO_BCD( (j), \ + (n), \ + (((p) == '*') ? 0 : (p)))) +#endif + +#ifndef PERL_VERSION_GE +# define PERL_VERSION_GE(j,n,p) (! PERL_VERSION_LT(j,n,p)) +#endif +#ifndef PERL_VERSION_LE +# define PERL_VERSION_LE(j,n,p) /* p=='*' means _LT(j,n+1,0) */ \ + (PERL_BCDVERSION < D_PPP_JNP_TO_BCD( (j), \ + (((p) == '*') ? ((n)+1) : (n)), \ + (((p) == '*') ? 0 : (p)))) +#endif + +#ifndef PERL_VERSION_GT +# define PERL_VERSION_GT(j,n,p) (! PERL_VERSION_LE(j,n,p)) +#endif #ifndef dTHR # define dTHR dNOOP #endif @@ -3208,6 +11306,10 @@ # define dTHX dNOOP #endif +/* Hint: dTHX + + For pre-5.6.0 thread compatibility, instead use dTHXR, available only through + ppport.h */ #ifndef dTHXa # define dTHXa(x) dNOOP #endif @@ -3223,10 +11325,19 @@ # define aTHX #endif +/* Hint: aTHX + + For pre-5.6.0 thread compatibility, instead use aTHXR, available only through + ppport.h */ #ifndef aTHX_ # define aTHX_ #endif +/* Hint: aTHX_ + + For pre-5.6.0 thread compatibility, instead use aTHXR_, available only + through ppport.h */ + #if (PERL_BCDVERSION < 0x5006000) # ifdef USE_THREADS # define aTHXR thr @@ -3529,6 +11640,10 @@ # define IVSIZE 8 #endif +#ifndef LONGSIZE +# define LONGSIZE 8 +#endif + #ifndef PERL_QUAD_MIN # define PERL_QUAD_MIN IV_MIN #endif @@ -3550,6 +11665,10 @@ # define IVTYPE long #endif +#ifndef LONGSIZE +# define LONGSIZE 4 +#endif + #ifndef IV_MIN # define IV_MIN PERL_LONG_MIN #endif @@ -3582,1072 +11701,2786 @@ #ifndef UVSIZE # define UVSIZE IVSIZE #endif -#ifndef sv_setuv -# define sv_setuv(sv, uv) \ - STMT_START { \ - UV TeMpUv = uv; \ - if (TeMpUv <= IV_MAX) \ - sv_setiv(sv, TeMpUv); \ - else \ - sv_setnv(sv, (double)TeMpUv); \ - } STMT_END -#endif -#ifndef newSVuv -# define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv)) -#endif -#ifndef sv_2uv -# define sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv))) -#endif -#ifndef SvUVX -# define SvUVX(sv) ((UV)SvIVX(sv)) -#endif +#ifndef PERL_SIGNALS_UNSAFE_FLAG -#ifndef SvUVXx -# define SvUVXx(sv) SvUVX(sv) +#define PERL_SIGNALS_UNSAFE_FLAG 0x0001 + +#if (PERL_BCDVERSION < 0x5008000) +# define D_PPP_PERL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG +#else +# define D_PPP_PERL_SIGNALS_INIT 0 #endif -#ifndef SvUV -# define SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv)) +#if defined(NEED_PL_signals) +static U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; +#elif defined(NEED_PL_signals_GLOBAL) +U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; +#else +extern U32 DPPP_(my_PL_signals); #endif +#define PL_signals DPPP_(my_PL_signals) -#ifndef SvUVx -# define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv)) #endif -/* Hint: sv_uv - * Always use the SvUVx() macro instead of sv_uv(). +/* Hint: PL_ppaddr + * Calling an op via PL_ppaddr requires passing a context argument + * for threaded builds. Since the context argument is different for + * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will + * automatically be defined as the correct argument. */ -#ifndef sv_uv -# define sv_uv(sv) SvUVx(sv) + +#if (PERL_BCDVERSION <= 0x5005005) +/* Replace: 1 */ +# define PL_ppaddr ppaddr +# define PL_no_modify no_modify +/* Replace: 0 */ #endif -#if !defined(SvUOK) && defined(SvIOK_UV) -# define SvUOK(sv) SvIOK_UV(sv) +#if (PERL_BCDVERSION <= 0x5004005) +/* Replace: 1 */ +# define PL_DBsignal DBsignal +# define PL_DBsingle DBsingle +# define PL_DBsub DBsub +# define PL_DBtrace DBtrace +# define PL_Sv Sv +# define PL_Xpv Xpv +# define PL_bufend bufend +# define PL_bufptr bufptr +# define PL_compiling compiling +# define PL_copline copline +# define PL_curcop curcop +# define PL_curstash curstash +# define PL_debstash debstash +# define PL_defgv defgv +# define PL_diehook diehook +# define PL_dirty dirty +# define PL_dowarn dowarn +# define PL_errgv errgv +# define PL_error_count error_count +# define PL_expect expect +# define PL_hexdigit hexdigit +# define PL_hints hints +# define PL_in_my in_my +# define PL_laststatval laststatval +# define PL_lex_state lex_state +# define PL_lex_stuff lex_stuff +# define PL_linestr linestr +# define PL_na na +# define PL_perl_destruct_level perl_destruct_level +# define PL_perldb perldb +# define PL_rsfp_filters rsfp_filters +# define PL_rsfp rsfp +# define PL_stack_base stack_base +# define PL_stack_sp stack_sp +# define PL_statcache statcache +# define PL_stdingv stdingv +# define PL_sv_arenaroot sv_arenaroot +# define PL_sv_no sv_no +# define PL_sv_undef sv_undef +# define PL_sv_yes sv_yes +# define PL_tainted tainted +# define PL_tainting tainting +# define PL_tokenbuf tokenbuf +# define PL_mess_sv mess_sv +/* Replace: 0 */ +#endif + +/* Warning: PL_parser + * For perl versions earlier than 5.9.5, this is an always + * non-NULL dummy. Also, it cannot be dereferenced. Don't + * use it if you can avoid it, and unless you absolutely know + * what you're doing. + * If you always check that PL_parser is non-NULL, you can + * define DPPP_PL_parser_NO_DUMMY to avoid the creation of + * a dummy parser structure. + */ + +#if (PERL_BCDVERSION >= 0x5009005) +# ifdef DPPP_PL_parser_NO_DUMMY +# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ + (croak("panic: PL_parser == NULL in %s:%d", \ + __FILE__, __LINE__), (yy_parser *) NULL))->var) +# else +# ifdef DPPP_PL_parser_NO_DUMMY_WARNING +# define D_PPP_parser_dummy_warning(var) +# else +# define D_PPP_parser_dummy_warning(var) \ + warn("warning: dummy PL_" #var " used in %s:%d", __FILE__, __LINE__), +# endif +# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ + (D_PPP_parser_dummy_warning(var) &DPPP_(dummy_PL_parser)))->var) +#if defined(NEED_PL_parser) +static yy_parser DPPP_(dummy_PL_parser); +#elif defined(NEED_PL_parser_GLOBAL) +yy_parser DPPP_(dummy_PL_parser); +#else +extern yy_parser DPPP_(dummy_PL_parser); +#endif + +# endif + +/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */ +/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf + * Do not use this variable unless you know exactly what you're + * doing. It is internal to the perl parser and may change or even + * be removed in the future. As of perl 5.9.5, you have to check + * for (PL_parser != NULL) for this variable to have any effect. + * An always non-NULL PL_parser dummy is provided for earlier + * perl versions. + * If PL_parser is NULL when you try to access this variable, a + * dummy is being accessed instead and a warning is issued unless + * you define DPPP_PL_parser_NO_DUMMY_WARNING. + * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access + * this variable will croak with a panic message. + */ + +# define PL_expect D_PPP_my_PL_parser_var(expect) +# define PL_copline D_PPP_my_PL_parser_var(copline) +# define PL_rsfp D_PPP_my_PL_parser_var(rsfp) +# define PL_rsfp_filters D_PPP_my_PL_parser_var(rsfp_filters) +# define PL_linestr D_PPP_my_PL_parser_var(linestr) +# define PL_bufptr D_PPP_my_PL_parser_var(bufptr) +# define PL_bufend D_PPP_my_PL_parser_var(bufend) +# define PL_lex_state D_PPP_my_PL_parser_var(lex_state) +# define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff) +# define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf) +# define PL_in_my D_PPP_my_PL_parser_var(in_my) +# define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash) +# define PL_error_count D_PPP_my_PL_parser_var(error_count) + + +#else + +/* ensure that PL_parser != NULL and cannot be dereferenced */ +# define PL_parser ((void *) 1) + +#endif + +#if (PERL_BCDVERSION <= 0x5003022) +# undef start_subparse +# if (PERL_BCDVERSION < 0x5003022) +#ifndef start_subparse +# define start_subparse(a, b) Perl_start_subparse() +#endif + +# else +#ifndef start_subparse +# define start_subparse(a, b) Perl_start_subparse(b) +#endif + +# endif + +#if (PERL_BCDVERSION < 0x5003007) +foo +#endif +#endif + +/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */ +#if (PERL_BCDVERSION < 0x5004063) && (PERL_BCDVERSION != 0x5004005) + +/* And before that, we need to make sure this gets compiled for the functions + * that rely on it */ +#define NEED_newCONSTSUB + +#if defined(NEED_newCONSTSUB) +static CV * DPPP_(my_newCONSTSUB)(HV * stash, const char * name, SV * sv); +static +#else +extern CV * DPPP_(my_newCONSTSUB)(HV * stash, const char * name, SV * sv); +#endif + +#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL) + +#ifdef newCONSTSUB +# undef newCONSTSUB +#endif +#define newCONSTSUB(a,b,c) DPPP_(my_newCONSTSUB)(aTHX_ a,b,c) +#define Perl_newCONSTSUB DPPP_(my_newCONSTSUB) + + +/* This is just a trick to avoid a dependency of newCONSTSUB on PL_parser */ +/* (There's no PL_parser in perl < 5.005, so this is completely safe) */ +#define D_PPP_PL_copline PL_copline + +CV * +DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) +{ + CV *cv; + U32 oldhints = PL_hints; + HV *old_cop_stash = PL_curcop->cop_stash; + HV *old_curstash = PL_curstash; + line_t oldline = PL_curcop->cop_line; + PL_curcop->cop_line = D_PPP_PL_copline; + + PL_hints &= ~HINT_BLOCK_SCOPE; + if (stash) + PL_curstash = PL_curcop->cop_stash = stash; + + cv = newSUB( + + start_subparse(FALSE, 0), + + newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)), + newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */ + newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv)) + ); + + PL_hints = oldhints; + PL_curcop->cop_stash = old_cop_stash; + PL_curstash = old_curstash; + PL_curcop->cop_line = oldline; + + return cv; +} +#endif +#endif +#ifndef PERL_MAGIC_sv +# define PERL_MAGIC_sv '\0' +#endif + +#ifndef PERL_MAGIC_overload +# define PERL_MAGIC_overload 'A' +#endif + +#ifndef PERL_MAGIC_overload_elem +# define PERL_MAGIC_overload_elem 'a' +#endif + +#ifndef PERL_MAGIC_overload_table +# define PERL_MAGIC_overload_table 'c' +#endif + +#ifndef PERL_MAGIC_bm +# define PERL_MAGIC_bm 'B' +#endif + +#ifndef PERL_MAGIC_regdata +# define PERL_MAGIC_regdata 'D' +#endif + +#ifndef PERL_MAGIC_regdatum +# define PERL_MAGIC_regdatum 'd' +#endif + +#ifndef PERL_MAGIC_env +# define PERL_MAGIC_env 'E' +#endif + +#ifndef PERL_MAGIC_envelem +# define PERL_MAGIC_envelem 'e' +#endif + +#ifndef PERL_MAGIC_fm +# define PERL_MAGIC_fm 'f' +#endif + +#ifndef PERL_MAGIC_regex_global +# define PERL_MAGIC_regex_global 'g' +#endif + +#ifndef PERL_MAGIC_isa +# define PERL_MAGIC_isa 'I' +#endif + +#ifndef PERL_MAGIC_isaelem +# define PERL_MAGIC_isaelem 'i' +#endif + +#ifndef PERL_MAGIC_nkeys +# define PERL_MAGIC_nkeys 'k' +#endif + +#ifndef PERL_MAGIC_dbfile +# define PERL_MAGIC_dbfile 'L' +#endif + +#ifndef PERL_MAGIC_dbline +# define PERL_MAGIC_dbline 'l' +#endif + +#ifndef PERL_MAGIC_mutex +# define PERL_MAGIC_mutex 'm' +#endif + +#ifndef PERL_MAGIC_shared +# define PERL_MAGIC_shared 'N' +#endif + +#ifndef PERL_MAGIC_shared_scalar +# define PERL_MAGIC_shared_scalar 'n' +#endif + +#ifndef PERL_MAGIC_collxfrm +# define PERL_MAGIC_collxfrm 'o' +#endif + +#ifndef PERL_MAGIC_tied +# define PERL_MAGIC_tied 'P' +#endif + +#ifndef PERL_MAGIC_tiedelem +# define PERL_MAGIC_tiedelem 'p' +#endif + +#ifndef PERL_MAGIC_tiedscalar +# define PERL_MAGIC_tiedscalar 'q' +#endif + +#ifndef PERL_MAGIC_qr +# define PERL_MAGIC_qr 'r' +#endif + +#ifndef PERL_MAGIC_sig +# define PERL_MAGIC_sig 'S' +#endif + +#ifndef PERL_MAGIC_sigelem +# define PERL_MAGIC_sigelem 's' +#endif + +#ifndef PERL_MAGIC_taint +# define PERL_MAGIC_taint 't' +#endif + +#ifndef PERL_MAGIC_uvar +# define PERL_MAGIC_uvar 'U' +#endif + +#ifndef PERL_MAGIC_uvar_elem +# define PERL_MAGIC_uvar_elem 'u' +#endif + +#ifndef PERL_MAGIC_vstring +# define PERL_MAGIC_vstring 'V' +#endif + +#ifndef PERL_MAGIC_vec +# define PERL_MAGIC_vec 'v' +#endif + +#ifndef PERL_MAGIC_utf8 +# define PERL_MAGIC_utf8 'w' +#endif + +#ifndef PERL_MAGIC_substr +# define PERL_MAGIC_substr 'x' +#endif + +#ifndef PERL_MAGIC_defelem +# define PERL_MAGIC_defelem 'y' +#endif + +#ifndef PERL_MAGIC_glob +# define PERL_MAGIC_glob '*' +#endif + +#ifndef PERL_MAGIC_arylen +# define PERL_MAGIC_arylen '#' +#endif + +#ifndef PERL_MAGIC_pos +# define PERL_MAGIC_pos '.' +#endif + +#ifndef PERL_MAGIC_backref +# define PERL_MAGIC_backref '<' +#endif + +#ifndef PERL_MAGIC_ext +# define PERL_MAGIC_ext '~' +#endif +#ifndef cBOOL +# define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) +#endif + +#ifndef OpHAS_SIBLING +# define OpHAS_SIBLING(o) (cBOOL((o)->op_sibling)) +#endif + +#ifndef OpSIBLING +# define OpSIBLING(o) (0 + (o)->op_sibling) +#endif + +#ifndef OpMORESIB_set +# define OpMORESIB_set(o, sib) ((o)->op_sibling = (sib)) +#endif + +#ifndef OpLASTSIB_set +# define OpLASTSIB_set(o, parent) ((o)->op_sibling = NULL) +#endif + +#ifndef OpMAYBESIB_set +# define OpMAYBESIB_set(o, sib, parent) ((o)->op_sibling = (sib)) +#endif + +#ifndef HEf_SVKEY +# define HEf_SVKEY -2 +#endif + +#if defined(DEBUGGING) && !defined(__COVERITY__) +#ifndef __ASSERT_ +# define __ASSERT_(statement) assert(statement), +#endif + +#else +#ifndef __ASSERT_ +# define __ASSERT_(statement) +#endif + +#endif +#ifndef __has_builtin +# define __has_builtin(x) 0 +#endif + +#if __has_builtin(__builtin_unreachable) +# define D_PPP_HAS_BUILTIN_UNREACHABLE +#elif (defined(__GNUC__) && ( __GNUC__ > 4 \ + || __GNUC__ == 4 && __GNUC_MINOR__ >= 5)) +# define D_PPP_HAS_BUILTIN_UNREACHABLE +#endif + +#ifndef ASSUME +# ifdef DEBUGGING +# define ASSUME(x) assert(x) +# elif defined(_MSC_VER) +# define ASSUME(x) __assume(x) +# elif defined(__ARMCC_VERSION) +# define ASSUME(x) __promise(x) +# elif defined(D_PPP_HAS_BUILTIN_UNREACHABLE) +# define ASSUME(x) ((x) ? (void) 0 : __builtin_unreachable()) +# else +# define ASSUME(x) assert(x) +# endif +#endif + +#ifndef NOT_REACHED +# ifdef D_PPP_HAS_BUILTIN_UNREACHABLE +# define NOT_REACHED \ + STMT_START { \ + ASSUME(!"UNREACHABLE"); __builtin_unreachable(); \ + } STMT_END +# elif ! defined(__GNUC__) && (defined(__sun) || defined(__hpux)) +# define NOT_REACHED +# else +# define NOT_REACHED ASSUME(!"UNREACHABLE") +# endif +#endif + +#ifndef WIDEST_UTYPE +# ifdef QUADKIND +# ifdef U64TYPE +# define WIDEST_UTYPE U64TYPE +# else +# define WIDEST_UTYPE unsigned Quad_t +# endif +# else +# define WIDEST_UTYPE U32 +# endif +#endif + +/* These could become provided if/when they become part of the public API */ +#ifndef withinCOUNT +# define withinCOUNT(c, l, n) \ + (((WIDEST_UTYPE) (((c)) - ((l) | 0))) <= (((WIDEST_UTYPE) ((n) | 0)))) +#endif + +#ifndef inRANGE +# define inRANGE(c, l, u) \ + ( (sizeof(c) == sizeof(U8)) ? withinCOUNT(((U8) (c)), (l), ((u) - (l))) \ + : (sizeof(c) == sizeof(U32)) ? withinCOUNT(((U32) (c)), (l), ((u) - (l))) \ + : (withinCOUNT(((WIDEST_UTYPE) (c)), (l), ((u) - (l))))) +#endif + +/* The '| 0' part ensures a compiler error if c is not integer (like e.g., a + * pointer) */ +#undef FITS_IN_8_BITS /* handy.h version uses a core-only constant */ +#ifndef FITS_IN_8_BITS +# define FITS_IN_8_BITS(c) ( (sizeof(c) == 1) \ + || !(((WIDEST_UTYPE)((c) | 0)) & ~0xFF)) +#endif + +/* Create the macro for "is'macro'_utf8_safe(s, e)". For code points below + * 256, it calls the equivalent _L1 macro by converting the UTF-8 to code + * point. That is so that it can automatically get the bug fixes done in this + * file. */ +#define D_PPP_IS_GENERIC_UTF8_SAFE(s, e, macro) \ + (((e) - (s)) <= 0 \ + ? 0 \ + : UTF8_IS_INVARIANT((s)[0]) \ + ? is ## macro ## _L1((s)[0]) \ + : (((e) - (s)) < UTF8SKIP(s)) \ + ? 0 \ + : UTF8_IS_DOWNGRADEABLE_START((s)[0]) \ + /* The cast in the line below is only to silence warnings */ \ + ? is ## macro ## _L1((WIDEST_UTYPE) LATIN1_TO_NATIVE( \ + UTF8_ACCUMULATE(NATIVE_UTF8_TO_I8((s)[0]) \ + & UTF_START_MASK(2), \ + (s)[1]))) \ + : is ## macro ## _utf8(s)) + +/* Create the macro for "is'macro'_LC_utf8_safe(s, e)". For code points below + * 256, it calls the equivalent _L1 macro by converting the UTF-8 to code + * point. That is so that it can automatically get the bug fixes done in this + * file. */ +#define D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, macro) \ + (((e) - (s)) <= 0 \ + ? 0 \ + : UTF8_IS_INVARIANT((s)[0]) \ + ? is ## macro ## _LC((s)[0]) \ + : (((e) - (s)) < UTF8SKIP(s)) \ + ? 0 \ + : UTF8_IS_DOWNGRADEABLE_START((s)[0]) \ + /* The cast in the line below is only to silence warnings */ \ + ? is ## macro ## _LC((WIDEST_UTYPE) LATIN1_TO_NATIVE( \ + UTF8_ACCUMULATE(NATIVE_UTF8_TO_I8((s)[0]) \ + & UTF_START_MASK(2), \ + (s)[1]))) \ + : is ## macro ## _utf8(s)) + +/* A few of the early functions are broken. For these and the non-LC case, + * machine generated code is substituted. But that code doesn't work for + * locales. This is just like the above macro, but at the end, we call the + * macro we've generated for the above 255 case, which is correct since locale + * isn't involved. This will generate extra code to handle the 0-255 inputs, + * but hopefully it will be optimized out by the C compiler. But just in case + * it isn't, this macro is only used on the few versions that are broken */ + +#define D_PPP_IS_GENERIC_LC_UTF8_SAFE_BROKEN(s, e, macro) \ + (((e) - (s)) <= 0 \ + ? 0 \ + : UTF8_IS_INVARIANT((s)[0]) \ + ? is ## macro ## _LC((s)[0]) \ + : (((e) - (s)) < UTF8SKIP(s)) \ + ? 0 \ + : UTF8_IS_DOWNGRADEABLE_START((s)[0]) \ + /* The cast in the line below is only to silence warnings */ \ + ? is ## macro ## _LC((WIDEST_UTYPE) LATIN1_TO_NATIVE( \ + UTF8_ACCUMULATE(NATIVE_UTF8_TO_I8((s)[0]) \ + & UTF_START_MASK(2), \ + (s)[1]))) \ + : is ## macro ## _utf8_safe(s, e)) +#ifndef SvRX +# define SvRX(rv) (SvROK((rv)) ? (SvMAGICAL(SvRV((rv))) ? (mg_find(SvRV((rv)), PERL_MAGIC_qr) ? mg_find(SvRV((rv)), PERL_MAGIC_qr)->mg_obj : NULL) : NULL) : NULL) +#endif + +#ifndef SvRXOK +# define SvRXOK(sv) (!!SvRX(sv)) +#endif + +#ifndef PERL_UNUSED_DECL +# ifdef HASATTRIBUTE +# if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER) +# define PERL_UNUSED_DECL +# else +# define PERL_UNUSED_DECL __attribute__((unused)) +# endif +# else +# define PERL_UNUSED_DECL +# endif +#endif + +#ifndef PERL_UNUSED_ARG +# if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */ +# include +# define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x)) +# else +# define PERL_UNUSED_ARG(x) ((void)x) +# endif +#endif + +#ifndef PERL_UNUSED_VAR +# define PERL_UNUSED_VAR(x) ((void)x) +#endif + +#ifndef PERL_UNUSED_CONTEXT +# ifdef USE_ITHREADS +# define PERL_UNUSED_CONTEXT PERL_UNUSED_ARG(my_perl) +# else +# define PERL_UNUSED_CONTEXT +# endif +#endif + +#ifndef PERL_UNUSED_RESULT +# if defined(__GNUC__) && defined(HASATTRIBUTE_WARN_UNUSED_RESULT) +# define PERL_UNUSED_RESULT(v) STMT_START { __typeof__(v) z = (v); (void)sizeof(z); } STMT_END +# else +# define PERL_UNUSED_RESULT(v) ((void)(v)) +# endif +#endif +#ifndef NOOP +# define NOOP /*EMPTY*/(void)0 +#endif + +#ifndef dNOOP +# define dNOOP extern int /*@unused@*/ Perl___notused PERL_UNUSED_DECL +#endif + +#ifndef NVTYPE +# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) +# define NVTYPE long double +# else +# define NVTYPE double +# endif +typedef NVTYPE NV; +#endif + +#ifndef INT2PTR +# if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE) +# define PTRV UV +# define INT2PTR(any,d) (any)(d) +# else +# if PTRSIZE == LONGSIZE +# define PTRV unsigned long +# else +# define PTRV unsigned +# endif +# define INT2PTR(any,d) (any)(PTRV)(d) +# endif +#endif + +#ifndef PTR2ul +# if PTRSIZE == LONGSIZE +# define PTR2ul(p) (unsigned long)(p) +# else +# define PTR2ul(p) INT2PTR(unsigned long,p) +# endif +#endif +#ifndef PTR2nat +# define PTR2nat(p) (PTRV)(p) +#endif + +#ifndef NUM2PTR +# define NUM2PTR(any,d) (any)PTR2nat(d) +#endif + +#ifndef PTR2IV +# define PTR2IV(p) INT2PTR(IV,p) +#endif + +#ifndef PTR2UV +# define PTR2UV(p) INT2PTR(UV,p) +#endif + +#ifndef PTR2NV +# define PTR2NV(p) NUM2PTR(NV,p) +#endif + +#undef START_EXTERN_C +#undef END_EXTERN_C +#undef EXTERN_C +#ifdef __cplusplus +# define START_EXTERN_C extern "C" { +# define END_EXTERN_C } +# define EXTERN_C extern "C" +#else +# define START_EXTERN_C +# define END_EXTERN_C +# define EXTERN_C extern +#endif + +#if (PERL_BCDVERSION < 0x5004000) || defined(PERL_GCC_PEDANTIC) +# ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN +#ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN +# define PERL_GCC_BRACE_GROUPS_FORBIDDEN +#endif + +# endif +#endif + +#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus) +# ifndef PERL_USE_GCC_BRACE_GROUPS +# define PERL_USE_GCC_BRACE_GROUPS +# endif +#endif + +#undef STMT_START +#undef STMT_END +#ifdef PERL_USE_GCC_BRACE_GROUPS +# define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */ +# define STMT_END ) +#else +# if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__) +# define STMT_START if (1) +# define STMT_END else (void)0 +# else +# define STMT_START do +# define STMT_END while (0) +# endif +#endif +#ifndef boolSV +# define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no) +#endif + +/* DEFSV appears first in 5.004_56 */ +#ifndef DEFSV +# define DEFSV GvSV(PL_defgv) +#endif + +#ifndef SAVE_DEFSV +# define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv)) +#endif + +#ifndef DEFSV_set +# define DEFSV_set(sv) (DEFSV = (sv)) +#endif + +/* Older perls (<=5.003) lack AvFILLp */ +#ifndef AvFILLp +# define AvFILLp AvFILL +#endif +#ifndef av_tindex +# define av_tindex AvFILL +#endif + +#ifndef av_top_index +# define av_top_index AvFILL +#endif + +#ifndef av_count +# define av_count(av) (AvFILL(av)+1) +#endif +#ifndef ERRSV +# define ERRSV get_sv("@",FALSE) +#endif + +/* Hint: gv_stashpvn + * This function's backport doesn't support the length parameter, but + * rather ignores it. Portability can only be ensured if the length + * parameter is used for speed reasons, but the length can always be + * correctly computed from the string argument. + */ +#ifndef gv_stashpvn +# define gv_stashpvn(str,len,create) gv_stashpv(str,create) +#endif + +/* Replace: 1 */ +#ifndef get_cv +# define get_cv perl_get_cv +#endif + +#ifndef get_sv +# define get_sv perl_get_sv +#endif + +#ifndef get_av +# define get_av perl_get_av +#endif + +#ifndef get_hv +# define get_hv perl_get_hv +#endif + +/* Replace: 0 */ +#ifndef dUNDERBAR +# define dUNDERBAR dNOOP +#endif + +#ifndef UNDERBAR +# define UNDERBAR DEFSV +#endif +#ifndef dAX +# define dAX I32 ax = MARK - PL_stack_base + 1 +#endif + +#ifndef dITEMS +# define dITEMS I32 items = SP - MARK +#endif +#ifndef dXSTARG +# define dXSTARG SV * targ = sv_newmortal() +#endif +#ifndef dAXMARK +# define dAXMARK I32 ax = POPMARK; \ + SV ** const mark = PL_stack_base + ax++ +#endif +#ifndef XSprePUSH +# define XSprePUSH (sp = PL_stack_base + ax - 1) +#endif + +#if (PERL_BCDVERSION < 0x5005000) +# undef XSRETURN +# define XSRETURN(off) \ + STMT_START { \ + PL_stack_sp = PL_stack_base + ax + ((off) - 1); \ + return; \ + } STMT_END +#endif +#ifndef XSPROTO +# define XSPROTO(name) void name(pTHX_ CV* cv) +#endif + +#ifndef SVfARG +# define SVfARG(p) ((void*)(p)) +#endif +#ifndef PERL_ABS +# define PERL_ABS(x) ((x) < 0 ? -(x) : (x)) +#endif +#ifndef dVAR +# define dVAR dNOOP +#endif +#ifndef SVf +# define SVf "_" +#endif +#ifndef CPERLscope +# define CPERLscope(x) x +#endif +#ifndef PERL_HASH +# define PERL_HASH(hash,str,len) \ + STMT_START { \ + const char *s_PeRlHaSh = str; \ + I32 i_PeRlHaSh = len; \ + U32 hash_PeRlHaSh = 0; \ + while (i_PeRlHaSh--) \ + hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \ + (hash) = hash_PeRlHaSh; \ + } STMT_END +#endif + +#ifndef PERLIO_FUNCS_DECL +# ifdef PERLIO_FUNCS_CONST +# define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs +# define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs) +# else +# define PERLIO_FUNCS_DECL(funcs) PerlIO_funcs funcs +# define PERLIO_FUNCS_CAST(funcs) (funcs) +# endif +#endif + +/* provide these typedefs for older perls */ +#if (PERL_BCDVERSION < 0x5009003) + +# ifdef ARGSproto +typedef OP* (CPERLscope(*Perl_ppaddr_t))(ARGSproto); +# else +typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX); +# endif + +typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*); + +#endif + +/* On versions without NATIVE_TO_ASCII, only ASCII is supported */ +#if defined(EBCDIC) && defined(NATIVE_TO_ASCI) +#ifndef NATIVE_TO_LATIN1 +# define NATIVE_TO_LATIN1(c) NATIVE_TO_ASCII(c) +#endif + +#ifndef LATIN1_TO_NATIVE +# define LATIN1_TO_NATIVE(c) ASCII_TO_NATIVE(c) +#endif + +#ifndef NATIVE_TO_UNI +# define NATIVE_TO_UNI(c) ((c) > 255 ? (c) : NATIVE_TO_LATIN1(c)) +#endif + +#ifndef UNI_TO_NATIVE +# define UNI_TO_NATIVE(c) ((c) > 255 ? (c) : LATIN1_TO_NATIVE(c)) +#endif + +#else +#ifndef NATIVE_TO_LATIN1 +# define NATIVE_TO_LATIN1(c) (c) +#endif + +#ifndef LATIN1_TO_NATIVE +# define LATIN1_TO_NATIVE(c) (c) +#endif + +#ifndef NATIVE_TO_UNI +# define NATIVE_TO_UNI(c) (c) +#endif + +#ifndef UNI_TO_NATIVE +# define UNI_TO_NATIVE(c) (c) +#endif + +#endif + +/* Warning: LATIN1_TO_NATIVE, NATIVE_TO_LATIN1 NATIVE_TO_UNI UNI_TO_NATIVE + EBCDIC is not supported on versions earlier than 5.7.1 + */ + +/* The meaning of this changed; use the modern version */ +#undef isPSXSPC +#undef isPSXSPC_A +#undef isPSXSPC_L1 + +/* Hint: isPSXSPC, isPSXSPC_A, isPSXSPC_L1, isPSXSPC_utf8_safe + This is equivalent to the corresponding isSPACE-type macro. On perls + before 5.18, this matched a vertical tab and SPACE didn't. But the + ppport.h SPACE version does match VT in all perl releases. Since VT's are + extremely rarely found in real-life files, this difference effectively + doesn't matter */ + +/* Hint: isSPACE, isSPACE_A, isSPACE_L1, isSPACE_utf8_safe + Until Perl 5.18, this did not match the vertical tab (VT). The ppport.h + version does match it in all perl releases. Since VT's are extremely rarely + found in real-life files, this difference effectively doesn't matter */ + +#ifdef EBCDIC + +/* This is the first version where these macros are fully correct on EBCDIC + * platforms. Relying on the C library functions, as earlier releases did, + * causes problems with locales */ +# if (PERL_BCDVERSION < 0x5022000) +# undef isALNUM +# undef isALNUM_A +# undef isALNUM_L1 +# undef isALNUMC +# undef isALNUMC_A +# undef isALNUMC_L1 +# undef isALPHA +# undef isALPHA_A +# undef isALPHA_L1 +# undef isALPHANUMERIC +# undef isALPHANUMERIC_A +# undef isALPHANUMERIC_L1 +# undef isASCII +# undef isASCII_A +# undef isASCII_L1 +# undef isBLANK +# undef isBLANK_A +# undef isBLANK_L1 +# undef isCNTRL +# undef isCNTRL_A +# undef isCNTRL_L1 +# undef isDIGIT +# undef isDIGIT_A +# undef isDIGIT_L1 +# undef isGRAPH +# undef isGRAPH_A +# undef isGRAPH_L1 +# undef isIDCONT +# undef isIDCONT_A +# undef isIDCONT_L1 +# undef isIDFIRST +# undef isIDFIRST_A +# undef isIDFIRST_L1 +# undef isLOWER +# undef isLOWER_A +# undef isLOWER_L1 +# undef isOCTAL +# undef isOCTAL_A +# undef isOCTAL_L1 +# undef isPRINT +# undef isPRINT_A +# undef isPRINT_L1 +# undef isPUNCT +# undef isPUNCT_A +# undef isPUNCT_L1 +# undef isSPACE +# undef isSPACE_A +# undef isSPACE_L1 +# undef isUPPER +# undef isUPPER_A +# undef isUPPER_L1 +# undef isWORDCHAR +# undef isWORDCHAR_A +# undef isWORDCHAR_L1 +# undef isXDIGIT +# undef isXDIGIT_A +# undef isXDIGIT_L1 +# endif +#ifndef isASCII +# define isASCII(c) (isCNTRL(c) || isPRINT(c)) +#endif + + /* The below is accurate for all EBCDIC code pages supported by + * all the versions of Perl overridden by this */ +#ifndef isCNTRL +# define isCNTRL(c) ( (c) == '\0' || (c) == '\a' || (c) == '\b' \ + || (c) == '\f' || (c) == '\n' || (c) == '\r' \ + || (c) == '\t' || (c) == '\v' \ + || ((c) <= 3 && (c) >= 1) /* SOH, STX, ETX */ \ + || (c) == 7 /* U+7F DEL */ \ + || ((c) <= 0x13 && (c) >= 0x0E) /* SO, SI */ \ + /* DLE, DC[1-3] */ \ + || (c) == 0x18 /* U+18 CAN */ \ + || (c) == 0x19 /* U+19 EOM */ \ + || ((c) <= 0x1F && (c) >= 0x1C) /* [FGRU]S */ \ + || (c) == 0x26 /* U+17 ETB */ \ + || (c) == 0x27 /* U+1B ESC */ \ + || (c) == 0x2D /* U+05 ENQ */ \ + || (c) == 0x2E /* U+06 ACK */ \ + || (c) == 0x32 /* U+16 SYN */ \ + || (c) == 0x37 /* U+04 EOT */ \ + || (c) == 0x3C /* U+14 DC4 */ \ + || (c) == 0x3D /* U+15 NAK */ \ + || (c) == 0x3F /* U+1A SUB */ \ + ) +#endif + +#if '^' == 106 /* EBCDIC POSIX-BC */ +# define D_PPP_OUTLIER_CONTROL 0x5F +#else /* EBCDIC 1047 037 */ +# define D_PPP_OUTLIER_CONTROL 0xFF +#endif + +/* The controls are everything below blank, plus one outlier */ +#ifndef isCNTRL_L1 +# define isCNTRL_L1(c) ((WIDEST_UTYPE) (c) < ' ' \ + || (WIDEST_UTYPE) (c) == D_PPP_OUTLIER_CONTROL) +#endif + +/* The ordering of the tests in this and isUPPER are to exclude most characters + * early */ +#ifndef isLOWER +# define isLOWER(c) ( (c) >= 'a' && (c) <= 'z' \ + && ( (c) <= 'i' \ + || ((c) >= 'j' && (c) <= 'r') \ + || (c) >= 's')) +#endif + +#ifndef isUPPER +# define isUPPER(c) ( (c) >= 'A' && (c) <= 'Z' \ + && ( (c) <= 'I' \ + || ((c) >= 'J' && (c) <= 'R') \ + || (c) >= 'S')) +#endif + +#else /* Above is EBCDIC; below is ASCII */ + +# if (PERL_BCDVERSION < 0x5004000) +/* The implementation of these in older perl versions can give wrong results if + * the C program locale is set to other than the C locale */ +# undef isALNUM +# undef isALNUM_A +# undef isALPHA +# undef isALPHA_A +# undef isDIGIT +# undef isDIGIT_A +# undef isIDFIRST +# undef isIDFIRST_A +# undef isLOWER +# undef isLOWER_A +# undef isUPPER +# undef isUPPER_A +# endif + +# if (PERL_BCDVERSION == 0x5007000) /* this perl made space GRAPH */ +# undef isGRAPH +# endif + +# if (PERL_BCDVERSION < 0x5008000) /* earlier perls omitted DEL */ +# undef isCNTRL +# endif + +# if (PERL_BCDVERSION < 0x5010000) +/* earlier perls included all of the isSPACE() characters, which is wrong. The + * version provided by Devel::PPPort always overrides an existing buggy + * version. */ +# undef isPRINT +# undef isPRINT_A +# endif + +# if (PERL_BCDVERSION < 0x5014000) +/* earlier perls always returned true if the parameter was a signed char */ +# undef isASCII +# undef isASCII_A +# endif + +# if (PERL_BCDVERSION < 0x5017008) /* earlier perls didn't include PILCROW, SECTION SIGN */ +# undef isPUNCT_L1 +# endif + +# if (PERL_BCDVERSION < 0x5013007) /* khw didn't investigate why this failed */ +# undef isALNUMC_L1 +#endif + +# if (PERL_BCDVERSION < 0x5020000) /* earlier perls didn't include \v */ +# undef isSPACE +# undef isSPACE_A +# undef isSPACE_L1 + +# endif +#ifndef isASCII +# define isASCII(c) ((WIDEST_UTYPE) (c) <= 127) +#endif + +#ifndef isCNTRL +# define isCNTRL(c) ((WIDEST_UTYPE) (c) < ' ' || (c) == 127) +#endif + +#ifndef isCNTRL_L1 +# define isCNTRL_L1(c) ( (WIDEST_UTYPE) (c) < ' ' \ + || inRANGE((c), 0x7F, 0x9F)) +#endif + +#ifndef isLOWER +# define isLOWER(c) inRANGE((c), 'a', 'z') +#endif + +#ifndef isUPPER +# define isUPPER(c) inRANGE((c), 'A', 'Z') +#endif + +#endif /* Below are definitions common to EBCDIC and ASCII */ +#ifndef isASCII_L1 +# define isASCII_L1(c) isASCII(c) +#endif + +#ifndef isASCII_LC +# define isASCII_LC(c) isASCII(c) +#endif + +#ifndef isALNUM +# define isALNUM(c) isWORDCHAR(c) +#endif + +#ifndef isALNUMC +# define isALNUMC(c) isALPHANUMERIC(c) +#endif + +#ifndef isALNUMC_L1 +# define isALNUMC_L1(c) isALPHANUMERIC_L1(c) +#endif + +#ifndef isALPHA +# define isALPHA(c) (isUPPER(c) || isLOWER(c)) +#endif + +#ifndef isALPHA_L1 +# define isALPHA_L1(c) (isUPPER_L1(c) || isLOWER_L1(c)) +#endif + +#ifndef isALPHANUMERIC +# define isALPHANUMERIC(c) (isALPHA(c) || isDIGIT(c)) +#endif + +#ifndef isALPHANUMERIC_L1 +# define isALPHANUMERIC_L1(c) (isALPHA_L1(c) || isDIGIT(c)) +#endif + +#ifndef isALPHANUMERIC_LC +# define isALPHANUMERIC_LC(c) (isALPHA_LC(c) || isDIGIT_LC(c)) +#endif + +#ifndef isBLANK +# define isBLANK(c) ((c) == ' ' || (c) == '\t') +#endif + +#ifndef isBLANK_L1 +# define isBLANK_L1(c) ( isBLANK(c) \ + || ( FITS_IN_8_BITS(c) \ + && NATIVE_TO_LATIN1((U8) c) == 0xA0)) +#endif + +#ifndef isBLANK_LC +# define isBLANK_LC(c) isBLANK(c) +#endif + +#ifndef isDIGIT +# define isDIGIT(c) inRANGE(c, '0', '9') +#endif + +#ifndef isDIGIT_L1 +# define isDIGIT_L1(c) isDIGIT(c) +#endif + +#ifndef isGRAPH +# define isGRAPH(c) (isWORDCHAR(c) || isPUNCT(c)) +#endif + +#ifndef isGRAPH_L1 +# define isGRAPH_L1(c) ( isPRINT_L1(c) \ + && (c) != ' ' \ + && NATIVE_TO_LATIN1((U8) c) != 0xA0) +#endif + +#ifndef isIDCONT +# define isIDCONT(c) isWORDCHAR(c) +#endif + +#ifndef isIDCONT_L1 +# define isIDCONT_L1(c) isWORDCHAR_L1(c) +#endif + +#ifndef isIDCONT_LC +# define isIDCONT_LC(c) isWORDCHAR_LC(c) +#endif + +#ifndef isIDFIRST +# define isIDFIRST(c) (isALPHA(c) || (c) == '_') +#endif + +#ifndef isIDFIRST_L1 +# define isIDFIRST_L1(c) (isALPHA_L1(c) || (U8) (c) == '_') +#endif + +#ifndef isIDFIRST_LC +# define isIDFIRST_LC(c) (isALPHA_LC(c) || (U8) (c) == '_') +#endif + +#ifndef isLOWER_L1 +# define isLOWER_L1(c) ( isLOWER(c) \ + || ( FITS_IN_8_BITS(c) \ + && ( ( NATIVE_TO_LATIN1((U8) c) >= 0xDF \ + && NATIVE_TO_LATIN1((U8) c) != 0xF7) \ + || NATIVE_TO_LATIN1((U8) c) == 0xAA \ + || NATIVE_TO_LATIN1((U8) c) == 0xBA \ + || NATIVE_TO_LATIN1((U8) c) == 0xB5))) +#endif + +#ifndef isOCTAL +# define isOCTAL(c) (((WIDEST_UTYPE)((c)) & ~7) == '0') +#endif + +#ifndef isOCTAL_L1 +# define isOCTAL_L1(c) isOCTAL(c) +#endif + +#ifndef isPRINT +# define isPRINT(c) (isGRAPH(c) || (c) == ' ') +#endif + +#ifndef isPRINT_L1 +# define isPRINT_L1(c) (FITS_IN_8_BITS(c) && ! isCNTRL_L1(c)) +#endif + +#ifndef isPSXSPC +# define isPSXSPC(c) isSPACE(c) +#endif + +#ifndef isPSXSPC_L1 +# define isPSXSPC_L1(c) isSPACE_L1(c) +#endif + +#ifndef isPUNCT +# define isPUNCT(c) ( (c) == '-' || (c) == '!' || (c) == '"' \ + || (c) == '#' || (c) == '$' || (c) == '%' \ + || (c) == '&' || (c) == '\'' || (c) == '(' \ + || (c) == ')' || (c) == '*' || (c) == '+' \ + || (c) == ',' || (c) == '.' || (c) == '/' \ + || (c) == ':' || (c) == ';' || (c) == '<' \ + || (c) == '=' || (c) == '>' || (c) == '?' \ + || (c) == '@' || (c) == '[' || (c) == '\\' \ + || (c) == ']' || (c) == '^' || (c) == '_' \ + || (c) == '`' || (c) == '{' || (c) == '|' \ + || (c) == '}' || (c) == '~') +#endif + +#ifndef isPUNCT_L1 +# define isPUNCT_L1(c) ( isPUNCT(c) \ + || ( FITS_IN_8_BITS(c) \ + && ( NATIVE_TO_LATIN1((U8) c) == 0xA1 \ + || NATIVE_TO_LATIN1((U8) c) == 0xA7 \ + || NATIVE_TO_LATIN1((U8) c) == 0xAB \ + || NATIVE_TO_LATIN1((U8) c) == 0xB6 \ + || NATIVE_TO_LATIN1((U8) c) == 0xB7 \ + || NATIVE_TO_LATIN1((U8) c) == 0xBB \ + || NATIVE_TO_LATIN1((U8) c) == 0xBF))) +#endif + +#ifndef isSPACE +# define isSPACE(c) ( isBLANK(c) || (c) == '\n' || (c) == '\r' \ + || (c) == '\v' || (c) == '\f') +#endif + +#ifndef isSPACE_L1 +# define isSPACE_L1(c) ( isSPACE(c) \ + || (FITS_IN_8_BITS(c) \ + && ( NATIVE_TO_LATIN1((U8) c) == 0x85 \ + || NATIVE_TO_LATIN1((U8) c) == 0xA0))) +#endif + +#ifndef isUPPER_L1 +# define isUPPER_L1(c) ( isUPPER(c) \ + || (FITS_IN_8_BITS(c) \ + && ( NATIVE_TO_LATIN1((U8) c) >= 0xC0 \ + && NATIVE_TO_LATIN1((U8) c) <= 0xDE \ + && NATIVE_TO_LATIN1((U8) c) != 0xD7))) +#endif + +#ifndef isWORDCHAR +# define isWORDCHAR(c) (isALPHANUMERIC(c) || (c) == '_') +#endif + +#ifndef isWORDCHAR_L1 +# define isWORDCHAR_L1(c) (isIDFIRST_L1(c) || isDIGIT(c)) +#endif + +#ifndef isWORDCHAR_LC +# define isWORDCHAR_LC(c) (isIDFIRST_LC(c) || isDIGIT_LC(c)) +#endif + +#ifndef isXDIGIT +# define isXDIGIT(c) ( isDIGIT(c) \ + || inRANGE((c), 'a', 'f') \ + || inRANGE((c), 'A', 'F')) +#endif + +#ifndef isXDIGIT_L1 +# define isXDIGIT_L1(c) isXDIGIT(c) +#endif + +#ifndef isXDIGIT_LC +# define isXDIGIT_LC(c) isxdigit(c) +#endif +#ifndef isALNUM_A +# define isALNUM_A(c) isALNUM(c) +#endif + +#ifndef isALNUMC_A +# define isALNUMC_A(c) isALNUMC(c) +#endif + +#ifndef isALPHA_A +# define isALPHA_A(c) isALPHA(c) +#endif + +#ifndef isALPHANUMERIC_A +# define isALPHANUMERIC_A(c) isALPHANUMERIC(c) +#endif + +#ifndef isASCII_A +# define isASCII_A(c) isASCII(c) +#endif + +#ifndef isBLANK_A +# define isBLANK_A(c) isBLANK(c) +#endif + +#ifndef isCNTRL_A +# define isCNTRL_A(c) isCNTRL(c) +#endif + +#ifndef isDIGIT_A +# define isDIGIT_A(c) isDIGIT(c) +#endif + +#ifndef isGRAPH_A +# define isGRAPH_A(c) isGRAPH(c) +#endif + +#ifndef isIDCONT_A +# define isIDCONT_A(c) isIDCONT(c) +#endif + +#ifndef isIDFIRST_A +# define isIDFIRST_A(c) isIDFIRST(c) +#endif + +#ifndef isLOWER_A +# define isLOWER_A(c) isLOWER(c) +#endif + +#ifndef isOCTAL_A +# define isOCTAL_A(c) isOCTAL(c) +#endif + +#ifndef isPRINT_A +# define isPRINT_A(c) isPRINT(c) +#endif + +#ifndef isPSXSPC_A +# define isPSXSPC_A(c) isPSXSPC(c) +#endif + +#ifndef isPUNCT_A +# define isPUNCT_A(c) isPUNCT(c) +#endif + +#ifndef isSPACE_A +# define isSPACE_A(c) isSPACE(c) +#endif + +#ifndef isUPPER_A +# define isUPPER_A(c) isUPPER(c) +#endif + +#ifndef isWORDCHAR_A +# define isWORDCHAR_A(c) isWORDCHAR(c) +#endif + +#ifndef isXDIGIT_A +# define isXDIGIT_A(c) isXDIGIT(c) +#endif +#ifndef isASCII_utf8_safe +# define isASCII_utf8_safe(s,e) (((e) - (s)) <= 0 ? 0 : isASCII(*(s))) +#endif + +#ifndef isASCII_uvchr +# define isASCII_uvchr(c) (FITS_IN_8_BITS(c) ? isASCII_L1(c) : 0) +#endif + +#if (PERL_BCDVERSION >= 0x5006000) +# ifdef isALPHA_uni /* If one defined, all are; this is just an exemplar */ +# define D_PPP_is_ctype(upper, lower, c) \ + (FITS_IN_8_BITS(c) \ + ? is ## upper ## _L1(c) \ + : is ## upper ## _uni((UV) (c))) /* _uni is old synonym */ +# else +# define D_PPP_is_ctype(upper, lower, c) \ + (FITS_IN_8_BITS(c) \ + ? is ## upper ## _L1(c) \ + : is_uni_ ## lower((UV) (c))) /* is_uni_ is even older */ +# endif +#ifndef isALPHA_uvchr +# define isALPHA_uvchr(c) D_PPP_is_ctype(ALPHA, alpha, c) +#endif + +#ifndef isALPHANUMERIC_uvchr +# define isALPHANUMERIC_uvchr(c) (isALPHA_uvchr(c) || isDIGIT_uvchr(c)) +#endif + +# ifdef is_uni_blank +#ifndef isBLANK_uvchr +# define isBLANK_uvchr(c) D_PPP_is_ctype(BLANK, blank, c) +#endif + +# else +#ifndef isBLANK_uvchr +# define isBLANK_uvchr(c) (FITS_IN_8_BITS(c) \ + ? isBLANK_L1(c) \ + : ( (UV) (c) == 0x1680 /* Unicode 3.0 */ \ + || inRANGE((UV) (c), 0x2000, 0x200A) \ + || (UV) (c) == 0x202F /* Unicode 3.0 */\ + || (UV) (c) == 0x205F /* Unicode 3.2 */\ + || (UV) (c) == 0x3000)) +#endif + +# endif +#ifndef isCNTRL_uvchr +# define isCNTRL_uvchr(c) D_PPP_is_ctype(CNTRL, cntrl, c) +#endif + +#ifndef isDIGIT_uvchr +# define isDIGIT_uvchr(c) D_PPP_is_ctype(DIGIT, digit, c) +#endif + +#ifndef isGRAPH_uvchr +# define isGRAPH_uvchr(c) D_PPP_is_ctype(GRAPH, graph, c) +#endif + +#ifndef isIDCONT_uvchr +# define isIDCONT_uvchr(c) isWORDCHAR_uvchr(c) +#endif + +#ifndef isIDFIRST_uvchr +# define isIDFIRST_uvchr(c) D_PPP_is_ctype(IDFIRST, idfirst, c) +#endif + +#ifndef isLOWER_uvchr +# define isLOWER_uvchr(c) D_PPP_is_ctype(LOWER, lower, c) +#endif + +#ifndef isPRINT_uvchr +# define isPRINT_uvchr(c) D_PPP_is_ctype(PRINT, print, c) +#endif + +#ifndef isPSXSPC_uvchr +# define isPSXSPC_uvchr(c) isSPACE_uvchr(c) +#endif + +#ifndef isPUNCT_uvchr +# define isPUNCT_uvchr(c) D_PPP_is_ctype(PUNCT, punct, c) +#endif + +#ifndef isSPACE_uvchr +# define isSPACE_uvchr(c) D_PPP_is_ctype(SPACE, space, c) +#endif + +#ifndef isUPPER_uvchr +# define isUPPER_uvchr(c) D_PPP_is_ctype(UPPER, upper, c) +#endif + +#ifndef isXDIGIT_uvchr +# define isXDIGIT_uvchr(c) D_PPP_is_ctype(XDIGIT, xdigit, c) +#endif + +#ifndef isWORDCHAR_uvchr +# define isWORDCHAR_uvchr(c) (FITS_IN_8_BITS(c) \ + ? isWORDCHAR_L1(c) : isALPHANUMERIC_uvchr(c)) +#endif +#ifndef isALPHA_utf8_safe +# define isALPHA_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, ALPHA) +#endif + +# ifdef isALPHANUMERIC_utf8 +#ifndef isALPHANUMERIC_utf8_safe +# define isALPHANUMERIC_utf8_safe(s,e) \ + D_PPP_IS_GENERIC_UTF8_SAFE(s, e, ALPHANUMERIC) +#endif + +# else +#ifndef isALPHANUMERIC_utf8_safe +# define isALPHANUMERIC_utf8_safe(s,e) \ + (isALPHA_utf8_safe(s,e) || isDIGIT_utf8_safe(s,e)) +#endif + +# endif + +/* This was broken before 5.18, and just use this instead of worrying about + * which releases the official works on */ +# if 'A' == 65 +#ifndef isBLANK_utf8_safe +# define isBLANK_utf8_safe(s,e) \ +( ( LIKELY((e) > (s)) ) ? /* Machine generated */ \ + ( ( 0x09 == ((const U8*)s)[0] || 0x20 == ((const U8*)s)[0] ) ? 1 \ + : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \ + ( ( 0xC2 == ((const U8*)s)[0] ) ? \ + ( ( 0xA0 == ((const U8*)s)[1] ) ? 2 : 0 ) \ + : ( 0xE1 == ((const U8*)s)[0] ) ? \ + ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\ + : ( 0xE2 == ((const U8*)s)[0] ) ? \ + ( ( 0x80 == ((const U8*)s)[1] ) ? \ + ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8A ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\ + : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\ + : ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\ + : 0 ) \ + : 0 ) +#endif + +# elif 'A' == 193 && '^' == 95 /* EBCDIC 1047 */ +#ifndef isBLANK_utf8_safe +# define isBLANK_utf8_safe(s,e) \ +( ( LIKELY((e) > (s)) ) ? \ + ( ( 0x05 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1 \ + : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \ + ( ( 0x80 == ((const U8*)s)[0] ) ? \ + ( ( 0x41 == ((const U8*)s)[1] ) ? 2 : 0 ) \ + : ( 0xBC == ((const U8*)s)[0] ) ? \ + ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\ + : ( 0xCA == ((const U8*)s)[0] ) ? \ + ( ( 0x41 == ((const U8*)s)[1] ) ? \ + ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\ + : ( 0x42 == ((const U8*)s)[1] ) ? \ + ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \ + : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\ + : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\ + : 0 ) \ +: 0 ) +#endif + +# elif 'A' == 193 && '^' == 176 /* EBCDIC 037 */ +#ifndef isBLANK_utf8_safe +# define isBLANK_utf8_safe(s,e) \ +( ( LIKELY((e) > (s)) ) ? \ + ( ( 0x05 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1 \ + : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \ + ( ( 0x78 == ((const U8*)s)[0] ) ? \ + ( ( 0x41 == ((const U8*)s)[1] ) ? 2 : 0 ) \ + : ( 0xBD == ((const U8*)s)[0] ) ? \ + ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\ + : ( 0xCA == ((const U8*)s)[0] ) ? \ + ( ( 0x41 == ((const U8*)s)[1] ) ? \ + ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\ + : ( 0x42 == ((const U8*)s)[1] ) ? \ + ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \ + : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\ + : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\ + : 0 ) \ +: 0 ) +#endif + +# else +# error Unknown character set +# endif +#ifndef isCNTRL_utf8_safe +# define isCNTRL_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, CNTRL) +#endif + +#ifndef isDIGIT_utf8_safe +# define isDIGIT_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, DIGIT) +#endif + +#ifndef isGRAPH_utf8_safe +# define isGRAPH_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, GRAPH) +#endif + +# ifdef isIDCONT_utf8 +#ifndef isIDCONT_utf8_safe +# define isIDCONT_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, IDCONT) +#endif + +# else +#ifndef isIDCONT_utf8_safe +# define isIDCONT_utf8_safe(s,e) isWORDCHAR_utf8_safe(s,e) +#endif + +# endif +#ifndef isIDFIRST_utf8_safe +# define isIDFIRST_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, IDFIRST) +#endif + +#ifndef isLOWER_utf8_safe +# define isLOWER_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, LOWER) +#endif + +#ifndef isPRINT_utf8_safe +# define isPRINT_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, PRINT) +#endif + +# undef isPSXSPC_utf8_safe /* Use the modern definition */ +#ifndef isPSXSPC_utf8_safe +# define isPSXSPC_utf8_safe(s,e) isSPACE_utf8_safe(s,e) +#endif +#ifndef isPUNCT_utf8_safe +# define isPUNCT_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, PUNCT) +#endif + +#ifndef isSPACE_utf8_safe +# define isSPACE_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, SPACE) +#endif + +#ifndef isUPPER_utf8_safe +# define isUPPER_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, UPPER) +#endif + +# ifdef isWORDCHAR_utf8 +#ifndef isWORDCHAR_utf8_safe +# define isWORDCHAR_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, WORDCHAR) +#endif + +# else +#ifndef isWORDCHAR_utf8_safe +# define isWORDCHAR_utf8_safe(s,e) \ + (isALPHANUMERIC_utf8_safe(s,e) || (*(s)) == '_') +#endif + +# endif + +/* This was broken before 5.12, and just use this instead of worrying about + * which releases the official works on */ +# if 'A' == 65 +#ifndef isXDIGIT_utf8_safe +# define isXDIGIT_utf8_safe(s,e) \ +( ( LIKELY((e) > (s)) ) ? \ + ( ( inRANGE(((const U8*)s)[0], 0x30, 0x39 ) || inRANGE(((const U8*)s)[0], 0x41, 0x46 ) || inRANGE(((const U8*)s)[0], 0x61, 0x66 ) ) ? 1\ + : ( ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xEF == ((const U8*)s)[0] ) ) ? ( ( 0xBC == ((const U8*)s)[1] ) ?\ + ( ( inRANGE(((const U8*)s)[2], 0x90, 0x99 ) || inRANGE(((const U8*)s)[2], 0xA1, 0xA6 ) ) ? 3 : 0 )\ + : ( ( 0xBD == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x81, 0x86 ) ) ) ? 3 : 0 ) : 0 )\ +: 0 ) +#endif + +# elif 'A' == 193 && '^' == 95 /* EBCDIC 1047 */ +#ifndef isXDIGIT_utf8_safe +# define isXDIGIT_utf8_safe(s,e) \ +( ( LIKELY((e) > (s)) ) ? \ + ( ( inRANGE(((const U8*)s)[0], 0x81, 0x86 ) || inRANGE(((const U8*)s)[0], 0xC1, 0xC6 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) ) ? 1\ + : ( ( ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\ + ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ? 4 : 0 )\ + : ( ( inRANGE(((const U8*)s)[2], 0x68, 0x69 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )\ +: 0 ) +#endif + +# elif 'A' == 193 && '^' == 176 /* EBCDIC 037 */ +#ifndef isXDIGIT_utf8_safe +# define isXDIGIT_utf8_safe(s,e) \ +( ( LIKELY((e) > (s)) ) ? \ + ( ( inRANGE(((const U8*)s)[0], 0x81, 0x86 ) || inRANGE(((const U8*)s)[0], 0xC1, 0xC6 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) ) ? 1\ + : ( ( ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\ + ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ? 4 : 0 )\ + : ( ( inRANGE(((const U8*)s)[2], 0x67, 0x68 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )\ +: 0 ) +#endif + +# else +# error Unknown character set +# endif +#ifndef isALPHA_LC_utf8_safe +# define isALPHA_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, ALPHA) +#endif + +# ifdef isALPHANUMERIC_utf8 +#ifndef isALPHANUMERIC_LC_utf8_safe +# define isALPHANUMERIC_LC_utf8_safe(s,e) \ + D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, ALPHANUMERIC) +#endif + +# else +#ifndef isALPHANUMERIC_LC_utf8_safe +# define isALPHANUMERIC_LC_utf8_safe(s,e) \ + (isALPHA_LC_utf8_safe(s,e) || isDIGIT_LC_utf8_safe(s,e)) +#endif + +# endif +#ifndef isBLANK_LC_utf8_safe +# define isBLANK_LC_utf8_safe(s,e) \ + D_PPP_IS_GENERIC_LC_UTF8_SAFE_BROKEN(s, e, BLANK) +#endif + +#ifndef isCNTRL_LC_utf8_safe +# define isCNTRL_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, CNTRL) +#endif + +#ifndef isDIGIT_LC_utf8_safe +# define isDIGIT_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, DIGIT) +#endif + +#ifndef isGRAPH_LC_utf8_safe +# define isGRAPH_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, GRAPH) #endif -#ifndef XST_mUV -# define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) ) + +# ifdef isIDCONT_utf8 +#ifndef isIDCONT_LC_utf8_safe +# define isIDCONT_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, IDCONT) #endif -#ifndef XSRETURN_UV -# define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END +# else +#ifndef isIDCONT_LC_utf8_safe +# define isIDCONT_LC_utf8_safe(s,e) isWORDCHAR_LC_utf8_safe(s,e) #endif -#ifndef PUSHu -# define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END + +# endif +#ifndef isIDFIRST_LC_utf8_safe +# define isIDFIRST_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, IDFIRST) #endif -#ifndef XPUSHu -# define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END +#ifndef isLOWER_LC_utf8_safe +# define isLOWER_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, LOWER) #endif -#ifdef HAS_MEMCMP -#ifndef memNE -# define memNE(s1,s2,l) (memcmp(s1,s2,l)) +#ifndef isPRINT_LC_utf8_safe +# define isPRINT_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, PRINT) #endif -#ifndef memEQ -# define memEQ(s1,s2,l) (!memcmp(s1,s2,l)) +# undef isPSXSPC_LC_utf8_safe /* Use the modern definition */ +#ifndef isPSXSPC_LC_utf8_safe +# define isPSXSPC_LC_utf8_safe(s,e) isSPACE_LC_utf8_safe(s,e) +#endif +#ifndef isPUNCT_LC_utf8_safe +# define isPUNCT_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, PUNCT) #endif -#else -#ifndef memNE -# define memNE(s1,s2,l) (bcmp(s1,s2,l)) +#ifndef isSPACE_LC_utf8_safe +# define isSPACE_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, SPACE) #endif -#ifndef memEQ -# define memEQ(s1,s2,l) (!bcmp(s1,s2,l)) +#ifndef isUPPER_LC_utf8_safe +# define isUPPER_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, UPPER) #endif +# ifdef isWORDCHAR_utf8 +#ifndef isWORDCHAR_LC_utf8_safe +# define isWORDCHAR_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, WORDCHAR) #endif -#ifndef MoveD -# define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t)) + +# else +#ifndef isWORDCHAR_LC_utf8_safe +# define isWORDCHAR_LC_utf8_safe(s,e) \ + (isALPHANUMERIC_LC_utf8_safe(s,e) || (*(s)) == '_') #endif -#ifndef CopyD -# define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t)) +# endif +#ifndef isXDIGIT_LC_utf8_safe +# define isXDIGIT_LC_utf8_safe(s,e) \ + D_PPP_IS_GENERIC_LC_UTF8_SAFE_BROKEN(s, e, XDIGIT) +#endif + +/* Warning: isALPHANUMERIC_utf8_safe, isALPHA_utf8_safe, isASCII_utf8_safe, + * isBLANK_utf8_safe, isCNTRL_utf8_safe, isDIGIT_utf8_safe, isGRAPH_utf8_safe, + * isIDCONT_utf8_safe, isIDFIRST_utf8_safe, isLOWER_utf8_safe, + * isPRINT_utf8_safe, isPSXSPC_utf8_safe, isPUNCT_utf8_safe, isSPACE_utf8_safe, + * isUPPER_utf8_safe, isWORDCHAR_utf8_safe, isWORDCHAR_utf8_safe, + * isXDIGIT_utf8_safe, + * isALPHANUMERIC_LC_utf8_safe, isALPHA_LC_utf8_safe, isASCII_LC_utf8_safe, + * isBLANK_LC_utf8_safe, isCNTRL_LC_utf8_safe, isDIGIT_LC_utf8_safe, + * isGRAPH_LC_utf8_safe, isIDCONT_LC_utf8_safe, isIDFIRST_LC_utf8_safe, + * isLOWER_LC_utf8_safe, isPRINT_LC_utf8_safe, isPSXSPC_LC_utf8_safe, + * isPUNCT_LC_utf8_safe, isSPACE_LC_utf8_safe, isUPPER_LC_utf8_safe, + * isWORDCHAR_LC_utf8_safe, isWORDCHAR_LC_utf8_safe, isXDIGIT_LC_utf8_safe, + * isALPHANUMERIC_uvchr, isALPHA_uvchr, isASCII_uvchr, isBLANK_uvchr, + * isCNTRL_uvchr, isDIGIT_uvchr, isGRAPH_uvchr, isIDCONT_uvchr, + * isIDFIRST_uvchr, isLOWER_uvchr, isPRINT_uvchr, isPSXSPC_uvchr, + * isPUNCT_uvchr, isSPACE_uvchr, isUPPER_uvchr, isWORDCHAR_uvchr, + * isWORDCHAR_uvchr, isXDIGIT_uvchr + * + * The UTF-8 handling is buggy in early Perls, and this can give inaccurate + * results for code points above 0xFF, until the implementation started + * settling down in 5.12 and 5.14 */ + #endif -#ifdef HAS_MEMSET -#ifndef ZeroD -# define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t)) +#define D_PPP_TOO_SHORT_MSG "Malformed UTF-8 character starting with:" \ + " \\x%02x (too short; %d bytes available, need" \ + " %d)\n" +/* Perls starting here had a new API which handled multi-character results */ +#if (PERL_BCDVERSION >= 0x5007003) +#ifndef toLOWER_uvchr +# define toLOWER_uvchr(c, s, l) UNI_TO_NATIVE(to_uni_lower(NATIVE_TO_UNI(c), s, l)) +#endif + +#ifndef toUPPER_uvchr +# define toUPPER_uvchr(c, s, l) UNI_TO_NATIVE(to_uni_upper(NATIVE_TO_UNI(c), s, l)) +#endif + +#ifndef toTITLE_uvchr +# define toTITLE_uvchr(c, s, l) UNI_TO_NATIVE(to_uni_title(NATIVE_TO_UNI(c), s, l)) +#endif + +#ifndef toFOLD_uvchr +# define toFOLD_uvchr(c, s, l) UNI_TO_NATIVE(to_uni_fold( NATIVE_TO_UNI(c), s, l)) +#endif + +# if (PERL_BCDVERSION != 0x5015006) /* Just this version is broken */ + + /* Prefer the macro to the function */ +# if defined toLOWER_utf8 +# define D_PPP_TO_LOWER_CALLEE(s,r,l) toLOWER_utf8(s,r,l) +# else +# define D_PPP_TO_LOWER_CALLEE(s,r,l) to_utf8_lower(s,r,l) +# endif +# if defined toTITLE_utf8 +# define D_PPP_TO_TITLE_CALLEE(s,r,l) toTITLE_utf8(s,r,l) +# else +# define D_PPP_TO_TITLE_CALLEE(s,r,l) to_utf8_title(s,r,l) +# endif +# if defined toUPPER_utf8 +# define D_PPP_TO_UPPER_CALLEE(s,r,l) toUPPER_utf8(s,r,l) +# else +# define D_PPP_TO_UPPER_CALLEE(s,r,l) to_utf8_upper(s,r,l) +# endif +# if defined toFOLD_utf8 +# define D_PPP_TO_FOLD_CALLEE(s,r,l) toFOLD_utf8(s,r,l) +# else +# define D_PPP_TO_FOLD_CALLEE(s,r,l) to_utf8_fold(s,r,l) +# endif +# else /* Below is 5.15.6, which failed to make the macros available +# outside of core, so we have to use the 'Perl_' form. khw +# decided it was easier to just handle this case than have to +# document the exception, and make an exception in the tests below +# */ +# define D_PPP_TO_LOWER_CALLEE(s,r,l) \ + Perl__to_utf8_lower_flags(aTHX_ s, r, l, 0, NULL) +# define D_PPP_TO_TITLE_CALLEE(s,r,l) \ + Perl__to_utf8_title_flags(aTHX_ s, r, l, 0, NULL) +# define D_PPP_TO_UPPER_CALLEE(s,r,l) \ + Perl__to_utf8_upper_flags(aTHX_ s, r, l, 0, NULL) +# define D_PPP_TO_FOLD_CALLEE(s,r,l) \ + Perl__to_utf8_fold_flags(aTHX_ s, r, l, FOLD_FLAGS_FULL, NULL) +# endif + +/* The actual implementation of the backported macros. If too short, croak, + * otherwise call the original that doesn't have an upper limit parameter */ +# define D_PPP_GENERIC_MULTI_ARG_TO(name, s, e,r,l) \ + (((((e) - (s)) <= 0) \ + /* We could just do nothing, but modern perls croak */ \ + ? (croak("Attempting case change on zero length string"), \ + 0) /* So looks like it returns something, and will compile */ \ + : ((e) - (s)) < UTF8SKIP(s)) \ + ? (croak(D_PPP_TOO_SHORT_MSG, \ + s[0], (int) ((e) - (s)), (int) UTF8SKIP(s)), \ + 0) \ + : D_PPP_TO_ ## name ## _CALLEE(s,r,l)) +#ifndef toUPPER_utf8_safe +# define toUPPER_utf8_safe(s,e,r,l) \ + D_PPP_GENERIC_MULTI_ARG_TO(UPPER,s,e,r,l) +#endif + +#ifndef toLOWER_utf8_safe +# define toLOWER_utf8_safe(s,e,r,l) \ + D_PPP_GENERIC_MULTI_ARG_TO(LOWER,s,e,r,l) +#endif + +#ifndef toTITLE_utf8_safe +# define toTITLE_utf8_safe(s,e,r,l) \ + D_PPP_GENERIC_MULTI_ARG_TO(TITLE,s,e,r,l) +#endif + +#ifndef toFOLD_utf8_safe +# define toFOLD_utf8_safe(s,e,r,l) \ + D_PPP_GENERIC_MULTI_ARG_TO(FOLD,s,e,r,l) +#endif + +#elif (PERL_BCDVERSION >= 0x5006000) + +/* Here we have UTF-8 support, but using the original API where the case + * changing functions merely returned the changed code point; hence they + * couldn't handle multi-character results. */ + +# ifdef uvchr_to_utf8 +# define D_PPP_UV_TO_UTF8 uvchr_to_utf8 +# else +# define D_PPP_UV_TO_UTF8 uv_to_utf8 +# endif + + /* Get the utf8 of the case changed value, and store its length; then have + * to re-calculate the changed case value in order to return it */ +# define D_PPP_GENERIC_SINGLE_ARG_TO_UVCHR(name, c, s, l) \ + (*(l) = (D_PPP_UV_TO_UTF8(s, \ + UNI_TO_NATIVE(to_uni_ ## name(NATIVE_TO_UNI(c)))) - (s)), \ + UNI_TO_NATIVE(to_uni_ ## name(NATIVE_TO_UNI(c)))) +#ifndef toLOWER_uvchr +# define toLOWER_uvchr(c, s, l) \ + D_PPP_GENERIC_SINGLE_ARG_TO_UVCHR(lower, c, s, l) +#endif + +#ifndef toUPPER_uvchr +# define toUPPER_uvchr(c, s, l) \ + D_PPP_GENERIC_SINGLE_ARG_TO_UVCHR(upper, c, s, l) +#endif + +#ifndef toTITLE_uvchr +# define toTITLE_uvchr(c, s, l) \ + D_PPP_GENERIC_SINGLE_ARG_TO_UVCHR(title, c, s, l) +#endif + +#ifndef toFOLD_uvchr +# define toFOLD_uvchr(c, s, l) toLOWER_uvchr(c, s, l) #endif +# define D_PPP_GENERIC_SINGLE_ARG_TO_UTF8(name, s, e, r, l) \ + (((((e) - (s)) <= 0) \ + ? (croak("Attempting case change on zero length string"), \ + 0) /* So looks like it returns something, and will compile */ \ + : ((e) - (s)) < UTF8SKIP(s)) \ + ? (croak(D_PPP_TOO_SHORT_MSG, \ + s[0], (int) ((e) - (s)), (int) UTF8SKIP(s)), \ + 0) \ + /* Get the changed code point and store its UTF-8 */ \ + : D_PPP_UV_TO_UTF8(r, to_utf8_ ## name(s)), \ + /* Then store its length, and re-get code point for return */ \ + *(l) = UTF8SKIP(r), to_utf8_ ## name(r)) + +/* Warning: toUPPER_utf8_safe, toLOWER_utf8_safe, toTITLE_utf8_safe, + * toUPPER_uvchr, toLOWER_uvchr, toTITLE_uvchr + The UTF-8 case changing operations had bugs before around 5.12 or 5.14; + this backport does not correct them. + + In perls before 7.3, multi-character case changing is not implemented; this + backport uses the simple case changes available in those perls. */ +#ifndef toUPPER_utf8_safe +# define toUPPER_utf8_safe(s,e,r,l) \ + D_PPP_GENERIC_SINGLE_ARG_TO_UTF8(upper, s, e, r, l) +#endif + +#ifndef toLOWER_utf8_safe +# define toLOWER_utf8_safe(s,e,r,l) \ + D_PPP_GENERIC_SINGLE_ARG_TO_UTF8(lower, s, e, r, l) +#endif + +#ifndef toTITLE_utf8_safe +# define toTITLE_utf8_safe(s,e,r,l) \ + D_PPP_GENERIC_SINGLE_ARG_TO_UTF8(title, s, e, r, l) +#endif + + /* Warning: toFOLD_utf8_safe, toFOLD_uvchr + The UTF-8 case changing operations had bugs before around 5.12 or 5.14; + this backport does not correct them. + + In perls before 7.3, case folding is not implemented; instead, this + backport substitutes simple (not multi-character, which isn't available) + lowercasing. This gives the correct result in most, but not all, instances + */ +#ifndef toFOLD_utf8_safe +# define toFOLD_utf8_safe(s,e,r,l) toLOWER_utf8_safe(s,e,r,l) +#endif + +#endif + +/* Until we figure out how to support this in older perls... */ +#if (PERL_BCDVERSION >= 0x5008000) +#ifndef HeUTF8 +# define HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \ + SvUTF8(HeKEY_sv(he)) : \ + (U32)HeKUTF8(he)) +#endif + +#endif +#ifndef C_ARRAY_LENGTH +# define C_ARRAY_LENGTH(a) (sizeof(a)/sizeof((a)[0])) +#endif + +#ifndef C_ARRAY_END +# define C_ARRAY_END(a) ((a) + C_ARRAY_LENGTH(a)) +#endif +#ifndef LIKELY +# define LIKELY(x) (x) +#endif + +#ifndef UNLIKELY +# define UNLIKELY(x) (x) +#endif + +#ifndef MUTABLE_PTR +#if defined(PERL_USE_GCC_BRACE_GROUPS) +# define MUTABLE_PTR(p) ({ void *_p = (p); _p; }) #else -#ifndef ZeroD -# define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d) +# define MUTABLE_PTR(p) ((void *) (p)) +#endif +#endif +#ifndef MUTABLE_AV +# define MUTABLE_AV(p) ((AV *)MUTABLE_PTR(p)) #endif +#ifndef MUTABLE_CV +# define MUTABLE_CV(p) ((CV *)MUTABLE_PTR(p)) #endif -#ifndef PoisonWith -# define PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)) + +#ifndef MUTABLE_GV +# define MUTABLE_GV(p) ((GV *)MUTABLE_PTR(p)) #endif -#ifndef PoisonNew -# define PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB) +#ifndef MUTABLE_HV +# define MUTABLE_HV(p) ((HV *)MUTABLE_PTR(p)) #endif -#ifndef PoisonFree -# define PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF) +#ifndef MUTABLE_IO +# define MUTABLE_IO(p) ((IO *)MUTABLE_PTR(p)) #endif -#ifndef Poison -# define Poison(d,n,t) PoisonFree(d,n,t) +#ifndef MUTABLE_SV +# define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p)) +#endif + +#if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf) +#if defined(PERL_USE_GCC_BRACE_GROUPS) +# define vnewSVpvf(pat, args) ({ SV *_sv = newSV(0); sv_vsetpvfn(_sv, (pat), strlen((pat)), (args), Null(SV**), 0, Null(bool*)); _sv; }) +#else +# define vnewSVpvf(pat, args) ((PL_Sv = newSV(0)), sv_vsetpvfn(PL_Sv, (pat), strlen((pat)), (args), Null(SV**), 0, Null(bool*)), PL_Sv) #endif -#ifndef Newx -# define Newx(v,n,t) New(0,v,n,t) #endif -#ifndef Newxc -# define Newxc(v,n,t,c) Newc(0,v,n,t,c) +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf) +# define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) #endif -#ifndef Newxz -# define Newxz(v,n,t) Newz(0,v,n,t) +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf) +# define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) #endif -#ifndef PERL_UNUSED_DECL -# ifdef HASATTRIBUTE -# if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER) -# define PERL_UNUSED_DECL -# else -# define PERL_UNUSED_DECL __attribute__((unused)) -# endif -# else -# define PERL_UNUSED_DECL -# endif +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg) +#if defined(NEED_sv_catpvf_mg) +static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV * const sv, const char * const pat, ...); +static +#else +extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV * const sv, const char * const pat, ...); #endif -#ifndef PERL_UNUSED_ARG -# if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */ -# include -# define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x)) -# else -# define PERL_UNUSED_ARG(x) ((void)x) -# endif +#if defined(NEED_sv_catpvf_mg) || defined(NEED_sv_catpvf_mg_GLOBAL) + +#define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg) + + +void +DPPP_(my_sv_catpvf_mg)(pTHX_ SV * const sv, const char * const pat, ...) +{ + va_list args; + va_start(args, pat); + sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + SvSETMAGIC(sv); + va_end(args); +} + +#endif #endif -#ifndef PERL_UNUSED_VAR -# define PERL_UNUSED_VAR(x) ((void)x) +#ifdef PERL_IMPLICIT_CONTEXT +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg_nocontext) +#if defined(NEED_sv_catpvf_mg_nocontext) +static void DPPP_(my_sv_catpvf_mg_nocontext)(SV * const sv, const char * const pat, ...); +static +#else +extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV * const sv, const char * const pat, ...); #endif -#ifndef PERL_UNUSED_CONTEXT -# ifdef USE_ITHREADS -# define PERL_UNUSED_CONTEXT PERL_UNUSED_ARG(my_perl) +#if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL) + +#define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) +#define Perl_sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) + + +void +DPPP_(my_sv_catpvf_mg_nocontext)(SV * const sv, const char * const pat, ...) +{ + dTHX; + va_list args; + va_start(args, pat); + sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + SvSETMAGIC(sv); + va_end(args); +} + +#endif +#endif +#endif + +/* sv_catpvf_mg depends on sv_catpvf_mg_nocontext */ +#ifndef sv_catpvf_mg +# ifdef PERL_IMPLICIT_CONTEXT +# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext # else -# define PERL_UNUSED_CONTEXT +# define sv_catpvf_mg Perl_sv_catpvf_mg # endif #endif -#ifndef NOOP -# define NOOP /*EMPTY*/(void)0 + +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf_mg) +# define sv_vcatpvf_mg(sv, pat, args) \ + STMT_START { \ + sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ + SvSETMAGIC(sv); \ + } STMT_END #endif -#ifndef dNOOP -# define dNOOP extern int /*@unused@*/ Perl___notused PERL_UNUSED_DECL +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg) +#if defined(NEED_sv_setpvf_mg) +static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV * const sv, const char * const pat, ...); +static +#else +extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV * const sv, const char * const pat, ...); #endif -#ifndef NVTYPE -# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) -# define NVTYPE long double -# else -# define NVTYPE double -# endif -typedef NVTYPE NV; +#if defined(NEED_sv_setpvf_mg) || defined(NEED_sv_setpvf_mg_GLOBAL) + +#define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg) + + +void +DPPP_(my_sv_setpvf_mg)(pTHX_ SV * const sv, const char * const pat, ...) +{ + va_list args; + va_start(args, pat); + sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + SvSETMAGIC(sv); + va_end(args); +} + +#endif #endif -#ifndef INT2PTR -# if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE) -# define PTRV UV -# define INT2PTR(any,d) (any)(d) -# else -# if PTRSIZE == LONGSIZE -# define PTRV unsigned long -# else -# define PTRV unsigned -# endif -# define INT2PTR(any,d) (any)(PTRV)(d) -# endif +#ifdef PERL_IMPLICIT_CONTEXT +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg_nocontext) +#if defined(NEED_sv_setpvf_mg_nocontext) +static void DPPP_(my_sv_setpvf_mg_nocontext)(SV * const sv, const char * const pat, ...); +static +#else +extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV * const sv, const char * const pat, ...); +#endif + +#if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL) + +#define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) +#define Perl_sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) + + +void +DPPP_(my_sv_setpvf_mg_nocontext)(SV * const sv, const char * const pat, ...) +{ + dTHX; + va_list args; + va_start(args, pat); + sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + SvSETMAGIC(sv); + va_end(args); +} + +#endif +#endif #endif -#ifndef PTR2ul -# if PTRSIZE == LONGSIZE -# define PTR2ul(p) (unsigned long)(p) +/* sv_setpvf_mg depends on sv_setpvf_mg_nocontext */ +#ifndef sv_setpvf_mg +# ifdef PERL_IMPLICIT_CONTEXT +# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext # else -# define PTR2ul(p) INT2PTR(unsigned long,p) +# define sv_setpvf_mg Perl_sv_setpvf_mg # endif #endif -#ifndef PTR2nat -# define PTR2nat(p) (PTRV)(p) -#endif -#ifndef NUM2PTR -# define NUM2PTR(any,d) (any)PTR2nat(d) +#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf_mg) +# define sv_vsetpvf_mg(sv, pat, args) \ + STMT_START { \ + sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ + SvSETMAGIC(sv); \ + } STMT_END #endif -#ifndef PTR2IV -# define PTR2IV(p) INT2PTR(IV,p) +/* Hint: sv_2pv_nolen + * Use the SvPV_nolen() or SvPV_nolen_const() macros instead of sv_2pv_nolen(). + */ +#ifndef sv_2pv_nolen +# define sv_2pv_nolen(sv) SvPV_nolen(sv) #endif -#ifndef PTR2UV -# define PTR2UV(p) INT2PTR(UV,p) -#endif +#ifdef SvPVbyte -#ifndef PTR2NV -# define PTR2NV(p) NUM2PTR(NV,p) -#endif +/* Hint: SvPVbyte + * Does not work in perl-5.6.1, ppport.h implements a version + * borrowed from perl-5.7.3. + */ -#undef START_EXTERN_C -#undef END_EXTERN_C -#undef EXTERN_C -#ifdef __cplusplus -# define START_EXTERN_C extern "C" { -# define END_EXTERN_C } -# define EXTERN_C extern "C" -#else -# define START_EXTERN_C -# define END_EXTERN_C -# define EXTERN_C extern +#if (PERL_BCDVERSION < 0x5007000) +#ifndef sv_2pvbyte +# define sv_2pvbyte(sv, lp) (sv_utf8_downgrade((sv), 0), SvPV((sv), *(lp))) #endif -#if defined(PERL_GCC_PEDANTIC) -# ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN -# define PERL_GCC_BRACE_GROUPS_FORBIDDEN -# endif -#endif +/* Hint: sv_2pvbyte + * Use the SvPVbyte() macro instead of sv_2pvbyte(). + */ + +/* Replace sv_2pvbyte with SvPVbyte */ + +#undef SvPVbyte + +#define SvPVbyte(sv, lp) \ + ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \ + ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp)) -#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus) -# ifndef PERL_USE_GCC_BRACE_GROUPS -# define PERL_USE_GCC_BRACE_GROUPS -# endif #endif -#undef STMT_START -#undef STMT_END -#ifdef PERL_USE_GCC_BRACE_GROUPS -# define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */ -# define STMT_END ) #else -# if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__) -# define STMT_START if (1) -# define STMT_END else (void)0 -# else -# define STMT_START do -# define STMT_END while (0) -# endif + +# define SvPVbyte SvPV +# define sv_2pvbyte sv_2pv + #endif -#ifndef boolSV -# define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no) +#ifndef sv_2pvbyte_nolen +# define sv_2pvbyte_nolen(sv) sv_2pv_nolen(sv) #endif -/* DEFSV appears first in 5.004_56 */ -#ifndef DEFSV -# define DEFSV GvSV(PL_defgv) -#endif +/* Hint: sv_pvn + * Always use the SvPV() macro instead of sv_pvn(). + */ -#ifndef SAVE_DEFSV -# define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv)) -#endif +/* Replace sv_pvn with SvPV */ -#ifndef DEFSV_set -# define DEFSV_set(sv) (DEFSV = (sv)) -#endif +/* Hint: sv_pvn_force + * Always use the SvPV_force() macro instead of sv_pvn_force(). + */ -/* Older perls (<=5.003) lack AvFILLp */ -#ifndef AvFILLp -# define AvFILLp AvFILL +/* Replace sv_pvn_force with SvPV_force */ + +/* If these are undefined, they're not handled by the core anyway */ +#ifndef SV_IMMEDIATE_UNREF +# define SV_IMMEDIATE_UNREF 0 #endif -#ifndef ERRSV -# define ERRSV get_sv("@",FALSE) + +#ifndef SV_GMAGIC +# define SV_GMAGIC 0 #endif -/* Hint: gv_stashpvn - * This function's backport doesn't support the length parameter, but - * rather ignores it. Portability can only be ensured if the length - * parameter is used for speed reasons, but the length can always be - * correctly computed from the string argument. - */ -#ifndef gv_stashpvn -# define gv_stashpvn(str,len,create) gv_stashpv(str,create) +#ifndef SV_COW_DROP_PV +# define SV_COW_DROP_PV 0 #endif -/* Replace: 1 */ -#ifndef get_cv -# define get_cv perl_get_cv +#ifndef SV_UTF8_NO_ENCODING +# define SV_UTF8_NO_ENCODING 0 #endif -#ifndef get_sv -# define get_sv perl_get_sv +#ifndef SV_CONST_RETURN +# define SV_CONST_RETURN 0 #endif -#ifndef get_av -# define get_av perl_get_av +#ifndef SV_MUTABLE_RETURN +# define SV_MUTABLE_RETURN 0 #endif -#ifndef get_hv -# define get_hv perl_get_hv +#ifndef SV_SMAGIC +# define SV_SMAGIC 0 #endif -/* Replace: 0 */ -#ifndef dUNDERBAR -# define dUNDERBAR dNOOP +#ifndef SV_HAS_TRAILING_NUL +# define SV_HAS_TRAILING_NUL 0 #endif -#ifndef UNDERBAR -# define UNDERBAR DEFSV +#ifndef SV_COW_SHARED_HASH_KEYS +# define SV_COW_SHARED_HASH_KEYS 0 #endif -#ifndef dAX -# define dAX I32 ax = MARK - PL_stack_base + 1 + +#if defined(PERL_USE_GCC_BRACE_GROUPS) +#ifndef sv_2pv_flags +# define sv_2pv_flags(sv, lp, flags) ({ SV *_sv = (sv); const I32 _flags = (flags); STRLEN *_lp = lp; _lp = _lp ? : &PL_na; (!(_flags & SV_GMAGIC) && SvGMAGICAL(_sv)) ? ({ char *_pv; SvGMAGICAL_off(_sv); _pv = sv_2pv(_sv, _lp); SvGMAGICAL_on(_sv); _pv; }) : sv_2pv(_sv, _lp); }) #endif -#ifndef dITEMS -# define dITEMS I32 items = SP - MARK +#ifndef sv_pvn_force_flags +# define sv_pvn_force_flags(sv, lp, flags) ({ SV *_sv = (sv); const I32 _flags = (flags); STRLEN *_lp = lp; _lp = _lp ? : &PL_na; (!(_flags & SV_GMAGIC) && SvGMAGICAL(_sv)) ? ({ char *_pv; SvGMAGICAL_off(_sv); _pv = sv_pvn_force(_sv, _lp); SvGMAGICAL_on(_sv); _pv; }) : sv_pvn_force(_sv, _lp); }) #endif -#ifndef dXSTARG -# define dXSTARG SV * targ = sv_newmortal() + +#else +#ifndef sv_2pv_flags +# define sv_2pv_flags(sv, lp, flags) ((PL_Sv = (sv)), (!((flags) & SV_GMAGIC) && SvGMAGICAL(PL_Sv)) ? (SvGMAGICAL_off(PL_Sv), (PL_Xpv = (XPV *)sv_2pv(PL_Sv, (lp) ? (lp) : &PL_na)), SvGMAGICAL_on(PL_Sv), (char *)PL_Xpv) : sv_2pv(PL_Sv, (lp) ? (lp) : &PL_na)) #endif -#ifndef dAXMARK -# define dAXMARK I32 ax = POPMARK; \ - register SV ** const mark = PL_stack_base + ax++ + +#ifndef sv_pvn_force_flags +# define sv_pvn_force_flags(sv, lp, flags) ((PL_Sv = (sv)), (!((flags) & SV_GMAGIC) && SvGMAGICAL(PL_Sv)) ? (SvGMAGICAL_off(PL_Sv), (PL_Xpv = (XPV *)sv_pvn_force(PL_Sv, (lp) ? (lp) : &PL_na)), SvGMAGICAL_on(PL_Sv), (char *)PL_Xpv) : sv_pvn_force(PL_Sv, (lp) ? (lp) : &PL_na)) #endif -#ifndef XSprePUSH -# define XSprePUSH (sp = PL_stack_base + ax - 1) + #endif -#if (PERL_BCDVERSION < 0x5005000) -# undef XSRETURN -# define XSRETURN(off) \ - STMT_START { \ - PL_stack_sp = PL_stack_base + ax + ((off) - 1); \ - return; \ - } STMT_END +#if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) ) +# define D_PPP_SVPV_NOLEN_LP_ARG &PL_na +#else +# define D_PPP_SVPV_NOLEN_LP_ARG 0 #endif -#ifndef XSPROTO -# define XSPROTO(name) void name(pTHX_ CV* cv) +#ifndef SvPV_const +# define SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC) #endif -#ifndef SVfARG -# define SVfARG(p) ((void*)(p)) -#endif -#ifndef PERL_ABS -# define PERL_ABS(x) ((x) < 0 ? -(x) : (x)) +#ifndef SvPV_mutable +# define SvPV_mutable(sv, lp) SvPV_flags_mutable(sv, lp, SV_GMAGIC) #endif -#ifndef dVAR -# define dVAR dNOOP +#ifndef SvPV_flags +# define SvPV_flags(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags)) #endif -#ifndef SVf -# define SVf "_" +#ifndef SvPV_flags_const +# define SvPV_flags_const(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \ + (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN)) #endif -#ifndef UTF8_MAXBYTES -# define UTF8_MAXBYTES UTF8_MAXLEN +#ifndef SvPV_flags_const_nolen +# define SvPV_flags_const_nolen(sv, flags) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? SvPVX_const(sv) : \ + (const char*) sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN)) #endif -#ifndef CPERLscope -# define CPERLscope(x) x +#ifndef SvPV_flags_mutable +# define SvPV_flags_mutable(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \ + sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #endif -#ifndef PERL_HASH -# define PERL_HASH(hash,str,len) \ - STMT_START { \ - const char *s_PeRlHaSh = str; \ - I32 i_PeRlHaSh = len; \ - U32 hash_PeRlHaSh = 0; \ - while (i_PeRlHaSh--) \ - hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \ - (hash) = hash_PeRlHaSh; \ - } STMT_END +#ifndef SvPV_force +# define SvPV_force(sv, lp) SvPV_force_flags(sv, lp, SV_GMAGIC) #endif -#ifndef PERLIO_FUNCS_DECL -# ifdef PERLIO_FUNCS_CONST -# define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs -# define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs) -# else -# define PERLIO_FUNCS_DECL(funcs) PerlIO_funcs funcs -# define PERLIO_FUNCS_CAST(funcs) (funcs) -# endif +#ifndef SvPV_force_nolen +# define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC) #endif -/* provide these typedefs for older perls */ -#if (PERL_BCDVERSION < 0x5009003) - -# ifdef ARGSproto -typedef OP* (CPERLscope(*Perl_ppaddr_t))(ARGSproto); -# else -typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX); -# endif +#ifndef SvPV_force_mutable +# define SvPV_force_mutable(sv, lp) SvPV_force_flags_mutable(sv, lp, SV_GMAGIC) +#endif -typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*); +#ifndef SvPV_force_nomg +# define SvPV_force_nomg(sv, lp) SvPV_force_flags(sv, lp, 0) +#endif +#ifndef SvPV_force_nomg_nolen +# define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0) +#endif +#ifndef SvPV_force_flags +# define SvPV_force_flags(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags)) +#endif +#ifndef SvPV_force_flags_nolen +# define SvPV_force_flags_nolen(sv, flags) \ + ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ + ? SvPVX(sv) : sv_pvn_force_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags)) +#endif +#ifndef SvPV_force_flags_mutable +# define SvPV_force_flags_mutable(sv, lp, flags) \ + ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ + ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \ + : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #endif -#ifndef isPSXSPC -# define isPSXSPC(c) (isSPACE(c) || (c) == '\v') +#ifndef SvPV_nolen +# define SvPV_nolen(sv) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC)) #endif - -#ifndef isBLANK -# define isBLANK(c) ((c) == ' ' || (c) == '\t') +#ifndef SvPV_nolen_const +# define SvPV_nolen_const(sv) \ + ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? SvPVX_const(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN)) #endif -#ifdef EBCDIC -#ifndef isALNUMC -# define isALNUMC(c) isalnum(c) +# if defined(PERL_USE_GCC_BRACE_GROUPS) +#ifndef SvPVx_nolen_const +# define SvPVx_nolen_const(sv) ({SV *sV_ = (sv); SvPV_nolen_const(sV_); }) #endif -#ifndef isASCII -# define isASCII(c) isascii(c) +# else +#ifndef SvPVx_nolen_const +# define SvPVx_nolen_const(sv) (PL_Sv = sv, SvPV_nolen_const(PL_Sv)) #endif -#ifndef isCNTRL -# define isCNTRL(c) iscntrl(c) +# endif +#ifndef SvPV_nomg +# define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0) #endif -#ifndef isGRAPH -# define isGRAPH(c) isgraph(c) +#ifndef SvPV_nomg_const +# define SvPV_nomg_const(sv, lp) SvPV_flags_const(sv, lp, 0) #endif -#ifndef isPRINT -# define isPRINT(c) isprint(c) +#ifndef SvPV_nomg_const_nolen +# define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0) #endif -#ifndef isPUNCT -# define isPUNCT(c) ispunct(c) +#ifndef SvPV_nomg_nolen +# define SvPV_nomg_nolen(sv) ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, 0)) #endif - -#ifndef isXDIGIT -# define isXDIGIT(c) isxdigit(c) +#ifndef SvPV_renew +# define SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \ + SvPV_set((sv), (char *) saferealloc( \ + (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \ + } STMT_END #endif - -#else -# if (PERL_BCDVERSION < 0x5010000) -/* Hint: isPRINT - * The implementation in older perl versions includes all of the - * isSPACE() characters, which is wrong. The version provided by - * Devel::PPPort always overrides a present buggy version. - */ -# undef isPRINT -# endif -#ifndef isALNUMC -# define isALNUMC(c) (isALPHA(c) || isDIGIT(c)) +#ifndef SvPVCLEAR +# define SvPVCLEAR(sv) sv_setpvs((sv), "") #endif - -#ifndef isASCII -# define isASCII(c) ((c) <= 127) +#ifndef WARN_ALL +# define WARN_ALL 0 #endif -#ifndef isCNTRL -# define isCNTRL(c) ((c) < ' ' || (c) == 127) +#ifndef WARN_CLOSURE +# define WARN_CLOSURE 1 #endif -#ifndef isGRAPH -# define isGRAPH(c) (isALNUM(c) || isPUNCT(c)) +#ifndef WARN_DEPRECATED +# define WARN_DEPRECATED 2 #endif -#ifndef isPRINT -# define isPRINT(c) (((c) >= 32 && (c) < 127)) +#ifndef WARN_EXITING +# define WARN_EXITING 3 #endif -#ifndef isPUNCT -# define isPUNCT(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126)) +#ifndef WARN_GLOB +# define WARN_GLOB 4 #endif -#ifndef isXDIGIT -# define isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) +#ifndef WARN_IO +# define WARN_IO 5 #endif +#ifndef WARN_CLOSED +# define WARN_CLOSED 6 #endif -#ifndef PERL_SIGNALS_UNSAFE_FLAG - -#define PERL_SIGNALS_UNSAFE_FLAG 0x0001 - -#if (PERL_BCDVERSION < 0x5008000) -# define D_PPP_PERL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG -#else -# define D_PPP_PERL_SIGNALS_INIT 0 +#ifndef WARN_EXEC +# define WARN_EXEC 7 #endif -#if defined(NEED_PL_signals) -static U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; -#elif defined(NEED_PL_signals_GLOBAL) -U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; -#else -extern U32 DPPP_(my_PL_signals); +#ifndef WARN_LAYER +# define WARN_LAYER 8 #endif -#define PL_signals DPPP_(my_PL_signals) +#ifndef WARN_NEWLINE +# define WARN_NEWLINE 9 #endif -/* Hint: PL_ppaddr - * Calling an op via PL_ppaddr requires passing a context argument - * for threaded builds. Since the context argument is different for - * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will - * automatically be defined as the correct argument. - */ - -#if (PERL_BCDVERSION <= 0x5005005) -/* Replace: 1 */ -# define PL_ppaddr ppaddr -# define PL_no_modify no_modify -/* Replace: 0 */ +#ifndef WARN_PIPE +# define WARN_PIPE 10 #endif -#if (PERL_BCDVERSION <= 0x5004005) -/* Replace: 1 */ -# define PL_DBsignal DBsignal -# define PL_DBsingle DBsingle -# define PL_DBsub DBsub -# define PL_DBtrace DBtrace -# define PL_Sv Sv -# define PL_bufend bufend -# define PL_bufptr bufptr -# define PL_compiling compiling -# define PL_copline copline -# define PL_curcop curcop -# define PL_curstash curstash -# define PL_debstash debstash -# define PL_defgv defgv -# define PL_diehook diehook -# define PL_dirty dirty -# define PL_dowarn dowarn -# define PL_errgv errgv -# define PL_error_count error_count -# define PL_expect expect -# define PL_hexdigit hexdigit -# define PL_hints hints -# define PL_in_my in_my -# define PL_laststatval laststatval -# define PL_lex_state lex_state -# define PL_lex_stuff lex_stuff -# define PL_linestr linestr -# define PL_na na -# define PL_perl_destruct_level perl_destruct_level -# define PL_perldb perldb -# define PL_rsfp_filters rsfp_filters -# define PL_rsfp rsfp -# define PL_stack_base stack_base -# define PL_stack_sp stack_sp -# define PL_statcache statcache -# define PL_stdingv stdingv -# define PL_sv_arenaroot sv_arenaroot -# define PL_sv_no sv_no -# define PL_sv_undef sv_undef -# define PL_sv_yes sv_yes -# define PL_tainted tainted -# define PL_tainting tainting -# define PL_tokenbuf tokenbuf -/* Replace: 0 */ +#ifndef WARN_UNOPENED +# define WARN_UNOPENED 11 #endif -/* Warning: PL_parser - * For perl versions earlier than 5.9.5, this is an always - * non-NULL dummy. Also, it cannot be dereferenced. Don't - * use it if you can avoid is and unless you absolutely know - * what you're doing. - * If you always check that PL_parser is non-NULL, you can - * define DPPP_PL_parser_NO_DUMMY to avoid the creation of - * a dummy parser structure. - */ - -#if (PERL_BCDVERSION >= 0x5009005) -# ifdef DPPP_PL_parser_NO_DUMMY -# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ - (croak("panic: PL_parser == NULL in %s:%d", \ - __FILE__, __LINE__), (yy_parser *) NULL))->var) -# else -# ifdef DPPP_PL_parser_NO_DUMMY_WARNING -# define D_PPP_parser_dummy_warning(var) -# else -# define D_PPP_parser_dummy_warning(var) \ - warn("warning: dummy PL_" #var " used in %s:%d", __FILE__, __LINE__), -# endif -# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ - (D_PPP_parser_dummy_warning(var) &DPPP_(dummy_PL_parser)))->var) -#if defined(NEED_PL_parser) -static yy_parser DPPP_(dummy_PL_parser); -#elif defined(NEED_PL_parser_GLOBAL) -yy_parser DPPP_(dummy_PL_parser); -#else -extern yy_parser DPPP_(dummy_PL_parser); +#ifndef WARN_MISC +# define WARN_MISC 12 #endif -# endif - -/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */ -/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf - * Do not use this variable unless you know exactly what you're - * doint. It is internal to the perl parser and may change or even - * be removed in the future. As of perl 5.9.5, you have to check - * for (PL_parser != NULL) for this variable to have any effect. - * An always non-NULL PL_parser dummy is provided for earlier - * perl versions. - * If PL_parser is NULL when you try to access this variable, a - * dummy is being accessed instead and a warning is issued unless - * you define DPPP_PL_parser_NO_DUMMY_WARNING. - * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access - * this variable will croak with a panic message. - */ - -# define PL_expect D_PPP_my_PL_parser_var(expect) -# define PL_copline D_PPP_my_PL_parser_var(copline) -# define PL_rsfp D_PPP_my_PL_parser_var(rsfp) -# define PL_rsfp_filters D_PPP_my_PL_parser_var(rsfp_filters) -# define PL_linestr D_PPP_my_PL_parser_var(linestr) -# define PL_bufptr D_PPP_my_PL_parser_var(bufptr) -# define PL_bufend D_PPP_my_PL_parser_var(bufend) -# define PL_lex_state D_PPP_my_PL_parser_var(lex_state) -# define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff) -# define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf) -# define PL_in_my D_PPP_my_PL_parser_var(in_my) -# define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash) -# define PL_error_count D_PPP_my_PL_parser_var(error_count) - +#ifndef WARN_NUMERIC +# define WARN_NUMERIC 13 +#endif -#else +#ifndef WARN_ONCE +# define WARN_ONCE 14 +#endif -/* ensure that PL_parser != NULL and cannot be dereferenced */ -# define PL_parser ((void *) 1) +#ifndef WARN_OVERFLOW +# define WARN_OVERFLOW 15 +#endif +#ifndef WARN_PACK +# define WARN_PACK 16 #endif -#ifndef mPUSHs -# define mPUSHs(s) PUSHs(sv_2mortal(s)) + +#ifndef WARN_PORTABLE +# define WARN_PORTABLE 17 #endif -#ifndef PUSHmortal -# define PUSHmortal PUSHs(sv_newmortal()) +#ifndef WARN_RECURSION +# define WARN_RECURSION 18 #endif -#ifndef mPUSHp -# define mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l)) +#ifndef WARN_REDEFINE +# define WARN_REDEFINE 19 #endif -#ifndef mPUSHn -# define mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n)) +#ifndef WARN_REGEXP +# define WARN_REGEXP 20 #endif -#ifndef mPUSHi -# define mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i)) +#ifndef WARN_SEVERE +# define WARN_SEVERE 21 #endif -#ifndef mPUSHu -# define mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u)) +#ifndef WARN_DEBUGGING +# define WARN_DEBUGGING 22 #endif -#ifndef mXPUSHs -# define mXPUSHs(s) XPUSHs(sv_2mortal(s)) + +#ifndef WARN_INPLACE +# define WARN_INPLACE 23 #endif -#ifndef XPUSHmortal -# define XPUSHmortal XPUSHs(sv_newmortal()) +#ifndef WARN_INTERNAL +# define WARN_INTERNAL 24 #endif -#ifndef mXPUSHp -# define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END +#ifndef WARN_MALLOC +# define WARN_MALLOC 25 #endif -#ifndef mXPUSHn -# define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END +#ifndef WARN_SIGNAL +# define WARN_SIGNAL 26 #endif -#ifndef mXPUSHi -# define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END +#ifndef WARN_SUBSTR +# define WARN_SUBSTR 27 #endif -#ifndef mXPUSHu -# define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END +#ifndef WARN_SYNTAX +# define WARN_SYNTAX 28 #endif -/* Replace: 1 */ -#ifndef call_sv -# define call_sv perl_call_sv +#ifndef WARN_AMBIGUOUS +# define WARN_AMBIGUOUS 29 #endif -#ifndef call_pv -# define call_pv perl_call_pv +#ifndef WARN_BAREWORD +# define WARN_BAREWORD 30 #endif -#ifndef call_argv -# define call_argv perl_call_argv +#ifndef WARN_DIGIT +# define WARN_DIGIT 31 #endif -#ifndef call_method -# define call_method perl_call_method -#endif -#ifndef eval_sv -# define eval_sv perl_eval_sv +#ifndef WARN_PARENTHESIS +# define WARN_PARENTHESIS 32 #endif -/* Replace: 0 */ -#ifndef PERL_LOADMOD_DENY -# define PERL_LOADMOD_DENY 0x1 +#ifndef WARN_PRECEDENCE +# define WARN_PRECEDENCE 33 #endif -#ifndef PERL_LOADMOD_NOIMPORT -# define PERL_LOADMOD_NOIMPORT 0x2 +#ifndef WARN_PRINTF +# define WARN_PRINTF 34 #endif -#ifndef PERL_LOADMOD_IMPORT_OPS -# define PERL_LOADMOD_IMPORT_OPS 0x4 +#ifndef WARN_PROTOTYPE +# define WARN_PROTOTYPE 35 #endif -#ifndef G_METHOD -# define G_METHOD 64 -# ifdef call_sv -# undef call_sv -# endif -# if (PERL_BCDVERSION < 0x5006000) -# define call_sv(sv, flags) ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \ - (flags) & ~G_METHOD) : perl_call_sv(sv, flags)) -# else -# define call_sv(sv, flags) ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \ - (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags)) -# endif +#ifndef WARN_QW +# define WARN_QW 36 #endif -/* Replace perl_eval_pv with eval_pv */ +#ifndef WARN_RESERVED +# define WARN_RESERVED 37 +#endif -#ifndef eval_pv -#if defined(NEED_eval_pv) -static SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); -static -#else -extern SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); +#ifndef WARN_SEMICOLON +# define WARN_SEMICOLON 38 #endif -#ifdef eval_pv -# undef eval_pv +#ifndef WARN_TAINT +# define WARN_TAINT 39 #endif -#define eval_pv(a,b) DPPP_(my_eval_pv)(aTHX_ a,b) -#define Perl_eval_pv DPPP_(my_eval_pv) -#if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL) +#ifndef WARN_THREADS +# define WARN_THREADS 40 +#endif -SV* -DPPP_(my_eval_pv)(char *p, I32 croak_on_error) -{ - dSP; - SV* sv = newSVpv(p, 0); +#ifndef WARN_UNINITIALIZED +# define WARN_UNINITIALIZED 41 +#endif - PUSHMARK(sp); - eval_sv(sv, G_SCALAR); - SvREFCNT_dec(sv); +#ifndef WARN_UNPACK +# define WARN_UNPACK 42 +#endif - SPAGAIN; - sv = POPs; - PUTBACK; +#ifndef WARN_UNTIE +# define WARN_UNTIE 43 +#endif - if (croak_on_error && SvTRUE(GvSV(errgv))) - croak(SvPVx(GvSV(errgv), na)); +#ifndef WARN_UTF8 +# define WARN_UTF8 44 +#endif - return sv; -} +#ifndef WARN_VOID +# define WARN_VOID 45 +#endif +#ifndef WARN_ASSERTIONS +# define WARN_ASSERTIONS 46 #endif +#ifndef packWARN +# define packWARN(a) (a) #endif -#ifndef vload_module -#if defined(NEED_vload_module) -static void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args); -static -#else -extern void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args); +#ifndef packWARN2 +# define packWARN2(a,b) (packWARN(a) << 8 | (b)) #endif -#ifdef vload_module -# undef vload_module +#ifndef packWARN3 +# define packWARN3(a,b,c) (packWARN2(a,b) << 8 | (c)) #endif -#define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d) -#define Perl_vload_module DPPP_(my_vload_module) - -#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL) - -void -DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args) -{ - dTHR; - dVAR; - OP *veop, *imop; - - OP * const modname = newSVOP(OP_CONST, 0, name); - /* 5.005 has a somewhat hacky force_normal that doesn't croak on - SvREADONLY() if PL_compiling is true. Current perls take care in - ck_require() to correctly turn off SvREADONLY before calling - force_normal_flags(). This seems a better fix than fudging PL_compiling - */ - SvREADONLY_off(((SVOP*)modname)->op_sv); - modname->op_private |= OPpCONST_BARE; - if (ver) { - veop = newSVOP(OP_CONST, 0, ver); - } - else - veop = NULL; - if (flags & PERL_LOADMOD_NOIMPORT) { - imop = sawparens(newNULLLIST()); - } - else if (flags & PERL_LOADMOD_IMPORT_OPS) { - imop = va_arg(*args, OP*); - } - else { - SV *sv; - imop = NULL; - sv = va_arg(*args, SV*); - while (sv) { - imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv)); - sv = va_arg(*args, SV*); - } - } - { - const line_t ocopline = PL_copline; - COP * const ocurcop = PL_curcop; - const int oexpect = PL_expect; -#if (PERL_BCDVERSION >= 0x5004000) - utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0), - veop, modname, imop); -#else - utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(), - modname, imop); +#ifndef packWARN4 +# define packWARN4(a,b,c,d) (packWARN3(a,b,c) << 8 | (d)) #endif - PL_expect = oexpect; - PL_copline = ocopline; - PL_curcop = ocurcop; - } -} +#ifndef ckWARN +# ifdef G_WARN_ON +# define ckWARN(a) (PL_dowarn & G_WARN_ON) +# else +# define ckWARN(a) PL_dowarn +# endif #endif +#ifndef ckWARN2 +# define ckWARN2(a,b) (ckWARN(a) || ckWARN(b)) #endif -#ifndef load_module -#if defined(NEED_load_module) -static void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...); -static -#else -extern void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...); +#ifndef ckWARN3 +# define ckWARN3(a,b,c) (ckWARN(c) || ckWARN2(a,b)) #endif -#ifdef load_module -# undef load_module +#ifndef ckWARN4 +# define ckWARN4(a,b,c,d) (ckWARN(d) || ckWARN3(a,b,c)) #endif -#define load_module DPPP_(my_load_module) -#define Perl_load_module DPPP_(my_load_module) -#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL) - -void -DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...) -{ - va_list args; - va_start(args, ver); - vload_module(flags, name, ver, &args); - va_end(args); -} - -#endif -#endif -#ifndef newRV_inc -# define newRV_inc(sv) newRV(sv) /* Replace */ +#ifndef ckWARN_d +# ifdef isLEXWARN_off +# define ckWARN_d(a) (isLEXWARN_off || ckWARN(a)) +# else +# define ckWARN_d(a) 1 +# endif #endif - -#ifndef newRV_noinc -#if defined(NEED_newRV_noinc) -static SV * DPPP_(my_newRV_noinc)(SV *sv); -static -#else -extern SV * DPPP_(my_newRV_noinc)(SV *sv); +#ifndef ckWARN2_d +# define ckWARN2_d(a,b) (ckWARN_d(a) || ckWARN_d(b)) #endif -#ifdef newRV_noinc -# undef newRV_noinc +#ifndef ckWARN3_d +# define ckWARN3_d(a,b,c) (ckWARN_d(c) || ckWARN2_d(a,b)) #endif -#define newRV_noinc(a) DPPP_(my_newRV_noinc)(aTHX_ a) -#define Perl_newRV_noinc DPPP_(my_newRV_noinc) -#if defined(NEED_newRV_noinc) || defined(NEED_newRV_noinc_GLOBAL) -SV * -DPPP_(my_newRV_noinc)(SV *sv) -{ - SV *rv = (SV *)newRV(sv); - SvREFCNT_dec(sv); - return rv; -} +#ifndef ckWARN4_d +# define ckWARN4_d(a,b,c,d) (ckWARN_d(d) || ckWARN3_d(a,b,c)) #endif +#ifndef vwarner +# define vwarner(err, pat, argsp) \ + STMT_START { SV *sv; \ + PERL_UNUSED_ARG(err); \ + sv = vnewSVpvf(pat, argsp); \ + sv_2mortal(sv); \ + warn("%s", SvPV_nolen(sv)); \ + } STMT_END #endif -/* Hint: newCONSTSUB - * Returns a CV* as of perl-5.7.1. This return value is not supported - * by Devel::PPPort. - */ - -/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */ -#if (PERL_BCDVERSION < 0x5004063) && (PERL_BCDVERSION != 0x5004005) -#if defined(NEED_newCONSTSUB) -static void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); +#if (PERL_BCDVERSION >= 0x5004000) && !defined(warner) +# if defined(NEED_warner) +static void DPPP_(my_warner)(U32 err, const char * pat, ...); static #else -extern void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); +extern void DPPP_(my_warner)(U32 err, const char * pat, ...); #endif -#ifdef newCONSTSUB -# undef newCONSTSUB -#endif -#define newCONSTSUB(a,b,c) DPPP_(my_newCONSTSUB)(aTHX_ a,b,c) -#define Perl_newCONSTSUB DPPP_(my_newCONSTSUB) +#if defined(NEED_warner) || defined(NEED_warner_GLOBAL) -#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL) +#define Perl_warner DPPP_(my_warner) -/* This is just a trick to avoid a dependency of newCONSTSUB on PL_parser */ -/* (There's no PL_parser in perl < 5.005, so this is completely safe) */ -#define D_PPP_PL_copline PL_copline void -DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) +DPPP_(my_warner)(U32 err, const char *pat, ...) { - U32 oldhints = PL_hints; - HV *old_cop_stash = PL_curcop->cop_stash; - HV *old_curstash = PL_curstash; - line_t oldline = PL_curcop->cop_line; - PL_curcop->cop_line = D_PPP_PL_copline; - - PL_hints &= ~HINT_BLOCK_SCOPE; - if (stash) - PL_curstash = PL_curcop->cop_stash = stash; - - newSUB( - -#if (PERL_BCDVERSION < 0x5003022) - start_subparse(), -#elif (PERL_BCDVERSION == 0x5003022) - start_subparse(0), -#else /* 5.003_23 onwards */ - start_subparse(FALSE, 0), -#endif - - newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)), - newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */ - newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv)) - ); - - PL_hints = oldhints; - PL_curcop->cop_stash = old_cop_stash; - PL_curstash = old_curstash; - PL_curcop->cop_line = oldline; + va_list args; + va_start(args, pat); + vwarner(err, pat, &args); + va_end(args); } -#endif -#endif -/* - * Boilerplate macros for initializing and accessing interpreter-local - * data from C. All statics in extensions should be reworked to use - * this, if you want to make the extension thread-safe. See ext/re/re.xs - * for an example of the use of these macros. - * - * Code that uses these macros is responsible for the following: - * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts" - * 2. Declare a typedef named my_cxt_t that is a structure that contains - * all the data that needs to be interpreter-local. - * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t. - * 4. Use the MY_CXT_INIT macro such that it is called exactly once - * (typically put in the BOOT: section). - * 5. Use the members of the my_cxt_t structure everywhere as - * MY_CXT.member. - * 6. Use the dMY_CXT macro (a declaration) in all the functions that - * access MY_CXT. - */ +# define warner Perl_warner -#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \ - defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT) +# define Perl_warner_nocontext Perl_warner -#ifndef START_MY_CXT +# endif +#endif -/* This must appear in all extensions that define a my_cxt_t structure, - * right after the definition (i.e. at file scope). The non-threads - * case below uses it to declare the data as static. */ -#define START_MY_CXT +#if (PERL_BCDVERSION >= 0x5004000) && !defined(ck_warner) +# if defined(NEED_ck_warner) +static void DPPP_(my_ck_warner)(pTHX_ U32 err, const char * pat, ...); +static +#else +extern void DPPP_(my_ck_warner)(pTHX_ U32 err, const char * pat, ...); +#endif -#if (PERL_BCDVERSION < 0x5004068) -/* Fetches the SV that keeps the per-interpreter data. */ -#define dMY_CXT_SV \ - SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE) -#else /* >= perl5.004_68 */ -#define dMY_CXT_SV \ - SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \ - sizeof(MY_CXT_KEY)-1, TRUE) -#endif /* < perl5.004_68 */ +#if defined(NEED_ck_warner) || defined(NEED_ck_warner_GLOBAL) -/* This declaration should be used within all functions that use the - * interpreter-local data. */ -#define dMY_CXT \ - dMY_CXT_SV; \ - my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv)) +#define Perl_ck_warner DPPP_(my_ck_warner) -/* Creates and zeroes the per-interpreter data. - * (We allocate my_cxtp in a Perl SV so that it will be released when - * the interpreter goes away.) */ -#define MY_CXT_INIT \ - dMY_CXT_SV; \ - /* newSV() allocates one more than needed */ \ - my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ - Zero(my_cxtp, 1, my_cxt_t); \ - sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) -/* This macro must be used to access members of the my_cxt_t structure. - * e.g. MYCXT.some_data */ -#define MY_CXT (*my_cxtp) +void +DPPP_(my_ck_warner)(pTHX_ U32 err, const char *pat, ...) +{ + va_list args; + + if ( ! ckWARN((err ) & 0xFF) + && ! ckWARN((err >> 8) & 0xFF) + && ! ckWARN((err >> 16) & 0xFF) + && ! ckWARN((err >> 24) & 0xFF)) + { + return; + } -/* Judicious use of these macros can reduce the number of times dMY_CXT - * is used. Use is similar to pTHX, aTHX etc. */ -#define pMY_CXT my_cxt_t *my_cxtp -#define pMY_CXT_ pMY_CXT, -#define _pMY_CXT ,pMY_CXT -#define aMY_CXT my_cxtp -#define aMY_CXT_ aMY_CXT, -#define _aMY_CXT ,aMY_CXT + va_start(args, pat); + vwarner(err, pat, &args); + va_end(args); +} -#endif /* START_MY_CXT */ +# define ck_warner Perl_ck_warner +# endif +#endif -#ifndef MY_CXT_CLONE -/* Clones the per-interpreter data. */ -#define MY_CXT_CLONE \ - dMY_CXT_SV; \ - my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ - Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\ - sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) +#if (PERL_BCDVERSION >= 0x5004000) && !defined(ck_warner_d) +# if defined(NEED_ck_warner_d) +static void DPPP_(my_ck_warner_d)(pTHX_ U32 err, const char * pat, ...); +static +#else +extern void DPPP_(my_ck_warner_d)(pTHX_ U32 err, const char * pat, ...); #endif -#else /* single interpreter */ +#if defined(NEED_ck_warner_d) || defined(NEED_ck_warner_d_GLOBAL) -#ifndef START_MY_CXT +#define Perl_ck_warner_d DPPP_(my_ck_warner_d) -#define START_MY_CXT static my_cxt_t my_cxt; -#define dMY_CXT_SV dNOOP -#define dMY_CXT dNOOP -#define MY_CXT_INIT NOOP -#define MY_CXT my_cxt -#define pMY_CXT void -#define pMY_CXT_ -#define _pMY_CXT -#define aMY_CXT -#define aMY_CXT_ -#define _aMY_CXT +void +DPPP_(my_ck_warner_d)(pTHX_ U32 err, const char *pat, ...) +{ + va_list args; -#endif /* START_MY_CXT */ + if ( ! ckWARN_d((err ) & 0xFF) + && ! ckWARN_d((err >> 8) & 0xFF) + && ! ckWARN_d((err >> 16) & 0xFF) + && ! ckWARN_d((err >> 24) & 0xFF)) + { + return; + } -#ifndef MY_CXT_CLONE -#define MY_CXT_CLONE NOOP -#endif + va_start(args, pat); + vwarner(err, pat, &args); + va_end(args); +} + +# define ck_warner_d Perl_ck_warner_d + +# endif #endif #ifndef IVdf # if IVSIZE == LONGSIZE -# define IVdf "ld" -# define UVuf "lu" -# define UVof "lo" -# define UVxf "lx" -# define UVXf "lX" -# else -# if IVSIZE == INTSIZE -# define IVdf "d" -# define UVuf "u" -# define UVof "o" -# define UVxf "x" -# define UVXf "X" -# endif +# define IVdf "ld" +# define UVuf "lu" +# define UVof "lo" +# define UVxf "lx" +# define UVXf "lX" +# elif IVSIZE == INTSIZE +# define IVdf "d" +# define UVuf "u" +# define UVof "o" +# define UVxf "x" +# define UVXf "X" +# else +# error "cannot define IV/UV formats" # endif #endif @@ -4664,1139 +14497,1269 @@ # define NVgf "g" # endif #endif - -#ifndef SvREFCNT_inc -# ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc(sv) \ - ({ \ - SV * const _sv = (SV*)(sv); \ - if (_sv) \ - (SvREFCNT(_sv))++; \ - _sv; \ - }) -# else -# define SvREFCNT_inc(sv) \ - ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL) -# endif +#ifndef sv_setuv +# define sv_setuv(sv, uv) \ + STMT_START { \ + UV TeMpUv = uv; \ + if (TeMpUv <= IV_MAX) \ + sv_setiv(sv, TeMpUv); \ + else \ + sv_setnv(sv, (double)TeMpUv); \ + } STMT_END +#endif +#ifndef newSVuv +# define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv)) #endif -#ifndef SvREFCNT_inc_simple -# ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc_simple(sv) \ - ({ \ - if (sv) \ - (SvREFCNT(sv))++; \ - (SV *)(sv); \ - }) -# else -# define SvREFCNT_inc_simple(sv) \ - ((sv) ? (SvREFCNT(sv)++,(SV*)(sv)) : NULL) -# endif +#if defined(PERL_USE_GCC_BRACE_GROUPS) +#ifndef sv_2uv +# define sv_2uv(sv) ({ SV *_sv = (sv); (UV) (SvNOK(_sv) ? SvNV(_sv) : sv_2nv(_sv)); }) #endif -#ifndef SvREFCNT_inc_NN -# ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc_NN(sv) \ - ({ \ - SV * const _sv = (SV*)(sv); \ - SvREFCNT(_sv)++; \ - _sv; \ - }) -# else -# define SvREFCNT_inc_NN(sv) \ - (PL_Sv=(SV*)(sv),++(SvREFCNT(PL_Sv)),PL_Sv) -# endif +#else +#ifndef sv_2uv +# define sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv))) #endif -#ifndef SvREFCNT_inc_void -# ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc_void(sv) \ - ({ \ - SV * const _sv = (SV*)(sv); \ - if (_sv) \ - (void)(SvREFCNT(_sv)++); \ - }) -# else -# define SvREFCNT_inc_void(sv) \ - (void)((PL_Sv=(SV*)(sv)) ? ++(SvREFCNT(PL_Sv)) : 0) -# endif #endif -#ifndef SvREFCNT_inc_simple_void -# define SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END +#ifndef SvUVX +# define SvUVX(sv) ((UV)SvIVX(sv)) #endif -#ifndef SvREFCNT_inc_simple_NN -# define SvREFCNT_inc_simple_NN(sv) (++SvREFCNT(sv), (SV*)(sv)) +#ifndef SvUVXx +# define SvUVXx(sv) SvUVX(sv) #endif -#ifndef SvREFCNT_inc_void_NN -# define SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) +#ifndef SvUV +# define SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv)) #endif -#ifndef SvREFCNT_inc_simple_void_NN -# define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) +#if defined(PERL_USE_GCC_BRACE_GROUPS) +#ifndef SvUVx +# define SvUVx(sv) ({ SV *_sv = (sv)); SvUV(_sv); }) #endif -#ifndef newSV_type - -#if defined(NEED_newSV_type) -static SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); -static #else -extern SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); -#endif - -#ifdef newSV_type -# undef newSV_type +#ifndef SvUVx +# define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv)) #endif -#define newSV_type(a) DPPP_(my_newSV_type)(aTHX_ a) -#define Perl_newSV_type DPPP_(my_newSV_type) - -#if defined(NEED_newSV_type) || defined(NEED_newSV_type_GLOBAL) - -SV* -DPPP_(my_newSV_type)(pTHX_ svtype const t) -{ - SV* const sv = newSV(0); - sv_upgrade(sv, t); - return sv; -} #endif +/* Hint: sv_uv + * Always use the SvUVx() macro instead of sv_uv(). + */ +/* Replace sv_uv with SvUVx */ +#ifndef sv_uv +# define sv_uv(sv) SvUVx(sv) #endif -#if (PERL_BCDVERSION < 0x5006000) -# define D_PPP_CONSTPV_ARG(x) ((char *) (x)) -#else -# define D_PPP_CONSTPV_ARG(x) (x) +#if !defined(SvUOK) && defined(SvIOK_UV) +# define SvUOK(sv) SvIOK_UV(sv) #endif -#ifndef newSVpvn -# define newSVpvn(data,len) ((data) \ - ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \ - : newSV(0)) +#ifndef XST_mUV +# define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) ) #endif -#ifndef newSVpvn_utf8 -# define newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0) + +#ifndef XSRETURN_UV +# define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END #endif -#ifndef SVf_UTF8 -# define SVf_UTF8 0 +#ifndef PUSHu +# define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END #endif -#ifndef newSVpvn_flags +#ifndef XPUSHu +# define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END +#endif -#if defined(NEED_newSVpvn_flags) -static SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); +#if !defined(my_strnlen) +#if defined(NEED_my_strnlen) +static Size_t DPPP_(my_my_strnlen)(const char * str, Size_t maxlen); static #else -extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); +extern Size_t DPPP_(my_my_strnlen)(const char * str, Size_t maxlen); #endif -#ifdef newSVpvn_flags -# undef newSVpvn_flags -#endif -#define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c) -#define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags) +#if defined(NEED_my_strnlen) || defined(NEED_my_strnlen_GLOBAL) -#if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL) +#define my_strnlen DPPP_(my_my_strnlen) +#define Perl_my_strnlen DPPP_(my_my_strnlen) -SV * -DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags) + +Size_t +DPPP_(my_my_strnlen)(const char *str, Size_t maxlen) { - SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len); - SvFLAGS(sv) |= (flags & SVf_UTF8); - return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv; -} + const char *p = str; -#endif + while(maxlen-- && *p) + p++; -#endif + return p - str; +} -/* Backwards compatibility stuff... :-( */ -#if !defined(NEED_sv_2pv_flags) && defined(NEED_sv_2pv_nolen) -# define NEED_sv_2pv_flags #endif -#if !defined(NEED_sv_2pv_flags_GLOBAL) && defined(NEED_sv_2pv_nolen_GLOBAL) -# define NEED_sv_2pv_flags_GLOBAL #endif -/* Hint: sv_2pv_nolen - * Use the SvPV_nolen() or SvPV_nolen_const() macros instead of sv_2pv_nolen(). - */ -#ifndef sv_2pv_nolen -# define sv_2pv_nolen(sv) SvPV_nolen(sv) +#ifdef HAS_MEMCMP +#ifndef memNE +# define memNE(s1,s2,l) (memcmp(s1,s2,l)) #endif -#ifdef SvPVbyte - -/* Hint: SvPVbyte - * Does not work in perl-5.6.1, ppport.h implements a version - * borrowed from perl-5.7.3. - */ - -#if (PERL_BCDVERSION < 0x5007000) +#ifndef memEQ +# define memEQ(s1,s2,l) (!memcmp(s1,s2,l)) +#endif -#if defined(NEED_sv_2pvbyte) -static char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); -static #else -extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); +#ifndef memNE +# define memNE(s1,s2,l) (bcmp(s1,s2,l)) #endif -#ifdef sv_2pvbyte -# undef sv_2pvbyte +#ifndef memEQ +# define memEQ(s1,s2,l) (!bcmp(s1,s2,l)) #endif -#define sv_2pvbyte(a,b) DPPP_(my_sv_2pvbyte)(aTHX_ a,b) -#define Perl_sv_2pvbyte DPPP_(my_sv_2pvbyte) - -#if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL) - -char * -DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp) -{ - sv_utf8_downgrade(sv,0); - return SvPV(sv,*lp); -} #endif +#ifndef memEQs +# define memEQs(s1, l, s2) \ + (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1))) +#endif -/* Hint: sv_2pvbyte - * Use the SvPVbyte() macro instead of sv_2pvbyte(). - */ - -#undef SvPVbyte +#ifndef memNEs +# define memNEs(s1, l, s2) !memEQs(s1, l, s2) +#endif +#ifndef memCHRs +# define memCHRs(s, c) ((const char *) memchr("" s "" , c, sizeof(s)-1)) +#endif +#ifndef MoveD +# define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t)) +#endif -#define SvPVbyte(sv, lp) \ - ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \ - ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp)) +#ifndef CopyD +# define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t)) +#endif +#ifdef HAS_MEMSET +#ifndef ZeroD +# define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t)) #endif #else - -# define SvPVbyte SvPV -# define sv_2pvbyte sv_2pv +#ifndef ZeroD +# define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d) +#endif #endif -#ifndef sv_2pvbyte_nolen -# define sv_2pvbyte_nolen(sv) sv_2pv_nolen(sv) +#ifndef PoisonWith +# define PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)) #endif -/* Hint: sv_pvn - * Always use the SvPV() macro instead of sv_pvn(). - */ - -/* Hint: sv_pvn_force - * Always use the SvPV_force() macro instead of sv_pvn_force(). - */ +#ifndef PoisonNew +# define PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB) +#endif -/* If these are undefined, they're not handled by the core anyway */ -#ifndef SV_IMMEDIATE_UNREF -# define SV_IMMEDIATE_UNREF 0 +#ifndef PoisonFree +# define PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF) #endif -#ifndef SV_GMAGIC -# define SV_GMAGIC 0 +#ifndef Poison +# define Poison(d,n,t) PoisonFree(d,n,t) +#endif +#ifndef Newx +# define Newx(v,n,t) New(0,v,n,t) #endif -#ifndef SV_COW_DROP_PV -# define SV_COW_DROP_PV 0 +#ifndef Newxc +# define Newxc(v,n,t,c) Newc(0,v,n,t,c) #endif -#ifndef SV_UTF8_NO_ENCODING -# define SV_UTF8_NO_ENCODING 0 +#ifndef Newxz +# define Newxz(v,n,t) Newz(0,v,n,t) #endif -#ifndef SV_NOSTEAL -# define SV_NOSTEAL 0 +#ifdef NEED_mess_sv +#define NEED_mess #endif -#ifndef SV_CONST_RETURN -# define SV_CONST_RETURN 0 +#ifdef NEED_mess +#define NEED_mess_nocontext +#define NEED_vmess +#endif + +#ifndef croak_sv +#if (PERL_BCDVERSION >= 0x5007003) || ( (PERL_BCDVERSION >= 0x5006001) && (PERL_BCDVERSION < 0x5007000) ) +# if ( (PERL_BCDVERSION >= 0x5008000) && (PERL_BCDVERSION < 0x5008009) ) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5010001) ) +# define D_PPP_FIX_UTF8_ERRSV_FOR_SV(sv) \ + STMT_START { \ + SV *_errsv = ERRSV; \ + SvFLAGS(_errsv) = (SvFLAGS(_errsv) & ~SVf_UTF8) | \ + (SvFLAGS(sv) & SVf_UTF8); \ + } STMT_END +# else +# define D_PPP_FIX_UTF8_ERRSV_FOR_SV(sv) STMT_START {} STMT_END +# endif +# define croak_sv(sv) \ + STMT_START { \ + SV *_sv = (sv); \ + if (SvROK(_sv)) { \ + sv_setsv(ERRSV, _sv); \ + croak(NULL); \ + } else { \ + D_PPP_FIX_UTF8_ERRSV_FOR_SV(_sv); \ + croak("%" SVf, SVfARG(_sv)); \ + } \ + } STMT_END +#elif (PERL_BCDVERSION >= 0x5004000) +# define croak_sv(sv) croak("%" SVf, SVfARG(sv)) +#else +# define croak_sv(sv) croak("%s", SvPV_nolen(sv)) +#endif #endif -#ifndef SV_MUTABLE_RETURN -# define SV_MUTABLE_RETURN 0 +#ifndef die_sv +#if defined(NEED_die_sv) +static OP * DPPP_(my_die_sv)(pTHX_ SV * baseex); +static +#else +extern OP * DPPP_(my_die_sv)(pTHX_ SV * baseex); #endif -#ifndef SV_SMAGIC -# define SV_SMAGIC 0 +#if defined(NEED_die_sv) || defined(NEED_die_sv_GLOBAL) + +#ifdef die_sv +# undef die_sv #endif +#define die_sv(a) DPPP_(my_die_sv)(aTHX_ a) +#define Perl_die_sv DPPP_(my_die_sv) -#ifndef SV_HAS_TRAILING_NUL -# define SV_HAS_TRAILING_NUL 0 +OP * +DPPP_(my_die_sv)(pTHX_ SV *baseex) +{ + croak_sv(baseex); + return (OP *)NULL; +} #endif - -#ifndef SV_COW_SHARED_HASH_KEYS -# define SV_COW_SHARED_HASH_KEYS 0 #endif -#if (PERL_BCDVERSION < 0x5007002) +#ifndef warn_sv +#if (PERL_BCDVERSION >= 0x5004000) +# define warn_sv(sv) warn("%" SVf, SVfARG(sv)) +#else +# define warn_sv(sv) warn("%s", SvPV_nolen(sv)) +#endif +#endif -#if defined(NEED_sv_2pv_flags) -static char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); +#if ! defined vmess && (PERL_BCDVERSION >= 0x5004000) +# if defined(NEED_vmess) +static SV * DPPP_(my_vmess)(pTHX_ const char * pat, va_list * args); static #else -extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); +extern SV * DPPP_(my_vmess)(pTHX_ const char * pat, va_list * args); #endif -#ifdef sv_2pv_flags -# undef sv_2pv_flags +#if defined(NEED_vmess) || defined(NEED_vmess_GLOBAL) + +#ifdef vmess +# undef vmess #endif -#define sv_2pv_flags(a,b,c) DPPP_(my_sv_2pv_flags)(aTHX_ a,b,c) -#define Perl_sv_2pv_flags DPPP_(my_sv_2pv_flags) +#define vmess(a,b) DPPP_(my_vmess)(aTHX_ a,b) +#define Perl_vmess DPPP_(my_vmess) -#if defined(NEED_sv_2pv_flags) || defined(NEED_sv_2pv_flags_GLOBAL) -char * -DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) +SV* +DPPP_(my_vmess)(pTHX_ const char* pat, va_list* args) { - STRLEN n_a = (STRLEN) flags; - return sv_2pv(sv, lp ? lp : &n_a); + mess(pat, args); + return PL_mess_sv; } +# endif +#endif +#if (PERL_BCDVERSION < 0x5006000) && (PERL_BCDVERSION >= 0x5004000) +#undef mess #endif -#if defined(NEED_sv_pvn_force_flags) -static char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); +#if !defined(mess_nocontext) && !defined(Perl_mess_nocontext) && (PERL_BCDVERSION >= 0x5004000) +#if defined(NEED_mess_nocontext) +static SV * DPPP_(my_mess_nocontext)(const char * pat, ...); static #else -extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); +extern SV * DPPP_(my_mess_nocontext)(const char * pat, ...); #endif -#ifdef sv_pvn_force_flags -# undef sv_pvn_force_flags -#endif -#define sv_pvn_force_flags(a,b,c) DPPP_(my_sv_pvn_force_flags)(aTHX_ a,b,c) -#define Perl_sv_pvn_force_flags DPPP_(my_sv_pvn_force_flags) +#if defined(NEED_mess_nocontext) || defined(NEED_mess_nocontext_GLOBAL) -#if defined(NEED_sv_pvn_force_flags) || defined(NEED_sv_pvn_force_flags_GLOBAL) +#define mess_nocontext DPPP_(my_mess_nocontext) +#define Perl_mess_nocontext DPPP_(my_mess_nocontext) -char * -DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) +SV* +DPPP_(my_mess_nocontext)(const char* pat, ...) { - STRLEN n_a = (STRLEN) flags; - return sv_pvn_force(sv, lp ? lp : &n_a); + dTHX; + SV *sv; + va_list args; + va_start(args, pat); + sv = vmess(pat, &args); + va_end(args); + return sv; } - #endif - #endif -#if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) ) -# define DPPP_SVPV_NOLEN_LP_ARG &PL_na +#ifndef mess +#if defined(NEED_mess) +static SV * DPPP_(my_mess)(pTHX_ const char * pat, ...); +static #else -# define DPPP_SVPV_NOLEN_LP_ARG 0 -#endif -#ifndef SvPV_const -# define SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC) +extern SV * DPPP_(my_mess)(pTHX_ const char * pat, ...); #endif -#ifndef SvPV_mutable -# define SvPV_mutable(sv, lp) SvPV_flags_mutable(sv, lp, SV_GMAGIC) -#endif -#ifndef SvPV_flags -# define SvPV_flags(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags)) -#endif -#ifndef SvPV_flags_const -# define SvPV_flags_const(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \ - (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN)) -#endif -#ifndef SvPV_flags_const_nolen -# define SvPV_flags_const_nolen(sv, flags) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? SvPVX_const(sv) : \ - (const char*) sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN)) +#if defined(NEED_mess) || defined(NEED_mess_GLOBAL) + +#define Perl_mess DPPP_(my_mess) + +SV* +DPPP_(my_mess)(pTHX_ const char* pat, ...) +{ + SV *sv; + va_list args; + va_start(args, pat); + sv = vmess(pat, &args); + va_end(args); + return sv; +} +#ifdef mess_nocontext +#define mess mess_nocontext +#else +#define mess Perl_mess_nocontext #endif -#ifndef SvPV_flags_mutable -# define SvPV_flags_mutable(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \ - sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #endif -#ifndef SvPV_force -# define SvPV_force(sv, lp) SvPV_force_flags(sv, lp, SV_GMAGIC) #endif -#ifndef SvPV_force_nolen -# define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC) +#if ! defined mess_sv && (PERL_BCDVERSION >= 0x5004000) +#if defined(NEED_mess_sv) +static SV * DPPP_(my_mess_sv)(pTHX_ SV * basemsg, bool consume); +static +#else +extern SV * DPPP_(my_mess_sv)(pTHX_ SV * basemsg, bool consume); #endif -#ifndef SvPV_force_mutable -# define SvPV_force_mutable(sv, lp) SvPV_force_flags_mutable(sv, lp, SV_GMAGIC) -#endif +#if defined(NEED_mess_sv) || defined(NEED_mess_sv_GLOBAL) -#ifndef SvPV_force_nomg -# define SvPV_force_nomg(sv, lp) SvPV_force_flags(sv, lp, 0) +#ifdef mess_sv +# undef mess_sv #endif +#define mess_sv(a,b) DPPP_(my_mess_sv)(aTHX_ a,b) +#define Perl_mess_sv DPPP_(my_mess_sv) -#ifndef SvPV_force_nomg_nolen -# define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0) -#endif -#ifndef SvPV_force_flags -# define SvPV_force_flags(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags)) -#endif -#ifndef SvPV_force_flags_nolen -# define SvPV_force_flags_nolen(sv, flags) \ - ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ - ? SvPVX(sv) : sv_pvn_force_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags)) -#endif -#ifndef SvPV_force_flags_mutable -# define SvPV_force_flags_mutable(sv, lp, flags) \ - ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ - ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \ - : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) -#endif -#ifndef SvPV_nolen -# define SvPV_nolen(sv) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC)) -#endif -#ifndef SvPV_nolen_const -# define SvPV_nolen_const(sv) \ - ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? SvPVX_const(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN)) +SV * +DPPP_(my_mess_sv)(pTHX_ SV *basemsg, bool consume) +{ + SV *tmp; + SV *ret; + + if (SvPOK(basemsg) && SvCUR(basemsg) && *(SvEND(basemsg)-1) == '\n') { + if (consume) + return basemsg; + ret = mess(""); + SvSetSV_nosteal(ret, basemsg); + return ret; + } + + if (consume) { + sv_catsv(basemsg, mess("")); + return basemsg; + } + + ret = mess(""); + tmp = newSVsv(ret); + SvSetSV_nosteal(ret, basemsg); + sv_catsv(ret, tmp); + sv_dec(tmp); + return ret; +} #endif -#ifndef SvPV_nomg -# define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0) #endif -#ifndef SvPV_nomg_const -# define SvPV_nomg_const(sv, lp) SvPV_flags_const(sv, lp, 0) +#ifndef warn_nocontext +#define warn_nocontext warn #endif -#ifndef SvPV_nomg_const_nolen -# define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0) -#endif -#ifndef SvPV_renew -# define SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \ - SvPV_set((sv), (char *) saferealloc( \ - (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \ - } STMT_END -#endif -#ifndef SvMAGIC_set -# define SvMAGIC_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ - (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END +#ifndef croak_nocontext +#define croak_nocontext croak #endif -#if (PERL_BCDVERSION < 0x5009003) -#ifndef SvPVX_const -# define SvPVX_const(sv) ((const char*) (0 + SvPVX(sv))) +#ifndef croak_no_modify +#define croak_no_modify() croak_nocontext("%s", PL_no_modify) +#define Perl_croak_no_modify() croak_no_modify() #endif -#ifndef SvPVX_mutable -# define SvPVX_mutable(sv) (0 + SvPVX(sv)) +#ifndef croak_memory_wrap +#if (PERL_BCDVERSION >= 0x5009002) || ( (PERL_BCDVERSION >= 0x5008006) && (PERL_BCDVERSION < 0x5009000) ) +# define croak_memory_wrap() croak_nocontext("%s", PL_memory_wrap) +#else +# define croak_memory_wrap() croak_nocontext("panic: memory wrap") #endif -#ifndef SvRV_set -# define SvRV_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ - (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END #endif +#ifndef croak_xs_usage +#if defined(NEED_croak_xs_usage) +static void DPPP_(my_croak_xs_usage)(const CV * const cv, const char * const params); +static #else -#ifndef SvPVX_const -# define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv)) +extern void DPPP_(my_croak_xs_usage)(const CV * const cv, const char * const params); #endif -#ifndef SvPVX_mutable -# define SvPVX_mutable(sv) ((sv)->sv_u.svu_pv) +#if defined(NEED_croak_xs_usage) || defined(NEED_croak_xs_usage_GLOBAL) + +#define croak_xs_usage DPPP_(my_croak_xs_usage) +#define Perl_croak_xs_usage DPPP_(my_croak_xs_usage) + +#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE +#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params) + +void +DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params) +{ + dTHX; + const GV *const gv = CvGV(cv); + + PERL_ARGS_ASSERT_CROAK_XS_USAGE; + + if (gv) { + const char *const gvname = GvNAME(gv); + const HV *const stash = GvSTASH(gv); + const char *const hvname = stash ? HvNAME(stash) : NULL; + + if (hvname) + croak("Usage: %s::%s(%s)", hvname, gvname, params); + else + croak("Usage: %s(%s)", gvname, params); + } else { + /* Pants. I don't think that it should be possible to get here. */ + croak("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params); + } +} #endif -#ifndef SvRV_set -# define SvRV_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ - ((sv)->sv_u.svu_rv = (val)); } STMT_END #endif - #endif -#ifndef SvSTASH_set -# define SvSTASH_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ - (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END +#ifndef mPUSHs +# define mPUSHs(s) PUSHs(sv_2mortal(s)) #endif -#if (PERL_BCDVERSION < 0x5004000) -#ifndef SvUV_set -# define SvUV_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ - (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END +#ifndef PUSHmortal +# define PUSHmortal PUSHs(sv_newmortal()) #endif -#else -#ifndef SvUV_set -# define SvUV_set(sv, val) \ - STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ - (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END +#ifndef mPUSHp +# define mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l)) #endif +#ifndef mPUSHn +# define mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n)) #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf) -#if defined(NEED_vnewSVpvf) -static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); -static -#else -extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); +#ifndef mPUSHi +# define mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i)) #endif -#ifdef vnewSVpvf -# undef vnewSVpvf +#ifndef mPUSHu +# define mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u)) #endif -#define vnewSVpvf(a,b) DPPP_(my_vnewSVpvf)(aTHX_ a,b) -#define Perl_vnewSVpvf DPPP_(my_vnewSVpvf) - -#if defined(NEED_vnewSVpvf) || defined(NEED_vnewSVpvf_GLOBAL) - -SV * -DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args) -{ - register SV *sv = newSV(0); - sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); - return sv; -} - +#ifndef mXPUSHs +# define mXPUSHs(s) XPUSHs(sv_2mortal(s)) #endif + +#ifndef XPUSHmortal +# define XPUSHmortal XPUSHs(sv_newmortal()) #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf) -# define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) +#ifndef mXPUSHp +# define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf) -# define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) +#ifndef mXPUSHn +# define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg) -#if defined(NEED_sv_catpvf_mg) -static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); -static -#else -extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); +#ifndef mXPUSHi +# define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END #endif -#define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg) +#ifndef mXPUSHu +# define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END +#endif -#if defined(NEED_sv_catpvf_mg) || defined(NEED_sv_catpvf_mg_GLOBAL) +/* Replace: 1 */ +#ifndef call_sv +# define call_sv perl_call_sv +#endif -void -DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...) -{ - va_list args; - va_start(args, pat); - sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); - SvSETMAGIC(sv); - va_end(args); -} +#ifndef call_pv +# define call_pv perl_call_pv +#endif +#ifndef call_argv +# define call_argv perl_call_argv #endif + +#ifndef call_method +# define call_method perl_call_method #endif -#ifdef PERL_IMPLICIT_CONTEXT -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg_nocontext) -#if defined(NEED_sv_catpvf_mg_nocontext) -static void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); -static -#else -extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); +#ifndef eval_sv +# define eval_sv perl_eval_sv #endif -#define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) -#define Perl_sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) +#if (PERL_BCDVERSION >= 0x5003098) && (PERL_BCDVERSION < 0x5006000) +#ifndef eval_pv +# define eval_pv perl_eval_pv +#endif -#if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL) +#endif +/* Replace: 0 */ -void -DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...) -{ - dTHX; - va_list args; - va_start(args, pat); - sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); - SvSETMAGIC(sv); - va_end(args); -} +#if (PERL_BCDVERSION < 0x5006000) +#ifndef Perl_eval_sv +# define Perl_eval_sv perl_eval_sv +#endif + +#if (PERL_BCDVERSION >= 0x5003098) +#ifndef Perl_eval_pv +# define Perl_eval_pv perl_eval_pv +#endif #endif #endif +#ifndef G_LIST +# define G_LIST G_ARRAY /* Replace */ +#endif +#ifndef PERL_LOADMOD_DENY +# define PERL_LOADMOD_DENY 0x1 #endif -/* sv_catpvf_mg depends on sv_catpvf_mg_nocontext */ -#ifndef sv_catpvf_mg -# ifdef PERL_IMPLICIT_CONTEXT -# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext -# else -# define sv_catpvf_mg Perl_sv_catpvf_mg -# endif +#ifndef PERL_LOADMOD_NOIMPORT +# define PERL_LOADMOD_NOIMPORT 0x2 #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf_mg) -# define sv_vcatpvf_mg(sv, pat, args) \ - STMT_START { \ - sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ - SvSETMAGIC(sv); \ - } STMT_END +#ifndef PERL_LOADMOD_IMPORT_OPS +# define PERL_LOADMOD_IMPORT_OPS 0x4 #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg) -#if defined(NEED_sv_setpvf_mg) -static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); -static +#if defined(PERL_USE_GCC_BRACE_GROUPS) +# define D_PPP_CROAK_IF_ERROR(cond) ({ SV *_errsv; ((cond) && (_errsv = ERRSV) && (SvROK(_errsv) || SvTRUE(_errsv)) && (croak_sv(_errsv), 1)); }) #else -extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); +# define D_PPP_CROAK_IF_ERROR(cond) ((cond) && (SvROK(ERRSV) || SvTRUE(ERRSV)) && (croak_sv(ERRSV), 1)) #endif -#define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg) - -#if defined(NEED_sv_setpvf_mg) || defined(NEED_sv_setpvf_mg_GLOBAL) - -void -DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...) -{ - va_list args; - va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); - SvSETMAGIC(sv); - va_end(args); -} +#ifndef G_METHOD +# define G_METHOD 64 +# ifdef call_sv +# undef call_sv +# endif +# if (PERL_BCDVERSION < 0x5006000) +# define call_sv(sv, flags) ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \ + (flags) & ~G_METHOD) : perl_call_sv(sv, flags)) +# else +# define call_sv(sv, flags) ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \ + (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags)) +# endif +#endif +#ifndef G_RETHROW +# define G_RETHROW 8192 +# ifdef eval_sv +# undef eval_sv +# endif +# if defined(PERL_USE_GCC_BRACE_GROUPS) +# define eval_sv(sv, flags) ({ I32 _flags = (flags); I32 _ret = Perl_eval_sv(aTHX_ sv, (_flags & ~G_RETHROW)); D_PPP_CROAK_IF_ERROR(_flags & G_RETHROW); _ret; }) +# else +# define eval_sv(sv, flags) ((PL_na = Perl_eval_sv(aTHX_ sv, ((flags) & ~G_RETHROW))), D_PPP_CROAK_IF_ERROR((flags) & G_RETHROW), (I32)PL_na) +# endif #endif + +/* + * This implementation of eval_pv fails on compilers that don't allow + * statements nested within expressions. However, we don't care about the bug + * it's trying to fix, because we only call eval_pv with croak_on_error=0. + * So, pending an upstream fix for this, just remove it. + */ +#ifdef NOT_USED +/* Older Perl versions have broken croak_on_error=1 */ +#if (PERL_BCDVERSION < 0x5031002) +# ifdef eval_pv +# undef eval_pv +# if defined(PERL_USE_GCC_BRACE_GROUPS) +# define eval_pv(p, croak_on_error) ({ SV *_sv = Perl_eval_pv(aTHX_ p, 0); D_PPP_CROAK_IF_ERROR(croak_on_error); _sv; }) +# else +# define eval_pv(p, croak_on_error) ((PL_Sv = Perl_eval_pv(aTHX_ p, 0)), D_PPP_CROAK_IF_ERROR(croak_on_error), PL_Sv) +# endif +# endif #endif +#endif /* NOT_USED */ -#ifdef PERL_IMPLICIT_CONTEXT -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg_nocontext) -#if defined(NEED_sv_setpvf_mg_nocontext) -static void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); +/* This is backport for Perl 5.3.97d and older which do not provide perl_eval_pv */ +#ifndef eval_pv +#if defined(NEED_eval_pv) +static SV * DPPP_(my_eval_pv)(const char * p, I32 croak_on_error); static #else -extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); +extern SV * DPPP_(my_eval_pv)(const char * p, I32 croak_on_error); #endif -#define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) -#define Perl_sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) +#if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL) -#if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL) +#ifdef eval_pv +# undef eval_pv +#endif +#define eval_pv(a,b) DPPP_(my_eval_pv)(aTHX_ a,b) +#define Perl_eval_pv DPPP_(my_eval_pv) -void -DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...) + +SV* +DPPP_(my_eval_pv)(const char *p, I32 croak_on_error) { - dTHX; - va_list args; - va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); - SvSETMAGIC(sv); - va_end(args); -} + dSP; + SV* sv = newSVpv(p, 0); -#endif -#endif -#endif + PUSHMARK(sp); + eval_sv(sv, G_SCALAR); + SvREFCNT_dec(sv); -/* sv_setpvf_mg depends on sv_setpvf_mg_nocontext */ -#ifndef sv_setpvf_mg -# ifdef PERL_IMPLICIT_CONTEXT -# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext -# else -# define sv_setpvf_mg Perl_sv_setpvf_mg -# endif -#endif + SPAGAIN; + sv = POPs; + PUTBACK; -#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf_mg) -# define sv_vsetpvf_mg(sv, pat, args) \ - STMT_START { \ - sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ - SvSETMAGIC(sv); \ - } STMT_END -#endif + D_PPP_CROAK_IF_ERROR(croak_on_error); -#ifndef newSVpvn_share + return sv; +} -#if defined(NEED_newSVpvn_share) -static SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash); +#endif +#endif + +#if ! defined(vload_module) && defined(start_subparse) +#if defined(NEED_vload_module) +static void DPPP_(my_vload_module)(U32 flags, SV * name, SV * ver, va_list * args); static #else -extern SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash); +extern void DPPP_(my_vload_module)(U32 flags, SV * name, SV * ver, va_list * args); #endif -#ifdef newSVpvn_share -# undef newSVpvn_share +#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL) + +#ifdef vload_module +# undef vload_module #endif -#define newSVpvn_share(a,b,c) DPPP_(my_newSVpvn_share)(aTHX_ a,b,c) -#define Perl_newSVpvn_share DPPP_(my_newSVpvn_share) +#define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d) +#define Perl_vload_module DPPP_(my_vload_module) -#if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL) -SV * -DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash) +void +DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args) { - SV *sv; - if (len < 0) - len = -len; - if (!hash) - PERL_HASH(hash, (char*) src, len); - sv = newSVpvn((char *) src, len); - sv_upgrade(sv, SVt_PVIV); - SvIVX(sv) = hash; - SvREADONLY_on(sv); - SvPOK_on(sv); - return sv; -} + dTHR; + dVAR; + OP *veop, *imop; -#endif + OP * const modname = newSVOP(OP_CONST, 0, name); + /* 5.005 has a somewhat hacky force_normal that doesn't croak on + SvREADONLY() if PL_compiling is true. Current perls take care in + ck_require() to correctly turn off SvREADONLY before calling + force_normal_flags(). This seems a better fix than fudging PL_compiling + */ + SvREADONLY_off(((SVOP*)modname)->op_sv); + modname->op_private |= OPpCONST_BARE; + if (ver) { + veop = newSVOP(OP_CONST, 0, ver); + } + else + veop = NULL; + if (flags & PERL_LOADMOD_NOIMPORT) { + imop = sawparens(newNULLLIST()); + } + else if (flags & PERL_LOADMOD_IMPORT_OPS) { + imop = va_arg(*args, OP*); + } + else { + SV *sv; + imop = NULL; + sv = va_arg(*args, SV*); + while (sv) { + imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv)); + sv = va_arg(*args, SV*); + } + } + { + const line_t ocopline = PL_copline; + COP * const ocurcop = PL_curcop; + const int oexpect = PL_expect; + + utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0), +#if (PERL_BCDVERSION > 0x5003000) + veop, +#endif + modname, imop); + PL_expect = oexpect; + PL_copline = ocopline; + PL_curcop = ocurcop; + } +} #endif -#ifndef SvSHARED_HASH -# define SvSHARED_HASH(sv) (0 + SvUVX(sv)) -#endif -#ifndef HvNAME_get -# define HvNAME_get(hv) HvNAME(hv) -#endif -#ifndef HvNAMELEN_get -# define HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0) -#endif -#ifndef GvSVn -# define GvSVn(gv) GvSV(gv) #endif -#ifndef isGV_with_GP -# define isGV_with_GP(gv) isGV(gv) -#endif -#ifndef WARN_ALL -# define WARN_ALL 0 +#ifndef load_module +#if defined(NEED_load_module) +static void DPPP_(my_load_module)(U32 flags, SV * name, SV * ver, ...); +static +#else +extern void DPPP_(my_load_module)(U32 flags, SV * name, SV * ver, ...); #endif -#ifndef WARN_CLOSURE -# define WARN_CLOSURE 1 -#endif +#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL) -#ifndef WARN_DEPRECATED -# define WARN_DEPRECATED 2 +#ifdef load_module +# undef load_module #endif +#define load_module DPPP_(my_load_module) +#define Perl_load_module DPPP_(my_load_module) -#ifndef WARN_EXITING -# define WARN_EXITING 3 -#endif -#ifndef WARN_GLOB -# define WARN_GLOB 4 -#endif +void +DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...) +{ + va_list args; + va_start(args, ver); + vload_module(flags, name, ver, &args); + va_end(args); +} -#ifndef WARN_IO -# define WARN_IO 5 #endif - -#ifndef WARN_CLOSED -# define WARN_CLOSED 6 #endif - -#ifndef WARN_EXEC -# define WARN_EXEC 7 +#ifndef newRV_inc +# define newRV_inc(sv) newRV(sv) /* Replace */ #endif -#ifndef WARN_LAYER -# define WARN_LAYER 8 +#ifndef newRV_noinc +#if defined(PERL_USE_GCC_BRACE_GROUPS) +# define newRV_noinc(sv) ({ SV *_sv = (SV *)newRV((sv)); SvREFCNT_dec((sv)); _sv; }) +#else +# define newRV_noinc(sv) ((PL_Sv = (SV *)newRV((sv))), SvREFCNT_dec((sv)), PL_Sv) #endif - -#ifndef WARN_NEWLINE -# define WARN_NEWLINE 9 #endif -#ifndef WARN_PIPE -# define WARN_PIPE 10 -#endif +/* + * Boilerplate macros for initializing and accessing interpreter-local + * data from C. All statics in extensions should be reworked to use + * this, if you want to make the extension thread-safe. See ext/re/re.xs + * for an example of the use of these macros. + * + * Code that uses these macros is responsible for the following: + * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts" + * 2. Declare a typedef named my_cxt_t that is a structure that contains + * all the data that needs to be interpreter-local. + * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t. + * 4. Use the MY_CXT_INIT macro such that it is called exactly once + * (typically put in the BOOT: section). + * 5. Use the members of the my_cxt_t structure everywhere as + * MY_CXT.member. + * 6. Use the dMY_CXT macro (a declaration) in all the functions that + * access MY_CXT. + */ + +#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \ + defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT) + +#ifndef START_MY_CXT + +/* This must appear in all extensions that define a my_cxt_t structure, + * right after the definition (i.e. at file scope). The non-threads + * case below uses it to declare the data as static. */ +#define START_MY_CXT -#ifndef WARN_UNOPENED -# define WARN_UNOPENED 11 -#endif +#if (PERL_BCDVERSION < 0x5004068) +/* Fetches the SV that keeps the per-interpreter data. */ +#define dMY_CXT_SV \ + SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE) +#else /* >= perl5.004_68 */ +#define dMY_CXT_SV \ + SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \ + sizeof(MY_CXT_KEY)-1, TRUE) +#endif /* < perl5.004_68 */ -#ifndef WARN_MISC -# define WARN_MISC 12 -#endif +/* This declaration should be used within all functions that use the + * interpreter-local data. */ +#define dMY_CXT \ + dMY_CXT_SV; \ + my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv)) -#ifndef WARN_NUMERIC -# define WARN_NUMERIC 13 -#endif +/* Creates and zeroes the per-interpreter data. + * (We allocate my_cxtp in a Perl SV so that it will be released when + * the interpreter goes away.) */ +#define MY_CXT_INIT \ + dMY_CXT_SV; \ + /* newSV() allocates one more than needed */ \ + my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ + Zero(my_cxtp, 1, my_cxt_t); \ + sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) -#ifndef WARN_ONCE -# define WARN_ONCE 14 -#endif +/* This macro must be used to access members of the my_cxt_t structure. + * e.g. MYCXT.some_data */ +#define MY_CXT (*my_cxtp) -#ifndef WARN_OVERFLOW -# define WARN_OVERFLOW 15 -#endif +/* Judicious use of these macros can reduce the number of times dMY_CXT + * is used. Use is similar to pTHX, aTHX etc. */ +#define pMY_CXT my_cxt_t *my_cxtp +#define pMY_CXT_ pMY_CXT, +#define _pMY_CXT ,pMY_CXT +#define aMY_CXT my_cxtp +#define aMY_CXT_ aMY_CXT, +#define _aMY_CXT ,aMY_CXT -#ifndef WARN_PACK -# define WARN_PACK 16 -#endif +#endif /* START_MY_CXT */ -#ifndef WARN_PORTABLE -# define WARN_PORTABLE 17 +#ifndef MY_CXT_CLONE +/* Clones the per-interpreter data. */ +#define MY_CXT_CLONE \ + dMY_CXT_SV; \ + my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ + Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\ + sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) #endif -#ifndef WARN_RECURSION -# define WARN_RECURSION 18 -#endif +#else /* single interpreter */ -#ifndef WARN_REDEFINE -# define WARN_REDEFINE 19 -#endif +#ifndef START_MY_CXT -#ifndef WARN_REGEXP -# define WARN_REGEXP 20 -#endif +#define START_MY_CXT static my_cxt_t my_cxt; +#define dMY_CXT_SV dNOOP +#define dMY_CXT dNOOP +#define MY_CXT_INIT NOOP +#define MY_CXT my_cxt -#ifndef WARN_SEVERE -# define WARN_SEVERE 21 -#endif +#define pMY_CXT void +#define pMY_CXT_ +#define _pMY_CXT +#define aMY_CXT +#define aMY_CXT_ +#define _aMY_CXT -#ifndef WARN_DEBUGGING -# define WARN_DEBUGGING 22 -#endif +#endif /* START_MY_CXT */ -#ifndef WARN_INPLACE -# define WARN_INPLACE 23 +#ifndef MY_CXT_CLONE +#define MY_CXT_CLONE NOOP #endif -#ifndef WARN_INTERNAL -# define WARN_INTERNAL 24 #endif -#ifndef WARN_MALLOC -# define WARN_MALLOC 25 +#ifndef SvREFCNT_inc +# ifdef PERL_USE_GCC_BRACE_GROUPS +# define SvREFCNT_inc(sv) \ + ({ \ + SV * const _sv = (SV*)(sv); \ + if (_sv) \ + (SvREFCNT(_sv))++; \ + _sv; \ + }) +# else +# define SvREFCNT_inc(sv) \ + ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL) +# endif #endif -#ifndef WARN_SIGNAL -# define WARN_SIGNAL 26 +#ifndef SvREFCNT_inc_simple +# ifdef PERL_USE_GCC_BRACE_GROUPS +# define SvREFCNT_inc_simple(sv) \ + ({ \ + if (sv) \ + (SvREFCNT(sv))++; \ + (SV *)(sv); \ + }) +# else +# define SvREFCNT_inc_simple(sv) \ + ((sv) ? (SvREFCNT(sv)++,(SV*)(sv)) : NULL) +# endif #endif -#ifndef WARN_SUBSTR -# define WARN_SUBSTR 27 +#ifndef SvREFCNT_inc_NN +# ifdef PERL_USE_GCC_BRACE_GROUPS +# define SvREFCNT_inc_NN(sv) \ + ({ \ + SV * const _sv = (SV*)(sv); \ + SvREFCNT(_sv)++; \ + _sv; \ + }) +# else +# define SvREFCNT_inc_NN(sv) \ + (PL_Sv=(SV*)(sv),++(SvREFCNT(PL_Sv)),PL_Sv) +# endif #endif -#ifndef WARN_SYNTAX -# define WARN_SYNTAX 28 +#ifndef SvREFCNT_inc_void +# ifdef PERL_USE_GCC_BRACE_GROUPS +# define SvREFCNT_inc_void(sv) \ + ({ \ + SV * const _sv = (SV*)(sv); \ + if (_sv) \ + (void)(SvREFCNT(_sv)++); \ + }) +# else +# define SvREFCNT_inc_void(sv) \ + (void)((PL_Sv=(SV*)(sv)) ? ++(SvREFCNT(PL_Sv)) : 0) +# endif #endif - -#ifndef WARN_AMBIGUOUS -# define WARN_AMBIGUOUS 29 +#ifndef SvREFCNT_inc_simple_void +# define SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END #endif -#ifndef WARN_BAREWORD -# define WARN_BAREWORD 30 +#ifndef SvREFCNT_inc_simple_NN +# define SvREFCNT_inc_simple_NN(sv) (++SvREFCNT(sv), (SV*)(sv)) #endif -#ifndef WARN_DIGIT -# define WARN_DIGIT 31 +#ifndef SvREFCNT_inc_void_NN +# define SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #endif -#ifndef WARN_PARENTHESIS -# define WARN_PARENTHESIS 32 +#ifndef SvREFCNT_inc_simple_void_NN +# define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #endif -#ifndef WARN_PRECEDENCE -# define WARN_PRECEDENCE 33 +#ifndef newSV_type +#if defined(PERL_USE_GCC_BRACE_GROUPS) +# define newSV_type(t) ({ SV *_sv = newSV(0); sv_upgrade(_sv, (t)); _sv; }) +#else +# define newSV_type(t) ((PL_Sv = newSV(0)), sv_upgrade(PL_Sv, (t)), PL_Sv) #endif - -#ifndef WARN_PRINTF -# define WARN_PRINTF 34 #endif -#ifndef WARN_PROTOTYPE -# define WARN_PROTOTYPE 35 +#if (PERL_BCDVERSION < 0x5006000) +# define D_PPP_CONSTPV_ARG(x) ((char *) (x)) +#else +# define D_PPP_CONSTPV_ARG(x) (x) #endif - -#ifndef WARN_QW -# define WARN_QW 36 +#ifndef newSVpvn +# define newSVpvn(data,len) ((data) \ + ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \ + : newSV(0)) #endif - -#ifndef WARN_RESERVED -# define WARN_RESERVED 37 +#ifndef newSVpvn_utf8 +# define newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0) #endif - -#ifndef WARN_SEMICOLON -# define WARN_SEMICOLON 38 +#ifndef SVf_UTF8 +# define SVf_UTF8 0 #endif -#ifndef WARN_TAINT -# define WARN_TAINT 39 +#ifndef newSVpvn_flags +#if defined(PERL_USE_GCC_BRACE_GROUPS) +# define newSVpvn_flags(s, len, flags) ({ SV *_sv = newSVpvn(D_PPP_CONSTPV_ARG((s)), (len)); SvFLAGS(_sv) |= ((flags) & SVf_UTF8); ((flags) & SVs_TEMP) ? sv_2mortal(_sv) : _sv; }) +#else +# define newSVpvn_flags(s, len, flags) ((PL_Sv = newSVpvn(D_PPP_CONSTPV_ARG((s)), (len))), SvFLAGS(PL_Sv) |= ((flags) & SVf_UTF8), (((flags) & SVs_TEMP) ? sv_2mortal(PL_Sv) : PL_Sv)) #endif - -#ifndef WARN_THREADS -# define WARN_THREADS 40 #endif - -#ifndef WARN_UNINITIALIZED -# define WARN_UNINITIALIZED 41 +#ifndef SV_NOSTEAL +# define SV_NOSTEAL 16 #endif -#ifndef WARN_UNPACK -# define WARN_UNPACK 42 +#if ( (PERL_BCDVERSION >= 0x5007003) && (PERL_BCDVERSION < 0x5008007) ) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009002) ) +#undef sv_setsv_flags +#if defined(PERL_USE_GCC_BRACE_GROUPS) +#define sv_setsv_flags(dstr, sstr, flags) \ + STMT_START { \ + if (((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) { \ + SvTEMP_off((SV *)(sstr)); \ + Perl_sv_setsv_flags(aTHX_ (dstr), (sstr), (flags) & ~SV_NOSTEAL); \ + SvTEMP_on((SV *)(sstr)); \ + } else { \ + Perl_sv_setsv_flags(aTHX_ (dstr), (sstr), (flags) & ~SV_NOSTEAL); \ + } \ + } STMT_END +#else + ( \ + (((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) ? ( \ + SvTEMP_off((SV *)(sstr)), \ + Perl_sv_setsv_flags(aTHX_ (dstr), (sstr), (flags) & ~SV_NOSTEAL), \ + SvTEMP_on((SV *)(sstr)), \ + 1 \ + ) : ( \ + Perl_sv_setsv_flags(aTHX_ (dstr), (sstr), (flags) & ~SV_NOSTEAL), \ + 1 \ + ) \ + ) #endif - -#ifndef WARN_UNTIE -# define WARN_UNTIE 43 #endif -#ifndef WARN_UTF8 -# define WARN_UTF8 44 +#if defined(PERL_USE_GCC_BRACE_GROUPS) +#ifndef sv_setsv_flags +# define sv_setsv_flags(dstr, sstr, flags) \ + STMT_START { \ + if (((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) { \ + SvTEMP_off((SV *)(sstr)); \ + if (!((flags) & SV_GMAGIC) && (sstr) && SvGMAGICAL((SV *)(sstr))) { \ + SvGMAGICAL_off((SV *)(sstr)); \ + sv_setsv((dstr), (sstr)); \ + SvGMAGICAL_on((SV *)(sstr)); \ + } else { \ + sv_setsv((dstr), (sstr)); \ + } \ + SvTEMP_on((SV *)(sstr)); \ + } else { \ + if (!((flags) & SV_GMAGIC) && (sstr) && SvGMAGICAL((SV *)(sstr))) { \ + SvGMAGICAL_off((SV *)(sstr)); \ + sv_setsv((dstr), (sstr)); \ + SvGMAGICAL_on((SV *)(sstr)); \ + } else { \ + sv_setsv((dstr), (sstr)); \ + } \ + } \ + } STMT_END #endif -#ifndef WARN_VOID -# define WARN_VOID 45 +#else +#ifndef sv_setsv_flags +# define sv_setsv_flags(dstr, sstr, flags) \ + ( \ + (((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) ? ( \ + SvTEMP_off((SV *)(sstr)), \ + (!((flags) & SV_GMAGIC) && (sstr) && SvGMAGICAL((SV *)(sstr))) ? ( \ + SvGMAGICAL_off((SV *)(sstr)), \ + sv_setsv((dstr), (sstr)), \ + SvGMAGICAL_on((SV *)(sstr)), \ + 1 \ + ) : ( \ + sv_setsv((dstr), (sstr)), \ + 1 \ + ), \ + SvTEMP_on((SV *)(sstr)), \ + 1 \ + ) : ( \ + (!((flags) & SV_GMAGIC) && (sstr) && SvGMAGICAL((SV *)(sstr))) ? ( \ + SvGMAGICAL_off((SV *)(sstr)), \ + sv_setsv((dstr), (sstr)), \ + SvGMAGICAL_on((SV *)(sstr)), \ + 1 \ + ) : ( \ + sv_setsv((dstr), (sstr)), \ + 1 \ + ) \ + ) \ + ) #endif -#ifndef WARN_ASSERTIONS -# define WARN_ASSERTIONS 46 -#endif -#ifndef packWARN -# define packWARN(a) (a) #endif -#ifndef ckWARN -# ifdef G_WARN_ON -# define ckWARN(a) (PL_dowarn & G_WARN_ON) -# else -# define ckWARN(a) PL_dowarn -# endif +#if defined(PERL_USE_GCC_BRACE_GROUPS) +#ifndef newSVsv_flags +# define newSVsv_flags(sv, flags) ({ SV *_sv = newSV(0); sv_setsv_flags(_sv, (sv), (flags)); _sv; }) #endif -#if (PERL_BCDVERSION >= 0x5004000) && !defined(warner) -#if defined(NEED_warner) -static void DPPP_(my_warner)(U32 err, const char *pat, ...); -static #else -extern void DPPP_(my_warner)(U32 err, const char *pat, ...); +#ifndef newSVsv_flags +# define newSVsv_flags(sv, flags) ((PL_Sv = newSV(0)), sv_setsv_flags(PL_Sv, (sv), (flags)), PL_Sv) #endif -#define Perl_warner DPPP_(my_warner) - -#if defined(NEED_warner) || defined(NEED_warner_GLOBAL) - -void -DPPP_(my_warner)(U32 err, const char *pat, ...) -{ - SV *sv; - va_list args; - - PERL_UNUSED_ARG(err); - - va_start(args, pat); - sv = vnewSVpvf(pat, &args); - va_end(args); - sv_2mortal(sv); - warn("%s", SvPV_nolen(sv)); -} - -#define warner Perl_warner - -#define Perl_warner_nocontext Perl_warner - #endif +#ifndef newSVsv_nomg +# define newSVsv_nomg(sv) newSVsv_flags((sv), SV_NOSTEAL) #endif -/* concatenating with "" ensures that only literal strings are accepted as argument - * note that STR_WITH_LEN() can't be used as argument to macros or functions that - * under some configurations might be macros - */ -#ifndef STR_WITH_LEN -# define STR_WITH_LEN(s) (s ""), (sizeof(s)-1) -#endif -#ifndef newSVpvs -# define newSVpvs(str) newSVpvn(str "", sizeof(str) - 1) +#if (PERL_BCDVERSION >= 0x5017005) +#ifndef sv_mortalcopy_flags +# define sv_mortalcopy_flags(sv, flags) Perl_sv_mortalcopy_flags(aTHX_ (sv), (flags)) #endif -#ifndef newSVpvs_flags -# define newSVpvs_flags(str, flags) newSVpvn_flags(str "", sizeof(str) - 1, flags) +#else +#ifndef sv_mortalcopy_flags +# define sv_mortalcopy_flags(sv, flags) sv_2mortal(newSVsv_flags((sv), (flags))) #endif -#ifndef sv_catpvs -# define sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1) #endif - -#ifndef sv_setpvs -# define sv_setpvs(sv, str) sv_setpvn(sv, str "", sizeof(str) - 1) +#ifndef SvMAGIC_set +# define SvMAGIC_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ + (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END #endif -#ifndef hv_fetchs -# define hv_fetchs(hv, key, lval) hv_fetch(hv, key "", sizeof(key) - 1, lval) +#if (PERL_BCDVERSION < 0x5009003) +#ifndef SvPVX_const +# define SvPVX_const(sv) ((const char*) (0 + SvPVX(sv))) #endif -#ifndef hv_stores -# define hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0) +#ifndef SvPVX_mutable +# define SvPVX_mutable(sv) (0 + SvPVX(sv)) #endif -#ifndef gv_fetchpvn_flags -# define gv_fetchpvn_flags(name, len, flags, svt) gv_fetchpv(name, flags, svt) +#ifndef SvRV_set +# define SvRV_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ + (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END #endif -#ifndef gv_fetchpvs -# define gv_fetchpvs(name, flags, svt) gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt) +#else +#ifndef SvPVX_const +# define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv)) #endif -#ifndef gv_stashpvs -# define gv_stashpvs(name, flags) gv_stashpvn(name "", sizeof(name) - 1, flags) -#endif -#ifndef SvGETMAGIC -# define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END -#endif -#ifndef PERL_MAGIC_sv -# define PERL_MAGIC_sv '\0' +#ifndef SvPVX_mutable +# define SvPVX_mutable(sv) ((sv)->sv_u.svu_pv) #endif - -#ifndef PERL_MAGIC_overload -# define PERL_MAGIC_overload 'A' +#ifndef SvRV_set +# define SvRV_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ + ((sv)->sv_u.svu_rv = (val)); } STMT_END #endif -#ifndef PERL_MAGIC_overload_elem -# define PERL_MAGIC_overload_elem 'a' #endif - -#ifndef PERL_MAGIC_overload_table -# define PERL_MAGIC_overload_table 'c' +#ifndef SvSTASH_set +# define SvSTASH_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ + (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END #endif -#ifndef PERL_MAGIC_bm -# define PERL_MAGIC_bm 'B' +#if (PERL_BCDVERSION < 0x5004000) +#ifndef SvUV_set +# define SvUV_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ + (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END #endif -#ifndef PERL_MAGIC_regdata -# define PERL_MAGIC_regdata 'D' +#else +#ifndef SvUV_set +# define SvUV_set(sv, val) \ + STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ + (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END #endif -#ifndef PERL_MAGIC_regdatum -# define PERL_MAGIC_regdatum 'd' #endif -#ifndef PERL_MAGIC_env -# define PERL_MAGIC_env 'E' -#endif +/* Hint: newSVpvn_share + * The SVs created by this function only mimic the behaviour of + * shared PVs without really being shared. Only use if you know + * what you're doing. + */ -#ifndef PERL_MAGIC_envelem -# define PERL_MAGIC_envelem 'e' -#endif +#ifndef newSVpvn_share -#ifndef PERL_MAGIC_fm -# define PERL_MAGIC_fm 'f' +#if defined(NEED_newSVpvn_share) +static SV * DPPP_(my_newSVpvn_share)(pTHX_ const char * s, I32 len, U32 hash); +static +#else +extern SV * DPPP_(my_newSVpvn_share)(pTHX_ const char * s, I32 len, U32 hash); #endif -#ifndef PERL_MAGIC_regex_global -# define PERL_MAGIC_regex_global 'g' -#endif +#if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL) -#ifndef PERL_MAGIC_isa -# define PERL_MAGIC_isa 'I' +#ifdef newSVpvn_share +# undef newSVpvn_share #endif +#define newSVpvn_share(a,b,c) DPPP_(my_newSVpvn_share)(aTHX_ a,b,c) +#define Perl_newSVpvn_share DPPP_(my_newSVpvn_share) -#ifndef PERL_MAGIC_isaelem -# define PERL_MAGIC_isaelem 'i' -#endif -#ifndef PERL_MAGIC_nkeys -# define PERL_MAGIC_nkeys 'k' -#endif +SV * +DPPP_(my_newSVpvn_share)(pTHX_ const char *s, I32 len, U32 hash) +{ + SV *sv; + if (len < 0) + len = -len; + if (!hash) + PERL_HASH(hash, (char*) s, len); + sv = newSVpvn((char *) s, len); + sv_upgrade(sv, SVt_PVIV); + SvIVX(sv) = hash; + SvREADONLY_on(sv); + SvPOK_on(sv); + return sv; +} -#ifndef PERL_MAGIC_dbfile -# define PERL_MAGIC_dbfile 'L' #endif -#ifndef PERL_MAGIC_dbline -# define PERL_MAGIC_dbline 'l' #endif - -#ifndef PERL_MAGIC_mutex -# define PERL_MAGIC_mutex 'm' +#ifndef SvSHARED_HASH +# define SvSHARED_HASH(sv) (0 + SvUVX(sv)) #endif - -#ifndef PERL_MAGIC_shared -# define PERL_MAGIC_shared 'N' +#ifndef HvNAME_get +# define HvNAME_get(hv) HvNAME(hv) #endif - -#ifndef PERL_MAGIC_shared_scalar -# define PERL_MAGIC_shared_scalar 'n' +#ifndef HvNAMELEN_get +# define HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0) #endif -#ifndef PERL_MAGIC_collxfrm -# define PERL_MAGIC_collxfrm 'o' +#if (PERL_BCDVERSION >= 0x5009002) && (PERL_BCDVERSION <= 0x5009003) /* 5.9.2 and 5.9.3 ignore the length param */ +#undef gv_fetchpvn_flags #endif -#ifndef PERL_MAGIC_tied -# define PERL_MAGIC_tied 'P' +#ifdef GV_NOADD_MASK +# define D_PPP_GV_NOADD_MASK GV_NOADD_MASK +#else +# define D_PPP_GV_NOADD_MASK 0xE0 #endif - -#ifndef PERL_MAGIC_tiedelem -# define PERL_MAGIC_tiedelem 'p' +#ifndef gv_fetchpvn_flags +# define gv_fetchpvn_flags(name, len, flags, sv_type) gv_fetchpv(SvPVX(sv_2mortal(newSVpvn((name), (len)))), ((flags) & D_PPP_GV_NOADD_MASK) ? FALSE : TRUE, (I32)(sv_type)) #endif - -#ifndef PERL_MAGIC_tiedscalar -# define PERL_MAGIC_tiedscalar 'q' +#ifndef GvSVn +# define GvSVn(gv) GvSV(gv) #endif -#ifndef PERL_MAGIC_qr -# define PERL_MAGIC_qr 'r' +#ifndef isGV_with_GP +# define isGV_with_GP(gv) isGV(gv) #endif -#ifndef PERL_MAGIC_sig -# define PERL_MAGIC_sig 'S' +#ifndef gv_fetchsv +# define gv_fetchsv(name, flags, svt) gv_fetchpv(SvPV_nolen_const(name), flags, svt) #endif - -#ifndef PERL_MAGIC_sigelem -# define PERL_MAGIC_sigelem 's' +#ifndef get_cvn_flags +# define get_cvn_flags(name, namelen, flags) get_cv(name, flags) #endif -#ifndef PERL_MAGIC_taint -# define PERL_MAGIC_taint 't' +#ifndef gv_init_pvn +# define gv_init_pvn(gv, stash, ptr, len, flags) gv_init(gv, stash, ptr, len, flags & GV_ADDMULTI ? TRUE : FALSE) #endif -#ifndef PERL_MAGIC_uvar -# define PERL_MAGIC_uvar 'U' +/* concatenating with "" ensures that only literal strings are accepted as argument + * note that STR_WITH_LEN() can't be used as argument to macros or functions that + * under some configurations might be macros + */ +#ifndef STR_WITH_LEN +# define STR_WITH_LEN(s) (s ""), (sizeof(s)-1) #endif - -#ifndef PERL_MAGIC_uvar_elem -# define PERL_MAGIC_uvar_elem 'u' +#ifndef newSVpvs +# define newSVpvs(str) newSVpvn(str "", sizeof(str) - 1) #endif -#ifndef PERL_MAGIC_vstring -# define PERL_MAGIC_vstring 'V' +#ifndef newSVpvs_flags +# define newSVpvs_flags(str, flags) newSVpvn_flags(str "", sizeof(str) - 1, flags) #endif -#ifndef PERL_MAGIC_vec -# define PERL_MAGIC_vec 'v' +#ifndef newSVpvs_share +# define newSVpvs_share(str) newSVpvn_share(str "", sizeof(str) - 1, 0) #endif -#ifndef PERL_MAGIC_utf8 -# define PERL_MAGIC_utf8 'w' +#ifndef sv_catpvs +# define sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1) #endif -#ifndef PERL_MAGIC_substr -# define PERL_MAGIC_substr 'x' +#ifndef sv_setpvs +# define sv_setpvs(sv, str) sv_setpvn(sv, str "", sizeof(str) - 1) #endif -#ifndef PERL_MAGIC_defelem -# define PERL_MAGIC_defelem 'y' +#ifndef hv_fetchs +# define hv_fetchs(hv, key, lval) hv_fetch(hv, key "", sizeof(key) - 1, lval) #endif -#ifndef PERL_MAGIC_glob -# define PERL_MAGIC_glob '*' +#ifndef hv_stores +# define hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0) #endif - -#ifndef PERL_MAGIC_arylen -# define PERL_MAGIC_arylen '#' +#ifndef gv_fetchpvs +# define gv_fetchpvs(name, flags, svt) gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt) #endif -#ifndef PERL_MAGIC_pos -# define PERL_MAGIC_pos '.' +#ifndef gv_stashpvs +# define gv_stashpvs(name, flags) gv_stashpvn(name "", sizeof(name) - 1, flags) #endif - -#ifndef PERL_MAGIC_backref -# define PERL_MAGIC_backref '<' +#ifndef get_cvs +# define get_cvs(name, flags) get_cvn_flags(name "", sizeof(name)-1, flags) #endif - -#ifndef PERL_MAGIC_ext -# define PERL_MAGIC_ext '~' +#ifndef SvGETMAGIC +# define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END #endif /* That's the best we can do... */ @@ -5816,12 +15779,42 @@ # define sv_pvn_nomg sv_pvn #endif +#ifdef SVf_IVisUV +#if defined(PERL_USE_GCC_BRACE_GROUPS) +#ifndef SvIV_nomg +# define SvIV_nomg(sv) (!SvGMAGICAL((sv)) ? SvIV((sv)) : ({ SV *_sviv = sv_mortalcopy_flags((sv), SV_NOSTEAL); IV _iv = SvIV(_sviv); SvFLAGS((sv)) = (SvFLAGS((sv)) & ~SVf_IVisUV) | (SvFLAGS(_sviv) & SVf_IVisUV); _iv; })) +#endif + +#ifndef SvUV_nomg +# define SvUV_nomg(sv) (!SvGMAGICAL((sv)) ? SvUV((sv)) : ({ SV *_svuv = sv_mortalcopy_flags((sv), SV_NOSTEAL); UV _uv = SvUV(_svuv); SvFLAGS((sv)) = (SvFLAGS((sv)) & ~SVf_IVisUV) | (SvFLAGS(_svuv) & SVf_IVisUV); _uv; })) +#endif + +#else +#ifndef SvIV_nomg +# define SvIV_nomg(sv) (!SvGMAGICAL((sv)) ? SvIV((sv)) : ((PL_Sv = sv_mortalcopy_flags((sv), SV_NOSTEAL)), sv_upgrade(PL_Sv, SVt_PVIV), (SvIVX(PL_Sv) = SvIV(PL_Sv)), (SvFLAGS((sv)) = (SvFLAGS((sv)) & ~SVf_IVisUV) | (SvFLAGS(PL_Sv) & SVf_IVisUV)), SvIVX(PL_Sv))) +#endif + +#ifndef SvUV_nomg +# define SvUV_nomg(sv) (!SvGMAGICAL((sv)) ? SvIV((sv)) : ((PL_Sv = sv_mortalcopy_flags((sv), SV_NOSTEAL)), sv_upgrade(PL_Sv, SVt_PVIV), (SvUVX(PL_Sv) = SvUV(PL_Sv)), (SvFLAGS((sv)) = (SvFLAGS((sv)) & ~SVf_IVisUV) | (SvFLAGS(PL_Sv) & SVf_IVisUV)), SvUVX(PL_Sv))) +#endif + +#endif +#else #ifndef SvIV_nomg -# define SvIV_nomg SvIV +# define SvIV_nomg(sv) (!SvGMAGICAL((sv)) ? SvIV((sv)) : SvIVx(sv_mortalcopy_flags((sv), SV_NOSTEAL))) #endif #ifndef SvUV_nomg -# define SvUV_nomg SvUV +# define SvUV_nomg(sv) (!SvGMAGICAL((sv)) ? SvUV((sv)) : SvUVx(sv_mortalcopy_flags((sv), SV_NOSTEAL))) +#endif + +#endif +#ifndef SvNV_nomg +# define SvNV_nomg(sv) (!SvGMAGICAL((sv)) ? SvNV((sv)) : SvNVx(sv_mortalcopy_flags((sv), SV_NOSTEAL))) +#endif + +#ifndef SvTRUE_nomg +# define SvTRUE_nomg(sv) (!SvGMAGICAL((sv)) ? SvTRUE((sv)) : SvTRUEx(sv_mortalcopy_flags((sv), SV_NOSTEAL))) #endif #ifndef sv_catpv_mg @@ -5958,6 +15951,102 @@ #endif +#if !defined(mg_findext) +#if defined(NEED_mg_findext) +static MAGIC * DPPP_(my_mg_findext)(const SV * sv, int type, const MGVTBL * vtbl); +static +#else +extern MAGIC * DPPP_(my_mg_findext)(const SV * sv, int type, const MGVTBL * vtbl); +#endif + +#if defined(NEED_mg_findext) || defined(NEED_mg_findext_GLOBAL) + +#define mg_findext DPPP_(my_mg_findext) +#define Perl_mg_findext DPPP_(my_mg_findext) + + +MAGIC * +DPPP_(my_mg_findext)(const SV * sv, int type, const MGVTBL *vtbl) { + if (sv) { + MAGIC *mg; + +#ifdef AvPAD_NAMELIST + assert(!(SvTYPE(sv) == SVt_PVAV && AvPAD_NAMELIST(sv))); +#endif + + for (mg = SvMAGIC (sv); mg; mg = mg->mg_moremagic) { + if (mg->mg_type == type && mg->mg_virtual == vtbl) + return mg; + } + } + + return NULL; +} + +#endif +#endif + +#if !defined(sv_unmagicext) +#if defined(NEED_sv_unmagicext) +static int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl); +static +#else +extern int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl); +#endif + +#if defined(NEED_sv_unmagicext) || defined(NEED_sv_unmagicext_GLOBAL) + +#ifdef sv_unmagicext +# undef sv_unmagicext +#endif +#define sv_unmagicext(a,b,c) DPPP_(my_sv_unmagicext)(aTHX_ a,b,c) +#define Perl_sv_unmagicext DPPP_(my_sv_unmagicext) + + +int +DPPP_(my_sv_unmagicext)(pTHX_ SV *const sv, const int type, MGVTBL *vtbl) +{ + MAGIC* mg; + MAGIC** mgp; + + if (SvTYPE(sv) < SVt_PVMG || !SvMAGIC(sv)) + return 0; + mgp = &(SvMAGIC(sv)); + for (mg = *mgp; mg; mg = *mgp) { + const MGVTBL* const virt = mg->mg_virtual; + if (mg->mg_type == type && virt == vtbl) { + *mgp = mg->mg_moremagic; + if (virt && virt->svt_free) + virt->svt_free(aTHX_ sv, mg); + if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) { + if (mg->mg_len > 0) + Safefree(mg->mg_ptr); + else if (mg->mg_len == HEf_SVKEY) /* Questionable on older perls... */ + SvREFCNT_dec(MUTABLE_SV(mg->mg_ptr)); + else if (mg->mg_type == PERL_MAGIC_utf8) + Safefree(mg->mg_ptr); + } + if (mg->mg_flags & MGf_REFCOUNTED) + SvREFCNT_dec(mg->mg_obj); + Safefree(mg); + } + else + mgp = &mg->mg_moremagic; + } + if (SvMAGIC(sv)) { + if (SvMAGICAL(sv)) /* if we're under save_magic, wait for restore_magic; */ + mg_magical(sv); /* else fix the flags now */ + } + else { + SvMAGICAL_off(sv); + SvFLAGS(sv) |= (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT; + } + return 0; +} + +#endif +#endif + #ifdef USE_ITHREADS #ifndef CopFILE # define CopFILE(c) ((c)->cop_file) @@ -5997,8 +16086,8 @@ #ifndef CopSTASH_eq # define CopSTASH_eq(c,hv) ((hv) && (CopSTASHPV(c) == HvNAME(hv) \ - || (CopSTASHPV(c) && HvNAME(hv) \ - && strEQ(CopSTASHPV(c), HvNAME(hv))))) + || (CopSTASHPV(c) && HvNAME(hv) \ + && strEQ(CopSTASHPV(c), HvNAME(hv))))) #endif #else @@ -6030,23 +16119,108 @@ # define CopSTASH(c) ((c)->cop_stash) #endif -#ifndef CopSTASH_set -# define CopSTASH_set(c,hv) ((c)->cop_stash = (hv)) -#endif +#ifndef CopSTASH_set +# define CopSTASH_set(c,hv) ((c)->cop_stash = (hv)) +#endif + +#ifndef CopSTASHPV +# define CopSTASHPV(c) (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch) +#endif + +#ifndef CopSTASHPV_set +# define CopSTASHPV_set(c,pv) CopSTASH_set((c), gv_stashpv(pv,GV_ADD)) +#endif + +#ifndef CopSTASH_eq +# define CopSTASH_eq(c,hv) (CopSTASH(c) == (hv)) +#endif + +#endif /* USE_ITHREADS */ + +#if (PERL_BCDVERSION >= 0x5006000) +#ifndef caller_cx + +# if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL) +static I32 +DPPP_dopoptosub_at(const PERL_CONTEXT *cxstk, I32 startingblock) +{ + I32 i; + + for (i = startingblock; i >= 0; i--) { + const PERL_CONTEXT * const cx = &cxstk[i]; + switch (CxTYPE(cx)) { + default: + continue; + case CXt_EVAL: + case CXt_SUB: + case CXt_FORMAT: + return i; + } + } + return i; +} +# endif + +# if defined(NEED_caller_cx) +static const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 level, const PERL_CONTEXT * * dbcxp); +static +#else +extern const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 level, const PERL_CONTEXT * * dbcxp); +#endif + +#if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL) -#ifndef CopSTASHPV -# define CopSTASHPV(c) (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch) +#ifdef caller_cx +# undef caller_cx #endif +#define caller_cx(a,b) DPPP_(my_caller_cx)(aTHX_ a,b) +#define Perl_caller_cx DPPP_(my_caller_cx) -#ifndef CopSTASHPV_set -# define CopSTASHPV_set(c,pv) CopSTASH_set((c), gv_stashpv(pv,GV_ADD)) -#endif -#ifndef CopSTASH_eq -# define CopSTASH_eq(c,hv) (CopSTASH(c) == (hv)) -#endif +const PERL_CONTEXT * +DPPP_(my_caller_cx)(pTHX_ I32 level, const PERL_CONTEXT **dbcxp) +{ + I32 cxix = DPPP_dopoptosub_at(cxstack, cxstack_ix); + const PERL_CONTEXT *cx; + const PERL_CONTEXT *ccstack = cxstack; + const PERL_SI *top_si = PL_curstackinfo; + + for (;;) { + /* we may be in a higher stacklevel, so dig down deeper */ + while (cxix < 0 && top_si->si_type != PERLSI_MAIN) { + top_si = top_si->si_prev; + ccstack = top_si->si_cxstack; + cxix = DPPP_dopoptosub_at(ccstack, top_si->si_cxix); + } + if (cxix < 0) + return NULL; + /* caller() should not report the automatic calls to &DB::sub */ + if (PL_DBsub && GvCV(PL_DBsub) && cxix >= 0 && + ccstack[cxix].blk_sub.cv == GvCV(PL_DBsub)) + level++; + if (!level--) + break; + cxix = DPPP_dopoptosub_at(ccstack, cxix - 1); + } -#endif /* USE_ITHREADS */ + cx = &ccstack[cxix]; + if (dbcxp) *dbcxp = cx; + + if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT) { + const I32 dbcxix = DPPP_dopoptosub_at(ccstack, cxix - 1); + /* We expect that ccstack[dbcxix] is CXt_SUB, anyway, the + field below is defined for any cx. */ + /* caller() should not report the automatic calls to &DB::sub */ + if (PL_DBsub && GvCV(PL_DBsub) && dbcxix >= 0 && ccstack[dbcxix].blk_sub.cv == GvCV(PL_DBsub)) + cx = &ccstack[dbcxix]; + } + + return cx; +} + +# endif +#endif /* caller_cx */ +#endif /* 5.6.0 */ #ifndef IN_PERL_COMPILETIME # define IN_PERL_COMPILETIME (PL_curcop == &PL_compiling) #endif @@ -6106,19 +16280,20 @@ #ifndef grok_numeric_radix #if defined(NEED_grok_numeric_radix) -static bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send); +static bool DPPP_(my_grok_numeric_radix)(pTHX_ const char * * sp, const char * send); static #else -extern bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send); +extern bool DPPP_(my_grok_numeric_radix)(pTHX_ const char * * sp, const char * send); #endif +#if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL) + #ifdef grok_numeric_radix # undef grok_numeric_radix #endif #define grok_numeric_radix(a,b) DPPP_(my_grok_numeric_radix)(aTHX_ a,b) #define Perl_grok_numeric_radix DPPP_(my_grok_numeric_radix) -#if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL) bool DPPP_(my_grok_numeric_radix)(pTHX_ const char **sp, const char *send) { @@ -6168,13 +16343,14 @@ extern int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep); #endif +#if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL) + #ifdef grok_number # undef grok_number #endif #define grok_number(a,b,c) DPPP_(my_grok_number)(aTHX_ a,b,c) #define Perl_grok_number DPPP_(my_grok_number) -#if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL) int DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep) { @@ -6205,10 +16381,10 @@ /* UVs are at least 32 bits, so the first 9 decimal digits cannot overflow. */ UV value = *s - '0'; - /* This construction seems to be more optimizer friendly. + /* This construction seems to be more optimiser friendly. (without it gcc does the isDIGIT test and the *s - '0' separately) With it gcc on arm is managing 6 instructions (6 cycles) per digit. - In theory the optimizer could deduce how far to unroll the loop + In theory the optimiser could deduce how far to unroll the loop before checking for overflow. */ if (++s < send) { int digit = *s - '0'; @@ -6222,7 +16398,7 @@ digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (++s < send) { + if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; @@ -6270,7 +16446,7 @@ } } } - } + } } } } @@ -6282,7 +16458,7 @@ } } } - } + } } } numtype |= IS_NUMBER_IN_UV; @@ -6382,13 +16558,14 @@ extern UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif +#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL) + #ifdef grok_bin # undef grok_bin #endif #define grok_bin(a,b,c,d) DPPP_(my_grok_bin)(aTHX_ a,b,c,d) #define Perl_grok_bin DPPP_(my_grok_bin) -#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL) UV DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { @@ -6435,22 +16612,22 @@ value_nv = (NV) value; } value_nv *= 2.0; - /* If an NV has not enough bits in its mantissa to - * represent a UV this summing of small low-order numbers - * is a waste of time (because the NV cannot preserve - * the low-order bits anyway): we could just remember when - * did we overflow and in the end just multiply value_nv by the - * right amount. */ + /* If an NV has not enough bits in its mantissa to + * represent a UV this summing of small low-order numbers + * is a waste of time (because the NV cannot preserve + * the low-order bits anyway): we could just remember when + * did we overflow and in the end just multiply value_nv by the + * right amount. */ value_nv += (NV)(bit - '0'); continue; } if (bit == '_' && len && allow_underscores && (bit = s[1]) && (bit == '0' || bit == '1')) - { - --len; - ++s; + { + --len; + ++s; goto redo; - } + } if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal binary digit '%c' ignored", *s); break; @@ -6458,10 +16635,10 @@ if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 - || (!overflowed && value > 0xffffffff ) + || (!overflowed && value > 0xffffffff ) #endif - ) { - warn("Binary number > 0b11111111111111111111111111111111 non-portable"); + ) { + warn("Binary number > 0b11111111111111111111111111111111 non-portable"); } *len_p = s - start; if (!overflowed) { @@ -6484,13 +16661,14 @@ extern UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif +#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL) + #ifdef grok_hex # undef grok_hex #endif #define grok_hex(a,b,c,d) DPPP_(my_grok_hex)(aTHX_ a,b,c,d) #define Perl_grok_hex DPPP_(my_grok_hex) -#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL) UV DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { @@ -6521,7 +16699,7 @@ } for (; len-- && *s; s++) { - xdigit = strchr((char *) PL_hexdigit, *s); + xdigit = strchr((char *) PL_hexdigit, *s); if (xdigit) { /* Write it in this wonky order with a goto to attempt to get the compiler to make the common case integer-only loop pretty tight. @@ -6537,22 +16715,22 @@ value_nv = (NV) value; } value_nv *= 16.0; - /* If an NV has not enough bits in its mantissa to - * represent a UV this summing of small low-order numbers - * is a waste of time (because the NV cannot preserve - * the low-order bits anyway): we could just remember when - * did we overflow and in the end just multiply value_nv by the - * right amount of 16-tuples. */ + /* If an NV has not enough bits in its mantissa to + * represent a UV this summing of small low-order numbers + * is a waste of time (because the NV cannot preserve + * the low-order bits anyway): we could just remember when + * did we overflow and in the end just multiply value_nv by the + * right amount of 16-tuples. */ value_nv += (NV)((xdigit - PL_hexdigit) & 15); continue; } if (*s == '_' && len && allow_underscores && s[1] - && (xdigit = strchr((char *) PL_hexdigit, s[1]))) - { - --len; - ++s; + && (xdigit = strchr((char *) PL_hexdigit, s[1]))) + { + --len; + ++s; goto redo; - } + } if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal hexadecimal digit '%c' ignored", *s); break; @@ -6560,10 +16738,10 @@ if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 - || (!overflowed && value > 0xffffffff ) + || (!overflowed && value > 0xffffffff ) #endif - ) { - warn("Hexadecimal number > 0xffffffff non-portable"); + ) { + warn("Hexadecimal number > 0xffffffff non-portable"); } *len_p = s - start; if (!overflowed) { @@ -6586,13 +16764,14 @@ extern UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif +#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL) + #ifdef grok_oct # undef grok_oct #endif #define grok_oct(a,b,c,d) DPPP_(my_grok_oct)(aTHX_ a,b,c,d) #define Perl_grok_oct DPPP_(my_grok_oct) -#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL) UV DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { @@ -6606,7 +16785,7 @@ bool overflowed = FALSE; for (; len-- && *s; s++) { - /* gcc 2.95 optimizer not smart enough to figure that this subtraction + /* gcc 2.95 optimiser not smart enough to figure that this subtraction out front allows slicker code. */ int digit = *s - '0'; if (digit >= 0 && digit <= 7) { @@ -6625,22 +16804,22 @@ value_nv = (NV) value; } value_nv *= 8.0; - /* If an NV has not enough bits in its mantissa to - * represent a UV this summing of small low-order numbers - * is a waste of time (because the NV cannot preserve - * the low-order bits anyway): we could just remember when - * did we overflow and in the end just multiply value_nv by the - * right amount of 8-tuples. */ + /* If an NV has not enough bits in its mantissa to + * represent a UV this summing of small low-order numbers + * is a waste of time (because the NV cannot preserve + * the low-order bits anyway): we could just remember when + * did we overflow and in the end just multiply value_nv by the + * right amount of 8-tuples. */ value_nv += (NV)digit; continue; } if (digit == ('_' - '0') && len && allow_underscores && (digit = s[1] - '0') && (digit >= 0 && digit <= 7)) - { - --len; - ++s; + { + --len; + ++s; goto redo; - } + } /* Allow \octal to work the DWIM way (that is, stop scanning * as soon as non-octal characters are seen, complain only iff * someone seems to want to use the digits eight and nine). */ @@ -6651,160 +16830,746 @@ break; } - if ( ( overflowed && value_nv > 4294967295.0) -#if UVSIZE > 4 - || (!overflowed && value > 0xffffffff ) + if ( ( overflowed && value_nv > 4294967295.0) +#if UVSIZE > 4 + || (!overflowed && value > 0xffffffff ) +#endif + ) { + warn("Octal number > 037777777777 non-portable"); + } + *len_p = s - start; + if (!overflowed) { + *flags = 0; + return value; + } + *flags = PERL_SCAN_GREATER_THAN_UV_MAX; + if (result) + *result = value_nv; + return UV_MAX; +} +#endif +#endif + +#if !defined(my_snprintf) +#if defined(NEED_my_snprintf) +static int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); +static +#else +extern int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); +#endif + +#if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL) + +#define my_snprintf DPPP_(my_my_snprintf) +#define Perl_my_snprintf DPPP_(my_my_snprintf) + + +int +DPPP_(my_my_snprintf)(char *buffer, const Size_t len, const char *format, ...) +{ + dTHX; + int retval; + va_list ap; + va_start(ap, format); +#ifdef HAS_VSNPRINTF + retval = vsnprintf(buffer, len, format, ap); +#else + retval = vsprintf(buffer, format, ap); +#endif + va_end(ap); + if (retval < 0 || (len > 0 && (Size_t)retval >= len)) + Perl_croak(aTHX_ "panic: my_snprintf buffer overflow"); + return retval; +} + +#endif +#endif + +#if !defined(my_sprintf) +#if defined(NEED_my_sprintf) +static int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); +static +#else +extern int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); +#endif + +#if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL) + +#define my_sprintf DPPP_(my_my_sprintf) + + +/* Warning: my_sprintf + It's safer to use my_snprintf instead +*/ + +/* Replace my_sprintf with my_snprintf */ + +int +DPPP_(my_my_sprintf)(char *buffer, const char* pat, ...) +{ + va_list args; + va_start(args, pat); + vsprintf(buffer, pat, args); + va_end(args); + return strlen(buffer); +} + +#endif +#endif + +#ifdef NO_XSLOCKS +# ifdef dJMPENV +# define dXCPT dJMPENV; int rEtV = 0 +# define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0) +# define XCPT_TRY_END JMPENV_POP; +# define XCPT_CATCH if (rEtV != 0) +# define XCPT_RETHROW JMPENV_JUMP(rEtV) +# else +# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0 +# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0) +# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf); +# define XCPT_CATCH if (rEtV != 0) +# define XCPT_RETHROW Siglongjmp(top_env, rEtV) +# endif +#endif + +#if !defined(my_strlcat) +#if defined(NEED_my_strlcat) +static Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); +static +#else +extern Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); +#endif + +#if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL) + +#define my_strlcat DPPP_(my_my_strlcat) +#define Perl_my_strlcat DPPP_(my_my_strlcat) + + +Size_t +DPPP_(my_my_strlcat)(char *dst, const char *src, Size_t size) +{ + Size_t used, length, copy; + + used = strlen(dst); + length = strlen(src); + if (size > 0 && used < size - 1) { + copy = (length >= size - used) ? size - used - 1 : length; + memcpy(dst + used, src, copy); + dst[used + copy] = '\0'; + } + return used + length; +} +#endif +#endif + +#if !defined(my_strlcpy) +#if defined(NEED_my_strlcpy) +static Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); +static +#else +extern Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); +#endif + +#if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL) + +#define my_strlcpy DPPP_(my_my_strlcpy) +#define Perl_my_strlcpy DPPP_(my_my_strlcpy) + + +Size_t +DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size) +{ + Size_t length, copy; + + length = strlen(src); + if (size > 0) { + copy = (length >= size) ? size - 1 : length; + memcpy(dst, src, copy); + dst[copy] = '\0'; + } + return length; +} + +#endif +#endif + +#ifdef SVf_UTF8 +#ifndef SvUTF8 +# define SvUTF8(sv) (SvFLAGS(sv) & SVf_UTF8) +#endif + +#endif + +#if (PERL_BCDVERSION == 0x5019001) /* 5.19.1 does not have UTF8fARG, only broken UTF8f */ +#undef UTF8f +#endif + +#ifdef SVf_UTF8 +#ifndef UTF8f +# define UTF8f SVf +#endif + +#ifndef UTF8fARG +# define UTF8fARG(u,l,p) newSVpvn_flags((p), (l), ((u) ? SVf_UTF8 : 0) | SVs_TEMP) +#endif + +#endif + +#define D_PPP_MIN(a,b) (((a) <= (b)) ? (a) : (b)) +#ifndef UNICODE_REPLACEMENT +# define UNICODE_REPLACEMENT 0xFFFD +#endif + +#ifdef UTF8_MAXLEN +#ifndef UTF8_MAXBYTES +# define UTF8_MAXBYTES UTF8_MAXLEN +#endif + +#endif +#ifndef UTF_START_MARK +# define UTF_START_MARK(len) \ + (((len) > 7) ? 0xFF : (0xFF & (0xFE << (7-(len))))) +#endif + +/* On non-EBCDIC was valid for some releases earlier than this, but easier to + * just do one check */ +#if (PERL_BCDVERSION < 0x5018000) +# undef UTF8_MAXBYTES_CASE +#endif + +#if 'A' == 65 +# define D_PPP_BYTE_INFO_BITS 6 /* 6 bits meaningful in continuation bytes */ +#ifndef UTF8_MAXBYTES_CASE +# define UTF8_MAXBYTES_CASE 13 +#endif + +#else +# define D_PPP_BYTE_INFO_BITS 5 /* 5 bits meaningful in continuation bytes */ +#ifndef UTF8_MAXBYTES_CASE +# define UTF8_MAXBYTES_CASE 15 +#endif + +#endif +#ifndef UTF_ACCUMULATION_SHIFT +# define UTF_ACCUMULATION_SHIFT D_PPP_BYTE_INFO_BITS +#endif + +#ifdef NATIVE_TO_UTF +#ifndef NATIVE_UTF8_TO_I8 +# define NATIVE_UTF8_TO_I8(c) NATIVE_TO_UTF(c) +#endif + +#else /* System doesn't support EBCDIC */ +#ifndef NATIVE_UTF8_TO_I8 +# define NATIVE_UTF8_TO_I8(c) (c) +#endif + +#endif + +#ifdef UTF_TO_NATIVE +#ifndef I8_TO_NATIVE_UTF8 +# define I8_TO_NATIVE_UTF8(c) UTF_TO_NATIVE(c) +#endif + +#else /* System doesn't support EBCDIC */ +#ifndef I8_TO_NATIVE_UTF8 +# define I8_TO_NATIVE_UTF8(c) (c) +#endif + +#endif +#ifndef UTF_START_MASK +# define UTF_START_MASK(len) \ + (((len) >= 7) ? 0x00 : (0x1F >> ((len)-2))) +#endif + +#ifndef UTF_IS_CONTINUATION_MASK +# define UTF_IS_CONTINUATION_MASK \ + ((U8) (0xFF << UTF_ACCUMULATION_SHIFT)) +#endif + +#ifndef UTF_CONTINUATION_MARK +# define UTF_CONTINUATION_MARK \ + (UTF_IS_CONTINUATION_MASK & 0xB0) +#endif + +#ifndef UTF_MIN_START_BYTE +# define UTF_MIN_START_BYTE \ + ((UTF_CONTINUATION_MARK >> UTF_ACCUMULATION_SHIFT) | UTF_START_MARK(2)) +#endif +#ifndef UTF_MIN_ABOVE_LATIN1_BYTE +# define UTF_MIN_ABOVE_LATIN1_BYTE \ + ((0x100 >> UTF_ACCUMULATION_SHIFT) | UTF_START_MARK(2)) +#endif + +#if (PERL_BCDVERSION < 0x5007000) /* Was the complement of what should have been */ +# undef UTF8_IS_DOWNGRADEABLE_START +#endif +#ifndef UTF8_IS_DOWNGRADEABLE_START +# define UTF8_IS_DOWNGRADEABLE_START(c) \ + inRANGE(NATIVE_UTF8_TO_I8(c), \ + UTF_MIN_START_BYTE, UTF_MIN_ABOVE_LATIN1_BYTE - 1) +#endif + +#ifndef UTF_CONTINUATION_MASK +# define UTF_CONTINUATION_MASK \ + ((U8) ((1U << UTF_ACCUMULATION_SHIFT) - 1)) +#endif +#ifndef UTF8_ACCUMULATE +# define UTF8_ACCUMULATE(base, added) \ + (((base) << UTF_ACCUMULATION_SHIFT) \ + | ((NATIVE_UTF8_TO_I8(added)) \ + & UTF_CONTINUATION_MASK)) +#endif +#ifndef UTF8_ALLOW_ANYUV +# define UTF8_ALLOW_ANYUV 0 +#endif + +#ifndef UTF8_ALLOW_EMPTY +# define UTF8_ALLOW_EMPTY 0x0001 #endif - ) { - warn("Octal number > 037777777777 non-portable"); - } - *len_p = s - start; - if (!overflowed) { - *flags = 0; - return value; - } - *flags = PERL_SCAN_GREATER_THAN_UV_MAX; - if (result) - *result = value_nv; - return UV_MAX; -} + +#ifndef UTF8_ALLOW_CONTINUATION +# define UTF8_ALLOW_CONTINUATION 0x0002 #endif + +#ifndef UTF8_ALLOW_NON_CONTINUATION +# define UTF8_ALLOW_NON_CONTINUATION 0x0004 #endif -#if !defined(my_snprintf) -#if defined(NEED_my_snprintf) -static int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); -static -#else -extern int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); +#ifndef UTF8_ALLOW_SHORT +# define UTF8_ALLOW_SHORT 0x0008 #endif -#define my_snprintf DPPP_(my_my_snprintf) -#define Perl_my_snprintf DPPP_(my_my_snprintf) +#ifndef UTF8_ALLOW_LONG +# define UTF8_ALLOW_LONG 0x0010 +#endif -#if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL) +#ifndef UTF8_ALLOW_OVERFLOW +# define UTF8_ALLOW_OVERFLOW 0x0080 +#endif -int -DPPP_(my_my_snprintf)(char *buffer, const Size_t len, const char *format, ...) -{ - dTHX; - int retval; - va_list ap; - va_start(ap, format); -#ifdef HAS_VSNPRINTF - retval = vsnprintf(buffer, len, format, ap); -#else - retval = vsprintf(buffer, format, ap); +#ifndef UTF8_ALLOW_ANY +# define UTF8_ALLOW_ANY ( UTF8_ALLOW_CONTINUATION \ + |UTF8_ALLOW_NON_CONTINUATION \ + |UTF8_ALLOW_SHORT \ + |UTF8_ALLOW_LONG \ + |UTF8_ALLOW_OVERFLOW) #endif - va_end(ap); - if (retval < 0 || (len > 0 && (Size_t)retval >= len)) - Perl_croak(aTHX_ "panic: my_snprintf buffer overflow"); - return retval; -} +#if defined UTF8SKIP + +/* Don't use official versions because they use MIN, which may not be available */ +#undef UTF8_SAFE_SKIP +#undef UTF8_CHK_SKIP +#ifndef UTF8_SAFE_SKIP +# define UTF8_SAFE_SKIP(s, e) ( \ + ((((e) - (s)) <= 0) \ + ? 0 \ + : D_PPP_MIN(((e) - (s)), UTF8SKIP(s)))) #endif +#ifndef UTF8_CHK_SKIP +# define UTF8_CHK_SKIP(s) \ + (s[0] == '\0' ? 1 : ((U8) D_PPP_MIN(my_strnlen((char *) (s), UTF8SKIP(s)), \ + UTF8SKIP(s)))) #endif -#if !defined(my_sprintf) -#if defined(NEED_my_sprintf) -static int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); -static -#else -extern int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); +/* UTF8_CHK_SKIP depends on my_strnlen */ +#ifndef UTF8_SKIP +# define UTF8_SKIP(s) UTF8SKIP(s) #endif -#define my_sprintf DPPP_(my_my_sprintf) -#define Perl_my_sprintf DPPP_(my_my_sprintf) +#endif -#if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL) +#if 'A' == 65 +#ifndef UTF8_IS_INVARIANT +# define UTF8_IS_INVARIANT(c) isASCII(c) +#endif -int -DPPP_(my_my_sprintf)(char *buffer, const char* pat, ...) -{ - va_list args; - va_start(args, pat); - vsprintf(buffer, pat, args); - va_end(args); - return strlen(buffer); -} +#else +#ifndef UTF8_IS_INVARIANT +# define UTF8_IS_INVARIANT(c) (isASCII(c) || isCNTRL_L1(c)) +#endif #endif +#ifndef UVCHR_IS_INVARIANT +# define UVCHR_IS_INVARIANT(c) UTF8_IS_INVARIANT(c) #endif -#ifdef NO_XSLOCKS -# ifdef dJMPENV -# define dXCPT dJMPENV; int rEtV = 0 -# define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0) -# define XCPT_TRY_END JMPENV_POP; -# define XCPT_CATCH if (rEtV != 0) -# define XCPT_RETHROW JMPENV_JUMP(rEtV) +#ifdef UVCHR_IS_INVARIANT +# if 'A' != 65 || UVSIZE < 8 + /* 32 bit platform, which includes UTF-EBCDIC on the releases this is + * backported to */ +# define D_PPP_UVCHR_SKIP_UPPER(c) 7 # else -# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0 -# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0) -# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf); -# define XCPT_CATCH if (rEtV != 0) -# define XCPT_RETHROW Siglongjmp(top_env, rEtV) +# define D_PPP_UVCHR_SKIP_UPPER(c) \ + (((WIDEST_UTYPE) (c)) < \ + (((WIDEST_UTYPE) 1) << (6 * D_PPP_BYTE_INFO_BITS)) ? 7 : 13) # endif +#ifndef UVCHR_SKIP +# define UVCHR_SKIP(c) \ + UVCHR_IS_INVARIANT(c) ? 1 : \ + (WIDEST_UTYPE) (c) < (32 * (1U << ( D_PPP_BYTE_INFO_BITS))) ? 2 : \ + (WIDEST_UTYPE) (c) < (16 * (1U << (2 * D_PPP_BYTE_INFO_BITS))) ? 3 : \ + (WIDEST_UTYPE) (c) < ( 8 * (1U << (3 * D_PPP_BYTE_INFO_BITS))) ? 4 : \ + (WIDEST_UTYPE) (c) < ( 4 * (1U << (4 * D_PPP_BYTE_INFO_BITS))) ? 5 : \ + (WIDEST_UTYPE) (c) < ( 2 * (1U << (5 * D_PPP_BYTE_INFO_BITS))) ? 6 : \ + D_PPP_UVCHR_SKIP_UPPER(c) #endif -#if !defined(my_strlcat) -#if defined(NEED_my_strlcat) -static Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); -static -#else -extern Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); #endif -#define my_strlcat DPPP_(my_my_strlcat) -#define Perl_my_strlcat DPPP_(my_my_strlcat) +#ifdef is_ascii_string +#ifndef is_invariant_string +# define is_invariant_string(s,l) is_ascii_string(s,l) +#endif -#if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL) +#ifndef is_utf8_invariant_string +# define is_utf8_invariant_string(s,l) is_ascii_string(s,l) +#endif -Size_t -DPPP_(my_my_strlcat)(char *dst, const char *src, Size_t size) -{ - Size_t used, length, copy; +/* Hint: is_ascii_string, is_invariant_string + is_utf8_invariant_string() does the same thing and is preferred because its + name is more accurate as to what it does */ +#endif + +#ifdef ibcmp_utf8 +#ifndef foldEQ_utf8 +# define foldEQ_utf8(s1,pe1,l1,u1,s2,pe2,l2,u2) \ + cBOOL(! ibcmp_utf8(s1,pe1,l1,u1,s2,pe2,l2,u2)) +#endif - used = strlen(dst); - length = strlen(src); - if (size > 0 && used < size - 1) { - copy = (length >= size - used) ? size - used - 1 : length; - memcpy(dst + used, src, copy); - dst[used + copy] = '\0'; - } - return used + length; -} #endif + +#if defined(is_utf8_string) && defined(UTF8SKIP) +#ifndef isUTF8_CHAR +# define isUTF8_CHAR(s, e) ( \ + (e) <= (s) || ! is_utf8_string(s, UTF8_SAFE_SKIP(s, e)) \ + ? 0 \ + : UTF8SKIP(s)) #endif -#if !defined(my_strlcpy) -#if defined(NEED_my_strlcpy) -static Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); +#endif + +#if 'A' == 65 +#ifndef BOM_UTF8 +# define BOM_UTF8 "\xEF\xBB\xBF" +#endif + +#ifndef REPLACEMENT_CHARACTER_UTF8 +# define REPLACEMENT_CHARACTER_UTF8 "\xEF\xBF\xBD" +#endif + +#elif '^' == 95 +#ifndef BOM_UTF8 +# define BOM_UTF8 "\xDD\x73\x66\x73" +#endif + +#ifndef REPLACEMENT_CHARACTER_UTF8 +# define REPLACEMENT_CHARACTER_UTF8 "\xDD\x73\x73\x71" +#endif + +#elif '^' == 176 +#ifndef BOM_UTF8 +# define BOM_UTF8 "\xDD\x72\x65\x72" +#endif + +#ifndef REPLACEMENT_CHARACTER_UTF8 +# define REPLACEMENT_CHARACTER_UTF8 "\xDD\x72\x72\x70" +#endif + +#else +# error Unknown character set +#endif + +#if (PERL_BCDVERSION < 0x5031004) + /* Versions prior to this accepted things that are now considered + * malformations, and didn't return -1 on error with warnings enabled + * */ +# undef utf8_to_uvchr_buf +#endif + +/* This implementation brings modern, generally more restricted standards to + * utf8_to_uvchr_buf. Some of these are security related, and clearly must + * be done. But its arguable that the others need not, and hence should not. + * The reason they're here is that a module that intends to play with the + * latest perls should be able to work the same in all releases. An example is + * that perl no longer accepts any UV for a code point, but limits them to + * IV_MAX or below. This is for future internal use of the larger code points. + * If it turns out that some of these changes are breaking code that isn't + * intended to work with modern perls, the tighter restrictions could be + * relaxed. khw thinks this is unlikely, but has been wrong in the past. */ + +/* 5.6.0 is the first release with UTF-8, and we don't implement this function + * there due to its likely lack of still being in use, and the underlying + * implementation is very different from later ones, without the later + * safeguards, so would require extra work to deal with */ +#if (PERL_BCDVERSION >= 0x5006001) && ! defined(utf8_to_uvchr_buf) + /* Choose which underlying implementation to use. At least one must be + * present or the perl is too early to handle this function */ +# if defined(utf8n_to_uvchr) || defined(utf8_to_uvchr) || defined(utf8_to_uv) +# if defined(utf8n_to_uvchr) /* This is the preferred implementation */ +# define D_PPP_utf8_to_uvchr_buf_callee utf8n_to_uvchr +# elif /* Must be at least 5.6.1 from #if above; \ + If have both regular and _simple, regular has all args */ \ + defined(utf8_to_uv) && defined(utf8_to_uv_simple) +# define D_PPP_utf8_to_uvchr_buf_callee utf8_to_uv +# elif defined(utf8_to_uvchr) /* The below won't work well on error input */ +# define D_PPP_utf8_to_uvchr_buf_callee(s, curlen, retlen, flags) \ + utf8_to_uvchr((U8 *)(s), (retlen)) +# else +# define D_PPP_utf8_to_uvchr_buf_callee(s, curlen, retlen, flags) \ + utf8_to_uv((U8 *)(s), (retlen)) +# endif +# endif + +# if defined(NEED_utf8_to_uvchr_buf) +static UV DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 * s, const U8 * send, STRLEN * retlen); static #else -extern Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); +extern UV DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 * s, const U8 * send, STRLEN * retlen); #endif -#define my_strlcpy DPPP_(my_my_strlcpy) -#define Perl_my_strlcpy DPPP_(my_my_strlcpy) +#if defined(NEED_utf8_to_uvchr_buf) || defined(NEED_utf8_to_uvchr_buf_GLOBAL) -#if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL) +#ifdef utf8_to_uvchr_buf +# undef utf8_to_uvchr_buf +#endif +#define utf8_to_uvchr_buf(a,b,c) DPPP_(my_utf8_to_uvchr_buf)(aTHX_ a,b,c) +#define Perl_utf8_to_uvchr_buf DPPP_(my_utf8_to_uvchr_buf) -Size_t -DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size) + +UV +DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen) { - Size_t length, copy; + UV ret; + STRLEN curlen; + bool overflows = 0; + const U8 *cur_s = s; + const bool do_warnings = ckWARN_d(WARN_UTF8); +# if (PERL_BCDVERSION < 0x5026000) && ! defined(EBCDIC) + STRLEN overflow_length = 0; +# endif - length = strlen(src); - if (size > 0) { - copy = (length >= size) ? size - 1 : length; - memcpy(dst, src, copy); - dst[copy] = '\0'; + if (send > s) { + curlen = send - s; } - return length; + else { + assert(0); /* Modern perls die under this circumstance */ + curlen = 0; + if (! do_warnings) { /* Handle empty here if no warnings needed */ + if (retlen) *retlen = 0; + return UNICODE_REPLACEMENT; + } + } + +# if (PERL_BCDVERSION < 0x5026000) && ! defined(EBCDIC) + + /* Perl did not properly detect overflow for much of its history on + * non-EBCDIC platforms, often returning an overlong value which may or may + * not have been tolerated in the call. Also, earlier versions, when they + * did detect overflow, may have disallowed it completely. Modern ones can + * replace it with the REPLACEMENT CHARACTER, depending on calling + * parameters. Therefore detect it ourselves in releases it was + * problematic in. */ + + if (curlen > 0 && UNLIKELY(*s >= 0xFE)) { + + /* First, on a 32-bit machine the first byte being at least \xFE + * automatically is overflow, as it indicates something requiring more + * than 31 bits */ + if (sizeof(ret) < 8) { + overflows = 1; + overflow_length = (*s == 0xFE) ? 7 : 13; + } + else { + const U8 highest[] = /* 2*63-1 */ + "\xFF\x80\x87\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF"; + const U8 *cur_h = highest; + + for (cur_s = s; cur_s < send; cur_s++, cur_h++) { + if (UNLIKELY(*cur_s == *cur_h)) { + continue; + } + + /* If this byte is larger than the corresponding highest UTF-8 + * byte, the sequence overflows; otherwise the byte is less + * than (as we handled the equality case above), and so the + * sequence doesn't overflow */ + overflows = *cur_s > *cur_h; + break; + + } + + /* Here, either we set the bool and broke out of the loop, or got + * to the end and all bytes are the same which indicates it doesn't + * overflow. If it did overflow, it would be this number of bytes + * */ + overflow_length = 13; + } + } + + if (UNLIKELY(overflows)) { + ret = 0; + + if (! do_warnings && retlen) { + *retlen = overflow_length; + } + } + else + +# endif /* < 5.26 */ + + /* Here, we are either in a release that properly detects overflow, or + * we have checked for overflow and the next statement is executing as + * part of the above conditional where we know we don't have overflow. + * + * The modern versions allow anything that evaluates to a legal UV, but + * not overlongs nor an empty input */ + ret = D_PPP_utf8_to_uvchr_buf_callee( + (U8 *) /* Early perls: no const */ + s, curlen, retlen, (UTF8_ALLOW_ANYUV + & ~(UTF8_ALLOW_LONG|UTF8_ALLOW_EMPTY))); + +# if (PERL_BCDVERSION >= 0x5026000) && (PERL_BCDVERSION < 0x5028000) + + /* But actually, more modern versions restrict the UV to being no more than + * what an IV can hold, so it could still have gotten it wrong about + * overflowing. */ + if (UNLIKELY(ret > IV_MAX)) { + overflows = 1; + } + +# endif + + if (UNLIKELY(overflows)) { + if (! do_warnings) { + if (retlen) { + *retlen = D_PPP_MIN(*retlen, UTF8SKIP(s)); + *retlen = D_PPP_MIN(*retlen, curlen); + } + return UNICODE_REPLACEMENT; + } + else { + + /* We use the error message in use from 5.8-5.26 */ + Perl_warner(aTHX_ packWARN(WARN_UTF8), + "Malformed UTF-8 character (overflow at 0x%" UVxf + ", byte 0x%02x, after start byte 0x%02x)", + ret, *cur_s, *s); + if (retlen) { + *retlen = (STRLEN) -1; + } + return 0; + } + } + + /* Here, did not overflow, but if it failed for some other reason, and + * warnings are off, to emulate the behavior of the real utf8_to_uvchr(), + * try again, allowing anything. (Note a return of 0 is ok if the input + * was '\0') */ + if (UNLIKELY(ret == 0 && (curlen == 0 || *s != '\0'))) { + + /* If curlen is 0, we already handled the case where warnings are + * disabled, so this 'if' will be true, and so later on, we know that + * 's' is dereferencible */ + if (do_warnings) { + if (retlen) { + *retlen = (STRLEN) -1; + } + } + else { + ret = D_PPP_utf8_to_uvchr_buf_callee( + (U8 *) /* Early perls: no const */ + s, curlen, retlen, UTF8_ALLOW_ANY); + /* Override with the REPLACEMENT character, as that is what the + * modern version of this function returns */ + ret = UNICODE_REPLACEMENT; + +# if (PERL_BCDVERSION < 0x5016000) + + /* Versions earlier than this don't necessarily return the proper + * length. It should not extend past the end of string, nor past + * what the first byte indicates the length is, nor past the + * continuation characters */ + if (retlen && (IV) *retlen >= 0) { + unsigned int i = 1; + + *retlen = D_PPP_MIN(*retlen, curlen); + *retlen = D_PPP_MIN(*retlen, UTF8SKIP(s)); + do { +# ifdef UTF8_IS_CONTINUATION + if (! UTF8_IS_CONTINUATION(s[i])) +# else /* Versions without the above don't support EBCDIC anyway */ + if (s[i] < 0x80 || s[i] > 0xBF) +# endif + { + *retlen = i; + break; + } + } while (++i < *retlen); + } + +# endif + + } + } + + return ret; } +# endif +#endif + +#if defined(UTF8SKIP) && defined(utf8_to_uvchr_buf) +#undef utf8_to_uvchr /* Always redefine this unsafe function so that it refuses + to read past a NUL, making it much less likely to read + off the end of the buffer. A NUL indicates the start + of the next character anyway. If the input isn't + NUL-terminated, the function remains unsafe, as it + always has been. */ +#ifndef utf8_to_uvchr +# define utf8_to_uvchr(s, lp) \ + ((*(s) == '\0') \ + ? utf8_to_uvchr_buf(s,((s)+1), lp) /* Handle single NUL specially */ \ + : utf8_to_uvchr_buf(s, (s) + UTF8_CHK_SKIP(s), (lp))) +#endif + +#endif + +/* Hint: utf8_to_uvchr + Use utf8_to_uvchr_buf() instead. But ONLY if you KNOW the upper bound + of the input string (not resorting to using UTF8SKIP, etc., to infer it). + The backported utf8_to_uvchr() will do a better job to prevent most cases + of trying to read beyond the end of the buffer */ + +/* Replace utf8_to_uvchr with utf8_to_uvchr_buf */ + +#ifdef sv_len_utf8 + /* Older Perl versions have broken sv_len_utf8() when passed sv does not have SVf_UTF8 flag set */ + /* Also note that SvGETMAGIC() may change presence of SVf_UTF8 flag */ +# if (PERL_BCDVERSION < 0x5017005) +# undef sv_len_utf8 +# if defined(PERL_USE_GCC_BRACE_GROUPS) +# define sv_len_utf8_nomg(sv) ({ SV *_sv2 = (sv); (SvUTF8(_sv2) ? Perl_sv_len_utf8(aTHX_ (!SvGMAGICAL(_sv2) ? _sv2 : sv_mortalcopy_flags(_sv2, SV_NOSTEAL))) : ({ STRLEN _len; SvPV_nomg(_sv2, _len); _len; })); }) +# define sv_len_utf8(sv) ({ SV *_sv1 = (sv); SvGETMAGIC(_sv1); sv_len_utf8_nomg(_sv1); }) +# else +# define sv_len_utf8_nomg(sv) (PL_Sv = (sv), (SvUTF8(PL_Sv) ? Perl_sv_len_utf8(aTHX_ (!SvGMAGICAL(PL_Sv) ? PL_Sv : sv_mortalcopy_flags(PL_Sv, SV_NOSTEAL))) : (SvPV_nomg(PL_Sv, PL_na), PL_na))) +# define sv_len_utf8(sv) (PL_Sv = (sv), SvGETMAGIC(PL_Sv), sv_len_utf8_nomg(PL_Sv)) +# endif +# endif +# if defined(PERL_USE_GCC_BRACE_GROUPS) +#ifndef sv_len_utf8_nomg +# define sv_len_utf8_nomg(sv) ({ SV *_sv = (sv); sv_len_utf8(!SvGMAGICAL(_sv) ? _sv : sv_mortalcopy_flags(_sv, SV_NOSTEAL)); }) +#endif + +# else +#ifndef sv_len_utf8_nomg +# define sv_len_utf8_nomg(sv) ((PL_Sv = (sv)), sv_len_utf8(!SvGMAGICAL(PL_Sv) ? PL_Sv : sv_mortalcopy_flags(PL_Sv, SV_NOSTEAL))) #endif + +# endif #endif #ifndef PERL_PV_ESCAPE_QUOTE # define PERL_PV_ESCAPE_QUOTE 0x0001 @@ -6875,13 +17640,14 @@ extern char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags); #endif +#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL) + #ifdef pv_escape # undef pv_escape #endif #define pv_escape(a,b,c,d,e,f) DPPP_(my_pv_escape)(aTHX_ a,b,c,d,e,f) #define Perl_pv_escape DPPP_(my_pv_escape) -#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL) char * DPPP_(my_pv_escape)(pTHX_ SV *dsv, char const * const str, @@ -6894,7 +17660,7 @@ STRLEN wrote = 0; STRLEN chsize = 0; STRLEN readsize = 1; -#if defined(is_utf8_string) && defined(utf8_to_uvchr) +#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf) bool isuni = flags & PERL_PV_ESCAPE_UNI ? 1 : 0; #endif const char *pv = str; @@ -6902,69 +17668,69 @@ octbuf[0] = esc; if (!(flags & PERL_PV_ESCAPE_NOCLEAR)) - sv_setpvs(dsv, ""); + sv_setpvs(dsv, ""); -#if defined(is_utf8_string) && defined(utf8_to_uvchr) +#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf) if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count)) isuni = 1; #endif for (; pv < end && (!max || wrote < max) ; pv += readsize) { const UV u = -#if defined(is_utf8_string) && defined(utf8_to_uvchr) - isuni ? utf8_to_uvchr((U8*)pv, &readsize) : +#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf) + isuni ? utf8_to_uvchr_buf((U8*)pv, end, &readsize) : #endif - (U8)*pv; + (U8)*pv; const U8 c = (U8)u & 0xFF; if (u > 255 || (flags & PERL_PV_ESCAPE_ALL)) { if (flags & PERL_PV_ESCAPE_FIRSTCHAR) chsize = my_snprintf(octbuf, sizeof octbuf, - "%"UVxf, u); + "%" UVxf, u); else chsize = my_snprintf(octbuf, sizeof octbuf, - "%cx{%"UVxf"}", esc, u); + "%cx{%" UVxf "}", esc, u); } else if (flags & PERL_PV_ESCAPE_NOBACKSLASH) { chsize = 1; } else { if (c == dq || c == esc || !isPRINT(c)) { - chsize = 2; + chsize = 2; switch (c) { - case '\\' : /* fallthrough */ - case '%' : if (c == esc) - octbuf[1] = esc; - else - chsize = 1; - break; - case '\v' : octbuf[1] = 'v'; break; - case '\t' : octbuf[1] = 't'; break; - case '\r' : octbuf[1] = 'r'; break; - case '\n' : octbuf[1] = 'n'; break; - case '\f' : octbuf[1] = 'f'; break; + case '\\' : /* fallthrough */ + case '%' : if (c == esc) + octbuf[1] = esc; + else + chsize = 1; + break; + case '\v' : octbuf[1] = 'v'; break; + case '\t' : octbuf[1] = 't'; break; + case '\r' : octbuf[1] = 'r'; break; + case '\n' : octbuf[1] = 'n'; break; + case '\f' : octbuf[1] = 'f'; break; case '"' : if (dq == '"') - octbuf[1] = '"'; - else - chsize = 1; - break; - default: chsize = my_snprintf(octbuf, sizeof octbuf, - pv < end && isDIGIT((U8)*(pv+readsize)) - ? "%c%03o" : "%c%o", esc, c); + octbuf[1] = '"'; + else + chsize = 1; + break; + default: chsize = my_snprintf(octbuf, sizeof octbuf, + pv < end && isDIGIT((U8)*(pv+readsize)) + ? "%c%03o" : "%c%o", esc, c); } } else { chsize = 1; } - } - if (max && wrote + chsize > max) { - break; + } + if (max && wrote + chsize > max) { + break; } else if (chsize > 1) { sv_catpvn(dsv, octbuf, chsize); wrote += chsize; - } else { - char tmp[2]; - my_snprintf(tmp, sizeof tmp, "%c", c); + } else { + char tmp[2]; + my_snprintf(tmp, sizeof tmp, "%c", c); sv_catpvn(dsv, tmp, 1); - wrote++; - } + wrote++; + } if (flags & PERL_PV_ESCAPE_FIRSTCHAR) break; } @@ -6984,13 +17750,14 @@ extern char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags); #endif +#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL) + #ifdef pv_pretty # undef pv_pretty #endif #define pv_pretty(a,b,c,d,e,f,g) DPPP_(my_pv_pretty)(aTHX_ a,b,c,d,e,f,g) #define Perl_pv_pretty DPPP_(my_pv_pretty) -#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL) char * DPPP_(my_pv_pretty)(pTHX_ SV *dsv, char const * const str, const STRLEN count, @@ -7001,7 +17768,7 @@ STRLEN escaped; if (!(flags & PERL_PV_PRETTY_NOCLEAR)) - sv_setpvs(dsv, ""); + sv_setpvs(dsv, ""); if (dq == '"') sv_catpvs(dsv, "\""); @@ -7017,12 +17784,12 @@ sv_catpv(dsv, D_PPP_CONSTPV_ARG(end_color)); if (dq == '"') - sv_catpvs(dsv, "\""); + sv_catpvs(dsv, "\""); else if (flags & PERL_PV_PRETTY_LTGT) sv_catpvs(dsv, ">"); if ((flags & PERL_PV_PRETTY_ELLIPSES) && escaped < count) - sv_catpvs(dsv, "..."); + sv_catpvs(dsv, "..."); return SvPVX(dsv); } @@ -7038,26 +17805,121 @@ extern char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim); #endif +#if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL) + #ifdef pv_display # undef pv_display #endif #define pv_display(a,b,c,d,e) DPPP_(my_pv_display)(aTHX_ a,b,c,d,e) #define Perl_pv_display DPPP_(my_pv_display) -#if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL) char * DPPP_(my_pv_display)(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) { pv_pretty(dsv, pv, cur, pvlim, NULL, NULL, PERL_PV_PRETTY_DUMP); if (len > cur && pv[cur] == '\0') - sv_catpvs(dsv, "\\0"); + sv_catpvs(dsv, "\\0"); return SvPVX(dsv); } #endif #endif +#if PERL_VERSION_LT(5,27,9) +#ifndef LC_NUMERIC_LOCK +# define LC_NUMERIC_LOCK +#endif + +#ifndef LC_NUMERIC_UNLOCK +# define LC_NUMERIC_UNLOCK +#endif + +# if PERL_VERSION_LT(5,19,0) +# undef STORE_LC_NUMERIC_SET_STANDARD +# undef RESTORE_LC_NUMERIC +# undef DECLARATION_FOR_LC_NUMERIC_MANIPULATION +# ifdef USE_LOCALE +#ifndef DECLARATION_FOR_LC_NUMERIC_MANIPULATION +# define DECLARATION_FOR_LC_NUMERIC_MANIPULATION char *LoC_ +#endif + +#ifndef STORE_NUMERIC_SET_STANDARD +# define STORE_NUMERIC_SET_STANDARD() \ + LoC_ = savepv(setlocale(LC_NUMERIC, NULL)); \ + SAVEFREEPV(LoC_); \ + setlocale(LC_NUMERIC, "C"); +#endif + +#ifndef RESTORE_LC_NUMERIC +# define RESTORE_LC_NUMERIC() \ + setlocale(LC_NUMERIC, LoC_); +#endif + +# else +#ifndef DECLARATION_FOR_LC_NUMERIC_MANIPULATION +# define DECLARATION_FOR_LC_NUMERIC_MANIPULATION +#endif + +#ifndef STORE_LC_NUMERIC_SET_STANDARD +# define STORE_LC_NUMERIC_SET_STANDARD() +#endif + +#ifndef RESTORE_LC_NUMERIC +# define RESTORE_LC_NUMERIC() +#endif + +# endif +# endif +#endif + +#ifndef LOCK_NUMERIC_STANDARD +# define LOCK_NUMERIC_STANDARD() +#endif + +#ifndef UNLOCK_NUMERIC_STANDARD +# define UNLOCK_NUMERIC_STANDARD() +#endif + +/* The names of these changed in 5.28 */ +#ifndef LOCK_LC_NUMERIC_STANDARD +# define LOCK_LC_NUMERIC_STANDARD LOCK_NUMERIC_STANDARD +#endif + +#ifndef UNLOCK_LC_NUMERIC_STANDARD +# define UNLOCK_LC_NUMERIC_STANDARD UNLOCK_NUMERIC_STANDARD +#endif + +/* If this doesn't exist, it's not needed, so is void noop */ +#ifndef switch_to_global_locale +# define switch_to_global_locale() +#endif + +/* Originally, this didn't return a value, but in perls like that, the value + * should always be TRUE. Add a return to Perl_sync_locale() when it's + * available. And actually do a sync when its not, if locales are available on + * this system. */ +#ifdef sync_locale +# if (PERL_BCDVERSION < 0x5027009) +# if (PERL_BCDVERSION >= 0x5021003) +# undef sync_locale +# define sync_locale() (Perl_sync_locale(aTHX), 1) +# elif defined(sync_locale) /* These should only be the 5.20 maints*/ +# undef sync_locale /* Just copy their defn and return 1 */ +# define sync_locale() (new_ctype(setlocale(LC_CTYPE, NULL)), \ + new_collate(setlocale(LC_COLLATE, NULL)), \ + set_numeric_local(), \ + new_numeric(setlocale(LC_NUMERIC, NULL)), \ + 1) +# elif defined(new_ctype) && defined(LC_CTYPE) +# define sync_locale() (new_ctype(setlocale(LC_CTYPE, NULL)), 1) +# endif +# endif +#endif +#ifndef sync_locale +# define sync_locale() 1 +#endif + #endif /* _P_P_PORTABILITY_H_ */ /* End of File ppport.h */ diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/expected/plpgsql_control.out postgresql-13-13.7/src/pl/plpgsql/src/expected/plpgsql_control.out --- postgresql-13-13.4/src/pl/plpgsql/src/expected/plpgsql_control.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/expected/plpgsql_control.out 2022-05-09 21:16:30.000000000 +0000 @@ -413,6 +413,17 @@ raise notice 'should get here'; end$$; NOTICE: should get here +-- check exit out of outermost block +do $$ +<> +begin + <> + begin + exit outerblock; + raise notice 'should not get here'; + end; + raise notice 'should not get here, either'; +end$$; -- unlabeled exit does match a while loop do $$ begin diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/expected/plpgsql_transaction.out postgresql-13-13.7/src/pl/plpgsql/src/expected/plpgsql_transaction.out --- postgresql-13-13.4/src/pl/plpgsql/src/expected/plpgsql_transaction.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/expected/plpgsql_transaction.out 2022-05-09 21:16:30.000000000 +0000 @@ -430,6 +430,34 @@ ---+--- (0 rows) +-- test commit/rollback inside exception handler, too +TRUNCATE test1; +DO LANGUAGE plpgsql $$ +BEGIN + FOR i IN 1..10 LOOP + BEGIN + INSERT INTO test1 VALUES (i, 'good'); + INSERT INTO test1 VALUES (i/0, 'bad'); + EXCEPTION + WHEN division_by_zero THEN + INSERT INTO test1 VALUES (i, 'exception'); + IF (i % 3) > 0 THEN COMMIT; ELSE ROLLBACK; END IF; + END; + END LOOP; +END; +$$; +SELECT * FROM test1; + a | b +----+----------- + 1 | exception + 2 | exception + 4 | exception + 5 | exception + 7 | exception + 8 | exception + 10 | exception +(7 rows) + -- detoast result of simple expression after commit CREATE TEMP TABLE test4(f1 text); ALTER TABLE test4 ALTER COLUMN f1 SET STORAGE EXTERNAL; -- disable compression @@ -600,6 +628,27 @@ 42 (1 row) +-- another snapshot handling case: argument expressions of a CALL need +-- to be evaluated with an up-to-date snapshot +CREATE FUNCTION report_count() RETURNS int +STABLE LANGUAGE sql +AS $$ SELECT COUNT(*) FROM test2 $$; +CREATE PROCEDURE transaction_test9b(cnt int) +LANGUAGE plpgsql +AS $$ +BEGIN + RAISE NOTICE 'count = %', cnt; +END +$$; +DO $$ +BEGIN + CALL transaction_test9b(report_count()); + INSERT INTO test2 VALUES(43); + CALL transaction_test9b(report_count()); +END +$$; +NOTICE: count = 1 +NOTICE: count = 2 -- Test transaction in procedure with output parameters. This uses a -- different portal strategy and different code paths in pquery.c. CREATE PROCEDURE transaction_test10a(INOUT x int) diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/pl_comp.c postgresql-13-13.7/src/pl/plpgsql/src/pl_comp.c --- postgresql-13-13.4/src/pl/plpgsql/src/pl_comp.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/pl_comp.c 2022-05-09 21:16:30.000000000 +0000 @@ -1033,9 +1033,11 @@ /* * If the outer block has an EXCEPTION clause, we need to make a new outer * block, since the added RETURN shouldn't act like it is inside the - * EXCEPTION clause. + * EXCEPTION clause. Likewise, if it has a label, wrap it in a new outer + * block so that EXIT doesn't skip the RETURN. */ - if (function->action->exceptions != NULL) + if (function->action->exceptions != NULL || + function->action->label != NULL) { PLpgSQL_stmt_block *new; diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/pl_gram.c postgresql-13-13.7/src/pl/plpgsql/src/pl_gram.c --- postgresql-13-13.4/src/pl/plpgsql/src/pl_gram.c 2021-08-09 21:03:34.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/pl_gram.c 2022-05-09 21:29:49.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,13 +70,12 @@ #define yyerror plpgsql_yyerror #define yydebug plpgsql_yydebug #define yynerrs plpgsql_yynerrs - #define yylval plpgsql_yylval #define yychar plpgsql_yychar #define yylloc plpgsql_yylloc /* First part of user prologue. */ -#line 1 "pl_gram.y" /* yacc.c:337 */ +#line 1 "pl_gram.y" /*------------------------------------------------------------------------- * @@ -190,7 +190,17 @@ static void check_raise_parameters(PLpgSQL_stmt_raise *stmt); -#line 194 "pl_gram.c" /* yacc.c:337 */ +#line 194 "pl_gram.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -203,246 +213,242 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* In a future release of Bison, this section will be replaced - by #include "pl_gram.h". */ -#ifndef YY_PLPGSQL_YY_PL_GRAM_H_INCLUDED -# define YY_PLPGSQL_YY_PL_GRAM_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int plpgsql_yydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - IDENT = 258, - UIDENT = 259, - FCONST = 260, - SCONST = 261, - USCONST = 262, - BCONST = 263, - XCONST = 264, - Op = 265, - ICONST = 266, - PARAM = 267, - TYPECAST = 268, - DOT_DOT = 269, - COLON_EQUALS = 270, - EQUALS_GREATER = 271, - LESS_EQUALS = 272, - GREATER_EQUALS = 273, - NOT_EQUALS = 274, - T_WORD = 275, - T_CWORD = 276, - T_DATUM = 277, - LESS_LESS = 278, - GREATER_GREATER = 279, - K_ABSOLUTE = 280, - K_ALIAS = 281, - K_ALL = 282, - K_AND = 283, - K_ARRAY = 284, - K_ASSERT = 285, - K_BACKWARD = 286, - K_BEGIN = 287, - K_BY = 288, - K_CALL = 289, - K_CASE = 290, - K_CHAIN = 291, - K_CLOSE = 292, - K_COLLATE = 293, - K_COLUMN = 294, - K_COLUMN_NAME = 295, - K_COMMIT = 296, - K_CONSTANT = 297, - K_CONSTRAINT = 298, - K_CONSTRAINT_NAME = 299, - K_CONTINUE = 300, - K_CURRENT = 301, - K_CURSOR = 302, - K_DATATYPE = 303, - K_DEBUG = 304, - K_DECLARE = 305, - K_DEFAULT = 306, - K_DETAIL = 307, - K_DIAGNOSTICS = 308, - K_DO = 309, - K_DUMP = 310, - K_ELSE = 311, - K_ELSIF = 312, - K_END = 313, - K_ERRCODE = 314, - K_ERROR = 315, - K_EXCEPTION = 316, - K_EXECUTE = 317, - K_EXIT = 318, - K_FETCH = 319, - K_FIRST = 320, - K_FOR = 321, - K_FOREACH = 322, - K_FORWARD = 323, - K_FROM = 324, - K_GET = 325, - K_HINT = 326, - K_IF = 327, - K_IMPORT = 328, - K_IN = 329, - K_INFO = 330, - K_INSERT = 331, - K_INTO = 332, - K_IS = 333, - K_LAST = 334, - K_LOG = 335, - K_LOOP = 336, - K_MESSAGE = 337, - K_MESSAGE_TEXT = 338, - K_MOVE = 339, - K_NEXT = 340, - K_NO = 341, - K_NOT = 342, - K_NOTICE = 343, - K_NULL = 344, - K_OPEN = 345, - K_OPTION = 346, - K_OR = 347, - K_PERFORM = 348, - K_PG_CONTEXT = 349, - K_PG_DATATYPE_NAME = 350, - K_PG_EXCEPTION_CONTEXT = 351, - K_PG_EXCEPTION_DETAIL = 352, - K_PG_EXCEPTION_HINT = 353, - K_PRINT_STRICT_PARAMS = 354, - K_PRIOR = 355, - K_QUERY = 356, - K_RAISE = 357, - K_RELATIVE = 358, - K_RESET = 359, - K_RETURN = 360, - K_RETURNED_SQLSTATE = 361, - K_REVERSE = 362, - K_ROLLBACK = 363, - K_ROW_COUNT = 364, - K_ROWTYPE = 365, - K_SCHEMA = 366, - K_SCHEMA_NAME = 367, - K_SCROLL = 368, - K_SET = 369, - K_SLICE = 370, - K_SQLSTATE = 371, - K_STACKED = 372, - K_STRICT = 373, - K_TABLE = 374, - K_TABLE_NAME = 375, - K_THEN = 376, - K_TO = 377, - K_TYPE = 378, - K_USE_COLUMN = 379, - K_USE_VARIABLE = 380, - K_USING = 381, - K_VARIABLE_CONFLICT = 382, - K_WARNING = 383, - K_WHEN = 384, - K_WHILE = 385 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - -union YYSTYPE +#include "pl_gram.h" +/* Symbol kind. */ +enum yysymbol_kind_t { -#line 120 "pl_gram.y" /* yacc.c:352 */ - - core_YYSTYPE core_yystype; - /* these fields must match core_YYSTYPE: */ - int ival; - char *str; - const char *keyword; - - PLword word; - PLcword cword; - PLwdatum wdatum; - bool boolean; - Oid oid; - struct - { - char *name; - int lineno; - } varname; - struct - { - char *name; - int lineno; - PLpgSQL_datum *scalar; - PLpgSQL_datum *row; - } forvariable; - struct - { - char *label; - int n_initvars; - int *initvarnos; - } declhdr; - struct - { - List *stmts; - char *end_label; - int end_label_location; - } loop_body; - List *list; - PLpgSQL_type *dtype; - PLpgSQL_datum *datum; - PLpgSQL_var *var; - PLpgSQL_expr *expr; - PLpgSQL_stmt *stmt; - PLpgSQL_condition *condition; - PLpgSQL_exception *exception; - PLpgSQL_exception_block *exception_block; - PLpgSQL_nsitem *nsitem; - PLpgSQL_diag_item *diagitem; - PLpgSQL_stmt_fetch *fetch; - PLpgSQL_case_when *casewhen; - -#line 419 "pl_gram.c" /* yacc.c:352 */ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_IDENT = 3, /* IDENT */ + YYSYMBOL_UIDENT = 4, /* UIDENT */ + YYSYMBOL_FCONST = 5, /* FCONST */ + YYSYMBOL_SCONST = 6, /* SCONST */ + YYSYMBOL_USCONST = 7, /* USCONST */ + YYSYMBOL_BCONST = 8, /* BCONST */ + YYSYMBOL_XCONST = 9, /* XCONST */ + YYSYMBOL_Op = 10, /* Op */ + YYSYMBOL_ICONST = 11, /* ICONST */ + YYSYMBOL_PARAM = 12, /* PARAM */ + YYSYMBOL_TYPECAST = 13, /* TYPECAST */ + YYSYMBOL_DOT_DOT = 14, /* DOT_DOT */ + YYSYMBOL_COLON_EQUALS = 15, /* COLON_EQUALS */ + YYSYMBOL_EQUALS_GREATER = 16, /* EQUALS_GREATER */ + YYSYMBOL_LESS_EQUALS = 17, /* LESS_EQUALS */ + YYSYMBOL_GREATER_EQUALS = 18, /* GREATER_EQUALS */ + YYSYMBOL_NOT_EQUALS = 19, /* NOT_EQUALS */ + YYSYMBOL_T_WORD = 20, /* T_WORD */ + YYSYMBOL_T_CWORD = 21, /* T_CWORD */ + YYSYMBOL_T_DATUM = 22, /* T_DATUM */ + YYSYMBOL_LESS_LESS = 23, /* LESS_LESS */ + YYSYMBOL_GREATER_GREATER = 24, /* GREATER_GREATER */ + YYSYMBOL_K_ABSOLUTE = 25, /* K_ABSOLUTE */ + YYSYMBOL_K_ALIAS = 26, /* K_ALIAS */ + YYSYMBOL_K_ALL = 27, /* K_ALL */ + YYSYMBOL_K_AND = 28, /* K_AND */ + YYSYMBOL_K_ARRAY = 29, /* K_ARRAY */ + YYSYMBOL_K_ASSERT = 30, /* K_ASSERT */ + YYSYMBOL_K_BACKWARD = 31, /* K_BACKWARD */ + YYSYMBOL_K_BEGIN = 32, /* K_BEGIN */ + YYSYMBOL_K_BY = 33, /* K_BY */ + YYSYMBOL_K_CALL = 34, /* K_CALL */ + YYSYMBOL_K_CASE = 35, /* K_CASE */ + YYSYMBOL_K_CHAIN = 36, /* K_CHAIN */ + YYSYMBOL_K_CLOSE = 37, /* K_CLOSE */ + YYSYMBOL_K_COLLATE = 38, /* K_COLLATE */ + YYSYMBOL_K_COLUMN = 39, /* K_COLUMN */ + YYSYMBOL_K_COLUMN_NAME = 40, /* K_COLUMN_NAME */ + YYSYMBOL_K_COMMIT = 41, /* K_COMMIT */ + YYSYMBOL_K_CONSTANT = 42, /* K_CONSTANT */ + YYSYMBOL_K_CONSTRAINT = 43, /* K_CONSTRAINT */ + YYSYMBOL_K_CONSTRAINT_NAME = 44, /* K_CONSTRAINT_NAME */ + YYSYMBOL_K_CONTINUE = 45, /* K_CONTINUE */ + YYSYMBOL_K_CURRENT = 46, /* K_CURRENT */ + YYSYMBOL_K_CURSOR = 47, /* K_CURSOR */ + YYSYMBOL_K_DATATYPE = 48, /* K_DATATYPE */ + YYSYMBOL_K_DEBUG = 49, /* K_DEBUG */ + YYSYMBOL_K_DECLARE = 50, /* K_DECLARE */ + YYSYMBOL_K_DEFAULT = 51, /* K_DEFAULT */ + YYSYMBOL_K_DETAIL = 52, /* K_DETAIL */ + YYSYMBOL_K_DIAGNOSTICS = 53, /* K_DIAGNOSTICS */ + YYSYMBOL_K_DO = 54, /* K_DO */ + YYSYMBOL_K_DUMP = 55, /* K_DUMP */ + YYSYMBOL_K_ELSE = 56, /* K_ELSE */ + YYSYMBOL_K_ELSIF = 57, /* K_ELSIF */ + YYSYMBOL_K_END = 58, /* K_END */ + YYSYMBOL_K_ERRCODE = 59, /* K_ERRCODE */ + YYSYMBOL_K_ERROR = 60, /* K_ERROR */ + YYSYMBOL_K_EXCEPTION = 61, /* K_EXCEPTION */ + YYSYMBOL_K_EXECUTE = 62, /* K_EXECUTE */ + YYSYMBOL_K_EXIT = 63, /* K_EXIT */ + YYSYMBOL_K_FETCH = 64, /* K_FETCH */ + YYSYMBOL_K_FIRST = 65, /* K_FIRST */ + YYSYMBOL_K_FOR = 66, /* K_FOR */ + YYSYMBOL_K_FOREACH = 67, /* K_FOREACH */ + YYSYMBOL_K_FORWARD = 68, /* K_FORWARD */ + YYSYMBOL_K_FROM = 69, /* K_FROM */ + YYSYMBOL_K_GET = 70, /* K_GET */ + YYSYMBOL_K_HINT = 71, /* K_HINT */ + YYSYMBOL_K_IF = 72, /* K_IF */ + YYSYMBOL_K_IMPORT = 73, /* K_IMPORT */ + YYSYMBOL_K_IN = 74, /* K_IN */ + YYSYMBOL_K_INFO = 75, /* K_INFO */ + YYSYMBOL_K_INSERT = 76, /* K_INSERT */ + YYSYMBOL_K_INTO = 77, /* K_INTO */ + YYSYMBOL_K_IS = 78, /* K_IS */ + YYSYMBOL_K_LAST = 79, /* K_LAST */ + YYSYMBOL_K_LOG = 80, /* K_LOG */ + YYSYMBOL_K_LOOP = 81, /* K_LOOP */ + YYSYMBOL_K_MESSAGE = 82, /* K_MESSAGE */ + YYSYMBOL_K_MESSAGE_TEXT = 83, /* K_MESSAGE_TEXT */ + YYSYMBOL_K_MOVE = 84, /* K_MOVE */ + YYSYMBOL_K_NEXT = 85, /* K_NEXT */ + YYSYMBOL_K_NO = 86, /* K_NO */ + YYSYMBOL_K_NOT = 87, /* K_NOT */ + YYSYMBOL_K_NOTICE = 88, /* K_NOTICE */ + YYSYMBOL_K_NULL = 89, /* K_NULL */ + YYSYMBOL_K_OPEN = 90, /* K_OPEN */ + YYSYMBOL_K_OPTION = 91, /* K_OPTION */ + YYSYMBOL_K_OR = 92, /* K_OR */ + YYSYMBOL_K_PERFORM = 93, /* K_PERFORM */ + YYSYMBOL_K_PG_CONTEXT = 94, /* K_PG_CONTEXT */ + YYSYMBOL_K_PG_DATATYPE_NAME = 95, /* K_PG_DATATYPE_NAME */ + YYSYMBOL_K_PG_EXCEPTION_CONTEXT = 96, /* K_PG_EXCEPTION_CONTEXT */ + YYSYMBOL_K_PG_EXCEPTION_DETAIL = 97, /* K_PG_EXCEPTION_DETAIL */ + YYSYMBOL_K_PG_EXCEPTION_HINT = 98, /* K_PG_EXCEPTION_HINT */ + YYSYMBOL_K_PRINT_STRICT_PARAMS = 99, /* K_PRINT_STRICT_PARAMS */ + YYSYMBOL_K_PRIOR = 100, /* K_PRIOR */ + YYSYMBOL_K_QUERY = 101, /* K_QUERY */ + YYSYMBOL_K_RAISE = 102, /* K_RAISE */ + YYSYMBOL_K_RELATIVE = 103, /* K_RELATIVE */ + YYSYMBOL_K_RESET = 104, /* K_RESET */ + YYSYMBOL_K_RETURN = 105, /* K_RETURN */ + YYSYMBOL_K_RETURNED_SQLSTATE = 106, /* K_RETURNED_SQLSTATE */ + YYSYMBOL_K_REVERSE = 107, /* K_REVERSE */ + YYSYMBOL_K_ROLLBACK = 108, /* K_ROLLBACK */ + YYSYMBOL_K_ROW_COUNT = 109, /* K_ROW_COUNT */ + YYSYMBOL_K_ROWTYPE = 110, /* K_ROWTYPE */ + YYSYMBOL_K_SCHEMA = 111, /* K_SCHEMA */ + YYSYMBOL_K_SCHEMA_NAME = 112, /* K_SCHEMA_NAME */ + YYSYMBOL_K_SCROLL = 113, /* K_SCROLL */ + YYSYMBOL_K_SET = 114, /* K_SET */ + YYSYMBOL_K_SLICE = 115, /* K_SLICE */ + YYSYMBOL_K_SQLSTATE = 116, /* K_SQLSTATE */ + YYSYMBOL_K_STACKED = 117, /* K_STACKED */ + YYSYMBOL_K_STRICT = 118, /* K_STRICT */ + YYSYMBOL_K_TABLE = 119, /* K_TABLE */ + YYSYMBOL_K_TABLE_NAME = 120, /* K_TABLE_NAME */ + YYSYMBOL_K_THEN = 121, /* K_THEN */ + YYSYMBOL_K_TO = 122, /* K_TO */ + YYSYMBOL_K_TYPE = 123, /* K_TYPE */ + YYSYMBOL_K_USE_COLUMN = 124, /* K_USE_COLUMN */ + YYSYMBOL_K_USE_VARIABLE = 125, /* K_USE_VARIABLE */ + YYSYMBOL_K_USING = 126, /* K_USING */ + YYSYMBOL_K_VARIABLE_CONFLICT = 127, /* K_VARIABLE_CONFLICT */ + YYSYMBOL_K_WARNING = 128, /* K_WARNING */ + YYSYMBOL_K_WHEN = 129, /* K_WHEN */ + YYSYMBOL_K_WHILE = 130, /* K_WHILE */ + YYSYMBOL_131_ = 131, /* '#' */ + YYSYMBOL_132_ = 132, /* ';' */ + YYSYMBOL_133_ = 133, /* '(' */ + YYSYMBOL_134_ = 134, /* ')' */ + YYSYMBOL_135_ = 135, /* ',' */ + YYSYMBOL_136_ = 136, /* '=' */ + YYSYMBOL_137_ = 137, /* '[' */ + YYSYMBOL_YYACCEPT = 138, /* $accept */ + YYSYMBOL_pl_function = 139, /* pl_function */ + YYSYMBOL_comp_options = 140, /* comp_options */ + YYSYMBOL_comp_option = 141, /* comp_option */ + YYSYMBOL_option_value = 142, /* option_value */ + YYSYMBOL_opt_semi = 143, /* opt_semi */ + YYSYMBOL_pl_block = 144, /* pl_block */ + YYSYMBOL_decl_sect = 145, /* decl_sect */ + YYSYMBOL_decl_start = 146, /* decl_start */ + YYSYMBOL_decl_stmts = 147, /* decl_stmts */ + YYSYMBOL_decl_stmt = 148, /* decl_stmt */ + YYSYMBOL_decl_statement = 149, /* decl_statement */ + YYSYMBOL_150_1 = 150, /* $@1 */ + YYSYMBOL_opt_scrollable = 151, /* opt_scrollable */ + YYSYMBOL_decl_cursor_query = 152, /* decl_cursor_query */ + YYSYMBOL_decl_cursor_args = 153, /* decl_cursor_args */ + YYSYMBOL_decl_cursor_arglist = 154, /* decl_cursor_arglist */ + YYSYMBOL_decl_cursor_arg = 155, /* decl_cursor_arg */ + YYSYMBOL_decl_is_for = 156, /* decl_is_for */ + YYSYMBOL_decl_aliasitem = 157, /* decl_aliasitem */ + YYSYMBOL_decl_varname = 158, /* decl_varname */ + YYSYMBOL_decl_const = 159, /* decl_const */ + YYSYMBOL_decl_datatype = 160, /* decl_datatype */ + YYSYMBOL_decl_collate = 161, /* decl_collate */ + YYSYMBOL_decl_notnull = 162, /* decl_notnull */ + YYSYMBOL_decl_defval = 163, /* decl_defval */ + YYSYMBOL_decl_defkey = 164, /* decl_defkey */ + YYSYMBOL_assign_operator = 165, /* assign_operator */ + YYSYMBOL_proc_sect = 166, /* proc_sect */ + YYSYMBOL_proc_stmt = 167, /* proc_stmt */ + YYSYMBOL_stmt_perform = 168, /* stmt_perform */ + YYSYMBOL_stmt_call = 169, /* stmt_call */ + YYSYMBOL_stmt_assign = 170, /* stmt_assign */ + YYSYMBOL_stmt_getdiag = 171, /* stmt_getdiag */ + YYSYMBOL_getdiag_area_opt = 172, /* getdiag_area_opt */ + YYSYMBOL_getdiag_list = 173, /* getdiag_list */ + YYSYMBOL_getdiag_list_item = 174, /* getdiag_list_item */ + YYSYMBOL_getdiag_item = 175, /* getdiag_item */ + YYSYMBOL_getdiag_target = 176, /* getdiag_target */ + YYSYMBOL_assign_var = 177, /* assign_var */ + YYSYMBOL_stmt_if = 178, /* stmt_if */ + YYSYMBOL_stmt_elsifs = 179, /* stmt_elsifs */ + YYSYMBOL_stmt_else = 180, /* stmt_else */ + YYSYMBOL_stmt_case = 181, /* stmt_case */ + YYSYMBOL_opt_expr_until_when = 182, /* opt_expr_until_when */ + YYSYMBOL_case_when_list = 183, /* case_when_list */ + YYSYMBOL_case_when = 184, /* case_when */ + YYSYMBOL_opt_case_else = 185, /* opt_case_else */ + YYSYMBOL_stmt_loop = 186, /* stmt_loop */ + YYSYMBOL_stmt_while = 187, /* stmt_while */ + YYSYMBOL_stmt_for = 188, /* stmt_for */ + YYSYMBOL_for_control = 189, /* for_control */ + YYSYMBOL_for_variable = 190, /* for_variable */ + YYSYMBOL_stmt_foreach_a = 191, /* stmt_foreach_a */ + YYSYMBOL_foreach_slice = 192, /* foreach_slice */ + YYSYMBOL_stmt_exit = 193, /* stmt_exit */ + YYSYMBOL_exit_type = 194, /* exit_type */ + YYSYMBOL_stmt_return = 195, /* stmt_return */ + YYSYMBOL_stmt_raise = 196, /* stmt_raise */ + YYSYMBOL_stmt_assert = 197, /* stmt_assert */ + YYSYMBOL_loop_body = 198, /* loop_body */ + YYSYMBOL_stmt_execsql = 199, /* stmt_execsql */ + YYSYMBOL_stmt_dynexecute = 200, /* stmt_dynexecute */ + YYSYMBOL_stmt_open = 201, /* stmt_open */ + YYSYMBOL_stmt_fetch = 202, /* stmt_fetch */ + YYSYMBOL_stmt_move = 203, /* stmt_move */ + YYSYMBOL_opt_fetch_direction = 204, /* opt_fetch_direction */ + YYSYMBOL_stmt_close = 205, /* stmt_close */ + YYSYMBOL_stmt_null = 206, /* stmt_null */ + YYSYMBOL_stmt_commit = 207, /* stmt_commit */ + YYSYMBOL_stmt_rollback = 208, /* stmt_rollback */ + YYSYMBOL_opt_transaction_chain = 209, /* opt_transaction_chain */ + YYSYMBOL_stmt_set = 210, /* stmt_set */ + YYSYMBOL_cursor_variable = 211, /* cursor_variable */ + YYSYMBOL_exception_sect = 212, /* exception_sect */ + YYSYMBOL_213_2 = 213, /* @2 */ + YYSYMBOL_proc_exceptions = 214, /* proc_exceptions */ + YYSYMBOL_proc_exception = 215, /* proc_exception */ + YYSYMBOL_proc_conditions = 216, /* proc_conditions */ + YYSYMBOL_proc_condition = 217, /* proc_condition */ + YYSYMBOL_expr_until_semi = 218, /* expr_until_semi */ + YYSYMBOL_expr_until_rightbracket = 219, /* expr_until_rightbracket */ + YYSYMBOL_expr_until_then = 220, /* expr_until_then */ + YYSYMBOL_expr_until_loop = 221, /* expr_until_loop */ + YYSYMBOL_opt_block_label = 222, /* opt_block_label */ + YYSYMBOL_opt_loop_label = 223, /* opt_loop_label */ + YYSYMBOL_opt_label = 224, /* opt_label */ + YYSYMBOL_opt_exitcond = 225, /* opt_exitcond */ + YYSYMBOL_any_identifier = 226, /* any_identifier */ + YYSYMBOL_unreserved_keyword = 227 /* unreserved_keyword */ }; +typedef enum yysymbol_kind_t yysymbol_kind_t; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - -/* Location type. */ -#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE YYLTYPE; -struct YYLTYPE -{ - int first_line; - int first_column; - int last_line; - int last_column; -}; -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 -#endif - - -extern YYSTYPE plpgsql_yylval; -extern YYLTYPE plpgsql_yylloc; -int plpgsql_yyparse (void); - -#endif /* !YY_PLPGSQL_YY_PL_GRAM_H_INCLUDED */ @@ -450,28 +456,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; +#endif + +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; +#else +typedef short yytype_uint8; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; #else -typedef short yytype_int16; +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -479,7 +544,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -487,7 +552,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -501,38 +579,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -545,8 +622,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + -#if ! defined yyoverflow || YYERROR_VERBOSE +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -611,8 +702,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -622,18 +712,19 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \ + + YYSIZEOF (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -646,11 +737,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -662,12 +753,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -690,13 +781,16 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 342 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 385 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ @@ -745,7 +839,7 @@ #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { 0, 363, 363, 369, 370, 373, 377, 386, 390, 394, 400, 404, 409, 410, 413, 436, 444, 451, 460, 472, @@ -776,17 +870,24 @@ }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "IDENT", "UIDENT", "FCONST", "SCONST", - "USCONST", "BCONST", "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", - "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", "LESS_EQUALS", - "GREATER_EQUALS", "NOT_EQUALS", "T_WORD", "T_CWORD", "T_DATUM", - "LESS_LESS", "GREATER_GREATER", "K_ABSOLUTE", "K_ALIAS", "K_ALL", - "K_AND", "K_ARRAY", "K_ASSERT", "K_BACKWARD", "K_BEGIN", "K_BY", + "\"end of file\"", "error", "\"invalid token\"", "IDENT", "UIDENT", + "FCONST", "SCONST", "USCONST", "BCONST", "XCONST", "Op", "ICONST", + "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", + "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "T_WORD", "T_CWORD", + "T_DATUM", "LESS_LESS", "GREATER_GREATER", "K_ABSOLUTE", "K_ALIAS", + "K_ALL", "K_AND", "K_ARRAY", "K_ASSERT", "K_BACKWARD", "K_BEGIN", "K_BY", "K_CALL", "K_CASE", "K_CHAIN", "K_CLOSE", "K_COLLATE", "K_COLUMN", "K_COLUMN_NAME", "K_COMMIT", "K_CONSTANT", "K_CONSTRAINT", "K_CONSTRAINT_NAME", "K_CONTINUE", "K_CURRENT", "K_CURSOR", "K_DATATYPE", @@ -829,12 +930,18 @@ "opt_block_label", "opt_loop_label", "opt_label", "opt_exitcond", "any_identifier", "unreserved_keyword", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -851,16 +958,16 @@ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 35, 59, 40, 41, 44, 61, 91 }; -# endif +#endif -#define YYPACT_NINF -263 +#define YYPACT_NINF (-263) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-263))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -168 +#define YYTABLE_NINF (-168) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -907,7 +1014,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint16 yydefact[] = +static const yytype_int16 yydefact[] = { 3, 0, 166, 1, 0, 0, 4, 12, 0, 15, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, @@ -963,7 +1070,7 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 2, 6, 107, 100, 149, 8, 103, 116, + 0, 1, 2, 6, 107, 100, 149, 8, 103, 116, 117, 118, 258, 185, 333, 288, 308, 309, 313, 256, 119, 186, 222, 260, 293, 317, 318, 210, 251, 150, 151, 152, 153, 154, 199, 273, 274, 324, 275, 155, @@ -1352,7 +1459,7 @@ }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 3, 0, 2, 3, 3, 3, 3, 3, 1, 1, 0, 1, 6, 1, 2, 3, 1, 2, @@ -1383,10 +1490,10 @@ }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -1412,10 +1519,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -1463,8 +1569,8 @@ This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# ifndef YY_LOCATION_PRINT +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ @@ -1494,22 +1600,22 @@ return res; } -# define YY_LOCATION_PRINT(File, Loc) \ +# define YY_LOCATION_PRINT(File, Loc) \ yy_location_print_ (File, &(Loc)) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +# endif /* !defined YY_LOCATION_PRINT */ -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value, Location); \ + Kind, Value, Location); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -1520,18 +1626,21 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) { FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (yylocationp); + YY_USE (yyoutput); + YY_USE (yylocationp); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -1540,14 +1649,15 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); YY_LOCATION_PRINT (yyo, *yylocationp); YYFPRINTF (yyo, ": "); - yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp); + yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp); YYFPRINTF (yyo, ")"); } @@ -1557,7 +1667,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -1580,21 +1690,22 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, + int yyrule) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - , &(yylsp[(yyi + 1) - (yynrhs)]) ); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], + &(yylsp[(yyi + 1) - (yynrhs)])); YYFPRINTF (stderr, "\n"); } } @@ -1609,8 +1720,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -1633,255 +1744,31 @@ #endif -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - if (! yyres) - return yystrlen (yystr); - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) { - YYUSE (yyvaluep); - YYUSE (yylocationp); + YY_USE (yyvaluep); + YY_USE (yylocationp); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -1896,6 +1783,8 @@ int yynerrs; + + /*----------. | yyparse. | `----------*/ @@ -1903,53 +1792,45 @@ int yyparse (void) { - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - 'yyls': related to locations. + int yyerrstatus = 0; - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The semantic value stack. */ + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; + + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; - /* The location stack. */ + /* The location stack: array, bottom, top. */ YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls; - YYLTYPE *yylsp; - - /* The locations where the error started and ended. */ - YYLTYPE yyerror_range[3]; - - YYSIZE_T yystacksize; + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp = yyls; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[3]; + + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) @@ -1957,16 +1838,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yylsp = yyls = yylsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ yylsp[0] = yylloc; goto yysetstate; @@ -1982,10 +1855,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1993,15 +1871,15 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the @@ -2009,9 +1887,9 @@ conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yyls1, yysize * YYSIZEOF (*yylsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -2026,15 +1904,16 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -2044,16 +1923,16 @@ yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -2074,18 +1953,30 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + yyerror_range[1] = yylloc; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -2113,15 +2004,14 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; + + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -2158,25 +2048,25 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 364 "pl_gram.y" /* yacc.c:1652 */ - { + case 2: /* pl_function: comp_options pl_block opt_semi */ +#line 364 "pl_gram.y" + { plpgsql_parse_result = (PLpgSQL_stmt_block *) (yyvsp[-1].stmt); } -#line 2167 "pl_gram.c" /* yacc.c:1652 */ +#line 2057 "pl_gram.c" break; - case 5: -#line 374 "pl_gram.y" /* yacc.c:1652 */ - { + case 5: /* comp_option: '#' K_OPTION K_DUMP */ +#line 374 "pl_gram.y" + { plpgsql_DumpExecTree = true; } -#line 2175 "pl_gram.c" /* yacc.c:1652 */ +#line 2065 "pl_gram.c" break; - case 6: -#line 378 "pl_gram.y" /* yacc.c:1652 */ - { + case 6: /* comp_option: '#' K_PRINT_STRICT_PARAMS option_value */ +#line 378 "pl_gram.y" + { if (strcmp((yyvsp[0].str), "on") == 0) plpgsql_curr_compile->print_strict_params = true; else if (strcmp((yyvsp[0].str), "off") == 0) @@ -2184,52 +2074,52 @@ else elog(ERROR, "unrecognized print_strict_params option %s", (yyvsp[0].str)); } -#line 2188 "pl_gram.c" /* yacc.c:1652 */ +#line 2078 "pl_gram.c" break; - case 7: -#line 387 "pl_gram.y" /* yacc.c:1652 */ - { + case 7: /* comp_option: '#' K_VARIABLE_CONFLICT K_ERROR */ +#line 387 "pl_gram.y" + { plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_ERROR; } -#line 2196 "pl_gram.c" /* yacc.c:1652 */ +#line 2086 "pl_gram.c" break; - case 8: -#line 391 "pl_gram.y" /* yacc.c:1652 */ - { + case 8: /* comp_option: '#' K_VARIABLE_CONFLICT K_USE_VARIABLE */ +#line 391 "pl_gram.y" + { plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_VARIABLE; } -#line 2204 "pl_gram.c" /* yacc.c:1652 */ +#line 2094 "pl_gram.c" break; - case 9: -#line 395 "pl_gram.y" /* yacc.c:1652 */ - { + case 9: /* comp_option: '#' K_VARIABLE_CONFLICT K_USE_COLUMN */ +#line 395 "pl_gram.y" + { plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_COLUMN; } -#line 2212 "pl_gram.c" /* yacc.c:1652 */ +#line 2102 "pl_gram.c" break; - case 10: -#line 401 "pl_gram.y" /* yacc.c:1652 */ - { + case 10: /* option_value: T_WORD */ +#line 401 "pl_gram.y" + { (yyval.str) = (yyvsp[0].word).ident; } -#line 2220 "pl_gram.c" /* yacc.c:1652 */ +#line 2110 "pl_gram.c" break; - case 11: -#line 405 "pl_gram.y" /* yacc.c:1652 */ - { + case 11: /* option_value: unreserved_keyword */ +#line 405 "pl_gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 2228 "pl_gram.c" /* yacc.c:1652 */ +#line 2118 "pl_gram.c" break; - case 14: -#line 414 "pl_gram.y" /* yacc.c:1652 */ - { + case 14: /* pl_block: decl_sect K_BEGIN proc_sect exception_sect K_END opt_label */ +#line 414 "pl_gram.y" + { PLpgSQL_stmt_block *new; new = palloc0(sizeof(PLpgSQL_stmt_block)); @@ -2248,46 +2138,46 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 2252 "pl_gram.c" /* yacc.c:1652 */ +#line 2142 "pl_gram.c" break; - case 15: -#line 437 "pl_gram.y" /* yacc.c:1652 */ - { + case 15: /* decl_sect: opt_block_label */ +#line 437 "pl_gram.y" + { /* done with decls, so resume identifier lookup */ plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; (yyval.declhdr).label = (yyvsp[0].str); (yyval.declhdr).n_initvars = 0; (yyval.declhdr).initvarnos = NULL; } -#line 2264 "pl_gram.c" /* yacc.c:1652 */ +#line 2154 "pl_gram.c" break; - case 16: -#line 445 "pl_gram.y" /* yacc.c:1652 */ - { + case 16: /* decl_sect: opt_block_label decl_start */ +#line 445 "pl_gram.y" + { plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; (yyval.declhdr).label = (yyvsp[-1].str); (yyval.declhdr).n_initvars = 0; (yyval.declhdr).initvarnos = NULL; } -#line 2275 "pl_gram.c" /* yacc.c:1652 */ +#line 2165 "pl_gram.c" break; - case 17: -#line 452 "pl_gram.y" /* yacc.c:1652 */ - { + case 17: /* decl_sect: opt_block_label decl_start decl_stmts */ +#line 452 "pl_gram.y" + { plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; (yyval.declhdr).label = (yyvsp[-2].str); /* Remember variables declared in decl_stmts */ (yyval.declhdr).n_initvars = plpgsql_add_initdatums(&((yyval.declhdr).initvarnos)); } -#line 2286 "pl_gram.c" /* yacc.c:1652 */ +#line 2176 "pl_gram.c" break; - case 18: -#line 461 "pl_gram.y" /* yacc.c:1652 */ - { + case 18: /* decl_start: K_DECLARE */ +#line 461 "pl_gram.y" + { /* Forget any variables created before block */ plpgsql_add_initdatums(NULL); /* @@ -2296,20 +2186,20 @@ */ plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_DECLARE; } -#line 2300 "pl_gram.c" /* yacc.c:1652 */ +#line 2190 "pl_gram.c" break; - case 22: -#line 478 "pl_gram.y" /* yacc.c:1652 */ - { + case 22: /* decl_stmt: K_DECLARE */ +#line 478 "pl_gram.y" + { /* We allow useless extra DECLAREs */ } -#line 2308 "pl_gram.c" /* yacc.c:1652 */ +#line 2198 "pl_gram.c" break; - case 23: -#line 482 "pl_gram.y" /* yacc.c:1652 */ - { + case 23: /* decl_stmt: LESS_LESS any_identifier GREATER_GREATER */ +#line 482 "pl_gram.y" + { /* * Throw a helpful error if user tries to put block * label just before BEGIN, instead of before DECLARE. @@ -2319,12 +2209,12 @@ errmsg("block label must be placed before DECLARE, not after"), parser_errposition((yylsp[-2])))); } -#line 2323 "pl_gram.c" /* yacc.c:1652 */ +#line 2213 "pl_gram.c" break; - case 24: -#line 495 "pl_gram.y" /* yacc.c:1652 */ - { + case 24: /* decl_statement: decl_varname decl_const decl_datatype decl_collate decl_notnull decl_defval */ +#line 495 "pl_gram.y" + { PLpgSQL_variable *var; /* @@ -2361,27 +2251,27 @@ var->refname), parser_errposition((yylsp[-1])))); } -#line 2365 "pl_gram.c" /* yacc.c:1652 */ +#line 2255 "pl_gram.c" break; - case 25: -#line 533 "pl_gram.y" /* yacc.c:1652 */ - { + case 25: /* decl_statement: decl_varname K_ALIAS K_FOR decl_aliasitem ';' */ +#line 533 "pl_gram.y" + { plpgsql_ns_additem((yyvsp[-1].nsitem)->itemtype, (yyvsp[-1].nsitem)->itemno, (yyvsp[-4].varname).name); } -#line 2374 "pl_gram.c" /* yacc.c:1652 */ +#line 2264 "pl_gram.c" break; - case 26: -#line 538 "pl_gram.y" /* yacc.c:1652 */ - { plpgsql_ns_push((yyvsp[-2].varname).name, PLPGSQL_LABEL_OTHER); } -#line 2380 "pl_gram.c" /* yacc.c:1652 */ + case 26: /* $@1: %empty */ +#line 538 "pl_gram.y" + { plpgsql_ns_push((yyvsp[-2].varname).name, PLPGSQL_LABEL_OTHER); } +#line 2270 "pl_gram.c" break; - case 27: -#line 540 "pl_gram.y" /* yacc.c:1652 */ - { + case 27: /* decl_statement: decl_varname opt_scrollable K_CURSOR $@1 decl_cursor_args decl_is_for decl_cursor_query */ +#line 540 "pl_gram.y" + { PLpgSQL_var *new; PLpgSQL_expr *curname_def; char buf[1024]; @@ -2428,52 +2318,52 @@ new->cursor_explicit_argrow = (yyvsp[-2].datum)->dno; new->cursor_options = CURSOR_OPT_FAST_PLAN | (yyvsp[-5].ival); } -#line 2432 "pl_gram.c" /* yacc.c:1652 */ +#line 2322 "pl_gram.c" break; - case 28: -#line 590 "pl_gram.y" /* yacc.c:1652 */ - { + case 28: /* opt_scrollable: %empty */ +#line 590 "pl_gram.y" + { (yyval.ival) = 0; } -#line 2440 "pl_gram.c" /* yacc.c:1652 */ +#line 2330 "pl_gram.c" break; - case 29: -#line 594 "pl_gram.y" /* yacc.c:1652 */ - { + case 29: /* opt_scrollable: K_NO K_SCROLL */ +#line 594 "pl_gram.y" + { (yyval.ival) = CURSOR_OPT_NO_SCROLL; } -#line 2448 "pl_gram.c" /* yacc.c:1652 */ +#line 2338 "pl_gram.c" break; - case 30: -#line 598 "pl_gram.y" /* yacc.c:1652 */ - { + case 30: /* opt_scrollable: K_SCROLL */ +#line 598 "pl_gram.y" + { (yyval.ival) = CURSOR_OPT_SCROLL; } -#line 2456 "pl_gram.c" /* yacc.c:1652 */ +#line 2346 "pl_gram.c" break; - case 31: -#line 604 "pl_gram.y" /* yacc.c:1652 */ - { + case 31: /* decl_cursor_query: %empty */ +#line 604 "pl_gram.y" + { (yyval.expr) = read_sql_stmt(""); } -#line 2464 "pl_gram.c" /* yacc.c:1652 */ +#line 2354 "pl_gram.c" break; - case 32: -#line 610 "pl_gram.y" /* yacc.c:1652 */ - { + case 32: /* decl_cursor_args: %empty */ +#line 610 "pl_gram.y" + { (yyval.datum) = NULL; } -#line 2472 "pl_gram.c" /* yacc.c:1652 */ +#line 2362 "pl_gram.c" break; - case 33: -#line 614 "pl_gram.y" /* yacc.c:1652 */ - { + case 33: /* decl_cursor_args: '(' decl_cursor_arglist ')' */ +#line 614 "pl_gram.y" + { PLpgSQL_row *new; int i; ListCell *l; @@ -2501,38 +2391,38 @@ plpgsql_adddatum((PLpgSQL_datum *) new); (yyval.datum) = (PLpgSQL_datum *) new; } -#line 2505 "pl_gram.c" /* yacc.c:1652 */ +#line 2395 "pl_gram.c" break; - case 34: -#line 645 "pl_gram.y" /* yacc.c:1652 */ - { + case 34: /* decl_cursor_arglist: decl_cursor_arg */ +#line 645 "pl_gram.y" + { (yyval.list) = list_make1((yyvsp[0].datum)); } -#line 2513 "pl_gram.c" /* yacc.c:1652 */ +#line 2403 "pl_gram.c" break; - case 35: -#line 649 "pl_gram.y" /* yacc.c:1652 */ - { + case 35: /* decl_cursor_arglist: decl_cursor_arglist ',' decl_cursor_arg */ +#line 649 "pl_gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].datum)); } -#line 2521 "pl_gram.c" /* yacc.c:1652 */ +#line 2411 "pl_gram.c" break; - case 36: -#line 655 "pl_gram.y" /* yacc.c:1652 */ - { + case 36: /* decl_cursor_arg: decl_varname decl_datatype */ +#line 655 "pl_gram.y" + { (yyval.datum) = (PLpgSQL_datum *) plpgsql_build_variable((yyvsp[-1].varname).name, (yyvsp[-1].varname).lineno, (yyvsp[0].dtype), true); } -#line 2531 "pl_gram.c" /* yacc.c:1652 */ +#line 2421 "pl_gram.c" break; - case 39: -#line 666 "pl_gram.y" /* yacc.c:1652 */ - { + case 39: /* decl_aliasitem: T_WORD */ +#line 666 "pl_gram.y" + { PLpgSQL_nsitem *nsi; nsi = plpgsql_ns_lookup(plpgsql_ns_top(), false, @@ -2546,12 +2436,12 @@ parser_errposition((yylsp[0])))); (yyval.nsitem) = nsi; } -#line 2550 "pl_gram.c" /* yacc.c:1652 */ +#line 2440 "pl_gram.c" break; - case 40: -#line 681 "pl_gram.y" /* yacc.c:1652 */ - { + case 40: /* decl_aliasitem: unreserved_keyword */ +#line 681 "pl_gram.y" + { PLpgSQL_nsitem *nsi; nsi = plpgsql_ns_lookup(plpgsql_ns_top(), false, @@ -2565,12 +2455,12 @@ parser_errposition((yylsp[0])))); (yyval.nsitem) = nsi; } -#line 2569 "pl_gram.c" /* yacc.c:1652 */ +#line 2459 "pl_gram.c" break; - case 41: -#line 696 "pl_gram.y" /* yacc.c:1652 */ - { + case 41: /* decl_aliasitem: T_CWORD */ +#line 696 "pl_gram.y" + { PLpgSQL_nsitem *nsi; if (list_length((yyvsp[0].cword).idents) == 2) @@ -2595,12 +2485,12 @@ parser_errposition((yylsp[0])))); (yyval.nsitem) = nsi; } -#line 2599 "pl_gram.c" /* yacc.c:1652 */ +#line 2489 "pl_gram.c" break; - case 42: -#line 724 "pl_gram.y" /* yacc.c:1652 */ - { + case 42: /* decl_varname: T_WORD */ +#line 724 "pl_gram.y" + { (yyval.varname).name = (yyvsp[0].word).ident; (yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[0])); /* @@ -2627,12 +2517,12 @@ } } -#line 2631 "pl_gram.c" /* yacc.c:1652 */ +#line 2521 "pl_gram.c" break; - case 43: -#line 752 "pl_gram.y" /* yacc.c:1652 */ - { + case 43: /* decl_varname: unreserved_keyword */ +#line 752 "pl_gram.y" + { (yyval.varname).name = pstrdup((yyvsp[0].keyword)); (yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[0])); /* @@ -2659,24 +2549,24 @@ } } -#line 2663 "pl_gram.c" /* yacc.c:1652 */ +#line 2553 "pl_gram.c" break; - case 44: -#line 782 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 2669 "pl_gram.c" /* yacc.c:1652 */ + case 44: /* decl_const: %empty */ +#line 782 "pl_gram.y" + { (yyval.boolean) = false; } +#line 2559 "pl_gram.c" break; - case 45: -#line 784 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 2675 "pl_gram.c" /* yacc.c:1652 */ + case 45: /* decl_const: K_CONSTANT */ +#line 784 "pl_gram.y" + { (yyval.boolean) = true; } +#line 2565 "pl_gram.c" break; - case 46: -#line 788 "pl_gram.y" /* yacc.c:1652 */ - { + case 46: /* decl_datatype: %empty */ +#line 788 "pl_gram.y" + { /* * If there's a lookahead token, read_datatype * should consume it. @@ -2684,238 +2574,238 @@ (yyval.dtype) = read_datatype(yychar); yyclearin; } -#line 2688 "pl_gram.c" /* yacc.c:1652 */ +#line 2578 "pl_gram.c" break; - case 47: -#line 799 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.oid) = InvalidOid; } -#line 2694 "pl_gram.c" /* yacc.c:1652 */ + case 47: /* decl_collate: %empty */ +#line 799 "pl_gram.y" + { (yyval.oid) = InvalidOid; } +#line 2584 "pl_gram.c" break; - case 48: -#line 801 "pl_gram.y" /* yacc.c:1652 */ - { + case 48: /* decl_collate: K_COLLATE T_WORD */ +#line 801 "pl_gram.y" + { (yyval.oid) = get_collation_oid(list_make1(makeString((yyvsp[0].word).ident)), false); } -#line 2703 "pl_gram.c" /* yacc.c:1652 */ +#line 2593 "pl_gram.c" break; - case 49: -#line 806 "pl_gram.y" /* yacc.c:1652 */ - { + case 49: /* decl_collate: K_COLLATE unreserved_keyword */ +#line 806 "pl_gram.y" + { (yyval.oid) = get_collation_oid(list_make1(makeString(pstrdup((yyvsp[0].keyword)))), false); } -#line 2712 "pl_gram.c" /* yacc.c:1652 */ +#line 2602 "pl_gram.c" break; - case 50: -#line 811 "pl_gram.y" /* yacc.c:1652 */ - { + case 50: /* decl_collate: K_COLLATE T_CWORD */ +#line 811 "pl_gram.y" + { (yyval.oid) = get_collation_oid((yyvsp[0].cword).idents, false); } -#line 2720 "pl_gram.c" /* yacc.c:1652 */ +#line 2610 "pl_gram.c" break; - case 51: -#line 817 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = false; } -#line 2726 "pl_gram.c" /* yacc.c:1652 */ + case 51: /* decl_notnull: %empty */ +#line 817 "pl_gram.y" + { (yyval.boolean) = false; } +#line 2616 "pl_gram.c" break; - case 52: -#line 819 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.boolean) = true; } -#line 2732 "pl_gram.c" /* yacc.c:1652 */ + case 52: /* decl_notnull: K_NOT K_NULL */ +#line 819 "pl_gram.y" + { (yyval.boolean) = true; } +#line 2622 "pl_gram.c" break; - case 53: -#line 823 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.expr) = NULL; } -#line 2738 "pl_gram.c" /* yacc.c:1652 */ + case 53: /* decl_defval: ';' */ +#line 823 "pl_gram.y" + { (yyval.expr) = NULL; } +#line 2628 "pl_gram.c" break; - case 54: -#line 825 "pl_gram.y" /* yacc.c:1652 */ - { + case 54: /* decl_defval: decl_defkey */ +#line 825 "pl_gram.y" + { (yyval.expr) = read_sql_expression(';', ";"); } -#line 2746 "pl_gram.c" /* yacc.c:1652 */ +#line 2636 "pl_gram.c" break; - case 59: -#line 844 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.list) = NIL; } -#line 2752 "pl_gram.c" /* yacc.c:1652 */ + case 59: /* proc_sect: %empty */ +#line 844 "pl_gram.y" + { (yyval.list) = NIL; } +#line 2642 "pl_gram.c" break; - case 60: -#line 846 "pl_gram.y" /* yacc.c:1652 */ - { + case 60: /* proc_sect: proc_sect proc_stmt */ +#line 846 "pl_gram.y" + { /* don't bother linking null statements into list */ if ((yyvsp[0].stmt) == NULL) (yyval.list) = (yyvsp[-1].list); else (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].stmt)); } -#line 2764 "pl_gram.c" /* yacc.c:1652 */ +#line 2654 "pl_gram.c" break; - case 61: -#line 856 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[-1].stmt); } -#line 2770 "pl_gram.c" /* yacc.c:1652 */ + case 61: /* proc_stmt: pl_block ';' */ +#line 856 "pl_gram.y" + { (yyval.stmt) = (yyvsp[-1].stmt); } +#line 2660 "pl_gram.c" break; - case 62: -#line 858 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2776 "pl_gram.c" /* yacc.c:1652 */ + case 62: /* proc_stmt: stmt_assign */ +#line 858 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2666 "pl_gram.c" break; - case 63: -#line 860 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2782 "pl_gram.c" /* yacc.c:1652 */ + case 63: /* proc_stmt: stmt_if */ +#line 860 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2672 "pl_gram.c" break; - case 64: -#line 862 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2788 "pl_gram.c" /* yacc.c:1652 */ + case 64: /* proc_stmt: stmt_case */ +#line 862 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2678 "pl_gram.c" break; - case 65: -#line 864 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2794 "pl_gram.c" /* yacc.c:1652 */ + case 65: /* proc_stmt: stmt_loop */ +#line 864 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2684 "pl_gram.c" break; - case 66: -#line 866 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2800 "pl_gram.c" /* yacc.c:1652 */ + case 66: /* proc_stmt: stmt_while */ +#line 866 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2690 "pl_gram.c" break; - case 67: -#line 868 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2806 "pl_gram.c" /* yacc.c:1652 */ + case 67: /* proc_stmt: stmt_for */ +#line 868 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2696 "pl_gram.c" break; - case 68: -#line 870 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2812 "pl_gram.c" /* yacc.c:1652 */ + case 68: /* proc_stmt: stmt_foreach_a */ +#line 870 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2702 "pl_gram.c" break; - case 69: -#line 872 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2818 "pl_gram.c" /* yacc.c:1652 */ + case 69: /* proc_stmt: stmt_exit */ +#line 872 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2708 "pl_gram.c" break; - case 70: -#line 874 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2824 "pl_gram.c" /* yacc.c:1652 */ + case 70: /* proc_stmt: stmt_return */ +#line 874 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2714 "pl_gram.c" break; - case 71: -#line 876 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2830 "pl_gram.c" /* yacc.c:1652 */ + case 71: /* proc_stmt: stmt_raise */ +#line 876 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2720 "pl_gram.c" break; - case 72: -#line 878 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2836 "pl_gram.c" /* yacc.c:1652 */ + case 72: /* proc_stmt: stmt_assert */ +#line 878 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2726 "pl_gram.c" break; - case 73: -#line 880 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2842 "pl_gram.c" /* yacc.c:1652 */ + case 73: /* proc_stmt: stmt_execsql */ +#line 880 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2732 "pl_gram.c" break; - case 74: -#line 882 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2848 "pl_gram.c" /* yacc.c:1652 */ + case 74: /* proc_stmt: stmt_dynexecute */ +#line 882 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2738 "pl_gram.c" break; - case 75: -#line 884 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2854 "pl_gram.c" /* yacc.c:1652 */ + case 75: /* proc_stmt: stmt_perform */ +#line 884 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2744 "pl_gram.c" break; - case 76: -#line 886 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2860 "pl_gram.c" /* yacc.c:1652 */ + case 76: /* proc_stmt: stmt_call */ +#line 886 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2750 "pl_gram.c" break; - case 77: -#line 888 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2866 "pl_gram.c" /* yacc.c:1652 */ + case 77: /* proc_stmt: stmt_getdiag */ +#line 888 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2756 "pl_gram.c" break; - case 78: -#line 890 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2872 "pl_gram.c" /* yacc.c:1652 */ + case 78: /* proc_stmt: stmt_open */ +#line 890 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2762 "pl_gram.c" break; - case 79: -#line 892 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2878 "pl_gram.c" /* yacc.c:1652 */ + case 79: /* proc_stmt: stmt_fetch */ +#line 892 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2768 "pl_gram.c" break; - case 80: -#line 894 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2884 "pl_gram.c" /* yacc.c:1652 */ + case 80: /* proc_stmt: stmt_move */ +#line 894 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2774 "pl_gram.c" break; - case 81: -#line 896 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2890 "pl_gram.c" /* yacc.c:1652 */ + case 81: /* proc_stmt: stmt_close */ +#line 896 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2780 "pl_gram.c" break; - case 82: -#line 898 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2896 "pl_gram.c" /* yacc.c:1652 */ + case 82: /* proc_stmt: stmt_null */ +#line 898 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2786 "pl_gram.c" break; - case 83: -#line 900 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2902 "pl_gram.c" /* yacc.c:1652 */ + case 83: /* proc_stmt: stmt_commit */ +#line 900 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2792 "pl_gram.c" break; - case 84: -#line 902 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2908 "pl_gram.c" /* yacc.c:1652 */ + case 84: /* proc_stmt: stmt_rollback */ +#line 902 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2798 "pl_gram.c" break; - case 85: -#line 904 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2914 "pl_gram.c" /* yacc.c:1652 */ + case 85: /* proc_stmt: stmt_set */ +#line 904 "pl_gram.y" + { (yyval.stmt) = (yyvsp[0].stmt); } +#line 2804 "pl_gram.c" break; - case 86: -#line 908 "pl_gram.y" /* yacc.c:1652 */ - { + case 86: /* stmt_perform: K_PERFORM expr_until_semi */ +#line 908 "pl_gram.y" + { PLpgSQL_stmt_perform *new; new = palloc0(sizeof(PLpgSQL_stmt_perform)); @@ -2926,12 +2816,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 2930 "pl_gram.c" /* yacc.c:1652 */ +#line 2820 "pl_gram.c" break; - case 87: -#line 922 "pl_gram.y" /* yacc.c:1652 */ - { + case 87: /* stmt_call: K_CALL */ +#line 922 "pl_gram.y" + { PLpgSQL_stmt_call *new; new = palloc0(sizeof(PLpgSQL_stmt_call)); @@ -2944,12 +2834,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 2948 "pl_gram.c" /* yacc.c:1652 */ +#line 2838 "pl_gram.c" break; - case 88: -#line 936 "pl_gram.y" /* yacc.c:1652 */ - { + case 88: /* stmt_call: K_DO */ +#line 936 "pl_gram.y" + { /* use the same structures as for CALL, for simplicity */ PLpgSQL_stmt_call *new; @@ -2963,12 +2853,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 2967 "pl_gram.c" /* yacc.c:1652 */ +#line 2857 "pl_gram.c" break; - case 89: -#line 953 "pl_gram.y" /* yacc.c:1652 */ - { + case 89: /* stmt_assign: assign_var assign_operator expr_until_semi */ +#line 953 "pl_gram.y" + { PLpgSQL_stmt_assign *new; new = palloc0(sizeof(PLpgSQL_stmt_assign)); @@ -2980,12 +2870,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 2984 "pl_gram.c" /* yacc.c:1652 */ +#line 2874 "pl_gram.c" break; - case 90: -#line 968 "pl_gram.y" /* yacc.c:1652 */ - { + case 90: /* stmt_getdiag: K_GET getdiag_area_opt K_DIAGNOSTICS getdiag_list ';' */ +#line 968 "pl_gram.y" + { PLpgSQL_stmt_getdiag *new; ListCell *lc; @@ -3044,52 +2934,52 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 3048 "pl_gram.c" /* yacc.c:1652 */ +#line 2938 "pl_gram.c" break; - case 91: -#line 1030 "pl_gram.y" /* yacc.c:1652 */ - { + case 91: /* getdiag_area_opt: %empty */ +#line 1030 "pl_gram.y" + { (yyval.boolean) = false; } -#line 3056 "pl_gram.c" /* yacc.c:1652 */ +#line 2946 "pl_gram.c" break; - case 92: -#line 1034 "pl_gram.y" /* yacc.c:1652 */ - { + case 92: /* getdiag_area_opt: K_CURRENT */ +#line 1034 "pl_gram.y" + { (yyval.boolean) = false; } -#line 3064 "pl_gram.c" /* yacc.c:1652 */ +#line 2954 "pl_gram.c" break; - case 93: -#line 1038 "pl_gram.y" /* yacc.c:1652 */ - { + case 93: /* getdiag_area_opt: K_STACKED */ +#line 1038 "pl_gram.y" + { (yyval.boolean) = true; } -#line 3072 "pl_gram.c" /* yacc.c:1652 */ +#line 2962 "pl_gram.c" break; - case 94: -#line 1044 "pl_gram.y" /* yacc.c:1652 */ - { + case 94: /* getdiag_list: getdiag_list ',' getdiag_list_item */ +#line 1044 "pl_gram.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].diagitem)); } -#line 3080 "pl_gram.c" /* yacc.c:1652 */ +#line 2970 "pl_gram.c" break; - case 95: -#line 1048 "pl_gram.y" /* yacc.c:1652 */ - { + case 95: /* getdiag_list: getdiag_list_item */ +#line 1048 "pl_gram.y" + { (yyval.list) = list_make1((yyvsp[0].diagitem)); } -#line 3088 "pl_gram.c" /* yacc.c:1652 */ +#line 2978 "pl_gram.c" break; - case 96: -#line 1054 "pl_gram.y" /* yacc.c:1652 */ - { + case 96: /* getdiag_list_item: getdiag_target assign_operator getdiag_item */ +#line 1054 "pl_gram.y" + { PLpgSQL_diag_item *new; new = palloc(sizeof(PLpgSQL_diag_item)); @@ -3098,12 +2988,12 @@ (yyval.diagitem) = new; } -#line 3102 "pl_gram.c" /* yacc.c:1652 */ +#line 2992 "pl_gram.c" break; - case 97: -#line 1066 "pl_gram.y" /* yacc.c:1652 */ - { + case 97: /* getdiag_item: %empty */ +#line 1066 "pl_gram.y" + { int tok = yylex(); if (tok_is_keyword(tok, &yylval, @@ -3145,12 +3035,12 @@ else yyerror("unrecognized GET DIAGNOSTICS item"); } -#line 3149 "pl_gram.c" /* yacc.c:1652 */ +#line 3039 "pl_gram.c" break; - case 98: -#line 1111 "pl_gram.y" /* yacc.c:1652 */ - { + case 98: /* getdiag_target: assign_var */ +#line 1111 "pl_gram.y" + { if ((yyvsp[0].datum)->dtype == PLPGSQL_DTYPE_ROW || (yyvsp[0].datum)->dtype == PLPGSQL_DTYPE_REC) ereport(ERROR, @@ -3160,39 +3050,39 @@ parser_errposition((yylsp[0])))); (yyval.datum) = (yyvsp[0].datum); } -#line 3164 "pl_gram.c" /* yacc.c:1652 */ +#line 3054 "pl_gram.c" break; - case 99: -#line 1122 "pl_gram.y" /* yacc.c:1652 */ - { + case 99: /* getdiag_target: T_WORD */ +#line 1122 "pl_gram.y" + { /* just to give a better message than "syntax error" */ word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); } -#line 3173 "pl_gram.c" /* yacc.c:1652 */ +#line 3063 "pl_gram.c" break; - case 100: -#line 1127 "pl_gram.y" /* yacc.c:1652 */ - { + case 100: /* getdiag_target: T_CWORD */ +#line 1127 "pl_gram.y" + { /* just to give a better message than "syntax error" */ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); } -#line 3182 "pl_gram.c" /* yacc.c:1652 */ +#line 3072 "pl_gram.c" break; - case 101: -#line 1135 "pl_gram.y" /* yacc.c:1652 */ - { + case 101: /* assign_var: T_DATUM */ +#line 1135 "pl_gram.y" + { check_assignable((yyvsp[0].wdatum).datum, (yylsp[0])); (yyval.datum) = (yyvsp[0].wdatum).datum; } -#line 3191 "pl_gram.c" /* yacc.c:1652 */ +#line 3081 "pl_gram.c" break; - case 102: -#line 1140 "pl_gram.y" /* yacc.c:1652 */ - { + case 102: /* assign_var: assign_var '[' expr_until_rightbracket */ +#line 1140 "pl_gram.y" + { PLpgSQL_arrayelem *new; new = palloc0(sizeof(PLpgSQL_arrayelem)); @@ -3206,12 +3096,12 @@ (yyval.datum) = (PLpgSQL_datum *) new; } -#line 3210 "pl_gram.c" /* yacc.c:1652 */ +#line 3100 "pl_gram.c" break; - case 103: -#line 1157 "pl_gram.y" /* yacc.c:1652 */ - { + case 103: /* stmt_if: K_IF expr_until_then proc_sect stmt_elsifs stmt_else K_END K_IF ';' */ +#line 1157 "pl_gram.y" + { PLpgSQL_stmt_if *new; new = palloc0(sizeof(PLpgSQL_stmt_if)); @@ -3225,20 +3115,20 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 3229 "pl_gram.c" /* yacc.c:1652 */ +#line 3119 "pl_gram.c" break; - case 104: -#line 1174 "pl_gram.y" /* yacc.c:1652 */ - { + case 104: /* stmt_elsifs: %empty */ +#line 1174 "pl_gram.y" + { (yyval.list) = NIL; } -#line 3237 "pl_gram.c" /* yacc.c:1652 */ +#line 3127 "pl_gram.c" break; - case 105: -#line 1178 "pl_gram.y" /* yacc.c:1652 */ - { + case 105: /* stmt_elsifs: stmt_elsifs K_ELSIF expr_until_then proc_sect */ +#line 1178 "pl_gram.y" + { PLpgSQL_if_elsif *new; new = palloc0(sizeof(PLpgSQL_if_elsif)); @@ -3248,36 +3138,36 @@ (yyval.list) = lappend((yyvsp[-3].list), new); } -#line 3252 "pl_gram.c" /* yacc.c:1652 */ +#line 3142 "pl_gram.c" break; - case 106: -#line 1191 "pl_gram.y" /* yacc.c:1652 */ - { + case 106: /* stmt_else: %empty */ +#line 1191 "pl_gram.y" + { (yyval.list) = NIL; } -#line 3260 "pl_gram.c" /* yacc.c:1652 */ +#line 3150 "pl_gram.c" break; - case 107: -#line 1195 "pl_gram.y" /* yacc.c:1652 */ - { + case 107: /* stmt_else: K_ELSE proc_sect */ +#line 1195 "pl_gram.y" + { (yyval.list) = (yyvsp[0].list); } -#line 3268 "pl_gram.c" /* yacc.c:1652 */ +#line 3158 "pl_gram.c" break; - case 108: -#line 1201 "pl_gram.y" /* yacc.c:1652 */ - { + case 108: /* stmt_case: K_CASE opt_expr_until_when case_when_list opt_case_else K_END K_CASE ';' */ +#line 1201 "pl_gram.y" + { (yyval.stmt) = make_case((yylsp[-6]), (yyvsp[-5].expr), (yyvsp[-4].list), (yyvsp[-3].list)); } -#line 3276 "pl_gram.c" /* yacc.c:1652 */ +#line 3166 "pl_gram.c" break; - case 109: -#line 1207 "pl_gram.y" /* yacc.c:1652 */ - { + case 109: /* opt_expr_until_when: %empty */ +#line 1207 "pl_gram.y" + { PLpgSQL_expr *expr = NULL; int tok = yylex(); @@ -3289,28 +3179,28 @@ plpgsql_push_back_token(K_WHEN); (yyval.expr) = expr; } -#line 3293 "pl_gram.c" /* yacc.c:1652 */ +#line 3183 "pl_gram.c" break; - case 110: -#line 1222 "pl_gram.y" /* yacc.c:1652 */ - { + case 110: /* case_when_list: case_when_list case_when */ +#line 1222 "pl_gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].casewhen)); } -#line 3301 "pl_gram.c" /* yacc.c:1652 */ +#line 3191 "pl_gram.c" break; - case 111: -#line 1226 "pl_gram.y" /* yacc.c:1652 */ - { + case 111: /* case_when_list: case_when */ +#line 1226 "pl_gram.y" + { (yyval.list) = list_make1((yyvsp[0].casewhen)); } -#line 3309 "pl_gram.c" /* yacc.c:1652 */ +#line 3199 "pl_gram.c" break; - case 112: -#line 1232 "pl_gram.y" /* yacc.c:1652 */ - { + case 112: /* case_when: K_WHEN expr_until_then proc_sect */ +#line 1232 "pl_gram.y" + { PLpgSQL_case_when *new = palloc(sizeof(PLpgSQL_case_when)); new->lineno = plpgsql_location_to_lineno((yylsp[-2])); @@ -3318,20 +3208,20 @@ new->stmts = (yyvsp[0].list); (yyval.casewhen) = new; } -#line 3322 "pl_gram.c" /* yacc.c:1652 */ +#line 3212 "pl_gram.c" break; - case 113: -#line 1243 "pl_gram.y" /* yacc.c:1652 */ - { + case 113: /* opt_case_else: %empty */ +#line 1243 "pl_gram.y" + { (yyval.list) = NIL; } -#line 3330 "pl_gram.c" /* yacc.c:1652 */ +#line 3220 "pl_gram.c" break; - case 114: -#line 1247 "pl_gram.y" /* yacc.c:1652 */ - { + case 114: /* opt_case_else: K_ELSE proc_sect */ +#line 1247 "pl_gram.y" + { /* * proc_sect could return an empty list, but we * must distinguish that from not having ELSE at all. @@ -3343,12 +3233,12 @@ else (yyval.list) = list_make1(NULL); } -#line 3347 "pl_gram.c" /* yacc.c:1652 */ +#line 3237 "pl_gram.c" break; - case 115: -#line 1262 "pl_gram.y" /* yacc.c:1652 */ - { + case 115: /* stmt_loop: opt_loop_label K_LOOP loop_body */ +#line 1262 "pl_gram.y" + { PLpgSQL_stmt_loop *new; new = palloc0(sizeof(PLpgSQL_stmt_loop)); @@ -3363,12 +3253,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 3367 "pl_gram.c" /* yacc.c:1652 */ +#line 3257 "pl_gram.c" break; - case 116: -#line 1280 "pl_gram.y" /* yacc.c:1652 */ - { + case 116: /* stmt_while: opt_loop_label K_WHILE expr_until_loop loop_body */ +#line 1280 "pl_gram.y" + { PLpgSQL_stmt_while *new; new = palloc0(sizeof(PLpgSQL_stmt_while)); @@ -3384,12 +3274,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 3388 "pl_gram.c" /* yacc.c:1652 */ +#line 3278 "pl_gram.c" break; - case 117: -#line 1299 "pl_gram.y" /* yacc.c:1652 */ - { + case 117: /* stmt_for: opt_loop_label K_FOR for_control loop_body */ +#line 1299 "pl_gram.y" + { /* This runs after we've scanned the loop body */ if ((yyvsp[-1].stmt)->cmd_type == PLPGSQL_STMT_FORI) { @@ -3420,12 +3310,12 @@ /* close namespace started in opt_loop_label */ plpgsql_ns_pop(); } -#line 3424 "pl_gram.c" /* yacc.c:1652 */ +#line 3314 "pl_gram.c" break; - case 118: -#line 1333 "pl_gram.y" /* yacc.c:1652 */ - { + case 118: /* for_control: for_variable K_IN */ +#line 1333 "pl_gram.y" + { int tok = yylex(); int tokloc = yylloc; @@ -3666,12 +3556,12 @@ } } } -#line 3670 "pl_gram.c" /* yacc.c:1652 */ +#line 3560 "pl_gram.c" break; - case 119: -#line 1595 "pl_gram.y" /* yacc.c:1652 */ - { + case 119: /* for_variable: T_DATUM */ +#line 1595 "pl_gram.y" + { (yyval.forvariable).name = NameOfDatum(&((yyvsp[0].wdatum))); (yyval.forvariable).lineno = plpgsql_location_to_lineno((yylsp[0])); if ((yyvsp[0].wdatum).datum->dtype == PLPGSQL_DTYPE_ROW || @@ -3696,12 +3586,12 @@ (yylsp[0])); } } -#line 3700 "pl_gram.c" /* yacc.c:1652 */ +#line 3590 "pl_gram.c" break; - case 120: -#line 1621 "pl_gram.y" /* yacc.c:1652 */ - { + case 120: /* for_variable: T_WORD */ +#line 1621 "pl_gram.y" + { int tok; (yyval.forvariable).name = (yyvsp[0].word).ident; @@ -3714,21 +3604,21 @@ if (tok == ',') word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); } -#line 3718 "pl_gram.c" /* yacc.c:1652 */ +#line 3608 "pl_gram.c" break; - case 121: -#line 1635 "pl_gram.y" /* yacc.c:1652 */ - { + case 121: /* for_variable: T_CWORD */ +#line 1635 "pl_gram.y" + { /* just to give a better message than "syntax error" */ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); } -#line 3727 "pl_gram.c" /* yacc.c:1652 */ +#line 3617 "pl_gram.c" break; - case 122: -#line 1642 "pl_gram.y" /* yacc.c:1652 */ - { + case 122: /* stmt_foreach_a: opt_loop_label K_FOREACH for_variable foreach_slice K_IN K_ARRAY expr_until_loop loop_body */ +#line 1642 "pl_gram.y" + { PLpgSQL_stmt_foreach_a *new; new = palloc0(sizeof(PLpgSQL_stmt_foreach_a)); @@ -3763,28 +3653,28 @@ (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3767 "pl_gram.c" /* yacc.c:1652 */ +#line 3657 "pl_gram.c" break; - case 123: -#line 1680 "pl_gram.y" /* yacc.c:1652 */ - { + case 123: /* foreach_slice: %empty */ +#line 1680 "pl_gram.y" + { (yyval.ival) = 0; } -#line 3775 "pl_gram.c" /* yacc.c:1652 */ +#line 3665 "pl_gram.c" break; - case 124: -#line 1684 "pl_gram.y" /* yacc.c:1652 */ - { + case 124: /* foreach_slice: K_SLICE ICONST */ +#line 1684 "pl_gram.y" + { (yyval.ival) = (yyvsp[0].ival); } -#line 3783 "pl_gram.c" /* yacc.c:1652 */ +#line 3673 "pl_gram.c" break; - case 125: -#line 1690 "pl_gram.y" /* yacc.c:1652 */ - { + case 125: /* stmt_exit: exit_type opt_label opt_exitcond */ +#line 1690 "pl_gram.y" + { PLpgSQL_stmt_exit *new; new = palloc0(sizeof(PLpgSQL_stmt_exit)); @@ -3834,28 +3724,28 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 3838 "pl_gram.c" /* yacc.c:1652 */ +#line 3728 "pl_gram.c" break; - case 126: -#line 1743 "pl_gram.y" /* yacc.c:1652 */ - { + case 126: /* exit_type: K_EXIT */ +#line 1743 "pl_gram.y" + { (yyval.boolean) = true; } -#line 3846 "pl_gram.c" /* yacc.c:1652 */ +#line 3736 "pl_gram.c" break; - case 127: -#line 1747 "pl_gram.y" /* yacc.c:1652 */ - { + case 127: /* exit_type: K_CONTINUE */ +#line 1747 "pl_gram.y" + { (yyval.boolean) = false; } -#line 3854 "pl_gram.c" /* yacc.c:1652 */ +#line 3744 "pl_gram.c" break; - case 128: -#line 1753 "pl_gram.y" /* yacc.c:1652 */ - { + case 128: /* stmt_return: K_RETURN */ +#line 1753 "pl_gram.y" + { int tok; tok = yylex(); @@ -3878,12 +3768,12 @@ (yyval.stmt) = make_return_stmt((yylsp[0])); } } -#line 3882 "pl_gram.c" /* yacc.c:1652 */ +#line 3772 "pl_gram.c" break; - case 129: -#line 1779 "pl_gram.y" /* yacc.c:1652 */ - { + case 129: /* stmt_raise: K_RAISE */ +#line 1779 "pl_gram.y" + { PLpgSQL_stmt_raise *new; int tok; @@ -4025,12 +3915,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 4029 "pl_gram.c" /* yacc.c:1652 */ +#line 3919 "pl_gram.c" break; - case 130: -#line 1924 "pl_gram.y" /* yacc.c:1652 */ - { + case 130: /* stmt_assert: K_ASSERT */ +#line 1924 "pl_gram.y" + { PLpgSQL_stmt_assert *new; int tok; @@ -4051,38 +3941,38 @@ (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4055 "pl_gram.c" /* yacc.c:1652 */ +#line 3945 "pl_gram.c" break; - case 131: -#line 1948 "pl_gram.y" /* yacc.c:1652 */ - { + case 131: /* loop_body: proc_sect K_END K_LOOP opt_label ';' */ +#line 1948 "pl_gram.y" + { (yyval.loop_body).stmts = (yyvsp[-4].list); (yyval.loop_body).end_label = (yyvsp[-1].str); (yyval.loop_body).end_label_location = (yylsp[-1]); } -#line 4065 "pl_gram.c" /* yacc.c:1652 */ +#line 3955 "pl_gram.c" break; - case 132: -#line 1966 "pl_gram.y" /* yacc.c:1652 */ - { + case 132: /* stmt_execsql: K_IMPORT */ +#line 1966 "pl_gram.y" + { (yyval.stmt) = make_execsql_stmt(K_IMPORT, (yylsp[0])); } -#line 4073 "pl_gram.c" /* yacc.c:1652 */ +#line 3963 "pl_gram.c" break; - case 133: -#line 1970 "pl_gram.y" /* yacc.c:1652 */ - { + case 133: /* stmt_execsql: K_INSERT */ +#line 1970 "pl_gram.y" + { (yyval.stmt) = make_execsql_stmt(K_INSERT, (yylsp[0])); } -#line 4081 "pl_gram.c" /* yacc.c:1652 */ +#line 3971 "pl_gram.c" break; - case 134: -#line 1974 "pl_gram.y" /* yacc.c:1652 */ - { + case 134: /* stmt_execsql: T_WORD */ +#line 1974 "pl_gram.y" + { int tok; tok = yylex(); @@ -4091,12 +3981,12 @@ word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); (yyval.stmt) = make_execsql_stmt(T_WORD, (yylsp[0])); } -#line 4095 "pl_gram.c" /* yacc.c:1652 */ +#line 3985 "pl_gram.c" break; - case 135: -#line 1984 "pl_gram.y" /* yacc.c:1652 */ - { + case 135: /* stmt_execsql: T_CWORD */ +#line 1984 "pl_gram.y" + { int tok; tok = yylex(); @@ -4105,12 +3995,12 @@ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); (yyval.stmt) = make_execsql_stmt(T_CWORD, (yylsp[0])); } -#line 4109 "pl_gram.c" /* yacc.c:1652 */ +#line 3999 "pl_gram.c" break; - case 136: -#line 1996 "pl_gram.y" /* yacc.c:1652 */ - { + case 136: /* stmt_dynexecute: K_EXECUTE */ +#line 1996 "pl_gram.y" + { PLpgSQL_stmt_dynexecute *new; PLpgSQL_expr *expr; int endtoken; @@ -4170,12 +4060,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 4174 "pl_gram.c" /* yacc.c:1652 */ +#line 4064 "pl_gram.c" break; - case 137: -#line 2060 "pl_gram.y" /* yacc.c:1652 */ - { + case 137: /* stmt_open: K_OPEN cursor_variable */ +#line 2060 "pl_gram.y" + { PLpgSQL_stmt_open *new; int tok; @@ -4250,12 +4140,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 4254 "pl_gram.c" /* yacc.c:1652 */ +#line 4144 "pl_gram.c" break; - case 138: -#line 2138 "pl_gram.y" /* yacc.c:1652 */ - { + case 138: /* stmt_fetch: K_FETCH opt_fetch_direction cursor_variable K_INTO */ +#line 2138 "pl_gram.y" + { PLpgSQL_stmt_fetch *fetch = (yyvsp[-2].fetch); PLpgSQL_variable *target; @@ -4282,12 +4172,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)fetch; } -#line 4286 "pl_gram.c" /* yacc.c:1652 */ +#line 4176 "pl_gram.c" break; - case 139: -#line 2168 "pl_gram.y" /* yacc.c:1652 */ - { + case 139: /* stmt_move: K_MOVE opt_fetch_direction cursor_variable ';' */ +#line 2168 "pl_gram.y" + { PLpgSQL_stmt_fetch *fetch = (yyvsp[-2].fetch); fetch->lineno = plpgsql_location_to_lineno((yylsp[-3])); @@ -4296,20 +4186,20 @@ (yyval.stmt) = (PLpgSQL_stmt *)fetch; } -#line 4300 "pl_gram.c" /* yacc.c:1652 */ +#line 4190 "pl_gram.c" break; - case 140: -#line 2180 "pl_gram.y" /* yacc.c:1652 */ - { + case 140: /* opt_fetch_direction: %empty */ +#line 2180 "pl_gram.y" + { (yyval.fetch) = read_fetch_direction(); } -#line 4308 "pl_gram.c" /* yacc.c:1652 */ +#line 4198 "pl_gram.c" break; - case 141: -#line 2186 "pl_gram.y" /* yacc.c:1652 */ - { + case 141: /* stmt_close: K_CLOSE cursor_variable ';' */ +#line 2186 "pl_gram.y" + { PLpgSQL_stmt_close *new; new = palloc(sizeof(PLpgSQL_stmt_close)); @@ -4320,21 +4210,21 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 4324 "pl_gram.c" /* yacc.c:1652 */ +#line 4214 "pl_gram.c" break; - case 142: -#line 2200 "pl_gram.y" /* yacc.c:1652 */ - { + case 142: /* stmt_null: K_NULL ';' */ +#line 2200 "pl_gram.y" + { /* We do not bother building a node for NULL */ (yyval.stmt) = NULL; } -#line 4333 "pl_gram.c" /* yacc.c:1652 */ +#line 4223 "pl_gram.c" break; - case 143: -#line 2207 "pl_gram.y" /* yacc.c:1652 */ - { + case 143: /* stmt_commit: K_COMMIT opt_transaction_chain ';' */ +#line 2207 "pl_gram.y" + { PLpgSQL_stmt_commit *new; new = palloc(sizeof(PLpgSQL_stmt_commit)); @@ -4345,12 +4235,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 4349 "pl_gram.c" /* yacc.c:1652 */ +#line 4239 "pl_gram.c" break; - case 144: -#line 2221 "pl_gram.y" /* yacc.c:1652 */ - { + case 144: /* stmt_rollback: K_ROLLBACK opt_transaction_chain ';' */ +#line 2221 "pl_gram.y" + { PLpgSQL_stmt_rollback *new; new = palloc(sizeof(PLpgSQL_stmt_rollback)); @@ -4361,30 +4251,30 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 4365 "pl_gram.c" /* yacc.c:1652 */ +#line 4255 "pl_gram.c" break; - case 145: -#line 2235 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.ival) = true; } -#line 4371 "pl_gram.c" /* yacc.c:1652 */ + case 145: /* opt_transaction_chain: K_AND K_CHAIN */ +#line 2235 "pl_gram.y" + { (yyval.ival) = true; } +#line 4261 "pl_gram.c" break; - case 146: -#line 2236 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.ival) = false; } -#line 4377 "pl_gram.c" /* yacc.c:1652 */ + case 146: /* opt_transaction_chain: K_AND K_NO K_CHAIN */ +#line 2236 "pl_gram.y" + { (yyval.ival) = false; } +#line 4267 "pl_gram.c" break; - case 147: -#line 2237 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.ival) = false; } -#line 4383 "pl_gram.c" /* yacc.c:1652 */ + case 147: /* opt_transaction_chain: %empty */ +#line 2237 "pl_gram.y" + { (yyval.ival) = false; } +#line 4273 "pl_gram.c" break; - case 148: -#line 2241 "pl_gram.y" /* yacc.c:1652 */ - { + case 148: /* stmt_set: K_SET */ +#line 2241 "pl_gram.y" + { PLpgSQL_stmt_set *new; new = palloc0(sizeof(PLpgSQL_stmt_set)); @@ -4396,12 +4286,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 4400 "pl_gram.c" /* yacc.c:1652 */ +#line 4290 "pl_gram.c" break; - case 149: -#line 2254 "pl_gram.y" /* yacc.c:1652 */ - { + case 149: /* stmt_set: K_RESET */ +#line 2254 "pl_gram.y" + { PLpgSQL_stmt_set *new; new = palloc0(sizeof(PLpgSQL_stmt_set)); @@ -4412,12 +4302,12 @@ (yyval.stmt) = (PLpgSQL_stmt *)new; } -#line 4416 "pl_gram.c" /* yacc.c:1652 */ +#line 4306 "pl_gram.c" break; - case 150: -#line 2269 "pl_gram.y" /* yacc.c:1652 */ - { + case 150: /* cursor_variable: T_DATUM */ +#line 2269 "pl_gram.y" + { /* * In principle we should support a cursor_variable * that is an array element, but for now we don't, so @@ -4438,36 +4328,36 @@ parser_errposition((yylsp[0])))); (yyval.var) = (PLpgSQL_var *) (yyvsp[0].wdatum).datum; } -#line 4442 "pl_gram.c" /* yacc.c:1652 */ +#line 4332 "pl_gram.c" break; - case 151: -#line 2291 "pl_gram.y" /* yacc.c:1652 */ - { + case 151: /* cursor_variable: T_WORD */ +#line 2291 "pl_gram.y" + { /* just to give a better message than "syntax error" */ word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); } -#line 4451 "pl_gram.c" /* yacc.c:1652 */ +#line 4341 "pl_gram.c" break; - case 152: -#line 2296 "pl_gram.y" /* yacc.c:1652 */ - { + case 152: /* cursor_variable: T_CWORD */ +#line 2296 "pl_gram.y" + { /* just to give a better message than "syntax error" */ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); } -#line 4460 "pl_gram.c" /* yacc.c:1652 */ +#line 4350 "pl_gram.c" break; - case 153: -#line 2303 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.exception_block) = NULL; } -#line 4466 "pl_gram.c" /* yacc.c:1652 */ + case 153: /* exception_sect: %empty */ +#line 2303 "pl_gram.y" + { (yyval.exception_block) = NULL; } +#line 4356 "pl_gram.c" break; - case 154: -#line 2305 "pl_gram.y" /* yacc.c:1652 */ - { + case 154: /* @2: %empty */ +#line 2305 "pl_gram.y" + { /* * We use a mid-rule action to add these * special variables to the namespace before @@ -4499,39 +4389,39 @@ (yyval.exception_block) = new; } -#line 4503 "pl_gram.c" /* yacc.c:1652 */ +#line 4393 "pl_gram.c" break; - case 155: -#line 2338 "pl_gram.y" /* yacc.c:1652 */ - { + case 155: /* exception_sect: K_EXCEPTION @2 proc_exceptions */ +#line 2338 "pl_gram.y" + { PLpgSQL_exception_block *new = (yyvsp[-1].exception_block); new->exc_list = (yyvsp[0].list); (yyval.exception_block) = new; } -#line 4514 "pl_gram.c" /* yacc.c:1652 */ +#line 4404 "pl_gram.c" break; - case 156: -#line 2347 "pl_gram.y" /* yacc.c:1652 */ - { + case 156: /* proc_exceptions: proc_exceptions proc_exception */ +#line 2347 "pl_gram.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].exception)); } -#line 4522 "pl_gram.c" /* yacc.c:1652 */ +#line 4412 "pl_gram.c" break; - case 157: -#line 2351 "pl_gram.y" /* yacc.c:1652 */ - { + case 157: /* proc_exceptions: proc_exception */ +#line 2351 "pl_gram.y" + { (yyval.list) = list_make1((yyvsp[0].exception)); } -#line 4530 "pl_gram.c" /* yacc.c:1652 */ +#line 4420 "pl_gram.c" break; - case 158: -#line 2357 "pl_gram.y" /* yacc.c:1652 */ - { + case 158: /* proc_exception: K_WHEN proc_conditions K_THEN proc_sect */ +#line 2357 "pl_gram.y" + { PLpgSQL_exception *new; new = palloc0(sizeof(PLpgSQL_exception)); @@ -4541,12 +4431,12 @@ (yyval.exception) = new; } -#line 4545 "pl_gram.c" /* yacc.c:1652 */ +#line 4435 "pl_gram.c" break; - case 159: -#line 2370 "pl_gram.y" /* yacc.c:1652 */ - { + case 159: /* proc_conditions: proc_conditions K_OR proc_condition */ +#line 2370 "pl_gram.y" + { PLpgSQL_condition *old; for (old = (yyvsp[-2].condition); old->next != NULL; old = old->next) @@ -4554,20 +4444,20 @@ old->next = (yyvsp[0].condition); (yyval.condition) = (yyvsp[-2].condition); } -#line 4558 "pl_gram.c" /* yacc.c:1652 */ +#line 4448 "pl_gram.c" break; - case 160: -#line 2379 "pl_gram.y" /* yacc.c:1652 */ - { + case 160: /* proc_conditions: proc_condition */ +#line 2379 "pl_gram.y" + { (yyval.condition) = (yyvsp[0].condition); } -#line 4566 "pl_gram.c" /* yacc.c:1652 */ +#line 4456 "pl_gram.c" break; - case 161: -#line 2385 "pl_gram.y" /* yacc.c:1652 */ - { + case 161: /* proc_condition: any_identifier */ +#line 2385 "pl_gram.y" + { if (strcmp((yyvsp[0].str), "sqlstate") != 0) { (yyval.condition) = plpgsql_parse_err_condition((yyvsp[0].str)); @@ -4600,126 +4490,127 @@ (yyval.condition) = new; } } -#line 4604 "pl_gram.c" /* yacc.c:1652 */ +#line 4494 "pl_gram.c" break; - case 162: -#line 2421 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.expr) = read_sql_expression(';', ";"); } -#line 4610 "pl_gram.c" /* yacc.c:1652 */ + case 162: /* expr_until_semi: %empty */ +#line 2421 "pl_gram.y" + { (yyval.expr) = read_sql_expression(';', ";"); } +#line 4500 "pl_gram.c" break; - case 163: -#line 2425 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.expr) = read_sql_expression(']', "]"); } -#line 4616 "pl_gram.c" /* yacc.c:1652 */ + case 163: /* expr_until_rightbracket: %empty */ +#line 2425 "pl_gram.y" + { (yyval.expr) = read_sql_expression(']', "]"); } +#line 4506 "pl_gram.c" break; - case 164: -#line 2429 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.expr) = read_sql_expression(K_THEN, "THEN"); } -#line 4622 "pl_gram.c" /* yacc.c:1652 */ + case 164: /* expr_until_then: %empty */ +#line 2429 "pl_gram.y" + { (yyval.expr) = read_sql_expression(K_THEN, "THEN"); } +#line 4512 "pl_gram.c" break; - case 165: -#line 2433 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.expr) = read_sql_expression(K_LOOP, "LOOP"); } -#line 4628 "pl_gram.c" /* yacc.c:1652 */ + case 165: /* expr_until_loop: %empty */ +#line 2433 "pl_gram.y" + { (yyval.expr) = read_sql_expression(K_LOOP, "LOOP"); } +#line 4518 "pl_gram.c" break; - case 166: -#line 2437 "pl_gram.y" /* yacc.c:1652 */ - { + case 166: /* opt_block_label: %empty */ +#line 2437 "pl_gram.y" + { plpgsql_ns_push(NULL, PLPGSQL_LABEL_BLOCK); (yyval.str) = NULL; } -#line 4637 "pl_gram.c" /* yacc.c:1652 */ +#line 4527 "pl_gram.c" break; - case 167: -#line 2442 "pl_gram.y" /* yacc.c:1652 */ - { + case 167: /* opt_block_label: LESS_LESS any_identifier GREATER_GREATER */ +#line 2442 "pl_gram.y" + { plpgsql_ns_push((yyvsp[-1].str), PLPGSQL_LABEL_BLOCK); (yyval.str) = (yyvsp[-1].str); } -#line 4646 "pl_gram.c" /* yacc.c:1652 */ +#line 4536 "pl_gram.c" break; - case 168: -#line 2449 "pl_gram.y" /* yacc.c:1652 */ - { + case 168: /* opt_loop_label: %empty */ +#line 2449 "pl_gram.y" + { plpgsql_ns_push(NULL, PLPGSQL_LABEL_LOOP); (yyval.str) = NULL; } -#line 4655 "pl_gram.c" /* yacc.c:1652 */ +#line 4545 "pl_gram.c" break; - case 169: -#line 2454 "pl_gram.y" /* yacc.c:1652 */ - { + case 169: /* opt_loop_label: LESS_LESS any_identifier GREATER_GREATER */ +#line 2454 "pl_gram.y" + { plpgsql_ns_push((yyvsp[-1].str), PLPGSQL_LABEL_LOOP); (yyval.str) = (yyvsp[-1].str); } -#line 4664 "pl_gram.c" /* yacc.c:1652 */ +#line 4554 "pl_gram.c" break; - case 170: -#line 2461 "pl_gram.y" /* yacc.c:1652 */ - { + case 170: /* opt_label: %empty */ +#line 2461 "pl_gram.y" + { (yyval.str) = NULL; } -#line 4672 "pl_gram.c" /* yacc.c:1652 */ +#line 4562 "pl_gram.c" break; - case 171: -#line 2465 "pl_gram.y" /* yacc.c:1652 */ - { + case 171: /* opt_label: any_identifier */ +#line 2465 "pl_gram.y" + { /* label validity will be checked by outer production */ (yyval.str) = (yyvsp[0].str); } -#line 4681 "pl_gram.c" /* yacc.c:1652 */ +#line 4571 "pl_gram.c" break; - case 172: -#line 2472 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.expr) = NULL; } -#line 4687 "pl_gram.c" /* yacc.c:1652 */ + case 172: /* opt_exitcond: ';' */ +#line 2472 "pl_gram.y" + { (yyval.expr) = NULL; } +#line 4577 "pl_gram.c" break; - case 173: -#line 2474 "pl_gram.y" /* yacc.c:1652 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 4693 "pl_gram.c" /* yacc.c:1652 */ + case 173: /* opt_exitcond: K_WHEN expr_until_semi */ +#line 2474 "pl_gram.y" + { (yyval.expr) = (yyvsp[0].expr); } +#line 4583 "pl_gram.c" break; - case 174: -#line 2481 "pl_gram.y" /* yacc.c:1652 */ - { + case 174: /* any_identifier: T_WORD */ +#line 2481 "pl_gram.y" + { (yyval.str) = (yyvsp[0].word).ident; } -#line 4701 "pl_gram.c" /* yacc.c:1652 */ +#line 4591 "pl_gram.c" break; - case 175: -#line 2485 "pl_gram.y" /* yacc.c:1652 */ - { + case 175: /* any_identifier: unreserved_keyword */ +#line 2485 "pl_gram.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 4709 "pl_gram.c" /* yacc.c:1652 */ +#line 4599 "pl_gram.c" break; - case 176: -#line 2489 "pl_gram.y" /* yacc.c:1652 */ - { + case 176: /* any_identifier: T_DATUM */ +#line 2489 "pl_gram.y" + { if ((yyvsp[0].wdatum).ident == NULL) /* composite name not OK */ yyerror("syntax error"); (yyval.str) = (yyvsp[0].wdatum).ident; } -#line 4719 "pl_gram.c" /* yacc.c:1652 */ +#line 4609 "pl_gram.c" break; -#line 4723 "pl_gram.c" /* yacc.c:1652 */ +#line 4613 "pl_gram.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4733,11 +4624,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; @@ -4762,50 +4652,15 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } yyerror_range[1] = yylloc; - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -4854,13 +4709,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -4874,7 +4730,7 @@ yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - yystos[yystate], yyvsp, yylsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -4885,13 +4741,11 @@ YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; - /* Using YYLLOC is tempting, but would change the location of - the lookahead. YYLOC is available though. */ - YYLLOC_DEFAULT (yyloc, yyerror_range, 2); - *++yylsp = yyloc; + ++yylsp; + YYLLOC_DEFAULT (*yylsp, yyerror_range, 2); /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -4913,20 +4767,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -4943,20 +4797,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, yylsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 2581 "pl_gram.y" /* yacc.c:1918 */ + +#line 2581 "pl_gram.y" /* diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/pl_gram.h postgresql-13-13.7/src/pl/plpgsql/src/pl_gram.h --- postgresql-13-13.4/src/pl/plpgsql/src/pl_gram.h 2021-08-09 21:03:34.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/pl_gram.h 2022-05-09 21:29:49.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -31,8 +31,9 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ #ifndef YY_PLPGSQL_YY_PL_GRAM_H_INCLUDED # define YY_PLPGSQL_YY_PL_GRAM_H_INCLUDED @@ -44,148 +45,152 @@ extern int plpgsql_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - IDENT = 258, - UIDENT = 259, - FCONST = 260, - SCONST = 261, - USCONST = 262, - BCONST = 263, - XCONST = 264, - Op = 265, - ICONST = 266, - PARAM = 267, - TYPECAST = 268, - DOT_DOT = 269, - COLON_EQUALS = 270, - EQUALS_GREATER = 271, - LESS_EQUALS = 272, - GREATER_EQUALS = 273, - NOT_EQUALS = 274, - T_WORD = 275, - T_CWORD = 276, - T_DATUM = 277, - LESS_LESS = 278, - GREATER_GREATER = 279, - K_ABSOLUTE = 280, - K_ALIAS = 281, - K_ALL = 282, - K_AND = 283, - K_ARRAY = 284, - K_ASSERT = 285, - K_BACKWARD = 286, - K_BEGIN = 287, - K_BY = 288, - K_CALL = 289, - K_CASE = 290, - K_CHAIN = 291, - K_CLOSE = 292, - K_COLLATE = 293, - K_COLUMN = 294, - K_COLUMN_NAME = 295, - K_COMMIT = 296, - K_CONSTANT = 297, - K_CONSTRAINT = 298, - K_CONSTRAINT_NAME = 299, - K_CONTINUE = 300, - K_CURRENT = 301, - K_CURSOR = 302, - K_DATATYPE = 303, - K_DEBUG = 304, - K_DECLARE = 305, - K_DEFAULT = 306, - K_DETAIL = 307, - K_DIAGNOSTICS = 308, - K_DO = 309, - K_DUMP = 310, - K_ELSE = 311, - K_ELSIF = 312, - K_END = 313, - K_ERRCODE = 314, - K_ERROR = 315, - K_EXCEPTION = 316, - K_EXECUTE = 317, - K_EXIT = 318, - K_FETCH = 319, - K_FIRST = 320, - K_FOR = 321, - K_FOREACH = 322, - K_FORWARD = 323, - K_FROM = 324, - K_GET = 325, - K_HINT = 326, - K_IF = 327, - K_IMPORT = 328, - K_IN = 329, - K_INFO = 330, - K_INSERT = 331, - K_INTO = 332, - K_IS = 333, - K_LAST = 334, - K_LOG = 335, - K_LOOP = 336, - K_MESSAGE = 337, - K_MESSAGE_TEXT = 338, - K_MOVE = 339, - K_NEXT = 340, - K_NO = 341, - K_NOT = 342, - K_NOTICE = 343, - K_NULL = 344, - K_OPEN = 345, - K_OPTION = 346, - K_OR = 347, - K_PERFORM = 348, - K_PG_CONTEXT = 349, - K_PG_DATATYPE_NAME = 350, - K_PG_EXCEPTION_CONTEXT = 351, - K_PG_EXCEPTION_DETAIL = 352, - K_PG_EXCEPTION_HINT = 353, - K_PRINT_STRICT_PARAMS = 354, - K_PRIOR = 355, - K_QUERY = 356, - K_RAISE = 357, - K_RELATIVE = 358, - K_RESET = 359, - K_RETURN = 360, - K_RETURNED_SQLSTATE = 361, - K_REVERSE = 362, - K_ROLLBACK = 363, - K_ROW_COUNT = 364, - K_ROWTYPE = 365, - K_SCHEMA = 366, - K_SCHEMA_NAME = 367, - K_SCROLL = 368, - K_SET = 369, - K_SLICE = 370, - K_SQLSTATE = 371, - K_STACKED = 372, - K_STRICT = 373, - K_TABLE = 374, - K_TABLE_NAME = 375, - K_THEN = 376, - K_TO = 377, - K_TYPE = 378, - K_USE_COLUMN = 379, - K_USE_VARIABLE = 380, - K_USING = 381, - K_VARIABLE_CONFLICT = 382, - K_WARNING = 383, - K_WHEN = 384, - K_WHILE = 385 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + IDENT = 258, /* IDENT */ + UIDENT = 259, /* UIDENT */ + FCONST = 260, /* FCONST */ + SCONST = 261, /* SCONST */ + USCONST = 262, /* USCONST */ + BCONST = 263, /* BCONST */ + XCONST = 264, /* XCONST */ + Op = 265, /* Op */ + ICONST = 266, /* ICONST */ + PARAM = 267, /* PARAM */ + TYPECAST = 268, /* TYPECAST */ + DOT_DOT = 269, /* DOT_DOT */ + COLON_EQUALS = 270, /* COLON_EQUALS */ + EQUALS_GREATER = 271, /* EQUALS_GREATER */ + LESS_EQUALS = 272, /* LESS_EQUALS */ + GREATER_EQUALS = 273, /* GREATER_EQUALS */ + NOT_EQUALS = 274, /* NOT_EQUALS */ + T_WORD = 275, /* T_WORD */ + T_CWORD = 276, /* T_CWORD */ + T_DATUM = 277, /* T_DATUM */ + LESS_LESS = 278, /* LESS_LESS */ + GREATER_GREATER = 279, /* GREATER_GREATER */ + K_ABSOLUTE = 280, /* K_ABSOLUTE */ + K_ALIAS = 281, /* K_ALIAS */ + K_ALL = 282, /* K_ALL */ + K_AND = 283, /* K_AND */ + K_ARRAY = 284, /* K_ARRAY */ + K_ASSERT = 285, /* K_ASSERT */ + K_BACKWARD = 286, /* K_BACKWARD */ + K_BEGIN = 287, /* K_BEGIN */ + K_BY = 288, /* K_BY */ + K_CALL = 289, /* K_CALL */ + K_CASE = 290, /* K_CASE */ + K_CHAIN = 291, /* K_CHAIN */ + K_CLOSE = 292, /* K_CLOSE */ + K_COLLATE = 293, /* K_COLLATE */ + K_COLUMN = 294, /* K_COLUMN */ + K_COLUMN_NAME = 295, /* K_COLUMN_NAME */ + K_COMMIT = 296, /* K_COMMIT */ + K_CONSTANT = 297, /* K_CONSTANT */ + K_CONSTRAINT = 298, /* K_CONSTRAINT */ + K_CONSTRAINT_NAME = 299, /* K_CONSTRAINT_NAME */ + K_CONTINUE = 300, /* K_CONTINUE */ + K_CURRENT = 301, /* K_CURRENT */ + K_CURSOR = 302, /* K_CURSOR */ + K_DATATYPE = 303, /* K_DATATYPE */ + K_DEBUG = 304, /* K_DEBUG */ + K_DECLARE = 305, /* K_DECLARE */ + K_DEFAULT = 306, /* K_DEFAULT */ + K_DETAIL = 307, /* K_DETAIL */ + K_DIAGNOSTICS = 308, /* K_DIAGNOSTICS */ + K_DO = 309, /* K_DO */ + K_DUMP = 310, /* K_DUMP */ + K_ELSE = 311, /* K_ELSE */ + K_ELSIF = 312, /* K_ELSIF */ + K_END = 313, /* K_END */ + K_ERRCODE = 314, /* K_ERRCODE */ + K_ERROR = 315, /* K_ERROR */ + K_EXCEPTION = 316, /* K_EXCEPTION */ + K_EXECUTE = 317, /* K_EXECUTE */ + K_EXIT = 318, /* K_EXIT */ + K_FETCH = 319, /* K_FETCH */ + K_FIRST = 320, /* K_FIRST */ + K_FOR = 321, /* K_FOR */ + K_FOREACH = 322, /* K_FOREACH */ + K_FORWARD = 323, /* K_FORWARD */ + K_FROM = 324, /* K_FROM */ + K_GET = 325, /* K_GET */ + K_HINT = 326, /* K_HINT */ + K_IF = 327, /* K_IF */ + K_IMPORT = 328, /* K_IMPORT */ + K_IN = 329, /* K_IN */ + K_INFO = 330, /* K_INFO */ + K_INSERT = 331, /* K_INSERT */ + K_INTO = 332, /* K_INTO */ + K_IS = 333, /* K_IS */ + K_LAST = 334, /* K_LAST */ + K_LOG = 335, /* K_LOG */ + K_LOOP = 336, /* K_LOOP */ + K_MESSAGE = 337, /* K_MESSAGE */ + K_MESSAGE_TEXT = 338, /* K_MESSAGE_TEXT */ + K_MOVE = 339, /* K_MOVE */ + K_NEXT = 340, /* K_NEXT */ + K_NO = 341, /* K_NO */ + K_NOT = 342, /* K_NOT */ + K_NOTICE = 343, /* K_NOTICE */ + K_NULL = 344, /* K_NULL */ + K_OPEN = 345, /* K_OPEN */ + K_OPTION = 346, /* K_OPTION */ + K_OR = 347, /* K_OR */ + K_PERFORM = 348, /* K_PERFORM */ + K_PG_CONTEXT = 349, /* K_PG_CONTEXT */ + K_PG_DATATYPE_NAME = 350, /* K_PG_DATATYPE_NAME */ + K_PG_EXCEPTION_CONTEXT = 351, /* K_PG_EXCEPTION_CONTEXT */ + K_PG_EXCEPTION_DETAIL = 352, /* K_PG_EXCEPTION_DETAIL */ + K_PG_EXCEPTION_HINT = 353, /* K_PG_EXCEPTION_HINT */ + K_PRINT_STRICT_PARAMS = 354, /* K_PRINT_STRICT_PARAMS */ + K_PRIOR = 355, /* K_PRIOR */ + K_QUERY = 356, /* K_QUERY */ + K_RAISE = 357, /* K_RAISE */ + K_RELATIVE = 358, /* K_RELATIVE */ + K_RESET = 359, /* K_RESET */ + K_RETURN = 360, /* K_RETURN */ + K_RETURNED_SQLSTATE = 361, /* K_RETURNED_SQLSTATE */ + K_REVERSE = 362, /* K_REVERSE */ + K_ROLLBACK = 363, /* K_ROLLBACK */ + K_ROW_COUNT = 364, /* K_ROW_COUNT */ + K_ROWTYPE = 365, /* K_ROWTYPE */ + K_SCHEMA = 366, /* K_SCHEMA */ + K_SCHEMA_NAME = 367, /* K_SCHEMA_NAME */ + K_SCROLL = 368, /* K_SCROLL */ + K_SET = 369, /* K_SET */ + K_SLICE = 370, /* K_SLICE */ + K_SQLSTATE = 371, /* K_SQLSTATE */ + K_STACKED = 372, /* K_STACKED */ + K_STRICT = 373, /* K_STRICT */ + K_TABLE = 374, /* K_TABLE */ + K_TABLE_NAME = 375, /* K_TABLE_NAME */ + K_THEN = 376, /* K_THEN */ + K_TO = 377, /* K_TO */ + K_TYPE = 378, /* K_TYPE */ + K_USE_COLUMN = 379, /* K_USE_COLUMN */ + K_USE_VARIABLE = 380, /* K_USE_VARIABLE */ + K_USING = 381, /* K_USING */ + K_VARIABLE_CONFLICT = 382, /* K_VARIABLE_CONFLICT */ + K_WARNING = 383, /* K_WARNING */ + K_WHEN = 384, /* K_WHEN */ + K_WHILE = 385 /* K_WHILE */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 120 "pl_gram.y" /* yacc.c:1921 */ +#line 120 "pl_gram.y" core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ @@ -236,9 +241,9 @@ PLpgSQL_stmt_fetch *fetch; PLpgSQL_case_when *casewhen; -#line 240 "pl_gram.h" /* yacc.c:1921 */ -}; +#line 245 "pl_gram.h" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/po/fr.po postgresql-13-13.7/src/pl/plpgsql/src/po/fr.po --- postgresql-13-13.4/src/pl/plpgsql/src/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -32,7 +32,7 @@ #: pl_comp.c:556 #, c-format msgid "trigger functions can only be called as triggers" -msgstr "les fonctions triggers peuvent seulement être appelées par des triggers" +msgstr "les fonctions trigger peuvent seulement être appelées par des triggers" #: pl_comp.c:560 pl_handler.c:455 #, c-format @@ -134,7 +134,7 @@ #: pl_exec.c:637 pl_exec.c:3604 #, c-format msgid "set-valued function called in context that cannot accept a set" -msgstr "fonction renvoyant un ensemble appelée dans un contexte qui ne peut pas accepter un ensemble" +msgstr "la fonction renvoyant un ensemble a été appelée dans un contexte qui n'accepte pas un ensemble" #: pl_exec.c:763 pl_exec.c:1037 pl_exec.c:1198 msgid "during function exit" @@ -444,7 +444,7 @@ #: pl_exec.c:5178 #, c-format msgid "cannot assign to system column \"%s\"" -msgstr "ne peut pas affecter « %s » à une colonne système" +msgstr "ne peut pas affecter à une colonne système « %s »" #: pl_exec.c:5242 #, c-format diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/po/ru.po postgresql-13-13.7/src/pl/plpgsql/src/po/ru.po --- postgresql-13-13.4/src/pl/plpgsql/src/po/ru.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/po/ru.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,13 +1,13 @@ # Russian message translation file for plpgsql # Copyright (C) 2012-2016 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: plpgsql (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-02-08 07:28+0300\n" -"PO-Revision-Date: 2020-09-03 15:25+0300\n" +"POT-Creation-Date: 2021-09-16 21:46+0300\n" +"PO-Revision-Date: 2021-08-14 07:18+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -51,7 +51,7 @@ "instead." msgstr "" "При необходимости к аргументам триггера можно обращаться через переменные " -"TG_NARGS and TG_ARGV." +"TG_NARGS и TG_ARGV." #: pl_comp.c:734 #, c-format @@ -68,48 +68,48 @@ msgid "parameter name \"%s\" used more than once" msgstr "имя параметра \"%s\" указано неоднократно" -#: pl_comp.c:1132 +#: pl_comp.c:1134 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "неоднозначная ссылка на столбец \"%s\"" -#: pl_comp.c:1134 +#: pl_comp.c:1136 #, c-format msgid "It could refer to either a PL/pgSQL variable or a table column." msgstr "Подразумевается ссылка на переменную PL/pgSQL или столбец таблицы." -#: pl_comp.c:1317 pl_exec.c:5218 pl_exec.c:5583 pl_exec.c:5670 pl_exec.c:5761 -#: pl_exec.c:6749 +#: pl_comp.c:1319 pl_exec.c:5222 pl_exec.c:5587 pl_exec.c:5674 pl_exec.c:5765 +#: pl_exec.c:6780 #, c-format msgid "record \"%s\" has no field \"%s\"" msgstr "в записи \"%s\" нет поля \"%s\"" -#: pl_comp.c:1793 +#: pl_comp.c:1795 #, c-format msgid "relation \"%s\" does not exist" msgstr "отношение \"%s\" не существует" -#: pl_comp.c:1891 +#: pl_comp.c:1893 #, c-format msgid "variable \"%s\" has pseudo-type %s" msgstr "переменная \"%s\" имеет псевдотип %s" -#: pl_comp.c:2080 +#: pl_comp.c:2082 #, c-format msgid "type \"%s\" is only a shell" -msgstr "тип \"%s\" — лишь пустышка" +msgstr "тип \"%s\" является пустышкой" -#: pl_comp.c:2162 pl_exec.c:7050 +#: pl_comp.c:2164 pl_exec.c:7081 #, c-format msgid "type %s is not composite" msgstr "тип %s не является составным" -#: pl_comp.c:2210 pl_comp.c:2263 +#: pl_comp.c:2212 pl_comp.c:2265 #, c-format msgid "unrecognized exception condition \"%s\"" msgstr "нераспознанное условие исключения \"%s\"" -#: pl_comp.c:2484 +#: pl_comp.c:2486 #, c-format msgid "" "could not determine actual argument type for polymorphic function \"%s\"" @@ -117,52 +117,52 @@ "не удалось определить фактический тип аргумента для полиморфной функции \"%s" "\"" -#: pl_exec.c:498 pl_exec.c:935 pl_exec.c:1173 +#: pl_exec.c:499 pl_exec.c:936 pl_exec.c:1174 msgid "during initialization of execution state" msgstr "в процессе инициализации состояния выполнения" -#: pl_exec.c:504 +#: pl_exec.c:505 msgid "while storing call arguments into local variables" msgstr "при сохранении аргументов вызова в локальных переменных" -#: pl_exec.c:592 pl_exec.c:1008 +#: pl_exec.c:593 pl_exec.c:1009 msgid "during function entry" msgstr "при входе в функцию" -#: pl_exec.c:617 +#: pl_exec.c:618 #, c-format msgid "control reached end of function without RETURN" msgstr "конец функции достигнут без RETURN" -#: pl_exec.c:624 +#: pl_exec.c:625 msgid "while casting return value to function's return type" msgstr "при приведении возвращаемого значения к типу результата функции" -#: pl_exec.c:637 pl_exec.c:3653 +#: pl_exec.c:638 pl_exec.c:3632 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" "функция, возвращающая множество, вызвана в контексте, где ему нет места" -#: pl_exec.c:763 pl_exec.c:1037 pl_exec.c:1198 +#: pl_exec.c:764 pl_exec.c:1038 pl_exec.c:1199 msgid "during function exit" msgstr "при выходе из функции" -#: pl_exec.c:818 pl_exec.c:882 pl_exec.c:3498 +#: pl_exec.c:819 pl_exec.c:883 pl_exec.c:3477 msgid "returned record type does not match expected record type" msgstr "возвращаемый тип записи не соответствует ожидаемому" -#: pl_exec.c:1033 pl_exec.c:1194 +#: pl_exec.c:1034 pl_exec.c:1195 #, c-format msgid "control reached end of trigger procedure without RETURN" msgstr "конец триггерной процедуры достигнут без RETURN" -#: pl_exec.c:1042 +#: pl_exec.c:1043 #, c-format msgid "trigger procedure cannot return a set" msgstr "триггерная процедура не может возвращать множество" -#: pl_exec.c:1081 pl_exec.c:1109 +#: pl_exec.c:1082 pl_exec.c:1110 msgid "" "returned row structure does not match the structure of the triggering table" msgstr "" @@ -172,7 +172,7 @@ #. translator: last %s is a phrase such as "during statement block #. local variable initialization" #. -#: pl_exec.c:1244 +#: pl_exec.c:1245 #, c-format msgid "PL/pgSQL function %s line %d %s" msgstr "функция PL/pgSQL %s, строка %d, %s" @@ -180,39 +180,39 @@ #. translator: last %s is a phrase such as "while storing call #. arguments into local variables" #. -#: pl_exec.c:1255 +#: pl_exec.c:1256 #, c-format msgid "PL/pgSQL function %s %s" msgstr "функция PL/pgSQL %s, %s" #. translator: last %s is a plpgsql statement type name -#: pl_exec.c:1263 +#: pl_exec.c:1264 #, c-format msgid "PL/pgSQL function %s line %d at %s" msgstr "функция PL/pgSQL %s, строка %d, оператор %s" -#: pl_exec.c:1269 +#: pl_exec.c:1270 #, c-format msgid "PL/pgSQL function %s" msgstr "функция PL/pgSQL %s" -#: pl_exec.c:1607 +#: pl_exec.c:1608 msgid "during statement block local variable initialization" msgstr "при инициализации локальной переменной в блоке операторов" -#: pl_exec.c:1705 +#: pl_exec.c:1706 msgid "during statement block entry" msgstr "при входе в блок операторов" -#: pl_exec.c:1737 +#: pl_exec.c:1738 msgid "during statement block exit" msgstr "при выходе из блока операторов" -#: pl_exec.c:1775 +#: pl_exec.c:1776 msgid "during exception cleanup" msgstr "при очистке после исключения" -#: pl_exec.c:2304 +#: pl_exec.c:2303 #, c-format msgid "" "procedure parameter \"%s\" is an output parameter but corresponding argument " @@ -221,7 +221,7 @@ "параметр процедуры \"%s\" является выходным, но соответствующий аргумент не " "допускает запись" -#: pl_exec.c:2309 +#: pl_exec.c:2308 #, c-format msgid "" "procedure parameter %d is an output parameter but corresponding argument is " @@ -230,199 +230,199 @@ "параметр процедуры %d является выходным, но соответствующий аргумент не " "допускает запись" -#: pl_exec.c:2437 +#: pl_exec.c:2416 #, c-format msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler" msgstr "" "GET STACKED DIAGNOSTICS нельзя использовать вне блока обработчика исключения" -#: pl_exec.c:2637 +#: pl_exec.c:2616 #, c-format msgid "case not found" msgstr "неправильный CASE" -#: pl_exec.c:2638 +#: pl_exec.c:2617 #, c-format msgid "CASE statement is missing ELSE part." msgstr "В операторе CASE не хватает части ELSE." -#: pl_exec.c:2731 +#: pl_exec.c:2710 #, c-format msgid "lower bound of FOR loop cannot be null" msgstr "нижняя граница цикла FOR не может быть равна NULL" -#: pl_exec.c:2747 +#: pl_exec.c:2726 #, c-format msgid "upper bound of FOR loop cannot be null" msgstr "верхняя граница цикла FOR не может быть равна NULL" -#: pl_exec.c:2765 +#: pl_exec.c:2744 #, c-format msgid "BY value of FOR loop cannot be null" msgstr "значение BY в цикле FOR не может быть равно NULL" -#: pl_exec.c:2771 +#: pl_exec.c:2750 #, c-format msgid "BY value of FOR loop must be greater than zero" msgstr "значение BY в цикле FOR должно быть больше нуля" -#: pl_exec.c:2905 pl_exec.c:4632 +#: pl_exec.c:2884 pl_exec.c:4630 #, c-format msgid "cursor \"%s\" already in use" msgstr "курсор \"%s\" уже используется" -#: pl_exec.c:2928 pl_exec.c:4697 +#: pl_exec.c:2907 pl_exec.c:4695 #, c-format msgid "arguments given for cursor without arguments" msgstr "курсору без аргументов были переданы аргументы" -#: pl_exec.c:2947 pl_exec.c:4716 +#: pl_exec.c:2926 pl_exec.c:4714 #, c-format msgid "arguments required for cursor" msgstr "курсору требуются аргументы" -#: pl_exec.c:3034 +#: pl_exec.c:3013 #, c-format msgid "FOREACH expression must not be null" msgstr "выражение FOREACH не может быть равно NULL" -#: pl_exec.c:3049 +#: pl_exec.c:3028 #, c-format msgid "FOREACH expression must yield an array, not type %s" msgstr "выражение в FOREACH должно быть массивом, но не типом %s" -#: pl_exec.c:3066 +#: pl_exec.c:3045 #, c-format msgid "slice dimension (%d) is out of the valid range 0..%d" msgstr "размерность среза (%d) вне допустимого диапазона 0..%d" -#: pl_exec.c:3093 +#: pl_exec.c:3072 #, c-format msgid "FOREACH ... SLICE loop variable must be of an array type" msgstr "переменная цикла FOREACH ... SLICE должна быть массивом" -#: pl_exec.c:3097 +#: pl_exec.c:3076 #, c-format msgid "FOREACH loop variable must not be of an array type" msgstr "переменная цикла FOREACH не должна быть массивом" -#: pl_exec.c:3259 pl_exec.c:3316 pl_exec.c:3491 +#: pl_exec.c:3238 pl_exec.c:3295 pl_exec.c:3470 #, c-format msgid "" "cannot return non-composite value from function returning composite type" msgstr "" "функция, возвращающая составной тип, не может вернуть несоставное значение" -#: pl_exec.c:3355 pl_gram.y:3307 +#: pl_exec.c:3334 pl_gram.y:3307 #, c-format msgid "cannot use RETURN NEXT in a non-SETOF function" msgstr "" "RETURN NEXT можно использовать только в функциях, возвращающих множества" -#: pl_exec.c:3396 pl_exec.c:3528 +#: pl_exec.c:3375 pl_exec.c:3507 #, c-format msgid "wrong result type supplied in RETURN NEXT" msgstr "в RETURN NEXT передан неправильный тип результата" -#: pl_exec.c:3434 pl_exec.c:3455 +#: pl_exec.c:3413 pl_exec.c:3434 #, c-format msgid "wrong record type supplied in RETURN NEXT" msgstr "в RETURN NEXT передан неправильный тип записи" -#: pl_exec.c:3547 +#: pl_exec.c:3526 #, c-format msgid "RETURN NEXT must have a parameter" msgstr "у оператора RETURN NEXT должен быть параметр" -#: pl_exec.c:3573 pl_gram.y:3371 +#: pl_exec.c:3552 pl_gram.y:3371 #, c-format msgid "cannot use RETURN QUERY in a non-SETOF function" msgstr "" "RETURN QUERY можно использовать только в функциях, возвращающих множества" -#: pl_exec.c:3597 +#: pl_exec.c:3576 msgid "structure of query does not match function result type" msgstr "структура запроса не соответствует типу результата функции" -#: pl_exec.c:3681 pl_exec.c:3819 +#: pl_exec.c:3660 pl_exec.c:3798 #, c-format msgid "RAISE option already specified: %s" msgstr "этот параметр RAISE уже указан: %s" -#: pl_exec.c:3715 +#: pl_exec.c:3694 #, c-format msgid "RAISE without parameters cannot be used outside an exception handler" msgstr "" "RAISE без параметров нельзя использовать вне блока обработчика исключения" -#: pl_exec.c:3809 +#: pl_exec.c:3788 #, c-format msgid "RAISE statement option cannot be null" msgstr "параметром оператора RAISE не может быть NULL" -#: pl_exec.c:3879 +#: pl_exec.c:3858 #, c-format msgid "%s" msgstr "%s" -#: pl_exec.c:3934 +#: pl_exec.c:3913 #, c-format msgid "assertion failed" msgstr "нарушение истинности" -#: pl_exec.c:4281 pl_exec.c:4471 +#: pl_exec.c:4279 pl_exec.c:4469 #, c-format msgid "cannot COPY to/from client in PL/pgSQL" msgstr "в PL/pgSQL нельзя выполнить COPY с участием клиента" -#: pl_exec.c:4287 +#: pl_exec.c:4285 #, c-format msgid "unsupported transaction command in PL/pgSQL" msgstr "неподдерживаемая транзакционная команда в PL/pgSQL" -#: pl_exec.c:4310 pl_exec.c:4500 +#: pl_exec.c:4308 pl_exec.c:4498 #, c-format msgid "INTO used with a command that cannot return data" msgstr "INTO с командой не может возвращать данные" -#: pl_exec.c:4333 pl_exec.c:4523 +#: pl_exec.c:4331 pl_exec.c:4521 #, c-format msgid "query returned no rows" msgstr "запрос не вернул строк" -#: pl_exec.c:4355 pl_exec.c:4542 +#: pl_exec.c:4353 pl_exec.c:4540 #, c-format msgid "query returned more than one row" msgstr "запрос вернул несколько строк" -#: pl_exec.c:4357 +#: pl_exec.c:4355 #, c-format msgid "Make sure the query returns a single row, or use LIMIT 1." msgstr "" "Измените запрос, чтобы он выбирал одну строку, или используйте LIMIT 1." -#: pl_exec.c:4373 +#: pl_exec.c:4371 #, c-format msgid "query has no destination for result data" msgstr "в запросе нет назначения для данных результата" -#: pl_exec.c:4374 +#: pl_exec.c:4372 #, c-format msgid "If you want to discard the results of a SELECT, use PERFORM instead." msgstr "Если вам нужно отбросить результаты SELECT, используйте PERFORM." -#: pl_exec.c:4407 pl_exec.c:8729 +#: pl_exec.c:4405 pl_exec.c:8765 #, c-format msgid "query string argument of EXECUTE is null" msgstr "в качестве текста запроса в EXECUTE передан NULL" -#: pl_exec.c:4463 +#: pl_exec.c:4461 #, c-format msgid "EXECUTE of SELECT ... INTO is not implemented" msgstr "возможность выполнения SELECT ... INTO в EXECUTE не реализована" # skip-rule: space-before-ellipsis -#: pl_exec.c:4464 +#: pl_exec.c:4462 #, c-format msgid "" "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS " @@ -431,67 +431,67 @@ "Альтернативой может стать EXECUTE ... INTO или EXECUTE CREATE TABLE ... " "AS ..." -#: pl_exec.c:4477 +#: pl_exec.c:4475 #, c-format msgid "EXECUTE of transaction commands is not implemented" msgstr "EXECUTE с транзакционными командами не поддерживается" -#: pl_exec.c:4778 pl_exec.c:4866 +#: pl_exec.c:4776 pl_exec.c:4864 #, c-format msgid "cursor variable \"%s\" is null" msgstr "переменная курсора \"%s\" равна NULL" -#: pl_exec.c:4789 pl_exec.c:4877 +#: pl_exec.c:4787 pl_exec.c:4875 #, c-format msgid "cursor \"%s\" does not exist" msgstr "курсор \"%s\" не существует" -#: pl_exec.c:4802 +#: pl_exec.c:4800 #, c-format msgid "relative or absolute cursor position is null" msgstr "относительная или абсолютная позиция курсора равна NULL" -#: pl_exec.c:5068 pl_exec.c:5163 +#: pl_exec.c:5072 pl_exec.c:5167 #, c-format msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL" msgstr "значение NULL нельзя присвоить переменной \"%s\", объявленной NOT NULL" -#: pl_exec.c:5144 +#: pl_exec.c:5148 #, c-format msgid "cannot assign non-composite value to a row variable" msgstr "переменной типа кортеж можно присвоить только составное значение" -#: pl_exec.c:5176 +#: pl_exec.c:5180 #, c-format msgid "cannot assign non-composite value to a record variable" msgstr "переменной типа запись можно присвоить только составное значение" -#: pl_exec.c:5227 +#: pl_exec.c:5231 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "присвоить значение системному столбцу \"%s\" нельзя" -#: pl_exec.c:5291 +#: pl_exec.c:5295 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "число размерностей массива (%d) превышает предел (%d)" -#: pl_exec.c:5323 +#: pl_exec.c:5327 #, c-format msgid "subscripted object is not an array" msgstr "для объекта указан индекс, но этот объект - не массив" -#: pl_exec.c:5361 +#: pl_exec.c:5365 #, c-format msgid "array subscript in assignment must not be null" msgstr "индекс элемента массива в присваивании не может быть NULL" -#: pl_exec.c:5868 +#: pl_exec.c:5872 #, c-format msgid "query \"%s\" did not return data" msgstr "запрос \"%s\" не вернул данные" -#: pl_exec.c:5876 +#: pl_exec.c:5880 #, c-format msgid "query \"%s\" returned %d column" msgid_plural "query \"%s\" returned %d columns" @@ -499,17 +499,17 @@ msgstr[1] "запрос \"%s\" вернул %d столбца" msgstr[2] "запрос \"%s\" вернул %d столбцов" -#: pl_exec.c:5904 +#: pl_exec.c:5908 #, c-format msgid "query \"%s\" returned more than one row" msgstr "запрос \"%s\" вернул несколько строк" -#: pl_exec.c:5967 +#: pl_exec.c:5978 #, c-format msgid "query \"%s\" is not a SELECT" msgstr "запрос \"%s\" - не SELECT" -#: pl_exec.c:6763 pl_exec.c:6803 pl_exec.c:6843 +#: pl_exec.c:6794 pl_exec.c:6834 pl_exec.c:6874 #, c-format msgid "" "type of parameter %d (%s) does not match that when preparing the plan (%s)" @@ -517,29 +517,29 @@ "тип параметра %d (%s) не соответствует тому, с которым подготавливался план " "(%s)" -#: pl_exec.c:7254 pl_exec.c:7288 pl_exec.c:7362 pl_exec.c:7388 +#: pl_exec.c:7285 pl_exec.c:7319 pl_exec.c:7393 pl_exec.c:7419 #, c-format msgid "number of source and target fields in assignment does not match" msgstr "в левой и правой части присваивания разное количество полей" #. translator: %s represents a name of an extra check -#: pl_exec.c:7256 pl_exec.c:7290 pl_exec.c:7364 pl_exec.c:7390 +#: pl_exec.c:7287 pl_exec.c:7321 pl_exec.c:7395 pl_exec.c:7421 #, c-format msgid "%s check of %s is active." msgstr "Включена проверка %s (с %s)." -#: pl_exec.c:7260 pl_exec.c:7294 pl_exec.c:7368 pl_exec.c:7394 +#: pl_exec.c:7291 pl_exec.c:7325 pl_exec.c:7399 pl_exec.c:7425 #, c-format msgid "Make sure the query returns the exact list of columns." msgstr "" "Измените запрос, чтобы он возвращал в точности требуемый список столбцов." -#: pl_exec.c:7781 +#: pl_exec.c:7812 #, c-format msgid "record \"%s\" is not assigned yet" msgstr "записи \"%s\" не присвоено значение" -#: pl_exec.c:7782 +#: pl_exec.c:7813 #, c-format msgid "The tuple structure of a not-yet-assigned record is indeterminate." msgstr "" diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/po/sv.po postgresql-13-13.7/src/pl/plpgsql/src/po/sv.po --- postgresql-13-13.4/src/pl/plpgsql/src/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for plpgsql # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-06-21 02:08+0000\n" -"PO-Revision-Date: 2020-06-21 11:27+0200\n" +"POT-Creation-Date: 2022-02-18 04:23+0000\n" +"PO-Revision-Date: 2021-11-07 10:30+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -62,104 +62,104 @@ msgid "parameter name \"%s\" used more than once" msgstr "parameternamn \"%s\" angivet mer än en gång" -#: pl_comp.c:1132 +#: pl_comp.c:1134 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "kolumnreferens \"%s\" är tvetydig" -#: pl_comp.c:1134 +#: pl_comp.c:1136 #, c-format msgid "It could refer to either a PL/pgSQL variable or a table column." msgstr "Det kan referera till antingen en PL/pgSQL-variabel eller en tabellkolumn." -#: pl_comp.c:1317 pl_exec.c:5169 pl_exec.c:5534 pl_exec.c:5621 pl_exec.c:5712 -#: pl_exec.c:6700 +#: pl_comp.c:1319 pl_exec.c:5222 pl_exec.c:5587 pl_exec.c:5674 pl_exec.c:5765 +#: pl_exec.c:6780 #, c-format msgid "record \"%s\" has no field \"%s\"" msgstr "post \"%s\" saknar fält \"%s\"" -#: pl_comp.c:1793 +#: pl_comp.c:1795 #, c-format msgid "relation \"%s\" does not exist" msgstr "relationen \"%s\" existerar inte" -#: pl_comp.c:1891 +#: pl_comp.c:1893 #, c-format msgid "variable \"%s\" has pseudo-type %s" msgstr "variabel \"%s\" har pseudotyp %s" -#: pl_comp.c:2080 +#: pl_comp.c:2082 #, c-format msgid "type \"%s\" is only a shell" msgstr "typ \"%s\" är bara ett skal" -#: pl_comp.c:2162 pl_exec.c:7001 +#: pl_comp.c:2164 pl_exec.c:7081 #, c-format msgid "type %s is not composite" msgstr "typen %s är inte composite" -#: pl_comp.c:2210 pl_comp.c:2263 +#: pl_comp.c:2212 pl_comp.c:2265 #, c-format msgid "unrecognized exception condition \"%s\"" msgstr "okänt avbrottsvillkor \"%s\"" -#: pl_comp.c:2484 +#: pl_comp.c:2486 #, c-format msgid "could not determine actual argument type for polymorphic function \"%s\"" msgstr "kunde inte bestämma argumenttyp för polymorfisk funktion function \"%s\"" -#: pl_exec.c:498 pl_exec.c:935 pl_exec.c:1173 +#: pl_exec.c:499 pl_exec.c:936 pl_exec.c:1174 msgid "during initialization of execution state" msgstr "unde initiering av körtillstånd" -#: pl_exec.c:504 +#: pl_exec.c:505 msgid "while storing call arguments into local variables" msgstr "under sparande av anropsargument till lokala variabler" -#: pl_exec.c:592 pl_exec.c:1008 +#: pl_exec.c:593 pl_exec.c:1009 msgid "during function entry" msgstr "under funktionsingången" -#: pl_exec.c:617 +#: pl_exec.c:618 #, c-format msgid "control reached end of function without RETURN" msgstr "kontrollen nådde slutet av funktionen utan RETURN" -#: pl_exec.c:624 +#: pl_exec.c:625 msgid "while casting return value to function's return type" msgstr "under typomvandling av returvärde till funktionens returtyp" -#: pl_exec.c:637 pl_exec.c:3604 +#: pl_exec.c:638 pl_exec.c:3632 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "en funktion som returnerar en mängd anropades i kontext som inte godtar en mängd" -#: pl_exec.c:763 pl_exec.c:1037 pl_exec.c:1198 +#: pl_exec.c:764 pl_exec.c:1038 pl_exec.c:1199 msgid "during function exit" msgstr "under funktionsavslutning" -#: pl_exec.c:818 pl_exec.c:882 pl_exec.c:3449 +#: pl_exec.c:819 pl_exec.c:883 pl_exec.c:3477 msgid "returned record type does not match expected record type" msgstr "returnerad posttyp matchar inte förväntad posttyp" -#: pl_exec.c:1033 pl_exec.c:1194 +#: pl_exec.c:1034 pl_exec.c:1195 #, c-format msgid "control reached end of trigger procedure without RETURN" msgstr "kontroll nådde slutet på utlösarprocedur utan RETURN" -#: pl_exec.c:1042 +#: pl_exec.c:1043 #, c-format msgid "trigger procedure cannot return a set" msgstr "utlösarprocedur kan inte returnera en mängd" -#: pl_exec.c:1081 pl_exec.c:1109 +#: pl_exec.c:1082 pl_exec.c:1110 msgid "returned row structure does not match the structure of the triggering table" msgstr "returnerad radstruktur matchar inte strukturen på utlösande tabell" #. translator: last %s is a phrase such as "during statement block #. local variable initialization" #. -#: pl_exec.c:1244 +#: pl_exec.c:1245 #, c-format msgid "PL/pgSQL function %s line %d %s" msgstr "PL/pgSQL-funktion %s rad %d %s" @@ -167,341 +167,341 @@ #. translator: last %s is a phrase such as "while storing call #. arguments into local variables" #. -#: pl_exec.c:1255 +#: pl_exec.c:1256 #, c-format msgid "PL/pgSQL function %s %s" msgstr "PL/pgSQL-funktion %s %s" #. translator: last %s is a plpgsql statement type name -#: pl_exec.c:1263 +#: pl_exec.c:1264 #, c-format msgid "PL/pgSQL function %s line %d at %s" msgstr "PL/pgSQL-funktion %s rad %d vid %s" -#: pl_exec.c:1269 +#: pl_exec.c:1270 #, c-format msgid "PL/pgSQL function %s" msgstr "PL/pgSQL-funktion %s" -#: pl_exec.c:1607 +#: pl_exec.c:1608 msgid "during statement block local variable initialization" msgstr "under initiering av lokala variabler i satsblock" -#: pl_exec.c:1705 +#: pl_exec.c:1706 msgid "during statement block entry" msgstr "under ingång till satsblock" -#: pl_exec.c:1737 +#: pl_exec.c:1738 msgid "during statement block exit" msgstr "under satsblockavslutning" -#: pl_exec.c:1775 +#: pl_exec.c:1776 msgid "during exception cleanup" msgstr "under avbrottsuppstädning" -#: pl_exec.c:2271 +#: pl_exec.c:2303 #, c-format msgid "procedure parameter \"%s\" is an output parameter but corresponding argument is not writable" msgstr "procedurparameter \"%s\" är en utdataparameter men motsvarande argument är inte skrivbar" -#: pl_exec.c:2276 +#: pl_exec.c:2308 #, c-format msgid "procedure parameter %d is an output parameter but corresponding argument is not writable" msgstr "procedurparameter %d är en utdataparameter men motsvarande argument är inte skrivbar" -#: pl_exec.c:2388 +#: pl_exec.c:2416 #, c-format msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler" msgstr "GET STACKED DIAGNOSTICS kan inte användas utanför en avbrottshanterare" -#: pl_exec.c:2588 +#: pl_exec.c:2616 #, c-format msgid "case not found" msgstr "hittade inte alternativ" -#: pl_exec.c:2589 +#: pl_exec.c:2617 #, c-format msgid "CASE statement is missing ELSE part." msgstr "CASE-sats saknar ELSE-del." -#: pl_exec.c:2682 +#: pl_exec.c:2710 #, c-format msgid "lower bound of FOR loop cannot be null" msgstr "lägre gräns i FOR-loop kan inte vara null" -#: pl_exec.c:2698 +#: pl_exec.c:2726 #, c-format msgid "upper bound of FOR loop cannot be null" msgstr "övre gräns i FOR-loop kan inte vara null" -#: pl_exec.c:2716 +#: pl_exec.c:2744 #, c-format msgid "BY value of FOR loop cannot be null" msgstr "BY-värde i FOR-loop kan inte vara null" -#: pl_exec.c:2722 +#: pl_exec.c:2750 #, c-format msgid "BY value of FOR loop must be greater than zero" msgstr "BY-värde i FOR-loop måste vara större än noll" -#: pl_exec.c:2856 pl_exec.c:4583 +#: pl_exec.c:2884 pl_exec.c:4630 #, c-format msgid "cursor \"%s\" already in use" msgstr "markören \"%s\" används redan" -#: pl_exec.c:2879 pl_exec.c:4648 +#: pl_exec.c:2907 pl_exec.c:4695 #, c-format msgid "arguments given for cursor without arguments" msgstr "argument angivna till markör utan argumnet" -#: pl_exec.c:2898 pl_exec.c:4667 +#: pl_exec.c:2926 pl_exec.c:4714 #, c-format msgid "arguments required for cursor" msgstr "argument krävs för markör" -#: pl_exec.c:2985 +#: pl_exec.c:3013 #, c-format msgid "FOREACH expression must not be null" msgstr "FOREACH-uttryck får inte vara null" -#: pl_exec.c:3000 +#: pl_exec.c:3028 #, c-format msgid "FOREACH expression must yield an array, not type %s" msgstr "FOREACH-uttryck måste ge en array, inte typ %s" -#: pl_exec.c:3017 +#: pl_exec.c:3045 #, c-format msgid "slice dimension (%d) is out of the valid range 0..%d" msgstr "slice-storlek (%d) är utanför giltigt intervall 0..%d" -#: pl_exec.c:3044 +#: pl_exec.c:3072 #, c-format msgid "FOREACH ... SLICE loop variable must be of an array type" msgstr "FOREACH ... SLICE-loop-variabel måste ha typen array" -#: pl_exec.c:3048 +#: pl_exec.c:3076 #, c-format msgid "FOREACH loop variable must not be of an array type" msgstr "FOREACH-loop-variable får inte ha typen array" -#: pl_exec.c:3210 pl_exec.c:3267 pl_exec.c:3442 +#: pl_exec.c:3238 pl_exec.c:3295 pl_exec.c:3470 #, c-format msgid "cannot return non-composite value from function returning composite type" msgstr "kan inte returnera icke-composit-värde från funktion med returtyp composit" -#: pl_exec.c:3306 pl_gram.y:3309 +#: pl_exec.c:3334 pl_gram.y:3307 #, c-format msgid "cannot use RETURN NEXT in a non-SETOF function" msgstr "kan inte använda RETURN NEXT i en icke-SETOF-funktion" -#: pl_exec.c:3347 pl_exec.c:3479 +#: pl_exec.c:3375 pl_exec.c:3507 #, c-format msgid "wrong result type supplied in RETURN NEXT" msgstr "fel resultattyp given i RETURN NEXT" -#: pl_exec.c:3385 pl_exec.c:3406 +#: pl_exec.c:3413 pl_exec.c:3434 #, c-format msgid "wrong record type supplied in RETURN NEXT" msgstr "fel posttyp given i RETURN NEXT" -#: pl_exec.c:3498 +#: pl_exec.c:3526 #, c-format msgid "RETURN NEXT must have a parameter" msgstr "RETURN NEXT måste ha en parameter" -#: pl_exec.c:3524 pl_gram.y:3373 +#: pl_exec.c:3552 pl_gram.y:3371 #, c-format msgid "cannot use RETURN QUERY in a non-SETOF function" msgstr "kan inte använda RETURN QUERY i en icke-SETOF-funktion" -#: pl_exec.c:3548 +#: pl_exec.c:3576 msgid "structure of query does not match function result type" msgstr "strukturen på frågan matchar inte funktionens resultattyp" -#: pl_exec.c:3632 pl_exec.c:3770 +#: pl_exec.c:3660 pl_exec.c:3798 #, c-format msgid "RAISE option already specified: %s" msgstr "RAISE-flagga redan angiven: %s" -#: pl_exec.c:3666 +#: pl_exec.c:3694 #, c-format msgid "RAISE without parameters cannot be used outside an exception handler" msgstr "RAISE utan parametrar kan inte användas utanför en avbrottshanterare" -#: pl_exec.c:3760 +#: pl_exec.c:3788 #, c-format msgid "RAISE statement option cannot be null" msgstr "RAISE-satsens flagga får inte vare null" -#: pl_exec.c:3830 +#: pl_exec.c:3858 #, c-format msgid "%s" msgstr "%s" -#: pl_exec.c:3885 +#: pl_exec.c:3913 #, c-format msgid "assertion failed" msgstr "assert misslyckades" -#: pl_exec.c:4232 pl_exec.c:4422 +#: pl_exec.c:4279 pl_exec.c:4469 #, c-format msgid "cannot COPY to/from client in PL/pgSQL" msgstr "kan inte COPY till/från klient i PL/pgSQL" -#: pl_exec.c:4238 +#: pl_exec.c:4285 #, c-format msgid "unsupported transaction command in PL/pgSQL" msgstr "transaktionskommando saknar stöd i PL/pgSQL" -#: pl_exec.c:4261 pl_exec.c:4451 +#: pl_exec.c:4308 pl_exec.c:4498 #, c-format msgid "INTO used with a command that cannot return data" msgstr "INTO använd med ett kommando som inte returnerar data" -#: pl_exec.c:4284 pl_exec.c:4474 +#: pl_exec.c:4331 pl_exec.c:4521 #, c-format msgid "query returned no rows" msgstr "frågan returnerade inga rader" -#: pl_exec.c:4306 pl_exec.c:4493 +#: pl_exec.c:4353 pl_exec.c:4540 #, c-format msgid "query returned more than one row" msgstr "frågan returnerade mer än en rad" -#: pl_exec.c:4308 +#: pl_exec.c:4355 #, c-format msgid "Make sure the query returns a single row, or use LIMIT 1." msgstr "Se till att frågan returerar exakt en rad eller använd LIMIT 1." -#: pl_exec.c:4324 +#: pl_exec.c:4371 #, c-format msgid "query has no destination for result data" msgstr "frågan har ingen destination för resultatdatan" -#: pl_exec.c:4325 +#: pl_exec.c:4372 #, c-format msgid "If you want to discard the results of a SELECT, use PERFORM instead." msgstr "Om du vill slänga resultatet av en SELECT, använd PERFORM istället." -#: pl_exec.c:4358 pl_exec.c:8680 +#: pl_exec.c:4405 pl_exec.c:8765 #, c-format msgid "query string argument of EXECUTE is null" msgstr "frågesträngargumentet till EXECUTE är null" -#: pl_exec.c:4414 +#: pl_exec.c:4461 #, c-format msgid "EXECUTE of SELECT ... INTO is not implemented" msgstr "EXECUTE för SELECT ... INTO är inte implementerad" -#: pl_exec.c:4415 +#: pl_exec.c:4462 #, c-format msgid "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS instead." msgstr "Du vill nog använda EXECUTE ... INTO eller EXECUTE CREATE TABLE ... AS istället." -#: pl_exec.c:4428 +#: pl_exec.c:4475 #, c-format msgid "EXECUTE of transaction commands is not implemented" msgstr "EXECUTE på transaktionskommanon är inte implementerat" -#: pl_exec.c:4729 pl_exec.c:4817 +#: pl_exec.c:4776 pl_exec.c:4864 #, c-format msgid "cursor variable \"%s\" is null" msgstr "markörvariabel \"%s\" är null" -#: pl_exec.c:4740 pl_exec.c:4828 +#: pl_exec.c:4787 pl_exec.c:4875 #, c-format msgid "cursor \"%s\" does not exist" msgstr "markör \"%s\" existerar inte" -#: pl_exec.c:4753 +#: pl_exec.c:4800 #, c-format msgid "relative or absolute cursor position is null" msgstr "relativ eller absolut markörposition är null" -#: pl_exec.c:5019 pl_exec.c:5114 +#: pl_exec.c:5072 pl_exec.c:5167 #, c-format msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL" msgstr "null-value kan inte tilldelas till variabel \"%s\" som deklarerats NOT NULL" -#: pl_exec.c:5095 +#: pl_exec.c:5148 #, c-format msgid "cannot assign non-composite value to a row variable" msgstr "kan inte tilldela icke-composite-värde till radvariabel" -#: pl_exec.c:5127 +#: pl_exec.c:5180 #, c-format msgid "cannot assign non-composite value to a record variable" msgstr "kan inte tilldela icke-composite-värde till en post-variabel" -#: pl_exec.c:5178 +#: pl_exec.c:5231 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "kan inte skriva till systemkolumn \"%s\"" -#: pl_exec.c:5242 +#: pl_exec.c:5295 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "antalet array-dimensioner (%d) överskrider det maximalt tillåtna (%d)" -#: pl_exec.c:5274 +#: pl_exec.c:5327 #, c-format msgid "subscripted object is not an array" msgstr "arrayindexobjekt är inte en array" -#: pl_exec.c:5312 +#: pl_exec.c:5365 #, c-format msgid "array subscript in assignment must not be null" msgstr "arrayindex i tilldelning kan inte vara null" -#: pl_exec.c:5819 +#: pl_exec.c:5872 #, c-format msgid "query \"%s\" did not return data" msgstr "frågan \"%s\" returnerade ingen data" -#: pl_exec.c:5827 +#: pl_exec.c:5880 #, c-format msgid "query \"%s\" returned %d column" msgid_plural "query \"%s\" returned %d columns" msgstr[0] "frågan \"%s\" returnerade %d kolumn" msgstr[1] "frågan \"%s\" returnerade %d kolumner" -#: pl_exec.c:5855 +#: pl_exec.c:5908 #, c-format msgid "query \"%s\" returned more than one row" msgstr "frågan \"%s\" returnerade mer än en rad" -#: pl_exec.c:5918 +#: pl_exec.c:5978 #, c-format msgid "query \"%s\" is not a SELECT" msgstr "frågan \"%s\" är inte en SELECT" -#: pl_exec.c:6714 pl_exec.c:6754 pl_exec.c:6794 +#: pl_exec.c:6794 pl_exec.c:6834 pl_exec.c:6874 #, c-format msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "typen av parameter %d (%s) matchar inte det som var vid preparerande av plan (%s)" -#: pl_exec.c:7205 pl_exec.c:7239 pl_exec.c:7313 pl_exec.c:7339 +#: pl_exec.c:7285 pl_exec.c:7319 pl_exec.c:7393 pl_exec.c:7419 #, c-format msgid "number of source and target fields in assignment does not match" msgstr "antal käll- och mål-fält i tilldelningen matchar inte" #. translator: %s represents a name of an extra check -#: pl_exec.c:7207 pl_exec.c:7241 pl_exec.c:7315 pl_exec.c:7341 +#: pl_exec.c:7287 pl_exec.c:7321 pl_exec.c:7395 pl_exec.c:7421 #, c-format msgid "%s check of %s is active." msgstr "%s kontroll av %s är aktiv." -#: pl_exec.c:7211 pl_exec.c:7245 pl_exec.c:7319 pl_exec.c:7345 +#: pl_exec.c:7291 pl_exec.c:7325 pl_exec.c:7399 pl_exec.c:7425 #, c-format msgid "Make sure the query returns the exact list of columns." msgstr "Se till att frågan returerar exakt rätt lista med kolumner." -#: pl_exec.c:7732 +#: pl_exec.c:7812 #, c-format msgid "record \"%s\" is not assigned yet" msgstr "posten \"%s\" är inte tilldelad än" -#: pl_exec.c:7733 +#: pl_exec.c:7813 #, c-format msgid "The tuple structure of a not-yet-assigned record is indeterminate." msgstr "Tuple-strukturen av en ej-ännu-tilldelad post är obestämd." @@ -581,237 +581,237 @@ msgid "unrecognized GET DIAGNOSTICS item" msgstr "okänd GET DIAGNOSTICS-del" -#: pl_gram.y:1116 pl_gram.y:3553 +#: pl_gram.y:1116 pl_gram.y:3551 #, c-format msgid "\"%s\" is not a scalar variable" msgstr "\"%s\" är inte ett skalärt värde" -#: pl_gram.y:1370 pl_gram.y:1567 +#: pl_gram.y:1368 pl_gram.y:1565 #, c-format msgid "loop variable of loop over rows must be a record variable or list of scalar variables" msgstr "loop-variabeln för loop över rader måste vara en postvariabel eller en lista av skalärvariabler" -#: pl_gram.y:1405 +#: pl_gram.y:1403 #, c-format msgid "cursor FOR loop must have only one target variable" msgstr "markör-FOR-loop måste ha exakt en målvariabel" -#: pl_gram.y:1412 +#: pl_gram.y:1410 #, c-format msgid "cursor FOR loop must use a bound cursor variable" msgstr "markör-FOR-loop måste använda en bunden markörvariabel" -#: pl_gram.y:1499 +#: pl_gram.y:1497 #, c-format msgid "integer FOR loop must have only one target variable" msgstr "heltals-FOR-loop måste ha exakt en målvariabel" -#: pl_gram.y:1537 +#: pl_gram.y:1535 #, c-format msgid "cannot specify REVERSE in query FOR loop" msgstr "kan inte ange REVERSE i fråge-FOR-loop" -#: pl_gram.y:1670 +#: pl_gram.y:1668 #, c-format msgid "loop variable of FOREACH must be a known variable or list of variables" msgstr "loop-variabel för FOREACH måste vara en känd variabel eller lista av variabler" -#: pl_gram.y:1712 +#: pl_gram.y:1710 #, c-format msgid "there is no label \"%s\" attached to any block or loop enclosing this statement" msgstr "det finns ingen etikett \"%s\" kopplad till något block eller loop-omslutning i denna sats" -#: pl_gram.y:1720 +#: pl_gram.y:1718 #, c-format msgid "block label \"%s\" cannot be used in CONTINUE" msgstr "blocketikett \"%s\" kan inte användas i CONTINUE" -#: pl_gram.y:1735 +#: pl_gram.y:1733 #, c-format msgid "EXIT cannot be used outside a loop, unless it has a label" msgstr "EXIT kan inte användas utanför en loop, om den inte har en etikett" -#: pl_gram.y:1736 +#: pl_gram.y:1734 #, c-format msgid "CONTINUE cannot be used outside a loop" msgstr "CONTINUE kan inte användas utanför en loop" -#: pl_gram.y:1760 pl_gram.y:1798 pl_gram.y:1846 pl_gram.y:2998 pl_gram.y:3083 -#: pl_gram.y:3194 pl_gram.y:3957 +#: pl_gram.y:1758 pl_gram.y:1796 pl_gram.y:1844 pl_gram.y:2996 pl_gram.y:3081 +#: pl_gram.y:3192 pl_gram.y:3955 msgid "unexpected end of function definition" msgstr "oväntat slut på funktionsdefinitionen" -#: pl_gram.y:1866 pl_gram.y:1890 pl_gram.y:1906 pl_gram.y:1912 pl_gram.y:2031 -#: pl_gram.y:2039 pl_gram.y:2053 pl_gram.y:2148 pl_gram.y:2399 pl_gram.y:2493 -#: pl_gram.y:2652 pl_gram.y:3799 pl_gram.y:3860 pl_gram.y:3938 +#: pl_gram.y:1864 pl_gram.y:1888 pl_gram.y:1904 pl_gram.y:1910 pl_gram.y:2029 +#: pl_gram.y:2037 pl_gram.y:2051 pl_gram.y:2146 pl_gram.y:2397 pl_gram.y:2491 +#: pl_gram.y:2650 pl_gram.y:3797 pl_gram.y:3858 pl_gram.y:3936 msgid "syntax error" msgstr "syntaxfel" -#: pl_gram.y:1894 pl_gram.y:1896 pl_gram.y:2403 pl_gram.y:2405 +#: pl_gram.y:1892 pl_gram.y:1894 pl_gram.y:2401 pl_gram.y:2403 msgid "invalid SQLSTATE code" msgstr "ogiltig SQLSTATE-kod" -#: pl_gram.y:2096 +#: pl_gram.y:2094 msgid "syntax error, expected \"FOR\"" msgstr "syntaxfel, förväntade \"FOR\"" -#: pl_gram.y:2157 +#: pl_gram.y:2155 #, c-format msgid "FETCH statement cannot return multiple rows" msgstr "FETCH-sats kan inte returnera multipla rader" -#: pl_gram.y:2281 +#: pl_gram.y:2279 #, c-format msgid "cursor variable must be a simple variable" msgstr "markörvariabel måste vara en enkel variabel" -#: pl_gram.y:2287 +#: pl_gram.y:2285 #, c-format msgid "variable \"%s\" must be of type cursor or refcursor" msgstr "variabel \"%s\" måste ha typen cursor eller refcursor" -#: pl_gram.y:2623 pl_gram.y:2634 +#: pl_gram.y:2621 pl_gram.y:2632 #, c-format msgid "\"%s\" is not a known variable" msgstr "\"%s\" är inte en känd variabel" -#: pl_gram.y:2738 pl_gram.y:2748 pl_gram.y:2903 +#: pl_gram.y:2736 pl_gram.y:2746 pl_gram.y:2901 msgid "mismatched parentheses" msgstr "missmatchade parenteser" -#: pl_gram.y:2752 +#: pl_gram.y:2750 #, c-format msgid "missing \"%s\" at end of SQL expression" msgstr "saknar \"%s\" vid slutet av SQL-uttryck" -#: pl_gram.y:2758 +#: pl_gram.y:2756 #, c-format msgid "missing \"%s\" at end of SQL statement" msgstr "saknar \"%s\" vid slutet av SQL-sats" -#: pl_gram.y:2775 +#: pl_gram.y:2773 msgid "missing expression" msgstr "saknar uttryck" -#: pl_gram.y:2777 +#: pl_gram.y:2775 msgid "missing SQL statement" msgstr "saknars SQL-sats" -#: pl_gram.y:2905 +#: pl_gram.y:2903 msgid "incomplete data type declaration" msgstr "inkomplett datatypdeklaration" -#: pl_gram.y:2928 +#: pl_gram.y:2926 msgid "missing data type declaration" msgstr "saknar datatypdeklaration" -#: pl_gram.y:3006 +#: pl_gram.y:3004 msgid "INTO specified more than once" msgstr "INTO angiven mer än en gång" -#: pl_gram.y:3175 +#: pl_gram.y:3173 msgid "expected FROM or IN" msgstr "förväntade FROM eller IN" -#: pl_gram.y:3236 +#: pl_gram.y:3234 #, c-format msgid "RETURN cannot have a parameter in function returning set" msgstr "RETURN kan inte ha en parameter i funktion som returnerar en mängd" -#: pl_gram.y:3237 +#: pl_gram.y:3235 #, c-format msgid "Use RETURN NEXT or RETURN QUERY." msgstr "Använd RETURN NEXT eller RETURN QUERY." -#: pl_gram.y:3247 +#: pl_gram.y:3245 #, c-format msgid "RETURN cannot have a parameter in a procedure" msgstr "RETURN kan inte ha en parameter i en procedur" -#: pl_gram.y:3252 +#: pl_gram.y:3250 #, c-format msgid "RETURN cannot have a parameter in function returning void" msgstr "RETURN kan inte ha en parameter i funktion som returnerar void" -#: pl_gram.y:3261 +#: pl_gram.y:3259 #, c-format msgid "RETURN cannot have a parameter in function with OUT parameters" msgstr "RETURN kan inte ha en parameter i en funktion med OUT-parameterar" -#: pl_gram.y:3324 +#: pl_gram.y:3322 #, c-format msgid "RETURN NEXT cannot have a parameter in function with OUT parameters" msgstr "RETURN NEXT kan inte ha en parameter i funktion med OUT-parametrar" -#: pl_gram.y:3432 +#: pl_gram.y:3430 #, c-format msgid "variable \"%s\" is declared CONSTANT" msgstr "variabel \"%s\" är deklarerad CONSTANT" -#: pl_gram.y:3495 +#: pl_gram.y:3493 #, c-format msgid "record variable cannot be part of multiple-item INTO list" msgstr "postvariabel kan inte vara del av en multipel-INTO-lista" -#: pl_gram.y:3541 +#: pl_gram.y:3539 #, c-format msgid "too many INTO variables specified" msgstr "för många INTO-variabler angivna" -#: pl_gram.y:3752 +#: pl_gram.y:3750 #, c-format msgid "end label \"%s\" specified for unlabeled block" msgstr "slutetikett \"%s\" angiven för block utan etikett" -#: pl_gram.y:3759 +#: pl_gram.y:3757 #, c-format msgid "end label \"%s\" differs from block's label \"%s\"" msgstr "slutetikett \"%s\" stämmer inte med blockets etikett \"%s\"" -#: pl_gram.y:3794 +#: pl_gram.y:3792 #, c-format msgid "cursor \"%s\" has no arguments" msgstr "markör \"%s\" har inga argument" -#: pl_gram.y:3808 +#: pl_gram.y:3806 #, c-format msgid "cursor \"%s\" has arguments" msgstr "markör \"%s\" har argument" -#: pl_gram.y:3850 +#: pl_gram.y:3848 #, c-format msgid "cursor \"%s\" has no argument named \"%s\"" msgstr "markör \"%s\" har inga argument med namn \"%s\"" -#: pl_gram.y:3870 +#: pl_gram.y:3868 #, c-format msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once" msgstr "värdet för parameter \"%s\" i markör \"%s\" är angivet mer än en gång" -#: pl_gram.y:3895 +#: pl_gram.y:3893 #, c-format msgid "not enough arguments for cursor \"%s\"" msgstr "ej tillräckligt med argument för markör \"%s\"" -#: pl_gram.y:3902 +#: pl_gram.y:3900 #, c-format msgid "too many arguments for cursor \"%s\"" msgstr "fär många argument för markör \"%s\"" -#: pl_gram.y:3989 +#: pl_gram.y:3987 msgid "unrecognized RAISE statement option" msgstr "okänd RAISE-sats-flagga" -#: pl_gram.y:3993 +#: pl_gram.y:3991 msgid "syntax error, expected \"=\"" msgstr "syntaxfel, förväntade \"=\"" -#: pl_gram.y:4034 +#: pl_gram.y:4032 #, c-format msgid "too many parameters specified for RAISE" msgstr "för många parametrar angivna för RAISE" -#: pl_gram.y:4038 +#: pl_gram.y:4036 #, c-format msgid "too few parameters specified for RAISE" msgstr "för få parametrar angivna för RAISE" diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/sql/plpgsql_control.sql postgresql-13-13.7/src/pl/plpgsql/src/sql/plpgsql_control.sql --- postgresql-13-13.4/src/pl/plpgsql/src/sql/plpgsql_control.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/sql/plpgsql_control.sql 2022-05-09 21:16:30.000000000 +0000 @@ -311,6 +311,18 @@ raise notice 'should get here'; end$$; +-- check exit out of outermost block +do $$ +<> +begin + <> + begin + exit outerblock; + raise notice 'should not get here'; + end; + raise notice 'should not get here, either'; +end$$; + -- unlabeled exit does match a while loop do $$ begin diff -Nru postgresql-13-13.4/src/pl/plpgsql/src/sql/plpgsql_transaction.sql postgresql-13-13.7/src/pl/plpgsql/src/sql/plpgsql_transaction.sql --- postgresql-13-13.4/src/pl/plpgsql/src/sql/plpgsql_transaction.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpgsql/src/sql/plpgsql_transaction.sql 2022-05-09 21:16:30.000000000 +0000 @@ -354,6 +354,27 @@ SELECT * FROM test1; +-- test commit/rollback inside exception handler, too +TRUNCATE test1; + +DO LANGUAGE plpgsql $$ +BEGIN + FOR i IN 1..10 LOOP + BEGIN + INSERT INTO test1 VALUES (i, 'good'); + INSERT INTO test1 VALUES (i/0, 'bad'); + EXCEPTION + WHEN division_by_zero THEN + INSERT INTO test1 VALUES (i, 'exception'); + IF (i % 3) > 0 THEN COMMIT; ELSE ROLLBACK; END IF; + END; + END LOOP; +END; +$$; + +SELECT * FROM test1; + + -- detoast result of simple expression after commit CREATE TEMP TABLE test4(f1 text); ALTER TABLE test4 ALTER COLUMN f1 SET STORAGE EXTERNAL; -- disable compression @@ -507,6 +528,29 @@ SELECT * FROM test2; +-- another snapshot handling case: argument expressions of a CALL need +-- to be evaluated with an up-to-date snapshot +CREATE FUNCTION report_count() RETURNS int +STABLE LANGUAGE sql +AS $$ SELECT COUNT(*) FROM test2 $$; + +CREATE PROCEDURE transaction_test9b(cnt int) +LANGUAGE plpgsql +AS $$ +BEGIN + RAISE NOTICE 'count = %', cnt; +END +$$; + +DO $$ +BEGIN + CALL transaction_test9b(report_count()); + INSERT INTO test2 VALUES(43); + CALL transaction_test9b(report_count()); +END +$$; + + -- Test transaction in procedure with output parameters. This uses a -- different portal strategy and different code paths in pquery.c. CREATE PROCEDURE transaction_test10a(INOUT x int) diff -Nru postgresql-13-13.4/src/pl/plpython/Makefile postgresql-13-13.7/src/pl/plpython/Makefile --- postgresql-13-13.4/src/pl/plpython/Makefile 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpython/Makefile 2022-05-09 21:16:30.000000000 +0000 @@ -69,7 +69,7 @@ dlltool --dllname python${pytverstr}.dll --def python${pytverstr}.def --output-lib libpython${pytverstr}.a python${pytverstr}.def: - pexports $(PYTHONDLL) > $@ + gendef - $(PYTHONDLL) > $@ endif # win32 diff -Nru postgresql-13-13.4/src/pl/plpython/plpython.h postgresql-13-13.7/src/pl/plpython/plpython.h --- postgresql-13-13.4/src/pl/plpython/plpython.h 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpython/plpython.h 2022-05-09 21:16:30.000000000 +0000 @@ -94,9 +94,6 @@ #undef TEXTDOMAIN #define TEXTDOMAIN PG_TEXTDOMAIN("plpython") -#include -#include - /* put back our *printf macros ... this must match src/include/port.h */ #ifdef vsnprintf #undef vsnprintf diff -Nru postgresql-13-13.4/src/pl/plpython/po/fr.po postgresql-13-13.7/src/pl/plpython/po/fr.po --- postgresql-13-13.4/src/pl/plpython/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpython/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -455,7 +455,7 @@ #: plpy_typeio.c:1348 #, c-format msgid "Missing left parenthesis." -msgstr "Parenthèse gauche manquante" +msgstr "Parenthèse gauche manquante." #: plpy_typeio.c:1349 plpy_typeio.c:1550 #, c-format diff -Nru postgresql-13-13.4/src/pl/plpython/po/sv.po postgresql-13-13.7/src/pl/plpython/po/sv.po --- postgresql-13-13.4/src/pl/plpython/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/plpython/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for plpython # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:08+0000\n" -"PO-Revision-Date: 2019-04-29 14:54+0200\n" +"POT-Creation-Date: 2022-02-18 04:22+0000\n" +"PO-Revision-Date: 2021-11-07 10:38+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,49 +17,49 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: plpy_cursorobject.c:74 +#: plpy_cursorobject.c:72 #, c-format msgid "plpy.cursor expected a query or a plan" msgstr "plpy.cursor förväntade sig en fråga eller en plan" -#: plpy_cursorobject.c:157 +#: plpy_cursorobject.c:155 #, c-format msgid "plpy.cursor takes a sequence as its second argument" msgstr "plpy.cursor tar en sekvens som sitt andra argument" -#: plpy_cursorobject.c:173 plpy_spi.c:207 +#: plpy_cursorobject.c:171 plpy_spi.c:207 #, c-format msgid "could not execute plan" msgstr "kunde inte exekvera plan" -#: plpy_cursorobject.c:176 plpy_spi.c:210 +#: plpy_cursorobject.c:174 plpy_spi.c:210 #, c-format msgid "Expected sequence of %d argument, got %d: %s" msgid_plural "Expected sequence of %d arguments, got %d: %s" msgstr[0] "Förväntade sekvens med %d argument, fick %d: %s" msgstr[1] "Förväntade sekvens med %d argument, fick %d: %s" -#: plpy_cursorobject.c:323 +#: plpy_cursorobject.c:321 #, c-format msgid "iterating a closed cursor" msgstr "itererar med en stängd markör" -#: plpy_cursorobject.c:331 plpy_cursorobject.c:397 +#: plpy_cursorobject.c:329 plpy_cursorobject.c:395 #, c-format msgid "iterating a cursor in an aborted subtransaction" msgstr "itererar med en markör i en avbruten subtransaktion" -#: plpy_cursorobject.c:389 +#: plpy_cursorobject.c:387 #, c-format msgid "fetch from a closed cursor" msgstr "hämta från en stängd markör" -#: plpy_cursorobject.c:432 plpy_spi.c:403 +#: plpy_cursorobject.c:430 plpy_spi.c:403 #, c-format msgid "query result has too many rows to fit in a Python list" msgstr "frågeresultet har för många rader för att få plats i en Python-lista" -#: plpy_cursorobject.c:484 +#: plpy_cursorobject.c:482 #, c-format msgid "closing a cursor in an aborted subtransaction" msgstr "stänger en markör i en avbruten subtransaktion" @@ -293,7 +293,7 @@ msgid "could not compile anonymous PL/Python code block" msgstr "kunde inte kompilera anonymt PL/Python-kodblock" -#: plpy_resultobject.c:119 plpy_resultobject.c:145 plpy_resultobject.c:171 +#: plpy_resultobject.c:117 plpy_resultobject.c:143 plpy_resultobject.c:169 #, c-format msgid "command did not produce a result set" msgstr "kommandot producerade inte en resultatmängd" @@ -328,22 +328,22 @@ msgid "SPI_execute failed: %s" msgstr "SPI_execute misslyckades: %s" -#: plpy_subxactobject.c:93 +#: plpy_subxactobject.c:92 #, c-format msgid "this subtransaction has already been entered" msgstr "denna subtransaktion har redan gåtts in i" -#: plpy_subxactobject.c:99 plpy_subxactobject.c:157 +#: plpy_subxactobject.c:98 plpy_subxactobject.c:156 #, c-format msgid "this subtransaction has already been exited" msgstr "denna subtransaktion har redan avslutat" -#: plpy_subxactobject.c:151 +#: plpy_subxactobject.c:150 #, c-format msgid "this subtransaction has not been entered" msgstr "denna subtransaktion har inte gåtts in i" -#: plpy_subxactobject.c:163 +#: plpy_subxactobject.c:162 #, c-format msgid "there is no subtransaction to exit from" msgstr "det finns ingen subtransaktion att avsluta från" diff -Nru postgresql-13-13.4/src/pl/tcl/Makefile postgresql-13-13.7/src/pl/tcl/Makefile --- postgresql-13-13.4/src/pl/tcl/Makefile 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/tcl/Makefile 2022-05-09 21:16:30.000000000 +0000 @@ -46,7 +46,7 @@ dlltool --dllname $(tclwithver).dll --def $(tclwithver).def --output-lib lib$(tclwithver).a $(tclwithver).def: $(TCLDLL) - pexports $^ > $@ + gendef - $^ > $@ endif # win32 diff -Nru postgresql-13-13.4/src/pl/tcl/po/fr.po postgresql-13-13.7/src/pl/tcl/po/fr.po --- postgresql-13-13.4/src/pl/tcl/po/fr.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/tcl/po/fr.po 2022-05-09 21:16:30.000000000 +0000 @@ -50,7 +50,7 @@ #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" -"la fonction avec set-value a été appelé dans un contexte qui n'accepte pas\n" +"la fonction renvoyant un ensemble a été appelée dans un contexte qui n'accepte pas\n" "un ensemble" #: pltcl.c:1015 diff -Nru postgresql-13-13.4/src/pl/tcl/po/sv.po postgresql-13-13.7/src/pl/tcl/po/sv.po --- postgresql-13-13.4/src/pl/tcl/po/sv.po 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/pl/tcl/po/sv.po 2022-05-09 21:16:30.000000000 +0000 @@ -1,14 +1,14 @@ # Swedish message translation file for pltcl # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 13\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-11 01:08+0000\n" -"PO-Revision-Date: 2020-04-11 08:45+0200\n" +"POT-Creation-Date: 2022-02-18 04:22+0000\n" +"PO-Revision-Date: 2021-11-07 10:38+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -41,27 +41,27 @@ msgid "processing %s parameter" msgstr "processar parameter %s" -#: pltcl.c:832 +#: pltcl.c:835 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "en funktion som returnerar en mängd anropades i kontext som inte godtar en mängd" -#: pltcl.c:1005 +#: pltcl.c:1008 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "en funktion med post som värde anropades i sammanhang där poster inte kan godtagas." -#: pltcl.c:1289 +#: pltcl.c:1292 #, c-format msgid "could not split return value from trigger: %s" msgstr "kunde inte dela på returvärde och utlösare: %s" -#: pltcl.c:1370 pltcl.c:1800 +#: pltcl.c:1373 pltcl.c:1803 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1371 +#: pltcl.c:1374 #, c-format msgid "" "%s\n" @@ -70,42 +70,42 @@ "%s\n" "i PL/Tcl-funktion \"%s\"" -#: pltcl.c:1535 +#: pltcl.c:1538 #, c-format msgid "trigger functions can only be called as triggers" msgstr "Triggningsfunktioner kan bara anropas vid triggning." -#: pltcl.c:1539 +#: pltcl.c:1542 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "PL/Tcl-funktioner kan inte returnera typ %s" -#: pltcl.c:1578 +#: pltcl.c:1581 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "PL/Tcl-funktioner kan inte ta emot typ %s" -#: pltcl.c:1692 +#: pltcl.c:1695 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "kunde inte skapa en intern procedur \"%s\": %s" -#: pltcl.c:3197 +#: pltcl.c:3199 #, c-format msgid "column name/value list must have even number of elements" msgstr "kolumn-namn/-värde måste ha ett jämt antal element" -#: pltcl.c:3215 +#: pltcl.c:3217 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" msgstr "listan med kolumn-namn/-värde innehåller det icke existerande kolumnnamnet \"%s\"" -#: pltcl.c:3222 +#: pltcl.c:3224 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "kan inte sätta systemattribut \"%s\"" -#: pltcl.c:3228 +#: pltcl.c:3230 #, c-format msgid "cannot set generated column \"%s\"" msgstr "kan inte sätta genererad kolumn \"%s\"" diff -Nru postgresql-13-13.4/src/port/README postgresql-13-13.7/src/port/README --- postgresql-13-13.4/src/port/README 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/port/README 2022-05-09 21:16:30.000000000 +0000 @@ -28,5 +28,5 @@ from libpgport are linked first. This avoids having applications dependent on symbols that are _used_ by libpq, but not intended to be exported by libpq. libpq's libpgport usage changes over time, so such a -dependency is a problem. Windows, Linux, and macOS use an export list to -control the symbols exported by libpq. +dependency is a problem. Windows, Linux, AIX, and macOS use an export +list to control the symbols exported by libpq. diff -Nru postgresql-13-13.4/src/test/isolation/expected/insert-conflict-specconflict.out postgresql-13-13.7/src/test/isolation/expected/insert-conflict-specconflict.out --- postgresql-13-13.4/src/test/isolation/expected/insert-conflict-specconflict.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/expected/insert-conflict-specconflict.out 2022-05-09 21:16:30.000000000 +0000 @@ -490,15 +490,15 @@ WHERE locktype IN ('spectoken', 'transactionid') AND pa.datname = current_database() - AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' + AND pa.application_name LIKE 'isolation/insert-conflict-specconflict/s%' ORDER BY 1, 2, 3, 4; application_name |locktype |mode |granted -----------------------------------------+-------------+-------------+------- -isolation/insert-conflict-specconflict-s1|spectoken |ShareLock |f -isolation/insert-conflict-specconflict-s1|transactionid|ExclusiveLock|t -isolation/insert-conflict-specconflict-s2|spectoken |ExclusiveLock|t -isolation/insert-conflict-specconflict-s2|transactionid|ExclusiveLock|t +isolation/insert-conflict-specconflict/s1|spectoken |ShareLock |f +isolation/insert-conflict-specconflict/s1|transactionid|ExclusiveLock|t +isolation/insert-conflict-specconflict/s2|spectoken |ExclusiveLock|t +isolation/insert-conflict-specconflict/s2|transactionid|ExclusiveLock|t (4 rows) step controller_unlock_2_4: SELECT pg_advisory_unlock(2, 4); @@ -517,14 +517,14 @@ WHERE locktype IN ('spectoken', 'transactionid') AND pa.datname = current_database() - AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' + AND pa.application_name LIKE 'isolation/insert-conflict-specconflict/s%' ORDER BY 1, 2, 3, 4; application_name |locktype |mode |granted -----------------------------------------+-------------+-------------+------- -isolation/insert-conflict-specconflict-s1|transactionid|ExclusiveLock|t -isolation/insert-conflict-specconflict-s1|transactionid|ShareLock |f -isolation/insert-conflict-specconflict-s2|transactionid|ExclusiveLock|t +isolation/insert-conflict-specconflict/s1|transactionid|ExclusiveLock|t +isolation/insert-conflict-specconflict/s1|transactionid|ShareLock |f +isolation/insert-conflict-specconflict/s2|transactionid|ExclusiveLock|t (3 rows) step s2_commit: COMMIT; @@ -544,7 +544,7 @@ WHERE locktype IN ('spectoken', 'transactionid') AND pa.datname = current_database() - AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' + AND pa.application_name LIKE 'isolation/insert-conflict-specconflict/s%' ORDER BY 1, 2, 3, 4; application_name|locktype|mode|granted diff -Nru postgresql-13-13.4/src/test/isolation/expected/partition-drop-index-locking.out postgresql-13-13.7/src/test/isolation/expected/partition-drop-index-locking.out --- postgresql-13-13.4/src/test/isolation/expected/partition-drop-index-locking.out 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/expected/partition-drop-index-locking.out 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,100 @@ +Parsed test spec with 3 sessions + +starting permutation: s1begin s1lock s2begin s2drop s1select s3getlocks s1commit s3getlocks s2commit +step s1begin: BEGIN; +step s1lock: LOCK TABLE part_drop_index_locking_subpart_child IN ACCESS SHARE MODE; +step s2begin: BEGIN; +step s2drop: DROP INDEX part_drop_index_locking_idx; +step s1select: SELECT * FROM part_drop_index_locking_subpart_child; +id +-- +(0 rows) + +step s3getlocks: + SELECT s.query, c.relname, l.mode, l.granted + FROM pg_locks l + JOIN pg_class c ON l.relation = c.oid + JOIN pg_stat_activity s ON l.pid = s.pid + WHERE c.relname LIKE 'part_drop_index_locking%' + ORDER BY s.query, c.relname, l.mode, l.granted; + +query |relname |mode |granted +----------------------------------------------------+---------------------------------------------+-------------------+------- +DROP INDEX part_drop_index_locking_idx; |part_drop_index_locking |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_idx; |part_drop_index_locking_idx |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_idx; |part_drop_index_locking_subpart |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_idx; |part_drop_index_locking_subpart_child |AccessExclusiveLock|f +SELECT * FROM part_drop_index_locking_subpart_child;|part_drop_index_locking_subpart_child |AccessShareLock |t +SELECT * FROM part_drop_index_locking_subpart_child;|part_drop_index_locking_subpart_child_id_idx |AccessShareLock |t +SELECT * FROM part_drop_index_locking_subpart_child;|part_drop_index_locking_subpart_child_id_idx1|AccessShareLock |t +(7 rows) + +step s1commit: COMMIT; +step s2drop: <... completed> +step s3getlocks: + SELECT s.query, c.relname, l.mode, l.granted + FROM pg_locks l + JOIN pg_class c ON l.relation = c.oid + JOIN pg_stat_activity s ON l.pid = s.pid + WHERE c.relname LIKE 'part_drop_index_locking%' + ORDER BY s.query, c.relname, l.mode, l.granted; + +query |relname |mode |granted +---------------------------------------+--------------------------------------------+-------------------+------- +DROP INDEX part_drop_index_locking_idx;|part_drop_index_locking |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_idx;|part_drop_index_locking_idx |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_idx;|part_drop_index_locking_subpart |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_idx;|part_drop_index_locking_subpart_child |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_idx;|part_drop_index_locking_subpart_child_id_idx|AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_idx;|part_drop_index_locking_subpart_id_idx |AccessExclusiveLock|t +(6 rows) + +step s2commit: COMMIT; + +starting permutation: s1begin s1lock s2begin s2dropsub s1select s3getlocks s1commit s3getlocks s2commit +step s1begin: BEGIN; +step s1lock: LOCK TABLE part_drop_index_locking_subpart_child IN ACCESS SHARE MODE; +step s2begin: BEGIN; +step s2dropsub: DROP INDEX part_drop_index_locking_subpart_idx; +step s1select: SELECT * FROM part_drop_index_locking_subpart_child; +id +-- +(0 rows) + +step s3getlocks: + SELECT s.query, c.relname, l.mode, l.granted + FROM pg_locks l + JOIN pg_class c ON l.relation = c.oid + JOIN pg_stat_activity s ON l.pid = s.pid + WHERE c.relname LIKE 'part_drop_index_locking%' + ORDER BY s.query, c.relname, l.mode, l.granted; + +query |relname |mode |granted +----------------------------------------------------+---------------------------------------------+-------------------+------- +DROP INDEX part_drop_index_locking_subpart_idx; |part_drop_index_locking_subpart |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_subpart_idx; |part_drop_index_locking_subpart_child |AccessExclusiveLock|f +DROP INDEX part_drop_index_locking_subpart_idx; |part_drop_index_locking_subpart_idx |AccessExclusiveLock|t +SELECT * FROM part_drop_index_locking_subpart_child;|part_drop_index_locking_subpart_child |AccessShareLock |t +SELECT * FROM part_drop_index_locking_subpart_child;|part_drop_index_locking_subpart_child_id_idx |AccessShareLock |t +SELECT * FROM part_drop_index_locking_subpart_child;|part_drop_index_locking_subpart_child_id_idx1|AccessShareLock |t +(6 rows) + +step s1commit: COMMIT; +step s2dropsub: <... completed> +step s3getlocks: + SELECT s.query, c.relname, l.mode, l.granted + FROM pg_locks l + JOIN pg_class c ON l.relation = c.oid + JOIN pg_stat_activity s ON l.pid = s.pid + WHERE c.relname LIKE 'part_drop_index_locking%' + ORDER BY s.query, c.relname, l.mode, l.granted; + +query |relname |mode |granted +-----------------------------------------------+---------------------------------------------+-------------------+------- +DROP INDEX part_drop_index_locking_subpart_idx;|part_drop_index_locking_subpart |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_subpart_idx;|part_drop_index_locking_subpart_child |AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_subpart_idx;|part_drop_index_locking_subpart_child_id_idx1|AccessExclusiveLock|t +DROP INDEX part_drop_index_locking_subpart_idx;|part_drop_index_locking_subpart_idx |AccessExclusiveLock|t +(4 rows) + +step s2commit: COMMIT; diff -Nru postgresql-13-13.4/src/test/isolation/expected/reindex-concurrently-toast.out postgresql-13-13.7/src/test/isolation/expected/reindex-concurrently-toast.out --- postgresql-13-13.4/src/test/isolation/expected/reindex-concurrently-toast.out 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/expected/reindex-concurrently-toast.out 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,775 @@ +Parsed test spec with 2 sessions + +starting permutation: lrex1 ins1 retab2 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 + 3|3333333333 +(3 rows) + + +starting permutation: lrex1 ins1 reind2 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 + 3|3333333333 +(3 rows) + + +starting permutation: lrex1 upd1 retab2 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|4444444444 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 upd1 reind2 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|4444444444 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 del1 retab2 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 +(1 row) + + +starting permutation: lrex1 del1 reind2 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 +(1 row) + + +starting permutation: lrex1 dro1 retab2 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step dro1: DROP TABLE reind_con_wide; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +ERROR: relation "pg_toast.reind_con_toast" does not exist +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lrex1 dro1 reind2 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step dro1: DROP TABLE reind_con_wide; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +ERROR: relation "pg_toast.reind_con_toast_idx" does not exist +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lrex1 retab2 dro1 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step dro1: DROP TABLE reind_con_wide; +step end1: COMMIT; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lrex1 reind2 dro1 end1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step dro1: DROP TABLE reind_con_wide; +step end1: COMMIT; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lsha1 ins1 retab2 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 + 3|3333333333 +(3 rows) + + +starting permutation: lsha1 ins1 reind2 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 + 3|3333333333 +(3 rows) + + +starting permutation: lsha1 upd1 retab2 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|4444444444 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 upd1 reind2 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|4444444444 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 del1 retab2 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 +(1 row) + + +starting permutation: lsha1 del1 reind2 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 +(1 row) + + +starting permutation: lsha1 dro1 retab2 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step dro1: DROP TABLE reind_con_wide; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +ERROR: relation "pg_toast.reind_con_toast" does not exist +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lsha1 dro1 reind2 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step dro1: DROP TABLE reind_con_wide; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +ERROR: relation "pg_toast.reind_con_toast_idx" does not exist +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lsha1 retab2 dro1 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step dro1: DROP TABLE reind_con_wide; +step end1: COMMIT; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lsha1 reind2 dro1 end1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step dro1: DROP TABLE reind_con_wide; +step end1: COMMIT; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lexc1 ins1 retab2 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 + 3|3333333333 +(3 rows) + + +starting permutation: lexc1 ins1 reind2 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 + 3|3333333333 +(3 rows) + + +starting permutation: lexc1 upd1 retab2 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|4444444444 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 upd1 reind2 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|4444444444 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 del1 retab2 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 +(1 row) + + +starting permutation: lexc1 del1 reind2 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 +(1 row) + + +starting permutation: lexc1 dro1 retab2 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step dro1: DROP TABLE reind_con_wide; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step end1: COMMIT; +step retab2: <... completed> +ERROR: relation "pg_toast.reind_con_toast" does not exist +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lexc1 dro1 reind2 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step dro1: DROP TABLE reind_con_wide; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step end1: COMMIT; +step reind2: <... completed> +ERROR: relation "pg_toast.reind_con_toast_idx" does not exist +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lexc1 retab2 dro1 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step dro1: DROP TABLE reind_con_wide; +step end1: COMMIT; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lexc1 reind2 dro1 end1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step dro1: DROP TABLE reind_con_wide; +step end1: COMMIT; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +ERROR: relation "reind_con_wide" does not exist + +starting permutation: lrex1 ins1 retab2 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 ins1 reind2 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 upd1 retab2 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 upd1 reind2 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 del1 retab2 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 del1 reind2 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 dro1 retab2 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step dro1: DROP TABLE reind_con_wide; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 dro1 reind2 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step dro1: DROP TABLE reind_con_wide; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 retab2 dro1 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step dro1: DROP TABLE reind_con_wide; +step rol1: ROLLBACK; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lrex1 reind2 dro1 rol1 sel2 +step lrex1: lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step dro1: DROP TABLE reind_con_wide; +step rol1: ROLLBACK; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 ins1 retab2 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 ins1 reind2 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 upd1 retab2 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 upd1 reind2 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 del1 retab2 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 del1 reind2 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 dro1 retab2 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step dro1: DROP TABLE reind_con_wide; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 dro1 reind2 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step dro1: DROP TABLE reind_con_wide; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 retab2 dro1 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step dro1: DROP TABLE reind_con_wide; +step rol1: ROLLBACK; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lsha1 reind2 dro1 rol1 sel2 +step lsha1: lock TABLE reind_con_wide in SHARE MODE; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step dro1: DROP TABLE reind_con_wide; +step rol1: ROLLBACK; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 ins1 retab2 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 ins1 reind2 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step ins1: INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 upd1 retab2 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 upd1 reind2 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step upd1: UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 del1 retab2 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 del1 reind2 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step del1: DELETE FROM reind_con_wide WHERE id = 2; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 dro1 retab2 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step dro1: DROP TABLE reind_con_wide; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step rol1: ROLLBACK; +step retab2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 dro1 reind2 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step dro1: DROP TABLE reind_con_wide; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step rol1: ROLLBACK; +step reind2: <... completed> +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 retab2 dro1 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step retab2: REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; +step dro1: DROP TABLE reind_con_wide; +step rol1: ROLLBACK; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + + +starting permutation: lexc1 reind2 dro1 rol1 sel2 +step lexc1: lock TABLE reind_con_wide in EXCLUSIVE MODE; +step reind2: REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; +step dro1: DROP TABLE reind_con_wide; +step rol1: ROLLBACK; +step sel2: SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; +id| substr +--+---------- + 1|1111111111 + 2|2222222222 +(2 rows) + diff -Nru postgresql-13-13.4/src/test/isolation/expected/temp-schema-cleanup.out postgresql-13-13.7/src/test/isolation/expected/temp-schema-cleanup.out --- postgresql-13-13.4/src/test/isolation/expected/temp-schema-cleanup.out 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/expected/temp-schema-cleanup.out 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,115 @@ +Parsed test spec with 2 sessions + +starting permutation: s1_create_temp_objects s1_discard_temp s2_check_schema +step s1_create_temp_objects: + + -- create function large enough to be toasted, to ensure we correctly clean those up, a prior bug + -- https://postgr.es/m/CAOFAq3BU5Mf2TTvu8D9n_ZOoFAeQswuzk7yziAb7xuw_qyw5gw%40mail.gmail.com + SELECT exec(format($outer$ + CREATE OR REPLACE FUNCTION pg_temp.long() RETURNS text LANGUAGE sql AS $body$ SELECT %L; $body$$outer$, + (SELECT string_agg(g.i::text||':'||random()::text, '|') FROM generate_series(1, 100) g(i)))); + + -- The above bug requirs function removal to happen after a catalog + -- invalidation. dependency.c sorts objects in descending oid order so + -- that newer objects are deleted before older objects, so create a + -- table after. + CREATE TEMPORARY TABLE invalidate_catalog_cache(); + + -- test non-temp function is dropped when depending on temp table + CREATE TEMPORARY TABLE just_give_me_a_type(id serial primary key); + + CREATE FUNCTION uses_a_temp_type(just_give_me_a_type) RETURNS int LANGUAGE sql AS $$SELECT 1;$$; + +exec +---- + +(1 row) + +step s1_discard_temp: + DISCARD TEMP; + +step s2_check_schema: + SELECT oid::regclass FROM pg_class WHERE relnamespace = (SELECT oid FROM s1_temp_schema); + SELECT oid::regproc FROM pg_proc WHERE pronamespace = (SELECT oid FROM s1_temp_schema); + SELECT oid::regproc FROM pg_type WHERE typnamespace = (SELECT oid FROM s1_temp_schema); + +oid +--- +(0 rows) + +oid +--- +(0 rows) + +oid +--- +(0 rows) + + +starting permutation: s1_advisory s2_advisory s1_create_temp_objects s1_exit s2_check_schema +step s1_advisory: + SELECT pg_advisory_lock('pg_namespace'::regclass::int8); + +pg_advisory_lock +---------------- + +(1 row) + +step s2_advisory: + SELECT pg_advisory_lock('pg_namespace'::regclass::int8); + +step s1_create_temp_objects: + + -- create function large enough to be toasted, to ensure we correctly clean those up, a prior bug + -- https://postgr.es/m/CAOFAq3BU5Mf2TTvu8D9n_ZOoFAeQswuzk7yziAb7xuw_qyw5gw%40mail.gmail.com + SELECT exec(format($outer$ + CREATE OR REPLACE FUNCTION pg_temp.long() RETURNS text LANGUAGE sql AS $body$ SELECT %L; $body$$outer$, + (SELECT string_agg(g.i::text||':'||random()::text, '|') FROM generate_series(1, 100) g(i)))); + + -- The above bug requirs function removal to happen after a catalog + -- invalidation. dependency.c sorts objects in descending oid order so + -- that newer objects are deleted before older objects, so create a + -- table after. + CREATE TEMPORARY TABLE invalidate_catalog_cache(); + + -- test non-temp function is dropped when depending on temp table + CREATE TEMPORARY TABLE just_give_me_a_type(id serial primary key); + + CREATE FUNCTION uses_a_temp_type(just_give_me_a_type) RETURNS int LANGUAGE sql AS $$SELECT 1;$$; + +exec +---- + +(1 row) + +step s1_exit: + SELECT pg_terminate_backend(pg_backend_pid()); + +FATAL: terminating connection due to administrator command +server closed the connection unexpectedly + This probably means the server terminated abnormally + before or while processing the request. + +step s2_advisory: <... completed> +pg_advisory_lock +---------------- + +(1 row) + +step s2_check_schema: + SELECT oid::regclass FROM pg_class WHERE relnamespace = (SELECT oid FROM s1_temp_schema); + SELECT oid::regproc FROM pg_proc WHERE pronamespace = (SELECT oid FROM s1_temp_schema); + SELECT oid::regproc FROM pg_type WHERE typnamespace = (SELECT oid FROM s1_temp_schema); + +oid +--- +(0 rows) + +oid +--- +(0 rows) + +oid +--- +(0 rows) + diff -Nru postgresql-13-13.4/src/test/isolation/isolation_schedule postgresql-13-13.7/src/test/isolation/isolation_schedule --- postgresql-13-13.4/src/test/isolation/isolation_schedule 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/isolation_schedule 2022-05-09 21:16:30.000000000 +0000 @@ -34,6 +34,7 @@ test: lock-update-delete test: lock-update-traversal test: inherit-temp +test: temp-schema-cleanup test: insert-conflict-do-nothing test: insert-conflict-do-nothing-2 test: insert-conflict-do-update @@ -49,6 +50,7 @@ test: lock-committed-keyupdate test: update-locked-tuple test: reindex-concurrently +test: reindex-concurrently-toast test: propagate-lock-delete test: tuplelock-conflict test: tuplelock-update @@ -82,6 +84,7 @@ test: predicate-gist test: predicate-gin test: partition-concurrent-attach +test: partition-drop-index-locking test: partition-key-update-1 test: partition-key-update-2 test: partition-key-update-3 diff -Nru postgresql-13-13.4/src/test/isolation/isolationtester.c postgresql-13-13.7/src/test/isolation/isolationtester.c --- postgresql-13-13.4/src/test/isolation/isolationtester.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/isolationtester.c 2022-05-09 21:16:30.000000000 +0000 @@ -154,10 +154,14 @@ for (i = 0; i < nconns; i++) { + const char *sessionname; + if (i == 0) - conns[i].sessionname = "control connection"; + sessionname = "control connection"; else - conns[i].sessionname = testspec->sessions[i - 1]->name; + sessionname = testspec->sessions[i - 1]->name; + + conns[i].sessionname = sessionname; conns[i].conn = PQconnectdb(conninfo); if (PQstatus(conns[i].conn) != CONNECTION_OK) @@ -182,6 +186,26 @@ blackholeNoticeProcessor, NULL); + /* + * Similarly, append the session name to application_name to make it + * easier to map spec file sessions to log output and + * pg_stat_activity. The reason to append instead of just setting the + * name is that we don't know the name of the test currently running. + */ + res = PQexecParams(conns[i].conn, + "SELECT set_config('application_name',\n" + " current_setting('application_name') || '/' || $1,\n" + " false)", + 1, NULL, + &sessionname, + NULL, NULL, 0); + if (PQresultStatus(res) != PGRES_TUPLES_OK) + { + fprintf(stderr, "setting of application name failed: %s", + PQerrorMessage(conns[i].conn)); + exit(1); + } + /* Save each connection's backend PID for subsequent use. */ conns[i].backend_pid = PQbackendPID(conns[i].conn); conns[i].backend_pid_str = psprintf("%d", conns[i].backend_pid); diff -Nru postgresql-13-13.4/src/test/isolation/specparse.c postgresql-13-13.7/src/test/isolation/specparse.c --- postgresql-13-13.4/src/test/isolation/specparse.c 2021-08-09 21:03:35.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/specparse.c 2022-05-09 21:29:49.000000000 +0000 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.3.2. */ +/* A Bison parser, made by GNU Bison 3.7.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ 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 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30705 -/* Bison version. */ -#define YYBISON_VERSION "3.3.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,12 +70,11 @@ #define yyerror spec_yyerror #define yydebug spec_yydebug #define yynerrs spec_yynerrs - #define yylval spec_yylval #define yychar spec_yychar /* First part of user prologue. */ -#line 1 "specparse.y" /* yacc.c:337 */ +#line 1 "specparse.y" /*------------------------------------------------------------------------- * @@ -95,7 +95,17 @@ TestSpec parseresult; /* result of parsing is left here */ -#line 99 "specparse.c" /* yacc.c:337 */ +#line 99 "specparse.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -108,14 +118,6 @@ # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - /* Debug traces. */ #ifndef YYDEBUG @@ -125,30 +127,34 @@ extern int spec_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - sqlblock = 258, - identifier = 259, - INTEGER = 260, - NOTICES = 261, - PERMUTATION = 262, - SESSION = 263, - SETUP = 264, - STEP = 265, - TEARDOWN = 266, - TEST = 267 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + sqlblock = 258, /* sqlblock */ + identifier = 259, /* identifier */ + INTEGER = 260, /* INTEGER */ + NOTICES = 261, /* NOTICES */ + PERMUTATION = 262, /* PERMUTATION */ + SESSION = 263, /* SESSION */ + SETUP = 264, /* SETUP */ + STEP = 265, /* STEP */ + TEARDOWN = 266, /* TEARDOWN */ + TEST = 267 /* TEST */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - union YYSTYPE { -#line 26 "specparse.y" /* yacc.c:352 */ +#line 26 "specparse.y" char *str; int integer; @@ -163,9 +169,9 @@ int nelements; } ptr_list; -#line 167 "specparse.c" /* yacc.c:352 */ -}; +#line 173 "specparse.c" +}; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -177,6 +183,47 @@ int spec_yyparse (void); +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_sqlblock = 3, /* sqlblock */ + YYSYMBOL_identifier = 4, /* identifier */ + YYSYMBOL_INTEGER = 5, /* INTEGER */ + YYSYMBOL_NOTICES = 6, /* NOTICES */ + YYSYMBOL_PERMUTATION = 7, /* PERMUTATION */ + YYSYMBOL_SESSION = 8, /* SESSION */ + YYSYMBOL_SETUP = 9, /* SETUP */ + YYSYMBOL_STEP = 10, /* STEP */ + YYSYMBOL_TEARDOWN = 11, /* TEARDOWN */ + YYSYMBOL_TEST = 12, /* TEST */ + YYSYMBOL_13_ = 13, /* '(' */ + YYSYMBOL_14_ = 14, /* ')' */ + YYSYMBOL_15_ = 15, /* ',' */ + YYSYMBOL_16_ = 16, /* '*' */ + YYSYMBOL_YYACCEPT = 17, /* $accept */ + YYSYMBOL_TestSpec = 18, /* TestSpec */ + YYSYMBOL_setup_list = 19, /* setup_list */ + YYSYMBOL_opt_setup = 20, /* opt_setup */ + YYSYMBOL_setup = 21, /* setup */ + YYSYMBOL_opt_teardown = 22, /* opt_teardown */ + YYSYMBOL_session_list = 23, /* session_list */ + YYSYMBOL_session = 24, /* session */ + YYSYMBOL_step_list = 25, /* step_list */ + YYSYMBOL_step = 26, /* step */ + YYSYMBOL_opt_permutation_list = 27, /* opt_permutation_list */ + YYSYMBOL_permutation_list = 28, /* permutation_list */ + YYSYMBOL_permutation = 29, /* permutation */ + YYSYMBOL_permutation_step_list = 30, /* permutation_step_list */ + YYSYMBOL_permutation_step = 31, /* permutation_step */ + YYSYMBOL_blocker_list = 32, /* blocker_list */ + YYSYMBOL_blocker = 33 /* blocker */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + @@ -184,28 +231,87 @@ # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -213,7 +319,7 @@ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -221,7 +327,20 @@ # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -235,38 +354,37 @@ # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif #ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif #endif #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #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") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -279,8 +397,22 @@ # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) -#if ! defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -345,8 +477,7 @@ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -355,17 +486,17 @@ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -378,11 +509,11 @@ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -394,12 +525,12 @@ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -422,17 +553,20 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 43 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 267 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_uint8 yytranslate[] = +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -465,7 +599,7 @@ #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { 0, 59, 59, 76, 80, 90, 91, 95, 99, 100, 104, 111, 120, 132, 139, 149, 161, 166, 172, 179, @@ -473,39 +607,52 @@ }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "sqlblock", "identifier", "INTEGER", - "NOTICES", "PERMUTATION", "SESSION", "SETUP", "STEP", "TEARDOWN", "TEST", - "'('", "')'", "','", "'*'", "$accept", "TestSpec", "setup_list", - "opt_setup", "setup", "opt_teardown", "session_list", "session", - "step_list", "step", "opt_permutation_list", "permutation_list", - "permutation", "permutation_step_list", "permutation_step", - "blocker_list", "blocker", YY_NULLPTR + "\"end of file\"", "error", "\"invalid token\"", "sqlblock", + "identifier", "INTEGER", "NOTICES", "PERMUTATION", "SESSION", "SETUP", + "STEP", "TEARDOWN", "TEST", "'('", "')'", "','", "'*'", "$accept", + "TestSpec", "setup_list", "opt_setup", "setup", "opt_teardown", + "session_list", "session", "step_list", "step", "opt_permutation_list", + "permutation_list", "permutation", "permutation_step_list", + "permutation_step", "blocker_list", "blocker", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 40, 41, 44, 42 }; -# endif +#endif -#define YYPACT_NINF -14 +#define YYPACT_NINF (-14) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-14))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -1 +#define YYTABLE_NINF (-1) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -522,7 +669,7 @@ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint8 yydefact[] = +static const yytype_int8 yydefact[] = { 3, 0, 8, 1, 0, 0, 4, 0, 7, 9, 0, 17, 11, 5, 0, 10, 2, 16, 19, 0, @@ -541,14 +688,14 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 1, 2, 19, 6, 7, 11, 12, 26, 27, + 0, 1, 2, 19, 6, 7, 11, 12, 26, 27, 16, 17, 18, 22, 23, 35, 36 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_uint8 yytable[] = +static const yytype_int8 yytable[] = { 33, 4, 3, 5, 14, 10, 8, 9, 25, 5, 13, 25, 34, 39, 40, 10, 21, 4, 14, 30, @@ -568,7 +715,7 @@ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_int8 yystos[] = { 0, 18, 19, 0, 9, 11, 21, 22, 3, 3, 8, 23, 24, 4, 7, 24, 27, 28, 29, 20, @@ -578,7 +725,7 @@ }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_int8 yyr1[] = { 0, 17, 18, 19, 19, 20, 20, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 27, 28, 28, @@ -586,7 +733,7 @@ }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 4, 0, 2, 0, 1, 2, 0, 2, 2, 1, 5, 2, 1, 3, 1, 0, 2, 1, @@ -594,10 +741,10 @@ }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -623,10 +770,9 @@ } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* Enable debugging if requested. */ @@ -644,18 +790,18 @@ } while (0) /* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value); \ + Kind, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -666,17 +812,20 @@ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; - YYUSE (yyoutput); + YY_USE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -685,12 +834,13 @@ `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyo, yytype, yyvaluep); + yy_symbol_value_print (yyo, yykind, yyvaluep); YYFPRINTF (yyo, ")"); } @@ -700,7 +850,7 @@ `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -723,21 +873,21 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - ); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); YYFPRINTF (stderr, "\n"); } } @@ -752,8 +902,8 @@ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -776,254 +926,30 @@ #endif -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); -} -# endif -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - switch (yycount) - { -# define YYCASE_(N, S) \ - 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")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -1032,6 +958,8 @@ int yynerrs; + + /*----------. | yyparse. | `----------*/ @@ -1039,43 +967,36 @@ int yyparse (void) { - int yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. + int yyerrstatus = 0; - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - YYSIZE_T yystacksize; + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -1083,15 +1004,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; @@ -1106,10 +1020,15 @@ /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: - *yyssp = (yytype_int16) yystate; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -1117,23 +1036,23 @@ #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # 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 memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -1147,14 +1066,15 @@ yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1163,16 +1083,16 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) YYACCEPT; @@ -1193,18 +1113,29 @@ /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1232,15 +1163,13 @@ /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1275,9 +1204,9 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 63 "specparse.y" /* yacc.c:1652 */ - { + case 2: /* TestSpec: setup_list opt_teardown session_list opt_permutation_list */ +#line 63 "specparse.y" + { parseresult.setupsqls = (char **) (yyvsp[-3].ptr_list).elements; parseresult.nsetupsqls = (yyvsp[-3].ptr_list).nelements; parseresult.teardownsql = (yyvsp[-2].str); @@ -1286,83 +1215,83 @@ parseresult.permutations = (Permutation **) (yyvsp[0].ptr_list).elements; parseresult.npermutations = (yyvsp[0].ptr_list).nelements; } -#line 1290 "specparse.c" /* yacc.c:1652 */ +#line 1219 "specparse.c" break; - case 3: -#line 76 "specparse.y" /* yacc.c:1652 */ - { + case 3: /* setup_list: %empty */ +#line 76 "specparse.y" + { (yyval.ptr_list).elements = NULL; (yyval.ptr_list).nelements = 0; } -#line 1299 "specparse.c" /* yacc.c:1652 */ +#line 1228 "specparse.c" break; - case 4: -#line 81 "specparse.y" /* yacc.c:1652 */ - { + case 4: /* setup_list: setup_list setup */ +#line 81 "specparse.y" + { (yyval.ptr_list).elements = pg_realloc((yyvsp[-1].ptr_list).elements, ((yyvsp[-1].ptr_list).nelements + 1) * sizeof(void *)); (yyval.ptr_list).elements[(yyvsp[-1].ptr_list).nelements] = (yyvsp[0].str); (yyval.ptr_list).nelements = (yyvsp[-1].ptr_list).nelements + 1; } -#line 1310 "specparse.c" /* yacc.c:1652 */ +#line 1239 "specparse.c" break; - case 5: -#line 90 "specparse.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 1316 "specparse.c" /* yacc.c:1652 */ + case 5: /* opt_setup: %empty */ +#line 90 "specparse.y" + { (yyval.str) = NULL; } +#line 1245 "specparse.c" break; - case 6: -#line 91 "specparse.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 1322 "specparse.c" /* yacc.c:1652 */ + case 6: /* opt_setup: setup */ +#line 91 "specparse.y" + { (yyval.str) = (yyvsp[0].str); } +#line 1251 "specparse.c" break; - case 7: -#line 95 "specparse.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 1328 "specparse.c" /* yacc.c:1652 */ + case 7: /* setup: SETUP sqlblock */ +#line 95 "specparse.y" + { (yyval.str) = (yyvsp[0].str); } +#line 1257 "specparse.c" break; - case 8: -#line 99 "specparse.y" /* yacc.c:1652 */ - { (yyval.str) = NULL; } -#line 1334 "specparse.c" /* yacc.c:1652 */ + case 8: /* opt_teardown: %empty */ +#line 99 "specparse.y" + { (yyval.str) = NULL; } +#line 1263 "specparse.c" break; - case 9: -#line 100 "specparse.y" /* yacc.c:1652 */ - { (yyval.str) = (yyvsp[0].str); } -#line 1340 "specparse.c" /* yacc.c:1652 */ + case 9: /* opt_teardown: TEARDOWN sqlblock */ +#line 100 "specparse.y" + { (yyval.str) = (yyvsp[0].str); } +#line 1269 "specparse.c" break; - case 10: -#line 105 "specparse.y" /* yacc.c:1652 */ - { + case 10: /* session_list: session_list session */ +#line 105 "specparse.y" + { (yyval.ptr_list).elements = pg_realloc((yyvsp[-1].ptr_list).elements, ((yyvsp[-1].ptr_list).nelements + 1) * sizeof(void *)); (yyval.ptr_list).elements[(yyvsp[-1].ptr_list).nelements] = (yyvsp[0].session); (yyval.ptr_list).nelements = (yyvsp[-1].ptr_list).nelements + 1; } -#line 1351 "specparse.c" /* yacc.c:1652 */ +#line 1280 "specparse.c" break; - case 11: -#line 112 "specparse.y" /* yacc.c:1652 */ - { + case 11: /* session_list: session */ +#line 112 "specparse.y" + { (yyval.ptr_list).nelements = 1; (yyval.ptr_list).elements = pg_malloc(sizeof(void *)); (yyval.ptr_list).elements[0] = (yyvsp[0].session); } -#line 1361 "specparse.c" /* yacc.c:1652 */ +#line 1290 "specparse.c" break; - case 12: -#line 121 "specparse.y" /* yacc.c:1652 */ - { + case 12: /* session: SESSION identifier opt_setup step_list opt_teardown */ +#line 121 "specparse.y" + { (yyval.session) = pg_malloc(sizeof(Session)); (yyval.session)->name = (yyvsp[-3].str); (yyval.session)->setupsql = (yyvsp[-2].str); @@ -1370,159 +1299,159 @@ (yyval.session)->nsteps = (yyvsp[-1].ptr_list).nelements; (yyval.session)->teardownsql = (yyvsp[0].str); } -#line 1374 "specparse.c" /* yacc.c:1652 */ +#line 1303 "specparse.c" break; - case 13: -#line 133 "specparse.y" /* yacc.c:1652 */ - { + case 13: /* step_list: step_list step */ +#line 133 "specparse.y" + { (yyval.ptr_list).elements = pg_realloc((yyvsp[-1].ptr_list).elements, ((yyvsp[-1].ptr_list).nelements + 1) * sizeof(void *)); (yyval.ptr_list).elements[(yyvsp[-1].ptr_list).nelements] = (yyvsp[0].step); (yyval.ptr_list).nelements = (yyvsp[-1].ptr_list).nelements + 1; } -#line 1385 "specparse.c" /* yacc.c:1652 */ +#line 1314 "specparse.c" break; - case 14: -#line 140 "specparse.y" /* yacc.c:1652 */ - { + case 14: /* step_list: step */ +#line 140 "specparse.y" + { (yyval.ptr_list).nelements = 1; (yyval.ptr_list).elements = pg_malloc(sizeof(void *)); (yyval.ptr_list).elements[0] = (yyvsp[0].step); } -#line 1395 "specparse.c" /* yacc.c:1652 */ +#line 1324 "specparse.c" break; - case 15: -#line 150 "specparse.y" /* yacc.c:1652 */ - { + case 15: /* step: STEP identifier sqlblock */ +#line 150 "specparse.y" + { (yyval.step) = pg_malloc(sizeof(Step)); (yyval.step)->name = (yyvsp[-1].str); (yyval.step)->sql = (yyvsp[0].str); (yyval.step)->session = -1; /* until filled */ (yyval.step)->used = false; } -#line 1407 "specparse.c" /* yacc.c:1652 */ +#line 1336 "specparse.c" break; - case 16: -#line 162 "specparse.y" /* yacc.c:1652 */ - { + case 16: /* opt_permutation_list: permutation_list */ +#line 162 "specparse.y" + { (yyval.ptr_list) = (yyvsp[0].ptr_list); } -#line 1415 "specparse.c" /* yacc.c:1652 */ +#line 1344 "specparse.c" break; - case 17: -#line 166 "specparse.y" /* yacc.c:1652 */ - { + case 17: /* opt_permutation_list: %empty */ +#line 166 "specparse.y" + { (yyval.ptr_list).elements = NULL; (yyval.ptr_list).nelements = 0; } -#line 1424 "specparse.c" /* yacc.c:1652 */ +#line 1353 "specparse.c" break; - case 18: -#line 173 "specparse.y" /* yacc.c:1652 */ - { + case 18: /* permutation_list: permutation_list permutation */ +#line 173 "specparse.y" + { (yyval.ptr_list).elements = pg_realloc((yyvsp[-1].ptr_list).elements, ((yyvsp[-1].ptr_list).nelements + 1) * sizeof(void *)); (yyval.ptr_list).elements[(yyvsp[-1].ptr_list).nelements] = (yyvsp[0].permutation); (yyval.ptr_list).nelements = (yyvsp[-1].ptr_list).nelements + 1; } -#line 1435 "specparse.c" /* yacc.c:1652 */ +#line 1364 "specparse.c" break; - case 19: -#line 180 "specparse.y" /* yacc.c:1652 */ - { + case 19: /* permutation_list: permutation */ +#line 180 "specparse.y" + { (yyval.ptr_list).nelements = 1; (yyval.ptr_list).elements = pg_malloc(sizeof(void *)); (yyval.ptr_list).elements[0] = (yyvsp[0].permutation); } -#line 1445 "specparse.c" /* yacc.c:1652 */ +#line 1374 "specparse.c" break; - case 20: -#line 190 "specparse.y" /* yacc.c:1652 */ - { + case 20: /* permutation: PERMUTATION permutation_step_list */ +#line 190 "specparse.y" + { (yyval.permutation) = pg_malloc(sizeof(Permutation)); (yyval.permutation)->nsteps = (yyvsp[0].ptr_list).nelements; (yyval.permutation)->steps = (PermutationStep **) (yyvsp[0].ptr_list).elements; } -#line 1455 "specparse.c" /* yacc.c:1652 */ +#line 1384 "specparse.c" break; - case 21: -#line 199 "specparse.y" /* yacc.c:1652 */ - { + case 21: /* permutation_step_list: permutation_step_list permutation_step */ +#line 199 "specparse.y" + { (yyval.ptr_list).elements = pg_realloc((yyvsp[-1].ptr_list).elements, ((yyvsp[-1].ptr_list).nelements + 1) * sizeof(void *)); (yyval.ptr_list).elements[(yyvsp[-1].ptr_list).nelements] = (yyvsp[0].permutationstep); (yyval.ptr_list).nelements = (yyvsp[-1].ptr_list).nelements + 1; } -#line 1466 "specparse.c" /* yacc.c:1652 */ +#line 1395 "specparse.c" break; - case 22: -#line 206 "specparse.y" /* yacc.c:1652 */ - { + case 22: /* permutation_step_list: permutation_step */ +#line 206 "specparse.y" + { (yyval.ptr_list).nelements = 1; (yyval.ptr_list).elements = pg_malloc(sizeof(void *)); (yyval.ptr_list).elements[0] = (yyvsp[0].permutationstep); } -#line 1476 "specparse.c" /* yacc.c:1652 */ +#line 1405 "specparse.c" break; - case 23: -#line 215 "specparse.y" /* yacc.c:1652 */ - { + case 23: /* permutation_step: identifier */ +#line 215 "specparse.y" + { (yyval.permutationstep) = pg_malloc(sizeof(PermutationStep)); (yyval.permutationstep)->name = (yyvsp[0].str); (yyval.permutationstep)->blockers = NULL; (yyval.permutationstep)->nblockers = 0; (yyval.permutationstep)->step = NULL; } -#line 1488 "specparse.c" /* yacc.c:1652 */ +#line 1417 "specparse.c" break; - case 24: -#line 223 "specparse.y" /* yacc.c:1652 */ - { + case 24: /* permutation_step: identifier '(' blocker_list ')' */ +#line 223 "specparse.y" + { (yyval.permutationstep) = pg_malloc(sizeof(PermutationStep)); (yyval.permutationstep)->name = (yyvsp[-3].str); (yyval.permutationstep)->blockers = (PermutationStepBlocker **) (yyvsp[-1].ptr_list).elements; (yyval.permutationstep)->nblockers = (yyvsp[-1].ptr_list).nelements; (yyval.permutationstep)->step = NULL; } -#line 1500 "specparse.c" /* yacc.c:1652 */ +#line 1429 "specparse.c" break; - case 25: -#line 234 "specparse.y" /* yacc.c:1652 */ - { + case 25: /* blocker_list: blocker_list ',' blocker */ +#line 234 "specparse.y" + { (yyval.ptr_list).elements = pg_realloc((yyvsp[-2].ptr_list).elements, ((yyvsp[-2].ptr_list).nelements + 1) * sizeof(void *)); (yyval.ptr_list).elements[(yyvsp[-2].ptr_list).nelements] = (yyvsp[0].blocker); (yyval.ptr_list).nelements = (yyvsp[-2].ptr_list).nelements + 1; } -#line 1511 "specparse.c" /* yacc.c:1652 */ +#line 1440 "specparse.c" break; - case 26: -#line 241 "specparse.y" /* yacc.c:1652 */ - { + case 26: /* blocker_list: blocker */ +#line 241 "specparse.y" + { (yyval.ptr_list).nelements = 1; (yyval.ptr_list).elements = pg_malloc(sizeof(void *)); (yyval.ptr_list).elements[0] = (yyvsp[0].blocker); } -#line 1521 "specparse.c" /* yacc.c:1652 */ +#line 1450 "specparse.c" break; - case 27: -#line 250 "specparse.y" /* yacc.c:1652 */ - { + case 27: /* blocker: identifier */ +#line 250 "specparse.y" + { (yyval.blocker) = pg_malloc(sizeof(PermutationStepBlocker)); (yyval.blocker)->stepname = (yyvsp[0].str); (yyval.blocker)->blocktype = PSB_OTHER_STEP; @@ -1530,12 +1459,12 @@ (yyval.blocker)->step = NULL; (yyval.blocker)->target_notices = -1; } -#line 1534 "specparse.c" /* yacc.c:1652 */ +#line 1463 "specparse.c" break; - case 28: -#line 259 "specparse.y" /* yacc.c:1652 */ - { + case 28: /* blocker: identifier NOTICES INTEGER */ +#line 259 "specparse.y" + { (yyval.blocker) = pg_malloc(sizeof(PermutationStepBlocker)); (yyval.blocker)->stepname = (yyvsp[-2].str); (yyval.blocker)->blocktype = PSB_NUM_NOTICES; @@ -1543,12 +1472,12 @@ (yyval.blocker)->step = NULL; (yyval.blocker)->target_notices = -1; } -#line 1547 "specparse.c" /* yacc.c:1652 */ +#line 1476 "specparse.c" break; - case 29: -#line 268 "specparse.y" /* yacc.c:1652 */ - { + case 29: /* blocker: '*' */ +#line 268 "specparse.y" + { (yyval.blocker) = pg_malloc(sizeof(PermutationStepBlocker)); (yyval.blocker)->stepname = NULL; (yyval.blocker)->blocktype = PSB_ONCE; @@ -1556,11 +1485,12 @@ (yyval.blocker)->step = NULL; (yyval.blocker)->target_notices = -1; } -#line 1560 "specparse.c" /* yacc.c:1652 */ +#line 1489 "specparse.c" break; -#line 1564 "specparse.c" /* yacc.c:1652 */ +#line 1493 "specparse.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1574,11 +1504,10 @@ case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1602,50 +1531,14 @@ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } - - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -1694,13 +1587,14 @@ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -1714,7 +1608,7 @@ yydestruct ("Error: popping", - yystos[yystate], yyvsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -1726,7 +1620,7 @@ /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1748,20 +1642,20 @@ goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -1778,20 +1672,18 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 278 "specparse.y" /* yacc.c:1918 */ + +#line 278 "specparse.y" #include "specscanner.c" diff -Nru postgresql-13-13.4/src/test/isolation/specs/insert-conflict-specconflict.spec postgresql-13-13.7/src/test/isolation/specs/insert-conflict-specconflict.spec --- postgresql-13-13.4/src/test/isolation/specs/insert-conflict-specconflict.spec 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/specs/insert-conflict-specconflict.spec 2022-05-09 21:16:30.000000000 +0000 @@ -47,7 +47,6 @@ setup { SET default_transaction_isolation = 'read committed'; - SET application_name = 'isolation/insert-conflict-specconflict-controller'; } step controller_locks {SELECT pg_advisory_lock(sess, lock), sess, lock FROM generate_series(1, 2) a(sess), generate_series(1,3) b(lock);} step controller_unlock_1_1 { SELECT pg_advisory_unlock(1, 1); } @@ -66,7 +65,7 @@ WHERE locktype IN ('spectoken', 'transactionid') AND pa.datname = current_database() - AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' + AND pa.application_name LIKE 'isolation/insert-conflict-specconflict/s%' ORDER BY 1, 2, 3, 4; } @@ -75,7 +74,6 @@ { SET default_transaction_isolation = 'read committed'; SET spec.session = 1; - SET application_name = 'isolation/insert-conflict-specconflict-s1'; } step s1_begin { BEGIN; } step s1_create_non_unique_index { CREATE INDEX upserttest_key_idx ON upserttest((blurt_and_lock_4(key))); } @@ -90,7 +88,6 @@ { SET default_transaction_isolation = 'read committed'; SET spec.session = 2; - SET application_name = 'isolation/insert-conflict-specconflict-s2'; } step s2_begin { BEGIN; } step s2_upsert { INSERT INTO upserttest(key, data) VALUES('k1', 'inserted s2') ON CONFLICT (blurt_and_lock_123(key)) DO UPDATE SET data = upserttest.data || ' with conflict update s2'; } diff -Nru postgresql-13-13.4/src/test/isolation/specs/partition-drop-index-locking.spec postgresql-13-13.7/src/test/isolation/specs/partition-drop-index-locking.spec --- postgresql-13-13.4/src/test/isolation/specs/partition-drop-index-locking.spec 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/specs/partition-drop-index-locking.spec 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,47 @@ +# Verify that DROP INDEX properly locks all downward sub-partitions +# and partitions before locking the indexes. + +setup +{ + CREATE TABLE part_drop_index_locking (id int) PARTITION BY RANGE(id); + CREATE TABLE part_drop_index_locking_subpart PARTITION OF part_drop_index_locking FOR VALUES FROM (1) TO (100) PARTITION BY RANGE(id); + CREATE TABLE part_drop_index_locking_subpart_child PARTITION OF part_drop_index_locking_subpart FOR VALUES FROM (1) TO (100); + CREATE INDEX part_drop_index_locking_idx ON part_drop_index_locking(id); + CREATE INDEX part_drop_index_locking_subpart_idx ON part_drop_index_locking_subpart(id); +} + +teardown +{ + DROP TABLE part_drop_index_locking; +} + +# SELECT will take AccessShare lock first on the table and then on its index. +# We can simulate the case where DROP INDEX starts between those steps +# by manually taking the table lock beforehand. +session s1 +step s1begin { BEGIN; } +step s1lock { LOCK TABLE part_drop_index_locking_subpart_child IN ACCESS SHARE MODE; } +step s1select { SELECT * FROM part_drop_index_locking_subpart_child; } +step s1commit { COMMIT; } + +session s2 +step s2begin { BEGIN; } +step s2drop { DROP INDEX part_drop_index_locking_idx; } +step s2dropsub { DROP INDEX part_drop_index_locking_subpart_idx; } +step s2commit { COMMIT; } + +session s3 +step s3getlocks { + SELECT s.query, c.relname, l.mode, l.granted + FROM pg_locks l + JOIN pg_class c ON l.relation = c.oid + JOIN pg_stat_activity s ON l.pid = s.pid + WHERE c.relname LIKE 'part_drop_index_locking%' + ORDER BY s.query, c.relname, l.mode, l.granted; +} + +# Run DROP INDEX on top partitioned table +permutation s1begin s1lock s2begin s2drop(s1commit) s1select s3getlocks s1commit s3getlocks s2commit + +# Run DROP INDEX on top sub-partition table +permutation s1begin s1lock s2begin s2dropsub(s1commit) s1select s3getlocks s1commit s3getlocks s2commit diff -Nru postgresql-13-13.4/src/test/isolation/specs/reindex-concurrently-toast.spec postgresql-13-13.7/src/test/isolation/specs/reindex-concurrently-toast.spec --- postgresql-13-13.4/src/test/isolation/specs/reindex-concurrently-toast.spec 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/specs/reindex-concurrently-toast.spec 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,119 @@ +# REINDEX CONCURRENTLY with toast relations +# +# Ensure that concurrent operations work correctly when a REINDEX is performed +# concurrently on toast relations. Toast relation names are not deterministic, +# so this abuses of allow_system_table_mods to change the names of toast +# tables and its indexes so as they can be executed with REINDEX CONCURRENTLY, +# which cannot be launched in a transaction context. + +# Create a table, with deterministic names for its toast relation and indexes. +# Fortunately ALTER TABLE is transactional, making the renaming of toast +# relations possible with allow_system_table_mods. +setup +{ + CREATE TABLE reind_con_wide(id int primary key, data text); + INSERT INTO reind_con_wide + SELECT 1, repeat('1', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); + INSERT INTO reind_con_wide + SELECT 2, repeat('2', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); + SET allow_system_table_mods TO true; + DO $$DECLARE r record; + BEGIN + SELECT INTO r reltoastrelid::regclass::text AS table_name FROM pg_class + WHERE oid = 'reind_con_wide'::regclass; + EXECUTE 'ALTER TABLE ' || r.table_name || ' RENAME TO reind_con_toast;'; + SELECT INTO r indexrelid::regclass::text AS index_name FROM pg_index + WHERE indrelid = (SELECT oid FROM pg_class where relname = 'reind_con_toast'); + EXECUTE 'ALTER INDEX ' || r.index_name || ' RENAME TO reind_con_toast_idx;'; + END$$; +} + +teardown +{ + DROP TABLE IF EXISTS reind_con_wide; +} + +session s1 +setup { BEGIN; } +step lrex1 { lock TABLE reind_con_wide in ROW EXCLUSIVE MODE; } +step lsha1 { lock TABLE reind_con_wide in SHARE MODE; } +step lexc1 { lock TABLE reind_con_wide in EXCLUSIVE MODE; } +step ins1 { INSERT INTO reind_con_wide SELECT 3, repeat('3', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i); } +step upd1 { UPDATE reind_con_wide SET data = (SELECT repeat('4', 11) || string_agg(g.i::text || random()::text, '') FROM generate_series(1, 500) g(i)) WHERE id = 1; } +step del1 { DELETE FROM reind_con_wide WHERE id = 2; } +step dro1 { DROP TABLE reind_con_wide; } +step end1 { COMMIT; } +step rol1 { ROLLBACK; } + +session s2 +step retab2 { REINDEX TABLE CONCURRENTLY pg_toast.reind_con_toast; } +step reind2 { REINDEX INDEX CONCURRENTLY pg_toast.reind_con_toast_idx; } +step sel2 { SELECT id, substr(data, 1, 10) FROM reind_con_wide ORDER BY id; } + +# Transaction commit with ROW EXCLUSIVE MODE +permutation lrex1 ins1 retab2 end1 sel2 +permutation lrex1 ins1 reind2 end1 sel2 +permutation lrex1 upd1 retab2 end1 sel2 +permutation lrex1 upd1 reind2 end1 sel2 +permutation lrex1 del1 retab2 end1 sel2 +permutation lrex1 del1 reind2 end1 sel2 +permutation lrex1 dro1 retab2 end1 sel2 +permutation lrex1 dro1 reind2 end1 sel2 +permutation lrex1 retab2 dro1 end1 sel2 +permutation lrex1 reind2 dro1 end1 sel2 +# Transaction commit with SHARE MODE +permutation lsha1 ins1 retab2 end1 sel2 +permutation lsha1 ins1 reind2 end1 sel2 +permutation lsha1 upd1 retab2 end1 sel2 +permutation lsha1 upd1 reind2 end1 sel2 +permutation lsha1 del1 retab2 end1 sel2 +permutation lsha1 del1 reind2 end1 sel2 +permutation lsha1 dro1 retab2 end1 sel2 +permutation lsha1 dro1 reind2 end1 sel2 +permutation lsha1 retab2 dro1 end1 sel2 +permutation lsha1 reind2 dro1 end1 sel2 +# Transaction commit with EXCLUSIVE MODE +permutation lexc1 ins1 retab2 end1 sel2 +permutation lexc1 ins1 reind2 end1 sel2 +permutation lexc1 upd1 retab2 end1 sel2 +permutation lexc1 upd1 reind2 end1 sel2 +permutation lexc1 del1 retab2 end1 sel2 +permutation lexc1 del1 reind2 end1 sel2 +permutation lexc1 dro1 retab2 end1 sel2 +permutation lexc1 dro1 reind2 end1 sel2 +permutation lexc1 retab2 dro1 end1 sel2 +permutation lexc1 reind2 dro1 end1 sel2 + +# Transaction rollback with ROW EXCLUSIVE MODE +permutation lrex1 ins1 retab2 rol1 sel2 +permutation lrex1 ins1 reind2 rol1 sel2 +permutation lrex1 upd1 retab2 rol1 sel2 +permutation lrex1 upd1 reind2 rol1 sel2 +permutation lrex1 del1 retab2 rol1 sel2 +permutation lrex1 del1 reind2 rol1 sel2 +permutation lrex1 dro1 retab2 rol1 sel2 +permutation lrex1 dro1 reind2 rol1 sel2 +permutation lrex1 retab2 dro1 rol1 sel2 +permutation lrex1 reind2 dro1 rol1 sel2 +# Transaction rollback with SHARE MODE +permutation lsha1 ins1 retab2 rol1 sel2 +permutation lsha1 ins1 reind2 rol1 sel2 +permutation lsha1 upd1 retab2 rol1 sel2 +permutation lsha1 upd1 reind2 rol1 sel2 +permutation lsha1 del1 retab2 rol1 sel2 +permutation lsha1 del1 reind2 rol1 sel2 +permutation lsha1 dro1 retab2 rol1 sel2 +permutation lsha1 dro1 reind2 rol1 sel2 +permutation lsha1 retab2 dro1 rol1 sel2 +permutation lsha1 reind2 dro1 rol1 sel2 +# Transaction rollback with EXCLUSIVE MODE +permutation lexc1 ins1 retab2 rol1 sel2 +permutation lexc1 ins1 reind2 rol1 sel2 +permutation lexc1 upd1 retab2 rol1 sel2 +permutation lexc1 upd1 reind2 rol1 sel2 +permutation lexc1 del1 retab2 rol1 sel2 +permutation lexc1 del1 reind2 rol1 sel2 +permutation lexc1 dro1 retab2 rol1 sel2 +permutation lexc1 dro1 reind2 rol1 sel2 +permutation lexc1 retab2 dro1 rol1 sel2 +permutation lexc1 reind2 dro1 rol1 sel2 diff -Nru postgresql-13-13.4/src/test/isolation/specs/temp-schema-cleanup.spec postgresql-13-13.7/src/test/isolation/specs/temp-schema-cleanup.spec --- postgresql-13-13.4/src/test/isolation/specs/temp-schema-cleanup.spec 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/isolation/specs/temp-schema-cleanup.spec 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,85 @@ +# Test cleanup of objects in temporary schema. + +setup { + CREATE TABLE s1_temp_schema(oid oid); + -- to help create a long function + CREATE FUNCTION exec(p_foo text) RETURNS void LANGUAGE plpgsql AS $$BEGIN EXECUTE p_foo; END;$$; +} + +teardown { + DROP TABLE s1_temp_schema; + DROP FUNCTION exec(text); +} + +session "s1" +setup { + CREATE TEMPORARY TABLE just_to_create_temp_schema(); + DROP TABLE just_to_create_temp_schema; + INSERT INTO s1_temp_schema SELECT pg_my_temp_schema(); +} + +step s1_advisory { + SELECT pg_advisory_lock('pg_namespace'::regclass::int8); +} + +step s1_create_temp_objects { + + -- create function large enough to be toasted, to ensure we correctly clean those up, a prior bug + -- https://postgr.es/m/CAOFAq3BU5Mf2TTvu8D9n_ZOoFAeQswuzk7yziAb7xuw_qyw5gw%40mail.gmail.com + SELECT exec(format($outer$ + CREATE OR REPLACE FUNCTION pg_temp.long() RETURNS text LANGUAGE sql AS $body$ SELECT %L; $body$$outer$, + (SELECT string_agg(g.i::text||':'||random()::text, '|') FROM generate_series(1, 100) g(i)))); + + -- The above bug requirs function removal to happen after a catalog + -- invalidation. dependency.c sorts objects in descending oid order so + -- that newer objects are deleted before older objects, so create a + -- table after. + CREATE TEMPORARY TABLE invalidate_catalog_cache(); + + -- test non-temp function is dropped when depending on temp table + CREATE TEMPORARY TABLE just_give_me_a_type(id serial primary key); + + CREATE FUNCTION uses_a_temp_type(just_give_me_a_type) RETURNS int LANGUAGE sql AS $$SELECT 1;$$; +} + +step s1_discard_temp { + DISCARD TEMP; +} + +step s1_exit { + SELECT pg_terminate_backend(pg_backend_pid()); +} + + +session "s2" + +step s2_advisory { + SELECT pg_advisory_lock('pg_namespace'::regclass::int8); +} + +step s2_check_schema { + SELECT oid::regclass FROM pg_class WHERE relnamespace = (SELECT oid FROM s1_temp_schema); + SELECT oid::regproc FROM pg_proc WHERE pronamespace = (SELECT oid FROM s1_temp_schema); + SELECT oid::regproc FROM pg_type WHERE typnamespace = (SELECT oid FROM s1_temp_schema); +} + + +# Test temporary object cleanup during DISCARD. +permutation + s1_create_temp_objects + s1_discard_temp + s2_check_schema + +# Test temporary object cleanup during process exit. +# +# To check (in s2) if temporary objects (in s1) have properly been removed we +# need to wait for s1 to finish cleaning up. Luckily session level advisory +# locks are released only after temp table cleanup. +permutation + s1_advisory + s2_advisory + s1_create_temp_objects + s1_exit + s2_check_schema + +# Can't run further tests here, because s1's connection is dead diff -Nru postgresql-13-13.4/src/test/kerberos/t/001_auth.pl postgresql-13-13.7/src/test/kerberos/t/001_auth.pl --- postgresql-13-13.4/src/test/kerberos/t/001_auth.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/kerberos/t/001_auth.pl 2022-05-09 21:16:30.000000000 +0000 @@ -203,6 +203,8 @@ # As above, but test for an arbitrary query result. sub test_query { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($node, $role, $query, $expected, $gssencmode, $test_name) = @_; # need to connect over TCP/IP for Kerberos diff -Nru postgresql-13-13.4/src/test/ldap/t/001_auth.pl postgresql-13-13.7/src/test/ldap/t/001_auth.pl --- postgresql-13-13.4/src/test/ldap/t/001_auth.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/ldap/t/001_auth.pl 2022-05-09 21:16:30.000000000 +0000 @@ -127,10 +127,12 @@ last if ( system_log( - "ldapsearch", "-h", $ldap_server, "-p", - $ldap_port, "-s", "base", "-b", - $ldap_basedn, "-D", $ldap_rootdn, "-y", - $ldap_pwfile, "-n", "'objectclass=*'") == 0); + "ldapsearch", "-sbase", + "-H", $ldap_url, + "-b", $ldap_basedn, + "-D", $ldap_rootdn, + "-y", $ldap_pwfile, + "-n", "'objectclass=*'") == 0); die "cannot connect to slapd" if ++$retries >= 300; note "waiting for slapd to accept requests..."; Time::HiRes::usleep(1000000); diff -Nru postgresql-13-13.4/src/test/perl/PostgresNode.pm postgresql-13-13.7/src/test/perl/PostgresNode.pm --- postgresql-13-13.4/src/test/perl/PostgresNode.pm 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/perl/PostgresNode.pm 2022-05-09 21:16:30.000000000 +0000 @@ -31,7 +31,8 @@ my ($stdout, $stderr, $timed_out); my $cmdret = $node->psql('postgres', 'SELECT pg_sleep(600)', stdout => \$stdout, stderr => \$stderr, - timeout => 180, timed_out => \$timed_out, + timeout => $TestLib::timeout_default, + timed_out => \$timed_out, extra_params => ['--single-transaction'], on_error_die => 1) print "Sleep timed out" if $timed_out; @@ -783,6 +784,11 @@ { print "# pg_ctl start failed; logfile:\n"; print TestLib::slurp_file($self->logfile); + + # pg_ctl could have timed out, so check to see if there's a pid file; + # otherwise our END block will fail to shut down the new postmaster. + $self->_update_pid(-1); + BAIL_OUT("pg_ctl start failed") unless $params{fail_ok}; return 0; } @@ -809,9 +815,7 @@ my $name = $self->name; return unless defined $self->{_pid}; print "### Killing node \"$name\" using signal 9\n"; - # kill(9, ...) fails under msys Perl 5.8.8, so fall back on pg_ctl. - kill(9, $self->{_pid}) - or TestLib::system_or_bail('pg_ctl', 'kill', 'KILL', $self->{_pid}); + kill(9, $self->{_pid}); $self->{_pid} = undef; return; } @@ -826,20 +830,37 @@ However, if we think it's running and it's not, it's important for this to fail. Otherwise, tests might fail to detect server crashes. +With optional extra param fail_ok => 1, returns 0 for failure +instead of bailing out. + =cut sub stop { - my ($self, $mode) = @_; - my $port = $self->port; + my ($self, $mode, %params) = @_; my $pgdata = $self->data_dir; my $name = $self->name; + my $ret; $mode = 'fast' unless defined $mode; - return unless defined $self->{_pid}; + return 1 unless defined $self->{_pid}; + print "### Stopping node \"$name\" using mode $mode\n"; - TestLib::system_or_bail('pg_ctl', '-D', $pgdata, '-m', $mode, 'stop'); + $ret = TestLib::system_log('pg_ctl', '-D', $pgdata, + '-m', $mode, 'stop'); + + if ($ret != 0) + { + print "# pg_ctl stop failed: $ret\n"; + + # Check to see if we still have a postmaster or not. + $self->_update_pid(-1); + + BAIL_OUT("pg_ctl stop failed") unless $params{fail_ok}; + return 0; + } + $self->_update_pid(0); - return; + return 1; } =pod @@ -953,7 +974,7 @@ sub enable_restoring { my ($self, $root_node, $standby) = @_; - my $path = TestLib::perl2host($root_node->archive_dir); + my $path = $root_node->archive_dir; my $name = $self->name; print "### Enabling WAL restore for node \"$name\"\n"; @@ -1021,7 +1042,7 @@ sub enable_archiving { my ($self) = @_; - my $path = TestLib::perl2host($self->archive_dir); + my $path = $self->archive_dir; my $name = $self->name; print "### Enabling WAL archiving for node \"$name\"\n"; @@ -1047,7 +1068,10 @@ return; } -# Internal method +# Internal method to update $self->{_pid} +# $is_running = 1: pid file should be there +# $is_running = 0: pid file should NOT be there +# $is_running = -1: we aren't sure sub _update_pid { my ($self, $is_running) = @_; @@ -1058,11 +1082,22 @@ if (open my $pidfile, '<', $self->data_dir . "/postmaster.pid") { chomp($self->{_pid} = <$pidfile>); - print "# Postmaster PID for node \"$name\" is $self->{_pid}\n"; close $pidfile; + # If we aren't sure what to expect, validate the PID using kill(). + # This protects against stale PID files left by crashed postmasters. + if ($is_running == -1 && kill(0, $self->{_pid}) == 0) + { + print + "# Stale postmaster.pid file for node \"$name\": PID $self->{_pid} no longer exists\n"; + $self->{_pid} = undef; + return; + } + + print "# Postmaster PID for node \"$name\" is $self->{_pid}\n"; + # If we found a pidfile when there shouldn't be one, complain. - BAIL_OUT("postmaster.pid unexpectedly present") unless $is_running; + BAIL_OUT("postmaster.pid unexpectedly present") if $is_running == 0; return; } @@ -1070,7 +1105,7 @@ print "# No postmaster PID for node \"$name\"\n"; # Complain if we expected to find a pidfile. - BAIL_OUT("postmaster.pid unexpectedly not present") if $is_running; + BAIL_OUT("postmaster.pid unexpectedly not present") if $is_running == 1; return; } @@ -1412,7 +1447,8 @@ my ($stdout, $stderr, $timed_out); my $cmdret = $node->psql('postgres', 'SELECT pg_sleep(600)', stdout => \$stdout, stderr => \$stderr, - timeout => 180, timed_out => \$timed_out, + timeout => $TestLib::timeout_default, + timed_out => \$timed_out, extra_params => ['--single-transaction']) will set $cmdret to undef and $timed_out to a true value. @@ -1522,19 +1558,13 @@ } }; - # Note: on Windows, IPC::Run seems to convert \r\n to \n in program output - # if we're using native Perl, but not if we're using MSys Perl. So do it - # by hand in the latter case, here and elsewhere. - if (defined $$stdout) { - $$stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys'; chomp $$stdout; } if (defined $$stderr) { - $$stderr =~ s/\r\n/\n/g if $Config{osname} eq 'msys'; chomp $$stderr; } @@ -1573,6 +1603,97 @@ =pod +=item $node->background_psql($dbname, \$stdin, \$stdout, $timer, %params) => harness + +Invoke B on B<$dbname> and return an IPC::Run harness object, which the +caller may use to send input to B. The process's stdin is sourced from +the $stdin scalar reference, and its stdout and stderr go to the $stdout +scalar reference. This allows the caller to act on other parts of the system +while idling this backend. + +The specified timer object is attached to the harness, as well. It's caller's +responsibility to set the timeout length (usually +$TestLib::timeout_default), and to restart the timer after +each command if the timeout is per-command. + +psql is invoked in tuples-only unaligned mode with reading of B<.psqlrc> +disabled. That may be overridden by passing extra psql parameters. + +Dies on failure to invoke psql, or if psql fails to connect. Errors occurring +later are the caller's problem. psql runs with on_error_stop by default so +that it will stop running sql and return 3 if passed SQL results in an error. + +Be sure to "finish" the harness when done with it. + +=over + +=item on_error_stop => 1 + +By default, the B method invokes the B program with ON_ERROR_STOP=1 +set, so SQL execution is stopped at the first error and exit code 3 is +returned. Set B to 0 to ignore errors instead. + +=item replication => B + +If set, add B to the conninfo string. +Passing the literal value C results in a logical replication +connection. + +=item extra_params => ['--single-transaction'] + +If given, it must be an array reference containing additional parameters to B. + +=back + +=cut + +sub background_psql +{ + my ($self, $dbname, $stdin, $stdout, $timer, %params) = @_; + + local $ENV{PGHOST} = $self->host; + local $ENV{PGPORT} = $self->port; + + my $replication = $params{replication}; + + my @psql_params = ( + 'psql', + '-XAtq', + '-d', + $self->connstr($dbname) + . (defined $replication ? " replication=$replication" : ""), + '-f', + '-'); + + $params{on_error_stop} = 1 unless defined $params{on_error_stop}; + + push @psql_params, '-v', 'ON_ERROR_STOP=1' if $params{on_error_stop}; + push @psql_params, @{ $params{extra_params} } + if defined $params{extra_params}; + + # Ensure there is no data waiting to be sent: + $$stdin = "" if ref($stdin); + # IPC::Run would otherwise append to existing contents: + $$stdout = "" if ref($stdout); + + my $harness = IPC::Run::start \@psql_params, + '<', $stdin, '>', $stdout, $timer; + + # Request some output, and pump until we see it. This means that psql + # connection failures are caught here, relieving callers of the need to + # handle those. (Right now, we have no particularly good handling for + # errors anyway, but that might be added later.) + my $banner = "background_psql: ready"; + $$stdin = "\\echo $banner\n"; + pump $harness until $$stdout =~ /$banner/ || $timer->is_expired; + + die "psql startup timed out" if $timer->is_expired; + + return $harness; +} + +=pod + =item $node->interactive_psql($dbname, \$stdin, \$stdout, $timer, %params) => harness Invoke B on B<$dbname> and return an IPC::Run harness object, @@ -1581,9 +1702,10 @@ and its stdout and stderr go to the $stdout scalar reference. ptys are used so that psql thinks it's being called interactively. -The specified timer object is attached to the harness, as well. -It's caller's responsibility to select the timeout length, and to -restart the timer after each command if the timeout is per-command. +The specified timer object is attached to the harness, as well. It's caller's +responsibility to set the timeout length (usually +$TestLib::timeout_default), and to restart the timer after +each command if the timeout is per-command. psql is invoked in tuples-only unaligned mode with reading of B<.psqlrc> disabled. That may be overridden by passing extra psql parameters. @@ -1638,6 +1760,92 @@ return $harness; } +# Common sub of pgbench-invoking interfaces. Makes any requested script files +# and returns pgbench command-line options causing use of those files. +sub _pgbench_make_files +{ + my ($self, $files) = @_; + my @file_opts; + + if (defined $files) + { + + # note: files are ordered for determinism + for my $fn (sort keys %$files) + { + my $filename = $self->basedir . '/' . $fn; + push @file_opts, '-f', $filename; + + # cleanup file weight + $filename =~ s/\@\d+$//; + + #push @filenames, $filename; + # filenames are expected to be unique on a test + if (-e $filename) + { + ok(0, "$filename must not already exist"); + unlink $filename or die "cannot unlink $filename: $!"; + } + TestLib::append_to_file($filename, $$files{$fn}); + } + } + + return @file_opts; +} + +=pod + +=item $node->pgbench($opts, $stat, $out, $err, $name, $files, @args) + +Invoke B, with parameters and files. + +=over + +=item $opts + +Options as a string to be split on spaces. + +=item $stat + +Expected exit status. + +=item $out + +Reference to a regexp list that must match stdout. + +=item $err + +Reference to a regexp list that must match stderr. + +=item $name + +Name of test for error messages. + +=item $files + +Reference to filename/contents dictionary. + +=item @args + +Further raw options or arguments. + +=back + +=cut + +sub pgbench +{ + local $Test::Builder::Level = $Test::Builder::Level + 1; + + my ($self, $opts, $stat, $out, $err, $name, $files, @args) = @_; + my @cmd = ( + 'pgbench', + split(/\s+/, $opts), + $self->_pgbench_make_files($files), @args); + + $self->command_checks_all(\@cmd, $stat, $out, $err, $name); +} + =pod =item $node->poll_query_until($dbname, $query [, $expected ]) @@ -1645,7 +1853,7 @@ Run B<$query> repeatedly, until it returns the B<$expected> result ('t', or SQL boolean true, by default). Continues polling if B returns an error result. -Times out after 180 seconds. +Times out after $TestLib::timeout_default seconds. Returns 1 if successful, 0 if timed out. =cut @@ -1658,7 +1866,7 @@ my $cmd = [ 'psql', '-XAt', '-d', $self->connstr($dbname) ]; my ($stdout, $stderr); - my $max_attempts = 180 * 10; + my $max_attempts = 10 * $TestLib::timeout_default; my $attempts = 0; while ($attempts < $max_attempts) @@ -1666,9 +1874,7 @@ my $result = IPC::Run::run $cmd, '<', \$query, '>', \$stdout, '2>', \$stderr; - $stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys'; chomp($stdout); - $stderr =~ s/\r\n/\n/g if $Config{osname} eq 'msys'; chomp($stderr); if ($stdout eq $expected && $stderr eq '') @@ -1682,8 +1888,8 @@ $attempts++; } - # The query result didn't change in 180 seconds. Give up. Print the - # output from the last attempt, hopefully that's useful for debugging. + # Give up. Print the output from the last attempt, hopefully that's useful + # for debugging. diag qq(poll_query_until timed out executing this query: $query expecting this output: @@ -1978,6 +2184,41 @@ =pod +=item $node->wait_for_log(regexp, offset) + +Waits for the contents of the server log file, starting at the given offset, to +match the supplied regular expression. Checks the entire log if no offset is +given. Times out after $TestLib::timeout_default seconds. + +If successful, returns the length of the entire log file, in bytes. + +=cut + +sub wait_for_log +{ + my ($self, $regexp, $offset) = @_; + $offset = 0 unless defined $offset; + + my $max_attempts = 10 * $TestLib::timeout_default; + my $attempts = 0; + + while ($attempts < $max_attempts) + { + my $log = TestLib::slurp_file($self->logfile, $offset); + + return $offset+length($log) if ($log =~ m/$regexp/); + + # Wait 0.1 second before retrying. + usleep(100_000); + + $attempts++; + } + + croak "timed out waiting for match: $regexp"; +} + +=pod + =item $node->query_hash($dbname, $query, @columns) Execute $query on $dbname, replacing any appearance of the string __COLUMNS__ @@ -2125,9 +2366,6 @@ } }; - $stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys'; - $stderr =~ s/\r\n/\n/g if $Config{osname} eq 'msys'; - if (wantarray) { return ($ret, $stdout, $stderr, $timeout); @@ -2143,8 +2381,53 @@ =pod +=item $node->corrupt_page_checksum(self, file, page_offset) + +Intentionally corrupt the checksum field of one page in a file. +The server must be stopped for this to work reliably. + +The file name should be specified relative to the cluster datadir. +page_offset had better be a multiple of the cluster's block size. + +=cut + +sub corrupt_page_checksum +{ + my ($self, $file, $page_offset) = @_; + my $pgdata = $self->data_dir; + my $pageheader; + + open my $fh, '+<', "$pgdata/$file" or die "open($file) failed: $!"; + binmode $fh; + sysseek($fh, $page_offset, 0) or die "sysseek failed: $!"; + sysread($fh, $pageheader, 24) or die "sysread failed: $!"; + # This inverts the pd_checksum field (only); see struct PageHeaderData + $pageheader ^= "\0\0\0\0\0\0\0\0\xff\xff"; + sysseek($fh, $page_offset, 0) or die "sysseek failed: $!"; + syswrite($fh, $pageheader) or die "syswrite failed: $!"; + close $fh; + + return; +} + +=pod + =back =cut +# support release 15+ perl module namespace + +package PostgreSQL::Test::Cluster; ## no critic (ProhibitMultiplePackages) + +sub new +{ + shift; # remove class param from args + return PostgresNode->get_new_node(@_); +} + +no warnings 'once'; + +*get_free_port = *PostgresNode::get_free_port; + 1; diff -Nru postgresql-13-13.4/src/test/perl/PostgreSQL/Test/Cluster.pm postgresql-13-13.7/src/test/perl/PostgreSQL/Test/Cluster.pm --- postgresql-13-13.4/src/test/perl/PostgreSQL/Test/Cluster.pm 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/perl/PostgreSQL/Test/Cluster.pm 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,16 @@ + +# Copyright (c) 2022, PostgreSQL Global Development Group + +# allow use of release 15+ perl namespace in older branches +# just 'use' the older module name. +# See PostgresNode.pm for function implementations + +package PostgreSQL::Test::Cluster; + +use strict; +use warnings; + +use PostgresNode; + +1; + diff -Nru postgresql-13-13.4/src/test/perl/PostgreSQL/Test/Utils.pm postgresql-13-13.7/src/test/perl/PostgreSQL/Test/Utils.pm --- postgresql-13-13.4/src/test/perl/PostgreSQL/Test/Utils.pm 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/perl/PostgreSQL/Test/Utils.pm 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,46 @@ +# Copyright (c) 2022, PostgreSQL Global Development Group + +# allow use of release 15+ perl namespace in older branches +# just 'use' the older module name. +# We export the same names as the v15 module. +# See TestLib.pm for alias assignment that makes this all work. + +package PostgreSQL::Test::Utils; + +use strict; +use warnings; + +use Exporter 'import'; + +use TestLib; + +our @EXPORT = qw( + generate_ascii_string + slurp_dir + slurp_file + append_to_file + check_mode_recursive + chmod_recursive + check_pg_config + system_or_bail + system_log + run_log + run_command + pump_until + + command_ok + command_fails + command_exit_is + program_help_ok + program_version_ok + program_options_handling_ok + command_like + command_like_safe + command_fails_like + command_checks_all + + $windows_os + $use_unix_sockets +); + +1; diff -Nru postgresql-13-13.4/src/test/perl/README postgresql-13-13.7/src/test/perl/README --- postgresql-13-13.4/src/test/perl/README 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/perl/README 2022-05-09 21:16:30.000000000 +0000 @@ -61,9 +61,17 @@ #39185 by not using the "$" regular expression metacharacter in qr// when also using the "/m" modifier. Instead of "$", use "\n" or "(?=\n|\z)". -Read the Test::More documentation for more on how to write tests: +Test::Builder::Level controls how far up in the call stack a test will look +at when reporting a failure. This should be incremented by any subroutine +which directly or indirectly calls test routines from Test::More, such as +ok() or is(): + + local $Test::Builder::Level = $Test::Builder::Level + 1; + +Read the documentation for more on how to write tests: perldoc Test::More + perldoc Test::Builder For available PostgreSQL-specific test methods and some example tests read the perldoc for the test modules, e.g.: diff -Nru postgresql-13-13.4/src/test/perl/TestLib.pm postgresql-13-13.7/src/test/perl/TestLib.pm --- postgresql-13-13.4/src/test/perl/TestLib.pm 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/perl/TestLib.pm 2022-05-09 21:16:30.000000000 +0000 @@ -22,7 +22,6 @@ # Miscellanea print "on Windows" if $TestLib::windows_os; - my $path = TestLib::perl2host($backup_dir); ok(check_mode_recursive($stream_dir, 0700, 0600), "check stream dir permissions"); TestLib::system_log('pg_ctl', 'kill', 'QUIT', $slow_pid); @@ -71,6 +70,7 @@ system_log run_log run_command + pump_until command_ok command_fails @@ -87,7 +87,8 @@ $use_unix_sockets ); -our ($windows_os, $use_unix_sockets, $tmp_check, $log_path, $test_logfile); +our ($windows_os, $use_unix_sockets, $timeout_default, + $tmp_check, $log_path, $test_logfile); BEGIN { @@ -137,7 +138,7 @@ if ($windows_os) { require Win32API::File; - Win32API::File->import(qw(createFile OsFHandleOpen CloseHandle setFilePointer)); + Win32API::File->import(qw(createFile OsFHandleOpen CloseHandle)); } # Specifies whether to use Unix sockets for test setups. On @@ -145,6 +146,10 @@ # supported, but it can be overridden if desired. $use_unix_sockets = (!$windows_os || defined $ENV{PG_TEST_USE_UNIX_SOCKETS}); + + $timeout_default = $ENV{PG_TEST_TIMEOUT_DEFAULT}; + $timeout_default = 180 + if not defined $timeout_default or $timeout_default eq ''; } =pod @@ -281,36 +286,25 @@ =pod -=item perl2host() +=item has_wal_read_bug() -Translate a Perl file name to a host file name. Currently, this is a no-op -except for the case of Perl=msys and host=mingw32. The subject need not -exist, but its parent directory must exist. +Returns true if $tmp_check is subject to a sparc64+ext4 bug that causes WAL +readers to see zeros if another process simultaneously wrote the same offsets. +Consult this in tests that fail frequently on affected configurations. The +bug has made streaming standbys fail to advance, reporting corrupt WAL. It +has made COMMIT PREPARED fail with "could not read two-phase state from WAL". +Non-WAL PostgreSQL reads haven't been affected, likely because those readers +and writers have buffering systems in common. See +https://postgr.es/m/20220116210241.GC756210@rfd.leadboat.com for details. =cut -sub perl2host +sub has_wal_read_bug { - my ($subject) = @_; - return $subject unless $Config{osname} eq 'msys'; - my $here = cwd; - my $leaf; - if (chdir $subject) - { - $leaf = ''; - } - else - { - $leaf = '/' . basename $subject; - my $parent = dirname $subject; - chdir $parent or die "could not chdir \"$parent\": $!"; - } - - # this odd way of calling 'pwd -W' is the only way that seems to work. - my $dir = qx{sh -c "pwd -W"}; - chomp $dir; - chdir $here; - return $dir . $leaf; + return + $Config{osname} eq 'linux' + && $Config{archname} =~ /^sparc/ + && !run_log([ qw(df -x ext4), $tmp_check ], '>', '/dev/null', '2>&1'); } =pod @@ -384,6 +378,36 @@ =pod +=item pump_until(proc, timeout, stream, until) + +Pump until string is matched on the specified stream, or timeout occurs. + +=cut + +sub pump_until +{ + my ($proc, $timeout, $stream, $until) = @_; + $proc->pump_nb(); + while (1) + { + last if $$stream =~ /$until/; + if ($timeout->is_expired) + { + diag("pump_until: timeout expired when searching for \"$until\" with stream: \"$$stream\""); + return 0; + } + if (not $proc->pumpable()) + { + diag("pump_until: process terminated unexpectedly when searching for \"$until\" with stream: \"$$stream\""); + return 0; + } + $proc->pump(); + } + return 1; +} + +=pod + =item generate_ascii_string(from_char, to_char) Generate a string made of the given range of ASCII characters. @@ -434,34 +458,33 @@ my ($filename, $offset) = @_; local $/; my $contents; + my $fh; + + # On windows open file using win32 APIs, to allow us to set the + # FILE_SHARE_DELETE flag ("d" below), otherwise other accesses to the file + # may fail. if ($Config{osname} ne 'MSWin32') { - open(my $in, '<', $filename) + open($fh, '<', $filename) or die "could not read \"$filename\": $!"; - if (defined($offset)) - { - seek($in, $offset, SEEK_SET) - or die "could not seek \"$filename\": $!"; - } - $contents = <$in>; - close $in; } else { my $fHandle = createFile($filename, "r", "rwd") or die "could not open \"$filename\": $^E"; - OsFHandleOpen(my $fh = IO::Handle->new(), $fHandle, 'r') + OsFHandleOpen($fh = IO::Handle->new(), $fHandle, 'r') or die "could not read \"$filename\": $^E\n"; - if (defined($offset)) - { - setFilePointer($fh, $offset, qw(FILE_BEGIN)) - or die "could not seek \"$filename\": $^E\n"; - } - $contents = <$fh>; - CloseHandle($fHandle) - or die "could not close \"$filename\": $^E\n"; } - $contents =~ s/\r\n/\n/g if $Config{osname} eq 'msys'; + + if (defined($offset)) + { + seek($fh, $offset, SEEK_SET) + or die "could not seek \"$filename\": $!"; + } + + $contents = <$fh>; + close $fh; + return $contents; } @@ -908,4 +931,44 @@ =cut +# support release 15+ perl module namespace + +package PostgreSQL::Test::Utils; ## no critic (ProhibitMultiplePackages) + +# we don't want to export anything here, but we want to support things called +# via this package name explicitly. + +# use typeglobs to alias these functions and variables + +no warnings qw(once); + +*generate_ascii_string = *TestLib::generate_ascii_string; +*slurp_dir = *TestLib::slurp_dir; +*slurp_file = *TestLib::slurp_file; +*append_to_file = *TestLib::append_to_file; +*check_mode_recursive = *TestLib::check_mode_recursive; +*chmod_recursive = *TestLib::chmod_recursive; +*check_pg_config = *TestLib::check_pg_config; +*system_or_bail = *TestLib::system_or_bail; +*system_log = *TestLib::system_log; +*run_log = *TestLib::run_log; +*run_command = *TestLib::run_command; +*command_ok = *TestLib::command_ok; +*command_fails = *TestLib::command_fails; +*command_exit_is = *TestLib::command_exit_is; +*program_help_ok = *TestLib::program_help_ok; +*program_version_ok = *TestLib::program_version_ok; +*program_options_handling_ok = *TestLib::program_options_handling_ok; +*command_like = *TestLib::command_like; +*command_like_safe = *TestLib::command_like_safe; +*command_fails_like = *TestLib::command_fails_like; +*command_checks_all = *TestLib::command_checks_all; + +*windows_os = *TestLib::windows_os; +*use_unix_sockets = *TestLib::use_unix_sockets; +*timeout_default = *TestLib::timeout_default; +*tmp_check = *TestLib::tmp_check; +*log_path = *TestLib::log_path; +*test_logfile = *TestLib::test_log_file; + 1; diff -Nru postgresql-13-13.4/src/test/recovery/t/001_stream_rep.pl postgresql-13-13.7/src/test/recovery/t/001_stream_rep.pl --- postgresql-13-13.4/src/test/recovery/t/001_stream_rep.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/001_stream_rep.pl 2022-05-09 21:16:30.000000000 +0000 @@ -72,6 +72,8 @@ # target_session_attrs with multiple nodes. sub test_target_session_attrs { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my $node1 = shift; my $node2 = shift; my $target_node = shift; diff -Nru postgresql-13-13.4/src/test/recovery/t/002_archiving.pl postgresql-13-13.7/src/test/recovery/t/002_archiving.pl --- postgresql-13-13.4/src/test/recovery/t/002_archiving.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/002_archiving.pl 2022-05-09 21:16:30.000000000 +0000 @@ -3,7 +3,7 @@ use warnings; use PostgresNode; use TestLib; -use Test::More tests => 3; +use Test::More tests => 4; use File::Copy; # Initialize master node, doing archives @@ -21,6 +21,8 @@ # Initialize standby node from backup, fetching WAL from archives my $node_standby = get_new_node('standby'); +# Note that this makes the standby store its contents on the archives +# of the primary. $node_standby->init_from_backup($node_master, $backup_name, has_restoring => 1); $node_standby->append_conf('postgresql.conf', @@ -55,19 +57,39 @@ # file, switch to a timeline large enough to allow a standby to recover # a history file from an archive. As this requires at least two timeline # switches, promote the existing standby first. Then create a second -# standby based on the promoted one. Finally, the second standby is -# promoted. +# standby based on the primary, using its archives. Finally, the second +# standby is promoted. $node_standby->promote; +# Wait until the history file has been stored on the archives of the +# primary once the promotion of the standby completes. This ensures that +# the second standby created below will be able to restore this file, +# creating a RECOVERYHISTORY. +my $primary_archive = $node_master->archive_dir; +$caughtup_query = + "SELECT size IS NOT NULL FROM pg_stat_file('$primary_archive/00000002.history')"; +$node_master->poll_query_until('postgres', $caughtup_query) + or die "Timed out while waiting for archiving of 00000002.history"; + my $node_standby2 = get_new_node('standby2'); $node_standby2->init_from_backup($node_master, $backup_name, has_restoring => 1); $node_standby2->start; +my $log_location = -s $node_standby2->logfile; + # Now promote standby2, and check that temporary files specifically # generated during archive recovery are removed by the end of recovery. $node_standby2->promote; + +# Check the logs of the standby to see that the commands have failed. +my $log_contents = slurp_file($node_standby2->logfile, $log_location); my $node_standby2_data = $node_standby2->data_dir; + +like( + $log_contents, + qr/restored log file "00000002.history" from archive/s, + "00000002.history retrieved from the archives"); ok( !-f "$node_standby2_data/pg_wal/RECOVERYHISTORY", "RECOVERYHISTORY removed after promotion"); ok( !-f "$node_standby2_data/pg_wal/RECOVERYXLOG", diff -Nru postgresql-13-13.4/src/test/recovery/t/003_recovery_targets.pl postgresql-13-13.7/src/test/recovery/t/003_recovery_targets.pl --- postgresql-13-13.4/src/test/recovery/t/003_recovery_targets.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/003_recovery_targets.pl 2022-05-09 21:16:30.000000000 +0000 @@ -11,6 +11,8 @@ # count to reach $num_rows, yet not later than the recovery target. sub test_recovery_standby { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my $test_name = shift; my $node_name = shift; my $node_master = shift; @@ -167,8 +169,8 @@ $node_standby->logfile, 'start' ]); -# wait up to 180s for postgres to terminate -foreach my $i (0 .. 1800) +# wait for postgres to terminate +foreach my $i (0 .. 10 * $TestLib::timeout_default) { last if !-f $node_standby->data_dir . '/postmaster.pid'; usleep(100_000); diff -Nru postgresql-13-13.4/src/test/recovery/t/006_logical_decoding.pl postgresql-13-13.7/src/test/recovery/t/006_logical_decoding.pl --- postgresql-13-13.4/src/test/recovery/t/006_logical_decoding.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/006_logical_decoding.pl 2022-05-09 21:16:30.000000000 +0000 @@ -95,7 +95,7 @@ ); my $stdout_recv = $node_master->pg_recvlogical_upto( - 'postgres', 'test_slot', $endpos, 180, + 'postgres', 'test_slot', $endpos, $TestLib::timeout_default, 'include-xids' => '0', 'skip-empty-xacts' => '1'); chomp($stdout_recv); @@ -107,7 +107,7 @@ ) or die "slot never became inactive"; $stdout_recv = $node_master->pg_recvlogical_upto( - 'postgres', 'test_slot', $endpos, 180, + 'postgres', 'test_slot', $endpos, $TestLib::timeout_default, 'include-xids' => '0', 'skip-empty-xacts' => '1'); chomp($stdout_recv); diff -Nru postgresql-13-13.4/src/test/recovery/t/007_sync_rep.pl postgresql-13-13.7/src/test/recovery/t/007_sync_rep.pl --- postgresql-13-13.4/src/test/recovery/t/007_sync_rep.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/007_sync_rep.pl 2022-05-09 21:16:30.000000000 +0000 @@ -14,6 +14,8 @@ # the configuration file is reloaded before the test. sub test_sync_state { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($self, $expected, $msg, $setting) = @_; if (defined($setting)) diff -Nru postgresql-13-13.4/src/test/recovery/t/009_twophase.pl postgresql-13-13.7/src/test/recovery/t/009_twophase.pl --- postgresql-13-13.4/src/test/recovery/t/009_twophase.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/009_twophase.pl 2022-05-09 21:16:30.000000000 +0000 @@ -11,6 +11,8 @@ sub configure_and_reload { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($node, $parameter) = @_; my $name = $node->name; diff -Nru postgresql-13-13.4/src/test/recovery/t/010_logical_decoding_timelines.pl postgresql-13-13.7/src/test/recovery/t/010_logical_decoding_timelines.pl --- postgresql-13-13.4/src/test/recovery/t/010_logical_decoding_timelines.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/010_logical_decoding_timelines.pl 2022-05-09 21:16:30.000000000 +0000 @@ -155,7 +155,7 @@ ($ret, $stdout, $stderr) = $node_replica->psql( 'postgres', "SELECT data FROM pg_logical_slot_peek_changes('before_basebackup', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');", - timeout => 180); + timeout => $TestLib::timeout_default); is($ret, 0, 'replay from slot before_basebackup succeeds'); my $final_expected_output_bb = q(BEGIN @@ -184,7 +184,7 @@ $stdout = $node_replica->pg_recvlogical_upto( 'postgres', 'before_basebackup', - $endpos, 180, + $endpos, $TestLib::timeout_default, 'include-xids' => '0', 'skip-empty-xacts' => '1'); diff -Nru postgresql-13-13.4/src/test/recovery/t/013_crash_restart.pl postgresql-13-13.7/src/test/recovery/t/013_crash_restart.pl --- postgresql-13-13.4/src/test/recovery/t/013_crash_restart.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/013_crash_restart.pl 2022-05-09 21:16:30.000000000 +0000 @@ -23,7 +23,7 @@ # instance being driven by us, add a timeout high enough that it # should never trigger even on very slow machines, unless something # is really wrong. -my $psql_timeout = IPC::Run::timer(60); +my $psql_timeout = IPC::Run::timer($TestLib::timeout_default); my $node = get_new_node('master'); $node->init(allows_streaming => 1); @@ -72,7 +72,7 @@ INSERT INTO alive VALUES($$committed-before-sigquit$$); SELECT pg_backend_pid(); ]; -ok(pump_until($killme, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m), +ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m), 'acquired pid for SIGQUIT'); my $pid = $killme_stdout; chomp($pid); @@ -84,7 +84,7 @@ BEGIN; INSERT INTO alive VALUES($$in-progress-before-sigquit$$) RETURNING status; ]; -ok(pump_until($killme, \$killme_stdout, qr/in-progress-before-sigquit/m), +ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/in-progress-before-sigquit/m), 'inserted in-progress-before-sigquit'); $killme_stdout = ''; $killme_stderr = ''; @@ -97,7 +97,7 @@ SELECT $$psql-connected$$; SELECT pg_sleep(3600); ]; -ok(pump_until($monitor, \$monitor_stdout, qr/psql-connected/m), +ok(pump_until($monitor, $psql_timeout, \$monitor_stdout, qr/psql-connected/m), 'monitor connected'); $monitor_stdout = ''; $monitor_stderr = ''; @@ -114,6 +114,7 @@ ]; ok( pump_until( $killme, + $psql_timeout, \$killme_stderr, qr/WARNING: terminating connection because of crash of another server process|server closed the connection unexpectedly|connection to server was lost/m ), @@ -127,6 +128,7 @@ # sending. ok( pump_until( $monitor, + $psql_timeout, \$monitor_stderr, qr/WARNING: terminating connection because of crash of another server process|server closed the connection unexpectedly|connection to server was lost/m ), @@ -149,7 +151,7 @@ $killme_stdin .= q[ SELECT pg_backend_pid(); ]; -ok(pump_until($killme, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m), +ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/[[:digit:]]+[\r\n]$/m), "acquired pid for SIGKILL"); $pid = $killme_stdout; chomp($pid); @@ -162,7 +164,7 @@ BEGIN; INSERT INTO alive VALUES($$in-progress-before-sigkill$$) RETURNING status; ]; -ok(pump_until($killme, \$killme_stdout, qr/in-progress-before-sigkill/m), +ok(pump_until($killme, $psql_timeout, \$killme_stdout, qr/in-progress-before-sigkill/m), 'inserted in-progress-before-sigkill'); $killme_stdout = ''; $killme_stderr = ''; @@ -174,7 +176,7 @@ SELECT $$psql-connected$$; SELECT pg_sleep(3600); ]; -ok(pump_until($monitor, \$monitor_stdout, qr/psql-connected/m), +ok(pump_until($monitor, $psql_timeout, \$monitor_stdout, qr/psql-connected/m), 'monitor connected'); $monitor_stdout = ''; $monitor_stderr = ''; @@ -192,6 +194,7 @@ ]; ok( pump_until( $killme, + $psql_timeout, \$killme_stderr, qr/server closed the connection unexpectedly|connection to server was lost/m ), @@ -203,6 +206,7 @@ # sending. ok( pump_until( $monitor, + $psql_timeout, \$monitor_stderr, qr/WARNING: terminating connection because of crash of another server process|server closed the connection unexpectedly|connection to server was lost/m ), @@ -240,33 +244,3 @@ 'can still write after orderly restart'); $node->stop(); - -# Pump until string is matched, or timeout occurs -sub pump_until -{ - my ($proc, $stream, $untl) = @_; - $proc->pump_nb(); - while (1) - { - last if $$stream =~ /$untl/; - if ($psql_timeout->is_expired) - { - diag("aborting wait: program timed out"); - diag("stream contents: >>", $$stream, "<<"); - diag("pattern searched for: ", $untl); - - return 0; - } - if (not $proc->pumpable()) - { - diag("aborting wait: program died"); - diag("stream contents: >>", $$stream, "<<"); - diag("pattern searched for: ", $untl); - - return 0; - } - $proc->pump(); - } - return 1; - -} diff -Nru postgresql-13-13.4/src/test/recovery/t/014_unlogged_reinit.pl postgresql-13-13.7/src/test/recovery/t/014_unlogged_reinit.pl --- postgresql-13-13.4/src/test/recovery/t/014_unlogged_reinit.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/014_unlogged_reinit.pl 2022-05-09 21:16:30.000000000 +0000 @@ -30,9 +30,7 @@ my $tablespaceDir = TestLib::tempdir; -my $realTSDir = TestLib::perl2host($tablespaceDir); - -$node->safe_psql('postgres', "CREATE TABLESPACE ts1 LOCATION '$realTSDir'"); +$node->safe_psql('postgres', "CREATE TABLESPACE ts1 LOCATION '$tablespaceDir'"); $node->safe_psql('postgres', 'CREATE UNLOGGED TABLE ts1_unlogged (id int) TABLESPACE ts1'); diff -Nru postgresql-13-13.4/src/test/recovery/t/017_shm.pl postgresql-13-13.7/src/test/recovery/t/017_shm.pl --- postgresql-13-13.4/src/test/recovery/t/017_shm.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/017_shm.pl 2022-05-09 21:16:30.000000000 +0000 @@ -113,7 +113,7 @@ $gnat->start; log_ipcs(); -my $regress_shlib = TestLib::perl2host($ENV{REGRESS_SHLIB}); +my $regress_shlib = $ENV{REGRESS_SHLIB}; $gnat->safe_psql('postgres', <', \$stderr, - IPC::Run::timeout(900)); # five times the poll_query_until timeout + IPC::Run::timeout(5 * $TestLib::timeout_default)); ok( $gnat->poll_query_until( 'postgres', "SELECT 1 FROM pg_stat_activity WHERE query = '$slow_query'", '1'), @@ -144,10 +144,11 @@ unlink($gnat->data_dir . '/postmaster.pid'); $gnat->rotate_logfile; # on Windows, can't open old log for writing log_ipcs(); -# Reject ordinary startup. Retry for the same reasons poll_start() does. +# Reject ordinary startup. Retry for the same reasons poll_start() does, +# every 0.1s for at least $TestLib::timeout_default seconds. my $pre_existing_msg = qr/pre-existing shared memory block/; { - my $max_attempts = 180 * 10; # Retry every 0.1s for at least 180s. + my $max_attempts = 10 * $TestLib::timeout_default; my $attempts = 0; while ($attempts < $max_attempts) { @@ -194,7 +195,7 @@ { my ($node) = @_; - my $max_attempts = 180 * 10; + my $max_attempts = 10 * $TestLib::timeout_default; my $attempts = 0; while ($attempts < $max_attempts) @@ -204,11 +205,14 @@ # Wait 0.1 second before retrying. usleep(100_000); + # Clean up in case the start attempt just timed out or some such. + $node->stop('fast', fail_ok => 1); + $attempts++; } - # No success within 180 seconds. Try one last time without fail_ok, which - # will BAIL_OUT unless it succeeds. + # Try one last time without fail_ok, which will BAIL_OUT unless it + # succeeds. $node->start && return 1; return 0; } diff -Nru postgresql-13-13.4/src/test/recovery/t/018_wal_optimize.pl postgresql-13-13.7/src/test/recovery/t/018_wal_optimize.pl --- postgresql-13-13.4/src/test/recovery/t/018_wal_optimize.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/018_wal_optimize.pl 2022-05-09 21:16:30.000000000 +0000 @@ -11,10 +11,12 @@ use PostgresNode; use TestLib; -use Test::More tests => 34; +use Test::More tests => 38; sub check_orphan_relfilenodes { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($node, $test_name) = @_; my $db_oid = $node->safe_psql('postgres', @@ -55,9 +57,31 @@ # Setup my $tablespace_dir = $node->basedir . '/tablespace_other'; mkdir($tablespace_dir); - $tablespace_dir = TestLib::perl2host($tablespace_dir); - $node->safe_psql('postgres', - "CREATE TABLESPACE other LOCATION '$tablespace_dir';"); + my $result; + + # Test redo of CREATE TABLESPACE. + $node->safe_psql( + 'postgres', " + CREATE TABLE moved (id int); + INSERT INTO moved VALUES (1); + CREATE TABLESPACE other LOCATION '$tablespace_dir'; + BEGIN; + ALTER TABLE moved SET TABLESPACE other; + CREATE TABLE originated (id int); + INSERT INTO originated VALUES (1); + CREATE UNIQUE INDEX ON originated(id) TABLESPACE other; + COMMIT;"); + $node->stop('immediate'); + $node->start; + $result = $node->safe_psql('postgres', "SELECT count(*) FROM moved;"); + is($result, qq(1), "wal_level = $wal_level, CREATE+SET TABLESPACE"); + $result = $node->safe_psql( + 'postgres', " + INSERT INTO originated VALUES (1) ON CONFLICT (id) + DO UPDATE set id = originated.id + 1 + RETURNING id;"); + is($result, qq(2), + "wal_level = $wal_level, CREATE TABLESPACE, CREATE INDEX"); # Test direct truncation optimization. No tuples. $node->safe_psql( @@ -68,7 +92,7 @@ COMMIT;"); $node->stop('immediate'); $node->start; - my $result = $node->safe_psql('postgres', "SELECT count(*) FROM trunc;"); + $result = $node->safe_psql('postgres', "SELECT count(*) FROM trunc;"); is($result, qq(0), "wal_level = $wal_level, TRUNCATE with empty table"); # Test truncation with inserted tuples within the same transaction. @@ -124,7 +148,6 @@ $copy_file, qq(20000,30000 20001,30001 20002,30002)); - $copy_file = TestLib::perl2host($copy_file); # Test truncation with inserted tuples using both INSERT and COPY. Tuples # inserted after the truncation should be seen. diff -Nru postgresql-13-13.4/src/test/recovery/t/019_replslot_limit.pl postgresql-13-13.7/src/test/recovery/t/019_replslot_limit.pl --- postgresql-13-13.4/src/test/recovery/t/019_replslot_limit.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/019_replslot_limit.pl 2022-05-09 21:16:30.000000000 +0000 @@ -293,7 +293,7 @@ SELECT pg_switch_wal(); CHECKPOINT; SELECT 'finished';", - timeout => '60')); + timeout => $TestLib::timeout_default)); is($result[1], 'finished', 'check if checkpoint command is not blocked'); ##################################### diff -Nru postgresql-13-13.4/src/test/recovery/t/025_stuck_on_old_timeline.pl postgresql-13-13.7/src/test/recovery/t/025_stuck_on_old_timeline.pl --- postgresql-13-13.4/src/test/recovery/t/025_stuck_on_old_timeline.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/025_stuck_on_old_timeline.pl 2022-05-09 21:16:30.000000000 +0000 @@ -28,7 +28,7 @@ # Note: consistent use of forward slashes here avoids any escaping problems # that arise from use of backslashes. That means we need to double-quote all # the paths in the archive_command -my $perlbin = TestLib::perl2host($^X); +my $perlbin = $^X; $perlbin =~ s!\\!/!g if $TestLib::windows_os; my $archivedir_primary = $node_primary->archive_dir; $archivedir_primary =~ s!\\!/!g if $TestLib::windows_os; diff -Nru postgresql-13-13.4/src/test/recovery/t/026_overwrite_contrecord.pl postgresql-13-13.7/src/test/recovery/t/026_overwrite_contrecord.pl --- postgresql-13-13.4/src/test/recovery/t/026_overwrite_contrecord.pl 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/026_overwrite_contrecord.pl 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,109 @@ +# Copyright (c) 2021, PostgreSQL Global Development Group + +# Tests for already-propagated WAL segments ending in incomplete WAL records. + +use strict; +use warnings; + +use FindBin; +use PostgresNode; +use TestLib; +use Test::More; + +plan tests => 3; + +# Test: Create a physical replica that's missing the last WAL file, +# then restart the primary to create a divergent WAL file and observe +# that the replica replays the "overwrite contrecord" from that new +# file and the standby promotes successfully. + +my $node = PostgresNode->get_new_node('primary'); +$node->init(allows_streaming => 1); +# We need these settings for stability of WAL behavior. +$node->append_conf( + 'postgresql.conf', qq( +autovacuum = off +wal_keep_size = 1GB +)); +$node->start; + +$node->safe_psql('postgres', 'create table filler (a int, b text)'); + +# Now consume all remaining room in the current WAL segment, leaving +# space enough only for the start of a largish record. +$node->safe_psql( + 'postgres', q{ +DO $$ +DECLARE + wal_segsize int := setting::int FROM pg_settings WHERE name = 'wal_segment_size'; + remain int; + iters int := 0; +BEGIN + LOOP + INSERT into filler + select g, repeat(md5(g::text), (random() * 60 + 1)::int) + from generate_series(1, 10) g; + + remain := wal_segsize - (pg_current_wal_insert_lsn() - '0/0') % wal_segsize; + IF remain < 2 * setting::int from pg_settings where name = 'block_size' THEN + RAISE log 'exiting after % iterations, % bytes to end of WAL segment', iters, remain; + EXIT; + END IF; + iters := iters + 1; + END LOOP; +END +$$; +}); + +my $initfile = $node->safe_psql('postgres', + 'SELECT pg_walfile_name(pg_current_wal_insert_lsn())'); +$node->safe_psql('postgres', + qq{SELECT pg_logical_emit_message(true, 'test 026', repeat('xyzxz', 123456))} +); +#$node->safe_psql('postgres', qq{create table foo ()}); +my $endfile = $node->safe_psql('postgres', + 'SELECT pg_walfile_name(pg_current_wal_insert_lsn())'); +ok($initfile ne $endfile, "$initfile differs from $endfile"); + +# Now stop abruptly, to avoid a stop checkpoint. We can remove the tail file +# afterwards, and on startup the large message should be overwritten with new +# contents +$node->stop('immediate'); + +unlink $node->basedir . "/pgdata/pg_wal/$endfile" + or die "could not unlink " . $node->basedir . "/pgdata/pg_wal/$endfile: $!"; + +# OK, create a standby at this spot. +$node->backup_fs_cold('backup'); +my $node_standby = PostgresNode->get_new_node('standby'); +$node_standby->init_from_backup($node, 'backup', has_streaming => 1); + +$node_standby->start; +$node->start; + +$node->safe_psql('postgres', + qq{create table foo (a text); insert into foo values ('hello')}); +$node->safe_psql('postgres', + qq{SELECT pg_logical_emit_message(true, 'test 026', 'AABBCC')}); + +my $until_lsn = $node->safe_psql('postgres', "SELECT pg_current_wal_lsn()"); +my $caughtup_query = + "SELECT '$until_lsn'::pg_lsn <= pg_last_wal_replay_lsn()"; +$node_standby->poll_query_until('postgres', $caughtup_query) + or die "Timed out while waiting for standby to catch up"; + +ok($node_standby->safe_psql('postgres', 'select * from foo') eq 'hello', + 'standby replays past overwritten contrecord'); + +# Verify message appears in standby's log +my $log = slurp_file($node_standby->logfile); +like( + $log, + qr[successfully skipped missing contrecord at], + "found log line in standby"); + +# Verify promotion is successful +$node_standby->promote; + +$node->stop; +$node_standby->stop; diff -Nru postgresql-13-13.4/src/test/recovery/t/031_recovery_conflict.pl postgresql-13-13.7/src/test/recovery/t/031_recovery_conflict.pl --- postgresql-13-13.4/src/test/recovery/t/031_recovery_conflict.pl 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/031_recovery_conflict.pl 2022-05-09 21:16:30.000000000 +0000 @@ -0,0 +1,377 @@ +# Copyright (c) 2021-2022, PostgreSQL Global Development Group + +# Test that connections to a hot standby are correctly canceled when a +# recovery conflict is detected Also, test that statistics in +# pg_stat_database_conflicts are populated correctly + +use strict; +use warnings; +use PostgreSQL::Test::Cluster; +use PostgreSQL::Test::Utils; +use Test::More; + +plan skip_all => "disabled until after minor releases, due to instability"; + +# Set up nodes +my $node_primary = PostgreSQL::Test::Cluster->new('primary'); +$node_primary->init(allows_streaming => 1); + +my $tablespace1 = "test_recovery_conflict_tblspc"; + +$node_primary->append_conf( + 'postgresql.conf', qq[ + +# Doesn't currently exist pre 15, but might be backpatched later +#allow_in_place_tablespaces = on +#temp_tablespaces = $tablespace1 + +log_temp_files = 0 + +# for deadlock test +max_prepared_transactions = 10 + +# wait some to test the wait paths as well, but not long for obvious reasons +max_standby_streaming_delay = 50ms + +# Some of the recovery conflict logging code only gets exercised after +# deadlock_timeout. The test doesn't rely on that additional output, but it's +# nice to get some minimal coverage of that code. +#log_recovery_conflict_waits = on # doesn't exist < 14. +deadlock_timeout = 10ms +]); +$node_primary->start; + +my $backup_name = 'my_backup'; + +# See allow_in_place_tablespaces comment above +#$node_primary->safe_psql('postgres', +# qq[CREATE TABLESPACE $tablespace1 LOCATION '']); + +$node_primary->backup($backup_name); +my $node_standby = PostgreSQL::Test::Cluster->new('standby'); +$node_standby->init_from_backup($node_primary, $backup_name, + has_streaming => 1); + +$node_standby->start; + +my $test_db = "test_db"; + +# use a new database, to trigger database recovery conflict +$node_primary->safe_psql('postgres', "CREATE DATABASE $test_db"); + +# test schema / data +my $table1 = "test_recovery_conflict_table1"; +my $table2 = "test_recovery_conflict_table2"; +$node_primary->safe_psql( + $test_db, qq[ +CREATE TABLE ${table1}(a int, b int); +INSERT INTO $table1 SELECT i % 3, 0 FROM generate_series(1,20) i; +CREATE TABLE ${table2}(a int, b int); +]); +my $primary_lsn = $node_primary->lsn('flush'); +$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); + + +# a longrunning psql that we can use to trigger conflicts +my $psql_timeout = IPC::Run::timer($PostgreSQL::Test::Utils::timeout_default); +my %psql_standby = ('stdin' => '', 'stdout' => ''); +$psql_standby{run} = + $node_standby->background_psql($test_db, \$psql_standby{stdin}, + \$psql_standby{stdout}, + $psql_timeout); +$psql_standby{stdout} = ''; + +my $expected_conflicts = 0; + + +## RECOVERY CONFLICT 1: Buffer pin conflict +my $sect = "buffer pin conflict"; +$expected_conflicts++; + +# Aborted INSERT on primary that will be cleaned up by vacuum. Has to be old +# enough so that there's not a snapshot conflict before the buffer pin +# conflict. + +$node_primary->safe_psql( + $test_db, + qq[ + BEGIN; + INSERT INTO $table1 VALUES (1,0); + ROLLBACK; + -- ensure flush, rollback doesn't do so + BEGIN; LOCK $table1; COMMIT; + ]); + +$primary_lsn = $node_primary->lsn('flush'); +$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); + +my $cursor1 = "test_recovery_conflict_cursor"; + +# DECLARE and use a cursor on standby, causing buffer with the only block of +# the relation to be pinned on the standby +$psql_standby{stdin} .= qq[ + BEGIN; + DECLARE $cursor1 CURSOR FOR SELECT b FROM $table1; + FETCH FORWARD FROM $cursor1; + ]; +# FETCH FORWARD should have returned a 0 since all values of b in the table +# are 0 +ok(pump_until_standby(qr/^0$/m), + "$sect: cursor with conflicting pin established"); + +# to check the log starting now for recovery conflict messages +my $log_location = -s $node_standby->logfile; + +# VACUUM on the primary +$node_primary->safe_psql($test_db, qq[VACUUM $table1;]); + +# Wait for catchup. Existing connection will be terminated before replay is +# finished, so waiting for catchup ensures that there is no race between +# encountering the recovery conflict which causes the disconnect and checking +# the logfile for the terminated connection. +$primary_lsn = $node_primary->lsn('flush'); +$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); + +check_conflict_log("User was holding shared buffer pin for too long"); +reconnect_and_clear(); +check_conflict_stat("bufferpin"); + + +## RECOVERY CONFLICT 2: Snapshot conflict +$sect = "snapshot conflict"; +$expected_conflicts++; + +$node_primary->safe_psql($test_db, + qq[INSERT INTO $table1 SELECT i, 0 FROM generate_series(1,20) i]); +$primary_lsn = $node_primary->lsn('flush'); +$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); + +# DECLARE and FETCH from cursor on the standby +$psql_standby{stdin} .= qq[ + BEGIN; + DECLARE $cursor1 CURSOR FOR SELECT b FROM $table1; + FETCH FORWARD FROM $cursor1; + ]; +ok( pump_until( + $psql_standby{run}, $psql_timeout, + \$psql_standby{stdout}, qr/^0$/m,), + "$sect: cursor with conflicting snapshot established"); + +# Do some HOT updates +$node_primary->safe_psql($test_db, + qq[UPDATE $table1 SET a = a + 1 WHERE a > 2;]); + +# VACUUM, pruning those dead tuples +$node_primary->safe_psql($test_db, qq[VACUUM $table1;]); + +# Wait for attempted replay of PRUNE records +$primary_lsn = $node_primary->lsn('flush'); +$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); + +check_conflict_log( + "User query might have needed to see row versions that must be removed"); +reconnect_and_clear(); +check_conflict_stat("snapshot"); + + +## RECOVERY CONFLICT 3: Lock conflict +$sect = "lock conflict"; +$expected_conflicts++; + +# acquire lock to conflict with +$psql_standby{stdin} .= qq[ + BEGIN; + LOCK TABLE $table1 IN ACCESS SHARE MODE; + SELECT 1; + ]; +ok(pump_until_standby(qr/^1$/m), "$sect: conflicting lock acquired"); + +# DROP TABLE containing block which standby has in a pinned buffer +$node_primary->safe_psql($test_db, qq[DROP TABLE $table1;]); + +$primary_lsn = $node_primary->lsn('flush'); +$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); + +check_conflict_log("User was holding a relation lock for too long"); +reconnect_and_clear(); +check_conflict_stat("lock"); + + +# See allow_in_place_tablespaces comment above +### RECOVERY CONFLICT 4: Tablespace conflict +#$sect = "tablespace conflict"; +#$expected_conflicts++; +# +## DECLARE a cursor for a query which, with sufficiently low work_mem, will +## spill tuples into temp files in the temporary tablespace created during +## setup. +#$psql_standby{stdin} .= qq[ +# BEGIN; +# SET work_mem = '64kB'; +# DECLARE $cursor1 CURSOR FOR +# SELECT count(*) FROM generate_series(1,6000); +# FETCH FORWARD FROM $cursor1; +# ]; +#ok(pump_until_standby(qr/^6000$/m), +# "$sect: cursor with conflicting temp file established"); +# +## Drop the tablespace currently containing spill files for the query on the +## standby +#$node_primary->safe_psql($test_db, qq[DROP TABLESPACE $tablespace1;]); +# +#$primary_lsn = $node_primary->lsn('flush'); +#$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); +# +#check_conflict_log( +# "User was or might have been using tablespace that must be dropped"); +#reconnect_and_clear(); +#check_conflict_stat("tablespace"); + + +## RECOVERY CONFLICT 5: Deadlock +SKIP: +{ + skip "disabled until after minor releases, due to instability"; + +$sect = "startup deadlock"; +$expected_conflicts++; + +# Generate a few dead rows, to later be cleaned up by vacuum. Then acquire a +# lock on another relation in a prepared xact, so it's held continuously by +# the startup process. The standby psql will block acquiring that lock while +# holding a pin that vacuum needs, triggering the deadlock. +$node_primary->safe_psql( + $test_db, + qq[ +CREATE TABLE $table1(a int, b int); +INSERT INTO $table1 VALUES (1); +BEGIN; +INSERT INTO $table1(a) SELECT generate_series(1, 100) i; +ROLLBACK; +BEGIN; +LOCK TABLE $table2; +PREPARE TRANSACTION 'lock'; +INSERT INTO $table1(a) VALUES (170); +SELECT txid_current(); +]); + +$primary_lsn = $node_primary->lsn('flush'); +$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); + +$psql_standby{stdin} .= qq[ + BEGIN; + -- hold pin + DECLARE $cursor1 CURSOR FOR SELECT a FROM $table1; + FETCH FORWARD FROM $cursor1; + -- wait for lock held by prepared transaction + SELECT * FROM $table2; + ]; +ok( pump_until( + $psql_standby{run}, $psql_timeout, + \$psql_standby{stdout}, qr/^1$/m,), + "$sect: cursor holding conflicting pin, also waiting for lock, established" +); + +# just to make sure we're waiting for lock already +ok( $node_standby->poll_query_until( + 'postgres', qq[ +SELECT 'waiting' FROM pg_locks WHERE locktype = 'relation' AND NOT granted; +], 'waiting'), + "$sect: lock acquisition is waiting"); + +# VACUUM will prune away rows, causing a buffer pin conflict, while standby +# psql is waiting on lock +$node_primary->safe_psql($test_db, qq[VACUUM $table1;]); +$primary_lsn = $node_primary->lsn('flush'); +$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); + +check_conflict_log("User transaction caused buffer deadlock with recovery."); +reconnect_and_clear(); +check_conflict_stat("deadlock"); + +# clean up for next tests +$node_primary->safe_psql($test_db, qq[ROLLBACK PREPARED 'lock';]); +} + + +# Check that expected number of conflicts show in pg_stat_database. Needs to +# be tested before database is dropped, for obvious reasons. +is( $node_standby->safe_psql( + $test_db, + qq[SELECT conflicts FROM pg_stat_database WHERE datname='$test_db';]), + $expected_conflicts, + qq[$expected_conflicts recovery conflicts shown in pg_stat_database]); + + +## RECOVERY CONFLICT 6: Database conflict +$sect = "database conflict"; + +$node_primary->safe_psql('postgres', qq[DROP DATABASE $test_db;]); + +$primary_lsn = $node_primary->lsn('flush'); +$node_primary->wait_for_catchup($node_standby, 'replay', $primary_lsn); + +check_conflict_log("User was connected to a database that must be dropped"); + + +# explicitly shut down psql instances gracefully - to avoid hangs or worse on +# windows +$psql_standby{stdin} .= "\\q\n"; +$psql_standby{run}->finish; + +$node_standby->stop(); +$node_primary->stop(); + + +done_testing(); + + +sub pump_until_standby +{ + my $match = shift; + + return pump_until($psql_standby{run}, $psql_timeout, + \$psql_standby{stdout}, $match); +} + +sub reconnect_and_clear +{ + # If psql isn't dead already, tell it to quit as \q, when already dead, + # causes IPC::Run to unhelpfully error out with "ack Broken pipe:". + $psql_standby{run}->pump_nb(); + if ($psql_standby{run}->pumpable()) + { + $psql_standby{stdin} .= "\\q\n"; + } + $psql_standby{run}->finish; + + # restart + $psql_standby{run}->run(); + $psql_standby{stdin} = ''; + $psql_standby{stdout} = ''; + + # Run query to ensure connection has finished re-establishing + $psql_standby{stdin} .= qq[SELECT 1;\n]; + die unless pump_until_standby(qr/^1$/m); + $psql_standby{stdout} = ''; +} + +sub check_conflict_log +{ + my $message = shift; + my $old_log_location = $log_location; + + $log_location = $node_standby->wait_for_log(qr/$message/, $log_location); + + cmp_ok($log_location, '>', $old_log_location, + "$sect: logfile contains terminated connection due to recovery conflict" + ); +} + +sub check_conflict_stat +{ + # Stats can't easily be checked before 15, requires waiting for stats to + # be reported to stats collector and then those messages need to be + # processed. Dealt with here to reduce intra-branch difference in the + # tests. +} diff -Nru postgresql-13-13.4/src/test/recovery/t/cp_history_files postgresql-13-13.7/src/test/recovery/t/cp_history_files --- postgresql-13-13.4/src/test/recovery/t/cp_history_files 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/recovery/t/cp_history_files 2022-05-09 21:16:30.000000000 +0000 @@ -7,11 +7,4 @@ die "wrong number of arguments" if @ARGV != 2; my ($source, $target) = @ARGV; exit if $source !~ /history/; -if ($^O eq 'msys') -{ - # make a windows path look like an msys path if necessary - $source =~ s!^([A-Za-z]):!'/' . lc($1)!e; - $source =~ s!\\!/!g; -} - copy($source, $target) or die "couldn't copy $source to $target: $!"; diff -Nru postgresql-13-13.4/src/test/regress/expected/aggregates.out postgresql-13-13.7/src/test/regress/expected/aggregates.out --- postgresql-13-13.4/src/test/regress/expected/aggregates.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/aggregates.out 2022-05-09 21:16:30.000000000 +0000 @@ -1784,6 +1784,36 @@ {"(2,2,bar)","(3,1,baz)"} (1 row) +-- check handling of bare boolean Var in FILTER +select max(0) filter (where b1) from bool_test; + max +----- + 0 +(1 row) + +select (select max(0) filter (where b1)) from bool_test; + max +----- + 0 +(1 row) + +-- check for correct detection of nested-aggregate errors in FILTER +select max(unique1) filter (where sum(ten) > 0) from tenk1; +ERROR: aggregate functions are not allowed in FILTER +LINE 1: select max(unique1) filter (where sum(ten) > 0) from tenk1; + ^ +select (select max(unique1) filter (where sum(ten) > 0) from int8_tbl) from tenk1; +ERROR: aggregate function calls cannot be nested +LINE 1: select (select max(unique1) filter (where sum(ten) > 0) from... + ^ +select max(unique1) filter (where bool_or(ten > 0)) from tenk1; +ERROR: aggregate functions are not allowed in FILTER +LINE 1: select max(unique1) filter (where bool_or(ten > 0)) from ten... + ^ +select (select max(unique1) filter (where bool_or(ten > 0)) from int8_tbl) from tenk1; +ERROR: aggregate function calls cannot be nested +LINE 1: select (select max(unique1) filter (where bool_or(ten > 0)) ... + ^ -- ordered-set aggregates select p, percentile_cont(p) within group (order by x::float8) from generate_series(1,5) x, diff -Nru postgresql-13-13.4/src/test/regress/expected/alter_table.out postgresql-13-13.7/src/test/regress/expected/alter_table.out --- postgresql-13-13.4/src/test/regress/expected/alter_table.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/alter_table.out 2022-05-09 21:16:30.000000000 +0000 @@ -237,6 +237,54 @@ ALTER INDEX onek_unique1 RENAME TO fail; -- permission denied ERROR: must be owner of index onek_unique1 RESET ROLE; +-- rename statements with mismatching statement and object types +CREATE TABLE alter_idx_rename_test (a INT); +CREATE INDEX alter_idx_rename_test_idx ON alter_idx_rename_test (a); +CREATE TABLE alter_idx_rename_test_parted (a INT) PARTITION BY LIST (a); +CREATE INDEX alter_idx_rename_test_parted_idx ON alter_idx_rename_test_parted (a); +BEGIN; +ALTER INDEX alter_idx_rename_test RENAME TO alter_idx_rename_test_2; +ALTER INDEX alter_idx_rename_test_parted RENAME TO alter_idx_rename_test_parted_2; +SELECT relation::regclass, mode FROM pg_locks +WHERE pid = pg_backend_pid() AND locktype = 'relation' + AND relation::regclass::text LIKE 'alter\_idx%' +ORDER BY relation::regclass::text COLLATE "C"; + relation | mode +--------------------------------+--------------------- + alter_idx_rename_test_2 | AccessExclusiveLock + alter_idx_rename_test_parted_2 | AccessExclusiveLock +(2 rows) + +COMMIT; +BEGIN; +ALTER INDEX alter_idx_rename_test_idx RENAME TO alter_idx_rename_test_idx_2; +ALTER INDEX alter_idx_rename_test_parted_idx RENAME TO alter_idx_rename_test_parted_idx_2; +SELECT relation::regclass, mode FROM pg_locks +WHERE pid = pg_backend_pid() AND locktype = 'relation' + AND relation::regclass::text LIKE 'alter\_idx%' +ORDER BY relation::regclass::text COLLATE "C"; + relation | mode +------------------------------------+-------------------------- + alter_idx_rename_test_idx_2 | ShareUpdateExclusiveLock + alter_idx_rename_test_parted_idx_2 | ShareUpdateExclusiveLock +(2 rows) + +COMMIT; +BEGIN; +ALTER TABLE alter_idx_rename_test_idx_2 RENAME TO alter_idx_rename_test_idx_3; +ALTER TABLE alter_idx_rename_test_parted_idx_2 RENAME TO alter_idx_rename_test_parted_idx_3; +SELECT relation::regclass, mode FROM pg_locks +WHERE pid = pg_backend_pid() AND locktype = 'relation' + AND relation::regclass::text LIKE 'alter\_idx%' +ORDER BY relation::regclass::text COLLATE "C"; + relation | mode +------------------------------------+--------------------- + alter_idx_rename_test_idx_3 | AccessExclusiveLock + alter_idx_rename_test_parted_idx_3 | AccessExclusiveLock +(2 rows) + +COMMIT; +DROP TABLE alter_idx_rename_test_2; -- renaming views CREATE VIEW attmp_view (unique1) AS SELECT unique1 FROM tenk1; ALTER TABLE attmp_view RENAME TO attmp_view_new; @@ -2015,11 +2063,24 @@ create table skip_wal_skip_rewrite_index (c varchar(10) primary key); alter table skip_wal_skip_rewrite_index alter c type varchar(20); commit; --- table's row type -create table tab1 (a int, b text); -create table tab2 (x int, y tab1); -alter table tab1 alter column b type varchar; -- fails -ERROR: cannot alter table "tab1" because column "tab2.y" uses its row type +-- We disallow changing table's row type if it's used for storage +create table at_tab1 (a int, b text); +create table at_tab2 (x int, y at_tab1); +alter table at_tab1 alter column b type varchar; -- fails +ERROR: cannot alter table "at_tab1" because column "at_tab2.y" uses its row type +drop table at_tab2; +-- Use of row type in an expression is defended differently +create table at_tab2 (x int, y text, check((x,y)::at_tab1 = (1,'42')::at_tab1)); +alter table at_tab1 alter column b type varchar; -- allowed, but ... +insert into at_tab2 values(1,'42'); -- ... this will fail +ERROR: ROW() column has type text instead of type character varying +drop table at_tab1, at_tab2; +-- Check it for a partitioned table, too +create table at_tab1 (a int, b text) partition by list(a); +create table at_tab2 (x int, y at_tab1); +alter table at_tab1 alter column b type varchar; -- fails +ERROR: cannot alter table "at_tab1" because column "at_tab2.y" uses its row type +drop table at_tab1, at_tab2; -- Alter column type that's part of a partitioned index create table at_partitioned (a int, b text) partition by range (a); create table at_part_1 partition of at_partitioned for values from (0) to (1000); @@ -4099,7 +4160,7 @@ -- check that the table being attach is with valid modulus and remainder value CREATE TABLE fail_part(LIKE hash_parted); ALTER TABLE hash_parted ATTACH PARTITION fail_part FOR VALUES WITH (MODULUS 0, REMAINDER 1); -ERROR: modulus for hash partition must be a positive integer +ERROR: modulus for hash partition must be an integer value greater than zero ALTER TABLE hash_parted ATTACH PARTITION fail_part FOR VALUES WITH (MODULUS 8, REMAINDER 8); ERROR: remainder for hash partition must be less than modulus ALTER TABLE hash_parted ATTACH PARTITION fail_part FOR VALUES WITH (MODULUS 3, REMAINDER 2); @@ -4436,3 +4497,23 @@ (2 rows) drop table alttype_cluster; +-- +-- Check that attaching or detaching a partitioned partition correctly leads +-- to its partitions' constraint being updated to reflect the parent's +-- newly added/removed constraint +create table target_parted (a int, b int) partition by list (a); +create table attach_parted (a int, b int) partition by list (b); +create table attach_parted_part1 partition of attach_parted for values in (1); +-- insert a row directly into the leaf partition so that its partition +-- constraint is built and stored in the relcache +insert into attach_parted_part1 values (1, 1); +-- the following better invalidate the partition constraint of the leaf +-- partition too... +alter table target_parted attach partition attach_parted for values in (1); +-- ...such that the following insert fails +insert into attach_parted_part1 values (2, 1); +ERROR: new row for relation "attach_parted_part1" violates partition constraint +DETAIL: Failing row contains (2, 1). +-- ...and doesn't when the partition is detached along with its own partition +alter table target_parted detach partition attach_parted; +insert into attach_parted_part1 values (2, 1); diff -Nru postgresql-13-13.4/src/test/regress/expected/arrays.out postgresql-13-13.7/src/test/regress/expected/arrays.out --- postgresql-13-13.4/src/test/regress/expected/arrays.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/arrays.out 2022-05-09 21:16:30.000000000 +0000 @@ -726,6 +726,18 @@ {0,1,2,3} (1 row) +SELECT array_agg(x) || array_agg(x) FROM (VALUES (ROW(1,2)), (ROW(3,4))) v(x); + ?column? +----------------------------------- + {"(1,2)","(3,4)","(1,2)","(3,4)"} +(1 row) + +SELECT ROW(1,2) || array_agg(x) FROM (VALUES (ROW(3,4)), (ROW(5,6))) v(x); + ?column? +--------------------------- + {"(1,2)","(3,4)","(5,6)"} +(1 row) + SELECT * FROM array_op_test WHERE i @> '{32}' ORDER BY seqno; seqno | i | t -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------ diff -Nru postgresql-13-13.4/src/test/regress/expected/btree_index.out postgresql-13-13.7/src/test/regress/expected/btree_index.out --- postgresql-13-13.4/src/test/regress/expected/btree_index.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/btree_index.out 2022-05-09 21:16:30.000000000 +0000 @@ -329,3 +329,15 @@ -- Test unsupported btree opclass parameters create index on btree_tall_tbl (id int4_ops(foo=1)); ERROR: operator class int4_ops has no options +-- Test case of ALTER INDEX with abuse of column names for indexes. +-- This grammar is not officially supported, but the parser allows it. +CREATE INDEX btree_tall_idx2 ON btree_tall_tbl (id); +ALTER INDEX btree_tall_idx2 ALTER COLUMN id SET (n_distinct=100); +ERROR: "btree_tall_idx2" is not a table, materialized view, or foreign table +DROP INDEX btree_tall_idx2; +-- Partitioned index +CREATE TABLE btree_part (id int4) PARTITION BY RANGE (id); +CREATE INDEX btree_part_idx ON btree_part(id); +ALTER INDEX btree_part_idx ALTER COLUMN id SET (n_distinct=100); +ERROR: "btree_part_idx" is not a table, materialized view, or foreign table +DROP TABLE btree_part; diff -Nru postgresql-13-13.4/src/test/regress/expected/cluster.out postgresql-13-13.7/src/test/regress/expected/cluster.out --- postgresql-13-13.4/src/test/regress/expected/cluster.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/cluster.out 2022-05-09 21:16:30.000000000 +0000 @@ -511,6 +511,13 @@ COMMIT; -- and after clustering on clstr_expression_minus_a CLUSTER clstr_expression USING clstr_expression_minus_a; +WITH rows AS + (SELECT ctid, lag(a) OVER (ORDER BY ctid) AS la, a FROM clstr_expression) +SELECT * FROM rows WHERE la < a; + ctid | la | a +------+----+--- +(0 rows) + BEGIN; SET LOCAL enable_seqscan = false; EXPLAIN (COSTS OFF) SELECT * FROM clstr_expression WHERE upper(b) = 'PREFIX3'; @@ -545,6 +552,13 @@ COMMIT; -- and after clustering on clstr_expression_upper_b CLUSTER clstr_expression USING clstr_expression_upper_b; +WITH rows AS + (SELECT ctid, lag(b) OVER (ORDER BY ctid) AS lb, b FROM clstr_expression) +SELECT * FROM rows WHERE upper(lb) > upper(b); + ctid | lb | b +------+----+--- +(0 rows) + BEGIN; SET LOCAL enable_seqscan = false; EXPLAIN (COSTS OFF) SELECT * FROM clstr_expression WHERE upper(b) = 'PREFIX3'; diff -Nru postgresql-13-13.4/src/test/regress/expected/create_index.out postgresql-13-13.7/src/test/regress/expected/create_index.out --- postgresql-13-13.4/src/test/regress/expected/create_index.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/create_index.out 2022-05-09 21:16:30.000000000 +0000 @@ -639,6 +639,33 @@ (751.5,2655) | 20 (10 rows) +EXPLAIN (COSTS OFF) +SELECT point(x,x), (SELECT f1 FROM gpolygon_tbl ORDER BY f1 <-> point(x,x) LIMIT 1) as c FROM generate_series(0,10,1) x; + QUERY PLAN +-------------------------------------------------------------------------------------------- + Function Scan on generate_series x + SubPlan 1 + -> Limit + -> Index Scan using ggpolygonind on gpolygon_tbl + Order By: (f1 <-> point((x.x)::double precision, (x.x)::double precision)) +(5 rows) + +SELECT point(x,x), (SELECT f1 FROM gpolygon_tbl ORDER BY f1 <-> point(x,x) LIMIT 1) as c FROM generate_series(0,10,1) x; + point | c +---------+------------------------------------------- + (0,0) | ((240,359),(240,455),(337,455),(337,359)) + (1,1) | ((240,359),(240,455),(337,455),(337,359)) + (2,2) | ((240,359),(240,455),(337,455),(337,359)) + (3,3) | ((240,359),(240,455),(337,455),(337,359)) + (4,4) | ((240,359),(240,455),(337,455),(337,359)) + (5,5) | ((240,359),(240,455),(337,455),(337,359)) + (6,6) | ((240,359),(240,455),(337,455),(337,359)) + (7,7) | ((240,359),(240,455),(337,455),(337,359)) + (8,8) | ((240,359),(240,455),(337,455),(337,359)) + (9,9) | ((240,359),(240,455),(337,455),(337,359)) + (10,10) | ((240,359),(240,455),(337,455),(337,359)) +(11 rows) + -- Now check the results from bitmap indexscan SET enable_seqscan = OFF; SET enable_indexscan = OFF; @@ -2174,6 +2201,25 @@ (1 row) DROP TABLE concur_replident; +-- Check that opclass parameters are preserved +CREATE TABLE concur_appclass_tab(i tsvector, j tsvector, k tsvector); +CREATE INDEX concur_appclass_ind on concur_appclass_tab + USING gist (i tsvector_ops (siglen='1000'), j tsvector_ops (siglen='500')); +CREATE INDEX concur_appclass_ind_2 on concur_appclass_tab + USING gist (k tsvector_ops (siglen='300'), j tsvector_ops); +REINDEX TABLE CONCURRENTLY concur_appclass_tab; +\d concur_appclass_tab + Table "public.concur_appclass_tab" + Column | Type | Collation | Nullable | Default +--------+----------+-----------+----------+--------- + i | tsvector | | | + j | tsvector | | | + k | tsvector | | | +Indexes: + "concur_appclass_ind" gist (i tsvector_ops (siglen='1000'), j tsvector_ops (siglen='500')) + "concur_appclass_ind_2" gist (k tsvector_ops (siglen='300'), j) + +DROP TABLE concur_appclass_tab; -- Partitions -- Create some partitioned tables CREATE TABLE concur_reindex_part (c1 int, c2 int) PARTITION BY RANGE (c1); diff -Nru postgresql-13-13.4/src/test/regress/expected/create_table.out postgresql-13-13.7/src/test/regress/expected/create_table.out --- postgresql-13-13.4/src/test/regress/expected/create_table.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/create_table.out 2022-05-09 21:16:30.000000000 +0000 @@ -894,7 +894,7 @@ ERROR: partition "fail_part" would overlap partition "h2part_4" -- modulus must be greater than zero CREATE TABLE fail_part PARTITION OF hash_parted2 FOR VALUES WITH (MODULUS 0, REMAINDER 1); -ERROR: modulus for hash partition must be a positive integer +ERROR: modulus for hash partition must be an integer value greater than zero -- remainder must be greater than or equal to zero and less than modulus CREATE TABLE fail_part PARTITION OF hash_parted2 FOR VALUES WITH (MODULUS 8, REMAINDER 8); ERROR: remainder for hash partition must be less than modulus diff -Nru postgresql-13-13.4/src/test/regress/expected/create_view.out postgresql-13-13.7/src/test/regress/expected/create_view.out --- postgresql-13-13.4/src/test/regress/expected/create_view.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/create_view.out 2022-05-09 21:16:30.000000000 +0000 @@ -1636,6 +1636,22 @@ 4567890123456789 | -4567890123456789 (5 rows) +create table tt15v_log(o tt15v, n tt15v, incr bool); +create rule updlog as on update to tt15v do also + insert into tt15v_log values(old, new, row(old,old) < row(new,new)); +\d+ tt15v + View "testviewschm2.tt15v" + Column | Type | Collation | Nullable | Default | Storage | Description +--------+-----------------+-----------+----------+---------+----------+------------- + row | nestedcomposite | | | | extended | +View definition: + SELECT ROW(i.*::int8_tbl)::nestedcomposite AS "row" + FROM int8_tbl i; +Rules: + updlog AS + ON UPDATE TO tt15v DO INSERT INTO tt15v_log (o, n, incr) + VALUES (old.*::tt15v, new.*::tt15v, (ROW(old.*::tt15v, old.*::tt15v) < ROW(new.*::tt15v, new.*::tt15v))) + -- check unique-ification of overlength names create view tt18v as select * from int8_tbl xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy @@ -1904,7 +1920,7 @@ drop cascades to view aliased_view_3 drop cascades to view aliased_view_4 DROP SCHEMA testviewschm2 CASCADE; -NOTICE: drop cascades to 67 other objects +NOTICE: drop cascades to 68 other objects DETAIL: drop cascades to table t1 drop cascades to view temporal1 drop cascades to view temporal2 @@ -1963,6 +1979,7 @@ drop cascades to view tt15v drop cascades to view tt16v drop cascades to view tt17v +drop cascades to table tt15v_log drop cascades to view tt18v drop cascades to view tt19v drop cascades to view tt20v diff -Nru postgresql-13-13.4/src/test/regress/expected/domain.out postgresql-13-13.7/src/test/regress/expected/domain.out --- postgresql-13-13.4/src/test/regress/expected/domain.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/domain.out 2022-05-09 21:16:30.000000000 +0000 @@ -518,6 +518,30 @@ drop table dposintatable; drop domain posint cascade; NOTICE: drop cascades to type dposinta +-- Test arrays over domains of composite +create type comptype as (cf1 int, cf2 int); +create domain dcomptype as comptype check ((value).cf1 > 0); +create table dcomptable (f1 dcomptype[]); +insert into dcomptable values (null); +update dcomptable set f1[1].cf2 = 5; +table dcomptable; + f1 +---------- + {"(,5)"} +(1 row) + +update dcomptable set f1[1].cf1 = -1; -- fail +ERROR: value for domain dcomptype violates check constraint "dcomptype_check" +update dcomptable set f1[1].cf1 = 1; +table dcomptable; + f1 +----------- + {"(1,5)"} +(1 row) + +drop table dcomptable; +drop type comptype cascade; +NOTICE: drop cascades to type dcomptype -- Test not-null restrictions create domain dnotnull varchar(15) NOT NULL; create domain dnull varchar(15); diff -Nru postgresql-13-13.4/src/test/regress/expected/expressions.out postgresql-13-13.7/src/test/regress/expected/expressions.out --- postgresql-13-13.4/src/test/regress/expected/expressions.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/expressions.out 2022-05-09 21:16:30.000000000 +0000 @@ -158,3 +158,106 @@ 12 (1 row) +-- +-- Test parsing of a no-op cast to a type with unspecified typmod +-- +begin; +create table numeric_tbl (f1 numeric(18,3), f2 numeric); +create view numeric_view as + select + f1, f1::numeric(16,4) as f1164, f1::numeric as f1n, + f2, f2::numeric(16,4) as f2164, f2::numeric as f2n + from numeric_tbl; +\d+ numeric_view + View "public.numeric_view" + Column | Type | Collation | Nullable | Default | Storage | Description +--------+---------------+-----------+----------+---------+---------+------------- + f1 | numeric(18,3) | | | | main | + f1164 | numeric(16,4) | | | | main | + f1n | numeric | | | | main | + f2 | numeric | | | | main | + f2164 | numeric(16,4) | | | | main | + f2n | numeric | | | | main | +View definition: + SELECT numeric_tbl.f1, + numeric_tbl.f1::numeric(16,4) AS f1164, + numeric_tbl.f1::numeric AS f1n, + numeric_tbl.f2, + numeric_tbl.f2::numeric(16,4) AS f2164, + numeric_tbl.f2 AS f2n + FROM numeric_tbl; + +explain (verbose, costs off) select * from numeric_view; + QUERY PLAN +------------------------------------------------------------------------------------------------------------------------------------------------------- + Seq Scan on public.numeric_tbl + Output: numeric_tbl.f1, (numeric_tbl.f1)::numeric(16,4), (numeric_tbl.f1)::numeric, numeric_tbl.f2, (numeric_tbl.f2)::numeric(16,4), numeric_tbl.f2 +(2 rows) + +-- bpchar, lacking planner support for its length coercion function, +-- could behave differently +create table bpchar_tbl (f1 character(16) unique, f2 bpchar); +create view bpchar_view as + select + f1, f1::character(14) as f114, f1::bpchar as f1n, + f2, f2::character(14) as f214, f2::bpchar as f2n + from bpchar_tbl; +\d+ bpchar_view + View "public.bpchar_view" + Column | Type | Collation | Nullable | Default | Storage | Description +--------+---------------+-----------+----------+---------+----------+------------- + f1 | character(16) | | | | extended | + f114 | character(14) | | | | extended | + f1n | bpchar | | | | extended | + f2 | bpchar | | | | extended | + f214 | character(14) | | | | extended | + f2n | bpchar | | | | extended | +View definition: + SELECT bpchar_tbl.f1, + bpchar_tbl.f1::character(14) AS f114, + bpchar_tbl.f1::bpchar AS f1n, + bpchar_tbl.f2, + bpchar_tbl.f2::character(14) AS f214, + bpchar_tbl.f2 AS f2n + FROM bpchar_tbl; + +explain (verbose, costs off) select * from bpchar_view + where f1::bpchar = 'foo'; + QUERY PLAN +------------------------------------------------------------------------------------------------------------------------------------------------ + Index Scan using bpchar_tbl_f1_key on public.bpchar_tbl + Output: bpchar_tbl.f1, (bpchar_tbl.f1)::character(14), (bpchar_tbl.f1)::bpchar, bpchar_tbl.f2, (bpchar_tbl.f2)::character(14), bpchar_tbl.f2 + Index Cond: ((bpchar_tbl.f1)::bpchar = 'foo'::bpchar) +(3 rows) + +rollback; +-- +-- Ordinarily, IN/NOT IN can be converted to a ScalarArrayOpExpr +-- with a suitably-chosen array type. +-- +explain (verbose, costs off) +select random() IN (1, 4, 8.0); + QUERY PLAN +------------------------------------------------------------ + Result + Output: (random() = ANY ('{1,4,8}'::double precision[])) +(2 rows) + +explain (verbose, costs off) +select random()::int IN (1, 4, 8.0); + QUERY PLAN +--------------------------------------------------------------------------- + Result + Output: (((random())::integer)::numeric = ANY ('{1,4,8.0}'::numeric[])) +(2 rows) + +-- However, if there's not a common supertype for the IN elements, +-- we should instead try to produce "x = v1 OR x = v2 OR ...". +-- In most cases that'll fail for lack of all the requisite = operators, +-- but it can succeed sometimes. So this should complain about lack of +-- an = operator, not about cast failure. +select '(0,0)'::point in ('(0,0,0,0)'::box, point(0,0)); +ERROR: operator does not exist: point = box +LINE 1: select '(0,0)'::point in ('(0,0,0,0)'::box, point(0,0)); + ^ +HINT: No operator matches the given name and argument types. You might need to add explicit type casts. diff -Nru postgresql-13-13.4/src/test/regress/expected/gist.out postgresql-13-13.7/src/test/regress/expected/gist.out --- postgresql-13-13.4/src/test/regress/expected/gist.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/gist.out 2022-05-09 21:16:30.000000000 +0000 @@ -312,6 +312,81 @@ (11 rows) drop index gist_tbl_multi_index; +-- Test that we don't try to return the value of a non-returnable +-- column in an index-only scan. (This isn't GIST-specific, but +-- it only applies to index AMs that can return some columns and not +-- others, so GIST with appropriate opclasses is a convenient test case.) +create index gist_tbl_multi_index on gist_tbl using gist (circle(p,1), p); +explain (verbose, costs off) +select circle(p,1) from gist_tbl +where p <@ box(point(5, 5), point(5.3, 5.3)); + QUERY PLAN +--------------------------------------------------------------- + Index Only Scan using gist_tbl_multi_index on public.gist_tbl + Output: circle(p, '1'::double precision) + Index Cond: (gist_tbl.p <@ '(5.3,5.3),(5,5)'::box) +(3 rows) + +select circle(p,1) from gist_tbl +where p <@ box(point(5, 5), point(5.3, 5.3)); + circle +----------------- + <(5,5),1> + <(5.05,5.05),1> + <(5.1,5.1),1> + <(5.15,5.15),1> + <(5.2,5.2),1> + <(5.25,5.25),1> + <(5.3,5.3),1> +(7 rows) + +-- Similarly, test that index rechecks involving a non-returnable column +-- are done correctly. +explain (verbose, costs off) +select p from gist_tbl where circle(p,1) @> circle(point(0,0),0.95); + QUERY PLAN +--------------------------------------------------------------------------------------- + Index Only Scan using gist_tbl_multi_index on public.gist_tbl + Output: p + Index Cond: ((circle(gist_tbl.p, '1'::double precision)) @> '<(0,0),0.95>'::circle) +(3 rows) + +select p from gist_tbl where circle(p,1) @> circle(point(0,0),0.95); + p +------- + (0,0) +(1 row) + +-- Also check that use_physical_tlist doesn't trigger in such cases. +explain (verbose, costs off) +select count(*) from gist_tbl; + QUERY PLAN +--------------------------------------------------------------------- + Aggregate + Output: count(*) + -> Index Only Scan using gist_tbl_multi_index on public.gist_tbl +(3 rows) + +select count(*) from gist_tbl; + count +------- + 10001 +(1 row) + +-- This case isn't supported, but it should at least EXPLAIN correctly. +explain (verbose, costs off) +select p from gist_tbl order by circle(p,1) <-> point(0,0) limit 1; + QUERY PLAN +------------------------------------------------------------------------------------ + Limit + Output: p, ((circle(p, '1'::double precision) <-> '(0,0)'::point)) + -> Index Only Scan using gist_tbl_multi_index on public.gist_tbl + Output: p, (circle(p, '1'::double precision) <-> '(0,0)'::point) + Order By: ((circle(gist_tbl.p, '1'::double precision)) <-> '(0,0)'::point) +(5 rows) + +select p from gist_tbl order by circle(p,1) <-> point(0,0) limit 1; +ERROR: lossy distance functions are not supported in index-only scans -- Clean up reset enable_seqscan; reset enable_bitmapscan; diff -Nru postgresql-13-13.4/src/test/regress/expected/groupingsets.out postgresql-13-13.7/src/test/regress/expected/groupingsets.out --- postgresql-13-13.4/src/test/regress/expected/groupingsets.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/groupingsets.out 2022-05-09 21:16:30.000000000 +0000 @@ -1929,4 +1929,49 @@ drop table gs_group_1; drop table gs_hash_1; +-- test handling of outer GroupingFunc within subqueries +explain (costs off) +select (select grouping(v1)) from (values ((select 1))) v(v1) group by cube(v1); + QUERY PLAN +--------------------------- + MixedAggregate + Hash Key: $2 + Group Key: () + InitPlan 1 (returns $1) + -> Result + InitPlan 3 (returns $2) + -> Result + -> Result + SubPlan 2 + -> Result +(10 rows) + +select (select grouping(v1)) from (values ((select 1))) v(v1) group by cube(v1); + grouping +---------- + 1 + 0 +(2 rows) + +explain (costs off) +select (select grouping(v1)) from (values ((select 1))) v(v1) group by v1; + QUERY PLAN +--------------------------- + GroupAggregate + Group Key: $2 + InitPlan 1 (returns $1) + -> Result + InitPlan 3 (returns $2) + -> Result + -> Result + SubPlan 2 + -> Result +(9 rows) + +select (select grouping(v1)) from (values ((select 1))) v(v1) group by v1; + grouping +---------- + 0 +(1 row) + -- end diff -Nru postgresql-13-13.4/src/test/regress/expected/hash_func.out postgresql-13-13.7/src/test/regress/expected/hash_func.out --- postgresql-13-13.4/src/test/regress/expected/hash_func.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/hash_func.out 2022-05-09 21:16:30.000000000 +0000 @@ -298,3 +298,36 @@ -------+----------+-----------+----------- (0 rows) +-- +-- Check special cases for specific data types +-- +SELECT hashfloat4('0'::float4) = hashfloat4('-0'::float4) AS t; + t +--- + t +(1 row) + +SELECT hashfloat4('NaN'::float4) = hashfloat4(-'NaN'::float4) AS t; + t +--- + t +(1 row) + +SELECT hashfloat8('0'::float8) = hashfloat8('-0'::float8) AS t; + t +--- + t +(1 row) + +SELECT hashfloat8('NaN'::float8) = hashfloat8(-'NaN'::float8) AS t; + t +--- + t +(1 row) + +SELECT hashfloat4('NaN'::float4) = hashfloat8('NaN'::float8) AS t; + t +--- + t +(1 row) + diff -Nru postgresql-13-13.4/src/test/regress/expected/join.out postgresql-13-13.7/src/test/regress/expected/join.out --- postgresql-13-13.4/src/test/regress/expected/join.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/join.out 2022-05-09 21:16:30.000000000 +0000 @@ -4799,6 +4799,34 @@ 123 | 456 | | (1 row) +-- and check a related issue where we miscompute required relids for +-- a PHV that's been translated to a child rel +create temp table parttbl (a integer primary key) partition by range (a); +create temp table parttbl1 partition of parttbl for values from (1) to (100); +insert into parttbl values (11), (12); +explain (costs off) +select * from + (select *, 12 as phv from parttbl) as ss + right join int4_tbl on true +where ss.a = ss.phv and f1 = 0; + QUERY PLAN +------------------------------------ + Nested Loop + -> Seq Scan on int4_tbl + Filter: (f1 = 0) + -> Seq Scan on parttbl1 parttbl + Filter: (a = 12) +(5 rows) + +select * from + (select *, 12 as phv from parttbl) as ss + right join int4_tbl on true +where ss.a = ss.phv and f1 = 0; + a | phv | f1 +----+-----+---- + 12 | 12 | 0 +(1 row) + -- bug #8444: we've historically allowed duplicate aliases within aliased JOINs select * from int8_tbl x join (int4_tbl x cross join int4_tbl y) j on q1 = f1; -- error diff -Nru postgresql-13-13.4/src/test/regress/expected/limit.out postgresql-13-13.7/src/test/regress/expected/limit.out --- postgresql-13-13.4/src/test/regress/expected/limit.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/limit.out 2022-05-09 21:16:30.000000000 +0000 @@ -619,6 +619,11 @@ 0 (2 rows) +-- SKIP LOCKED and WITH TIES are incompatible +SELECT thousand + FROM onek WHERE thousand < 5 + ORDER BY thousand FETCH FIRST 1 ROW WITH TIES FOR UPDATE SKIP LOCKED; +ERROR: SKIP LOCKED and WITH TIES options cannot be used together -- should fail SELECT ''::text AS two, unique1, unique2, stringu1 FROM onek WHERE unique1 > 50 diff -Nru postgresql-13-13.4/src/test/regress/expected/numeric.out postgresql-13-13.7/src/test/regress/expected/numeric.out --- postgresql-13-13.4/src/test/regress/expected/numeric.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/numeric.out 2022-05-09 21:16:30.000000000 +0000 @@ -1774,6 +1774,12 @@ 0 (1 row) +select round(((1 - 1.500012345678e-1000) ^ 1.45e1003) * 1e1000); + round +---------------------------------------------------------- + 25218976308958387188077465658068501556514992509509282366 +(1 row) + -- cases that used to error out select 0.12 ^ (-25); ?column? diff -Nru postgresql-13-13.4/src/test/regress/expected/portals.out postgresql-13-13.7/src/test/regress/expected/portals.out --- postgresql-13-13.4/src/test/regress/expected/portals.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/portals.out 2022-05-09 21:16:30.000000000 +0000 @@ -763,6 +763,43 @@ (1 row) CLOSE foo25; +BEGIN; +DECLARE foo25ns NO SCROLL CURSOR WITH HOLD FOR SELECT * FROM tenk2; +FETCH FROM foo25ns; + unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 +---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- + 8800 | 0 | 0 | 0 | 0 | 0 | 0 | 800 | 800 | 3800 | 8800 | 0 | 1 | MAAAAA | AAAAAA | AAAAxx +(1 row) + +FETCH FROM foo25ns; + unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 +---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- + 1891 | 1 | 1 | 3 | 1 | 11 | 91 | 891 | 1891 | 1891 | 1891 | 182 | 183 | TUAAAA | BAAAAA | HHHHxx +(1 row) + +COMMIT; +FETCH FROM foo25ns; + unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 +---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- + 3420 | 2 | 0 | 0 | 0 | 0 | 20 | 420 | 1420 | 3420 | 3420 | 40 | 41 | OBAAAA | CAAAAA | OOOOxx +(1 row) + +FETCH ABSOLUTE 4 FROM foo25ns; + unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4 +---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+--------- + 9850 | 3 | 0 | 2 | 0 | 10 | 50 | 850 | 1850 | 4850 | 9850 | 100 | 101 | WOAAAA | DAAAAA | VVVVxx +(1 row) + +FETCH ABSOLUTE 4 FROM foo25ns; -- fail +ERROR: cursor can only scan forward +HINT: Declare it with SCROLL option to enable backward scan. +SELECT name, statement, is_holdable, is_binary, is_scrollable FROM pg_cursors; + name | statement | is_holdable | is_binary | is_scrollable +---------+---------------------------------------------------------------------+-------------+-----------+--------------- + foo25ns | DECLARE foo25ns NO SCROLL CURSOR WITH HOLD FOR SELECT * FROM tenk2; | t | f | f +(1 row) + +CLOSE foo25ns; -- -- ROLLBACK should close holdable cursors -- diff -Nru postgresql-13-13.4/src/test/regress/expected/privileges.out postgresql-13-13.7/src/test/regress/expected/privileges.out --- postgresql-13-13.4/src/test/regress/expected/privileges.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/privileges.out 2022-05-09 21:16:30.000000000 +0000 @@ -1416,6 +1416,64 @@ -- security-restricted operations \c - CREATE ROLE regress_sro_user; +-- Check that index expressions and predicates are run as the table's owner +-- A dummy index function checking current_user +CREATE FUNCTION sro_ifun(int) RETURNS int AS $$ +BEGIN + -- Below we set the table's owner to regress_sro_user + ASSERT current_user = 'regress_sro_user', + format('sro_ifun(%s) called by %s', $1, current_user); + RETURN $1; +END; +$$ LANGUAGE plpgsql IMMUTABLE; +-- Create a table owned by regress_sro_user +CREATE TABLE sro_tab (a int); +ALTER TABLE sro_tab OWNER TO regress_sro_user; +INSERT INTO sro_tab VALUES (1), (2), (3); +-- Create an expression index with a predicate +CREATE INDEX sro_idx ON sro_tab ((sro_ifun(a) + sro_ifun(0))) + WHERE sro_ifun(a + 10) > sro_ifun(10); +DROP INDEX sro_idx; +-- Do the same concurrently +CREATE INDEX CONCURRENTLY sro_idx ON sro_tab ((sro_ifun(a) + sro_ifun(0))) + WHERE sro_ifun(a + 10) > sro_ifun(10); +-- REINDEX +REINDEX TABLE sro_tab; +REINDEX INDEX sro_idx; +REINDEX TABLE CONCURRENTLY sro_tab; +DROP INDEX sro_idx; +-- CLUSTER +CREATE INDEX sro_cluster_idx ON sro_tab ((sro_ifun(a) + sro_ifun(0))); +CLUSTER sro_tab USING sro_cluster_idx; +DROP INDEX sro_cluster_idx; +-- BRIN index +CREATE INDEX sro_brin ON sro_tab USING brin ((sro_ifun(a) + sro_ifun(0))); +SELECT brin_desummarize_range('sro_brin', 0); + brin_desummarize_range +------------------------ + +(1 row) + +SELECT brin_summarize_range('sro_brin', 0); + brin_summarize_range +---------------------- + 1 +(1 row) + +DROP TABLE sro_tab; +-- Check with a partitioned table +CREATE TABLE sro_ptab (a int) PARTITION BY RANGE (a); +ALTER TABLE sro_ptab OWNER TO regress_sro_user; +CREATE TABLE sro_part PARTITION OF sro_ptab FOR VALUES FROM (1) TO (10); +ALTER TABLE sro_part OWNER TO regress_sro_user; +INSERT INTO sro_ptab VALUES (1), (2), (3); +CREATE INDEX sro_pidx ON sro_ptab ((sro_ifun(a) + sro_ifun(0))) + WHERE sro_ifun(a + 10) > sro_ifun(10); +REINDEX TABLE sro_ptab; +WARNING: REINDEX of partitioned tables is not yet implemented, skipping "sro_ptab" +NOTICE: table "sro_ptab" has no indexes to reindex +REINDEX INDEX CONCURRENTLY sro_pidx; +ERROR: REINDEX is not yet implemented for partitioned indexes SET SESSION AUTHORIZATION regress_sro_user; CREATE FUNCTION unwanted_grant() RETURNS void LANGUAGE sql AS 'GRANT regress_priv_group2 TO regress_sro_user'; @@ -1453,6 +1511,22 @@ SQL statement "SELECT unwanted_grant()" PL/pgSQL function sro_trojan() line 1 at PERFORM SQL function "mv_action" statement 1 +-- REFRESH MATERIALIZED VIEW CONCURRENTLY use of eval_const_expressions() +SET SESSION AUTHORIZATION regress_sro_user; +CREATE FUNCTION unwanted_grant_nofail(int) RETURNS int + IMMUTABLE LANGUAGE plpgsql AS $$ +BEGIN + PERFORM unwanted_grant(); + RAISE WARNING 'owned'; + RETURN 1; +EXCEPTION WHEN OTHERS THEN + RETURN 2; +END$$; +CREATE MATERIALIZED VIEW sro_index_mv AS SELECT 1 AS c; +CREATE UNIQUE INDEX ON sro_index_mv (c) WHERE unwanted_grant_nofail(1) > 0; +\c - +REFRESH MATERIALIZED VIEW CONCURRENTLY sro_index_mv; +REFRESH MATERIALIZED VIEW sro_index_mv; DROP OWNED BY regress_sro_user; DROP ROLE regress_sro_user; -- Admin options diff -Nru postgresql-13-13.4/src/test/regress/expected/publication.out postgresql-13-13.7/src/test/regress/expected/publication.out --- postgresql-13-13.4/src/test/regress/expected/publication.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/publication.out 2022-05-09 21:16:30.000000000 +0000 @@ -124,10 +124,12 @@ CREATE PUBLICATION testpub_forparted1; RESET client_min_messages; CREATE TABLE testpub_parted1 (LIKE testpub_parted); +CREATE TABLE testpub_parted2 (LIKE testpub_parted); ALTER PUBLICATION testpub_forparted1 SET (publish='insert'); +ALTER TABLE testpub_parted ATTACH PARTITION testpub_parted1 FOR VALUES IN (1); +ALTER TABLE testpub_parted ATTACH PARTITION testpub_parted2 FOR VALUES IN (2); -- works despite missing REPLICA IDENTITY, because updates are not replicated UPDATE testpub_parted1 SET a = 1; -ALTER TABLE testpub_parted ATTACH PARTITION testpub_parted1 FOR VALUES IN (1); -- only parent is listed as being in publication, not the partition ALTER PUBLICATION testpub_forparted ADD TABLE testpub_parted; \dRp+ testpub_forparted @@ -154,8 +156,39 @@ Tables: "public.testpub_parted" -DROP TABLE testpub_parted1; +-- still fail, because parent's publication replicates updates +UPDATE testpub_parted2 SET a = 2; +ERROR: cannot update table "testpub_parted2" because it does not have a replica identity and publishes updates +HINT: To enable updating the table, set REPLICA IDENTITY using ALTER TABLE. +ALTER PUBLICATION testpub_forparted DROP TABLE testpub_parted; +-- works again, because update is no longer replicated +UPDATE testpub_parted2 SET a = 2; +-- publication includes both the parent table and the child table +ALTER PUBLICATION testpub_forparted ADD TABLE testpub_parted, testpub_parted2; +-- only parent is listed as being in publication, not the partition +SELECT * FROM pg_publication_tables; + pubname | schemaname | tablename +-------------------+------------+---------------- + testpub_forparted | public | testpub_parted +(1 row) + +DROP TABLE testpub_parted1, testpub_parted2; DROP PUBLICATION testpub_forparted, testpub_forparted1; +-- Test cache invalidation FOR ALL TABLES publication +SET client_min_messages = 'ERROR'; +CREATE TABLE testpub_tbl4(a int); +INSERT INTO testpub_tbl4 values(1); +UPDATE testpub_tbl4 set a = 2; +CREATE PUBLICATION testpub_foralltables FOR ALL TABLES; +RESET client_min_messages; +-- fail missing REPLICA IDENTITY +UPDATE testpub_tbl4 set a = 3; +ERROR: cannot update table "testpub_tbl4" because it does not have a replica identity and publishes updates +HINT: To enable updating the table, set REPLICA IDENTITY using ALTER TABLE. +DROP PUBLICATION testpub_foralltables; +-- should pass after dropping the publication +UPDATE testpub_tbl4 set a = 3; +DROP TABLE testpub_tbl4; -- fail - view CREATE PUBLICATION testpub_fortbl FOR TABLE testpub_view; ERROR: "testpub_view" is not a table @@ -235,6 +268,20 @@ "testpib_ins_trunct" "testpub_fortbl" +-- verify relation cache invalidation when a primary key is added using +-- an existing index +CREATE TABLE pub_test.testpub_addpk (id int not null, data int); +ALTER PUBLICATION testpub_default ADD TABLE pub_test.testpub_addpk; +INSERT INTO pub_test.testpub_addpk VALUES(1, 11); +CREATE UNIQUE INDEX testpub_addpk_id_idx ON pub_test.testpub_addpk(id); +-- fail: +UPDATE pub_test.testpub_addpk SET id = 2; +ERROR: cannot update table "testpub_addpk" because it does not have a replica identity and publishes updates +HINT: To enable updating the table, set REPLICA IDENTITY using ALTER TABLE. +ALTER TABLE pub_test.testpub_addpk ADD PRIMARY KEY USING INDEX testpub_addpk_id_idx; +-- now it should work: +UPDATE pub_test.testpub_addpk SET id = 2; +DROP TABLE pub_test.testpub_addpk; -- permissions SET ROLE regress_publication_user2; CREATE PUBLICATION testpub2; -- fail diff -Nru postgresql-13-13.4/src/test/regress/expected/rangefuncs.out postgresql-13-13.7/src/test/regress/expected/rangefuncs.out --- postgresql-13-13.4/src/test/regress/expected/rangefuncs.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/rangefuncs.out 2022-05-09 21:16:30.000000000 +0000 @@ -2403,3 +2403,32 @@ (0 rows) drop type rngfunc2; +-- check handling of functions pulled up into function RTEs (bug #17227) +explain (verbose, costs off) +select * from + (select jsonb_path_query_array(module->'lectures', '$[*]') as lecture + from unnest(array['{"lectures": [{"id": "1"}]}'::jsonb]) + as unnested_modules(module)) as ss, + jsonb_to_recordset(ss.lecture) as j (id text); + QUERY PLAN +-------------------------------------------------------------------------------------------------------------------------------------------------------- + Nested Loop + Output: jsonb_path_query_array((unnested_modules.module -> 'lectures'::text), '$[*]'::jsonpath, '{}'::jsonb, false), j.id + -> Function Scan on pg_catalog.unnest unnested_modules + Output: unnested_modules.module + Function Call: unnest('{"{\"lectures\": [{\"id\": \"1\"}]}"}'::jsonb[]) + -> Function Scan on pg_catalog.jsonb_to_recordset j + Output: j.id + Function Call: jsonb_to_recordset(jsonb_path_query_array((unnested_modules.module -> 'lectures'::text), '$[*]'::jsonpath, '{}'::jsonb, false)) +(8 rows) + +select * from + (select jsonb_path_query_array(module->'lectures', '$[*]') as lecture + from unnest(array['{"lectures": [{"id": "1"}]}'::jsonb]) + as unnested_modules(module)) as ss, + jsonb_to_recordset(ss.lecture) as j (id text); + lecture | id +---------------+---- + [{"id": "1"}] | 1 +(1 row) + diff -Nru postgresql-13-13.4/src/test/regress/expected/regex.out postgresql-13-13.7/src/test/regress/expected/regex.out --- postgresql-13-13.4/src/test/regress/expected/regex.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/regex.out 2022-05-09 21:16:30.000000000 +0000 @@ -567,6 +567,38 @@ t (1 row) +-- Test incorrect removal of capture groups within {0} +select 'xxx' ~ '(.){0}(\1)' as f; + f +--- + f +(1 row) + +select 'xxx' ~ '((.)){0}(\2)' as f; + f +--- + f +(1 row) + +select 'xyz' ~ '((.)){0}(\2){0}' as t; + t +--- + t +(1 row) + +-- Test ancient oversight in when to apply zaptreesubs +select 'abcdef' ~ '^(.)\1|\1.' as f; + f +--- + f +(1 row) + +select 'abadef' ~ '^((.)\2|..)\2' as f; + f +--- + f +(1 row) + -- Error conditions select 'xyz' ~ 'x(\w)(?=\1)'; -- no backrefs in LACONs ERROR: invalid regular expression: invalid backreference number diff -Nru postgresql-13-13.4/src/test/regress/expected/reloptions.out postgresql-13-13.7/src/test/regress/expected/reloptions.out --- postgresql-13-13.4/src/test/regress/expected/reloptions.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/reloptions.out 2022-05-09 21:16:30.000000000 +0000 @@ -89,7 +89,7 @@ ERROR: RESET must not include values for parameters -- Test vacuum_truncate option DROP TABLE reloptions_test; -CREATE TABLE reloptions_test(i INT NOT NULL, j text) +CREATE TEMP TABLE reloptions_test(i INT NOT NULL, j text) WITH (vacuum_truncate=false, toast.vacuum_truncate=false, autovacuum_enabled=false); @@ -103,7 +103,7 @@ ERROR: null value in column "i" of relation "reloptions_test" violates not-null constraint DETAIL: Failing row contains (null, null). -- Do an aggressive vacuum to prevent page-skipping. -VACUUM FREEZE reloptions_test; +VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) reloptions_test; SELECT pg_relation_size('reloptions_test') > 0; ?column? ---------- @@ -129,7 +129,7 @@ ERROR: null value in column "i" of relation "reloptions_test" violates not-null constraint DETAIL: Failing row contains (null, null). -- Do an aggressive vacuum to prevent page-skipping. -VACUUM FREEZE reloptions_test; +VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) reloptions_test; SELECT pg_relation_size('reloptions_test') = 0; ?column? ---------- diff -Nru postgresql-13-13.4/src/test/regress/expected/replica_identity.out postgresql-13-13.7/src/test/regress/expected/replica_identity.out --- postgresql-13-13.4/src/test/regress/expected/replica_identity.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/replica_identity.out 2022-05-09 21:16:30.000000000 +0000 @@ -223,6 +223,10 @@ Indexes: "test_replica_identity3_id_key" UNIQUE, btree (id) REPLICA IDENTITY +-- ALTER TABLE DROP NOT NULL is not allowed for columns part of an index +-- used as replica identity. +ALTER TABLE test_replica_identity3 ALTER COLUMN id DROP NOT NULL; +ERROR: column "id" is in index used as replica identity DROP TABLE test_replica_identity; DROP TABLE test_replica_identity2; DROP TABLE test_replica_identity3; diff -Nru postgresql-13-13.4/src/test/regress/expected/rowtypes.out postgresql-13-13.7/src/test/regress/expected/rowtypes.out --- postgresql-13-13.4/src/test/regress/expected/rowtypes.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/rowtypes.out 2022-05-09 21:16:30.000000000 +0000 @@ -1004,18 +1004,8 @@ {"q1":4567890123456789,"q2":-4567890123456789} (5 rows) +-- since "i" is of type "int8_tbl", attaching aliases doesn't change anything: select row_to_json(i) from int8_tbl i(x,y); - row_to_json ----------------------------------------------- - {"x":123,"y":456} - {"x":123,"y":4567890123456789} - {"x":4567890123456789,"y":123} - {"x":4567890123456789,"y":4567890123456789} - {"x":4567890123456789,"y":-4567890123456789} -(5 rows) - -create temp view vv1 as select * from int8_tbl; -select row_to_json(i) from vv1 i; row_to_json ------------------------------------------------ {"q1":123,"q2":456} @@ -1025,16 +1015,7 @@ {"q1":4567890123456789,"q2":-4567890123456789} (5 rows) -select row_to_json(i) from vv1 i(x,y); - row_to_json ----------------------------------------------- - {"x":123,"y":456} - {"x":123,"y":4567890123456789} - {"x":4567890123456789,"y":123} - {"x":4567890123456789,"y":4567890123456789} - {"x":4567890123456789,"y":-4567890123456789} -(5 rows) - +-- in these examples, we'll report the exposed column names of the subselect: select row_to_json(ss) from (select q1, q2 from int8_tbl) as ss; row_to_json diff -Nru postgresql-13-13.4/src/test/regress/expected/rules.out postgresql-13-13.7/src/test/regress/expected/rules.out --- postgresql-13-13.4/src/test/regress/expected/rules.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/rules.out 2022-05-09 21:16:30.000000000 +0000 @@ -2887,6 +2887,31 @@ (10 rows) reset constraint_exclusion; +-- test FOR UPDATE in rules +create table rules_base(f1 int, f2 int); +insert into rules_base values(1,2), (11,12); +create rule r1 as on update to rules_base do instead + select * from rules_base where f1 = 1 for update; +update rules_base set f2 = f2 + 1; + f1 | f2 +----+---- + 1 | 2 +(1 row) + +create or replace rule r1 as on update to rules_base do instead + select * from rules_base where f1 = 11 for update of rules_base; +update rules_base set f2 = f2 + 1; + f1 | f2 +----+---- + 11 | 12 +(1 row) + +create or replace rule r1 as on update to rules_base do instead + select * from rules_base where f1 = 11 for update of old; -- error +ERROR: relation "old" in FOR UPDATE clause not found in FROM clause +LINE 2: select * from rules_base where f1 = 11 for update of old; + ^ +drop table rules_base; -- test various flavors of pg_get_viewdef() select pg_get_viewdef('shoe'::regclass) as unpretty; unpretty diff -Nru postgresql-13-13.4/src/test/regress/expected/sanity_check.out postgresql-13-13.7/src/test/regress/expected/sanity_check.out --- postgresql-13-13.4/src/test/regress/expected/sanity_check.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/sanity_check.out 2022-05-09 21:16:30.000000000 +0000 @@ -181,6 +181,7 @@ sql_sizing|f stud_emp|f student|f +tab_core_types|f tableam_parted_a_heap2|f tableam_parted_b_heap2|f tableam_parted_c_heap2|f diff -Nru postgresql-13-13.4/src/test/regress/expected/select.out postgresql-13-13.7/src/test/regress/expected/select.out --- postgresql-13-13.4/src/test/regress/expected/select.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/select.out 2022-05-09 21:16:30.000000000 +0000 @@ -517,6 +517,13 @@ 4567890123456789 | -4567890123456789 (9 rows) +-- corner case: VALUES with no columns +CREATE TEMP TABLE nocols(); +INSERT INTO nocols DEFAULT VALUES; +SELECT * FROM nocols n, LATERAL (VALUES(n.*)) v; +-- +(1 row) + -- -- Test ORDER BY options -- diff -Nru postgresql-13-13.4/src/test/regress/expected/stats_ext.out postgresql-13-13.7/src/test/regress/expected/stats_ext.out --- postgresql-13-13.4/src/test/regress/expected/stats_ext.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/stats_ext.out 2022-05-09 21:16:30.000000000 +0000 @@ -54,6 +54,17 @@ -- Ensure stats are dropped sanely, and test IF NOT EXISTS while at it CREATE TABLE ab1 (a INTEGER, b INTEGER, c INTEGER); CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1; +COMMENT ON STATISTICS ab1_a_b_stats IS 'new comment'; +CREATE ROLE regress_stats_ext; +SET SESSION AUTHORIZATION regress_stats_ext; +COMMENT ON STATISTICS ab1_a_b_stats IS 'changed comment'; +ERROR: must be owner of statistics object ab1_a_b_stats +DROP STATISTICS ab1_a_b_stats; +ERROR: must be owner of statistics object ab1_a_b_stats +ALTER STATISTICS ab1_a_b_stats RENAME TO ab1_a_b_stats_new; +ERROR: must be owner of statistics object ab1_a_b_stats +RESET SESSION AUTHORIZATION; +DROP ROLE regress_stats_ext; CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1; NOTICE: statistics object "ab1_a_b_stats" already exists, skipping DROP STATISTICS ab1_a_b_stats; @@ -150,6 +161,66 @@ ANALYZE ab1; DROP TABLE ab1 CASCADE; NOTICE: drop cascades to table ab1c +-- Tests for stats with inheritance +CREATE TABLE stxdinh(a int, b int); +CREATE TABLE stxdinh1() INHERITS(stxdinh); +CREATE TABLE stxdinh2() INHERITS(stxdinh); +INSERT INTO stxdinh SELECT mod(a,50), mod(a,100) FROM generate_series(0, 1999) a; +INSERT INTO stxdinh1 SELECT mod(a,100), mod(a,100) FROM generate_series(0, 999) a; +INSERT INTO stxdinh2 SELECT mod(a,100), mod(a,100) FROM generate_series(0, 999) a; +VACUUM ANALYZE stxdinh, stxdinh1, stxdinh2; +-- Ensure non-inherited stats are not applied to inherited query +-- Without stats object, it looks like this +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinh* GROUP BY 1, 2'); + estimated | actual +-----------+-------- + 400 | 150 +(1 row) + +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinh* WHERE a = 0 AND b = 0'); + estimated | actual +-----------+-------- + 3 | 40 +(1 row) + +CREATE STATISTICS stxdinh ON a, b FROM stxdinh; +VACUUM ANALYZE stxdinh, stxdinh1, stxdinh2; +-- Since the stats object does not include inherited stats, it should not +-- affect the estimates +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinh* GROUP BY 1, 2'); + estimated | actual +-----------+-------- + 400 | 150 +(1 row) + +-- Dependencies are applied at individual relations (within append), so +-- this estimate changes a bit because we improve estimates for the parent +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinh* WHERE a = 0 AND b = 0'); + estimated | actual +-----------+-------- + 22 | 40 +(1 row) + +DROP TABLE stxdinh, stxdinh1, stxdinh2; +-- Ensure inherited stats ARE applied to inherited query in partitioned table +CREATE TABLE stxdinp(i int, a int, b int) PARTITION BY RANGE (i); +CREATE TABLE stxdinp1 PARTITION OF stxdinp FOR VALUES FROM (1) TO (100); +INSERT INTO stxdinp SELECT 1, a/100, a/100 FROM generate_series(1, 999) a; +CREATE STATISTICS stxdinp ON a, b FROM stxdinp; +VACUUM ANALYZE stxdinp; -- partitions are processed recursively +SELECT 1 FROM pg_statistic_ext WHERE stxrelid = 'stxdinp'::regclass; + ?column? +---------- + 1 +(1 row) + +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinp GROUP BY 1, 2'); + estimated | actual +-----------+-------- + 10 | 10 +(1 row) + +DROP TABLE stxdinp; -- Verify supported object types for extended statistics CREATE schema tststats; CREATE TABLE tststats.t (a int, b int, c text); diff -Nru postgresql-13-13.4/src/test/regress/expected/sysviews.out postgresql-13-13.7/src/test/regress/expected/sysviews.out --- postgresql-13-13.4/src/test/regress/expected/sysviews.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/sysviews.out 2022-05-09 21:16:30.000000000 +0000 @@ -67,6 +67,13 @@ t (1 row) +-- There will surely be at least one SLRU cache +select count(*) > 0 as ok from pg_stat_slru; + ok +---- + t +(1 row) + -- We expect no walreceiver running in this test select count(*) = 0 as ok from pg_stat_wal_receiver; ok diff -Nru postgresql-13-13.4/src/test/regress/expected/timestamp.out postgresql-13-13.7/src/test/regress/expected/timestamp.out --- postgresql-13-13.4/src/test/regress/expected/timestamp.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/timestamp.out 2022-05-09 21:16:30.000000000 +0000 @@ -1746,3 +1746,63 @@ Sun Dec 28 06:30:45.887 2014 (1 row) +-- generate_series for timestamp +select * from generate_series('2020-01-01 00:00'::timestamp, + '2020-01-02 03:00'::timestamp, + '1 hour'::interval); + generate_series +-------------------------- + Wed Jan 01 00:00:00 2020 + Wed Jan 01 01:00:00 2020 + Wed Jan 01 02:00:00 2020 + Wed Jan 01 03:00:00 2020 + Wed Jan 01 04:00:00 2020 + Wed Jan 01 05:00:00 2020 + Wed Jan 01 06:00:00 2020 + Wed Jan 01 07:00:00 2020 + Wed Jan 01 08:00:00 2020 + Wed Jan 01 09:00:00 2020 + Wed Jan 01 10:00:00 2020 + Wed Jan 01 11:00:00 2020 + Wed Jan 01 12:00:00 2020 + Wed Jan 01 13:00:00 2020 + Wed Jan 01 14:00:00 2020 + Wed Jan 01 15:00:00 2020 + Wed Jan 01 16:00:00 2020 + Wed Jan 01 17:00:00 2020 + Wed Jan 01 18:00:00 2020 + Wed Jan 01 19:00:00 2020 + Wed Jan 01 20:00:00 2020 + Wed Jan 01 21:00:00 2020 + Wed Jan 01 22:00:00 2020 + Wed Jan 01 23:00:00 2020 + Thu Jan 02 00:00:00 2020 + Thu Jan 02 01:00:00 2020 + Thu Jan 02 02:00:00 2020 + Thu Jan 02 03:00:00 2020 +(28 rows) + +-- the LIMIT should allow this to terminate in a reasonable amount of time +-- (but that unfortunately doesn't work yet for SELECT * FROM ...) +select generate_series('2022-01-01 00:00'::timestamp, + 'infinity'::timestamp, + '1 month'::interval) limit 10; + generate_series +-------------------------- + Sat Jan 01 00:00:00 2022 + Tue Feb 01 00:00:00 2022 + Tue Mar 01 00:00:00 2022 + Fri Apr 01 00:00:00 2022 + Sun May 01 00:00:00 2022 + Wed Jun 01 00:00:00 2022 + Fri Jul 01 00:00:00 2022 + Mon Aug 01 00:00:00 2022 + Thu Sep 01 00:00:00 2022 + Sat Oct 01 00:00:00 2022 +(10 rows) + +-- errors +select * from generate_series('2020-01-01 00:00'::timestamp, + '2020-01-02 03:00'::timestamp, + '0 hour'::interval); +ERROR: step size cannot equal zero diff -Nru postgresql-13-13.4/src/test/regress/expected/timestamptz.out postgresql-13-13.7/src/test/regress/expected/timestamptz.out --- postgresql-13-13.4/src/test/regress/expected/timestamptz.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/timestamptz.out 2022-05-09 21:16:30.000000000 +0000 @@ -2106,6 +2106,66 @@ (1 row) RESET TimeZone; +-- generate_series for timestamptz +select * from generate_series('2020-01-01 00:00'::timestamptz, + '2020-01-02 03:00'::timestamptz, + '1 hour'::interval); + generate_series +------------------------------ + Wed Jan 01 00:00:00 2020 PST + Wed Jan 01 01:00:00 2020 PST + Wed Jan 01 02:00:00 2020 PST + Wed Jan 01 03:00:00 2020 PST + Wed Jan 01 04:00:00 2020 PST + Wed Jan 01 05:00:00 2020 PST + Wed Jan 01 06:00:00 2020 PST + Wed Jan 01 07:00:00 2020 PST + Wed Jan 01 08:00:00 2020 PST + Wed Jan 01 09:00:00 2020 PST + Wed Jan 01 10:00:00 2020 PST + Wed Jan 01 11:00:00 2020 PST + Wed Jan 01 12:00:00 2020 PST + Wed Jan 01 13:00:00 2020 PST + Wed Jan 01 14:00:00 2020 PST + Wed Jan 01 15:00:00 2020 PST + Wed Jan 01 16:00:00 2020 PST + Wed Jan 01 17:00:00 2020 PST + Wed Jan 01 18:00:00 2020 PST + Wed Jan 01 19:00:00 2020 PST + Wed Jan 01 20:00:00 2020 PST + Wed Jan 01 21:00:00 2020 PST + Wed Jan 01 22:00:00 2020 PST + Wed Jan 01 23:00:00 2020 PST + Thu Jan 02 00:00:00 2020 PST + Thu Jan 02 01:00:00 2020 PST + Thu Jan 02 02:00:00 2020 PST + Thu Jan 02 03:00:00 2020 PST +(28 rows) + +-- the LIMIT should allow this to terminate in a reasonable amount of time +-- (but that unfortunately doesn't work yet for SELECT * FROM ...) +select generate_series('2022-01-01 00:00'::timestamptz, + 'infinity'::timestamptz, + '1 month'::interval) limit 10; + generate_series +------------------------------ + Sat Jan 01 00:00:00 2022 PST + Tue Feb 01 00:00:00 2022 PST + Tue Mar 01 00:00:00 2022 PST + Fri Apr 01 00:00:00 2022 PDT + Sun May 01 00:00:00 2022 PDT + Wed Jun 01 00:00:00 2022 PDT + Fri Jul 01 00:00:00 2022 PDT + Mon Aug 01 00:00:00 2022 PDT + Thu Sep 01 00:00:00 2022 PDT + Sat Oct 01 00:00:00 2022 PDT +(10 rows) + +-- errors +select * from generate_series('2020-01-01 00:00'::timestamptz, + '2020-01-02 03:00'::timestamptz, + '0 hour'::interval); +ERROR: step size cannot equal zero -- -- Test behavior with a dynamic (time-varying) timezone abbreviation. -- These tests rely on the knowledge that MSK (Europe/Moscow standard time) diff -Nru postgresql-13-13.4/src/test/regress/expected/triggers.out postgresql-13-13.7/src/test/regress/expected/triggers.out --- postgresql-13-13.4/src/test/regress/expected/triggers.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/triggers.out 2022-05-09 21:16:30.000000000 +0000 @@ -2122,6 +2122,20 @@ alter table trigpart attach partition trigpart3 FOR VALUES FROM (2000) to (3000); -- fail ERROR: trigger "trg1" for relation "trigpart3" already exists drop table trigpart3; +-- check display of unrelated triggers +create trigger samename after delete on trigpart execute function trigger_nothing(); +create trigger samename after delete on trigpart1 execute function trigger_nothing(); +\d trigpart1 + Table "public.trigpart1" + Column | Type | Collation | Nullable | Default +--------+---------+-----------+----------+--------- + a | integer | | | + b | integer | | | +Partition of: trigpart FOR VALUES FROM (0) TO (1000) +Triggers: + samename AFTER DELETE ON trigpart1 FOR EACH STATEMENT EXECUTE FUNCTION trigger_nothing() + trg1 AFTER INSERT ON trigpart1 FOR EACH ROW EXECUTE FUNCTION trigger_nothing(), ON TABLE trigpart + drop table trigpart; drop function trigger_nothing(); -- diff -Nru postgresql-13-13.4/src/test/regress/expected/type_sanity.out postgresql-13-13.7/src/test/regress/expected/type_sanity.out --- postgresql-13-13.4/src/test/regress/expected/type_sanity.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/type_sanity.out 2022-05-09 21:16:30.000000000 +0000 @@ -631,3 +631,100 @@ ----------+------------+--------- (0 rows) +-- Create a table that holds all the known in-core data types and leave it +-- around so as pg_upgrade is able to test their binary compatibility. +CREATE TABLE tab_core_types AS SELECT + '(11,12)'::point, + '(1,1),(2,2)'::line, + '((11,11),(12,12))'::lseg, + '((11,11),(13,13))'::box, + '((11,12),(13,13),(14,14))'::path AS openedpath, + '[(11,12),(13,13),(14,14)]'::path AS closedpath, + '((11,12),(13,13),(14,14))'::polygon, + '1,1,1'::circle, + 'today'::date, + 'now'::time, + 'now'::timestamp, + 'now'::timetz, + 'now'::timestamptz, + '12 seconds'::interval, + '{"reason":"because"}'::json, + '{"when":"now"}'::jsonb, + '$.a[*] ? (@ > 2)'::jsonpath, + '127.0.0.1'::inet, + '127.0.0.0/8'::cidr, + '00:01:03:86:1c:ba'::macaddr8, + '00:01:03:86:1c:ba'::macaddr, + 2::int2, 4::int4, 8::int8, + 4::float4, '8'::float8, pi()::numeric, + 'foo'::"char", + 'c'::bpchar, + 'abc'::varchar, + 'name'::name, + 'txt'::text, + true::bool, + E'\\xDEADBEEF'::bytea, + B'10001'::bit, + B'10001'::varbit AS varbit, + '12.34'::money, + 'abc'::refcursor, + '1 2'::int2vector, + '1 2'::oidvector, + format('%I=UC/%I', USER, USER)::aclitem AS aclitem, + 'a fat cat sat on a mat and ate a fat rat'::tsvector, + 'fat & rat'::tsquery, + 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid, + '11'::xid8, + 'pg_class'::regclass, + 'regtype'::regtype, + 'pg_monitor'::regrole, + 'pg_class'::regclass::oid, + '(1,1)'::tid, '2'::xid, '3'::cid, + '10:20:10,14,15'::txid_snapshot, + '10:20:10,14,15'::pg_snapshot, + '16/B374D848'::pg_lsn, + 1::information_schema.cardinal_number, + 'l'::information_schema.character_data, + 'n'::information_schema.sql_identifier, + 'now'::information_schema.time_stamp, + 'YES'::information_schema.yes_or_no, + 'venus'::planets, + 'i16'::insenum, + '(1,2)'::int4range, + '(3,4)'::int8range, + '(1,2)'::float8range, + '(3,4)'::numrange, + '(a,b)'::textrange, + '(12.34, 56.78)'::cashrange, + '(2020-01-02, 2021-02-03)'::daterange, + '(2020-01-02 03:04:05, 2021-02-03 06:07:08)'::tsrange, + '(2020-01-02 03:04:05, 2021-02-03 06:07:08)'::tstzrange, + arrayrange(ARRAY[1,2], ARRAY[2,1]); +-- Sanity check on the previous table, checking that all core types are +-- included in this table. +SELECT oid, typname, typtype, typelem, typarray, typarray + FROM pg_type t + WHERE typtype NOT IN ('p', 'c') AND + -- reg* types cannot be pg_upgraded, so discard them. + oid != ALL(ARRAY['regproc', 'regprocedure', 'regoper', + 'regoperator', 'regconfig', 'regdictionary', + 'regnamespace', 'regcollation']::regtype[]) AND + -- Discard types that do not accept input values as these cannot be + -- tested easily. + -- Note: XML might be disabled at compile-time. + oid != ALL(ARRAY['gtsvector', 'pg_node_tree', + 'pg_ndistinct', 'pg_dependencies', 'pg_mcv_list', + 'xml']::regtype[]) AND + -- Discard arrays. + NOT EXISTS (SELECT 1 FROM pg_type u WHERE u.typarray = t.oid) + -- Exclude everything from the table created above. This checks + -- that no in-core types are missing in tab_core_types. + AND NOT EXISTS (SELECT 1 + FROM pg_attribute a + WHERE a.atttypid=t.oid AND + a.attnum > 0 AND + a.attrelid='tab_core_types'::regclass); + oid | typname | typtype | typelem | typarray | typarray +-----+---------+---------+---------+----------+---------- +(0 rows) + diff -Nru postgresql-13-13.4/src/test/regress/expected/unicode.out postgresql-13-13.7/src/test/regress/expected/unicode.out --- postgresql-13-13.4/src/test/regress/expected/unicode.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/unicode.out 2022-05-09 21:16:30.000000000 +0000 @@ -8,6 +8,12 @@ t (1 row) +SELECT normalize(''); + normalize +----------- + +(1 row) + SELECT normalize(U&'\0061\0308\24D1c') = U&'\00E4\24D1c' COLLATE "C" AS test_default; test_default -------------- @@ -67,7 +73,8 @@ (VALUES (1, U&'\00E4bc'), (2, U&'\0061\0308bc'), (3, U&'\00E4\24D1c'), - (4, U&'\0061\0308\24D1c')) vals (num, val) + (4, U&'\0061\0308\24D1c'), + (5, '')) vals (num, val) ORDER BY num; num | val | nfc | nfd | nfkc | nfkd -----+-----+-----+-----+------+------ @@ -75,7 +82,8 @@ 2 | äbc | f | t | f | t 3 | äⓑc | t | f | f | f 4 | äⓑc | f | t | f | f -(4 rows) + 5 | | t | t | t | t +(5 rows) SELECT is_normalized('abc', 'def'); -- run-time error ERROR: invalid normalization form: def diff -Nru postgresql-13-13.4/src/test/regress/expected/vacuum.out postgresql-13-13.7/src/test/regress/expected/vacuum.out --- postgresql-13-13.4/src/test/regress/expected/vacuum.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/vacuum.out 2022-05-09 21:16:30.000000000 +0000 @@ -163,19 +163,19 @@ VACUUM (INDEX_CLEANUP FALSE) vactst; -- index cleanup option is ignored if no indexes VACUUM (INDEX_CLEANUP FALSE, FREEZE TRUE) vaccluster; -- TRUNCATE option -CREATE TABLE vac_truncate_test(i INT NOT NULL, j text) +CREATE TEMP TABLE vac_truncate_test(i INT NOT NULL, j text) WITH (vacuum_truncate=true, autovacuum_enabled=false); INSERT INTO vac_truncate_test VALUES (1, NULL), (NULL, NULL); ERROR: null value in column "i" of relation "vac_truncate_test" violates not-null constraint DETAIL: Failing row contains (null, null). -VACUUM (TRUNCATE FALSE) vac_truncate_test; +VACUUM (TRUNCATE FALSE, DISABLE_PAGE_SKIPPING) vac_truncate_test; SELECT pg_relation_size('vac_truncate_test') > 0; ?column? ---------- t (1 row) -VACUUM vac_truncate_test; +VACUUM (DISABLE_PAGE_SKIPPING) vac_truncate_test; SELECT pg_relation_size('vac_truncate_test') = 0; ?column? ---------- diff -Nru postgresql-13-13.4/src/test/regress/expected/with.out postgresql-13-13.7/src/test/regress/expected/with.out --- postgresql-13-13.4/src/test/regress/expected/with.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/with.out 2022-05-09 21:16:30.000000000 +0000 @@ -1715,7 +1715,7 @@ CREATE TEMP TABLE bug6051_2 (i int); CREATE RULE bug6051_ins AS ON INSERT TO bug6051 DO INSTEAD INSERT INTO bug6051_2 - SELECT NEW.i; + VALUES(NEW.i); WITH t1 AS ( DELETE FROM bug6051 RETURNING * ) INSERT INTO bug6051 SELECT * FROM t1; SELECT * FROM bug6051; @@ -1731,6 +1731,105 @@ 3 (3 rows) +-- check INSERT...SELECT rule actions are disallowed on commands +-- that have modifyingCTEs +CREATE OR REPLACE RULE bug6051_ins AS ON INSERT TO bug6051 DO INSTEAD + INSERT INTO bug6051_2 + SELECT NEW.i; +WITH t1 AS ( DELETE FROM bug6051 RETURNING * ) +INSERT INTO bug6051 SELECT * FROM t1; +ERROR: INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH +-- silly example to verify that hasModifyingCTE flag is propagated +CREATE TEMP TABLE bug6051_3 AS + SELECT a FROM generate_series(11,13) AS a; +CREATE RULE bug6051_3_ins AS ON INSERT TO bug6051_3 DO INSTEAD + SELECT i FROM bug6051_2; +BEGIN; SET LOCAL force_parallel_mode = on; +WITH t1 AS ( DELETE FROM bug6051_3 RETURNING * ) + INSERT INTO bug6051_3 SELECT * FROM t1; + i +--- + 1 + 2 + 3 + 1 + 2 + 3 + 1 + 2 + 3 +(9 rows) + +COMMIT; +SELECT * FROM bug6051_3; + a +--- +(0 rows) + +-- check case where CTE reference is removed due to optimization +EXPLAIN (VERBOSE, COSTS OFF) +SELECT q1 FROM +( + WITH t_cte AS (SELECT * FROM int8_tbl t) + SELECT q1, (SELECT q2 FROM t_cte WHERE t_cte.q1 = i8.q1) AS t_sub + FROM int8_tbl i8 +) ss; + QUERY PLAN +-------------------------------------- + Subquery Scan on ss + Output: ss.q1 + -> Seq Scan on public.int8_tbl i8 + Output: i8.q1, NULL::bigint +(4 rows) + +SELECT q1 FROM +( + WITH t_cte AS (SELECT * FROM int8_tbl t) + SELECT q1, (SELECT q2 FROM t_cte WHERE t_cte.q1 = i8.q1) AS t_sub + FROM int8_tbl i8 +) ss; + q1 +------------------ + 123 + 123 + 4567890123456789 + 4567890123456789 + 4567890123456789 +(5 rows) + +EXPLAIN (VERBOSE, COSTS OFF) +SELECT q1 FROM +( + WITH t_cte AS MATERIALIZED (SELECT * FROM int8_tbl t) + SELECT q1, (SELECT q2 FROM t_cte WHERE t_cte.q1 = i8.q1) AS t_sub + FROM int8_tbl i8 +) ss; + QUERY PLAN +--------------------------------------------- + Subquery Scan on ss + Output: ss.q1 + -> Seq Scan on public.int8_tbl i8 + Output: i8.q1, NULL::bigint + CTE t_cte + -> Seq Scan on public.int8_tbl t + Output: t.q1, t.q2 +(7 rows) + +SELECT q1 FROM +( + WITH t_cte AS MATERIALIZED (SELECT * FROM int8_tbl t) + SELECT q1, (SELECT q2 FROM t_cte WHERE t_cte.q1 = i8.q1) AS t_sub + FROM int8_tbl i8 +) ss; + q1 +------------------ + 123 + 123 + 4567890123456789 + 4567890123456789 + 4567890123456789 +(5 rows) + -- a truly recursive CTE in the same list WITH RECURSIVE t(a) AS ( SELECT 0 @@ -2357,19 +2456,19 @@ (1 row) -- check sane response to attempt to modify CTE relation -WITH test AS (SELECT 42) INSERT INTO test VALUES (1); -ERROR: relation "test" does not exist -LINE 1: WITH test AS (SELECT 42) INSERT INTO test VALUES (1); - ^ +WITH with_test AS (SELECT 42) INSERT INTO with_test VALUES (1); +ERROR: relation "with_test" does not exist +LINE 1: WITH with_test AS (SELECT 42) INSERT INTO with_test VALUES (... + ^ -- check response to attempt to modify table with same name as a CTE (perhaps -- surprisingly it works, because CTEs don't hide tables from data-modifying -- statements) -create temp table test (i int); -with test as (select 42) insert into test select * from test; -select * from test; +create temp table with_test (i int); +with with_test as (select 42) insert into with_test select * from with_test; +select * from with_test; i ---- 42 (1 row) -drop table test; +drop table with_test; diff -Nru postgresql-13-13.4/src/test/regress/expected/xmlmap_1.out postgresql-13-13.7/src/test/regress/expected/xmlmap_1.out --- postgresql-13-13.4/src/test/regress/expected/xmlmap_1.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/xmlmap_1.out 2022-05-09 21:16:30.000000000 +0000 @@ -2,9 +2,15 @@ CREATE TABLE testxmlschema.test1 (a int, b text); INSERT INTO testxmlschema.test1 VALUES (1, 'one'), (2, 'two'), (-1, null); CREATE DOMAIN testxmldomain AS varchar; -CREATE TABLE testxmlschema.test2 (z int, y varchar(500), x char(6), w numeric(9,2), v smallint, u bigint, t real, s time, r timestamp, q date, p xml, o testxmldomain, n bool, m bytea, aaa text); +CREATE TABLE testxmlschema.test2 (z int, y varchar(500), x char(6), + w numeric(9,2), v smallint, u bigint, t real, + s time, stz timetz, r timestamp, rtz timestamptz, q date, + p xml, o testxmldomain, n bool, m bytea, aaa text); ALTER TABLE testxmlschema.test2 DROP COLUMN aaa; -INSERT INTO testxmlschema.test2 VALUES (55, 'abc', 'def', 98.6, 2, 999, 0, '21:07', '2009-06-08 21:07:30', '2009-06-08', NULL, 'ABC', true, 'XYZ'); +INSERT INTO testxmlschema.test2 VALUES (55, 'abc', 'def', + 98.6, 2, 999, 0, + '21:07', '21:11 +05', '2009-06-08 21:07:30', '2009-06-08 21:07:30 -07', '2009-06-08', + NULL, 'ABC', true, 'XYZ'); SELECT table_to_xml('testxmlschema.test1', false, false, ''); ERROR: unsupported XML feature DETAIL: This functionality requires the server to be built with libxml support. diff -Nru postgresql-13-13.4/src/test/regress/expected/xmlmap.out postgresql-13-13.7/src/test/regress/expected/xmlmap.out --- postgresql-13-13.4/src/test/regress/expected/xmlmap.out 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/expected/xmlmap.out 2022-05-09 21:16:30.000000000 +0000 @@ -2,9 +2,15 @@ CREATE TABLE testxmlschema.test1 (a int, b text); INSERT INTO testxmlschema.test1 VALUES (1, 'one'), (2, 'two'), (-1, null); CREATE DOMAIN testxmldomain AS varchar; -CREATE TABLE testxmlschema.test2 (z int, y varchar(500), x char(6), w numeric(9,2), v smallint, u bigint, t real, s time, r timestamp, q date, p xml, o testxmldomain, n bool, m bytea, aaa text); +CREATE TABLE testxmlschema.test2 (z int, y varchar(500), x char(6), + w numeric(9,2), v smallint, u bigint, t real, + s time, stz timetz, r timestamp, rtz timestamptz, q date, + p xml, o testxmldomain, n bool, m bytea, aaa text); ALTER TABLE testxmlschema.test2 DROP COLUMN aaa; -INSERT INTO testxmlschema.test2 VALUES (55, 'abc', 'def', 98.6, 2, 999, 0, '21:07', '2009-06-08 21:07:30', '2009-06-08', NULL, 'ABC', true, 'XYZ'); +INSERT INTO testxmlschema.test2 VALUES (55, 'abc', 'def', + 98.6, 2, 999, 0, + '21:07', '21:11 +05', '2009-06-08 21:07:30', '2009-06-08 21:07:30 -07', '2009-06-08', + NULL, 'ABC', true, 'XYZ'); SELECT table_to_xml('testxmlschema.test1', false, false, ''); table_to_xml --------------------------------------------------------------- @@ -107,7 +113,9 @@ 999 + 0 + 21:07:00 + + 21:11:00+05 + 2009-06-08T21:07:30 + + 2009-06-08T21:07:30-07:00 + 2009-06-08 + ABC + true + @@ -253,113 +261,127 @@ (1 row) SELECT table_to_xmlschema('testxmlschema.test2', false, false, ''); - table_to_xmlschema ------------------------------------------------------------------------------------------------------------------ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + table_to_xmlschema +---------------------------------------------------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (1 row) @@ -816,7 +838,9 @@ 999 + 0 + 21:07:00 + + 21:11:00+05 + 2009-06-08T21:07:30 + + 2009-06-08T21:07:30-07:00 + 2009-06-08 + ABC + true + @@ -863,7 +887,9 @@ 999 + 0 + 21:07:00 + + 21:11:00+05 + 2009-06-08T21:07:30 + + 2009-06-08T21:07:30-07:00 + 2009-06-08 +

    + ABC + @@ -878,337 +904,375 @@ (1 row) SELECT schema_to_xmlschema('testxmlschema', false, true, ''); - schema_to_xmlschema -------------------------------------------------------------------------------------------------------------------- - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + schema_to_xmlschema +---------------------------------------------------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (1 row) SELECT schema_to_xmlschema('testxmlschema', true, false, ''); - schema_to_xmlschema ---------------------------------------------------------------------------------------------------- - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + schema_to_xmlschema +---------------------------------------------------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (1 row) SELECT schema_to_xml_and_xmlschema('testxmlschema', true, true, 'foo'); - schema_to_xml_and_xmlschema -------------------------------------------------------------------------------------------------------------------- - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - 1 + - one + - + - + - + - 2 + - two + - + - + - + - -1 + - + - + - + - + - + - 55 + - abc + - def + - 98.60 + - 2 + - 999 + - 0 + - 21:07:00 + - 2009-06-08T21:07:30 + - 2009-06-08 + -

    + - ABC + - true + - WFla + - + - + - + - + + schema_to_xml_and_xmlschema +---------------------------------------------------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + one + + + + + + + + 2 + + two + + + + + + + + -1 + + + + + + + + + + + + 55 + + abc + + def + + 98.60 + + 2 + + 999 + + 0 + + 21:07:00 + + 21:11:00+05 + + 2009-06-08T21:07:30 + + 2009-06-08T21:07:30-07:00 + + 2009-06-08 + +

    + + ABC + + true + + WFla + + + + + + + + + (1 row) diff -Nru postgresql-13-13.4/src/test/regress/input/largeobject.source postgresql-13-13.7/src/test/regress/input/largeobject.source --- postgresql-13-13.4/src/test/regress/input/largeobject.source 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/input/largeobject.source 2022-05-09 21:16:30.000000000 +0000 @@ -124,6 +124,17 @@ SELECT lo_open(loid, x'40000'::int) from lotest_stash_values; ABORT; +DO $$ +DECLARE + loid oid; +BEGIN + SELECT tbl.loid INTO loid FROM lotest_stash_values tbl; + PERFORM lo_export(loid, '@abs_builddir@/results/invalid/path'); +EXCEPTION + WHEN UNDEFINED_FILE THEN RAISE NOTICE 'could not open file, as expected'; +END; +$$; + -- Test truncation. BEGIN; UPDATE lotest_stash_values SET fd=lo_open(loid, CAST(x'20000' | x'40000' AS integer)); diff -Nru postgresql-13-13.4/src/test/regress/output/largeobject_1.source postgresql-13-13.7/src/test/regress/output/largeobject_1.source --- postgresql-13-13.4/src/test/regress/output/largeobject_1.source 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/output/largeobject_1.source 2022-05-09 21:16:30.000000000 +0000 @@ -161,6 +161,17 @@ (1 row) ABORT; +DO $$ +DECLARE + loid oid; +BEGIN + SELECT tbl.loid INTO loid FROM lotest_stash_values tbl; + PERFORM lo_export(loid, '@abs_builddir@/results/invalid/path'); +EXCEPTION + WHEN UNDEFINED_FILE THEN RAISE NOTICE 'could not open file, as expected'; +END; +$$; +NOTICE: could not open file, as expected -- Test truncation. BEGIN; UPDATE lotest_stash_values SET fd=lo_open(loid, CAST(x'20000' | x'40000' AS integer)); diff -Nru postgresql-13-13.4/src/test/regress/output/largeobject.source postgresql-13-13.7/src/test/regress/output/largeobject.source --- postgresql-13-13.4/src/test/regress/output/largeobject.source 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/output/largeobject.source 2022-05-09 21:16:30.000000000 +0000 @@ -161,6 +161,17 @@ (1 row) ABORT; +DO $$ +DECLARE + loid oid; +BEGIN + SELECT tbl.loid INTO loid FROM lotest_stash_values tbl; + PERFORM lo_export(loid, '@abs_builddir@/results/invalid/path'); +EXCEPTION + WHEN UNDEFINED_FILE THEN RAISE NOTICE 'could not open file, as expected'; +END; +$$; +NOTICE: could not open file, as expected -- Test truncation. BEGIN; UPDATE lotest_stash_values SET fd=lo_open(loid, CAST(x'20000' | x'40000' AS integer)); diff -Nru postgresql-13-13.4/src/test/regress/pg_regress.c postgresql-13-13.7/src/test/regress/pg_regress.c --- postgresql-13-13.4/src/test/regress/pg_regress.c 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/pg_regress.c 2022-05-09 21:16:30.000000000 +0000 @@ -895,10 +895,16 @@ */ pghost = getenv("PGHOST"); pgport = getenv("PGPORT"); -#ifndef HAVE_UNIX_SOCKETS if (!pghost) - pghost = "localhost"; + { + /* Keep this bit in sync with libpq's default host location: */ +#ifdef HAVE_UNIX_SOCKETS + if (DEFAULT_PGSOCKET_DIR[0]) + /* do nothing, we'll print "Unix socket" below */ ; + else #endif + pghost = "localhost"; /* DefaultHost in fe-connect.c */ + } if (pghost && pgport) printf(_("(using postmaster on %s, port %s)\n"), pghost, pgport); diff -Nru postgresql-13-13.4/src/test/regress/sql/aggregates.sql postgresql-13-13.7/src/test/regress/sql/aggregates.sql --- postgresql-13-13.4/src/test/regress/sql/aggregates.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/aggregates.sql 2022-05-09 21:16:30.000000000 +0000 @@ -660,6 +660,17 @@ from (values (1,3,'foo'),(0,null,null),(2,2,'bar'),(3,1,'baz')) v(a,b,c), generate_series(1,2) i; +-- check handling of bare boolean Var in FILTER +select max(0) filter (where b1) from bool_test; +select (select max(0) filter (where b1)) from bool_test; + +-- check for correct detection of nested-aggregate errors in FILTER +select max(unique1) filter (where sum(ten) > 0) from tenk1; +select (select max(unique1) filter (where sum(ten) > 0) from int8_tbl) from tenk1; +select max(unique1) filter (where bool_or(ten > 0)) from tenk1; +select (select max(unique1) filter (where bool_or(ten > 0)) from int8_tbl) from tenk1; + + -- ordered-set aggregates select p, percentile_cont(p) within group (order by x::float8) diff -Nru postgresql-13-13.4/src/test/regress/sql/alter_table.sql postgresql-13-13.7/src/test/regress/sql/alter_table.sql --- postgresql-13-13.4/src/test/regress/sql/alter_table.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/alter_table.sql 2022-05-09 21:16:30.000000000 +0000 @@ -231,6 +231,37 @@ ALTER INDEX onek_unique1 RENAME TO fail; -- permission denied RESET ROLE; +-- rename statements with mismatching statement and object types +CREATE TABLE alter_idx_rename_test (a INT); +CREATE INDEX alter_idx_rename_test_idx ON alter_idx_rename_test (a); +CREATE TABLE alter_idx_rename_test_parted (a INT) PARTITION BY LIST (a); +CREATE INDEX alter_idx_rename_test_parted_idx ON alter_idx_rename_test_parted (a); +BEGIN; +ALTER INDEX alter_idx_rename_test RENAME TO alter_idx_rename_test_2; +ALTER INDEX alter_idx_rename_test_parted RENAME TO alter_idx_rename_test_parted_2; +SELECT relation::regclass, mode FROM pg_locks +WHERE pid = pg_backend_pid() AND locktype = 'relation' + AND relation::regclass::text LIKE 'alter\_idx%' +ORDER BY relation::regclass::text COLLATE "C"; +COMMIT; +BEGIN; +ALTER INDEX alter_idx_rename_test_idx RENAME TO alter_idx_rename_test_idx_2; +ALTER INDEX alter_idx_rename_test_parted_idx RENAME TO alter_idx_rename_test_parted_idx_2; +SELECT relation::regclass, mode FROM pg_locks +WHERE pid = pg_backend_pid() AND locktype = 'relation' + AND relation::regclass::text LIKE 'alter\_idx%' +ORDER BY relation::regclass::text COLLATE "C"; +COMMIT; +BEGIN; +ALTER TABLE alter_idx_rename_test_idx_2 RENAME TO alter_idx_rename_test_idx_3; +ALTER TABLE alter_idx_rename_test_parted_idx_2 RENAME TO alter_idx_rename_test_parted_idx_3; +SELECT relation::regclass, mode FROM pg_locks +WHERE pid = pg_backend_pid() AND locktype = 'relation' + AND relation::regclass::text LIKE 'alter\_idx%' +ORDER BY relation::regclass::text COLLATE "C"; +COMMIT; +DROP TABLE alter_idx_rename_test_2; + -- renaming views CREATE VIEW attmp_view (unique1) AS SELECT unique1 FROM tenk1; ALTER TABLE attmp_view RENAME TO attmp_view_new; @@ -1393,10 +1424,21 @@ alter table skip_wal_skip_rewrite_index alter c type varchar(20); commit; --- table's row type -create table tab1 (a int, b text); -create table tab2 (x int, y tab1); -alter table tab1 alter column b type varchar; -- fails +-- We disallow changing table's row type if it's used for storage +create table at_tab1 (a int, b text); +create table at_tab2 (x int, y at_tab1); +alter table at_tab1 alter column b type varchar; -- fails +drop table at_tab2; +-- Use of row type in an expression is defended differently +create table at_tab2 (x int, y text, check((x,y)::at_tab1 = (1,'42')::at_tab1)); +alter table at_tab1 alter column b type varchar; -- allowed, but ... +insert into at_tab2 values(1,'42'); -- ... this will fail +drop table at_tab1, at_tab2; +-- Check it for a partitioned table, too +create table at_tab1 (a int, b text) partition by list(a); +create table at_tab2 (x int, y at_tab1); +alter table at_tab1 alter column b type varchar; -- fails +drop table at_tab1, at_tab2; -- Alter column type that's part of a partitioned index create table at_partitioned (a int, b text) partition by range (a); @@ -2923,3 +2965,22 @@ where indrelid = 'alttype_cluster'::regclass order by indexrelid::regclass::text; drop table alttype_cluster; + +-- +-- Check that attaching or detaching a partitioned partition correctly leads +-- to its partitions' constraint being updated to reflect the parent's +-- newly added/removed constraint +create table target_parted (a int, b int) partition by list (a); +create table attach_parted (a int, b int) partition by list (b); +create table attach_parted_part1 partition of attach_parted for values in (1); +-- insert a row directly into the leaf partition so that its partition +-- constraint is built and stored in the relcache +insert into attach_parted_part1 values (1, 1); +-- the following better invalidate the partition constraint of the leaf +-- partition too... +alter table target_parted attach partition attach_parted for values in (1); +-- ...such that the following insert fails +insert into attach_parted_part1 values (2, 1); +-- ...and doesn't when the partition is detached along with its own partition +alter table target_parted detach partition attach_parted; +insert into attach_parted_part1 values (2, 1); diff -Nru postgresql-13-13.4/src/test/regress/sql/arrays.sql postgresql-13-13.7/src/test/regress/sql/arrays.sql --- postgresql-13-13.4/src/test/regress/sql/arrays.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/arrays.sql 2022-05-09 21:16:30.000000000 +0000 @@ -311,6 +311,8 @@ SELECT ARRAY[[1,2],[3,4]] || ARRAY[5,6] AS "{{1,2},{3,4},{5,6}}"; SELECT ARRAY[0,0] || ARRAY[1,1] || ARRAY[2,2] AS "{0,0,1,1,2,2}"; SELECT 0 || ARRAY[1,2] || 3 AS "{0,1,2,3}"; +SELECT array_agg(x) || array_agg(x) FROM (VALUES (ROW(1,2)), (ROW(3,4))) v(x); +SELECT ROW(1,2) || array_agg(x) FROM (VALUES (ROW(3,4)), (ROW(5,6))) v(x); SELECT * FROM array_op_test WHERE i @> '{32}' ORDER BY seqno; SELECT * FROM array_op_test WHERE i && '{32}' ORDER BY seqno; diff -Nru postgresql-13-13.4/src/test/regress/sql/btree_index.sql postgresql-13-13.7/src/test/regress/sql/btree_index.sql --- postgresql-13-13.4/src/test/regress/sql/btree_index.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/btree_index.sql 2022-05-09 21:16:30.000000000 +0000 @@ -172,3 +172,14 @@ -- Test unsupported btree opclass parameters create index on btree_tall_tbl (id int4_ops(foo=1)); + +-- Test case of ALTER INDEX with abuse of column names for indexes. +-- This grammar is not officially supported, but the parser allows it. +CREATE INDEX btree_tall_idx2 ON btree_tall_tbl (id); +ALTER INDEX btree_tall_idx2 ALTER COLUMN id SET (n_distinct=100); +DROP INDEX btree_tall_idx2; +-- Partitioned index +CREATE TABLE btree_part (id int4) PARTITION BY RANGE (id); +CREATE INDEX btree_part_idx ON btree_part(id); +ALTER INDEX btree_part_idx ALTER COLUMN id SET (n_distinct=100); +DROP TABLE btree_part; diff -Nru postgresql-13-13.4/src/test/regress/sql/cluster.sql postgresql-13-13.7/src/test/regress/sql/cluster.sql --- postgresql-13-13.4/src/test/regress/sql/cluster.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/cluster.sql 2022-05-09 21:16:30.000000000 +0000 @@ -245,6 +245,9 @@ -- and after clustering on clstr_expression_minus_a CLUSTER clstr_expression USING clstr_expression_minus_a; +WITH rows AS + (SELECT ctid, lag(a) OVER (ORDER BY ctid) AS la, a FROM clstr_expression) +SELECT * FROM rows WHERE la < a; BEGIN; SET LOCAL enable_seqscan = false; EXPLAIN (COSTS OFF) SELECT * FROM clstr_expression WHERE upper(b) = 'PREFIX3'; @@ -255,6 +258,9 @@ -- and after clustering on clstr_expression_upper_b CLUSTER clstr_expression USING clstr_expression_upper_b; +WITH rows AS + (SELECT ctid, lag(b) OVER (ORDER BY ctid) AS lb, b FROM clstr_expression) +SELECT * FROM rows WHERE upper(lb) > upper(b); BEGIN; SET LOCAL enable_seqscan = false; EXPLAIN (COSTS OFF) SELECT * FROM clstr_expression WHERE upper(b) = 'PREFIX3'; diff -Nru postgresql-13-13.4/src/test/regress/sql/create_index.sql postgresql-13-13.7/src/test/regress/sql/create_index.sql --- postgresql-13-13.4/src/test/regress/sql/create_index.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/create_index.sql 2022-05-09 21:16:30.000000000 +0000 @@ -255,6 +255,10 @@ SELECT circle_center(f1), round(radius(f1)) as radius FROM gcircle_tbl ORDER BY f1 <-> '(200,300)'::point LIMIT 10; SELECT circle_center(f1), round(radius(f1)) as radius FROM gcircle_tbl ORDER BY f1 <-> '(200,300)'::point LIMIT 10; +EXPLAIN (COSTS OFF) +SELECT point(x,x), (SELECT f1 FROM gpolygon_tbl ORDER BY f1 <-> point(x,x) LIMIT 1) as c FROM generate_series(0,10,1) x; +SELECT point(x,x), (SELECT f1 FROM gpolygon_tbl ORDER BY f1 <-> point(x,x) LIMIT 1) as c FROM generate_series(0,10,1) x; + -- Now check the results from bitmap indexscan SET enable_seqscan = OFF; SET enable_indexscan = OFF; @@ -888,6 +892,15 @@ SELECT indexrelid::regclass, indisreplident FROM pg_index WHERE indrelid = 'concur_replident'::regclass; DROP TABLE concur_replident; +-- Check that opclass parameters are preserved +CREATE TABLE concur_appclass_tab(i tsvector, j tsvector, k tsvector); +CREATE INDEX concur_appclass_ind on concur_appclass_tab + USING gist (i tsvector_ops (siglen='1000'), j tsvector_ops (siglen='500')); +CREATE INDEX concur_appclass_ind_2 on concur_appclass_tab + USING gist (k tsvector_ops (siglen='300'), j tsvector_ops); +REINDEX TABLE CONCURRENTLY concur_appclass_tab; +\d concur_appclass_tab +DROP TABLE concur_appclass_tab; -- Partitions -- Create some partitioned tables diff -Nru postgresql-13-13.4/src/test/regress/sql/create_view.sql postgresql-13-13.7/src/test/regress/sql/create_view.sql --- postgresql-13-13.4/src/test/regress/sql/create_view.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/create_view.sql 2022-05-09 21:16:30.000000000 +0000 @@ -554,6 +554,11 @@ select pg_get_viewdef('tt17v', true); select * from int8_tbl i where i.* in (values(i.*::int8_tbl)); +create table tt15v_log(o tt15v, n tt15v, incr bool); +create rule updlog as on update to tt15v do also + insert into tt15v_log values(old, new, row(old,old) < row(new,new)); +\d+ tt15v + -- check unique-ification of overlength names create view tt18v as diff -Nru postgresql-13-13.4/src/test/regress/sql/domain.sql postgresql-13-13.7/src/test/regress/sql/domain.sql --- postgresql-13-13.4/src/test/regress/sql/domain.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/domain.sql 2022-05-09 21:16:30.000000000 +0000 @@ -268,6 +268,23 @@ drop domain posint cascade; +-- Test arrays over domains of composite + +create type comptype as (cf1 int, cf2 int); +create domain dcomptype as comptype check ((value).cf1 > 0); + +create table dcomptable (f1 dcomptype[]); +insert into dcomptable values (null); +update dcomptable set f1[1].cf2 = 5; +table dcomptable; +update dcomptable set f1[1].cf1 = -1; -- fail +update dcomptable set f1[1].cf1 = 1; +table dcomptable; + +drop table dcomptable; +drop type comptype cascade; + + -- Test not-null restrictions create domain dnotnull varchar(15) NOT NULL; diff -Nru postgresql-13-13.4/src/test/regress/sql/expressions.sql postgresql-13-13.7/src/test/regress/sql/expressions.sql --- postgresql-13-13.4/src/test/regress/sql/expressions.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/expressions.sql 2022-05-09 21:16:30.000000000 +0000 @@ -65,3 +65,55 @@ where f1 not between symmetric '1997-01-01' and '1998-01-01'; select count(*) from date_tbl where f1 not between symmetric '1997-01-01' and '1998-01-01'; + + +-- +-- Test parsing of a no-op cast to a type with unspecified typmod +-- +begin; + +create table numeric_tbl (f1 numeric(18,3), f2 numeric); + +create view numeric_view as + select + f1, f1::numeric(16,4) as f1164, f1::numeric as f1n, + f2, f2::numeric(16,4) as f2164, f2::numeric as f2n + from numeric_tbl; + +\d+ numeric_view + +explain (verbose, costs off) select * from numeric_view; + +-- bpchar, lacking planner support for its length coercion function, +-- could behave differently + +create table bpchar_tbl (f1 character(16) unique, f2 bpchar); + +create view bpchar_view as + select + f1, f1::character(14) as f114, f1::bpchar as f1n, + f2, f2::character(14) as f214, f2::bpchar as f2n + from bpchar_tbl; + +\d+ bpchar_view + +explain (verbose, costs off) select * from bpchar_view + where f1::bpchar = 'foo'; + +rollback; + + +-- +-- Ordinarily, IN/NOT IN can be converted to a ScalarArrayOpExpr +-- with a suitably-chosen array type. +-- +explain (verbose, costs off) +select random() IN (1, 4, 8.0); +explain (verbose, costs off) +select random()::int IN (1, 4, 8.0); +-- However, if there's not a common supertype for the IN elements, +-- we should instead try to produce "x = v1 OR x = v2 OR ...". +-- In most cases that'll fail for lack of all the requisite = operators, +-- but it can succeed sometimes. So this should complain about lack of +-- an = operator, not about cast failure. +select '(0,0)'::point in ('(0,0,0,0)'::box, point(0,0)); diff -Nru postgresql-13-13.4/src/test/regress/sql/gist.sql postgresql-13-13.7/src/test/regress/sql/gist.sql --- postgresql-13-13.4/src/test/regress/sql/gist.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/gist.sql 2022-05-09 21:16:30.000000000 +0000 @@ -142,6 +142,33 @@ drop index gist_tbl_multi_index; +-- Test that we don't try to return the value of a non-returnable +-- column in an index-only scan. (This isn't GIST-specific, but +-- it only applies to index AMs that can return some columns and not +-- others, so GIST with appropriate opclasses is a convenient test case.) +create index gist_tbl_multi_index on gist_tbl using gist (circle(p,1), p); +explain (verbose, costs off) +select circle(p,1) from gist_tbl +where p <@ box(point(5, 5), point(5.3, 5.3)); +select circle(p,1) from gist_tbl +where p <@ box(point(5, 5), point(5.3, 5.3)); + +-- Similarly, test that index rechecks involving a non-returnable column +-- are done correctly. +explain (verbose, costs off) +select p from gist_tbl where circle(p,1) @> circle(point(0,0),0.95); +select p from gist_tbl where circle(p,1) @> circle(point(0,0),0.95); + +-- Also check that use_physical_tlist doesn't trigger in such cases. +explain (verbose, costs off) +select count(*) from gist_tbl; +select count(*) from gist_tbl; + +-- This case isn't supported, but it should at least EXPLAIN correctly. +explain (verbose, costs off) +select p from gist_tbl order by circle(p,1) <-> point(0,0) limit 1; +select p from gist_tbl order by circle(p,1) <-> point(0,0) limit 1; + -- Clean up reset enable_seqscan; reset enable_bitmapscan; diff -Nru postgresql-13-13.4/src/test/regress/sql/groupingsets.sql postgresql-13-13.7/src/test/regress/sql/groupingsets.sql --- postgresql-13-13.4/src/test/regress/sql/groupingsets.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/groupingsets.sql 2022-05-09 21:16:30.000000000 +0000 @@ -529,4 +529,13 @@ drop table gs_group_1; drop table gs_hash_1; +-- test handling of outer GroupingFunc within subqueries +explain (costs off) +select (select grouping(v1)) from (values ((select 1))) v(v1) group by cube(v1); +select (select grouping(v1)) from (values ((select 1))) v(v1) group by cube(v1); + +explain (costs off) +select (select grouping(v1)) from (values ((select 1))) v(v1) group by v1; +select (select grouping(v1)) from (values ((select 1))) v(v1) group by v1; + -- end diff -Nru postgresql-13-13.4/src/test/regress/sql/hash_func.sql postgresql-13-13.7/src/test/regress/sql/hash_func.sql --- postgresql-13-13.4/src/test/regress/sql/hash_func.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/hash_func.sql 2022-05-09 21:16:30.000000000 +0000 @@ -220,3 +220,12 @@ (int4range(550274, 1550274)), (int4range(1550275, 208112489))) x(v) WHERE hash_range(v)::bit(32) != hash_range_extended(v, 0)::bit(32) OR hash_range(v)::bit(32) = hash_range_extended(v, 1)::bit(32); + +-- +-- Check special cases for specific data types +-- +SELECT hashfloat4('0'::float4) = hashfloat4('-0'::float4) AS t; +SELECT hashfloat4('NaN'::float4) = hashfloat4(-'NaN'::float4) AS t; +SELECT hashfloat8('0'::float8) = hashfloat8('-0'::float8) AS t; +SELECT hashfloat8('NaN'::float8) = hashfloat8(-'NaN'::float8) AS t; +SELECT hashfloat4('NaN'::float4) = hashfloat8('NaN'::float8) AS t; diff -Nru postgresql-13-13.4/src/test/regress/sql/join.sql postgresql-13-13.7/src/test/regress/sql/join.sql --- postgresql-13-13.4/src/test/regress/sql/join.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/join.sql 2022-05-09 21:16:30.000000000 +0000 @@ -1714,6 +1714,22 @@ left join tenk1 t on t.unique2 = ss.v where q2 = 456; +-- and check a related issue where we miscompute required relids for +-- a PHV that's been translated to a child rel +create temp table parttbl (a integer primary key) partition by range (a); +create temp table parttbl1 partition of parttbl for values from (1) to (100); +insert into parttbl values (11), (12); +explain (costs off) +select * from + (select *, 12 as phv from parttbl) as ss + right join int4_tbl on true +where ss.a = ss.phv and f1 = 0; + +select * from + (select *, 12 as phv from parttbl) as ss + right join int4_tbl on true +where ss.a = ss.phv and f1 = 0; + -- bug #8444: we've historically allowed duplicate aliases within aliased JOINs select * from diff -Nru postgresql-13-13.4/src/test/regress/sql/limit.sql postgresql-13-13.7/src/test/regress/sql/limit.sql --- postgresql-13-13.4/src/test/regress/sql/limit.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/limit.sql 2022-05-09 21:16:30.000000000 +0000 @@ -173,6 +173,11 @@ FROM onek WHERE thousand < 5 ORDER BY thousand FETCH FIRST 2 ROW ONLY; +-- SKIP LOCKED and WITH TIES are incompatible +SELECT thousand + FROM onek WHERE thousand < 5 + ORDER BY thousand FETCH FIRST 1 ROW WITH TIES FOR UPDATE SKIP LOCKED; + -- should fail SELECT ''::text AS two, unique1, unique2, stringu1 FROM onek WHERE unique1 > 50 diff -Nru postgresql-13-13.4/src/test/regress/sql/numeric.sql postgresql-13-13.7/src/test/regress/sql/numeric.sql --- postgresql-13-13.4/src/test/regress/sql/numeric.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/numeric.sql 2022-05-09 21:16:30.000000000 +0000 @@ -935,6 +935,7 @@ select 0.12 ^ (-20); select 1.000000000123 ^ (-2147483648); select coalesce(nullif(0.9999999999 ^ 23300000000000, 0), 0) as rounds_to_zero; +select round(((1 - 1.500012345678e-1000) ^ 1.45e1003) * 1e1000); -- cases that used to error out select 0.12 ^ (-25); diff -Nru postgresql-13-13.4/src/test/regress/sql/portals.sql postgresql-13-13.7/src/test/regress/sql/portals.sql --- postgresql-13-13.4/src/test/regress/sql/portals.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/portals.sql 2022-05-09 21:16:30.000000000 +0000 @@ -217,6 +217,26 @@ CLOSE foo25; +BEGIN; + +DECLARE foo25ns NO SCROLL CURSOR WITH HOLD FOR SELECT * FROM tenk2; + +FETCH FROM foo25ns; + +FETCH FROM foo25ns; + +COMMIT; + +FETCH FROM foo25ns; + +FETCH ABSOLUTE 4 FROM foo25ns; + +FETCH ABSOLUTE 4 FROM foo25ns; -- fail + +SELECT name, statement, is_holdable, is_binary, is_scrollable FROM pg_cursors; + +CLOSE foo25ns; + -- -- ROLLBACK should close holdable cursors -- diff -Nru postgresql-13-13.4/src/test/regress/sql/privileges.sql postgresql-13-13.7/src/test/regress/sql/privileges.sql --- postgresql-13-13.4/src/test/regress/sql/privileges.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/privileges.sql 2022-05-09 21:16:30.000000000 +0000 @@ -872,6 +872,53 @@ \c - CREATE ROLE regress_sro_user; +-- Check that index expressions and predicates are run as the table's owner + +-- A dummy index function checking current_user +CREATE FUNCTION sro_ifun(int) RETURNS int AS $$ +BEGIN + -- Below we set the table's owner to regress_sro_user + ASSERT current_user = 'regress_sro_user', + format('sro_ifun(%s) called by %s', $1, current_user); + RETURN $1; +END; +$$ LANGUAGE plpgsql IMMUTABLE; +-- Create a table owned by regress_sro_user +CREATE TABLE sro_tab (a int); +ALTER TABLE sro_tab OWNER TO regress_sro_user; +INSERT INTO sro_tab VALUES (1), (2), (3); +-- Create an expression index with a predicate +CREATE INDEX sro_idx ON sro_tab ((sro_ifun(a) + sro_ifun(0))) + WHERE sro_ifun(a + 10) > sro_ifun(10); +DROP INDEX sro_idx; +-- Do the same concurrently +CREATE INDEX CONCURRENTLY sro_idx ON sro_tab ((sro_ifun(a) + sro_ifun(0))) + WHERE sro_ifun(a + 10) > sro_ifun(10); +-- REINDEX +REINDEX TABLE sro_tab; +REINDEX INDEX sro_idx; +REINDEX TABLE CONCURRENTLY sro_tab; +DROP INDEX sro_idx; +-- CLUSTER +CREATE INDEX sro_cluster_idx ON sro_tab ((sro_ifun(a) + sro_ifun(0))); +CLUSTER sro_tab USING sro_cluster_idx; +DROP INDEX sro_cluster_idx; +-- BRIN index +CREATE INDEX sro_brin ON sro_tab USING brin ((sro_ifun(a) + sro_ifun(0))); +SELECT brin_desummarize_range('sro_brin', 0); +SELECT brin_summarize_range('sro_brin', 0); +DROP TABLE sro_tab; +-- Check with a partitioned table +CREATE TABLE sro_ptab (a int) PARTITION BY RANGE (a); +ALTER TABLE sro_ptab OWNER TO regress_sro_user; +CREATE TABLE sro_part PARTITION OF sro_ptab FOR VALUES FROM (1) TO (10); +ALTER TABLE sro_part OWNER TO regress_sro_user; +INSERT INTO sro_ptab VALUES (1), (2), (3); +CREATE INDEX sro_pidx ON sro_ptab ((sro_ifun(a) + sro_ifun(0))) + WHERE sro_ifun(a + 10) > sro_ifun(10); +REINDEX TABLE sro_ptab; +REINDEX INDEX CONCURRENTLY sro_pidx; + SET SESSION AUTHORIZATION regress_sro_user; CREATE FUNCTION unwanted_grant() RETURNS void LANGUAGE sql AS 'GRANT regress_priv_group2 TO regress_sro_user'; @@ -898,6 +945,23 @@ REFRESH MATERIALIZED VIEW sro_mv; BEGIN; SET CONSTRAINTS ALL IMMEDIATE; REFRESH MATERIALIZED VIEW sro_mv; COMMIT; +-- REFRESH MATERIALIZED VIEW CONCURRENTLY use of eval_const_expressions() +SET SESSION AUTHORIZATION regress_sro_user; +CREATE FUNCTION unwanted_grant_nofail(int) RETURNS int + IMMUTABLE LANGUAGE plpgsql AS $$ +BEGIN + PERFORM unwanted_grant(); + RAISE WARNING 'owned'; + RETURN 1; +EXCEPTION WHEN OTHERS THEN + RETURN 2; +END$$; +CREATE MATERIALIZED VIEW sro_index_mv AS SELECT 1 AS c; +CREATE UNIQUE INDEX ON sro_index_mv (c) WHERE unwanted_grant_nofail(1) > 0; +\c - +REFRESH MATERIALIZED VIEW CONCURRENTLY sro_index_mv; +REFRESH MATERIALIZED VIEW sro_index_mv; + DROP OWNED BY regress_sro_user; DROP ROLE regress_sro_user; diff -Nru postgresql-13-13.4/src/test/regress/sql/publication.sql postgresql-13-13.7/src/test/regress/sql/publication.sql --- postgresql-13-13.4/src/test/regress/sql/publication.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/publication.sql 2022-05-09 21:16:30.000000000 +0000 @@ -76,10 +76,12 @@ CREATE PUBLICATION testpub_forparted1; RESET client_min_messages; CREATE TABLE testpub_parted1 (LIKE testpub_parted); +CREATE TABLE testpub_parted2 (LIKE testpub_parted); ALTER PUBLICATION testpub_forparted1 SET (publish='insert'); +ALTER TABLE testpub_parted ATTACH PARTITION testpub_parted1 FOR VALUES IN (1); +ALTER TABLE testpub_parted ATTACH PARTITION testpub_parted2 FOR VALUES IN (2); -- works despite missing REPLICA IDENTITY, because updates are not replicated UPDATE testpub_parted1 SET a = 1; -ALTER TABLE testpub_parted ATTACH PARTITION testpub_parted1 FOR VALUES IN (1); -- only parent is listed as being in publication, not the partition ALTER PUBLICATION testpub_forparted ADD TABLE testpub_parted; \dRp+ testpub_forparted @@ -90,9 +92,32 @@ UPDATE testpub_parted1 SET a = 1; ALTER PUBLICATION testpub_forparted SET (publish_via_partition_root = true); \dRp+ testpub_forparted -DROP TABLE testpub_parted1; +-- still fail, because parent's publication replicates updates +UPDATE testpub_parted2 SET a = 2; +ALTER PUBLICATION testpub_forparted DROP TABLE testpub_parted; +-- works again, because update is no longer replicated +UPDATE testpub_parted2 SET a = 2; +-- publication includes both the parent table and the child table +ALTER PUBLICATION testpub_forparted ADD TABLE testpub_parted, testpub_parted2; +-- only parent is listed as being in publication, not the partition +SELECT * FROM pg_publication_tables; +DROP TABLE testpub_parted1, testpub_parted2; DROP PUBLICATION testpub_forparted, testpub_forparted1; +-- Test cache invalidation FOR ALL TABLES publication +SET client_min_messages = 'ERROR'; +CREATE TABLE testpub_tbl4(a int); +INSERT INTO testpub_tbl4 values(1); +UPDATE testpub_tbl4 set a = 2; +CREATE PUBLICATION testpub_foralltables FOR ALL TABLES; +RESET client_min_messages; +-- fail missing REPLICA IDENTITY +UPDATE testpub_tbl4 set a = 3; +DROP PUBLICATION testpub_foralltables; +-- should pass after dropping the publication +UPDATE testpub_tbl4 set a = 3; +DROP TABLE testpub_tbl4; + -- fail - view CREATE PUBLICATION testpub_fortbl FOR TABLE testpub_view; SET client_min_messages = 'ERROR'; @@ -124,6 +149,19 @@ \d+ testpub_tbl1 +-- verify relation cache invalidation when a primary key is added using +-- an existing index +CREATE TABLE pub_test.testpub_addpk (id int not null, data int); +ALTER PUBLICATION testpub_default ADD TABLE pub_test.testpub_addpk; +INSERT INTO pub_test.testpub_addpk VALUES(1, 11); +CREATE UNIQUE INDEX testpub_addpk_id_idx ON pub_test.testpub_addpk(id); +-- fail: +UPDATE pub_test.testpub_addpk SET id = 2; +ALTER TABLE pub_test.testpub_addpk ADD PRIMARY KEY USING INDEX testpub_addpk_id_idx; +-- now it should work: +UPDATE pub_test.testpub_addpk SET id = 2; +DROP TABLE pub_test.testpub_addpk; + -- permissions SET ROLE regress_publication_user2; CREATE PUBLICATION testpub2; -- fail diff -Nru postgresql-13-13.4/src/test/regress/sql/rangefuncs.sql postgresql-13-13.7/src/test/regress/sql/rangefuncs.sql --- postgresql-13-13.4/src/test/regress/sql/rangefuncs.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/rangefuncs.sql 2022-05-09 21:16:30.000000000 +0000 @@ -762,3 +762,18 @@ select *, row_to_json(u) from unnest(array[]::rngfunc2[]) u; drop type rngfunc2; + +-- check handling of functions pulled up into function RTEs (bug #17227) + +explain (verbose, costs off) +select * from + (select jsonb_path_query_array(module->'lectures', '$[*]') as lecture + from unnest(array['{"lectures": [{"id": "1"}]}'::jsonb]) + as unnested_modules(module)) as ss, + jsonb_to_recordset(ss.lecture) as j (id text); + +select * from + (select jsonb_path_query_array(module->'lectures', '$[*]') as lecture + from unnest(array['{"lectures": [{"id": "1"}]}'::jsonb]) + as unnested_modules(module)) as ss, + jsonb_to_recordset(ss.lecture) as j (id text); diff -Nru postgresql-13-13.4/src/test/regress/sql/regex.sql postgresql-13-13.7/src/test/regress/sql/regex.sql --- postgresql-13-13.4/src/test/regress/sql/regex.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/regex.sql 2022-05-09 21:16:30.000000000 +0000 @@ -135,6 +135,15 @@ select 'a' ~ '()*\1'; select 'a' ~ '()+\1'; +-- Test incorrect removal of capture groups within {0} +select 'xxx' ~ '(.){0}(\1)' as f; +select 'xxx' ~ '((.)){0}(\2)' as f; +select 'xyz' ~ '((.)){0}(\2){0}' as t; + +-- Test ancient oversight in when to apply zaptreesubs +select 'abcdef' ~ '^(.)\1|\1.' as f; +select 'abadef' ~ '^((.)\2|..)\2' as f; + -- Error conditions select 'xyz' ~ 'x(\w)(?=\1)'; -- no backrefs in LACONs select 'xyz' ~ 'x(\w)(?=(\1))'; diff -Nru postgresql-13-13.4/src/test/regress/sql/reloptions.sql postgresql-13-13.7/src/test/regress/sql/reloptions.sql --- postgresql-13-13.4/src/test/regress/sql/reloptions.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/reloptions.sql 2022-05-09 21:16:30.000000000 +0000 @@ -55,14 +55,14 @@ -- Test vacuum_truncate option DROP TABLE reloptions_test; -CREATE TABLE reloptions_test(i INT NOT NULL, j text) +CREATE TEMP TABLE reloptions_test(i INT NOT NULL, j text) WITH (vacuum_truncate=false, toast.vacuum_truncate=false, autovacuum_enabled=false); SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass; INSERT INTO reloptions_test VALUES (1, NULL), (NULL, NULL); -- Do an aggressive vacuum to prevent page-skipping. -VACUUM FREEZE reloptions_test; +VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) reloptions_test; SELECT pg_relation_size('reloptions_test') > 0; SELECT reloptions FROM pg_class WHERE oid = @@ -73,7 +73,7 @@ SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass; INSERT INTO reloptions_test VALUES (1, NULL), (NULL, NULL); -- Do an aggressive vacuum to prevent page-skipping. -VACUUM FREEZE reloptions_test; +VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) reloptions_test; SELECT pg_relation_size('reloptions_test') = 0; -- Test toast.* options diff -Nru postgresql-13-13.4/src/test/regress/sql/replica_identity.sql postgresql-13-13.7/src/test/regress/sql/replica_identity.sql --- postgresql-13-13.4/src/test/regress/sql/replica_identity.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/replica_identity.sql 2022-05-09 21:16:30.000000000 +0000 @@ -94,6 +94,10 @@ ALTER TABLE test_replica_identity3 ALTER COLUMN id TYPE bigint; \d test_replica_identity3 +-- ALTER TABLE DROP NOT NULL is not allowed for columns part of an index +-- used as replica identity. +ALTER TABLE test_replica_identity3 ALTER COLUMN id DROP NOT NULL; + DROP TABLE test_replica_identity; DROP TABLE test_replica_identity2; DROP TABLE test_replica_identity3; diff -Nru postgresql-13-13.4/src/test/regress/sql/rowtypes.sql postgresql-13-13.7/src/test/regress/sql/rowtypes.sql --- postgresql-13-13.4/src/test/regress/sql/rowtypes.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/rowtypes.sql 2022-05-09 21:16:30.000000000 +0000 @@ -413,12 +413,10 @@ -- select row_to_json(i) from int8_tbl i; +-- since "i" is of type "int8_tbl", attaching aliases doesn't change anything: select row_to_json(i) from int8_tbl i(x,y); -create temp view vv1 as select * from int8_tbl; -select row_to_json(i) from vv1 i; -select row_to_json(i) from vv1 i(x,y); - +-- in these examples, we'll report the exposed column names of the subselect: select row_to_json(ss) from (select q1, q2 from int8_tbl) as ss; select row_to_json(ss) from diff -Nru postgresql-13-13.4/src/test/regress/sql/rules.sql postgresql-13-13.7/src/test/regress/sql/rules.sql --- postgresql-13-13.4/src/test/regress/sql/rules.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/rules.sql 2022-05-09 21:16:30.000000000 +0000 @@ -992,6 +992,20 @@ reset constraint_exclusion; +-- test FOR UPDATE in rules + +create table rules_base(f1 int, f2 int); +insert into rules_base values(1,2), (11,12); +create rule r1 as on update to rules_base do instead + select * from rules_base where f1 = 1 for update; +update rules_base set f2 = f2 + 1; +create or replace rule r1 as on update to rules_base do instead + select * from rules_base where f1 = 11 for update of rules_base; +update rules_base set f2 = f2 + 1; +create or replace rule r1 as on update to rules_base do instead + select * from rules_base where f1 = 11 for update of old; -- error +drop table rules_base; + -- test various flavors of pg_get_viewdef() select pg_get_viewdef('shoe'::regclass) as unpretty; diff -Nru postgresql-13-13.4/src/test/regress/sql/select.sql postgresql-13-13.7/src/test/regress/sql/select.sql --- postgresql-13-13.4/src/test/regress/sql/select.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/select.sql 2022-05-09 21:16:30.000000000 +0000 @@ -148,6 +148,11 @@ UNION ALL TABLE int8_tbl; +-- corner case: VALUES with no columns +CREATE TEMP TABLE nocols(); +INSERT INTO nocols DEFAULT VALUES; +SELECT * FROM nocols n, LATERAL (VALUES(n.*)) v; + -- -- Test ORDER BY options -- diff -Nru postgresql-13-13.4/src/test/regress/sql/stats_ext.sql postgresql-13-13.7/src/test/regress/sql/stats_ext.sql --- postgresql-13-13.4/src/test/regress/sql/stats_ext.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/stats_ext.sql 2022-05-09 21:16:30.000000000 +0000 @@ -43,6 +43,15 @@ -- Ensure stats are dropped sanely, and test IF NOT EXISTS while at it CREATE TABLE ab1 (a INTEGER, b INTEGER, c INTEGER); CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1; +COMMENT ON STATISTICS ab1_a_b_stats IS 'new comment'; +CREATE ROLE regress_stats_ext; +SET SESSION AUTHORIZATION regress_stats_ext; +COMMENT ON STATISTICS ab1_a_b_stats IS 'changed comment'; +DROP STATISTICS ab1_a_b_stats; +ALTER STATISTICS ab1_a_b_stats RENAME TO ab1_a_b_stats_new; +RESET SESSION AUTHORIZATION; +DROP ROLE regress_stats_ext; + CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1; DROP STATISTICS ab1_a_b_stats; @@ -97,6 +106,38 @@ ANALYZE ab1; DROP TABLE ab1 CASCADE; +-- Tests for stats with inheritance +CREATE TABLE stxdinh(a int, b int); +CREATE TABLE stxdinh1() INHERITS(stxdinh); +CREATE TABLE stxdinh2() INHERITS(stxdinh); +INSERT INTO stxdinh SELECT mod(a,50), mod(a,100) FROM generate_series(0, 1999) a; +INSERT INTO stxdinh1 SELECT mod(a,100), mod(a,100) FROM generate_series(0, 999) a; +INSERT INTO stxdinh2 SELECT mod(a,100), mod(a,100) FROM generate_series(0, 999) a; +VACUUM ANALYZE stxdinh, stxdinh1, stxdinh2; +-- Ensure non-inherited stats are not applied to inherited query +-- Without stats object, it looks like this +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinh* GROUP BY 1, 2'); +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinh* WHERE a = 0 AND b = 0'); +CREATE STATISTICS stxdinh ON a, b FROM stxdinh; +VACUUM ANALYZE stxdinh, stxdinh1, stxdinh2; +-- Since the stats object does not include inherited stats, it should not +-- affect the estimates +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinh* GROUP BY 1, 2'); +-- Dependencies are applied at individual relations (within append), so +-- this estimate changes a bit because we improve estimates for the parent +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinh* WHERE a = 0 AND b = 0'); +DROP TABLE stxdinh, stxdinh1, stxdinh2; + +-- Ensure inherited stats ARE applied to inherited query in partitioned table +CREATE TABLE stxdinp(i int, a int, b int) PARTITION BY RANGE (i); +CREATE TABLE stxdinp1 PARTITION OF stxdinp FOR VALUES FROM (1) TO (100); +INSERT INTO stxdinp SELECT 1, a/100, a/100 FROM generate_series(1, 999) a; +CREATE STATISTICS stxdinp ON a, b FROM stxdinp; +VACUUM ANALYZE stxdinp; -- partitions are processed recursively +SELECT 1 FROM pg_statistic_ext WHERE stxrelid = 'stxdinp'::regclass; +SELECT * FROM check_estimated_rows('SELECT a, b FROM stxdinp GROUP BY 1, 2'); +DROP TABLE stxdinp; + -- Verify supported object types for extended statistics CREATE schema tststats; diff -Nru postgresql-13-13.4/src/test/regress/sql/sysviews.sql postgresql-13-13.7/src/test/regress/sql/sysviews.sql --- postgresql-13-13.4/src/test/regress/sql/sysviews.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/sysviews.sql 2022-05-09 21:16:30.000000000 +0000 @@ -32,6 +32,9 @@ -- See also prepared_xacts.sql select count(*) >= 0 as ok from pg_prepared_xacts; +-- There will surely be at least one SLRU cache +select count(*) > 0 as ok from pg_stat_slru; + -- We expect no walreceiver running in this test select count(*) = 0 as ok from pg_stat_wal_receiver; diff -Nru postgresql-13-13.4/src/test/regress/sql/timestamp.sql postgresql-13-13.7/src/test/regress/sql/timestamp.sql --- postgresql-13-13.4/src/test/regress/sql/timestamp.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/timestamp.sql 2022-05-09 21:16:30.000000000 +0000 @@ -247,3 +247,17 @@ -- timestamp numeric fields constructor SELECT make_timestamp(2014,12,28,6,30,45.887); + +-- generate_series for timestamp +select * from generate_series('2020-01-01 00:00'::timestamp, + '2020-01-02 03:00'::timestamp, + '1 hour'::interval); +-- the LIMIT should allow this to terminate in a reasonable amount of time +-- (but that unfortunately doesn't work yet for SELECT * FROM ...) +select generate_series('2022-01-01 00:00'::timestamp, + 'infinity'::timestamp, + '1 month'::interval) limit 10; +-- errors +select * from generate_series('2020-01-01 00:00'::timestamp, + '2020-01-02 03:00'::timestamp, + '0 hour'::interval); diff -Nru postgresql-13-13.4/src/test/regress/sql/timestamptz.sql postgresql-13-13.7/src/test/regress/sql/timestamptz.sql --- postgresql-13-13.4/src/test/regress/sql/timestamptz.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/timestamptz.sql 2022-05-09 21:16:30.000000000 +0000 @@ -342,6 +342,20 @@ RESET TimeZone; +-- generate_series for timestamptz +select * from generate_series('2020-01-01 00:00'::timestamptz, + '2020-01-02 03:00'::timestamptz, + '1 hour'::interval); +-- the LIMIT should allow this to terminate in a reasonable amount of time +-- (but that unfortunately doesn't work yet for SELECT * FROM ...) +select generate_series('2022-01-01 00:00'::timestamptz, + 'infinity'::timestamptz, + '1 month'::interval) limit 10; +-- errors +select * from generate_series('2020-01-01 00:00'::timestamptz, + '2020-01-02 03:00'::timestamptz, + '0 hour'::interval); + -- -- Test behavior with a dynamic (time-varying) timezone abbreviation. -- These tests rely on the knowledge that MSK (Europe/Moscow standard time) diff -Nru postgresql-13-13.4/src/test/regress/sql/triggers.sql postgresql-13-13.7/src/test/regress/sql/triggers.sql --- postgresql-13-13.4/src/test/regress/sql/triggers.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/triggers.sql 2022-05-09 21:16:30.000000000 +0000 @@ -1428,6 +1428,11 @@ alter table trigpart attach partition trigpart3 FOR VALUES FROM (2000) to (3000); -- fail drop table trigpart3; +-- check display of unrelated triggers +create trigger samename after delete on trigpart execute function trigger_nothing(); +create trigger samename after delete on trigpart1 execute function trigger_nothing(); +\d trigpart1 + drop table trigpart; drop function trigger_nothing(); diff -Nru postgresql-13-13.4/src/test/regress/sql/type_sanity.sql postgresql-13-13.7/src/test/regress/sql/type_sanity.sql --- postgresql-13-13.4/src/test/regress/sql/type_sanity.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/type_sanity.sql 2022-05-09 21:16:30.000000000 +0000 @@ -467,3 +467,98 @@ WHERE pronargs != 2 OR proargtypes[0] != rngsubtype OR proargtypes[1] != rngsubtype OR prorettype != 'pg_catalog.float8'::regtype; + +-- Create a table that holds all the known in-core data types and leave it +-- around so as pg_upgrade is able to test their binary compatibility. +CREATE TABLE tab_core_types AS SELECT + '(11,12)'::point, + '(1,1),(2,2)'::line, + '((11,11),(12,12))'::lseg, + '((11,11),(13,13))'::box, + '((11,12),(13,13),(14,14))'::path AS openedpath, + '[(11,12),(13,13),(14,14)]'::path AS closedpath, + '((11,12),(13,13),(14,14))'::polygon, + '1,1,1'::circle, + 'today'::date, + 'now'::time, + 'now'::timestamp, + 'now'::timetz, + 'now'::timestamptz, + '12 seconds'::interval, + '{"reason":"because"}'::json, + '{"when":"now"}'::jsonb, + '$.a[*] ? (@ > 2)'::jsonpath, + '127.0.0.1'::inet, + '127.0.0.0/8'::cidr, + '00:01:03:86:1c:ba'::macaddr8, + '00:01:03:86:1c:ba'::macaddr, + 2::int2, 4::int4, 8::int8, + 4::float4, '8'::float8, pi()::numeric, + 'foo'::"char", + 'c'::bpchar, + 'abc'::varchar, + 'name'::name, + 'txt'::text, + true::bool, + E'\\xDEADBEEF'::bytea, + B'10001'::bit, + B'10001'::varbit AS varbit, + '12.34'::money, + 'abc'::refcursor, + '1 2'::int2vector, + '1 2'::oidvector, + format('%I=UC/%I', USER, USER)::aclitem AS aclitem, + 'a fat cat sat on a mat and ate a fat rat'::tsvector, + 'fat & rat'::tsquery, + 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid, + '11'::xid8, + 'pg_class'::regclass, + 'regtype'::regtype, + 'pg_monitor'::regrole, + 'pg_class'::regclass::oid, + '(1,1)'::tid, '2'::xid, '3'::cid, + '10:20:10,14,15'::txid_snapshot, + '10:20:10,14,15'::pg_snapshot, + '16/B374D848'::pg_lsn, + 1::information_schema.cardinal_number, + 'l'::information_schema.character_data, + 'n'::information_schema.sql_identifier, + 'now'::information_schema.time_stamp, + 'YES'::information_schema.yes_or_no, + 'venus'::planets, + 'i16'::insenum, + '(1,2)'::int4range, + '(3,4)'::int8range, + '(1,2)'::float8range, + '(3,4)'::numrange, + '(a,b)'::textrange, + '(12.34, 56.78)'::cashrange, + '(2020-01-02, 2021-02-03)'::daterange, + '(2020-01-02 03:04:05, 2021-02-03 06:07:08)'::tsrange, + '(2020-01-02 03:04:05, 2021-02-03 06:07:08)'::tstzrange, + arrayrange(ARRAY[1,2], ARRAY[2,1]); + +-- Sanity check on the previous table, checking that all core types are +-- included in this table. +SELECT oid, typname, typtype, typelem, typarray, typarray + FROM pg_type t + WHERE typtype NOT IN ('p', 'c') AND + -- reg* types cannot be pg_upgraded, so discard them. + oid != ALL(ARRAY['regproc', 'regprocedure', 'regoper', + 'regoperator', 'regconfig', 'regdictionary', + 'regnamespace', 'regcollation']::regtype[]) AND + -- Discard types that do not accept input values as these cannot be + -- tested easily. + -- Note: XML might be disabled at compile-time. + oid != ALL(ARRAY['gtsvector', 'pg_node_tree', + 'pg_ndistinct', 'pg_dependencies', 'pg_mcv_list', + 'xml']::regtype[]) AND + -- Discard arrays. + NOT EXISTS (SELECT 1 FROM pg_type u WHERE u.typarray = t.oid) + -- Exclude everything from the table created above. This checks + -- that no in-core types are missing in tab_core_types. + AND NOT EXISTS (SELECT 1 + FROM pg_attribute a + WHERE a.atttypid=t.oid AND + a.attnum > 0 AND + a.attrelid='tab_core_types'::regclass); diff -Nru postgresql-13-13.4/src/test/regress/sql/unicode.sql postgresql-13-13.7/src/test/regress/sql/unicode.sql --- postgresql-13-13.4/src/test/regress/sql/unicode.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/unicode.sql 2022-05-09 21:16:30.000000000 +0000 @@ -5,6 +5,7 @@ SELECT U&'\0061\0308bc' <> U&'\00E4bc' COLLATE "C" AS sanity_check; +SELECT normalize(''); SELECT normalize(U&'\0061\0308\24D1c') = U&'\00E4\24D1c' COLLATE "C" AS test_default; SELECT normalize(U&'\0061\0308\24D1c', NFC) = U&'\00E4\24D1c' COLLATE "C" AS test_nfc; SELECT normalize(U&'\00E4bc', NFC) = U&'\00E4bc' COLLATE "C" AS test_nfc_idem; @@ -26,7 +27,8 @@ (VALUES (1, U&'\00E4bc'), (2, U&'\0061\0308bc'), (3, U&'\00E4\24D1c'), - (4, U&'\0061\0308\24D1c')) vals (num, val) + (4, U&'\0061\0308\24D1c'), + (5, '')) vals (num, val) ORDER BY num; SELECT is_normalized('abc', 'def'); -- run-time error diff -Nru postgresql-13-13.4/src/test/regress/sql/vacuum.sql postgresql-13-13.7/src/test/regress/sql/vacuum.sql --- postgresql-13-13.4/src/test/regress/sql/vacuum.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/vacuum.sql 2022-05-09 21:16:30.000000000 +0000 @@ -145,12 +145,12 @@ VACUUM (INDEX_CLEANUP FALSE, FREEZE TRUE) vaccluster; -- TRUNCATE option -CREATE TABLE vac_truncate_test(i INT NOT NULL, j text) +CREATE TEMP TABLE vac_truncate_test(i INT NOT NULL, j text) WITH (vacuum_truncate=true, autovacuum_enabled=false); INSERT INTO vac_truncate_test VALUES (1, NULL), (NULL, NULL); -VACUUM (TRUNCATE FALSE) vac_truncate_test; +VACUUM (TRUNCATE FALSE, DISABLE_PAGE_SKIPPING) vac_truncate_test; SELECT pg_relation_size('vac_truncate_test') > 0; -VACUUM vac_truncate_test; +VACUUM (DISABLE_PAGE_SKIPPING) vac_truncate_test; SELECT pg_relation_size('vac_truncate_test') = 0; VACUUM (TRUNCATE FALSE, FULL TRUE) vac_truncate_test; DROP TABLE vac_truncate_test; diff -Nru postgresql-13-13.4/src/test/regress/sql/with.sql postgresql-13-13.7/src/test/regress/sql/with.sql --- postgresql-13-13.4/src/test/regress/sql/with.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/with.sql 2022-05-09 21:16:30.000000000 +0000 @@ -809,7 +809,7 @@ CREATE RULE bug6051_ins AS ON INSERT TO bug6051 DO INSTEAD INSERT INTO bug6051_2 - SELECT NEW.i; + VALUES(NEW.i); WITH t1 AS ( DELETE FROM bug6051 RETURNING * ) INSERT INTO bug6051 SELECT * FROM t1; @@ -817,6 +817,62 @@ SELECT * FROM bug6051; SELECT * FROM bug6051_2; +-- check INSERT...SELECT rule actions are disallowed on commands +-- that have modifyingCTEs +CREATE OR REPLACE RULE bug6051_ins AS ON INSERT TO bug6051 DO INSTEAD + INSERT INTO bug6051_2 + SELECT NEW.i; + +WITH t1 AS ( DELETE FROM bug6051 RETURNING * ) +INSERT INTO bug6051 SELECT * FROM t1; + +-- silly example to verify that hasModifyingCTE flag is propagated +CREATE TEMP TABLE bug6051_3 AS + SELECT a FROM generate_series(11,13) AS a; + +CREATE RULE bug6051_3_ins AS ON INSERT TO bug6051_3 DO INSTEAD + SELECT i FROM bug6051_2; + +BEGIN; SET LOCAL force_parallel_mode = on; + +WITH t1 AS ( DELETE FROM bug6051_3 RETURNING * ) + INSERT INTO bug6051_3 SELECT * FROM t1; + +COMMIT; + +SELECT * FROM bug6051_3; + +-- check case where CTE reference is removed due to optimization +EXPLAIN (VERBOSE, COSTS OFF) +SELECT q1 FROM +( + WITH t_cte AS (SELECT * FROM int8_tbl t) + SELECT q1, (SELECT q2 FROM t_cte WHERE t_cte.q1 = i8.q1) AS t_sub + FROM int8_tbl i8 +) ss; + +SELECT q1 FROM +( + WITH t_cte AS (SELECT * FROM int8_tbl t) + SELECT q1, (SELECT q2 FROM t_cte WHERE t_cte.q1 = i8.q1) AS t_sub + FROM int8_tbl i8 +) ss; + +EXPLAIN (VERBOSE, COSTS OFF) +SELECT q1 FROM +( + WITH t_cte AS MATERIALIZED (SELECT * FROM int8_tbl t) + SELECT q1, (SELECT q2 FROM t_cte WHERE t_cte.q1 = i8.q1) AS t_sub + FROM int8_tbl i8 +) ss; + +SELECT q1 FROM +( + WITH t_cte AS MATERIALIZED (SELECT * FROM int8_tbl t) + SELECT q1, (SELECT q2 FROM t_cte WHERE t_cte.q1 = i8.q1) AS t_sub + FROM int8_tbl i8 +) ss; + -- a truly recursive CTE in the same list WITH RECURSIVE t(a) AS ( SELECT 0 @@ -1095,12 +1151,12 @@ with ordinality as (select 1 as x) select * from ordinality; -- check sane response to attempt to modify CTE relation -WITH test AS (SELECT 42) INSERT INTO test VALUES (1); +WITH with_test AS (SELECT 42) INSERT INTO with_test VALUES (1); -- check response to attempt to modify table with same name as a CTE (perhaps -- surprisingly it works, because CTEs don't hide tables from data-modifying -- statements) -create temp table test (i int); -with test as (select 42) insert into test select * from test; -select * from test; -drop table test; +create temp table with_test (i int); +with with_test as (select 42) insert into with_test select * from with_test; +select * from with_test; +drop table with_test; diff -Nru postgresql-13-13.4/src/test/regress/sql/xmlmap.sql postgresql-13-13.7/src/test/regress/sql/xmlmap.sql --- postgresql-13-13.4/src/test/regress/sql/xmlmap.sql 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/regress/sql/xmlmap.sql 2022-05-09 21:16:30.000000000 +0000 @@ -3,9 +3,15 @@ CREATE TABLE testxmlschema.test1 (a int, b text); INSERT INTO testxmlschema.test1 VALUES (1, 'one'), (2, 'two'), (-1, null); CREATE DOMAIN testxmldomain AS varchar; -CREATE TABLE testxmlschema.test2 (z int, y varchar(500), x char(6), w numeric(9,2), v smallint, u bigint, t real, s time, r timestamp, q date, p xml, o testxmldomain, n bool, m bytea, aaa text); +CREATE TABLE testxmlschema.test2 (z int, y varchar(500), x char(6), + w numeric(9,2), v smallint, u bigint, t real, + s time, stz timetz, r timestamp, rtz timestamptz, q date, + p xml, o testxmldomain, n bool, m bytea, aaa text); ALTER TABLE testxmlschema.test2 DROP COLUMN aaa; -INSERT INTO testxmlschema.test2 VALUES (55, 'abc', 'def', 98.6, 2, 999, 0, '21:07', '2009-06-08 21:07:30', '2009-06-08', NULL, 'ABC', true, 'XYZ'); +INSERT INTO testxmlschema.test2 VALUES (55, 'abc', 'def', + 98.6, 2, 999, 0, + '21:07', '21:11 +05', '2009-06-08 21:07:30', '2009-06-08 21:07:30 -07', '2009-06-08', + NULL, 'ABC', true, 'XYZ'); SELECT table_to_xml('testxmlschema.test1', false, false, ''); SELECT table_to_xml('testxmlschema.test1', true, false, 'foo'); diff -Nru postgresql-13-13.4/src/test/ssl/t/001_ssltests.pl postgresql-13-13.7/src/test/ssl/t/001_ssltests.pl --- postgresql-13-13.4/src/test/ssl/t/001_ssltests.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/ssl/t/001_ssltests.pl 2022-05-09 21:16:30.000000000 +0000 @@ -131,8 +131,13 @@ switch_server_cert($node, 'server-cn-only'); +# Set of default settings for SSL parameters in connection string. This +# makes the tests protected against any defaults the environment may have +# in ~/.postgresql/. +my $default_ssl_connstr = "sslkey=invalid sslcert=invalid sslrootcert=invalid sslcrl=invalid"; + $common_connstr = - "user=ssltestuser dbname=trustdb sslcert=invalid hostaddr=$SERVERHOSTADDR host=common-name.pg-ssltest.test"; + "$default_ssl_connstr user=ssltestuser dbname=trustdb hostaddr=$SERVERHOSTADDR host=common-name.pg-ssltest.test"; # The server should not accept non-SSL connections. test_connect_fails( @@ -224,7 +229,7 @@ # Check that connecting with verify-full fails, when the hostname doesn't # match the hostname in the server's certificate. $common_connstr = - "user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR"; + "$default_ssl_connstr user=ssltestuser dbname=trustdb sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR"; test_connect_ok( $common_connstr, @@ -244,7 +249,7 @@ switch_server_cert($node, 'server-multiple-alt-names'); $common_connstr = - "user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; + "$default_ssl_connstr user=ssltestuser dbname=trustdb sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; test_connect_ok( $common_connstr, @@ -275,7 +280,7 @@ switch_server_cert($node, 'server-single-alt-name'); $common_connstr = - "user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; + "$default_ssl_connstr user=ssltestuser dbname=trustdb sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; test_connect_ok( $common_connstr, @@ -299,7 +304,7 @@ switch_server_cert($node, 'server-cn-and-alt-names'); $common_connstr = - "user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; + "$default_ssl_connstr user=ssltestuser dbname=trustdb sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; test_connect_ok( $common_connstr, @@ -319,7 +324,7 @@ # not a very sensible certificate, but libpq should handle it gracefully. switch_server_cert($node, 'server-no-names'); $common_connstr = - "user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR"; + "$default_ssl_connstr user=ssltestuser dbname=trustdb sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR"; test_connect_ok( $common_connstr, @@ -335,7 +340,7 @@ switch_server_cert($node, 'server-revoked'); $common_connstr = - "user=ssltestuser dbname=trustdb sslcert=invalid hostaddr=$SERVERHOSTADDR host=common-name.pg-ssltest.test"; + "$default_ssl_connstr user=ssltestuser dbname=trustdb hostaddr=$SERVERHOSTADDR host=common-name.pg-ssltest.test"; # Without the CRL, succeeds. With it, fails. test_connect_ok( @@ -390,7 +395,7 @@ note "running server tests"; $common_connstr = - "sslrootcert=ssl/root+server_ca.crt sslmode=require dbname=certdb hostaddr=$SERVERHOSTADDR"; + "$default_ssl_connstr sslrootcert=ssl/root+server_ca.crt sslmode=require dbname=certdb hostaddr=$SERVERHOSTADDR"; # no client cert test_connect_fails( @@ -510,7 +515,7 @@ # works, iff username matches Common Name # fails, iff username doesn't match Common Name. $common_connstr = - "sslrootcert=ssl/root+server_ca.crt sslmode=require dbname=verifydb hostaddr=$SERVERHOSTADDR"; + "$default_ssl_connstr sslrootcert=ssl/root+server_ca.crt sslmode=require dbname=verifydb hostaddr=$SERVERHOSTADDR"; test_connect_ok( $common_connstr, @@ -536,7 +541,7 @@ # intermediate client_ca.crt is provided by client, and isn't in server's ssl_ca_file switch_server_cert($node, 'server-cn-only', 'root_ca'); $common_connstr = - "user=ssltestuser dbname=certdb sslkey=ssl/client_tmp.key sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR"; + "$default_ssl_connstr user=ssltestuser dbname=certdb sslkey=ssl/client_tmp.key sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR"; test_connect_ok( $common_connstr, diff -Nru postgresql-13-13.4/src/test/subscription/t/001_rep_changes.pl postgresql-13-13.7/src/test/subscription/t/001_rep_changes.pl --- postgresql-13-13.4/src/test/subscription/t/001_rep_changes.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/subscription/t/001_rep_changes.pl 2022-05-09 21:16:30.000000000 +0000 @@ -292,28 +292,30 @@ 'update works with dropped subscriber column'); # check that change of connection string and/or publication list causes -# restart of subscription workers. Not all of these are registered as tests -# as we need to poll for a change but the test suite will fail none the less -# when something goes wrong. +# restart of subscription workers. We check the state along with +# application_name to ensure that the walsender is (re)started. +# +# Not all of these are registered as tests as we need to poll for a change +# but the test suite will fail none the less when something goes wrong. my $oldpid = $node_publisher->safe_psql('postgres', - "SELECT pid FROM pg_stat_replication WHERE application_name = 'tap_sub';" + "SELECT pid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" ); $node_subscriber->safe_psql('postgres', "ALTER SUBSCRIPTION tap_sub CONNECTION '$publisher_connstr sslmode=disable'" ); $node_publisher->poll_query_until('postgres', - "SELECT pid != $oldpid FROM pg_stat_replication WHERE application_name = 'tap_sub';" -) or die "Timed out while waiting for apply to restart"; + "SELECT pid != $oldpid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" +) or die "Timed out while waiting for apply to restart after changing CONNECTION"; $oldpid = $node_publisher->safe_psql('postgres', - "SELECT pid FROM pg_stat_replication WHERE application_name = 'tap_sub';" + "SELECT pid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" ); $node_subscriber->safe_psql('postgres', "ALTER SUBSCRIPTION tap_sub SET PUBLICATION tap_pub_ins_only WITH (copy_data = false)" ); $node_publisher->poll_query_until('postgres', - "SELECT pid != $oldpid FROM pg_stat_replication WHERE application_name = 'tap_sub';" -) or die "Timed out while waiting for apply to restart"; + "SELECT pid != $oldpid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" +) or die "Timed out while waiting for apply to restart after changing PUBLICATION"; $node_publisher->safe_psql('postgres', "INSERT INTO tab_ins SELECT generate_series(1001,1100)"); @@ -361,13 +363,13 @@ # check restart on rename $oldpid = $node_publisher->safe_psql('postgres', - "SELECT pid FROM pg_stat_replication WHERE application_name = 'tap_sub';" + "SELECT pid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" ); $node_subscriber->safe_psql('postgres', "ALTER SUBSCRIPTION tap_sub RENAME TO tap_sub_renamed"); $node_publisher->poll_query_until('postgres', - "SELECT pid != $oldpid FROM pg_stat_replication WHERE application_name = 'tap_sub_renamed';" -) or die "Timed out while waiting for apply to restart"; + "SELECT pid != $oldpid FROM pg_stat_replication WHERE application_name = 'tap_sub_renamed' AND state = 'streaming';" +) or die "Timed out while waiting for apply to restart after renaming SUBSCRIPTION"; # check all the cleanup $node_subscriber->safe_psql('postgres', "DROP SUBSCRIPTION tap_sub_renamed"); diff -Nru postgresql-13-13.4/src/test/subscription/t/002_types.pl postgresql-13-13.7/src/test/subscription/t/002_types.pl --- postgresql-13-13.4/src/test/subscription/t/002_types.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/subscription/t/002_types.pl 2022-05-09 21:16:30.000000000 +0000 @@ -234,9 +234,9 @@ -- test_tbl_range_array INSERT INTO tst_range_array (a, b, c) VALUES (1, tstzrange('Mon Aug 04 00:00:00 2014 CEST'::timestamptz, 'infinity'), '{"[1,2]", "[10,20]"}'), - (2, tstzrange('Mon Aug 04 00:00:00 2014 CEST'::timestamptz - interval '2 days', 'Mon Aug 04 00:00:00 2014 CEST'::timestamptz), '{"[2,3]", "[20,30]"}'), - (3, tstzrange('Mon Aug 04 00:00:00 2014 CEST'::timestamptz - interval '3 days', 'Mon Aug 04 00:00:00 2014 CEST'::timestamptz), '{"[3,4]"}'), - (4, tstzrange('Mon Aug 04 00:00:00 2014 CEST'::timestamptz - interval '4 days', 'Mon Aug 04 00:00:00 2014 CEST'::timestamptz), '{"[4,5]", NULL, "[40,50]"}'), + (2, tstzrange('Sat Aug 02 00:00:00 2014 CEST'::timestamptz, 'Mon Aug 04 00:00:00 2014 CEST'::timestamptz), '{"[2,3]", "[20,30]"}'), + (3, tstzrange('Fri Aug 01 00:00:00 2014 CEST'::timestamptz, 'Mon Aug 04 00:00:00 2014 CEST'::timestamptz), '{"[3,4]"}'), + (4, tstzrange('Thu Jul 31 00:00:00 2014 CEST'::timestamptz, 'Mon Aug 04 00:00:00 2014 CEST'::timestamptz), '{"[4,5]", NULL, "[40,50]"}'), (5, NULL, NULL); -- tst_hstore diff -Nru postgresql-13-13.4/src/test/subscription/t/013_partition.pl postgresql-13-13.7/src/test/subscription/t/013_partition.pl --- postgresql-13-13.4/src/test/subscription/t/013_partition.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/subscription/t/013_partition.pl 2022-05-09 21:16:30.000000000 +0000 @@ -3,7 +3,7 @@ use warnings; use PostgresNode; use TestLib; -use Test::More tests => 62; +use Test::More tests => 67; # setup @@ -407,13 +407,27 @@ $node_publisher->safe_psql('postgres', "CREATE TABLE tab3_1 PARTITION OF tab3 FOR VALUES IN (0, 1, 2, 3, 5, 6)"); $node_publisher->safe_psql('postgres', + "CREATE TABLE tab4 (a int PRIMARY KEY) PARTITION BY LIST (a)"); +$node_publisher->safe_psql('postgres', + "CREATE TABLE tab4_1 PARTITION OF tab4 FOR VALUES IN (0, 1) PARTITION BY LIST (a)"); +$node_publisher->safe_psql('postgres', + "CREATE TABLE tab4_1_1 PARTITION OF tab4_1 FOR VALUES IN (0, 1)"); +$node_publisher->safe_psql('postgres', "ALTER PUBLICATION pub_all SET (publish_via_partition_root = true)"); # Note: tab3_1's parent is not in the publication, in which case its -# changes are published using own identity. +# changes are published using own identity. For tab2, even though both parent +# and child tables are present but changes will be replicated via the parent's +# identity and only once. +$node_publisher->safe_psql('postgres', + "CREATE PUBLICATION pub_viaroot FOR TABLE tab2, tab2_1, tab3_1 WITH (publish_via_partition_root = true)" +); $node_publisher->safe_psql('postgres', - "CREATE PUBLICATION pub_viaroot FOR TABLE tab2, tab3_1 WITH (publish_via_partition_root = true)" + "CREATE PUBLICATION pub_lower_level FOR TABLE tab4_1 WITH (publish_via_partition_root = true)" ); +# prepare data for the initial sync +$node_publisher->safe_psql('postgres', "INSERT INTO tab2 VALUES (1)"); + # subscriber 1 $node_subscriber1->safe_psql('postgres', "DROP SUBSCRIPTION sub1"); $node_subscriber1->safe_psql('postgres', @@ -454,10 +468,16 @@ $node_subscriber2->safe_psql('postgres', "CREATE TABLE tab3_1 (a int PRIMARY KEY, c text DEFAULT 'sub2_tab3_1', b text)" ); +$node_subscriber2->safe_psql('postgres', + "CREATE TABLE tab4 (a int PRIMARY KEY)" +); +$node_subscriber2->safe_psql('postgres', + "CREATE TABLE tab4_1 (a int PRIMARY KEY)" +); # Publication that sub2 points to now publishes via root, so must update # subscription target relations. $node_subscriber2->safe_psql('postgres', - "ALTER SUBSCRIPTION sub2 REFRESH PUBLICATION"); + "ALTER SUBSCRIPTION sub2 SET PUBLICATION pub_lower_level, pub_all"); # Wait for initial sync of all subscriptions $node_subscriber1->poll_query_until('postgres', $synced_query) @@ -465,14 +485,21 @@ $node_subscriber2->poll_query_until('postgres', $synced_query) or die "Timed out while waiting for subscriber to synchronize data"; +# check that data is synced correctly +$result = $node_subscriber1->safe_psql('postgres', + "SELECT c, a FROM tab2"); +is( $result, qq(sub1_tab2|1), 'initial data synced for pub_viaroot'); + # insert $node_publisher->safe_psql('postgres', "INSERT INTO tab1 VALUES (1), (0)"); $node_publisher->safe_psql('postgres', "INSERT INTO tab1_1 (a) VALUES (3)"); $node_publisher->safe_psql('postgres', "INSERT INTO tab1_2 VALUES (5)"); $node_publisher->safe_psql('postgres', - "INSERT INTO tab2 VALUES (1), (0), (3), (5)"); + "INSERT INTO tab2 VALUES (0), (3), (5)"); $node_publisher->safe_psql('postgres', "INSERT INTO tab3 VALUES (1), (0), (3), (5)"); +$node_publisher->safe_psql('postgres', + "INSERT INTO tab4 VALUES (0)"); $node_publisher->wait_for_catchup('sub_viaroot'); $node_publisher->wait_for_catchup('sub2'); @@ -512,6 +539,43 @@ sub2_tab3|3 sub2_tab3|5), 'inserts into tab3 replicated'); +$result = $node_subscriber2->safe_psql('postgres', + "SELECT a FROM tab4 ORDER BY 1"); +is( $result, qq(0), 'inserts into tab4 replicated'); + +$result = $node_subscriber2->safe_psql('postgres', + "SELECT a FROM tab4_1 ORDER BY 1"); +is( $result, qq(), 'inserts into tab4_1 replicated'); + +# now switch the order of publications in the list, try again, the result +# should be the same (no dependence on order of pulications) +$node_subscriber2->safe_psql('postgres', + "ALTER SUBSCRIPTION sub2 SET PUBLICATION pub_all, pub_lower_level"); + +# make sure the subscription on the second subscriber is synced, before +# continuing +$node_subscriber2->poll_query_until('postgres', $synced_query) + or die "Timed out while waiting for subscriber to synchronize data"; + +# Insert a change into the leaf partition, should be replicated through +# the partition root (thanks to the FOR ALL TABLES partition). +$node_publisher->safe_psql('postgres', + "INSERT INTO tab4 VALUES (1)"); + +$node_publisher->wait_for_catchup('sub2'); + +# tab4 change should be replicated through the root partition, which +# maps to the tab4 relation on subscriber. +$result = $node_subscriber2->safe_psql('postgres', + "SELECT a FROM tab4 ORDER BY 1"); +is( $result, qq(0 +1), 'inserts into tab4 replicated'); + +$result = $node_subscriber2->safe_psql('postgres', + "SELECT a FROM tab4_1 ORDER BY 1"); +is( $result, qq(), 'inserts into tab4_1 replicated'); + + # update (replicated as update) $node_publisher->safe_psql('postgres', "UPDATE tab1 SET a = 6 WHERE a = 5"); $node_publisher->safe_psql('postgres', "UPDATE tab2 SET a = 6 WHERE a = 5"); diff -Nru postgresql-13-13.4/src/test/subscription/t/100_bugs.pl postgresql-13-13.7/src/test/subscription/t/100_bugs.pl --- postgresql-13-13.4/src/test/subscription/t/100_bugs.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/test/subscription/t/100_bugs.pl 2022-05-09 21:16:30.000000000 +0000 @@ -3,7 +3,7 @@ use warnings; use PostgresNode; use TestLib; -use Test::More tests => 5; +use Test::More tests => 7; # Bug #15114 @@ -153,3 +153,85 @@ $rows * 2, "2x$rows rows in t"); is($node_twoways->safe_psql('d2', "SELECT count(f) FROM t2"), $rows * 2, "2x$rows rows in t2"); + +# https://postgr.es/m/OS0PR01MB61133CA11630DAE45BC6AD95FB939%40OS0PR01MB6113.jpnprd01.prod.outlook.com + +# The bug was that when changing the REPLICA IDENTITY INDEX to another one, the +# target table's relcache was not being invalidated. This leads to skipping +# UPDATE/DELETE operations during apply on the subscriber side as the columns +# required to search corresponding rows won't get logged. +$node_publisher = get_new_node('publisher3'); +$node_publisher->init(allows_streaming => 'logical'); +$node_publisher->start; + +$node_subscriber = get_new_node('subscriber3'); +$node_subscriber->init(allows_streaming => 'logical'); +$node_subscriber->start; + +$node_publisher->safe_psql('postgres', + "CREATE TABLE tab_replidentity_index(a int not null, b int not null)"); +$node_publisher->safe_psql('postgres', + "CREATE UNIQUE INDEX idx_replidentity_index_a ON tab_replidentity_index(a)" +); +$node_publisher->safe_psql('postgres', + "CREATE UNIQUE INDEX idx_replidentity_index_b ON tab_replidentity_index(b)" +); + +# use index idx_replidentity_index_a as REPLICA IDENTITY on publisher. +$node_publisher->safe_psql('postgres', + "ALTER TABLE tab_replidentity_index REPLICA IDENTITY USING INDEX idx_replidentity_index_a" +); + +$node_publisher->safe_psql('postgres', + "INSERT INTO tab_replidentity_index VALUES(1, 1),(2, 2)"); + +$node_subscriber->safe_psql('postgres', + "CREATE TABLE tab_replidentity_index(a int not null, b int not null)"); +$node_subscriber->safe_psql('postgres', + "CREATE UNIQUE INDEX idx_replidentity_index_a ON tab_replidentity_index(a)" +); +$node_subscriber->safe_psql('postgres', + "CREATE UNIQUE INDEX idx_replidentity_index_b ON tab_replidentity_index(b)" +); +# use index idx_replidentity_index_b as REPLICA IDENTITY on subscriber because +# it reflects the future scenario we are testing: changing REPLICA IDENTITY +# INDEX. +$node_subscriber->safe_psql('postgres', + "ALTER TABLE tab_replidentity_index REPLICA IDENTITY USING INDEX idx_replidentity_index_b" +); + +$publisher_connstr = $node_publisher->connstr . ' dbname=postgres'; +$node_publisher->safe_psql('postgres', + "CREATE PUBLICATION tap_pub FOR TABLE tab_replidentity_index"); +$node_subscriber->safe_psql('postgres', + "CREATE SUBSCRIPTION tap_sub CONNECTION '$publisher_connstr' PUBLICATION tap_pub" +); + +$node_publisher->wait_for_catchup('tap_sub'); + +# Also wait for initial table sync to finish +$node_subscriber->poll_query_until('postgres', $synced_query) + or die "Timed out while waiting for subscriber to synchronize data"; + +is( $node_subscriber->safe_psql( + 'postgres', "SELECT * FROM tab_replidentity_index"), + qq(1|1 +2|2), + "check initial data on subscriber"); + +# Set REPLICA IDENTITY to idx_replidentity_index_b on publisher, then run UPDATE and DELETE. +$node_publisher->safe_psql( + 'postgres', qq[ + ALTER TABLE tab_replidentity_index REPLICA IDENTITY USING INDEX idx_replidentity_index_b; + UPDATE tab_replidentity_index SET a = -a WHERE a = 1; + DELETE FROM tab_replidentity_index WHERE a = 2; +]); + +$node_publisher->wait_for_catchup('tap_sub'); +is( $node_subscriber->safe_psql( + 'postgres', "SELECT * FROM tab_replidentity_index"), + qq(-1|1), + "update works with REPLICA IDENTITY"); + +$node_publisher->stop('fast'); +$node_subscriber->stop('fast'); diff -Nru postgresql-13-13.4/src/timezone/data/tzdata.zi postgresql-13-13.7/src/timezone/data/tzdata.zi --- postgresql-13-13.4/src/timezone/data/tzdata.zi 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/timezone/data/tzdata.zi 2022-05-09 21:16:30.000000000 +0000 @@ -1,4 +1,4 @@ -# version 2021a +# version 2022a # This zic input file is in the public domain. R d 1916 o - Jun 14 23s 1 S R d 1916 1919 - O Su>=1 23s 0 - @@ -43,6 +43,7 @@ 1 - WAT Z Africa/Abidjan -0:16:8 - LMT 1912 0 - GMT +L Africa/Abidjan Africa/Accra L Africa/Abidjan Africa/Bamako L Africa/Abidjan Africa/Banjul L Africa/Abidjan Africa/Conakry @@ -86,16 +87,6 @@ R K 2014 o - S lastTh 24 0 - Z Africa/Cairo 2:5:9 - LMT 1900 O 2 K EE%sT -R GH 1919 o - N 24 0 0:20 +0020 -R GH 1920 1942 - Ja 1 2 0 GMT -R GH 1920 1939 - S 1 2 0:20 +0020 -R GH 1940 1941 - May 1 2 0:20 +0020 -R GH 1950 1955 - S 1 2 0:30 +0030 -R GH 1951 1956 - Ja 1 2 0 GMT -Z Africa/Accra -0:0:52 - LMT 1915 N 2 -0 GH %s 1942 F 8 -0:30 - +0030 1946 Ja 6 -0 GH %s Z Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u -1 - -01 1975 0 - GMT @@ -456,12 +447,6 @@ 5 - +05 Z Indian/Kerguelen 0 - -00 1950 5 - +05 -Z Antarctica/DumontDUrville 0 - -00 1947 -10 - +10 1952 Ja 14 -0 - -00 1956 N -10 - +10 -Z Antarctica/Syowa 0 - -00 1957 Ja 29 -3 - +03 R Tr 2005 ma - Mar lastSu 1u 2 +02 R Tr 2004 ma - O lastSu 1u 0 +00 Z Antarctica/Troll 0 - -00 2005 F 12 @@ -916,8 +901,9 @@ R J 2005 o - S lastF 0s 0 - R J 2006 2011 - O lastF 0s 0 - R J 2013 o - D 20 0 0 - -R J 2014 ma - Mar lastTh 24 1 S +R J 2014 2021 - Mar lastTh 24 1 S R J 2014 ma - O lastF 0s 0 - +R J 2022 ma - F lastTh 24 1 S Z Asia/Amman 2:23:44 - LMT 1931 2 J EE%sT Z Asia/Almaty 5:7:48 - LMT 1924 May 2 @@ -1125,8 +1111,10 @@ R P 2016 2018 - O Sa>=24 1 0 - R P 2019 o - Mar 29 0 1 S R P 2019 o - O Sa>=24 0 0 - -R P 2020 ma - Mar Sa>=24 0 1 S -R P 2020 ma - O Sa>=24 1 0 - +R P 2020 2021 - Mar Sa>=24 0 1 S +R P 2020 o - O 24 1 0 - +R P 2021 ma - O F>=23 1 0 - +R P 2022 ma - Mar Su>=25 0 1 S Z Asia/Gaza 2:17:52 - LMT 1900 O 2 Z EET/EEST 1948 May 15 2 K EE%sT 1967 Jun 5 @@ -1162,6 +1150,7 @@ L Asia/Qatar Asia/Bahrain Z Asia/Riyadh 3:6:52 - LMT 1947 Mar 14 3 - +03 +L Asia/Riyadh Antarctica/Syowa L Asia/Riyadh Asia/Aden L Asia/Riyadh Asia/Kuwait Z Asia/Singapore 6:55:25 - LMT 1901 @@ -1431,10 +1420,11 @@ R FJ 2012 2013 - Ja Su>=18 3 0 - R FJ 2014 o - Ja Su>=18 2 0 - R FJ 2014 2018 - N Su>=1 2 1 - -R FJ 2015 ma - Ja Su>=12 3 0 - +R FJ 2015 2021 - Ja Su>=12 3 0 - R FJ 2019 o - N Su>=8 2 1 - R FJ 2020 o - D 20 2 1 - -R FJ 2021 ma - N Su>=8 2 1 - +R FJ 2022 ma - N Su>=8 2 1 - +R FJ 2023 ma - Ja Su>=12 3 0 - Z Pacific/Fiji 11:55:44 - LMT 1915 O 26 12 FJ +12/+13 Z Pacific/Gambier -8:59:48 - LMT 1912 O @@ -1466,7 +1456,7 @@ L Pacific/Guam Pacific/Saipan Z Pacific/Tarawa 11:32:4 - LMT 1901 12 - +12 -Z Pacific/Enderbury -11:24:20 - LMT 1901 +Z Pacific/Kanton 0 - -00 1937 Au 31 -12 - -12 1979 O -11 - -11 1994 D 31 13 - +13 @@ -1560,12 +1550,12 @@ R CK 1978 o - N 12 0 0:30 - R CK 1979 1991 - Mar Su>=1 0 0 - R CK 1979 1990 - O lastSu 0 0:30 - -Z Pacific/Rarotonga -10:39:4 - LMT 1901 +Z Pacific/Rarotonga 13:20:56 - LMT 1899 D 26 +-10:39:4 - LMT 1952 O 16 -10:30 - -1030 1978 N 12 -10 CK -10/-0930 -Z Pacific/Niue -11:19:40 - LMT 1901 --11:20 - -1120 1951 --11:30 - -1130 1978 O +Z Pacific/Niue -11:19:40 - LMT 1952 O 16 +-11:20 - -1120 1964 Jul -11 - -11 Z Pacific/Norfolk 11:11:52 - LMT 1901 11:12 - +1112 1951 @@ -1580,6 +1570,7 @@ Z Pacific/Port_Moresby 9:48:40 - LMT 1880 9:48:32 - PMMT 1895 10 - +10 +L Pacific/Port_Moresby Antarctica/DumontDUrville Z Pacific/Bougainville 10:22:16 - LMT 1880 9:48:32 - PMMT 1895 10 - +10 1942 Jul @@ -1596,8 +1587,8 @@ R WS 2010 o - S lastSu 0 1 - R WS 2011 o - Ap Sa>=1 4 0 - R WS 2011 o - S lastSa 3 1 - -R WS 2012 ma - Ap Su>=1 4 0 - -R WS 2012 ma - S lastSu 3 1 - +R WS 2012 2021 - Ap Su>=1 4 0 - +R WS 2012 2020 - S lastSu 3 1 - Z Pacific/Apia 12:33:4 - LMT 1892 Jul 5 -11:26:56 - LMT 1911 -11:30 - -1130 1950 @@ -1614,8 +1605,8 @@ R TO 2001 2002 - Ja lastSu 2 0 - R TO 2016 o - N Su>=1 2 1 - R TO 2017 o - Ja Su>=15 3 0 - -Z Pacific/Tongatapu 12:19:20 - LMT 1901 -12:20 - +1220 1941 +Z Pacific/Tongatapu 12:19:12 - LMT 1945 S 10 +12:20 - +1220 1961 13 - +13 1999 13 TO +13/+14 Z Pacific/Funafuti 11:56:52 - LMT 1901 @@ -2354,10 +2345,8 @@ R p 1944 1945 - Ap Sa>=21 22s 2 M R p 1946 o - Ap Sa>=1 23s 1 S R p 1946 o - O Sa>=1 23s 0 - -R p 1947 1949 - Ap Su>=1 2s 1 S -R p 1947 1949 - O Su>=1 2s 0 - -R p 1951 1965 - Ap Su>=1 2s 1 S -R p 1951 1965 - O Su>=1 2s 0 - +R p 1947 1965 - Ap Su>=1 2s 1 S +R p 1947 1965 - O Su>=1 2s 0 - R p 1977 o - Mar 27 0s 1 S R p 1977 o - S 25 0s 0 - R p 1978 1979 - Ap Su>=1 0s 1 S @@ -2443,8 +2432,8 @@ 1 c CE%sT 1944 Ap 13 3 R MSK/MSD 1990 3 - MSK 1990 Jul 1 2 -2 - EET 1992 -2 e EE%sT 1994 May +2 - EET 1992 Mar 20 +2 c EE%sT 1994 May 3 e MSK/MSD 1996 Mar 31 0s 3 1 MSD 1996 O 27 3s 3 R MSK/MSD 1997 @@ -2799,7 +2788,7 @@ 1 c CE%sT 1943 N 6 3 R MSK/MSD 1990 Jul 1 2 2 1 EEST 1991 S 29 3 -2 e EE%sT 1995 +2 c EE%sT 1996 May 13 2 E EE%sT Z Europe/Uzhgorod 1:29:12 - LMT 1890 O 1 - CET 1940 @@ -2809,8 +2798,8 @@ 3 R MSK/MSD 1990 3 - MSK 1990 Jul 1 2 1 - CET 1991 Mar 31 3 -2 - EET 1992 -2 e EE%sT 1995 +2 - EET 1992 Mar 20 +2 c EE%sT 1996 May 13 2 E EE%sT Z Europe/Zaporozhye 2:20:40 - LMT 1880 2:20 - +0220 1924 May 2 @@ -2818,7 +2807,8 @@ 3 - MSK 1941 Au 25 1 c CE%sT 1943 O 25 3 R MSK/MSD 1991 Mar 31 2 -2 e EE%sT 1995 +2 e EE%sT 1992 Mar 20 +2 c EE%sT 1996 May 13 2 E EE%sT R u 1918 1919 - Mar lastSu 2 1 D R u 1918 1919 - O lastSu 2 0 S @@ -2967,6 +2957,7 @@ -7 - MST 1967 -7 u M%sT 1968 Mar 21 -7 - MST +L America/Phoenix America/Creston Z America/Boise -7:44:49 - LMT 1883 N 18 12:15:11 -8 u P%sT 1923 May 13 2 -7 u M%sT 1974 @@ -3237,9 +3228,6 @@ -4 C A%sT 1993 -4 o A%sT 2007 -4 C A%sT -Z America/Blanc-Sablon -3:48:28 - LMT 1884 --4 C A%sT 1970 --4 - AST R t 1919 o - Mar 30 23:30 1 D R t 1919 o - O 26 0 0 S R t 1920 o - May 2 2 1 D @@ -3268,6 +3256,7 @@ -5 C E%sT 1946 -5 t E%sT 1974 -5 C E%sT +L America/Toronto America/Nassau Z America/Thunder_Bay -5:57 - LMT 1895 -6 - CST 1910 -5 - EST 1942 @@ -3283,11 +3272,6 @@ -6 C C%sT 1940 S 29 -6 1 CDT 1942 F 9 2s -6 C C%sT -Z America/Atikokan -6:6:28 - LMT 1895 --6 C C%sT 1940 S 29 --6 1 CDT 1942 F 9 2s --6 C C%sT 1945 S 30 2 --5 - EST R W 1916 o - Ap 23 0 1 D R W 1916 o - S 17 0 0 S R W 1918 o - Ap 14 2 1 D @@ -3383,10 +3367,6 @@ -8 Va P%sT 1987 -8 C P%sT 2015 Mar 8 2 -7 - MST -Z America/Creston -7:46:4 - LMT 1884 --7 - MST 1916 O --8 - PST 1918 Jun 2 --7 - MST R Y 1918 o - Ap 14 2 1 D R Y 1918 o - O 27 2 0 S R Y 1919 o - May 25 2 1 D @@ -3554,23 +3534,20 @@ -8 u P%sT 2002 F 20 -8 m P%sT 2010 -8 u P%sT -R BS 1942 o - May 1 24 1 W -R BS 1944 o - D 31 24 0 S -R BS 1945 o - F 1 0 1 W -R BS 1945 o - Au 14 23u 1 P -R BS 1945 o - O 17 24 0 S -R BS 1964 1975 - O lastSu 2 0 S -R BS 1964 1975 - Ap lastSu 2 1 D -Z America/Nassau -5:9:30 - LMT 1912 Mar 2 --5 BS E%sT 1976 --5 u E%sT +R BB 1942 o - Ap 19 5u 1 D +R BB 1942 o - Au 31 6u 0 S +R BB 1943 o - May 2 5u 1 D +R BB 1943 o - S 5 6u 0 S +R BB 1944 o - Ap 10 5u 0:30 - +R BB 1944 o - S 10 6u 0 S R BB 1977 o - Jun 12 2 1 D R BB 1977 1978 - O Su>=1 2 0 S R BB 1978 1980 - Ap Su>=15 2 1 D R BB 1979 o - S 30 2 0 S R BB 1980 o - S 25 2 0 S -Z America/Barbados -3:58:29 - LMT 1924 --3:58:29 - BMT 1932 +Z America/Barbados -3:58:29 - LMT 1911 Au 28 +-4 BB A%sT 1944 +-4 BB AST/-0330 1945 -4 BB A%sT R BZ 1918 1941 - O Sa>=1 24 0:30 -0530 R BZ 1919 1942 - F Sa>=8 24 0 CST @@ -3730,11 +3707,31 @@ Z America/Panama -5:18:8 - LMT 1890 -5:19:36 - CMT 1908 Ap 22 -5 - EST +L America/Panama America/Atikokan L America/Panama America/Cayman Z America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12 -4 - AST 1942 May 3 -4 u A%sT 1946 -4 - AST +L America/Puerto_Rico America/Anguilla +L America/Puerto_Rico America/Antigua +L America/Puerto_Rico America/Aruba +L America/Puerto_Rico America/Curacao +L America/Puerto_Rico America/Blanc-Sablon +L America/Puerto_Rico America/Dominica +L America/Puerto_Rico America/Grenada +L America/Puerto_Rico America/Guadeloupe +L America/Puerto_Rico America/Kralendijk +L America/Puerto_Rico America/Lower_Princes +L America/Puerto_Rico America/Marigot +L America/Puerto_Rico America/Montserrat +L America/Puerto_Rico America/Port_of_Spain +L America/Puerto_Rico America/St_Barthelemy +L America/Puerto_Rico America/St_Kitts +L America/Puerto_Rico America/St_Lucia +L America/Puerto_Rico America/St_Thomas +L America/Puerto_Rico America/St_Vincent +L America/Puerto_Rico America/Tortola Z America/Miquelon -3:44:40 - LMT 1911 May 15 -4 - AST 1980 May -3 - -03 1987 @@ -3914,7 +3911,6 @@ -4 - -04 2004 Jun 20 -3 A -03/-02 2008 O 18 -3 - -03 -L America/Curacao America/Aruba Z America/La_Paz -4:32:36 - LMT 1890 -4:32:36 - CMT 1931 O 15 -4:32:36 1 BST 1932 Mar 21 @@ -4094,12 +4090,12 @@ R x 2016 2018 - Au Su>=9 4u 1 - R x 2019 ma - Ap Su>=2 3u 0 - R x 2019 ma - S Su>=2 4u 1 - -Z America/Santiago -4:42:46 - LMT 1890 --4:42:46 - SMT 1910 Ja 10 +Z America/Santiago -4:42:45 - LMT 1890 +-4:42:45 - SMT 1910 Ja 10 -5 - -05 1916 Jul --4:42:46 - SMT 1918 S 10 +-4:42:45 - SMT 1918 S 10 -4 - -04 1919 Jul --4:42:46 - SMT 1927 S +-4:42:45 - SMT 1927 S -5 x -05/-04 1932 S -4 - -04 1942 Jun -5 - -05 1942 Au @@ -4109,11 +4105,11 @@ -5 - -05 1947 May 21 23 -4 x -04/-03 Z America/Punta_Arenas -4:43:40 - LMT 1890 --4:42:46 - SMT 1910 Ja 10 +-4:42:45 - SMT 1910 Ja 10 -5 - -05 1916 Jul --4:42:46 - SMT 1918 S 10 +-4:42:45 - SMT 1918 S 10 -4 - -04 1919 Jul --4:42:46 - SMT 1927 S +-4:42:45 - SMT 1927 S -5 x -05/-04 1932 S -4 - -04 1942 Jun -5 - -05 1942 Au @@ -4135,11 +4131,6 @@ Z America/Bogota -4:56:16 - LMT 1884 Mar 13 -4:56:16 - BMT 1914 N 23 -5 CO -05/-04 -Z America/Curacao -4:35:47 - LMT 1912 F 12 --4:30 - -0430 1965 --4 - AST -L America/Curacao America/Lower_Princes -L America/Curacao America/Kralendijk R EC 1992 o - N 28 0 1 - R EC 1993 o - F 5 0 0 - Z America/Guayaquil -5:19:20 - LMT 1890 @@ -4169,9 +4160,10 @@ Z America/Cayenne -3:29:20 - LMT 1911 Jul -4 - -04 1967 O -3 - -03 -Z America/Guyana -3:52:40 - LMT 1915 Mar --3:45 - -0345 1975 Jul 31 --3 - -03 1991 +Z America/Guyana -3:52:39 - LMT 1911 Au +-4 - -04 1915 Mar +-3:45 - -0345 1975 Au +-3 - -03 1992 Mar 29 1 -4 - -04 R y 1975 1988 - O 1 0 1 - R y 1975 1978 - Mar 1 0 0 - @@ -4220,21 +4212,6 @@ -3:40:36 - PMT 1945 O -3:30 - -0330 1984 O -3 - -03 -Z America/Port_of_Spain -4:6:4 - LMT 1912 Mar 2 --4 - AST -L America/Port_of_Spain America/Anguilla -L America/Port_of_Spain America/Antigua -L America/Port_of_Spain America/Dominica -L America/Port_of_Spain America/Grenada -L America/Port_of_Spain America/Guadeloupe -L America/Port_of_Spain America/Marigot -L America/Port_of_Spain America/Montserrat -L America/Port_of_Spain America/St_Barthelemy -L America/Port_of_Spain America/St_Kitts -L America/Port_of_Spain America/St_Lucia -L America/Port_of_Spain America/St_Thomas -L America/Port_of_Spain America/St_Vincent -L America/Port_of_Spain America/Tortola R U 1923 1925 - O 1 0 0:30 - R U 1924 1926 - Ap 1 0 0 - R U 1933 1938 - O lastSu 0 0:30 - @@ -4342,7 +4319,7 @@ L America/Adak America/Atka L America/Argentina/Buenos_Aires America/Buenos_Aires L America/Argentina/Catamarca America/Catamarca -L America/Atikokan America/Coral_Harbour +L America/Panama America/Coral_Harbour L America/Argentina/Cordoba America/Cordoba L America/Tijuana America/Ensenada L America/Indiana/Indianapolis America/Fort_Wayne @@ -4357,7 +4334,7 @@ L America/Argentina/Cordoba America/Rosario L America/Tijuana America/Santa_Isabel L America/Denver America/Shiprock -L America/Port_of_Spain America/Virgin +L America/Puerto_Rico America/Virgin L Pacific/Auckland Antarctica/South_Pole L Asia/Ashgabat Asia/Ashkhabad L Asia/Kolkata Asia/Calcutta @@ -4429,6 +4406,7 @@ L Pacific/Chatham NZ-CHAT L America/Denver Navajo L Asia/Shanghai PRC +L Pacific/Kanton Pacific/Enderbury L Pacific/Honolulu Pacific/Johnston L Pacific/Pohnpei Pacific/Ponape L Pacific/Pago_Pago Pacific/Samoa diff -Nru postgresql-13-13.4/src/timezone/known_abbrevs.txt postgresql-13-13.7/src/timezone/known_abbrevs.txt --- postgresql-13-13.4/src/timezone/known_abbrevs.txt 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/timezone/known_abbrevs.txt 2022-05-09 21:16:30.000000000 +0000 @@ -28,7 +28,6 @@ +13 46800 D +1345 49500 D +14 50400 -+14 50400 D -00 0 -01 -3600 -02 -7200 diff -Nru postgresql-13-13.4/src/tools/msvc/build.bat postgresql-13-13.7/src/tools/msvc/build.bat --- postgresql-13-13.4/src/tools/msvc/build.bat 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/build.bat 2022-05-09 21:16:30.000000000 +0000 @@ -3,4 +3,4 @@ REM all the logic for this now belongs in build.pl. This file really REM only exists so you don't have to type "perl build.pl" REM Resist any temptation to add any logic here. -@perl build.pl %* +@perl %~dp0/build.pl %* diff -Nru postgresql-13-13.4/src/tools/msvc/clean.bat postgresql-13-13.7/src/tools/msvc/clean.bat --- postgresql-13-13.4/src/tools/msvc/clean.bat 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/clean.bat 2022-05-09 21:16:30.000000000 +0000 @@ -4,8 +4,9 @@ set DIST=0 if "%1"=="dist" set DIST=1 -set D=%CD% -if exist ..\msvc if exist ..\..\..\src cd ..\..\.. +setlocal + +cd "%~dp0\..\..\.." if exist debug rd /s /q debug if exist release rd /s /q release @@ -131,7 +132,7 @@ REM cd contrib REM for /r %%f in (*.sql) do if exist %%f.in del %%f -cd %D% +cd "%~dp0" REM Clean up ecpg regression test files msbuild ecpg_regression.proj /NoLogo /v:q %MSBFLAGS% /t:clean diff -Nru postgresql-13-13.4/src/tools/msvc/install.bat postgresql-13-13.7/src/tools/msvc/install.bat --- postgresql-13-13.4/src/tools/msvc/install.bat 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/install.bat 2022-05-09 21:16:30.000000000 +0000 @@ -3,4 +3,4 @@ REM all the logic for this now belongs in install.pl. This file really REM only exists so you don't have to type "perl install.pl" REM Resist any temptation to add any logic here. -@perl install.pl %* +@perl %~dp0/install.pl %* diff -Nru postgresql-13-13.4/src/tools/msvc/MSBuildProject.pm postgresql-13-13.7/src/tools/msvc/MSBuildProject.pm --- postgresql-13-13.4/src/tools/msvc/MSBuildProject.pm 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/MSBuildProject.pm 2022-05-09 21:16:30.000000000 +0000 @@ -505,4 +505,29 @@ return $self; } +package VC2022Project; + +# +# Package that encapsulates a Visual C++ 2022 project file +# + +use strict; +use warnings; +use base qw(MSBuildProject); + +no warnings qw(redefine); ## no critic + +sub new +{ + my $classname = shift; + my $self = $classname->SUPER::_new(@_); + bless($self, $classname); + + $self->{vcver} = '17.00'; + $self->{PlatformToolset} = 'v143'; + $self->{ToolsVersion} = '17.0'; + + return $self; +} + 1; diff -Nru postgresql-13-13.4/src/tools/msvc/pgbison.bat postgresql-13-13.7/src/tools/msvc/pgbison.bat --- postgresql-13-13.4/src/tools/msvc/pgbison.bat 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/pgbison.bat 2022-05-09 21:16:30.000000000 +0000 @@ -4,4 +4,4 @@ REM all the logic for this now belongs in pgbison.pl. This file really REM only exists so you don't have to type "perl src/tools/msvc/pgbison.pl" REM Resist any temptation to add any logic here. -@perl src/tools/msvc/pgbison.pl %* +@perl %~dp0/pgbison.pl %* diff -Nru postgresql-13-13.4/src/tools/msvc/pgflex.bat postgresql-13-13.7/src/tools/msvc/pgflex.bat --- postgresql-13-13.4/src/tools/msvc/pgflex.bat 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/pgflex.bat 2022-05-09 21:16:30.000000000 +0000 @@ -4,4 +4,4 @@ REM all the logic for this now belongs in pgflex.pl. This file really REM only exists so you don't have to type "perl src/tools/msvc/pgflex.pl" REM Resist any temptation to add any logic here. -@perl src/tools/msvc/pgflex.pl %* +@perl %~dp0/pgflex.pl %* diff -Nru postgresql-13-13.4/src/tools/msvc/README postgresql-13-13.7/src/tools/msvc/README --- postgresql-13-13.4/src/tools/msvc/README 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/README 2022-05-09 21:16:30.000000000 +0000 @@ -4,7 +4,7 @@ ========== This directory contains the tools required to build PostgreSQL using -Microsoft Visual Studio 2013 - 2019. This builds the whole backend, not just +Microsoft Visual Studio 2013 - 2022. This builds the whole backend, not just the libpq frontend library. For more information, see the documentation chapter "Installation on Windows" and the description below. @@ -89,11 +89,11 @@ (Mkvcbuild.pm) which creates the Visual Studio project and solution files. It does this by using VSObjectFactory::CreateSolution to create an object implementing the Solution interface (this could be either VS2013Solution, -VS2015Solution, VS2017Solution or VS2019Solution, all in Solution.pm, -depending on the user's build environment) and adding objects implementing -the corresponding Project interface (VC2013Project, VC2015Project, -VC2017Project or VC2019Project from MSBuildProject.pm) to it. -When Solution::Save is called, the implementations of Solution and Project -save their content in the appropriate format. +VS2015Solution, VS2017Solution, VS2019Solution or VS2022Solution, all in +Solution.pm, depending on the user's build environment) and adding objects +implementing the corresponding Project interface (VC2013Project, +VC2015Project, VC2017Project, VC2019Project or VC2022Project from +MSBuildProject.pm) to it. When Solution::Save is called, the implementations +of Solution and Project save their content in the appropriate format. The final step of starting the appropriate build program (msbuild) is performed in build.pl again. diff -Nru postgresql-13-13.4/src/tools/msvc/Solution.pm postgresql-13-13.7/src/tools/msvc/Solution.pm --- postgresql-13-13.4/src/tools/msvc/Solution.pm 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/Solution.pm 2022-05-09 21:16:30.000000000 +0000 @@ -419,6 +419,7 @@ HAVE__BUILTIN_CLZ => undef, HAVE__BUILTIN_CONSTANT_P => undef, HAVE__BUILTIN_CTZ => undef, + HAVE__BUILTIN_FRAME_ADDRESS => undef, HAVE__BUILTIN_OP_OVERFLOW => undef, HAVE__BUILTIN_POPCOUNT => undef, HAVE__BUILTIN_TYPES_COMPATIBLE_P => undef, @@ -521,7 +522,8 @@ my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion(); # More symbols are needed with OpenSSL 1.1.0 and above. - if ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0') + if ( ($digit1 >= '3' && $digit2 >= '0' && $digit3 >= '0') + || ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0')) { $define{HAVE_ASN1_STRING_GET0_DATA} = 1; $define{HAVE_BIO_GET_DATA} = 1; @@ -936,7 +938,8 @@ # changed their library names from: # - libeay to libcrypto # - ssleay to libssl - if ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0') + if ( ($digit1 >= '3' && $digit2 >= '0' && $digit3 >= '0') + || ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0')) { my $dbgsuffix; my $libsslpath; @@ -1288,6 +1291,34 @@ $self->{MinimumVisualStudioVersion} = '10.0.40219.1'; return $self; +} + +package VS2022Solution; + +# +# Package that encapsulates a Visual Studio 2022 solution file +# + +use Carp; +use strict; +use warnings; +use base qw(Solution); + +no warnings qw(redefine); ## no critic + +sub new +{ + my $classname = shift; + my $self = $classname->SUPER::_new(@_); + bless($self, $classname); + + $self->{solutionFileVersion} = '12.00'; + $self->{vcver} = '17.00'; + $self->{visualStudioName} = 'Visual Studio 2022'; + $self->{VisualStudioVersion} = '17.0.31903.59'; + $self->{MinimumVisualStudioVersion} = '10.0.40219.1'; + + return $self; } sub GetAdditionalHeaders diff -Nru postgresql-13-13.4/src/tools/msvc/vcregress.bat postgresql-13-13.7/src/tools/msvc/vcregress.bat --- postgresql-13-13.4/src/tools/msvc/vcregress.bat 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/vcregress.bat 2022-05-09 21:16:30.000000000 +0000 @@ -3,4 +3,4 @@ REM all the logic for this now belongs in vcregress.pl. This file really REM only exists so you don't have to type "perl vcregress.pl" REM Resist any temptation to add any logic here. -@perl vcregress.pl %* +@perl %~dp0/vcregress.pl %* diff -Nru postgresql-13-13.4/src/tools/msvc/vcregress.pl postgresql-13-13.7/src/tools/msvc/vcregress.pl --- postgresql-13-13.4/src/tools/msvc/vcregress.pl 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/vcregress.pl 2022-05-09 21:16:30.000000000 +0000 @@ -28,6 +28,13 @@ do './src/tools/msvc/config_default.pl'; do './src/tools/msvc/config.pl' if (-f 'src/tools/msvc/config.pl'); +# These values are defaults that can be overridden by the calling environment +# (see buildenv.pl processing below). +# c.f. src/Makefile.global.in and configure.ac +$ENV{GZIP_PROGRAM} ||= 'gzip'; +$ENV{LZ4} ||= 'lz4'; +$ENV{TAR} ||= 'tar'; + # buildenv.pl is for specifying the build environment settings # it should contain lines like: # $ENV{PATH} = "c:/path/to/bison/bin;$ENV{PATH}"; @@ -57,6 +64,14 @@ copy("$Config/regress/regress.dll", "src/test/regress"); copy("$Config/dummy_seclabel/dummy_seclabel.dll", "src/test/regress"); +# Configuration settings used by TAP tests +$ENV{with_openssl} = $config->{openssl} ? 'yes' : 'no'; +$ENV{with_ldap} = $config->{ldap} ? 'yes' : 'no'; +$ENV{with_icu} = $config->{icu} ? 'yes' : 'no'; +$ENV{with_gssapi} = $config->{gss} ? 'yes' : 'no'; +$ENV{with_krb_srvnam} = $config->{krb_srvnam} || 'postgres'; +$ENV{with_readline} = 'no'; + $ENV{PATH} = "$topdir/$Config/libpq;$ENV{PATH}"; if ($ENV{PERL5LIB}) @@ -299,7 +314,7 @@ s/([ [{])u'/$1'/g; s/def next/def __next__/g; s/LANGUAGE plpython2?u/LANGUAGE plpython3u/g; - s/EXTENSION ([^ ]*_)*plpython2?u/EXTENSION $1plpython3u/g; + s/EXTENSION (\S*?)plpython2?u/EXTENSION $1plpython3u/g; s/installing required extension "plpython2u"/installing required extension "plpython3u"/g; } for ($contents); diff -Nru postgresql-13-13.4/src/tools/msvc/VSObjectFactory.pm postgresql-13-13.7/src/tools/msvc/VSObjectFactory.pm --- postgresql-13-13.4/src/tools/msvc/VSObjectFactory.pm 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/msvc/VSObjectFactory.pm 2022-05-09 21:16:30.000000000 +0000 @@ -58,6 +58,16 @@ { return new VS2019Solution(@_); } + + # The version of nmake bundled in Visual Studio 2022 is greater + # than 14.30 and less than 14.40. And the version number is + # actually 17.00. + elsif ( + ($visualStudioVersion ge '14.30' && $visualStudioVersion lt '14.40') + || $visualStudioVersion eq '17.00') + { + return new VS2022Solution(@_); + } else { croak @@ -102,6 +112,16 @@ { return new VC2019Project(@_); } + + # The version of nmake bundled in Visual Studio 2022 is greater + # than 14.30 and less than 14.40. And the version number is + # actually 17.00. + elsif ( + ($visualStudioVersion ge '14.30' && $visualStudioVersion lt '14.40') + || $visualStudioVersion eq '17.00') + { + return new VC2022Project(@_); + } else { croak @@ -131,7 +151,7 @@ else { # fake version - return '16.00'; + return '17.00'; } } @@ -140,13 +160,13 @@ my ($major, $minor) = @_; # The major visual studio that is supported has nmake - # version <= 14.30, so stick with it as the latest version + # version <= 14.40, so stick with it as the latest version # if bumping on something even newer. - if ($major >= 14 && $minor >= 30) + if ($major >= 14 && $minor >= 40) { carp "The determined version of Visual Studio is newer than the latest supported version. Returning the latest supported version instead."; - return '14.20'; + return '14.30'; } elsif ($major < 12) { diff -Nru postgresql-13-13.4/src/tools/pgindent/typedefs.list postgresql-13-13.7/src/tools/pgindent/typedefs.list --- postgresql-13-13.4/src/tools/pgindent/typedefs.list 2021-08-09 20:49:05.000000000 +0000 +++ postgresql-13-13.7/src/tools/pgindent/typedefs.list 2022-05-09 21:16:30.000000000 +0000 @@ -1044,6 +1044,7 @@ ImportForeignSchemaType ImportForeignSchema_function ImportQual +InProgressEnt IncludeWal InclusionOpaque IncrementVarSublevelsUp_context @@ -3518,6 +3519,7 @@ xl_multi_insert_tuple xl_multixact_create xl_multixact_truncate +xl_overwrite_contrecord xl_parameter_change xl_relmap_update xl_replorigin_drop